diff --git a/.gitattributes b/.gitattributes index e0b651bb79eed11dad70edea9b5ceacf835b7897..630a91a2efe9e8b1f10a537e3e67bced029ce26c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2644,10 +2644,6 @@ MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h -text MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h -text MAC/APL/CEPCU/src/CEPHardwareMonitor/README -text MAC/APL/CEPCU/src/CEPHardwareMonitor/zabbix_get -text -MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapoints.dpl -text -MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapointtypes.dpl -text -MAC/APL/CEPCU/src/CEPlogProcessor/CircularBuffer.h -text -MAC/APL/CEPCU/src/CEPlogProcessor/rtlogsender.py -text MAC/APL/CEPCU/src/OnlineControl/OnlineControl.conf -text MAC/APL/CEPCU/src/OnlineControl/Response.cc -text MAC/APL/CEPCU/src/OnlineControl/Response.h -text @@ -3257,11 +3253,8 @@ MAC/Deployment/data/StaticMetaData/ControlInfo.dat -text MAC/Deployment/data/StaticMetaData/HBADelays.conf -text MAC/Deployment/data/StaticMetaData/HardwareMonitor.conf.test -text MAC/Deployment/data/StaticMetaData/HardwareMonitor.conf.tmpl -text -MAC/Deployment/data/StaticMetaData/MAC+IP.dat -text MAC/Deployment/data/StaticMetaData/PVSSnumbers.dat -text -MAC/Deployment/data/StaticMetaData/RSP+IP.dat -text MAC/Deployment/data/StaticMetaData/RSPBlet.dat -text -MAC/Deployment/data/StaticMetaData/RSPConnections_BG.dat.tmpl -text MAC/Deployment/data/StaticMetaData/RSPConnections_CCU.dat -text MAC/Deployment/data/StaticMetaData/RSPConnections_Cobalt.dat -text MAC/Deployment/data/StaticMetaData/RSPConnections_local.dat -text @@ -3880,62 +3873,6 @@ MAC/_System/lofar29.sysconf -text svneol=native#application/octet-stream MAC/_System/lofar30.journal -text svneol=native#application/octet-stream MAC/_System/lofar30.sysconf -text svneol=native#application/octet-stream /README -text -RTCP/CNProc/src/AsyncTransposeBeams.cc -text -RTCP/CNProc/src/AsyncTransposeBeams.h -text -RTCP/CNProc/src/BeamFormer.cc -text -RTCP/CNProc/src/BeamFormer.h -text -RTCP/CNProc/src/BeamFormerAsm3St6Bm.inc -text -RTCP/CNProc/src/BeamFormerAsm6St3Bm.inc -text -RTCP/CNProc/src/CN_Math.h -text -RTCP/CNProc/src/ContainsOnlyZerosAsm.S -text -RTCP/CNProc/src/ContainsOnlyZerosAsm.h -text -RTCP/CNProc/src/Dedispersion.cc -text -RTCP/CNProc/src/Dedispersion.h -text -RTCP/CNProc/src/DedispersionAsm.S -text -RTCP/CNProc/src/DedispersionAsm.h -text -RTCP/CNProc/src/FIR_InvertedStationPPFWeights.h -text -RTCP/CNProc/src/FIR_OriginalCepPPFWeights.h -text -RTCP/CNProc/src/FIR_OriginalStationPPFWeights.h -text -RTCP/CNProc/src/FilterBank.cc -text -RTCP/CNProc/src/FilterBank.h -text -RTCP/CNProc/src/Flagger.cc -text -RTCP/CNProc/src/Flagger.h -text -RTCP/CNProc/src/FlaggerHistory.h -text -RTCP/CNProc/src/InversePPF.cc -text -RTCP/CNProc/src/InversePPF.h -text -RTCP/CNProc/src/PostCorrelationFlagger.cc -text -RTCP/CNProc/src/PostCorrelationFlagger.h -text -RTCP/CNProc/src/PreCorrelationFlagger.cc -text -RTCP/CNProc/src/PreCorrelationFlagger.h -text -RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.cc -text -RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.h -text -RTCP/CNProc/src/Ring.h -text -RTCP/CNProc/src/Stokes.cc -text -RTCP/CNProc/src/Stokes.h -text -RTCP/CNProc/src/StokesAsm.S -text -RTCP/CNProc/src/StokesAsm.h -text -RTCP/CNProc/src/Trigger.h -text -RTCP/CNProc/test/FlaggerTest-01-11-11.txt -text -RTCP/CNProc/test/FlaggerTest-1subband.parset -text -RTCP/CNProc/test/FlaggerTest.parset -text -RTCP/CNProc/test/RFI-test.parset -text -RTCP/CNProc/test/filterTestOutput.dat -text -RTCP/CNProc/test/filterTestResult.ps -text -RTCP/CNProc/test/inversePPFTestOutput.dat -text -RTCP/CNProc/test/inversePPFTestResult.ps -text -RTCP/CNProc/test/run-FlaggerTest -text -RTCP/CNProc/test/run-RFI-test -text -RTCP/CNProc/test/tCN_Processing_alloc.cc -text -RTCP/CNProc/test/tCN_Processing_alloc.parset -text -RTCP/CNProc/test/tCN_Processing_alloc.sh -text -RTCP/CNProc/test/tDedispersion.cc -text -RTCP/CNProc/test/tFIR_Asm.cc -text -RTCP/CNProc/test/tInversePPF.cc -text -RTCP/CNProc/test/tPencilBeamFormer.cc -text -RTCP/CNProc/test/tPencilBeamFormer.sh -text -RTCP/CNProc/test/tStokes.cc -text -RTCP/CNProc/test/tStokes.sh -text -RTCP/CNProc/test/tStokesAsm.cc -text RTCP/Cobalt/BrokenAntennaInfo/CMakeLists.txt -text RTCP/Cobalt/BrokenAntennaInfo/test/CMakeLists.txt -text RTCP/Cobalt/BrokenAntennaInfo/test/debugbeaminfo.py -text @@ -4132,164 +4069,6 @@ RTCP/Cobalt/clAmdFft/samples/statisticalTimer.h -text RTCP/Cobalt/clAmdFft/samples/stdafx.cpp -text RTCP/Cobalt/clAmdFft/samples/stdafx.h -text RTCP/Cobalt/clAmdFft/samples/targetver.h -text -RTCP/IONProc/src/CommandServer.cc -text -RTCP/IONProc/src/CommandServer.h -text -RTCP/IONProc/src/GlobalVars.cc -text -RTCP/IONProc/src/GlobalVars.h -text -RTCP/IONProc/src/IONProc.supp -text -RTCP/IONProc/src/Job.cc -text -RTCP/IONProc/src/Job.h -text -RTCP/IONProc/src/JobQueue.cc -text -RTCP/IONProc/src/JobQueue.h -text -RTCP/IONProc/src/SSH.cc -text -RTCP/IONProc/src/SSH.h -text -RTCP/IONProc/src/StreamMultiplexer.cc -text -RTCP/IONProc/src/StreamMultiplexer.h -text -RTCP/IONProc/src/casarc -text -RTCP/IONProc/src/generateDelays.cc -text -RTCP/IONProc/src/recreateFeedback.sh -text -RTCP/IONProc/test/CMakeLists.txt -text -RTCP/IONProc/test/RTCP.parset -text -RTCP/IONProc/test/tDelayCompensation.cc -text -RTCP/IONProc/test/tDelayCompensation.parset -text -RTCP/IONProc/test/tDelayCompensation.sh -text -RTCP/IONProc/test/tRSP.cc -text -RTCP/IONProc/test/tRSP.in_16bit -text -RTCP/IONProc/test/tRSP.in_8bit -text -RTCP/IONProc/test/tRSP.sh -text -RTCP/IONProc/test/tRSP.stdout -text -RTCP/IONProc/test/tSSH.cc -text -RTCP/IONProc/test/tSSH.sh -text -RTCP/IONProc/test/tSSH.stdout -text -RTCP/Interface/include/Interface/BGPAsm.h -text -RTCP/Interface/include/Interface/BeamCoordinates.h -text -RTCP/Interface/include/Interface/BeamFormedData.h -text -RTCP/Interface/include/Interface/DataFactory.h -text -RTCP/Interface/include/Interface/FakeData.h -text -RTCP/Interface/include/Interface/FinalMetaData.h -text -RTCP/Interface/include/Interface/InverseFilteredData.h -text -RTCP/Interface/include/Interface/OutputTypes.h -text -RTCP/Interface/include/Interface/SetOperations.h -text -RTCP/Interface/include/Interface/SmartPtr.h -text -RTCP/Interface/include/Interface/Stream.h -text -RTCP/Interface/include/Interface/StreamableData.h -text -RTCP/Interface/include/Interface/TransposedBeamFormedData.h -text -RTCP/Interface/include/Interface/TriggerData.h -text -RTCP/Interface/src/BGPAsm.S -text -RTCP/Interface/src/BeamCoordinates.cc -text -RTCP/Interface/src/DataFactory.cc -text -RTCP/Interface/src/FinalMetaData.cc -text -RTCP/Interface/src/Stream.cc -text -RTCP/Interface/test/tCorrelatedData.cc -text -RTCP/Interface/test/tMultiDimArray.cc -text -RTCP/MetaDataGatherer/CMakeLists.txt -text -RTCP/MetaDataGatherer/test/CMakeLists.txt -text -RTCP/MetaDataGatherer/test/debugbeaminfo.py -text -RTCP/MetaDataGatherer/test/failedtilesinfo.parset -text -RTCP/MetaDataGatherer/test/tfailedtilesinfo.run -text -RTCP/MetaDataGatherer/test/tfailedtilesinfo.sh -text -RTCP/MetaDataGatherer/test/tfailedtilesinfo.stdout -text -RTCP/RTCPTools/src/tbb-crc-test.cc -text -RTCP/RTCPTools/src/tbb-dumpframes.cc -text -RTCP/Run/CMakeLists.txt -text -RTCP/Run/src/BGPPartition.sh -text -RTCP/Run/src/BlueGeneCheck.sh -text -RTCP/Run/src/BlueGeneControl.conf -text -RTCP/Run/src/CEPlogProcessorSettings.cc -text -RTCP/Run/src/CMakeLists.txt -text -RTCP/Run/src/CNProcessing.sh -text -RTCP/Run/src/IONProcessing.sh -text -RTCP/Run/src/LOFAR/CMakeLists.txt -text -RTCP/Run/src/LOFAR/CommandClient.py -text -RTCP/Run/src/LOFAR/LogValidators.py -text -RTCP/Run/src/LOFAR/Logger.py -text -RTCP/Run/src/LOFAR/ObservationID.py -text -RTCP/Run/src/LOFAR/Parset.py -text -RTCP/Run/src/LOFAR/ParsetTester.py -text -RTCP/Run/src/LOFAR/Partitions.py -text -RTCP/Run/src/LOFAR/RingCoordinates.py -text -RTCP/Run/src/LOFAR/Stations.py -text -RTCP/Run/src/LOFAR/__init__.py -text -RTCP/Run/src/LogArchiver.sh -text -RTCP/Run/src/MAC+IP.dat -text -RTCP/Run/src/RSPConnections.dat -text -RTCP/Run/src/casarc -text -RTCP/Run/src/commandOLAP.py -text -RTCP/Run/src/controller.sh -text -RTCP/Run/src/deploy/Makefile -text -RTCP/Run/src/generate_OLAP.parset.pl -text -RTCP/Run/src/gracefullyStopBGProcessing.sh -text -RTCP/Run/src/locations.sh.in -text -RTCP/Run/src/multitail-olap.conf -text -RTCP/Run/src/routeToCobalt -text -RTCP/Run/src/tools/CMakeLists.txt -text -RTCP/Run/src/tools/analyzer.c -text -RTCP/Run/src/tools/common.c -text -RTCP/Run/src/tools/common.h -text -RTCP/Run/src/tools/generator.c -text -RTCP/Run/src/tools/packetanalysis.c -text -RTCP/Run/src/tools/udp-copy.c -text -RTCP/Run/src/util/Aborter.py -text -RTCP/Run/src/util/CMakeLists.txt -text -RTCP/Run/src/util/Commands.py -text -RTCP/Run/src/util/Hosts.py -text -RTCP/Run/src/util/Parset.py -text -RTCP/Run/src/util/__init__.py -text -RTCP/Run/src/util/dateutil.py -text -RTCP/Run/src/util/shlex.py -text -RTCP/Run/src/watchlogs.sh -text -RTCP/Run/test/OLAP.parset -text -RTCP/Run/test/RTCP-validate.parset -text -RTCP/Run/test/test.py -text -RTCP/Run/test/validate.py -text -RTCP/Storage/include/Storage/ExitOnClosedStdin.h -text -RTCP/Storage/include/Storage/FastFileStream.h -text -RTCP/Storage/include/Storage/Format.h -text -RTCP/Storage/include/Storage/HDF5Attributes.h -text -RTCP/Storage/include/Storage/IOPriority.h -text -RTCP/Storage/include/Storage/MSWriterCorrelated.h -text -RTCP/Storage/include/Storage/MSWriterDAL.h -text -RTCP/Storage/include/Storage/MSWriterFile.h -text -RTCP/Storage/include/Storage/MSWriterNull.h -text -RTCP/Storage/include/Storage/MeasurementSetFormat.h -text -RTCP/Storage/include/Storage/OutputThread.h -text -RTCP/Storage/include/Storage/TBB_StaticMapping.h -text -RTCP/Storage/include/Storage/TBB_Writer.h -text -RTCP/Storage/src/ExitOnClosedStdin.cc -text -RTCP/Storage/src/FastFileStream.cc -text -RTCP/Storage/src/Format.cc -text -RTCP/Storage/src/MSWriterCorrelated.cc -text -RTCP/Storage/src/MSWriterDAL.cc -text -RTCP/Storage/src/MSWriterFile.cc -text -RTCP/Storage/src/MSWriterNull.cc -text -RTCP/Storage/src/MeasurementSetFormat.cc -text -RTCP/Storage/src/OutputThread.cc -text -RTCP/Storage/src/TBB_StaticMapping.cc -text -RTCP/Storage/src/TBB_Writer.cc -text -RTCP/Storage/src/TBB_Writer_main.cc -text -RTCP/Storage/src/createHeaders.cc -text -RTCP/Storage/src/gnuplotMS.sh -text -RTCP/Storage/src/plotMS.cc -text -RTCP/Storage/test/tDAL.cc -text -RTCP/Storage/test/tFastFileStream.cc -text -RTCP/Storage/test/tMSWriterCorrelated.cc -text -RTCP/Storage/test/tMSWriterCorrelated.in_1/AntennaSets.conf -text -RTCP/Storage/test/tMSWriterCorrelated.in_1/CS013-AntennaField.conf -text -RTCP/Storage/test/tMSWriterCorrelated.parset -text -RTCP/Storage/test/tMSWriterCorrelated.run -text -RTCP/Storage/test/tMSWriterCorrelated.sh -text -RTCP/Storage/test/tMSWriterCorrelated.stdout -text -RTCP/Storage/test/tMSWriterDAL.cc -text -RTCP/Storage/test/tMSWriterDAL.parset -text -RTCP/Storage/test/tMSWriterDAL.sh -text -RTCP/Storage/test/tMeasurementSetFormat.parset-j2000 -text -RTCP/Storage/test/tMeasurementSetFormat.parset-sun -text -RTCP/Storage/test/tTBB_StaticMapping.cc -text -RTCP/Storage/test/tTBB_StaticMapping.sh -text -RTCP/Storage/test/tTBB_Writer-spectral.parset -text -RTCP/Storage/test/tTBB_Writer-transient.parset -text -RTCP/Storage/test/tTBB_Writer-verify.py -text -RTCP/Storage/test/tTBB_Writer.sh -text SAS/OTB/OTB-distribution/assembly.xml -text SAS/OTB/OTB-distribution/pom.xml -text SAS/OTB/OTB/assembly.xml -text diff --git a/.gitignore b/.gitignore index 4b7122446833768efc8b64ca839d8ff3630dd5f0..1b49be898dcab6ea5c79243fe30e3feea59a2b22 100644 --- a/.gitignore +++ b/.gitignore @@ -215,33 +215,12 @@ MAC/Test/TestHarness/TSE/lofarconf MAC/Tools/Makefile.common MAC/Tools/autoconf_share MAC/Tools/lofarconf -RTCP/CNProc/Makefile.common -RTCP/CNProc/autoconf_share -RTCP/CNProc/lofarconf RTCP/Cobalt/CoInterface/Makefile.common RTCP/Cobalt/CoInterface/autoconf_share RTCP/Cobalt/CoInterface/lofarconf RTCP/Cobalt/OutputProc/Makefile.common RTCP/Cobalt/OutputProc/autoconf_share RTCP/Cobalt/OutputProc/lofarconf -RTCP/FCNP/Makefile.common -RTCP/FCNP/autoconf_share -RTCP/FCNP/lofarconf -RTCP/IONProc/Makefile.common -RTCP/IONProc/autoconf_share -RTCP/IONProc/lofarconf -RTCP/Interface/Makefile.common -RTCP/Interface/autoconf_share -RTCP/Interface/lofarconf -RTCP/RTCPTools/Makefile.common -RTCP/RTCPTools/autoconf_share -RTCP/RTCPTools/lofarconf -RTCP/Run/Makefile.common -RTCP/Run/autoconf_share -RTCP/Run/lofarconf -RTCP/Storage/Makefile.common -RTCP/Storage/autoconf_share -RTCP/Storage/lofarconf SAS/OTB/OTB-distribution/*.classpath SAS/OTB/OTB-distribution/*.project SAS/OTB/OTB-distribution/*.settings diff --git a/CMake/CMakeASM-BGPInformation.cmake b/CMake/CMakeASM-BGPInformation.cmake deleted file mode 100644 index 9a2c1ee0d40431552a456942357b3a2c3214a180..0000000000000000000000000000000000000000 --- a/CMake/CMakeASM-BGPInformation.cmake +++ /dev/null @@ -1,32 +0,0 @@ -# Set all the assembler specific variables, like filename suffixes, compile -# rules, etc. If necessary you can override the assembler specific variables -# by setting them before including the generic file. -# -# See http://www.vtk.org/Wiki/CMake/Assembler for details. - -# Copyright (C) 2008-2010 -# ASTRON (Netherlands Foundation for Research in Astronomy) -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -set(ASM_DIALECT "-BGP") -set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS S) -set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <FLAGS> -c -o <OBJECT> <SOURCE>") -set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>") -include(CMakeASMInformation) -set(ASM_DIALECT) diff --git a/CMake/CMakeDetermineASM-BGPCompiler.cmake b/CMake/CMakeDetermineASM-BGPCompiler.cmake deleted file mode 100644 index bd7a18ec3ad4060624af367cf522b1dc3412a5a6..0000000000000000000000000000000000000000 --- a/CMake/CMakeDetermineASM-BGPCompiler.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# Determine the compiler to use for ASM using BGP syntax. Basically you just -# set CMAKE_ASM-BGP_COMPILER to the name of the BGP assembler. -# -# See http://www.vtk.org/Wiki/CMake/Assembler for details - -# Copyright (C) 2008-2010 -# ASTRON (Netherlands Foundation for Research in Astronomy) -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -set(ASM_DIALECT "-BGP") -set(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ${CMAKE_ASM_COMPILER}) -include(CMakeDetermineASMCompiler) -set(ASM_DIALECT) diff --git a/CMake/CMakeTestASM-BGPCompiler.cmake b/CMake/CMakeTestASM-BGPCompiler.cmake deleted file mode 100644 index 6e1841fc656ea856bbd701034462aad70aaea04e..0000000000000000000000000000000000000000 --- a/CMake/CMakeTestASM-BGPCompiler.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# Test whether the assembler works. This is not really possible. Instead it -# just tests whether the assembler has been found, i.e. whether the variable -# CMAKE_ASM-BGP_COMPILER has been set. -# -# See http://www.vtk.org/Wiki/CMake/Assembler for details - -# Copyright (C) 2008-2010 -# ASTRON (Netherlands Foundation for Research in Astronomy) -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -set(ASM_DIALECT "-BGP") -include(CMakeTestASMCompiler) -set(ASM_DIALECT) diff --git a/CMake/FindMASS.cmake b/CMake/FindMASS.cmake deleted file mode 100644 index 4033960c2de3cf89a3b6613b05e3e710ab6e0073..0000000000000000000000000000000000000000 --- a/CMake/FindMASS.cmake +++ /dev/null @@ -1,53 +0,0 @@ -# - Try to find MASS, the IBM BG/P Mathematical Acceleration Subsystem -# Variables used by this module: -# MASS_ROOT_DIR - MASS root directory -# Variables defined by this module: -# MASS_FOUND - system has MASS -# MASS_INCLUDE_DIR - the MASS include directory (cached) -# MASS_INCLUDE_DIRS - the MASS include directories -# (identical to MASS_INCLUDE_DIR) -# MASS_LIBRARY - the scalar math library (cached) -# MASSV_LIBRARY - the vector math library (cached) -# MASS_LIBRARIES - all MASS libraries -# -# CAUTION: It is not guaranteed that the version of MASS found by this -# macro can be used on the BG/P, because we need to do cross-compilation. - -# Copyright (C) 2009 -# ASTRON (Netherlands Institute for Radio Astronomy) -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -# -# This file is part of the LOFAR software suite. -# The LOFAR software suite 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 3 of the License, or -# (at your option) any later version. -# -# The LOFAR software suite 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. -# -# You should have received a copy of the GNU General Public License along -# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -# -# $Id$ - -if(NOT MASS_FOUND) - - find_path(MASS_INCLUDE_DIR massv.h - HINTS ${MASS_ROOT_DIR} PATH_SUFFIXES include) - find_library(MASS_LIBRARY mass - HINTS ${MASS_ROOT_DIR} PATH_SUFFIXES lib) - find_library(MASSV_LIBRARY massv - HINTS ${MASS_ROOT_DIR} PATH_SUFFIXES lib) - mark_as_advanced(MASS_INCLUDE_DIR MASS_LIBRARY MASSV_LIBRARY) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(MASS DEFAULT_MSG - MASS_LIBRARY MASSV_LIBRARY MASS_INCLUDE_DIR) - - set(MASS_INCLUDE_DIRS ${MASS_INCLUDE_DIR}) - set(MASS_LIBRARIES ${MASS_LIBRARY} ${MASSV_LIBRARY}) - -endif(NOT MASS_FOUND) diff --git a/CMake/LofarPackageList.cmake b/CMake/LofarPackageList.cmake index 69b6a3025f281a93a52ff2f0e1c0a8ca77d8f8a4..b55ad59cad71869aeaf020e6e5d7b2cff439e45f 100644 --- a/CMake/LofarPackageList.cmake +++ b/CMake/LofarPackageList.cmake @@ -1,7 +1,7 @@ # - Create for each LOFAR package a variable containing the absolute path to # its source directory. # -# Generated by gen_LofarPackageList_cmake.sh at Tue May 27 12:24:18 CEST 2014 +# Generated by gen_LofarPackageList_cmake.sh at Fri Jun 6 07:38:57 UTC 2014 # # ---- DO NOT EDIT ---- # @@ -109,11 +109,6 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED) set(GCFTM_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/TM) set(GCFPVSS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/PVSS) set(GCFRTDB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/RTDB) - set(Interface_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Interface) - set(FCNP_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/FCNP) - set(CNProc_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/CNProc) - set(IONProc_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/IONProc) - set(Storage_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Storage) set(Run_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Run) set(Cobalt_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt) set(InputProc_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt/InputProc) diff --git a/LCS/Common/src/Net/Socket.cc b/LCS/Common/src/Net/Socket.cc index 7db5e8881b33f09717075354dac643afed1c59eb..5c1fc9c9f012900405edb05d0e80439749ff737c 100644 --- a/LCS/Common/src/Net/Socket.cc +++ b/LCS/Common/src/Net/Socket.cc @@ -793,11 +793,9 @@ int32 Socket::setBlocking (bool block) } if (itsSocketID >= 0) { // we must have a socket ofcourse -#if !defined HAVE_BGP if (fcntl (itsSocketID, F_SETFL, block ? 0 : O_NONBLOCK) < 0) { return (setErrno(SOCKOPT)); } -#endif itsIsBlocking = block; // register user wish LOG_TRACE_COND(formatString("Socket(%d):setBlocking(%s)", itsSocketID, block ? "true" : "false")); diff --git a/MAC/APL/APLCommon/src/swlevel.conf b/MAC/APL/APLCommon/src/swlevel.conf index 16fe70ab76e9a3c9a8f09d4b91a2f55f52cb6a17..146a520f99fbb91961add392c78f983487281402 100644 --- a/MAC/APL/APLCommon/src/swlevel.conf +++ b/MAC/APL/APLCommon/src/swlevel.conf @@ -8,20 +8,16 @@ 1:u:d:::SoftwareMonitor 1:u:d:::LogProcessor #1:u:d:::LogClient -1:u:d:::CEPlogProcessor 1:u:d:::ServiceBroker 1:u:d:::SASGateway # 2:u:d:r::_EPAStub 2:u:d:r::RSPDriver 2:u:d:r::TBBDriver -2:u:d:::BGPPartition # 3:u:d:::AMCServer 3:u:d:::CalServer 3:u:d:::BeamServer -3:u:d:::IONProcessing # IONProc makes the logdir, so start it before CNProc -3:u:d:::CNProcessing # 4:u:d:::HardwareMonitor # diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc index 64b50993a527ac17702aae0049bab4a7f29b0241..964b86e947c47dd3fc4c430939441d93d32138eb 100644 --- a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc +++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc @@ -25,7 +25,6 @@ #include <Common/Version.h> #include <Common/ParameterSet.h> -#include "BlueGeneMonitor.h" #include "ClusterMonitor.h" #include <CEPCU/Package__Version.h> @@ -43,15 +42,15 @@ int main(int argc, char* argv[]) LOG_INFO(Version::getInfo<CEPCUVersion>("CEPHardwareMonitor")); // Create tasks and call initial routines - BlueGeneMonitor* bgm(0); +// BlueGeneMonitor* bgm(0); ClusterMonitor* ctm(0); // monitor BLUEGENE? - if (globalParameterSet()->getUint32("WatchBlueGene",0)) { - bgm = new BlueGeneMonitor("BlueGeneMonitor"); - bgm->start(); - LOG_INFO("Monitoring the BlueGene"); - } +// if (globalParameterSet()->getUint32("WatchBlueGene",0)) { +// bgm = new BlueGeneMonitor("BlueGeneMonitor"); +// bgm->start(); +// LOG_INFO("Monitoring the BlueGene"); +// } // monitor CEP2Cluster? if (globalParameterSet()->getUint32("WatchCluster",0)) { @@ -61,7 +60,8 @@ int main(int argc, char* argv[]) } // sanity check - if (!bgm && !ctm) { +// if (!bgm && !ctm) { + if (!ctm) { LOG_FATAL_STR("Non of the monitortask (WatchBlueGene, WatchCluster) " "was switched on in the configfile, terminating program"); return (0); @@ -71,9 +71,9 @@ int main(int argc, char* argv[]) GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown GCFScheduler::instance()->run(); // until stop was called - if (bgm) { - bgm->quit(); // let task quit nicely - } +// if (bgm) { +// bgm->quit(); // let task quit nicely +// } if (ctm) { ctm->quit(); // let task quit nicely } diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt index 95605102d92626dd153f587025c910e32a74c9dc..f0707e959340b2467fbe3b864e77a4e77948a914 100644 --- a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt +++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt @@ -2,7 +2,6 @@ lofar_add_bin_program(CEPHardwareMonitor CEPHardwareMonitorMain.cc - BlueGeneMonitor.cc ClusterMonitor.cc) install(FILES diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapoints.dpl b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapoints.dpl deleted file mode 100644 index 4fc0af7c22e43a972674413922a870b8d62c0a6f..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapoints.dpl +++ /dev/null @@ -1,1303 +0,0 @@ -# -# This file was generated by create_db_files v2.0 on Tue Jun 9 10:19:11 UTC 2009 -# -DpName TypeName ID -Adder0 Adder 1000 -Adder1 Adder 1001 -Adder10 Adder 1002 -Adder100 Adder 1003 -Adder101 Adder 1004 -Adder102 Adder 1005 -Adder103 Adder 1006 -Adder104 Adder 1007 -Adder105 Adder 1008 -Adder106 Adder 1009 -Adder107 Adder 1010 -Adder108 Adder 1011 -Adder109 Adder 1012 -Adder11 Adder 1013 -Adder110 Adder 1014 -Adder111 Adder 1015 -Adder112 Adder 1016 -Adder113 Adder 1017 -Adder114 Adder 1018 -Adder115 Adder 1019 -Adder116 Adder 1020 -Adder117 Adder 1021 -Adder118 Adder 1022 -Adder119 Adder 1023 -Adder12 Adder 1024 -Adder120 Adder 1025 -Adder121 Adder 1026 -Adder122 Adder 1027 -Adder123 Adder 1028 -Adder124 Adder 1029 -Adder125 Adder 1030 -Adder126 Adder 1031 -Adder127 Adder 1032 -Adder128 Adder 1033 -Adder129 Adder 1034 -Adder13 Adder 1035 -Adder130 Adder 1036 -Adder131 Adder 1037 -Adder132 Adder 1038 -Adder133 Adder 1039 -Adder134 Adder 1040 -Adder135 Adder 1041 -Adder136 Adder 1042 -Adder137 Adder 1043 -Adder138 Adder 1044 -Adder139 Adder 1045 -Adder14 Adder 1046 -Adder140 Adder 1047 -Adder141 Adder 1048 -Adder142 Adder 1049 -Adder143 Adder 1050 -Adder144 Adder 1051 -Adder145 Adder 1052 -Adder146 Adder 1053 -Adder147 Adder 1054 -Adder148 Adder 1055 -Adder149 Adder 1056 -Adder15 Adder 1057 -Adder150 Adder 1058 -Adder151 Adder 1059 -Adder152 Adder 1060 -Adder153 Adder 1061 -Adder154 Adder 1062 -Adder155 Adder 1063 -Adder156 Adder 1064 -Adder157 Adder 1065 -Adder158 Adder 1066 -Adder159 Adder 1067 -Adder16 Adder 1068 -Adder160 Adder 1069 -Adder161 Adder 1070 -Adder162 Adder 1071 -Adder163 Adder 1072 -Adder164 Adder 1073 -Adder165 Adder 1074 -Adder166 Adder 1075 -Adder167 Adder 1076 -Adder168 Adder 1077 -Adder169 Adder 1078 -Adder17 Adder 1079 -Adder170 Adder 1080 -Adder171 Adder 1081 -Adder172 Adder 1082 -Adder173 Adder 1083 -Adder174 Adder 1084 -Adder175 Adder 1085 -Adder176 Adder 1086 -Adder177 Adder 1087 -Adder178 Adder 1088 -Adder179 Adder 1089 -Adder18 Adder 1090 -Adder180 Adder 1091 -Adder181 Adder 1092 -Adder182 Adder 1093 -Adder183 Adder 1094 -Adder184 Adder 1095 -Adder185 Adder 1096 -Adder186 Adder 1097 -Adder187 Adder 1098 -Adder188 Adder 1099 -Adder189 Adder 1100 -Adder19 Adder 1101 -Adder190 Adder 1102 -Adder191 Adder 1103 -Adder192 Adder 1104 -Adder193 Adder 1105 -Adder194 Adder 1106 -Adder195 Adder 1107 -Adder196 Adder 1108 -Adder197 Adder 1109 -Adder198 Adder 1110 -Adder199 Adder 1111 -Adder2 Adder 1112 -Adder20 Adder 1113 -Adder200 Adder 1114 -Adder201 Adder 1115 -Adder202 Adder 1116 -Adder203 Adder 1117 -Adder204 Adder 1118 -Adder205 Adder 1119 -Adder206 Adder 1120 -Adder207 Adder 1121 -Adder208 Adder 1122 -Adder209 Adder 1123 -Adder21 Adder 1124 -Adder210 Adder 1125 -Adder211 Adder 1126 -Adder212 Adder 1127 -Adder213 Adder 1128 -Adder214 Adder 1129 -Adder215 Adder 1130 -Adder216 Adder 1131 -Adder217 Adder 1132 -Adder218 Adder 1133 -Adder219 Adder 1134 -Adder22 Adder 1135 -Adder220 Adder 1136 -Adder221 Adder 1137 -Adder222 Adder 1138 -Adder223 Adder 1139 -Adder224 Adder 1140 -Adder225 Adder 1141 -Adder226 Adder 1142 -Adder227 Adder 1143 -Adder228 Adder 1144 -Adder229 Adder 1145 -Adder23 Adder 1146 -Adder230 Adder 1147 -Adder231 Adder 1148 -Adder232 Adder 1149 -Adder233 Adder 1150 -Adder234 Adder 1151 -Adder235 Adder 1152 -Adder236 Adder 1153 -Adder237 Adder 1154 -Adder238 Adder 1155 -Adder239 Adder 1156 -Adder24 Adder 1157 -Adder240 Adder 1158 -Adder241 Adder 1159 -Adder242 Adder 1160 -Adder243 Adder 1161 -Adder244 Adder 1162 -Adder245 Adder 1163 -Adder246 Adder 1164 -Adder247 Adder 1165 -Adder248 Adder 1166 -Adder249 Adder 1167 -Adder25 Adder 1168 -Adder250 Adder 1169 -Adder251 Adder 1170 -Adder252 Adder 1171 -Adder253 Adder 1172 -Adder254 Adder 1173 -Adder255 Adder 1174 -Adder26 Adder 1175 -Adder27 Adder 1176 -Adder28 Adder 1177 -Adder29 Adder 1178 -Adder3 Adder 1179 -Adder30 Adder 1180 -Adder31 Adder 1181 -Adder32 Adder 1182 -Adder33 Adder 1183 -Adder34 Adder 1184 -Adder35 Adder 1185 -Adder36 Adder 1186 -Adder37 Adder 1187 -Adder38 Adder 1188 -Adder39 Adder 1189 -Adder4 Adder 1190 -Adder40 Adder 1191 -Adder41 Adder 1192 -Adder42 Adder 1193 -Adder43 Adder 1194 -Adder44 Adder 1195 -Adder45 Adder 1196 -Adder46 Adder 1197 -Adder47 Adder 1198 -Adder48 Adder 1199 -Adder49 Adder 1200 -Adder5 Adder 1201 -Adder50 Adder 1202 -Adder51 Adder 1203 -Adder52 Adder 1204 -Adder53 Adder 1205 -Adder54 Adder 1206 -Adder55 Adder 1207 -Adder56 Adder 1208 -Adder57 Adder 1209 -Adder58 Adder 1210 -Adder59 Adder 1211 -Adder6 Adder 1212 -Adder60 Adder 1213 -Adder61 Adder 1214 -Adder62 Adder 1215 -Adder63 Adder 1216 -Adder64 Adder 1217 -Adder65 Adder 1218 -Adder66 Adder 1219 -Adder67 Adder 1220 -Adder68 Adder 1221 -Adder69 Adder 1222 -Adder7 Adder 1223 -Adder70 Adder 1224 -Adder71 Adder 1225 -Adder72 Adder 1226 -Adder73 Adder 1227 -Adder74 Adder 1228 -Adder75 Adder 1229 -Adder76 Adder 1230 -Adder77 Adder 1231 -Adder78 Adder 1232 -Adder79 Adder 1233 -Adder8 Adder 1234 -Adder80 Adder 1235 -Adder81 Adder 1236 -Adder82 Adder 1237 -Adder83 Adder 1238 -Adder84 Adder 1239 -Adder85 Adder 1240 -Adder86 Adder 1241 -Adder87 Adder 1242 -Adder88 Adder 1243 -Adder89 Adder 1244 -Adder9 Adder 1245 -Adder90 Adder 1246 -Adder91 Adder 1247 -Adder92 Adder 1248 -Adder93 Adder 1249 -Adder94 Adder 1250 -Adder95 Adder 1251 -Adder96 Adder 1252 -Adder97 Adder 1253 -Adder98 Adder 1254 -Adder99 Adder 1255 -InputBuffer0 InputBuffer 1256 -InputBuffer1 InputBuffer 1257 -InputBuffer10 InputBuffer 1258 -InputBuffer100 InputBuffer 1259 -InputBuffer101 InputBuffer 1260 -InputBuffer102 InputBuffer 1261 -InputBuffer103 InputBuffer 1262 -InputBuffer104 InputBuffer 1263 -InputBuffer105 InputBuffer 1264 -InputBuffer106 InputBuffer 1265 -InputBuffer107 InputBuffer 1266 -InputBuffer108 InputBuffer 1267 -InputBuffer109 InputBuffer 1268 -InputBuffer11 InputBuffer 1269 -InputBuffer110 InputBuffer 1270 -InputBuffer111 InputBuffer 1271 -InputBuffer112 InputBuffer 1272 -InputBuffer113 InputBuffer 1273 -InputBuffer114 InputBuffer 1274 -InputBuffer115 InputBuffer 1275 -InputBuffer116 InputBuffer 1276 -InputBuffer117 InputBuffer 1277 -InputBuffer118 InputBuffer 1278 -InputBuffer119 InputBuffer 1279 -InputBuffer12 InputBuffer 1280 -InputBuffer120 InputBuffer 1281 -InputBuffer121 InputBuffer 1282 -InputBuffer122 InputBuffer 1283 -InputBuffer123 InputBuffer 1284 -InputBuffer124 InputBuffer 1285 -InputBuffer125 InputBuffer 1286 -InputBuffer126 InputBuffer 1287 -InputBuffer127 InputBuffer 1288 -InputBuffer13 InputBuffer 1289 -InputBuffer14 InputBuffer 1290 -InputBuffer15 InputBuffer 1291 -InputBuffer16 InputBuffer 1292 -InputBuffer17 InputBuffer 1293 -InputBuffer18 InputBuffer 1294 -InputBuffer19 InputBuffer 1295 -InputBuffer2 InputBuffer 1296 -InputBuffer20 InputBuffer 1297 -InputBuffer21 InputBuffer 1298 -InputBuffer22 InputBuffer 1299 -InputBuffer23 InputBuffer 1300 -InputBuffer24 InputBuffer 1301 -InputBuffer25 InputBuffer 1302 -InputBuffer26 InputBuffer 1303 -InputBuffer27 InputBuffer 1304 -InputBuffer28 InputBuffer 1305 -InputBuffer29 InputBuffer 1306 -InputBuffer3 InputBuffer 1307 -InputBuffer30 InputBuffer 1308 -InputBuffer31 InputBuffer 1309 -InputBuffer32 InputBuffer 1310 -InputBuffer33 InputBuffer 1311 -InputBuffer34 InputBuffer 1312 -InputBuffer35 InputBuffer 1313 -InputBuffer36 InputBuffer 1314 -InputBuffer37 InputBuffer 1315 -InputBuffer38 InputBuffer 1316 -InputBuffer39 InputBuffer 1317 -InputBuffer4 InputBuffer 1318 -InputBuffer40 InputBuffer 1319 -InputBuffer41 InputBuffer 1320 -InputBuffer42 InputBuffer 1321 -InputBuffer43 InputBuffer 1322 -InputBuffer44 InputBuffer 1323 -InputBuffer45 InputBuffer 1324 -InputBuffer46 InputBuffer 1325 -InputBuffer47 InputBuffer 1326 -InputBuffer48 InputBuffer 1327 -InputBuffer49 InputBuffer 1328 -InputBuffer5 InputBuffer 1329 -InputBuffer50 InputBuffer 1330 -InputBuffer51 InputBuffer 1331 -InputBuffer52 InputBuffer 1332 -InputBuffer53 InputBuffer 1333 -InputBuffer54 InputBuffer 1334 -InputBuffer55 InputBuffer 1335 -InputBuffer56 InputBuffer 1336 -InputBuffer57 InputBuffer 1337 -InputBuffer58 InputBuffer 1338 -InputBuffer59 InputBuffer 1339 -InputBuffer6 InputBuffer 1340 -InputBuffer60 InputBuffer 1341 -InputBuffer61 InputBuffer 1342 -InputBuffer62 InputBuffer 1343 -InputBuffer63 InputBuffer 1344 -InputBuffer64 InputBuffer 1345 -InputBuffer65 InputBuffer 1346 -InputBuffer66 InputBuffer 1347 -InputBuffer67 InputBuffer 1348 -InputBuffer68 InputBuffer 1349 -InputBuffer69 InputBuffer 1350 -InputBuffer7 InputBuffer 1351 -InputBuffer70 InputBuffer 1352 -InputBuffer71 InputBuffer 1353 -InputBuffer72 InputBuffer 1354 -InputBuffer73 InputBuffer 1355 -InputBuffer74 InputBuffer 1356 -InputBuffer75 InputBuffer 1357 -InputBuffer76 InputBuffer 1358 -InputBuffer77 InputBuffer 1359 -InputBuffer78 InputBuffer 1360 -InputBuffer79 InputBuffer 1361 -InputBuffer8 InputBuffer 1362 -InputBuffer80 InputBuffer 1363 -InputBuffer81 InputBuffer 1364 -InputBuffer82 InputBuffer 1365 -InputBuffer83 InputBuffer 1366 -InputBuffer84 InputBuffer 1367 -InputBuffer85 InputBuffer 1368 -InputBuffer86 InputBuffer 1369 -InputBuffer87 InputBuffer 1370 -InputBuffer88 InputBuffer 1371 -InputBuffer89 InputBuffer 1372 -InputBuffer9 InputBuffer 1373 -InputBuffer90 InputBuffer 1374 -InputBuffer91 InputBuffer 1375 -InputBuffer92 InputBuffer 1376 -InputBuffer93 InputBuffer 1377 -InputBuffer94 InputBuffer 1378 -InputBuffer95 InputBuffer 1379 -InputBuffer96 InputBuffer 1380 -InputBuffer97 InputBuffer 1381 -InputBuffer98 InputBuffer 1382 -InputBuffer99 InputBuffer 1383 -LOFAR CEPLOFAR 1384 -LOFAR_ObsSW CEPObsSW 1385 -LOFAR_ObsSW_TempObs0001 CEPObservation 1386 -LOFAR_ObsSW_TempObs0001_OnlineControl OnlineControl 1387 -LOFAR_ObsSW_TempObs0001_OnlineControl_BGPAppl BGPAppl 1388 -LOFAR_ObsSW_TempObs0001_OnlineControl_BGPAppl_BGPProc BGPProc 1389 -LOFAR_ObsSW_TempObs0001_OnlineControl_StorageAppl StorageAppl 1390 -LOFAR_ObsSW_TempObs0002 CEPObservation 1391 -LOFAR_ObsSW_TempObs0002_OnlineControl OnlineControl 1392 -LOFAR_ObsSW_TempObs0002_OnlineControl_BGPAppl BGPAppl 1393 -LOFAR_ObsSW_TempObs0002_OnlineControl_BGPAppl_BGPProc BGPProc 1394 -LOFAR_ObsSW_TempObs0002_OnlineControl_StorageAppl StorageAppl 1395 -LOFAR_ObsSW_TempObs0003 CEPObservation 1396 -LOFAR_ObsSW_TempObs0003_OnlineControl OnlineControl 1397 -LOFAR_ObsSW_TempObs0003_OnlineControl_BGPAppl BGPAppl 1398 -LOFAR_ObsSW_TempObs0003_OnlineControl_BGPAppl_BGPProc BGPProc 1399 -LOFAR_ObsSW_TempObs0003_OnlineControl_StorageAppl StorageAppl 1400 -LOFAR_ObsSW_TempObs0004 CEPObservation 1401 -LOFAR_ObsSW_TempObs0004_OnlineControl OnlineControl 1402 -LOFAR_ObsSW_TempObs0004_OnlineControl_BGPAppl BGPAppl 1403 -LOFAR_ObsSW_TempObs0004_OnlineControl_BGPAppl_BGPProc BGPProc 1404 -LOFAR_ObsSW_TempObs0004_OnlineControl_StorageAppl StorageAppl 1405 -LOFAR_ObsSW_TempObs0005 CEPObservation 1406 -LOFAR_ObsSW_TempObs0005_OnlineControl OnlineControl 1407 -LOFAR_ObsSW_TempObs0005_OnlineControl_BGPAppl BGPAppl 1408 -LOFAR_ObsSW_TempObs0005_OnlineControl_BGPAppl_BGPProc BGPProc 1409 -LOFAR_ObsSW_TempObs0005_OnlineControl_StorageAppl StorageAppl 1410 -LOFAR_ObsSW_TempObs0006 CEPObservation 1411 -LOFAR_ObsSW_TempObs0006_OnlineControl OnlineControl 1412 -LOFAR_ObsSW_TempObs0006_OnlineControl_BGPAppl BGPAppl 1413 -LOFAR_ObsSW_TempObs0006_OnlineControl_BGPAppl_BGPProc BGPProc 1414 -LOFAR_ObsSW_TempObs0006_OnlineControl_StorageAppl StorageAppl 1415 -LOFAR_ObsSW_TempObs0007 CEPObservation 1416 -LOFAR_ObsSW_TempObs0007_OnlineControl OnlineControl 1417 -LOFAR_ObsSW_TempObs0007_OnlineControl_BGPAppl BGPAppl 1418 -LOFAR_ObsSW_TempObs0007_OnlineControl_BGPAppl_BGPProc BGPProc 1419 -LOFAR_ObsSW_TempObs0007_OnlineControl_StorageAppl StorageAppl 1420 -LOFAR_ObsSW_TempObs0008 CEPObservation 1421 -LOFAR_ObsSW_TempObs0008_OnlineControl OnlineControl 1422 -LOFAR_ObsSW_TempObs0008_OnlineControl_BGPAppl BGPAppl 1423 -LOFAR_ObsSW_TempObs0008_OnlineControl_BGPAppl_BGPProc BGPProc 1424 -LOFAR_ObsSW_TempObs0008_OnlineControl_StorageAppl StorageAppl 1425 -LOFAR_ObsSW_TempObs0009 CEPObservation 1426 -LOFAR_ObsSW_TempObs0009_OnlineControl OnlineControl 1427 -LOFAR_ObsSW_TempObs0009_OnlineControl_BGPAppl BGPAppl 1428 -LOFAR_ObsSW_TempObs0009_OnlineControl_BGPAppl_BGPProc BGPProc 1429 -LOFAR_ObsSW_TempObs0009_OnlineControl_StorageAppl StorageAppl 1430 -LOFAR_ObsSW_TempObs0010 CEPObservation 1431 -LOFAR_ObsSW_TempObs0010_OnlineControl OnlineControl 1432 -LOFAR_ObsSW_TempObs0010_OnlineControl_BGPAppl BGPAppl 1433 -LOFAR_ObsSW_TempObs0010_OnlineControl_BGPAppl_BGPProc BGPProc 1434 -LOFAR_ObsSW_TempObs0010_OnlineControl_StorageAppl StorageAppl 1435 -LOFAR_ObsSW_TempObs0011 CEPObservation 1436 -LOFAR_ObsSW_TempObs0011_OnlineControl OnlineControl 1437 -LOFAR_ObsSW_TempObs0011_OnlineControl_BGPAppl BGPAppl 1438 -LOFAR_ObsSW_TempObs0011_OnlineControl_BGPAppl_BGPProc BGPProc 1439 -LOFAR_ObsSW_TempObs0011_OnlineControl_StorageAppl StorageAppl 1440 -LOFAR_ObsSW_TempObs0012 CEPObservation 1441 -LOFAR_ObsSW_TempObs0012_OnlineControl OnlineControl 1442 -LOFAR_ObsSW_TempObs0012_OnlineControl_BGPAppl BGPAppl 1443 -LOFAR_ObsSW_TempObs0012_OnlineControl_BGPAppl_BGPProc BGPProc 1444 -LOFAR_ObsSW_TempObs0012_OnlineControl_StorageAppl StorageAppl 1445 -LOFAR_ObsSW_TempObs0013 CEPObservation 1446 -LOFAR_ObsSW_TempObs0013_OnlineControl OnlineControl 1447 -LOFAR_ObsSW_TempObs0013_OnlineControl_BGPAppl BGPAppl 1448 -LOFAR_ObsSW_TempObs0013_OnlineControl_BGPAppl_BGPProc BGPProc 1449 -LOFAR_ObsSW_TempObs0013_OnlineControl_StorageAppl StorageAppl 1450 -LOFAR_ObsSW_TempObs0014 CEPObservation 1451 -LOFAR_ObsSW_TempObs0014_OnlineControl OnlineControl 1452 -LOFAR_ObsSW_TempObs0014_OnlineControl_BGPAppl BGPAppl 1453 -LOFAR_ObsSW_TempObs0014_OnlineControl_BGPAppl_BGPProc BGPProc 1454 -LOFAR_ObsSW_TempObs0014_OnlineControl_StorageAppl StorageAppl 1455 -LOFAR_ObsSW_TempObs0015 CEPObservation 1456 -LOFAR_ObsSW_TempObs0015_OnlineControl OnlineControl 1457 -LOFAR_ObsSW_TempObs0015_OnlineControl_BGPAppl BGPAppl 1458 -LOFAR_ObsSW_TempObs0015_OnlineControl_BGPAppl_BGPProc BGPProc 1459 -LOFAR_ObsSW_TempObs0015_OnlineControl_StorageAppl StorageAppl 1460 -LOFAR_ObsSW_TempObs0016 CEPObservation 1461 -LOFAR_ObsSW_TempObs0016_OnlineControl OnlineControl 1462 -LOFAR_ObsSW_TempObs0016_OnlineControl_BGPAppl BGPAppl 1463 -LOFAR_ObsSW_TempObs0016_OnlineControl_BGPAppl_BGPProc BGPProc 1464 -LOFAR_ObsSW_TempObs0016_OnlineControl_StorageAppl StorageAppl 1465 -LOFAR_ObsSW_TempObs0017 CEPObservation 1466 -LOFAR_ObsSW_TempObs0017_OnlineControl OnlineControl 1467 -LOFAR_ObsSW_TempObs0017_OnlineControl_BGPAppl BGPAppl 1468 -LOFAR_ObsSW_TempObs0017_OnlineControl_BGPAppl_BGPProc BGPProc 1469 -LOFAR_ObsSW_TempObs0017_OnlineControl_StorageAppl StorageAppl 1470 -LOFAR_ObsSW_TempObs0018 CEPObservation 1471 -LOFAR_ObsSW_TempObs0018_OnlineControl OnlineControl 1472 -LOFAR_ObsSW_TempObs0018_OnlineControl_BGPAppl BGPAppl 1473 -LOFAR_ObsSW_TempObs0018_OnlineControl_BGPAppl_BGPProc BGPProc 1474 -LOFAR_ObsSW_TempObs0018_OnlineControl_StorageAppl StorageAppl 1475 -LOFAR_ObsSW_TempObs0019 CEPObservation 1476 -LOFAR_ObsSW_TempObs0019_OnlineControl OnlineControl 1477 -LOFAR_ObsSW_TempObs0019_OnlineControl_BGPAppl BGPAppl 1478 -LOFAR_ObsSW_TempObs0019_OnlineControl_BGPAppl_BGPProc BGPProc 1479 -LOFAR_ObsSW_TempObs0019_OnlineControl_StorageAppl StorageAppl 1480 -LOFAR_ObsSW_TempObs0020 CEPObservation 1481 -LOFAR_ObsSW_TempObs0020_OnlineControl OnlineControl 1482 -LOFAR_ObsSW_TempObs0020_OnlineControl_BGPAppl BGPAppl 1483 -LOFAR_ObsSW_TempObs0020_OnlineControl_BGPAppl_BGPProc BGPProc 1484 -LOFAR_ObsSW_TempObs0020_OnlineControl_StorageAppl StorageAppl 1485 -LOFAR_ObsSW_TempObs0021 CEPObservation 1486 -LOFAR_ObsSW_TempObs0021_OnlineControl OnlineControl 1487 -LOFAR_ObsSW_TempObs0021_OnlineControl_BGPAppl BGPAppl 1488 -LOFAR_ObsSW_TempObs0021_OnlineControl_BGPAppl_BGPProc BGPProc 1489 -LOFAR_ObsSW_TempObs0021_OnlineControl_StorageAppl StorageAppl 1490 -LOFAR_ObsSW_TempObs0022 CEPObservation 1491 -LOFAR_ObsSW_TempObs0022_OnlineControl OnlineControl 1492 -LOFAR_ObsSW_TempObs0022_OnlineControl_BGPAppl BGPAppl 1493 -LOFAR_ObsSW_TempObs0022_OnlineControl_BGPAppl_BGPProc BGPProc 1494 -LOFAR_ObsSW_TempObs0022_OnlineControl_StorageAppl StorageAppl 1495 -LOFAR_ObsSW_TempObs0023 CEPObservation 1496 -LOFAR_ObsSW_TempObs0023_OnlineControl OnlineControl 1497 -LOFAR_ObsSW_TempObs0023_OnlineControl_BGPAppl BGPAppl 1498 -LOFAR_ObsSW_TempObs0023_OnlineControl_BGPAppl_BGPProc BGPProc 1499 -LOFAR_ObsSW_TempObs0023_OnlineControl_StorageAppl StorageAppl 1500 -LOFAR_ObsSW_TempObs0024 CEPObservation 1501 -LOFAR_ObsSW_TempObs0024_OnlineControl OnlineControl 1502 -LOFAR_ObsSW_TempObs0024_OnlineControl_BGPAppl BGPAppl 1503 -LOFAR_ObsSW_TempObs0024_OnlineControl_BGPAppl_BGPProc BGPProc 1504 -LOFAR_ObsSW_TempObs0024_OnlineControl_StorageAppl StorageAppl 1505 -LOFAR_ObsSW_TempObs0025 CEPObservation 1506 -LOFAR_ObsSW_TempObs0025_OnlineControl OnlineControl 1507 -LOFAR_ObsSW_TempObs0025_OnlineControl_BGPAppl BGPAppl 1508 -LOFAR_ObsSW_TempObs0025_OnlineControl_BGPAppl_BGPProc BGPProc 1509 -LOFAR_ObsSW_TempObs0025_OnlineControl_StorageAppl StorageAppl 1510 -LOFAR_ObsSW_TempObs0026 CEPObservation 1511 -LOFAR_ObsSW_TempObs0026_OnlineControl OnlineControl 1512 -LOFAR_ObsSW_TempObs0026_OnlineControl_BGPAppl BGPAppl 1513 -LOFAR_ObsSW_TempObs0026_OnlineControl_BGPAppl_BGPProc BGPProc 1514 -LOFAR_ObsSW_TempObs0026_OnlineControl_StorageAppl StorageAppl 1515 -LOFAR_ObsSW_TempObs0027 CEPObservation 1516 -LOFAR_ObsSW_TempObs0027_OnlineControl OnlineControl 1517 -LOFAR_ObsSW_TempObs0027_OnlineControl_BGPAppl BGPAppl 1518 -LOFAR_ObsSW_TempObs0027_OnlineControl_BGPAppl_BGPProc BGPProc 1519 -LOFAR_ObsSW_TempObs0027_OnlineControl_StorageAppl StorageAppl 1520 -LOFAR_ObsSW_TempObs0028 CEPObservation 1521 -LOFAR_ObsSW_TempObs0028_OnlineControl OnlineControl 1522 -LOFAR_ObsSW_TempObs0028_OnlineControl_BGPAppl BGPAppl 1523 -LOFAR_ObsSW_TempObs0028_OnlineControl_BGPAppl_BGPProc BGPProc 1524 -LOFAR_ObsSW_TempObs0028_OnlineControl_StorageAppl StorageAppl 1525 -LOFAR_ObsSW_TempObs0029 CEPObservation 1526 -LOFAR_ObsSW_TempObs0029_OnlineControl OnlineControl 1527 -LOFAR_ObsSW_TempObs0029_OnlineControl_BGPAppl BGPAppl 1528 -LOFAR_ObsSW_TempObs0029_OnlineControl_BGPAppl_BGPProc BGPProc 1529 -LOFAR_ObsSW_TempObs0029_OnlineControl_StorageAppl StorageAppl 1530 -LOFAR_ObsSW_TempObs0030 CEPObservation 1531 -LOFAR_ObsSW_TempObs0030_OnlineControl OnlineControl 1532 -LOFAR_ObsSW_TempObs0030_OnlineControl_BGPAppl BGPAppl 1533 -LOFAR_ObsSW_TempObs0030_OnlineControl_BGPAppl_BGPProc BGPProc 1534 -LOFAR_ObsSW_TempObs0030_OnlineControl_StorageAppl StorageAppl 1535 -LOFAR_ObsSW_TempObs0031 CEPObservation 1536 -LOFAR_ObsSW_TempObs0031_OnlineControl OnlineControl 1537 -LOFAR_ObsSW_TempObs0031_OnlineControl_BGPAppl BGPAppl 1538 -LOFAR_ObsSW_TempObs0031_OnlineControl_BGPAppl_BGPProc BGPProc 1539 -LOFAR_ObsSW_TempObs0031_OnlineControl_StorageAppl StorageAppl 1540 -LOFAR_ObsSW_TempObs0032 CEPObservation 1541 -LOFAR_ObsSW_TempObs0032_OnlineControl OnlineControl 1542 -LOFAR_ObsSW_TempObs0032_OnlineControl_BGPAppl BGPAppl 1543 -LOFAR_ObsSW_TempObs0032_OnlineControl_BGPAppl_BGPProc BGPProc 1544 -LOFAR_ObsSW_TempObs0032_OnlineControl_StorageAppl StorageAppl 1545 -LOFAR_ObsSW_TempObs0033 CEPObservation 1546 -LOFAR_ObsSW_TempObs0033_OnlineControl OnlineControl 1547 -LOFAR_ObsSW_TempObs0033_OnlineControl_BGPAppl BGPAppl 1548 -LOFAR_ObsSW_TempObs0033_OnlineControl_BGPAppl_BGPProc BGPProc 1549 -LOFAR_ObsSW_TempObs0033_OnlineControl_StorageAppl StorageAppl 1550 -LOFAR_ObsSW_TempObs0034 CEPObservation 1551 -LOFAR_ObsSW_TempObs0034_OnlineControl OnlineControl 1552 -LOFAR_ObsSW_TempObs0034_OnlineControl_BGPAppl BGPAppl 1553 -LOFAR_ObsSW_TempObs0034_OnlineControl_BGPAppl_BGPProc BGPProc 1554 -LOFAR_ObsSW_TempObs0034_OnlineControl_StorageAppl StorageAppl 1555 -LOFAR_ObsSW_TempObs0035 CEPObservation 1556 -LOFAR_ObsSW_TempObs0035_OnlineControl OnlineControl 1557 -LOFAR_ObsSW_TempObs0035_OnlineControl_BGPAppl BGPAppl 1558 -LOFAR_ObsSW_TempObs0035_OnlineControl_BGPAppl_BGPProc BGPProc 1559 -LOFAR_ObsSW_TempObs0035_OnlineControl_StorageAppl StorageAppl 1560 -LOFAR_ObsSW_TempObs0036 CEPObservation 1561 -LOFAR_ObsSW_TempObs0036_OnlineControl OnlineControl 1562 -LOFAR_ObsSW_TempObs0036_OnlineControl_BGPAppl BGPAppl 1563 -LOFAR_ObsSW_TempObs0036_OnlineControl_BGPAppl_BGPProc BGPProc 1564 -LOFAR_ObsSW_TempObs0036_OnlineControl_StorageAppl StorageAppl 1565 -LOFAR_ObsSW_TempObs0037 CEPObservation 1566 -LOFAR_ObsSW_TempObs0037_OnlineControl OnlineControl 1567 -LOFAR_ObsSW_TempObs0037_OnlineControl_BGPAppl BGPAppl 1568 -LOFAR_ObsSW_TempObs0037_OnlineControl_BGPAppl_BGPProc BGPProc 1569 -LOFAR_ObsSW_TempObs0037_OnlineControl_StorageAppl StorageAppl 1570 -LOFAR_ObsSW_TempObs0038 CEPObservation 1571 -LOFAR_ObsSW_TempObs0038_OnlineControl OnlineControl 1572 -LOFAR_ObsSW_TempObs0038_OnlineControl_BGPAppl BGPAppl 1573 -LOFAR_ObsSW_TempObs0038_OnlineControl_BGPAppl_BGPProc BGPProc 1574 -LOFAR_ObsSW_TempObs0038_OnlineControl_StorageAppl StorageAppl 1575 -LOFAR_ObsSW_TempObs0039 CEPObservation 1576 -LOFAR_ObsSW_TempObs0039_OnlineControl OnlineControl 1577 -LOFAR_ObsSW_TempObs0039_OnlineControl_BGPAppl BGPAppl 1578 -LOFAR_ObsSW_TempObs0039_OnlineControl_BGPAppl_BGPProc BGPProc 1579 -LOFAR_ObsSW_TempObs0039_OnlineControl_StorageAppl StorageAppl 1580 -LOFAR_ObsSW_TempObs0040 CEPObservation 1581 -LOFAR_ObsSW_TempObs0040_OnlineControl OnlineControl 1582 -LOFAR_ObsSW_TempObs0040_OnlineControl_BGPAppl BGPAppl 1583 -LOFAR_ObsSW_TempObs0040_OnlineControl_BGPAppl_BGPProc BGPProc 1584 -LOFAR_ObsSW_TempObs0040_OnlineControl_StorageAppl StorageAppl 1585 -LOFAR_ObsSW_TempObs0041 CEPObservation 1586 -LOFAR_ObsSW_TempObs0041_OnlineControl OnlineControl 1587 -LOFAR_ObsSW_TempObs0041_OnlineControl_BGPAppl BGPAppl 1588 -LOFAR_ObsSW_TempObs0041_OnlineControl_BGPAppl_BGPProc BGPProc 1589 -LOFAR_ObsSW_TempObs0041_OnlineControl_StorageAppl StorageAppl 1590 -LOFAR_ObsSW_TempObs0042 CEPObservation 1591 -LOFAR_ObsSW_TempObs0042_OnlineControl OnlineControl 1592 -LOFAR_ObsSW_TempObs0042_OnlineControl_BGPAppl BGPAppl 1593 -LOFAR_ObsSW_TempObs0042_OnlineControl_BGPAppl_BGPProc BGPProc 1594 -LOFAR_ObsSW_TempObs0042_OnlineControl_StorageAppl StorageAppl 1595 -LOFAR_ObsSW_TempObs0043 CEPObservation 1596 -LOFAR_ObsSW_TempObs0043_OnlineControl OnlineControl 1597 -LOFAR_ObsSW_TempObs0043_OnlineControl_BGPAppl BGPAppl 1598 -LOFAR_ObsSW_TempObs0043_OnlineControl_BGPAppl_BGPProc BGPProc 1599 -LOFAR_ObsSW_TempObs0043_OnlineControl_StorageAppl StorageAppl 1600 -LOFAR_ObsSW_TempObs0044 CEPObservation 1601 -LOFAR_ObsSW_TempObs0044_OnlineControl OnlineControl 1602 -LOFAR_ObsSW_TempObs0044_OnlineControl_BGPAppl BGPAppl 1603 -LOFAR_ObsSW_TempObs0044_OnlineControl_BGPAppl_BGPProc BGPProc 1604 -LOFAR_ObsSW_TempObs0044_OnlineControl_StorageAppl StorageAppl 1605 -LOFAR_ObsSW_TempObs0045 CEPObservation 1606 -LOFAR_ObsSW_TempObs0045_OnlineControl OnlineControl 1607 -LOFAR_ObsSW_TempObs0045_OnlineControl_BGPAppl BGPAppl 1608 -LOFAR_ObsSW_TempObs0045_OnlineControl_BGPAppl_BGPProc BGPProc 1609 -LOFAR_ObsSW_TempObs0045_OnlineControl_StorageAppl StorageAppl 1610 -LOFAR_ObsSW_TempObs0046 CEPObservation 1611 -LOFAR_ObsSW_TempObs0046_OnlineControl OnlineControl 1612 -LOFAR_ObsSW_TempObs0046_OnlineControl_BGPAppl BGPAppl 1613 -LOFAR_ObsSW_TempObs0046_OnlineControl_BGPAppl_BGPProc BGPProc 1614 -LOFAR_ObsSW_TempObs0046_OnlineControl_StorageAppl StorageAppl 1615 -LOFAR_ObsSW_TempObs0047 CEPObservation 1616 -LOFAR_ObsSW_TempObs0047_OnlineControl OnlineControl 1617 -LOFAR_ObsSW_TempObs0047_OnlineControl_BGPAppl BGPAppl 1618 -LOFAR_ObsSW_TempObs0047_OnlineControl_BGPAppl_BGPProc BGPProc 1619 -LOFAR_ObsSW_TempObs0047_OnlineControl_StorageAppl StorageAppl 1620 -LOFAR_ObsSW_TempObs0048 CEPObservation 1621 -LOFAR_ObsSW_TempObs0048_OnlineControl OnlineControl 1622 -LOFAR_ObsSW_TempObs0048_OnlineControl_BGPAppl BGPAppl 1623 -LOFAR_ObsSW_TempObs0048_OnlineControl_BGPAppl_BGPProc BGPProc 1624 -LOFAR_ObsSW_TempObs0048_OnlineControl_StorageAppl StorageAppl 1625 -LOFAR_ObsSW_TempObs0049 CEPObservation 1626 -LOFAR_ObsSW_TempObs0049_OnlineControl OnlineControl 1627 -LOFAR_ObsSW_TempObs0049_OnlineControl_BGPAppl BGPAppl 1628 -LOFAR_ObsSW_TempObs0049_OnlineControl_BGPAppl_BGPProc BGPProc 1629 -LOFAR_ObsSW_TempObs0049_OnlineControl_StorageAppl StorageAppl 1630 -LOFAR_ObsSW_TempObs0050 CEPObservation 1631 -LOFAR_ObsSW_TempObs0050_OnlineControl OnlineControl 1632 -LOFAR_ObsSW_TempObs0050_OnlineControl_BGPAppl BGPAppl 1633 -LOFAR_ObsSW_TempObs0050_OnlineControl_BGPAppl_BGPProc BGPProc 1634 -LOFAR_ObsSW_TempObs0050_OnlineControl_StorageAppl StorageAppl 1635 -LOFAR_ObsSW_TempObs0051 CEPObservation 1636 -LOFAR_ObsSW_TempObs0051_OnlineControl OnlineControl 1637 -LOFAR_ObsSW_TempObs0051_OnlineControl_BGPAppl BGPAppl 1638 -LOFAR_ObsSW_TempObs0051_OnlineControl_BGPAppl_BGPProc BGPProc 1639 -LOFAR_ObsSW_TempObs0051_OnlineControl_StorageAppl StorageAppl 1640 -LOFAR_ObsSW_TempObs0052 CEPObservation 1641 -LOFAR_ObsSW_TempObs0052_OnlineControl OnlineControl 1642 -LOFAR_ObsSW_TempObs0052_OnlineControl_BGPAppl BGPAppl 1643 -LOFAR_ObsSW_TempObs0052_OnlineControl_BGPAppl_BGPProc BGPProc 1644 -LOFAR_ObsSW_TempObs0052_OnlineControl_StorageAppl StorageAppl 1645 -LOFAR_ObsSW_TempObs0053 CEPObservation 1646 -LOFAR_ObsSW_TempObs0053_OnlineControl OnlineControl 1647 -LOFAR_ObsSW_TempObs0053_OnlineControl_BGPAppl BGPAppl 1648 -LOFAR_ObsSW_TempObs0053_OnlineControl_BGPAppl_BGPProc BGPProc 1649 -LOFAR_ObsSW_TempObs0053_OnlineControl_StorageAppl StorageAppl 1650 -LOFAR_ObsSW_TempObs0054 CEPObservation 1651 -LOFAR_ObsSW_TempObs0054_OnlineControl OnlineControl 1652 -LOFAR_ObsSW_TempObs0054_OnlineControl_BGPAppl BGPAppl 1653 -LOFAR_ObsSW_TempObs0054_OnlineControl_BGPAppl_BGPProc BGPProc 1654 -LOFAR_ObsSW_TempObs0054_OnlineControl_StorageAppl StorageAppl 1655 -LOFAR_ObsSW_TempObs0055 CEPObservation 1656 -LOFAR_ObsSW_TempObs0055_OnlineControl OnlineControl 1657 -LOFAR_ObsSW_TempObs0055_OnlineControl_BGPAppl BGPAppl 1658 -LOFAR_ObsSW_TempObs0055_OnlineControl_BGPAppl_BGPProc BGPProc 1659 -LOFAR_ObsSW_TempObs0055_OnlineControl_StorageAppl StorageAppl 1660 -LOFAR_ObsSW_TempObs0056 CEPObservation 1661 -LOFAR_ObsSW_TempObs0056_OnlineControl OnlineControl 1662 -LOFAR_ObsSW_TempObs0056_OnlineControl_BGPAppl BGPAppl 1663 -LOFAR_ObsSW_TempObs0056_OnlineControl_BGPAppl_BGPProc BGPProc 1664 -LOFAR_ObsSW_TempObs0056_OnlineControl_StorageAppl StorageAppl 1665 -LOFAR_ObsSW_TempObs0057 CEPObservation 1666 -LOFAR_ObsSW_TempObs0057_OnlineControl OnlineControl 1667 -LOFAR_ObsSW_TempObs0057_OnlineControl_BGPAppl BGPAppl 1668 -LOFAR_ObsSW_TempObs0057_OnlineControl_BGPAppl_BGPProc BGPProc 1669 -LOFAR_ObsSW_TempObs0057_OnlineControl_StorageAppl StorageAppl 1670 -LOFAR_ObsSW_TempObs0058 CEPObservation 1671 -LOFAR_ObsSW_TempObs0058_OnlineControl OnlineControl 1672 -LOFAR_ObsSW_TempObs0058_OnlineControl_BGPAppl BGPAppl 1673 -LOFAR_ObsSW_TempObs0058_OnlineControl_BGPAppl_BGPProc BGPProc 1674 -LOFAR_ObsSW_TempObs0058_OnlineControl_StorageAppl StorageAppl 1675 -LOFAR_ObsSW_TempObs0059 CEPObservation 1676 -LOFAR_ObsSW_TempObs0059_OnlineControl OnlineControl 1677 -LOFAR_ObsSW_TempObs0059_OnlineControl_BGPAppl BGPAppl 1678 -LOFAR_ObsSW_TempObs0059_OnlineControl_BGPAppl_BGPProc BGPProc 1679 -LOFAR_ObsSW_TempObs0059_OnlineControl_StorageAppl StorageAppl 1680 -LOFAR_ObsSW_TempObs0060 CEPObservation 1681 -LOFAR_ObsSW_TempObs0060_OnlineControl OnlineControl 1682 -LOFAR_ObsSW_TempObs0060_OnlineControl_BGPAppl BGPAppl 1683 -LOFAR_ObsSW_TempObs0060_OnlineControl_BGPAppl_BGPProc BGPProc 1684 -LOFAR_ObsSW_TempObs0060_OnlineControl_StorageAppl StorageAppl 1685 -LOFAR_ObsSW_TempObs0061 CEPObservation 1686 -LOFAR_ObsSW_TempObs0061_OnlineControl OnlineControl 1687 -LOFAR_ObsSW_TempObs0061_OnlineControl_BGPAppl BGPAppl 1688 -LOFAR_ObsSW_TempObs0061_OnlineControl_BGPAppl_BGPProc BGPProc 1689 -LOFAR_ObsSW_TempObs0061_OnlineControl_StorageAppl StorageAppl 1690 -LOFAR_ObsSW_TempObs0062 CEPObservation 1691 -LOFAR_ObsSW_TempObs0062_OnlineControl OnlineControl 1692 -LOFAR_ObsSW_TempObs0062_OnlineControl_BGPAppl BGPAppl 1693 -LOFAR_ObsSW_TempObs0062_OnlineControl_BGPAppl_BGPProc BGPProc 1694 -LOFAR_ObsSW_TempObs0062_OnlineControl_StorageAppl StorageAppl 1695 -LOFAR_ObsSW_TempObs0063 CEPObservation 1696 -LOFAR_ObsSW_TempObs0063_OnlineControl OnlineControl 1697 -LOFAR_ObsSW_TempObs0063_OnlineControl_BGPAppl BGPAppl 1698 -LOFAR_ObsSW_TempObs0063_OnlineControl_BGPAppl_BGPProc BGPProc 1699 -LOFAR_ObsSW_TempObs0063_OnlineControl_StorageAppl StorageAppl 1700 -LOFAR_ObsSW_TempObs0064 CEPObservation 1701 -LOFAR_ObsSW_TempObs0064_OnlineControl OnlineControl 1702 -LOFAR_ObsSW_TempObs0064_OnlineControl_BGPAppl BGPAppl 1703 -LOFAR_ObsSW_TempObs0064_OnlineControl_BGPAppl_BGPProc BGPProc 1704 -LOFAR_ObsSW_TempObs0064_OnlineControl_StorageAppl StorageAppl 1705 -LOFAR_ObsSW_TempObs0065 CEPObservation 1706 -LOFAR_ObsSW_TempObs0065_OnlineControl OnlineControl 1707 -LOFAR_ObsSW_TempObs0065_OnlineControl_BGPAppl BGPAppl 1708 -LOFAR_ObsSW_TempObs0065_OnlineControl_BGPAppl_BGPProc BGPProc 1709 -LOFAR_ObsSW_TempObs0065_OnlineControl_StorageAppl StorageAppl 1710 -LOFAR_ObsSW_TempObs0066 CEPObservation 1711 -LOFAR_ObsSW_TempObs0066_OnlineControl OnlineControl 1712 -LOFAR_ObsSW_TempObs0066_OnlineControl_BGPAppl BGPAppl 1713 -LOFAR_ObsSW_TempObs0066_OnlineControl_BGPAppl_BGPProc BGPProc 1714 -LOFAR_ObsSW_TempObs0066_OnlineControl_StorageAppl StorageAppl 1715 -LOFAR_ObsSW_TempObs0067 CEPObservation 1716 -LOFAR_ObsSW_TempObs0067_OnlineControl OnlineControl 1717 -LOFAR_ObsSW_TempObs0067_OnlineControl_BGPAppl BGPAppl 1718 -LOFAR_ObsSW_TempObs0067_OnlineControl_BGPAppl_BGPProc BGPProc 1719 -LOFAR_ObsSW_TempObs0067_OnlineControl_StorageAppl StorageAppl 1720 -LOFAR_ObsSW_TempObs0068 CEPObservation 1721 -LOFAR_ObsSW_TempObs0068_OnlineControl OnlineControl 1722 -LOFAR_ObsSW_TempObs0068_OnlineControl_BGPAppl BGPAppl 1723 -LOFAR_ObsSW_TempObs0068_OnlineControl_BGPAppl_BGPProc BGPProc 1724 -LOFAR_ObsSW_TempObs0068_OnlineControl_StorageAppl StorageAppl 1725 -LOFAR_ObsSW_TempObs0069 CEPObservation 1726 -LOFAR_ObsSW_TempObs0069_OnlineControl OnlineControl 1727 -LOFAR_ObsSW_TempObs0069_OnlineControl_BGPAppl BGPAppl 1728 -LOFAR_ObsSW_TempObs0069_OnlineControl_BGPAppl_BGPProc BGPProc 1729 -LOFAR_ObsSW_TempObs0069_OnlineControl_StorageAppl StorageAppl 1730 -LOFAR_ObsSW_TempObs0070 CEPObservation 1731 -LOFAR_ObsSW_TempObs0070_OnlineControl OnlineControl 1732 -LOFAR_ObsSW_TempObs0070_OnlineControl_BGPAppl BGPAppl 1733 -LOFAR_ObsSW_TempObs0070_OnlineControl_BGPAppl_BGPProc BGPProc 1734 -LOFAR_ObsSW_TempObs0070_OnlineControl_StorageAppl StorageAppl 1735 -LOFAR_ObsSW_TempObs0071 CEPObservation 1736 -LOFAR_ObsSW_TempObs0071_OnlineControl OnlineControl 1737 -LOFAR_ObsSW_TempObs0071_OnlineControl_BGPAppl BGPAppl 1738 -LOFAR_ObsSW_TempObs0071_OnlineControl_BGPAppl_BGPProc BGPProc 1739 -LOFAR_ObsSW_TempObs0071_OnlineControl_StorageAppl StorageAppl 1740 -LOFAR_ObsSW_TempObs0072 CEPObservation 1741 -LOFAR_ObsSW_TempObs0072_OnlineControl OnlineControl 1742 -LOFAR_ObsSW_TempObs0072_OnlineControl_BGPAppl BGPAppl 1743 -LOFAR_ObsSW_TempObs0072_OnlineControl_BGPAppl_BGPProc BGPProc 1744 -LOFAR_ObsSW_TempObs0072_OnlineControl_StorageAppl StorageAppl 1745 -LOFAR_ObsSW_TempObs0073 CEPObservation 1746 -LOFAR_ObsSW_TempObs0073_OnlineControl OnlineControl 1747 -LOFAR_ObsSW_TempObs0073_OnlineControl_BGPAppl BGPAppl 1748 -LOFAR_ObsSW_TempObs0073_OnlineControl_BGPAppl_BGPProc BGPProc 1749 -LOFAR_ObsSW_TempObs0073_OnlineControl_StorageAppl StorageAppl 1750 -LOFAR_ObsSW_TempObs0074 CEPObservation 1751 -LOFAR_ObsSW_TempObs0074_OnlineControl OnlineControl 1752 -LOFAR_ObsSW_TempObs0074_OnlineControl_BGPAppl BGPAppl 1753 -LOFAR_ObsSW_TempObs0074_OnlineControl_BGPAppl_BGPProc BGPProc 1754 -LOFAR_ObsSW_TempObs0074_OnlineControl_StorageAppl StorageAppl 1755 -LOFAR_ObsSW_TempObs0075 CEPObservation 1756 -LOFAR_ObsSW_TempObs0075_OnlineControl OnlineControl 1757 -LOFAR_ObsSW_TempObs0075_OnlineControl_BGPAppl BGPAppl 1758 -LOFAR_ObsSW_TempObs0075_OnlineControl_BGPAppl_BGPProc BGPProc 1759 -LOFAR_ObsSW_TempObs0075_OnlineControl_StorageAppl StorageAppl 1760 -LOFAR_ObsSW_TempObs0076 CEPObservation 1761 -LOFAR_ObsSW_TempObs0076_OnlineControl OnlineControl 1762 -LOFAR_ObsSW_TempObs0076_OnlineControl_BGPAppl BGPAppl 1763 -LOFAR_ObsSW_TempObs0076_OnlineControl_BGPAppl_BGPProc BGPProc 1764 -LOFAR_ObsSW_TempObs0076_OnlineControl_StorageAppl StorageAppl 1765 -LOFAR_ObsSW_TempObs0077 CEPObservation 1766 -LOFAR_ObsSW_TempObs0077_OnlineControl OnlineControl 1767 -LOFAR_ObsSW_TempObs0077_OnlineControl_BGPAppl BGPAppl 1768 -LOFAR_ObsSW_TempObs0077_OnlineControl_BGPAppl_BGPProc BGPProc 1769 -LOFAR_ObsSW_TempObs0077_OnlineControl_StorageAppl StorageAppl 1770 -LOFAR_ObsSW_TempObs0078 CEPObservation 1771 -LOFAR_ObsSW_TempObs0078_OnlineControl OnlineControl 1772 -LOFAR_ObsSW_TempObs0078_OnlineControl_BGPAppl BGPAppl 1773 -LOFAR_ObsSW_TempObs0078_OnlineControl_BGPAppl_BGPProc BGPProc 1774 -LOFAR_ObsSW_TempObs0078_OnlineControl_StorageAppl StorageAppl 1775 -LOFAR_ObsSW_TempObs0079 CEPObservation 1776 -LOFAR_ObsSW_TempObs0079_OnlineControl OnlineControl 1777 -LOFAR_ObsSW_TempObs0079_OnlineControl_BGPAppl BGPAppl 1778 -LOFAR_ObsSW_TempObs0079_OnlineControl_BGPAppl_BGPProc BGPProc 1779 -LOFAR_ObsSW_TempObs0079_OnlineControl_StorageAppl StorageAppl 1780 -LOFAR_ObsSW_TempObs0080 CEPObservation 1781 -LOFAR_ObsSW_TempObs0080_OnlineControl OnlineControl 1782 -LOFAR_ObsSW_TempObs0080_OnlineControl_BGPAppl BGPAppl 1783 -LOFAR_ObsSW_TempObs0080_OnlineControl_BGPAppl_BGPProc BGPProc 1784 -LOFAR_ObsSW_TempObs0080_OnlineControl_StorageAppl StorageAppl 1785 -LOFAR_ObsSW_TempObs0081 CEPObservation 1786 -LOFAR_ObsSW_TempObs0081_OnlineControl OnlineControl 1787 -LOFAR_ObsSW_TempObs0081_OnlineControl_BGPAppl BGPAppl 1788 -LOFAR_ObsSW_TempObs0081_OnlineControl_BGPAppl_BGPProc BGPProc 1789 -LOFAR_ObsSW_TempObs0081_OnlineControl_StorageAppl StorageAppl 1790 -LOFAR_ObsSW_TempObs0082 CEPObservation 1791 -LOFAR_ObsSW_TempObs0082_OnlineControl OnlineControl 1792 -LOFAR_ObsSW_TempObs0082_OnlineControl_BGPAppl BGPAppl 1793 -LOFAR_ObsSW_TempObs0082_OnlineControl_BGPAppl_BGPProc BGPProc 1794 -LOFAR_ObsSW_TempObs0082_OnlineControl_StorageAppl StorageAppl 1795 -LOFAR_ObsSW_TempObs0083 CEPObservation 1796 -LOFAR_ObsSW_TempObs0083_OnlineControl OnlineControl 1797 -LOFAR_ObsSW_TempObs0083_OnlineControl_BGPAppl BGPAppl 1798 -LOFAR_ObsSW_TempObs0083_OnlineControl_BGPAppl_BGPProc BGPProc 1799 -LOFAR_ObsSW_TempObs0083_OnlineControl_StorageAppl StorageAppl 1800 -LOFAR_ObsSW_TempObs0084 CEPObservation 1801 -LOFAR_ObsSW_TempObs0084_OnlineControl OnlineControl 1802 -LOFAR_ObsSW_TempObs0084_OnlineControl_BGPAppl BGPAppl 1803 -LOFAR_ObsSW_TempObs0084_OnlineControl_BGPAppl_BGPProc BGPProc 1804 -LOFAR_ObsSW_TempObs0084_OnlineControl_StorageAppl StorageAppl 1805 -LOFAR_ObsSW_TempObs0085 CEPObservation 1806 -LOFAR_ObsSW_TempObs0085_OnlineControl OnlineControl 1807 -LOFAR_ObsSW_TempObs0085_OnlineControl_BGPAppl BGPAppl 1808 -LOFAR_ObsSW_TempObs0085_OnlineControl_BGPAppl_BGPProc BGPProc 1809 -LOFAR_ObsSW_TempObs0085_OnlineControl_StorageAppl StorageAppl 1810 -LOFAR_ObsSW_TempObs0086 CEPObservation 1811 -LOFAR_ObsSW_TempObs0086_OnlineControl OnlineControl 1812 -LOFAR_ObsSW_TempObs0086_OnlineControl_BGPAppl BGPAppl 1813 -LOFAR_ObsSW_TempObs0086_OnlineControl_BGPAppl_BGPProc BGPProc 1814 -LOFAR_ObsSW_TempObs0086_OnlineControl_StorageAppl StorageAppl 1815 -LOFAR_ObsSW_TempObs0087 CEPObservation 1816 -LOFAR_ObsSW_TempObs0087_OnlineControl OnlineControl 1817 -LOFAR_ObsSW_TempObs0087_OnlineControl_BGPAppl BGPAppl 1818 -LOFAR_ObsSW_TempObs0087_OnlineControl_BGPAppl_BGPProc BGPProc 1819 -LOFAR_ObsSW_TempObs0087_OnlineControl_StorageAppl StorageAppl 1820 -LOFAR_ObsSW_TempObs0088 CEPObservation 1821 -LOFAR_ObsSW_TempObs0088_OnlineControl OnlineControl 1822 -LOFAR_ObsSW_TempObs0088_OnlineControl_BGPAppl BGPAppl 1823 -LOFAR_ObsSW_TempObs0088_OnlineControl_BGPAppl_BGPProc BGPProc 1824 -LOFAR_ObsSW_TempObs0088_OnlineControl_StorageAppl StorageAppl 1825 -LOFAR_ObsSW_TempObs0089 CEPObservation 1826 -LOFAR_ObsSW_TempObs0089_OnlineControl OnlineControl 1827 -LOFAR_ObsSW_TempObs0089_OnlineControl_BGPAppl BGPAppl 1828 -LOFAR_ObsSW_TempObs0089_OnlineControl_BGPAppl_BGPProc BGPProc 1829 -LOFAR_ObsSW_TempObs0089_OnlineControl_StorageAppl StorageAppl 1830 -LOFAR_ObsSW_TempObs0090 CEPObservation 1831 -LOFAR_ObsSW_TempObs0090_OnlineControl OnlineControl 1832 -LOFAR_ObsSW_TempObs0090_OnlineControl_BGPAppl BGPAppl 1833 -LOFAR_ObsSW_TempObs0090_OnlineControl_BGPAppl_BGPProc BGPProc 1834 -LOFAR_ObsSW_TempObs0090_OnlineControl_StorageAppl StorageAppl 1835 -LOFAR_ObsSW_TempObs0091 CEPObservation 1836 -LOFAR_ObsSW_TempObs0091_OnlineControl OnlineControl 1837 -LOFAR_ObsSW_TempObs0091_OnlineControl_BGPAppl BGPAppl 1838 -LOFAR_ObsSW_TempObs0091_OnlineControl_BGPAppl_BGPProc BGPProc 1839 -LOFAR_ObsSW_TempObs0091_OnlineControl_StorageAppl StorageAppl 1840 -LOFAR_ObsSW_TempObs0092 CEPObservation 1841 -LOFAR_ObsSW_TempObs0092_OnlineControl OnlineControl 1842 -LOFAR_ObsSW_TempObs0092_OnlineControl_BGPAppl BGPAppl 1843 -LOFAR_ObsSW_TempObs0092_OnlineControl_BGPAppl_BGPProc BGPProc 1844 -LOFAR_ObsSW_TempObs0092_OnlineControl_StorageAppl StorageAppl 1845 -LOFAR_ObsSW_TempObs0093 CEPObservation 1846 -LOFAR_ObsSW_TempObs0093_OnlineControl OnlineControl 1847 -LOFAR_ObsSW_TempObs0093_OnlineControl_BGPAppl BGPAppl 1848 -LOFAR_ObsSW_TempObs0093_OnlineControl_BGPAppl_BGPProc BGPProc 1849 -LOFAR_ObsSW_TempObs0093_OnlineControl_StorageAppl StorageAppl 1850 -LOFAR_ObsSW_TempObs0094 CEPObservation 1851 -LOFAR_ObsSW_TempObs0094_OnlineControl OnlineControl 1852 -LOFAR_ObsSW_TempObs0094_OnlineControl_BGPAppl BGPAppl 1853 -LOFAR_ObsSW_TempObs0094_OnlineControl_BGPAppl_BGPProc BGPProc 1854 -LOFAR_ObsSW_TempObs0094_OnlineControl_StorageAppl StorageAppl 1855 -LOFAR_ObsSW_TempObs0095 CEPObservation 1856 -LOFAR_ObsSW_TempObs0095_OnlineControl OnlineControl 1857 -LOFAR_ObsSW_TempObs0095_OnlineControl_BGPAppl BGPAppl 1858 -LOFAR_ObsSW_TempObs0095_OnlineControl_BGPAppl_BGPProc BGPProc 1859 -LOFAR_ObsSW_TempObs0095_OnlineControl_StorageAppl StorageAppl 1860 -LOFAR_ObsSW_TempObs0096 CEPObservation 1861 -LOFAR_ObsSW_TempObs0096_OnlineControl OnlineControl 1862 -LOFAR_ObsSW_TempObs0096_OnlineControl_BGPAppl BGPAppl 1863 -LOFAR_ObsSW_TempObs0096_OnlineControl_BGPAppl_BGPProc BGPProc 1864 -LOFAR_ObsSW_TempObs0096_OnlineControl_StorageAppl StorageAppl 1865 -LOFAR_ObsSW_TempObs0097 CEPObservation 1866 -LOFAR_ObsSW_TempObs0097_OnlineControl OnlineControl 1867 -LOFAR_ObsSW_TempObs0097_OnlineControl_BGPAppl BGPAppl 1868 -LOFAR_ObsSW_TempObs0097_OnlineControl_BGPAppl_BGPProc BGPProc 1869 -LOFAR_ObsSW_TempObs0097_OnlineControl_StorageAppl StorageAppl 1870 -LOFAR_ObsSW_TempObs0098 CEPObservation 1871 -LOFAR_ObsSW_TempObs0098_OnlineControl OnlineControl 1872 -LOFAR_ObsSW_TempObs0098_OnlineControl_BGPAppl BGPAppl 1873 -LOFAR_ObsSW_TempObs0098_OnlineControl_BGPAppl_BGPProc BGPProc 1874 -LOFAR_ObsSW_TempObs0098_OnlineControl_StorageAppl StorageAppl 1875 -LOFAR_ObsSW_TempObs0099 CEPObservation 1876 -LOFAR_ObsSW_TempObs0099_OnlineControl OnlineControl 1877 -LOFAR_ObsSW_TempObs0099_OnlineControl_BGPAppl BGPAppl 1878 -LOFAR_ObsSW_TempObs0099_OnlineControl_BGPAppl_BGPProc BGPProc 1879 -LOFAR_ObsSW_TempObs0099_OnlineControl_StorageAppl StorageAppl 1880 -LOFAR_ObsSW_TempObs0100 CEPObservation 1881 -LOFAR_ObsSW_TempObs0100_OnlineControl OnlineControl 1882 -LOFAR_ObsSW_TempObs0100_OnlineControl_BGPAppl BGPAppl 1883 -LOFAR_ObsSW_TempObs0100_OnlineControl_BGPAppl_BGPProc BGPProc 1884 -LOFAR_ObsSW_TempObs0100_OnlineControl_StorageAppl StorageAppl 1885 -LOFAR_PermSW CEPPermSW 1886 -LOFAR_PermSW_Daemons Daemons 1887 -LOFAR_PermSW_Daemons_CTStartDaemon CTStartDaemon 1888 -LOFAR_PermSW_Daemons_LogProcessor LogProcessor 1889 -LOFAR_PermSW_Daemons_PVSS00pmon PVSS00pmon 1890 -LOFAR_PermSW_Daemons_SASGateway SASGateway 1891 -LOFAR_PermSW_Daemons_ServiceBroker ServiceBroker 1892 -LOFAR_PermSW_HardwareMonitor CEPHardwareMonitor 1893 -LOFAR_PermSW_InputBufferControl InputBufferControl 1894 -LOFAR_PermSW_SoftwareMonitor SoftwareMonitor 1895 -LOFAR_PIC CEPPIC 1896 -LOFAR_PIC_BGP0 BGPRack 1897 -LOFAR_PIC_BGP0_Midplane0 BGPMidplane 1898 -LOFAR_PIC_BGP0_Midplane0_IONode0 IONode 1899 -LOFAR_PIC_BGP0_Midplane0_IONode1 IONode 1900 -LOFAR_PIC_BGP0_Midplane0_IONode10 IONode 1901 -LOFAR_PIC_BGP0_Midplane0_IONode11 IONode 1902 -LOFAR_PIC_BGP0_Midplane0_IONode12 IONode 1903 -LOFAR_PIC_BGP0_Midplane0_IONode13 IONode 1904 -LOFAR_PIC_BGP0_Midplane0_IONode14 IONode 1905 -LOFAR_PIC_BGP0_Midplane0_IONode15 IONode 1906 -LOFAR_PIC_BGP0_Midplane0_IONode16 IONode 1907 -LOFAR_PIC_BGP0_Midplane0_IONode17 IONode 1908 -LOFAR_PIC_BGP0_Midplane0_IONode18 IONode 1909 -LOFAR_PIC_BGP0_Midplane0_IONode19 IONode 1910 -LOFAR_PIC_BGP0_Midplane0_IONode2 IONode 1911 -LOFAR_PIC_BGP0_Midplane0_IONode20 IONode 1912 -LOFAR_PIC_BGP0_Midplane0_IONode21 IONode 1913 -LOFAR_PIC_BGP0_Midplane0_IONode22 IONode 1914 -LOFAR_PIC_BGP0_Midplane0_IONode23 IONode 1915 -LOFAR_PIC_BGP0_Midplane0_IONode24 IONode 1916 -LOFAR_PIC_BGP0_Midplane0_IONode25 IONode 1917 -LOFAR_PIC_BGP0_Midplane0_IONode26 IONode 1918 -LOFAR_PIC_BGP0_Midplane0_IONode27 IONode 1919 -LOFAR_PIC_BGP0_Midplane0_IONode28 IONode 1920 -LOFAR_PIC_BGP0_Midplane0_IONode29 IONode 1921 -LOFAR_PIC_BGP0_Midplane0_IONode3 IONode 1922 -LOFAR_PIC_BGP0_Midplane0_IONode30 IONode 1923 -LOFAR_PIC_BGP0_Midplane0_IONode31 IONode 1924 -LOFAR_PIC_BGP0_Midplane0_IONode4 IONode 1925 -LOFAR_PIC_BGP0_Midplane0_IONode5 IONode 1926 -LOFAR_PIC_BGP0_Midplane0_IONode6 IONode 1927 -LOFAR_PIC_BGP0_Midplane0_IONode7 IONode 1928 -LOFAR_PIC_BGP0_Midplane0_IONode8 IONode 1929 -LOFAR_PIC_BGP0_Midplane0_IONode9 IONode 1930 -LOFAR_PIC_BGP0_Midplane1 BGPMidplane 1931 -LOFAR_PIC_BGP0_Midplane1_IONode32 IONode 1932 -LOFAR_PIC_BGP0_Midplane1_IONode33 IONode 1933 -LOFAR_PIC_BGP0_Midplane1_IONode34 IONode 1934 -LOFAR_PIC_BGP0_Midplane1_IONode35 IONode 1935 -LOFAR_PIC_BGP0_Midplane1_IONode36 IONode 1936 -LOFAR_PIC_BGP0_Midplane1_IONode37 IONode 1937 -LOFAR_PIC_BGP0_Midplane1_IONode38 IONode 1938 -LOFAR_PIC_BGP0_Midplane1_IONode39 IONode 1939 -LOFAR_PIC_BGP0_Midplane1_IONode40 IONode 1940 -LOFAR_PIC_BGP0_Midplane1_IONode41 IONode 1941 -LOFAR_PIC_BGP0_Midplane1_IONode42 IONode 1942 -LOFAR_PIC_BGP0_Midplane1_IONode43 IONode 1943 -LOFAR_PIC_BGP0_Midplane1_IONode44 IONode 1944 -LOFAR_PIC_BGP0_Midplane1_IONode45 IONode 1945 -LOFAR_PIC_BGP0_Midplane1_IONode46 IONode 1946 -LOFAR_PIC_BGP0_Midplane1_IONode47 IONode 1947 -LOFAR_PIC_BGP0_Midplane1_IONode48 IONode 1948 -LOFAR_PIC_BGP0_Midplane1_IONode49 IONode 1949 -LOFAR_PIC_BGP0_Midplane1_IONode50 IONode 1950 -LOFAR_PIC_BGP0_Midplane1_IONode51 IONode 1951 -LOFAR_PIC_BGP0_Midplane1_IONode52 IONode 1952 -LOFAR_PIC_BGP0_Midplane1_IONode53 IONode 1953 -LOFAR_PIC_BGP0_Midplane1_IONode54 IONode 1954 -LOFAR_PIC_BGP0_Midplane1_IONode55 IONode 1955 -LOFAR_PIC_BGP0_Midplane1_IONode56 IONode 1956 -LOFAR_PIC_BGP0_Midplane1_IONode57 IONode 1957 -LOFAR_PIC_BGP0_Midplane1_IONode58 IONode 1958 -LOFAR_PIC_BGP0_Midplane1_IONode59 IONode 1959 -LOFAR_PIC_BGP0_Midplane1_IONode60 IONode 1960 -LOFAR_PIC_BGP0_Midplane1_IONode61 IONode 1961 -LOFAR_PIC_BGP0_Midplane1_IONode62 IONode 1962 -LOFAR_PIC_BGP0_Midplane1_IONode63 IONode 1963 -LOFAR_PIC_BGP1 BGPRack 1964 -LOFAR_PIC_BGP1_Midplane2 BGPMidplane 1965 -LOFAR_PIC_BGP1_Midplane2_IONode64 IONode 1966 -LOFAR_PIC_BGP1_Midplane2_IONode65 IONode 1967 -LOFAR_PIC_BGP1_Midplane2_IONode66 IONode 1968 -LOFAR_PIC_BGP1_Midplane2_IONode67 IONode 1969 -LOFAR_PIC_BGP1_Midplane2_IONode68 IONode 1970 -LOFAR_PIC_BGP1_Midplane2_IONode69 IONode 1971 -LOFAR_PIC_BGP1_Midplane2_IONode70 IONode 1972 -LOFAR_PIC_BGP1_Midplane2_IONode71 IONode 1973 -LOFAR_PIC_BGP1_Midplane2_IONode72 IONode 1974 -LOFAR_PIC_BGP1_Midplane2_IONode73 IONode 1975 -LOFAR_PIC_BGP1_Midplane2_IONode74 IONode 1976 -LOFAR_PIC_BGP1_Midplane2_IONode75 IONode 1977 -LOFAR_PIC_BGP1_Midplane2_IONode76 IONode 1978 -LOFAR_PIC_BGP1_Midplane2_IONode77 IONode 1979 -LOFAR_PIC_BGP1_Midplane2_IONode78 IONode 1980 -LOFAR_PIC_BGP1_Midplane2_IONode79 IONode 1981 -LOFAR_PIC_BGP1_Midplane2_IONode80 IONode 1982 -LOFAR_PIC_BGP1_Midplane2_IONode81 IONode 1983 -LOFAR_PIC_BGP1_Midplane2_IONode82 IONode 1984 -LOFAR_PIC_BGP1_Midplane2_IONode83 IONode 1985 -LOFAR_PIC_BGP1_Midplane2_IONode84 IONode 1986 -LOFAR_PIC_BGP1_Midplane2_IONode85 IONode 1987 -LOFAR_PIC_BGP1_Midplane2_IONode86 IONode 1988 -LOFAR_PIC_BGP1_Midplane2_IONode87 IONode 1989 -LOFAR_PIC_BGP1_Midplane2_IONode88 IONode 1990 -LOFAR_PIC_BGP1_Midplane2_IONode89 IONode 1991 -LOFAR_PIC_BGP1_Midplane2_IONode90 IONode 1992 -LOFAR_PIC_BGP1_Midplane2_IONode91 IONode 1993 -LOFAR_PIC_BGP1_Midplane2_IONode92 IONode 1994 -LOFAR_PIC_BGP1_Midplane2_IONode93 IONode 1995 -LOFAR_PIC_BGP1_Midplane2_IONode94 IONode 1996 -LOFAR_PIC_BGP1_Midplane2_IONode95 IONode 1997 -LOFAR_PIC_BGP1_Midplane3 BGPMidplane 1998 -LOFAR_PIC_BGP1_Midplane3_IONode100 IONode 1999 -LOFAR_PIC_BGP1_Midplane3_IONode101 IONode 2000 -LOFAR_PIC_BGP1_Midplane3_IONode102 IONode 2001 -LOFAR_PIC_BGP1_Midplane3_IONode103 IONode 2002 -LOFAR_PIC_BGP1_Midplane3_IONode104 IONode 2003 -LOFAR_PIC_BGP1_Midplane3_IONode105 IONode 2004 -LOFAR_PIC_BGP1_Midplane3_IONode106 IONode 2005 -LOFAR_PIC_BGP1_Midplane3_IONode107 IONode 2006 -LOFAR_PIC_BGP1_Midplane3_IONode108 IONode 2007 -LOFAR_PIC_BGP1_Midplane3_IONode109 IONode 2008 -LOFAR_PIC_BGP1_Midplane3_IONode110 IONode 2009 -LOFAR_PIC_BGP1_Midplane3_IONode111 IONode 2010 -LOFAR_PIC_BGP1_Midplane3_IONode112 IONode 2011 -LOFAR_PIC_BGP1_Midplane3_IONode113 IONode 2012 -LOFAR_PIC_BGP1_Midplane3_IONode114 IONode 2013 -LOFAR_PIC_BGP1_Midplane3_IONode115 IONode 2014 -LOFAR_PIC_BGP1_Midplane3_IONode116 IONode 2015 -LOFAR_PIC_BGP1_Midplane3_IONode117 IONode 2016 -LOFAR_PIC_BGP1_Midplane3_IONode118 IONode 2017 -LOFAR_PIC_BGP1_Midplane3_IONode119 IONode 2018 -LOFAR_PIC_BGP1_Midplane3_IONode120 IONode 2019 -LOFAR_PIC_BGP1_Midplane3_IONode121 IONode 2020 -LOFAR_PIC_BGP1_Midplane3_IONode122 IONode 2021 -LOFAR_PIC_BGP1_Midplane3_IONode123 IONode 2022 -LOFAR_PIC_BGP1_Midplane3_IONode124 IONode 2023 -LOFAR_PIC_BGP1_Midplane3_IONode125 IONode 2024 -LOFAR_PIC_BGP1_Midplane3_IONode126 IONode 2025 -LOFAR_PIC_BGP1_Midplane3_IONode127 IONode 2026 -LOFAR_PIC_BGP1_Midplane3_IONode96 IONode 2027 -LOFAR_PIC_BGP1_Midplane3_IONode97 IONode 2028 -LOFAR_PIC_BGP1_Midplane3_IONode98 IONode 2029 -LOFAR_PIC_BGP1_Midplane3_IONode99 IONode 2030 -LOFAR_PIC_OSRack0 OSRack 2031 -LOFAR_PIC_OSRack0_OSSubcluster0 OSSubcluster 2032 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode0 OfflineNode 2033 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode1 OfflineNode 2034 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode2 OfflineNode 2035 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode3 OfflineNode 2036 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode4 OfflineNode 2037 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode5 OfflineNode 2038 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode6 OfflineNode 2039 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode7 OfflineNode 2040 -LOFAR_PIC_OSRack0_OSSubcluster0_OfflineNode8 OfflineNode 2041 -LOFAR_PIC_OSRack0_OSSubcluster0_StorageNode0 StorageNode 2042 -LOFAR_PIC_OSRack0_OSSubcluster0_StorageNode1 StorageNode 2043 -LOFAR_PIC_OSRack0_OSSubcluster0_StorageNode2 StorageNode 2044 -LOFAR_PIC_OSRack0_OSSubcluster1 OSSubcluster 2045 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode10 OfflineNode 2046 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode11 OfflineNode 2047 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode12 OfflineNode 2048 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode13 OfflineNode 2049 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode14 OfflineNode 2050 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode15 OfflineNode 2051 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode16 OfflineNode 2052 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode17 OfflineNode 2053 -LOFAR_PIC_OSRack0_OSSubcluster1_OfflineNode9 OfflineNode 2054 -LOFAR_PIC_OSRack0_OSSubcluster1_StorageNode3 StorageNode 2055 -LOFAR_PIC_OSRack0_OSSubcluster1_StorageNode4 StorageNode 2056 -LOFAR_PIC_OSRack0_OSSubcluster1_StorageNode5 StorageNode 2057 -LOFAR_PIC_OSRack1 OSRack 2058 -LOFAR_PIC_OSRack10_OSSubcluster20_StorageNode60 StorageNode 2059 -LOFAR_PIC_OSRack10_OSSubcluster20_StorageNode61 StorageNode 2060 -LOFAR_PIC_OSRack10_OSSubcluster20_StorageNode62 StorageNode 2061 -LOFAR_PIC_OSRack10_OSSubcluster21_StorageNode63 StorageNode 2062 -LOFAR_PIC_OSRack10_OSSubcluster21_StorageNode64 StorageNode 2063 -LOFAR_PIC_OSRack10_OSSubcluster21_StorageNode65 StorageNode 2064 -LOFAR_PIC_OSRack11_OSSubcluster22_StorageNode66 StorageNode 2065 -LOFAR_PIC_OSRack11_OSSubcluster22_StorageNode67 StorageNode 2066 -LOFAR_PIC_OSRack11_OSSubcluster22_StorageNode68 StorageNode 2067 -LOFAR_PIC_OSRack11_OSSubcluster23_StorageNode69 StorageNode 2068 -LOFAR_PIC_OSRack11_OSSubcluster23_StorageNode70 StorageNode 2069 -LOFAR_PIC_OSRack11_OSSubcluster23_StorageNode71 StorageNode 2070 -LOFAR_PIC_OSRack12_OSSubcluster24_StorageNode72 StorageNode 2071 -LOFAR_PIC_OSRack12_OSSubcluster24_StorageNode73 StorageNode 2072 -LOFAR_PIC_OSRack12_OSSubcluster24_StorageNode74 StorageNode 2073 -LOFAR_PIC_OSRack12_OSSubcluster25_StorageNode75 StorageNode 2074 -LOFAR_PIC_OSRack12_OSSubcluster25_StorageNode76 StorageNode 2075 -LOFAR_PIC_OSRack12_OSSubcluster25_StorageNode77 StorageNode 2076 -LOFAR_PIC_OSRack13_OSSubcluster26_StorageNode78 StorageNode 2077 -LOFAR_PIC_OSRack13_OSSubcluster26_StorageNode79 StorageNode 2078 -LOFAR_PIC_OSRack13_OSSubcluster26_StorageNode80 StorageNode 2079 -LOFAR_PIC_OSRack13_OSSubcluster27_StorageNode81 StorageNode 2080 -LOFAR_PIC_OSRack13_OSSubcluster27_StorageNode82 StorageNode 2081 -LOFAR_PIC_OSRack13_OSSubcluster27_StorageNode83 StorageNode 2082 -LOFAR_PIC_OSRack14_OSSubcluster28_StorageNode84 StorageNode 2083 -LOFAR_PIC_OSRack14_OSSubcluster28_StorageNode85 StorageNode 2084 -LOFAR_PIC_OSRack14_OSSubcluster28_StorageNode86 StorageNode 2085 -LOFAR_PIC_OSRack14_OSSubcluster29_StorageNode87 StorageNode 2086 -LOFAR_PIC_OSRack14_OSSubcluster29_StorageNode88 StorageNode 2087 -LOFAR_PIC_OSRack14_OSSubcluster29_StorageNode89 StorageNode 2088 -LOFAR_PIC_OSRack15_OSSubcluster30_StorageNode90 StorageNode 2089 -LOFAR_PIC_OSRack15_OSSubcluster30_StorageNode91 StorageNode 2090 -LOFAR_PIC_OSRack15_OSSubcluster30_StorageNode92 StorageNode 2091 -LOFAR_PIC_OSRack15_OSSubcluster31_StorageNode93 StorageNode 2092 -LOFAR_PIC_OSRack15_OSSubcluster31_StorageNode94 StorageNode 2093 -LOFAR_PIC_OSRack15_OSSubcluster31_StorageNode95 StorageNode 2094 -LOFAR_PIC_OSRack16_OSSubcluster32_StorageNode96 StorageNode 2095 -LOFAR_PIC_OSRack16_OSSubcluster32_StorageNode97 StorageNode 2096 -LOFAR_PIC_OSRack16_OSSubcluster32_StorageNode98 StorageNode 2097 -LOFAR_PIC_OSRack16_OSSubcluster33_StorageNode100 StorageNode 2098 -LOFAR_PIC_OSRack16_OSSubcluster33_StorageNode101 StorageNode 2099 -LOFAR_PIC_OSRack16_OSSubcluster33_StorageNode99 StorageNode 2100 -LOFAR_PIC_OSRack17_OSSubcluster34_StorageNode102 StorageNode 2101 -LOFAR_PIC_OSRack17_OSSubcluster34_StorageNode103 StorageNode 2102 -LOFAR_PIC_OSRack17_OSSubcluster34_StorageNode104 StorageNode 2103 -LOFAR_PIC_OSRack17_OSSubcluster35_StorageNode105 StorageNode 2104 -LOFAR_PIC_OSRack17_OSSubcluster35_StorageNode106 StorageNode 2105 -LOFAR_PIC_OSRack17_OSSubcluster35_StorageNode107 StorageNode 2106 -LOFAR_PIC_OSRack18_OSSubcluster36_StorageNode108 StorageNode 2107 -LOFAR_PIC_OSRack18_OSSubcluster36_StorageNode109 StorageNode 2108 -LOFAR_PIC_OSRack18_OSSubcluster36_StorageNode110 StorageNode 2109 -LOFAR_PIC_OSRack18_OSSubcluster37_StorageNode111 StorageNode 2110 -LOFAR_PIC_OSRack18_OSSubcluster37_StorageNode112 StorageNode 2111 -LOFAR_PIC_OSRack18_OSSubcluster37_StorageNode113 StorageNode 2112 -LOFAR_PIC_OSRack19_OSSubcluster38_StorageNode114 StorageNode 2113 -LOFAR_PIC_OSRack19_OSSubcluster38_StorageNode115 StorageNode 2114 -LOFAR_PIC_OSRack19_OSSubcluster38_StorageNode116 StorageNode 2115 -LOFAR_PIC_OSRack19_OSSubcluster39_StorageNode117 StorageNode 2116 -LOFAR_PIC_OSRack19_OSSubcluster39_StorageNode118 StorageNode 2117 -LOFAR_PIC_OSRack19_OSSubcluster39_StorageNode119 StorageNode 2118 -LOFAR_PIC_OSRack1_OSSubcluster2 OSSubcluster 2119 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode18 OfflineNode 2120 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode19 OfflineNode 2121 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode20 OfflineNode 2122 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode21 OfflineNode 2123 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode22 OfflineNode 2124 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode23 OfflineNode 2125 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode24 OfflineNode 2126 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode25 OfflineNode 2127 -LOFAR_PIC_OSRack1_OSSubcluster2_OfflineNode26 OfflineNode 2128 -LOFAR_PIC_OSRack1_OSSubcluster2_StorageNode6 StorageNode 2129 -LOFAR_PIC_OSRack1_OSSubcluster2_StorageNode7 StorageNode 2130 -LOFAR_PIC_OSRack1_OSSubcluster2_StorageNode8 StorageNode 2131 -LOFAR_PIC_OSRack1_OSSubcluster3 OSSubcluster 2132 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode27 OfflineNode 2133 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode28 OfflineNode 2134 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode29 OfflineNode 2135 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode30 OfflineNode 2136 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode31 OfflineNode 2137 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode32 OfflineNode 2138 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode33 OfflineNode 2139 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode34 OfflineNode 2140 -LOFAR_PIC_OSRack1_OSSubcluster3_OfflineNode35 OfflineNode 2141 -LOFAR_PIC_OSRack1_OSSubcluster3_StorageNode10 StorageNode 2142 -LOFAR_PIC_OSRack1_OSSubcluster3_StorageNode11 StorageNode 2143 -LOFAR_PIC_OSRack1_OSSubcluster3_StorageNode9 StorageNode 2144 -LOFAR_PIC_OSRack2 OSRack 2145 -LOFAR_PIC_OSRack20_OSSubcluster40_StorageNode120 StorageNode 2146 -LOFAR_PIC_OSRack20_OSSubcluster40_StorageNode121 StorageNode 2147 -LOFAR_PIC_OSRack20_OSSubcluster40_StorageNode122 StorageNode 2148 -LOFAR_PIC_OSRack20_OSSubcluster41_StorageNode123 StorageNode 2149 -LOFAR_PIC_OSRack20_OSSubcluster41_StorageNode124 StorageNode 2150 -LOFAR_PIC_OSRack20_OSSubcluster41_StorageNode125 StorageNode 2151 -LOFAR_PIC_OSRack21_OSSubcluster42_StorageNode126 StorageNode 2152 -LOFAR_PIC_OSRack21_OSSubcluster42_StorageNode127 StorageNode 2153 -LOFAR_PIC_OSRack2_OSSubcluster4 OSSubcluster 2154 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode36 OfflineNode 2155 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode37 OfflineNode 2156 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode38 OfflineNode 2157 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode39 OfflineNode 2158 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode40 OfflineNode 2159 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode41 OfflineNode 2160 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode42 OfflineNode 2161 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode43 OfflineNode 2162 -LOFAR_PIC_OSRack2_OSSubcluster4_OfflineNode44 OfflineNode 2163 -LOFAR_PIC_OSRack2_OSSubcluster4_StorageNode12 StorageNode 2164 -LOFAR_PIC_OSRack2_OSSubcluster4_StorageNode13 StorageNode 2165 -LOFAR_PIC_OSRack2_OSSubcluster4_StorageNode14 StorageNode 2166 -LOFAR_PIC_OSRack2_OSSubcluster5 OSSubcluster 2167 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode45 OfflineNode 2168 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode46 OfflineNode 2169 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode47 OfflineNode 2170 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode48 OfflineNode 2171 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode49 OfflineNode 2172 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode50 OfflineNode 2173 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode51 OfflineNode 2174 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode52 OfflineNode 2175 -LOFAR_PIC_OSRack2_OSSubcluster5_OfflineNode53 OfflineNode 2176 -LOFAR_PIC_OSRack2_OSSubcluster5_StorageNode15 StorageNode 2177 -LOFAR_PIC_OSRack2_OSSubcluster5_StorageNode16 StorageNode 2178 -LOFAR_PIC_OSRack2_OSSubcluster5_StorageNode17 StorageNode 2179 -LOFAR_PIC_OSRack3 OSRack 2180 -LOFAR_PIC_OSRack3_OSSubcluster6 OSSubcluster 2181 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode54 OfflineNode 2182 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode55 OfflineNode 2183 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode56 OfflineNode 2184 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode57 OfflineNode 2185 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode58 OfflineNode 2186 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode59 OfflineNode 2187 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode60 OfflineNode 2188 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode61 OfflineNode 2189 -LOFAR_PIC_OSRack3_OSSubcluster6_OfflineNode62 OfflineNode 2190 -LOFAR_PIC_OSRack3_OSSubcluster6_StorageNode18 StorageNode 2191 -LOFAR_PIC_OSRack3_OSSubcluster6_StorageNode19 StorageNode 2192 -LOFAR_PIC_OSRack3_OSSubcluster6_StorageNode20 StorageNode 2193 -LOFAR_PIC_OSRack3_OSSubcluster7 OSSubcluster 2194 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode63 OfflineNode 2195 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode64 OfflineNode 2196 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode65 OfflineNode 2197 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode66 OfflineNode 2198 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode67 OfflineNode 2199 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode68 OfflineNode 2200 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode69 OfflineNode 2201 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode70 OfflineNode 2202 -LOFAR_PIC_OSRack3_OSSubcluster7_OfflineNode71 OfflineNode 2203 -LOFAR_PIC_OSRack3_OSSubcluster7_StorageNode21 StorageNode 2204 -LOFAR_PIC_OSRack3_OSSubcluster7_StorageNode22 StorageNode 2205 -LOFAR_PIC_OSRack3_OSSubcluster7_StorageNode23 StorageNode 2206 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode72 OfflineNode 2207 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode73 OfflineNode 2208 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode74 OfflineNode 2209 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode75 OfflineNode 2210 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode76 OfflineNode 2211 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode77 OfflineNode 2212 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode78 OfflineNode 2213 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode79 OfflineNode 2214 -LOFAR_PIC_OSRack4_OSSubcluster8_OfflineNode80 OfflineNode 2215 -LOFAR_PIC_OSRack4_OSSubcluster8_StorageNode24 StorageNode 2216 -LOFAR_PIC_OSRack4_OSSubcluster8_StorageNode25 StorageNode 2217 -LOFAR_PIC_OSRack4_OSSubcluster8_StorageNode26 StorageNode 2218 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode81 OfflineNode 2219 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode82 OfflineNode 2220 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode83 OfflineNode 2221 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode84 OfflineNode 2222 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode85 OfflineNode 2223 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode86 OfflineNode 2224 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode87 OfflineNode 2225 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode88 OfflineNode 2226 -LOFAR_PIC_OSRack4_OSSubcluster9_OfflineNode89 OfflineNode 2227 -LOFAR_PIC_OSRack4_OSSubcluster9_StorageNode27 StorageNode 2228 -LOFAR_PIC_OSRack4_OSSubcluster9_StorageNode28 StorageNode 2229 -LOFAR_PIC_OSRack4_OSSubcluster9_StorageNode29 StorageNode 2230 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode90 OfflineNode 2231 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode91 OfflineNode 2232 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode92 OfflineNode 2233 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode93 OfflineNode 2234 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode94 OfflineNode 2235 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode95 OfflineNode 2236 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode96 OfflineNode 2237 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode97 OfflineNode 2238 -LOFAR_PIC_OSRack5_OSSubcluster10_OfflineNode98 OfflineNode 2239 -LOFAR_PIC_OSRack5_OSSubcluster10_StorageNode30 StorageNode 2240 -LOFAR_PIC_OSRack5_OSSubcluster10_StorageNode31 StorageNode 2241 -LOFAR_PIC_OSRack5_OSSubcluster10_StorageNode32 StorageNode 2242 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode100 OfflineNode 2243 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode101 OfflineNode 2244 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode102 OfflineNode 2245 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode103 OfflineNode 2246 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode104 OfflineNode 2247 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode105 OfflineNode 2248 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode106 OfflineNode 2249 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode107 OfflineNode 2250 -LOFAR_PIC_OSRack5_OSSubcluster11_OfflineNode99 OfflineNode 2251 -LOFAR_PIC_OSRack5_OSSubcluster11_StorageNode33 StorageNode 2252 -LOFAR_PIC_OSRack5_OSSubcluster11_StorageNode34 StorageNode 2253 -LOFAR_PIC_OSRack5_OSSubcluster11_StorageNode35 StorageNode 2254 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode108 OfflineNode 2255 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode109 OfflineNode 2256 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode110 OfflineNode 2257 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode111 OfflineNode 2258 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode112 OfflineNode 2259 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode113 OfflineNode 2260 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode114 OfflineNode 2261 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode115 OfflineNode 2262 -LOFAR_PIC_OSRack6_OSSubcluster12_OfflineNode116 OfflineNode 2263 -LOFAR_PIC_OSRack6_OSSubcluster12_StorageNode36 StorageNode 2264 -LOFAR_PIC_OSRack6_OSSubcluster12_StorageNode37 StorageNode 2265 -LOFAR_PIC_OSRack6_OSSubcluster12_StorageNode38 StorageNode 2266 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode117 OfflineNode 2267 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode118 OfflineNode 2268 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode119 OfflineNode 2269 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode120 OfflineNode 2270 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode121 OfflineNode 2271 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode122 OfflineNode 2272 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode123 OfflineNode 2273 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode124 OfflineNode 2274 -LOFAR_PIC_OSRack6_OSSubcluster13_OfflineNode125 OfflineNode 2275 -LOFAR_PIC_OSRack6_OSSubcluster13_StorageNode39 StorageNode 2276 -LOFAR_PIC_OSRack6_OSSubcluster13_StorageNode40 StorageNode 2277 -LOFAR_PIC_OSRack6_OSSubcluster13_StorageNode41 StorageNode 2278 -LOFAR_PIC_OSRack7_OSSubcluster14_OfflineNode126 OfflineNode 2279 -LOFAR_PIC_OSRack7_OSSubcluster14_OfflineNode127 OfflineNode 2280 -LOFAR_PIC_OSRack7_OSSubcluster14_StorageNode42 StorageNode 2281 -LOFAR_PIC_OSRack7_OSSubcluster14_StorageNode43 StorageNode 2282 -LOFAR_PIC_OSRack7_OSSubcluster14_StorageNode44 StorageNode 2283 -LOFAR_PIC_OSRack7_OSSubcluster15_StorageNode45 StorageNode 2284 -LOFAR_PIC_OSRack7_OSSubcluster15_StorageNode46 StorageNode 2285 -LOFAR_PIC_OSRack7_OSSubcluster15_StorageNode47 StorageNode 2286 -LOFAR_PIC_OSRack8_OSSubcluster16_StorageNode48 StorageNode 2287 -LOFAR_PIC_OSRack8_OSSubcluster16_StorageNode49 StorageNode 2288 -LOFAR_PIC_OSRack8_OSSubcluster16_StorageNode50 StorageNode 2289 -LOFAR_PIC_OSRack8_OSSubcluster17_StorageNode51 StorageNode 2290 -LOFAR_PIC_OSRack8_OSSubcluster17_StorageNode52 StorageNode 2291 -LOFAR_PIC_OSRack8_OSSubcluster17_StorageNode53 StorageNode 2292 -LOFAR_PIC_OSRack9_OSSubcluster18_StorageNode54 StorageNode 2293 -LOFAR_PIC_OSRack9_OSSubcluster18_StorageNode55 StorageNode 2294 -LOFAR_PIC_OSRack9_OSSubcluster18_StorageNode56 StorageNode 2295 -LOFAR_PIC_OSRack9_OSSubcluster19_StorageNode57 StorageNode 2296 -LOFAR_PIC_OSRack9_OSSubcluster19_StorageNode58 StorageNode 2297 -LOFAR_PIC_OSRack9_OSSubcluster19_StorageNode59 StorageNode 2298 diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapointtypes.dpl b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapointtypes.dpl deleted file mode 100644 index 6159f2a6aad2b52905a884113d6af19c27dbff36..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapointtypes.dpl +++ /dev/null @@ -1,508 +0,0 @@ -# This file was generated by create_db_files v2.0 on Tue Jun 9 11:36:29 UTC 2009 - -# Common types in Station and MainCU PVSS Database -# Definition of some basic types - -# DpType -TypeName -Claim.Claim 1#1 - claimDate 26#2 - name 25#3 - -TypeName -ClaimManager.ClaimManager 1#1 - request 1#2 - typeName 25#3 - newObjectName 25#4 - response 1#5 - typeName 25#6 - newObjectName 25#7 - DPName 25#8 - claimDate 26#9 - cache 1#10 - typeNames 9#11 - newObjectNames 9#12 - DPNames 9#13 - claimDates 10#14 - -TypeName -LofarSpeedTest.LofarSpeedTest 1#1 - singleInt 21#2 - singleString 25#3 - result 1#4 - testName 25#5 - nrWrites 21#6 - nrReads 21#7 - passed 23#8 - writeTime 25#9 - readTime 25#10 - IntCollection 1#11 - val1 21#12 - val2 21#13 - val3 21#14 - val4 21#15 - val5 21#16 - val6 21#17 - val7 21#18 - val8 21#19 - val9 21#20 - val10 21#21 - StringCollection 1#22 - val1 25#23 - val2 25#24 - val3 25#25 - val4 25#26 - val5 25#27 - val6 25#28 - val7 25#29 - val8 25#30 - val9 25#31 - val10 25#32 - -TypeName -NCFObjectState.NCFObjectState 1#1 - DPName 25#2 - stateNr 21#3 - message 25#4 - force 23#5 - -TypeName -ObjectStatus.ObjectStatus 1#1 - state 21#2 - childState 21#3 - message 25#4 - leaf 23#5 - -TypeName -ProcessStatus.ProcessStatus 1#1 - processID 21#2 - startTime 25#3 - stopTime 25#4 - logMsg 25#5 - error 25#6 - currentAction 25#7 - -# create mp for ProcessStatus and attach an archive -DpName TypeName ID -_mp_ProcessStatus ProcessStatus 0 -_dt_ProcessStatus _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_ProcessStatus.Leaf _DynamicDatapoints "_mp_ProcessStatus.logMsg:_archive" 0x101 -_dt_ProcessStatus.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_ProcessStatus.logMsg ProcessStatus 45 1 -0 0 _mp_ProcessStatus.logMsg ProcessStatus 1 15 _ValueArchive_2 - - -# create datapoints for ClaimManager,NCFObjectState and lofarSpeedTest -DpName TypeName ID -ClaimManager ClaimManager 0 -__navObjectState NCFObjectState 0 -__resetObjectState NCFObjectState 0 -lofarSpeedTest LofarSpeedTest 0 - - -TypeName -Adder.Adder 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - dropping 23#4 - nrBlocksDropped 21#5 - -TypeName -BGPAppl.BGPAppl 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - KSPType 25#4 - inputBufferList 25#5 - adderList 25#6 - -TypeName -BGPConnectionInfo.BGPConnectionInfo 1#1 - station 25#2 - RSPBoard 21#3 - IP 25#4 - MAC 25#5 - -TypeName -BGPMidplane.BGPMidplane 1#1 - status 41#2:ObjectStatus - -TypeName -BGPProc.BGPProc 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -BGPRack.BGPRack 1#1 - status 41#2:ObjectStatus - -TypeName -CEPHardwareMonitor.CEPHardwareMonitor 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -CEPLOFAR.CEPLOFAR 1#1 - status 41#2:ObjectStatus - -TypeName -CEPObservation.CEPObservation 1#1 - status 41#2:ObjectStatus - name 25#3 - claim 41#4:Claim - -TypeName -CEPObsSW.CEPObsSW 1#1 - status 41#2:ObjectStatus - -TypeName -CEPPermSW.CEPPermSW 1#1 - status 41#2:ObjectStatus - -TypeName -CEPPIC.CEPPIC 1#1 - status 41#2:ObjectStatus - -TypeName -CTStartDaemon.CTStartDaemon 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -Daemons.Daemons 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -InputBufferControl.InputBufferControl 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -InputBuffer.InputBuffer 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - stationName 25#4 - stream0 1#5 - blocksIn 21#6 - percBad 22#7 - rejected 22#8 - stream1 1#9 - blocksIn 21#10 - percBad 22#11 - rejected 22#12 - stream2 1#13 - blocksIn 21#14 - percBad 22#15 - rejected 22#16 - stream3 1#17 - blocksIn 21#18 - percBad 22#19 - rejected 22#20 - late 22#21 - IOTime 22#22 - -TypeName -IONode.IONode 1#1 - status 41#2:ObjectStatus - -TypeName -LogProcessor.LogProcessor 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -OfflineNode.OfflineNode 1#1 - status 41#2:ObjectStatus - -TypeName -OnlineControl.OnlineControl 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -OSRack.OSRack 1#1 - status 41#2:ObjectStatus - name 25#3 - -TypeName -OSSubcluster.OSSubcluster 1#1 - status 41#2:ObjectStatus - -TypeName -PVSS00pmon.PVSS00pmon 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -SASGateway.SASGateway 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -ServiceBroker.ServiceBroker 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -SoftwareMonitor.SoftwareMonitor 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -StorageAppl.StorageAppl 1#1 - status 41#2:ObjectStatus - process 41#3:ProcessStatus - -TypeName -StorageNode.StorageNode 1#1 - status 41#2:ObjectStatus - -DpName TypeName ID -_mp_Adder Adder 0 -_dt_Adder _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_Adder.Leaf _DynamicDatapoints "_mp_Adder.logMsg:_archive" 0x101 -_dt_Adder.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_Adder.process.logMsg Adder 45 1 -0 0 _mp_Adder.process.logMsg Adder 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_BGPAppl BGPAppl 0 -_dt_BGPAppl _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_BGPAppl.Leaf _DynamicDatapoints "_mp_BGPAppl.logMsg:_archive" 0x101 -_dt_BGPAppl.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_BGPAppl.process.logMsg BGPAppl 45 1 -0 0 _mp_BGPAppl.process.logMsg BGPAppl 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_BGPMidplane BGPMidplane 0 -_dt_BGPMidplane _DynamicDatapoints 0 - -DpName TypeName ID -_mp_BGPProc BGPProc 0 -_dt_BGPProc _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_BGPProc.Leaf _DynamicDatapoints "_mp_BGPProc.logMsg:_archive" 0x101 -_dt_BGPProc.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_BGPProc.process.logMsg BGPProc 45 1 -0 0 _mp_BGPProc.process.logMsg BGPProc 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_BGPRack BGPRack 0 -_dt_BGPRack _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CEPHardwareMonitor CEPHardwareMonitor 0 -_dt_CEPHardwareMonitor _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_CEPHardwareMonitor.Leaf _DynamicDatapoints "_mp_CEPHardwareMonitor.logMsg:_archive" 0x101 -_dt_CEPHardwareMonitor.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_CEPHardwareMonitor.process.logMsg CEPHardwareMonitor 45 1 -0 0 _mp_CEPHardwareMonitor.process.logMsg CEPHardwareMonitor 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_CEPLOFAR CEPLOFAR 0 -_dt_CEPLOFAR _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CEPObservation CEPObservation 0 -_dt_CEPObservation _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CEPObsSW CEPObsSW 0 -_dt_CEPObsSW _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CEPPermSW CEPPermSW 0 -_dt_CEPPermSW _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CEPPIC CEPPIC 0 -_dt_CEPPIC _DynamicDatapoints 0 - -DpName TypeName ID -_mp_CTStartDaemon CTStartDaemon 0 -_dt_CTStartDaemon _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_CTStartDaemon.Leaf _DynamicDatapoints "_mp_CTStartDaemon.logMsg:_archive" 0x101 -_dt_CTStartDaemon.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_CTStartDaemon.process.logMsg CTStartDaemon 45 1 -0 0 _mp_CTStartDaemon.process.logMsg CTStartDaemon 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_Daemons Daemons 0 -_dt_Daemons _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_Daemons.Leaf _DynamicDatapoints "_mp_Daemons.logMsg:_archive" 0x101 -_dt_Daemons.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_Daemons.process.logMsg Daemons 45 1 -0 0 _mp_Daemons.process.logMsg Daemons 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_InputBufferControl InputBufferControl 0 -_dt_InputBufferControl _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_InputBufferControl.Leaf _DynamicDatapoints "_mp_InputBufferControl.logMsg:_archive" 0x101 -_dt_InputBufferControl.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_InputBufferControl.process.logMsg InputBufferControl 45 1 -0 0 _mp_InputBufferControl.process.logMsg InputBufferControl 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_InputBuffer InputBuffer 0 -_dt_InputBuffer _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_InputBuffer.Leaf _DynamicDatapoints "_mp_InputBuffer.logMsg:_archive" 0x101 -_dt_InputBuffer.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_InputBuffer.process.logMsg InputBuffer 45 1 -0 0 _mp_InputBuffer.process.logMsg InputBuffer 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_IONode IONode 0 -_dt_IONode _DynamicDatapoints 0 - -DpName TypeName ID -_mp_LogProcessor LogProcessor 0 -_dt_LogProcessor _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_LogProcessor.Leaf _DynamicDatapoints "_mp_LogProcessor.logMsg:_archive" 0x101 -_dt_LogProcessor.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_LogProcessor.process.logMsg LogProcessor 45 1 -0 0 _mp_LogProcessor.process.logMsg LogProcessor 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_OfflineNode OfflineNode 0 -_dt_OfflineNode _DynamicDatapoints 0 - -DpName TypeName ID -_mp_OnlineControl OnlineControl 0 -_dt_OnlineControl _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_OnlineControl.Leaf _DynamicDatapoints "_mp_OnlineControl.logMsg:_archive" 0x101 -_dt_OnlineControl.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_OnlineControl.process.logMsg OnlineControl 45 1 -0 0 _mp_OnlineControl.process.logMsg OnlineControl 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_OSRack OSRack 0 -_dt_OSRack _DynamicDatapoints 0 - -DpName TypeName ID -_mp_OSSubcluster OSSubcluster 0 -_dt_OSSubcluster _DynamicDatapoints 0 - -DpName TypeName ID -_mp_PVSS00pmon PVSS00pmon 0 -_dt_PVSS00pmon _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_PVSS00pmon.Leaf _DynamicDatapoints "_mp_PVSS00pmon.logMsg:_archive" 0x101 -_dt_PVSS00pmon.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_PVSS00pmon.process.logMsg PVSS00pmon 45 1 -0 0 _mp_PVSS00pmon.process.logMsg PVSS00pmon 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_SASGateway SASGateway 0 -_dt_SASGateway _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_SASGateway.Leaf _DynamicDatapoints "_mp_SASGateway.logMsg:_archive" 0x101 -_dt_SASGateway.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_SASGateway.process.logMsg SASGateway 45 1 -0 0 _mp_SASGateway.process.logMsg SASGateway 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_ServiceBroker ServiceBroker 0 -_dt_ServiceBroker _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_ServiceBroker.Leaf _DynamicDatapoints "_mp_ServiceBroker.logMsg:_archive" 0x101 -_dt_ServiceBroker.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_ServiceBroker.process.logMsg ServiceBroker 45 1 -0 0 _mp_ServiceBroker.process.logMsg ServiceBroker 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_SoftwareMonitor SoftwareMonitor 0 -_dt_SoftwareMonitor _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_SoftwareMonitor.Leaf _DynamicDatapoints "_mp_SoftwareMonitor.logMsg:_archive" 0x101 -_dt_SoftwareMonitor.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_SoftwareMonitor.process.logMsg SoftwareMonitor 45 1 -0 0 _mp_SoftwareMonitor.process.logMsg SoftwareMonitor 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_StorageAppl StorageAppl 0 -_dt_StorageAppl _DynamicDatapoints 0 - -ElementName TypeName _original.._value _original.._status -_dt_StorageAppl.Leaf _DynamicDatapoints "_mp_StorageAppl.logMsg:_archive" 0x101 -_dt_StorageAppl.DynamicAttribute _DynamicDatapoints "_da_none" 0x101 - -StampSec StampMSec ElementName TypeName DetailNr _archive.._type _archive.._archive _archive.._class -0 0 _mp_StorageAppl.process.logMsg StorageAppl 45 1 -0 0 _mp_StorageAppl.process.logMsg StorageAppl 1 15 _ValueArchive_2 - -DpName TypeName ID -_mp_StorageNode StorageNode 0 -_dt_StorageNode _DynamicDatapoints 0 - -# Modify the default value for the leaf-field -ElementName TypeName _original.._value _original.._status -_mp_Adder.status.leaf Adder 1 0x101 -_mp_InputBuffer.status.leaf InputBuffer 1 0x101 -_mp_IONode.status.leaf IONode 1 0x101 -_mp_StorageNode.status.leaf StorageNode 1 0x101 -_mp_OfflineNode.status.leaf OfflineNode 1 0x101 -_mp_InputBufferControl.status.leaf InputBufferControl 1 0x101 -_mp_CEPHardwareMonitor.status.leaf CEPHardwareMonitor 1 0x101 -_mp_SoftwareMonitor.status.leaf SoftwareMonitor 1 0x101 -_mp_PVSS00pmon.status.leaf PVSS00pmon 1 0x101 -_mp_LogProcessor.status.leaf LogProcessor 1 0x101 -_mp_ServiceBroker.status.leaf ServiceBroker 1 0x101 -_mp_CTStartDaemon.status.leaf CTStartDaemon 1 0x101 -_mp_SASGateway.status.leaf SASGateway 1 0x101 -_mp_StorageAppl.status.leaf StorageAppl 1 0x101 -_mp_BGPProc.status.leaf BGPProc 1 0x101 diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc deleted file mode 100644 index efacf2ffcf87dd2e96a0dee30698f1a09aba32cb..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc +++ /dev/null @@ -1,1221 +0,0 @@ -//# CEPlogProcessor.cc: Moves the operator info from the logfiles to PVSS -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ -#include <lofar_config.h> -#include <Common/LofarLogger.h> -#include <Common/LofarConstants.h> -#include <Common/LofarLocators.h> -#include <Common/StringUtil.h> -#include <Stream/SocketStream.h> -#include <ApplCommon/LofarDirs.h> -#include <ApplCommon/Observation.h> -#include <ApplCommon/StationInfo.h> - -#include <GCF/PVSS/GCF_PVTypes.h> -#include <GCF/PVSS/PVSSinfo.h> -#include <MACIO/MACServiceInfo.h> -#include <APL/APLCommon/ControllerDefines.h> -#include <APL/APLCommon/Controller_Protocol.ph> -#include <GCF/RTDB/DP_Protocol.ph> -#include <signal.h> -#include <stdlib.h> -#include <unistd.h> // usleep -#include <cstdio> -#include <boost/format.hpp> - -#include "CEPlogProcessor.h" -#include "PVSSDatapointDefs.h" - -using boost::format; - - -namespace LOFAR { - using namespace APLCommon; -// using namespace APL::RTDBCommon; - using namespace GCF::TM; - using namespace GCF::PVSS; - using namespace GCF::RTDB; - using namespace std; - - namespace APL { - -// static pointer to this object for signal handler -static CEPlogProcessor* thisLogProcessor = 0; - -// -// CEPlogProcessor() -// -CEPlogProcessor::CEPlogProcessor(const string& cntlrName) : - GCFTask ((State)&CEPlogProcessor::initial_state,cntlrName), - itsListener (0), - itsControlPort (0), - itsOwnPropertySet (0), - itsTimerPort (0), - itsNrInputBuffers (0), - itsNrIONodes (0), - itsNrAdders (0), - itsNrStorage (0), - itsNrWriters (0), - itsBufferSize (0) -{ - LOG_TRACE_OBJ_STR (cntlrName << " construction"); - - // HACK: test environment uses 4-pset partitions, production environment 64 pset partition - // anything else will break this code. - - string dbname = PVSSinfo::getMainDBName(); - - LOG_DEBUG_STR("Connected to database " << dbname); - - if (dbname == "MCU099") { - LOG_WARN("Detected test environment -- assuming 4 psets"); - itsNrPsets = 4; - } else { - LOG_WARN("Detected production environment -- assuming 64 psets"); - itsNrPsets = 64; - } - - // need port for timers. - itsTimerPort = new GCFTimerPort(*this, "TimerPort"); - - // prepare TCP port to accept connections on - itsListener = new GCFTCPPort (*this, MAC_SVCMASK_CEPLOGPROC, GCFPortInterface::MSPP, 0); - itsListener->setPortNumber(CEP_LOGPROC_LOGGING); - - itsControlPort = new GCFTCPPort (*this, MAC_SVCMASK_CEPLOGCONTROL, GCFPortInterface::MSPP, 0); - itsControlPort->setPortNumber(CEP_LOGPROC_CONTROL); - - itsBufferSize = globalParameterSet()->getInt("CEPlogProcessor.bufferSize", 10240); - itsNrInputBuffers = globalParameterSet()->getInt("CEPlogProcessor.nrInputBuffers", 64); - itsNrIONodes = globalParameterSet()->getInt("CEPlogProcessor.nrIONodes", 64); - itsNrAdders = globalParameterSet()->getInt("CEPlogProcessor.nrAdders", 10); // per io node - itsNrStorage = globalParameterSet()->getInt("CEPlogProcessor.nrStorageNodes", 100); - itsNrWriters = globalParameterSet()->getInt("CEPlogProcessor.nrWriters", 20); // per storage node - - registerProtocol(DP_PROTOCOL, DP_PROTOCOL_STRINGS); - registerProtocol(CONTROLLER_PROTOCOL, CONTROLLER_PROTOCOL_STRINGS); - - thisLogProcessor = this; -} - - -// -// ~CEPlogProcessor() -// -CEPlogProcessor::~CEPlogProcessor() -{ - LOG_TRACE_OBJ_STR (getName() << " destruction"); - - // database should be ready by ts, check if allocation was succesful - for (int inputBuf = itsInputBuffers.size() - 1; inputBuf >= 0; inputBuf--) { - delete itsInputBuffers[inputBuf]; - } - for (int adder = itsAdders.size() - 1; adder >= 0; adder--) { - delete itsAdders[adder]; - } - for (int storage = itsWriters.size() - 1; storage >= 0; storage--) { - delete itsWriters[storage]; - } - - // close all streams - while( !itsLogStreams.empty() ) - _deleteStream( *((*itsLogStreams.begin()).first) ); - - // and reap the port objects immediately - collectGarbage(); - - if (itsControlPort) { - itsControlPort->close(); - delete itsControlPort; - } - - if (itsListener) { - itsListener->close(); - delete itsListener; - } - - delete itsTimerPort; - - delete itsOwnPropertySet; -} - -// -// signalHandler(signr) -// -void CEPlogProcessor::signalHandler(int signum) -{ - LOG_DEBUG_STR("SIGNAL " << signum << " detected"); - - if (thisLogProcessor) { - thisLogProcessor->finish(); - } -} - -// -// finish() -// -void CEPlogProcessor::finish() -{ - TRAN(CEPlogProcessor::finish_state); -} - - - -// -// initial_state(event, port) -// -// Setup connection with PVSS -// -GCFEvent::TResult CEPlogProcessor::initial_state(GCFEvent& event, - GCFPortInterface& port) -{ - LOG_DEBUG_STR ("initial:" << eventName(event) << "@" << port.getName()); - - GCFEvent::TResult status = GCFEvent::HANDLED; - - switch (event.signal) { - case F_INIT: - break; - - case F_ENTRY: { - // Get access to my own propertyset. - LOG_DEBUG_STR ("Activating PropertySet " << PSN_LOG_PROCESSOR); - itsTimerPort->setTimer(2.0); - itsOwnPropertySet = new RTDBPropertySet(PSN_LOG_PROCESSOR, - PST_LOG_PROCESSOR, - PSAT_WO, - this); - - } - break; - - case DP_CREATED: { - // NOTE: this function may be called DURING the construction of the PropertySet. - // Always exit this event in a way that GCF can end the construction. - DPCreatedEvent dpEvent(event); - LOG_DEBUG_STR("Result of creating " << dpEvent.DPname << " = " << dpEvent.result); - itsTimerPort->cancelAllTimers(); - itsTimerPort->setTimer(0.0); - } - break; - - case F_TIMER: { - // update PVSS. - LOG_TRACE_FLOW ("Updateing state to PVSS"); - itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION, GCFPVString("initial")); - - LOG_DEBUG_STR("Going to create the datapoints in PVSS"); - TRAN (CEPlogProcessor::createPropertySets); - } - - case DP_SET: - break; - - case F_QUIT: - TRAN (CEPlogProcessor::finish_state); - break; - - default: - LOG_DEBUG_STR ("initial, DEFAULT"); - break; - } - - return (status); -} - - -// -// createPropertySets(event, port) -// -// Create PropertySets for all processes. -// Actual properties are listed in MAC/Deployment/data/PVSS/*.dpdef. -// -GCFEvent::TResult CEPlogProcessor::createPropertySets(GCFEvent& event, - GCFPortInterface& port) -{ - LOG_DEBUG_STR ("createPropertySets:" << eventName(event) << "@" << port.getName()); - - - GCFEvent::TResult status = GCFEvent::HANDLED; - - switch (event.signal) { - - case F_ENTRY: { - itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("create PropertySets")); - - // create propSets for the inputbuffer processes - itsInputBuffers.resize(itsNrInputBuffers, 0); - for (unsigned inputBuffer = 0; inputBuffer < itsNrInputBuffers; inputBuffer++) { - if (!itsInputBuffers[inputBuffer]) { - string PSname(formatString("LOFAR_PermSW_PSIONode%02d_InputBuffer", inputBuffer)); - itsInputBuffers[inputBuffer] = new RTDBPropertySet(PSname, "InputBuffer", PSAT_WO | PSAT_CW, this); - } - - usleep (2000); // wait 2 ms in order not to overload the system - } - - // create propSets for the adder processes - itsAdders.resize (itsNrAdders * itsNrIONodes); - - for (unsigned ionode = 0; ionode < itsNrIONodes; ionode++) { - for (unsigned adder = 0; adder < itsNrAdders; adder++) { - unsigned index = ionode * itsNrAdders + adder; - - if (!itsAdders[index]) { - string PSname(formatString("LOFAR_ObsSW_OSIONode%02d_Adder%01d", ionode, adder)); - itsAdders[index] = new RTDBPropertySet(PSname, "Adder", PSAT_WO | PSAT_CW, this); - } - - usleep (2000); // wait 2 ms in order not to overload the system - } - } - - // create propSets for the storage processes - itsWriters.resize (itsNrWriters * itsNrStorage, 0); - for (unsigned storage = 0; storage < itsNrStorage; storage++) { - for (unsigned writer = 0; writer < itsNrWriters; writer++) { - unsigned index = storage * itsNrWriters + writer; - - if (!itsWriters[index]) { - // locus nodes start counting from 001 - string PSname(formatString("LOFAR_ObsSW_OSLocusNode%03d_Writer%02d", storage + 1, writer)); - itsWriters[index] = new RTDBPropertySet(PSname, "Writer", PSAT_WO | PSAT_CW, this); - } - - usleep (2000); // wait 2 ms in order not to overload the system - } - } - - LOG_INFO("Giving PVSS 5 seconds to process the requests"); - itsTimerPort->setTimer(5.0); // give database some time to finish the job - } - break; - - case F_TIMER: { - // database should be ready by ts, check if allocation was succesfull - for (unsigned inputBuffer = 0; inputBuffer < itsInputBuffers.size(); inputBuffer++) { - ASSERTSTR(itsInputBuffers[inputBuffer], "Allocation of PS for inputBuffer " << inputBuffer << " failed."); - } - for (unsigned adder = 0; adder < itsAdders.size(); adder++) { - ASSERTSTR(itsAdders[adder], "Allocation of PS for adder " << adder << " failed."); - } - for (unsigned storage = 0; storage < itsWriters.size(); storage++) { - ASSERTSTR(itsWriters[storage], "Allocation of PS for storage " << storage << " failed."); - } - LOG_DEBUG_STR("Allocation of all propertySets successfull, going to open the listener"); - TRAN(CEPlogProcessor::startListener); - } - break; - - case DP_SET: - break; - - case F_QUIT: - TRAN (CEPlogProcessor::finish_state); - break; - - default: - LOG_DEBUG_STR ("createPropertySets, DEFAULT"); - break; - } - - return (status); -} - - -// -// startListener(event, port) -// -GCFEvent::TResult CEPlogProcessor::startListener(GCFEvent& event, GCFPortInterface& port) -{ - LOG_DEBUG_STR("startListener:" << eventName(event) << "@" << port.getName()); - - switch (event.signal) { - case F_ENTRY: - itsListener->autoOpen(0, 10, 2); // report within 10 seconds. - break; - - case F_CONNECTED: - LOG_DEBUG("Listener is started, going to open Controlport"); - TRAN (CEPlogProcessor::startControlPort); - break; - - case F_DISCONNECTED: - LOG_FATAL_STR("Cannot open the listener on port " << itsListener->getPortNumber() << ". Quiting!"); - GCFScheduler::instance()->stop(); - break; - } - - return (GCFEvent::HANDLED); -} - -// -// startControlPort(event, port) -// -GCFEvent::TResult CEPlogProcessor::startControlPort(GCFEvent& event, GCFPortInterface& port) -{ - LOG_DEBUG_STR("startControlPort:" << eventName(event) << "@" << port.getName()); - - switch (event.signal) { - case F_ENTRY: - itsControlPort->autoOpen(0, 10, 2); // report within 10 seconds. - break; - - case F_CONNECTED: - LOG_DEBUG("Listener is started, going to operational mode"); - TRAN (CEPlogProcessor::operational); - break; - - case F_DISCONNECTED: - // DISCO from listener of controlPort: in both cases quit. - LOG_FATAL_STR("Cannot open the controlport on port " << itsControlPort->getPortNumber() << ". Quiting!"); - GCFScheduler::instance()->stop(); - break; - } - - return (GCFEvent::HANDLED); -} - -void CEPlogProcessor::collectGarbage() -{ - if (!itsLogStreamsGarbage.empty()) { - LOG_DEBUG("Cleaning up garbage"); - for (unsigned i = 0; i < itsLogStreamsGarbage.size(); i++) - delete itsLogStreamsGarbage[i]; - - itsLogStreamsGarbage.clear(); - } -} - - -void CEPlogProcessor::processParset( const std::string &observationID ) -{ - time_t now = time(0L); - unsigned obsID; - - if (sscanf(observationID.c_str(), "%u", &obsID) != 1) { - LOG_ERROR_STR("Observation ID not numerical: " << observationID); - return; - } - - // parsets are in LOFAR_SHARE_LOCATION - string filename(formatString("%s/Observation%s", - LOFAR_SHARE_LOCATION, observationID.c_str())); - - LOG_INFO_STR("Reading parset for observation " << observationID << " from " << filename); - - ParameterSet parset(filename); - Observation obs(&parset, false, itsNrPsets); - string observationPrefix = parset.locateModule("Observation") + "Observation."; - - unsigned nrStreams = obs.streamsToStorage.size(); - - // process all the writers - for( unsigned i = 0; i < nrStreams; i++ ) { - Observation::StreamToStorage &s = obs.streamsToStorage[i]; - - unsigned hostNr; - - if (sscanf(s.destStorageNode.c_str(), "%*[^0-9]%u", &hostNr) != 1) { - LOG_WARN_STR("Could not extract host number from name: " << s.destStorageNode ); - continue; - } - - hostNr--; // we use 0-based indexing in our arrays - - unsigned writerIndex = hostNr * itsNrWriters + s.writerNr; - RTDBPropertySet *writer = itsWriters[writerIndex]; - - // reset/fill all fields for this writer - writer->setValue("written", GCFPVInteger(0), now, false); - writer->setValue("dropped", GCFPVInteger(0), now, false); - writer->setValue("fileName", GCFPVString(s.filename), now, false); - writer->setValue("dataRate", GCFPVDouble(0.0), now, false); - writer->setValue("dataProductType", GCFPVString(s.dataProduct), now, false); - writer->setValue("observationName", GCFPVString(observationID), now, false); - writer->flush(); - } - - // process all the adders - for( unsigned i = 0; i < nrStreams; i++ ) { - Observation::StreamToStorage &s = obs.streamsToStorage[i]; - - unsigned adderIndex = s.sourcePset * itsNrAdders + s.adderNr; - RTDBPropertySet *adder = itsAdders[adderIndex]; - - // reset/fill all fields for this writer - adder->setValue("dropping", GCFPVBool(false), now, false); - adder->setValue("dropped", GCFPVInteger(0), now, false); - adder->setValue("dataProductType", GCFPVString(s.dataProduct), now, false); - adder->setValue("fileName", GCFPVString(s.filename), now, false); - adder->setValue("locusNode", GCFPVString(s.destStorageNode), now, false); - adder->setValue("directory", GCFPVString(s.destDirectory), now, false); - adder->setValue("observationName", GCFPVString(observationID), now, false); - adder->flush(); - } - - if (parset.isDefined("_DPname")) { - // register the temporary obs name - registerObservation( obsID, parset.getString("_DPname") ); - } -} - - -void CEPlogProcessor::writeFeedback( int obsID ) -{ - // feedback parsets are to be stored in in LOFAR_SHARE_LOCATION - string filename(formatString("%s/Observation%d_feedback", - LOFAR_SHARE_LOCATION, obsID)); - - // add a prefix - ParameterSet prefixedFeedback = itsFeedback[obsID].makeSubset("", "LOFAR.ObsSW."); - - prefixedFeedback.writeFile(filename); -} - -// -// operational(event, port) -// -GCFEvent::TResult CEPlogProcessor::operational(GCFEvent& event, GCFPortInterface& port) -{ - LOG_DEBUG_STR("operational:" << eventName(event) << "@" << port.getName()); - - switch (event.signal) { - case F_ENTRY: - itsTimerPort->setTimer(1.0,1.0); - break; - - case F_TIMER: - collectGarbage(); - break; - - case F_ACCEPT_REQ: - _handleConnectionRequest(); - break; - - case F_CONNECTED: - break; - - case F_DISCONNECTED: - _deleteStream(port); - break; - - case F_DATAIN: - _handleDataStream(&port); - break; - - case CONTROL_ANNOUNCE: { - CONTROLAnnounceEvent announce(event); - LOG_DEBUG_STR("Received annoucement for Observation " << announce.observationID); - - processParset(announce.observationID); - - break; - } - } - return (GCFEvent::HANDLED); -} - -// -// _deleteStream(GCFPortInterface& port) -// -void CEPlogProcessor::_deleteStream(GCFPortInterface& port) -{ - LOG_DEBUG_STR("_deleteStream"); - port.close(); - - map<GCFPortInterface*, streamBuffer_t>::iterator theStream = itsLogStreams.find(&port); - if (theStream != itsLogStreams.end()) { - streamBuffer_t &sb = theStream->second; - delete sb.buffer; - - itsLogStreams.erase(theStream); - } - - // schedule to delete, since the parent may still be referring to - // port and require info from it - itsLogStreamsGarbage.push_back(&port); -} - -// -// _handleConnectionRequest() -// -void CEPlogProcessor::_handleConnectionRequest() -{ - GCFTCPPort* pNewClient = new GCFTCPPort(); - ASSERT(pNewClient); - - pNewClient->init(*this, "newClient", GCFPortInterface::SPP, 0, true); - if (!itsListener->accept(*pNewClient)) { - LOG_WARN("Connection with new client went wrong"); - return; - } - - // give stream its own buffer. - streamBuffer_t stream; - stream.socket = pNewClient; - stream.buffer = new CircularBuffer(itsBufferSize); - itsLogStreams[pNewClient] = stream; - LOG_INFO_STR("Added new client to my admin"); -} - -// -// _handleDataStream(sid) -// -void CEPlogProcessor::_handleDataStream(GCFPortInterface* port) -{ - // read in the new bytes - streamBuffer_t &stream = itsLogStreams[port]; - int newBytes = stream.socket->recv( stream.buffer->tail, stream.buffer->tailFreeSpace() ); - if (newBytes < 0) { - LOG_DEBUG_STR("Closing connection."); - _deleteStream(*port); - return; - } - - LOG_DEBUG_STR("Read " << newBytes << " bytes."); - stream.buffer->incTail( newBytes ); - - char lineBuf[10240]; - while (stream.buffer->getLine( lineBuf, sizeof lineBuf )) { - LOG_DEBUG_STR("Read log line '" << lineBuf << "'" ); - _processLogLine(lineBuf); - } -} - -// Convert "23-02-11" and "01:02:58.687" into a time_t timestamp -time_t CEPlogProcessor::_parseDateTime(const char *datestr, const char *timestr) const -{ - struct tm tm; - time_t ts; - bool validtime = true; - - if (sscanf(datestr, "%u-%u-%u", - &tm.tm_mday, &tm.tm_mon, &tm.tm_year) != 3) { - validtime = false; - } else { - // tm_year starts counting from 1900 - - if (tm.tm_year > 1900) { - // YYYY - tm.tm_year -= 1900; - } else { - // YY -- we won't see loglines pre 2000. - tm.tm_year += 100; - } - - // tm_mon starts counting from 0 - tm.tm_mon--; - } - - if (sscanf(timestr, "%u:%u:%u", // ignore milliseconds - &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 3) { - validtime = false; - } - - if (validtime) { - tm.tm_isdst = 0; // UTC knows no daylight saving - - ts = mktime(&tm); - - if (ts <= 0) - validtime = false; - } - - if (!validtime) { - LOG_WARN_STR("Invalid timestamp: " << datestr << " " << timestr << "; using now()"); - - ts = time(0L); - } - - LOG_DEBUG_STR("Timestamp: " << datestr << " " << timestr << " converted to " << ts); - - return ts; -} - - -// -// _processLogLine(char*) -// -// -void CEPlogProcessor::_processLogLine(const char *cString) -{ - if (*cString == 0) { - return; - } - - // debug hack - if (!strcmp(cString,"quit")) { - finish(); - return; - } - - // example log line: - // Storage@locus001 09-12-10 11:33:13.240 DEBUG [obs 21855 output 1 subband 223] InputThread::~InputThread() - // ^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - // | | date time | target msg - // | | loglevel - // | processHost - // processName - unsigned bufsize = strlen(cString) + 1; - - vector<char> processName(bufsize), processHost(bufsize), date(bufsize), time(bufsize), loglevel(bufsize), msg(bufsize); - vector<char> target(bufsize), tail(bufsize); - - // TODO: support both exe@nr (IONProc@00) and exe@host (Storage_main@locus002) - if (sscanf(cString, "%[^@]@%s %s %s %s %[^\n]", - &processName[0], - &processHost[0], - &date[0], - &time[0], - &loglevel[0], - &msg[0]) != 6) { - // this will include: - // * mpi/bgp errors - // * casacore messages - // * ssh/login messages - // * log4cplus/cxx messages - // * mangled messages (happens occasionally) - // * backtraces - // * C++/libc errors - LOG_DEBUG_STR("Unparsable log line: " << cString); - return; - } - - LOG_DEBUG_STR("Process: " << &processName[0] << " Host: " << &processHost[0] << " Date: " << &date[0] << " Time: " << &time[0] << " Loglevel: " << &loglevel[0] << " Message: " << &msg[0]); - - struct logline logline; - - logline.process = &processName[0]; - logline.host = &processHost[0]; - logline.date = &date[0]; - logline.time = &time[0]; - logline.loglevel = &loglevel[0]; - logline.fullmsg = cString; - - if (sscanf(&msg[0], "[%[^]]] %[^\n]", &target[0], &tail[0]) == 2) { - logline.target = &target[0]; - logline.msg = &tail[0]; - } else { - logline.target = ""; - logline.msg = &msg[0]; - } - - logline.timestamp = _parseDateTime(logline.date, logline.time); - logline.obsID = _getParam(logline.target, "obs "); - - string tempObsName = logline.obsID >= 0 ? getTempObsName(logline.obsID, logline.msg) : ""; - - logline.tempobsname = tempObsName.c_str(); - - if (!strcmp(logline.process,"IONProc")) { - _processIONProcLine(logline); - } else if (!strcmp(logline.process,"CNProc")) { - _processCNProcLine(logline); - } else if (!strcmp(logline.process,"Storage_main")) { - _processStorageLine(logline); - } else { - LOG_DEBUG_STR("Unknown process: " << logline.process); - } -} - -int CEPlogProcessor::_getParam(const char *msg,const char *param) const -{ - const char *result = strstr(msg, param); - int value; - - if (!result) - return -1; - - if (sscanf(result + strlen(param), "%d", &value) != 1) - return -1; - - return value; -} - -string CEPlogProcessor::getTempObsName(int obsID, const char *msg) -{ - vector<char> tempObsName(strlen(msg)+1); - - // register the tempObsName if this line announces it - if (sscanf(msg,"PVSS name: %[^\n]", &tempObsName[0]) == 1) { - LOG_INFO_STR("Observation " << obsID << " is mapped to " << &tempObsName[0]); - - registerObservation( obsID, string(&tempObsName[0]) ); - } - - if (!strcmp(msg,"----- Job finished successfully") - || !strcmp(msg,"----- Job cancelled successfully")) { - LOG_INFO_STR("Observation " << obsID << " ended"); - - unregisterObservation(obsID); - - return ""; - } - - // lookup the obsID in our list - if (!itsTempObsMapping.exists(obsID)) { - LOG_ERROR_STR("Observation ID " << obsID << " not mapped onto a temporary observation in PVSS. Cannot process log line."); - return ""; - } - - return itsTempObsMapping.lookup(obsID); -} - -void CEPlogProcessor::registerObservation(int obsID, const std::string &tempObsName) -{ - if (itsTempObsMapping.exists(obsID)) { - ASSERTSTR(itsTempObsMapping.lookup(obsID) == tempObsName, "Observation ID remapped from " << itsTempObsMapping.lookup(obsID) << " to " << tempObsName); - return; - } - - itsTempObsMapping.set(obsID, tempObsName); - - itsFeedback[obsID] = ParameterSet(); - - processParset(formatString("%d",obsID)); -} - -void CEPlogProcessor::unregisterObservation(int obsID) -{ - if (!itsTempObsMapping.exists(obsID)) { - LOG_ERROR_STR("Observation ID " << obsID << " not registered. Cannot unregister."); - return; - } - - writeFeedback(obsID); - - itsFeedback.erase(obsID); - - itsTempObsMapping.erase(obsID); - - // signal to MAC that the observation is finished, see redmine ticket #4021 - LOG_INFO_STR("Observation " << obsID << " finished, informing OnlineControl"); - try { - SocketStream ss("localhost", 21000 + obsID % 1000, SocketStream::TCP, SocketStream::Client, time(0) + 30); - const char *status = "FINISHED"; // alternative: "ABORT" - ss.write(&status[0], strlen(status)); - } catch(Exception &ex) { - LOG_ERROR_STR("Caught exception: " << ex); - } -} - - -// returns true if the given logline should be recorded in process.logMsg -bool CEPlogProcessor::_recordLogMsg(const struct logline &logline) const -{ - if (!strcmp(logline.loglevel, "INFO")) - return true; - if (!strcmp(logline.loglevel, "WARN")) - return true; - if (!strcmp(logline.loglevel, "ERROR")) - return true; - if (!strcmp(logline.loglevel, "FATAL")) - return true; - if (!strcmp(logline.loglevel, "EXCEPTION")) - return true; - - return false; -} - -// -// _processIONProcLine(cstring) -// -void CEPlogProcessor::_processIONProcLine(const struct logline &logline) -{ - unsigned processNr; - - if (sscanf(logline.host, "%u", &processNr) != 1) { - LOG_WARN_STR("Could not extract host number from name: " << logline.host ); - return; - } - - if (processNr >= itsNrInputBuffers) { - LOG_WARN_STR("Inputbuffer range = 0.." << itsNrInputBuffers << ". Index " << processNr << " is invalid"); - return; - } - - RTDBPropertySet *inputBuffer = itsInputBuffers[processNr]; - - if (_recordLogMsg(logline)) { - inputBuffer->setValue("process.logMsg", GCFPVString(logline.fullmsg), logline.timestamp, true); - } - - const char* result; - - // IONProc@00 31-03-11 00:17:22.438 INFO [obs 24811] ----- Creating new job - // IONProc@00 31-03-11 00:17:22.550 INFO [obs 24811] Waiting for job to start: sleeping until Thu Mar 31 00:18:50 2011 - // IONProc@00 31-03-11 00:18:50.008 INFO Storage writer on lse012: starting as rank 0 - // IONProc@00 31-03-11 00:18:50.031 INFO [obs 24811] ----- Observation start - - unsigned bufsize = strlen(logline.msg) + 1; - - if (!strcmp(logline.msg,"----- Creating new job")) { - LOG_DEBUG_STR("obs " << logline.obsID << " created"); - } - - if (strstr(logline.msg,"Waiting for job to start")) { - LOG_DEBUG_STR("obs " << logline.obsID << " waiting to start"); - } - - { - vector<char> host(bufsize); - int rank; - - if (sscanf(logline.msg,"Storage writer on %[^:]: starting as rank %d", &host[0], &rank) == 2) { - LOG_DEBUG_STR("obs " << logline.obsID << " starts storage writer " << rank << " on host " << &host[0]); - } - } - - if (!strcmp(logline.msg,"----- Observation start")) { - LOG_DEBUG_STR("obs " << logline.obsID << " run()"); - } - - if (logline.obsID >= 0) { - LOG_DEBUG_STR("input buffer " << processNr << " processes obsid " << logline.obsID); - - // will be flushed once other relevant meta data is found and flushed - inputBuffer->setValue("observationName", GCFPVString(str(format("%i") % logline.obsID).c_str()), logline.timestamp, false); - } - - if ((result = strstr(logline.target, "station "))) { - char stationName[6]; - strncpy(stationName, result + 8, 5); - stationName[5] = '\0'; - - LOG_DEBUG_STR("input buffer " << processNr << " processes station " << stationName); - - // will be flushed once other relevant meta data is found and flushed - inputBuffer->setValue("stationName", GCFPVString(stationName), logline.timestamp, false); - } - - // - // InputBuffer = input from station - // - - // IONProc@01 23-02-11 01:02:58.687 INFO [obs 23603 station CS005HBA1] [1298422977s, 80863], late: 17.6 ms, delays: [8.657333 us], flags 0: (0%), flags 1: (0%), flags 2: (0%), flags 3: (0%) - // IONProc@05 07-01-11 20:57:56.765 INFO [obs 1002069 station S10] [1294433876s, 0], late: 8.85 ms, delays: [-616.3421 ns], flags 0: [0..52992> (100%), flags 1: [0..52992> (100%), flags 2: [0..52992> (100%), flags 3: [0..52992> (100%) - - if ((result = strstr(logline.msg, " late: "))) { - float late = 0.0f; - - if (sscanf(result, " late: %f ", &late) == 1 ) { - LOG_DEBUG_STR("[" << processNr << "] Late: " << late); - inputBuffer->setValue("late", GCFPVDouble(late), logline.timestamp, false); - } - - // 0% flags look like : flags 0: (0%) - // filled% flags look like : flags 0: [nr..nr> (10.5%) - if ((result = strstr(logline.msg, "flags 0:"))) { - float flags0, flags1, flags2, flags3; - - if (sscanf(result, "flags 0:%*[^(](%f%%), flags 1:%*[^(](%f%%), flags 2:%*[^(](%f%%), flags 3:%*[^(](%f%%)", - &flags0, &flags1, &flags2, &flags3) == 4) { - LOG_DEBUG(formatString("[%d] %%bad: %.2f, %.2f, %.2f, %.2f", processNr, flags0, flags1, flags2, flags3)); - - inputBuffer->setValue("stream0.percBad", GCFPVDouble(flags0), logline.timestamp, false); - inputBuffer->setValue("stream1.percBad", GCFPVDouble(flags1), logline.timestamp, false); - inputBuffer->setValue("stream2.percBad", GCFPVDouble(flags2), logline.timestamp, false); - inputBuffer->setValue("stream3.percBad", GCFPVDouble(flags3), logline.timestamp, false); - } - } - - inputBuffer->flush(); - return; - } - - // IONProc@36 23-02-11 00:59:59.151 DEBUG [obs 23603 station CS003HBA0] ION->CN: 483 ms - if ((result = strstr(logline.msg, "ION->CN:"))) { - float ioTime = 0.0f; - if (sscanf(result, "ION->CN:%f", &ioTime) == 1) { - LOG_DEBUG_STR("[" << processNr << "] ioTime: " << ioTime); - inputBuffer->setValue("IOTime", GCFPVDouble(ioTime), logline.timestamp); - return; - } - } - - // IONProc@36 23-02-11 00:59:59.673 INFO [station CS003HBA0] received packets = [12329,12328,12292,12329], us/sy/in/id(0): [21/20/10/51(25)] - if ((result = strstr(logline.msg, "received packets = ["))) { - int received[4] = {0,0,0,0}; - int badsize[4] = {0,0,0,0}; - int badtimestamp[4] = {0,0,0,0}; - - if (sscanf(result, "received packets = [%d,%d,%d,%d]", &received[0], &received[1], &received[2], &received[3]) == 4) { - LOG_DEBUG(formatString("[%d] blocks: %d, %d, %d, %d", processNr, received[0], received[1], received[2], received[3])); - inputBuffer->setValue("stream0.blocksIn", GCFPVInteger(received[0]), logline.timestamp, false); - inputBuffer->setValue("stream1.blocksIn", GCFPVInteger(received[1]), logline.timestamp, false); - inputBuffer->setValue("stream2.blocksIn", GCFPVInteger(received[2]), logline.timestamp, false); - inputBuffer->setValue("stream3.blocksIn", GCFPVInteger(received[3]), logline.timestamp, false); - - // flush will happen below - } - - // if rejected was found in same line this means that a certain amount of blocks was rejected, - // set this into the database. If no rejected was found, it means 0 blocks were rejected, so DB can be reset to 0 - if ((result = strstr(logline.msg, " bad size = ["))) { - if (sscanf(result, " bad size = [%d,%d,%d,%d]", &badsize[0], &badsize[1], &badsize[2], &badsize[3]) == 4) { - LOG_DEBUG(formatString("[%d] rejected: bad size blocks: %d, %d, %d, %d", processNr, badsize[0], badsize[1], badsize[2], badsize[3])); - } else { - badsize[0] = 0; - badsize[1] = 0; - badsize[2] = 0; - badsize[3] = 0; - } - } - - if ((result = strstr(logline.msg, " bad timestamps = ["))) { - if (sscanf(result, " bad timestamps = [%d,%d,%d,%d]", &badtimestamp[0], &badtimestamp[1], &badtimestamp[2], &badtimestamp[3]) == 4) { - LOG_DEBUG(formatString("[%d] rejected: bad timestamp blocks: %d, %d, %d, %d", processNr, badtimestamp[0], badtimestamp[1], badtimestamp[2], badtimestamp[3])); - } else { - badtimestamp[0] = 0; - badtimestamp[1] = 0; - badtimestamp[2] = 0; - badtimestamp[3] = 0; - } - } - - inputBuffer->setValue("stream0.rejected", GCFPVInteger(badsize[0] + badtimestamp[0]), logline.timestamp, false); - inputBuffer->setValue("stream1.rejected", GCFPVInteger(badsize[1] + badtimestamp[1]), logline.timestamp, false); - inputBuffer->setValue("stream2.rejected", GCFPVInteger(badsize[2] + badtimestamp[2]), logline.timestamp, false); - inputBuffer->setValue("stream3.rejected", GCFPVInteger(badsize[3] + badtimestamp[3]), logline.timestamp, false); - inputBuffer->flush(); - return; - } - - - // - // Adder - // - int adderNr = _getParam(logline.target, "adder "); - - if (adderNr >= 0) { - int adderIndex = processNr * itsNrAdders + adderNr; - RTDBPropertySet *adder = itsAdders[adderIndex]; - - // TODO: reset drop count at start of obs --> maybe MAC should do that when assigning the mapping? - - // IONProc@17 07-01-11 20:59:00.981 WARN [obs 1002069 output 6 index L1002069_B102_S0_P000_bf.raw] Dropping data - if ((result = strstr(logline.msg, "Dropping data"))) { - LOG_DEBUG(formatString("[%d] Dropping data started ", adderIndex)); - - adder->setValue("dropping", GCFPVBool(true), logline.timestamp, false); - adder->flush(); - return; - } - - // IONProc@23 07-01-11 20:58:27.848 WARN [obs 1002069 output 6 index L1002069_B139_S0_P000_bf.raw] Dropped 9 blocks this time and 15 blocks since start - if ((result = strstr(logline.msg, "Dropped "))) { - int dropped = 0, total = 0; - - LOG_DEBUG(formatString("[%d] Dropping data ended ",adderIndex)); - - if (sscanf(result, "Dropped %d blocks this time and %d blocks since start", &dropped, &total) == 2) { - LOG_DEBUG(formatString("[%d] Dropped %d for a total of %d", processNr, dropped, total)); - adder->setValue("dropped", GCFPVInteger(total), logline.timestamp, false); - } - adder->setValue("dropping", GCFPVBool(false), logline.timestamp, false); - adder->flush(); - return; - } - } - - ParameterSet *feedback = 0; - - if (logline.obsID >= 0 && observationRegistered(logline.obsID)) { - feedback = &itsFeedback[logline.obsID]; - } - - if (feedback && (result = strstr(logline.msg, "LTA FEEDBACK: "))) { - vector<char> key(strlen(logline.msg)+1); - vector<char> value(strlen(logline.msg)+1); - - if (sscanf(result, "LTA FEEDBACK: %s = %[^\n]s", &key[0], &value[0]) == 2) { - feedback->replace(&key[0], &value[0]); - - LOG_DEBUG_STR("Observation " << logline.obsID << ": Added LTA feedback parameter " << &key[0] << " = " << &value[0]); - } - } -} - -void CEPlogProcessor::_processCNProcLine(const struct logline &logline) -{ - const char *result; - - // CNProc@0000 13-02-12 12:13:44.823 WARN [obs 1003431 phases 111] Station S17 subband 0 consists of only zeros. - if ((result = strstr(logline.msg, "consists of only zeros"))) { - int subband = 0; - vector<char> stationName(strlen(logline.msg)); - if (sscanf(logline.msg, "Station %[^ ]s subband %d consists of only zeros", &stationName[0], &subband) == 2) { - LOG_DEBUG(formatString("[%s] Subband %d is zeros", &stationName[0], subband)); - } - return; - } -} - -void CEPlogProcessor::_processStorageLine(const struct logline &logline) -{ - unsigned hostNr; - - if (sscanf(logline.host, "%u", &hostNr) == 1) { - // Storage_main@00 will yield 00, the index of the first storage node, which is output by Log4Cout - LOG_FATAL_STR("Need a host name, not a number, for Storage (don't use Log4Cout?): " << logline.host ); - return; - } else if (sscanf(logline.host, "%*[^0-9]%u", &hostNr) != 1) { - LOG_WARN_STR("Could not extract host number from name: " << logline.host ); - return; - } - - if (hostNr < 1 || hostNr > itsNrStorage) { - LOG_WARN_STR("Storage range = 1.." << itsNrStorage << ". Index " << hostNr << " is invalid"); - return; - } - - hostNr--; // use 0-based indexing in our arrays - - const char* result; - - int writerNr = _getParam(logline.target, "writer "); - - if (writerNr >= 0) { - int writerIndex = hostNr * itsNrWriters + writerNr; - RTDBPropertySet *writer = itsWriters[writerIndex]; - - if (_recordLogMsg(logline)) { - writer->setValue("process.logMsg", GCFPVString(logline.fullmsg), logline.timestamp, true); - } - - ParameterSet *feedback = 0; - - if (logline.obsID >= 0 && observationRegistered(logline.obsID)) { - feedback = &itsFeedback[logline.obsID]; - } - - if (feedback && (result = strstr(logline.msg, "LTA FEEDBACK: "))) { - vector<char> key(strlen(logline.msg)+1); - vector<char> value(strlen(logline.msg)+1); - - if (sscanf(result, "LTA FEEDBACK: %s = %[^\n]s", &key[0], &value[0]) == 2) { - feedback->replace(&key[0], &value[0]); - - LOG_DEBUG_STR("Observation " << logline.obsID << ": Added LTA feedback parameter " << &key[0] << " = " << &value[0]); - } - } - - // Storage_main@locus088 10-02-12 13:20:01.056 INFO [obs 45784 type 2 stream 12 writer 0] [OutputThread] Written block with seqno = 479, 480 blocks written, 0 blocks dropped - if ((result = strstr(logline.msg, "Written block"))) { - int seqno = 0, written = 0, dropped = 0, perc_written = 0; - if (sscanf(result, "Written block with seqno = %d, %d blocks written (%d%%), %d blocks dropped", &seqno, &written, &perc_written, &dropped) == 4) { - LOG_DEBUG(formatString("[%d] Written %d, dropped %d", writerNr, written, dropped)); - writer->setValue("written", GCFPVInteger(written), logline.timestamp, false); - writer->setValue("dropped", GCFPVInteger(dropped), logline.timestamp, false); - writer->flush(); - } - return; - } - - // Storage_main@locus088 10-02-12 13:20:01.057 INFO [obs 45784 type 2 stream 12 writer 0] [OutputThread] Finished writing: 480 blocks written, 0 blocks dropped: 0% lost - if ((result = strstr(logline.msg, "Finished writing"))) { - int written = 0, dropped = 0, perc_written = 0; - if (sscanf(result, "Finished writing: %d blocks written (%d%%), %d blocks dropped", &written, &perc_written, &dropped) == 3) { - LOG_DEBUG(formatString("[%d] Written %d, dropped %d", writerNr, written, dropped)); - writer->setValue("written", GCFPVInteger(written), logline.timestamp, false); - writer->setValue("dropped", GCFPVInteger(dropped), logline.timestamp, false); - writer->flush(); - } - return; - } - } - -#if 0 - char* result; - - if ((result = strstr(msg, "time ="))) { - int rank(0), count(0); - char tim[24]; - - LOG_DEBUG_STR("_processStorageLine(" << processNr << "," << result << ")"); - if (sscanf(result, "time = %[^,], rank = %d, count = %d", tim, &rank, &count)== 3) - { - LOG_DEBUG(formatString("[%d] time: %s, rank: %d, count: %d", processNr, tim, rank, count)); - itsWritersBuf[processNr].timeStr[rank] = tim; - itsWritersBuf[processNr].count[rank] = count; - } - return; - } -#endif - -#if 0 - // IONProc already reports dropped blocks, and knows more (for example, blocks dropped at the end of an obs) - - // Storage_main@locus001 25-05-11 19:36:38.862 WARN [obs 27304 output 1 index 224] OutputThread dropped 3 blocks - { - int blocks, index, output; - - if (sscanf(result, "[obs %*d output %d index %d] OutputThread dropped %d blocks", &output, &index, &blocks) == 3) { - { - LOG_DEBUG(formatString("Dropped %d blocks: %d, subband: %d, output: %d", blocks, subband, output)); - - // dropped has no rank in yet - // itsWritersBuf[processNr].dropped[rank] = result; - } - return; - } -#endif -} - - -// -// finish_state(event, port) -// -// Write controller state to PVSS -// -GCFEvent::TResult CEPlogProcessor::finish_state(GCFEvent& event, GCFPortInterface& port) -{ - LOG_DEBUG_STR ("finish_state:" << eventName(event) << "@" << port.getName()); - - GCFEvent::TResult status = GCFEvent::HANDLED; - - switch (event.signal) { - case F_INIT: - break; - - case F_ENTRY: { - // update PVSS - itsOwnPropertySet->setValue(string(PN_FSM_CURRENT_ACTION),GCFPVString("finished")); - - itsTimerPort->cancelAllTimers(); - break; - } - - case DP_SET: - break; - - default: - LOG_DEBUG("finishing_state, DEFAULT"); - status = GCFEvent::NOT_HANDLED; - break; - } - return (status); -} - - -}; // StationCU -}; // LOFAR diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.conf b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.conf deleted file mode 100644 index de57fe62563ed3122f0981cf7b6103d34766244d..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.conf +++ /dev/null @@ -1,5 +0,0 @@ -# -# Parameter file for CEPlogProcessor -# -CEPlogProcessor.portNr = 24500 -CEPlogProcessor.bufferSize = 10240000 diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.h b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.h deleted file mode 100644 index d21b998850aa48cb0b347ea3ea0d4d370d6a585f..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.h +++ /dev/null @@ -1,215 +0,0 @@ -//# CEPlogProcessor.cc: Moves the operator info from the logfiles to PVSS -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ -#ifndef LOFAR_APL_CEPLOGPROCESSOR_H -#define LOFAR_APL_CEPLOGPROCESSOR_H - -// \file -// Daemon for launching Application Controllers - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! -//# Includes -#include <Common/ParameterSet.h> -#include <GCF/TM/GCF_Control.h> -#include <GCF/RTDB/RTDB_PropertySet.h> - -#include "CircularBuffer.h" - -#include <time.h> -#include <vector> -#include <string> -#include <map> - -namespace LOFAR { - using MACIO::GCFEvent; - using GCF::TM::GCFTask; - using GCF::TM::GCFTCPPort; - using GCF::TM::GCFTimerPort; - using GCF::TM::GCFPortInterface; - using GCF::RTDB::RTDBPropertySet; - namespace APL { - -// \addtogroup CEPCU -// @{ - -// The CEPlogProcessor class implements a small daemon that ... -class CEPlogProcessor : public GCFTask -{ -public: - explicit CEPlogProcessor(const std::string& cntlrName); - ~CEPlogProcessor(); - - // its processing states - GCFEvent::TResult initial_state (GCFEvent& event, GCFPortInterface& port); - GCFEvent::TResult createPropertySets(GCFEvent& event, GCFPortInterface& port); - GCFEvent::TResult startListener (GCFEvent& event, GCFPortInterface& port); - GCFEvent::TResult startControlPort (GCFEvent& event, GCFPortInterface& port); - GCFEvent::TResult operational (GCFEvent& event, GCFPortInterface& port); - GCFEvent::TResult finish_state (GCFEvent& event, GCFPortInterface& port); - - // Interrupthandler for switching to the finish state when exiting the program - static void signalHandler (int signum); - void finish(); - -private: - // Copying is not allowed - CEPlogProcessor(); - CEPlogProcessor(const CEPlogProcessor& that); - CEPlogProcessor& operator=(const CEPlogProcessor& that); - - // Admin functions - void _deleteStream (GCFPortInterface& port); - void _handleConnectionRequest(); - - // Routines for processing the loglines. - void _handleDataStream (GCFPortInterface* port); - time_t _parseDateTime (const char *datestr, const char *timestr) const; - void _processLogLine (const char *cString); - - void processParset (const std::string &observationID); - void writeFeedback (int obsID); - - struct logline { - // original log line - const char *fullmsg; - - // info straight from splitting log line - const char *process; - const char *host; - const char *date; - const char *time; - const char *loglevel; - const char *target; - const char *msg; - - // info parsed straight from log line - time_t timestamp; - int obsID; // or -1 if unknown - - // info calculated from log line - const char *tempobsname; - }; - - void collectGarbage(); - - // Return the observation ID, or -1 if none can be found - int _getParam(const char *msg,const char *param) const; - - bool _recordLogMsg(const struct logline &logline) const; - - // Return the temporary obs name to use in PVSS. Also registers the temporary obs name - // if the provided log line announces it. - string getTempObsName(int obsID, const char *msg); - - void _processIONProcLine(const struct logline &); - void _processCNProcLine(const struct logline &); - void _processStorageLine(const struct logline &); - - //# --- Datamembers --- - // The listener socket to receive the requests on. - GCFTCPPort* itsListener; - GCFTCPPort* itsControlPort; - - RTDBPropertySet* itsOwnPropertySet; - GCFTimerPort* itsTimerPort; - - // internal structure for admin for 1 stream - typedef struct { - GCFTCPPort* socket; - CircularBuffer* buffer; - } streamBuffer_t; - - // Map containing all the streambuffers. - map<GCFPortInterface*, streamBuffer_t> itsLogStreams; - vector<GCFPortInterface*> itsLogStreamsGarbage; - - vector<RTDBPropertySet*> itsInputBuffers; - vector<RTDBPropertySet*> itsAdders; - vector<RTDBPropertySet*> itsWriters; - - // values read from the conf file. - unsigned itsNrInputBuffers; - unsigned itsNrIONodes; - unsigned itsNrAdders; - unsigned itsNrStorage; - unsigned itsNrWriters; - unsigned itsBufferSize; - - unsigned itsNrPsets; - - template<typename T, typename U> class BiMap { - public: - void set( const T &t, const U &u ) { - // erase old entries across both maps - if (exists(t)) - backward.erase(forward[t]); - if (exists(u)) - forward.erase(backward[u]); - - forward[t] = u; - backward[u] = t; - } - - void erase( const T &t ) { - backward.erase( forward[t] ); - forward.erase( t ); - } - - bool exists( const T &t ) const { - return forward.find(t) != forward.end(); - } - - bool exists( const U &u ) const { - return backward.find(u) != backward.end(); - } - - T &lookup( const U &u ) { - return backward[u]; - } - - U &lookup( const T &t ) { - return forward[t]; - } - - private: - map<T,U> forward; - map<U,T> backward; - }; - - // a BiMap is needed to automatically remove obsIDs that point to - // reused tempObsNames. - BiMap<int, std::string> itsTempObsMapping; - - // feedback information to write to _feedback file - map<int, ParameterSet> itsFeedback; - - // adds/removes known observations from the maps - void registerObservation(int obsID, const std::string &tempObsName); - void unregisterObservation(int obsID); - - bool observationRegistered(int obsID) const { return itsTempObsMapping.exists(obsID); } -}; - -// @} addgroup - } // namespace APL -} // namespace LOFAR - -#endif diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc deleted file mode 100644 index 79d6d55cfa8b21488b43576deadea44cc8d2baea..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc +++ /dev/null @@ -1,63 +0,0 @@ -//# CEPlogProcessorMain.cc: Deamon to dispatch the BG/P logging to PVSS -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <Common/LofarLogger.h> -#include <Common/LofarLocators.h> -#include <Common/Exception.h> -#include <GCF/TM/GCF_Scheduler.h> -#include "CEPlogProcessor.h" - -using namespace LOFAR; -using namespace GCF::TM; -using namespace LOFAR::APL; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -// -// MAIN (parameterfile) -// -int main (int argc, char* argv[]) -{ - try { - GCFScheduler::instance()->init(argc, argv, "CEPlogProcessor"); - - CEPlogProcessor loggerTask("CEPlogger"); - loggerTask.start(); // make initial transition - - GCFScheduler::instance()->run(); - - LOG_INFO_STR("Shutting down: " << argv[0]); - } - catch (LOFAR::Exception& ex) { - LOG_FATAL_STR("Caught exception: " << ex); - LOG_FATAL ("Terminated by exception!"); - return (1); - } - - LOG_INFO("Terminated normally"); - return (0); -} diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CMakeLists.txt b/MAC/APL/CEPCU/src/CEPlogProcessor/CMakeLists.txt deleted file mode 100644 index 0b310b2101bc1ed7d4d98a5d1ea29c2f2561f36b..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -lofar_add_bin_program(CEPlogProcessor - CEPlogProcessorMain.cc - CEPlogProcessor.cc) - -install(FILES - CEPlogProcessor.conf - DESTINATION etc) diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CircularBuffer.h b/MAC/APL/CEPCU/src/CEPlogProcessor/CircularBuffer.h deleted file mode 100644 index db01723535fdab9d1b4c73c228556de519f5e4fe..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CircularBuffer.h +++ /dev/null @@ -1,193 +0,0 @@ -//# CircularBuffer.h: Moves the operator info from the logfiles to PVSS -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: CEPlogProcessor.h 16954 2010-12-15 10:03:09Z mol $ -#ifndef LOFAR_APL_CIRCULARBUFFER_H -#define LOFAR_APL_CIRCULARBUFFER_H - -// \file -// Daemon for launching Application Controllers - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! -//# Includes - -namespace LOFAR { - namespace APL { - -class CircularBuffer { -public: - CircularBuffer( unsigned capacity ): - buffer(0), - begin(0), - end(0), - head(0), - tail(0), - capacity(capacity), - full(capacity == 0) - { - buffer = new char[capacity]; - begin = buffer; - end = buffer + capacity; - head = buffer; - tail = buffer; - } - - ~CircularBuffer() { - delete[] buffer; - } - - bool empty() const { - return head == tail && !full; - } - - unsigned freeSpace() const { - return full ? 0 : (head <= tail ? end - tail + head - begin : tail - head); - } - - unsigned tailFreeSpace() const { - return full ? 0 : (head <= tail ? end - tail : head - tail); - } - - void incTail( unsigned len ) { - tail += len; - if (tail == end) tail = begin; - if (tail == head) full = true; - } - - unsigned putData( char *buf, unsigned buflen ) { - if (full) - return 0; - - if (buflen == 0) - return 0; - - unsigned first_buflen = tailFreeSpace(); - unsigned second_buflen = freeSpace() - first_buflen; - - if (buflen <= first_buflen) { - first_buflen = buflen; - second_buflen = 0; - } else if (buflen <= first_buflen + second_buflen) { - second_buflen = buflen - first_buflen; - } else { - // discard data beyond freeSpace() - } - - memcpy( tail, buf, first_buflen ); - incTail( first_buflen ); - - if (second_buflen) { - memcpy( tail, buf + first_buflen, second_buflen ); - incTail( second_buflen ); - } - - return first_buflen + second_buflen; - } - - bool getLine( char *buf, unsigned buflen ) { - if (empty()) - return false; - - if (buflen == 0) - return true; - - if (buflen == 1) { - *buf = 0; - return true; - } - - buflen--; // reserve space for the trailing 0 - - char *c; - bool twoparts = head >= tail; - - char *firstend = twoparts ? end : tail; - - for (c = head; c == head || c != firstend; c++) { - if (*c != '\n') - continue; - - // line found - unsigned linelen = c - head; - if (linelen >= buflen ) - linelen = buflen; - - memcpy( buf, head, linelen ); - buf[linelen] = 0; - - head = c+1; - if (head == end) - head = begin; - - full = false; - - return true; - } - - if (twoparts) { - for (c = begin; c != tail; c++) { - if (*c != '\n') - continue; - - // line found - unsigned first_linelen = end - head; - unsigned second_linelen = c - begin; - - if (first_linelen >= buflen) { - first_linelen = buflen; - second_linelen = 0; - } else if (first_linelen + second_linelen >= buflen) { - second_linelen = buflen - first_linelen; - } - - memcpy( buf, head, first_linelen ); - memcpy( buf + first_linelen, begin, second_linelen ); - - buf[first_linelen + second_linelen] = 0; - - head = c+1; - if (head == end) - head = begin; - - full = false; - - return true; - } - } - - // no line found - return false; - } - -public: - char *buffer; - char *begin, *end; - char *head, *tail; - unsigned capacity; - bool full; - -}; - -// @} addgroup - } // namespace APL -} // namespace LOFAR - -#endif - diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/PVSSDatapointDefs.h b/MAC/APL/CEPCU/src/CEPlogProcessor/PVSSDatapointDefs.h deleted file mode 100644 index 9f83a52dda5186c04b67baafe90c3bd19e564dce..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/PVSSDatapointDefs.h +++ /dev/null @@ -1,457 +0,0 @@ -// This file was generated by create_db_files v2.0 on Tue Oct 9 13:22:37 UTC 2012 - -#ifndef LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H -#define LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H -// process -#define PN_FSM_PROCESSID "process.processID" -#define PN_FSM_START_TIME "process.startTime" -#define PN_FSM_STOP_TIME "process.stopTime" -#define PN_FSM_LOG_MSG "process.logMsg" -#define PN_FSM_ERROR "process.error" -#define PN_FSM_CURRENT_ACTION "process.currentAction" -// object -#define PN_OBJ_STATE "object.state" -#define PN_OBJ_CHILD_STATE "object.childState" -#define PN_OBJ_MESSAGE "object.message" -#define PN_OBJ_LEAF "object.leaf" - -// MACScheduler -#define PSN_MAC_SCHEDULER "LOFAR_PermSW_MACScheduler" -#define PST_MAC_SCHEDULER "MACScheduler" -#define PN_MS_PLANNED_OBSERVATIONS "plannedObservations" -#define PN_MS_ACTIVE_OBSERVATIONS "activeObservations" -#define PN_MS_FINISHED_OBSERVATIONS "finishedObservations" -#define PN_MS_OTDB_CONNECTED "OTDB.connected" -#define PN_MS_OTDB_LAST_POLL "OTDB.lastPoll" -#define PN_MS_OTDB_POLLINTERVAL "OTDB.pollinterval" - -// CRTriggerControl -#define PSN_CR_TRIGGER_CONTROL "LOFAR_PermSW_CRTriggerControl" -#define PST_CR_TRIGGER_CONTROL "CRTriggerControl" - -// Observation -#define PSN_OBSERVATION "LOFAR_ObsSW_@observation@" -#define PST_OBSERVATION "Observation" -#define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate" -#define PN_OBS_CLAIM_NAME "claim.name" -#define PN_OBS_CLAIM_PERIOD "claimPeriod" -#define PN_OBS_PREPARE_PERIOD "preparePeriod" -#define PN_OBS_START_TIME "startTime" -#define PN_OBS_STOP_TIME "stopTime" -#define PN_OBS_BAND_FILTER "bandFilter" -#define PN_OBS_NYQUISTZONE "nyquistzone" -#define PN_OBS_ANTENNA_ARRAY "antennaArray" -#define PN_OBS_RECEIVER_LIST "receiverList" -#define PN_OBS_SAMPLE_CLOCK "sampleClock" -#define PN_OBS_RUN_STATE "runState" -#define PN_OBS_MEASUREMENT_SET "measurementSet" -#define PN_OBS_PROCESS_TYPE "processType" -#define PN_OBS_PROCESS_SUBTYPE "processSubtype" -#define PN_OBS_STRATEGY "strategy" -#define PN_OBS_STATION_LIST "stationList" -#define PN_OBS_INPUT_NODE_LIST "inputNodeList" -#define PN_OBS_BGL_NODE_LIST "BGLNodeList" -#define PN_OBS_STORAGE_NODE_LIST "storageNodeList" -#define PN_OBS_BEAMS_ANGLE1 "Beams.angle1" -#define PN_OBS_BEAMS_ANGLE2 "Beams.angle2" -#define PN_OBS_BEAMS_DIRECTION_TYPE "Beams.directionType" -#define PN_OBS_BEAMS_SUBBAND_LIST "Beams.subbandList" -#define PN_OBS_TIED_ARRAY_BEAMS_BEAM_INDEX "TiedArrayBeams.beamIndex" -#define PN_OBS_TIED_ARRAY_BEAMS_ANGLE1 "TiedArrayBeams.angle1" -#define PN_OBS_TIED_ARRAY_BEAMS_ANGLE2 "TiedArrayBeams.angle2" -#define PN_OBS_TIED_ARRAY_BEAMS_DIRECTION_TYPE "TiedArrayBeams.directionType" -#define PN_OBS_TIED_ARRAY_BEAMS_DISPERSION "TiedArrayBeams.dispersion" -#define PN_OBS_TIED_ARRAY_BEAMS_COHERENT "TiedArrayBeams.coherent" - -// ObservationControl -#define PSN_OBSERVATION_CONTROL "LOFAR_ObsSW_@observation@_ObservationControl" -#define PST_OBSERVATION_CONTROL "ObservationControl" -#define PN_OBSCTRL_COMMAND "command" - -// InputBuffer -#define PSN_INPUT_BUFFER "LOFAR_PermSW_@psionode@_InputBuffer" -#define PST_INPUT_BUFFER "InputBuffer" -#define PN_IPB_STATION_NAME "stationName" -#define PN_IPB_OBSERVATION_NAME "observationName" -#define PN_IPB_STREAM0_BLOCKS_IN "stream0.blocksIn" -#define PN_IPB_STREAM0_PERC_BAD "stream0.percBad" -#define PN_IPB_STREAM0_REJECTED "stream0.rejected" -#define PN_IPB_STREAM1_BLOCKS_IN "stream1.blocksIn" -#define PN_IPB_STREAM1_PERC_BAD "stream1.percBad" -#define PN_IPB_STREAM1_REJECTED "stream1.rejected" -#define PN_IPB_STREAM2_BLOCKS_IN "stream2.blocksIn" -#define PN_IPB_STREAM2_PERC_BAD "stream2.percBad" -#define PN_IPB_STREAM2_REJECTED "stream2.rejected" -#define PN_IPB_STREAM3_BLOCKS_IN "stream3.blocksIn" -#define PN_IPB_STREAM3_PERC_BAD "stream3.percBad" -#define PN_IPB_STREAM3_REJECTED "stream3.rejected" -#define PN_IPB_LATE "late" -#define PN_IPB_IO_TIME "IOTime" - -// Adder -#define PSN_ADDER "LOFAR_ObsSW_@osionode@_@adder@" -#define PST_ADDER "Adder" -#define PN_ADD_DROPPING "dropping" -#define PN_ADD_DROPPED "dropped" -#define PN_ADD_DATA_PRODUCT_TYPE "dataProductType" -#define PN_ADD_DATA_PRODUCT "dataProduct" -#define PN_ADD_FILE_NAME "fileName" -#define PN_ADD_LOCUS_NODE "locusNode" -#define PN_ADD_WRITER "writer" -#define PN_ADD_DIRECTORY "directory" -#define PN_ADD_OBSERVATION_NAME "observationName" - -// Writer -#define PSN_WRITER "LOFAR_ObsSW_@oslocusnode@_@writer@" -#define PST_WRITER "Writer" -#define PN_WTR_WRITTEN "written" -#define PN_WTR_DROPPED "dropped" -#define PN_WTR_FILE_NAME "fileName" -#define PN_WTR_DATA_RATE "dataRate" -#define PN_WTR_DATA_PRODUCT_TYPE "dataProductType" -#define PN_WTR_OBSERVATION_NAME "observationName" - -// IONode -#define PSN_IO_NODE "LOFAR_PIC_BGP_@midplane@_@ionode@" -#define PST_IO_NODE "IONode" -#define PN_ION_STATION0 "station0" -#define PN_ION_IP0 "IP0" -#define PN_ION_MAC0 "MAC0" -#define PN_ION_STATION1 "station1" -#define PN_ION_IP1 "IP1" -#define PN_ION_MAC1 "MAC1" -#define PN_ION_USE2ND_STATION "use2ndStation" -#define PN_ION_USED_STATION "usedStation" -#define PN_ION_USEDIP "usedIP" -#define PN_ION_USEDMAC "usedMAC" - -// LocusNode -#define PSN_LOCUS_NODE "LOFAR_PIC_@osrack@_@locusnode@" -#define PST_LOCUS_NODE "LocusNode" -#define PN_LCN_FREE "free" -#define PN_LCN_TOTAL "total" -#define PN_LCN_CLAIMED "claimed" - -// CEPHardwareMonitor -#define PSN_CEP_HARDWARE_MONITOR "LOFAR_PermSW_CEPHardwareMonitor" -#define PST_CEP_HARDWARE_MONITOR "CEPHardwareMonitor" -#define PN_CHM_BGP_CONNECTED "BGP.connected" -#define PN_CHM_CLUSTER_CONNECTED "Cluster.connected" - -// Cabinet -#define PSN_CABINET "LOFAR_PIC_@cabinet@" -#define PST_CABINET "Cabinet" -#define PN_CAB_FRONT_DOOR_OPEN "frontDoorOpen" -#define PN_CAB_FRONT_FAN_INNER "frontFanInner" -#define PN_CAB_FRONT_FAN_OUTER "frontFanOuter" -#define PN_CAB_FRONT_AIRFLOW "frontAirflow" -#define PN_CAB_BACK_DOOR_OPEN "backDoorOpen" -#define PN_CAB_BACK_FAN_INNER "backFanInner" -#define PN_CAB_BACK_FAN_OUTER "backFanOuter" -#define PN_CAB_BACK_AIRFLOW "backAirflow" -#define PN_CAB_TEMP_ALARM "tempAlarm" -#define PN_CAB_HUMIDITY_ALARM "humidityAlarm" -#define PN_CAB_TEMPERATURE "temperature" -#define PN_CAB_TEMP_MIN "tempMin" -#define PN_CAB_TEMP_MAX "tempMax" -#define PN_CAB_TEMP_MAX_MAX "tempMaxMax" -#define PN_CAB_HUMIDITY "humidity" -#define PN_CAB_HUMIDITY_MAX "humidityMax" -#define PN_CAB_HUMIDITY_MAX_MAX "humidityMaxMax" -#define PN_CAB_CONTROL_MODE "controlMode" -#define PN_CAB_TEMPERATURE_SENSOR "temperatureSensor" -#define PN_CAB_HUMIDITY_CONTROL "humidityControl" -#define PN_CAB_DOOR_CONTROL "doorControl" - -// SubRack -#define PSN_SUB_RACK "LOFAR_PIC_@cabinet@_@subrack@" -#define PST_SUB_RACK "SubRack" -#define PN_SRCK_SPU_STATUS_STATE "SPU.status.state" -#define PN_SRCK_SPU_STATUS_CHILD_STATE "SPU.status.childState" -#define PN_SRCK_SPU_STATUS_MESSAGE "SPU.status.message" -#define PN_SRCK_SPU_STATUS_LEAF "SPU.status.leaf" -#define PN_SRCK_SPU__VHBA "SPU.Vhba" -#define PN_SRCK_SPU__VLBA "SPU.Vlba" -#define PN_SRCK_SPU__VDIG "SPU.Vdig" -#define PN_SRCK_SPU_TEMPERATURE "SPU.temperature" -#define PN_SRCK_CLOCK_BOARD_STATUS_STATE "clockBoard.status.state" -#define PN_SRCK_CLOCK_BOARD_STATUS_CHILD_STATE "clockBoard.status.childState" -#define PN_SRCK_CLOCK_BOARD_STATUS_MESSAGE "clockBoard.status.message" -#define PN_SRCK_CLOCK_BOARD_STATUS_LEAF "clockBoard.status.leaf" -#define PN_SRCK_CLOCK_BOARD__VFSP "clockBoard.Vfsp" -#define PN_SRCK_CLOCK_BOARD__VCLOCK "clockBoard.Vclock" -#define PN_SRCK_CLOCK_BOARD_VERSION "clockBoard.version" -#define PN_SRCK_CLOCK_BOARD_FREQ "clockBoard.freq" -#define PN_SRCK_CLOCK_BOARD_LOCK160 "clockBoard.lock160" -#define PN_SRCK_CLOCK_BOARD_LOCK200 "clockBoard.lock200" -#define PN_SRCK_CLOCK_BOARD_TEMPERATURE "clockBoard.temperature" - -// RSPBoard -#define PSN_RSP_BOARD "LOFAR_PIC_@cabinet@_@subrack@_@RSPBoard@" -#define PST_RSP_BOARD "RSPBoard" -#define PN_RSP_VOLTAGE12 "voltage12" -#define PN_RSP_VOLTAGE25 "voltage25" -#define PN_RSP_VOLTAGE33 "voltage33" -#define PN_RSP_VERSION "version" -#define PN_RSP_BITMODE "bitmode" -#define PN_RSP_BITMODE_CAPABILITY "bitmodeCapability" -#define PN_RSP_ALERT "alert" -#define PN_RSP_SPLITTER_ON "splitterOn" -#define PN_RSP__ETHERNET_STATUS_STATE "Ethernet.status.state" -#define PN_RSP__ETHERNET_STATUS_CHILD_STATE "Ethernet.status.childState" -#define PN_RSP__ETHERNET_STATUS_MESSAGE "Ethernet.status.message" -#define PN_RSP__ETHERNET_STATUS_LEAF "Ethernet.status.leaf" -#define PN_RSP_ETHERNET_PACKETS_RECEIVED "Ethernet.packetsReceived" -#define PN_RSP_ETHERNET_PACKETS_ERROR "Ethernet.packetsError" -#define PN_RSP_ETHERNET_LAST_ERROR "Ethernet.lastError" -#define PN_RSP_MEP_SEQNR "MEP.seqnr" -#define PN_RSP_MEP_ERROR "MEP.error" -#define PN_RSP_BP_STATUS_STATE "BP.status.state" -#define PN_RSP_BP_STATUS_CHILD_STATE "BP.status.childState" -#define PN_RSP_BP_STATUS_MESSAGE "BP.status.message" -#define PN_RSP_BP_STATUS_LEAF "BP.status.leaf" -#define PN_RSP_BP_TEMPERATURE "BP.temperature" -#define PN_RSP_BP_VERSION "BP.version" -#define PN_RSP_AP0_STATUS_STATE "AP0.status.state" -#define PN_RSP_AP0_STATUS_CHILD_STATE "AP0.status.childState" -#define PN_RSP_AP0_STATUS_MESSAGE "AP0.status.message" -#define PN_RSP_AP0_STATUS_LEAF "AP0.status.leaf" -#define PN_RSP_AP0_TEMPERATURE "AP0.temperature" -#define PN_RSP_AP0_VERSION "AP0.version" -#define PN_RSP_AP0_SYNC_SAMPLE_COUNT "AP0.SYNC.sampleCount" -#define PN_RSP_AP0_SYNC_SYNC_COUNT "AP0.SYNC.syncCount" -#define PN_RSP_AP0_SYNC_ERROR_COUNT "AP0.SYNC.errorCount" -#define PN_RSP_AP1_STATUS_STATE "AP1.status.state" -#define PN_RSP_AP1_STATUS_CHILD_STATE "AP1.status.childState" -#define PN_RSP_AP1_STATUS_MESSAGE "AP1.status.message" -#define PN_RSP_AP1_STATUS_LEAF "AP1.status.leaf" -#define PN_RSP_AP1_TEMPERATURE "AP1.temperature" -#define PN_RSP_AP1_VERSION "AP1.version" -#define PN_RSP_AP1_SYNC_SAMPLE_COUNT "AP1.SYNC.sampleCount" -#define PN_RSP_AP1_SYNC_SYNC_COUNT "AP1.SYNC.syncCount" -#define PN_RSP_AP1_SYNC_ERROR_COUNT "AP1.SYNC.errorCount" -#define PN_RSP_AP2_STATUS_STATE "AP2.status.state" -#define PN_RSP_AP2_STATUS_CHILD_STATE "AP2.status.childState" -#define PN_RSP_AP2_STATUS_MESSAGE "AP2.status.message" -#define PN_RSP_AP2_STATUS_LEAF "AP2.status.leaf" -#define PN_RSP_AP2_TEMPERATURE "AP2.temperature" -#define PN_RSP_AP2_VERSION "AP2.version" -#define PN_RSP_AP2_SYNC_SAMPLE_COUNT "AP2.SYNC.sampleCount" -#define PN_RSP_AP2_SYNC_SYNC_COUNT "AP2.SYNC.syncCount" -#define PN_RSP_AP2_SYNC_ERROR_COUNT "AP2.SYNC.errorCount" -#define PN_RSP_AP3_STATUS_STATE "AP3.status.state" -#define PN_RSP_AP3_STATUS_CHILD_STATE "AP3.status.childState" -#define PN_RSP_AP3_STATUS_MESSAGE "AP3.status.message" -#define PN_RSP_AP3_STATUS_LEAF "AP3.status.leaf" -#define PN_RSP_AP3_TEMPERATURE "AP3.temperature" -#define PN_RSP_AP3_VERSION "AP3.version" -#define PN_RSP_AP3_SYNC_SAMPLE_COUNT "AP3.SYNC.sampleCount" -#define PN_RSP_AP3_SYNC_SYNC_COUNT "AP3.SYNC.syncCount" -#define PN_RSP_AP3_SYNC_ERROR_COUNT "AP3.SYNC.errorCount" - -// RCU -#define PSN_RCU "LOFAR_PIC_@cabinet@_@subrack@_@RSPBoard@_@rcu@" -#define PST_RCU "RCU" -#define PN_RCU_DELAY "Delay" -#define PN_RCU_INPUT_ENABLE "InputEnable" -#define PN_RCU_LBL_ENABLE "LBLEnable" -#define PN_RCU_LBH_ENABLE "LBHEnable" -#define PN_RCU_HBA_ENABLE "HBAEnable" -#define PN_RCU_BAND_SEL_LBA_HBA "bandSelLbaHba" -#define PN_RCU_HBA_FILTER_SEL "HBAFilterSel" -#define PN_RCU_VL_ENABLE "VlEnable" -#define PN_RCU_VH_ENABLE "VhEnable" -#define PN_RCU_VDD_VCC_ENABLE "VddVccEnable" -#define PN_RCU_BAND_SEL_LBL_LBH "bandSelLblLbh" -#define PN_RCU_LBA_FILTER_SEL "LBAFilterSel" -#define PN_RCU_ATTENUATION "Attenuation" -#define PN_RCU_NOF_OVERFLOW "nofOverflow" -#define PN_RCU_ADC_STATISTICS_OVERFLOW "ADCStatistics.overflow" -#define PN_RCU_TBB_ERROR "TBB.error" -#define PN_RCU_TBB_MODE "TBB.mode" -#define PN_RCU_TBB_START_ADDR "TBB.startAddr" -#define PN_RCU_TBB_BUF_SIZE "TBB.bufSize" -#define PN_RCU_TRIGGER_STARTLEVEL "Trigger.startlevel" -#define PN_RCU_TRIGGER_BASELEVEL "Trigger.baselevel" -#define PN_RCU_TRIGGER_STOPLEVEL "Trigger.stoplevel" -#define PN_RCU_TRIGGER_FILTER "Trigger.filter" -#define PN_RCU_TRIGGER_WINDOW "Trigger.window" -#define PN_RCU_TRIGGER_OPERATING_MODE "Trigger.operatingMode" -#define PN_RCU_TRIGGER_TRIGGER_MODE "Trigger.triggerMode" -#define PN_RCU_TRIGGER_FILTER0_COEFF0 "Trigger.filter0.coeff0" -#define PN_RCU_TRIGGER_FILTER0_COEFF1 "Trigger.filter0.coeff1" -#define PN_RCU_TRIGGER_FILTER0_COEFF2 "Trigger.filter0.coeff2" -#define PN_RCU_TRIGGER_FILTER0_COEFF3 "Trigger.filter0.coeff3" -#define PN_RCU_TRIGGER_FILTER1_COEFF0 "Trigger.filter1.coeff0" -#define PN_RCU_TRIGGER_FILTER1_COEFF1 "Trigger.filter1.coeff1" -#define PN_RCU_TRIGGER_FILTER1_COEFF2 "Trigger.filter1.coeff2" -#define PN_RCU_TRIGGER_FILTER1_COEFF3 "Trigger.filter1.coeff3" - -// TBBoard -#define PSN_TB_BOARD "LOFAR_PIC_@cabinet@_@subrack@_@TBBoard@" -#define PST_TB_BOARD "TBBoard" -#define PN_TBB_BOARDID "boardID" -#define PN_TBB_RAM_SIZE "RAMSize" -#define PN_TBB_SW_VERSION "SWVersion" -#define PN_TBB_BOARD_VERSION "boardVersion" -#define PN_TBB_TP_VERSION "TPVersion" -#define PN_TBB_MP0_VERSION "MP0Version" -#define PN_TBB_MP1_VERSION "MP1Version" -#define PN_TBB_MP2_VERSION "MP2Version" -#define PN_TBB_MP3_VERSION "MP3Version" -#define PN_TBB_VOLTAGE12 "voltage12" -#define PN_TBB_VOLTAGE25 "voltage25" -#define PN_TBB_VOLTAGE33 "voltage33" -#define PN_TBB_TEMPPCB "tempPCB" -#define PN_TBB_TEMPTP "tempTP" -#define PN_TBB_TEMPMP0 "tempMP0" -#define PN_TBB_TEMPMP1 "tempMP1" -#define PN_TBB_TEMPMP2 "tempMP2" -#define PN_TBB_TEMPMP3 "tempMP3" -#define PN_TBB_IMAGE_INFO_VERSION "imageInfo.version" -#define PN_TBB_IMAGE_INFO_WRITE_DATE "imageInfo.writeDate" -#define PN_TBB_IMAGE_INFO_TP_FILE "imageInfo.TPFile" -#define PN_TBB_IMAGE_INFO_MP_FILE "imageInfo.MPFile" - -// LBAAntenna -#define PSN_LBA_ANTENNA "LOFAR_PIC_@lbaantenna@" -#define PST_LBA_ANTENNA "LBAAntenna" - -// HBAAntenna -#define PSN_HBA_ANTENNA "LOFAR_PIC_@hbaantenna@" -#define PST_HBA_ANTENNA "HBAAntenna" - -// StationInfo -#define PSN_STATION_INFO "LOFAR_PIC_StationInfo" -#define PST_STATION_INFO "StationInfo" -#define PN_STI_STATIONID "stationID" -#define PN_STI_N_RSP_BOARDS "N_RSPBoards" -#define PN_STI_N_TB_BOARDS "N_TBBoards" -#define PN_STI_N_LBAS "N_LBAS" -#define PN_STI_N_HBAS "N_HBAS" -#define PN_STI_HBA__SPLIT "HBA_Split" -#define PN_STI_WIDE_LBAS "wide_LBAS" -#define PN_STI_POWER48_ON "power48On" -#define PN_STI_POWER220_ON "power220On" -#define PN_STI_CABINET_X "Cabinet.X" -#define PN_STI_CABINET_Y "Cabinet.Y" -#define PN_STI_CABINET_Z "Cabinet.Z" -#define PN_STI_HBA_CENTERX "HBA.centerX" -#define PN_STI_HBA_CENTERY "HBA.centerY" -#define PN_STI_HBA_CENTERZ "HBA.centerZ" -#define PN_STI_HBA_HBA0_CENTERX "HBA.HBA0.centerX" -#define PN_STI_HBA_HBA0_CENTERY "HBA.HBA0.centerY" -#define PN_STI_HBA_HBA0_CENTERZ "HBA.HBA0.centerZ" -#define PN_STI_HBA_HBA0__NORMAL_VECTOR_X "HBA.HBA0.NormalVector.X" -#define PN_STI_HBA_HBA0__NORMAL_VECTOR_Y "HBA.HBA0.NormalVector.Y" -#define PN_STI_HBA_HBA0__NORMAL_VECTOR_Z "HBA.HBA0.NormalVector.Z" -#define PN_STI_HBA_HBA0__ROTATION_MATRIX_X "HBA.HBA0.RotationMatrix.X" -#define PN_STI_HBA_HBA0__ROTATION_MATRIX_Y "HBA.HBA0.RotationMatrix.Y" -#define PN_STI_HBA_HBA0__ROTATION_MATRIX_Z "HBA.HBA0.RotationMatrix.Z" -#define PN_STI_HBA_HBA0_ROTATION "HBA.HBA0.rotation" -#define PN_STI_HBA_HBA1_CENTERX "HBA.HBA1.centerX" -#define PN_STI_HBA_HBA1_CENTERY "HBA.HBA1.centerY" -#define PN_STI_HBA_HBA1_CENTERZ "HBA.HBA1.centerZ" -#define PN_STI_HBA_HBA1__NORMAL_VECTOR_X "HBA.HBA1.NormalVector.X" -#define PN_STI_HBA_HBA1__NORMAL_VECTOR_Y "HBA.HBA1.NormalVector.Y" -#define PN_STI_HBA_HBA1__NORMAL_VECTOR_Z "HBA.HBA1.NormalVector.Z" -#define PN_STI_HBA_HBA1__ROTATION_MATRIX_X "HBA.HBA1.RotationMatrix.X" -#define PN_STI_HBA_HBA1__ROTATION_MATRIX_Y "HBA.HBA1.RotationMatrix.Y" -#define PN_STI_HBA_HBA1__ROTATION_MATRIX_Z "HBA.HBA1.RotationMatrix.Z" -#define PN_STI_HBA_HBA1_ROTATION "HBA.HBA1.rotation" -#define PN_STI_LBA_CENTERX "LBA.centerX" -#define PN_STI_LBA_CENTERY "LBA.centerY" -#define PN_STI_LBA_CENTERZ "LBA.centerZ" -#define PN_STI_LBA__NORMAL_VECTOR_X "LBA.NormalVector.X" -#define PN_STI_LBA__NORMAL_VECTOR_Y "LBA.NormalVector.Y" -#define PN_STI_LBA__NORMAL_VECTOR_Z "LBA.NormalVector.Z" -#define PN_STI_LBA__ROTATION_MATRIX_X "LBA.RotationMatrix.X" -#define PN_STI_LBA__ROTATION_MATRIX_Y "LBA.RotationMatrix.Y" -#define PN_STI_LBA__ROTATION_MATRIX_Z "LBA.RotationMatrix.Z" - -// LogProcessor -#define PSN_LOG_PROCESSOR "LOFAR_PermSW_Daemons_LogProcessor" -#define PST_LOG_PROCESSOR "LogProcessor" - -// SASGateway -#define PSN_SAS_GATEWAY "LOFAR_PermSW_Daemons_SASGateway" -#define PST_SAS_GATEWAY "SASGateway" - -// HardwareMonitor -#define PSN_HARDWARE_MONITOR "LOFAR_PermSW_HardwareMonitor" -#define PST_HARDWARE_MONITOR "HardwareMonitor" -#define PN_HWM_RSP_CONNECTED "RSP.connected" -#define PN_HWM_TBB_CONNECTED "TBB.connected" -#define PN_HWM_EC_CONNECTED "EC.connected" - -// SoftwareMonitor -#define PSN_SOFTWARE_MONITOR "LOFAR_PermSW_SoftwareMonitor" -#define PST_SOFTWARE_MONITOR "SoftwareMonitor" -#define PN_SWM_SW_LEVEL "SWLevel" - -// SHMInfoServer -#define PSN_SHM_INFO_SERVER "LOFAR_PermSW_SHMInfoServer" -#define PST_SHM_INFO_SERVER "SHMInfoServer" - -// StationControl -#define PSN_STATION_CONTROL "LOFAR_PermSW_StationControl" -#define PST_STATION_CONTROL "StationControl" -#define PN_SC_ACTIVE_OBSERVATIONS "activeObservations" - -// ClockControl -#define PSN_CLOCK_CONTROL "LOFAR_PermSW_ClockControl" -#define PST_CLOCK_CONTROL "ClockControl" -#define PN_CLC_CONNECTED "connected" -#define PN_CLC_REQUESTED_CLOCK "requestedClock" -#define PN_CLC_ACTUAL_CLOCK "actualClock" -#define PN_CLC_REQUESTED_BITMODE "requestedBitmode" -#define PN_CLC_ACTUAL_BITMODE "actualBitmode" - -// StnObservation -#define PSN_STN_OBSERVATION "LOFAR_ObsSW_@observation@" -#define PST_STN_OBSERVATION "StnObservation" -#define PN_OBS_NAME "name" -#define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate" -#define PN_OBS_CLAIM_NAME "claim.name" -#define PN_OBS_RECEIVER_BITMAP "receiverBitmap" -#define PN_OBS_HBA_BITMAP "HBABitmap" -#define PN_OBS_LBA_BITMAP "LBABitmap" - -// BeamControl -#define PSN_BEAM_CONTROL "LOFAR_ObsSW_@observation@_BeamControl" -#define PST_BEAM_CONTROL "BeamControl" -#define PN_BC_CONNECTED "connected" -#define PN_BC_SUB_ARRAY "subArray" -#define PN_BC_SUBBAND_LIST "subbandList" -#define PN_BC_BEAMLET_LIST "beamletList" -#define PN_BC_ANGLE1 "angle1" -#define PN_BC_ANGLE2 "angle2" -#define PN_BC_DIRECTION_TYPE "directionType" -#define PN_BC_BEAM_NAME "beamName" - -// CalibrationControl -#define PSN_CALIBRATION_CONTROL "LOFAR_ObsSW_@observation@_CalibrationControl" -#define PST_CALIBRATION_CONTROL "CalibrationControl" -#define PN_CC_CONNECTED "connected" -#define PN_CC_BEAM_NAMES "beamNames" -#define PN_CC_ANTENNA_ARRAY "antennaArray" -#define PN_CC_FILTER "filter" -#define PN_CC_NYQUISTZONE "nyquistzone" -#define PN_CC_RCUS "rcus" - -// TBBControl -#define PSN_TBB_CONTROL "LOFAR_ObsSW_@observation@_TBBControl" -#define PST_TBB_CONTROL "TBBControl" -#define PN_TBC_CONNECTED "connected" -#define PN_TBC_TRIGGER_RCU_NR "trigger.rcuNr" -#define PN_TBC_TRIGGER_SEQUENCE_NR "trigger.sequenceNr" -#define PN_TBC_TRIGGER_TIME "trigger.time" -#define PN_TBC_TRIGGER_SAMPLE_NR "trigger.sampleNr" -#define PN_TBC_TRIGGER_SUM "trigger.sum" -#define PN_TBC_TRIGGER_NR_SAMPLES "trigger.nrSamples" -#define PN_TBC_TRIGGER_PEAK_VALUE "trigger.peakValue" -#define PN_TBC_TRIGGER_FLAGS "trigger.flags" -#define PN_TBC_TRIGGER_TABLE "trigger.table" -#define PN_TBC_TRIGGER_MISSED "trigger.missed" - -#endif diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/rtlogsender.py b/MAC/APL/CEPCU/src/CEPlogProcessor/rtlogsender.py deleted file mode 100644 index 03b88c3d6398dd73b77447dea76e443165dc8b27..0000000000000000000000000000000000000000 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/rtlogsender.py +++ /dev/null @@ -1,64 +0,0 @@ -import datetime -import sys -import time - -# Replays a RTCP logfile at the rate at which it was -# produced (according to the timestamps)# -# -# Provide the logfile on stdin, and it will be -# replayed on stdout. - - -now = datetime.datetime.utcnow -totalseconds = lambda td: (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6 - -def extractDateTime( logline ): - p = logline.split(" ") - try: - return (p[1],p[2]) - except: - return None - -def convertDateTime( dt ): - if dt is None: - return None - - y,m,d = dt[0].split("-") - H,M,S = dt[1].split(":") - try: - S,F = S.split(".") - except: - F = 0.0 - - return datetime.datetime( int(y), int(m), int(d), int(H), int(M), int(S), int(float(F)*1000) ) - -def sleepUntil( dt ): - if dt is None: - return - - sleeptime = totalseconds(dt-now()) - if sleeptime > 0: - time.sleep( sleeptime ) - -offset = None -starttime = None - -for l in sys.stdin: - try: - dt = convertDateTime( extractDateTime( l ) ) - if dt is None: - wait = None - elif offset is None: - offset = dt - starttime = now() - wait = datetime.timedelta() - else: - wait = dt - offset - - if wait is not None and totalseconds( wait ) > 0: - sleepUntil( starttime + wait ) - except ValueError: - continue - - print l.rstrip() - diff --git a/MAC/APL/CEPCU/src/CMakeLists.txt b/MAC/APL/CEPCU/src/CMakeLists.txt index fcc62f24f9181edf89b8d22fa259eb0505e771a8..9debaee7f2e58dc12a024b223ddfdaae860aed8a 100644 --- a/MAC/APL/CEPCU/src/CMakeLists.txt +++ b/MAC/APL/CEPCU/src/CMakeLists.txt @@ -12,6 +12,5 @@ lofar_add_bin_program(versioncepcu versioncepcu.cc) add_subdirectory(OnlineControl) add_subdirectory(PythonControl) -add_subdirectory(CEPlogProcessor) add_subdirectory(CEPHardwareMonitor) # add_subdirectory(OfflineControl) diff --git a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc index c804de77786e4acb9c23f0d94e1accab5506ca0c..9f68eb0ea2ce558a78f51491655b8b091a3f3e5e 100644 --- a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc +++ b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc @@ -70,7 +70,6 @@ static OnlineControl* thisOnlineControl = 0; OnlineControl::OnlineControl(const string& cntlrName) : GCFTask ((State)&OnlineControl::initial_state,cntlrName), itsPropertySet (0), - itsBGPApplPropSet (0), itsPropertySetInitialized (false), itsPVSSService (0), itsPVSSResponse (0), @@ -258,58 +257,6 @@ GCFEvent::TResult OnlineControl::initial_state(GCFEvent& event, GCFPortInterface itsPropertySet->setValue(PN_FSM_CURRENT_ACTION, GCFPVString("initial")); itsPropertySet->setValue(PN_FSM_ERROR, GCFPVString("")); - LOG_DEBUG ("Going to create BGPAppl datapoint"); - TRAN(OnlineControl::propset_state); // go to next state. - } break; - - case F_CONNECTED: - break; - - case F_DISCONNECTED: - _handleDisconnect(port); - break; - - default: - LOG_DEBUG_STR ("initial, default"); - status = GCFEvent::NOT_HANDLED; - break; - } - return (status); -} - -// -// propset_state(event, port) -// -// Connect to BGPAppl DP and start rest of tasks -// -GCFEvent::TResult OnlineControl::propset_state(GCFEvent& event, GCFPortInterface& port) -{ - LOG_INFO_STR ("propset:" << eventName(event) << "@" << port.getName()); - - GCFEvent::TResult status = GCFEvent::HANDLED; - - switch (event.signal) { - case F_ENTRY: { - // Get access to my own propertyset. - string obsDPname = globalParameterSet()->getString("_DPname"); - string propSetName(createPropertySetName(PSN_BGP_APPL, getName(), obsDPname)); - LOG_DEBUG_STR ("Activating PropertySet: "<< propSetName); - itsBGPApplPropSet = new RTDBPropertySet(propSetName, - PST_BGP_APPL, - PSAT_RW, - this); - } break; - - case DP_CREATED: { - // NOTE: this function may be called DURING the construction of the PropertySet. - // Always exit this event in a way that GCF can end the construction. - DPCreatedEvent dpEvent(event); - LOG_DEBUG_STR("Result of creating " << dpEvent.DPname << " = " << dpEvent.result); - itsTimerPort->cancelAllTimers(); - itsTimerPort->setTimer(0.1); - } break; - - case F_TIMER: { // must be timer that PropSet is online. // start StopTimer for safety. LOG_INFO("Starting QUIT timer that expires 5 seconds after end of observation"); ptime now(second_clock::universal_time()); @@ -338,7 +285,7 @@ GCFEvent::TResult OnlineControl::propset_state(GCFEvent& event, GCFPortInterface break; default: - LOG_DEBUG_STR ("propset, default"); + LOG_DEBUG_STR ("initial, default"); status = GCFEvent::NOT_HANDLED; break; } @@ -418,7 +365,6 @@ GCFEvent::TResult OnlineControl::active_state(GCFEvent& event, GCFPortInterface& itsLogControlPort->send(announce); // execute this state _setState(CTState::CONNECT); - _setupBGPmappingTables(); uint32 result = _startApplications(); // prep parset and call startBGP.sh // respond to parent sendControlResult(port, event.signal, msg.cntlrName, result); @@ -575,76 +521,6 @@ GCFEvent::TResult OnlineControl::finishing_state(GCFEvent& event, GCFPortInterfa return (GCFEvent::HANDLED); } -// -// _setupBGPmappingTables -// -void OnlineControl::_setupBGPmappingTables() -{ - Observation theObs(globalParameterSet(), false); - int nrStreams = theObs.streamsToStorage.size(); - LOG_INFO_STR("_setupBGPmapping: " << nrStreams << " streams found."); - - // Which IOnodes and Adders are used is collected in arrays and written to BGPAppl datapoints. - // e.g. BGPAppl.IONodelist = {0,1,2,3} ; BGPAppl.AdderList = {[0,2,3],[0,1,2],[3,6,2],[6,6,6]} - // The dataproduct, writer and locus information is written to datapoint in the related adder. - // eg. IONode99.Adder0.dataProductType=Correlated, IONode99.Adder0.dataProduct=L55522_SAP000_SB000_uv.MS, - // IONode99.Adder0.locusnode=2, IONode99.Adder0.writer=0 - // BGPAppl vectors - GCFPValueArray ionodeArr; - GCFPValueArray adderArr; - // Adder vector - vector<string> fields; - fields.push_back("dataProductType"); - fields.push_back("dataProduct"); - fields.push_back("locusNode"); - fields.push_back("writer"); - - uint prevPset = (nrStreams ? theObs.streamsToStorage[0].sourcePset : -1); - vector<int> adderVector; - for (int i = 0; i < nrStreams; i++) { - // BGPAppl information - if (theObs.streamsToStorage[i].sourcePset != prevPset) { // other Pset? write current vector to the database. - ionodeArr.push_back(new GCFPVInteger(prevPset)); - { stringstream os; - writeVector(os, adderVector); - adderArr.push_back (new GCFPVString(os.str())); - } - // clear the collecting vectors - adderVector.clear(); - prevPset = theObs.streamsToStorage[i].sourcePset; - } - // extend vector with info - adderVector.push_back (theObs.streamsToStorage[i].adderNr); - - // Adder information - string propSetMask(createPropertySetName(PSN_ADDER, "", "")); - string adderDPname(formatString(propSetMask.c_str(), theObs.streamsToStorage[i].sourcePset, - theObs.streamsToStorage[i].adderNr)); - vector<GCFPValue*> values; - values.push_back(new GCFPVString (theObs.streamsToStorage[i].dataProduct)); - values.push_back(new GCFPVString (theObs.streamsToStorage[i].filename)); - int locusNodeNr(0); - if (sscanf(theObs.streamsToStorage[i].destStorageNode.c_str(), "locus%d", &locusNodeNr) != 1) { - LOG_ERROR_STR("Cannot determine number in '" << theObs.streamsToStorage[i].destStorageNode <<"'"); - } - values.push_back(new GCFPVInteger(locusNodeNr)); - values.push_back(new GCFPVInteger(theObs.streamsToStorage[i].writerNr)); - itsPVSSService->dpeSetMultiple(adderDPname, fields, values, 0.0, false); // ignore answer - // release claimed memory for Adder - for (int i = values.size()-1; i>=0; i--) { - delete values[i]; - } - } - itsBGPApplPropSet->setValue(PN_BGPA_IO_NODE_LIST, GCFPVDynArr(LPT_DYNINTEGER, ionodeArr)); - itsBGPApplPropSet->setValue(PN_BGPA_ADDER_LIST, GCFPVDynArr(LPT_DYNSTRING, adderArr)); - - // release claimed memory for BGPAppl. - for (int i = ionodeArr.size()-1; i>=0; i--) { - delete ionodeArr[i]; - delete adderArr[i]; - } -} - // // _startApplications() // diff --git a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h index 32f3a61bad5bae967afec93b103f23f4621f7d19..2e8a73629cf3f053a531ecfd3806675177e97647 100644 --- a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h +++ b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h @@ -88,7 +88,6 @@ private: uint32 _startApplications(); void _stopApplications(); - void _setupBGPmappingTables(); void _finishController (uint16_t result); void _handleDisconnect (GCFPortInterface& port); void _handleAcceptRequest (GCFPortInterface& port); @@ -100,7 +99,6 @@ private: // ----- datamembers ----- string itsMyName; RTDBPropertySet* itsPropertySet; - RTDBPropertySet* itsBGPApplPropSet; bool itsPropertySetInitialized; PVSSservice* itsPVSSService; PVSSresponse* itsPVSSResponse; diff --git a/MAC/Deployment/data/OTDB/Beam.comp b/MAC/Deployment/data/OTDB/Beam.comp index 3af830c5711305fdfa2e8474768fa2ac49af6684..d54570f4f135a4e8c99d234e58e11d08cb555034 100644 --- a/MAC/Deployment/data/OTDB/Beam.comp +++ b/MAC/Deployment/data/OTDB/Beam.comp @@ -31,9 +31,6 @@ par angle2 I dbl - 10 0 0 par directionType I ptext - 10 0 'J2000|ITRF|B1950|HADEC|AZELGEO|TOPO|ICRS|APP|GALACTIC|ECLIPTIC|COMET|MERCURY|VENUS|MARS|JUPITER|SATURN|URANUS|NEPTUNE|PLUTO|SUN|MOON;J2000' - 'Coord.system used for the sources' par dispersionMeasure I dbl - 10 0 0 - 'Dedisperse channels with this DM (0 for no dedispersion)' par coherent I bool - 10 0 true - 'coherent = true, incoherent = false' -par absoluteAngle1 I dbl - 10 0 0 - 'RightAscention(s) or Azimuth of thesource(s) in rad. (coordinate system is same as used in the Beams)' -par absoluteAngle2 I dbl - 10 0 0 - 'Declination(s) or Elevation of the source(s) in rad. (coordinate system is the same as used in the Beams)' - ######################################################################################################### diff --git a/MAC/Deployment/data/OTDB/Cobalt.comp b/MAC/Deployment/data/OTDB/Cobalt.comp index 7a52c497dc8f519eb2d148a59fbc309edff52570..b79ad9294016e89f62afa46205a7849f5c40ccdf 100644 --- a/MAC/Deployment/data/OTDB/Cobalt.comp +++ b/MAC/Deployment/data/OTDB/Cobalt.comp @@ -23,7 +23,7 @@ node CoherentStokes 4.0.0 development 'node constraint' "Coherent Stokes # name dir. type unit prun. vm value constr. descr. #-------------------------------------------------------------------------------------------------------- par which I ptext - 10 0 "I|IQUV|XXYY;I" - "Which Stokes values to compute" -par nrChannelsPerSubband I int - 10 0 ">>Observation.channelsPerSubband" - "Number of channels for Stokes data" +par nrChannelsPerSubband I int - 10 0 1 - "Number of channels for Stokes data" par timeIntegrationFactor I int - 10 0 1 - "Time-wise integration of Stokes data (in samples)" par subbandsPerFile I int - 10 0 512 - "the number of subbands each Stokes file will hold" @@ -36,7 +36,7 @@ node IncoherentStokes 4.0.0 development 'node constraint' "Incoherent Stok # name dir. type unit prun. vm value constr. descr. #-------------------------------------------------------------------------------------------------------- par which I ptext - 10 0 "I|IQUV;I" - "Which Stokes values to compute" -par nrChannelsPerSubband I int - 10 0 ">>Observation.channelsPerSubband" - "Number of channels for Stokes data" +par nrChannelsPerSubband I int - 10 0 1 - "Number of channels for Stokes data" par timeIntegrationFactor I int - 10 0 1 - "Time-wise integration of Stokes data (in samples)" par subbandsPerFile I int - 10 0 512 - "the number of subbands each Stokes file will hold" @@ -44,10 +44,13 @@ par subbandsPerFile I int - 10 0 512 # name vers qual constr. descr. #-------------------------------------------------------------------------------------------------------- node BeamFormer 4.0.0 development 'node constraint' "Settings for beam former (time series) calculations" -uses CoherentStokes 4.0.0 development '1' "Settings for all coherent beams" -uses IncoherentStokes 4.0.0 development '1' "Settings for all incoherent beams" -par coherentDedisperseChannels I bool - 10 0 false - "apply coherent dedispersion" +# name dir. type unit prun. vm value constr. descr. +#-------------------------------------------------------------------------------------------------------- +par coherentDedisperseChannels I bool - 10 0 false - "Apply coherent dedispersion" +par flysEye I bool - 10 0 false - "Fly's Eye mode: every station is transformed into its own beam" +uses CoherentStokes 4.0.0 development '1' "Settings for all coherent beams" +uses IncoherentStokes 4.0.0 development '1' "Settings for all incoherent beams" # -- Cobalt-- # name vers qual constr. descr. diff --git a/MAC/Deployment/data/OTDB/CorrAppl.comp b/MAC/Deployment/data/OTDB/CorrAppl.comp index 0b07bf4d034de628601290be713678e90f3d9ccd..ebd581497c457f9fbcb3a405b900dde09e1ad9df 100644 --- a/MAC/Deployment/data/OTDB/CorrAppl.comp +++ b/MAC/Deployment/data/OTDB/CorrAppl.comp @@ -23,8 +23,8 @@ uses CorrProc 4.0.0 development '1' "CorrProc" # name dir. type unit prun. vm value constr. descr. #-------------------------------------------------------------------------------------------------------- -par processes I vtext - 10 0 '["CorrProc"]' - "list of processes that must be started" +par processes I vtext - 10 0 '["CorrProc"]' - "list of processes that must be started" par procesOrder I vtext - 10 0 '[]' - "Order of the processes, if any! FOR FUTURE USE." -par extraInfo I vtext - 10 0 '["OLAP","PIC","Cobalt"]' - "list of components that the application expects to be in the parsettfile." +par extraInfo I vtext - 10 0 '["PIC","Cobalt"]' - "list of components that the application expects to be in the parsettfile." par _hostname I text - 10 0 'cbmmaster' - "Hostname of the machine on which the ACDaemon is running". diff --git a/MAC/Deployment/data/OTDB/OLAP.comp b/MAC/Deployment/data/OTDB/OLAP.comp deleted file mode 100644 index 6170a188656cad834f8287e59530774e62d95993..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/OTDB/OLAP.comp +++ /dev/null @@ -1,67 +0,0 @@ -# -# $Id$ -# - -# -- CNProc_CoherentStokes -- -# -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -node CNProc_CoherentStokes 4.0.0 development 'node constraint' "Coherent Stokes settings for BG/P" - -# name dir. type unit prun. vm value constr. descr. -#-------------------------------------------------------------------------------------------------------- -par which I ptext - 10 0 "I|IQUV|XXYY;I" - "Which Stokes values to compute" -par channelsPerSubband I int - 10 0 ">>Observation.channelsPerSubband" - "Number of channels for Stokes data" -par timeIntegrationFactor I int - 10 0 1 - "Time-wise integration of Stokes data (in samples)" -par subbandsPerFile I int - 10 0 512 - "the number of subbands each Stokes file will hold" - -# -- CNProc_IncoherentStokes -- -# -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -node CNProc_IncoherentStokes 4.0.0 development 'node constraint' "Incoherent Stokes settings for BG/P" - -# name dir. type unit prun. vm value constr. descr. -#-------------------------------------------------------------------------------------------------------- -par which I ptext - 10 0 "I|IQUV;I" - "Which Stokes values to compute" -par channelsPerSubband I int - 10 0 ">>Observation.channelsPerSubband" - "Number of channels for Stokes data" -par timeIntegrationFactor I int - 10 0 1 - "Time-wise integration of Stokes data (in samples)" -par subbandsPerFile I int - 10 0 512 - "the number of subbands each Stokes file will hold" - - -# -- Correlator -- -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -node Correlator 4.0.0 development 'node constraint' "Settings for Correlation (visibilities) calculations" - -# name dir. type unit prun. vm value constr. descr. -#-------------------------------------------------------------------------------------------------------- -par integrationTime I dbl - 10 0 1 - "Integration time" - - -# -- PencilInfo -- -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -node PencilInfo 4.0.0 development 'node constraint' "Settings for pencil beamformer" - -par flysEye I bool - 10 0 false - "Fly's Eye mode: every station is transformed into its own beam" - - -# -- OLAP-- -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -node OLAP 4.0.1 development 'node constraint' "OLAP" - -# name dir. type unit prun. vm value constr. descr. -#-------------------------------------------------------------------------------------------------------- -par realTime I bool - 10 0 true - "whether data is processed at real-time" -par delayCompensation I bool - 10 0 true - "perform delay compensation between stations" -par correctBandPass I bool - 10 0 true - 'apply the bandpass filter' -par coherentDedisperseChannels I bool - 10 0 false - "coherent dedispersion applied (true/false)" - -# name vers qual constr. descr. -#-------------------------------------------------------------------------------------------------------- -uses CNProc_CoherentStokes 4.0.0 development '1' "Coherent Stokes" -uses CNProc_IncoherentStokes 4.0.0 development '1' "Inoherent Stokes" -uses Correlator 4.0.0 development '1' "Correlator specification" -uses PencilInfo 4.0.0 development '1' "Settings for pencil beamformer" diff --git a/MAC/Deployment/data/OTDB/Observation.comp b/MAC/Deployment/data/OTDB/Observation.comp index e84e274c8ef31aef0e086eb16ad6f2255e8b1182..304fb1b8b345777a806c9085287c449026f0cc91 100644 --- a/MAC/Deployment/data/OTDB/Observation.comp +++ b/MAC/Deployment/data/OTDB/Observation.comp @@ -20,7 +20,6 @@ par preparePeriod I int - 10 100 30 # measurement information par bandFilter I ptext - 10 0 'LBA_10_70|LBA_10_90|LBA_30_70|LBA_30_90|HBA_110_190|HBA_170_230|HBA_210_250;LBA_30_90' - 'LBA/HBA antenna filters and their frequency band in MHz' par antennaArray I ptext - 10 0 'LBA|HBA;LBA' - 'Name of the antenneArray (AntennaArrays.conf)' -par channelsPerSubband I int - 10 100 64 - 'Number of channels per subband, preferred values:16,32,64,128,192,256' par nrBeams I int - 10 100 0 - 'Number of simultaneous beams in this observation' par nrAnaBeams I int - 10 100 0 - 'Number of analog beams in this observation' par nrTBBSettings I int - 10 100 0 - 'Number of TBBsettings' diff --git a/MAC/Deployment/data/OTDB/OnlineControl.comp b/MAC/Deployment/data/OTDB/OnlineControl.comp index f6ab02f5325be0f2a18b3bf27ddd1964c5feef50..bd502f6d4a5944b6158202917e81dd8a98aebe04 100644 --- a/MAC/Deployment/data/OTDB/OnlineControl.comp +++ b/MAC/Deployment/data/OTDB/OnlineControl.comp @@ -16,6 +16,5 @@ par inspectionHost I text - 100 0 'lhn001' - "Machine the inspe uses CorrAppl 4.0.0 development 1 "CN Application" -uses OLAP 4.0.3 development 1 "OLAP specific information" uses Cobalt 4.0.3 development 1 "Cobalt specific information" diff --git a/MAC/Deployment/data/OTDB/Pulsar.comp b/MAC/Deployment/data/OTDB/Pulsar.comp index a05409bccdbf82032db255ce5bb7f392b5cd899c..f2d959130a7c04a021adcb9101cecee1a647f811 100644 --- a/MAC/Deployment/data/OTDB/Pulsar.comp +++ b/MAC/Deployment/data/OTDB/Pulsar.comp @@ -25,8 +25,9 @@ par pulsar I text - 10 0 par raw_to_8bit I bool - 10 0 false - "convert raw 32-bit data to 8 bits" par rfifind_extra_opts I text - 10 0 '' - "user additional options for rfifind" par rrats I bool - 10 0 false - "enable rrats analysis" +par rrats_dm_range I flt - 10 0 5.0 - "specify DM-range for rrats analysis" par single_pulse I bool - 10 0 false - "single-pulse analysis" par skip_dspsr I bool - 10 0 false - "skip running dspsr" par skip_dynamic_spectrum I bool - 10 0 false - "skip the creation of a dynamic spectrum of the observation data" par skip_prepfold I bool - 10 0 false - "skip running prepfold" -par tsubint I int - 10 0 -1 - "set the length (in seconds) of each subintegration. -1 means default of 60s for CS/IS and 5s for CV." \ No newline at end of file +par tsubint I int - 10 0 -1 - "set the length (in seconds) of each subintegration. -1 means default of 60s for CS/IS and 5s for CV." diff --git a/MAC/Deployment/data/OTDB/VirtualInstrument.comp b/MAC/Deployment/data/OTDB/VirtualInstrument.comp index 66603d021a51f069f53d21f6effa285c12133f0a..ee0dde6bbcc208aa38fa24aec13393747bd122e3 100644 --- a/MAC/Deployment/data/OTDB/VirtualInstrument.comp +++ b/MAC/Deployment/data/OTDB/VirtualInstrument.comp @@ -13,6 +13,5 @@ node VirtualInstrument 4.0.0 development 'node constraint' "VirtualIns # name dir. type unit prun. vm value constr. descr. #------------------------------------------------------------------------------------------------------- par stationList I vtext - 10 0 '[]' - 'list of all used stations, eg. [CS001,CS016]' -par partitionList I vtext - 10 0 '["R00"]' - 'list of the used BG/P partitions' par stationSet I text - 10 0 "" - 'Predefined stationset, e.g. Custom or Dutch' par minimalNrStations I int - 10 0 1 - 'the minimum number of stations needed' diff --git a/MAC/Deployment/data/OTDB/createPICfile b/MAC/Deployment/data/OTDB/createPICfile index 299d2b2445c618b2df1530a2b0bbe8c618eee060..e9a1bce1963ef65edb2abd0f120e3890b5c0db7f 100755 --- a/MAC/Deployment/data/OTDB/createPICfile +++ b/MAC/Deployment/data/OTDB/createPICfile @@ -119,8 +119,8 @@ ringStations = [] stations = [] for line in filledLine.findall(open(StationFile).read()): # print "line: =",line - if (line.strip() and len(line.split()) == 12): - (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal ) = line.split() + if (line.strip() and len(line.split()) == 13): + (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal, AartFaac ) = line.split() if (height != "0"): ringStations.append(ringDict[stnType]+"_"+name) stations.append(name) @@ -198,8 +198,8 @@ for line in software.findall(open(PVSSbasefile).read()): # generate the hardware on each station for line in filledLine.findall(open(StationFile).read()): # print "line: =",line - if (line.strip() and len(line.split()) == 12): - (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal ) = line.split() + if (line.strip() and len(line.split()) == 13): + (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal, AartFaac ) = line.split() if ( height == "0" ): continue diff --git a/MAC/Deployment/data/StaticMetaData/MAC+IP.dat b/MAC/Deployment/data/StaticMetaData/MAC+IP.dat deleted file mode 100644 index f69058212156c860439c6e03695ba97d1a8bcae3..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/MAC+IP.dat +++ /dev/null @@ -1,275 +0,0 @@ -# -# MAP + IP -# -# - Gives the Ip address and MAC address of each BG/P I/O node -# -# For foreign stations this is different: -# - Gives MAC address of local switch to connect to, and -# IP address of BG/P I/O node where the data should be -# sent to (see stationBGPconnection sheets in the Wiki). -# -# IMPORTANT !!!!!! BEWARE -# -# The items in the seperate lines of this file must be seperated by either a SINGLE whitespace or a single tab!!!! -# Furthermore, this file is read by PVSS controllers to fill in the database, ANY change could possibly have an impact -# on PVSS, so please double check. In case of doubt, contact the PVSS maintainer -# -# node IP MAC -#----------------------------------------------- -R00-M0-N00-J00 10.170.0.1 00:14:5E:7D:33:75 -R00-M0-N00-J01 10.170.0.2 00:14:5E:7D:33:76 -R00-M0-N01-J00 10.170.0.5 00:14:5E:7D:95:B0 -R00-M0-N01-J01 10.170.0.6 00:14:5E:7D:95:B1 -R00-M0-N02-J00 10.170.0.9 00:14:5E:7D:1B:A9 -R00-M0-N02-J01 10.170.0.10 00:14:5E:7D:1B:AA -R00-M0-N03-J00 10.170.0.13 00:14:5E:7D:1E:47 -R00-M0-N03-J01 10.170.0.14 00:14:5E:7D:1E:48 -R00-M0-N04-J00 10.170.0.17 00:14:5E:7D:18:17 -R00-M0-N04-J01 10.170.0.18 00:14:5E:7D:18:18 -R00-M0-N05-J00 10.170.0.21 00:14:5E:7D:16:0D -R00-M0-N05-J01 10.170.0.22 00:14:5E:7D:16:0E -R00-M0-N06-J00 10.170.0.25 00:14:5E:7D:1C:7D -R00-M0-N06-J01 10.170.0.26 00:14:5E:7D:1C:7E -R00-M0-N07-J00 10.170.0.29 00:14:5E:7D:17:7B -R00-M0-N07-J01 10.170.0.30 00:14:5E:7D:17:7C -R00-M0-N08-J00 10.170.0.33 00:14:5E:7D:95:58 -R00-M0-N08-J01 10.170.0.34 00:14:5E:7D:95:59 -R00-M0-N09-J00 10.170.0.37 00:14:5E:7D:08:51 -R00-M0-N09-J01 10.170.0.38 00:14:5E:7D:08:52 -R00-M0-N10-J00 10.170.0.41 00:14:5E:7D:1C:09 -R00-M0-N10-J01 10.170.0.42 00:14:5E:7D:1C:0A -R00-M0-N11-J00 10.170.0.45 00:14:5E:7D:18:CF -R00-M0-N11-J01 10.170.0.46 00:14:5E:7D:18:D0 -R00-M0-N12-J00 10.170.0.49 00:14:5E:7D:33:E3 -R00-M0-N12-J01 10.170.0.50 00:14:5E:7D:33:E4 -R00-M0-N13-J00 10.170.0.53 00:14:5E:7D:90:E4 -R00-M0-N13-J01 10.170.0.54 00:14:5E:7D:90:E5 -R00-M0-N14-J00 10.170.0.57 00:14:5E:7D:94:7A -R00-M0-N14-J01 10.170.0.58 00:14:5E:7D:94:7B -R00-M0-N15-J00 10.170.0.61 00:14:5E:7D:9A:90 -R00-M0-N15-J01 10.170.0.62 00:14:5E:7D:9A:91 -R00-M1-N00-J00 10.170.0.129 00:14:5E:7D:1D:4D -R00-M1-N00-J01 10.170.0.130 00:14:5E:7D:1D:4E -R00-M1-N01-J00 10.170.0.133 00:14:5E:7D:0C:FB -R00-M1-N01-J01 10.170.0.134 00:14:5E:7D:0C:FC -R00-M1-N02-J00 10.170.0.137 00:14:5E:7D:34:13 -R00-M1-N02-J01 10.170.0.138 00:14:5E:7D:34:14 -R00-M1-N03-J00 10.170.0.141 00:14:5E:7D:33:DF -R00-M1-N03-J01 10.170.0.142 00:14:5E:7D:33:E0 -R00-M1-N04-J00 10.170.0.145 00:14:5E:7D:95:F0 -R00-M1-N04-J01 10.170.0.146 00:14:5E:7D:95:F1 -R00-M1-N05-J00 10.170.0.149 00:14:5E:7D:16:83 -R00-M1-N05-J01 10.170.0.150 00:14:5E:7D:16:84 -R00-M1-N06-J00 10.170.0.153 00:14:5E:7D:19:7B -R00-M1-N06-J01 10.170.0.154 00:14:5E:7D:19:7C -R00-M1-N07-J00 10.170.0.157 00:14:5E:7D:95:3C -R00-M1-N07-J01 10.170.0.158 00:14:5E:7D:95:3D -R00-M1-N08-J00 10.170.0.161 00:14:5E:7D:94:46 -R00-M1-N08-J01 10.170.0.162 00:14:5E:7D:94:47 -R00-M1-N09-J00 10.170.0.165 00:14:5E:7D:95:52 -R00-M1-N09-J01 10.170.0.166 00:14:5E:7D:95:53 -R00-M1-N10-J00 10.170.0.169 00:14:5E:7D:95:3E -R00-M1-N10-J01 10.170.0.170 00:14:5E:7D:95:3F -R00-M1-N11-J00 10.170.0.173 00:14:5E:7D:95:54 -R00-M1-N11-J01 10.170.0.174 00:14:5E:7D:95:55 -R00-M1-N12-J00 10.170.0.177 00:14:5E:7D:94:7C -R00-M1-N12-J01 10.170.0.178 00:14:5E:7D:94:7D -R00-M1-N13-J00 10.170.0.181 00:14:5E:7D:95:40 -R00-M1-N13-J01 10.170.0.182 00:14:5E:7D:95:41 -R00-M1-N14-J00 10.170.0.185 00:14:5E:7D:94:A0 -R00-M1-N14-J01 10.170.0.186 00:14:5E:7D:94:A1 -R00-M1-N15-J00 10.170.0.189 00:14:5E:7D:94:A6 -R00-M1-N15-J01 10.170.0.190 00:14:5E:7D:94:A7 -R01-M0-N00-J00 10.170.1.1 00:14:5E:7D:1E:53 -R01-M0-N00-J01 10.170.1.2 00:14:5E:7D:1E:54 -R01-M0-N01-J00 10.170.1.5 00:14:5E:7D:94:60 -R01-M0-N01-J01 10.170.1.6 00:14:5E:7D:94:61 -R01-M0-N02-J00 10.170.1.9 00:14:5E:7D:1C:DD -R01-M0-N02-J01 10.170.1.10 00:14:5E:7D:1C:DE -R01-M0-N03-J00 10.170.1.13 00:14:5E:7D:34:37 -R01-M0-N03-J01 10.170.1.14 00:14:5E:7D:34:38 -R01-M0-N04-J00 10.170.1.17 00:14:5E:7D:96:38 -R01-M0-N04-J01 10.170.1.18 00:14:5E:7D:96:39 -R01-M0-N05-J00 10.170.1.21 00:14:5E:7D:94:80 -R01-M0-N05-J01 10.170.1.22 00:14:5E:7D:94:81 -R01-M0-N06-J00 10.170.1.25 00:14:5E:7D:33:5B -R01-M0-N06-J01 10.170.1.26 00:14:5E:7D:33:5C -R01-M0-N07-J00 10.170.1.29 00:14:5E:7D:95:04 -R01-M0-N07-J01 10.170.1.30 00:14:5E:7D:95:05 -R01-M0-N08-J00 10.170.1.33 00:14:5E:7D:1D:1B -R01-M0-N08-J01 10.170.1.34 00:14:5E:7D:1D:1C -R01-M0-N09-J00 10.170.1.37 00:14:5E:7D:93:1E -R01-M0-N09-J01 10.170.1.38 00:14:5E:7D:93:1F -R01-M0-N10-J00 10.170.1.41 00:14:5E:7D:92:AE -R01-M0-N10-J01 10.170.1.42 00:14:5E:7D:92:AF -R01-M0-N11-J00 10.170.1.45 00:14:5E:7D:17:CD -R01-M0-N11-J01 10.170.1.46 00:14:5E:7D:17:CE -R01-M0-N12-J00 10.170.1.49 00:14:5E:7D:92:C6 -R01-M0-N12-J01 10.170.1.50 00:14:5E:7D:92:C7 -R01-M0-N13-J00 10.170.1.53 00:14:5E:7D:97:BA -R01-M0-N13-J01 10.170.1.54 00:14:5E:7D:97:BB -R01-M0-N14-J00 10.170.1.57 00:14:5E:7D:1C:CB -R01-M0-N14-J01 10.170.1.58 00:14:5E:7D:1C:CC -R01-M0-N15-J00 10.170.1.61 00:14:5E:7D:96:36 -R01-M0-N15-J01 10.170.1.62 00:14:5E:7D:96:37 -R01-M1-N00-J00 10.170.1.129 00:14:5E:7D:94:5E -R01-M1-N00-J01 10.170.1.130 00:14:5E:7D:94:5F -R01-M1-N01-J00 10.170.1.133 00:14:5E:7D:1A:CF -R01-M1-N01-J01 10.170.1.134 00:14:5E:7D:1A:D0 -R01-M1-N02-J00 10.170.1.137 00:14:5E:7D:95:56 -R01-M1-N02-J01 10.170.1.138 00:14:5E:7D:95:57 -R01-M1-N03-J00 10.170.1.141 00:14:5E:7D:1B:91 -R01-M1-N03-J01 10.170.1.142 00:14:5E:7D:1B:92 -R01-M1-N04-J00 10.170.1.145 00:14:5E:7D:94:86 -R01-M1-N04-J01 10.170.1.146 00:14:5E:7D:94:87 -R01-M1-N05-J00 10.170.1.149 00:14:5E:7D:1B:7D -R01-M1-N05-J01 10.170.1.150 00:14:5E:7D:1B:7E -R01-M1-N06-J00 10.170.1.153 00:14:5E:7D:1B:77 -R01-M1-N06-J01 10.170.1.154 00:14:5E:7D:1B:78 -R01-M1-N07-J00 10.170.1.157 00:14:5E:7D:94:A4 -R01-M1-N07-J01 10.170.1.158 00:14:5E:7D:94:A5 -R01-M1-N08-J00 10.170.1.161 00:14:5E:7D:8D:02 -R01-M1-N08-J01 10.170.1.162 00:14:5E:7D:8D:03 -R01-M1-N09-J00 10.170.1.165 00:14:5E:7D:34:09 -R01-M1-N09-J01 10.170.1.166 00:14:5E:7D:34:0A -R01-M1-N10-J00 10.170.1.169 00:14:5E:7D:95:DE -R01-M1-N10-J01 10.170.1.170 00:14:5E:7D:95:DF -R01-M1-N11-J00 10.170.1.173 00:14:5E:7D:97:98 -R01-M1-N11-J01 10.170.1.174 00:14:5E:7D:97:99 -R01-M1-N12-J00 10.170.1.177 00:14:5E:7D:33:7D -R01-M1-N12-J01 10.170.1.178 00:14:5E:7D:33:7E -R01-M1-N13-J00 10.170.1.181 00:14:5E:7D:97:12 -R01-M1-N13-J01 10.170.1.182 00:14:5E:7D:97:13 -R01-M1-N14-J00 10.170.1.185 00:14:5E:7D:96:82 -R01-M1-N14-J01 10.170.1.186 00:14:5E:7D:96:83 -R01-M1-N15-J00 10.170.1.189 00:14:5E:7D:96:84 -R01-M1-N15-J01 10.170.1.190 00:14:5E:7D:96:85 -R02-M0-N00-J00 10.170.2.1 00:14:5E:7D:91:00 -R02-M0-N00-J01 10.170.2.2 00:14:5E:7D:91:01 -R02-M0-N01-J00 10.170.2.5 00:14:5E:7D:19:23 -R02-M0-N01-J01 10.170.2.6 00:14:5E:7D:19:24 -R02-M0-N02-J00 10.170.2.9 00:14:5E:7D:19:15 -R02-M0-N02-J01 10.170.2.10 00:14:5E:7D:19:16 -R02-M0-N03-J00 10.170.2.13 00:14:5E:7D:93:4A -R02-M0-N03-J01 10.170.2.14 00:14:5E:7D:93:4B -R02-M0-N04-J00 10.170.2.17 00:14:5E:7D:8D:48 -R02-M0-N04-J01 10.170.2.18 00:14:5E:7D:8D:49 -R02-M0-N05-J00 10.170.2.21 00:14:5E:7D:16:F3 -R02-M0-N05-J01 10.170.2.22 00:14:5E:7D:16:F4 -R02-M0-N06-J00 10.170.2.25 00:14:5E:7D:92:5C -R02-M0-N06-J01 10.170.2.26 00:14:5E:7D:92:5D -R02-M0-N07-J00 10.170.2.29 00:14:5E:7D:17:81 -R02-M0-N07-J01 10.170.2.30 00:14:5E:7D:17:82 -R02-M0-N08-J00 10.170.2.33 00:14:5E:7D:17:A5 -R02-M0-N08-J01 10.170.2.34 00:14:5E:7D:17:A6 -R02-M0-N09-J00 10.170.2.37 00:14:5E:7D:17:A1 -R02-M0-N09-J01 10.170.2.38 00:14:5E:7D:17:A2 -R02-M0-N10-J00 10.170.2.41 00:14:5E:7D:95:5E -R02-M0-N10-J01 10.170.2.42 00:14:5E:7D:95:5F -R02-M0-N11-J00 10.170.2.45 00:14:5E:7D:17:A7 -R02-M0-N11-J01 10.170.2.46 00:14:5E:7D:17:A8 -R02-M0-N12-J00 10.170.2.49 00:14:5E:7D:17:39 -R02-M0-N12-J01 10.170.2.50 00:14:5E:7D:17:3A -R02-M0-N13-J00 10.170.2.53 00:14:5E:7D:17:47 -R02-M0-N13-J01 10.170.2.54 00:14:5E:7D:17:48 -R02-M0-N14-J00 10.170.2.57 00:14:5E:7D:17:99 -R02-M0-N14-J01 10.170.2.58 00:14:5E:7D:17:9A -R02-M0-N15-J00 10.170.2.61 00:14:5E:7D:1B:33 -R02-M0-N15-J01 10.170.2.62 00:14:5E:7D:1B:34 -R02-M1-N00-J00 10.170.2.129 00:14:5E:7D:8F:F0 -R02-M1-N00-J01 10.170.2.130 00:14:5E:7D:8F:F1 -R02-M1-N01-J00 10.170.2.133 00:14:5E:7D:17:73 -R02-M1-N01-J01 10.170.2.134 00:14:5E:7D:17:74 -R02-M1-N02-J00 10.170.2.137 00:14:5E:7D:17:3B -R02-M1-N02-J01 10.170.2.138 00:14:5E:7D:17:3C -R02-M1-N03-J00 10.170.2.141 00:14:5E:7D:1A:DF -R02-M1-N03-J01 10.170.2.142 00:14:5E:7D:1A:E0 -R02-M1-N04-J00 10.170.2.145 00:14:5E:7D:17:B3 -R02-M1-N04-J01 10.170.2.146 00:14:5E:7D:17:B4 -R02-M1-N05-J00 10.170.2.149 00:14:5E:7D:1D:57 -R02-M1-N05-J01 10.170.2.150 00:14:5E:7D:1D:58 -R02-M1-N06-J00 10.170.2.153 00:14:5E:7D:04:9F -R02-M1-N06-J01 10.170.2.154 00:14:5E:7D:04:A0 -R02-M1-N07-J00 10.170.2.157 00:14:5E:7D:17:D7 -R02-M1-N07-J01 10.170.2.158 00:14:5E:7D:17:D8 -R02-M1-N08-J00 10.170.2.161 00:14:5E:7D:1C:B5 -R02-M1-N08-J01 10.170.2.162 00:14:5E:7D:1C:B6 -R02-M1-N09-J00 10.170.2.165 00:14:5E:7D:1C:A3 -R02-M1-N09-J01 10.170.2.166 00:14:5E:7D:1C:A4 -R02-M1-N10-J00 10.170.2.169 00:14:5E:7D:17:BD -R02-M1-N10-J01 10.170.2.170 00:14:5E:7D:17:BE -R02-M1-N11-J00 10.170.2.173 00:14:5E:7D:95:CE -R02-M1-N11-J01 10.170.2.174 00:14:5E:7D:95:CF -R02-M1-N12-J00 10.170.2.177 00:14:5E:7D:17:63 -R02-M1-N12-J01 10.170.2.178 00:14:5E:7D:17:64 -R02-M1-N13-J00 10.170.2.181 00:14:5E:7D:9E:6C -R02-M1-N13-J01 10.170.2.182 00:14:5E:7D:9E:6D -R02-M1-N14-J00 10.170.2.185 00:14:5E:7D:23:DB -R02-M1-N14-J01 10.170.2.186 00:14:5E:7D:23:DC -R02-M1-N15-J00 10.170.2.189 00:14:5E:7D:1D:51 -R02-M1-N15-J01 10.170.2.190 00:14:5E:7D:1D:52 - -R00-BG3-DE601 10.170.0.29 00:12:F2:C6:BB:00 -R00-BG1-DE602 10.170.0.182 00:12:F2:C6:C1:00 -R00-BG1-DE603 10.170.0.38 00:12:F2:C6:C1:00 -R00-BG1-DE604 10.170.0.37 00:12:F2:C6:C1:00 -R00-BG3-DE605 10.170.0.30 00:12:F2:C6:BB:00 -R00-BG2-FR606 10.170.0.25 00:12:F2:C4:C6:00 -R00-BG2-SE607 10.170.0.26 00:12:F2:C4:C6:00 -R00-BG2-UK608 10.170.0.58 00:12:F2:C4:C6:00 - -R01-BG3-DE601 10.170.1.29 00:12:F2:C6:BB:00 -R01-BG1-DE602 10.170.1.182 00:12:F2:C6:C1:00 -R01-BG1-DE603 10.170.1.38 00:12:F2:C6:C1:00 -R01-BG1-DE604 10.170.1.37 00:12:F2:C6:C1:00 -R01-BG3-DE605 10.170.1.30 00:12:F2:C6:BB:00 -R01-BG2-FR606 10.170.1.25 00:12:F2:C4:C6:00 -R01-BG2-SE607 10.170.1.26 00:12:F2:C4:C6:00 -R01-BG2-UK608 10.170.1.58 00:12:F2:C4:C6:00 - -cbt001-10GB01 10.168.96.1 A0:36:9F:1F:78:A4 -cbt001-10GB02 10.168.96.2 A0:36:9F:1F:78:A6 -cbt001-10GB03 10.168.96.3 A0:36:9F:1F:7B:44 -cbt001-10GB04 10.168.96.4 A0:36:9F:1F:7B:46 -cbt002-10GB01 10.168.97.1 A0:36:9F:1F:73:40 -cbt002-10GB02 10.168.97.2 A0:36:9F:1F:73:42 -cbt002-10GB03 10.168.97.3 A0:36:9F:1F:79:A0 -cbt002-10GB04 10.168.97.4 A0:36:9F:1F:79:A2 -cbt003-10GB01 10.168.98.1 A0:36:9F:1F:78:0C -cbt003-10GB02 10.168.98.2 A0:36:9F:1F:78:0E -cbt003-10GB03 10.168.98.3 A0:36:9F:1F:7B:40 -cbt003-10GB04 10.168.98.4 A0:36:9F:1F:7B:42 -cbt004-10GB01 10.168.99.1 A0:36:9F:1F:79:94 -cbt004-10GB02 10.168.99.2 A0:36:9F:1F:79:96 -cbt004-10GB03 10.168.99.3 A0:36:9F:1F:7A:04 -cbt004-10GB04 10.168.99.4 A0:36:9F:1F:7A:06 -cbt005-10GB01 10.168.100.1 A0:36:9F:1F:7B:74 -cbt005-10GB02 10.168.100.2 A0:36:9F:1F:7B:76 -cbt005-10GB03 10.168.100.3 A0:36:9F:1F:79:E0 -cbt005-10GB04 10.168.100.4 A0:36:9F:1F:79:E2 -cbt006-10GB01 10.168.101.1 A0:36:9F:1F:79:A4 -cbt006-10GB02 10.168.101.2 A0:36:9F:1F:79:A6 -cbt006-10GB03 10.168.101.3 A0:36:9F:1F:7A:34 -cbt006-10GB04 10.168.101.4 A0:36:9F:1F:7A:36 -cbt007-10GB01 10.168.102.1 A0:36:9F:1F:79:04 -cbt007-10GB02 10.168.102.2 A0:36:9F:1F:79:06 -cbt007-10GB03 10.168.102.3 A0:36:9F:1F:7B:3C -cbt007-10GB04 10.168.102.4 A0:36:9F:1F:7B:3E -cbt008-10GB01 10.168.103.1 A0:36:9F:1F:79:00 -cbt008-10GB02 10.168.103.2 A0:36:9F:1F:79:02 -cbt008-10GB03 10.168.103.3 A0:36:9F:1F:7B:68 -cbt008-10GB04 10.168.103.4 A0:36:9F:1F:7B:6A -cbt009-10GB01 10.168.104.1 A0:36:9F:1F:36:E4 -cbt009-10GB02 10.168.104.2 A0:36:9F:1F:36:E6 -cbt009-10GB03 10.168.104.3 A0:36:9F:1F:78:64 -cbt009-10GB04 10.168.104.4 A0:36:9F:1F:78:66 - -cbt-BG3-DE601 10.168.103.4 00:12:F2:C6:BB:00 -cbt-BG1-DE602 10.168.98.4 00:12:F2:C6:C1:00 -cbt-BG1-DE603 10.168.99.4 00:12:F2:C6:C1:00 -cbt-BG1-DE604 10.168.98.4 00:12:F2:C6:C1:00 -cbt-BG3-DE605 10.168.103.4 00:12:F2:C6:BB:00 -cbt-BG2-FR606 10.168.100.4 00:12:F2:C4:C6:00 -cbt-BG2-SE607 10.168.101.4 00:12:F2:C4:C6:00 -cbt-BG2-UK608 10.168.100.4 00:12:F2:C4:C6:00 - diff --git a/MAC/Deployment/data/StaticMetaData/RSP+IP.dat b/MAC/Deployment/data/StaticMetaData/RSP+IP.dat deleted file mode 100644 index 974b33e4174767e484dc54cb8a9de8dae9be84ff..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/RSP+IP.dat +++ /dev/null @@ -1,63 +0,0 @@ -# RSP+IP.dat -# -# File that gives a list of RSP IP addresses for the RSP boards of -# each station -# -# For the moment this is only filled for foreign stations but it can be -# expanded for NL stations as well. NL stations have RSP IP addresses -# that can be logically derived from the station name, so these are not -# provided here. -# -# Foreign stations work each with separate vlan settings, thence the need for -# this file. -# -# These addresses will be put into the RSPDriver.conf as the paremeters -# RSPDriver.LANE_0x_SRCIP, with x between 0 and 3. -# - -DE601_00 10.211.1.1 -DE601_01 10.212.1.1 -DE601_02 10.213.1.1 -DE601_03 10.214.1.1 - -DE602_00 10.200.41.1 -DE602_01 10.200.41.2 -DE602_02 10.200.41.3 -DE602_03 10.200.41.4 - -DE603_00 10.211.3.1 -DE603_01 10.212.3.1 -DE603_02 10.213.3.1 -DE603_03 10.214.3.1 - -DE604_00 10.200.81.1 -DE604_01 10.200.81.2 -DE604_02 10.200.81.3 -DE604_03 10.200.81.4 - -DE605_00 10.211.5.1 -DE605_01 10.212.5.1 -DE605_02 10.213.5.1 -DE605_03 10.214.5.1 - -FR606_00 10.211.6.1 -FR606_01 10.212.6.1 -FR606_02 10.213.6.1 -FR606_03 10.214.6.1 - -SE607_00 10.211.7.1 -SE607_01 10.212.7.1 -SE607_02 10.213.7.1 -SE607_03 10.214.7.1 - -UK608_00 10.211.8.1 -UK608_01 10.212.8.1 -UK608_02 10.213.8.1 -UK608_03 10.214.8.1 - -FI609_00 10.211.9.1 -FI609_01 10.212.9.1 -FI609_02 10.213.9.1 -FI609_03 10.214.9.1 - - diff --git a/MAC/Deployment/data/StaticMetaData/RSPConnections_BG.dat.tmpl b/MAC/Deployment/data/StaticMetaData/RSPConnections_BG.dat.tmpl deleted file mode 100644 index df2feab7ae410f9ad7818f7d2939ba0c99cbdc4e..0000000000000000000000000000000000000000 --- a/MAC/Deployment/data/StaticMetaData/RSPConnections_BG.dat.tmpl +++ /dev/null @@ -1,143 +0,0 @@ -# -# RSPConnections -# -# $Id: $ -# -# List of Connections between RSP boards and the BG/P at CEP. -# Each station can have four RSP boards broadcasting at the same -# time; they all connect to the same BG/P I/O node. Thence, there -# is only one entry per station. -# -# The Core stations have two possible connections: one for -# 1x48 HBA tiles, one for 2x24 HBA tiles. These have two separate -# entries in this file. -# -# IMPORTANT !!!!!! BEWARE -# -# The items in the seperate lines of this file must be seperated by either a SINGLE whitespace or a single tab!!!! -# Furthermore, this file is read by PVSS controllers to fill in the database, ANY change could possibly have an impact -# on PVSS, so please double check. In case of doubt, contact the PVSS maintainer -# -# board I/O node -CS001 RSP_0 @BGP-PARTITION@-M1-N07-J00 -CS001 RSP_1 @BGP-PARTITION@-M0-N07-J00 - -CS002 RSP_0 @BGP-PARTITION@-M1-N01-J00 -CS002 RSP_1 @BGP-PARTITION@-M0-N01-J00 - -CS003 RSP_0 @BGP-PARTITION@-M1-N02-J00 -CS003 RSP_1 @BGP-PARTITION@-M0-N02-J00 - -CS004 RSP_0 @BGP-PARTITION@-M1-N03-J00 -CS004 RSP_1 @BGP-PARTITION@-M0-N03-J00 - -CS005 RSP_0 @BGP-PARTITION@-M1-N00-J01 -CS005 RSP_1 @BGP-PARTITION@-M0-N00-J01 - -CS006 RSP_0 @BGP-PARTITION@-M1-N01-J01 -CS006 RSP_1 @BGP-PARTITION@-M0-N01-J01 - -CS007 RSP_0 @BGP-PARTITION@-M1-N02-J01 -CS007 RSP_1 @BGP-PARTITION@-M0-N02-J01 - -CS011 RSP_0 @BGP-PARTITION@-M1-N09-J00 -CS011 RSP_1 @BGP-PARTITION@-M0-N09-J00 - -CS013 RSP_0 @BGP-PARTITION@-M0-N10-J01 -CS013 RSP_1 @BGP-PARTITION@-M0-N14-J01 - -CS017 RSP_0 @BGP-PARTITION@-M1-N08-J00 -CS017 RSP_1 @BGP-PARTITION@-M0-N08-J00 - -CS021 RSP_0 @BGP-PARTITION@-M1-N00-J00 -CS021 RSP_1 @BGP-PARTITION@-M0-N00-J00 - -CS024 RSP_0 @BGP-PARTITION@-M1-N03-J01 -CS024 RSP_1 @BGP-PARTITION@-M0-N03-J01 - -CS026 RSP_0 @BGP-PARTITION@-M1-N05-J00 -CS026 RSP_1 @BGP-PARTITION@-M0-N05-J00 - -CS028 RSP_0 @BGP-PARTITION@-M1-N09-J01 -CS028 RSP_1 @BGP-PARTITION@-M0-N09-J01 - -CS030 RSP_0 @BGP-PARTITION@-M1-N06-J00 -CS030 RSP_1 @BGP-PARTITION@-M0-N06-J00 - -CS031 RSP_0 @BGP-PARTITION@-M1-N13-J00 -CS031 RSP_1 @BGP-PARTITION@-M1-N13-J01 - -CS032 RSP_0 @BGP-PARTITION@-M1-N04-J01 -CS032 RSP_1 @BGP-PARTITION@-M0-N04-J01 - -CS101 RSP_0 @BGP-PARTITION@-M1-N04-J00 -CS101 RSP_1 @BGP-PARTITION@-M0-N04-J00 - -CS103 RSP_0 @BGP-PARTITION@-M1-N11-J00 -CS103 RSP_1 @BGP-PARTITION@-M0-N11-J00 - -CS201 RSP_0 @BGP-PARTITION@-M1-N05-J01 -CS201 RSP_1 @BGP-PARTITION@-M0-N05-J01 - -CS301 RSP_0 @BGP-PARTITION@-M1-N06-J01 -CS301 RSP_1 @BGP-PARTITION@-M0-N06-J01 - -CS302 RSP_0 @BGP-PARTITION@-M0-N13-J00 -CS302 RSP_1 @BGP-PARTITION@-M0-N13-J01 - -CS401 RSP_0 @BGP-PARTITION@-M1-N07-J01 -CS401 RSP_1 @BGP-PARTITION@-M0-N07-J01 - -CS501 RSP_0 @BGP-PARTITION@-M1-N10-J00 -CS501 RSP_1 @BGP-PARTITION@-M0-N10-J00 - -# Remote stations - -RS104 RSP_0 @BGP-PARTITION@-M0-N08-J01 - -RS106 RSP_0 @BGP-PARTITION@-M1-N11-J01 - -RS205 RSP_0 @BGP-PARTITION@-M0-N11-J01 - -RS208 RSP_0 @BGP-PARTITION@-M1-N08-J01 - -RS210 RSP_0 @BGP-PARTITION@-M1-N14-J01 - -RS305 RSP_0 @BGP-PARTITION@-M0-N14-J00 - -RS306 RSP_0 @BGP-PARTITION@-M1-N14-J00 - -RS307 RSP_0 @BGP-PARTITION@-M1-N15-J00 - -RS310 RSP_0 @BGP-PARTITION@-M0-N12-J01 - -RS406 RSP_0 @BGP-PARTITION@-M0-N15-J00 - -RS407 RSP_0 @BGP-PARTITION@-M1-N12-J00 - -RS409 RSP_0 @BGP-PARTITION@-M1-N12-J01 - -RS410 RSP_0 @BGP-PARTITION@-M0-N12-J00 - -RS503 RSP_0 @BGP-PARTITION@-M1-N10-J01 - -RS508 RSP_0 @BGP-PARTITION@-M1-N15-J01 - -RS509 RSP_0 @BGP-PARTITION@-M0-N15-J01 - -DE601 RSP_0 @BGP-PARTITION@-BG3-DE601 - -DE602 RSP_0 @BGP-PARTITION@-BG1-DE602 - -DE603 RSP_0 @BGP-PARTITION@-BG1-DE603 - -DE604 RSP_0 @BGP-PARTITION@-BG1-DE604 - -DE605 RSP_0 @BGP-PARTITION@-BG3-DE605 - -FR606 RSP_0 @BGP-PARTITION@-BG2-FR606 - -SE607 RSP_0 @BGP-PARTITION@-BG2-SE607 - -UK608 RSP_0 @BGP-PARTITION@-BG2-UK608 - diff --git a/MAC/Deployment/data/StaticMetaData/RSPConnections_Cobalt.dat b/MAC/Deployment/data/StaticMetaData/RSPConnections_Cobalt.dat index 050c8c8b4a6d19bfd13c336e98a34d6b599b815a..5afe3d2e48da13376e871ec7e87a0b437c992a1e 100644 --- a/MAC/Deployment/data/StaticMetaData/RSPConnections_Cobalt.dat +++ b/MAC/Deployment/data/StaticMetaData/RSPConnections_Cobalt.dat @@ -175,43 +175,44 @@ RS508 RSP_0 cbt008-10GB03 10.168.103.3 A0:36:9F:1F:7B:68 RS509 RSP_0 cbt007-10GB04 10.168.102.4 A0:36:9F:1F:7B:3E # DE601 -> BG3 -DE601 RSP_0 cbt008-10GB04 10.211.1.50 00:12:F2:C6:BB:00 -DE601 RSP_0 cbt008-10GB04 10.212.1.50 00:12:F2:C6:BB:00 -DE601 RSP_0 cbt008-10GB04 10.213.1.50 00:12:F2:C6:BB:00 -DE601 RSP_0 cbt008-10GB04 10.214.1.50 00:12:F2:C6:BB:00 +DE601 RSP_0 cbt008-10GB04 10.211.1.50 A0:36:9F:1F:7B:6A +DE601 RSP_0 cbt008-10GB04 10.212.1.50 A0:36:9F:1F:7B:6A +DE601 RSP_0 cbt008-10GB04 10.213.1.50 A0:36:9F:1F:7B:6A +DE601 RSP_0 cbt008-10GB04 10.214.1.50 A0:36:9F:1F:7B:6A # DE602 -> BG1 -DE602 RSP_0 cbt003-10GB04 10.200.41.50 00:12:F2:C6:C1:00 +DE602 RSP_0 cbt003-10GB04 10.200.41.50 A0:36:9F:1F:7B:42 # DE603 -> BG1 -DE603 RSP_0 cbt004-10GB04 10.211.3.50 00:12:F2:C6:C1:00 -DE603 RSP_0 cbt004-10GB04 10.212.3.50 00:12:F2:C6:C1:00 -DE603 RSP_0 cbt004-10GB04 10.213.3.50 00:12:F2:C6:C1:00 -DE603 RSP_0 cbt004-10GB04 10.214.3.50 00:12:F2:C6:C1:00 +DE603 RSP_0 cbt004-10GB04 10.211.3.50 A0:36:9F:1F:7A:06 +DE603 RSP_0 cbt004-10GB04 10.212.3.50 A0:36:9F:1F:7A:06 +DE603 RSP_0 cbt004-10GB04 10.213.3.50 A0:36:9F:1F:7A:06 +DE603 RSP_0 cbt004-10GB04 10.214.3.50 A0:36:9F:1F:7A:06 # DE604 -> BG1 -DE604 RSP_0 cbt003-10GB04 10.200.81.50 00:12:F2:C6:C1:00 +DE604 RSP_0 cbt003-10GB04 10.200.81.50 A0:36:9F:1F:7B:42 # DE605 -> BG3 -DE605 RSP_0 cbt008-10GB04 10.211.5.50 00:12:F2:C6:BB:00 -DE605 RSP_0 cbt008-10GB04 10.212.5.50 00:12:F2:C6:BB:00 -DE605 RSP_0 cbt008-10GB04 10.213.5.50 00:12:F2:C6:BB:00 -DE605 RSP_0 cbt008-10GB04 10.214.5.50 00:12:F2:C6:BB:00 +DE605 RSP_0 cbt008-10GB04 10.211.5.50 A0:36:9F:1F:7B:6A +DE605 RSP_0 cbt008-10GB04 10.212.5.50 A0:36:9F:1F:7B:6A +DE605 RSP_0 cbt008-10GB04 10.213.5.50 A0:36:9F:1F:7B:6A +DE605 RSP_0 cbt008-10GB04 10.214.5.50 A0:36:9F:1F:7B:6A # FR606 -> BG2 -FR606 RSP_0 cbt005-10GB04 10.211.6.50 00:12:F2:C4:C6:00 -FR606 RSP_0 cbt005-10GB04 10.212.6.50 00:12:F2:C4:C6:00 -FR606 RSP_0 cbt005-10GB04 10.213.6.50 00:12:F2:C4:C6:00 -FR606 RSP_0 cbt005-10GB04 10.214.6.50 00:12:F2:C4:C6:00 +FR606 RSP_0 cbt005-10GB04 10.211.6.50 A0:36:9F:1F:79:E2 +FR606 RSP_0 cbt005-10GB04 10.212.6.50 A0:36:9F:1F:79:E2 +FR606 RSP_0 cbt005-10GB04 10.213.6.50 A0:36:9F:1F:79:E2 +FR606 RSP_0 cbt005-10GB04 10.214.6.50 A0:36:9F:1F:79:E2 # SE607 -> BG2 -SE607 RSP_0 cbt006-10GB04 10.211.7.50 00:12:F2:C4:C6:00 -SE607 RSP_0 cbt006-10GB04 10.212.7.50 00:12:F2:C4:C6:00 -SE607 RSP_0 cbt006-10GB04 10.213.7.50 00:12:F2:C4:C6:00 -SE607 RSP_0 cbt006-10GB04 10.214.7.50 00:12:F2:C4:C6:00 +SE607 RSP_0 cbt006-10GB04 10.211.7.50 A0:36:9F:1F:7A:36 +SE607 RSP_0 cbt006-10GB04 10.212.7.50 A0:36:9F:1F:7A:36 +SE607 RSP_0 cbt006-10GB04 10.213.7.50 A0:36:9F:1F:7A:36 +SE607 RSP_0 cbt006-10GB04 10.214.7.50 A0:36:9F:1F:7A:36 # UK608 -> BG2 -UK608 RSP_0 cbt005-10GB04 10.211.8.50 00:12:F2:C4:C6:00 -UK608 RSP_0 cbt005-10GB04 10.212.8.50 00:12:F2:C4:C6:00 -UK608 RSP_0 cbt005-10GB04 10.213.8.50 00:12:F2:C4:C6:00 -UK608 RSP_0 cbt005-10GB04 10.214.8.50 00:12:F2:C4:C6:00 +UK608 RSP_0 cbt005-10GB04 10.211.8.50 A0:36:9F:1F:79:E2 +UK608 RSP_0 cbt005-10GB04 10.212.8.50 A0:36:9F:1F:79:E2 +UK608 RSP_0 cbt005-10GB04 10.213.8.50 A0:36:9F:1F:79:E2 +UK608 RSP_0 cbt005-10GB04 10.214.8.50 A0:36:9F:1F:79:E2 + diff --git a/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl b/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl index a8cf10fb1c80db84c9b9f6533f4610783a46380f..40217db66d4cf12338c54cc301c7c0cb6fa67d7a 100644 --- a/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl +++ b/MAC/Deployment/data/StaticMetaData/RSPDriver.conf.tmpl @@ -127,7 +127,7 @@ RSPDriver.MAC_ADDR_23=10:FA:00:00:17:00 # lanes will produce ethernet packets and use these MAC- and # IP-addresses. # -RSPDriver.LANE_00_BLET_OUT= 0 +RSPDriver.LANE_00_BLET_OUT= @LANE_00_BLET@ RSPDriver.LANE_00_XLET_OUT= 5 RSPDriver.LANE_00_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:00 RSPDriver.LANE_00_SRCIP = 10.@IP_PREFIX_00@.@IP_SUBNET_00@.@IP_EXTEN_00@ @@ -135,31 +135,31 @@ RSPDriver.LANE_00_DSTMAC = @LANE_00_MAC@ RSPDriver.LANE_00_DSTIP = @LANE_00_IP@ RSPDriver.LANE_00_DSTPORT = @LANE_00_PORT@ -RSPDriver.LANE_01_BLET_OUT=1 -RSPDriver.LANE_01_XLET_OUT=5 +RSPDriver.LANE_01_BLET_OUT= @LANE_01_BLET@ +RSPDriver.LANE_01_XLET_OUT= 5 RSPDriver.LANE_01_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:01 RSPDriver.LANE_01_SRCIP = 10.@IP_PREFIX_01@.@IP_SUBNET_01@.@IP_EXTEN_01@ RSPDriver.LANE_01_DSTMAC = @LANE_01_MAC@ RSPDriver.LANE_01_DSTIP = @LANE_01_IP@ RSPDriver.LANE_01_DSTPORT = @LANE_01_PORT@ -RSPDriver.LANE_02_BLET_OUT=2 -RSPDriver.LANE_02_XLET_OUT=5 +RSPDriver.LANE_02_BLET_OUT= @LANE_02_BLET@ +RSPDriver.LANE_02_XLET_OUT= 5 RSPDriver.LANE_02_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:02 RSPDriver.LANE_02_SRCIP = 10.@IP_PREFIX_02@.@IP_SUBNET_02@.@IP_EXTEN_02@ RSPDriver.LANE_02_DSTMAC = @LANE_02_MAC@ RSPDriver.LANE_02_DSTIP = @LANE_02_IP@ RSPDriver.LANE_02_DSTPORT = @LANE_02_PORT@ -RSPDriver.LANE_03_BLET_OUT=3 -RSPDriver.LANE_03_XLET_OUT=5 +RSPDriver.LANE_03_BLET_OUT= @LANE_03_BLET@ +RSPDriver.LANE_03_XLET_OUT= 5 RSPDriver.LANE_03_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:03 RSPDriver.LANE_03_SRCIP = 10.@IP_PREFIX_03@.@IP_SUBNET_03@.@IP_EXTEN_03@ RSPDriver.LANE_03_DSTMAC = @LANE_03_MAC@ RSPDriver.LANE_03_DSTIP = @LANE_03_IP@ RSPDriver.LANE_03_DSTPORT = @LANE_03_PORT@ -RSPDriver.LANE_10_BLET_OUT= 6 +RSPDriver.LANE_10_BLET_OUT= @LANE_10_BLET@ RSPDriver.LANE_10_XLET_OUT= @LAST_XLET_OUT@ RSPDriver.LANE_10_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:06 RSPDriver.LANE_10_SRCIP = 10.@IP_PREFIX_00@.@IP_SUBNET_00@.@IP_EXTEN_10@ @@ -167,24 +167,24 @@ RSPDriver.LANE_10_DSTMAC = @LANE_10_MAC@ RSPDriver.LANE_10_DSTIP = @LANE_10_IP@ RSPDriver.LANE_10_DSTPORT = @LANE_10_PORT@ -RSPDriver.LANE_11_BLET_OUT=7 -RSPDriver.LANE_11_XLET_OUT=@LAST_XLET_OUT@ +RSPDriver.LANE_11_BLET_OUT= @LANE_11_BLET@ +RSPDriver.LANE_11_XLET_OUT= @LAST_XLET_OUT@ RSPDriver.LANE_11_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:07 RSPDriver.LANE_11_SRCIP = 10.@IP_PREFIX_01@.@IP_SUBNET_01@.@IP_EXTEN_11@ RSPDriver.LANE_11_DSTMAC = @LANE_11_MAC@ RSPDriver.LANE_11_DSTIP = @LANE_11_IP@ RSPDriver.LANE_11_DSTPORT = @LANE_11_PORT@ -RSPDriver.LANE_12_BLET_OUT=8 -RSPDriver.LANE_12_XLET_OUT=@LAST_XLET_OUT@ +RSPDriver.LANE_12_BLET_OUT= @LANE_12_BLET@ +RSPDriver.LANE_12_XLET_OUT= @LAST_XLET_OUT@ RSPDriver.LANE_12_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:08 RSPDriver.LANE_12_SRCIP = 10.@IP_PREFIX_02@.@IP_SUBNET_02@.@IP_EXTEN_12@ RSPDriver.LANE_12_DSTMAC = @LANE_12_MAC@ RSPDriver.LANE_12_DSTIP = @LANE_12_IP@ RSPDriver.LANE_12_DSTPORT = @LANE_12_PORT@ -RSPDriver.LANE_13_BLET_OUT=9 -RSPDriver.LANE_13_XLET_OUT=@LAST_XLET_OUT@ +RSPDriver.LANE_13_BLET_OUT= @LANE_13_BLET@ +RSPDriver.LANE_13_XLET_OUT= @LAST_XLET_OUT@ RSPDriver.LANE_13_SRCMAC = 00:22:86:@RING_ID@:@STATION_HID@:09 RSPDriver.LANE_13_SRCIP = 10.@IP_PREFIX_03@.@IP_SUBNET_03@.@IP_EXTEN_13@ RSPDriver.LANE_13_DSTMAC = @LANE_13_MAC@ diff --git a/MAC/Deployment/data/StaticMetaData/StationInfo.dat b/MAC/Deployment/data/StaticMetaData/StationInfo.dat index 75a99bd305b35e5325e01d0021369c55314df8b3..7d71bbde891166e882ee8e1eaaaeaaf647f98398 100644 --- a/MAC/Deployment/data/StaticMetaData/StationInfo.dat +++ b/MAC/Deployment/data/StaticMetaData/StationInfo.dat @@ -3,6 +3,11 @@ # # $Id:$ # +# IMPORTANT NOTE: Adding a column means that you'll have to change the +# createPICtree script as well. That script has the number of columns +# hardcoded in the code at two places!!!! If not adapted, no PIC tree +# can be (re)created anymore!! +# # ID: Unique station identifier (used for PVSS, SAS, etc) # ring: Location C=Core, R=Remote, E=European # Long, lat and height are in WGS84 and are for initial position guess @@ -47,7 +52,7 @@ CS030 30 C 6.8609850 52.9225878 58.01 12 6 96 48 Ye CS031 31 C 6.8597219 52.9177706 53.61 12 6 96 48 Yes Yes No CS032 32 C 6.8603878 52.9121611 59.31 12 6 96 48 Yes Yes No -# Remote stations with core station layout (i.e., with HBASplit set to 'yes') +# The Remote stations with core station layout (i.e., with HBASplit set to 'yes') CS101 101 C 6.8805014 52.9223181 57.78 12 6 96 48 Yes Yes No CS102 102 C 0.0 0.0 0 12 6 96 48 Yes Yes No CS103 103 C 6.8963725 52.9160403 56.52 12 6 96 48 Yes Yes No diff --git a/MAC/Deployment/data/StaticMetaData/createFiles b/MAC/Deployment/data/StaticMetaData/createFiles index 579740b741a8a1ea7d35689c9b85be2de774c3d4..1c2ecd59970ac84ca494024fd00cd080c18a47d6 100755 --- a/MAC/Deployment/data/StaticMetaData/createFiles +++ b/MAC/Deployment/data/StaticMetaData/createFiles @@ -51,6 +51,7 @@ def findIPNumber(stationName): else: return outwords[0] else: + # Use UNix 'host' command and catch output command = "host "+stationName+"C" output = Popen(command,shell=True, stdout=PIPE).stdout stdout = output.readlines() @@ -58,7 +59,6 @@ def findIPNumber(stationName): outwords = outline.split() if (len(outwords) != 4): return "10.150.1.1" -# return "-1" else: return outwords[3] @@ -85,17 +85,18 @@ def findRSPDestNodes(stationName, dataDir): """ Collects the destination nodes from each rspboard of the given station. Expected format of the RSPConnection file is: - station board destinationnode - CS001 RSP_0 BGL001 + station board destinationnode destIP destMAC + CS001 RSP_0 cbt007-10GB01 10.168.102.1 A0:36:9F:1F:79:04 """ - pattern=re.compile("[^#]"+stationName+"[ \t]*RSP_([0-9]+)[ \t]*([^ \t\n]*)", re.IGNORECASE) + pattern=re.compile("[^#]"+stationName+"[ \t]*RSP_([01]+)[ \t]*([^ \t\n]*)", re.IGNORECASE) rspDestNode = {} - for match in pattern.finditer(open(dataDir+"/RSPConnections.dat").read()): + for match in pattern.finditer(open(dataDir+"/RSPConnections_Cobalt.dat").read()): rspDestNode[match.group(1)] = match.group(2) if len(rspDestNode) == 0: setWarning(stationName+" not found in file 'RSPConnections'") return rspDestNode + # # findTBBDestNodes(stationName) # @@ -115,19 +116,22 @@ def findTBBDestNodes(stationName, dataDir): setWarning(stationName+" not found in file 'TBBConnections.dat'") return tbbDestNode -# -# findIPandMAC(node) -# -def findIPandMAC(nodeName, dataDir): +def findIPandMAC_station(stationName, dataDir): """ - Translates the given nodename to an MAC address and and IP address. + Based on stationname, find destination node, IP and MAC address for all RSP boards of + that station. Use file RSPConnections_Cobalt.dat for that. + Expected format of the RSPConnections_Coobalt file is: + station board destinationnode + CS001 RSP_0 cbt001 """ - pattern=re.compile("^"+nodeName+"[ \t]*([0-9\.]*)[ \t]*([0-9a-fA-F:]*)", re.IGNORECASE | re.MULTILINE) - ipAndMac = () - ipAndMac = pattern.search(open(dataDir+"/MAC+IP.dat").read()) - if not ipAndMac: - raise "\nFatal error: "+nodeName+" is not defined in file 'MAC+IP'" - return ipAndMac.group(1), ipAndMac.group(2) + pattern=re.compile("[^#]"+stationName+"[ \t]*RSP_([0-1]+)[ \t]*([^ \t\n]*)[ \t]*([^ \t\n]*)[ \t]*([^ \t\n]*)", re.IGNORECASE) + IPandMAC = [] + for match in pattern.finditer(open(dataDir+"/RSPConnections_Cobalt.dat").read()): + IPandMAC.append([match.group(2),match.group(3),match.group(4)]) + + if len(IPandMAC) == 0: + raise "\nFatal error: "+stationName+" is not defined in file 'RSPConnections_Cobalt.dat'" + return IPandMAC # # findIPandMAC_local(node) @@ -168,19 +172,6 @@ def findStorageIPandMAC(nodeName, dataDir): raise "\nFatal error: "+nodeName+" is not defined in file 'Storage+MAC.dat'" return ipAndMac.group(2), ipAndMac.group(1) - -# -# findRSPIP(node) -# -def findRSPIP(nodeName, dataDir): - """ - Translates the given nodename to an MAC address and and IP address. - """ - pattern=re.compile("^"+nodeName+"_([0-9]*)[ \t]*([0-9\.]*)", re.IGNORECASE | re.MULTILINE) - RspIp = pattern.findall(open(dataDir+"/RSP+IP.dat").read()) - if not RspIp: - raise Exception("\nFatal error: "+nodeName+" is not defined in file 'RSP+IP'") - return RspIp # # findBlets(stationName) # @@ -212,7 +203,7 @@ def findAllStations(dataDir): pattern = re.compile("^[A-Z][A-Z][0-9][0-9][0-9]",re.IGNORECASE | re.MULTILINE) match = pattern.findall(open(dataDir+"/StationInfo.dat").read()) if not match: - raise "\nFatal error: could not find any stationnames in file 'StationInfo'" + raise "\nFatal error: could not find any stationnames in file 'StationInfo.dat'" return match # @@ -225,10 +216,10 @@ def findStationInfo(stationName, dataDir): pattern=re.compile("^"+stationName+"[ \t].*", re.IGNORECASE | re.MULTILINE) match = pattern.search(open(dataDir+"/StationInfo.dat").read()) if not match: - raise "\nFatal error: "+stationName+" is not defined in file 'StationInfo'" + raise "\nFatal error: "+stationName+" is not defined in file StationInfo.dat" info = match.group().split() if (len(info) != 13): - raise "\nFatal error: Data of "+stationName+" is not complete in file 'StationInfo'" + raise "\nFatal error: Data of "+stationName+" is not complete in file StationInfo.dat" return info def createCCURSPConnectionsFile(resultDir, dataDir): @@ -253,35 +244,19 @@ def createRSPConnectionsFile_cobalt(resultDir, dataDir): destFile = resultDir + "/RSPConnections.dat" command = "cp -f "+srcFile+ " " + destFile - #print command os.system(command) return -def createRSPConnectionsFile_bg(resultDir, dataDir, partitionName): - """ - Fills in the markers in the RSPConnections_BG.dat.tmpl file to match the values for the given Blue Gene partition. - """ - # Substitute MAC and IP address of destination nodes - RSPConnectionsfile = open(dataDir+"/RSPConnections_BG.dat.tmpl") - RSPConnectionsConfig = RSPConnectionsfile.read() - RSPConnectionsfile.close() - RSPConnectionsConfig = RSPConnectionsConfig.replace("@BGP-PARTITION@", partitionName) - outFile = os.open(resultDir+"/RSPConnections.dat", os.O_RDWR|os.O_CREAT|os.O_TRUNC) - os.write(outFile, RSPConnectionsConfig) - os.close(outFile) - return -def createRSPDriverFile(resultDir, stationName, dataDir, partitionName,ilt_local,is_Cobalt): +def createRSPDriverFile(resultDir, stationName, dataDir, partitionName,int_local,is_Cobalt): """ Fills in the markers in the RSPDriver.dat.tmpl file to match the values for the given station. """ - # First create RSPConnections.dat with proper BG-P partition filled in. - if is_Cobalt: - createRSPConnectionsFile_cobalt(resultDir, dataDir) - else: - createRSPConnectionsFile_bg(resultDir, dataDir, partitionName) + # First create RSPConnections.dat with Cobalt filled in. + createRSPConnectionsFile_cobalt(resultDir, dataDir) + # Find connections of the RSPBoards of the station - rspDestNode = findRSPDestNodes(stationName, resultDir) + rspDestNode = findRSPDestNodes(stationName, dataDir) print stationName,"matches:",rspDestNode (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal, Aartfaac ) = findStationInfo(stationName, dataDir) @@ -298,17 +273,14 @@ def createRSPDriverFile(resultDir, stationName, dataDir, partitionName,ilt_local stationNr = int(name[2:]) # International stations can be identified by the second part of their IP address - is_ilt = (ip_parts[1] != "151") - - if is_Cobalt: - # Need globally unique IP port numbers. - basePort = 10000 + stationNr * 10 - else: - basePort = 0x10FA + is_int_station = (ip_parts[1] != "151") - # International station in local mode takes dest. MAC/IP info from - # separate file - if (is_ilt and ilt_local == 1): + # Need globally unique IP port numbers. + basePort = 10000 + stationNr * 10 + + if (is_int_station and int_local == 1): + # International station in local mode takes dest. MAC/IP info from + # separate file ip_mac_alias = findIPandMAC_local(stationName,dataDir) for rspNr in range(len(ip_mac_alias)): blet_out = find_Blets(stationName, dataDir)[1+rspNr]; @@ -320,55 +292,61 @@ def createRSPDriverFile(resultDir, stationName, dataDir, partitionName,ilt_local RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_IP@", ip_mac_alias[rspNr][1]) RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_PORT@", str(basePort + rspNr)) else: - nrNodes = len(rspDestNode) # Number of occurences in file + # NL and Int. stations in ILT mode + IPandMAC = findIPandMAC_station(stationName, dataDir) + nrNodes = len(IPandMAC) # Number of occurences in file # Core stations have two occurences (these have a splitter), and so # for these we need to fill in LANE0x and LANE1x values. # All other stations have one occurence, so only LANE_0x is relevant. - if (nrNodes == 1 or nrNodes == 2): - if str(1) in rspDestNode.keys(): - (ip, mac) = findIPandMAC(rspDestNode[str(1)],dataDir) - for rspNr in range(4): - blet_out = find_Blets(stationName, dataDir)[5+rspNr]; - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", mac +" # "+rspDestNode[str(1)]) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_PORT@", str(basePort + 6 + rspNr)) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_BLET@", blet_out) - - if str(0) in rspDestNode.keys(): - for rspNr in range(4): - if is_ilt and is_Cobalt: - # Cobalt nodes are part of the international station VLANs, - # allowing routing to x.x.x.50 (with x.x.x.x being the RSP board IPs). - rspinfo = findRSPIP(stationName, dataDir) - rspip = rspinfo[rspNr][1] - rspip_parts = rspip.split('.') - ip = "%s.%s.%s.50" % (rspip_parts[0], rspip_parts[1], rspip_parts[2]) - - (_, mac) = findIPandMAC(rspDestNode[str(0)],dataDir) - else: - (ip, mac) = findIPandMAC(rspDestNode[str(0)],dataDir) - - blet_out = find_Blets(stationName, dataDir)[1+rspNr]; - RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_MAC@", mac +" # "+rspDestNode[str(0)]) - # Need to fill this in until RSPDriver is fixed... - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_BLET@", blet_out) - RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_IP@", ip) - RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_PORT@", str(basePort + rspNr)) - RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_BLET@", blet_out) - # The following is only necessary for not crashing the - # RSPDriver during startup.... It makes no sense as RS/Int - # stations have no splitter so there is no LANE_1X - if (nrNodes == 1): - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", mac +" # "+rspDestNode[str(0)]) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip) - RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_PORT@", str(basePort + 6 + rspNr)) + # International stations can have up to four entries + if (nrNodes == 2): + node = IPandMAC[1][0] + ip = IPandMAC[1][1] + mac = IPandMAC[1][2] + for rspNr in range(4): + blet_out = find_Blets(stationName, dataDir)[5+rspNr]; + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", mac +" # "+ node) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_PORT@", str(basePort + 6 + rspNr)) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_BLET@", blet_out) + + + for rspNr in range(4): + if is_int_station and is_Cobalt: + # Cobalt nodes are part of the international station VLANs, + # allowing routing to x.x.x.50 (with x.x.x.x being the RSP board IPs). + if nrNodes == 4: + ip = IPandMAC[rspNr][1] + else: + ip = IPandMAC[0][1] + node = IPandMAC[0][0] + mac = IPandMAC[0][2] + else: + node = IPandMAC[0][0] + ip = IPandMAC[0][1] + mac = IPandMAC[0][2] + + #print node, ip, mac + blet_out = find_Blets(stationName, dataDir)[1+rspNr]; + RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_MAC@", mac +" # "+node) + # Need to fill this in until RSPDriver is fixed... + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_BLET@", blet_out) + RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_IP@", ip) + RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_PORT@", str(basePort + rspNr)) + RSPconfig = RSPconfig.replace("@LANE_0"+str(rspNr)+"_BLET@", blet_out) + # The following is only necessary for not crashing the + # RSPDriver during startup.... It makes no sense as RS/Int + # stations have no splitter so there is no LANE_1X + if (nrNodes == 1): + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_MAC@", mac +" # "+node) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_IP@", ip) + RSPconfig = RSPconfig.replace("@LANE_1"+str(rspNr)+"_PORT@", str(basePort + 6 + rspNr)) # Find IP address for RSP board ethernet. All NL stations have RSP address # like 10.175.x.x, Non-NL station must be looked up - print ip_parts - if not is_ilt: + if not is_int_station: ip_prefix = "175" # NL stations; FIXED! # Core stations should have Splitter set to 1; others to 0. @@ -412,15 +390,22 @@ def createRSPDriverFile(resultDir, stationName, dataDir, partitionName,ilt_local RSPconfig = RSPconfig.replace("@STATION_HID@", hexStationID) RSPconfig = RSPconfig.replace("@FIRST_XLET_OUT@", "5") RSPconfig = RSPconfig.replace("@LAST_XLET_OUT@", "23") - rspinfo = findRSPIP(stationName, dataDir) - for rspNr in range(len(rspinfo)): - rspip = rspinfo[rspNr][1] - rspip_parts = rspip.split('.') - repl_str = "@IP_EXTEN_"+rspinfo[rspNr][0]+"@" - RSPconfig = RSPconfig.replace(repl_str, rspip_parts[3]) - repl_str = "@IP_PREFIX_"+rspinfo[rspNr][0]+"@" + IPandMAC = findIPandMAC_station(stationName, dataDir) + nrNodes = len(IPandMAC) # Number of occurences in file + for rspNr in range(4): + if nrNodes == 4: + ip = IPandMAC[rspNr][1] + else: + ip = IPandMAC[0][1] + rspip_parts = ip.split('.') + repl_str = "@IP_EXTEN_0"+str(rspNr)+"@" + if nrNodes == 4: + RSPconfig = RSPconfig.replace(repl_str, "1") + else: + RSPconfig = RSPconfig.replace(repl_str, str(rspNr+1)) + repl_str = "@IP_PREFIX_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, rspip_parts[1]) - repl_str = "@IP_SUBNET_"+rspinfo[rspNr][0]+"@" + repl_str = "@IP_SUBNET_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, rspip_parts[2]) outFile = os.open(dataDir+"/RSPDriver.conf.tmp", os.O_RDWR|os.O_CREAT|os.O_TRUNC) @@ -503,17 +488,24 @@ def createRSPDriverFile_Test(resultDir, stationName, dataDir, alias): RSPconfig = RSPconfig.replace("@RING_ID@", ringID) RSPconfig = RSPconfig.replace("@STATION_HID@", hexStationID) RSPconfig = RSPconfig.replace("@LAST_XLET_OUT@", "23") - rspinfo = findRSPIP(stationName, dataDir) - for rspNr in range(len(rspinfo)): - rspip = rspinfo[rspNr][1] - rspip_parts = rspip.split('.') - repl_str = "@IP_EXTEN_"+rspinfo[rspNr][0]+"@" - RSPconfig = RSPconfig.replace(repl_str, rspip_parts[3]) - repl_str = "@IP_PREFIX_"+rspinfo[rspNr][0]+"@" + IPandMAC = findIPandMAC_station(stationName, dataDir) + nrNodes = len(IPandMAC) # Number of occurences in file + for rspNr in range(4): + if nrNodes == 4: + ip = IPandMAC[rspNr][1] + else: + ip = IPandMAC[0][1] + rspip_parts = ip.split('.') + repl_str = "@IP_EXTEN_0"+str(rspNr)+"@" + if nrNodes == 4: + RSPconfig = RSPconfig.replace(repl_str, "1") + else: + RSPconfig = RSPconfig.replace(repl_str, str(rspNr+1)) + repl_str = "@IP_PREFIX_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, rspip_parts[1]) - repl_str = "@IP_SUBNET_"+rspinfo[rspNr][0]+"@" + repl_str = "@IP_SUBNET_0"+str(rspNr)+"@" RSPconfig = RSPconfig.replace(repl_str, rspip_parts[2]) - + outFile = os.open(dataDir+"/RSPDriver.conf.tmp", os.O_RDWR|os.O_CREAT|os.O_TRUNC) os.write(outFile, RSPconfig) os.close(outFile) @@ -761,156 +753,154 @@ def stationExceptions(resultDir, stationName, dataDir): # Reinstall HardwareMonitor.conf with FI609 specific IP for EC createHardwareMonitorFile(resultDir, stationName, dataDir, "103") -# MAIN - -if (len(sys.argv) == 1): - print "Provide arguments:" - print sys.argv[0]+" localhost [<BG/P partition>] [local] or" - print sys.argv[0]+" <resultdir> <datadir> [<BG/P partition>] <stationname> [local] or" - print sys.argv[0]+" cobalt" - print " - <BG/P partition> is optional and can be R00, R01, R02; default is R00" - print " - For setting up station-based LCU use option 'localhost'" - print " - <stationame(s)> can be the name of one or more stations, or 'all'" - print " - local is for setup of local usage of International Stations" - sys.exit(1) +if __name__ == "__main__": + + if (len(sys.argv) == 1): + print "Provide arguments:" + print sys.argv[0]+" localhost [<BG/P partition>] [local] or" + print sys.argv[0]+" <resultdir> <datadir> [<BG/P partition>] <stationname> [local] or" + print sys.argv[0]+" cobalt" + print " - <BG/P partition> is optional and can be R00, R01, R02; default is R00" + print " - For setting up station-based LCU use option 'localhost'" + print " - <stationame(s)> can be the name of one or more stations, or 'all'" + print " - local is for setup of local usage of International Stations" + sys.exit(1) -# If argument is localhost, we can safely assume we are running on a station -# LCU and we need to create the config files for this station. They must be -# put in /opt/lofar/etc; the required datafiles will be in directory -# /opt/lofar/etc/StaticMetaData - -if (sys.argv[1] == "localhost" or sys.argv[1] == "test" or sys.argv[1] == "cobalt"): - # Find out stationname from command 'hostname -s' - stationName = Popen("hostname -s",shell=True, stdout=PIPE).stdout.readlines()[0].strip()[0:5].lower() - if (len(stationName) > 0) : - if (os.path.exists("/opt/lofar/etc")): - resultDir = "/opt/lofar/etc" - dataDir = resultDir + "/StaticMetaData" - else: - print "Cannot find output directory /opt/lofar/etc" - sys.exit(1) - - # If the hostname is like 'lcu001', this lcu is set up to be tested - # in the lab before a station is assigned. We can then use a set of - # fixed test configuration files. - alias = [] - if (stationName[0:3] == "lcu"): - copyTestFiles(dataDir) - else: - ilt_local=0 - is_Cobalt=1 - partitionName = "" - if (sys.argv[1] == "test"): - # station in test mode; get desired RSPconnections from command - # line (using aliasnames in file RSPConnections_test.dat) - if (len(sys.argv) == 4): - alias=[sys.argv[2],sys.argv[3]] - else: - alias=[sys.argv[2]] - elif(sys.argv[1] == "cobalt"): - is_Cobalt=1 - elif (len(sys.argv) == 3): - if (sys.argv[2] == "local"): - ilt_local=1 - is_Cobalt=0 - partitionName = "R00"; - else: - partitionName = sys.argv[2]; + # If argument is localhost, we can safely assume we are running on a station + # LCU and we need to create the config files for this station. They must be + # put in /opt/lofar/etc; the required datafiles will be in directory + # /opt/lofar/etc/StaticMetaData + + if (sys.argv[1] == "localhost" or sys.argv[1] == "test" or sys.argv[1] == "cobalt"): + # Find out stationname from command 'hostname -s' + stationName = Popen("hostname -s",shell=True, stdout=PIPE).stdout.readlines()[0].strip()[0:5].lower() + if (len(stationName) > 0) : + if (os.path.exists("/opt/lofar/etc")): + resultDir = "/opt/lofar/etc" + dataDir = resultDir + "/StaticMetaData" else: - partitionName = "R00"; - if (stationName[0:3].upper() == "CCU"): - # CCU needs RSPConnections.dat for CEP in PVSS - createCCURSPConnectionsFile(resultDir, dataDir) - if (stationName.upper() == "CCU09"): - print "Please manually adapt /opt/lofar/etc/RSPConnections_CCU.dat for test stations and used test BG/P nodes!!" + print "Cannot find output directory /opt/lofar/etc" + sys.exit(1) + + # If the hostname is like 'lcu001', this lcu is set up to be tested + # in the lab before a station is assigned. We can then use a set of + # fixed test configuration files. + alias = [] + if (stationName[0:3] == "lcu"): + copyTestFiles(dataDir) else: + int_local=0 + is_Cobalt=1 + partitionName = "" if (sys.argv[1] == "test"): - print "Setting up station "+stationName+" for TEST use" - elif (ilt_local == 0): - print "Setting up station "+stationName+" for ILT use" - if (is_Cobalt == 1): - print " Using routes to Cobalt" + # station in test mode; get desired RSPconnections from command + # line (using aliasnames in file RSPConnections_test.dat) + if (len(sys.argv) == 4): + alias=[sys.argv[2],sys.argv[3]] else: - print "Using BG/P partition " + partitionName + " for creating destination MAC addresses" + alias=[sys.argv[2]] + elif(sys.argv[1] == "cobalt"): + is_Cobalt=1 + elif (len(sys.argv) == 3): + if (sys.argv[2] == "local"): + int_local=1 + is_Cobalt=0 + partitionName = "R00"; + else: + partitionName = sys.argv[2]; else: - print "Setting up station "+stationName+" for LOCAL use" + partitionName = "R00"; - if (sys.argv[1] == "test"): - createRSPDriverFile_Test(resultDir, stationName, dataDir, alias) + if (stationName[0:3].upper() == "CCU"): + # CCU needs RSPConnections.dat for CEP in PVSS + createCCURSPConnectionsFile(resultDir, dataDir) + if (stationName.upper() == "CCU09"): + print "Please manually adapt /opt/lofar/etc/RSPConnections_CCU.dat for test stations and used test BG/P nodes!!" else: - createRSPDriverFile(resultDir, stationName, dataDir, partitionName,ilt_local,is_Cobalt) + if (sys.argv[1] == "test"): + print "Setting up station "+stationName+" for TEST use" + elif (int_local == 0): + print "Setting up station "+stationName+" for ILT use" + print " Using routes to Cobalt" + else: + print "Setting up station "+stationName+" for LOCAL use" + + if (sys.argv[1] == "test"): + createRSPDriverFile_Test(resultDir, stationName, dataDir, alias) + else: + createRSPDriverFile(resultDir, stationName, dataDir, partitionName,int_local,is_Cobalt) - createTBBDriverFile (resultDir, stationName, dataDir) - createRemoteStationFile(resultDir, stationName, dataDir) - createAntennaArraysFile(resultDir, stationName, dataDir) - createAntennaFieldFile (resultDir, stationName, dataDir) - createAttenuationFile (resultDir, stationName, dataDir) - createCableDelaysFile (resultDir, stationName, dataDir) - createiHBADeltasFile (resultDir, stationName, dataDir) - createHardwareMonitorFile(resultDir, stationName, dataDir) - stationExceptions (resultDir, stationName, dataDir) + createTBBDriverFile (resultDir, stationName, dataDir) + createRemoteStationFile(resultDir, stationName, dataDir) + createAntennaArraysFile(resultDir, stationName, dataDir) + createAntennaFieldFile (resultDir, stationName, dataDir) + createAttenuationFile (resultDir, stationName, dataDir) + createCableDelaysFile (resultDir, stationName, dataDir) + createiHBADeltasFile (resultDir, stationName, dataDir) + createHardwareMonitorFile(resultDir, stationName, dataDir) + stationExceptions (resultDir, stationName, dataDir) + else: + print "Cannot determine stationname" + sys.exit(1) else: - print "Cannot determine stationname" - sys.exit(1) -else: - # We are not running on a station LCU. The user needs to provide - # where we can find and put files, and for which station. + # We are not running on a station LCU. The user needs to provide + # where we can find and put files, and for which station. - if (len(sys.argv) < 4): - print "Provide rootdir for output files, dir for datafiles, stationname(s) (or 'all')." - sys.exit(1) + if (len(sys.argv) < 4): + print "Provide rootdir for output files, dir for datafiles, stationname(s) (or 'all')." + sys.exit(1) - resultRoot = sys.argv[1] - dataDir = sys.argv[2] - stationList = [] - is_Cobalt=1 - # Find BG/P partition to use (if one is provided; looks like R0x) - if (re.match("R0",sys.argv[3])): - partitionName = sys.argv[3]; - next_argn = 4; - elif (sys.argv[3] == "cobalt"): - partitionName = "" + resultRoot = sys.argv[1] + dataDir = sys.argv[2] + stationList = [] is_Cobalt=1 - next_argn = 4 - else: - partitionName = "cobalt" - next_argn = 3 + # Find BG/P partition to use (if one is provided; looks like R0x) + if (re.match("R0",sys.argv[3])): + partitionName = sys.argv[3]; + next_argn = 4; + elif (sys.argv[3] == "cobalt"): + partitionName = "" + is_Cobalt=1 + next_argn = 4 + else: + partitionName = "cobalt" + next_argn = 3 - print "Using " + partitionName + " for creating RSPConnections.dat file" + print "Using " + partitionName + " for creating RSPConnections.dat file" - if sys.argv[next_argn] == "all": - stationList = findAllStations(dataDir) - else: - stationList = [sys.argv[next_argn]] - - next_argn = next_argn + 1 - ilt_local=0 - if (next_argn < len(sys.argv)): - if sys.argv[next_argn] == "local": - ilt_local=1 - for stationName in stationList: - resultDir = resultRoot+"/"+stationName+"/" - if os.path.exists(resultDir): - for oldfile in os.listdir(resultDir): - os.remove(resultDir+"/"+oldfile) + if sys.argv[next_argn] == "all": + stationList = findAllStations(dataDir) else: - os.makedirs(resultDir) - - createRSPDriverFile (resultDir, stationName, dataDir, partitionName,ilt_local,is_Cobalt) - createTBBDriverFile (resultDir, stationName, dataDir) - createRemoteStationFile(resultDir, stationName, dataDir) - createAntennaArraysFile(resultDir, stationName, dataDir) - createAntennaFieldFile (resultDir, stationName, dataDir) - createAttenuationFile (resultDir, stationName, dataDir) - createCableDelaysFile (resultDir, stationName, dataDir) - createiHBADeltasFile (resultDir, stationName, dataDir) - createHardwareMonitorFile(resultDir, stationName, dataDir) - stationExceptions (resultDir, stationName, dataDir) + stationList = [sys.argv[next_argn]] + + next_argn = next_argn + 1 + int_local=0 + if (next_argn < len(sys.argv)): + if sys.argv[next_argn] == "local": + int_local=1 + for stationName in stationList: + resultDir = resultRoot+"/"+stationName+"/" + if os.path.exists(resultDir): + for oldfile in os.listdir(resultDir): + os.remove(resultDir+"/"+oldfile) + else: + os.makedirs(resultDir) + + createRSPDriverFile (resultDir, stationName, dataDir, partitionName,int_local,is_Cobalt) + createTBBDriverFile (resultDir, stationName, dataDir) + createRemoteStationFile(resultDir, stationName, dataDir) + createAntennaArraysFile(resultDir, stationName, dataDir) + createAntennaFieldFile (resultDir, stationName, dataDir) + createAttenuationFile (resultDir, stationName, dataDir) + createCableDelaysFile (resultDir, stationName, dataDir) + createiHBADeltasFile (resultDir, stationName, dataDir) + createHardwareMonitorFile(resultDir, stationName, dataDir) + stationExceptions (resultDir, stationName, dataDir) -if len(warnings) > 0: - print "The following warnings occured:" - print warnings + if len(warnings) > 0: + print "The following warnings occured:" + print warnings diff --git a/RTCP/CMakeLists.txt b/RTCP/CMakeLists.txt index 64f9d1851a98681d28377ebff4be76f38e9aef87..bac1156961003453a6c0c5f4a5448f36293ae2da 100644 --- a/RTCP/CMakeLists.txt +++ b/RTCP/CMakeLists.txt @@ -1,11 +1,3 @@ # $Id$ -lofar_add_package(Interface) # Interfaces between RTCP product components -lofar_add_package(FCNP) # BlueGene: Fast Collective Network Protocol -lofar_add_package(CNProc) # BlueGene: Compute-Node Processing applications -lofar_add_package(IONProc) # BlueGene: I/O Node Processing applications -lofar_add_package(Storage) # Stores correlator output in MeasurmentSets -#lofar_add_package(RTCPTools) # Several RTCP tools -lofar_add_package(Run) # Run scripts to start RTCP components -lofar_add_package(MetaDataGatherer)# Pulls in meta data from OTDB etc lofar_add_package(Cobalt) # GPU replacement for the BG/P diff --git a/RTCP/CNProc/CMakeLists.txt b/RTCP/CNProc/CMakeLists.txt deleted file mode 100644 index f04d3d3f052cbfb99d7bdc3350541909897756ee..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -# $Id$ - -lofar_package(CNProc 1.0 DEPENDS Common Stream Interface FCNP) - -add_definitions(-DBOOST_ENABLE_ASSERT_HANDLER) - -include(LofarFindPackage) -lofar_find_package(MASS) -lofar_find_package(Boost REQUIRED) -lofar_find_package(FFTW3 COMPONENTS single) -if(NOT FFTW3_FOUND) - lofar_find_package(FFTW2 COMPONENTS single real) - if(NOT FFTW2_FOUND) - message(SEND_ERROR "Should have FFTW3 or FFTW2 installed.") - endif(NOT FFTW2_FOUND) -endif(NOT FFTW3_FOUND) - -lofar_find_package(Valgrind) -if(USE_VALGRIND) - add_definitions(-DUSE_VALGRIND) -endif(USE_VALGRIND) - -## --------------------------------------------------------------------------- -## Enable BGP specific assembler. -## Use the BGP assembler also for linking C/C++ programs. -## -## NOTE: Maybe this should be moved to the variants file. That requires that -## CN and ION are no longer variants; we then need two compiler definitions: -## BGPCN and BGPION, which is a cleaner solution anyway. -## --------------------------------------------------------------------------- -enable_language(ASM-BGP) -if(LOFAR_COMPILER_SUITE STREQUAL "BGPCN") - set(CMAKE_C_LINK_EXECUTABLE ${CMAKE_ASM-BGP_LINK_EXECUTABLE}) - set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_ASM-BGP_LINK_EXECUTABLE}) -endif(LOFAR_COMPILER_SUITE STREQUAL "BGPCN") - -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/CNProc/package.dox b/RTCP/CNProc/package.dox deleted file mode 100644 index 2685e772ac36c3643cb0231e0e1271bafb9dd29f..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/package.dox +++ /dev/null @@ -1,2 +0,0 @@ -// \ingroup RTCP -// \defgroup CNProc CNProc Description diff --git a/RTCP/CNProc/src/AsyncCommunication.cc b/RTCP/CNProc/src/AsyncCommunication.cc deleted file mode 100644 index d27036c975a19dc7bce65df7b168566acaac4f73..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncCommunication.cc +++ /dev/null @@ -1,234 +0,0 @@ -//# Always <lofar_config.h> first! -#include <lofar_config.h> - -#include <AsyncCommunication.h> - -#include <Common/Timer.h> -#include <Interface/Exceptions.h> - -#include <cassert> -#include <map> -#include <iostream> - -#include <boost/format.hpp> - -#define USE_TIMING 0 - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - -// convert an MPI return code into an error string -static string errorstr(int res) -{ - int eclass, len; - char estring[MPI_MAX_ERROR_STRING]; - MPI_Error_class(res, &eclass); - MPI_Error_string(res, estring, &len); - - // convert newlines to spaces to keep the message on a single line - for (char *c = estring; *c; c ++) - if (*c == '\n') - *c = ' '; - - return str(boost::format("error %d: %s") % eclass % estring); -} - -AsyncCommunication::AsyncCommunication(MPI_Comm comm) -: - itsCommunicator(comm), - itsCurrentReadHandle(0), - itsCurrentWriteHandle(0) -{ -} - -// returns handle to this read -int AsyncCommunication::asyncRead(void* buf, unsigned size, unsigned source, int tag) -{ - AsyncRequest *req = new AsyncRequest(); - - int res = MPI_Irecv(buf, size, MPI_BYTE, source, tag, itsCommunicator, &req->mpiReq); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Irecv() failed: " << errorstr(res)); - - req->buf = buf; - req->size = size; - req->rank = source; - req->tag = tag; - - int handle = itsCurrentReadHandle++; - itsReadHandleMap[handle] = req; - - return handle; -} - -// returns handle to this write -int AsyncCommunication::asyncWrite(const void* buf, unsigned size, unsigned dest, int tag) -{ - AsyncRequest *req = new AsyncRequest(); - - int res = MPI_Isend(const_cast<void*>(buf), size, MPI_BYTE, dest, tag, itsCommunicator, &req->mpiReq); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Isend() failed: " << errorstr(res)); - - req->buf = (void*)buf; - req->size = size; - req->rank = dest; - req->tag = tag; - - int handle = itsCurrentWriteHandle++; - itsWriteHandleMap[handle] = req; - - return handle; -} - - -void AsyncCommunication::waitForRead(int handle) -{ - AsyncRequest *req = itsReadHandleMap[handle]; - MPI_Status status; - - int res = MPI_Wait(&req->mpiReq, &status); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Wait() failed: " << errorstr(res)); - - // done, now remove from map, and free req - itsReadHandleMap.erase(handle); - delete req; -} - - -void AsyncCommunication::waitForWrite(int handle) -{ - AsyncRequest *req = itsWriteHandleMap[handle]; - MPI_Status status; - - int res = MPI_Wait(&req->mpiReq, &status); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Wait() failed: " << errorstr(res)); - - // done, now remove from map, and free req - itsWriteHandleMap.erase(handle); - delete req; -} - - -// returns the handle of the read that was done. -int AsyncCommunication::waitForAnyRead(void*& buf, unsigned& size, unsigned& source, int& tag) -{ - MPI_Status status; - int count = itsReadHandleMap.size(); - MPI_Request reqs[count]; - int mapping[count]; - - ASSERT( count > 0 ); - - int i = 0; - - for (std::map<int, AsyncRequest*>::const_iterator it = itsReadHandleMap.begin(); it != itsReadHandleMap.end(); it ++) { - int handle = it->first; - AsyncRequest* r = it->second; - reqs[i] = r->mpiReq; - mapping[i] = handle; - i ++; - } - - NSTimer waitAnyTimer("MPI_Waitany", USE_TIMING, true); - waitAnyTimer.start(); - int index = -1; - int res = MPI_Waitany(count, reqs, &index, &status); - waitAnyTimer.stop(); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Waitany() failed: " << errorstr(res)); - - if (index == MPI_UNDEFINED) - THROW(CNProcException,"MPI_Waitany() failed: no (pending) receives"); - - int handle = mapping[index]; - AsyncRequest* req = itsReadHandleMap[handle]; - - buf = req->buf; - size = req->size; - source = req->rank; - tag = req->tag; - - itsReadHandleMap.erase(handle); - delete req; - return handle; -} - - -void AsyncCommunication::waitForAllReads() -{ - int count = itsReadHandleMap.size(); - MPI_Request reqs[count]; - MPI_Status status[count]; - - if (count == 0) - return; // nothing to wait for - - int i = 0; - - for (std::map<int, AsyncRequest*>::const_iterator it = itsReadHandleMap.begin(); it != itsReadHandleMap.end(); it ++) { - AsyncRequest* r = it->second; - reqs[i] = r->mpiReq; - i ++; - } - - int res = MPI_Waitall(count, reqs, status); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Waitall() failed: " << errorstr(res)); - - for (std::map<int, AsyncRequest*>::const_iterator it = itsReadHandleMap.begin(); it != itsReadHandleMap.end(); it ++) { - AsyncRequest *r = it->second; - delete r; - } - - itsReadHandleMap.clear(); - itsCurrentReadHandle = 0; -} - - -void AsyncCommunication::waitForAllWrites() -{ - int count = itsWriteHandleMap.size(); - MPI_Request reqs[count]; - MPI_Status status[count]; - - if (count == 0) - return; // nothing to wait for - - int i = 0; - - for (std::map<int, AsyncRequest*>::const_iterator it = itsWriteHandleMap.begin(); it != itsWriteHandleMap.end(); it ++) { - AsyncRequest* r = it->second; - reqs[i] = r->mpiReq; - i ++; - } - - int res = MPI_Waitall(count, reqs, status); - - if (res != MPI_SUCCESS) - THROW(CNProcException,"MPI_Waitall() failed: " << errorstr(res)); - - for (std::map<int, AsyncRequest*>::const_iterator it = itsWriteHandleMap.begin(); it != itsWriteHandleMap.end(); it ++) { - AsyncRequest* r = it->second; - delete r; - } - - itsWriteHandleMap.clear(); - itsCurrentWriteHandle = 0; -} - - -#endif // HAVE_MPI - -} // namespace RTCPs -} // namespace LOFAR diff --git a/RTCP/CNProc/src/AsyncCommunication.h b/RTCP/CNProc/src/AsyncCommunication.h deleted file mode 100644 index 0434916e633f2bbb59735a17bcb6fb4ffe6abd53..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncCommunication.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef LOFAR_CNPROC_ASYNC_COMMUNICATION_H -#define LOFAR_CNPROC_ASYNC_COMMUNICATION_H - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -#include <map> -#include <boost/noncopyable.hpp> - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - -class AsyncRequest { -public: - MPI_Request mpiReq; - void* buf; - unsigned size; - unsigned rank; - int tag; -}; - -class AsyncCommunication: boost::noncopyable { - public: - AsyncCommunication(MPI_Comm communicator = MPI_COMM_WORLD); - - // returns handle to this read - int asyncRead(void* buf, unsigned size, unsigned source, int tag); - - // returns handle to this write - int asyncWrite(const void* buf, unsigned size, unsigned dest, int tag); - - void waitForRead(int handle); - void waitForWrite(int handle); - - // returns the handle of the read that was done. - int waitForAnyRead(void*& buf, unsigned& size, unsigned& source, int& tag); - - void waitForAllReads(); - void waitForAllWrites(); - -private: - - MPI_Comm itsCommunicator; - int itsCurrentReadHandle; - int itsCurrentWriteHandle; - std::map<int, AsyncRequest*> itsReadHandleMap; - std::map<int, AsyncRequest*> itsWriteHandleMap; -}; - -#endif // defined HAVE_MPI - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/AsyncTranspose.cc b/RTCP/CNProc/src/AsyncTranspose.cc deleted file mode 100644 index aee376e3835ca1635c2d11401b24b776f26345db..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncTranspose.cc +++ /dev/null @@ -1,142 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <AsyncTranspose.h> - -#include <Interface/CN_Mapping.h> -#include <Interface/PrintVector.h> -#include <Common/LofarLogger.h> - -#include <cassert> - - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - -#define MAX_RANK 100000 // used for message identification: id = type*MAX_RANK + rank - -template <typename SAMPLE_TYPE> AsyncTranspose<SAMPLE_TYPE>::AsyncTranspose( - bool isTransposeInput, bool isTransposeOutput, - unsigned groupNumber, const LocationInfo &locationInfo, - const std::vector<unsigned> &inputPsets, const std::vector<unsigned> &outputPsets ) -: - itsIsTransposeInput(isTransposeInput), - itsIsTransposeOutput(isTransposeOutput), - itsAsyncComm(), - itsInputPsets(inputPsets), - itsOutputPsets(outputPsets), - itsLocationInfo(locationInfo), - itsCommHandles(itsNrCommunications, inputPsets.size()), - itsGroupNumber(groupNumber) -{ - for (unsigned i = 0; i < inputPsets.size(); i ++) { - unsigned rank = locationInfo.remapOnTree(inputPsets[i], itsGroupNumber); - - itsRankToPsetIndex[rank] = i; - } -} - -template <typename SAMPLE_TYPE> void AsyncTranspose<SAMPLE_TYPE>::postAllReceives(SubbandMetaData *metaData, TransposedData<SAMPLE_TYPE> *transposedData) -{ - // there must be something to receive - ASSERT(itsInputPsets.size() > 0); - - for (unsigned i = 0; i < itsInputPsets.size(); i ++) { - unsigned pset = itsInputPsets[i]; - unsigned rank = itsLocationInfo.remapOnTree(pset, itsGroupNumber); // TODO cache this? maybe in locationInfo itself? - - // define what to read - struct { - void *ptr; - size_t size; - } toRead[itsNrCommunications] = { - { transposedData->samples[i].origin(), transposedData->samples[i].num_elements() * sizeof(SAMPLE_TYPE) }, - { &metaData->subbandInfo(i), metaData->itsSubbandInfoSize } - }; - - // read it - for (unsigned h = 0; h < itsNrCommunications; h ++) - itsCommHandles[h][i] = itsAsyncComm.asyncRead(toRead[h].ptr, toRead[h].size, rank, rank + h * MAX_RANK); - } -} - - -// returns station number (= pset index) -template <typename SAMPLE_TYPE> unsigned AsyncTranspose<SAMPLE_TYPE>::waitForAnyReceive() -{ - while (true) { - void *buf; - unsigned size, source; - int tag; - - // This read could return any type of message (out of itsCommHandles) - itsAsyncComm.waitForAnyRead(buf, size, source, tag); - - // source is the real rank, calc pset index - unsigned psetIndex = itsRankToPsetIndex[source]; - - // mark the right communication handle as received - for (unsigned h = 0; h < itsNrCommunications; h ++) { - if (static_cast<unsigned>(tag) < (h + 1) * MAX_RANK) { - itsCommHandles[h][psetIndex] = -1; - break; - } - } - - // check whether we have received all communications for this psetIndex. - // This is the case when commHandles are -1. - bool haveAll = true; - - for (unsigned h = 0; h < itsNrCommunications; h ++) { - if (itsCommHandles[h][psetIndex] != -1) { - haveAll = false; - break; - } - } - - if (haveAll) - return psetIndex; - } -} - - -template <typename SAMPLE_TYPE> void AsyncTranspose<SAMPLE_TYPE>::asyncSend(unsigned outputPsetIndex, - const SubbandMetaData *metaData, - const InputData<SAMPLE_TYPE> *inputData) -{ - unsigned pset = itsOutputPsets[outputPsetIndex]; - unsigned rank = itsLocationInfo.remapOnTree(pset, itsGroupNumber); - int tag = itsLocationInfo.rank(); - - // define what to write - struct { - const void *ptr; - size_t size; - } toWrite[itsNrCommunications] = { - { inputData->samples[outputPsetIndex].origin(), inputData->samples[outputPsetIndex].num_elements() * sizeof(SAMPLE_TYPE) }, - { &metaData->subbandInfo(outputPsetIndex), metaData->itsSubbandInfoSize }, - }; - - // write it - for (unsigned h = 0; h < itsNrCommunications; h ++) - itsAsyncComm.asyncWrite(toWrite[h].ptr, toWrite[h].size, rank, tag + h * MAX_RANK); -} - - -template <typename SAMPLE_TYPE> void AsyncTranspose<SAMPLE_TYPE>::waitForAllSends() -{ - // this includes the metadata writes... - itsAsyncComm.waitForAllWrites(); -} - - -template class AsyncTranspose<i4complex>; -template class AsyncTranspose<i8complex>; -template class AsyncTranspose<i16complex>; - -#endif // HAVE_MPI - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/AsyncTranspose.h b/RTCP/CNProc/src/AsyncTranspose.h deleted file mode 100644 index 9c7d36afb96eca86b2aed62d6c894d41631d9696..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncTranspose.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef LOFAR_CNPROC_ASYNC_TRANSPOSE_H -#define LOFAR_CNPROC_ASYNC_TRANSPOSE_H - -#include <AsyncCommunication.h> -#include <Interface/InputData.h> -#include <LocationInfo.h> -#include <Interface/TransposedData.h> -#include <Interface/SubbandMetaData.h> - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -#include <vector> - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - -// Nodes in input psets read outputPsets.size subbands from their I/O node (one by one). -// Cores communicate with the same logical core number in another pset -// (due to an extra mapping, this is not the physical core number). - -// # sends = size outputPsets (= nrSubbands) on the input nodes. -// # recvs = size inputPsets (= nrStations) on the output nodes. -// Only the output nodes are actually calculating (filtering and correlating). - -template <typename SAMPLE_TYPE> class AsyncTranspose -{ - public: - - AsyncTranspose(bool isTransposeInput, bool isTransposeOutput, - unsigned groupNumber, const LocationInfo &, - const std::vector<unsigned> &inputPsets, const std::vector<unsigned> &outputPsets ); - - // Post all async receives for the transpose. - void postAllReceives(SubbandMetaData *metaData, TransposedData<SAMPLE_TYPE> *transposedData); - - // Wait for a data message. Returns the station number where the message originates. - unsigned waitForAnyReceive(); - - // Asynchronously send a subband. - void asyncSend(unsigned outputPsetNr, const SubbandMetaData *metaData, const InputData<SAMPLE_TYPE> *inputData); - - // Make sure all async sends have finished. - void waitForAllSends(); - - private: - - const bool itsIsTransposeInput, itsIsTransposeOutput; - - unsigned itsNrSubbands; - unsigned itsNrSubbandsPerPset; - unsigned itsNrTABs; - - // A mapping that tells us, if we receive a message from a source, - // to which pset that source belongs. - std::map<unsigned, unsigned> itsRankToPsetIndex; - - AsyncCommunication itsAsyncComm; - const std::vector<unsigned> itsInputPsets; - const std::vector<unsigned> itsOutputPsets; - const LocationInfo &itsLocationInfo; - - // The number of communicates (writes/reads) needed to transport one sub band. - static const unsigned itsNrCommunications = 2; - - // The maps that contain the handles to the asynchronous reads. - // The maps are indexed by the inputPset index. - // The value is -1 if the read finished. - Matrix<int> itsCommHandles; // [itsNrCommunications][itsNrInputPsets] - - // The number of the transpose group we belong to. - // The cores with the same index in a pset together form a group. - unsigned itsGroupNumber; -}; - -#endif // defined HAVE_MPI - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/AsyncTransposeBeams.cc b/RTCP/CNProc/src/AsyncTransposeBeams.cc deleted file mode 100644 index 39b00d5a656774a9e56ad4987c2021d9852abe5f..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncTransposeBeams.cc +++ /dev/null @@ -1,173 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <AsyncTransposeBeams.h> - -#include <Interface/CN_Mapping.h> -#include <Interface/PrintVector.h> -#include <Common/LofarLogger.h> -#include <Common/LofarTypes.h> - -#include <cassert> - -//#define DEBUG - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - - -union Tag { - struct { - unsigned sign : 1; /* must be 0 */ - unsigned sourceRank :11; /* 0..4095, or one BG/P rack */ - unsigned subband :10; - unsigned beam : 9; - } info; - - uint32 nr; - - Tag(): nr(0) {} -}; - -AsyncTransposeBeams::AsyncTransposeBeams( - bool isTransposeInput, bool isTransposeOutput, unsigned nrSubbands, - const LocationInfo &locationInfo, - const std::vector<unsigned> &inputPsets, const std::vector<unsigned> &inputCores, const std::vector<unsigned> &outputPsets, const std::vector<unsigned> &outputCores ) -: - itsIsTransposeInput(isTransposeInput), - itsIsTransposeOutput(isTransposeOutput), - itsAsyncComm(), - itsInputPsets(inputPsets), - itsInputCores(inputCores), - itsOutputPsets(outputPsets), - itsOutputCores(outputCores), - itsLocationInfo(locationInfo), - itsCommHandles(itsNrCommunications,nrSubbands), - itsLocalSubbands(nrSubbands) -{ - ASSERT(itsNrCommunications == 1); // no bits left to encode communication channel, so we can support only one -} - - template <typename T,unsigned DIM, unsigned FLAGS_DIM> void AsyncTransposeBeams::postReceive(SampleData<T,DIM,FLAGS_DIM> *transposedData, unsigned localSubband, unsigned globalSubband, unsigned beam, unsigned psetIndex, unsigned coreIndex) -{ - unsigned pset = itsInputPsets[psetIndex]; - unsigned core = itsInputCores[coreIndex]; - - unsigned rank = itsLocationInfo.remapOnTree(pset, core); // TODO cache this? maybe in locationInfo itself? - - // define what to read - struct { - void *ptr; - size_t size; - } toRead[itsNrCommunications] = { - { transposedData->samples[localSubband].origin(), transposedData->samples[localSubband].num_elements() * sizeof(T) } - }; - - itsLocalSubbands[globalSubband] = localSubband; - - // read it - for (unsigned h = 0; h < itsNrCommunications; h ++) { - Tag t; - - t.info.sign = 0; - t.info.sourceRank = rank; - //t.info.comm = h; - t.info.beam = beam; - t.info.subband = globalSubband; - -#ifdef DEBUG - LOG_DEBUG_STR( "Posting to receive beam " << beam << " subband " << globalSubband << " (local: subband " << localSubband << ") from pset " << pset << " core " << core << " = rank " << rank << ", tag " << t.nr ); -#endif - itsCommHandles[h][globalSubband] = itsAsyncComm.asyncRead(toRead[h].ptr, toRead[h].size, rank, t.nr); - } -} - -// returns station number (= pset index) -unsigned AsyncTransposeBeams::waitForAnyReceive() -{ - while (true) { - void *buf; - unsigned size, source; - int tag; - - Tag t; - - // This read could return any type of message (out of itsCommHandles) - itsAsyncComm.waitForAnyRead(buf, size, source, tag); - - t.nr = tag; - - unsigned subband = t.info.subband; -#ifdef DEBUG - unsigned rank = t.info.sourceRank; - LOG_DEBUG_STR( "Received subband " << subband << " from pset ??, rank " << rank << ", tag " << tag ); -#endif - // mark the right communication handle as received - unsigned comm = 0; // = t.info.comm; - itsCommHandles[comm][subband] = -1; - - // check whether we have received all communications for this psetIndex. - // This is the case when commHandles are -1. - bool haveAll = true; - - for (unsigned h = 0; h < itsNrCommunications; h ++) { - if (itsCommHandles[h][subband] != -1) { - haveAll = false; - break; - } - } - - if (haveAll) - return itsLocalSubbands[subband]; - } -} - - - template <typename T, unsigned DIM, unsigned FLAGS_DIM> void AsyncTransposeBeams::asyncSend(unsigned outputPsetIndex, unsigned coreIndex, unsigned subband, unsigned stokes, unsigned globalBeam, const SampleData<T,DIM,FLAGS_DIM> *inputData) -{ - unsigned pset = itsOutputPsets[outputPsetIndex]; - unsigned core = itsOutputCores[coreIndex]; - unsigned rank = itsLocationInfo.remapOnTree(pset, core); - - // define what to write - struct { - const void *ptr; - const size_t size; - } toWrite[itsNrCommunications] = { - { inputData->samples[stokes].origin(), inputData->samples[stokes].num_elements() * sizeof(T) } - }; - - // write it - for (unsigned h = 0; h < itsNrCommunications; h ++) { - Tag t; - - t.info.sign = 0; - t.info.sourceRank = itsLocationInfo.rank(); - //t.info.comm = h; - t.info.subband = subband; - t.info.beam = globalBeam; - -#ifdef DEBUG - LOG_DEBUG_STR( "Sending beam " << globalBeam << " (local: stokes " << stokes << ") subband " << subband << " to pset " << pset << " core " << core << " = rank " << rank << ", tag " << t.nr ); -#endif - itsAsyncComm.asyncWrite(toWrite[h].ptr, toWrite[h].size, rank, t.nr); - } -} - -template void AsyncTransposeBeams::postReceive(SampleData<float,3,1> *, unsigned, unsigned, unsigned, unsigned, unsigned); -template void AsyncTransposeBeams::postReceive(SampleData<float,3,2> *, unsigned, unsigned, unsigned, unsigned, unsigned); -template void AsyncTransposeBeams::asyncSend(unsigned, unsigned, unsigned, unsigned, unsigned, const SampleData<float,3,1> *); - -void AsyncTransposeBeams::waitForAllSends() -{ - // this includes the metadata writes... - itsAsyncComm.waitForAllWrites(); -} - - -#endif // HAVE_MPI - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/AsyncTransposeBeams.h b/RTCP/CNProc/src/AsyncTransposeBeams.h deleted file mode 100644 index 85978f169e018e83c77ffe36982a213c69059207..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/AsyncTransposeBeams.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef LOFAR_CNPROC_ASYNC_TRANSPOSE_BEAMS_H -#define LOFAR_CNPROC_ASYNC_TRANSPOSE_BEAMS_H - -#include <AsyncCommunication.h> -#include <Interface/BeamFormedData.h> -#include <LocationInfo.h> - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -#include <vector> - - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_MPI - -// Nodes in input psets read outputPsets.size subbands from their I/O node (one by one). -// Cores communicate with the same logical core number in another pset -// (due to an extra mapping, this is not the physical core number). - -// # sends = size outputPsets (= nrSubbands) on the input nodes. -// # recvs = size inputPsets (= nrStations) on the output nodes. -// Only the output nodes are actually calculating (filtering and correlating). - -class AsyncTransposeBeams -{ - public: - - AsyncTransposeBeams(bool isTransposeInput, bool isTransposeOutput, unsigned nrSubbands, - const LocationInfo &, - const std::vector<unsigned> &inputPsets, const std::vector<unsigned> &inputCores, const std::vector<unsigned> &outputPsets, const std::vector<unsigned> &outputCores); - - // Post all async receives for the transpose. - // localSubband is the subband index for local data structures, - // globalSubband is the subband index used globally in the system (0..247) - template <typename T, unsigned DIM, unsigned FLAGS_DIM> void postReceive( SampleData<T,DIM,FLAGS_DIM> *transposedData, unsigned localSubband, unsigned globalSubband, unsigned beam, unsigned psetIndex, unsigned coreIndex); - - // Wait for a data message. Returns the station number where the message originates. - unsigned waitForAnyReceive(); - - // Asynchronously send a subband. - // globalBeam is the beam index for the output backend, which does not differentiate between beams, subbeams, filesperstokes, etc. - template <typename T, unsigned DIM, unsigned FLAGS_DIM> void asyncSend(unsigned outputPsetIndex, unsigned coreIndex, unsigned subband, unsigned stokes, unsigned globalBeam, const SampleData<T,DIM,FLAGS_DIM> *inputData); - - // Make sure all async sends have finished. - void waitForAllSends(); - - private: - const bool itsIsTransposeInput, itsIsTransposeOutput; - - AsyncCommunication itsAsyncComm; - const std::vector<unsigned> itsInputPsets, itsInputCores; - const std::vector<unsigned> itsOutputPsets, itsOutputCores; - const LocationInfo &itsLocationInfo; - - // The number of communicates (writes/reads) needed to transport one sub band. - static const unsigned itsNrCommunications = 1; - - // The maps that contain the handles to the asynchronous reads. - // The maps are indexed by the inputPset index. - // The value is -1 if the read finished. - Matrix<int> itsCommHandles; // [itsNrCommunications][itsNrInputPsets] - - Vector<int> itsLocalSubbands; -}; - -#endif // defined HAVE_MPI - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/BandPass.cc b/RTCP/CNProc/src/BandPass.cc deleted file mode 100644 index da90704f5e31b218bcbdf19aa434638a09357b71..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BandPass.cc +++ /dev/null @@ -1,2150 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <BandPass.h> -#include <Interface/AlignedStdAllocator.h> -#include <Interface/Config.h> - -#include <vector> - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -#include <complex> // FIXME -#include <iostream> // FIXME - -typedef std::complex<float> fcomplex; - - -namespace LOFAR { -namespace RTCP { - - -const float BandPass::stationFilterConstants[] = -{ - 36, 36, 35, 35, 34, 33, 32, 31, - 29, 28, 26, 25, 23, 21, 20, 18, - 17, 15, 14, 12, 11, 10, 9, 9, - 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 9, 9, 9, - 10, 10, 10, 10, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 12, 12, 12, 12, 12, 12, - 13, 13, 13, 13, 13, 13, 13, 13, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 15, 15, - 15, 15, 15, 15, 15, 15, 16, 16, - 16, 16, 16, 16, 16, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 19, 19, 19, 19, 19, 19, 19, 20, - 20, 20, 20, 20, 20, 20, 21, 21, - 21, 21, 21, 21, 21, 21, 22, 22, - 22, 22, 22, 22, 22, 22, 23, 23, - 23, 23, 23, 23, 23, 24, 24, 24, - 24, 24, 24, 25, 25, 25, 25, 25, - 25, 26, 26, 26, 26, 26, 26, 26, - 27, 27, 27, 27, 27, 27, 27, 28, - 28, 28, 28, 28, 28, 29, 29, 29, - 29, 29, 29, 30, 30, 30, 30, 30, - 31, 31, 31, 31, 31, 31, 32, 32, - 32, 32, 32, 32, 33, 33, 33, 33, - 33, 33, 34, 34, 34, 34, 34, 35, - 35, 35, 35, 35, 36, 36, 36, 36, - 36, 37, 37, 37, 37, 37, 37, 38, - 38, 38, 38, 38, 39, 39, 39, 39, - 39, 40, 40, 40, 40, 40, 41, 41, - 41, 41, 42, 42, 42, 42, 42, 43, - 43, 43, 43, 43, 44, 44, 44, 44, - 44, 45, 45, 45, 45, 46, 46, 46, - 46, 46, 47, 47, 47, 47, 48, 48, - 48, 48, 49, 49, 49, 49, 50, 50, - 50, 50, 50, 51, 51, 51, 51, 52, - 52, 52, 52, 53, 53, 53, 53, 54, - 54, 54, 54, 55, 55, 55, 55, 56, - 56, 56, 56, 57, 57, 57, 57, 58, - 58, 58, 58, 59, 59, 59, 59, 60, - 60, 60, 60, 61, 61, 61, 62, 62, - 62, 62, 63, 63, 63, 63, 64, 64, - 64, 65, 65, 65, 65, 66, 66, 66, - 67, 67, 67, 67, 68, 68, 68, 69, - 69, 69, 69, 70, 70, 70, 71, 71, - 71, 71, 72, 72, 72, 73, 73, 73, - 74, 74, 74, 74, 75, 75, 75, 76, - 76, 76, 77, 77, 77, 77, 78, 78, - 78, 79, 79, 79, 80, 80, 80, 81, - 81, 81, 82, 82, 82, 83, 83, 83, - 84, 84, 84, 85, 85, 85, 85, 86, - 86, 86, 87, 87, 87, 88, 88, 88, - 89, 89, 89, 90, 90, 90, 91, 91, - 92, 92, 92, 93, 93, 93, 94, 94, - 94, 95, 95, 95, 96, 96, 96, 97, - 97, 97, 98, 98, 99, 99, 99, 100, - 100, 100, 101, 101, 101, 102, 102, 103, - 103, 103, 104, 104, 104, 105, 105, 105, - 106, 106, 107, 107, 107, 108, 108, 108, - 109, 109, 110, 110, 110, 111, 111, 112, - 112, 112, 113, 113, 113, 114, 114, 115, - 115, 115, 116, 116, 117, 117, 117, 118, - 118, 119, 119, 119, 120, 120, 121, 121, - 121, 122, 122, 123, 123, 123, 124, 124, - 125, 125, 125, 126, 126, 127, 127, 127, - 128, 128, 129, 129, 130, 130, 130, 131, - 131, 132, 132, 132, 133, 133, 134, 134, - 135, 135, 135, 136, 136, 137, 137, 138, - 138, 138, 139, 139, 140, 140, 141, 141, - 141, 142, 142, 143, 143, 144, 144, 145, - 145, 145, 146, 146, 147, 147, 148, 148, - 149, 149, 149, 150, 150, 151, 151, 152, - 152, 153, 153, 153, 154, 154, 155, 155, - 156, 156, 157, 157, 158, 158, 159, 159, - 159, 160, 160, 161, 161, 162, 162, 163, - 163, 164, 164, 165, 165, 165, 166, 166, - 167, 167, 168, 168, 169, 169, 170, 170, - 171, 171, 172, 172, 173, 173, 174, 174, - 174, 175, 175, 176, 176, 177, 177, 178, - 178, 179, 179, 180, 180, 181, 181, 182, - 182, 183, 183, 184, 184, 185, 185, 186, - 186, 187, 187, 188, 188, 189, 189, 190, - 190, 191, 191, 192, 192, 193, 193, 194, - 194, 195, 195, 196, 196, 197, 197, 198, - 198, 199, 199, 200, 200, 201, 201, 202, - 202, 203, 203, 204, 204, 205, 205, 206, - 206, 207, 207, 208, 208, 209, 209, 210, - 210, 211, 211, 212, 212, 213, 213, 214, - 214, 215, 215, 216, 217, 217, 218, 218, - 219, 219, 220, 220, 221, 221, 222, 222, - 223, 223, 224, 224, 225, 225, 226, 226, - 227, 227, 228, 229, 229, 230, 230, 231, - 231, 232, 232, 233, 233, 234, 234, 235, - 235, 236, 236, 237, 237, 238, 239, 239, - 240, 240, 241, 241, 242, 242, 243, 243, - 244, 244, 245, 245, 246, 247, 247, 248, - 248, 249, 249, 250, 250, 251, 251, 252, - 252, 253, 253, 254, 255, 255, 256, 256, - 257, 257, 258, 258, 259, 259, 260, 260, - 261, 261, 262, 263, 263, 264, 264, 265, - 265, 266, 266, 267, 267, 268, 268, 269, - 270, 270, 271, 271, 272, 272, 273, 273, - 274, 274, 275, 275, 276, 277, 277, 278, - 278, 279, 279, 280, 280, 281, 281, 282, - 282, 283, 283, 284, 285, 285, 286, 286, - 287, 287, 288, 288, 289, 289, 290, 290, - 291, 291, 292, 293, 293, 294, 294, 295, - 295, 296, 296, 297, 297, 298, 298, 299, - 299, 300, 300, 301, 302, 302, 303, 303, - 304, 304, 305, 305, 306, 306, 307, 307, - 308, 308, 309, 309, 310, 311, 311, 312, - 312, 313, 313, 314, 314, 315, 315, 316, - 316, 317, 317, 318, 318, 319, 319, 320, - 320, 321, 321, 322, 322, 323, 323, 324, - 325, 325, 326, 326, 327, 327, 328, 328, - 329, 329, 330, 330, 331, 331, 332, 332, - 333, 333, 334, 334, 335, 335, 336, 336, - 337, 337, 338, 338, 339, 339, 340, 340, - 341, 341, 342, 342, 343, 343, 344, 344, - 345, 345, 346, 346, 347, 347, 348, 348, - 348, 349, 349, 350, 350, 351, 351, 352, - 352, 353, 353, 354, 354, 355, 355, 356, - 356, 357, 357, 358, 358, 359, 359, 359, - 360, 360, 361, 361, 362, 362, 363, 363, - 364, 364, 365, 365, 365, 366, 366, 367, - 367, 368, 368, 369, 369, 370, 370, 370, - 371, 371, 372, 372, 373, 373, 373, 374, - 374, 375, 375, 376, 376, 377, 377, 377, - 378, 378, 379, 379, 380, 380, 380, 381, - 381, 382, 382, 382, 383, 383, 384, 384, - 385, 385, 385, 386, 386, 387, 387, 387, - 388, 388, 389, 389, 389, 390, 390, 391, - 391, 391, 392, 392, 393, 393, 393, 394, - 394, 394, 395, 395, 396, 396, 396, 397, - 397, 397, 398, 398, 399, 399, 399, 400, - 400, 400, 401, 401, 401, 402, 402, 402, - 403, 403, 404, 404, 404, 405, 405, 405, - 406, 406, 406, 407, 407, 407, 408, 408, - 408, 409, 409, 409, 409, 410, 410, 410, - 411, 411, 411, 412, 412, 412, 413, 413, - 413, 414, 414, 414, 414, 415, 415, 415, - 416, 416, 416, 416, 417, 417, 417, 418, - 418, 418, 418, 419, 419, 419, 419, 420, - 420, 420, 420, 421, 421, 421, 421, 422, - 422, 422, 422, 423, 423, 423, 423, 424, - 424, 424, 424, 425, 425, 425, 425, 425, - 426, 426, 426, 426, 427, 427, 427, 427, - 427, 428, 428, 428, 428, 428, 429, 429, - 429, 429, 429, 429, 430, 430, 430, 430, - 430, 430, 431, 431, 431, 431, 431, 431, - 432, 432, 432, 432, 432, 432, 432, 433, - 433, 433, 433, 433, 433, 433, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 435, - 435, 435, 435, 435, 435, 435, 435, 435, - 435, 436, 436, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 436, 436, - 436, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 436, 436, 436, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 436, 435, - 435, 435, 435, 435, 435, 435, 435, 435, - 435, 434, 434, 434, 434, 434, 434, 434, - 434, 433, 433, 433, 433, 433, 433, 433, - 432, 432, 432, 432, 432, 432, 432, 431, - 431, 431, 431, 431, 430, 430, 430, 430, - 430, 429, 429, 429, 429, 429, 428, 428, - 428, 428, 428, 427, 427, 427, 427, 426, - 426, 426, 426, 425, 425, 425, 425, 424, - 424, 424, 424, 423, 423, 423, 423, 422, - 422, 422, 421, 421, 421, 420, 420, 420, - 420, 419, 419, 419, 418, 418, 418, 417, - 417, 417, 416, 416, 416, 415, 415, 415, - 414, 414, 413, 413, 413, 412, 412, 412, - 411, 411, 410, 410, 410, 409, 409, 409, - 408, 408, 407, 407, 406, 406, 406, 405, - 405, 404, 404, 403, 403, 403, 402, 402, - 401, 401, 400, 400, 399, 399, 398, 398, - 398, 397, 397, 396, 396, 395, 395, 394, - 394, 393, 393, 392, 392, 391, 391, 390, - 389, 389, 388, 388, 387, 387, 386, 386, - 385, 385, 384, 383, 383, 382, 382, 381, - 381, 380, 379, 379, 378, 378, 377, 376, - 376, 375, 375, 374, 373, 373, 372, 372, - 371, 370, 370, 369, 368, 368, 367, 367, - 366, 365, 365, 364, 363, 363, 362, 361, - 361, 360, 359, 358, 358, 357, 356, 356, - 355, 354, 354, 353, 352, 351, 351, 350, - 349, 349, 348, 347, 346, 346, 345, 344, - 343, 343, 342, 341, 340, 339, 339, 338, - 337, 336, 336, 335, 334, 333, 332, 332, - 331, 330, 329, 328, 328, 327, 326, 325, - 324, 323, 323, 322, 321, 320, 319, 318, - 318, 317, 316, 315, 314, 313, 312, 311, - 311, 310, 309, 308, 307, 306, 305, 304, - 303, 302, 302, 301, 300, 299, 298, 297, - 296, 295, 294, 293, 292, 291, 290, 289, - 288, 288, 287, 286, 285, 284, 283, 282, - 281, 280, 279, 278, 277, 276, 275, 274, - 273, 272, 271, 270, 269, 268, 267, 266, - 265, 264, 262, 261, 260, 259, 258, 257, - 256, 255, 254, 253, 252, 251, 250, 249, - 248, 247, 245, 244, 243, 242, 241, 240, - 239, 238, 237, 236, 234, 233, 232, 231, - 230, 229, 228, 227, 225, 224, 223, 222, - 221, 220, 218, 217, 216, 215, 214, 213, - 211, 210, 209, 208, 207, 206, 204, 203, - 202, 201, 200, 198, 197, 196, 195, 193, - 192, 191, 190, 189, 187, 186, 185, 184, - 182, 181, 180, 179, 177, 176, 175, 174, - 172, 171, 170, 168, 167, 166, 165, 163, - 162, 161, 159, 158, 157, 155, 154, 153, - 152, 150, 149, 148, 146, 145, 144, 142, - 141, 140, 138, 137, 136, 134, 133, 132, - 130, 129, 127, 126, 125, 123, 122, 121, - 119, 118, 116, 115, 114, 112, 111, 109, - 108, 107, 105, 104, 102, 101, 100, 98, - 97, 95, 94, 93, 91, 90, 88, 87, - 85, 84, 82, 81, 80, 78, 77, 75, - 74, 72, 71, 69, 68, 66, 65, 64, - 62, 61, 59, 58, 56, 55, 53, 52, - 50, 49, 47, 46, 44, 43, 41, 40, - 38, 37, 35, 34, 32, 30, 29, 27, - 26, 24, 23, 21, 20, 18, 17, 15, - 14, 12, 10, 9, 7, 6, 4, 3, - 1, 0, -2, -4, -5, -7, -8, -10, - -11, -13, -15, -16, -18, -19, -21, -23, - -24, -26, -27, -29, -31, -32, -34, -35, - -37, -39, -40, -42, -43, -45, -47, -48, - -50, -52, -53, -55, -57, -58, -60, -61, - -63, -65, -66, -68, -70, -71, -73, -75, - -76, -78, -80, -81, -83, -84, -86, -88, - -89, -91, -93, -94, -96, -98, -99, -101, - -103, -105, -106, -108, -110, -111, -113, -115, - -116, -118, -120, -121, -123, -125, -126, -128, - -130, -132, -133, -135, -137, -138, -140, -142, - -143, -145, -147, -149, -150, -152, -154, -155, - -157, -159, -161, -162, -164, -166, -167, -169, - -171, -173, -174, -176, -178, -180, -181, -183, - -185, -186, -188, -190, -192, -193, -195, -197, - -199, -200, -202, -204, -206, -207, -209, -211, - -213, -214, -216, -218, -219, -221, -223, -225, - -226, -228, -230, -232, -233, -235, -237, -239, - -240, -242, -244, -246, -247, -249, -251, -253, - -255, -256, -258, -260, -262, -263, -265, -267, - -269, -270, -272, -274, -276, -277, -279, -281, - -283, -284, -286, -288, -290, -291, -293, -295, - -297, -299, -300, -302, -304, -306, -307, -309, - -311, -313, -314, -316, -318, -320, -321, -323, - -325, -327, -328, -330, -332, -334, -336, -337, - -339, -341, -343, -344, -346, -348, -350, -351, - -353, -355, -357, -358, -360, -362, -364, -365, - -367, -369, -371, -372, -374, -376, -378, -379, - -381, -383, -385, -386, -388, -390, -392, -393, - -395, -397, -399, -400, -402, -404, -406, -407, - -409, -411, -413, -414, -416, -418, -419, -421, - -423, -425, -426, -428, -430, -432, -433, -435, - -437, -438, -440, -442, -444, -445, -447, -449, - -450, -452, -454, -456, -457, -459, -461, -462, - -464, -466, -468, -469, -471, -473, -474, -476, - -478, -479, -481, -483, -485, -486, -488, -490, - -491, -493, -495, -496, -498, -500, -501, -503, - -505, -506, -508, -510, -511, -513, -515, -516, - -518, -520, -521, -523, -525, -526, -528, -530, - -531, -533, -534, -536, -538, -539, -541, -543, - -544, -546, -547, -549, -551, -552, -554, -556, - -557, -559, -560, -562, -564, -565, -567, -568, - -570, -572, -573, -575, -576, -578, -579, -581, - -583, -584, -586, -587, -589, -590, -592, -594, - -595, -597, -598, -600, -601, -603, -604, -606, - -607, -609, -610, -612, -614, -615, -617, -618, - -620, -621, -623, -624, -626, -627, -629, -630, - -632, -633, -635, -636, -638, -639, -640, -642, - -643, -645, -646, -648, -649, -651, -652, -654, - -655, -656, -658, -659, -661, -662, -664, -665, - -666, -668, -669, -671, -672, -673, -675, -676, - -678, -679, -680, -682, -683, -685, -686, -687, - -689, -690, -691, -693, -694, -695, -697, -698, - -699, -701, -702, -703, -705, -706, -707, -709, - -710, -711, -713, -714, -715, -716, -718, -719, - -720, -722, -723, -724, -725, -727, -728, -729, - -730, -732, -733, -734, -735, -736, -738, -739, - -740, -741, -743, -744, -745, -746, -747, -748, - -750, -751, -752, -753, -754, -755, -757, -758, - -759, -760, -761, -762, -763, -765, -766, -767, - -768, -769, -770, -771, -772, -773, -774, -776, - -777, -778, -779, -780, -781, -782, -783, -784, - -785, -786, -787, -788, -789, -790, -791, -792, - -793, -794, -795, -796, -797, -798, -799, -800, - -801, -802, -803, -804, -805, -806, -807, -808, - -808, -809, -810, -811, -812, -813, -814, -815, - -816, -816, -817, -818, -819, -820, -821, -822, - -822, -823, -824, -825, -826, -827, -827, -828, - -829, -830, -831, -831, -832, -833, -834, -834, - -835, -836, -837, -837, -838, -839, -840, -840, - -841, -842, -842, -843, -844, -844, -845, -846, - -846, -847, -848, -848, -849, -850, -850, -851, - -852, -852, -853, -853, -854, -855, -855, -856, - -856, -857, -857, -858, -859, -859, -860, -860, - -861, -861, -862, -862, -863, -863, -864, -864, - -865, -865, -866, -866, -867, -867, -867, -868, - -868, -869, -869, -870, -870, -870, -871, -871, - -871, -872, -872, -873, -873, -873, -874, -874, - -874, -875, -875, -875, -876, -876, -876, -876, - -877, -877, -877, -878, -878, -878, -878, -879, - -879, -879, -879, -879, -880, -880, -880, -880, - -880, -881, -881, -881, -881, -881, -881, -881, - -882, -882, -882, -882, -882, -882, -882, -882, - -882, -882, -882, -882, -883, -883, -883, -883, - -883, -883, -883, -883, -883, -883, -883, -883, - -883, -883, -882, -882, -882, -882, -882, -882, - -882, -882, -882, -882, -882, -882, -881, -881, - -881, -881, -881, -881, -880, -880, -880, -880, - -880, -879, -879, -879, -879, -879, -878, -878, - -878, -878, -877, -877, -877, -876, -876, -876, - -876, -875, -875, -875, -874, -874, -874, -873, - -873, -872, -872, -872, -871, -871, -870, -870, - -870, -869, -869, -868, -868, -867, -867, -866, - -866, -865, -865, -864, -864, -863, -863, -862, - -862, -861, -861, -860, -860, -859, -858, -858, - -857, -857, -856, -855, -855, -854, -854, -853, - -852, -852, -851, -850, -850, -849, -848, -847, - -847, -846, -845, -845, -844, -843, -842, -842, - -841, -840, -839, -838, -838, -837, -836, -835, - -834, -833, -833, -832, -831, -830, -829, -828, - -827, -827, -826, -825, -824, -823, -822, -821, - -820, -819, -818, -817, -816, -815, -814, -813, - -812, -811, -810, -809, -808, -807, -806, -805, - -804, -803, -802, -801, -800, -798, -797, -796, - -795, -794, -793, -792, -791, -789, -788, -787, - -786, -785, -783, -782, -781, -780, -779, -777, - -776, -775, -774, -772, -771, -770, -769, -767, - -766, -765, -763, -762, -761, -759, -758, -757, - -755, -754, -753, -751, -750, -748, -747, -746, - -744, -743, -741, -740, -738, -737, -735, -734, - -733, -731, -730, -728, -727, -725, -724, -722, - -720, -719, -717, -716, -714, -713, -711, -710, - -708, -706, -705, -703, -702, -700, -698, -697, - -695, -693, -692, -690, -688, -687, -685, -683, - -682, -680, -678, -676, -675, -673, -671, -669, - -668, -666, -664, -662, -661, -659, -657, -655, - -653, -651, -650, -648, -646, -644, -642, -640, - -639, -637, -635, -633, -631, -629, -627, -625, - -623, -621, -619, -617, -615, -614, -612, -610, - -608, -606, -604, -602, -600, -598, -596, -594, - -592, -589, -587, -585, -583, -581, -579, -577, - -575, -573, -571, -569, -567, -564, -562, -560, - -558, -556, -554, -552, -549, -547, -545, -543, - -541, -538, -536, -534, -532, -530, -527, -525, - -523, -521, -518, -516, -514, -512, -509, -507, - -505, -502, -500, -498, -495, -493, -491, -488, - -486, -484, -481, -479, -477, -474, -472, -469, - -467, -465, -462, -460, -457, -455, -453, -450, - -448, -445, -443, -440, -438, -435, -433, -430, - -428, -425, -423, -420, -418, -415, -413, -410, - -408, -405, -403, -400, -398, -395, -392, -390, - -387, -385, -382, -380, -377, -374, -372, -369, - -366, -364, -361, -359, -356, -353, -351, -348, - -345, -343, -340, -337, -334, -332, -329, -326, - -324, -321, -318, -315, -313, -310, -307, -305, - -302, -299, -296, -293, -291, -288, -285, -282, - -280, -277, -274, -271, -268, -266, -263, -260, - -257, -254, -251, -248, -246, -243, -240, -237, - -234, -231, -228, -226, -223, -220, -217, -214, - -211, -208, -205, -202, -199, -196, -194, -191, - -188, -185, -182, -179, -176, -173, -170, -167, - -164, -161, -158, -155, -152, -149, -146, -143, - -140, -137, -134, -131, -128, -125, -122, -119, - -116, -113, -110, -107, -104, -100, -97, -94, - -91, -88, -85, -82, -79, -76, -73, -70, - -67, -63, -60, -57, -54, -51, -48, -45, - -42, -39, -35, -32, -29, -26, -23, -20, - -16, -13, -10, -7, -4, -1, 2, 6, - 9, 12, 15, 18, 22, 25, 28, 31, - 34, 38, 41, 44, 47, 50, 54, 57, - 60, 63, 67, 70, 73, 76, 79, 83, - 86, 89, 92, 96, 99, 102, 105, 109, - 112, 115, 118, 122, 125, 128, 132, 135, - 138, 141, 145, 148, 151, 154, 158, 161, - 164, 168, 171, 174, 178, 181, 184, 187, - 191, 194, 197, 201, 204, 207, 211, 214, - 217, 221, 224, 227, 230, 234, 237, 240, - 244, 247, 250, 254, 257, 260, 264, 267, - 270, 274, 277, 280, 284, 287, 290, 294, - 297, 300, 304, 307, 310, 314, 317, 320, - 324, 327, 330, 334, 337, 341, 344, 347, - 351, 354, 357, 361, 364, 367, 371, 374, - 377, 381, 384, 387, 391, 394, 397, 401, - 404, 407, 411, 414, 417, 421, 424, 427, - 431, 434, 437, 441, 444, 448, 451, 454, - 458, 461, 464, 468, 471, 474, 478, 481, - 484, 488, 491, 494, 498, 501, 504, 507, - 511, 514, 517, 521, 524, 527, 531, 534, - 537, 541, 544, 547, 551, 554, 557, 560, - 564, 567, 570, 574, 577, 580, 584, 587, - 590, 593, 597, 600, 603, 606, 610, 613, - 616, 620, 623, 626, 629, 633, 636, 639, - 642, 646, 649, 652, 655, 659, 662, 665, - 668, 671, 675, 678, 681, 684, 688, 691, - 694, 697, 700, 704, 707, 710, 713, 716, - 720, 723, 726, 729, 732, 735, 739, 742, - 745, 748, 751, 754, 758, 761, 764, 767, - 770, 773, 776, 779, 783, 786, 789, 792, - 795, 798, 801, 804, 807, 810, 813, 817, - 820, 823, 826, 829, 832, 835, 838, 841, - 844, 847, 850, 853, 856, 859, 862, 865, - 868, 871, 874, 877, 880, 883, 886, 889, - 892, 895, 898, 901, 904, 907, 910, 913, - 915, 918, 921, 924, 927, 930, 933, 936, - 939, 942, 944, 947, 950, 953, 956, 959, - 961, 964, 967, 970, 973, 976, 978, 981, - 984, 987, 990, 992, 995, 998, 1001, 1003, - 1006, 1009, 1012, 1014, 1017, 1020, 1022, 1025, - 1028, 1030, 1033, 1036, 1038, 1041, 1044, 1046, - 1049, 1052, 1054, 1057, 1060, 1062, 1065, 1067, - 1070, 1073, 1075, 1078, 1080, 1083, 1085, 1088, - 1090, 1093, 1095, 1098, 1100, 1103, 1105, 1108, - 1110, 1113, 1115, 1118, 1120, 1123, 1125, 1128, - 1130, 1132, 1135, 1137, 1140, 1142, 1144, 1147, - 1149, 1151, 1154, 1156, 1158, 1161, 1163, 1165, - 1168, 1170, 1172, 1174, 1177, 1179, 1181, 1183, - 1186, 1188, 1190, 1192, 1195, 1197, 1199, 1201, - 1203, 1205, 1208, 1210, 1212, 1214, 1216, 1218, - 1220, 1222, 1224, 1227, 1229, 1231, 1233, 1235, - 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, - 1253, 1255, 1257, 1258, 1260, 1262, 1264, 1266, - 1268, 1270, 1272, 1274, 1275, 1277, 1279, 1281, - 1283, 1284, 1286, 1288, 1290, 1292, 1293, 1295, - 1297, 1299, 1300, 1302, 1304, 1305, 1307, 1309, - 1310, 1312, 1314, 1315, 1317, 1318, 1320, 1322, - 1323, 1325, 1326, 1328, 1329, 1331, 1332, 1334, - 1335, 1337, 1338, 1340, 1341, 1343, 1344, 1346, - 1347, 1348, 1350, 1351, 1353, 1354, 1355, 1357, - 1358, 1359, 1361, 1362, 1363, 1364, 1366, 1367, - 1368, 1369, 1371, 1372, 1373, 1374, 1375, 1377, - 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, - 1395, 1396, 1397, 1398, 1399, 1400, 1400, 1401, - 1402, 1403, 1404, 1405, 1406, 1406, 1407, 1408, - 1409, 1410, 1410, 1411, 1412, 1413, 1413, 1414, - 1415, 1416, 1416, 1417, 1418, 1418, 1419, 1420, - 1420, 1421, 1421, 1422, 1422, 1423, 1424, 1424, - 1425, 1425, 1426, 1426, 1427, 1427, 1427, 1428, - 1428, 1429, 1429, 1429, 1430, 1430, 1431, 1431, - 1431, 1432, 1432, 1432, 1432, 1433, 1433, 1433, - 1433, 1434, 1434, 1434, 1434, 1434, 1434, 1435, - 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, - 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, - 1435, 1435, 1435, 1435, 1435, 1434, 1434, 1434, - 1434, 1434, 1434, 1433, 1433, 1433, 1433, 1432, - 1432, 1432, 1432, 1431, 1431, 1431, 1430, 1430, - 1429, 1429, 1429, 1428, 1428, 1427, 1427, 1426, - 1426, 1425, 1425, 1424, 1424, 1423, 1423, 1422, - 1422, 1421, 1420, 1420, 1419, 1419, 1418, 1417, - 1416, 1416, 1415, 1414, 1414, 1413, 1412, 1411, - 1410, 1410, 1409, 1408, 1407, 1406, 1405, 1405, - 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, - 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, - 1387, 1386, 1385, 1384, 1383, 1382, 1380, 1379, - 1378, 1377, 1376, 1374, 1373, 1372, 1370, 1369, - 1368, 1367, 1365, 1364, 1362, 1361, 1360, 1358, - 1357, 1355, 1354, 1352, 1351, 1349, 1348, 1346, - 1345, 1343, 1342, 1340, 1339, 1337, 1335, 1334, - 1332, 1330, 1329, 1327, 1325, 1324, 1322, 1320, - 1319, 1317, 1315, 1313, 1311, 1310, 1308, 1306, - 1304, 1302, 1300, 1298, 1297, 1295, 1293, 1291, - 1289, 1287, 1285, 1283, 1281, 1279, 1277, 1275, - 1273, 1271, 1268, 1266, 1264, 1262, 1260, 1258, - 1256, 1253, 1251, 1249, 1247, 1245, 1242, 1240, - 1238, 1236, 1233, 1231, 1229, 1226, 1224, 1222, - 1219, 1217, 1214, 1212, 1210, 1207, 1205, 1202, - 1200, 1197, 1195, 1192, 1190, 1187, 1185, 1182, - 1179, 1177, 1174, 1172, 1169, 1166, 1164, 1161, - 1158, 1156, 1153, 1150, 1148, 1145, 1142, 1139, - 1136, 1134, 1131, 1128, 1125, 1122, 1119, 1117, - 1114, 1111, 1108, 1105, 1102, 1099, 1096, 1093, - 1090, 1087, 1084, 1081, 1078, 1075, 1072, 1069, - 1066, 1063, 1060, 1057, 1053, 1050, 1047, 1044, - 1041, 1038, 1034, 1031, 1028, 1025, 1021, 1018, - 1015, 1012, 1008, 1005, 1002, 998, 995, 992, - 988, 985, 981, 978, 975, 971, 968, 964, - 961, 957, 954, 950, 947, 943, 940, 936, - 933, 929, 926, 922, 918, 915, 911, 908, - 904, 900, 897, 893, 889, 885, 882, 878, - 874, 871, 867, 863, 859, 855, 852, 848, - 844, 840, 836, 832, 829, 825, 821, 817, - 813, 809, 805, 801, 797, 793, 789, 785, - 781, 777, 773, 769, 765, 761, 757, 753, - 749, 745, 741, 737, 732, 728, 724, 720, - 716, 712, 707, 703, 699, 695, 691, 686, - 682, 678, 674, 669, 665, 661, 656, 652, - 648, 643, 639, 635, 630, 626, 622, 617, - 613, 608, 604, 600, 595, 591, 586, 582, - 577, 573, 568, 564, 559, 555, 550, 546, - 541, 537, 532, 528, 523, 518, 514, 509, - 505, 500, 495, 491, 486, 481, 477, 472, - 467, 463, 458, 453, 448, 444, 439, 434, - 429, 425, 420, 415, 410, 406, 401, 396, - 391, 386, 382, 377, 372, 367, 362, 357, - 352, 347, 343, 338, 333, 328, 323, 318, - 313, 308, 303, 298, 293, 288, 283, 278, - 273, 268, 263, 258, 253, 248, 243, 238, - 233, 228, 223, 218, 213, 208, 203, 198, - 193, 187, 182, 177, 172, 167, 162, 157, - 152, 146, 141, 136, 131, 126, 121, 115, - 110, 105, 100, 95, 89, 84, 79, 74, - 68, 63, 58, 53, 47, 42, 37, 32, - 26, 21, 16, 10, 5, 0, -5, -11, - -16, -21, -27, -32, -37, -43, -48, -53, - -59, -64, -70, -75, -80, -86, -91, -96, - -102, -107, -113, -118, -123, -129, -134, -140, - -145, -150, -156, -161, -167, -172, -178, -183, - -188, -194, -199, -205, -210, -216, -221, -227, - -232, -238, -243, -248, -254, -259, -265, -270, - -276, -281, -287, -292, -298, -303, -309, -314, - -320, -325, -331, -336, -342, -347, -353, -358, - -364, -369, -375, -381, -386, -392, -397, -403, - -408, -414, -419, -425, -430, -436, -441, -447, - -452, -458, -464, -469, -475, -480, -486, -491, - -497, -502, -508, -513, -519, -524, -530, -536, - -541, -547, -552, -558, -563, -569, -574, -580, - -585, -591, -597, -602, -608, -613, -619, -624, - -630, -635, -641, -646, -652, -658, -663, -669, - -674, -680, -685, -691, -696, -702, -707, -713, - -718, -724, -729, -735, -740, -746, -751, -757, - -762, -768, -773, -779, -784, -790, -795, -801, - -806, -812, -817, -823, -828, -834, -839, -845, - -850, -856, -861, -867, -872, -877, -883, -888, - -894, -899, -905, -910, -916, -921, -926, -932, - -937, -943, -948, -953, -959, -964, -970, -975, - -980, -986, -991, -997, -1002, -1007, -1013, -1018, - -1023, -1029, -1034, -1039, -1045, -1050, -1055, -1061, - -1066, -1071, -1077, -1082, -1087, -1092, -1098, -1103, - -1108, -1114, -1119, -1124, -1129, -1135, -1140, -1145, - -1150, -1155, -1161, -1166, -1171, -1176, -1181, -1187, - -1192, -1197, -1202, -1207, -1212, -1218, -1223, -1228, - -1233, -1238, -1243, -1248, -1253, -1258, -1264, -1269, - -1274, -1279, -1284, -1289, -1294, -1299, -1304, -1309, - -1314, -1319, -1324, -1329, -1334, -1339, -1344, -1349, - -1354, -1359, -1364, -1369, -1374, -1378, -1383, -1388, - -1393, -1398, -1403, -1408, -1413, -1417, -1422, -1427, - -1432, -1437, -1441, -1446, -1451, -1456, -1461, -1465, - -1470, -1475, -1480, -1484, -1489, -1494, -1498, -1503, - -1508, -1512, -1517, -1522, -1526, -1531, -1535, -1540, - -1545, -1549, -1554, -1558, -1563, -1567, -1572, -1577, - -1581, -1586, -1590, -1594, -1599, -1603, -1608, -1612, - -1617, -1621, -1625, -1630, -1634, -1639, -1643, -1647, - -1652, -1656, -1660, -1665, -1669, -1673, -1677, -1682, - -1686, -1690, -1694, -1699, -1703, -1707, -1711, -1715, - -1719, -1724, -1728, -1732, -1736, -1740, -1744, -1748, - -1752, -1756, -1760, -1764, -1768, -1772, -1776, -1780, - -1784, -1788, -1792, -1796, -1800, -1804, -1807, -1811, - -1815, -1819, -1823, -1827, -1830, -1834, -1838, -1842, - -1845, -1849, -1853, -1857, -1860, -1864, -1868, -1871, - -1875, -1878, -1882, -1886, -1889, -1893, -1896, -1900, - -1903, -1907, -1910, -1914, -1917, -1921, -1924, -1927, - -1931, -1934, -1938, -1941, -1944, -1948, -1951, -1954, - -1957, -1961, -1964, -1967, -1970, -1974, -1977, -1980, - -1983, -1986, -1989, -1992, -1996, -1999, -2002, -2005, - -2008, -2011, -2014, -2017, -2020, -2023, -2026, -2029, - -2031, -2034, -2037, -2040, -2043, -2046, -2049, -2051, - -2054, -2057, -2060, -2062, -2065, -2068, -2070, -2073, - -2076, -2078, -2081, -2083, -2086, -2089, -2091, -2094, - -2096, -2099, -2101, -2104, -2106, -2108, -2111, -2113, - -2116, -2118, -2120, -2122, -2125, -2127, -2129, -2132, - -2134, -2136, -2138, -2140, -2142, -2145, -2147, -2149, - -2151, -2153, -2155, -2157, -2159, -2161, -2163, -2165, - -2167, -2169, -2171, -2173, -2174, -2176, -2178, -2180, - -2182, -2184, -2185, -2187, -2189, -2190, -2192, -2194, - -2195, -2197, -2199, -2200, -2202, -2203, -2205, -2206, - -2208, -2209, -2211, -2212, -2214, -2215, -2216, -2218, - -2219, -2220, -2222, -2223, -2224, -2225, -2227, -2228, - -2229, -2230, -2231, -2232, -2233, -2235, -2236, -2237, - -2238, -2239, -2240, -2241, -2242, -2242, -2243, -2244, - -2245, -2246, -2247, -2248, -2248, -2249, -2250, -2251, - -2251, -2252, -2253, -2253, -2254, -2254, -2255, -2256, - -2256, -2257, -2257, -2258, -2258, -2259, -2259, -2259, - -2260, -2260, -2260, -2261, -2261, -2261, -2261, -2262, - -2262, -2262, -2262, -2262, -2263, -2263, -2263, -2263, - -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263, - -2262, -2262, -2262, -2262, -2262, -2261, -2261, -2261, - -2261, -2260, -2260, -2260, -2259, -2259, -2258, -2258, - -2257, -2257, -2256, -2256, -2255, -2255, -2254, -2254, - -2253, -2252, -2252, -2251, -2250, -2249, -2249, -2248, - -2247, -2246, -2245, -2244, -2244, -2243, -2242, -2241, - -2240, -2239, -2238, -2237, -2236, -2234, -2233, -2232, - -2231, -2230, -2229, -2227, -2226, -2225, -2224, -2222, - -2221, -2220, -2218, -2217, -2215, -2214, -2212, -2211, - -2209, -2208, -2206, -2205, -2203, -2202, -2200, -2198, - -2197, -2195, -2193, -2191, -2190, -2188, -2186, -2184, - -2182, -2180, -2179, -2177, -2175, -2173, -2171, -2169, - -2167, -2165, -2162, -2160, -2158, -2156, -2154, -2152, - -2150, -2147, -2145, -2143, -2140, -2138, -2136, -2133, - -2131, -2129, -2126, -2124, -2121, -2119, -2116, -2114, - -2111, -2108, -2106, -2103, -2101, -2098, -2095, -2092, - -2090, -2087, -2084, -2081, -2079, -2076, -2073, -2070, - -2067, -2064, -2061, -2058, -2055, -2052, -2049, -2046, - -2043, -2040, -2037, -2033, -2030, -2027, -2024, -2021, - -2017, -2014, -2011, -2007, -2004, -2001, -1997, -1994, - -1990, -1987, -1983, -1980, -1976, -1973, -1969, -1966, - -1962, -1958, -1955, -1951, -1947, -1944, -1940, -1936, - -1932, -1928, -1925, -1921, -1917, -1913, -1909, -1905, - -1901, -1897, -1893, -1889, -1885, -1881, -1877, -1873, - -1869, -1864, -1860, -1856, -1852, -1848, -1843, -1839, - -1835, -1830, -1826, -1822, -1817, -1813, -1809, -1804, - -1800, -1795, -1791, -1786, -1782, -1777, -1772, -1768, - -1763, -1758, -1754, -1749, -1744, -1740, -1735, -1730, - -1725, -1720, -1716, -1711, -1706, -1701, -1696, -1691, - -1686, -1681, -1676, -1671, -1666, -1661, -1656, -1651, - -1646, -1640, -1635, -1630, -1625, -1620, -1614, -1609, - -1604, -1599, -1593, -1588, -1582, -1577, -1572, -1566, - -1561, -1555, -1550, -1544, -1539, -1533, -1528, -1522, - -1516, -1511, -1505, -1500, -1494, -1488, -1482, -1477, - -1471, -1465, -1459, -1454, -1448, -1442, -1436, -1430, - -1424, -1418, -1412, -1406, -1400, -1394, -1388, -1382, - -1376, -1370, -1364, -1358, -1352, -1346, -1339, -1333, - -1327, -1321, -1315, -1308, -1302, -1296, -1289, -1283, - -1277, -1270, -1264, -1258, -1251, -1245, -1238, -1232, - -1225, -1219, -1212, -1206, -1199, -1193, -1186, -1179, - -1173, -1166, -1159, -1153, -1146, -1139, -1133, -1126, - -1119, -1112, -1105, -1099, -1092, -1085, -1078, -1071, - -1064, -1057, -1050, -1044, -1037, -1030, -1023, -1016, - -1009, -1001, -994, -987, -980, -973, -966, -959, - -952, -945, -937, -930, -923, -916, -908, -901, - -894, -887, -879, -872, -865, -857, -850, -842, - -835, -828, -820, -813, -805, -798, -790, -783, - -775, -768, -760, -753, -745, -738, -730, -722, - -715, -707, -699, -692, -684, -676, -669, -661, - -653, -645, -638, -630, -622, -614, -606, -599, - -591, -583, -575, -567, -559, -551, -543, -536, - -528, -520, -512, -504, -496, -488, -480, -472, - -464, -456, -447, -439, -431, -423, -415, -407, - -399, -391, -382, -374, -366, -358, -350, -342, - -333, -325, -317, -309, -300, -292, -284, -275, - -267, -259, -250, -242, -234, -225, -217, -209, - -200, -192, -183, -175, -167, -158, -150, -141, - -133, -124, -116, -107, -99, -90, -82, -73, - -65, -56, -48, -39, -30, -22, -13, -5, - 4, 12, 21, 30, 38, 47, 56, 64, - 73, 82, 90, 99, 108, 116, 125, 134, - 143, 151, 160, 169, 178, 186, 195, 204, - 213, 221, 230, 239, 248, 257, 265, 274, - 283, 292, 301, 310, 318, 327, 336, 345, - 354, 363, 372, 381, 389, 398, 407, 416, - 425, 434, 443, 452, 461, 470, 479, 488, - 496, 505, 514, 523, 532, 541, 550, 559, - 568, 577, 586, 595, 604, 613, 622, 631, - 640, 649, 658, 667, 676, 685, 694, 703, - 712, 721, 730, 739, 748, 757, 766, 775, - 784, 793, 802, 811, 820, 829, 838, 847, - 856, 865, 874, 883, 892, 901, 910, 920, - 929, 938, 947, 956, 965, 974, 983, 992, - 1001, 1010, 1019, 1028, 1037, 1046, 1055, 1064, - 1073, 1082, 1091, 1100, 1109, 1118, 1127, 1136, - 1145, 1154, 1163, 1172, 1181, 1190, 1199, 1208, - 1217, 1226, 1235, 1244, 1253, 1262, 1271, 1280, - 1289, 1298, 1307, 1316, 1324, 1333, 1342, 1351, - 1360, 1369, 1378, 1387, 1396, 1405, 1414, 1423, - 1431, 1440, 1449, 1458, 1467, 1476, 1485, 1493, - 1502, 1511, 1520, 1529, 1538, 1546, 1555, 1564, - 1573, 1582, 1590, 1599, 1608, 1617, 1625, 1634, - 1643, 1652, 1660, 1669, 1678, 1687, 1695, 1704, - 1713, 1721, 1730, 1739, 1747, 1756, 1765, 1773, - 1782, 1790, 1799, 1808, 1816, 1825, 1833, 1842, - 1850, 1859, 1867, 1876, 1884, 1893, 1901, 1910, - 1918, 1927, 1935, 1944, 1952, 1961, 1969, 1977, - 1986, 1994, 2002, 2011, 2019, 2027, 2036, 2044, - 2052, 2061, 2069, 2077, 2085, 2094, 2102, 2110, - 2118, 2127, 2135, 2143, 2151, 2159, 2167, 2175, - 2183, 2192, 2200, 2208, 2216, 2224, 2232, 2240, - 2248, 2256, 2264, 2272, 2280, 2288, 2296, 2303, - 2311, 2319, 2327, 2335, 2343, 2351, 2358, 2366, - 2374, 2382, 2389, 2397, 2405, 2412, 2420, 2428, - 2435, 2443, 2451, 2458, 2466, 2473, 2481, 2489, - 2496, 2504, 2511, 2518, 2526, 2533, 2541, 2548, - 2556, 2563, 2570, 2578, 2585, 2592, 2599, 2607, - 2614, 2621, 2628, 2636, 2643, 2650, 2657, 2664, - 2671, 2678, 2685, 2692, 2700, 2707, 2714, 2720, - 2727, 2734, 2741, 2748, 2755, 2762, 2769, 2776, - 2782, 2789, 2796, 2803, 2809, 2816, 2823, 2829, - 2836, 2843, 2849, 2856, 2862, 2869, 2875, 2882, - 2888, 2895, 2901, 2908, 2914, 2920, 2927, 2933, - 2939, 2945, 2952, 2958, 2964, 2970, 2977, 2983, - 2989, 2995, 3001, 3007, 3013, 3019, 3025, 3031, - 3037, 3043, 3049, 3055, 3060, 3066, 3072, 3078, - 3084, 3089, 3095, 3101, 3106, 3112, 3118, 3123, - 3129, 3134, 3140, 3145, 3151, 3156, 3162, 3167, - 3172, 3178, 3183, 3188, 3193, 3199, 3204, 3209, - 3214, 3219, 3224, 3230, 3235, 3240, 3245, 3250, - 3255, 3260, 3264, 3269, 3274, 3279, 3284, 3289, - 3293, 3298, 3303, 3307, 3312, 3317, 3321, 3326, - 3330, 3335, 3339, 3344, 3348, 3352, 3357, 3361, - 3365, 3370, 3374, 3378, 3382, 3387, 3391, 3395, - 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, - 3430, 3434, 3438, 3442, 3446, 3449, 3453, 3457, - 3460, 3464, 3467, 3471, 3474, 3478, 3481, 3485, - 3488, 3491, 3495, 3498, 3501, 3505, 3508, 3511, - 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, - 3538, 3541, 3544, 3547, 3549, 3552, 3555, 3557, - 3560, 3563, 3565, 3568, 3570, 3573, 3575, 3578, - 3580, 3583, 3585, 3587, 3589, 3592, 3594, 3596, - 3598, 3600, 3602, 3604, 3606, 3608, 3610, 3612, - 3614, 3616, 3618, 3620, 3621, 3623, 3625, 3626, - 3628, 3630, 3631, 3633, 3634, 3635, 3637, 3638, - 3640, 3641, 3642, 3643, 3645, 3646, 3647, 3648, - 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, - 3657, 3657, 3658, 3659, 3659, 3660, 3661, 3661, - 3662, 3662, 3663, 3663, 3664, 3664, 3664, 3665, - 3665, 3665, 3665, 3665, 3665, 3666, 3666, 3666, - 3666, 3666, 3665, 3665, 3665, 3665, 3665, 3664, - 3664, 3664, 3663, 3663, 3663, 3662, 3662, 3661, - 3660, 3660, 3659, 3658, 3658, 3657, 3656, 3655, - 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, - 3646, 3645, 3644, 3642, 3641, 3640, 3638, 3637, - 3635, 3634, 3632, 3631, 3629, 3627, 3626, 3624, - 3622, 3621, 3619, 3617, 3615, 3613, 3611, 3609, - 3607, 3605, 3603, 3601, 3598, 3596, 3594, 3592, - 3589, 3587, 3585, 3582, 3580, 3577, 3575, 3572, - 3569, 3567, 3564, 3561, 3558, 3556, 3553, 3550, - 3547, 3544, 3541, 3538, 3535, 3532, 3528, 3525, - 3522, 3519, 3515, 3512, 3509, 3505, 3502, 3498, - 3495, 3491, 3488, 3484, 3480, 3477, 3473, 3469, - 3465, 3461, 3458, 3454, 3450, 3446, 3442, 3437, - 3433, 3429, 3425, 3421, 3416, 3412, 3408, 3403, - 3399, 3395, 3390, 3385, 3381, 3376, 3372, 3367, - 3362, 3357, 3353, 3348, 3343, 3338, 3333, 3328, - 3323, 3318, 3313, 3308, 3303, 3297, 3292, 3287, - 3282, 3276, 3271, 3265, 3260, 3254, 3249, 3243, - 3238, 3232, 3226, 3221, 3215, 3209, 3203, 3197, - 3191, 3185, 3179, 3173, 3167, 3161, 3155, 3149, - 3143, 3136, 3130, 3124, 3117, 3111, 3105, 3098, - 3092, 3085, 3079, 3072, 3065, 3059, 3052, 3045, - 3038, 3031, 3025, 3018, 3011, 3004, 2997, 2990, - 2983, 2975, 2968, 2961, 2954, 2947, 2939, 2932, - 2925, 2917, 2910, 2902, 2895, 2887, 2879, 2872, - 2864, 2856, 2849, 2841, 2833, 2825, 2817, 2809, - 2801, 2793, 2785, 2777, 2769, 2761, 2753, 2745, - 2737, 2728, 2720, 2712, 2703, 2695, 2686, 2678, - 2669, 2661, 2652, 2644, 2635, 2626, 2617, 2609, - 2600, 2591, 2582, 2573, 2564, 2555, 2546, 2537, - 2528, 2519, 2510, 2501, 2491, 2482, 2473, 2464, - 2454, 2445, 2435, 2426, 2417, 2407, 2397, 2388, - 2378, 2369, 2359, 2349, 2339, 2330, 2320, 2310, - 2300, 2290, 2280, 2270, 2260, 2250, 2240, 2230, - 2220, 2209, 2199, 2189, 2179, 2168, 2158, 2148, - 2137, 2127, 2116, 2106, 2095, 2085, 2074, 2063, - 2053, 2042, 2031, 2021, 2010, 1999, 1988, 1977, - 1966, 1955, 1944, 1933, 1922, 1911, 1900, 1889, - 1878, 1867, 1855, 1844, 1833, 1821, 1810, 1799, - 1787, 1776, 1764, 1753, 1741, 1730, 1718, 1707, - 1695, 1683, 1671, 1660, 1648, 1636, 1624, 1612, - 1601, 1589, 1577, 1565, 1553, 1541, 1529, 1517, - 1504, 1492, 1480, 1468, 1456, 1443, 1431, 1419, - 1407, 1394, 1382, 1369, 1357, 1344, 1332, 1319, - 1307, 1294, 1282, 1269, 1256, 1244, 1231, 1218, - 1205, 1193, 1180, 1167, 1154, 1141, 1128, 1115, - 1102, 1089, 1076, 1063, 1050, 1037, 1024, 1011, - 998, 984, 971, 958, 945, 931, 918, 905, - 891, 878, 864, 851, 838, 824, 811, 797, - 783, 770, 756, 743, 729, 715, 702, 688, - 674, 660, 647, 633, 619, 605, 591, 577, - 563, 549, 535, 521, 507, 493, 479, 465, - 451, 437, 423, 409, 395, 380, 366, 352, - 338, 323, 309, 295, 280, 266, 252, 237, - 223, 209, 194, 180, 165, 151, 136, 122, - 107, 92, 78, 63, 49, 34, 19, 5, - -10, -25, -40, -54, -69, -84, -99, -114, - -128, -143, -158, -173, -188, -203, -218, -233, - -248, -263, -278, -293, -308, -323, -338, -353, - -368, -383, -398, -413, -428, -443, -459, -474, - -489, -504, -519, -535, -550, -565, -580, -596, - -611, -626, -642, -657, -672, -688, -703, -718, - -734, -749, -765, -780, -795, -811, -826, -842, - -857, -873, -888, -904, -919, -935, -950, -966, - -981, -997, -1013, -1028, -1044, -1059, -1075, -1091, - -1106, -1122, -1137, -1153, -1169, -1184, -1200, -1216, - -1231, -1247, -1263, -1278, -1294, -1310, -1326, -1341, - -1357, -1373, -1389, -1404, -1420, -1436, -1452, -1467, - -1483, -1499, -1515, -1531, -1546, -1562, -1578, -1594, - -1610, -1625, -1641, -1657, -1673, -1689, -1705, -1720, - -1736, -1752, -1768, -1784, -1800, -1815, -1831, -1847, - -1863, -1879, -1895, -1911, -1926, -1942, -1958, -1974, - -1990, -2006, -2022, -2037, -2053, -2069, -2085, -2101, - -2117, -2133, -2148, -2164, -2180, -2196, -2212, -2228, - -2244, -2259, -2275, -2291, -2307, -2323, -2339, -2354, - -2370, -2386, -2402, -2418, -2433, -2449, -2465, -2481, - -2497, -2512, -2528, -2544, -2560, -2576, -2591, -2607, - -2623, -2639, -2654, -2670, -2686, -2701, -2717, -2733, - -2749, -2764, -2780, -2796, -2811, -2827, -2843, -2858, - -2874, -2890, -2905, -2921, -2936, -2952, -2968, -2983, - -2999, -3014, -3030, -3045, -3061, -3076, -3092, -3107, - -3123, -3138, -3154, -3169, -3185, -3200, -3216, -3231, - -3246, -3262, -3277, -3293, -3308, -3323, -3339, -3354, - -3369, -3385, -3400, -3415, -3430, -3446, -3461, -3476, - -3491, -3506, -3521, -3537, -3552, -3567, -3582, -3597, - -3612, -3627, -3642, -3657, -3672, -3687, -3702, -3717, - -3732, -3747, -3762, -3777, -3792, -3807, -3821, -3836, - -3851, -3866, -3881, -3895, -3910, -3925, -3939, -3954, - -3969, -3983, -3998, -4012, -4027, -4042, -4056, -4071, - -4085, -4100, -4114, -4128, -4143, -4157, -4172, -4186, - -4200, -4215, -4229, -4243, -4257, -4271, -4286, -4300, - -4314, -4328, -4342, -4356, -4370, -4384, -4398, -4412, - -4426, -4440, -4454, -4468, -4482, -4495, -4509, -4523, - -4537, -4550, -4564, -4578, -4591, -4605, -4619, -4632, - -4646, -4659, -4673, -4686, -4699, -4713, -4726, -4740, - -4753, -4766, -4779, -4793, -4806, -4819, -4832, -4845, - -4858, -4871, -4884, -4897, -4910, -4923, -4936, -4949, - -4962, -4974, -4987, -5000, -5013, -5025, -5038, -5051, - -5063, -5076, -5088, -5101, -5113, -5125, -5138, -5150, - -5162, -5175, -5187, -5199, -5211, -5224, -5236, -5248, - -5260, -5272, -5284, -5296, -5308, -5319, -5331, -5343, - -5355, -5366, -5378, -5390, -5401, -5413, -5424, -5436, - -5447, -5459, -5470, -5482, -5493, -5504, -5515, -5527, - -5538, -5549, -5560, -5571, -5582, -5593, -5604, -5615, - -5626, -5636, -5647, -5658, -5668, -5679, -5690, -5700, - -5711, -5721, -5732, -5742, -5752, -5763, -5773, -5783, - -5793, -5804, -5814, -5824, -5834, -5844, -5854, -5863, - -5873, -5883, -5893, -5903, -5912, -5922, -5931, -5941, - -5950, -5960, -5969, -5979, -5988, -5997, -6006, -6016, - -6025, -6034, -6043, -6052, -6061, -6070, -6078, -6087, - -6096, -6105, -6113, -6122, -6131, -6139, -6148, -6156, - -6164, -6173, -6181, -6189, -6197, -6205, -6214, -6222, - -6230, -6238, -6245, -6253, -6261, -6269, -6276, -6284, - -6292, -6299, -6307, -6314, -6321, -6329, -6336, -6343, - -6350, -6358, -6365, -6372, -6379, -6386, -6392, -6399, - -6406, -6413, -6419, -6426, -6433, -6439, -6445, -6452, - -6458, -6464, -6471, -6477, -6483, -6489, -6495, -6501, - -6507, -6513, -6519, -6524, -6530, -6536, -6541, -6547, - -6552, -6558, -6563, -6568, -6573, -6579, -6584, -6589, - -6594, -6599, -6604, -6608, -6613, -6618, -6623, -6627, - -6632, -6636, -6641, -6645, -6649, -6654, -6658, -6662, - -6666, -6670, -6674, -6678, -6682, -6685, -6689, -6693, - -6696, -6700, -6703, -6707, -6710, -6714, -6717, -6720, - -6723, -6726, -6729, -6732, -6735, -6738, -6741, -6743, - -6746, -6748, -6751, -6753, -6756, -6758, -6760, -6763, - -6765, -6767, -6769, -6771, -6773, -6774, -6776, -6778, - -6779, -6781, -6783, -6784, -6785, -6787, -6788, -6789, - -6790, -6791, -6792, -6793, -6794, -6795, -6795, -6796, - -6797, -6797, -6798, -6798, -6798, -6799, -6799, -6799, - -6799, -6799, -6799, -6799, -6799, -6798, -6798, -6798, - -6797, -6797, -6796, -6795, -6795, -6794, -6793, -6792, - -6791, -6790, -6789, -6788, -6786, -6785, -6784, -6782, - -6781, -6779, -6777, -6776, -6774, -6772, -6770, -6768, - -6766, -6764, -6761, -6759, -6757, -6754, -6752, -6749, - -6747, -6744, -6741, -6738, -6735, -6732, -6729, -6726, - -6723, -6719, -6716, -6713, -6709, -6706, -6702, -6698, - -6694, -6691, -6687, -6683, -6679, -6674, -6670, -6666, - -6662, -6657, -6653, -6648, -6643, -6639, -6634, -6629, - -6624, -6619, -6614, -6609, -6604, -6598, -6593, -6588, - -6582, -6576, -6571, -6565, -6559, -6553, -6547, -6541, - -6535, -6529, -6523, -6517, -6510, -6504, -6497, -6491, - -6484, -6477, -6470, -6463, -6456, -6449, -6442, -6435, - -6428, -6420, -6413, -6405, -6398, -6390, -6382, -6374, - -6367, -6359, -6351, -6343, -6334, -6326, -6318, -6309, - -6301, -6292, -6284, -6275, -6266, -6257, -6248, -6239, - -6230, -6221, -6212, -6202, -6193, -6184, -6174, -6164, - -6155, -6145, -6135, -6125, -6115, -6105, -6095, -6085, - -6074, -6064, -6054, -6043, -6032, -6022, -6011, -6000, - -5989, -5978, -5967, -5956, -5945, -5933, -5922, -5911, - -5899, -5887, -5876, -5864, -5852, -5840, -5828, -5816, - -5804, -5792, -5779, -5767, -5755, -5742, -5729, -5717, - -5704, -5691, -5678, -5665, -5652, -5639, -5626, -5612, - -5599, -5585, -5572, -5558, -5545, -5531, -5517, -5503, - -5489, -5475, -5461, -5447, -5432, -5418, -5403, -5389, - -5374, -5359, -5345, -5330, -5315, -5300, -5285, -5269, - -5254, -5239, -5223, -5208, -5192, -5177, -5161, -5145, - -5129, -5113, -5097, -5081, -5065, -5049, -5032, -5016, - -4999, -4983, -4966, -4950, -4933, -4916, -4899, -4882, - -4865, -4847, -4830, -4813, -4795, -4778, -4760, -4743, - -4725, -4707, -4689, -4671, -4653, -4635, -4617, -4598, - -4580, -4562, -4543, -4524, -4506, -4487, -4468, -4449, - -4430, -4411, -4392, -4373, -4354, -4334, -4315, -4295, - -4276, -4256, -4236, -4216, -4196, -4176, -4156, -4136, - -4116, -4096, -4075, -4055, -4034, -4014, -3993, -3972, - -3951, -3930, -3909, -3888, -3867, -3846, -3825, -3803, - -3782, -3760, -3739, -3717, -3695, -3673, -3651, -3629, - -3607, -3585, -3563, -3541, -3518, -3496, -3473, -3451, - -3428, -3405, -3383, -3360, -3337, -3314, -3290, -3267, - -3244, -3221, -3197, -3174, -3150, -3126, -3103, -3079, - -3055, -3031, -3007, -2983, -2959, -2934, -2910, -2886, - -2861, -2837, -2812, -2787, -2763, -2738, -2713, -2688, - -2663, -2638, -2612, -2587, -2562, -2536, -2511, -2485, - -2459, -2434, -2408, -2382, -2356, -2330, -2304, -2278, - -2251, -2225, -2199, -2172, -2146, -2119, -2092, -2066, - -2039, -2012, -1985, -1958, -1931, -1904, -1876, -1849, - -1822, -1794, -1767, -1739, -1711, -1683, -1656, -1628, - -1600, -1572, -1544, -1515, -1487, -1459, -1430, -1402, - -1373, -1345, -1316, -1287, -1258, -1230, -1201, -1172, - -1142, -1113, -1084, -1055, -1025, -996, -966, -937, - -907, -877, -848, -818, -788, -758, -728, -698, - -667, -637, -607, -576, -546, -515, -485, -454, - -423, -392, -362, -331, -300, -268, -237, -206, - -175, -143, -112, -81, -49, -17, 14, 46, - 78, 110, 142, 174, 206, 238, 270, 302, - 335, 367, 399, 432, 465, 497, 530, 563, - 596, 628, 661, 694, 728, 761, 794, 827, - 861, 894, 927, 961, 995, 1028, 1062, 1096, - 1130, 1163, 1197, 1231, 1266, 1300, 1334, 1368, - 1402, 1437, 1471, 1506, 1540, 1575, 1610, 1644, - 1679, 1714, 1749, 1784, 1819, 1854, 1889, 1925, - 1960, 1995, 2031, 2066, 2101, 2137, 2173, 2208, - 2244, 2280, 2316, 2352, 2388, 2424, 2460, 2496, - 2532, 2568, 2604, 2641, 2677, 2714, 2750, 2787, - 2823, 2860, 2897, 2934, 2970, 3007, 3044, 3081, - 3118, 3155, 3193, 3230, 3267, 3304, 3342, 3379, - 3417, 3454, 3492, 3529, 3567, 3605, 3643, 3681, - 3718, 3756, 3794, 3832, 3870, 3909, 3947, 3985, - 4023, 4062, 4100, 4138, 4177, 4216, 4254, 4293, - 4331, 4370, 4409, 4448, 4487, 4526, 4564, 4603, - 4643, 4682, 4721, 4760, 4799, 4839, 4878, 4917, - 4957, 4996, 5036, 5075, 5115, 5154, 5194, 5234, - 5274, 5313, 5353, 5393, 5433, 5473, 5513, 5553, - 5593, 5634, 5674, 5714, 5754, 5795, 5835, 5875, - 5916, 5956, 5997, 6037, 6078, 6119, 6159, 6200, - 6241, 6282, 6323, 6364, 6404, 6445, 6486, 6527, - 6569, 6610, 6651, 6692, 6733, 6774, 6816, 6857, - 6899, 6940, 6981, 7023, 7064, 7106, 7148, 7189, - 7231, 7272, 7314, 7356, 7398, 7440, 7481, 7523, - 7565, 7607, 7649, 7691, 7733, 7775, 7818, 7860, - 7902, 7944, 7986, 8029, 8071, 8113, 8156, 8198, - 8240, 8283, 8325, 8368, 8410, 8453, 8496, 8538, - 8581, 8624, 8666, 8709, 8752, 8795, 8837, 8880, - 8923, 8966, 9009, 9052, 9095, 9138, 9181, 9224, - 9267, 9310, 9353, 9396, 9440, 9483, 9526, 9569, - 9613, 9656, 9699, 9743, 9786, 9829, 9873, 9916, - 9960, 10003, 10046, 10090, 10133, 10177, 10221, 10264, - 10308, 10351, 10395, 10439, 10482, 10526, 10570, 10614, - 10657, 10701, 10745, 10789, 10832, 10876, 10920, 10964, - 11008, 11052, 11096, 11140, 11184, 11228, 11272, 11316, - 11360, 11404, 11448, 11492, 11536, 11580, 11624, 11668, - 11712, 11756, 11800, 11844, 11889, 11933, 11977, 12021, - 12065, 12110, 12154, 12198, 12242, 12286, 12331, 12375, - 12419, 12464, 12508, 12552, 12596, 12641, 12685, 12729, - 12774, 12818, 12862, 12907, 12951, 12995, 13040, 13084, - 13129, 13173, 13217, 13262, 13306, 13351, 13395, 13439, - 13484, 13528, 13573, 13617, 13661, 13706, 13750, 13795, - 13839, 13883, 13928, 13972, 14017, 14061, 14106, 14150, - 14194, 14239, 14283, 14328, 14372, 14417, 14461, 14505, - 14550, 14594, 14639, 14683, 14727, 14772, 14816, 14861, - 14905, 14949, 14994, 15038, 15082, 15127, 15171, 15215, - 15260, 15304, 15348, 15393, 15437, 15481, 15526, 15570, - 15614, 15658, 15703, 15747, 15791, 15835, 15880, 15924, - 15968, 16012, 16056, 16100, 16145, 16189, 16233, 16277, - 16321, 16365, 16409, 16453, 16497, 16541, 16585, 16629, - 16673, 16717, 16761, 16805, 16849, 16893, 16937, 16981, - 17025, 17069, 17113, 17156, 17200, 17244, 17288, 17332, - 17375, 17419, 17463, 17506, 17550, 17594, 17637, 17681, - 17725, 17768, 17812, 17855, 17899, 17942, 17986, 18029, - 18072, 18116, 18159, 18203, 18246, 18289, 18332, 18376, - 18419, 18462, 18505, 18549, 18592, 18635, 18678, 18721, - 18764, 18807, 18850, 18893, 18936, 18979, 19022, 19064, - 19107, 19150, 19193, 19236, 19278, 19321, 19364, 19406, - 19449, 19491, 19534, 19576, 19619, 19661, 19704, 19746, - 19788, 19831, 19873, 19915, 19957, 20000, 20042, 20084, - 20126, 20168, 20210, 20252, 20294, 20336, 20378, 20420, - 20461, 20503, 20545, 20587, 20628, 20670, 20712, 20753, - 20795, 20836, 20878, 20919, 20960, 21002, 21043, 21084, - 21125, 21167, 21208, 21249, 21290, 21331, 21372, 21413, - 21454, 21495, 21535, 21576, 21617, 21658, 21698, 21739, - 21779, 21820, 21860, 21901, 21941, 21982, 22022, 22062, - 22102, 22142, 22183, 22223, 22263, 22303, 22343, 22383, - 22422, 22462, 22502, 22542, 22581, 22621, 22660, 22700, - 22739, 22779, 22818, 22858, 22897, 22936, 22975, 23014, - 23053, 23092, 23131, 23170, 23209, 23248, 23287, 23326, - 23364, 23403, 23441, 23480, 23518, 23557, 23595, 23633, - 23672, 23710, 23748, 23786, 23824, 23862, 23900, 23938, - 23976, 24013, 24051, 24089, 24126, 24164, 24201, 24239, - 24276, 24313, 24351, 24388, 24425, 24462, 24499, 24536, - 24573, 24610, 24647, 24683, 24720, 24756, 24793, 24830, - 24866, 24902, 24939, 24975, 25011, 25047, 25083, 25119, - 25155, 25191, 25227, 25262, 25298, 25334, 25369, 25405, - 25440, 25476, 25511, 25546, 25581, 25616, 25651, 25686, - 25721, 25756, 25791, 25826, 25860, 25895, 25929, 25964, - 25998, 26033, 26067, 26101, 26135, 26169, 26203, 26237, - 26271, 26305, 26338, 26372, 26405, 26439, 26472, 26506, - 26539, 26572, 26605, 26638, 26671, 26704, 26737, 26770, - 26803, 26835, 26868, 26900, 26933, 26965, 26997, 27030, - 27062, 27094, 27126, 27158, 27189, 27221, 27253, 27285, - 27316, 27348, 27379, 27410, 27441, 27473, 27504, 27535, - 27566, 27597, 27627, 27658, 27689, 27719, 27750, 27780, - 27810, 27841, 27871, 27901, 27931, 27961, 27991, 28020, - 28050, 28080, 28109, 28139, 28168, 28197, 28227, 28256, - 28285, 28314, 28343, 28371, 28400, 28429, 28457, 28486, - 28514, 28543, 28571, 28599, 28627, 28655, 28683, 28711, - 28738, 28766, 28794, 28821, 28849, 28876, 28903, 28930, - 28957, 28984, 29011, 29038, 29065, 29092, 29118, 29145, - 29171, 29197, 29223, 29250, 29276, 29302, 29327, 29353, - 29379, 29405, 29430, 29456, 29481, 29506, 29531, 29556, - 29581, 29606, 29631, 29656, 29681, 29705, 29730, 29754, - 29778, 29802, 29827, 29851, 29874, 29898, 29922, 29946, - 29969, 29993, 30016, 30039, 30063, 30086, 30109, 30132, - 30155, 30177, 30200, 30223, 30245, 30267, 30290, 30312, - 30334, 30356, 30378, 30400, 30422, 30443, 30465, 30486, - 30508, 30529, 30550, 30571, 30592, 30613, 30634, 30654, - 30675, 30696, 30716, 30736, 30756, 30777, 30797, 30817, - 30836, 30856, 30876, 30895, 30915, 30934, 30953, 30973, - 30992, 31011, 31030, 31048, 31067, 31086, 31104, 31123, - 31141, 31159, 31177, 31195, 31213, 31231, 31249, 31266, - 31284, 31301, 31318, 31336, 31353, 31370, 31387, 31404, - 31420, 31437, 31453, 31470, 31486, 31502, 31519, 31535, - 31551, 31566, 31582, 31598, 31613, 31629, 31644, 31659, - 31674, 31689, 31704, 31719, 31734, 31749, 31763, 31777, - 31792, 31806, 31820, 31834, 31848, 31862, 31876, 31889, - 31903, 31916, 31929, 31943, 31956, 31969, 31982, 31994, - 32007, 32020, 32032, 32045, 32057, 32069, 32081, 32093, - 32105, 32117, 32128, 32140, 32151, 32163, 32174, 32185, - 32196, 32207, 32218, 32229, 32239, 32250, 32260, 32270, - 32281, 32291, 32301, 32311, 32320, 32330, 32340, 32349, - 32358, 32368, 32377, 32386, 32395, 32404, 32412, 32421, - 32430, 32438, 32446, 32455, 32463, 32471, 32479, 32486, - 32494, 32502, 32509, 32516, 32524, 32531, 32538, 32545, - 32552, 32558, 32565, 32572, 32578, 32584, 32590, 32597, - 32603, 32608, 32614, 32620, 32625, 32631, 32636, 32642, - 32647, 32652, 32657, 32661, 32666, 32671, 32675, 32680, - 32684, 32688, 32692, 32696, 32700, 32704, 32707, 32711, - 32714, 32718, 32721, 32724, 32727, 32730, 32733, 32735, - 32738, 32740, 32743, 32745, 32747, 32749, 32751, 32753, - 32755, 32756, 32758, 32759, 32760, 32762, 32763, 32764, - 32764, 32765, 32766, 32766, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32766, 32766, 32765, 32764, - 32764, 32763, 32762, 32760, 32759, 32758, 32756, 32755, - 32753, 32751, 32749, 32747, 32745, 32743, 32740, 32738, - 32735, 32733, 32730, 32727, 32724, 32721, 32718, 32714, - 32711, 32707, 32704, 32700, 32696, 32692, 32688, 32684, - 32680, 32675, 32671, 32666, 32661, 32657, 32652, 32647, - 32642, 32636, 32631, 32625, 32620, 32614, 32608, 32603, - 32597, 32590, 32584, 32578, 32572, 32565, 32558, 32552, - 32545, 32538, 32531, 32524, 32516, 32509, 32502, 32494, - 32486, 32479, 32471, 32463, 32455, 32446, 32438, 32430, - 32421, 32412, 32404, 32395, 32386, 32377, 32368, 32358, - 32349, 32340, 32330, 32320, 32311, 32301, 32291, 32281, - 32270, 32260, 32250, 32239, 32229, 32218, 32207, 32196, - 32185, 32174, 32163, 32151, 32140, 32128, 32117, 32105, - 32093, 32081, 32069, 32057, 32045, 32032, 32020, 32007, - 31994, 31982, 31969, 31956, 31943, 31929, 31916, 31903, - 31889, 31876, 31862, 31848, 31834, 31820, 31806, 31792, - 31777, 31763, 31749, 31734, 31719, 31704, 31689, 31674, - 31659, 31644, 31629, 31613, 31598, 31582, 31566, 31551, - 31535, 31519, 31502, 31486, 31470, 31453, 31437, 31420, - 31404, 31387, 31370, 31353, 31336, 31318, 31301, 31284, - 31266, 31249, 31231, 31213, 31195, 31177, 31159, 31141, - 31123, 31104, 31086, 31067, 31048, 31030, 31011, 30992, - 30973, 30953, 30934, 30915, 30895, 30876, 30856, 30836, - 30817, 30797, 30777, 30756, 30736, 30716, 30696, 30675, - 30654, 30634, 30613, 30592, 30571, 30550, 30529, 30508, - 30486, 30465, 30443, 30422, 30400, 30378, 30356, 30334, - 30312, 30290, 30267, 30245, 30223, 30200, 30177, 30155, - 30132, 30109, 30086, 30063, 30039, 30016, 29993, 29969, - 29946, 29922, 29898, 29874, 29851, 29827, 29802, 29778, - 29754, 29730, 29705, 29681, 29656, 29631, 29606, 29581, - 29556, 29531, 29506, 29481, 29456, 29430, 29405, 29379, - 29353, 29327, 29302, 29276, 29250, 29223, 29197, 29171, - 29145, 29118, 29092, 29065, 29038, 29011, 28984, 28957, - 28930, 28903, 28876, 28849, 28821, 28794, 28766, 28738, - 28711, 28683, 28655, 28627, 28599, 28571, 28543, 28514, - 28486, 28457, 28429, 28400, 28371, 28343, 28314, 28285, - 28256, 28227, 28197, 28168, 28139, 28109, 28080, 28050, - 28020, 27991, 27961, 27931, 27901, 27871, 27841, 27810, - 27780, 27750, 27719, 27689, 27658, 27627, 27597, 27566, - 27535, 27504, 27473, 27441, 27410, 27379, 27348, 27316, - 27285, 27253, 27221, 27189, 27158, 27126, 27094, 27062, - 27030, 26997, 26965, 26933, 26900, 26868, 26835, 26803, - 26770, 26737, 26704, 26671, 26638, 26605, 26572, 26539, - 26506, 26472, 26439, 26405, 26372, 26338, 26305, 26271, - 26237, 26203, 26169, 26135, 26101, 26067, 26033, 25998, - 25964, 25929, 25895, 25860, 25826, 25791, 25756, 25721, - 25686, 25651, 25616, 25581, 25546, 25511, 25476, 25440, - 25405, 25369, 25334, 25298, 25262, 25227, 25191, 25155, - 25119, 25083, 25047, 25011, 24975, 24939, 24902, 24866, - 24830, 24793, 24756, 24720, 24683, 24647, 24610, 24573, - 24536, 24499, 24462, 24425, 24388, 24351, 24313, 24276, - 24239, 24201, 24164, 24126, 24089, 24051, 24013, 23976, - 23938, 23900, 23862, 23824, 23786, 23748, 23710, 23672, - 23633, 23595, 23557, 23518, 23480, 23441, 23403, 23364, - 23326, 23287, 23248, 23209, 23170, 23131, 23092, 23053, - 23014, 22975, 22936, 22897, 22858, 22818, 22779, 22739, - 22700, 22660, 22621, 22581, 22542, 22502, 22462, 22422, - 22383, 22343, 22303, 22263, 22223, 22183, 22142, 22102, - 22062, 22022, 21982, 21941, 21901, 21860, 21820, 21779, - 21739, 21698, 21658, 21617, 21576, 21535, 21495, 21454, - 21413, 21372, 21331, 21290, 21249, 21208, 21167, 21125, - 21084, 21043, 21002, 20960, 20919, 20878, 20836, 20795, - 20753, 20712, 20670, 20628, 20587, 20545, 20503, 20461, - 20420, 20378, 20336, 20294, 20252, 20210, 20168, 20126, - 20084, 20042, 20000, 19957, 19915, 19873, 19831, 19788, - 19746, 19704, 19661, 19619, 19576, 19534, 19491, 19449, - 19406, 19364, 19321, 19278, 19236, 19193, 19150, 19107, - 19064, 19022, 18979, 18936, 18893, 18850, 18807, 18764, - 18721, 18678, 18635, 18592, 18549, 18505, 18462, 18419, - 18376, 18332, 18289, 18246, 18203, 18159, 18116, 18072, - 18029, 17986, 17942, 17899, 17855, 17812, 17768, 17725, - 17681, 17637, 17594, 17550, 17506, 17463, 17419, 17375, - 17332, 17288, 17244, 17200, 17156, 17113, 17069, 17025, - 16981, 16937, 16893, 16849, 16805, 16761, 16717, 16673, - 16629, 16585, 16541, 16497, 16453, 16409, 16365, 16321, - 16277, 16233, 16189, 16145, 16100, 16056, 16012, 15968, - 15924, 15880, 15835, 15791, 15747, 15703, 15658, 15614, - 15570, 15526, 15481, 15437, 15393, 15348, 15304, 15260, - 15215, 15171, 15127, 15082, 15038, 14994, 14949, 14905, - 14861, 14816, 14772, 14727, 14683, 14639, 14594, 14550, - 14505, 14461, 14417, 14372, 14328, 14283, 14239, 14194, - 14150, 14106, 14061, 14017, 13972, 13928, 13883, 13839, - 13795, 13750, 13706, 13661, 13617, 13573, 13528, 13484, - 13439, 13395, 13351, 13306, 13262, 13217, 13173, 13129, - 13084, 13040, 12995, 12951, 12907, 12862, 12818, 12774, - 12729, 12685, 12641, 12596, 12552, 12508, 12464, 12419, - 12375, 12331, 12286, 12242, 12198, 12154, 12110, 12065, - 12021, 11977, 11933, 11889, 11844, 11800, 11756, 11712, - 11668, 11624, 11580, 11536, 11492, 11448, 11404, 11360, - 11316, 11272, 11228, 11184, 11140, 11096, 11052, 11008, - 10964, 10920, 10876, 10832, 10789, 10745, 10701, 10657, - 10614, 10570, 10526, 10482, 10439, 10395, 10351, 10308, - 10264, 10221, 10177, 10133, 10090, 10046, 10003, 9960, - 9916, 9873, 9829, 9786, 9743, 9699, 9656, 9613, - 9569, 9526, 9483, 9440, 9396, 9353, 9310, 9267, - 9224, 9181, 9138, 9095, 9052, 9009, 8966, 8923, - 8880, 8837, 8795, 8752, 8709, 8666, 8624, 8581, - 8538, 8496, 8453, 8410, 8368, 8325, 8283, 8240, - 8198, 8156, 8113, 8071, 8029, 7986, 7944, 7902, - 7860, 7818, 7775, 7733, 7691, 7649, 7607, 7565, - 7523, 7481, 7440, 7398, 7356, 7314, 7272, 7231, - 7189, 7148, 7106, 7064, 7023, 6981, 6940, 6899, - 6857, 6816, 6774, 6733, 6692, 6651, 6610, 6569, - 6527, 6486, 6445, 6404, 6364, 6323, 6282, 6241, - 6200, 6159, 6119, 6078, 6037, 5997, 5956, 5916, - 5875, 5835, 5795, 5754, 5714, 5674, 5634, 5593, - 5553, 5513, 5473, 5433, 5393, 5353, 5313, 5274, - 5234, 5194, 5154, 5115, 5075, 5036, 4996, 4957, - 4917, 4878, 4839, 4799, 4760, 4721, 4682, 4643, - 4603, 4564, 4526, 4487, 4448, 4409, 4370, 4331, - 4293, 4254, 4216, 4177, 4138, 4100, 4062, 4023, - 3985, 3947, 3909, 3870, 3832, 3794, 3756, 3718, - 3681, 3643, 3605, 3567, 3529, 3492, 3454, 3417, - 3379, 3342, 3304, 3267, 3230, 3193, 3155, 3118, - 3081, 3044, 3007, 2970, 2934, 2897, 2860, 2823, - 2787, 2750, 2714, 2677, 2641, 2604, 2568, 2532, - 2496, 2460, 2424, 2388, 2352, 2316, 2280, 2244, - 2208, 2173, 2137, 2101, 2066, 2031, 1995, 1960, - 1925, 1889, 1854, 1819, 1784, 1749, 1714, 1679, - 1644, 1610, 1575, 1540, 1506, 1471, 1437, 1402, - 1368, 1334, 1300, 1266, 1231, 1197, 1163, 1130, - 1096, 1062, 1028, 995, 961, 927, 894, 861, - 827, 794, 761, 728, 694, 661, 628, 596, - 563, 530, 497, 465, 432, 399, 367, 335, - 302, 270, 238, 206, 174, 142, 110, 78, - 46, 14, -17, -49, -81, -112, -143, -175, - -206, -237, -268, -300, -331, -362, -392, -423, - -454, -485, -515, -546, -576, -607, -637, -667, - -698, -728, -758, -788, -818, -848, -877, -907, - -937, -966, -996, -1025, -1055, -1084, -1113, -1142, - -1172, -1201, -1230, -1258, -1287, -1316, -1345, -1373, - -1402, -1430, -1459, -1487, -1515, -1544, -1572, -1600, - -1628, -1656, -1683, -1711, -1739, -1767, -1794, -1822, - -1849, -1876, -1904, -1931, -1958, -1985, -2012, -2039, - -2066, -2092, -2119, -2146, -2172, -2199, -2225, -2251, - -2278, -2304, -2330, -2356, -2382, -2408, -2434, -2459, - -2485, -2511, -2536, -2562, -2587, -2612, -2638, -2663, - -2688, -2713, -2738, -2763, -2787, -2812, -2837, -2861, - -2886, -2910, -2934, -2959, -2983, -3007, -3031, -3055, - -3079, -3103, -3126, -3150, -3174, -3197, -3221, -3244, - -3267, -3290, -3314, -3337, -3360, -3383, -3405, -3428, - -3451, -3473, -3496, -3518, -3541, -3563, -3585, -3607, - -3629, -3651, -3673, -3695, -3717, -3739, -3760, -3782, - -3803, -3825, -3846, -3867, -3888, -3909, -3930, -3951, - -3972, -3993, -4014, -4034, -4055, -4075, -4096, -4116, - -4136, -4156, -4176, -4196, -4216, -4236, -4256, -4276, - -4295, -4315, -4334, -4354, -4373, -4392, -4411, -4430, - -4449, -4468, -4487, -4506, -4524, -4543, -4562, -4580, - -4598, -4617, -4635, -4653, -4671, -4689, -4707, -4725, - -4743, -4760, -4778, -4795, -4813, -4830, -4847, -4865, - -4882, -4899, -4916, -4933, -4950, -4966, -4983, -4999, - -5016, -5032, -5049, -5065, -5081, -5097, -5113, -5129, - -5145, -5161, -5177, -5192, -5208, -5223, -5239, -5254, - -5269, -5285, -5300, -5315, -5330, -5345, -5359, -5374, - -5389, -5403, -5418, -5432, -5447, -5461, -5475, -5489, - -5503, -5517, -5531, -5545, -5558, -5572, -5585, -5599, - -5612, -5626, -5639, -5652, -5665, -5678, -5691, -5704, - -5717, -5729, -5742, -5755, -5767, -5779, -5792, -5804, - -5816, -5828, -5840, -5852, -5864, -5876, -5887, -5899, - -5911, -5922, -5933, -5945, -5956, -5967, -5978, -5989, - -6000, -6011, -6022, -6032, -6043, -6054, -6064, -6074, - -6085, -6095, -6105, -6115, -6125, -6135, -6145, -6155, - -6164, -6174, -6184, -6193, -6202, -6212, -6221, -6230, - -6239, -6248, -6257, -6266, -6275, -6284, -6292, -6301, - -6309, -6318, -6326, -6334, -6343, -6351, -6359, -6367, - -6374, -6382, -6390, -6398, -6405, -6413, -6420, -6428, - -6435, -6442, -6449, -6456, -6463, -6470, -6477, -6484, - -6491, -6497, -6504, -6510, -6517, -6523, -6529, -6535, - -6541, -6547, -6553, -6559, -6565, -6571, -6576, -6582, - -6588, -6593, -6598, -6604, -6609, -6614, -6619, -6624, - -6629, -6634, -6639, -6643, -6648, -6653, -6657, -6662, - -6666, -6670, -6674, -6679, -6683, -6687, -6691, -6694, - -6698, -6702, -6706, -6709, -6713, -6716, -6719, -6723, - -6726, -6729, -6732, -6735, -6738, -6741, -6744, -6747, - -6749, -6752, -6754, -6757, -6759, -6761, -6764, -6766, - -6768, -6770, -6772, -6774, -6776, -6777, -6779, -6781, - -6782, -6784, -6785, -6786, -6788, -6789, -6790, -6791, - -6792, -6793, -6794, -6795, -6795, -6796, -6797, -6797, - -6798, -6798, -6798, -6799, -6799, -6799, -6799, -6799, - -6799, -6799, -6799, -6798, -6798, -6798, -6797, -6797, - -6796, -6795, -6795, -6794, -6793, -6792, -6791, -6790, - -6789, -6788, -6787, -6785, -6784, -6783, -6781, -6779, - -6778, -6776, -6774, -6773, -6771, -6769, -6767, -6765, - -6763, -6760, -6758, -6756, -6753, -6751, -6748, -6746, - -6743, -6741, -6738, -6735, -6732, -6729, -6726, -6723, - -6720, -6717, -6714, -6710, -6707, -6703, -6700, -6696, - -6693, -6689, -6685, -6682, -6678, -6674, -6670, -6666, - -6662, -6658, -6654, -6649, -6645, -6641, -6636, -6632, - -6627, -6623, -6618, -6613, -6608, -6604, -6599, -6594, - -6589, -6584, -6579, -6573, -6568, -6563, -6558, -6552, - -6547, -6541, -6536, -6530, -6524, -6519, -6513, -6507, - -6501, -6495, -6489, -6483, -6477, -6471, -6464, -6458, - -6452, -6445, -6439, -6433, -6426, -6419, -6413, -6406, - -6399, -6392, -6386, -6379, -6372, -6365, -6358, -6350, - -6343, -6336, -6329, -6321, -6314, -6307, -6299, -6292, - -6284, -6276, -6269, -6261, -6253, -6245, -6238, -6230, - -6222, -6214, -6205, -6197, -6189, -6181, -6173, -6164, - -6156, -6148, -6139, -6131, -6122, -6113, -6105, -6096, - -6087, -6078, -6070, -6061, -6052, -6043, -6034, -6025, - -6016, -6006, -5997, -5988, -5979, -5969, -5960, -5950, - -5941, -5931, -5922, -5912, -5903, -5893, -5883, -5873, - -5863, -5854, -5844, -5834, -5824, -5814, -5804, -5793, - -5783, -5773, -5763, -5752, -5742, -5732, -5721, -5711, - -5700, -5690, -5679, -5668, -5658, -5647, -5636, -5626, - -5615, -5604, -5593, -5582, -5571, -5560, -5549, -5538, - -5527, -5515, -5504, -5493, -5482, -5470, -5459, -5447, - -5436, -5424, -5413, -5401, -5390, -5378, -5366, -5355, - -5343, -5331, -5319, -5308, -5296, -5284, -5272, -5260, - -5248, -5236, -5224, -5211, -5199, -5187, -5175, -5162, - -5150, -5138, -5125, -5113, -5101, -5088, -5076, -5063, - -5051, -5038, -5025, -5013, -5000, -4987, -4974, -4962, - -4949, -4936, -4923, -4910, -4897, -4884, -4871, -4858, - -4845, -4832, -4819, -4806, -4793, -4779, -4766, -4753, - -4740, -4726, -4713, -4699, -4686, -4673, -4659, -4646, - -4632, -4619, -4605, -4591, -4578, -4564, -4550, -4537, - -4523, -4509, -4495, -4482, -4468, -4454, -4440, -4426, - -4412, -4398, -4384, -4370, -4356, -4342, -4328, -4314, - -4300, -4286, -4271, -4257, -4243, -4229, -4215, -4200, - -4186, -4172, -4157, -4143, -4128, -4114, -4100, -4085, - -4071, -4056, -4042, -4027, -4012, -3998, -3983, -3969, - -3954, -3939, -3925, -3910, -3895, -3881, -3866, -3851, - -3836, -3821, -3807, -3792, -3777, -3762, -3747, -3732, - -3717, -3702, -3687, -3672, -3657, -3642, -3627, -3612, - -3597, -3582, -3567, -3552, -3537, -3521, -3506, -3491, - -3476, -3461, -3446, -3430, -3415, -3400, -3385, -3369, - -3354, -3339, -3323, -3308, -3293, -3277, -3262, -3246, - -3231, -3216, -3200, -3185, -3169, -3154, -3138, -3123, - -3107, -3092, -3076, -3061, -3045, -3030, -3014, -2999, - -2983, -2968, -2952, -2936, -2921, -2905, -2890, -2874, - -2858, -2843, -2827, -2811, -2796, -2780, -2764, -2749, - -2733, -2717, -2701, -2686, -2670, -2654, -2639, -2623, - -2607, -2591, -2576, -2560, -2544, -2528, -2512, -2497, - -2481, -2465, -2449, -2433, -2418, -2402, -2386, -2370, - -2354, -2339, -2323, -2307, -2291, -2275, -2259, -2244, - -2228, -2212, -2196, -2180, -2164, -2148, -2133, -2117, - -2101, -2085, -2069, -2053, -2037, -2022, -2006, -1990, - -1974, -1958, -1942, -1926, -1911, -1895, -1879, -1863, - -1847, -1831, -1815, -1800, -1784, -1768, -1752, -1736, - -1720, -1705, -1689, -1673, -1657, -1641, -1625, -1610, - -1594, -1578, -1562, -1546, -1531, -1515, -1499, -1483, - -1467, -1452, -1436, -1420, -1404, -1389, -1373, -1357, - -1341, -1326, -1310, -1294, -1278, -1263, -1247, -1231, - -1216, -1200, -1184, -1169, -1153, -1137, -1122, -1106, - -1091, -1075, -1059, -1044, -1028, -1013, -997, -981, - -966, -950, -935, -919, -904, -888, -873, -857, - -842, -826, -811, -795, -780, -765, -749, -734, - -718, -703, -688, -672, -657, -642, -626, -611, - -596, -580, -565, -550, -535, -519, -504, -489, - -474, -459, -443, -428, -413, -398, -383, -368, - -353, -338, -323, -308, -293, -278, -263, -248, - -233, -218, -203, -188, -173, -158, -143, -128, - -114, -99, -84, -69, -54, -40, -25, -10, - 5, 19, 34, 49, 63, 78, 92, 107, - 122, 136, 151, 165, 180, 194, 209, 223, - 237, 252, 266, 280, 295, 309, 323, 338, - 352, 366, 380, 395, 409, 423, 437, 451, - 465, 479, 493, 507, 521, 535, 549, 563, - 577, 591, 605, 619, 633, 647, 660, 674, - 688, 702, 715, 729, 743, 756, 770, 783, - 797, 811, 824, 838, 851, 864, 878, 891, - 905, 918, 931, 945, 958, 971, 984, 998, - 1011, 1024, 1037, 1050, 1063, 1076, 1089, 1102, - 1115, 1128, 1141, 1154, 1167, 1180, 1193, 1205, - 1218, 1231, 1244, 1256, 1269, 1282, 1294, 1307, - 1319, 1332, 1344, 1357, 1369, 1382, 1394, 1407, - 1419, 1431, 1443, 1456, 1468, 1480, 1492, 1504, - 1517, 1529, 1541, 1553, 1565, 1577, 1589, 1601, - 1612, 1624, 1636, 1648, 1660, 1671, 1683, 1695, - 1707, 1718, 1730, 1741, 1753, 1764, 1776, 1787, - 1799, 1810, 1821, 1833, 1844, 1855, 1867, 1878, - 1889, 1900, 1911, 1922, 1933, 1944, 1955, 1966, - 1977, 1988, 1999, 2010, 2021, 2031, 2042, 2053, - 2063, 2074, 2085, 2095, 2106, 2116, 2127, 2137, - 2148, 2158, 2168, 2179, 2189, 2199, 2209, 2220, - 2230, 2240, 2250, 2260, 2270, 2280, 2290, 2300, - 2310, 2320, 2330, 2339, 2349, 2359, 2369, 2378, - 2388, 2397, 2407, 2417, 2426, 2435, 2445, 2454, - 2464, 2473, 2482, 2491, 2501, 2510, 2519, 2528, - 2537, 2546, 2555, 2564, 2573, 2582, 2591, 2600, - 2609, 2617, 2626, 2635, 2644, 2652, 2661, 2669, - 2678, 2686, 2695, 2703, 2712, 2720, 2728, 2737, - 2745, 2753, 2761, 2769, 2777, 2785, 2793, 2801, - 2809, 2817, 2825, 2833, 2841, 2849, 2856, 2864, - 2872, 2879, 2887, 2895, 2902, 2910, 2917, 2925, - 2932, 2939, 2947, 2954, 2961, 2968, 2975, 2983, - 2990, 2997, 3004, 3011, 3018, 3025, 3031, 3038, - 3045, 3052, 3059, 3065, 3072, 3079, 3085, 3092, - 3098, 3105, 3111, 3117, 3124, 3130, 3136, 3143, - 3149, 3155, 3161, 3167, 3173, 3179, 3185, 3191, - 3197, 3203, 3209, 3215, 3221, 3226, 3232, 3238, - 3243, 3249, 3254, 3260, 3265, 3271, 3276, 3282, - 3287, 3292, 3297, 3303, 3308, 3313, 3318, 3323, - 3328, 3333, 3338, 3343, 3348, 3353, 3357, 3362, - 3367, 3372, 3376, 3381, 3385, 3390, 3395, 3399, - 3403, 3408, 3412, 3416, 3421, 3425, 3429, 3433, - 3437, 3442, 3446, 3450, 3454, 3458, 3461, 3465, - 3469, 3473, 3477, 3480, 3484, 3488, 3491, 3495, - 3498, 3502, 3505, 3509, 3512, 3515, 3519, 3522, - 3525, 3528, 3532, 3535, 3538, 3541, 3544, 3547, - 3550, 3553, 3556, 3558, 3561, 3564, 3567, 3569, - 3572, 3575, 3577, 3580, 3582, 3585, 3587, 3589, - 3592, 3594, 3596, 3598, 3601, 3603, 3605, 3607, - 3609, 3611, 3613, 3615, 3617, 3619, 3621, 3622, - 3624, 3626, 3627, 3629, 3631, 3632, 3634, 3635, - 3637, 3638, 3640, 3641, 3642, 3644, 3645, 3646, - 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, - 3655, 3656, 3657, 3658, 3658, 3659, 3660, 3660, - 3661, 3662, 3662, 3663, 3663, 3663, 3664, 3664, - 3664, 3665, 3665, 3665, 3665, 3665, 3666, 3666, - 3666, 3666, 3666, 3665, 3665, 3665, 3665, 3665, - 3665, 3664, 3664, 3664, 3663, 3663, 3662, 3662, - 3661, 3661, 3660, 3659, 3659, 3658, 3657, 3657, - 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, - 3648, 3647, 3646, 3645, 3643, 3642, 3641, 3640, - 3638, 3637, 3635, 3634, 3633, 3631, 3630, 3628, - 3626, 3625, 3623, 3621, 3620, 3618, 3616, 3614, - 3612, 3610, 3608, 3606, 3604, 3602, 3600, 3598, - 3596, 3594, 3592, 3589, 3587, 3585, 3583, 3580, - 3578, 3575, 3573, 3570, 3568, 3565, 3563, 3560, - 3557, 3555, 3552, 3549, 3547, 3544, 3541, 3538, - 3535, 3532, 3529, 3526, 3523, 3520, 3517, 3514, - 3511, 3508, 3505, 3501, 3498, 3495, 3491, 3488, - 3485, 3481, 3478, 3474, 3471, 3467, 3464, 3460, - 3457, 3453, 3449, 3446, 3442, 3438, 3434, 3430, - 3427, 3423, 3419, 3415, 3411, 3407, 3403, 3399, - 3395, 3391, 3387, 3382, 3378, 3374, 3370, 3365, - 3361, 3357, 3352, 3348, 3344, 3339, 3335, 3330, - 3326, 3321, 3317, 3312, 3307, 3303, 3298, 3293, - 3289, 3284, 3279, 3274, 3269, 3264, 3260, 3255, - 3250, 3245, 3240, 3235, 3230, 3224, 3219, 3214, - 3209, 3204, 3199, 3193, 3188, 3183, 3178, 3172, - 3167, 3162, 3156, 3151, 3145, 3140, 3134, 3129, - 3123, 3118, 3112, 3106, 3101, 3095, 3089, 3084, - 3078, 3072, 3066, 3060, 3055, 3049, 3043, 3037, - 3031, 3025, 3019, 3013, 3007, 3001, 2995, 2989, - 2983, 2977, 2970, 2964, 2958, 2952, 2945, 2939, - 2933, 2927, 2920, 2914, 2908, 2901, 2895, 2888, - 2882, 2875, 2869, 2862, 2856, 2849, 2843, 2836, - 2829, 2823, 2816, 2809, 2803, 2796, 2789, 2782, - 2776, 2769, 2762, 2755, 2748, 2741, 2734, 2727, - 2720, 2714, 2707, 2700, 2692, 2685, 2678, 2671, - 2664, 2657, 2650, 2643, 2636, 2628, 2621, 2614, - 2607, 2599, 2592, 2585, 2578, 2570, 2563, 2556, - 2548, 2541, 2533, 2526, 2518, 2511, 2504, 2496, - 2489, 2481, 2473, 2466, 2458, 2451, 2443, 2435, - 2428, 2420, 2412, 2405, 2397, 2389, 2382, 2374, - 2366, 2358, 2351, 2343, 2335, 2327, 2319, 2311, - 2303, 2296, 2288, 2280, 2272, 2264, 2256, 2248, - 2240, 2232, 2224, 2216, 2208, 2200, 2192, 2183, - 2175, 2167, 2159, 2151, 2143, 2135, 2127, 2118, - 2110, 2102, 2094, 2085, 2077, 2069, 2061, 2052, - 2044, 2036, 2027, 2019, 2011, 2002, 1994, 1986, - 1977, 1969, 1961, 1952, 1944, 1935, 1927, 1918, - 1910, 1901, 1893, 1884, 1876, 1867, 1859, 1850, - 1842, 1833, 1825, 1816, 1808, 1799, 1790, 1782, - 1773, 1765, 1756, 1747, 1739, 1730, 1721, 1713, - 1704, 1695, 1687, 1678, 1669, 1660, 1652, 1643, - 1634, 1625, 1617, 1608, 1599, 1590, 1582, 1573, - 1564, 1555, 1546, 1538, 1529, 1520, 1511, 1502, - 1493, 1485, 1476, 1467, 1458, 1449, 1440, 1431, - 1423, 1414, 1405, 1396, 1387, 1378, 1369, 1360, - 1351, 1342, 1333, 1324, 1316, 1307, 1298, 1289, - 1280, 1271, 1262, 1253, 1244, 1235, 1226, 1217, - 1208, 1199, 1190, 1181, 1172, 1163, 1154, 1145, - 1136, 1127, 1118, 1109, 1100, 1091, 1082, 1073, - 1064, 1055, 1046, 1037, 1028, 1019, 1010, 1001, - 992, 983, 974, 965, 956, 947, 938, 929, - 920, 910, 901, 892, 883, 874, 865, 856, - 847, 838, 829, 820, 811, 802, 793, 784, - 775, 766, 757, 748, 739, 730, 721, 712, - 703, 694, 685, 676, 667, 658, 649, 640, - 631, 622, 613, 604, 595, 586, 577, 568, - 559, 550, 541, 532, 523, 514, 505, 496, - 488, 479, 470, 461, 452, 443, 434, 425, - 416, 407, 398, 389, 381, 372, 363, 354, - 345, 336, 327, 318, 310, 301, 292, 283, - 274, 265, 257, 248, 239, 230, 221, 213, - 204, 195, 186, 178, 169, 160, 151, 143, - 134, 125, 116, 108, 99, 90, 82, 73, - 64, 56, 47, 38, 30, 21, 12, 4, - -5, -13, -22, -30, -39, -48, -56, -65, - -73, -82, -90, -99, -107, -116, -124, -133, - -141, -150, -158, -167, -175, -183, -192, -200, - -209, -217, -225, -234, -242, -250, -259, -267, - -275, -284, -292, -300, -309, -317, -325, -333, - -342, -350, -358, -366, -374, -382, -391, -399, - -407, -415, -423, -431, -439, -447, -456, -464, - -472, -480, -488, -496, -504, -512, -520, -528, - -536, -543, -551, -559, -567, -575, -583, -591, - -599, -606, -614, -622, -630, -638, -645, -653, - -661, -669, -676, -684, -692, -699, -707, -715, - -722, -730, -738, -745, -753, -760, -768, -775, - -783, -790, -798, -805, -813, -820, -828, -835, - -842, -850, -857, -865, -872, -879, -887, -894, - -901, -908, -916, -923, -930, -937, -945, -952, - -959, -966, -973, -980, -987, -994, -1001, -1009, - -1016, -1023, -1030, -1037, -1044, -1050, -1057, -1064, - -1071, -1078, -1085, -1092, -1099, -1105, -1112, -1119, - -1126, -1133, -1139, -1146, -1153, -1159, -1166, -1173, - -1179, -1186, -1193, -1199, -1206, -1212, -1219, -1225, - -1232, -1238, -1245, -1251, -1258, -1264, -1270, -1277, - -1283, -1289, -1296, -1302, -1308, -1315, -1321, -1327, - -1333, -1339, -1346, -1352, -1358, -1364, -1370, -1376, - -1382, -1388, -1394, -1400, -1406, -1412, -1418, -1424, - -1430, -1436, -1442, -1448, -1454, -1459, -1465, -1471, - -1477, -1482, -1488, -1494, -1500, -1505, -1511, -1516, - -1522, -1528, -1533, -1539, -1544, -1550, -1555, -1561, - -1566, -1572, -1577, -1582, -1588, -1593, -1599, -1604, - -1609, -1614, -1620, -1625, -1630, -1635, -1640, -1646, - -1651, -1656, -1661, -1666, -1671, -1676, -1681, -1686, - -1691, -1696, -1701, -1706, -1711, -1716, -1720, -1725, - -1730, -1735, -1740, -1744, -1749, -1754, -1758, -1763, - -1768, -1772, -1777, -1782, -1786, -1791, -1795, -1800, - -1804, -1809, -1813, -1817, -1822, -1826, -1830, -1835, - -1839, -1843, -1848, -1852, -1856, -1860, -1864, -1869, - -1873, -1877, -1881, -1885, -1889, -1893, -1897, -1901, - -1905, -1909, -1913, -1917, -1921, -1925, -1928, -1932, - -1936, -1940, -1944, -1947, -1951, -1955, -1958, -1962, - -1966, -1969, -1973, -1976, -1980, -1983, -1987, -1990, - -1994, -1997, -2001, -2004, -2007, -2011, -2014, -2017, - -2021, -2024, -2027, -2030, -2033, -2037, -2040, -2043, - -2046, -2049, -2052, -2055, -2058, -2061, -2064, -2067, - -2070, -2073, -2076, -2079, -2081, -2084, -2087, -2090, - -2092, -2095, -2098, -2101, -2103, -2106, -2108, -2111, - -2114, -2116, -2119, -2121, -2124, -2126, -2129, -2131, - -2133, -2136, -2138, -2140, -2143, -2145, -2147, -2150, - -2152, -2154, -2156, -2158, -2160, -2162, -2165, -2167, - -2169, -2171, -2173, -2175, -2177, -2179, -2180, -2182, - -2184, -2186, -2188, -2190, -2191, -2193, -2195, -2197, - -2198, -2200, -2202, -2203, -2205, -2206, -2208, -2209, - -2211, -2212, -2214, -2215, -2217, -2218, -2220, -2221, - -2222, -2224, -2225, -2226, -2227, -2229, -2230, -2231, - -2232, -2233, -2234, -2236, -2237, -2238, -2239, -2240, - -2241, -2242, -2243, -2244, -2244, -2245, -2246, -2247, - -2248, -2249, -2249, -2250, -2251, -2252, -2252, -2253, - -2254, -2254, -2255, -2255, -2256, -2256, -2257, -2257, - -2258, -2258, -2259, -2259, -2260, -2260, -2260, -2261, - -2261, -2261, -2261, -2262, -2262, -2262, -2262, -2262, - -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263, - -2263, -2263, -2263, -2263, -2262, -2262, -2262, -2262, - -2262, -2261, -2261, -2261, -2261, -2260, -2260, -2260, - -2259, -2259, -2259, -2258, -2258, -2257, -2257, -2256, - -2256, -2255, -2254, -2254, -2253, -2253, -2252, -2251, - -2251, -2250, -2249, -2248, -2248, -2247, -2246, -2245, - -2244, -2243, -2242, -2242, -2241, -2240, -2239, -2238, - -2237, -2236, -2235, -2233, -2232, -2231, -2230, -2229, - -2228, -2227, -2225, -2224, -2223, -2222, -2220, -2219, - -2218, -2216, -2215, -2214, -2212, -2211, -2209, -2208, - -2206, -2205, -2203, -2202, -2200, -2199, -2197, -2195, - -2194, -2192, -2190, -2189, -2187, -2185, -2184, -2182, - -2180, -2178, -2176, -2174, -2173, -2171, -2169, -2167, - -2165, -2163, -2161, -2159, -2157, -2155, -2153, -2151, - -2149, -2147, -2145, -2142, -2140, -2138, -2136, -2134, - -2132, -2129, -2127, -2125, -2122, -2120, -2118, -2116, - -2113, -2111, -2108, -2106, -2104, -2101, -2099, -2096, - -2094, -2091, -2089, -2086, -2083, -2081, -2078, -2076, - -2073, -2070, -2068, -2065, -2062, -2060, -2057, -2054, - -2051, -2049, -2046, -2043, -2040, -2037, -2034, -2031, - -2029, -2026, -2023, -2020, -2017, -2014, -2011, -2008, - -2005, -2002, -1999, -1996, -1992, -1989, -1986, -1983, - -1980, -1977, -1974, -1970, -1967, -1964, -1961, -1957, - -1954, -1951, -1948, -1944, -1941, -1938, -1934, -1931, - -1927, -1924, -1921, -1917, -1914, -1910, -1907, -1903, - -1900, -1896, -1893, -1889, -1886, -1882, -1878, -1875, - -1871, -1868, -1864, -1860, -1857, -1853, -1849, -1845, - -1842, -1838, -1834, -1830, -1827, -1823, -1819, -1815, - -1811, -1807, -1804, -1800, -1796, -1792, -1788, -1784, - -1780, -1776, -1772, -1768, -1764, -1760, -1756, -1752, - -1748, -1744, -1740, -1736, -1732, -1728, -1724, -1719, - -1715, -1711, -1707, -1703, -1699, -1694, -1690, -1686, - -1682, -1677, -1673, -1669, -1665, -1660, -1656, -1652, - -1647, -1643, -1639, -1634, -1630, -1625, -1621, -1617, - -1612, -1608, -1603, -1599, -1594, -1590, -1586, -1581, - -1577, -1572, -1567, -1563, -1558, -1554, -1549, -1545, - -1540, -1535, -1531, -1526, -1522, -1517, -1512, -1508, - -1503, -1498, -1494, -1489, -1484, -1480, -1475, -1470, - -1465, -1461, -1456, -1451, -1446, -1441, -1437, -1432, - -1427, -1422, -1417, -1413, -1408, -1403, -1398, -1393, - -1388, -1383, -1378, -1374, -1369, -1364, -1359, -1354, - -1349, -1344, -1339, -1334, -1329, -1324, -1319, -1314, - -1309, -1304, -1299, -1294, -1289, -1284, -1279, -1274, - -1269, -1264, -1258, -1253, -1248, -1243, -1238, -1233, - -1228, -1223, -1218, -1212, -1207, -1202, -1197, -1192, - -1187, -1181, -1176, -1171, -1166, -1161, -1155, -1150, - -1145, -1140, -1135, -1129, -1124, -1119, -1114, -1108, - -1103, -1098, -1092, -1087, -1082, -1077, -1071, -1066, - -1061, -1055, -1050, -1045, -1039, -1034, -1029, -1023, - -1018, -1013, -1007, -1002, -997, -991, -986, -980, - -975, -970, -964, -959, -953, -948, -943, -937, - -932, -926, -921, -916, -910, -905, -899, -894, - -888, -883, -877, -872, -867, -861, -856, -850, - -845, -839, -834, -828, -823, -817, -812, -806, - -801, -795, -790, -784, -779, -773, -768, -762, - -757, -751, -746, -740, -735, -729, -724, -718, - -713, -707, -702, -696, -691, -685, -680, -674, - -669, -663, -658, -652, -646, -641, -635, -630, - -624, -619, -613, -608, -602, -597, -591, -585, - -580, -574, -569, -563, -558, -552, -547, -541, - -536, -530, -524, -519, -513, -508, -502, -497, - -491, -486, -480, -475, -469, -464, -458, -452, - -447, -441, -436, -430, -425, -419, -414, -408, - -403, -397, -392, -386, -381, -375, -369, -364, - -358, -353, -347, -342, -336, -331, -325, -320, - -314, -309, -303, -298, -292, -287, -281, -276, - -270, -265, -259, -254, -248, -243, -238, -232, - -227, -221, -216, -210, -205, -199, -194, -188, - -183, -178, -172, -167, -161, -156, -150, -145, - -140, -134, -129, -123, -118, -113, -107, -102, - -96, -91, -86, -80, -75, -70, -64, -59, - -53, -48, -43, -37, -32, -27, -21, -16, - -11, -5, 0, 5, 10, 16, 21, 26, - 32, 37, 42, 47, 53, 58, 63, 68, - 74, 79, 84, 89, 95, 100, 105, 110, - 115, 121, 126, 131, 136, 141, 146, 152, - 157, 162, 167, 172, 177, 182, 187, 193, - 198, 203, 208, 213, 218, 223, 228, 233, - 238, 243, 248, 253, 258, 263, 268, 273, - 278, 283, 288, 293, 298, 303, 308, 313, - 318, 323, 328, 333, 338, 343, 347, 352, - 357, 362, 367, 372, 377, 382, 386, 391, - 396, 401, 406, 410, 415, 420, 425, 429, - 434, 439, 444, 448, 453, 458, 463, 467, - 472, 477, 481, 486, 491, 495, 500, 505, - 509, 514, 518, 523, 528, 532, 537, 541, - 546, 550, 555, 559, 564, 568, 573, 577, - 582, 586, 591, 595, 600, 604, 608, 613, - 617, 622, 626, 630, 635, 639, 643, 648, - 652, 656, 661, 665, 669, 674, 678, 682, - 686, 691, 695, 699, 703, 707, 712, 716, - 720, 724, 728, 732, 737, 741, 745, 749, - 753, 757, 761, 765, 769, 773, 777, 781, - 785, 789, 793, 797, 801, 805, 809, 813, - 817, 821, 825, 829, 832, 836, 840, 844, - 848, 852, 855, 859, 863, 867, 871, 874, - 878, 882, 885, 889, 893, 897, 900, 904, - 908, 911, 915, 918, 922, 926, 929, 933, - 936, 940, 943, 947, 950, 954, 957, 961, - 964, 968, 971, 975, 978, 981, 985, 988, - 992, 995, 998, 1002, 1005, 1008, 1012, 1015, - 1018, 1021, 1025, 1028, 1031, 1034, 1038, 1041, - 1044, 1047, 1050, 1053, 1057, 1060, 1063, 1066, - 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, - 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, - 1117, 1119, 1122, 1125, 1128, 1131, 1134, 1136, - 1139, 1142, 1145, 1148, 1150, 1153, 1156, 1158, - 1161, 1164, 1166, 1169, 1172, 1174, 1177, 1179, - 1182, 1185, 1187, 1190, 1192, 1195, 1197, 1200, - 1202, 1205, 1207, 1210, 1212, 1214, 1217, 1219, - 1222, 1224, 1226, 1229, 1231, 1233, 1236, 1238, - 1240, 1242, 1245, 1247, 1249, 1251, 1253, 1256, - 1258, 1260, 1262, 1264, 1266, 1268, 1271, 1273, - 1275, 1277, 1279, 1281, 1283, 1285, 1287, 1289, - 1291, 1293, 1295, 1297, 1298, 1300, 1302, 1304, - 1306, 1308, 1310, 1311, 1313, 1315, 1317, 1319, - 1320, 1322, 1324, 1325, 1327, 1329, 1330, 1332, - 1334, 1335, 1337, 1339, 1340, 1342, 1343, 1345, - 1346, 1348, 1349, 1351, 1352, 1354, 1355, 1357, - 1358, 1360, 1361, 1362, 1364, 1365, 1367, 1368, - 1369, 1370, 1372, 1373, 1374, 1376, 1377, 1378, - 1379, 1380, 1382, 1383, 1384, 1385, 1386, 1387, - 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, - 1405, 1405, 1406, 1407, 1408, 1409, 1410, 1410, - 1411, 1412, 1413, 1414, 1414, 1415, 1416, 1416, - 1417, 1418, 1419, 1419, 1420, 1420, 1421, 1422, - 1422, 1423, 1423, 1424, 1424, 1425, 1425, 1426, - 1426, 1427, 1427, 1428, 1428, 1429, 1429, 1429, - 1430, 1430, 1431, 1431, 1431, 1432, 1432, 1432, - 1432, 1433, 1433, 1433, 1433, 1434, 1434, 1434, - 1434, 1434, 1434, 1435, 1435, 1435, 1435, 1435, - 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, - 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, - 1435, 1434, 1434, 1434, 1434, 1434, 1434, 1433, - 1433, 1433, 1433, 1432, 1432, 1432, 1432, 1431, - 1431, 1431, 1430, 1430, 1429, 1429, 1429, 1428, - 1428, 1427, 1427, 1427, 1426, 1426, 1425, 1425, - 1424, 1424, 1423, 1422, 1422, 1421, 1421, 1420, - 1420, 1419, 1418, 1418, 1417, 1416, 1416, 1415, - 1414, 1413, 1413, 1412, 1411, 1410, 1410, 1409, - 1408, 1407, 1406, 1406, 1405, 1404, 1403, 1402, - 1401, 1400, 1400, 1399, 1398, 1397, 1396, 1395, - 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, - 1386, 1384, 1383, 1382, 1381, 1380, 1379, 1378, - 1377, 1375, 1374, 1373, 1372, 1371, 1369, 1368, - 1367, 1366, 1364, 1363, 1362, 1361, 1359, 1358, - 1357, 1355, 1354, 1353, 1351, 1350, 1348, 1347, - 1346, 1344, 1343, 1341, 1340, 1338, 1337, 1335, - 1334, 1332, 1331, 1329, 1328, 1326, 1325, 1323, - 1322, 1320, 1318, 1317, 1315, 1314, 1312, 1310, - 1309, 1307, 1305, 1304, 1302, 1300, 1299, 1297, - 1295, 1293, 1292, 1290, 1288, 1286, 1284, 1283, - 1281, 1279, 1277, 1275, 1274, 1272, 1270, 1268, - 1266, 1264, 1262, 1260, 1258, 1257, 1255, 1253, - 1251, 1249, 1247, 1245, 1243, 1241, 1239, 1237, - 1235, 1233, 1231, 1229, 1227, 1224, 1222, 1220, - 1218, 1216, 1214, 1212, 1210, 1208, 1205, 1203, - 1201, 1199, 1197, 1195, 1192, 1190, 1188, 1186, - 1183, 1181, 1179, 1177, 1174, 1172, 1170, 1168, - 1165, 1163, 1161, 1158, 1156, 1154, 1151, 1149, - 1147, 1144, 1142, 1140, 1137, 1135, 1132, 1130, - 1128, 1125, 1123, 1120, 1118, 1115, 1113, 1110, - 1108, 1105, 1103, 1100, 1098, 1095, 1093, 1090, - 1088, 1085, 1083, 1080, 1078, 1075, 1073, 1070, - 1067, 1065, 1062, 1060, 1057, 1054, 1052, 1049, - 1046, 1044, 1041, 1038, 1036, 1033, 1030, 1028, - 1025, 1022, 1020, 1017, 1014, 1012, 1009, 1006, - 1003, 1001, 998, 995, 992, 990, 987, 984, - 981, 978, 976, 973, 970, 967, 964, 961, - 959, 956, 953, 950, 947, 944, 942, 939, - 936, 933, 930, 927, 924, 921, 918, 915, - 913, 910, 907, 904, 901, 898, 895, 892, - 889, 886, 883, 880, 877, 874, 871, 868, - 865, 862, 859, 856, 853, 850, 847, 844, - 841, 838, 835, 832, 829, 826, 823, 820, - 817, 813, 810, 807, 804, 801, 798, 795, - 792, 789, 786, 783, 779, 776, 773, 770, - 767, 764, 761, 758, 754, 751, 748, 745, - 742, 739, 735, 732, 729, 726, 723, 720, - 716, 713, 710, 707, 704, 700, 697, 694, - 691, 688, 684, 681, 678, 675, 671, 668, - 665, 662, 659, 655, 652, 649, 646, 642, - 639, 636, 633, 629, 626, 623, 620, 616, - 613, 610, 606, 603, 600, 597, 593, 590, - 587, 584, 580, 577, 574, 570, 567, 564, - 560, 557, 554, 551, 547, 544, 541, 537, - 534, 531, 527, 524, 521, 517, 514, 511, - 507, 504, 501, 498, 494, 491, 488, 484, - 481, 478, 474, 471, 468, 464, 461, 458, - 454, 451, 448, 444, 441, 437, 434, 431, - 427, 424, 421, 417, 414, 411, 407, 404, - 401, 397, 394, 391, 387, 384, 381, 377, - 374, 371, 367, 364, 361, 357, 354, 351, - 347, 344, 341, 337, 334, 330, 327, 324, - 320, 317, 314, 310, 307, 304, 300, 297, - 294, 290, 287, 284, 280, 277, 274, 270, - 267, 264, 260, 257, 254, 250, 247, 244, - 240, 237, 234, 230, 227, 224, 221, 217, - 214, 211, 207, 204, 201, 197, 194, 191, - 187, 184, 181, 178, 174, 171, 168, 164, - 161, 158, 154, 151, 148, 145, 141, 138, - 135, 132, 128, 125, 122, 118, 115, 112, - 109, 105, 102, 99, 96, 92, 89, 86, - 83, 79, 76, 73, 70, 67, 63, 60, - 57, 54, 50, 47, 44, 41, 38, 34, - 31, 28, 25, 22, 18, 15, 12, 9, - 6, 2, -1, -4, -7, -10, -13, -16, - -20, -23, -26, -29, -32, -35, -39, -42, - -45, -48, -51, -54, -57, -60, -63, -67, - -70, -73, -76, -79, -82, -85, -88, -91, - -94, -97, -100, -104, -107, -110, -113, -116, - -119, -122, -125, -128, -131, -134, -137, -140, - -143, -146, -149, -152, -155, -158, -161, -164, - -167, -170, -173, -176, -179, -182, -185, -188, - -191, -194, -196, -199, -202, -205, -208, -211, - -214, -217, -220, -223, -226, -228, -231, -234, - -237, -240, -243, -246, -248, -251, -254, -257, - -260, -263, -266, -268, -271, -274, -277, -280, - -282, -285, -288, -291, -293, -296, -299, -302, - -305, -307, -310, -313, -315, -318, -321, -324, - -326, -329, -332, -334, -337, -340, -343, -345, - -348, -351, -353, -356, -359, -361, -364, -366, - -369, -372, -374, -377, -380, -382, -385, -387, - -390, -392, -395, -398, -400, -403, -405, -408, - -410, -413, -415, -418, -420, -423, -425, -428, - -430, -433, -435, -438, -440, -443, -445, -448, - -450, -453, -455, -457, -460, -462, -465, -467, - -469, -472, -474, -477, -479, -481, -484, -486, - -488, -491, -493, -495, -498, -500, -502, -505, - -507, -509, -512, -514, -516, -518, -521, -523, - -525, -527, -530, -532, -534, -536, -538, -541, - -543, -545, -547, -549, -552, -554, -556, -558, - -560, -562, -564, -567, -569, -571, -573, -575, - -577, -579, -581, -583, -585, -587, -589, -592, - -594, -596, -598, -600, -602, -604, -606, -608, - -610, -612, -614, -615, -617, -619, -621, -623, - -625, -627, -629, -631, -633, -635, -637, -639, - -640, -642, -644, -646, -648, -650, -651, -653, - -655, -657, -659, -661, -662, -664, -666, -668, - -669, -671, -673, -675, -676, -678, -680, -682, - -683, -685, -687, -688, -690, -692, -693, -695, - -697, -698, -700, -702, -703, -705, -706, -708, - -710, -711, -713, -714, -716, -717, -719, -720, - -722, -724, -725, -727, -728, -730, -731, -733, - -734, -735, -737, -738, -740, -741, -743, -744, - -746, -747, -748, -750, -751, -753, -754, -755, - -757, -758, -759, -761, -762, -763, -765, -766, - -767, -769, -770, -771, -772, -774, -775, -776, - -777, -779, -780, -781, -782, -783, -785, -786, - -787, -788, -789, -791, -792, -793, -794, -795, - -796, -797, -798, -800, -801, -802, -803, -804, - -805, -806, -807, -808, -809, -810, -811, -812, - -813, -814, -815, -816, -817, -818, -819, -820, - -821, -822, -823, -824, -825, -826, -827, -827, - -828, -829, -830, -831, -832, -833, -833, -834, - -835, -836, -837, -838, -838, -839, -840, -841, - -842, -842, -843, -844, -845, -845, -846, -847, - -847, -848, -849, -850, -850, -851, -852, -852, - -853, -854, -854, -855, -855, -856, -857, -857, - -858, -858, -859, -860, -860, -861, -861, -862, - -862, -863, -863, -864, -864, -865, -865, -866, - -866, -867, -867, -868, -868, -869, -869, -870, - -870, -870, -871, -871, -872, -872, -872, -873, - -873, -874, -874, -874, -875, -875, -875, -876, - -876, -876, -876, -877, -877, -877, -878, -878, - -878, -878, -879, -879, -879, -879, -879, -880, - -880, -880, -880, -880, -881, -881, -881, -881, - -881, -881, -882, -882, -882, -882, -882, -882, - -882, -882, -882, -882, -882, -882, -883, -883, - -883, -883, -883, -883, -883, -883, -883, -883, - -883, -883, -883, -883, -882, -882, -882, -882, - -882, -882, -882, -882, -882, -882, -882, -882, - -881, -881, -881, -881, -881, -881, -881, -880, - -880, -880, -880, -880, -879, -879, -879, -879, - -879, -878, -878, -878, -878, -877, -877, -877, - -876, -876, -876, -876, -875, -875, -875, -874, - -874, -874, -873, -873, -873, -872, -872, -871, - -871, -871, -870, -870, -870, -869, -869, -868, - -868, -867, -867, -867, -866, -866, -865, -865, - -864, -864, -863, -863, -862, -862, -861, -861, - -860, -860, -859, -859, -858, -857, -857, -856, - -856, -855, -855, -854, -853, -853, -852, -852, - -851, -850, -850, -849, -848, -848, -847, -846, - -846, -845, -844, -844, -843, -842, -842, -841, - -840, -840, -839, -838, -837, -837, -836, -835, - -834, -834, -833, -832, -831, -831, -830, -829, - -828, -827, -827, -826, -825, -824, -823, -822, - -822, -821, -820, -819, -818, -817, -816, -816, - -815, -814, -813, -812, -811, -810, -809, -808, - -808, -807, -806, -805, -804, -803, -802, -801, - -800, -799, -798, -797, -796, -795, -794, -793, - -792, -791, -790, -789, -788, -787, -786, -785, - -784, -783, -782, -781, -780, -779, -778, -777, - -776, -774, -773, -772, -771, -770, -769, -768, - -767, -766, -765, -763, -762, -761, -760, -759, - -758, -757, -755, -754, -753, -752, -751, -750, - -748, -747, -746, -745, -744, -743, -741, -740, - -739, -738, -736, -735, -734, -733, -732, -730, - -729, -728, -727, -725, -724, -723, -722, -720, - -719, -718, -716, -715, -714, -713, -711, -710, - -709, -707, -706, -705, -703, -702, -701, -699, - -698, -697, -695, -694, -693, -691, -690, -689, - -687, -686, -685, -683, -682, -680, -679, -678, - -676, -675, -673, -672, -671, -669, -668, -666, - -665, -664, -662, -661, -659, -658, -656, -655, - -654, -652, -651, -649, -648, -646, -645, -643, - -642, -640, -639, -638, -636, -635, -633, -632, - -630, -629, -627, -626, -624, -623, -621, -620, - -618, -617, -615, -614, -612, -610, -609, -607, - -606, -604, -603, -601, -600, -598, -597, -595, - -594, -592, -590, -589, -587, -586, -584, -583, - -581, -579, -578, -576, -575, -573, -572, -570, - -568, -567, -565, -564, -562, -560, -559, -557, - -556, -554, -552, -551, -549, -547, -546, -544, - -543, -541, -539, -538, -536, -534, -533, -531, - -530, -528, -526, -525, -523, -521, -520, -518, - -516, -515, -513, -511, -510, -508, -506, -505, - -503, -501, -500, -498, -496, -495, -493, -491, - -490, -488, -486, -485, -483, -481, -479, -478, - -476, -474, -473, -471, -469, -468, -466, -464, - -462, -461, -459, -457, -456, -454, -452, -450, - -449, -447, -445, -444, -442, -440, -438, -437, - -435, -433, -432, -430, -428, -426, -425, -423, - -421, -419, -418, -416, -414, -413, -411, -409, - -407, -406, -404, -402, -400, -399, -397, -395, - -393, -392, -390, -388, -386, -385, -383, -381, - -379, -378, -376, -374, -372, -371, -369, -367, - -365, -364, -362, -360, -358, -357, -355, -353, - -351, -350, -348, -346, -344, -343, -341, -339, - -337, -336, -334, -332, -330, -328, -327, -325, - -323, -321, -320, -318, -316, -314, -313, -311, - -309, -307, -306, -304, -302, -300, -299, -297, - -295, -293, -291, -290, -288, -286, -284, -283, - -281, -279, -277, -276, -274, -272, -270, -269, - -267, -265, -263, -262, -260, -258, -256, -255, - -253, -251, -249, -247, -246, -244, -242, -240, - -239, -237, -235, -233, -232, -230, -228, -226, - -225, -223, -221, -219, -218, -216, -214, -213, - -211, -209, -207, -206, -204, -202, -200, -199, - -197, -195, -193, -192, -190, -188, -186, -185, - -183, -181, -180, -178, -176, -174, -173, -171, - -169, -167, -166, -164, -162, -161, -159, -157, - -155, -154, -152, -150, -149, -147, -145, -143, - -142, -140, -138, -137, -135, -133, -132, -130, - -128, -126, -125, -123, -121, -120, -118, -116, - -115, -113, -111, -110, -108, -106, -105, -103, - -101, -99, -98, -96, -94, -93, -91, -89, - -88, -86, -84, -83, -81, -80, -78, -76, - -75, -73, -71, -70, -68, -66, -65, -63, - -61, -60, -58, -57, -55, -53, -52, -50, - -48, -47, -45, -43, -42, -40, -39, -37, - -35, -34, -32, -31, -29, -27, -26, -24, - -23, -21, -19, -18, -16, -15, -13, -11, - -10, -8, -7, -5, -4, -2, 0, 1, - 3, 4, 6, 7, 9, 10, 12, 14, - 15, 17, 18, 20, 21, 23, 24, 26, - 27, 29, 30, 32, 34, 35, 37, 38, - 40, 41, 43, 44, 46, 47, 49, 50, - 52, 53, 55, 56, 58, 59, 61, 62, - 64, 65, 66, 68, 69, 71, 72, 74, - 75, 77, 78, 80, 81, 82, 84, 85, - 87, 88, 90, 91, 93, 94, 95, 97, - 98, 100, 101, 102, 104, 105, 107, 108, - 109, 111, 112, 114, 115, 116, 118, 119, - 121, 122, 123, 125, 126, 127, 129, 130, - 132, 133, 134, 136, 137, 138, 140, 141, - 142, 144, 145, 146, 148, 149, 150, 152, - 153, 154, 155, 157, 158, 159, 161, 162, - 163, 165, 166, 167, 168, 170, 171, 172, - 174, 175, 176, 177, 179, 180, 181, 182, - 184, 185, 186, 187, 189, 190, 191, 192, - 193, 195, 196, 197, 198, 200, 201, 202, - 203, 204, 206, 207, 208, 209, 210, 211, - 213, 214, 215, 216, 217, 218, 220, 221, - 222, 223, 224, 225, 227, 228, 229, 230, - 231, 232, 233, 234, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 288, - 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, - 311, 312, 313, 314, 315, 316, 317, 318, - 318, 319, 320, 321, 322, 323, 323, 324, - 325, 326, 327, 328, 328, 329, 330, 331, - 332, 332, 333, 334, 335, 336, 336, 337, - 338, 339, 339, 340, 341, 342, 343, 343, - 344, 345, 346, 346, 347, 348, 349, 349, - 350, 351, 351, 352, 353, 354, 354, 355, - 356, 356, 357, 358, 358, 359, 360, 361, - 361, 362, 363, 363, 364, 365, 365, 366, - 367, 367, 368, 368, 369, 370, 370, 371, - 372, 372, 373, 373, 374, 375, 375, 376, - 376, 377, 378, 378, 379, 379, 380, 381, - 381, 382, 382, 383, 383, 384, 385, 385, - 386, 386, 387, 387, 388, 388, 389, 389, - 390, 391, 391, 392, 392, 393, 393, 394, - 394, 395, 395, 396, 396, 397, 397, 398, - 398, 398, 399, 399, 400, 400, 401, 401, - 402, 402, 403, 403, 403, 404, 404, 405, - 405, 406, 406, 406, 407, 407, 408, 408, - 409, 409, 409, 410, 410, 410, 411, 411, - 412, 412, 412, 413, 413, 413, 414, 414, - 415, 415, 415, 416, 416, 416, 417, 417, - 417, 418, 418, 418, 419, 419, 419, 420, - 420, 420, 420, 421, 421, 421, 422, 422, - 422, 423, 423, 423, 423, 424, 424, 424, - 424, 425, 425, 425, 425, 426, 426, 426, - 426, 427, 427, 427, 427, 428, 428, 428, - 428, 428, 429, 429, 429, 429, 429, 430, - 430, 430, 430, 430, 431, 431, 431, 431, - 431, 432, 432, 432, 432, 432, 432, 432, - 433, 433, 433, 433, 433, 433, 433, 434, - 434, 434, 434, 434, 434, 434, 434, 435, - 435, 435, 435, 435, 435, 435, 435, 435, - 435, 436, 436, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 436, 436, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 436, - 436, 436, 436, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 436, 435, - 435, 435, 435, 435, 435, 435, 435, 435, - 435, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 433, 433, 433, 433, 433, 433, - 433, 432, 432, 432, 432, 432, 432, 432, - 431, 431, 431, 431, 431, 431, 430, 430, - 430, 430, 430, 430, 429, 429, 429, 429, - 429, 429, 428, 428, 428, 428, 428, 427, - 427, 427, 427, 427, 426, 426, 426, 426, - 425, 425, 425, 425, 425, 424, 424, 424, - 424, 423, 423, 423, 423, 422, 422, 422, - 422, 421, 421, 421, 421, 420, 420, 420, - 420, 419, 419, 419, 419, 418, 418, 418, - 418, 417, 417, 417, 416, 416, 416, 416, - 415, 415, 415, 414, 414, 414, 414, 413, - 413, 413, 412, 412, 412, 411, 411, 411, - 410, 410, 410, 409, 409, 409, 409, 408, - 408, 408, 407, 407, 407, 406, 406, 406, - 405, 405, 405, 404, 404, 404, 403, 403, - 402, 402, 402, 401, 401, 401, 400, 400, - 400, 399, 399, 399, 398, 398, 397, 397, - 397, 396, 396, 396, 395, 395, 394, 394, - 394, 393, 393, 393, 392, 392, 391, 391, - 391, 390, 390, 389, 389, 389, 388, 388, - 387, 387, 387, 386, 386, 385, 385, 385, - 384, 384, 383, 383, 382, 382, 382, 381, - 381, 380, 380, 380, 379, 379, 378, 378, - 377, 377, 377, 376, 376, 375, 375, 374, - 374, 373, 373, 373, 372, 372, 371, 371, - 370, 370, 370, 369, 369, 368, 368, 367, - 367, 366, 366, 365, 365, 365, 364, 364, - 363, 363, 362, 362, 361, 361, 360, 360, - 359, 359, 359, 358, 358, 357, 357, 356, - 356, 355, 355, 354, 354, 353, 353, 352, - 352, 351, 351, 350, 350, 349, 349, 348, - 348, 348, 347, 347, 346, 346, 345, 345, - 344, 344, 343, 343, 342, 342, 341, 341, - 340, 340, 339, 339, 338, 338, 337, 337, - 336, 336, 335, 335, 334, 334, 333, 333, - 332, 332, 331, 331, 330, 330, 329, 329, - 328, 328, 327, 327, 326, 326, 325, 325, - 324, 323, 323, 322, 322, 321, 321, 320, - 320, 319, 319, 318, 318, 317, 317, 316, - 316, 315, 315, 314, 314, 313, 313, 312, - 312, 311, 311, 310, 309, 309, 308, 308, - 307, 307, 306, 306, 305, 305, 304, 304, - 303, 303, 302, 302, 301, 300, 300, 299, - 299, 298, 298, 297, 297, 296, 296, 295, - 295, 294, 294, 293, 293, 292, 291, 291, - 290, 290, 289, 289, 288, 288, 287, 287, - 286, 286, 285, 285, 284, 283, 283, 282, - 282, 281, 281, 280, 280, 279, 279, 278, - 278, 277, 277, 276, 275, 275, 274, 274, - 273, 273, 272, 272, 271, 271, 270, 270, - 269, 268, 268, 267, 267, 266, 266, 265, - 265, 264, 264, 263, 263, 262, 261, 261, - 260, 260, 259, 259, 258, 258, 257, 257, - 256, 256, 255, 255, 254, 253, 253, 252, - 252, 251, 251, 250, 250, 249, 249, 248, - 248, 247, 247, 246, 245, 245, 244, 244, - 243, 243, 242, 242, 241, 241, 240, 240, - 239, 239, 238, 237, 237, 236, 236, 235, - 235, 234, 234, 233, 233, 232, 232, 231, - 231, 230, 230, 229, 229, 228, 227, 227, - 226, 226, 225, 225, 224, 224, 223, 223, - 222, 222, 221, 221, 220, 220, 219, 219, - 218, 218, 217, 217, 216, 215, 215, 214, - 214, 213, 213, 212, 212, 211, 211, 210, - 210, 209, 209, 208, 208, 207, 207, 206, - 206, 205, 205, 204, 204, 203, 203, 202, - 202, 201, 201, 200, 200, 199, 199, 198, - 198, 197, 197, 196, 196, 195, 195, 194, - 194, 193, 193, 192, 192, 191, 191, 190, - 190, 189, 189, 188, 188, 187, 187, 186, - 186, 185, 185, 184, 184, 183, 183, 182, - 182, 181, 181, 180, 180, 179, 179, 178, - 178, 177, 177, 176, 176, 175, 175, 174, - 174, 174, 173, 173, 172, 172, 171, 171, - 170, 170, 169, 169, 168, 168, 167, 167, - 166, 166, 165, 165, 165, 164, 164, 163, - 163, 162, 162, 161, 161, 160, 160, 159, - 159, 159, 158, 158, 157, 157, 156, 156, - 155, 155, 154, 154, 153, 153, 153, 152, - 152, 151, 151, 150, 150, 149, 149, 149, - 148, 148, 147, 147, 146, 146, 145, 145, - 145, 144, 144, 143, 143, 142, 142, 141, - 141, 141, 140, 140, 139, 139, 138, 138, - 138, 137, 137, 136, 136, 135, 135, 135, - 134, 134, 133, 133, 132, 132, 132, 131, - 131, 130, 130, 130, 129, 129, 128, 128, - 127, 127, 127, 126, 126, 125, 125, 125, - 124, 124, 123, 123, 123, 122, 122, 121, - 121, 121, 120, 120, 119, 119, 119, 118, - 118, 117, 117, 117, 116, 116, 115, 115, - 115, 114, 114, 113, 113, 113, 112, 112, - 112, 111, 111, 110, 110, 110, 109, 109, - 108, 108, 108, 107, 107, 107, 106, 106, - 105, 105, 105, 104, 104, 104, 103, 103, - 103, 102, 102, 101, 101, 101, 100, 100, - 100, 99, 99, 99, 98, 98, 97, 97, - 97, 96, 96, 96, 95, 95, 95, 94, - 94, 94, 93, 93, 93, 92, 92, 92, - 91, 91, 90, 90, 90, 89, 89, 89, - 88, 88, 88, 87, 87, 87, 86, 86, - 86, 85, 85, 85, 85, 84, 84, 84, - 83, 83, 83, 82, 82, 82, 81, 81, - 81, 80, 80, 80, 79, 79, 79, 78, - 78, 78, 77, 77, 77, 77, 76, 76, - 76, 75, 75, 75, 74, 74, 74, 74, - 73, 73, 73, 72, 72, 72, 71, 71, - 71, 71, 70, 70, 70, 69, 69, 69, - 69, 68, 68, 68, 67, 67, 67, 67, - 66, 66, 66, 65, 65, 65, 65, 64, - 64, 64, 63, 63, 63, 63, 62, 62, - 62, 62, 61, 61, 61, 60, 60, 60, - 60, 59, 59, 59, 59, 58, 58, 58, - 58, 57, 57, 57, 57, 56, 56, 56, - 56, 55, 55, 55, 55, 54, 54, 54, - 54, 53, 53, 53, 53, 52, 52, 52, - 52, 51, 51, 51, 51, 50, 50, 50, - 50, 50, 49, 49, 49, 49, 48, 48, - 48, 48, 47, 47, 47, 47, 46, 46, - 46, 46, 46, 45, 45, 45, 45, 44, - 44, 44, 44, 44, 43, 43, 43, 43, - 43, 42, 42, 42, 42, 42, 41, 41, - 41, 41, 40, 40, 40, 40, 40, 39, - 39, 39, 39, 39, 38, 38, 38, 38, - 38, 37, 37, 37, 37, 37, 37, 36, - 36, 36, 36, 36, 35, 35, 35, 35, - 35, 34, 34, 34, 34, 34, 33, 33, - 33, 33, 33, 33, 32, 32, 32, 32, - 32, 32, 31, 31, 31, 31, 31, 31, - 30, 30, 30, 30, 30, 29, 29, 29, - 29, 29, 29, 28, 28, 28, 28, 28, - 28, 27, 27, 27, 27, 27, 27, 27, - 26, 26, 26, 26, 26, 26, 26, 25, - 25, 25, 25, 25, 25, 24, 24, 24, - 24, 24, 24, 23, 23, 23, 23, 23, - 23, 23, 22, 22, 22, 22, 22, 22, - 22, 22, 21, 21, 21, 21, 21, 21, - 21, 21, 20, 20, 20, 20, 20, 20, - 20, 19, 19, 19, 19, 19, 19, 19, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 16, 16, 16, 16, 16, - 16, 16, 15, 15, 15, 15, 15, 15, - 15, 15, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 13, 13, 13, 13, 13, 13, 13, 13, - 12, 12, 12, 12, 12, 12, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 10, 10, 10, 10, - 9, 9, 9, 8, 8, 8, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 8, - 9, 9, 10, 11, 12, 14, 15, 17, - 18, 20, 21, 23, 25, 26, 28, 29, - 31, 32, 33, 34, 35, 35, 36, 36, -}; - - -BandPass::BandPass(bool correct, unsigned nrChannels) -: - factors(nrChannels) -{ - if (correct) - computeCorrectionFactors(nrChannels); - else - for (unsigned i = 0; i < nrChannels; i ++) - factors[i] = 1.0; -} - - -void BandPass::computeCorrectionFactors(unsigned nrChannels) -{ - // The following matlab functions are used: - - // f=fftshift(fft(Coeffs16384Kaiser_quant,262144)) - // m=f(131073-128:131073+127) - // r=f(131073-128+256:131073+127+256) - // l=f(131073-128-256:131073+127-256) - // plot(2^50./(abs(m).^2+abs(l).^2+abs(r).^2)) - - unsigned fftSize = STATION_FFT_SIZE * nrChannels; - - // We cannot make the fft smaller than the number of filter constants. - if(fftSize < STATION_FILTER_LENGTH) fftSize = STATION_FILTER_LENGTH; - - // it is not worth to use the more complex R2C FFTW method - std::vector<fcomplex, AlignedStdAllocator<fcomplex, 16> > in(fftSize, 0.0), out(fftSize); - - for (unsigned i = 0; i < STATION_FILTER_LENGTH; i ++) - in[i] = stationFilterConstants[i]; - -#if defined HAVE_FFTW3 - fftwf_plan plan = fftwf_plan_dft_1d(fftSize, reinterpret_cast<fftwf_complex *>(&in[0]), reinterpret_cast<fftwf_complex *>(&out[0]), FFTW_FORWARD, FFTW_ESTIMATE); - fftwf_execute(plan); - fftwf_destroy_plan(plan); -#elif defined HAVE_FFTW2 - fftw_plan plan = fftw_create_plan(fftSize, FFTW_FORWARD, FFTW_ESTIMATE); - fftw_one(plan, reinterpret_cast<fftw_complex *>(&in[0]), reinterpret_cast<fftw_complex *>(&out[0])); - fftw_destroy_plan(plan); -#else -#error need FFTW2 or FFTW3 -#endif - - for (unsigned i = 0; i < nrChannels; i ++) { - const fcomplex m = out[(i - nrChannels / 2) % fftSize]; - const fcomplex l = out[(i - 3 * nrChannels / 2) % fftSize]; - const fcomplex r = out[i + nrChannels / 2]; - - factors[i] = pow(2, 25) / sqrt(abs(m * m + l * l + r * r)); - } -} - -} // namespace RTCP -} // namespace LOFAR - - -#if 0 -int main() -{ - LOFAR::RTCP::BandPass bandpass; - const float *f = bandpass.correctionFactors(256); - - for (unsigned i = 0; i < 256; i ++) - LOG_DEBUG_STR(i << ' ' << f[i]); - - return 0; -} -#endif diff --git a/RTCP/CNProc/src/BandPass.h b/RTCP/CNProc/src/BandPass.h deleted file mode 100644 index fcb62d088c211701e7ca155ed0f03e9de0a00f1d..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BandPass.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef LOFAR_CNPROC_BANDPASS_H -#define LOFAR_CNPROC_BANDPASS_H - -#include <vector> - - -namespace LOFAR { -namespace RTCP { - -#define STATION_FILTER_LENGTH 16384 // Number of filter taps of the station filters. -#define STATION_FFT_SIZE 1024 // The size of the FFT that the station filter does. - -class BandPass { - public: - BandPass(bool correct, unsigned nrChannels); - - const float *correctionFactors() const; - - private: - void computeCorrectionFactors(unsigned nrChannels); - - static const float stationFilterConstants[]; - - std::vector<float> factors; -}; - - -inline const float *BandPass::correctionFactors() const -{ - return &factors[0]; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/BeamFormer.cc b/RTCP/CNProc/src/BeamFormer.cc deleted file mode 100644 index 3c6f3065b476824de505a24832532a8a3f394c4e..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormer.cc +++ /dev/null @@ -1,745 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <BeamFormer.h> - -#include <Interface/MultiDimArray.h> -#include <Interface/Exceptions.h> -#include <Interface/SubbandMetaData.h> -#include <Common/Timer.h> -#include <Common/LofarLogger.h> -#include <cassert> -#include <algorithm> - -#ifndef BEAMFORMER_C_IMPLEMENTATION -#include <BeamFormerAsm.h> -#endif - -namespace LOFAR { -namespace RTCP { - -static NSTimer formBeamsTimer("BeamFormer::formBeams()", true, true); -static NSTimer mergeStationsTimer("BeamFormer::mergeStations()", true, true); - -BeamFormer::BeamFormer(const Parset &parset) -: - itsDelays(parset.nrStations(), BEST_NRBEAMS), - itsParset(parset), - itsStationIndices(initStationIndices(parset)), - itsNrStations(parset.nrStations()), - itsValidStations(BEST_NRBEAMS), - itsNrChannels(parset.nrChannelsPerSubband()), - itsNrSamples(parset.CNintegrationSteps()), - itsChannelBandwidth(parset.subbandBandwidth() / parset.CNintegrationSteps()) -{ - initStationMergeMap(parset.tabList()); -} - -Matrix<std::vector<unsigned> > BeamFormer::initStationIndices(const Parset &parset) -{ - Matrix<std::vector<unsigned> > indexMatrix(parset.nrBeams(), parset.maxNrTABs()); - - for (unsigned sap = 0; sap < parset.nrBeams(); sap++) { - for (unsigned pencil = 0; pencil < parset.nrTABs(sap); pencil++) { - const std::vector<std::string> stations = parset.TABStationList(sap, pencil); - std::vector<unsigned> &indexList = indexMatrix[sap][pencil]; - - indexList.resize(stations.size()); - - for (unsigned s = 0; s < stations.size(); s++) - indexList[s] = parset.stationIndex(stations[s]); - - std::sort(indexList.begin(), indexList.end()); - } - } - - return indexMatrix; -} - -void BeamFormer::initStationMergeMap(const std::vector<unsigned> &station2BeamFormedStation) -{ - if (station2BeamFormedStation.empty()) { - // beamforming disabled -- assignment is 1:1 - itsMergeSourceStations.resize(itsNrStations); - itsMergeDestStations.resize(itsNrStations); - - for (unsigned i = 0; i<itsNrStations; i ++) { - itsMergeSourceStations[i].push_back(i); - itsMergeDestStations[i] = i; - } - } else { - // beamforming enabled - ASSERT(station2BeamFormedStation.size() == itsNrStations); - - unsigned nrMergedStations = *std::max_element(station2BeamFormedStation.begin(), station2BeamFormedStation.end()) + 1; - - itsMergeSourceStations.resize(nrMergedStations); - itsMergeDestStations.resize(nrMergedStations); - - for (unsigned i = 0; i < itsNrStations; i ++) { - unsigned id = station2BeamFormedStation[i]; - - itsMergeSourceStations[id].push_back(i); - } - - for (unsigned i = 0; i < nrMergedStations; i ++) - itsMergeDestStations[i] = itsMergeSourceStations[i][0]; - } - - // reserve the same sizes for the vectors of valid stations - itsValidMergeSourceStations.resize(itsMergeSourceStations.size()); - for (unsigned i = 0; i < itsValidMergeSourceStations.size(); i ++) { - itsValidMergeSourceStations[i].reserve(itsMergeSourceStations[i].size()); - } -} - - -void BeamFormer::mergeStationFlags(const SampleData<> *in, SampleData<> *out) -{ - const unsigned upperBound = static_cast<unsigned>(itsNrSamples * itsNrChannels * BeamFormer::MAX_FLAGGED_PERCENTAGE); - - for (unsigned d = 0; d < itsMergeDestStations.size(); d ++) { - unsigned destStation = itsMergeDestStations[d]; - const std::vector<unsigned> &sourceStations = itsMergeSourceStations[d]; - std::vector<unsigned> &validSourceStations = itsValidMergeSourceStations[d]; - - validSourceStations.clear(); - - if (sourceStations.size() == 1) { - // source and dest are the same (no beamforming), so checking for - // MAX_FLAGGED_PERCENTAGE is unnecessary conservative - validSourceStations.push_back(sourceStations[0]); - } else { - // copy valid stations from sourceStations -> validSourceStations - for (unsigned s = 0; s < sourceStations.size(); s ++) { - unsigned count = 0; - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - count += in->flags[ch][sourceStations[s]].count(); - } - - if (count <= upperBound) { - validSourceStations.push_back(sourceStations[s]); - } - } - } - - // conservative flagging: flag output if any input was flagged - if (validSourceStations.empty()) { - // no valid stations: flag everything - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[ch][destStation].include(0, itsNrSamples); - } - } else { - // some valid stations: merge flags - - if (validSourceStations[0] != destStation || in != out) { - // dest station, which should be first in the list, was not valid - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[ch][destStation] = in->flags[ch][validSourceStations[0]]; - } - } - - for (unsigned stat = 1; stat < validSourceStations.size(); stat ++) { - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[ch][destStation] |= in->flags[ch][validSourceStations[stat]]; - } - } - } - } -} - - -void BeamFormer::computeFlags(const SampleData<> *in, SampleData<> *out, unsigned sap, unsigned firstBeam, unsigned nrBeams) -{ - const unsigned upperBound = static_cast<unsigned>(itsNrSamples * itsNrChannels * BeamFormer::MAX_FLAGGED_PERCENTAGE); - - // conservative flagging: flag output if any input was flagged - for (unsigned pencil = 0; pencil < nrBeams; pencil ++) { - itsValidStations[pencil].clear(); - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[pencil][ch].reset(); - } - - const std::vector<unsigned> &stations = itsStationIndices[sap][firstBeam + pencil]; - - for (unsigned s = 0; s < stations.size(); s ++) { - unsigned stat = stations[s]; - - // determine which stations have too much flagged data - unsigned count = 0; - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - count += in->flags[ch][stat].count(); - } - if (count <= upperBound) { - itsValidStations[pencil].push_back(stat); - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[pencil][ch] |= in->flags[ch][stat]; - } - } - } - } -} - -#ifdef BEAMFORMER_C_IMPLEMENTATION -void BeamFormer::mergeStations(const SampleData<> *in, SampleData<> *out) -{ - for (unsigned i = 0; i < itsValidMergeSourceStations.size(); i ++) { - const unsigned destStation = itsMergeDestStations[i]; - const std::vector<unsigned> &validSourceStations = itsValidMergeSourceStations[i]; - - if (validSourceStations.empty()) - continue; - - if (validSourceStations.size() == 1 && validSourceStations[0] == destStation) - continue; - - float factor = 1.0 / validSourceStations.size(); - - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { - for (unsigned time = 0; time < itsNrSamples; time ++) { - if (!out->flags[ch][destStation].test(time)) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - fcomplex &dest = out->samples[ch][destStation][time][pol]; - - if (validSourceStations[0] != destStation) { - // first station is somewhere else; copy it - dest = in->samples[ch][0][time][pol]; - } - - // combine the stations - for (unsigned stat = 1; stat < validSourceStations.size(); stat ++) - dest += in->samples[ch][validSourceStations[stat]][time][pol]; - - dest *= factor; - } - } - } - } - } -} - -void BeamFormer::computeComplexVoltages(const SampleData<> *in, SampleData<> *out, double baseFrequency, unsigned nrBeams) -{ - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { - double frequency = baseFrequency + ch * itsChannelBandwidth; - - // construct the weights, with zeroes for unused data - fcomplex weights[itsNrStations][nrBeams] __attribute__ ((aligned(128))); - - for (unsigned s = 0; s < itsNrStations; s ++) { - for (unsigned b = 0; b < nrBeams; b ++) - weights[s][b] = makefcomplex(0,0); - - for (unsigned b = 0; b < nrBeams; b ++) { - if (itsValidStations[b].size() > 0) { - double averagingSteps = 1.0 / itsValidStations[b].size(); - double factor = averagingSteps; - - for (unsigned s = 0; s < itsValidStations[b].size(); s++) { - unsigned stat = itsValidStations[b][s]; - - weights[stat][b] = phaseShift(frequency, itsDelays[stat][b]) * factor; - } - } - } - - for (unsigned beam = 0; beam < nrBeams; beam ++) { - for (unsigned time = 0; time < itsNrSamples; time ++) { - // PPF.cc sets flagged samples to 0, so we can always add them. Since flagged - // samples are typically rare, it's faster to not test the flags of every - // sample. This can be sped up by traversing the flags in groups. - if (1 || !out->flags[beam][ch].test(time)) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - fcomplex &dest = out->samples[beam][ch][time][pol]; - double averagingSteps = 1.0 / itsValidStations[beam].size(); - float factor = averagingSteps; - - // combine the stations for this beam - dest = makefcomplex(0, 0); - - std::vector<unsigned> &stations = itsValidStations[beam]; - - for (unsigned s = 0; s < stations.size(); s ++) { - unsigned stat = stations[s]; - fcomplex shift = weights[stat][beam]; - - dest += in->samples[ch][stat][time][pol] * shift; - } - - dest *= factor; - } - } else { - // data is flagged - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - out->samples[beam][ch][time][pol] = makefcomplex(0, 0); - } - } - } - } - } - } -} - -#else // ASM implementation - -// what we can process in one go -static const unsigned NRSTATIONS = 6; -static const unsigned NRBEAMS = 3; -#define BEAMFORMFUNC _beamform_up_to_6_stations_and_3_beams -#define ADDFUNC(nr) _add_ ## nr ## _single_precision_vectors - -// the number of samples to do in one go, such that the -// caches are optimally used. -// -// TIMESTEPSIZE and itsNrSamples need to be a multiple of 16, as the assembly code requires it -static const unsigned TIMESTEPSIZE = 128; - -// convertes from filtereddata to either filtereddata (mergeStations) or beamformeddata (formBeams) -inline void BeamFormer::addUnweighedStations(const SampleData<> *in, SampleData<> *out, const unsigned stationIndices[], unsigned nrStations, unsigned channel, unsigned beamIndex, unsigned timeOffset, unsigned timeLength, bool replace, bool outputHasChannelFirst, float weight) -{ - unsigned outDim1 = outputHasChannelFirst ? channel : beamIndex; - unsigned outDim2 = outputHasChannelFirst ? beamIndex : channel; - - // central beam (#0) has no weights, we can simply add the stations - switch(nrStations) { - case 0: - default: - THROW(CNProcException,"Requested to add " << nrStations << " stations, but can only add 1-6."); - break; - -// possible inputs -#define OUTPUT (reinterpret_cast<float*>(out->samples[outDim1][outDim2][timeOffset].origin())) -#define STATION(nr) (reinterpret_cast<const float*>(in->samples[channel][stationIndices[nr]][timeOffset].origin())) - -// shorthand for the add functions -#define ADDGENERIC(nr,...) ADDFUNC(nr)(OUTPUT, __VA_ARGS__, timeLength * NR_POLARIZATIONS * 2) /* 2 is for real/imag */ - -// adds stations, and the subtotal if needed (if stat!=0) -#define ADD(nr,nrplusone,...) do { \ - if (replace) { \ - ADDGENERIC(nr,__VA_ARGS__); \ - } else { \ - ADDGENERIC(nrplusone,OUTPUT,__VA_ARGS__); \ - } \ - } while(0); - - case 1: - ADD(1, 2, STATION(0)); - break; - - case 2: - ADD(2, 3, STATION(0), STATION(1)); - break; - - case 3: - ADD(3, 4, STATION(0), STATION(1), STATION(2)); - break; - - case 4: - ADD(4, 5, STATION(0), STATION(1), STATION(2), STATION(3)); - break; - - case 5: - ADD(5, 6, STATION(0), STATION(1), STATION(2), STATION(3), STATION(4)); - break; - - case 6: - ADD(6, 7, STATION(0), STATION(1), STATION(2), STATION(3), STATION(4), STATION(5)); - break; - } - - for (unsigned i = 0; i < timeLength; i ++) { - for (unsigned p = 0; p < NR_POLARIZATIONS; p ++) { - out->samples[outDim1][outDim2][timeOffset+i][p] *= weight; - } - } - -} - -void BeamFormer::mergeStations(const SampleData<> *in, SampleData<> *out) -{ - for (unsigned i = 0; i < itsValidMergeSourceStations.size(); i ++) { - unsigned destStation = itsMergeDestStations[i]; - const std::vector<unsigned> &validSourceStations = itsValidMergeSourceStations[i]; - - if (validSourceStations.empty()) { - continue; - } - - if (validSourceStations.size() == 1 && validSourceStations[0] == destStation) { - continue; - } - - unsigned nrStations = validSourceStations.size(); - float factor = 1.0 / nrStations; - bool destValid = validSourceStations[0] == destStation; - - // do the actual beamforming - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { - unsigned processStations = NRSTATIONS; - unsigned processTime = TIMESTEPSIZE; - bool replaceDest = !destValid && in == out; // if true, ignore values at destStation - - // add everything to the first station in the list - for (unsigned stat = replaceDest ? 0 : 1; stat < nrStations; stat += processStations) { - processStations = std::min(NRSTATIONS, nrStations - stat); - - for (unsigned time = 0; time < itsNrSamples; time += processTime) { - processTime = std::min(TIMESTEPSIZE, itsNrSamples - time); - - addUnweighedStations(in, out, &validSourceStations[stat], processStations, ch, destStation, time, processTime, replaceDest, true, factor); - } - - replaceDest = false; - } - } - } -} - -void BeamFormer::computeComplexVoltages(const SampleData<> *in, SampleData<> *out, double baseFrequency, unsigned nrBeams) -{ - // This routine does the actual beam forming. - // - // It is optimised to form at most NRBEAMS beams. Every beam is formed out of a set of stations. - // - // Several special cases are dealt with: - // 1) beams formed out of 0 stations (because all stations were flagged) - // 2) beams formed out of 1 station with 0 delay (fly's eye) - // - // These special cases are 'peeled off' the set of beams to form. Since NRBEAMS == 3, this - // leaves us with either a continuous subset ([0], [1], [2], [0,1], [1,2], [0,1,2]) - // or a single special case ([0,2]) of beams that still need to be formed after dealing - // with the special cases. - // - // Because beam forming might not use all stations at all, we also keep track - // of the first and the last station used for beam forming. Unused stations in between - // get assigned a weight of 0, so optimal performance is only obtained if the set of - // stations to add is continuous. - - ASSERT( nrBeams <= NRBEAMS ); // we'd run out of our structures otherwise - ASSERT( NRBEAMS == 3 ); // we rely on this below for special cases - - // determine the set of beams to form - bool beamForm[NRBEAMS] = { false, false, false }; - - for (unsigned b = 0; b < nrBeams; b ++) { - // special case: nothing to do (all stations are fully flagged, for instance) - bool empty = itsValidStations[b].size() == 0; - - // special case: fly's eye: a pencil beam with zero delay and using only a single station - bool flysEye = itsValidStations[b].size() == 1 && itsDelays[itsValidStations[b][0]][b] == 0.0; - - if (empty) - flagBeam(out, b); - else if (flysEye) - computeFlysEye(in, out, b); - else - beamForm[b] = true; - } - - // determine bounds on the stations to use and the beams to form - unsigned nrBeamsToForm = 0; - unsigned firstBeam = 0, lastBeam = 0; - unsigned firstStation = 0, lastStation = 0; - - for (unsigned b = 0; b < nrBeams; b ++) { - if (beamForm[b]) { - // first and last station for this beam -- use the fact that itsValidStations is sorted - unsigned fs = itsValidStations[b][0]; - unsigned ls = itsValidStations[b][itsValidStations[b].size()-1]; - - if (nrBeamsToForm == 0) { - firstBeam = b; - lastBeam = b; - firstStation = fs; - lastStation = ls; - } else { - lastBeam = b; - firstStation = std::min(firstStation, fs); - lastStation = std::max(lastStation, ls); - } - - nrBeamsToForm++; - } - } - - if (nrBeamsToForm == 0) - return; // nothing (further) to do - - // construct the weights, with zeros for unused data - fcomplex weights[lastStation + 1][nrBeamsToForm] __attribute__ ((aligned(128))); - - // do the actual beamforming - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { - double frequency = baseFrequency + ch * itsChannelBandwidth; - - // Stations not in itsValidStations are either not used for beam forming - // or have too much flagged samples. They will get a weight of 0. - memset(&weights[0][0], 0, sizeof weights); - - // Set the weights we do have. - for (unsigned b = 0, beamIndex = 0; b < nrBeams; b ++) { - if (beamForm[b]) { - double averagingSteps = 1.0 / itsValidStations[b].size(); - double factor = averagingSteps; // add multiplication factors as needed - - for (unsigned s = 0; s < itsValidStations[b].size(); s++) { - unsigned stat = itsValidStations[b][s]; - - weights[stat][beamIndex] = phaseShift(frequency, itsDelays[stat][b]) * factor; - } - - beamIndex++; - } - } - - unsigned processStations = NRSTATIONS; - unsigned processTime = TIMESTEPSIZE; - - // Iterate over the same portions of the input data as many times as possible to - // fully exploit the caches. - - // 2 cases: - // - consecutive beams to form (form02 is false) - // - form beam 0 and 2 (form02 is true): use a larger stride to skip beam 1 in the output - // form only beams 0 and 2? - const bool form02 = beamForm[0] && !beamForm[1] && beamForm[2]; - - // stride between beams in the output - const unsigned out_stride = out->samples.strides()[0] * sizeof out->samples[0][0][0][0] * (form02 ? 2 : 1); - - // stride between stations in the input - const unsigned in_stride = in->samples[0].strides()[0] * sizeof in->samples[0][0][0][0]; - - // stride between weight sets for different stations - const unsigned weights_stride = (&weights[1][0] - &weights[0][0]) * sizeof weights[0][0]; - - for (unsigned stat = firstStation; stat <= lastStation; stat += processStations) { - processStations = std::min(NRSTATIONS, lastStation - stat + 1); - - for (unsigned time = 0; time < itsNrSamples; time += processTime) { - processTime = std::min(TIMESTEPSIZE, itsNrSamples - time); - - // beam form - BEAMFORMFUNC( - out->samples[firstBeam][ch][time].origin(), - out_stride, - - in->samples[ch][stat][time].origin(), - in_stride, - - // weights are always consecutive and start at index 0 - &weights[stat][0], - weights_stride, - - processTime, - stat == 0, - processStations, - nrBeamsToForm - ); - } - } - } -} - -#endif - -void BeamFormer::computeDelays(const SubbandMetaData *metaData, unsigned sap, unsigned firstBeam, unsigned nrBeams) -{ - // Calculate the delays for each station for this integration period. - - // We assume that the delay compensation has already occurred for the central beam. Also, - // we use the same delay for all time samples. This could be interpolated for TIMESTEPSIZE - // portions, as used in computeComplexVoltages. - - /* - // no need to zero the data, because delays for unused stations won't be accessed - - for (unsigned stat = 0; stat < itsNrStations; stat ++) - for (unsigned pencil = 0; pencil < nrBeams; pencil ++) - itsDelays[stat][pencil] = 0.0f; - */ - - for (unsigned pencil = 0; pencil < nrBeams; pencil ++) { - unsigned pencilIndex = firstBeam + pencil; - const std::vector<unsigned> &stationIndices = itsStationIndices[sap][pencilIndex]; - - // adding no stations means adding all stations - for (unsigned s = 0; s < stationIndices.size(); s++ ) { - // if we need to add all stations, no lookups are necessary - unsigned stat = stationIndices[s]; - - // we already compensated for the delay for the first beam - const SubbandMetaData::beamInfo ¢ralBeamInfo = metaData->beams(stat)[0]; - double compensatedDelay = (centralBeamInfo.delayAfterEnd + centralBeamInfo.delayAtBegin) * 0.5; - - const SubbandMetaData::beamInfo &beamInfo = metaData->beams(stat)[pencilIndex + 1]; - - // subtract the delay that was already compensated for - itsDelays[stat][pencil] = (beamInfo.delayAfterEnd + beamInfo.delayAtBegin) * 0.5 - compensatedDelay; - } - } -} - -void BeamFormer::flagBeam(SampleData<> *out, unsigned beam) { - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[beam][ch].include(0, itsNrSamples); - } - memset(out->samples[beam].origin(), 0, out->samples[beam].num_elements() * sizeof out->samples[0][0][0][0]); -} - - -void BeamFormer::computeFlysEye(const SampleData<> *in, SampleData<> *out, unsigned beam) { - unsigned src = itsValidStations[beam][0]; - - // copy station src to dest - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[beam][ch] = in->flags[ch][src]; - } - - for (unsigned ch = 0; ch < itsNrChannels; ch ++) - memcpy(out->samples[beam][ch].origin(), - in->samples[ch][src].origin(), - in->samples[ch].strides()[0] * sizeof in->samples[0][0][0][0]); -} - -void BeamFormer::mergeStations(SampleData<> *sampleData) -{ - ASSERT(sampleData->samples.shape()[0] == itsNrChannels); - ASSERT(sampleData->samples.shape()[1] == itsNrStations); - ASSERT(sampleData->samples.shape()[2] >= itsNrSamples); - ASSERT(sampleData->samples.shape()[3] == NR_POLARIZATIONS); - - mergeStationsTimer.start(); - mergeStationFlags(sampleData, sampleData); - mergeStations(sampleData, sampleData); - mergeStationsTimer.stop(); -} - -void BeamFormer::formBeams(const SubbandMetaData *metaData, SampleData<> *sampleData, BeamFormedData *beamFormedData, unsigned subband, unsigned sap, unsigned firstBeam, unsigned nrBeams) -{ - ASSERT(sampleData->samples.shape()[0] == itsNrChannels); - ASSERT(sampleData->samples.shape()[1] == itsNrStations); - ASSERT(sampleData->samples.shape()[2] >= itsNrSamples); - ASSERT(sampleData->samples.shape()[3] == NR_POLARIZATIONS); - - ASSERT(nrBeams > 0); - ASSERT(nrBeams <= BEST_NRBEAMS); - -#if !defined BEAMFORMER_C_IMPLEMENTATION - ASSERT(TIMESTEPSIZE % 16 == 0); - - if (itsNrSamples % 16 > 0) { - // for asm routines - THROW(CNProcException, "nrSamplesPerIntegration (" << itsNrSamples << ") needs to be a multiple of 16"); - } -#endif - - // TODO: fetch a list of stations to beam form. for now, we assume - // we use all stations - // - - // take the 2nd PPF into account, which shifts the center down frequency by half - // a channel. - double baseFrequency = itsParset.channel0Frequency(subband); - - formBeamsTimer.start(); - - // perform beam forming - computeDelays(metaData, sap, firstBeam, nrBeams); - computeFlags(sampleData, beamFormedData, sap, firstBeam, nrBeams); - computeComplexVoltages(sampleData, beamFormedData, baseFrequency, nrBeams); - - formBeamsTimer.stop(); -} - -void BeamFormer::preTransposeBeam(const BeamFormedData *in, PreTransposeBeamFormedData *out, unsigned inbeam) -{ - // split polarisations and real/imaginary part of beams - ASSERT(in->samples.shape()[0] > inbeam); - ASSERT(in->samples.shape()[1] == itsNrChannels); - ASSERT(in->samples.shape()[2] >= itsNrSamples); - ASSERT(in->samples.shape()[3] == NR_POLARIZATIONS); - - ASSERT(out->samples.shape()[0] == NR_POLARIZATIONS * 2); - ASSERT(out->samples.shape()[1] == itsNrChannels); - ASSERT(out->samples.shape()[2] >= itsNrSamples); - - ASSERT(NR_POLARIZATIONS == 2); - - for (unsigned c = 0; c < itsNrChannels; c ++) { - out->flags[c] = in->flags[inbeam][c]; - } - -#if 0 - /* reference implementation */ - for (unsigned c = 0; c < itsNrChannels; c ++) - for (unsigned t = 0; t < itsNrSamples; t ++) { - out->samples[0][c][t] = real(in->samples[inbeam][c][t][0]); - out->samples[1][c][t] = imag(in->samples[inbeam][c][t][0]); - out->samples[2][c][t] = real(in->samples[inbeam][c][t][1]); - out->samples[3][c][t] = imag(in->samples[inbeam][c][t][1]); - } -#else - /* in_stride == 1 */ - /* out_stride == 1 */ - - for (unsigned c = 0; c < itsNrChannels; c ++) { - const fcomplex *inb = &in->samples[inbeam][c][0][0]; - float *outbXr, *outbXi, *outbYr, *outbYi; - - outbXr = &out->samples[0][c][0]; - outbXi = &out->samples[1][c][0]; - outbYr = &out->samples[2][c][0]; - outbYi = &out->samples[3][c][0]; - - for (unsigned s = 0; s < itsNrSamples; s ++) { - *outbXr = real(*inb); - *outbXi = imag(*inb); - inb++; - - *outbYr = real(*inb); - *outbYi = imag(*inb); - inb++; - - outbXr ++; - outbXi ++; - outbYr ++; - outbYi ++; - } - } -#endif -} - - -void BeamFormer::postTransposeBeam(const TransposedBeamFormedData *in, FinalBeamFormedData *out, unsigned sb, unsigned nrChannels, unsigned nrSamples) -{ - ASSERT(in->samples.shape()[0] > sb); - ASSERT(in->samples.shape()[1] == nrChannels); - ASSERT(in->samples.shape()[2] >= nrSamples); - - ASSERT(out->samples.shape()[0] >= nrSamples); - ASSERT(out->samples.shape()[1] > sb); - ASSERT(out->samples.shape()[2] == nrChannels); - - out->flags[sb] = in->flags[sb]; - -#if defined USE_VALGRIND // TODO: if "| 2" is removed, this should not be necessary anymore - for (unsigned t = nrSamples; t < out->samples.shape()[0]; t ++) - for (unsigned c = 0; c < nrChannels; c ++) - out->samples[t][sb][c] = 0; -#endif - -#if 1 - /* reference implementation */ - for (unsigned t = 0; t < nrSamples; t ++) - for (unsigned c = 0; c < nrChannels; c ++) - out->samples[t][sb][c] = in->samples[sb][c][t]; -#else -#endif -} - -} // namespace RTCP -} // namespace LOFAR - - diff --git a/RTCP/CNProc/src/BeamFormer.h b/RTCP/CNProc/src/BeamFormer.h deleted file mode 100644 index fe5ecbf99cc971c5cef5a962be00f9981fb5fe14..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormer.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef LOFAR_CNPROC_BEAMFORMER_H -#define LOFAR_CNPROC_BEAMFORMER_H - -#include <vector> -#include <cmath> - -#include <Interface/Parset.h> -#include <Interface/StreamableData.h> -#include <Interface/BeamFormedData.h> -#include <Interface/SubbandMetaData.h> -#include <BandPass.h> -#include <CN_Math.h> - -#if 0 || !defined HAVE_BGP -#define BEAMFORMER_C_IMPLEMENTATION -#endif - -namespace LOFAR { -namespace RTCP { - -/* - - This beam former supports three modes: - - 1) merging stations, using the mergeStations function. - 2) creating tied-array beams (TABs), using the formBeams function. - 3) creating a 'fly's eye', which is a variation on mode 2, except - that each station creates its own beam (i.e. the data is copied). - - Merging stations - ------------------------- - - Stations are merged in-place according to the station2BeamFormedStation array, which is a mapping - source -> dest of length nrStations. Multiple sources with the same dest are added and stored at dest. - If the station2BeamFormedStation array is empty, source and dest are mapped 1:1 and no stations are merged. - - Creating tied-array beams - ------------------------- - - Pencil beams are created by specifying their number as nrBeams in the formBeams function, and by the - delays as provided by the metaData given to formBeams. If nrTABs = 0, the target data structure - remains untouched. - -*/ - -class BeamFormer -{ - public: - static const float MAX_FLAGGED_PERCENTAGE = 1.0f; - - // ideal number of beams that can be calculated in one go - static const unsigned BEST_NRBEAMS = 3; - - BeamFormer(const Parset &parset); - - // merges stations into superstations in sampleData - void mergeStations( SampleData<> *sampleData ); - - // fills beamFormedData with pencil beams - void formBeams( const SubbandMetaData *metaData, SampleData<> *sampleData, BeamFormedData *beamFormedData, unsigned subband, unsigned sap, unsigned firstBeam, unsigned nrBeams ); - - // rearrange dimensions in preparation for transpose - void preTransposeBeam( const BeamFormedData *in, PreTransposeBeamFormedData *out, unsigned inbeam ); - - // rearrange dimensions into final order after transpose - void postTransposeBeam( const TransposedBeamFormedData *in, FinalBeamFormedData *out, unsigned sb, unsigned nrChannels, unsigned nrSamples ); - - // return the station mapping - std::vector<unsigned> &getStationMapping(); - - Matrix<double> itsDelays; // [itsNrStations][BEST_NRBEAMS] - private: - unsigned calcNrBeamFormedStations(); - Matrix<std::vector<unsigned> > initStationIndices( const Parset &parset ); - void initStationMergeMap( const std::vector<unsigned> &station2BeamFormedStation ); - - // extracts the delays from the metaData, and transforms them if necessary - void computeDelays( const SubbandMetaData *metaData, unsigned sap, unsigned firstBeam, unsigned nrBeams ); - - dcomplex phaseShift( const double frequency, const double delay ) const; - - void addUnweighedStations( const SampleData<> *in, SampleData<> *out, const unsigned stationIndices[], unsigned nrStations, unsigned channel, unsigned beamIndex, unsigned timeOffset, unsigned timeLength, bool first, bool outputHasChannelFirst, float weight ); - - // sets the flags in beamFormedData, and decides which stations should be added - void computeFlags( const SampleData<> *sampleData, SampleData<> *beamFormedData, unsigned sap, unsigned firstBeam, unsigned nrBeams ); - void mergeStationFlags( const SampleData<> *in, SampleData<> *out ); - - // the actual beam former - void mergeStations( const SampleData<> *in, SampleData<> *out ); - void computeComplexVoltages( const SampleData<> *in, SampleData<> *out, double baseFrequency, unsigned nrBeams ); - void flagBeam(SampleData<> *out, unsigned beam); - void computeFlysEye(const SampleData<> *in, SampleData<> *out, unsigned beam); - - const Parset &itsParset; - - const Matrix<std::vector<unsigned> > itsStationIndices; - const unsigned itsNrStations; - - Vector<std::vector<unsigned> > itsValidStations; - const unsigned itsNrChannels; - const unsigned itsNrSamples; - const double itsChannelBandwidth; - - // a station is 'valid' if the samples do not contain too much flagged data. invalid stations - // are ignored by the beamformer. - - std::vector<std::vector<unsigned> > itsMergeSourceStations; // [i] = [a,b,c] => beam i is a+b+c - std::vector<unsigned> itsMergeDestStations; // [i] = a => beam i is stored at a - std::vector<std::vector<unsigned> > itsValidMergeSourceStations; // subset of itsMergeSourceStations, - // containing only valid stations -}; - -inline dcomplex BeamFormer::phaseShift( const double frequency, const double delay ) const -{ - const double phaseShift = delay * frequency; - const double phi = -2 * M_PI * phaseShift; - - return cosisin(phi); -} - -inline std::vector<unsigned> &BeamFormer::getStationMapping() { - return itsMergeDestStations; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/BeamFormerAsm.S b/RTCP/CNProc/src/BeamFormerAsm.S deleted file mode 100644 index 680e37ebf8b0322aad7b79aa09df167f1b1236b3..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormerAsm.S +++ /dev/null @@ -1,486 +0,0 @@ -#if defined HAVE_BGP - -.align 5 - -.global _beamform_3stations_6beams -_beamform_3stations_6beams: - - srwi 9,9,1 - addi 9,9,-1 - mtctr 9 - - subi 1,1,12*4 # push call-saved registers - li 0,-16 - - stmw 20,0(1) - - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 20,1,0 - stfpdux 21,1,0 - stfpdux 22,1,0 - stfpdux 23,1,0 - stfpdux 24,1,0 - stfpdux 25,1,0 - stfpdux 26,1,0 - stfpdux 27,1,0 - stfpdux 28,1,0 - stfpdux 29,1,0 - stfpdux 30,1,0 - stfpdux 31,1,0 - - mr 23,5 - add 24,23,6 - add 25,24,6 - - mr 26,3 - add 27,26,4 - add 28,27,4 - add 29,28,4 - add 30,29,4 - add 31,30,4 - - li 0,8 - addi 11,8,-5*8 - - lfpsx 0,0,7 - lfpsux 1,7,0 - lfpsux 2,7,0 - lfpsux 3,7,0 - lfpsux 4,7,0 - lfpsux 5,7,0 - lfpsux 6,7,11 - lfpsux 7,7,0 - lfpsux 8,7,0 - lfpsux 9,7,0 - lfpsux 10,7,0 - lfpsux 11,7,0 - lfpsux 12,7,11 - lfpsux 13,7,0 - lfpsux 14,7,0 - lfpsux 15,7,0 - lfpsux 16,7,0 - lfpsux 17,7,0 - - li 8,-8 - li 9,32 - cmpwi 0,10,0 - beq not_first_time_3_6 - -#define NR_STATIONS 3 -#define FIRST_TIME -#include "BeamFormerAsm3St6Bm.inc" - b epilogue_3_6 - -not_first_time_3_6: - -#undef FIRST_TIME -#include "BeamFormerAsm3St6Bm.inc" -#undef NR_STATIONS - -epilogue_3_6: - - li 0,16 # restore call-saved registers - lfpdx 31,0,1 - lfpdux 30,1,0 - lfpdux 29,1,0 - lfpdux 28,1,0 - lfpdux 27,1,0 - lfpdux 26,1,0 - lfpdux 25,1,0 - lfpdux 24,1,0 - lfpdux 23,1,0 - lfpdux 22,1,0 - lfpdux 21,1,0 - lfpdux 20,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - - lmw 20,16(1) - addi 1,1,12*4+16 # reset stack pointer - - blr - - -.align 5 - -.global _beamform_up_to_6_stations_and_3_beams -_beamform_up_to_6_stations_and_3_beams: - - lwz 11,8(1) - slwi 10,10,2 - slwi 11,11,3 - add 11,11,10 - lwz 10,12(1) - addis 11,11,jump_table@ha - slwi 10,10,6 - add 11,11,10 - lwz 11,jump_table@l(11) - - srwi 9,9,1 - addi 9,9,-1 - - subi 1,1,12*4 # push call-saved registers - li 0,-16 - - stmw 20,0(1) - - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 20,1,0 - stfpdux 21,1,0 - stfpdux 22,1,0 - stfpdux 23,1,0 - stfpdux 24,1,0 - stfpdux 25,1,0 - stfpdux 26,1,0 - stfpdux 27,1,0 - stfpdux 28,1,0 - stfpdux 29,1,0 - stfpdux 30,1,0 - stfpdux 31,1,0 - - mr 21,3 - add 23,21,4 - add 25,23,4 - - li 0,8 - - mtctr 11 - bctr - -first_time_1_1: - -#define NR_BEAMS 1 -#define NR_STATIONS 1 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_1_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_2_1: - -#define NR_STATIONS 2 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_2_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_3_1: - -#define NR_STATIONS 3 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_3_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_4_1: - -#define NR_STATIONS 4 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_4_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_5_1: - -#define NR_STATIONS 5 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_5_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_6_1: - -#define NR_STATIONS 6 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_6_1: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" -#undef NR_STATIONS -#undef NR_BEAMS - b epilogue - -first_time_1_2: - -#define NR_BEAMS 2 -#define NR_STATIONS 1 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_1_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_2_2: - -#define NR_STATIONS 2 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_2_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_3_2: - -#define NR_STATIONS 3 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_3_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_4_2: - -#define NR_STATIONS 4 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_4_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_5_2: - -#define NR_STATIONS 5 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_5_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_6_2: - -#define NR_STATIONS 6 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_6_2: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" -#undef NR_STATIONS -#undef NR_BEAMS - b epilogue - -first_time_1_3: - -#define NR_BEAMS 3 -#define NR_STATIONS 1 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_1_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_2_3: - -#define NR_STATIONS 2 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_2_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_3_3: - -#define NR_STATIONS 3 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_3_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_4_3: - -#define NR_STATIONS 4 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_4_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_5_3: - -#define NR_STATIONS 5 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_5_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue -#undef NR_STATIONS - -first_time_6_3: - -#define NR_STATIONS 6 -#define FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" - b epilogue - -not_first_time_6_3: - -#undef FIRST_TIME -#include "BeamFormerAsm6St3Bm.inc" -#undef NR_STATIONS -#undef NR_BEAMS - -epilogue: - - li 0,16 # restore call-saved registers - lfpdx 31,0,1 - lfpdux 30,1,0 - lfpdux 29,1,0 - lfpdux 28,1,0 - lfpdux 27,1,0 - lfpdux 26,1,0 - lfpdux 25,1,0 - lfpdux 24,1,0 - lfpdux 23,1,0 - lfpdux 22,1,0 - lfpdux 21,1,0 - lfpdux 20,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - - lmw 20,16(1) - addi 1,1,12*4+16 # reset stack pointer - - blr - -jump_table: - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long illegal, illegal - .long not_first_time_1_1, first_time_1_1 - .long not_first_time_2_1, first_time_2_1 - .long not_first_time_3_1, first_time_3_1 - .long not_first_time_4_1, first_time_4_1 - .long not_first_time_5_1, first_time_5_1 - .long not_first_time_6_1, first_time_6_1 - .long illegal, illegal - .long illegal, illegal - .long not_first_time_1_2, first_time_1_2 - .long not_first_time_2_2, first_time_2_2 - .long not_first_time_3_2, first_time_3_2 - .long not_first_time_4_2, first_time_4_2 - .long not_first_time_5_2, first_time_5_2 - .long not_first_time_6_2, first_time_6_2 - .long illegal, illegal - .long illegal, illegal - .long not_first_time_1_3, first_time_1_3 - .long not_first_time_2_3, first_time_2_3 - .long not_first_time_3_3, first_time_3_3 - .long not_first_time_4_3, first_time_4_3 - .long not_first_time_5_3, first_time_5_3 - .long not_first_time_6_3, first_time_6_3 - .long illegal, illegal - -illegal: - trap - b epilogue - -#endif diff --git a/RTCP/CNProc/src/BeamFormerAsm.h b/RTCP/CNProc/src/BeamFormerAsm.h deleted file mode 100644 index 2a8399e10dcd7e39d0f33354be9b8c19dd8afc44..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormerAsm.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef LOFAR_CNPROC_BEAMFORMERASM_H -#define LOFAR_CNPROC_BEAMFORMERASM_H - -#if defined HAVE_BGP - -#include <Interface/BGPAsm.h> -#include <cstring> - -namespace LOFAR { -namespace RTCP { - -extern "C" { - -#if 0 -void _beamform_3beams( - /* r3 */ fcomplex *dst, - /* r4 */ size_t dst_beam_stride, - /* r5 */ unsigned nr_stations, - /* r6 */ unsigned nr_times, - /* r7 */ fcomplex *samples, - /* r8 */ unsigned station_samples_stride, - /* r9 */ fcomplex *weights, - /* r10 */ unsigned station_weights_stride -); - -void _beamform_1station_1beam( - /* r3 */ fcomplex *complex_voltages, - /* r4 */ const fcomplex *samples, - /* r5 */ const fcomplex *weight, - /* r6 */ unsigned nr_times -); - -void _beamform_2stations_1beam( - /* r3 */ fcomplex *complex_voltages, - /* r4 */ const fcomplex *samples, - /* r5 */ unsigned samples_stride, - /* r6 */ const fcomplex *weight, - /* r7 */ unsigned weights_stride, - /* r8 */ unsigned nr_times -); -#endif - -void *_beamform_3stations_6beams( - /* r3 */ fcomplex *complex_voltages, - /* r4 */ unsigned complex_voltages_stride, - /* r5 */ const fcomplex *samples, - /* r6 */ unsigned samples_stride, - /* r7 */ const fcomplex *weights, - /* r8 */ unsigned weights_stride, - /* r9 */ unsigned nr_times, - /* r10 */ bool first_time // if !first_time, then add to complex_voltages -); - -void *_beamform_up_to_6_stations_and_3_beams( - /* r3 */ fcomplex *complex_voltages, - /* r4 */ unsigned complex_voltages_stride, - /* r5 */ const fcomplex *samples, - /* r6 */ unsigned samples_stride, - /* r7 */ const fcomplex *weights, - /* r8 */ unsigned weights_stride, - /* r9 */ unsigned nr_times, - /* r10 */ bool first_time, // if !first_time, then add to complex_voltages - /* 8(r1) */ unsigned nr_stations, // 1-6 - /* 12(r1) */ unsigned nr_beams // 1-3 -); - -#if 0 -void _beamform_4stations_3beams( - /* r3 */ fcomplex *complex_voltages, - /* r4 */ unsigned complex_voltages_stride, - /* r5 */ const fcomplex *samples, - /* r6 */ unsigned samples_stride, - /* r7 */ const fcomplex *weights, - /* r8 */ unsigned weights_stride, - /* r9 */ unsigned nr_times -); - -void _beamform_6beams_2times( - /* r3 */ fcomplex *dst, - /* r4 */ size_t dst_beam_stride, - /* r5 */ unsigned nr_stations, - /* r6 */ fcomplex *samples, - /* r7 */ unsigned station_samples_stride, - /* r8 */ fcomplex *weights, - /* r9 */ unsigned station_weights_stride -); -#endif - -} // extern "C" - -} // namespace LOFAR::RTCP -} // namespace LOFAR - -#endif - -#endif diff --git a/RTCP/CNProc/src/BeamFormerAsm3St6Bm.inc b/RTCP/CNProc/src/BeamFormerAsm3St6Bm.inc deleted file mode 100644 index 0b61bea49e3dad74e85975e0aae563ea68de4bb0..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormerAsm3St6Bm.inc +++ /dev/null @@ -1,503 +0,0 @@ - - # phase 0 - - lfpsx 26,0,23 # stat 0, time 0 - - lfpsx 27,0,24 # stat 1, time 0 - - lfpsx 22,0,26 # beam 0, time 0 - - # phase 1 - - lfpsx 28,0,25 # stat 2, time 0 - lfpsx 23,0,27 # beam 1, time 0 - - fxcpmadd 22,26,0,22 # stat 0, beam 0, time 0 - lfpsx 24,0,28 # beam 2, time 0 - lfpsux 29,23,0 # stat 0, time 1 - - fxcxnpma 22,26,0,22 # stat 0, beam 0, time 0 - fxcpmadd 23,26,1,23 # stat 0, beam 1, time 0 - lfpsx 25,0,29 # beam 3, time 0 - - fxcpmadd 22,27,6,22 # stat 1, beam 0, time 0 - fxcxnpma 23,26,1,23 # stat 0, beam 1, time 0 - fxcpmadd 24,26,2,24 # stat 0, beam 2, time 0 - lfpsx 18,0,30 # beam 4, time 0 - lfpsux 30,24,0 # stat 1, time 1 - - fxcxnpma 22,27,6,22 # stat 1, beam 0, time 0 - fxcpmadd 23,27,7,23 # stat 1, beam 1, time 0 - fxcxnpma 24,26,2,24 # stat 0, beam 2, time 0 - fxcpmadd 25,26,3,25 # stat 0, beam 3, time 0 - lfpsx 19,0,31 # beam 5, time 0 - - fxcpmadd 22,28,12,22 # stat 2, beam 0, time 0 - fxcxnpma 23,27,7,23 # stat 1, beam 1, time 0 - fxcpmadd 24,27,8,24 # stat 1, beam 2, time 0 - fxcxnpma 25,26,3,25 # stat 0, beam 3, time 0 - fxcpmadd 18,26,4,18 # stat 0, beam 4, time 0 - lfpsux 20,26,0 # beam 0, time 1 - - # phase 2 - - fxcxnpma 22,28,12,22 # stat 2, beam 0, time 0 - lfpsux 31,25,0 # stat 2, time 1 - fxcpmadd 23,28,13,23 # stat 2, beam 1, time 0 - fxcxnpma 24,27,8,24 # stat 1, beam 2, time 0 - fxcpmadd 25,27,9,25 # stat 1, beam 3, time 0 - fxcxnpma 18,26,4,18 # stat 0, beam 4, time 0 - fxcpmadd 19,26,5,19 # stat 0, beam 5, time 0 - lfpsux 21,27,0 # beam 1, time 1 - - fxcpmadd 20,29,0,20 # stat 0, beam 0, time 1 - stfpsx 22,26,8 # beam 0, time 0 - fxcxnpma 23,28,13,23 # stat 2, beam 1, time 0 - lfpsux 22,28,0 # beam 2, time 1 - fxcpmadd 24,28,14,24 # stat 2, beam 2, time 0 - fxcxnpma 25,27,9,25 # stat 1, beam 3, time 0 - fxcpmadd 18,27,10,18 # stat 1, beam 4, time 0 - fxcxnpma 19,26,5,19 # stat 0, beam 5, time 0 - lfpsux 26,23,0 # stat 0, time 2 - - fxcxnpma 20,29,0,20 # stat 0, beam 0, time 1 - fxcpmadd 21,29,1,21 # stat 0, beam 1, time 1 - stfpsx 23,27,8 # beam 1, time 0 - fxcxnpma 24,28,14,24 # stat 2, beam 2, time 0 - lfpsux 23,29,0 # beam 3, time 1 - fxcpmadd 25,28,15,25 # stat 2, beam 3, time 0 - fxcxnpma 18,27,10,18 # stat 1, beam 4, time 0 - fxcpmadd 19,27,11,19 # stat 1, beam 5, time 0 - - fxcpmadd 20,30,6,20 # stat 1, beam 0, time 1 - fxcxnpma 21,29,1,21 # stat 0, beam 1, time 1 - fxcpmadd 22,29,2,22 # stat 0, beam 2, time 1 - stfpsx 24,28,8 # beam 2, time 0 - fxcxnpma 25,28,15,25 # stat 2, beam 3, time 0 - lfpsux 24,30,0 # beam 4, time 1 - fxcpmadd 18,28,16,18 # stat 2, beam 4, time 0 - fxcxnpma 19,27,11,19 # stat 1, beam 5, time 0 - lfpsux 27,24,0 # stat 1, time 2 - - fxcxnpma 20,30,6,20 # stat 1, beam 0, time 1 - fxcpmadd 21,30,7,21 # stat 1, beam 1, time 1 - fxcxnpma 22,29,2,22 # stat 0, beam 2, time 1 - fxcpmadd 23,29,3,23 # stat 0, beam 3, time 1 - stfpsx 25,29,8 # beam 3, time 0 - fxcxnpma 18,28,16,18 # stat 2, beam 4, time 0 - lfpsux 25,31,0 # beam 5, time 1 - fxcpmadd 19,28,17,19 # stat 2, beam 5, time 0 - - fxcpmadd 20,31,12,20 # stat 2, beam 0, time 1 - fxcxnpma 21,30,7,21 # stat 1, beam 1, time 1 - fxcpmadd 22,30,8,22 # stat 1, beam 2, time 1 - fxcxnpma 23,29,3,23 # stat 0, beam 3, time 1 - fxcpmadd 24,29,4,24 # stat 0, beam 4, time 1 - stfpsx 18,30,8 # beam 4, time 0 - fxcxnpma 19,28,17,19 # stat 2, beam 5, time 0 - lfpsux 18,26,0 # beam 0, time 2 - - # phase 3 - - fxcxnpma 20,31,12,20 # stat 2, beam 0, time 1 - lfpsux 28,25,0 # stat 2, time 2 - fxcpmadd 21,31,13,21 # stat 2, beam 1, time 1 - fxcxnpma 22,30,8,22 # stat 1, beam 2, time 1 - fxcpmadd 23,30,9,23 # stat 1, beam 3, time 1 - fxcxnpma 24,29,4,24 # stat 0, beam 4, time 1 - stfpsx 19,31,8 # beam 5, time 0 - fxcpmadd 25,29,5,25 # stat 0, beam 5, time 1 - lfpsux 19,27,0 # beam 1, time 2 - - fxcpmadd 18,26,0,18 # stat 0, beam 0, time 2 - stfpsx 20,26,8 # beam 0, time 1 - fxcxnpma 21,31,13,21 # stat 2, beam 1, time 1 - lfpsux 20,28,0 # beam 2, time 2 - fxcpmadd 22,31,14,22 # stat 2, beam 2, time 1 - fxcxnpma 23,30,9,23 # stat 1, beam 3, time 1 - fxcpmadd 24,30,10,24 # stat 1, beam 4, time 1 - fxcxnpma 25,29,5,25 # stat 0, beam 5, time 1 - lfpsux 29,23,0 # stat 0, time 3 - - fxcxnpma 18,26,0,18 # stat 0, beam 0, time 2 - fxcpmadd 19,26,1,19 # stat 0, beam 1, time 2 - stfpsx 21,27,8 # beam 1, time 1 - fxcxnpma 22,31,14,22 # stat 2, beam 2, time 1 - lfpsux 21,29,0 # beam 3, time 2 - fxcpmadd 23,31,15,23 # stat 2, beam 3, time 1 - fxcxnpma 24,30,10,24 # stat 1, beam 4, time 1 - fxcpmadd 25,30,11,25 # stat 1, beam 5, time 1 - - fxcpmadd 18,27,6,18 # stat 1, beam 0, time 2 - fxcxnpma 19,26,1,19 # stat 0, beam 1, time 2 - fxcpmadd 20,26,2,20 # stat 0, beam 2, time 2 - stfpsx 22,28,8 # beam 2, time 1 - fxcxnpma 23,31,15,23 # stat 2, beam 3, time 1 - lfpsux 22,30,0 # beam 4, time 2 - fxcpmadd 24,31,16,24 # stat 2, beam 4, time 1 - fxcxnpma 25,30,11,25 # stat 1, beam 5, time 1 - lfpsux 30,24,0 # stat 1, time 3 - - fxcxnpma 18,27,6,18 # stat 1, beam 0, time 2 - fxcpmadd 19,27,7,19 # stat 1, beam 1, time 2 - fxcxnpma 20,26,2,20 # stat 0, beam 2, time 2 - fxcpmadd 21,26,3,21 # stat 0, beam 3, time 2 - stfpsx 23,29,8 # beam 3, time 1 - fxcxnpma 24,31,16,24 # stat 2, beam 4, time 1 - lfpsux 23,31,0 # beam 5, time 2 - fxcpmadd 25,31,17,25 # stat 2, beam 5, time 1 - - fxcpmadd 18,28,12,18 # stat 2, beam 0, time 2 - fxcxnpma 19,27,7,19 # stat 1, beam 1, time 2 - fxcpmadd 20,27,8,20 # stat 1, beam 2, time 2 - fxcxnpma 21,26,3,21 # stat 0, beam 3, time 2 - fxcpmadd 22,26,4,22 # stat 0, beam 4, time 2 - stfpsx 24,30,8 # beam 4, time 1 - fxcxnpma 25,31,17,25 # stat 2, beam 5, time 1 - lfpsux 24,26,0 # beam 0, time 3 - - - -0: - # phase 0 - - fxcxnpma 18,28,12,18 # stat 2, beam 0, time 2 - lfpsux 31,25,0 # stat 2, time 3 - fxcpmadd 19,28,13,19 # stat 2, beam 1, time 2 - fxcxnpma 20,27,8,20 # stat 1, beam 2, time 2 - fxcpmadd 21,27,9,21 # stat 1, beam 3, time 2 - fxcxnpma 22,26,4,22 # stat 0, beam 4, time 2 - stfpsx 25,31,8 # beam 5, time 1 - fxcpmadd 23,26,5,23 # stat 0, beam 5, time 2 - lfpsux 25,27,0 # beam 1, time 3 - - fxcpmadd 24,29,0,24 # stat 0, beam 0, time 3 - stfpsx 18,26,8 # beam 0, time 2 - fxcxnpma 19,28,13,19 # stat 2, beam 1, time 2 - lfpsux 18,28,0 # beam 2, time 3 - fxcpmadd 20,28,14,20 # stat 2, beam 2, time 2 - fxcxnpma 21,27,9,21 # stat 1, beam 3, time 2 - fxcpmadd 22,27,10,22 # stat 1, beam 4, time 2 - fxcxnpma 23,26,5,23 # stat 0, beam 5, time 2 - lfpsux 26,23,0 # stat 0, time 0 - - fxcxnpma 24,29,0,24 # stat 0, beam 0, time 3 - dcbt 23,9 - fxcpmadd 25,29,1,25 # stat 0, beam 1, time 3 - stfpsx 19,27,8 # beam 1, time 2 - fxcxnpma 20,28,14,20 # stat 2, beam 2, time 2 - lfpsux 19,29,0 # beam 3, time 3 - fxcpmadd 21,28,15,21 # stat 2, beam 3, time 2 - fxcxnpma 22,27,10,22 # stat 1, beam 4, time 2 - fxcpmadd 23,27,11,23 # stat 1, beam 5, time 2 - - fxcpmadd 24,30,6,24 # stat 1, beam 0, time 3 - fxcxnpma 25,29,1,25 # stat 0, beam 1, time 3 - fxcpmadd 18,29,2,18 # stat 0, beam 2, time 3 - stfpsx 20,28,8 # beam 2, time 2 - fxcxnpma 21,28,15,21 # stat 2, beam 3, time 2 - lfpsux 20,30,0 # beam 4, time 3 - fxcpmadd 22,28,16,22 # stat 2, beam 4, time 2 - fxcxnpma 23,27,11,23 # stat 1, beam 5, time 2 - lfpsux 27,24,0 # stat 1, time 0 - - fxcxnpma 24,30,6,24 # stat 1, beam 0, time 3 - dcbt 24,9 - fxcpmadd 25,30,7,25 # stat 1, beam 1, time 3 - fxcxnpma 18,29,2,18 # stat 0, beam 2, time 3 - fxcpmadd 19,29,3,19 # stat 0, beam 3, time 3 - stfpsx 21,29,8 # beam 3, time 2 - fxcxnpma 22,28,16,22 # stat 2, beam 4, time 2 - lfpsux 21,31,0 # beam 5, time 3 - fxcpmadd 23,28,17,23 # stat 2, beam 5, time 2 - - fxcpmadd 24,31,12,24 # stat 2, beam 0, time 3 - fxcxnpma 25,30,7,25 # stat 1, beam 1, time 3 - fxcpmadd 18,30,8,18 # stat 1, beam 2, time 3 - fxcxnpma 19,29,3,19 # stat 0, beam 3, time 3 - fxcpmadd 20,29,4,20 # stat 0, beam 4, time 3 - stfpsx 22,30,8 # beam 4, time 2 - fxcxnpma 23,28,17,23 # stat 2, beam 5, time 2 - lfpsux 22,26,0 # beam 0, time 0 - - # phase 1 - - fxcxnpma 24,31,12,24 # stat 2, beam 0, time 3 - lfpsux 28,25,0 # stat 2, time 0 - fxcpmadd 25,31,13,25 # stat 2, beam 1, time 3 - dcbt 25,9 - fxcxnpma 18,30,8,18 # stat 1, beam 2, time 3 - fxcpmadd 19,30,9,19 # stat 1, beam 3, time 3 - fxcxnpma 20,29,4,20 # stat 0, beam 4, time 3 - stfpsx 23,31,8 # beam 5, time 2 - fxcpmadd 21,29,5,21 # stat 0, beam 5, time 3 - lfpsux 23,27,0 # beam 1, time 0 - - fxcpmadd 22,26,0,22 # stat 0, beam 0, time 0 - stfpsx 24,26,8 # beam 0, time 3 - fxcxnpma 25,31,13,25 # stat 2, beam 1, time 3 - lfpsux 24,28,0 # beam 2, time 0 - fxcpmadd 18,31,14,18 # stat 2, beam 2, time 3 - fxcxnpma 19,30,9,19 # stat 1, beam 3, time 3 - dcbt 26,9 - fxcpmadd 20,30,10,20 # stat 1, beam 4, time 3 - fxcxnpma 21,29,5,21 # stat 0, beam 5, time 3 - lfpsux 29,23,0 # stat 0, time 1 - - fxcxnpma 22,26,0,22 # stat 0, beam 0, time 0 - fxcpmadd 23,26,1,23 # stat 0, beam 1, time 0 - stfpsx 25,27,8 # beam 1, time 3 - fxcxnpma 18,31,14,18 # stat 2, beam 2, time 3 - lfpsux 25,29,0 # beam 3, time 0 - fxcpmadd 19,31,15,19 # stat 2, beam 3, time 3 - fxcxnpma 20,30,10,20 # stat 1, beam 4, time 3 - dcbt 27,9 - fxcpmadd 21,30,11,21 # stat 1, beam 5, time 3 - - fxcpmadd 22,27,6,22 # stat 1, beam 0, time 0 - fxcxnpma 23,26,1,23 # stat 0, beam 1, time 0 - fxcpmadd 24,26,2,24 # stat 0, beam 2, time 0 - stfpsx 18,28,8 # beam 2, time 3 - fxcxnpma 19,31,15,19 # stat 2, beam 3, time 3 - lfpsux 18,30,0 # beam 4, time 0 - fxcpmadd 20,31,16,20 # stat 2, beam 4, time 3 - fxcxnpma 21,30,11,21 # stat 1, beam 5, time 3 - lfpsux 30,24,0 # stat 1, time 1 - - fxcxnpma 22,27,6,22 # stat 1, beam 0, time 0 - fxcpmadd 23,27,7,23 # stat 1, beam 1, time 0 - fxcxnpma 24,26,2,24 # stat 0, beam 2, time 0 - fxcpmadd 25,26,3,25 # stat 0, beam 3, time 0 - stfpsx 19,29,8 # beam 3, time 3 - fxcxnpma 20,31,16,20 # stat 2, beam 4, time 3 - lfpsux 19,31,0 # beam 5, time 0 - fxcpmadd 21,31,17,21 # stat 2, beam 5, time 3 - - fxcpmadd 22,28,12,22 # stat 2, beam 0, time 0 - dcbt 28,9 - fxcxnpma 23,27,7,23 # stat 1, beam 1, time 0 - fxcpmadd 24,27,8,24 # stat 1, beam 2, time 0 - fxcxnpma 25,26,3,25 # stat 0, beam 3, time 0 - fxcpmadd 18,26,4,18 # stat 0, beam 4, time 0 - stfpsx 20,30,8 # beam 4, time 3 - fxcxnpma 21,31,17,21 # stat 2, beam 5, time 3 - lfpsux 20,26,0 # beam 0, time 1 - - # phase 2 - - fxcxnpma 22,28,12,22 # stat 2, beam 0, time 0 - lfpsux 31,25,0 # stat 2, time 1 - fxcpmadd 23,28,13,23 # stat 2, beam 1, time 0 - fxcxnpma 24,27,8,24 # stat 1, beam 2, time 0 - fxcpmadd 25,27,9,25 # stat 1, beam 3, time 0 - fxcxnpma 18,26,4,18 # stat 0, beam 4, time 0 - stfpsx 21,31,8 # beam 5, time 3 - fxcpmadd 19,26,5,19 # stat 0, beam 5, time 0 - lfpsux 21,27,0 # beam 1, time 1 - - fxcpmadd 20,29,0,20 # stat 0, beam 0, time 1 - stfpsx 22,26,8 # beam 0, time 0 - fxcxnpma 23,28,13,23 # stat 2, beam 1, time 0 - lfpsux 22,28,0 # beam 2, time 1 - fxcpmadd 24,28,14,24 # stat 2, beam 2, time 0 - fxcxnpma 25,27,9,25 # stat 1, beam 3, time 0 - dcbt 29,9 - fxcpmadd 18,27,10,18 # stat 1, beam 4, time 0 - fxcxnpma 19,26,5,19 # stat 0, beam 5, time 0 - lfpsux 26,23,0 # stat 0, time 2 - - fxcxnpma 20,29,0,20 # stat 0, beam 0, time 1 - fxcpmadd 21,29,1,21 # stat 0, beam 1, time 1 - stfpsx 23,27,8 # beam 1, time 0 - fxcxnpma 24,28,14,24 # stat 2, beam 2, time 0 - lfpsux 23,29,0 # beam 3, time 1 - fxcpmadd 25,28,15,25 # stat 2, beam 3, time 0 - fxcxnpma 18,27,10,18 # stat 1, beam 4, time 0 - dcbt 30,9 - fxcpmadd 19,27,11,19 # stat 1, beam 5, time 0 - - fxcpmadd 20,30,6,20 # stat 1, beam 0, time 1 - fxcxnpma 21,29,1,21 # stat 0, beam 1, time 1 - fxcpmadd 22,29,2,22 # stat 0, beam 2, time 1 - stfpsx 24,28,8 # beam 2, time 0 - fxcxnpma 25,28,15,25 # stat 2, beam 3, time 0 - lfpsux 24,30,0 # beam 4, time 1 - fxcpmadd 18,28,16,18 # stat 2, beam 4, time 0 - fxcxnpma 19,27,11,19 # stat 1, beam 5, time 0 - lfpsux 27,24,0 # stat 1, time 2 - - fxcxnpma 20,30,6,20 # stat 1, beam 0, time 1 - fxcpmadd 21,30,7,21 # stat 1, beam 1, time 1 - fxcxnpma 22,29,2,22 # stat 0, beam 2, time 1 - fxcpmadd 23,29,3,23 # stat 0, beam 3, time 1 - stfpsx 25,29,8 # beam 3, time 0 - fxcxnpma 18,28,16,18 # stat 2, beam 4, time 0 - lfpsux 25,31,0 # beam 5, time 1 - fxcpmadd 19,28,17,19 # stat 2, beam 5, time 0 - - fxcpmadd 20,31,12,20 # stat 2, beam 0, time 1 - dcbt 31,9 - fxcxnpma 21,30,7,21 # stat 1, beam 1, time 1 - fxcpmadd 22,30,8,22 # stat 1, beam 2, time 1 - fxcxnpma 23,29,3,23 # stat 0, beam 3, time 1 - fxcpmadd 24,29,4,24 # stat 0, beam 4, time 1 - stfpsx 18,30,8 # beam 4, time 0 - fxcxnpma 19,28,17,19 # stat 2, beam 5, time 0 - lfpsux 18,26,0 # beam 0, time 2 - - # phase 3 - - fxcxnpma 20,31,12,20 # stat 2, beam 0, time 1 - lfpsux 28,25,0 # stat 2, time 2 - fxcpmadd 21,31,13,21 # stat 2, beam 1, time 1 - fxcxnpma 22,30,8,22 # stat 1, beam 2, time 1 - fxcpmadd 23,30,9,23 # stat 1, beam 3, time 1 - fxcxnpma 24,29,4,24 # stat 0, beam 4, time 1 - stfpsx 19,31,8 # beam 5, time 0 - fxcpmadd 25,29,5,25 # stat 0, beam 5, time 1 - lfpsux 19,27,0 # beam 1, time 2 - - fxcpmadd 18,26,0,18 # stat 0, beam 0, time 2 - stfpsx 20,26,8 # beam 0, time 1 - fxcxnpma 21,31,13,21 # stat 2, beam 1, time 1 - lfpsux 20,28,0 # beam 2, time 2 - fxcpmadd 22,31,14,22 # stat 2, beam 2, time 1 - fxcxnpma 23,30,9,23 # stat 1, beam 3, time 1 - fxcpmadd 24,30,10,24 # stat 1, beam 4, time 1 - fxcxnpma 25,29,5,25 # stat 0, beam 5, time 1 - lfpsux 29,23,0 # stat 0, time 3 - - fxcxnpma 18,26,0,18 # stat 0, beam 0, time 2 - fxcpmadd 19,26,1,19 # stat 0, beam 1, time 2 - stfpsx 21,27,8 # beam 1, time 1 - fxcxnpma 22,31,14,22 # stat 2, beam 2, time 1 - lfpsux 21,29,0 # beam 3, time 2 - fxcpmadd 23,31,15,23 # stat 2, beam 3, time 1 - fxcxnpma 24,30,10,24 # stat 1, beam 4, time 1 - fxcpmadd 25,30,11,25 # stat 1, beam 5, time 1 - - fxcpmadd 18,27,6,18 # stat 1, beam 0, time 2 - fxcxnpma 19,26,1,19 # stat 0, beam 1, time 2 - fxcpmadd 20,26,2,20 # stat 0, beam 2, time 2 - stfpsx 22,28,8 # beam 2, time 1 - fxcxnpma 23,31,15,23 # stat 2, beam 3, time 1 - lfpsux 22,30,0 # beam 4, time 2 - fxcpmadd 24,31,16,24 # stat 2, beam 4, time 1 - fxcxnpma 25,30,11,25 # stat 1, beam 5, time 1 - lfpsux 30,24,0 # stat 1, time 3 - - fxcxnpma 18,27,6,18 # stat 1, beam 0, time 2 - fxcpmadd 19,27,7,19 # stat 1, beam 1, time 2 - fxcxnpma 20,26,2,20 # stat 0, beam 2, time 2 - fxcpmadd 21,26,3,21 # stat 0, beam 3, time 2 - stfpsx 23,29,8 # beam 3, time 1 - fxcxnpma 24,31,16,24 # stat 2, beam 4, time 1 - lfpsux 23,31,0 # beam 5, time 2 - fxcpmadd 25,31,17,25 # stat 2, beam 5, time 1 - - fxcpmadd 18,28,12,18 # stat 2, beam 0, time 2 - fxcxnpma 19,27,7,19 # stat 1, beam 1, time 2 - fxcpmadd 20,27,8,20 # stat 1, beam 2, time 2 - fxcxnpma 21,26,3,21 # stat 0, beam 3, time 2 - fxcpmadd 22,26,4,22 # stat 0, beam 4, time 2 - stfpsx 24,30,8 # beam 4, time 1 - fxcxnpma 25,31,17,25 # stat 2, beam 5, time 1 - lfpsux 24,26,0 # beam 0, time 3 - - bdnz 0b - - # epilogue - # phase 0 - - fxcxnpma 18,28,12,18 # stat 2, beam 0, time 2 - lfpsux 31,25,0 # stat 2, time 3 - fxcpmadd 19,28,13,19 # stat 2, beam 1, time 2 - fxcxnpma 20,27,8,20 # stat 1, beam 2, time 2 - fxcpmadd 21,27,9,21 # stat 1, beam 3, time 2 - fxcxnpma 22,26,4,22 # stat 0, beam 4, time 2 - stfpsx 25,31,8 # beam 5, time 1 - fxcpmadd 23,26,5,23 # stat 0, beam 5, time 2 - lfpsux 25,27,0 # beam 1, time 3 - - fxcpmadd 24,29,0,24 # stat 0, beam 0, time 3 - stfpsx 18,26,8 # beam 0, time 2 - fxcxnpma 19,28,13,19 # stat 2, beam 1, time 2 - lfpsux 18,28,0 # beam 2, time 3 - fxcpmadd 20,28,14,20 # stat 2, beam 2, time 2 - fxcxnpma 21,27,9,21 # stat 1, beam 3, time 2 - fxcpmadd 22,27,10,22 # stat 1, beam 4, time 2 - fxcxnpma 23,26,5,23 # stat 0, beam 5, time 2 - - fxcxnpma 24,29,0,24 # stat 0, beam 0, time 3 - fxcpmadd 25,29,1,25 # stat 0, beam 1, time 3 - stfpsx 19,27,8 # beam 1, time 2 - fxcxnpma 20,28,14,20 # stat 2, beam 2, time 2 - lfpsux 19,29,0 # beam 3, time 3 - fxcpmadd 21,28,15,21 # stat 2, beam 3, time 2 - fxcxnpma 22,27,10,22 # stat 1, beam 4, time 2 - fxcpmadd 23,27,11,23 # stat 1, beam 5, time 2 - - fxcpmadd 24,30,6,24 # stat 1, beam 0, time 3 - fxcxnpma 25,29,1,25 # stat 0, beam 1, time 3 - fxcpmadd 18,29,2,18 # stat 0, beam 2, time 3 - stfpsx 20,28,8 # beam 2, time 2 - fxcxnpma 21,28,15,21 # stat 2, beam 3, time 2 - lfpsux 20,30,0 # beam 4, time 3 - fxcpmadd 22,28,16,22 # stat 2, beam 4, time 2 - fxcxnpma 23,27,11,23 # stat 1, beam 5, time 2 - - fxcxnpma 24,30,6,24 # stat 1, beam 0, time 3 - fxcpmadd 25,30,7,25 # stat 1, beam 1, time 3 - fxcxnpma 18,29,2,18 # stat 0, beam 2, time 3 - fxcpmadd 19,29,3,19 # stat 0, beam 3, time 3 - stfpsx 21,29,8 # beam 3, time 2 - fxcxnpma 22,28,16,22 # stat 2, beam 4, time 2 - lfpsux 21,31,0 # beam 5, time 3 - fxcpmadd 23,28,17,23 # stat 2, beam 5, time 2 - - fxcpmadd 24,31,12,24 # stat 2, beam 0, time 3 - fxcxnpma 25,30,7,25 # stat 1, beam 1, time 3 - fxcpmadd 18,30,8,18 # stat 1, beam 2, time 3 - fxcxnpma 19,29,3,19 # stat 0, beam 3, time 3 - fxcpmadd 20,29,4,20 # stat 0, beam 4, time 3 - stfpsx 22,30,8 # beam 4, time 2 - fxcxnpma 23,28,17,23 # stat 2, beam 5, time 2 - - # phase 1 - - fxcxnpma 24,31,12,24 # stat 2, beam 0, time 3 - fxcpmadd 25,31,13,25 # stat 2, beam 1, time 3 - fxcxnpma 18,30,8,18 # stat 1, beam 2, time 3 - fxcpmadd 19,30,9,19 # stat 1, beam 3, time 3 - fxcxnpma 20,29,4,20 # stat 0, beam 4, time 3 - stfpsx 23,31,8 # beam 5, time 2 - fxcpmadd 21,29,5,21 # stat 0, beam 5, time 3 - - stfpsx 24,0,26 # beam 0, time 3 - fxcxnpma 25,31,13,25 # stat 2, beam 1, time 3 - fxcpmadd 18,31,14,18 # stat 2, beam 2, time 3 - fxcxnpma 19,30,9,19 # stat 1, beam 3, time 3 - fxcpmadd 20,30,10,20 # stat 1, beam 4, time 3 - fxcxnpma 21,29,5,21 # stat 0, beam 5, time 3 - - stfpsx 25,0,27 # beam 1, time 3 - fxcxnpma 18,31,14,18 # stat 2, beam 2, time 3 - fxcpmadd 19,31,15,19 # stat 2, beam 3, time 3 - fxcxnpma 20,30,10,20 # stat 1, beam 4, time 3 - fxcpmadd 21,30,11,21 # stat 1, beam 5, time 3 - - stfpsx 18,0,28 # beam 2, time 3 - fxcxnpma 19,31,15,19 # stat 2, beam 3, time 3 - fxcpmadd 20,31,16,20 # stat 2, beam 4, time 3 - fxcxnpma 21,30,11,21 # stat 1, beam 5, time 3 - - stfpsx 19,0,29 # beam 3, time 3 - fxcxnpma 20,31,16,20 # stat 2, beam 4, time 3 - fxcpmadd 21,31,17,21 # stat 2, beam 5, time 3 - - stfpsx 20,0,30 # beam 4, time 3 - fxcxnpma 21,31,17,21 # stat 2, beam 5, time 3 - - # phase 2 - - stfpsx 21,0,31 # beam 5, time 3 diff --git a/RTCP/CNProc/src/BeamFormerAsm6St3Bm.inc b/RTCP/CNProc/src/BeamFormerAsm6St3Bm.inc deleted file mode 100644 index dcf9746f08d65713e61f366a9a568cc39d812582..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/BeamFormerAsm6St3Bm.inc +++ /dev/null @@ -1,1510 +0,0 @@ - mtctr 9 - -#if NR_STATIONS >= 1 - mr 26,5 -#endif -#if NR_STATIONS >= 2 - add 27,26,6 -#endif -#if NR_STATIONS >= 3 - add 28,27,6 -#endif -#if NR_STATIONS >= 4 - add 29,28,6 -#endif -#if NR_STATIONS >= 5 - add 30,29,6 -#endif -#if NR_STATIONS >= 6 - add 31,30,6 -#endif - -#if NR_STATIONS >= 2 - addi 11,8,-(NR_BEAMS-1)*8 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - lfpsx 0,0,7 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - lfpsux 1,7,0 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - lfpsux 2,7,0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - lfpsux 3,7,11 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - lfpsux 4,7,0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - lfpsux 5,7,0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - lfpsux 6,7,11 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - lfpsux 7,7,0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - lfpsux 8,7,0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - lfpsux 9,7,11 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - lfpsux 10,7,0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - lfpsux 11,7,0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - lfpsux 12,7,11 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - lfpsux 13,7,0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - lfpsux 14,7,0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - lfpsux 15,7,11 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - lfpsux 16,7,0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - lfpsux 17,7,0 -#endif - - # phase 0 - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - mr 20,21 - ; lfpsx 24,0,20 -#endif -#if !defined FIRST_TIME && NR_BEAMS >= 2 - mr 22,23 - ; lfpsx 25,0,22 -#endif -#if !defined FIRST_TIME && NR_BEAMS >= 3 - mr 24,25 - ; lfpsx 26,0,24 -#endif - -#if NR_STATIONS >= 1 - ; lfpsx 31,0,26 # stat 0, time 2 -#endif -#if NR_STATIONS >= 3 - ; lfpsx 29,0,28 # stat 2, time 2 -#endif - - # phase 1 - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 24,31,0 # stat 0, beam 0, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 24,31,0,24 # stat 0, beam 0, time 2 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 25,31,1 # stat 0, beam 1, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 25,31,1,25 # stat 0, beam 1, time 2 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 26,31,2 # stat 0, beam 2, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 26,31,2,26 # stat 0, beam 2, time 2 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 24,31,0,24 # stat 0, beam 0, time 2 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 25,31,1,25 # stat 0, beam 1, time 2 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 26,31,2,26 # stat 0, beam 2, time 2 -#endif - -#if NR_STATIONS >= 5 - ; lfpsx 31,0,30 # stat 4, time 2 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 27,20,0 # beam 0, time 3 -#endif -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 28,22,0 # beam 1, time 3 -#endif -#if NR_STATIONS >= 1 - ; lfpsux 21,26,0 # stat 0, time 3 -#endif - -#if NR_STATIONS >= 2 - ; lfpsx 22,0,27 # stat 1, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 24,29,6,24 # stat 2, beam 0, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 25,29,7,25 # stat 2, beam 1, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 26,29,8,26 # stat 2, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 24,29,6,24 # stat 2, beam 0, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 25,29,7,25 # stat 2, beam 1, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 26,29,8,26 # stat 2, beam 2, time 2 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 29,24,0 # beam 2, time 3 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 24,31,12,24 # stat 4, beam 0, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 25,31,13,25 # stat 4, beam 1, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 26,31,14,26 # stat 4, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 30,28,0 # stat 2, time 3 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 24,31,12,24 # stat 4, beam 0, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 25,31,13,25 # stat 4, beam 1, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 26,31,14,26 # stat 4, beam 2, time 2 -#endif - -#if NR_STATIONS >= 4 - ; lfpsx 31,0,29 # stat 3, time 2 -#endif - - # phase 2 - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 27,21,0 # stat 0, beam 0, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 27,21,0,27 # stat 0, beam 0, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 28,21,1 # stat 0, beam 1, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 28,21,1,28 # stat 0, beam 1, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 29,21,2 # stat 0, beam 2, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 29,21,2,29 # stat 0, beam 2, time 3 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 24,22,3,24 # stat 1, beam 0, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 25,22,4,25 # stat 1, beam 1, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 26,22,5,26 # stat 1, beam 2, time 2 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 18,30,0 # stat 4, time 3 -#endif -#if NR_STATIONS >= 6 - ; lfpsx 19,0,31 # stat 5, time 2 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 27,21,0,27 # stat 0, beam 0, time 3 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 28,21,1,28 # stat 0, beam 1, time 3 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 29,21,2,29 # stat 0, beam 2, time 3 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 21,20,0 # beam 0, time 0 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 24,22,3,24 # stat 1, beam 0, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 25,22,4,25 # stat 1, beam 1, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 26,22,5,26 # stat 1, beam 2, time 2 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 22,22,0 # beam 1, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 23,24,0 # beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 27,30,6,27 # stat 2, beam 0, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 28,30,7,28 # stat 2, beam 1, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 29,30,8,29 # stat 2, beam 2, time 3 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 24,31,9,24 # stat 3, beam 0, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 25,31,10,25 # stat 3, beam 1, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 26,31,11,26 # stat 3, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 27,30,6,27 # stat 2, beam 0, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 28,30,7,28 # stat 2, beam 1, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 29,30,8,29 # stat 2, beam 2, time 3 -#endif - -#if NR_STATIONS >= 2 - ; lfpsux 30,27,0 # stat 1, time 3 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 24,31,9,24 # stat 3, beam 0, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 25,31,10,25 # stat 3, beam 1, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 26,31,11,26 # stat 3, beam 2, time 2 -#endif - -#if NR_STATIONS >= 1 - ; lfpsux 31,26,0 # stat 0, time 0 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 27,18,12,27 # stat 4, beam 0, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 28,18,13,28 # stat 4, beam 1, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 29,18,14,29 # stat 4, beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 24,19,15,24 # stat 5, beam 0, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 25,19,16,25 # stat 5, beam 1, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 26,19,17,26 # stat 5, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 20,28,0 # stat 2, time 0 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 27,18,12,27 # stat 4, beam 0, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 28,18,13,28 # stat 4, beam 1, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 29,18,14,29 # stat 4, beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 24,19,15,24 # stat 5, beam 0, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 25,19,16,25 # stat 5, beam 1, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 26,19,17,26 # stat 5, beam 2, time 2 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 19,29,0 # stat 3, time 3 -#endif - - # phase 3 - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 27,30,3,27 # stat 1, beam 0, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 28,30,4,28 # stat 1, beam 1, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 29,30,5,29 # stat 1, beam 2, time 3 -#endif - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 21,31,0 # stat 0, beam 0, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 21,31,0,21 # stat 0, beam 0, time 0 -#endif -#if NR_BEAMS >= 1 - ; stfpsx 24,0,21 # beam 0, time 2 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 22,31,1 # stat 0, beam 1, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 22,31,1,22 # stat 0, beam 1, time 0 -#endif -#if NR_BEAMS >= 2 - ; stfpsx 25,0,23 # beam 1, time 2 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 23,31,2 # stat 0, beam 2, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 23,31,2,23 # stat 0, beam 2, time 0 -#endif -#if NR_BEAMS >= 3 - ; stfpsx 26,0,25 # beam 2, time 2 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 27,30,3,27 # stat 1, beam 0, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 28,30,4,28 # stat 1, beam 1, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 29,30,5,29 # stat 1, beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 - ; lfpsux 30,31,0 # stat 5, time 3 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 21,31,0,21 # stat 0, beam 0, time 0 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 22,31,1,22 # stat 0, beam 1, time 0 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 23,31,2,23 # stat 0, beam 2, time 0 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 31,30,0 # stat 4, time 0 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 27,19,9,27 # stat 3, beam 0, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 28,19,10,28 # stat 3, beam 1, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 29,19,11,29 # stat 3, beam 2, time 3 -#endif - -#if NR_STATIONS >= 1 - ; lfpsux 24,26,0 # stat 0, time 1 -#endif -#if NR_STATIONS >= 2 - ; lfpsux 25,27,0 # stat 1, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 21,20,6,21 # stat 2, beam 0, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 22,20,7,22 # stat 2, beam 1, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 23,20,8,23 # stat 2, beam 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 18,20,0 # beam 0, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 27,19,9,27 # stat 3, beam 0, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 28,19,10,28 # stat 3, beam 1, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 29,19,11,29 # stat 3, beam 2, time 3 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 19,22,0 # beam 1, time 1 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 21,20,6,21 # stat 2, beam 0, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 22,20,7,22 # stat 2, beam 1, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 23,20,8,23 # stat 2, beam 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 20,24,0 # beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 27,30,15,27 # stat 5, beam 0, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 28,30,16,28 # stat 5, beam 1, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 29,30,17,29 # stat 5, beam 2, time 3 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 21,31,12,21 # stat 4, beam 0, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 22,31,13,22 # stat 4, beam 1, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 23,31,14,23 # stat 4, beam 2, time 0 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 27,30,15,27 # stat 5, beam 0, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 28,30,16,28 # stat 5, beam 1, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 29,30,17,29 # stat 5, beam 2, time 3 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 30,28,0 # stat 2, time 1 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 21,31,12,21 # stat 4, beam 0, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 22,31,13,22 # stat 4, beam 1, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 23,31,14,23 # stat 4, beam 2, time 0 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 31,29,0 # stat 3, time 0 -#endif - - li 7,64 - -0: # phase 0 - -#if NR_BEAMS >= 1 - ; stfpsux 27,21,0 # beam 0, time 3 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 27,30,0 # stat 4, time 1 - -#endif - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 18,24,0 # stat 0, beam 0, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 18,24,0,18 # stat 0, beam 0, time 1 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 19,24,1 # stat 0, beam 1, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 19,24,1,19 # stat 0, beam 1, time 1 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 20,24,2 # stat 0, beam 2, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 20,24,2,20 # stat 0, beam 2, time 1 -#endif - -#if NR_BEAMS >= 2 - ; stfpsux 28,23,0 # beam 1, time 3 -#endif - -#if NR_STATIONS >= 6 - ; lfpsux 28,31,0 # stat 5, time 0 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 21,25,3,21 # stat 1, beam 0, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 22,25,4,22 # stat 1, beam 1, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 23,25,5,23 # stat 1, beam 2, time 0 -#endif - -#if NR_BEAMS >= 3 - ; stfpsux 29,25,0 # beam 2, time 3 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 18,24,0,18 # stat 0, beam 0, time 1 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 19,24,1,19 # stat 0, beam 1, time 1 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 20,24,2,20 # stat 0, beam 2, time 1 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 24,20,0 # beam 0, time 2 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 21,25,3,21 # stat 1, beam 0, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 22,25,4,22 # stat 1, beam 1, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 23,25,5,23 # stat 1, beam 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 25,22,0 # beam 1, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 18,30,6,18 # stat 2, beam 0, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 19,30,7,19 # stat 2, beam 1, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 20,30,8,20 # stat 2, beam 2, time 1 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 26,24,0 # beam 2, time 2 -#endif - -#if NR_STATIONS >= 1 - ; dcbt 26,7 # stat 0 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 21,31,9,21 # stat 3, beam 0, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 22,31,10,22 # stat 3, beam 1, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 23,31,11,23 # stat 3, beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 18,30,6,18 # stat 2, beam 0, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 19,30,7,19 # stat 2, beam 1, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 20,30,8,20 # stat 2, beam 2, time 1 -#endif - -#if NR_STATIONS >= 2 - ; lfpsux 30,27,0 # stat 1, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 21,31,9,21 # stat 3, beam 0, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 22,31,10,22 # stat 3, beam 1, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 23,31,11,23 # stat 3, beam 2, time 0 -#endif - -#if NR_STATIONS >= 1 - ; lfpsux 31,26,0 # stat 0, time 2 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 18,27,12,18 # stat 4, beam 0, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 19,27,13,19 # stat 4, beam 1, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 20,27,14,20 # stat 4, beam 2, time 1 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; dcbt 22,7 # beam 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 21,28,15,21 # stat 5, beam 0, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 22,28,16,22 # stat 5, beam 1, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 23,28,17,23 # stat 5, beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 29,28,0 # stat 2, time 2 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 18,27,12,18 # stat 4, beam 0, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 19,27,13,19 # stat 4, beam 1, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 20,27,14,20 # stat 4, beam 2, time 1 -#endif - -#if NR_STATIONS >= 3 - ; dcbt 28,7 # stat 2 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 21,28,15,21 # stat 5, beam 0, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 22,28,16,22 # stat 5, beam 1, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 23,28,17,23 # stat 5, beam 2, time 0 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 28,29,0 # stat 3, time 1 -#endif - - # phase 1 - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 18,30,3,18 # stat 1, beam 0, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 19,30,4,19 # stat 1, beam 1, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 20,30,5,20 # stat 1, beam 2, time 1 -#endif - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 24,31,0 # stat 0, beam 0, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 24,31,0,24 # stat 0, beam 0, time 2 -#endif -#if NR_BEAMS >= 1 - ; stfpsux 21,21,0 # beam 0, time 0 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 25,31,1 # stat 0, beam 1, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 25,31,1,25 # stat 0, beam 1, time 2 -#endif -#if NR_STATIONS >= 1 - ; lfpsux 21,26,0 # stat 0, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 26,31,2 # stat 0, beam 2, time 2 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 26,31,2,26 # stat 0, beam 2, time 2 -#endif -#if NR_BEAMS >= 2 - ; stfpsux 22,23,0 # beam 1, time 0 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 18,30,3,18 # stat 1, beam 0, time 1 -#endif -#if NR_STATIONS >= 2 - ; lfpsux 22,27,0 # stat 1, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 19,30,4,19 # stat 1, beam 1, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 20,30,5,20 # stat 1, beam 2, time 1 -#endif - -#if NR_BEAMS >= 3 - ; stfpsux 23,25,0 # beam 2, time 0 -#endif - -#if NR_STATIONS >= 6 - ; lfpsux 30,31,0 # stat 5, time 1 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 24,31,0,24 # stat 0, beam 0, time 2 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 25,31,1,25 # stat 0, beam 1, time 2 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 26,31,2,26 # stat 0, beam 2, time 2 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 31,30,0 # stat 4, time 2 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 18,28,9,18 # stat 3, beam 0, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 19,28,10,19 # stat 3, beam 1, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 20,28,11,20 # stat 3, beam 2, time 1 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 27,20,0 # beam 0, time 3 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 24,29,6,24 # stat 2, beam 0, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 25,29,7,25 # stat 2, beam 1, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 26,29,8,26 # stat 2, beam 2, time 2 -#endif - -#if NR_STATIONS >= 5 - ; dcbt 30,7 # stat 4 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 18,28,9,18 # stat 3, beam 0, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 19,28,10,19 # stat 3, beam 1, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 20,28,11,20 # stat 3, beam 2, time 1 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 28,22,0 # beam 1, time 3 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 24,29,6,24 # stat 2, beam 0, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 25,29,7,25 # stat 2, beam 1, time 2 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 26,29,8,26 # stat 2, beam 2, time 2 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 29,24,0 # beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 18,30,15,18 # stat 5, beam 0, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 19,30,16,19 # stat 5, beam 1, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 20,30,17,20 # stat 5, beam 2, time 1 -#endif - -#if NR_STATIONS >= 2 - ; dcbt 27,7 # stat 1 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 24,31,12,24 # stat 4, beam 0, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 25,31,13,25 # stat 4, beam 1, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 26,31,14,26 # stat 4, beam 2, time 2 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 18,30,15,18 # stat 5, beam 0, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 19,30,16,19 # stat 5, beam 1, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 20,30,17,20 # stat 5, beam 2, time 1 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 30,28,0 # stat 2, time 3 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 24,31,12,24 # stat 4, beam 0, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 25,31,13,25 # stat 4, beam 1, time 2 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 26,31,14,26 # stat 4, beam 2, time 2 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 31,29,0 # stat 3, time 2 -#endif - - # phase 2 - -#if NR_BEAMS >= 1 - ; stfpsux 18,21,0 # beam 0, time 1 -#endif - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 27,21,0 # stat 0, beam 0, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 27,21,0,27 # stat 0, beam 0, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 28,21,1 # stat 0, beam 1, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 28,21,1,28 # stat 0, beam 1, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 29,21,2 # stat 0, beam 2, time 3 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 29,21,2,29 # stat 0, beam 2, time 3 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 18,30,0 # stat 4, time 3 -#endif - -#if NR_BEAMS >= 2 - ; stfpsux 19,23,0 # beam 1, time 1 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 24,22,3,24 # stat 1, beam 0, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 25,22,4,25 # stat 1, beam 1, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 26,22,5,26 # stat 1, beam 2, time 2 -#endif - -#if NR_STATIONS >= 6 - ; lfpsux 19,31,0 # stat 5, time 2 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 27,21,0,27 # stat 0, beam 0, time 3 -#endif -#if NR_BEAMS >= 3 - ; stfpsux 20,25,0 # beam 2, time 1 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 28,21,1,28 # stat 0, beam 1, time 3 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 29,21,2,29 # stat 0, beam 2, time 3 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 21,20,0 # beam 0, time 0 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 24,22,3,24 # stat 1, beam 0, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 25,22,4,25 # stat 1, beam 1, time 2 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 26,22,5,26 # stat 1, beam 2, time 2 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 22,22,0 # beam 1, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 23,24,0 # beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 27,30,6,27 # stat 2, beam 0, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 28,30,7,28 # stat 2, beam 1, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 29,30,8,29 # stat 2, beam 2, time 3 -#endif - -#if NR_STATIONS >= 4 - ; dcbt 29,7 # stat 3 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 24,31,9,24 # stat 3, beam 0, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 25,31,10,25 # stat 3, beam 1, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 26,31,11,26 # stat 3, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 27,30,6,27 # stat 2, beam 0, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 28,30,7,28 # stat 2, beam 1, time 3 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 29,30,8,29 # stat 2, beam 2, time 3 -#endif - -#if NR_STATIONS >= 2 - ; lfpsux 30,27,0 # stat 1, time 3 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 24,31,9,24 # stat 3, beam 0, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 25,31,10,25 # stat 3, beam 1, time 2 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 26,31,11,26 # stat 3, beam 2, time 2 -#endif - -#if NR_STATIONS >= 1 - ; lfpsux 31,26,0 # stat 0, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; dcbt 24,7 # beam 2 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 27,18,12,27 # stat 4, beam 0, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 28,18,13,28 # stat 4, beam 1, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 29,18,14,29 # stat 4, beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 24,19,15,24 # stat 5, beam 0, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 25,19,16,25 # stat 5, beam 1, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 26,19,17,26 # stat 5, beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 20,28,0 # stat 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; dcbt 20,7 # beam 0 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 27,18,12,27 # stat 4, beam 0, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 28,18,13,28 # stat 4, beam 1, time 3 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 29,18,14,29 # stat 4, beam 2, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 24,19,15,24 # stat 5, beam 0, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 25,19,16,25 # stat 5, beam 1, time 2 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 26,19,17,26 # stat 5, beam 2, time 2 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 19,29,0 # stat 3, time 3 -#endif - - # phase 3 - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 27,30,3,27 # stat 1, beam 0, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 28,30,4,28 # stat 1, beam 1, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 29,30,5,29 # stat 1, beam 2, time 3 -#endif - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 21,31,0 # stat 0, beam 0, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 21,31,0,21 # stat 0, beam 0, time 0 -#endif -#if NR_BEAMS >= 1 - ; stfpsux 24,21,0 # beam 0, time 2 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 22,31,1 # stat 0, beam 1, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 22,31,1,22 # stat 0, beam 1, time 0 -#endif -#if NR_STATIONS >= 1 - ; lfpsux 24,26,0 # stat 0, time 1 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 23,31,2 # stat 0, beam 2, time 0 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 23,31,2,23 # stat 0, beam 2, time 0 -#endif - -#if NR_BEAMS >= 2 - ; stfpsux 25,23,0 # beam 1, time 2 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 27,30,3,27 # stat 1, beam 0, time 3 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 28,30,4,28 # stat 1, beam 1, time 3 -#endif -#if NR_STATIONS >= 2 - ; lfpsux 25,27,0 # stat 1, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 29,30,5,29 # stat 1, beam 2, time 3 -#endif -#if NR_STATIONS >= 6 - ; lfpsux 30,31,0 # stat 5, time 3 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 21,31,0,21 # stat 0, beam 0, time 0 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 22,31,1,22 # stat 0, beam 1, time 0 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 23,31,2,23 # stat 0, beam 2, time 0 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 31,30,0 # stat 4, time 0 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 27,19,9,27 # stat 3, beam 0, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 28,19,10,28 # stat 3, beam 1, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 29,19,11,29 # stat 3, beam 2, time 3 -#endif - -#if NR_BEAMS >= 3 - ; stfpsux 26,25,0 # beam 2, time 2 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 21,20,6,21 # stat 2, beam 0, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 22,20,7,22 # stat 2, beam 1, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 23,20,8,23 # stat 2, beam 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 1 - ; lfpsux 18,20,0 # beam 0, time 0 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 27,19,9,27 # stat 3, beam 0, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 28,19,10,28 # stat 3, beam 1, time 3 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 29,19,11,29 # stat 3, beam 2, time 3 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 2 - ; lfpsux 19,22,0 # beam 1, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 21,20,6,21 # stat 2, beam 0, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 22,20,7,22 # stat 2, beam 1, time 0 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 23,20,8,23 # stat 2, beam 2, time 0 -#endif - -#if !defined FIRST_TIME && NR_BEAMS >= 3 - ; lfpsux 20,24,0 # beam 2, time 0 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 27,30,15,27 # stat 5, beam 0, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 28,30,16,28 # stat 5, beam 1, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 29,30,17,29 # stat 5, beam 2, time 3 -#endif - -#if NR_STATIONS >= 6 - ; dcbt 31,7 # stat 5 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 21,31,12,21 # stat 4, beam 0, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 22,31,13,22 # stat 4, beam 1, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 23,31,14,23 # stat 4, beam 2, time 0 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 27,30,15,27 # stat 5, beam 0, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 28,30,16,28 # stat 5, beam 1, time 3 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 29,30,17,29 # stat 5, beam 2, time 3 -#endif - -#if NR_STATIONS >= 3 - ; lfpsux 30,28,0 # stat 2, time 1 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 21,31,12,21 # stat 4, beam 0, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 22,31,13,22 # stat 4, beam 1, time 0 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 23,31,14,23 # stat 4, beam 2, time 0 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 31,29,0 # stat 3, time 0 -#endif - - bdnz 0b - - # epilogue - # phase 0 - -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxpmul 18,24,0 # stat 0, beam 0, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcpmadd 18,24,0,18 # stat 0, beam 0, time 1 -#endif -#if NR_BEAMS >= 1 - ; stfpsux 27,21,0 # beam 0, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxpmul 19,24,1 # stat 0, beam 1, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcpmadd 19,24,1,19 # stat 0, beam 1, time 1 -#endif -#if NR_BEAMS >= 2 - ; stfpsux 28,23,0 # beam 1, time 3 -#endif -#if defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxpmul 20,24,2 # stat 0, beam 2, time 1 -#elif !defined FIRST_TIME && NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcpmadd 20,24,2,20 # stat 0, beam 2, time 1 -#endif -#if NR_BEAMS >= 3 - ; stfpsux 29,25,0 # beam 2, time 3 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 21,25,3,21 # stat 1, beam 0, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 22,25,4,22 # stat 1, beam 1, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 23,25,5,23 # stat 1, beam 2, time 0 -#endif - -#if NR_STATIONS >= 5 - ; lfpsux 27,30,0 # stat 4, time 1 -#endif -#if NR_STATIONS >= 6 - ; lfpsux 28,31,0 # stat 5, time 0 -#endif - -#if NR_STATIONS >= 1 && NR_BEAMS >= 1 - fxcxnpma 18,24,0,18 # stat 0, beam 0, time 1 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 2 - fxcxnpma 19,24,1,19 # stat 0, beam 1, time 1 -#endif -#if NR_STATIONS >= 1 && NR_BEAMS >= 3 - fxcxnpma 20,24,2,20 # stat 0, beam 2, time 1 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 21,25,3,21 # stat 1, beam 0, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 22,25,4,22 # stat 1, beam 1, time 0 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 23,25,5,23 # stat 1, beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcpmadd 18,30,6,18 # stat 2, beam 0, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcpmadd 19,30,7,19 # stat 2, beam 1, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcpmadd 20,30,8,20 # stat 2, beam 2, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 21,31,9,21 # stat 3, beam 0, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 22,31,10,22 # stat 3, beam 1, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 23,31,11,23 # stat 3, beam 2, time 0 -#endif - -#if NR_STATIONS >= 3 && NR_BEAMS >= 1 - fxcxnpma 18,30,6,18 # stat 2, beam 0, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 2 - fxcxnpma 19,30,7,19 # stat 2, beam 1, time 1 -#endif -#if NR_STATIONS >= 3 && NR_BEAMS >= 3 - fxcxnpma 20,30,8,20 # stat 2, beam 2, time 1 -#endif - -#if NR_STATIONS >= 2 - ; lfpsux 30,27,0 # stat 1, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 21,31,9,21 # stat 3, beam 0, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 22,31,10,22 # stat 3, beam 1, time 0 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 23,31,11,23 # stat 3, beam 2, time 0 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcpmadd 18,27,12,18 # stat 4, beam 0, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcpmadd 19,27,13,19 # stat 4, beam 1, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcpmadd 20,27,14,20 # stat 4, beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 21,28,15,21 # stat 5, beam 0, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 22,28,16,22 # stat 5, beam 1, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 23,28,17,23 # stat 5, beam 2, time 0 -#endif - -#if NR_STATIONS >= 5 && NR_BEAMS >= 1 - fxcxnpma 18,27,12,18 # stat 4, beam 0, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 2 - fxcxnpma 19,27,13,19 # stat 4, beam 1, time 1 -#endif -#if NR_STATIONS >= 5 && NR_BEAMS >= 3 - fxcxnpma 20,27,14,20 # stat 4, beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 21,28,15,21 # stat 5, beam 0, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 22,28,16,22 # stat 5, beam 1, time 0 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 23,28,17,23 # stat 5, beam 2, time 0 -#endif - -#if NR_STATIONS >= 4 - ; lfpsux 28,29,0 # stat 3, time 1 -#endif - - # phase 1 - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcpmadd 18,30,3,18 # stat 1, beam 0, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcpmadd 19,30,4,19 # stat 1, beam 1, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcpmadd 20,30,5,20 # stat 1, beam 2, time 1 -#endif - -#if NR_BEAMS >= 1 - ; stfpsux 21,21,0 # beam 0, time 0 -#endif -#if NR_BEAMS >= 2 - ; stfpsux 22,23,0 # beam 1, time 0 -#endif -#if NR_BEAMS >= 3 - ; stfpsux 23,25,0 # beam 2, time 0 -#endif - -#if NR_STATIONS >= 2 && NR_BEAMS >= 1 - fxcxnpma 18,30,3,18 # stat 1, beam 0, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 2 - fxcxnpma 19,30,4,19 # stat 1, beam 1, time 1 -#endif -#if NR_STATIONS >= 2 && NR_BEAMS >= 3 - fxcxnpma 20,30,5,20 # stat 1, beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 - ; lfpsux 30,31,0 # stat 5, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcpmadd 18,28,9,18 # stat 3, beam 0, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcpmadd 19,28,10,19 # stat 3, beam 1, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcpmadd 20,28,11,20 # stat 3, beam 2, time 1 -#endif - -#if NR_STATIONS >= 4 && NR_BEAMS >= 1 - fxcxnpma 18,28,9,18 # stat 3, beam 0, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 2 - fxcxnpma 19,28,10,19 # stat 3, beam 1, time 1 -#endif -#if NR_STATIONS >= 4 && NR_BEAMS >= 3 - fxcxnpma 20,28,11,20 # stat 3, beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcpmadd 18,30,15,18 # stat 5, beam 0, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcpmadd 19,30,16,19 # stat 5, beam 1, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcpmadd 20,30,17,20 # stat 5, beam 2, time 1 -#endif - -#if NR_STATIONS >= 6 && NR_BEAMS >= 1 - fxcxnpma 18,30,15,18 # stat 5, beam 0, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 2 - fxcxnpma 19,30,16,19 # stat 5, beam 1, time 1 -#endif -#if NR_STATIONS >= 6 && NR_BEAMS >= 3 - fxcxnpma 20,30,17,20 # stat 5, beam 2, time 1 -#endif - - # phase 2 - -#if NR_BEAMS >= 1 - ; stfpsux 18,21,0 # beam 0, time 1 -#endif -#if NR_BEAMS >= 2 - ; stfpsux 19,23,0 # beam 1, time 1 -#endif -#if NR_BEAMS >= 3 - ; stfpsux 20,25,0 # beam 2, time 1 -#endif diff --git a/RTCP/CNProc/src/CMakeLists.txt b/RTCP/CNProc/src/CMakeLists.txt deleted file mode 100644 index 20eb6340415ea140e4a6966e0c6d206d8a365ae3..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CMakeLists.txt +++ /dev/null @@ -1,55 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -# Create symbolic link to include directory. -execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME}) - -# Add current source directory to -I path. This is needed because CNProc uses -# angle brackets for internal header files, instead of quotes. -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - -set(cnproc_LIB_SRCS - Package__Version.cc - AsyncCommunication.cc - AsyncTranspose.cc - AsyncTransposeBeams.cc - BandPass.cc - BeamFormer.cc - CN_Processing.cc - Correlator.cc - Dedispersion.cc - FCNP_ClientStream.cc - FIR.cc - FilterBank.cc - InversePPF.cc - LocationInfo.cc - PPF.cc - Flagger.cc - PreCorrelationFlagger.cc - PreCorrelationNoChannelsFlagger.cc - PostCorrelationFlagger.cc - Stokes.cc) - -# Maybe we shoud use LOFAR_COMPILER_SUITE, because ASM-BGP_COMPILER_WORKS -# is not reliable: i.e. -#if(LOFAR_COMPILER_SUITE STREQUAL BGPCN) -if(CMAKE_ASM-BGP_COMPILER_WORKS) - list(APPEND cnproc_LIB_SRCS - BeamFormerAsm.S - ContainsOnlyZerosAsm.S - CorrelatorAsm.S - DedispersionAsm.S - FIR_Asm.S - FFT_Asm.S - StokesAsm.S) -endif(CMAKE_ASM-BGP_COMPILER_WORKS) -#endif(LOFAR_COMPILER_SUITE STREQUAL BGPCN) - -lofar_add_library(cnproc ${cnproc_LIB_SRCS}) - -lofar_add_bin_program(CN_Processing CN_Processing_main.cc) -lofar_add_bin_program(versioncnproc versioncnproc.cc) - diff --git a/RTCP/CNProc/src/CNProc.log_prop b/RTCP/CNProc/src/CNProc.log_prop deleted file mode 100644 index c8288c9751c7b475e3d48b75a94ce6a8c2018978..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CNProc.log_prop +++ /dev/null @@ -1,14 +0,0 @@ -# Configure the rootLogger -log4cplus.rootLogger=INFO, STDOUT -log4cplus.LCS.Common=INFO, STDOUT -log4cplus.logger.TRC=TRACE, NOLOG -log4cplus.logger.TRC.additivity=false -log4cplus.additivity=false -# Define the STDOUT appender -log4cplus.appender.STDOUT=log4cplus::ConsoleAppender -log4cplus.appender.STDOUT.Threshhold=TRACE2 -log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout -log4cplus.appender.STDOUT.layout.ConversionPattern=%-5p [%x]%c{3} - %m%n -log4cplus.appender.STDOUT.logToStdErr=false -log4cplus.appender.STDOUT.ImmediateFlush=true -log4cplus.appender.NOLOG=log4cplus::NullAppender diff --git a/RTCP/CNProc/src/CN_Math.h b/RTCP/CNProc/src/CN_Math.h deleted file mode 100644 index 4ba6f67e19a6f3a501770298fb895a6f07348285..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CN_Math.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef LOFAR_CNPROC_CN_MATH_H -#define LOFAR_CNPROC_CN_MATH_H - -#include <Common/lofar_complex.h> - -#if defined HAVE_MASS - -extern "C" -{ - // the return conventions for std::complex<double> and double _Complex differ! - double _Complex cosisin(double); -} - -#else - -namespace LOFAR -{ - inline static dcomplex cosisin(double x) - { - return makedcomplex(std::cos(x), std::sin(x)); - } -} - -#endif - -#endif diff --git a/RTCP/CNProc/src/CN_Processing.cc b/RTCP/CNProc/src/CN_Processing.cc deleted file mode 100644 index 646a1a4bc5e32e6cbd580563f98221f7c24cec98..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CN_Processing.cc +++ /dev/null @@ -1,1157 +0,0 @@ -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <CN_Processing.h> -#include <CorrelatorAsm.h> -#include <FIR_Asm.h> -#include <BeamFormer.h> -#include <ContainsOnlyZerosAsm.h> - -#include <Common/Timer.h> -#include <Interface/CN_Mapping.h> -#include <Interface/OutputTypes.h> -#include <Interface/PrintVector.h> -#include <Interface/DataFactory.h> -#include <Interface/FakeData.h> -#include <Interface/Align.h> -#include <complex> -#include <cmath> -#include <iomanip> -#include <iostream> -#include <map> - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -#if defined HAVE_BGP -#include <common/bgp_personality_inlines.h> -#include <spi/kernel_interface.h> -#endif - -#include <boost/format.hpp> -#include <sys/time.h> - -#define SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG 0 - -#if defined HAVE_BGP -//#define LOG_CONDITION (itsLocationInfo.rankInPset() == 0) -#define LOG_CONDITION (itsLocationInfo.rank() == 0) -//#define LOG_CONDITION 1 -#else -#define LOG_CONDITION 1 -#endif - -//#define DEBUG_TRANSPOSE2 - - -// assertion handler for boost -namespace boost { - -void assertion_failed(char const * expr, char const * function, char const * file, long line) -{ - THROW(::LOFAR::AssertError, "Assertion failed: " << expr << " in " << function << " (" << file << ":" << line << ")"); -} - -} - - -namespace LOFAR { -namespace RTCP { - -#if SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG -static FILE* outputFile; -#endif - -static NSTimer computeTimer("computing", true, true); -static NSTimer totalProcessingTimer("global total processing", true, true); - - -CN_Processing_Base::~CN_Processing_Base() -{ -} - - -template <typename SAMPLE_TYPE> CN_Processing<SAMPLE_TYPE>::CN_Processing(const Parset &parset, const std::vector<SmartPtr<Stream> > &inputStreams, Stream *(*createStream)(unsigned, const LocationInfo &), const LocationInfo &locationInfo, Allocator &bigAllocator, unsigned firstBlock) -: - itsBigAllocator(bigAllocator), - itsBlock(firstBlock), - itsParset(parset), - itsInputStreams(inputStreams), - itsLocationInfo(locationInfo), -#if defined HAVE_MPI - itsTranspose2Logic(parset.CN_transposeLogic(itsLocationInfo.psetNumber(), CN_Mapping::reverseMapCoreOnPset(itsLocationInfo.rankInPset(), itsLocationInfo.psetNumber()))) -#else - itsTranspose2Logic(parset.CN_transposeLogic(0, 0)) -#endif -{ -#if defined DEBUG_TRANSPOSE2 - if(LOG_CONDITION) - for (unsigned i = 0; i < itsTranspose2Logic.nrStreams(); i++) - itsTranspose2Logic.streamInfo[i].log(); -#endif - -#if defined HAVE_MPI - unsigned myPset = itsLocationInfo.psetNumber(); - unsigned myCoreInPset = CN_Mapping::reverseMapCoreOnPset(itsLocationInfo.rankInPset(), myPset); -#else - unsigned myPset = 0; - unsigned myCoreInPset = 0; -#endif - - itsStartTime = parset.startTime(); - itsIntegrationTime = parset.CNintegrationTime(); - - std::vector<unsigned> phaseOneTwoCores = parset.phaseOneTwoCores(); - std::vector<unsigned> phaseThreeCores = parset.phaseThreeCores(); - - std::vector<unsigned> phaseOnePsets = parset.phaseOnePsets(); - std::vector<unsigned> phaseTwoPsets = parset.phaseTwoPsets(); - std::vector<unsigned> phaseThreePsets = parset.phaseThreePsets(); - -#if defined CLUSTER_SCHEDULING -#define itsHasPhaseOne false -#else - itsHasPhaseOne = parset.phaseOnePsetIndex(myPset) >= 0 && parset.phaseOneCoreIndex(myCoreInPset) >= 0; -#endif - itsHasPhaseTwo = parset.phaseTwoPsetIndex(myPset) >= 0 && parset.phaseTwoCoreIndex(myCoreInPset) >= 0; - itsHasPhaseThree = parset.phaseThreePsetIndex(myPset) >= 0 && parset.phaseThreeCoreIndex(myCoreInPset) >= 0; - - itsPhaseTwoPsetIndex = itsHasPhaseTwo ? parset.phaseTwoPsetIndex( myPset ) : 0; - itsPhaseThreePsetIndex = itsHasPhaseThree ? parset.phaseThreePsetIndex( myPset ) : 0; - - itsPhaseTwoPsetSize = phaseTwoPsets.size(); - itsPhaseThreePsetSize = phaseThreePsets.size(); - - itsPhaseThreeExists = parset.outputBeamFormedData() || parset.outputTrigger(); - itsPhaseThreeDisjunct = parset.phaseThreeDisjunct(); - - itsLogPrefix = boost::str(boost::format("[obs %u phases %d%d%d] ") % parset.observationID() % (itsHasPhaseOne ? 1 : 0) % (itsHasPhaseTwo ? 1 : 0) % (itsHasPhaseThree ? 1 : 0)); - - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Observation start"); - - itsStationNames = parset.allStationNames(); - itsNrStations = parset.nrStations(); - unsigned nrMergedStations = parset.nrMergedStations(); - itsNrSubbands = parset.nrSubbands(); - itsSubbandToSAPmapping = parset.subbandToSAPmapping(); - itsNrTABs = parset.nrTABs(); - itsMaxNrTABs = parset.maxNrTABs(); - itsTotalNrTABs = parset.totalNrTABs(); - itsNrSubbandsPerPset = parset.nrSubbandsPerPset(); - itsCenterFrequencies = parset.subbandToFrequencyMapping(); - itsNrChannels = parset.nrChannelsPerSubband(); - itsNrSamplesPerIntegration = parset.CNintegrationSteps(); - itsFakeInputData = parset.fakeInputData(); - itsNrSlotsInFrame = parset.nrSlotsInFrame(); - itsCNintegrationTime = parset.CNintegrationTime(); - - -#if SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG - stringstream filename; - filename << "/var/scratch/rob/" << myPset << "." << myCoreInPset << ".myFilteredData"; - outputFile = fopen(filename.str().c_str(), "w"); - fwrite(&itsNrStations, sizeof(unsigned), 1, outputFile); - fwrite(&itsNrSubbands, sizeof(unsigned), 1, outputFile); - fwrite(&itsNrChannels, sizeof(unsigned), 1, outputFile); - unsigned tmp = NR_POLARIZATIONS; - fwrite(&tmp, sizeof(unsigned), 1, outputFile); - fflush(outputFile); -#endif // SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG - - - if (itsFakeInputData && LOG_CONDITION) - LOG_WARN_STR(itsLogPrefix << "Generating fake input data -- any real input is discarded!"); - - // my index in the set of cores which can be used - unsigned phaseTwoCoreIndex = parset.phaseTwoCoreIndex( myCoreInPset ); - - if (itsHasPhaseOne) { - itsFirstInputSubband = new Ring(0, itsNrSubbandsPerPset, phaseTwoCoreIndex, phaseOneTwoCores.size()); - itsInputData = new InputData<SAMPLE_TYPE>(itsPhaseTwoPsetSize, parset.nrSamplesToCNProc(), itsBigAllocator); - itsInputSubbandMetaData = new SubbandMetaData(itsPhaseTwoPsetSize, itsMaxNrTABs + 1); - - // skip ahead to the first block - itsFirstInputSubband->skipFirstBlocks(itsBlock); - } - - if (itsHasPhaseTwo || itsHasPhaseThree) - itsBeamFormer = new BeamFormer(parset); - - if (itsHasPhaseTwo) { - itsCurrentSubband = new Ring(itsPhaseTwoPsetIndex, itsNrSubbandsPerPset, phaseTwoCoreIndex, phaseOneTwoCores.size()); - - // skip ahead to the first block - itsCurrentSubband->skipFirstBlocks(itsBlock); - - itsTransposedSubbandMetaData = new SubbandMetaData(itsNrStations, itsTotalNrTABs + 1); - itsTransposedInputData = new TransposedData<SAMPLE_TYPE>(itsNrStations, parset.nrSamplesToCNProc(), itsBigAllocator); - -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR("Processes subbands " << itsCurrentSubband->list()); -#endif // HAVE_MPI - - itsPPF = new PPF<SAMPLE_TYPE>(itsNrStations, itsNrChannels, itsNrSamplesPerIntegration, parset.subbandBandwidth() / itsNrChannels, parset.delayCompensation() || itsTotalNrTABs > 1 || parset.correctClocks(), parset.correctBandPass(), itsLocationInfo.rank() == 0); - itsFilteredData = new FilteredData(parset.nrStations(), parset.nrChannelsPerSubband(), parset.CNintegrationSteps(), itsBigAllocator); - - if (parset.onlineFlagging() && parset.onlinePreCorrelationFlagging()) { - itsPreCorrelationFlagger = new PreCorrelationFlagger(parset, itsNrStations, itsNrSubbands, itsNrChannels, itsNrSamplesPerIntegration); - if (LOG_CONDITION) - LOG_DEBUG_STR("Online PreCorrelation flagger enabled"); - } else { - itsPreCorrelationFlagger = NULL; - } - - if (parset.onlineFlagging() && parset.onlinePreCorrelationNoChannelsFlagging()) { - itsPreCorrelationNoChannelsFlagger = new PreCorrelationNoChannelsFlagger(parset, myPset, myCoreInPset, parset.correctBandPass(), itsNrStations, itsNrSubbands, itsNrChannels, itsNrSamplesPerIntegration); - if (LOG_CONDITION) - LOG_DEBUG_STR("Online PreCorrelation no channels flagger enabled"); - } else { - itsPreCorrelationNoChannelsFlagger = NULL; - } - - if (parset.outputCorrelatedData()) { - itsCorrelator = new Correlator(itsBeamFormer->getStationMapping(), itsNrChannels, itsNrSamplesPerIntegration); - itsCorrelatedData = (CorrelatedData*)newStreamableData(parset, CORRELATED_DATA, -1, itsBigAllocator); - itsCorrelatedDataStream = createStream(CORRELATED_DATA, itsLocationInfo); - } - - if (parset.onlineFlagging() && parset.onlinePostCorrelationFlagging()) { - itsPostCorrelationFlagger = new PostCorrelationFlagger(parset, nrMergedStations, itsNrSubbands, itsNrChannels); - if (LOG_CONDITION) - LOG_DEBUG_STR("Online PostCorrelation flagger enabled"); - } else { - itsPostCorrelationFlagger = NULL; - } - - - if (parset.onlineFlagging() && parset.onlinePostCorrelationFlagging() && parset.onlinePostCorrelationFlaggingDetectBrokenStations()) { - if (LOG_CONDITION) - LOG_DEBUG_STR("Online PostCorrelation flagger Detect Broken Stations enabled"); - } - } - - if (parset.outputBeamFormedData() || parset.outputTrigger()) { - itsBeamFormedData = new BeamFormedData(BeamFormer::BEST_NRBEAMS, itsNrChannels, itsNrSamplesPerIntegration, itsBigAllocator); - - if (LOG_CONDITION) - LOG_DEBUG_STR("Considering dedispersion for " << itsTotalNrTABs << " pencil beams"); - - itsCoherentDMs.resize(itsTotalNrTABs, 0.0); - itsIncoherentDMs.resize(itsTotalNrTABs, 0.0); - - bool dedisperseCoherent = false; - bool dedisperseIncoherent = false; - unsigned i = 0; - unsigned nrSAPs = parset.nrBeams(); - - for (unsigned sap = 0; sap < nrSAPs; sap++) { - for (unsigned pencil = 0; pencil < itsNrTABs[sap]; pencil++) { - double DM = parset.dispersionMeasure(sap, pencil); - if(LOG_CONDITION) LOG_DEBUG_STR("DM for beam " << sap << " TAB " << pencil << " is " << DM); - - if (DM != 0.0) { - if (parset.isCoherent(sap, pencil)) { - dedisperseCoherent = true; - itsCoherentDMs[i] = DM; - } else { - dedisperseIncoherent = true; - itsIncoherentDMs[i] = DM; - } - } - - i++; - } - } - - if (dedisperseCoherent) { - if(LOG_CONDITION) LOG_DEBUG("Doing dedispersion for coherent data"); - itsDedispersionAfterBeamForming = new DedispersionAfterBeamForming(parset, itsBeamFormedData, itsCurrentSubband->list(), itsCoherentDMs); - } else { - if(LOG_CONDITION) LOG_DEBUG("NOT doing dedispersion for coherent data"); - } - - if (dedisperseIncoherent) { - if(LOG_CONDITION) LOG_DEBUG("Doing dedispersion for incoherent data"); - itsDedispersionBeforeBeamForming = new DedispersionBeforeBeamForming(parset, itsFilteredData, itsCurrentSubband->list(), itsIncoherentDMs); - } else { - if(LOG_CONDITION) LOG_DEBUG("NOT doing dedispersion for incoherent data"); - } - - // Our assembly code (BeamFormerAsm) requires groups of beams it processes to - // be consecutive, so store everything in one big block, controlling the offsets. - - // determine total memory required to process one subband in each SAP - vector<size_t> totalsizes(parset.nrBeams(), 0); - for (unsigned i = 0; i < itsTranspose2Logic.nrStreams(); i++) { - const StreamInfo &info = itsTranspose2Logic.streamInfo[i]; - - // ignore multiple parts since we'll always only process one subband, and thus one part - if (info.part != 0) - continue; - - totalsizes[info.sap] += align(itsTranspose2Logic.subbandSize(i), StreamableData::alignment); - } - - // allocate memory for the largest SAP - size_t max_totalsize = *std::max_element(totalsizes.begin(), totalsizes.end()); - - itsBeamMemory.allocator = &itsBigAllocator; - itsBeamMemory.ptr = itsBigAllocator.allocate(max_totalsize, StreamableData::alignment); - itsBeamArena = new FixedArena(itsBeamMemory.ptr, max_totalsize); - itsBeamAllocator = new SparseSetAllocator(*itsBeamArena.get()); // allocates consecutively - - itsPreTransposeBeamFormedData.resize(itsMaxNrTABs); - - if (LOG_CONDITION) { - LOG_DEBUG_STR("MaxNrTABs = " << itsMaxNrTABs << ", TotalNrTABs = " << itsTotalNrTABs); - LOG_DEBUG_STR("Allocated " << max_totalsize << " bytes for beam forming."); - } - } - - if (itsHasPhaseTwo || itsHasPhaseThree) { - itsCoherentStokes = new CoherentStokes(itsNrChannels, itsNrSamplesPerIntegration); - itsIncoherentStokes = new IncoherentStokes(itsNrChannels, itsNrSamplesPerIntegration, nrMergedStations, parset.nrChannelsPerSubband() / parset.incoherentStokesChannelsPerSubband(), itsDedispersionBeforeBeamForming, itsBigAllocator); - } - -#if defined HAVE_MPI - if (itsHasPhaseOne || itsHasPhaseTwo) - itsAsyncTransposeInput = new AsyncTranspose<SAMPLE_TYPE>(itsHasPhaseOne, itsHasPhaseTwo, myCoreInPset, itsLocationInfo, phaseOnePsets, phaseTwoPsets); - - if (itsPhaseThreeExists && (itsHasPhaseTwo || itsHasPhaseThree)) - itsAsyncTransposeBeams = new AsyncTransposeBeams(itsHasPhaseTwo, itsHasPhaseThree, itsNrSubbands, itsLocationInfo, phaseTwoPsets, phaseOneTwoCores, phaseThreePsets, phaseThreeCores); -#endif // HAVE_MPI - - if (itsHasPhaseThree) { - if (parset.outputBeamFormedData() || parset.outputTrigger()) { - itsTransposedBeamFormedData = new TransposedBeamFormedData(itsTranspose2Logic.maxNrSubbands(), itsTranspose2Logic.maxNrChannels(), itsTranspose2Logic.maxNrSamples(), itsBigAllocator); - itsFinalBeamFormedData = (FinalBeamFormedData*)newStreamableData(parset, BEAM_FORMED_DATA, -1, itsBigAllocator); - itsFinalBeamFormedDataStream = createStream(BEAM_FORMED_DATA, itsLocationInfo); - } - - if (parset.outputTrigger()) { - itsTrigger = new Trigger; - itsTriggerData = (TriggerData*)newStreamableData(parset, TRIGGER_DATA, -1, itsBigAllocator); - itsTriggerDataStream = createStream(TRIGGER_DATA, itsLocationInfo); - } - } -} - - -template <typename SAMPLE_TYPE> CN_Processing<SAMPLE_TYPE>::~CN_Processing() -{ - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Observation finished"); - - // destruct all uses of itsBeamMemory so it can be freed properly - itsPreTransposeBeamFormedData.resize(0); - itsBeamAllocator = 0; - itsBeamArena = 0; - - // don't accumulate plans in memory, as we might run out or create fragmentation -#if defined HAVE_FFTW3 - fftwf_forget_wisdom(); - fftwf_cleanup(); -#elif defined HAVE_FFTW2 - fftw_forget_wisdom(); -#endif - -#if SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG - fclose(outputFile); -#endif -} - - -template <typename SAMPLE_TYPE> double CN_Processing<SAMPLE_TYPE>::blockAge() -{ - struct timeval tv; - double observeTime = itsStartTime + itsBlock * itsIntegrationTime; - double now; - - gettimeofday(&tv,0); - now = 1.0*tv.tv_sec + 1.0*tv.tv_usec/1000000.0; - - return now - observeTime; -} - - -#if defined CLUSTER_SCHEDULING - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::receiveInput() -{ - SubbandMetaData metaData(1, itsMaxNrTABs + 1); - - for (unsigned stat = 0; stat < itsNrStations; stat ++) { - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Receiving input of station " << stat); - - // receive meta data - metaData.read(itsInputStreams[stat]); // FIXME - memcpy(&itsTransposedSubbandMetaData->subbandInfo(stat), &metaData.subbandInfo(0), metaData.itsSubbandInfoSize); - - // receive samples - itsInputStreams[stat]->read(itsTransposedInputData->samples[stat].origin(), itsTransposedInputData->samples[stat].num_elements() * sizeof(SAMPLE_TYPE)); - } -} - -#else - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::transposeInput() -{ -#if defined HAVE_MPI - if (itsHasPhaseOne) - itsInputSubbandMetaData->read(itsInputStreams[0]); // sync read the meta data - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) { - NSTimer postAsyncReceives("post async receives", LOG_CONDITION, true); - postAsyncReceives.start(); - itsAsyncTransposeInput->postAllReceives(itsTransposedSubbandMetaData, itsTransposedInputData); - postAsyncReceives.stop(); - } - - // We must not try to read data from I/O node if our subband does not exist. - // Also, we cannot do the async sends in that case. - if (itsHasPhaseOne) { - static NSTimer readTimer("receive timer", true, true); - static NSTimer phaseOneTimer("phase one timer", true, true); - - phaseOneTimer.start(); - - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start reading at t = " << blockAge()); - - NSTimer asyncSendTimer("async send", LOG_CONDITION, true); - - unsigned subband = *itsFirstInputSubband; - itsFirstInputSubband->next(); - - for (unsigned i = 0; i < itsPhaseTwoPsetSize; i ++, subband += itsNrSubbandsPerPset) { - //unsigned subband = (*itsCurrentSubband % itsNrSubbandsPerPset) + (i * itsNrSubbandsPerPset); - - if (subband < itsNrSubbands) { - readTimer.start(); - itsInputData->readOne(itsInputStreams[0], i); // Synchronously read 1 subband from my IO node. - readTimer.stop(); - asyncSendTimer.start(); - - itsAsyncTransposeInput->asyncSend(i, itsInputSubbandMetaData, itsInputData); // Asynchronously send one subband to another pset. - asyncSendTimer.stop(); - } - } - - phaseOneTimer.stop(); - } -#else // ! HAVE_MPI - if (itsHasPhaseOne) { - static NSTimer readTimer("receive timer", true, true); - readTimer.start(); - itsInputSubbandMetaData->read(itsInputStreams[0]); - itsInputData->read(itsInputStreams[0], false); - readTimer.stop(); - } -#endif // HAVE_MPI -} - -#endif - - -template <typename SAMPLE_TYPE> int CN_Processing<SAMPLE_TYPE>::transposeBeams(unsigned block) -{ - int myStream = itsTranspose2Logic.myStream( block ); - bool streamToProcess = itsHasPhaseThree && myStream >= 0; - - if (!streamToProcess) { - // check whether we really have nothing to process - unsigned myPset = itsTranspose2Logic.phaseThreePsetIndex; - unsigned myCore = itsTranspose2Logic.phaseThreeCoreIndex; - - for (unsigned s = 0; s < itsTranspose2Logic.nrStreams(); s++) { - ASSERTSTR(!(myPset == itsTranspose2Logic.destPset(s, block) && myCore == itsTranspose2Logic.destCore(s, block)), - "I'm (" << myPset << ", " << myCore << ") and should process stream " << s << " for block " << block << " but myStream( ) does not return it."); - } - } - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) { - unsigned subband = *itsCurrentSubband; - - ASSERTSTR((unsigned)itsTranspose2Logic.phaseTwoPsetIndex == itsTranspose2Logic.sourcePset( subband, block ) && (unsigned)itsTranspose2Logic.phaseTwoCoreIndex == itsTranspose2Logic.sourceCore( subband, block ), - "I'm (" << itsTranspose2Logic.phaseTwoPsetIndex << ", " << itsTranspose2Logic.phaseTwoCoreIndex << ") . For block " << block << ", I have subband " << subband << ", but the logic expects that subband from (" << itsTranspose2Logic.sourcePset( subband, block ) << ", " << itsTranspose2Logic.sourceCore( subband, block ) << ")" ); - } - -#if defined HAVE_MPI - if (streamToProcess) { - ASSERTSTR((unsigned)itsTranspose2Logic.phaseThreePsetIndex == itsTranspose2Logic.destPset( myStream, block ) && (unsigned)itsTranspose2Logic.phaseThreeCoreIndex == itsTranspose2Logic.destCore( myStream, block ), - "I'm (" << itsTranspose2Logic.phaseThreePsetIndex << ", " << itsTranspose2Logic.phaseThreeCoreIndex << ") . According to the logic, for block " << block << ", I'm to handle stream " << myStream << ", yet that stream is to be handled by (" << itsTranspose2Logic.destPset( myStream, block ) << ", " << itsTranspose2Logic.destCore( myStream, block ) << ")" ); - - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Phase 3 starting at t = " << blockAge()); - - const StreamInfo &info = itsTranspose2Logic.streamInfo[myStream]; - - itsTransposedBeamFormedData->setDimensions(info.subbands.size(), info.nrChannels, info.nrSamples); - - if (itsFinalBeamFormedData != 0) { - itsFinalBeamFormedData->setDimensions(info.nrSamples, info.subbands.size(), info.nrChannels); - } - - static NSTimer postAsyncReceives("post async beam receives", true, true); - postAsyncReceives.start(); - - for (unsigned sb = 0; sb < info.subbands.size(); sb++) { - unsigned subband = info.subbands[sb]; - - unsigned pset = itsTranspose2Logic.sourcePset( subband, block ); - unsigned core = itsTranspose2Logic.sourceCore( subband, block ); - -#ifdef DEBUG_TRANSPOSE2 - LOG_DEBUG_STR(itsLogPrefix << "transpose: (stream, subband, block) <- (pset, core): (" << myStream << ", " << subband << ", " << block << ") <- (" << pset << ", " << core << ")" ); -#endif - itsAsyncTransposeBeams->postReceive(itsTransposedBeamFormedData.get(), sb, subband, myStream, pset, core); - } - - postAsyncReceives.stop(); - } - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) { - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start sending beams at t = " << blockAge()); - - static NSTimer asyncSendTimer("async beam send", true, true); - - /* overlap computation and transpose */ - /* this makes async send timing worse -- due to caches? remember that we do - async sends, so we're not actually using the data we just calculated, just - references to it. - - overlapping computation and transpose does improve the latency though, so - it might still be worthwhile if the increase in cost is acceptable. */ - - // retrieve info about which beams and parts our subband will end up in - unsigned subband = *itsCurrentSubband; - unsigned sap = itsSubbandToSAPmapping[subband]; - - unsigned nrBeams = itsNrTABs[sap]; - unsigned coherentPart = itsTranspose2Logic.myPart(subband, true); - unsigned incoherentPart = itsTranspose2Logic.myPart(subband, false); - - //LOG_DEBUG_STR("I process subband " << subband << " which belongs to sap " << sap << " part " << part); - - unsigned stream = 0; - - // form and send beams for this SAP - for (unsigned beam = 0; beam < nrBeams;) { // beam is incremented in inner for-loop - unsigned groupSize; - - // go to part 0 first, to determine coherency (which determines the part #) - stream = itsTranspose2Logic.stream(sap, beam, 0, 0, stream); - const StreamInfo &info = itsTranspose2Logic.streamInfo[stream]; - const unsigned part = info.coherent ? coherentPart : incoherentPart; - - if (info.coherent) { - // a coherent beam -- look BEST_NRBEAMS ahead to see if we can process them at the same time - - groupSize = std::min(nrBeams - beam, +BeamFormer::BEST_NRBEAMS); // unary + to avoid requiring a reference - unsigned stream2 = stream; - - // determine how many beams (up to groupSize) are coherent - for (unsigned i = 1; i < groupSize; i++ ) { - stream2 = itsTranspose2Logic.stream(sap, beam+i, 0, 0, stream2); - const StreamInfo &info2 = itsTranspose2Logic.streamInfo[stream2]; - - if (!info2.coherent) { - groupSize = i; - break; - } - } - - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Forming beams " << beam << " .. " << (beam+groupSize-1) << " at t = " << blockAge()); - formBeams(sap, beam, groupSize); - } else { - groupSize = 1; - } - - for (unsigned i = 0; i < groupSize; i ++, beam ++) { - stream = itsTranspose2Logic.stream(sap, beam, 0, part, stream); - - const StreamInfo &info = itsTranspose2Logic.streamInfo[stream]; - - ASSERT( beam < itsPreTransposeBeamFormedData.size() ); - ASSERT( itsPreTransposeBeamFormedData[beam].get() == 0 ); - - itsPreTransposeBeamFormedData[beam] = new PreTransposeBeamFormedData(info.nrStokes, info.nrChannels, info.nrSamples, *itsBeamAllocator.get()); - - ASSERT( itsPreTransposeBeamFormedData[beam].get() != NULL ); - - if (info.coherent) { - if (itsDedispersionAfterBeamForming != 0) { - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Dedispersing beam-formed data at t = " << blockAge()); - - dedisperseAfterBeamForming(i, itsCoherentDMs[beam]); - } - - switch (info.stokesType) { - case STOKES_I: - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Calculating coherent Stokes I at t = " << blockAge()); - itsCoherentStokes->calculate<false>(itsBeamFormedData.get(), itsPreTransposeBeamFormedData[beam].get(), i, info); - break; - - case STOKES_IQUV: - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Calculating coherent Stokes IQUV at t = " << blockAge()); - itsCoherentStokes->calculate<true>(itsBeamFormedData.get(), itsPreTransposeBeamFormedData[beam].get(), i, info); - break; - - case STOKES_XXYY: - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Calculating coherent Stokes XXYY at t = " << blockAge()); - itsBeamFormer->preTransposeBeam(itsBeamFormedData.get(), itsPreTransposeBeamFormedData[beam].get(), i); - break; - - case INVALID_STOKES: - ASSERT( false ); - break; - } - } else { - // TODO: optimise dedispersion to only do the forwardFFT once - - switch (info.stokesType) { - case STOKES_I: - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Calculating incoherent Stokes I at t = " << blockAge()); - itsIncoherentStokes->calculate<false>(itsFilteredData.get(), itsPreTransposeBeamFormedData[beam].get(), itsBeamFormer->getStationMapping(), info, subband, itsIncoherentDMs[beam]); - break; - - case STOKES_IQUV: - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Calculating incoherent Stokes IQUV at t = " << blockAge()); - itsIncoherentStokes->calculate<true>(itsFilteredData.get(), itsPreTransposeBeamFormedData[beam].get(), itsBeamFormer->getStationMapping(), info, subband, itsIncoherentDMs[beam]); - break; - - case STOKES_XXYY: - ASSERT( false ); - break; - - case INVALID_STOKES: - ASSERT( false ); - break; - } - } - - if(LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Done calculating Stokes at t = " << blockAge()); - - asyncSendTimer.start(); - - for (unsigned stokes = 0; stokes < info.nrStokes; stokes ++) { - // calculate which (pset,core) needs the beam part - stream = itsTranspose2Logic.stream(sap, beam, stokes, part, stream); - - unsigned pset = itsTranspose2Logic.destPset(stream, block); - unsigned core = itsTranspose2Logic.destCore(stream, block); - -#ifdef DEBUG_TRANSPOSE2 - LOG_DEBUG_STR(itsLogPrefix << "transpose: (stream, subband, block) -> (pset, core): (" << stream << ", " << *itsCurrentSubband << ", " << block << ") -> (" << pset << ", " << core << ")" ); -#endif - itsAsyncTransposeBeams->asyncSend(pset, core, *itsCurrentSubband, stokes, stream, itsPreTransposeBeamFormedData[beam].get()); // Asynchronously send one beam to another pset. - } - - asyncSendTimer.stop(); - } - } - } -#endif // HAVE_MPI - - return streamToProcess ? myStream : -1; -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::filter() -{ -#if defined HAVE_MPI && !defined CLUSTER_SCHEDULING - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start filtering at t = " << blockAge()); - - NSTimer asyncReceiveTimer("wait for any async receive", LOG_CONDITION, true); - static NSTimer timer("filter timer", true, true); - - timer.start(); - - for (unsigned i = 0; i < itsNrStations; i ++) { - asyncReceiveTimer.start(); - unsigned stat = itsAsyncTransposeInput->waitForAnyReceive(); - asyncReceiveTimer.stop(); - - checkInputForZeros(stat); - - computeTimer.start(); - itsPPF->doWork(stat, itsCenterFrequencies[*itsCurrentSubband], itsTransposedSubbandMetaData, itsTransposedInputData, itsFilteredData); - computeTimer.stop(); - } - - timer.stop(); -#else - for (unsigned stat = 0; stat < itsNrStations; stat ++) { - computeTimer.start(); - itsPPF->doWork(stat, itsCenterFrequencies[*itsCurrentSubband], itsTransposedSubbandMetaData, itsTransposedInputData, itsFilteredData); - computeTimer.stop(); - } -#endif - - if (itsFakeInputData) - FakeData(itsParset).fill(itsFilteredData, *itsCurrentSubband); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::checkInputForZeros(unsigned station) -{ -#ifdef HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start checking for zeroes at " << MPI_Wtime()); -#endif - - static NSTimer timer("input zero-check timer", true, true); - - timer.start(); - - const unsigned nrSamplesToCNProc = itsNrSamplesPerIntegration * itsNrChannels; - - const SparseSet<unsigned> &flags = itsTransposedSubbandMetaData->getFlags(station); - SparseSet<unsigned> validSamples = flags.invert(0, nrSamplesToCNProc); - - bool allzeros = true; - - // only consider non-flagged samples, as flagged samples aren't necessarily zero - for (SparseSet<unsigned>::const_iterator it = validSamples.getRanges().begin(); allzeros && it != validSamples.getRanges().end(); ++it) { - -#ifdef HAVE_BGP - unsigned first = it->begin; - unsigned nrSamples = it->end - it->begin; - - ASSERT(NR_POLARIZATIONS == 2); // assumed by the assembly - - allzeros = containsOnlyZeros<SAMPLE_TYPE>(itsTransposedInputData->samples[station][first].origin(), nrSamples); -#else - for (unsigned t = it->begin; allzeros && t < it->end; t++) { - for (unsigned p = 0; p < NR_POLARIZATIONS; p++) { - const SAMPLE_TYPE &sample = itsTransposedInputData->samples[station][t][p]; - - if (real(sample) != 0.0 || imag(sample) != 0.0) { - allzeros = false; - break; - } - } - } -#endif - } - - if (allzeros && validSamples.count() > 0) { - // flag everything - SparseSet<unsigned> newflags; - - newflags.include(0, nrSamplesToCNProc); - itsTransposedSubbandMetaData->setFlags(station, newflags); - - // Rate limit this log line, to prevent 244 warnings/station/block - // - // Emit (at most) one message per 10 seconds, and only one per RSP board (TODO: this doesn't work as expected with DataSlots) - unsigned logInterval = static_cast<unsigned>(ceil(10.0 / itsCNintegrationTime)); - if (itsBlock % logInterval == 0 && *itsCurrentSubband % itsNrSlotsInFrame == 0) - LOG_ERROR_STR(itsLogPrefix << "Station " << itsStationNames[station] << " subband " << *itsCurrentSubband << " consists of only zeros."); - } - - timer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::dedisperseAfterBeamForming(unsigned beam, double dm) -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start dedispersion of coherent data at t = " << blockAge()); -#endif - - static NSTimer timer("dedispersion (coherent) timer", true, true); - - computeTimer.start(); - timer.start(); - itsDedispersionAfterBeamForming->dedisperse(itsBeamFormedData.get(), *itsCurrentSubband, beam, dm); - timer.stop(); - computeTimer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::preCorrelationFlagging() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start pre correlation flagger at t = " << blockAge()); -#endif // HAVE_MPI - - static NSTimer timer("pre correlation flagger", true, true); - - timer.start(); - computeTimer.start(); - itsPreCorrelationFlagger->flag(itsFilteredData, *itsCurrentSubband); - computeTimer.stop(); - timer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::preCorrelationNoChannelsFlagging() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start pre correlation no channels flagger at t = " << blockAge()); -#endif // HAVE_MPI - - static NSTimer timer("pre correlation no channels flagger", true, true); - - timer.start(); - computeTimer.start(); - itsPreCorrelationNoChannelsFlagger->flag(itsFilteredData, itsBlock, *itsCurrentSubband); - computeTimer.stop(); - timer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::mergeStations() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start merging stations at t = " << blockAge()); -#endif // HAVE_MPI - - static NSTimer timer("superstation forming timer", true, true); - - timer.start(); - computeTimer.start(); - itsBeamFormer->mergeStations(itsFilteredData); - computeTimer.stop(); - timer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::formBeams(unsigned sap, unsigned firstBeam, unsigned nrBeams) -{ - static NSTimer timer("beam forming timer", true, true); - - timer.start(); - computeTimer.start(); - itsBeamFormer->formBeams(itsTransposedSubbandMetaData, itsFilteredData, itsBeamFormedData, *itsCurrentSubband, sap, firstBeam, nrBeams); - computeTimer.stop(); - timer.stop(); - - // make sure the timer averages for forming each beam, not for forming nrBeams, a value which can be different - // for each call to formBeams - for (unsigned i = 1; i < nrBeams; i ++) { - timer.start(); - timer.stop(); - } -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::correlate() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start correlating at t = " << blockAge()); -#endif // HAVE_MPI - - computeTimer.start(); - itsCorrelator->computeFlags(itsFilteredData, itsCorrelatedData); - itsCorrelator->correlate(itsFilteredData, itsCorrelatedData); - computeTimer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::postCorrelationFlagging() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start post correlation flagger at t = " << blockAge()); -#endif // HAVE_MPI - - static NSTimer timer("post correlation flagger", true, true); - - timer.start(); - computeTimer.start(); - itsPostCorrelationFlagger->flag(itsCorrelatedData, *itsCurrentSubband); - - if(itsParset.onlinePostCorrelationFlaggingDetectBrokenStations()) { - itsPostCorrelationFlagger->detectBrokenStations(); - } - - computeTimer.stop(); - timer.stop(); -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::sendOutput(StreamableData *outputData, Stream *stream) -{ -#if defined HAVE_MPI - if (LOG_CONDITION) { - LOG_DEBUG_STR(itsLogPrefix << "Start writing output at t = " << blockAge()); - } - //LOG_INFO_STR(itsLogPrefix << "Output " << outputNr << " has been processed " << blockAge() << " seconds after being observed."); -#endif // HAVE_MPI - - static NSTimer writeTimer("send timer", true, true); - writeTimer.start(); - outputData->write(stream, false); - writeTimer.stop(); - - if (LOG_CONDITION) { - LOG_DEBUG_STR(itsLogPrefix << "Done writing output at t = " << blockAge()); - } -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::finishSendingInput() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start waiting to finish sending input for transpose at t = " << blockAge()); - - static NSTimer waitAsyncSendTimer("wait for all async sends", true, true); - waitAsyncSendTimer.start(); - itsAsyncTransposeInput->waitForAllSends(); - waitAsyncSendTimer.stop(); -#endif -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::finishSendingBeams() -{ -#if defined HAVE_MPI - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start waiting to finish sending beams for transpose at t = " << blockAge()); - - static NSTimer waitAsyncSendTimer("wait for all async beam sends", true, true); - waitAsyncSendTimer.start(); - itsAsyncTransposeBeams->waitForAllSends(); - waitAsyncSendTimer.stop(); -#endif - - // free all pretranspose data that we just send, to make room for a different configuration - // (because the configuration depends on itsCurrentSubband) - for( unsigned i = 0; i < itsPreTransposeBeamFormedData.size(); i++ ) - itsPreTransposeBeamFormedData[i] = 0; -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::receiveBeam(unsigned stream) -{ -#if defined HAVE_MPI - const StreamInfo &info = itsTranspose2Logic.streamInfo[stream]; - unsigned nrSubbands = info.subbands.size(); - - static NSTimer asyncFirstReceiveTimer("wait for first async beam receive", true, true); - static NSTimer asyncNonfirstReceiveTimer("wait for subsequent async beam receive", true, true); - - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Starting to receive and process subbands at t = " << blockAge()); - - /* Overlap transpose and computations? */ - /* this makes timings better as this time we're waiting for data to come in - and in a random order, so caches won't help much. In fact, we probably do - want to process what's just been received because of those caches. */ - - for (unsigned i = 0; i < nrSubbands; i++) { - NSTimer &timer = (i == 0 ? asyncFirstReceiveTimer : asyncNonfirstReceiveTimer); - unsigned subband; - - timer.start(); - subband = itsAsyncTransposeBeams->waitForAnyReceive(); - timer.stop(); - -#if 0 - /* Don't overlap transpose and computations */ - - (void)subband; - } - - for (unsigned subband = 0; subband < nrSubbands; subband++) { -#endif - - if (LOG_CONDITION && (i == 0 || i == 1 || i == nrSubbands - 2 || i == nrSubbands - 1)) - LOG_DEBUG_STR(itsLogPrefix << "Starting to post process subband " << i << " / " << nrSubbands << " at t = " << blockAge()); - - if (itsFinalBeamFormedData != 0) { - itsBeamFormer->postTransposeBeam(itsTransposedBeamFormedData, itsFinalBeamFormedData, subband, info.nrChannels, info.nrSamples); - } - - if (itsTrigger != 0) - itsTrigger->compute(itsTriggerData); - } -#else - (void)stream; -#endif -} - - -template <typename SAMPLE_TYPE> void CN_Processing<SAMPLE_TYPE>::process(unsigned block) -{ - totalProcessingTimer.start(); - NSTimer totalTimer("total processing", LOG_CONDITION, true); - - totalTimer.start(); - - itsBlock = block; - - // PHASE ONE: Receive input data, and send it to the nodes participating in phase two. - -#if !defined CLUSTER_SCHEDULING - if (itsHasPhaseOne || itsHasPhaseTwo) - transposeInput(); -#endif - - // PHASE TWO: Perform (and possibly output) calculations per subband, and possibly transpose data for phase three. - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) { - if (LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Phase 2: Processing subband " << *itsCurrentSubband << " block " << itsBlock << " at t = " << blockAge()); - -#if defined CLUSTER_SCHEDULING - receiveInput(); -#endif - - if (itsPPF != 0) - filter(); - - if (itsPreCorrelationNoChannelsFlagger != NULL) - preCorrelationNoChannelsFlagging(); - - if (itsPreCorrelationFlagger != NULL) - preCorrelationFlagging(); - -#if SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG - for(unsigned station=0; station < itsNrStations; station++) { - fwrite(&itsBlock, sizeof(unsigned), 1, outputFile); - fwrite(&station, sizeof(unsigned), 1, outputFile); - int tmp = *itsCurrentSubband; - fwrite(&tmp, sizeof(float), 1, outputFile); - for(unsigned c=0; c<itsNrChannels; c++) { - float sum = 0.0f; - for(unsigned pol=0; pol < NR_POLARIZATIONS; pol++) { - for(unsigned t=0; t<itsNrSamplesPerIntegration; t++) { - fcomplex sample = itsFilteredData->samples[c][station][t][pol]; - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - sum += power; - } - fwrite(&sum, sizeof(float), 1, outputFile); - } - } - } - fflush(outputFile); -#endif // SAVE_REAL_TIME_FLAGGER_FILTERED_DATA_DEBUG - - mergeStations(); // create superstations -#if !defined HAVE_BGP - } - - // transpose has to finish before we start the next transpose - // Unlike BG/P MPI, OpenMPI performs poorly when we postpone this until - // after correlation. - - if (itsHasPhaseOne) - finishSendingInput(); - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) { -#endif - - if (itsCorrelator != 0) - correlate(); - - if (itsPostCorrelationFlagger != NULL) - postCorrelationFlagging(); - - if (itsCorrelatedDataStream != 0) - sendOutput(itsCorrelatedData, itsCorrelatedDataStream); - } - -#if defined HAVE_BGP - if (itsHasPhaseOne) // transpose has to finish before we start the next transpose - finishSendingInput(); -#endif - - // PHASE THREE: Perform (and possibly output) calculations per beam. - - // !itsPhasThreeDisjuct: it is possible for a core not to process a subband (because *itsCurrentSubband < itsNrSubbands) - // but has to process a beam. For instance itsNrSubbandsPerPset > nrPhase3StreamsPerPset can create such a situation: psets - // are first filled up to itsNrSubbandsPerPset, leaving the last pset(s) idle, even though they might have to process - // a beam. - - if ((itsHasPhaseThree && itsPhaseThreeDisjunct) || (itsHasPhaseTwo && itsPhaseThreeExists)) { - int streamToProcess = transposeBeams(itsBlock); - bool doPhaseThree = streamToProcess >= 0; - - if (doPhaseThree) { - receiveBeam(streamToProcess); - - if (itsFinalBeamFormedDataStream != 0) - sendOutput(itsFinalBeamFormedData, itsFinalBeamFormedDataStream); - - if (itsTriggerDataStream != 0) - sendOutput(itsTriggerData, itsTriggerDataStream); - } - - if (itsHasPhaseTwo && *itsCurrentSubband < itsNrSubbands) - finishSendingBeams(); - } - -#if defined HAVE_MPI - if ((itsHasPhaseOne || itsHasPhaseTwo || itsHasPhaseThree) && LOG_CONDITION) - LOG_DEBUG_STR(itsLogPrefix << "Start idling at t = " << blockAge()); -#endif // HAVE_MPI - -#if 0 - static unsigned count = 0; - - if (itsLocationInfo.rank() == 5 && ++ count == 9) - for (double time = MPI_Wtime() + 4.0; MPI_Wtime() < time;) - ; -#endif - - if (itsHasPhaseTwo) - itsCurrentSubband->next(); - - totalTimer.stop(); - totalProcessingTimer.stop(); -} - - -template class CN_Processing<i4complex>; -template class CN_Processing<i8complex>; -template class CN_Processing<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/CN_Processing.h b/RTCP/CNProc/src/CN_Processing.h deleted file mode 100644 index a1f31471e91c75742f850c67aef1f7b6504b8cfb..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CN_Processing.h +++ /dev/null @@ -1,187 +0,0 @@ -//# CN_Processing.h: polyphase filter and correlator -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_CNPROC_CN_PROCESSING_H -#define LOFAR_CNPROC_CN_PROCESSING_H - -#if 0 || !defined HAVE_BGP -#define C_IMPLEMENTATION -#endif - -#include <Interface/Allocator.h> -#include <Interface/BeamFormedData.h> -#include <Interface/Config.h> -#include <Interface/CorrelatedData.h> -#include <Interface/FilteredData.h> -#include <Interface/InputData.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/SubbandMetaData.h> -#include <Interface/TransposedData.h> -#include <Interface/TriggerData.h> - -#include <Stream/Stream.h> - -#include <AsyncTranspose.h> -#include <AsyncTransposeBeams.h> -#include <BeamFormer.h> -#include <Correlator.h> -#include <Dedispersion.h> -#include <LocationInfo.h> -#include <PPF.h> -#include <PreCorrelationFlagger.h> -#include <PreCorrelationNoChannelsFlagger.h> -#include <PostCorrelationFlagger.h> -#include <Ring.h> -#include <Stokes.h> -#include <Trigger.h> - -#include <string> - - -namespace LOFAR { -namespace RTCP { - - -class CN_Processing_Base // untemplated helper class -{ - public: - virtual ~CN_Processing_Base(); - - virtual void process(unsigned) = 0; -}; - - -template <typename SAMPLE_TYPE> class CN_Processing : public CN_Processing_Base -{ - public: - CN_Processing(const Parset &, const std::vector<SmartPtr<Stream> > &inputStreams, Stream *(*createStream)(unsigned, const LocationInfo &), const LocationInfo &, Allocator & = heapAllocator, unsigned firstBlock = 0); - ~CN_Processing(); - - virtual void process(unsigned); - - private: - double blockAge(); // age of the current block, in seconds since it was observed by the stations -#if defined CLUSTER_SCHEDULING - void receiveInput(); -#else - void transposeInput(); -#endif - int transposeBeams(unsigned block); - void filter(); - void checkInputForZeros(unsigned station); - void dedisperseAfterBeamForming(unsigned beam, double dm); - void preCorrelationNoChannelsFlagging(); - void preCorrelationFlagging(); - void mergeStations(); - void formBeams(unsigned sap, unsigned firstBeam, unsigned nrBeams); - void receiveBeam(unsigned stream); - void correlate(); - void postCorrelationFlagging(); - - void sendOutput(StreamableData *, Stream *); - void finishSendingInput(); - void finishSendingBeams(); - - std::string itsLogPrefix; - Allocator &itsBigAllocator; - - double itsStartTime, itsIntegrationTime; - unsigned itsBlock; - - std::vector<std::string> itsStationNames; - unsigned itsNrStations; - unsigned itsNrSlotsInFrame; - unsigned itsNrSubbands; - std::vector<unsigned> itsSubbandToSAPmapping; - std::vector<unsigned> itsNrTABs; - unsigned itsMaxNrTABs, itsTotalNrTABs; - unsigned itsNrSubbandsPerPset; - unsigned itsNrSubbandsPerPart; - unsigned itsNrChannels; - unsigned itsNrSamplesPerIntegration; - double itsCNintegrationTime; - unsigned itsPhaseTwoPsetSize, itsPhaseThreePsetSize; - unsigned itsPhaseTwoPsetIndex, itsPhaseThreePsetIndex; - bool itsPhaseThreeExists, itsPhaseThreeDisjunct; - - const Parset &itsParset; - - const std::vector<SmartPtr<Stream> > &itsInputStreams; - - SmartPtr<Stream> itsCorrelatedDataStream; - SmartPtr<Stream> itsFinalBeamFormedDataStream; - SmartPtr<Stream> itsTriggerDataStream; - - const LocationInfo &itsLocationInfo; - const CN_Transpose2 &itsTranspose2Logic; - std::vector<double> itsCenterFrequencies; - SmartPtr<Ring> itsFirstInputSubband, itsCurrentSubband; - std::vector<double> itsCoherentDMs; - std::vector<double> itsIncoherentDMs; - bool itsFakeInputData; - bool itsHasPhaseOne, itsHasPhaseTwo, itsHasPhaseThree; - -#if defined HAVE_MPI - SmartPtr<AsyncTranspose<SAMPLE_TYPE> > itsAsyncTransposeInput; - SmartPtr<AsyncTransposeBeams> itsAsyncTransposeBeams; -#endif - - SmartPtr<InputData<SAMPLE_TYPE> > itsInputData; - SmartPtr<SubbandMetaData> itsInputSubbandMetaData; - SmartPtr<SubbandMetaData> itsTransposedSubbandMetaData; - SmartPtr<TransposedData<SAMPLE_TYPE> > itsTransposedInputData; - SmartPtr<FilteredData> itsFilteredData; - SmartPtr<CorrelatedData> itsCorrelatedData; - SmartPtr<BeamFormedData> itsBeamFormedData; - SmartPtr<TransposedBeamFormedData> itsTransposedBeamFormedData; - SmartPtr<FinalBeamFormedData> itsFinalBeamFormedData; - SmartPtr<TriggerData> itsTriggerData; - - std::vector<SmartPtr<PreTransposeBeamFormedData> > itsPreTransposeBeamFormedData; - - struct autoDeallocate { // SmartPtr doesn't work with custom Allocators - void *ptr; - Allocator *allocator; - - autoDeallocate(): ptr(0), allocator(0) {} - ~autoDeallocate() { if (ptr && allocator) allocator->deallocate(ptr); } - } itsBeamMemory; - - SmartPtr<Arena> itsBeamArena; - SmartPtr<Allocator> itsBeamAllocator; - - SmartPtr<PPF<SAMPLE_TYPE> > itsPPF; - SmartPtr<BeamFormer> itsBeamFormer; - SmartPtr<CoherentStokes> itsCoherentStokes; - SmartPtr<IncoherentStokes> itsIncoherentStokes; - SmartPtr<Correlator> itsCorrelator; - SmartPtr<DedispersionAfterBeamForming> itsDedispersionAfterBeamForming; - SmartPtr<DedispersionBeforeBeamForming> itsDedispersionBeforeBeamForming; - SmartPtr<PreCorrelationFlagger> itsPreCorrelationFlagger; - SmartPtr<PreCorrelationNoChannelsFlagger> itsPreCorrelationNoChannelsFlagger; - SmartPtr<PostCorrelationFlagger> itsPostCorrelationFlagger; - SmartPtr<Trigger> itsTrigger; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/CN_Processing_main.cc b/RTCP/CNProc/src/CN_Processing_main.cc deleted file mode 100644 index 2c65f47ad717dc015fadca47fb474fa91afdee14..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CN_Processing_main.cc +++ /dev/null @@ -1,281 +0,0 @@ -//# CN_Processing_main.cc: -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> - -#include <CNProc/LocationInfo.h> -#include <CNProc/CN_Processing.h> -#include <CNProc/Package__Version.h> -#include <Common/Exception.h> -#include <Common/LofarLogger.h> -#include <Common/NewHandler.h> -#include <Interface/Allocator.h> -#include <Interface/CN_Command.h> -#include <Interface/Exceptions.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/Stream.h> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> -#include <execinfo.h> - -#if defined CLUSTER_SCHEDULING -#define LOG_CONDITION 1 -#else -#define LOG_CONDITION (locationInfo.rankInPset() == 0) -#endif - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -#if defined HAVE_FCNP && defined HAVE_BGP_CN && !defined USE_VALGRIND -#include <FCNP_ClientStream.h> -#include <FCNP/fcnp_cn.h> -#endif - -#include <cstdio> -#include <cstring> - -#if defined HAVE_BGP && defined HAVE_FFTW2 -// use our own memory managment to both use new/delete and -// to avoid fftw from calling exit() when there is not -// enough memory. - -// We can't redirect the malloc()s done by fftw3 yet as they are hard-coded. -// Be warned that fftw also abort()s or exit()s when malloc fails. -#define REROUTE_FFTW2_MALLOC -#endif - -#if defined REROUTE_FFTW2_MALLOC -#include <fftw.h> -#endif - -// install a new handler to produce backtraces for std::bad_alloc -LOFAR::NewHandler h(LOFAR::BadAllocException::newHandler); - -using namespace LOFAR; -using namespace LOFAR::RTCP; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -static const char *ionStreamType; - - -static void getIONstreamType() -{ - if ((ionStreamType = getenv("CN_STREAM_TYPE")) == 0) -#if !defined HAVE_BGP_CN - ionStreamType = "NULL"; -#elif defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND - ionStreamType = "FCNP"; -#else - ionStreamType = "TCPKEY"; -#endif - -#if defined HAVE_FCNP && defined HAVE_BGP_CN && !defined USE_VALGRIND - if (ionStreamType == "FCNP") - FCNP_CN::init(); -#endif -} - - -static Stream *createIONstream(unsigned channel, const LocationInfo &locationInfo) -{ -#if defined HAVE_FCNP && defined HAVE_BGP_CN && !defined USE_VALGRIND - if (strcmp(ionStreamType, "FCNP") == 0) - return new FCNP_ClientStream(channel); -#endif - - unsigned nrPsets = locationInfo.nrPsets(); - unsigned psetSize = locationInfo.psetSize(); - unsigned psetNumber = locationInfo.psetNumber(); - unsigned rankInPset = locationInfo.rankInPset(); - - std::string descriptor = getStreamDescriptorBetweenIONandCN(ionStreamType, psetNumber, psetNumber, rankInPset, nrPsets, psetSize, channel); - - return createStream(descriptor, false); -} - -#if defined REROUTE_FFTW2_MALLOC -void *my_fftw_malloc(size_t n) { - // don't use malloc() as it throws a bad_alloc on the BGP CNK. - return new char[n]; -} - -void my_fftw_free(void *p) { - delete[] static_cast<char*>(p); -} -#endif - -int main(int argc, char **argv) -{ - std::clog.rdbuf(std::cout.rdbuf()); - -#if defined REROUTE_FFTW2_MALLOC - fftw_malloc_hook = my_fftw_malloc; - fftw_free_hook = my_fftw_free; -#endif - - try { - -#if defined HAVE_MPI - MPI_Init(&argc, &argv); -#else - (void) argc; - (void) argv; -#endif - - LocationInfo locationInfo; - -#if defined HAVE_LOG4CPLUS - INIT_LOGGER( "CNProc" ); -#elif defined HAVE_LOG4CXX - #error LOG4CXX support is broken (nonsensical?) -- please fix this code if you want to use it - Context::initialize(); - setLevel("Global",8); -#else - INIT_LOGGER_WITH_SYSINFO(str(boost::format("CNProc@%04d") % locationInfo.rank())); -#endif - - if (locationInfo.rank() == 0) { - locationInfo.print(); - -#if !defined HAVE_PKVERSION - std::string type = "brief"; - Version::show<CNProcVersion> (std::cout, "CNProc", type); -#endif - } - - LOG_INFO_STR("Core " << locationInfo.rank() << " is core " << locationInfo.rankInPset() << " in pset " << locationInfo.psetNumber()); - - getIONstreamType(); - - if (LOG_CONDITION) - LOG_DEBUG("Creating connection to ION ..."); - - std::vector<SmartPtr<Stream> > ionStreams; - -#if defined CLUSTER_SCHEDULING - ionStreams.resize(locationInfo.nrPsets()); - - for (unsigned ionode = 0; ionode < locationInfo.nrPsets(); ionode ++) { - std::string descriptor = getStreamDescriptorBetweenIONandCN(ionStreamType, ionode, locationInfo.psetNumber(), locationInfo.rankInPset(), locationInfo.nrPsets(), locationInfo.psetSize(), 0); - ionStreams[ionode] = createStream(descriptor, false); - } - - Stream *controlStream = ionStreams[locationInfo.psetNumber()].get(); -#else - ionStreams.resize(1); - ionStreams[0] = createIONstream(0, locationInfo); - - Stream *controlStream = ionStreams[0].get(); -#endif - - if (LOG_CONDITION) - LOG_DEBUG("Creating connection to ION: done"); - - - // an allocator for our big memory structures -#if defined HAVE_BGP - // The BG/P compute nodes have a flat memory space (no virtual memory), so memory can fragment, preventing us - // from allocating big blocks. We thus put the big blocks in a separate arena. - MallocedArena bigArena(400*1024*1024, 32); - SparseSetAllocator bigAllocator(bigArena); -#else - // assume memory is freely available - HeapAllocator bigAllocator; -#endif - - SmartPtr<Parset> parset; - SmartPtr<CN_Processing_Base> proc; - CN_Command command; - - do { - command.read(controlStream); - //LOG_DEBUG_STR("Received command " << command.value() << " = " << command.name()); - - switch (command.value()) { - case CN_Command::PREPROCESS : try { - unsigned firstBlock = command.param(); - - parset = new Parset(controlStream); - - switch (parset->nrBitsPerSample()) { - case 4: proc = new CN_Processing<i4complex>(*parset, ionStreams, &createIONstream, locationInfo, bigAllocator, firstBlock); - break; - - case 8: proc = new CN_Processing<i8complex>(*parset, ionStreams, &createIONstream, locationInfo, bigAllocator, firstBlock); - break; - - case 16: proc = new CN_Processing<i16complex>(*parset, ionStreams, &createIONstream, locationInfo, bigAllocator, firstBlock); - break; - } - } catch (Exception &ex) { - LOG_ERROR_STR("Caught Exception: " << ex); - } catch (std::exception &ex) { - LOG_ERROR_STR("Caught Exception: " << ex.what()); - } catch (...) { - LOG_ERROR_STR("Caught Exception: unknown"); - } - -#if 0 // FIXME: leads to deadlock when using TCP - { - char failed = proc == 0; - ionStream->write(&failed, sizeof failed); - } -#endif - - break; - - case CN_Command::PROCESS : proc->process(command.param()); - break; - - case CN_Command::POSTPROCESS : // proc == 0 if PREPROCESS threw an exception, after which all cores receive a POSTPROCESS message - delete proc.release(); - delete parset.release(); - -#if defined HAVE_BGP // only SparseAllocator keeps track of its allocations - if (!bigAllocator.empty()) - LOG_ERROR("Memory leak detected in bigAllocator"); -#endif - break; - - case CN_Command::STOP : break; - - default : LOG_FATAL("Bad command!"); - abort(); - } - } while (command.value() != CN_Command::STOP); - -#if defined HAVE_MPI - MPI_Finalize(); - usleep(500 * locationInfo.rank()); // do not dump stats all at the same time -#endif - - return 0; - } catch (Exception &ex) { - LOG_FATAL_STR("Uncaught Exception: " << ex); - return 1; - } -} diff --git a/RTCP/CNProc/src/ContainsOnlyZerosAsm.S b/RTCP/CNProc/src/ContainsOnlyZerosAsm.S deleted file mode 100644 index fd0e0a2a004060cd8f842371f1290457e32f08cd..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/ContainsOnlyZerosAsm.S +++ /dev/null @@ -1,54 +0,0 @@ -#if defined HAVE_BGP - -# bool LOFAR::RTCP::containsOnlyZeros(std::complex<short> *samples, unsigned nrSamples); - -.global _ZN5LOFAR4RTCP17containsOnlyZerosISt7complexIsEEEbPKT_j -_ZN5LOFAR4RTCP17containsOnlyZerosISt7complexIsEEEbPKT_j: - mtctr 4 - li 4,4 - subi 3,3,4 - -0: lwzux 0,3,4 - lwzux 5,3,4 - or. 0,0,5 - bdnzt 2,0b - - mfcr 3 - rlwinm 3,3,3,31,31 - blr - - -# bool LOFAR::RTCP::containsOnlyZeros(std::complex<signed char> *samples, unsigned nrSamples); - -.global _ZN5LOFAR4RTCP17containsOnlyZerosISt7complexIaEEEbPKT_j -_ZN5LOFAR4RTCP17containsOnlyZerosISt7complexIaEEEbPKT_j: - mtctr 4 - li 4,4 - subi 3,3,4 - -0: lwzux 0,3,4 - cmpwi 0,0 - bdnzt 2,0b - - mfcr 3 - rlwinm 3,3,3,31,31 - blr - - -# bool LOFAR::RTCP::containsOnlyZeros(LOFAR::TYPES::i4complex *samples, unsigned nrSamples); - -.global _ZN5LOFAR4RTCP17containsOnlyZerosINS_5TYPES9i4complexEEEbPKT_j -_ZN5LOFAR4RTCP17containsOnlyZerosINS_5TYPES9i4complexEEEbPKT_j: - mtctr 4 - li 4,4 - subi 3,3,4 - -0: lhzux 0,3,4 - cmpwi 0,0 - bdnzt 2,0b - - mfcr 3 - rlwinm 3,3,3,31,31 - blr - -#endif diff --git a/RTCP/CNProc/src/ContainsOnlyZerosAsm.h b/RTCP/CNProc/src/ContainsOnlyZerosAsm.h deleted file mode 100644 index 77dc4dbfb35abef1ebc9622653d1a155d9bf56c9..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/ContainsOnlyZerosAsm.h +++ /dev/null @@ -1,40 +0,0 @@ -//# ContainsOnlyZerosAsm.h: header files for CN assembly -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: FFT_Asm.h 13808 2009-08-19 11:42:05Z romein $ - -#ifndef LOFAR_CNPROC_CONTAINSONLYZEROS_ASM_H -#define LOFAR_CNPROC_CONTAINSONLYZEROS_ASM_H - -#if defined HAVE_BGP -#include <Common/lofar_complex.h> - -namespace LOFAR { -namespace RTCP { - -// ContainsOnlyZerosAsm.S implements containsOnlyZeros<T> with -// T = std::complex<short> -// T = std::complex<signed char> -// T = LOFAR::i4complex -template <typename T> bool containsOnlyZeros(const T *samples, unsigned nrSamples); - -} -} - -#endif -#endif diff --git a/RTCP/CNProc/src/Correlator.cc b/RTCP/CNProc/src/Correlator.cc deleted file mode 100644 index eb33e73b241c791fd2a0577cce805ce66a54ce1d..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Correlator.cc +++ /dev/null @@ -1,331 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/Timer.h> - -#include <Correlator.h> -#include <CorrelatorAsm.h> - -#include <Interface/FilteredData.h> - -#include <map> - -#if defined __SSE2__ -#include <xmmintrin.h> -#endif - -namespace LOFAR { -namespace RTCP { - - -static NSTimer computeFlagsTimer("Correlator::computeFlags()", true, true); -static NSTimer correlateTimer("Correlator::correlate()", true, true); -static NSTimer weightTimer("Correlator::weight()", true, true); - - -// nrStations is the number of superstations in case we use TAB. -// Stations that are not beam formed count as a station. -Correlator::Correlator(const std::vector<unsigned> &stationMapping, unsigned nrChannels, unsigned nrSamplesPerIntegration) -: - itsNrStations(stationMapping.size()), - itsNrBaselines(itsNrStations * (itsNrStations + 1) / 2), - itsNrChannels(nrChannels), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), - itsCorrelationWeights(nrSamplesPerIntegration + 1), - itsStationMapping(stationMapping) -{ - itsCorrelationWeights[0] = 0.0; - - for (unsigned i = 1; i <= nrSamplesPerIntegration; i ++) - itsCorrelationWeights[i] = 1.0e-6 / i; -} - - -template <typename T> void Correlator::setNrValidSamples(const SampleData<> *sampleData, Matrix<T> &theNrValidSamples) -{ - for (unsigned stat2 = 0; stat2 < itsNrStations; stat2 ++) { - for (unsigned stat1 = 0; stat1 <= stat2; stat1 ++) { - unsigned bl = baseline(stat1, stat2); - - if (itsNrChannels == 1) { - unsigned nrValidSamples = itsNrSamplesPerIntegration - (sampleData->flags[0][itsStationMapping[stat1]] | sampleData->flags[0][itsStationMapping[stat2]]).count(); - theNrValidSamples[bl][0] = nrValidSamples; - } else { - theNrValidSamples[bl][0] = 0; // channel 0 does not contain valid data - - for (unsigned ch = 1; ch < itsNrChannels; ch ++) { - unsigned nrValidSamples = itsNrSamplesPerIntegration - (sampleData->flags[ch][itsStationMapping[stat1]] | sampleData->flags[ch][itsStationMapping[stat2]]).count(); - theNrValidSamples[bl][ch] = nrValidSamples; - } - } - } - } -} - - -void Correlator::computeFlags(const SampleData<> *sampleData, CorrelatedData *correlatedData) -{ - computeFlagsTimer.start(); - - switch (correlatedData->itsNrBytesPerNrValidSamples) { - case 4 : setNrValidSamples(sampleData, correlatedData->itsNrValidSamples4); - break; - - case 2 : setNrValidSamples(sampleData, correlatedData->itsNrValidSamples2); - break; - - case 1 : setNrValidSamples(sampleData, correlatedData->itsNrValidSamples1); - break; - } - - computeFlagsTimer.stop(); -} - - -void Correlator::correlate(const SampleData<> *sampleData, CorrelatedData *correlatedData) -{ - ASSERT(sampleData->samples.shape()[0] == itsNrChannels); - /* sampleData->samples.shape()[1] needs to be valid for any itsStationMapping */ - ASSERT(sampleData->samples.shape()[2] >= itsNrSamplesPerIntegration); - ASSERT(sampleData->samples.shape()[3] == NR_POLARIZATIONS); - -#if 0 - LOG_DEBUG_STR("correlating " << itsNrStations << " stations"); - for (unsigned stat = 0; stat < itsNrStations; stat ++) { - LOG_DEBUG_STR(" station " << stat << " -> " << itsStationMapping[stat]); - } -#endif - correlateTimer.start(); - -#if defined CORRELATOR_C_IMPLEMENTATION - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { -#pragma omp parallel for schedule(dynamic) - for (int stat2 = 0; (unsigned) stat2 < itsNrStations; stat2 ++) { - for (int stat1 = 0; stat1 <= stat2; stat1 ++) { - unsigned bl = baseline(stat1, stat2); - unsigned nrValid = 0; - - if ((ch > 0 || itsNrChannels == 1)) { - nrValid = correlatedData->nrValidSamples(bl, ch); - -#if 0 - for (unsigned pol1 = 0; pol1 < NR_POLARIZATIONS; pol1 ++) { - for (unsigned pol2 = 0; pol2 < NR_POLARIZATIONS; pol2 ++) { - dcomplex sum = makedcomplex(0, 0); - - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) - sum += sampleData->samples[ch][itsStationMapping[stat1]][time][pol1] * conj(sampleData->samples[ch][itsStationMapping[stat2]][time][pol2]); - - sum *= itsCorrelationWeights[nrValid]; - correlatedData->visibilities[bl][ch][pol1][pol2] = sum; - } - } -#elif !defined __SSE2__ - float XXr = 0, XXi = 0, XYr = 0, XYi = 0, YXr = 0, YXi = 0, YYr = 0, YYi = 0; - const float *src1 = (const float *) sampleData->samples[ch][itsStationMapping[stat1]].origin(); - const float *src2 = (const float *) sampleData->samples[ch][itsStationMapping[stat2]].origin(); - - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - float X1r = src1[4 * time + 0], X1i = src1[4 * time + 1]; - float Y1r = src1[4 * time + 2], Y1i = src1[4 * time + 3]; - float X2r = src2[4 * time + 0], X2i = src2[4 * time + 1]; - float Y2r = src2[4 * time + 2], Y2i = src2[4 * time + 3]; - - XXr += X1r * X2r, XXi -= X1r * X2i; - XYr += X1r * Y2r, XYi -= X1r * Y2i; - YXr += Y1r * X2r, YXi -= Y1r * X2i; - YYr += Y1r * Y2r, YYi -= Y1r * Y2i; - XXr += X1i * X2i, XXi += X1i * X2r; - XYr += X1i * Y2i, XYi += X1i * Y2r; - YXr += Y1i * X2i, YXi += Y1i * X2r; - YYr += Y1i * Y2i, YYi += Y1i * Y2r; - } - - float weight = itsCorrelationWeights[nrValid]; - float *dst = (float *) correlatedData->visibilities[bl][ch].origin(); - - dst[0] = weight * XXr; - dst[1] = weight * XXi; - dst[2] = weight * XYr; - dst[3] = weight * XYi; - dst[4] = weight * YXr; - dst[5] = weight * YXi; - dst[6] = weight * YYr; - dst[7] = weight * YYi; -#else - __m128 XXr_XYr_YXr_YYr = _mm_setzero_ps(); - __m128 XXi_XYi_YXi_YYi = _mm_setzero_ps(); - - const __m128 *src1 = (const __m128 *) sampleData->samples[ch][itsStationMapping[stat1]].origin(); - const __m128 *src2 = (const __m128 *) sampleData->samples[ch][itsStationMapping[stat2]].origin(); - - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - __m128 X1r_X1i_Y1r_Y1i = src1[time]; - __m128 X2r_X2i_Y2r_Y2i = src2[time]; - - __m128 X1r_X1r_Y1r_Y1r = _mm_shuffle_ps(X1r_X1i_Y1r_Y1i, X1r_X1i_Y1r_Y1i, _MM_SHUFFLE(2, 2, 0, 0)); - __m128 X1i_X1i_Y1i_Y1i = _mm_shuffle_ps(X1r_X1i_Y1r_Y1i, X1r_X1i_Y1r_Y1i, _MM_SHUFFLE(3, 3, 1, 1)); - __m128 X2r_Y2r_X2r_Y2r = _mm_shuffle_ps(X2r_X2i_Y2r_Y2i, X2r_X2i_Y2r_Y2i, _MM_SHUFFLE(2, 0, 2, 0)); - __m128 X2i_Y2i_X2i_Y2i = _mm_shuffle_ps(X2r_X2i_Y2r_Y2i, X2r_X2i_Y2r_Y2i, _MM_SHUFFLE(3, 1, 3, 1)); - - XXr_XYr_YXr_YYr = _mm_add_ps(XXr_XYr_YXr_YYr, _mm_mul_ps(X1r_X1r_Y1r_Y1r, X2r_Y2r_X2r_Y2r)); - XXi_XYi_YXi_YYi = _mm_sub_ps(XXi_XYi_YXi_YYi, _mm_mul_ps(X1r_X1r_Y1r_Y1r, X2i_Y2i_X2i_Y2i)); - XXr_XYr_YXr_YYr = _mm_add_ps(XXr_XYr_YXr_YYr, _mm_mul_ps(X1i_X1i_Y1i_Y1i, X2i_Y2i_X2i_Y2i)); - XXi_XYi_YXi_YYi = _mm_add_ps(XXi_XYi_YXi_YYi, _mm_mul_ps(X1i_X1i_Y1i_Y1i, X2r_Y2r_X2r_Y2r)); - } - - __m128 weight = _mm_set_ps1(itsCorrelationWeights[nrValid]); - XXr_XYr_YXr_YYr = _mm_mul_ps(XXr_XYr_YXr_YYr, weight); - XXi_XYi_YXi_YYi = _mm_mul_ps(XXi_XYi_YXi_YYi, weight); - - __m128 XXr_XYr_XXi_XYi = _mm_shuffle_ps(XXr_XYr_YXr_YYr, XXi_XYi_YXi_YYi, _MM_SHUFFLE(1, 0, 1, 0)); - __m128 YXr_YYr_YXi_YYi = _mm_shuffle_ps(XXr_XYr_YXr_YYr, XXi_XYi_YXi_YYi, _MM_SHUFFLE(3, 2, 3, 2)); - - __m128 XXr_XXi_XYr_XYi = _mm_shuffle_ps(XXr_XYr_XXi_XYi, XXr_XYr_XXi_XYi, _MM_SHUFFLE(3, 1, 2, 0)); - __m128 YXr_YXi_YYr_YYi = _mm_shuffle_ps(YXr_YYr_YXi_YYi, YXr_YYr_YXi_YYi, _MM_SHUFFLE(3, 1, 2, 0)); - - __m128 *dst = (__m128 *) correlatedData->visibilities[bl][ch].origin(); - dst[0] = XXr_XXi_XYr_XYi; - dst[1] = YXr_YXi_YYr_YYi; -#endif - } - - if (nrValid == 0) - for (unsigned pol1 = 0; pol1 < NR_POLARIZATIONS; pol1 ++) - for (unsigned pol2 = 0; pol2 < NR_POLARIZATIONS; pol2 ++) - correlatedData->visibilities[bl][ch][pol1][pol2] = makefcomplex(0, 0); - } - } - } -#else - // Blue Gene/L assembler version. - - for (unsigned ch = itsNrChannels == 1 ? 0 : 1; ch < itsNrChannels; ch ++) { - // build a map of valid stations - unsigned nrValidStations = 0, map[itsNrStations]; - - for (unsigned stat2 = 0; stat2 < itsNrStations; stat2 ++) { -// if (!itsRFIflags[stat2][ch]) { - map[nrValidStations ++] = stat2; -// } else { // clear correlations that involve invalided stations -// for (unsigned stat1 = 0; stat1 < itsNrStations; stat1 ++) { -// unsigned bl = stat1 < stat2 ? baseline(stat1, stat2) : -// baseline(stat2, stat1); -// //_clear_correlation(&visibilities[bl][ch]); -// nrValidSamples[bl][ch] = 0; -// } -// } - } - - if (nrValidStations == 0) - break; - - // Divide the correlation matrix into blocks of 3x2, 2x2, 3+2, 2+1, and 1x1. - - // do the first (auto)correlation(s) (these are the "left"most 1 or 3 - // squares in the corner of the triangle) - if (nrValidStations % 2 == 0) { - unsigned stat10 = map[0], stat11 = map[1]; - - _auto_correlate_2(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - sampleData->samples[ch][itsStationMapping[stat11]].origin(), - correlatedData->visibilities[baseline(stat10, stat10)][ch].origin(), - correlatedData->visibilities[baseline(stat10, stat11)][ch].origin(), - correlatedData->visibilities[baseline(stat11, stat11)][ch].origin(), - itsNrSamplesPerIntegration); - } else { - unsigned stat10 = map[0]; - - _auto_correlate_1(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - correlatedData->visibilities[baseline(stat10, stat10)][ch].origin(), - itsNrSamplesPerIntegration); - } - - for (unsigned stat2 = nrValidStations % 2 ? 1 : 2; stat2 < nrValidStations; stat2 += 2) { - unsigned stat1 = 0; - -#if 0 && defined HAVE_BGP - // do as many 3x2 blocks as possible - for (; stat1 + 3 <= stat2; stat1 += 3) { - unsigned stat10 = map[stat1], stat11 = map[stat1+1], stat12 = map[stat1+2]; - unsigned stat20 = map[stat2], stat21 = map[stat2+1]; - - _correlate_3x2(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - sampleData->samples[ch][itsStationMapping[stat11]].origin(), - sampleData->samples[ch][itsStationMapping[stat12]].origin(), - sampleData->samples[ch][itsStationMapping[stat20]].origin(), - sampleData->samples[ch][itsStationMapping[stat21]].origin(), - correlatedData->visibilities[baseline(stat10, stat20)][ch].origin(), - correlatedData->visibilities[baseline(stat10, stat21)][ch].origin(), - correlatedData->visibilities[baseline(stat11, stat20)][ch].origin(), - correlatedData->visibilities[baseline(stat11, stat21)][ch].origin(), - correlatedData->visibilities[baseline(stat12, stat20)][ch].origin(), - correlatedData->visibilities[baseline(stat12, stat21)][ch].origin(), - itsNrSamplesPerIntegration); - } -#endif - - // see if a 2x2 block is necessary - for (; stat1 + 2 <= stat2; stat1 += 2) { - unsigned stat10 = map[stat1], stat11 = map[stat1+1]; - unsigned stat20 = map[stat2], stat21 = map[stat2+1]; - - _correlate_2x2(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - sampleData->samples[ch][itsStationMapping[stat11]].origin(), - sampleData->samples[ch][itsStationMapping[stat20]].origin(), - sampleData->samples[ch][itsStationMapping[stat21]].origin(), - correlatedData->visibilities[baseline(stat10, stat20)][ch].origin(), - correlatedData->visibilities[baseline(stat10, stat21)][ch].origin(), - correlatedData->visibilities[baseline(stat11, stat20)][ch].origin(), - correlatedData->visibilities[baseline(stat11, stat21)][ch].origin(), - itsNrSamplesPerIntegration); - } - - // do the remaining (auto)correlations near the diagonal - if (stat1 == stat2) { - unsigned stat10 = map[stat1], stat11 = map[stat1+1]; - - _auto_correlate_2(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - sampleData->samples[ch][itsStationMapping[stat11]].origin(), - correlatedData->visibilities[baseline(stat10,stat10)][ch].origin(), - correlatedData->visibilities[baseline(stat10,stat11)][ch].origin(), - correlatedData->visibilities[baseline(stat11,stat11)][ch].origin(), - itsNrSamplesPerIntegration); - } else { - unsigned stat10 = map[stat1], stat11 = map[stat1+1], stat12 = map[stat1+2]; - - _auto_correlate_3(sampleData->samples[ch][itsStationMapping[stat10]].origin(), - sampleData->samples[ch][itsStationMapping[stat11]].origin(), - sampleData->samples[ch][itsStationMapping[stat12]].origin(), - correlatedData->visibilities[baseline(stat10,stat11)][ch].origin(), - correlatedData->visibilities[baseline(stat10,stat12)][ch].origin(), - correlatedData->visibilities[baseline(stat11,stat11)][ch].origin(), - correlatedData->visibilities[baseline(stat11,stat12)][ch].origin(), - correlatedData->visibilities[baseline(stat12,stat12)][ch].origin(), - itsNrSamplesPerIntegration); - } - } - } - - weightTimer.start(); - - switch (correlatedData->itsNrBytesPerNrValidSamples) { - case 1 : _weigh_visibilities_1(correlatedData->visibilities.origin(), correlatedData->itsNrValidSamples1.origin(), &itsCorrelationWeights[0], itsNrBaselines, itsNrChannels); - break; - - case 2 : _weigh_visibilities_2(correlatedData->visibilities.origin(), correlatedData->itsNrValidSamples2.origin(), &itsCorrelationWeights[0], itsNrBaselines, itsNrChannels); - break; - - case 4 : _weigh_visibilities_4(correlatedData->visibilities.origin(), correlatedData->itsNrValidSamples4.origin(), &itsCorrelationWeights[0], itsNrBaselines, itsNrChannels); - break; - } - - weightTimer.stop(); -#endif - - correlateTimer.stop(); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/Correlator.h b/RTCP/CNProc/src/Correlator.h deleted file mode 100644 index 2e79644ef7c4d672b2899368f541019e18a9186e..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Correlator.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef LOFAR_CNPROC_CORRELATOR_H -#define LOFAR_CNPROC_CORRELATOR_H - -#if 0 || !defined HAVE_BGP -#define CORRELATOR_C_IMPLEMENTATION -#endif - - -#include <Interface/CorrelatedData.h> -#include <Interface/StreamableData.h> - -#include <cassert> -#include <cmath> - -#include <boost/multi_array.hpp> - -namespace LOFAR { -namespace RTCP { - - - -class Correlator -{ - public: - Correlator(const std::vector<unsigned> &stationMapping, unsigned nrChannels, unsigned nrSamplesPerIntegration); - - // We can correlate arrays of size - // samples[nrChannels][nrStations][nrSamplesPerIntegration][nrPolarizations] - void correlate(const SampleData<> *, CorrelatedData *); - void computeFlags(const SampleData<> *, CorrelatedData *); - - static unsigned baseline(unsigned station1, unsigned station2); - static void baselineToStations(const unsigned baseline, unsigned& station1, unsigned& station2); - static bool baselineIsAutoCorrelation(const unsigned baseline); - - private: - template <typename T> void setNrValidSamples(const SampleData<> *sampleData, Matrix<T> &); - - const unsigned itsNrStations, itsNrBaselines, itsNrChannels, itsNrSamplesPerIntegration; - std::vector<float> itsCorrelationWeights; //[itsNrSamplesPerIntegration + 1] - - // A list indexed by station number, result is the station position in the input data. - // This is needed in case of tied array beam forming. - const std::vector<unsigned> &itsStationMapping; //[itsNrStations] -}; - - -inline unsigned Correlator::baseline(unsigned station1, unsigned station2) -{ - assert(station1 <= station2); - return station2 * (station2 + 1) / 2 + station1; -} - -inline void Correlator::baselineToStations(const unsigned baseline, unsigned& station1, unsigned& station2) -{ - station2 = (unsigned) (sqrtf(2 * baseline + .25f) - .5f); - station1 = baseline - station2 * (station2 + 1) / 2; -} - -inline bool Correlator::baselineIsAutoCorrelation(const unsigned baseline) -{ - unsigned station1, station2; - baselineToStations(baseline, station1, station2); - return station1 == station2; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/CorrelatorAsm.S b/RTCP/CNProc/src/CorrelatorAsm.S deleted file mode 100644 index e0353b728d038ffac32a6e2a532456fdafd4e4a4..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CorrelatorAsm.S +++ /dev/null @@ -1,1429 +0,0 @@ -# Correlator.S: correlator assembly for BG/L double Hummer -# -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -#if defined HAVE_BGP -#define CN_PROCESSING -#include <Interface/Config.h> - -# C[s1][s2][p1][p2][ch] = sum over t of A[ch][s1][p1][t] * ~ A[ch][s2][p2][t] -# Cr = Ar*Br+Ai*Bi, Ci = Ai*Br-Ar*Bi - -# fxcpnsma 1,16,21,1 # f1r += f21r*f16r, f1i -= f21i*f16r -# fxcxma 1,16,21,1 # f1r += f21i*f16i, f1i += f21r*f16i - - -.align 5 - -zero: .long 0,0 -one: .long 0x3f800000,0x3f800000 - -.global _correlate_2x2 -_correlate_2x2: - -# computes correlations of S0*~S2,S0*~S3,S1*~S2,S1*~S3 -# r3 : pointer to S0 data -# r4 : pointer to S1 data -# r5 : pointer to S2 data -# r6 : pointer to S3 data -# r7 : pointer to S0*~S2 output -# r8 : pointer to S0*~S3 output -# r9 : pointer to S1*~S2 output -# r10: pointer to S1*~S3 output -# 8(r1): nr_samples_to_integrate - -# local variables: -# r11: temporary -# f0 : sum of S0_X * ~S2_X -# f1 : sum of S0_X * ~S2_Y -# f2 : sum of S0_Y * ~S2_X -# f3 : sum of S0_Y * ~S2_Y -# f4 : sum of S0_X * ~S3_X -# f5 : sum of S0_X * ~S3_Y -# f6 : sum of S0_Y * ~S3_X -# f7 : sum of S0_Y * ~S3_Y -# f8 : sum of S1_X * ~S2_X -# f9 : sum of S1_X * ~S2_Y -# f10: sum of S1_Y * ~S2_X -# f11: sum of S1_Y * ~S2_Y -# f12: sum of S1_X * ~S3_X -# f13: sum of S1_X * ~S3_Y -# f14: sum of S1_Y * ~S3_X -# f15: sum of S1_Y * ~S3_Y -# f16,f24:S0_X (sample from station S0, X polarization) -# f17,f25:S0_Y -# f18,f26:S1_X -# f19,f27:S1_Y -# f20,f28:S2_X -# f21,f29:S2_Y -# f22,f30:S3_X -# f23,f31:S3_Y - - lis 12,zero@ha ; lwz 0,8(1) - addi 12,12,zero@l - ; lfpsx 0,0,12 - - li 12,-16 # push call-saved registers - ; stfpdux 14,1,12 - ; stfpdux 15,1,12 - ; stfpdux 16,1,12 - ; stfpdux 17,1,12 - ; stfpdux 18,1,12 - ; stfpdux 19,1,12 - ; stfpdux 20,1,12 - ; stfpdux 21,1,12 - ; stfpdux 22,1,12 - ; stfpdux 23,1,12 - ; stfpdux 24,1,12 - ; stfpdux 25,1,12 - li 11,8 ; stfpdux 26,1,12 - srwi 0,0,1 ; stfpdux 27,1,12 - mtctr 0 ; stfpdux 28,1,12 - fpmr 1,0 ; stfpdux 29,1,12 - fpmr 2,0 ; stfpdux 30,1,12 - fpmr 3,0 ; stfpdux 31,1,12 - - fpmr 4,0 ; lfpsx 16,0,3 - fpmr 5,0 ; lfpsux 17,3,11 - fpmr 6,0 ; lfpsx 18,0,4 - fpmr 7,0 ; lfpsux 19,4,11 - fpmr 8,0 ; lfpsx 20,0,5 - fpmr 9,0 ; lfpsux 21,5,11 - fpmr 10,0 ; lfpsx 22,0,6 - fpmr 11,0 ; lfpsux 23,6,11 - fpmr 12,0 ; lfpsux 24,3,11 - fpmr 13,0 ; lfpsux 25,3,11 - fpmr 14,0 ; lfpsux 28,5,11 - fpmr 15,0 - -0: # loop over time - - # S0 * ~S2, phase 1 - fxcpnsma 0,16,20,0 - fxcpnsma 1,16,21,1 ; lfpsux 29,5,11 - fxcpnsma 2,17,20,2 - fxcpnsma 3,17,21,3 - - # S0 * ~S3, phase 1 - fxcpnsma 4,16,22,4 - fxcpnsma 5,16,23,5 ; lfpsux 26,4,11 - fxcpnsma 6,17,22,6 - fxcpnsma 7,17,23,7 - - # S1 * ~S2, phase 1 - fxcpnsma 8,18,20,8 - fxcpnsma 9,18,21,9 ; lfpsux 27,4,11 - fxcpnsma 10,19,20,10 - fxcpnsma 11,19,21,11 - - # S1 * ~S3, phase 1 - fxcpnsma 12,18,22,12 - fxcpnsma 13,18,23,13 ; lfpsux 30,6,11 - fxcpnsma 14,19,22,14 - fxcpnsma 15,19,23,15 - - # S0 * ~S2, phase 2 - fxcxma 0,16,20,0 - fxcxma 1,16,21,1 ; lfpsux 31,6,11 - fxcxma 2,17,20,2 - fxcxma 3,17,21,3 - - # S0 * ~S3, phase 2 - fxcxma 4,16,22,4 - fxcxma 5,16,23,5 ; lfpsux 16,3,11 - fxcxma 6,17,22,6 - fxcxma 7,17,23,7 - - # S1 * ~S2, phase 2 - fxcxma 8,18,20,8 - fxcxma 9,18,21,9 ; lfpsux 17,3,11 - fxcxma 10,19,20,10 - fxcxma 11,19,21,11 - - # S1 * ~S3, phase 2 - fxcxma 12,18,22,12 - fxcxma 13,18,23,13 ; lfpsux 20,5,11 - fxcxma 14,19,22,14 - fxcxma 15,19,23,15 - - # S0 * ~S2, phase 1 - fxcpnsma 0,24,28,0 - fxcpnsma 1,24,29,1 ; lfpsux 21,5,11 - fxcpnsma 2,25,28,2 - fxcpnsma 3,25,29,3 - - # S0 * ~S3, phase 1 - fxcpnsma 4,24,30,4 - fxcpnsma 5,24,31,5 ; lfpsux 18,4,11 - fxcpnsma 6,25,30,6 - fxcpnsma 7,25,31,7 - - # S1 * ~S2, phase 1 - fxcpnsma 8,26,28,8 - fxcpnsma 9,26,29,9 ; lfpsux 19,4,11 - fxcpnsma 10,27,28,10 - fxcpnsma 11,27,29,11 - - # S1 * ~S3, phase 1 - fxcpnsma 12,26,30,12 - fxcpnsma 13,26,31,13 ; lfpsux 22,6,11 - fxcpnsma 14,27,30,14 - fxcpnsma 15,27,31,15 - - # S0 * ~S2, phase 2 - fxcxma 0,24,28,0 - fxcxma 1,24,29,1 ; lfpsux 23,6,11 - fxcxma 2,25,28,2 - fxcxma 3,25,29,3 - - # S0 * ~S3, phase 2 - fxcxma 4,24,30,4 - fxcxma 5,24,31,5 ; lfpsux 24,3,11 - fxcxma 6,25,30,6 - fxcxma 7,25,31,7 - - # S1 * ~S2, phase 2 - fxcxma 8,26,28,8 - fxcxma 9,26,29,9 ; lfpsux 25,3,11 - fxcxma 10,27,28,10 - fxcxma 11,27,29,11 - - # S1 * ~S3, phase 2 - fxcxma 12,26,30,12 - fxcxma 13,26,31,13 ; lfpsux 28,5,11 - fxcxma 14,27,30,14 - fxcxma 15,27,31,15 - - bdnz 0b - -#if !defined HAVE_BGP - dcbz 0,7 -#endif - stfpsx 0,0,7 # store results S0 * ~S2 - stfpsux 1,7,11 - stfpsux 2,7,11 - stfpsux 3,7,11 - -#if !defined HAVE_BGP - dcbz 0,8 -#endif - stfpsx 4,0,8 # store results S0 * ~S3 - stfpsux 5,8,11 - stfpsux 6,8,11 - stfpsux 7,8,11 - -#if !defined HAVE_BGP - dcbz 0,9 -#endif - stfpsx 8,0,9 # store results S1 * ~S2 - stfpsux 9,9,11 - stfpsux 10,9,11 - stfpsux 11,9,11 - -#if !defined HAVE_BGP - dcbz 0,10 -#endif - stfpsx 12,0,10 # store results S1 * ~S3 - stfpsux 13,10,11 - stfpsux 14,10,11 - stfpsux 15,10,11 - - li 11,16 # restore call-saved registers - lfpdx 31,0,1 - lfpdux 30,1,11 - lfpdux 29,1,11 - lfpdux 28,1,11 - lfpdux 27,1,11 - lfpdux 26,1,11 - lfpdux 25,1,11 - lfpdux 24,1,11 - lfpdux 23,1,11 - lfpdux 22,1,11 - lfpdux 21,1,11 - lfpdux 20,1,11 - lfpdux 19,1,11 - lfpdux 18,1,11 - lfpdux 17,1,11 - lfpdux 16,1,11 - lfpdux 15,1,11 - lfpdux 14,1,11 - - addi 1,1,16 # reset stack pointer - - blr # return - - -.align 5 -.global _correlate_3x2 -_correlate_3x2: - -# computes correlations of S0*~S3,S0*~S4,S1*~S3,S1*~S4,S2*~S3,S2*~S4 -# r3 : pointer to S0 data -# r4 : pointer to S1 data -# r5 : pointer to S2 data -# r6 : pointer to S3 data -# r7 : pointer to S4 data -# r8 : pointer to S0*~S3 output -# r9 : pointer to S0*~S4 output -# r10: pointer to S1*~S3 output -# 8(r1): pointer to S1*~S4 output -# 12(r1): pointer to S2*~S3 output -# 16(r1): pointer to S2*~S4 output -# 20(r1): nr_samples_to_integrate - - li 12,-16 ; lwz 0,20(1) - lis 11,zero@ha ; stfpdux 14,1,12 - addi 11,11,zero@l ; stfpdux 15,1,12 - ; lfpsx 0,0,11 - - srwi 0,0,1 ; stfpdux 16,1,12 - mtctr 0 ; stfpdux 17,1,12 - fpmr 1,0 ; stfpdux 18,1,12 - fpmr 2,0 ; stfpdux 19,1,12 - fpmr 3,0 ; stfpdux 20,1,12 - fpmr 4,0 ; stfpdux 21,1,12 - fpmr 5,0 ; stfpdux 22,1,12 - fpmr 6,0 ; stfpdux 23,1,12 - fpmr 7,0 ; stfpdux 24,1,12 - fpmr 8,0 ; stfpdux 25,1,12 - fpmr 9,0 ; stfpdux 26,1,12 - fpmr 10,0 ; stfpdux 27,1,12 - fpmr 11,0 ; stfpdux 28,1,12 - fpmr 12,0 ; stfpdux 29,1,12 - fpmr 13,0 ; stfpdux 30,1,12 - fpmr 14,0 ; stfpdux 31,1,12 - fpmr 15,0 ; li 11,8 - - fpmr 16,0 ; lfpsx 24,0,3 - fpmr 17,0 ; lfpsux 25,3,11 - fpmr 18,0 ; lfpsx 26,0,4 - fpmr 19,0 ; lfpsx 28,0,6 - fpmr 20,0 ; lfpsux 29,6,11 - fpmr 21,0 ; lfpsx 30,0,7 - fpmr 22,0 ; sub 5,5,11 - fpmr 23,0 - - -0: - # S0 * ~S3, phase 1 - fxcpnsma 0,24,28,0 ; lfpsux 31,7,11 - fxcpnsma 1,24,29,1 ; lfpsux 27,4,11 - fxcpnsma 2,25,28,2 - fxcpnsma 3,25,29,3 - - # S0 * ~S4, phase 1 - fxcpnsma 4,24,30,4 - fxcpnsma 5,24,31,5 - fxcpnsma 6,25,30,6 - fxcpnsma 7,25,31,7 - - # S0 * ~S3, phase 2 - fxcxma 0,24,28,0 - fxcxma 1,24,29,1 - fxcxma 2,25,28,2 - fxcxma 3,25,29,3 - - # S0 * ~S4, phase 2 ; # ld S2 - fxcxma 4,24,30,4 - fxcxma 5,24,31,5 ; lfpsux 24,5,11 - fxcxma 6,25,30,6 - fxcxma 7,25,31,7 ; lfpsux 25,5,11 - - # S1 * ~S3, phase 1 - fxcpnsma 8,26,28,8 - fxcpnsma 9,26,29,9 - fxcpnsma 10,27,28,10 - fxcpnsma 11,27,29,11 - - # S1 * ~S4, phase 1 - fxcpnsma 12,26,30,12 - fxcpnsma 13,26,31,13 - fxcpnsma 14,27,30,14 - fxcpnsma 15,27,31,15 - - # S1 * ~S3, phase 2 - fxcxma 8,26,28,8 - fxcxma 9,26,29,9 - fxcxma 10,27,28,10 - fxcxma 11,27,29,11 - - # S1 * ~S4, phase 2 ; # ld S0 - fxcxma 12,26,30,12 - fxcxma 13,26,31,13 ; lfpsux 26,3,11 - fxcxma 14,27,30,14 - fxcxma 15,27,31,15 ; lfpsux 27,3,11 - - # S2 * ~S3, phase 1 - fxcpnsma 16,24,28,16 - fxcpnsma 17,24,29,17 - fxcpnsma 18,25,28,18 - fxcpnsma 19,25,29,19 - - # S2 * ~S4, phase 1 - fxcpnsma 20,24,30,20 - fxcpnsma 21,24,31,21 - fxcpnsma 22,25,30,22 - fxcpnsma 23,25,31,23 - - # S2 * ~S3, phase 2 ; # ld S3 - fxcxma 16,24,28,16 - fxcxma 17,24,29,17 - fxcxma 18,25,28,18 ; lfpsux 28,6,11 - fxcxma 19,25,29,19 ; lfpsux 29,6,11 - - # S2 * ~S4, phase 2 ; # ld S4 - fxcxma 20,24,30,20 - fxcxma 21,24,31,21 - fxcxma 22,25,30,22 ; lfpsux 30,7,11 - fxcxma 23,25,31,23 - - # S0 * ~S3, phase 1 ; # ld S1 - fxcpnsma 0,26,28,0 - fxcpnsma 1,26,29,1 - fxcpnsma 2,27,28,2 ; lfpsux 31,7,11 - fxcpnsma 3,27,29,3 ; lfpsux 24,4,11 - - # S0 * ~S4, phase 1 - fxcpnsma 4,26,30,4 - fxcpnsma 5,26,31,5 - fxcpnsma 6,27,30,6 ; lfpsux 25,4,11 - fxcpnsma 7,27,31,7 - - # S0 * ~S4, phase 2 - fxcxma 0,26,28,0 - fxcxma 1,26,29,1 - fxcxma 2,27,28,2 - fxcxma 3,27,29,3 - - # S0 * ~S4, phase 2 ; # ld S2 - fxcxma 4,26,30,4 - fxcxma 5,26,31,5 ; lfpsux 26,5,11 - fxcxma 6,27,30,6 - fxcxma 7,27,31,7 ; lfpsux 27,5,11 - - # S1 * ~S3, phase 1 ; # fetch 2 station S3 samples from L2 to L1 - fxcpnsma 8,24,28,8 ; dcbt 6,11 - fxcpnsma 9,24,29,9 ; dcbt 7,11 # ditto for S4 - fxcpnsma 10,25,28,10 - fxcpnsma 11,25,29,11 - - # S1 * ~S4, phase 1 - fxcpnsma 12,24,30,12 - fxcpnsma 13,24,31,13 - fxcpnsma 14,25,30,14 - fxcpnsma 15,25,31,15 - - # S1 * ~S3, phase 2 - fxcxma 8,24,28,8 - fxcxma 9,24,29,9 - fxcxma 10,25,28,10 - fxcxma 11,25,29,11 - - # S1 * ~S4, phase 2 ; # ld S0 - fxcxma 12,24,30,12 - fxcxma 13,24,31,13 ; lfpsux 24,3,11 - fxcxma 14,25,30,14 - fxcxma 15,25,31,15 ; lfpsux 25,3,11 - - # S2 * ~S3, phase 1 - fxcpnsma 16,26,28,16 - fxcpnsma 17,26,29,17 - fxcpnsma 18,27,28,18 - fxcpnsma 19,27,29,19 - - # S2 * ~S4, phase 1 - fxcpnsma 20,26,30,20 - fxcpnsma 21,26,31,21 - fxcpnsma 22,27,30,22 - fxcpnsma 23,27,31,23 - - # S2 * ~S3, phase 2 ; # ld S3 - fxcxma 16,26,28,16 - fxcxma 17,26,29,17 - fxcxma 18,27,28,18 ; lfpsux 28,6,11 - fxcxma 19,27,29,19 ; lfpsux 29,6,11 - - # S2 * ~S4, phase 2 ; # ld S1 and S4 - fxcxma 20,26,30,20 - fxcxma 21,26,31,21 ; lfpsux 26,4,11 - fxcxma 22,27,30,22 ; lfpsux 30,7,11 - fxcxma 23,27,31,23 - - bdnz 0b - - lwz 3,288+8(1) # load function arguments 9-11 - lwz 4,288+12(1) - lwz 5,288+16(1) - -#if !defined HAVE_BGP - dcbz 0,8 -#endif - stfpsx 0,0,8 # store results S0 * ~S3 - stfpsux 1,8,11 - stfpsux 2,8,11 - stfpsux 3,8,11 - -#if !defined HAVE_BGP - dcbz 0,9 -#endif - stfpsx 4,0,9 # store results S0 * ~S4 - stfpsux 5,9,11 - stfpsux 6,9,11 - stfpsux 7,9,11 - -#if !defined HAVE_BGP - dcbz 0,10 -#endif - stfpsx 8,0,10 # store results S1 * ~S3 - stfpsux 9,10,11 - stfpsux 10,10,11 - stfpsux 11,10,11 - -#if !defined HAVE_BGP - dcbz 0,3 -#endif - stfpsx 12,0,3 # store results S1 * ~S4 - stfpsux 13,3,11 - stfpsux 14,3,11 - stfpsux 15,3,11 - -#if !defined HAVE_BGP - dcbz 0,4 -#endif - stfpsx 16,0,4 # store results S2 * ~S3 - stfpsux 17,4,11 - stfpsux 18,4,11 - stfpsux 19,4,11 - -#if !defined HAVE_BGP - dcbz 0,5 -#endif - stfpsx 20,0,5 # store results S2 * ~S4 - stfpsux 21,5,11 - stfpsux 22,5,11 - stfpsux 23,5,11 - - li 11,16 # restore call-saved registers - lfpdx 31,0,1 - lfpdux 30,1,11 - lfpdux 29,1,11 - lfpdux 28,1,11 - lfpdux 27,1,11 - lfpdux 26,1,11 - lfpdux 25,1,11 - lfpdux 24,1,11 - lfpdux 23,1,11 - lfpdux 22,1,11 - lfpdux 21,1,11 - lfpdux 20,1,11 - lfpdux 19,1,11 - lfpdux 18,1,11 - lfpdux 17,1,11 - lfpdux 16,1,11 - lfpdux 15,1,11 - lfpdux 14,1,11 - - addi 1,1,16 # reset stack pointer - - blr # return - - -.align 5 -.global _auto_correlate_1 -_auto_correlate_1: - -# computes auto correlations of S0*~S0 -# r3 : pointer to S0 data -# r4 : pointer to 4 results -# r5 : nr_samples_to_integrate - - srwi 5,5,2 - lis 12,zero@ha - mtctr 5 - addi 12,12,zero@l - lfpsx 0,0,12 # f0r = 0, f0i = 0 - - li 8,8 - - lfpsx 4,0,3 # f8:f9 = S0 - lfpsux 5,3,8 - lfpsux 6,3,8 # f6:f7 = S0 - lfpsux 7,3,8 - fpmr 1,0 - lfpsux 8,3,8 # f8:f9 = S0 - fpmr 2,0 - lfpsux 9,3,8 - - fpmr 3,0 - lfpsx 12,12,8 # f12r = 1, f12i = 1 - - -0: # loop over time - - lfpsux 10,3,8 # f6:f7 = S0 - fpmadd 0,4,4,0 # S0 * ~S0 - lfpsux 11,3,8 - fxcpnsma 1,4,5,1 # f1r += f5r*f4r, f1i -= f5i*f4r - fxcxma 2,4,5,2 # f2r += f5i*f4i, f2i += f5r*f4i - fpmadd 3,5,5,3 - - lfpsux 4,3,8 # f4:f5 = S0 - fpmadd 0,6,6,0 # S0 * ~S0 - lfpsux 5,3,8 - fxcpnsma 1,6,7,1 # f1r += f7r*f6r, f1i -= f7i*f6r - fxcxma 2,6,7,2 # f2r += f7i*f6i, f2i += f7r*f6i - fpmadd 3,7,7,3 - - lfpsux 6,3,8 # f6:f7 = S0 - fpmadd 0,8,8,0 # S0 * ~S0 - lfpsux 7,3,8 - fxcpnsma 1,8,9,1 # f1r += f9r*f8r, f1i -= f9i*f8r - fxcxma 2,8,9,2 # f2r += f9i*f8i, f2i += f9r*f8i - fpmadd 3,9,9,3 - - lfpsux 8,3,8 # f8:f9 = S0 - fpmadd 0,10,10,0 # S0 * ~S0 - lfpsux 9,3,8 - fxcpnsma 1,10,11,1 # f1r += f11r*f10r, f1i -= f11i*f10r - fxcxma 2,10,11,2 # f2r += f11i*f10i, f2i += f11r*f10i - fpmadd 3,11,11,3 - - bdnz 0b - - fxcsnsma 0,0,12,0 # f0r += 1*f0i, f0i += -1*f0i = 0 - fpadd 1,1,2 - fxcsnsma 3,3,12,3 - -#if !defined HAVE_BGP - dcbz 0,4 # store result -#endif - stfpsx 0,0,4 - stfpsux 1,4,8 - fsneg 1,1 - stfpsux 1,4,8 - stfpsux 3,4,8 - - blr # return - - -.align 5 -.global _auto_correlate_2 -_auto_correlate_2: - -# computes correlations of S0*~S0,S0*~S1,S1*~S1 -# r3 : pointer to S0 data -# r4 : pointer to S1 data -# r5 : pointer to S0*~S0 output -# r6 : pointer to S0*~S1 output -# r7 : pointer to S1*~S1 output -# r8 : nr_samples_to_integrate - -# local variables: -# r11: temporary -# f0 : sum of S0_X * S0_X -# f1 : sum of S0_X * ~S0_Y -# f3 : sum of S0_Y * S0_Y -# f4 : sum of S0_X * ~S1_X -# f5 : sum of S0_X * ~S1_Y -# f6 : sum of S0_Y * ~S1_X -# f7 : sum of S0_Y * ~S1_Y -# f8 : sum of S1_X * S1_X -# f9 : sum of S1_X * ~S1_Y -# f11: sum of S1_Y * S1_Y -# f12,f16:S0_X (sample from station S0, X polarization) -# f13,f17:S0_Y -# f14,f18:S1_X -# f15,f19:S1_Y - - srwi 8,8,1 - lis 12,zero@ha - mtctr 8 - addi 12,12,zero@l - lfpsx 0,0,12 - - li 11,-16 # push call-saved registers - stfpdux 14,1,11 - fpmr 1,0 - stfpdux 15,1,11 - fpmr 2,0 - stfpdux 16,1,11 - fpmr 3,0 - stfpdux 17,1,11 - fpmr 4,0 - stfpdux 18,1,11 - fpmr 5,0 - stfpdux 19,1,11 - - fpmr 6,0 - li 11,8 # prefetch station samples - fpmr 7,0 - lfpsx 12,0,3 - fpmr 8,0 - lfpsux 13,3,11 - fpmr 9,0 - lfpsx 14,0,4 - fpmr 10,0 - lfpsux 15,4,11 - fpmr 11,0 - -0: # loop over time - - # S0 * ~S0, phase 1 - fpmadd 0,12,12,0 ; lfpsux 16,3,11 - fxcpnsma 1,12,13,1 ; lfpsux 17,3,11 - fpmadd 3,13,13,3 ; lfpsux 18,4,11 - - # S0 * ~S1, phase 1 - fxcpnsma 4,12,14,4 - fxcpnsma 5,12,15,5 - fxcpnsma 6,13,14,6 - fxcpnsma 7,13,15,7 - - # S1 * ~S1, phase 1 - fpmadd 8,14,14,8 ; lfpsux 19,4,11 - fxcpnsma 9,14,15,9 - fpmadd 11,15,15,11 - - # S0 * ~S0, phase 2 - fxcxma 1,12,13,1 - - # S0 * ~S1, phase 2 - fxcxma 4,12,14,4 - fxcxma 5,12,15,5 ; lfpsux 12,3,11 - fxcxma 6,13,14,6 - fxcxma 7,13,15,7 ; lfpsux 13,3,11 - - # S1 * ~S1, phase 2 - fxcxma 9,14,15,9 ; lfpsux 14,4,11 - - # S0 * ~S0, phase 1 - fpmadd 0,16,16,0 - fxcpnsma 1,16,17,1 - fpmadd 3,17,17,3 - - # S0 * ~S1, phase 1 - fxcpnsma 4,16,18,4 - fxcpnsma 5,16,19,5 ; lfpsux 15,4,11 - fxcpnsma 6,17,18,6 - fxcpnsma 7,17,19,7 - - # S1 * ~S1, phase 1 - fpmadd 8,18,18,8 - fxcpnsma 9,18,19,9 - fpmadd 11,19,19,11 - - # S0 * ~S0, phase 2 - fxcxma 1,16,17,1 - - # S0 * ~S1, phase 2 - fxcxma 4,16,18,4 - fxcxma 5,16,19,5 - fxcxma 6,17,18,6 - fxcxma 7,17,19,7 - - # S1 * ~S1, phase 2 - fxcxma 9,18,19,9 - - bdnz 0b - - lfpsx 12,12,11 # f12r = 1, f12i = 1 - - fxcsnsma 0,0,12,0 # f0r += 1*f0i, f0i += -1*f0i = 0 - fxcsnsma 3,3,12,3 - fxcsnsma 8,8,12,8 - fxcsnsma 11,11,12,11 - -#if !defined HAVE_BGP - dcbz 0,5 -#endif - stfpsx 0,0,5 # store results S0 * ~S0 - stfpsux 1,5,11 - fsneg 1,1 - stfpsux 1,5,11 - stfpsux 3,5,11 - -#if !defined HAVE_BGP - dcbz 0,6 -#endif - stfpsx 4,0,6 # store results S0 * ~S1 - stfpsux 5,6,11 - stfpsux 6,6,11 - stfpsux 7,6,11 - -#if !defined HAVE_BGP - dcbz 0,7 -#endif - stfpsx 8,0,7 # store results S1 * ~S1 - stfpsux 9,7,11 - fsneg 9,9 - stfpsux 9,7,11 - stfpsux 11,7,11 - - li 11,16 # restore call-saved registers - lfpdx 19,0,1 - lfpdux 18,1,11 - lfpdux 17,1,11 - lfpdux 16,1,11 - lfpdux 15,1,11 - lfpdux 14,1,11 - - addi 1,1,16 # reset stack pointer - - blr # return - - -.align 5 -.global _auto_correlate_3 -_auto_correlate_3: - -# computes correlations of S0*~S1,S0*~S2,S1*~S1,S1*~S2,S2*~S2 -# r3 : pointer to S0 data -# r4 : pointer to S1 data -# r5 : pointer to S2 data -# r6 : pointer to S0*~S1 output -# r7 : pointer to S0*~S2 output -# r8 : pointer to S1*~S1 output -# r9 : pointer to S1*~S2 output -# r10 : pointer to S2*~S2 output -# 8(r1): nr_samples_to_integrate - -# local variables: -# r11: temporary -# f0: sum of S0_X * ~S1_X -# f1: sum of S0_X * ~S1_Y -# f2: sum of S0_Y * ~S1_X -# f3: sum of S0_Y * ~S1_Y -# f4: sum of S0_X * ~S1_X -# f5: sum of S0_X * ~S1_Y -# f6: sum of S0_Y * ~S1_X -# f7: sum of S0_Y * ~S1_Y -# f8 : sum of S1_X * S1_X -# f9 : sum of S1_X * ~S1_Y -# f10 : sum of S1_Y * S1_Y -# f11 : sum of S0_X * ~S1_X -# f12 : sum of S0_X * ~S1_Y -# f13 : sum of S0_Y * ~S1_X -# f14 : sum of S0_Y * ~S1_Y -# f15 : sum of S2_X * S2_X -# f16 : sum of S2_X * ~S2_Y -# f17 : sum of S2_Y * S2_Y -# f18,f24:S0_X (sample from station S0, X polarization) -# f19,f25:S0_Y -# f20,f26:S1_X -# f21,f27:S1_Y -# f22,f28:S2_X -# f22,f29:S2_Y - - - lis 12,zero@ha - lwz 0,8(1) - addi 12,12,zero@l - lfpsx 0,0,12 - - li 11,-16 # push call-saved registers - stfpdux 14,1,11 - stfpdux 15,1,11 - stfpdux 16,1,11 - srwi 0,0,1 - stfpdux 17,1,11 - mtctr 0 - stfpdux 18,1,11 ; fpmr 1,0 - stfpdux 19,1,11 - fpmr 2,0 - stfpdux 20,1,11 - fpmr 3,0 - stfpdux 21,1,11 - fpmr 4,0 - stfpdux 22,1,11 - fpmr 5,0 - stfpdux 23,1,11 - fpmr 6,0 - stfpdux 24,1,11 - fpmr 7,0 - stfpdux 25,1,11 - fpmr 8,0 - stfpdux 26,1,11 - fpmr 9,0 - stfpdux 27,1,11 - fpmr 10,0 - stfpdux 28,1,11 - fpmr 11,0 - stfpdux 29,1,11 - - li 11,8 # prefetch station samples - ; lfpsx 18,0,3 - fpmr 12,0 - ; lfpsux 19,3,11 - fpmr 13,0 - ; lfpsx 20,0,4 - fpmr 14,0 - ; lfpsux 21,4,11 - fpmr 15,0 - ; lfpsx 22,0,5 - fpmr 16,0 - ; lfpsux 23,5,11 - fpmr 17,0 - -0: # loop over time - # S0 * ~S1, phase 1 - fxcpnsma 0,18,20,0 ; lfpsux 24,3,11 - fxcpnsma 1,18,21,1 ; lfpsux 25,3,11 - fxcpnsma 2,19,20,2 ; lfpsux 26,4,11 - fxcpnsma 3,19,21,3 - - # S0 * ~S2, phase 1 - fxcpnsma 4,18,22,4 - fxcpnsma 5,18,23,5 - fxcpnsma 6,19,22,6 - fxcpnsma 7,19,23,7 - - # S1 * ~S1, phase 1 - fpmadd 8,20,20,8 ; lfpsux 27,4,11 - fxcpnsma 9,20,21,9 ; lfpsux 28,5,11 - fpmadd 10,21,21,10 ; lfpsux 29,5,11 - - # S1 * ~S2, phase 1 - fxcpnsma 11,20,22,11 - fxcpnsma 12,20,23,12 - fxcpnsma 13,21,22,13 - fxcpnsma 14,21,23,14 - - # S2 * ~S2, phase 1 - fpmadd 15,22,22,15 - fxcpnsma 16,22,23,16 - fpmadd 17,23,23,17 - - # S0 * ~S1, phase 2 - fxcxma 0,18,20,0 - fxcxma 1,18,21,1 - fxcxma 2,19,20,2 - fxcxma 3,19,21,3 - - # S0 * ~S2, phase 2 - fxcxma 4,18,22,4 - fxcxma 5,18,23,5 - fxcxma 6,19,22,6 - fxcxma 7,19,23,7 - - # S1_X * ~S1_Y, phase 2 - fxcxma 9,20,21,9 - - # S1 * ~S2, phase 2 - fxcxma 11,20,22,11 - fxcxma 12,20,23,12 - fxcxma 13,21,22,13 - fxcxma 14,21,23,14 - - # S2 * ~S2, phase 2 - fxcxma 16,22,23,16 - - # S0 * ~S1, phase 1 - fxcpnsma 0,24,26,0 ; lfpsux 18,3,11 - fxcpnsma 1,24,27,1 ; lfpsux 19,3,11 - fxcpnsma 2,25,26,2 ; lfpsux 20,4,11 - fxcpnsma 3,25,27,3 - - # S0 * ~S2, phase 1 - fxcpnsma 4,24,28,4 - fxcpnsma 5,24,29,5 - fxcpnsma 6,25,28,6 - fxcpnsma 7,25,29,7 - - # S1 * ~S1, phase 1 - fpmadd 8,26,26,8 ; lfpsux 21,4,11 - fxcpnsma 9,26,27,9 ; lfpsux 22,5,11 - fpmadd 10,27,27,10 ; lfpsux 23,5,11 - - # S1 * ~S2, phase 1 - fxcpnsma 11,26,28,11 - fxcpnsma 12,26,29,12 - fxcpnsma 13,27,28,13 - fxcpnsma 14,27,29,14 - - # S2 * ~S2, phase 1 - fpmadd 15,28,28,15 - fxcpnsma 16,28,29,16 - fpmadd 17,29,29,17 - - # S0 * ~S1, phase 2 - fxcxma 0,24,26,0 - fxcxma 1,24,27,1 - fxcxma 2,25,26,2 - fxcxma 3,25,27,3 - - # S0 * ~S2, phase 2 - fxcxma 4,24,28,4 - fxcxma 5,24,29,5 - fxcxma 6,25,28,6 - fxcxma 7,25,29,7 - - # S1_X * ~S1_Y, phase 2 - fxcxma 9,26,27,9 - - # S1 * ~S2, phase 2 - fxcxma 11,26,28,11 - fxcxma 12,26,29,12 - fxcxma 13,27,28,13 - fxcxma 14,27,29,14 - - # S2 * ~S2, phase 2 - fxcxma 16,28,29,16 - - bdnz 0b - - lfpsx 18,12,11 # f18r = 1, f18i = 1 - - fxcsnsma 8,8,18,8 # f8r += 1*f8i, f8i += -1*f8i = 0 - fxcsnsma 10,10,18,10 - fxcsnsma 15,15,18,15 - fxcsnsma 17,17,18,17 - -#if !defined HAVE_BGP - dcbz 0,6 -#endif - stfpsx 0,0,6 # store results S0 * ~S1 - stfpsux 1,6,11 - stfpsux 2,6,11 - stfpsux 3,6,11 - -#if !defined HAVE_BGP - dcbz 0,7 -#endif - stfpsx 4,0,7 # store results S0 * ~S2 - stfpsux 5,7,11 - stfpsux 6,7,11 - stfpsux 7,7,11 - -#if !defined HAVE_BGP - dcbz 0,8 -#endif - stfpsx 8,0,8 # store results S1 * ~S1 - stfpsux 9,8,11 - fsneg 9,9 - stfpsux 9,8,11 - stfpsux 10,8,11 - -#if !defined HAVE_BGP - dcbz 0,9 -#endif - stfpsx 11,0,9 # store results S1 * ~S2 - stfpsux 12,9,11 - stfpsux 13,9,11 - stfpsux 14,9,11 - -#if !defined HAVE_BGP - dcbz 0,10 -#endif - stfpsx 15,0,10 # store results S2 * ~S2 - stfpsux 16,10,11 - fsneg 16,16 - stfpsux 16,10,11 - stfpsux 17,10,11 - - li 11,16 # restore call-saved registers - lfpdx 29,0,1 - lfpdux 28,1,11 - lfpdux 27,1,11 - lfpdux 26,1,11 - lfpdux 25,1,11 - lfpdux 24,1,11 - lfpdux 23,1,11 - lfpdux 22,1,11 - lfpdux 21,1,11 - lfpdux 20,1,11 - lfpdux 19,1,11 - lfpdux 18,1,11 - lfpdux 17,1,11 - lfpdux 16,1,11 - lfpdux 15,1,11 - lfpdux 14,1,11 - - addi 1,1,16 # reset stack pointer - - blr # return - - -#if 0 -.align 5 -.global _add_correlations -_add_correlations: - - li 11,-16 # push call-saved registers - subi 1,1,32 - stmw 24,0(1) - stfpdux 14,1,11 - stfpdux 15,1,11 - - srwi 7,7,1 - mtctr 7 - - li 8,8 - - sub 3,3,8 - sub 4,4,8 - - mr 10,3 - - ; lfpsux 0,3,8 - ; lfpsux 1,3,8 - ; lfpsux 2,3,8 - ; lfpsux 3,3,8 - ; lfpsux 4,3,8 - ; lfpsux 5,3,8 - ; lfpsux 6,3,8 - ; lfpsux 7,3,8 - - ; lfpsux 8,4,8 - ; lfpsux 9,4,8 - ; lfpsux 10,4,8 - ; lfpsux 11,4,8 - ; lfpsux 12,4,8 - ; lfpsux 13,4,8 - ; lfpsux 14,4,8 - ; lfpsux 15,4,8 - -0: - fpadd 0,0,8 ; lfpsux 8,4,8 - fpadd 1,1,9 ; lfpsux 9,4,8 - fpadd 2,2,10 ; lfpsux 10,4,8 - fpadd 3,3,11 ; lfpsux 11,4,8 - fpadd 4,4,12 ; lfpsux 12,4,8 - fpadd 5,5,13 ; lfpsux 13,4,8 - fpadd 6,6,14 ; lfpsux 14,4,8 - fpadd 7,7,15 ; lfpsux 15,4,8 - - ; stfpsux 0,10,8 - ; lfpsux 0,3,8 - ; stfpsux 1,10,8 - ; lfpsux 1,3,8 - ; stfpsux 2,10,8 - ; lfpsux 2,3,8 - ; stfpsux 3,10,8 - ; lfpsux 3,3,8 - ; stfpsux 4,10,8 - ; lfpsux 4,3,8 - ; stfpsux 5,10,8 - ; lfpsux 5,3,8 - ; stfpsux 6,10,8 - ; lfpsux 6,3,8 - ; stfpsux 7,10,8 - ; lfpsux 7,3,8 - - bdnz 0b - - # now do all nrValidSamples; since overflows should not occur, we - # treat two unsigned shorts as one word - - srwi 7,7,2 ; lwzx 24,0,5 - mtctr 7 ; lwzx 28,0,6 - li 9,4 ; lwzux 25,5,9 - ; lwzux 29,6,9 - ; lwzux 26,5,9 - ; lwzux 30,6,9 - ; lwzux 27,5,9 - ; lwzux 31,6,9 - -1: add 24,24,28 ; lwzux 28,6,9 - ; stw 24,-28(5) - ; lwzux 24,5,9 - - add 25,25,29 ; lwzux 29,6,9 - ; stw 25,-28(5) - ; lwzux 25,5,9 - - add 26,26,30 ; lwzux 30,6,9 - ; stw 26,-28(5) - ; lwzux 26,5,9 - - add 27,27,31 ; lwzux 31,6,9 - ; stw 27,-28(5) - ; lwzux 27,5,9 - - bdnz 1b - - li 11,16 # restore call-saved registers - lfpdx 15,0,1 - lfpdux 14,1,11 - - lmw 24,16(1) - addi 1,1,48 # reset stack pointer - - blr # return -#endif - - -.align 5 -.global _clear_correlation -_clear_correlation: -#if defined HAVE_BGP - li 0,0 - stw 0,0(3) - stw 0,4(3) - stw 0,8(3) - stw 0,12(3) - stw 0,16(3) - stw 0,20(3) - stw 0,24(3) - stw 0,28(3) -#else - dcbz 0,3 # clear the entire cache line, it contains all -#endif - blr # polarizations - - -.align 5 -.global _weigh_visibilities_1 -_weigh_visibilities_1: - - mullw 6,6,7 - li 8,8 - li 11,1 - srwi. 0,6,1 - sub 4,4,11 - mtctr 0 - sub 7,3,8 - - lbzux 9,4,11 - lbzux 10,4,11 - - lfpsx 0,0,3 - lfpsux 1,3,8 - lfpsux 2,3,8 - lfpsux 3,3,8 - - beq 0,1f - -0: - ; slwi 9,9,2 - ; lfsx 8,5,9 - - ; lfpsux 4,3,8 - ; lfpsux 5,3,8 - ; lfpsux 6,3,8 - ; lfpsux 7,3,8 - - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - - lbzux 9,4,11 - - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - - ; slwi 10,10,2 - ; lfsx 8,5,10 - - ; lfpsux 0,3,8 - ; lfpsux 1,3,8 - ; lfpsux 2,3,8 - ; lfpsux 3,3,8 - fxpmul 4,8,4 - fxpmul 5,8,5 - fxpmul 6,8,6 - fxpmul 7,8,7 - - lbzux 10,4,11 - - ; stfpsux 4,7,8 - ; stfpsux 5,7,8 - ; stfpsux 6,7,8 - ; stfpsux 7,7,8 - - bdnz 0b - -1: andi. 0,6,1 - beq 0,2f - ; slwi 9,9,2 - ; lfsx 8,5,9 - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - -2: blr - - -.align 5 -.global _weigh_visibilities_2 -_weigh_visibilities_2: - - mullw 6,6,7 - li 8,8 - li 11,2 - srwi. 0,6,1 - sub 4,4,11 - mtctr 0 - sub 7,3,8 - - lhzux 9,4,11 - lhzux 10,4,11 - - lfpsx 0,0,3 - lfpsux 1,3,8 - lfpsux 2,3,8 - lfpsux 3,3,8 - - beq 0,1f - -0: - ; slwi 9,9,2 - ; lfsx 8,5,9 - - ; lfpsux 4,3,8 - ; lfpsux 5,3,8 - ; lfpsux 6,3,8 - ; lfpsux 7,3,8 - - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - - lhzux 9,4,11 - - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - - ; slwi 10,10,2 - ; lfsx 8,5,10 - - ; lfpsux 0,3,8 - ; lfpsux 1,3,8 - ; lfpsux 2,3,8 - ; lfpsux 3,3,8 - fxpmul 4,8,4 - fxpmul 5,8,5 - fxpmul 6,8,6 - fxpmul 7,8,7 - - lhzux 10,4,11 - - ; stfpsux 4,7,8 - ; stfpsux 5,7,8 - ; stfpsux 6,7,8 - ; stfpsux 7,7,8 - - bdnz 0b - -1: andi. 0,6,1 - beq 0,2f - ; slwi 9,9,2 - ; lfsx 8,5,9 - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - -2: blr - - -.align 5 -.global _weigh_visibilities_4 -_weigh_visibilities_4: - - mullw 6,6,7 - li 8,8 - li 11,4 - srwi. 0,6,1 - sub 4,4,11 - mtctr 0 - sub 7,3,8 - - lwzux 9,4,11 - lwzux 10,4,11 - - lfpsx 0,0,3 - lfpsux 1,3,8 - lfpsux 2,3,8 - lfpsux 3,3,8 - - beq 0,1f - -0: - ; slwi 9,9,2 - ; lfsx 8,5,9 - - ; lfpsux 4,3,8 - ; lfpsux 5,3,8 - ; lfpsux 6,3,8 - ; lfpsux 7,3,8 - - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - - lwzux 9,4,11 - - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - - ; slwi 10,10,2 - ; lfsx 8,5,10 - - ; lfpsux 0,3,8 - ; lfpsux 1,3,8 - ; lfpsux 2,3,8 - ; lfpsux 3,3,8 - fxpmul 4,8,4 - fxpmul 5,8,5 - fxpmul 6,8,6 - fxpmul 7,8,7 - - lwzux 10,4,11 - - ; stfpsux 4,7,8 - ; stfpsux 5,7,8 - ; stfpsux 6,7,8 - ; stfpsux 7,7,8 - - bdnz 0b - -1: andi. 0,6,1 - beq 0,2f - ; slwi 9,9,2 - ; lfsx 8,5,9 - fxpmul 0,8,0 - fxpmul 1,8,1 - fxpmul 2,8,2 - fxpmul 3,8,3 - ; stfpsux 0,7,8 - ; stfpsux 1,7,8 - ; stfpsux 2,7,8 - ; stfpsux 3,7,8 - -2: blr - -#endif diff --git a/RTCP/CNProc/src/CorrelatorAsm.h b/RTCP/CNProc/src/CorrelatorAsm.h deleted file mode 100644 index fb5d8f8f00f39b90d26e9e9d0768a8c6e0075006..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/CorrelatorAsm.h +++ /dev/null @@ -1,109 +0,0 @@ -//# Correlator.h: header files for CN assembly -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_CNPROC_CORRELATOR_ASM_H -#define LOFAR_CNPROC_CORRELATOR_ASM_H - -#if defined HAVE_BGP -#include <Interface/Config.h> - -#include <stdint.h> - - -namespace LOFAR { -namespace RTCP { - -//typedef fcomplex stationInputType[NR_SAMPLES_PER_INTEGRATION | 2][NR_POLARIZATIONS]; -//typedef fcomplex CorrelatedOutputType[NR_POLARIZATIONS][NR_POLARIZATIONS]; -typedef fcomplex stationInputType, CorrelatedOutputType; - -extern "C" { - void _correlate_2x2(const stationInputType *S0, - const stationInputType *S1, - const stationInputType *S2, - const stationInputType *S3, - CorrelatedOutputType *S0_S2, - CorrelatedOutputType *S0_S3, - CorrelatedOutputType *S1_S2, - CorrelatedOutputType *S1_S3, - unsigned nrSamplesToIntegrate); - - void _correlate_3x2(const stationInputType *S0, - const stationInputType *S1, - const stationInputType *S2, - const stationInputType *S3, - const stationInputType *S4, - CorrelatedOutputType *S0_S3, - CorrelatedOutputType *S0_S4, - CorrelatedOutputType *S1_S3, - CorrelatedOutputType *S1_S4, - CorrelatedOutputType *S2_S3, - CorrelatedOutputType *S2_S4, - unsigned nrSamplesToIntegrate); - - void _auto_correlate_1(const stationInputType *S0, - CorrelatedOutputType *S0_S0, - unsigned nrSamplesToIntegrate); - - void _auto_correlate_2(const stationInputType *S0, - const stationInputType *S1, - CorrelatedOutputType *S0_S0, - CorrelatedOutputType *S0_S1, - CorrelatedOutputType *S1_S1, - unsigned nrSamplesToIntegrate); - - void _auto_correlate_3(const stationInputType *S0, - const stationInputType *S1, - const stationInputType *S2, - CorrelatedOutputType *S0_S1, - CorrelatedOutputType *S0_S2, - CorrelatedOutputType *S1_S1, - CorrelatedOutputType *S1_S2, - CorrelatedOutputType *S2_S2, - unsigned nrSamplesToIntegrate); - - void _clear_correlation(CorrelatedOutputType *S0_S0); - - void _weigh_visibilities_1( - fcomplex *visibilities, - uint8_t *nrValidSamplesCounted, - const float correlationWeights[/*nrSamplesToIntegrate + 1*/], - unsigned nrBaselines, - unsigned NrChannels); - - void _weigh_visibilities_2( - fcomplex *visibilities, - uint16_t *nrValidSamplesCounted, - const float correlationWeights[/*nrSamplesToIntegrate + 1*/], - unsigned nrBaselines, - unsigned NrChannels); - - void _weigh_visibilities_4( - fcomplex *visibilities, - uint32_t *nrValidSamplesCounted, - const float correlationWeights[/*nrSamplesToIntegrate + 1*/], - unsigned nrBaselines, - unsigned NrChannels); -}; - -} -} -#endif -#endif diff --git a/RTCP/CNProc/src/Dedispersion.cc b/RTCP/CNProc/src/Dedispersion.cc deleted file mode 100644 index 908eae519d24cd4d8886cbe2d7e0bac889afd14c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Dedispersion.cc +++ /dev/null @@ -1,232 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <CN_Math.h> -#include <Dedispersion.h> -#include <DedispersionAsm.h> -#include <Common/Timer.h> -#include <Common/LofarLogger.h> - -#include <algorithm> - - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#include <vector> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - - -namespace LOFAR { -namespace RTCP { - - -Dedispersion::Dedispersion(const Parset &parset, const std::vector<unsigned> &subbandIndices, std::vector<double> &DMs, Allocator &allocator) -: - itsNrChannels(parset.nrChannelsPerSubband()), - itsNrSamplesPerIntegration(parset.CNintegrationSteps()), - itsFFTsize(parset.dedispersionFFTsize()), - itsChannelBandwidth(parset.subbandBandwidth() / itsNrChannels), - itsFFTedBuffer(NR_POLARIZATIONS, itsFFTsize), - itsAllocator(allocator) -{ -#if defined HAVE_FFTW3 - itsFFTWforwardPlan = 0; - itsFFTWbackwardPlan = 0; -#elif defined HAVE_FFTW2 - itsFFTWforwardPlan = 0; - itsFFTWbackwardPlan = 0; -#endif - - // initialise the list of dispersion measures - unsigned nrDifferentDMs = 0; - std::vector<double> uniqueDMs; - - for (unsigned i = 0; i < DMs.size(); i++) { - double dm = DMs[i]; - - if (dm == 0.0) - continue; - - if (itsDMindices.find(dm) == itsDMindices.end()) { - uniqueDMs.push_back(dm); - itsDMindices[dm] = nrDifferentDMs; - nrDifferentDMs++; - } - } - - initChirp(parset, subbandIndices, uniqueDMs); -} - - -DedispersionBeforeBeamForming::DedispersionBeforeBeamForming(const Parset &parset, FilteredData *filteredData, const std::vector<unsigned> &subbandIndices, std::vector<double> &DMs, Allocator &allocator) -: - Dedispersion(parset, subbandIndices, DMs, allocator), - itsNrStations(parset.nrMergedStations()) -{ - initFFT(&filteredData->samples[0][0][0][0]); -} - - -DedispersionAfterBeamForming::DedispersionAfterBeamForming(const Parset &parset, BeamFormedData *beamFormedData, const std::vector<unsigned> &subbandIndices, std::vector<double> &DMs, Allocator &allocator) -: - Dedispersion(parset, subbandIndices, DMs, allocator) -{ - initFFT(&beamFormedData->samples[0][0][0][0]); -} - - -Dedispersion::~Dedispersion() -{ -#if defined HAVE_FFTW3 - if(itsFFTWforwardPlan != 0) { - fftwf_destroy_plan(itsFFTWforwardPlan); - } - if(itsFFTWbackwardPlan != 0) { - fftwf_destroy_plan(itsFFTWbackwardPlan); - } -#else - if(itsFFTWforwardPlan != 0) { - fftw_destroy_plan(itsFFTWforwardPlan); - } - if(itsFFTWbackwardPlan != 0) { - fftw_destroy_plan(itsFFTWbackwardPlan); - } -#endif -} - - -void Dedispersion::initFFT(fcomplex *data) -{ -#if defined HAVE_FFTW3 - itsFFTWforwardPlan = fftwf_plan_many_dft(1, (int *) &itsFFTsize, 2, (fftwf_complex *) data, 0, 2, 1, (fftwf_complex *) &itsFFTedBuffer[0][0], 0, 1, itsFFTsize, FFTW_FORWARD, FFTW_MEASURE); - itsFFTWbackwardPlan = fftwf_plan_many_dft(1, (int *) &itsFFTsize, 2, (fftwf_complex *) &itsFFTedBuffer[0][0], 0, 1, itsFFTsize, (fftwf_complex *) data, 0, 2, 1, FFTW_BACKWARD, FFTW_MEASURE); -#elif defined HAVE_FFTW2 -#if defined HAVE_BGP - fftw_import_wisdom_from_string("(FFTW-2.1.5 (196608 529 1 0 1 2 1 77 0) (98304 529 1 0 1 2 1 99 0) (49152 529 1 0 1 2 1 715 0) (24576 529 1 0 1 2 1 715 0) (12288 529 1 0 1 2 1 715 0) (6144 529 1 0 1 2 1 77 0) (3072 529 1 0 1 2 1 715 0) (1536 529 1 0 1 2 1 187 0) (768 529 1 0 1 2 1 143 0) (384 529 1 0 1 2 1 143 0) (192 529 1 0 1 2 1 143 0) (96 529 1 0 1 2 1 143 0) (48 529 1 0 1 2 1 143 0) (24 529 1 0 1 2 1 143 0) (12 529 1 0 1 2 0 276 0) (6 529 1 0 1 2 0 144 0) (3 529 1 0 1 2 0 78 0) (196608 529 -1 0 2 1 1 704 0) (98304 529 -1 0 2 1 1 704 0) (49152 529 -1 0 2 1 1 704 0) (24576 529 -1 0 2 1 1 704 0) (12288 529 -1 0 2 1 1 704 0) (6144 529 -1 0 2 1 1 704 0) (3072 529 -1 0 2 1 1 132 0) (1536 529 -1 0 2 1 1 132 0) (768 529 -1 0 2 1 1 132 0) (384 529 -1 0 2 1 1 132 0) (192 529 -1 0 2 1 1 352 0) (96 529 -1 0 2 1 1 132 0) (48 529 -1 0 2 1 1 132 0) (24 529 -1 0 2 1 1 132 0) (12 529 -1 0 2 1 0 265 0) (6 529 -1 0 2 1 0 133 0) (3 529 -1 0 2 1 0 67 0) (2 529 -1 0 2 1 0 45 0) (4 529 -1 0 2 1 0 89 0) (8 529 -1 0 2 1 0 177 0) (16 529 -1 0 2 1 0 353 0) (32 529 -1 0 2 1 0 705 0) (64 529 -1 0 2 1 0 1409 0) (128 529 -1 0 2 1 0 2817 0) (256 529 -1 0 2 1 1 352 0) (512 529 -1 0 2 1 1 352 0) (1024 529 -1 0 2 1 1 704 0) (2048 529 -1 0 2 1 1 704 0) (4096 529 -1 0 2 1 1 704 0) (8192 529 -1 0 2 1 1 352 0) (16384 529 -1 0 2 1 1 704 0) (32768 529 -1 0 2 1 1 704 0) (65536 529 -1 0 2 1 1 704 0) (2 529 1 0 1 2 0 56 0) (4 529 1 0 1 2 0 100 0) (8 529 1 0 1 2 0 188 0) (16 529 1 0 1 2 0 364 0) (32 529 1 0 1 2 0 716 0) (64 529 1 0 1 2 0 1420 0) (128 529 1 0 1 2 0 2828 0) (256 529 1 0 1 2 1 715 0) (512 529 1 0 1 2 1 187 0) (1024 529 1 0 1 2 1 715 0) (2048 529 1 0 1 2 1 715 0) (4096 529 1 0 1 2 1 715 0) (8192 529 1 0 1 2 1 1419 0) (16384 529 1 0 1 2 1 99 0) (32768 529 1 0 1 2 1 715 0) (65536 529 1 0 1 2 1 715 0))"); -#endif - - itsFFTWforwardPlan = fftw_create_plan_specific(itsFFTsize, FFTW_FORWARD, FFTW_ESTIMATE | FFTW_USE_WISDOM, (fftw_complex *) data, 2, (fftw_complex *) &itsFFTedBuffer[0][0], 1); - itsFFTWbackwardPlan = fftw_create_plan_specific(itsFFTsize, FFTW_BACKWARD, FFTW_ESTIMATE | FFTW_USE_WISDOM, (fftw_complex *) &itsFFTedBuffer[0][0], 1, (fftw_complex *) data, 2); -#endif -} - - -void Dedispersion::forwardFFT(const fcomplex *data) -{ -#if defined HAVE_FFTW3 - fftwf_execute_dft(itsFFTWforwardPlan, (fftwf_complex *) data, (fftwf_complex *) &itsFFTedBuffer[0][0]); -#elif defined HAVE_FFTW2 - fftw(itsFFTWforwardPlan, 2, (fftw_complex *) data, 2, 1, (fftw_complex *) &itsFFTedBuffer[0][0], 1, itsFFTsize); -#endif -} - - -void Dedispersion::backwardFFT(fcomplex *data) -{ -#if defined HAVE_FFTW3 - fftwf_execute_dft(itsFFTWbackwardPlan, (fftwf_complex *) &itsFFTedBuffer[0][0], (fftwf_complex *) data); -#elif defined HAVE_FFTW2 - fftw(itsFFTWbackwardPlan, 2, (fftw_complex *) &itsFFTedBuffer[0][0], 1, itsFFTsize, (fftw_complex *) data, 2, 1); -#endif -} - - -void Dedispersion::initChirp(const Parset &parset, const std::vector<unsigned> &subbandIndices, std::vector<double> &uniqueDMs) -{ - itsChirp.resize(*std::max_element(subbandIndices.begin(), subbandIndices.end()) + 1, uniqueDMs.size()); -//std::cout << "newcurve linetype solid linethickness 3 marktype none color 0 .7 0 pts" << std::endl; - - for (unsigned i = 0; i < subbandIndices.size(); i ++) { - for (unsigned dmIndex = 0; dmIndex < uniqueDMs.size(); dmIndex++) { - double dm = uniqueDMs[dmIndex]; - unsigned subbandIndex = subbandIndices[i]; - double channel0frequency = parset.channel0Frequency(subbandIndex); - double binWidth = itsChannelBandwidth / itsFFTsize; - double dmConst = dm * 2 * M_PI / 2.41e-16; - - itsChirp[subbandIndex][dmIndex] = new Matrix<fcomplex>(itsNrChannels, itsFFTsize, 32, itsAllocator); - - for (unsigned channel = 0; channel < itsNrChannels; channel ++) { - double channelFrequency = channel0frequency + channel * itsChannelBandwidth; - - for (unsigned n = 0; n < itsFFTsize; n ++) { - double binFrequency = n * binWidth; - - if (n > itsFFTsize / 2) - binFrequency -= itsChannelBandwidth; - - double frequencyDiv = binFrequency / channelFrequency; - double frequencyFac = frequencyDiv * frequencyDiv / (channelFrequency + binFrequency); - dcomplex dfactor = cosisin(dmConst * frequencyFac); - fcomplex factor = makefcomplex(real(dfactor), -imag(dfactor)); - float taper = sqrt(1 + pow(binFrequency / (.47 * itsChannelBandwidth), 80)); - //if (channel == 0) std::cout << n << ' ' << 1/taper << std::endl; - - (*itsChirp[subbandIndex][dmIndex])[channel][n] = factor / (taper * itsFFTsize); - } - } - } - } -} - - -void Dedispersion::applyChirp(unsigned subbandIndex, unsigned dmIndex, unsigned channel) -{ - static NSTimer chirpTimer("chirp timer", true, true); - const fcomplex *chirp = &(*itsChirp[subbandIndex][dmIndex])[channel][0]; - - chirpTimer.start(); - -#if defined HAVE_BGP - _apply_chirp(&itsFFTedBuffer[0][0], &itsFFTedBuffer[1][0], chirp, itsFFTsize); -#else - for (unsigned time = 0; time < itsFFTsize; time ++) { - itsFFTedBuffer[0][time] *= chirp[time]; - itsFFTedBuffer[1][time] *= chirp[time]; - } -#endif - - chirpTimer.stop(); -} - - -void DedispersionBeforeBeamForming::dedisperse(const FilteredData *inData, FilteredData *outData, unsigned instat, unsigned outstat, unsigned firstch, unsigned numch, unsigned subbandIndex, double dm) -{ - if (dm == 0.0) - return; - - unsigned dmIndex = itsDMindices[dm]; - - for (unsigned channel = 0; channel < numch; channel ++) { - for (unsigned block = 0; block < itsNrSamplesPerIntegration; block += itsFFTsize) { - forwardFFT(&inData->samples[firstch + channel][instat][block][0]); - applyChirp(subbandIndex, dmIndex, channel); - backwardFFT(&outData->samples[channel][outstat][block][0]); - } - } -} - - -void DedispersionAfterBeamForming::dedisperse(BeamFormedData *beamFormedData, unsigned subbandIndex, unsigned beam, double dm) -{ - if (dm == 0.0) - return; - - unsigned dmIndex = itsDMindices[dm]; - - for (unsigned channel = 0; channel < itsNrChannels; channel ++) { - for (unsigned block = 0; block < itsNrSamplesPerIntegration; block += itsFFTsize) { - forwardFFT(&beamFormedData->samples[beam][channel][block][0]); - applyChirp(subbandIndex, dmIndex, channel); - backwardFFT(&beamFormedData->samples[beam][channel][block][0]); - } - } -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/Dedispersion.h b/RTCP/CNProc/src/Dedispersion.h deleted file mode 100644 index 979a705faad2ceb8a892ce6d8579f63bf99820fe..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Dedispersion.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef LOFAR_CNPROC_DEDISPERSION_H -#define LOFAR_CNPROC_DEDISPERSION_H - - -#include <Common/lofar_complex.h> -#include <Interface/Allocator.h> -#include <Interface/BeamFormedData.h> -#include <Interface/FilteredData.h> -#include <Interface/MultiDimArray.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> - -#include <vector> - - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - - - -namespace LOFAR { -namespace RTCP { - - -class Dedispersion -{ - protected: - Dedispersion(const Parset &, const std::vector<unsigned> &subbandIndices, std::vector<double> &DMs, Allocator &allocator = heapAllocator); - - public: - ~Dedispersion(); - - protected: - void initFFT(fcomplex *data); - void forwardFFT(const fcomplex *data); - void backwardFFT(fcomplex *data); - - const unsigned itsNrChannels, itsNrSamplesPerIntegration, itsFFTsize; - const double itsChannelBandwidth; - - Matrix<fcomplex> itsFFTedBuffer; - -#if defined HAVE_FFTW3 - fftwf_plan itsFFTWforwardPlan, itsFFTWbackwardPlan; -#elif defined HAVE_FFTW2 - fftw_plan itsFFTWforwardPlan, itsFFTWbackwardPlan; -#endif - - void initChirp(const Parset &, const std::vector<unsigned> &subbandIndices, std::vector<double> &uniqueDMs); - void applyChirp(unsigned subbandIndex, unsigned dmIndex, unsigned channel); - - Matrix<SmartPtr<Matrix<fcomplex> > > itsChirp; // (*[subbandIndex])[dm][channel][time] - std::map<double,unsigned> itsDMindices; - - Allocator &itsAllocator; -}; - - -class DedispersionBeforeBeamForming : public Dedispersion -{ - public: - DedispersionBeforeBeamForming(const Parset &, FilteredData *, const std::vector<unsigned> &subbandIndices, std::vector<double> &DMs, Allocator &allocator = heapAllocator); - - void dedisperse(const FilteredData *, FilteredData *, unsigned instat, unsigned outstat, unsigned firstch, unsigned numch, unsigned subbandIndex, double dm); - - private: - const unsigned itsNrStations; -}; - - -class DedispersionAfterBeamForming : public Dedispersion -{ - public: - DedispersionAfterBeamForming(const Parset &, BeamFormedData *, const std::vector<unsigned> &subbandIndex, std::vector<double> &DMs, Allocator &allocator = heapAllocator); - - void dedisperse(BeamFormedData *, unsigned subbandIndex, unsigned beam, double dm); -}; - - - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/DedispersionAsm.S b/RTCP/CNProc/src/DedispersionAsm.S deleted file mode 100644 index ef61366229a7aa4dec023e7ad9153bb46510fade..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/DedispersionAsm.S +++ /dev/null @@ -1,122 +0,0 @@ -#if defined HAVE_BGP - -.global _apply_chirp -_apply_chirp: - - li 12,-16 # push call-saved registers - stfpdux 14,1,12 - stfpdux 15,1,12 - stfpdux 16,1,12 - stfpdux 17,1,12 - stfpdux 18,1,12 - stfpdux 19,1,12 - - srwi 6,6,2 - subi 6,6,1 - mtctr 6 - li 8,8 - mr 9,3 - subi 10,4,8 - - lfpsx 0,0,3 - lfpsx 4,0,4 - lfpsx 8,0,5 - - lfpsux 1,3,8 - lfpsux 5,4,8 - lfpsux 9,5,8 - - lfpsux 2,3,8 - fxpmul 12,0,8 - lfpsux 6,4,8 - fxpmul 16,4,8 - lfpsux 10,5,8 - - lfpsux 3,3,8 - fxpmul 13,1,9 - lfpsux 7,4,8 - fxpmul 17,5,9 - lfpsux 11,5,8 - fxcxnpma 12,0,8,12 - fxcxnpma 16,4,8,16 - - lfpsux 0,3,8 - fxpmul 14,2,10 - lfpsux 4,4,8 - fxpmul 18,6,10 - lfpsux 8,5,8 - fxcxnpma 13,1,9,13 - stfpsx 12,0,9 - fxcxnpma 17,5,9,17 - -0: - lfpsux 1,3,8 - stfpsux 16,10,8 - fxpmul 15,3,11 - lfpsux 5,4,8 - fxpmul 19,7,11 - lfpsux 9,5,8 - fxcxnpma 14,2,10,14 - stfpsux 13,9,8 - fxcxnpma 18,6,10,18 - - lfpsux 2,3,8 - stfpsux 17,10,8 - fxpmul 12,0,8 - lfpsux 6,4,8 - fxpmul 16,4,8 - lfpsux 10,5,8 - fxcxnpma 15,3,11,15 - stfpsux 14,9,8 - fxcxnpma 19,7,11,19 - - lfpsux 3,3,8 - stfpsux 18,10,8 - fxpmul 13,1,9 - lfpsux 7,4,8 - fxpmul 17,5,9 - lfpsux 11,5,8 - fxcxnpma 12,0,8,12 - stfpsux 15,9,8 - fxcxnpma 16,4,8,16 - - lfpsux 0,3,8 - stfpsux 19,10,8 - fxpmul 14,2,10 - lfpsux 4,4,8 - fxpmul 18,6,10 - lfpsux 8,5,8 - fxcxnpma 13,1,9,13 - stfpsux 12,9,8 - fxcxnpma 17,5,9,17 - - bdnz 0b - - stfpsux 16,10,8 - fxpmul 15,3,11 - fxpmul 19,7,11 - fxcxnpma 14,2,10,14 - stfpsux 13,9,8 - fxcxnpma 18,6,10,18 - stfpsux 17,10,8 - - fxcxnpma 15,3,11,15 - stfpsux 14,9,8 - fxcxnpma 19,7,11,19 - stfpsux 18,10,8 - - stfpsux 15,9,8 - stfpsux 19,10,8 - - li 12,16 # restore call-saved registers - lfpdx 19,0,1 - lfpdux 18,1,12 - lfpdux 17,1,12 - lfpdux 16,1,12 - lfpdux 15,1,12 - lfpdux 14,1,12 - - addi 1,1,16 # reset stack pointer - - blr -#endif diff --git a/RTCP/CNProc/src/DedispersionAsm.h b/RTCP/CNProc/src/DedispersionAsm.h deleted file mode 100644 index d2da2718d6699c3ba97140e0c7896085a7ddcc8a..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/DedispersionAsm.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef LOFAR_CNPROC_DEDISPERSIONASM_H -#define LOFAR_CNPROC_DEDISPERSIONASM_H - -#if defined HAVE_BGP - -#include <Common/lofar_complex.h> - -namespace LOFAR { -namespace RTCP { - -extern "C" -{ - void _apply_chirp(fcomplex *xBuffer, fcomplex *yBuffer, const fcomplex *chirp, unsigned count); -} - -} // namespace LOFAR::RTCP -} // namespace LOFAR - -#endif - -#endif diff --git a/RTCP/CNProc/src/FCNP_ClientStream.cc b/RTCP/CNProc/src/FCNP_ClientStream.cc deleted file mode 100644 index effeefdca04baffe3f2f8878fc23d85f82daafbf..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FCNP_ClientStream.cc +++ /dev/null @@ -1,85 +0,0 @@ -//# FCNP_ClientStream.cc: Fast Collective Network Protocol Stream -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#if defined HAVE_FCNP && defined HAVE_BGP_CN - -#include <Common/Timer.h> -#include <Interface/Align.h> -#include <Interface/AlignedStdAllocator.h> -#include <FCNP/fcnp_cn.h> -#include <FCNP_ClientStream.h> - -#include <cstring> -#include <vector> - - -namespace LOFAR { -namespace RTCP { - - -FCNP_ClientStream::~FCNP_ClientStream() -{ -} - - -size_t FCNP_ClientStream::tryRead(void *ptr, size_t size) -{ - //LOG_DEBUG_STR("FCNP_ClientStream::read(" << std::hex << ptr << ", " << std::dec << size << ", ...)"); - - if (!aligned(ptr, 16) || !aligned(size, 16)) { - size_t alignedSize = align(size, 16); - std::vector<char, AlignedStdAllocator<char, 16> > alignedBuffer(alignedSize); - - FCNP_CN::IONtoCN_ZeroCopy(itsChannel, &alignedBuffer[0], alignedSize); - memcpy(ptr, &alignedBuffer[0], size); - } else { - FCNP_CN::IONtoCN_ZeroCopy(itsChannel, ptr, size); - } - - return size; -} - - -size_t FCNP_ClientStream::tryWrite(const void *ptr, size_t size) -{ - //LOG_DEBUG_STR("FCNP_ClientStream::write(" << std::hex << ptr << ", " << std::dec << size << ", ...)"); - - if (!aligned(ptr, 16) || !aligned(size, 16)) { - size_t alignedSize = align(size, 16); - std::vector<char, AlignedStdAllocator<char, 16> > alignedBuffer(alignedSize); - - memcpy(&alignedBuffer[0], ptr, size); - FCNP_CN::CNtoION_ZeroCopy(itsChannel, &alignedBuffer[0], alignedSize); - } else { - FCNP_CN::CNtoION_ZeroCopy(itsChannel, ptr, size); - } - - return size; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/FCNP_ClientStream.h b/RTCP/CNProc/src/FCNP_ClientStream.h deleted file mode 100644 index dd026b74d5546f4b7422ec1b58c98c417de8fd3c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FCNP_ClientStream.h +++ /dev/null @@ -1,57 +0,0 @@ -//# FCNP_ClientStream.h: Stream that implements FCNP protocol -//# -//# Copyright (C) 2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_CNPROC_FCNP_CLIENT_STREAM_H -#define LOFAR_CNPROC_FCNP_CLIENT_STREAM_H - -#if defined HAVE_FCNP && defined HAVE_BGP_CN - -#include <Stream/Stream.h> - -namespace LOFAR { -namespace RTCP { - -class FCNP_ClientStream : public Stream -{ - public: - FCNP_ClientStream(unsigned channel); - virtual ~FCNP_ClientStream(); - - virtual size_t tryRead(void *ptr, size_t size); - virtual size_t tryWrite(const void *ptr, size_t size); - - private: - const unsigned itsChannel; -}; - - -inline FCNP_ClientStream::FCNP_ClientStream(unsigned channel) -: - itsChannel(channel) -{ -} - -} // namespace RTCP -} // namespace LOFAR - -#endif -#endif diff --git a/RTCP/CNProc/src/FFT_Asm.S b/RTCP/CNProc/src/FFT_Asm.S deleted file mode 100644 index 9bcb0ac1e3a61f8a5bd28926d46c26754dd20c35..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FFT_Asm.S +++ /dev/null @@ -1,989 +0,0 @@ -#if defined HAVE_BGP - -_C1: .long 0x3F800000, 0x3F800000 -_W: .long 0x3F6C835E, 0xBEC3EF15 -_W2: .long 0x3F3504F3, 0xBF3504F3 - -twiddle: - .long 0x3F7FEC43, 0xBCC90AB0 - .long 0x3F7FB10F, 0xBD48FB30 - .long 0x3F7F4E6D, 0xBD96A905 - .long 0x3F7EC46D, 0xBDC8BD36 - .long 0x3F7E1324, 0xBDFAB272 - .long 0x3F7D3AAC, 0xBE164083 - .long 0x3F7C3B28, 0xBE2F10A2 - .long 0x3F7B14BE, 0xBE47C5C2 - .long 0x3F79C79D, 0xBE605C13 - .long 0x3F7853F8, 0xBE78CFCC - .long 0x3F76BA07, 0xBE888E93 - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F731448, 0xBEA09AE5 - .long 0x3F710908, 0xBEAC7CD3 - .long 0x3F6ED89D, 0xBEB8442A - .long 0x3F7FB10F, 0xBD48FB30 - .long 0x3F7EC46D, 0xBDC8BD36 - .long 0x3F7D3AAC, 0xBE164083 - .long 0x3F7B14BE, 0xBE47C5C2 - .long 0x3F7853F8, 0xBE78CFCC - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F710908, 0xBEAC7CD3 - .long 0x3F6C835F, 0xBEC3EF16 - .long 0x3F676BD7, 0xBEDAE880 - .long 0x3F61C598, 0xBEF15AE9 - .long 0x3F5B941A, 0xBF039C3C - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F4D9F02, 0xBF187FC0 - .long 0x3F45E403, 0xBF226799 - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3F7F4E6D, 0xBD96A905 - .long 0x3F7D3AAC, 0xBE164083 - .long 0x3F79C79D, 0xBE605C13 - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F6ED89D, 0xBEB8442A - .long 0x3F676BD7, 0xBEDAE880 - .long 0x3F5EBE05, 0xBEFC5D26 - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F49D113, 0xBF1D7FD1 - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3F3085BB, 0xBF396841 - .long 0x3F226799, 0xBF45E403 - .long 0x3F13682B, 0xBF514D3C - .long 0x3F039C3E, 0xBF5B9419 - .long 0x3EE63374, 0xBF64AA5A - .long 0x3F7EC46D, 0xBDC8BD36 - .long 0x3F7B14BE, 0xBE47C5C2 - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F6C835F, 0xBEC3EF16 - .long 0x3F61C598, 0xBEF15AE9 - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F45E403, 0xBF226799 - .long 0x3F3504F3, 0xBF3504F4 - .long 0x3F226799, 0xBF45E403 - .long 0x3F0E39DA, 0xBF54DB31 - .long 0x3EF15AEB, 0xBF61C598 - .long 0x3EC3EF15, 0xBF6C835F - .long 0x3E94A030, 0xBF74FA0B - .long 0x3E47C5C4, 0xBF7B14BE - .long 0x3DC8BD35, 0xBF7EC46D - .long 0x3F7E1324, 0xBDFAB272 - .long 0x3F7853F8, 0xBE78CFCC - .long 0x3F6ED89D, 0xBEB8442A - .long 0x3F61C598, 0xBEF15AE9 - .long 0x3F514D3D, 0xBF13682B - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3F273656, 0xBF41D870 - .long 0x3F0E39DA, 0xBF54DB31 - .long 0x3EE63374, 0xBF64AA5A - .long 0x3EAC7CD3, 0xBF710908 - .long 0x3E605C12, 0xBF79C79D - .long 0x3DC8BD35, 0xBF7EC46D - .long 0xBCC90AAD, 0xBF7FEC43 - .long 0xBE164082, 0xBF7D3AAC - .long 0xBE888E92, 0xBF76BA07 - .long 0x3F7D3AAC, 0xBE164083 - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F676BD7, 0xBEDAE880 - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3F226799, 0xBF45E403 - .long 0x3F039C3E, 0xBF5B9419 - .long 0x3EC3EF15, 0xBF6C835F - .long 0x3E78CFD0, 0xBF7853F8 - .long 0x3DC8BD35, 0xBF7EC46D - .long 0xBD48FB21, 0xBF7FB10F - .long 0xBE47C5C2, 0xBF7B14BE - .long 0xBEAC7CD2, 0xBF710908 - .long 0xBEF15AE6, 0xBF61C598 - .long 0xBF187FC1, 0xBF4D9F01 - .long 0x3F7C3B28, 0xBE2F10A2 - .long 0x3F710908, 0xBEAC7CD3 - .long 0x3F5EBE05, 0xBEFC5D26 - .long 0x3F45E403, 0xBF226799 - .long 0x3F273656, 0xBF41D870 - .long 0x3F039C3E, 0xBF5B9419 - .long 0x3EB8442B, 0xBF6ED89D - .long 0x3E47C5C4, 0xBF7B14BE - .long 0x3CC90ABE, 0xBF7FEC43 - .long 0xBE164082, 0xBF7D3AAC - .long 0xBEA09AE4, 0xBF731448 - .long 0xBEF15AE6, 0xBF61C598 - .long 0xBF1D7FD0, 0xBF49D113 - .long 0xBF3DAEF8, 0xBF2BEB4B - .long 0xBF584852, 0xBF08F59C - .long 0x3F7B14BE, 0xBE47C5C2 - .long 0x3F6C835F, 0xBEC3EF16 - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F3504F3, 0xBF3504F4 - .long 0x3F0E39DA, 0xBF54DB31 - .long 0x3EC3EF15, 0xBF6C835F - .long 0x3E47C5C4, 0xBF7B14BE - .long 0xB33BBD2E, 0xBF800000 - .long 0xBE47C5C2, 0xBF7B14BE - .long 0xBEC3EF14, 0xBF6C835F - .long 0xBF0E39D9, 0xBF54DB32 - .long 0xBF3504F3, 0xBF3504F3 - .long 0xBF54DB32, 0xBF0E39D9 - .long 0xBF6C835E, 0xBEC3EF17 - .long 0xBF7B14BF, 0xBE47C5C1 - .long 0x3F79C79D, 0xBE605C13 - .long 0x3F676BD7, 0xBEDAE880 - .long 0x3F49D113, 0xBF1D7FD1 - .long 0x3F226799, 0xBF45E403 - .long 0x3EE63374, 0xBF64AA5A - .long 0x3E78CFD0, 0xBF7853F8 - .long 0x3CC90ABE, 0xBF7FEC43 - .long 0xBE47C5C2, 0xBF7B14BE - .long 0xBECF7BCB, 0xBF6A09A6 - .long 0xBF187FC1, 0xBF4D9F01 - .long 0xBF41D870, 0xBF273656 - .long 0xBF61C596, 0xBEF15AED - .long 0xBF76BA07, 0xBE888E92 - .long 0xBF7FB10F, 0xBD48FB3D - .long 0xBF7C3B28, 0x3E2F10A9 - .long 0x3F7853F8, 0xBE78CFCC - .long 0x3F61C598, 0xBEF15AE9 - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3F0E39DA, 0xBF54DB31 - .long 0x3EAC7CD3, 0xBF710908 - .long 0x3DC8BD35, 0xBF7EC46D - .long 0xBE164082, 0xBF7D3AAC - .long 0xBEC3EF14, 0xBF6C835F - .long 0xBF187FC1, 0xBF4D9F01 - .long 0xBF45E404, 0xBF226799 - .long 0xBF676BD7, 0xBEDAE87F - .long 0xBF7B14BF, 0xBE47C5C1 - .long 0xBF7FB10F, 0x3D48FB2C - .long 0xBF74FA0B, 0x3E94A030 - .long 0xBF5B941B, 0x3F039C3C - .long 0x3F76BA07, 0xBE888E93 - .long 0x3F5B941A, 0xBF039C3C - .long 0x3F3085BB, 0xBF396841 - .long 0x3EF15AEB, 0xBF61C598 - .long 0x3E605C12, 0xBF79C79D - .long 0xBD48FB21, 0xBF7FB10F - .long 0xBEA09AE4, 0xBF731448 - .long 0xBF0E39D9, 0xBF54DB32 - .long 0xBF41D870, 0xBF273656 - .long 0xBF676BD7, 0xBEDAE87F - .long 0xBF7C3B28, 0xBE2F109D - .long 0xBF7EC46D, 0x3DC8BD27 - .long 0xBF6ED89E, 0x3EB84428 - .long 0xBF4D9F03, 0x3F187FC0 - .long 0xBF1D7FD1, 0x3F49D113 - .long 0x3F74FA0B, 0xBE94A031 - .long 0x3F54DB31, 0xBF0E39DA - .long 0x3F226799, 0xBF45E403 - .long 0x3EC3EF15, 0xBF6C835F - .long 0x3DC8BD35, 0xBF7EC46D - .long 0xBE47C5C2, 0xBF7B14BE - .long 0xBEF15AE6, 0xBF61C598 - .long 0xBF3504F3, 0xBF3504F3 - .long 0xBF61C596, 0xBEF15AED - .long 0xBF7B14BF, 0xBE47C5C1 - .long 0xBF7EC46D, 0x3DC8BD27 - .long 0xBF6C835F, 0x3EC3EF16 - .long 0xBF45E405, 0x3F226798 - .long 0xBF0E39DD, 0x3F54DB2F - .long 0xBE94A02D, 0x3F74FA0B - .long 0x3F731448, 0xBEA09AE5 - .long 0x3F4D9F02, 0xBF187FC0 - .long 0x3F13682B, 0xBF514D3C - .long 0x3E94A030, 0xBF74FA0B - .long 0xBCC90AAD, 0xBF7FEC43 - .long 0xBEAC7CD2, 0xBF710908 - .long 0xBF1D7FD0, 0xBF49D113 - .long 0xBF54DB32, 0xBF0E39D9 - .long 0xBF76BA07, 0xBE888E92 - .long 0xBF7FB10F, 0x3D48FB2C - .long 0xBF6ED89E, 0x3EB84428 - .long 0xBF45E405, 0x3F226798 - .long 0xBF08F59D, 0x3F584851 - .long 0xBE78CFD9, 0x3F7853F7 - .long 0x3D96A922, 0x3F7F4E6D - .long 0x3F710908, 0xBEAC7CD3 - .long 0x3F45E403, 0xBF226799 - .long 0x3F039C3E, 0xBF5B9419 - .long 0x3E47C5C4, 0xBF7B14BE - .long 0xBE164082, 0xBF7D3AAC - .long 0xBEF15AE6, 0xBF61C598 - .long 0xBF3DAEF8, 0xBF2BEB4B - .long 0xBF6C835E, 0xBEC3EF17 - .long 0xBF7FB10F, 0xBD48FB3D - .long 0xBF74FA0B, 0x3E94A030 - .long 0xBF4D9F03, 0x3F187FC0 - .long 0xBF0E39DD, 0x3F54DB2F - .long 0xBE78CFD9, 0x3F7853F7 - .long 0x3DC8BD1D, 0x3F7EC46D - .long 0x3EDAE87B, 0x3F676BD9 - .long 0x3F6ED89D, 0xBEB8442A - .long 0x3F3DAEFA, 0xBF2BEB4A - .long 0x3EE63374, 0xBF64AA5A - .long 0x3DC8BD35, 0xBF7EC46D - .long 0xBE888E92, 0xBF76BA07 - .long 0xBF187FC1, 0xBF4D9F01 - .long 0xBF584852, 0xBF08F59C - .long 0xBF7B14BF, 0xBE47C5C1 - .long 0xBF7C3B28, 0x3E2F10A9 - .long 0xBF5B941B, 0x3F039C3C - .long 0xBF1D7FD1, 0x3F49D113 - .long 0xBE94A02D, 0x3F74FA0B - .long 0x3D96A922, 0x3F7F4E6D - .long 0x3EDAE87B, 0x3F676BD9 - .long 0x3F396841, 0x3F3085BC - - -.align 5 -.global _fft256 - -_fft256: - -#define C1 31 -#define W 30 -#define W2 29 - -#define a0 0 -#define a1 4 -#define a2 8 -#define a3 12 -#define a4 1 -#define a5 5 -#define a6 9 -#define a7 13 -#define a8 2 -#define a9 6 -#define a10 10 -#define a11 14 -#define a12 3 -#define a13 7 -#define a14 11 -#define a15 15 - -#define b0 16 -#define b1 a0 -#define b2 a2 -#define b3 a1 -#define b4 a3 -#define b5 a4 -#define b6 a6 -#define b7 a5 -#define b8 a7 -#define b9 a8 -#define b10 a10 -#define b11 a9 -#define b12 a11 -#define b13 a12 -#define b14 a14 -#define b15 a13 - -#define c0 a15 -#define c2 b0 -#define c1 b2 -#define c3 b1 -#define c4 b3 -#define c6 b4 -#define c5 b6 -#define c7 b5 -#define c8 b7 -#define c10 b8 -#define c9 b10 -#define c11 b9 -#define c12 b11 -#define c14 b12 -#define c13 b14 -#define c15 b13 - -#define x5 b15 -#define x6 17 -#define x7 18 -#define x9 19 -#define x11 20 -#define x13 21 -#define x14 22 -#define x15 23 - -#define d5 c5 -#define d6 c6 -#define d7 c7 -#define d9 c9 -#define d11 c11 -#define d13 c13 -#define d14 c14 -#define d15 c15 - -#define e0 30 -#define e1 29 -#define e2 28 -#define e3 27 -#define e4 26 -#define e5 25 -#define e6 24 -#define e7 23 -#define e8 22 -#define e9 21 -#define e10 20 -#define e11 19 -#define e12 18 -#define e13 17 -#define e14 16 -#define e15 15 - -#define f0 14 -#define f2 e0 -#define f1 e2 -#define f3 e1 -#define f4 e3 -#define f6 e4 -#define f5 e6 -#define f7 e5 -#define f8 e7 -#define f10 e8 -#define f9 e10 -#define f11 e9 -#define f12 e11 -#define f14 e12 -#define f13 e14 -#define f15 e13 - -#define f0 14 -#define f2 e0 -#define f1 e2 -#define f3 e1 -#define f4 e3 -#define f6 e4 -#define f5 e6 -#define f7 e5 -#define f8 e7 -#define f10 e8 -#define f9 e10 -#define f11 e9 -#define f12 e11 -#define f14 e12 -#define f13 e14 -#define f15 e13 - -#define t4 10 -#define t8 11 -#define t12 12 -#define t1 13 -#define t5 14 -#define t9 1 -#define t13 3 -#define t2 5 -#define t6 7 -#define t10 9 -#define t14 t4 -#define t3 t8 -#define t7 t12 -#define t11 t1 -#define t15 t5 - -#define y4 0 -#define y8 2 -#define y12 4 -#define y1 6 -#define y5 8 -#define y9 y4 -#define y13 y8 -#define y2 y12 -#define y6 y1 -#define y10 y5 -#define y14 g4 -#define y3 g8 -#define y7 g12 -#define y11 g1 -#define y15 g5 - -#define g8 f8 -#define g12 f12 -#define g1 f1 -#define g5 f5 -#define g4 f4 -#define g9 f9 -#define g13 f13 -#define g2 f2 -#define g6 f6 -#define g10 f10 -#define g14 f14 -#define g3 f3 -#define g7 f7 -#define g11 f11 -#define g15 f15 - - li 9,-16 - ; stfpdux 14,1,9 - ; stfpdux 15,1,9 - ; stfpdux 16,1,9 - ; stfpdux 17,1,9 - ; stfpdux 18,1,9 - ; stfpdux 19,1,9 - ; stfpdux 20,1,9 - ; stfpdux 21,1,9 - ; stfpdux 22,1,9 - ; stfpdux 23,1,9 - ; stfpdux 24,1,9 - ; stfpdux 25,1,9 - ; stfpdux 26,1,9 - ; stfpdux 27,1,9 - ; stfpdux 28,1,9 - li 10,17*16*8/32 ; stfpdux 29,1,9 - li 8,0 ; stfpdux 30,1,9 - mtctr 10 ; stfpdux 31,1,9 - -0: dcbt 3,8 - addi 8,8,32 ; bdnz 0b - - - li 9,16*8 ; lfpsx a0,0,3 - lis 7,_C1@ha ; lfpsux a4,3,9 - la 7,_C1@l(7) ; lfpsux a8,3,9 - ; lfpsx C1,0,7 - ; lfpsux a12,3,9 - addi 7,7,8 ; lfpsux a1,3,9 - li 8,8 ; lfpsux a5,3,9 - li 0,15 ; lfpsux a9,3,9 - mtctr 0 ; lfpsux a13,3,9 - lis 6,twiddle-8@ha ; lfpsux a2,3,9 - la 6,twiddle-8@l(6) ; lfpsux a6,3,9 - ; lfpsux a10,3,9 - ; lfpsux a14,3,9 - ; lfpsux a3,3,9 - ; lfpsux a7,3,9 - ; lfpsux a11,3,9 - ; lfpsux a15,3,9 - - fpadd b0,a0,a2 - fpsub b1,a0,a2 - fpadd b2,a1,a3 - fpsub b3,a1,a3 - - fpadd b4,a4,a6 - fpsub b5,a4,a6 - fpadd b6,a5,a7 - fpsub b7,a5,a7 - - fpadd b8,a8,a10 - fpsub b9,a8,a10 - fpadd b10,a9,a11 - fpsub b11,a9,a11 - - fpadd b12,a12,a14 - fpsub b13,a12,a14 - fpadd b14,a13,a15 - fpsub b15,a13,a15 - - fpadd c0,b0,b2 - fpsub c2,b0,b2 ; lfpsx W,0,7 - fxcxnsma c1,C1,b3,b1 ; lfpsx W2,7,8 - fxcxnpma c3,C1,b3,b1 - - fpadd c4,b4,b6 - fpsub c6,b4,b6 - fxcxnsma c5,C1,b7,b5 - fxcxnpma c7,C1,b7,b5 - - fpadd c8,b8,b10 - fpsub c10,b8,b10 - fxcxnsma c9,C1,b11,b9 - fxcxnpma c11,C1,b11,b9 - - fpadd c12,b12,b14 - fpsub c14,b12,b14 - fxcxnsma c13,C1,b15,b13 - fxcxnpma c15,C1,b15,b13 - - fxpmul x5,c5,W - fxpmul x6,c6,W2 - fxpmul x7,c7,W - - fxpmul x9,c9,W2 - fxpmul x11,W2,c11 - - fxpmul x13,c13,W - fxpmul x14,W2,c14 - fxpmul x15,c15,W - - fxcxnpma d5,c5,W,x5 - fxcxnpma d6,c6,W2,x6 - fxcxnsma d7,c7,W,x7 - - fxcxnpma d9,c9,W2,x9 - fxcxnsma d11,W2,c11,x11 - - fxcxnsma d13,c13,W,x13 - fxcxnsma d14,W2,c14,x14 - fxcxnpma d15,c15,W,x15 - - fpadd e0,c0,c8 - fpsub e1,c0,c8 - fpadd e2,c4,c12 - fpsub e3,c4,c12 - - fpadd e4,c1,d9 - fpsub e5,c1,d9 - fxnmsub e6,d13,C1,d5 - fxmadd e7,d13,C1,d5 - - fxcxnsma e8,C1,c10,c2 - fxcxnpma e9,C1,c10,c2 - fpsub e10,d6,d14 - fpadd e11,d6,d14 - - fpsub e12,c3,d11 - fpadd e13,c3,d11 - fxnmadd e14,d7,C1,d15 - fxnmsub e15,d7,C1,d15 ; addi 3,3,-239*8 - - fpadd f0,e0,e2 ; lfpsx a0,0,3 - fpsub f2,e0,e2 ; lfpsux a4,3,9 - fxcxnsma f1,C1,e3,e1 ; lfpsux a8,3,9 - fxcxnpma f3,C1,e3,e1 ; lfpsux a12,3,9 - - fpadd f4,e4,e6 ; lfpsux a1,3,9 - fpsub f6,e4,e6 ; stfpsx f0,0,4 - fxcxnsma f5,C1,e7,e5 ; lfpsux a5,3,9 - fxcxnpma f7,C1,e7,e5 ; lfpsux a9,3,9 - - fpadd f8,e8,e10 ; lfpsux a13,3,9 - fpsub f10,e8,e10 ; stfpsux f4,4,8 - fxcxnsma f9,C1,e11,e9 ; lfpsux a2,3,9 - fxcxnpma f11,C1,e11,e9 ; lfpsux a6,3,9 - - fpadd f12,e12,e14 ; lfpsux a10,3,9 - fpsub f14,e12,e14 ; stfpsux f8,4,8 - fxcxnsma f13,C1,e15,e13 ; lfpsux a14,3,9 - fxcxnpma f15,C1,e15,e13 ; lfpsux a3,3,9 - ; lfpsux a7,3,9 - ; stfpsux f12,4,8 - ; stfpsux f1,4,8 - ; stfpsux f5,4,8 - - -1: - ; stfpsux g9,4,8 - ; stfpsux g13,4,8 - fpadd b0,a0,a2 ; lfpsux a11,3,9 - fpsub b1,a0,a2 ; lfpsux a15,3,9 - fpadd b2,a1,a3 - fpsub b3,a1,a3 - - fpadd b4,a4,a6 ; stfpsux g2,4,8 - fpsub b5,a4,a6 - fpadd b6,a5,a7 ; stfpsux g6,4,8 - fpsub b7,a5,a7 - - fpadd b8,a8,a10 ; stfpsux g10,4,8 - fpsub b9,a8,a10 - fpadd b10,a9,a11 ; stfpsux g14,4,8 - fpsub b11,a9,a11 - - fpadd b12,a12,a14 ; stfpsux g3,4,8 - fpsub b13,a12,a14 - fpadd b14,a13,a15 ; stfpsux g7,4,8 - fpsub b15,a13,a15 - - fpadd c0,b0,b2 ; stfpsux g11,4,8 - fpsub c2,b0,b2 ; stfpsux g15,4,8 - fxcxnsma c1,C1,b3,b1 ; lfpsx W,0,7 - fxcxnpma c3,C1,b3,b1 ; lfpsx W2,7,8 - - fpadd c4,b4,b6 - fpsub c6,b4,b6 - fxcxnsma c5,C1,b7,b5 - fxcxnpma c7,C1,b7,b5 - - fpadd c8,b8,b10 - fpsub c10,b8,b10 - fxcxnsma c9,C1,b11,b9 - fxcxnpma c11,C1,b11,b9 - - fpadd c12,b12,b14 - fpsub c14,b12,b14 - fxcxnsma c13,C1,b15,b13 - fxcxnpma c15,C1,b15,b13 - - fxpmul x5,c5,W - fxpmul x6,c6,W2 - fxpmul x7,c7,W - - fxpmul x9,c9,W2 - fxpmul x11,W2,c11 - - fxpmul x13,c13,W - fxpmul x14,W2,c14 - fxpmul x15,c15,W - - fxcxnpma d5,c5,W,x5 - fxcxnpma d6,c6,W2,x6 - fxcxnsma d7,c7,W,x7 - - fxcxnpma d9,c9,W2,x9 - fxcxnsma d11,W2,c11,x11 - - fxcxnsma d13,c13,W,x13 - fxcxnsma d14,W2,c14,x14 - fxcxnpma d15,c15,W,x15 - - fpadd e0,c0,c8 - fpsub e1,c0,c8 - fpadd e2,c4,c12 - fpsub e3,c4,c12 - - fpadd e4,c1,d9 - fpsub e5,c1,d9 - fxnmsub e6,d13,C1,d5 - fxmadd e7,d13,C1,d5 - - fxcxnsma e8,C1,c10,c2 - fxcxnpma e9,C1,c10,c2 - fpsub e10,d6,d14 - fpadd e11,d6,d14 - - fpsub e12,c3,d11 - fpadd e13,c3,d11 - fxnmadd e14,d7,C1,d15 - fxnmsub e15,d7,C1,d15 - - fpadd f0,e0,e2 ; lfpsux t4,6,8 - fpsub f2,e0,e2 ; lfpsux t8,6,8 - fxcxnsma f1,C1,e3,e1 ; lfpsux t12,6,8 - fxcxnpma f3,C1,e3,e1 - - fpadd f4,e4,e6 - fpsub f6,e4,e6 ; stfpsux f0,4,8 - fxcxnsma f5,C1,e7,e5 - fxcxnpma f7,C1,e7,e5 - - fpadd f8,e8,e10 ; lfpsux t1,6,8 - fpsub f10,e8,e10 ; lfpsux t5,6,8 - fxcxnsma f9,C1,e11,e9 ; lfpsux t9,6,8 - fxcxnpma f11,C1,e11,e9 - - fpadd f12,e12,e14 ; lfpsux t13,6,8 - fpsub f14,e12,e14 ; lfpsux t2,6,8 - fxcxnsma f13,C1,e15,e13 ; lfpsux t6,6,8 - fxcxnpma f15,C1,e15,e13 ; lfpsux t10,6,8 - - - - fxpmul y4,f4,t4 - fxpmul y8,f8,t8 - fxpmul y12,f12,t12 - fxpmul y1,f1,t1 - fxpmul y5,f5,t5 ; addi 3,3,-239*8 - - fxcxnpma g4,f4,t4,y4 ; lfpsux t14,6,8 - fxcxnpma g8,f8,t8,y8 ; lfpsux t3,6,8 - fxcxnpma g12,f12,t12,y12 ; lfpsux t7,6,8 - fxcxnpma g1,f1,t1,y1 ; lfpsux t11,6,8 - fxcxnpma g5,f5,t5,y5 ; lfpsux t15,6,8 - - fxpmul y9,f9,t9 ; stfpsux g4,4,8 - fxpmul y13,f13,t13 ; stfpsux g8,4,8 - fxpmul y2,f2,t2 ; stfpsux g12,4,8 - fxpmul y6,f6,t6 ; stfpsux g1,4,8 - fxpmul y10,f10,t10 ; stfpsux g5,4,8 - - fxcxnpma g9,f9,t9,y9 ; lfpsx a0,0,3 - fxcxnpma g13,f13,t13,y13 ; lfpsux a4,3,9 - fxcxnpma g2,f2,t2,y2 ; lfpsux a8,3,9 - fxcxnpma g6,f6,t6,y6 ; lfpsux a12,3,9 - fxcxnpma g10,f10,t10,y10 ; lfpsux a1,3,9 - - fxpmul y14,f14,t14 ; lfpsux a5,3,9 - fxpmul y3,f3,t3 ; lfpsux a9,3,9 - fxpmul y7,f7,t7 ; lfpsux a13,3,9 - fxpmul y11,f11,t11 ; lfpsux a2,3,9 - fxpmul y15,f15,t15 ; lfpsux a6,3,9 - - fxcxnpma g14,f14,t14,y14 ; lfpsux a10,3,9 - fxcxnpma g3,f3,t3,y3 ; lfpsux a14,3,9 - fxcxnpma g7,f7,t7,y7 ; lfpsux a3,3,9 - fxcxnpma g11,f11,t11,y11 ; lfpsux a7,3,9 - fxcxnpma g15,f15,t15,y15 ; bdnz 1b - - ; stfpsux g9,4,8 - ; stfpsux g13,4,8 - ; stfpsux g2,4,8 - ; stfpsux g6,4,8 - ; stfpsux g10,4,8 - - ; stfpsux g14,4,8 - ; stfpsux g3,4,8 - ; stfpsux g7,4,8 - ; stfpsux g11,4,8 - ; stfpsux g15,4,8 - - - - - # second phase - - - - la 3,-255*8(4) - mr 4,3 ; lfpsx a0,0,3 - ; lfpsux a4,3,9 - ; lfpsux a8,3,9 - ; lfpsux a12,3,9 - ; lfpsux a1,3,9 - ; lfpsux a5,3,9 - ; lfpsux a9,3,9 - mtctr 0 ; lfpsux a13,3,9 - ; lfpsux a2,3,9 - ; lfpsux a6,3,9 - ; lfpsux a10,3,9 - ; lfpsux a14,3,9 - ; lfpsux a3,3,9 - ; lfpsux a7,3,9 - ; lfpsux a11,3,9 - ; lfpsux a15,3,9 - - fpadd b0,a0,a2 - fpsub b1,a0,a2 - fpadd b2,a1,a3 - fpsub b3,a1,a3 - - fpadd b4,a4,a6 - fpsub b5,a4,a6 - fpadd b6,a5,a7 - fpsub b7,a5,a7 - - fpadd b8,a8,a10 - fpsub b9,a8,a10 - fpadd b10,a9,a11 - fpsub b11,a9,a11 - - fpadd b12,a12,a14 - fpsub b13,a12,a14 - fpadd b14,a13,a15 - fpsub b15,a13,a15 - - fpadd c0,b0,b2 - fpsub c2,b0,b2 ; lfpsx W,0,7 - fxcxnsma c1,C1,b3,b1 ; lfpsx W2,7,8 - fxcxnpma c3,C1,b3,b1 - - fpadd c4,b4,b6 - fpsub c6,b4,b6 - fxcxnsma c5,C1,b7,b5 - fxcxnpma c7,C1,b7,b5 - - fpadd c8,b8,b10 - fpsub c10,b8,b10 - fxcxnsma c9,C1,b11,b9 - fxcxnpma c11,C1,b11,b9 - - fpadd c12,b12,b14 - fpsub c14,b12,b14 - fxcxnsma c13,C1,b15,b13 - fxcxnpma c15,C1,b15,b13 - - fxpmul x5,c5,W - fxpmul x6,c6,W2 - fxpmul x7,c7,W - - fxpmul x9,c9,W2 - fxpmul x11,W2,c11 - - fxpmul x13,c13,W - fxpmul x14,W2,c14 - fxpmul x15,c15,W - - fxcxnpma d5,c5,W,x5 - fxcxnpma d6,c6,W2,x6 - fxcxnsma d7,c7,W,x7 - - fxcxnpma d9,c9,W2,x9 - fxcxnsma d11,W2,c11,x11 - - fxcxnsma d13,c13,W,x13 - fxcxnsma d14,W2,c14,x14 - fxcxnpma d15,c15,W,x15 - - fpadd e0,c0,c8 - fpsub e1,c0,c8 - fpadd e2,c4,c12 - fpsub e3,c4,c12 - - fpadd e4,c1,d9 - fpsub e5,c1,d9 - fxnmsub e6,d13,C1,d5 - fxmadd e7,d13,C1,d5 - - fxcxnsma e8,C1,c10,c2 - fxcxnpma e9,C1,c10,c2 - fpsub e10,d6,d14 - fpadd e11,d6,d14 - - fpsub e12,c3,d11 - fpadd e13,c3,d11 - fxnmadd e14,d7,C1,d15 - fxnmsub e15,d7,C1,d15 ; addi 3,3,-239*8 - - fpadd f0,e0,e2 ; lfpsx a0,0,3 - fpsub f2,e0,e2 ; lfpsux a4,3,9 - fxcxnsma f1,C1,e3,e1 ; lfpsux a8,3,9 - fxcxnpma f3,C1,e3,e1 ; lfpsux a12,3,9 - - fpadd f4,e4,e6 ; lfpsux a1,3,9 - fpsub f6,e4,e6 ; stfpsx f0,0,4 - fxcxnsma f5,C1,e7,e5 ; lfpsux a5,3,9 - fxcxnpma f7,C1,e7,e5 ; lfpsux a9,3,9 - - fpadd f8,e8,e10 ; lfpsux a13,3,9 - fpsub f10,e8,e10 ; stfpsux f4,4,9 - fxcxnsma f9,C1,e11,e9 ; lfpsux a2,3,9 - fxcxnpma f11,C1,e11,e9 ; lfpsux a6,3,9 - - fpadd f12,e12,e14 ; lfpsux a10,3,9 - fpsub f14,e12,e14 ; stfpsux f8,4,9 - fxcxnsma f13,C1,e15,e13 ; lfpsux a14,3,9 - fxcxnpma f15,C1,e15,e13 ; lfpsux a3,3,9 - - -2: - ; stfpsux f12,4,9 - ; stfpsux f1,4,9 - ; stfpsux f5,4,9 - ; stfpsux f9,4,9 - ; stfpsux f13,4,9 - fpadd b0,a0,a2 ; lfpsux a7,3,9 - fpsub b1,a0,a2 ; lfpsux a11,3,9 - fpadd b2,a1,a3 ; lfpsux a15,3,9 - fpsub b3,a1,a3 - - fpadd b4,a4,a6 ; stfpsux f2,4,9 - fpsub b5,a4,a6 - fpadd b6,a5,a7 ; stfpsux f6,4,9 - fpsub b7,a5,a7 - - fpadd b8,a8,a10 ; stfpsux f10,4,9 - fpsub b9,a8,a10 - fpadd b10,a9,a11 ; stfpsux f14,4,9 - fpsub b11,a9,a11 - - fpadd b12,a12,a14 ; stfpsux f3,4,9 - fpsub b13,a12,a14 - fpadd b14,a13,a15 ; stfpsux f7,4,9 - fpsub b15,a13,a15 - - fpadd c0,b0,b2 ; stfpsux f11,4,9 - fpsub c2,b0,b2 ; stfpsux f15,4,9 - fxcxnsma c1,C1,b3,b1 ; lfpsx W,0,7 - fxcxnpma c3,C1,b3,b1 ; lfpsx W2,7,8 - - fpadd c4,b4,b6 - fpsub c6,b4,b6 - fxcxnsma c5,C1,b7,b5 - fxcxnpma c7,C1,b7,b5 - - fpadd c8,b8,b10 - fpsub c10,b8,b10 - fxcxnsma c9,C1,b11,b9 - fxcxnpma c11,C1,b11,b9 - - fpadd c12,b12,b14 - fpsub c14,b12,b14 - fxcxnsma c13,C1,b15,b13 - fxcxnpma c15,C1,b15,b13 - - fxpmul x5,c5,W - fxpmul x6,c6,W2 - fxpmul x7,c7,W - - fxpmul x9,c9,W2 - fxpmul x11,W2,c11 - - fxpmul x13,c13,W - fxpmul x14,W2,c14 - fxpmul x15,c15,W - - fxcxnpma d5,c5,W,x5 - fxcxnpma d6,c6,W2,x6 - fxcxnsma d7,c7,W,x7 - - fxcxnpma d9,c9,W2,x9 - fxcxnsma d11,W2,c11,x11 - - fxcxnsma d13,c13,W,x13 - fxcxnsma d14,W2,c14,x14 - fxcxnpma d15,c15,W,x15 - - fpadd e0,c0,c8 - fpsub e1,c0,c8 - fpadd e2,c4,c12 - fpsub e3,c4,c12 - - fpadd e4,c1,d9 - fpsub e5,c1,d9 - fxnmsub e6,d13,C1,d5 - fxmadd e7,d13,C1,d5 - - fxcxnsma e8,C1,c10,c2 - fxcxnpma e9,C1,c10,c2 - fpsub e10,d6,d14 - fpadd e11,d6,d14 - - fpsub e12,c3,d11 - fpadd e13,c3,d11 - fxnmadd e14,d7,C1,d15 ; addi 4,4,-239*8 - fxnmsub e15,d7,C1,d15 ; addi 3,3,-239*8 - - fpadd f0,e0,e2 ; lfpsx a0,0,3 - fpsub f2,e0,e2 ; lfpsux a4,3,9 - fxcxnsma f1,C1,e3,e1 ; lfpsux a8,3,9 - fxcxnpma f3,C1,e3,e1 ; lfpsux a12,3,9 - - fpadd f4,e4,e6 ; lfpsux a1,3,9 - fpsub f6,e4,e6 ; stfpsx f0,0,4 - fxcxnsma f5,C1,e7,e5 ; lfpsux a5,3,9 - fxcxnpma f7,C1,e7,e5 ; lfpsux a9,3,9 - - fpadd f8,e8,e10 ; lfpsux a13,3,9 - fpsub f10,e8,e10 ; stfpsux f4,4,9 - fxcxnsma f9,C1,e11,e9 ; lfpsux a2,3,9 - fxcxnpma f11,C1,e11,e9 ; lfpsux a6,3,9 - - fpadd f12,e12,e14 ; lfpsux a10,3,9 - fpsub f14,e12,e14 ; stfpsux f8,4,9 - fxcxnsma f13,C1,e15,e13 ; lfpsux a14,3,9 - fxcxnpma f15,C1,e15,e13 ; lfpsux a3,3,9 - ; bdnz 2b - - ; stfpsux f12,4,9 - ; stfpsux f1,4,9 - ; stfpsux f5,4,9 - ; stfpsux f9,4,9 - ; stfpsux f13,4,9 - ; stfpsux f2,4,9 - ; stfpsux f6,4,9 - ; stfpsux f10,4,9 - ; stfpsux f14,4,9 - ; stfpsux f3,4,9 - ; stfpsux f7,4,9 - ; stfpsux f11,4,9 - ; stfpsux f15,4,9 - - - li 9,16 ; lfpdx 31,0,1 - ; lfpdux 30,1,9 - ; lfpdux 29,1,9 - ; lfpdux 28,1,9 - ; lfpdux 27,1,9 - ; lfpdux 26,1,9 - ; lfpdux 25,1,9 - ; lfpdux 24,1,9 - ; lfpdux 23,1,9 - ; lfpdux 22,1,9 - ; lfpdux 21,1,9 - ; lfpdux 20,1,9 - ; lfpdux 19,1,9 - ; lfpdux 18,1,9 - ; lfpdux 17,1,9 - ; lfpdux 16,1,9 - ; lfpdux 15,1,9 - ; lfpdux 14,1,9 - - addi 1,1,16 ; blr - -#endif diff --git a/RTCP/CNProc/src/FFT_Asm.h b/RTCP/CNProc/src/FFT_Asm.h deleted file mode 100644 index f5319a3a581e3188a8b096555e231d17ea01b214..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FFT_Asm.h +++ /dev/null @@ -1,38 +0,0 @@ -//# FIR.h: header files for CN assembly -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_CNPROC_FFT_ASM_H -#define LOFAR_CNPROC_FFT_ASM_H - -#if defined HAVE_BGP -#include <Common/lofar_complex.h> - -namespace LOFAR { -namespace RTCP { - -extern "C" { - void _fft256(const fcomplex in[256], fcomplex out[256]); -}; - -} // end namespace RTCP -} // end namespace LOFAR - -#endif -#endif diff --git a/RTCP/CNProc/src/FIR.cc b/RTCP/CNProc/src/FIR.cc deleted file mode 100644 index 91d2fb034cad432dac3dc20a468472e3590ac077..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR.cc +++ /dev/null @@ -1,69 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <FIR.h> -#include <cstring> - -#include <math.h> -#include <iostream> -#include <cstring> - -#include <Common/LofarLogger.h> - - -namespace LOFAR { -namespace RTCP { - -template <typename FIR_SAMPLE_TYPE> FIR<FIR_SAMPLE_TYPE>::FIR() -{ -} - - -template <typename FIR_SAMPLE_TYPE> void FIR<FIR_SAMPLE_TYPE>::initFilter(FilterBank *filterBank, unsigned channel) -{ - itsFilterBank = filterBank; - itsChannel = channel; - itsNrTaps = filterBank->getNrTaps(); - itsWeights = filterBank->getWeights(channel); - itsCurrentIndex = 0; - - itsDelayLine.resize(itsNrTaps); - memset(itsDelayLine.data(), 0, sizeof(FIR_SAMPLE_TYPE) * itsNrTaps); -} - - -template <typename FIR_SAMPLE_TYPE> FIR_SAMPLE_TYPE FIR<FIR_SAMPLE_TYPE>::processNextSample(FIR_SAMPLE_TYPE sample) -{ - FIR_SAMPLE_TYPE *delayPtr = &itsDelayLine[0]; -#if 0 - FIR_SAMPLE_TYPE sum = sample * itsWeights[0]; - delayPtr[0] = sample; - - for (int tap = itsNrTaps; -- tap > 0;) { - sum += itsWeights[tap] * delayPtr[tap]; - delayPtr[tap] = delayPtr[tap - 1]; - } -#else - FIR_SAMPLE_TYPE sum = 0; - delayPtr[itsCurrentIndex] = sample; - - for (int tap = itsNrTaps - itsCurrentIndex; -- tap >= 0;) - sum += delayPtr[itsCurrentIndex + tap] * itsWeights[tap]; - - float *weightPtr = &itsWeights[itsNrTaps - itsCurrentIndex]; - - for (int tap = 0; tap < itsCurrentIndex; tap ++) - sum += delayPtr[tap] * weightPtr[tap]; - - if (-- itsCurrentIndex < 0) - itsCurrentIndex += itsNrTaps; -#endif - - return sum; -} - -template class FIR<float>; -template class FIR<fcomplex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/FIR.h b/RTCP/CNProc/src/FIR.h deleted file mode 100644 index beeb3d03e725ad0aa10fd922284ecb4d89301dea..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef LOFAR_CNPROC_FIR_H -#define LOFAR_CNPROC_FIR_H - -#if 0 || !defined HAVE_BGP -#define FIR_C_IMPLEMENTATION -#endif - -#include <Common/lofar_complex.h> - -#include <FilterBank.h> - -#include <Interface/Config.h> -#include <Interface/AlignedStdAllocator.h> - -#include <boost/multi_array.hpp> - -namespace LOFAR { -namespace RTCP { - -template <typename FIR_SAMPLE_TYPE> class FIR { - public: - - // We need a default constructor, since we create boost multi-arrays of FIR filters. - FIR(); - - void initFilter(FilterBank *filterBank, unsigned channel); - - FIR_SAMPLE_TYPE processNextSample(FIR_SAMPLE_TYPE sample); - - float *getWeights(); - -private: - std::vector<FIR_SAMPLE_TYPE> itsDelayLine; - FilterBank *itsFilterBank; - unsigned itsChannel; - unsigned itsNrTaps; - int itsCurrentIndex; - float *itsWeights; // pointer to weights in the filterBank -}; - -template <typename FIR_SAMPLE_TYPE> inline float *FIR<FIR_SAMPLE_TYPE>::getWeights() - -//inline float *FIR<class FIR_SAMPLE_TYPE>::getWeights() -{ - return itsWeights; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/FIR_Asm.S b/RTCP/CNProc/src/FIR_Asm.S deleted file mode 100644 index 4486a108bb460effccea0d792e203b5870b286b8..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR_Asm.S +++ /dev/null @@ -1,2806 +0,0 @@ -# FIR.S: FIR filter assembly for BG/L double Hummer # -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -#if defined HAVE_BGP -#define CN_PROCESSING -#include <Interface/Config.h> - -#define I4COMPLEX_SIZE 1 -#define I8COMPLEX_SIZE 2 -#define I16COMPLEX_SIZE 4 -#define FCOMPLEX_SIZE 8 -#define DCOMPLEX_SIZE 16 -#define FLOAT_SIZE 4 - -.global _FIR_constants_used -_FIR_constants_used: - .long NR_TAPS - .long NR_POLARIZATIONS - - -.align 5 -.global _bgl_mutex_lock -_bgl_mutex_lock: - sync -0: lwz 0,0(3) - cmpwi 0,0 - bne- 0b - sync - blr - -.global _bgl_mutex_unlock -_bgl_mutex_unlock: - sync - li 0,0 - stw 0,0(3) - sync - blr - -.global _rdtsc -_rdtsc: -0: mfspr 3,269 - mfspr 4,268 - mfspr 5,269 - cmpw 5,3 - bne- 0b - blr - -.align 5 -.global _prefetch -_prefetch: - mtctr 4 - -0: - dcbt 0,3 - add 3,3,5 - bdnz 0b - - blr - - -.align 5 -.global _transpose_4x8 -_transpose_4x8: - - mulli 8,6,3 - mtctr 5 - subi 7,7,3*FCOMPLEX_SIZE - li 9,8 - subfic 8,8,FCOMPLEX_SIZE - - sub 3,3,7 - sub 4,4,8 - -L4: - lfpsux 0,4,8 - lfpsux 1,4,6 - lfpsux 2,4,6 - lfpsux 3,4,6 - -#if !defined HAVE_BGP - dcbz 3,7 -#endif - stfpsux 0,3,7 - stfpsux 1,3,9 - stfpsux 2,3,9 - stfpsux 3,3,9 - - bdnz L4 - - blr - - -.align 5 -.global _phase_shift_and_transpose -_phase_shift_and_transpose: - -# Performs partial transpose between FFT and correlator and multiplies -# phase shifts on the fly. -# The outputs of four FFTs are transposed: two time slots for each of -# the two polarizations. - -# arguments: -# r3 : fcomplex *out -# r4 : const fcomplex *in -# r5 : const dcomplex phases[2][2]: v0, delta_v0, v1, delta_v1 -# r6 : stride -# r7 : nrChannels -# r8 : const float bandpass[nrChannels] - -# f8 : v0; -# f9 : delta_v0 -# f10 : v1 -# f11 : delta_v1 - - li 9,-16 # save registers - stfpdux 14,1,9 - stfpdux 15,1,9 - stfpdux 16,1,9 - stfpdux 17,1,9 - stfpdux 18,1,9 - - lfpdx 8,0,5 - li 9,16 - lfpdux 9,5,9 - lfpdux 10,5,9 - lfpdux 11,5,9 - - lfpsx 18,0,8 - - mulli 5,7,24 - srwi 0,7,1 # nrChannels / 2 - slwi 7,7,3 # nrChannels * FCOMPLEX_SIZE - li 10,FCOMPLEX_SIZE - mtctr 0 - - lfpsx 0,0,4 - lfpsux 1,4,7 - lfpsux 2,4,7 - lfpsux 3,4,7 - - sub 3,3,6 - subfic 5,5,8 # FCOMPLEX_SIZE*(1-3*nrChannels) - - fxpmul 12,0,8 - fxpmul 13,1,8 - fxpmul 14,2,10 - fxpmul 15,3,10 - -L5: - fxpmul 16,8,9 - fxpmul 17,10,11 - - fxcxnpma 0,0,8,12 ; lfpsux 4,4,5 - fxcxnpma 1,1,8,13 - fxcxnpma 2,2,10,14 ; lfpsux 5,4,7 - fxcxnpma 3,3,10,15 - - # correct bandpass - fxpmul 0,18,0 ; lfpsux 6,4,7 - fxpmul 1,18,1 - fxpmul 2,18,2 - fxpmul 3,18,3 ; lfpsux 7,4,7 - - fxcxnpma 8,8,9,16 -#if defined HAVE_BGP - fxcxnpma 10,10,11,17 -#else - fxcxnpma 10,10,11,17 ; dcbz 3,6 -#endif - - fxpmul 12,4,8 ; stfpsux 0,3,6 - fxpmul 13,5,8 ; stfpsux 1,3,10 - fxpmul 14,6,10 ; stfpsux 2,3,10 - fxpmul 15,7,10 ; stfpsux 3,3,10 - - fxpmul 16,8,9 - fxpmul 17,10,11 - - fxcxnpma 4,4,8,12 ; lfpsux 0,4,5 - fxcxnpma 5,5,8,13 - fxcxnpma 6,6,10,14 ; lfpsux 1,4,7 - fxcxnpma 7,7,10,15 - - fxcxnpma 8,8,9,16 ; lfpsux 2,4,7 -#if defined HAVE_BGP - fxcxnpma 10,10,11,17 -#else - fxcxnpma 10,10,11,17 ; dcbz 3,6 -#endif - - # correct bandpass - fxsmul 4,18,4 ; lfpsux 3,4,7 - fxsmul 5,18,5 - fxsmul 6,18,6 - fxsmul 7,18,7 ; lfpsux 18,8,10 - - fxpmul 12,0,8 ; stfpsux 4,3,6 - fxpmul 13,1,8 ; stfpsux 5,3,10 - fxpmul 14,2,10 ; stfpsux 6,3,10 - fxpmul 15,3,10 ; stfpsux 7,3,10 - - bdnz L5 - - lfpdx 18,0,1 # restore registers - lfpdux 17,1,9 - lfpdux 16,1,9 - lfpdux 15,1,9 - lfpdux 14,1,9 - addi 1,1,16 - - blr - - -# this is a union of all possible constant tables - -.global _ZN5LOFAR4RTCP13_FIR_fp_tableE -.comm _ZN5LOFAR4RTCP13_FIR_fp_tableE,256*256*FCOMPLEX_SIZE,32 - - - -# filter for i4complex - -.global _ZN5LOFAR4RTCP7_filterINS_5TYPES9i4complexEEEvjPKfPKT_PSt7complexIfEi -_ZN5LOFAR4RTCP7_filterINS_5TYPES9i4complexEEEvjPKfPKT_PSt7complexIfEi: -# filters all samples for one station, one polarization - -# arguments: -# r3 : nrChannels -# r4 : pointer to weights line (const fcomplex[16]) -# r5 : pointer to first sample (const i4complex[16*r7]) -# r6 : pointer to result (fcomplex *) -# r7 : number of samples / 16 - -# internally used: -# r9 : 8 -# r10 : 512 -# r11 : pointer to _ZN5LOFAR4RTCP13_FIR_fp_tableE -# r28-r31 : prefetched samples -# f0-f15 : delay line (real in primary, imaginary in secondary unit) -# f16-f23 : weights (these are real values alternately stored in primary -# and secondary units) -# f24-f29 : sums - -# The implementation works on 5 or 6 time samples concurrently, to avoid -# stalls in the double hummer. This unfortunately leads to totally -# incomprehensible code. The loop processes 16 samples at a time. -# The input is converted from i4complex to dcomplex by a table lookup. - - subi 1,1,272 # adjust stack pointer - - mtctr 7 # set number of iterations - - la 8,16(1) # save call-saved registers - li 9,DCOMPLEX_SIZE - stfpdx 14,0,8 - stfpdux 15,8,9 - stfpdux 16,8,9 - stfpdux 17,8,9 - stfpdux 18,8,9 - stfpdux 19,8,9 - stfpdux 20,8,9 - stfpdux 21,8,9 - stfpdux 22,8,9 - stfpdux 23,8,9 - stfpdux 24,8,9 - stfpdux 25,8,9 - stfpdux 26,8,9 - stfpdux 27,8,9 - stfpdux 28,8,9 - stfpdux 29,8,9 - stmw 28,0(1) # save r28 ... r31 - - # convert 15 i4complex numbers to fcomplex - slwi 10,3,2 # I4COMPLEX_SIZE*nrChannels*NR_POLARIZATIONS - ; lbzx 29,0,5 # fetch FIR history samples - lis 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@ha ; lbzux 30,5,10 - la 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@l(11);lbzux 31,5,10 - slwi 29,29,3 ; lbzux 28,5,10 - ; lfpsx 1,11,29 - slwi 30,30,3 ; lbzux 29,5,10 - ; lfpsx 2,11,30 - slwi 31,31,3 ; lbzux 30,5,10 - ; lfpsx 3,11,31 - slwi 28,28,3 ; lbzux 31,5,10 - ; lfpsx 4,11,28 - slwi 29,29,3 ; lbzux 28,5,10 - ; lfpsx 5,11,29 - slwi 30,30,3 ; lbzux 29,5,10 - ; lfpsx 6,11,30 - slwi 31,31,3 ; lbzux 30,5,10 - ; lfpsx 7,11,31 - slwi 28,28,3 ; lbzux 31,5,10 - ; lfpsx 8,11,28 - slwi 29,29,3 ; lbzux 28,5,10 - ; lfpsx 9,11,29 - slwi 30,30,3 ; lbzux 29,5,10 - ; lfpsx 10,11,30 - slwi 31,31,3 ; lbzux 30,5,10 - ; lfpsx 11,11,31 - slwi 28,28,3 ; lbzux 31,5,10 - slwi 29,29,3 ; lfpsx 12,11,28 - slwi 30,30,3 ; lfpsx 13,11,29 - slwi 31,31,3 ; lfpsx 14,11,30 - ; lfpsx 15,11,31 - - li 9,FCOMPLEX_SIZE ; lfpsx 16,0,4 # load weights line - sub 6,6,9 ; lfpsux 17,4,9 - ; lfpsux 18,4,9 - ; lfpsux 19,4,9 - ; lfpsux 20,4,9 - ; lfpsux 21,4,9 - # essentially part of loop, but interleaved with - # the stores in the tail of the loop - fxsmul 24,16,15 ; lfpsux 22,4,9 - fxpmul 25,17,15 ; lfpsux 23,4,9 - - fxsmul 26,17,15 ; lbzux 28,5,10 # prefetch samples - fxpmul 27,18,15 ; lbzux 29,5,10 - fxsmul 28,18,15 ; lbzux 30,5,10 - fxpmul 29,19,15 ; lbzux 31,5,10 -0: - # time steps 0-5 - - fxcsmadd 24,23,1,24 ; slwi 28,28,3 - fxcpmadd 25,20,9,25 ; lfpsx 0,11,28 - fxcsmadd 26,20,9,26 - fxcpmadd 27,21,9,27 - fxcsmadd 28,21,9,28 - fxcpmadd 29,22,9,29 ; lbzux 28,5,10 - - fxcpmadd 24,23,2,24 - fxcsmadd 25,23,2,25 - fxcpmadd 26,20,10,26 - fxcsmadd 27,20,10,27 - fxcpmadd 28,21,10,28 - fxcsmadd 29,21,10,29 - - fxcsmadd 24,22,3,24 ; slwi 29,29,3 - fxcpmadd 25,23,3,25 ; lfpsx 1,11,29 - fxcsmadd 26,23,3,26 - fxcpmadd 27,20,11,27 - fxcsmadd 28,20,11,28 - fxcpmadd 29,21,11,29 ; lbzux 29,5,10 - - fxcpmadd 24,22,4,24 - fxcsmadd 25,22,4,25 - fxcpmadd 26,23,4,26 - fxcsmadd 27,23,4,27 - fxcpmadd 28,20,12,28 - fxcsmadd 29,20,12,29 - - fxcsmadd 24,21,5,24 ; slwi 30,30,3 - fxcpmadd 25,22,5,25 ; lfpsx 2,11,30 - fxcsmadd 26,22,5,26 - fxcpmadd 27,23,5,27 - fxcsmadd 28,23,5,28 - fxcpmadd 29,20,13,29 ; lbzux 30,5,10 - - fxcpmadd 24,21,6,24 - fxcsmadd 25,21,6,25 - fxcpmadd 26,22,6,26 - fxcsmadd 27,22,6,27 - fxcpmadd 28,23,6,28 - fxcsmadd 29,23,6,29 - - fxcsmadd 24,20,7,24 ; slwi 31,31,3 - fxcpmadd 25,21,7,25 ; lfpsx 3,11,31 - fxcsmadd 26,21,7,26 - fxcpmadd 27,22,7,27 - fxcsmadd 28,22,7,28 - fxcpmadd 29,23,7,29 ; lbzux 31,5,10 - - fxcpmadd 24,20,8,24 - fxcsmadd 25,20,8,25 - fxcpmadd 26,21,8,26 - fxcsmadd 27,21,8,27 - fxcpmadd 28,22,8,28 - fxcsmadd 29,22,8,29 - - fxcpmadd 24,17,14,24 ; slwi 28,28,3 - fxcsmadd 25,17,14,25 ; lfpsx 4,11,28 - fxcpmadd 26,18,14,26 - fxcsmadd 27,18,14,27 - fxcpmadd 28,19,14,28 - fxcsmadd 29,19,14,29 ; lbzux 28,5,10 - - fxcpmadd 24,16,0,24 - fxcsmadd 25,16,0,25 - fxcpmadd 26,17,0,26 - fxcsmadd 27,17,0,27 - fxcpmadd 28,18,0,28 - fxcsmadd 29,18,0,29 - - fxcsmadd 24,19,9,24 ; slwi 29,29,3 - fxcpmadd 25,16,1,25 ; lfpsx 5,11,29 - fxcsmadd 26,16,1,26 - fxcpmadd 27,17,1,27 - fxcsmadd 28,17,1,28 - fxcpmadd 29,18,1,29 ; lbzux 29,5,10 - - fxcpmadd 24,19,10,24 - fxcsmadd 25,19,10,25 - fxcpmadd 26,16,2,26 - fxcsmadd 27,16,2,27 - fxcpmadd 28,17,2,28 - fxcsmadd 29,17,2,29 - - fxcsmadd 24,18,11,24 - fxcpmadd 25,19,11,25 - fxcsmadd 26,19,11,26 - fxcpmadd 27,16,3,27 - fxcsmadd 28,16,3,28 - fxcpmadd 29,17,3,29 - - fxcpmadd 24,18,12,24 - fxcsmadd 25,18,12,25 - fxcpmadd 26,19,12,26 - fxcsmadd 27,19,12,27 - fxcpmadd 28,16,4,28 - fxcsmadd 29,16,4,29 - - fxcsmadd 24,17,13,24 - fxcpmadd 25,18,13,25 - fxcsmadd 26,18,13,26 - fxcpmadd 27,19,13,27 - fxcsmadd 28,19,13,28 ; stfpsux 24,6,9 - fxcpmadd 29,16,5,29 ; stfpsux 25,6,9 - - - # time steps 6-10 - - fxsmul 24,21,11 ; stfpsux 26,6,9 - fxpmul 25,22,11 ; stfpsux 27,6,9 - fxsmul 26,22,11 ; stfpsux 28,6,9 - fxpmul 27,23,11 ; stfpsux 29,6,9 - fxsmul 28,23,11 - - fxcpmadd 24,17,4,24 - fxcsmadd 25,17,4,25 - fxcpmadd 26,18,4,26 - fxcsmadd 27,18,4,27 - fxcpmadd 28,19,4,28 - - fxcsmadd 24,20,13,24 ; slwi 30,30,3 - fxcpmadd 25,21,13,25 ; lfpsx 6,11,30 - fxcsmadd 26,21,13,26 ; lbzux 30,5,10 - fxcpmadd 27,22,13,27 - fxcsmadd 28,22,13,28 - - fxcsmadd 24,16,5,24 - fxcpmadd 25,17,5,25 - fxcsmadd 26,17,5,26 - fxcpmadd 27,18,5,27 - fxcsmadd 28,18,5,28 - - fxcpmadd 24,20,14,24 - fxcsmadd 25,20,14,25 - fxcpmadd 26,21,14,26 - fxcsmadd 27,21,14,27 - fxcpmadd 28,22,14,28 - - fxcpmadd 24,16,6,24 - fxcsmadd 25,16,6,25 - fxcpmadd 26,17,6,26 - fxcsmadd 27,17,6,27 - fxcpmadd 28,18,6,28 ; slwi 31,31,3 - - fxcsmadd 24,23,7,24 ; lfpsx 7,11,31 - fxcpmadd 25,20,15,25 ; lbzux 31,5,10 - fxcsmadd 26,20,15,26 - fxcpmadd 27,21,15,27 - fxcsmadd 28,21,15,28 - - fxcsmadd 24,19,15,24 - fxcpmadd 25,16,7,25 - fxcsmadd 26,16,7,26 - fxcpmadd 27,17,7,27 - fxcsmadd 28,17,7,28 - - fxcpmadd 24,23,8,24 ; slwi 28,28,3 - fxcsmadd 25,23,8,25 ; lfpsx 8,11,28 - fxcpmadd 26,20,0,26 ; lbzux 28,5,10 - fxcsmadd 27,20,0,27 - fxcpmadd 28,21,0,28 - - fxcpmadd 24,19,0,24 - fxcsmadd 25,19,0,25 - fxcpmadd 26,16,8,26 - fxcsmadd 27,16,8,27 - fxcpmadd 28,17,8,28 - - fxcsmadd 24,17,3,24 - fxcpmadd 25,18,3,25 - fxcsmadd 26,18,3,26 - fxcpmadd 27,19,3,27 - fxcsmadd 28,19,3,28 - - fxcsmadd 24,22,9,24 - fxcpmadd 25,23,9,25 ; slwi 29,29,3 - fxcsmadd 26,23,9,26 ; lfpsx 9,11,29 - fxcpmadd 27,20,1,27 ; lbzux 29,5,10 - fxcsmadd 28,20,1,28 - - fxcsmadd 24,18,1,24 - fxcpmadd 25,19,1,25 - fxcsmadd 26,19,1,26 - fxcpmadd 27,16,9,27 - fxcsmadd 28,16,9,28 - - fxcpmadd 24,21,12,24 - fxcsmadd 25,21,12,25 - fxcpmadd 26,22,12,26 - fxcsmadd 27,22,12,27 - fxcpmadd 28,23,12,28 - - fxcpmadd 24,22,10,24 - fxcsmadd 25,22,10,25 - fxcpmadd 26,23,10,26 ; slwi 30,30,3 - fxcsmadd 27,23,10,27 ; lfpsx 10,11,30 - fxcpmadd 28,20,2,28 ; lbzux 30,5,10 - - fxcpmadd 24,18,2,24 - fxcsmadd 25,18,2,25 - fxcpmadd 26,19,2,26 - fxcsmadd 27,19,2,27 - fxcpmadd 28,16,10,28 - - - # time steps 11-15 - ; stfpsux 24,6,9 - fxsmul 24,21,0 ; stfpsux 25,6,9 - fxpmul 25,22,0 ; stfpsux 26,6,9 - fxsmul 26,22,0 ; stfpsux 27,6,9 - fxpmul 27,23,0 ; stfpsux 28,6,9 - fxsmul 28,23,0 - - fxcpmadd 24,17,9,24 - fxcsmadd 25,17,9,25 - fxcpmadd 26,18,9,26 - fxcsmadd 27,18,9,27 - fxcpmadd 28,19,9,28 - - fxcsmadd 24,20,2,24 ; slwi 31,31,3 - fxcpmadd 25,21,2,25 ; lfpsx 11,11,31 - fxcsmadd 26,21,2,26 ; lbzux 31,5,10 - fxcpmadd 27,22,2,27 - fxcsmadd 28,22,2,28 - - fxcsmadd 24,16,10,24 - fxcpmadd 25,17,10,25 - fxcsmadd 26,17,10,26 - fxcpmadd 27,18,10,27 - fxcsmadd 28,18,10,28 - - fxcpmadd 24,20,3,24 - fxcsmadd 25,20,3,25 - fxcpmadd 26,21,3,26 - fxcsmadd 27,21,3,27 - fxcpmadd 28,22,3,28 - - fxcpmadd 24,16,11,24 - fxcsmadd 25,16,11,25 - fxcpmadd 26,17,11,26 - fxcsmadd 27,17,11,27 - fxcpmadd 28,18,11,28 ; slwi 28,28,3 - - fxcsmadd 24,23,12,24 ; lfpsx 12,11,28 - fxcpmadd 25,20,4,25 ; lbzux 28,5,10 - fxcsmadd 26,20,4,26 - fxcpmadd 27,21,4,27 - fxcsmadd 28,21,4,28 - - fxcsmadd 24,19,4,24 - fxcpmadd 25,16,12,25 - fxcsmadd 26,16,12,26 - fxcpmadd 27,17,12,27 - fxcsmadd 28,17,12,28 - - fxcpmadd 24,23,13,24 ; slwi 29,29,3 - fxcsmadd 25,23,13,25 ; lfpsx 13,11,29 - fxcpmadd 26,20,5,26 ; lbzux 29,5,10 - fxcsmadd 27,20,5,27 - fxcpmadd 28,21,5,28 - - fxcsmadd 24,17,8,24 - fxcpmadd 25,18,8,25 - fxcsmadd 26,18,8,26 - fxcpmadd 27,19,8,27 - fxcsmadd 28,19,8,28 - - fxcpmadd 24,19,5,24 - fxcsmadd 25,19,5,25 - fxcpmadd 26,16,13,26 - fxcsmadd 27,16,13,27 - fxcpmadd 28,17,13,28 - - fxcsmadd 24,22,14,24 - fxcpmadd 25,23,14,25 ; slwi 30,30,3 - fxcsmadd 26,23,14,26 ; lfpsx 14,11,30 - fxcpmadd 27,20,6,27 ; lbzux 30,5,10 - fxcsmadd 28,20,6,28 - - fxcsmadd 24,18,6,24 - fxcpmadd 25,19,6,25 - fxcsmadd 26,19,6,26 - fxcpmadd 27,16,14,27 - fxcsmadd 28,16,14,28 - - fxcpmadd 24,21,1,24 - fxcsmadd 25,21,1,25 - fxcpmadd 26,22,1,26 - fxcsmadd 27,22,1,27 - fxcpmadd 28,23,1,28 - - fxcpmadd 24,22,15,24 - fxcsmadd 25,22,15,25 - fxcpmadd 26,23,15,26 ; slwi 31,31,3 - fxcsmadd 27,23,15,27 ; lfpsx 15,11,31 - fxcpmadd 28,20,7,28 ; lbzux 31,5,10 - - fxcpmadd 24,18,7,24 - fxcsmadd 25,18,7,25 - fxcpmadd 26,19,7,26 - fxcsmadd 27,19,7,27 - fxcpmadd 28,16,15,28 - - fxpmul 29,19,15 ; stfpsux 24,6,9 - fxsmul 24,16,15 ; stfpsux 25,6,9 - fxpmul 25,17,15 ; stfpsux 26,6,9 - fxsmul 26,17,15 ; stfpsux 27,6,9 - fxpmul 27,18,15 ; stfpsux 28,6,9 - fxsmul 28,18,15 - - bdnz 0b - - la 8,16(1) # restore call-saved registers - li 9,DCOMPLEX_SIZE - - lfpdx 14,0,8 - lfpdux 15,8,9 - lfpdux 16,8,9 - lfpdux 17,8,9 - lfpdux 18,8,9 - lfpdux 19,8,9 - lfpdux 20,8,9 - lfpdux 21,8,9 - lfpdux 22,8,9 - lfpdux 23,8,9 - lfpdux 24,8,9 - lfpdux 25,8,9 - lfpdux 26,8,9 - lfpdux 27,8,9 - lfpdux 28,8,9 - lfpdux 29,8,9 - lmw 28,0(1) # restore r28 ... r31 - - addi 1,1,272 # restore stack pointer - blr # return - - -# filter for i8complex - -.global _ZN5LOFAR4RTCP7_filterISt7complexIaEEEvjPKfPKT_PS2_IfEi -_ZN5LOFAR4RTCP7_filterISt7complexIaEEEvjPKfPKT_PS2_IfEi: -# filters all samples for one station, one polarization - -# arguments: -# r3 : nrChannels -# r4 : pointer to weights line (const fcomplex[16]) -# r5 : pointer to first sample (const i8complex[16*r7]) -# r6 : pointer to result (fcomplex *) -# r7 : number of samples / 16 - -# internally used: -# r9 : 8 -# r10 : 1024 -# r11 : ptr to constant table -# r28-r31 : prefetched samples -# f0-f15 : delay line (real in primary, imaginary in secondary unit) -# f16-f23 : weights (these are real values alternately stored in primary -# and secondary units) -# f24-f29 : sums - -# The implementation works on 5 or 6 time samples concurrently, to avoid -# stalls in the double hummer. This unfortunately leads to totally -# incomprehensible code. The loop processes 16 samples at a time. -# The input is converted from int8complex to dcomplex by black magic, -# making the code even harder to understand. - - mtctr 7 # set number of iterations - - li 9,-DCOMPLEX_SIZE - stfpdux 14,1,9 # save call-saved registers - stfpdux 15,1,9 - stfpdux 16,1,9 - stfpdux 17,1,9 - stfpdux 18,1,9 - stfpdux 19,1,9 - stfpdux 20,1,9 - stfpdux 21,1,9 - stfpdux 22,1,9 - stfpdux 23,1,9 - stfpdux 24,1,9 - stfpdux 25,1,9 - stfpdux 26,1,9 - stfpdux 27,1,9 - stfpdux 28,1,9 - stfpdux 29,1,9 - stfpdux 30,1,9 - stfpdux 31,1,9 - - subi 1,1,16 - stmw 28,0(1) # save r28 ... r31 - - lis 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@ha - li 9,FCOMPLEX_SIZE - la 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@l(11) - slwi 10,3,2 #I8COMPLEX_SIZE*nrChannels*NR_POLARIZATIONS - subi 6,6,FCOMPLEX_SIZE - - -#if 0 - lfpsx 1,0,3 # load delay line - lfpsux 2,3,9 - lfpsux 3,3,9 - lfpsux 4,3,9 - lfpsux 5,3,9 - lfpsux 6,3,9 - lfpsux 7,3,9 - lfpsux 8,3,9 - lfpsux 9,3,9 - lfpsux 10,3,9 - lfpsux 11,3,9 - lfpsux 12,3,9 - lfpsux 13,3,9 - lfpsux 14,3,9 - lfpsux 15,3,9 -#endif - - # convert 15 i8complex numbers to fcomplex - lhzx 29,0,5 # fetch FIR history samples - lhzux 30,5,10 - lhzux 31,5,10 - lhzux 28,5,10 - - rlwinm 12,29,3,13,28 - lfpsx 1,11,12 - lhzux 29,5,10 - - rlwinm 12,30,3,13,28 - lfpsx 2,11,12 - lhzux 30,5,10 - - rlwinm 12,31,3,13,28 - lfpsx 3,11,12 - lhzux 31,5,10 - - rlwinm 12,28,3,13,28 - lfpsx 4,11,12 - lhzux 28,5,10 - - rlwinm 12,29,3,13,28 - lfpsx 5,11,12 - lhzux 29,5,10 - - rlwinm 12,30,3,13,28 - lfpsx 6,11,12 - lhzux 30,5,10 - - rlwinm 12,31,3,13,28 - lfpsx 7,11,12 - lhzux 31,5,10 - - rlwinm 12,28,3,13,28 - lfpsx 8,11,12 - lhzux 28,5,10 - - rlwinm 12,29,3,13,28 - lfpsx 9,11,12 - lhzux 29,5,10 - - rlwinm 12,30,3,13,28 - lfpsx 10,11,12 - lhzux 30,5,10 - - rlwinm 12,31,3,13,28 - lfpsx 11,11,12 - lhzux 31,5,10 - - rlwinm 12,28,3,13,28 - lfpsx 12,11,12 - lhzux 28,5,10 # prefetch samples before entering loop - - rlwinm 12,29,3,13,28 - lfpsx 13,11,12 - lhzux 29,5,10 - - rlwinm 12,30,3,13,28 - lfpsx 14,11,12 - lhzux 30,5,10 - - rlwinm 12,31,3,13,28 - lfpsx 15,11,12 - lhzux 31,5,10 - - ; lfpsx 16,0,4 # load weights line - ; lfpsux 17,4,9 - ; lfpsux 18,4,9 - ; lfpsux 19,4,9 - ; lfpsux 20,4,9 - ; lfpsux 21,4,9 - ; lfpsux 22,4,9 - ; lfpsux 23,4,9 - - # essentially part of loop, but interleaved with - # the stores in the tail of the loop - fxpmul 24,20,8 - fxsmul 25,20,8 - fxpmul 26,21,8 - fxsmul 27,21,8 - fxpmul 28,22,8 - fxsmul 29,22,8 - fxpmul 30,23,8 - fxsmul 31,23,8 - -0: - # time steps 0-7 - - # load 0 - - fxcsmadd 24,23,1,24 ; rlwinm 12,28,3,13,28 - # load 1 - fxcpmadd 25,20,9,25 ; lfpsx 0,11,12 - fxcsmadd 26,20,9,26 ; lhzux 28,5,10 - fxcpmadd 27,21,9,27 - fxcsmadd 28,21,9,28 - fxcpmadd 29,22,9,29 - fxcsmadd 30,22,9,30 - fxcpmadd 31,23,9,31 - - fxcpmadd 24,23,2,24 ; rlwinm 12,29,3,13,28 - fxcsmadd 25,23,2,25 ; lfpsx 1,11,12 - # load 2 - fxcpmadd 26,20,10,26 ; lhzux 29,5,10 - fxcsmadd 27,20,10,27 - fxcpmadd 28,21,10,28 - fxcsmadd 29,21,10,29 - fxcpmadd 30,22,10,30 - fxcsmadd 31,22,10,31 - - fxcsmadd 24,22,3,24 ; rlwinm 12,30,3,13,28 - fxcpmadd 25,23,3,25 ; lfpsx 2,11,12 - fxcsmadd 26,23,3,26 ; lhzux 30,5,10 - # load 3 - fxcpmadd 27,20,11,27 - fxcsmadd 28,20,11,28 - fxcpmadd 29,21,11,29 - fxcsmadd 30,21,11,30 - fxcpmadd 31,22,11,31 - - fxcpmadd 24,22,4,24 ; rlwinm 12,31,3,13,28 - fxcsmadd 25,22,4,25 ; lfpsx 3,11,12 - fxcpmadd 26,23,4,26 ; lhzux 31,5,10 - fxcsmadd 27,23,4,27 - # load 4 - fxcpmadd 28,20,12,28 - fxcsmadd 29,20,12,29 - fxcpmadd 30,21,12,30 - fxcsmadd 31,21,12,31 - - fxcsmadd 24,21,5,24 - fxcpmadd 25,22,5,25 - fxcsmadd 26,22,5,26 - fxcpmadd 27,23,5,27 - fxcsmadd 28,23,5,28 - # load 5 - fxcpmadd 29,20,13,29 - fxcsmadd 30,20,13,30 - fxcpmadd 31,21,13,31 - - fxcpmadd 24,21,6,24 - fxcsmadd 25,21,6,25 - fxcpmadd 26,22,6,26 - fxcsmadd 27,22,6,27 - fxcpmadd 28,23,6,28 - fxcsmadd 29,23,6,29 - # load 6 - fxcpmadd 30,20,14,30 - fxcsmadd 31,20,14,31 - - fxcsmadd 24,20,7,24 - fxcpmadd 25,21,7,25 - fxcsmadd 26,21,7,26 - fxcpmadd 27,22,7,27 ; rlwinm 12,28,3,13,28 - fxcsmadd 28,22,7,28 ; lfpsx 4,11,12 - fxcpmadd 29,23,7,29 ; lhzux 28,5,10 - fxcsmadd 30,23,7,30 - # load 7 - fxcpmadd 31,20,15,31 - - # after loads - fxcpmadd 24,16,0,24 - fxcsmadd 25,16,0,25 - fxcpmadd 26,17,0,26 - fxcsmadd 27,17,0,27 - fxcpmadd 28,18,0,28 - fxcsmadd 29,18,0,29 - fxcpmadd 30,19,0,30 - fxcsmadd 31,19,0,31 ; rlwinm 12,29,3,13,28 - - fxcsmadd 24,19,9,24 ; lfpsx 5,11,12 - fxcpmadd 25,16,1,25 ; lhzux 29,5,10 - fxcsmadd 26,16,1,26 - fxcpmadd 27,17,1,27 - fxcsmadd 28,17,1,28 - fxcpmadd 29,18,1,29 - fxcsmadd 30,18,1,30 - fxcpmadd 31,19,1,31 - - fxcpmadd 24,19,10,24 - fxcsmadd 25,19,10,25 - fxcpmadd 26,16,2,26 - fxcsmadd 27,16,2,27 ; rlwinm 12,30,3,13,28 - fxcpmadd 28,17,2,28 ; lfpsx 6,11,12 - fxcsmadd 29,17,2,29 ; lhzux 30,5,10 - fxcpmadd 30,18,2,30 - fxcsmadd 31,18,2,31 - - fxcsmadd 24,18,11,24 - fxcpmadd 25,19,11,25 - fxcsmadd 26,19,11,26 - fxcpmadd 27,16,3,27 - fxcsmadd 28,16,3,28 - fxcpmadd 29,17,3,29 - fxcsmadd 30,17,3,30 - fxcpmadd 31,18,3,31 ; rlwinm 12,31,3,13,28 - - fxcpmadd 24,18,12,24 ; lfpsx 7,11,12 - fxcsmadd 25,18,12,25 ; lhzux 31,5,10 - fxcpmadd 26,19,12,26 - fxcsmadd 27,19,12,27 - fxcpmadd 28,16,4,28 - fxcsmadd 29,16,4,29 - fxcpmadd 30,17,4,30 - fxcsmadd 31,17,4,31 - - fxcsmadd 24,17,13,24 - fxcpmadd 25,18,13,25 - fxcsmadd 26,18,13,26 - fxcpmadd 27,19,13,27 - fxcsmadd 28,19,13,28 - fxcpmadd 29,16,5,29 - fxcsmadd 30,16,5,30 - fxcpmadd 31,17,5,31 ; rlwinm 12,28,3,13,28 - - fxcpmadd 24,17,14,24 ; lfpsx 8,11,12 - fxcsmadd 25,17,14,25 ; lhzux 28,5,10 - fxcpmadd 26,18,14,26 - fxcsmadd 27,18,14,27 - fxcpmadd 28,19,14,28 - fxcsmadd 29,19,14,29 - fxcpmadd 30,16,6,30 - fxcsmadd 31,16,6,31 - - fxcsmadd 24,16,15,24 - fxcpmadd 25,17,15,25 - fxcsmadd 26,17,15,26 - fxcpmadd 27,18,15,27 - fxcsmadd 28,18,15,28 - fxcpmadd 29,19,15,29 ; stfpsux 24,6,9 - fxcsmadd 30,19,15,30 ; stfpsux 25,6,9 - fxcpmadd 31,16,7,31 ; stfpsux 26,6,9 - - - # time steps 8-15 - fxpmul 24,20,0 - fxsmul 25,20,0 - fxpmul 26,21,0 ; stfpsux 27,6,9 - fxsmul 27,21,0 ; stfpsux 28,6,9 - fxpmul 28,22,0 ; stfpsux 29,6,9 - fxsmul 29,22,0 ; stfpsux 30,6,9 - fxpmul 30,23,0 ; stfpsux 31,6,9 - fxsmul 31,23,0 - - # already loaded 8 - - fxcsmadd 24,23,9,24 - # load 9 - fxcpmadd 25,20,1,25 - fxcsmadd 26,20,1,26 - fxcpmadd 27,21,1,27 - fxcsmadd 28,21,1,28 - fxcpmadd 29,22,1,29 - fxcsmadd 30,22,1,30 - fxcpmadd 31,23,1,31 - - fxcpmadd 24,23,10,24 - fxcsmadd 25,23,10,25 - # load 10 - fxcpmadd 26,20,2,26 - fxcsmadd 27,20,2,27 - fxcpmadd 28,21,2,28 - fxcsmadd 29,21,2,29 - fxcpmadd 30,22,2,30 - fxcsmadd 31,22,2,31 ; rlwinm 12,29,3,13,28 - - fxcsmadd 24,22,11,24 ; lfpsx 9,11,12 - fxcpmadd 25,23,11,25 ; lhzux 29,5,10 - fxcsmadd 26,23,11,26 - # load 11 - fxcpmadd 27,20,3,27 - fxcsmadd 28,20,3,28 - fxcpmadd 29,21,3,29 - fxcsmadd 30,21,3,30 - fxcpmadd 31,22,3,31 - - fxcpmadd 24,22,12,24 - fxcsmadd 25,22,12,25 - fxcpmadd 26,23,12,26 - fxcsmadd 27,23,12,27 ; rlwinm 12,30,3,13,28 - # load 12 - fxcpmadd 28,20,4,28 ; lfpsx 10,11,12 - fxcsmadd 29,20,4,29 ; lhzux 30,5,10 - fxcpmadd 30,21,4,30 - fxcsmadd 31,21,4,31 - - fxcsmadd 24,21,13,24 - fxcpmadd 25,22,13,25 - fxcsmadd 26,22,13,26 - fxcpmadd 27,23,13,27 - fxcsmadd 28,23,13,28 - # load 13 - fxcpmadd 29,20,5,29 - fxcsmadd 30,20,5,30 - fxcpmadd 31,21,5,31 ; rlwinm 12,31,3,13,28 - - fxcpmadd 24,21,14,24 ; lfpsx 11,11,12 - fxcsmadd 25,21,14,25 ; lhzux 31,5,10 - fxcpmadd 26,22,14,26 - fxcsmadd 27,22,14,27 - fxcpmadd 28,23,14,28 - fxcsmadd 29,23,14,29 - # load 14 - fxcpmadd 30,20,6,30 - fxcsmadd 31,20,6,31 - - fxcsmadd 24,20,15,24 - fxcpmadd 25,21,15,25 - fxcsmadd 26,21,15,26 - fxcpmadd 27,22,15,27 ; rlwinm 12,28,3,13,28 - fxcsmadd 28,22,15,28 ; lfpsx 12,11,12 - fxcpmadd 29,23,15,29 ; lhzux 28,5,10 - fxcsmadd 30,23,15,30 - # load 15 - fxcpmadd 31,20,7,31 - - # after loads - - fxcpmadd 24,16,8,24 - fxcsmadd 25,16,8,25 - fxcpmadd 26,17,8,26 - fxcsmadd 27,17,8,27 - fxcpmadd 28,18,8,28 - fxcsmadd 29,18,8,29 - fxcpmadd 30,19,8,30 - fxcsmadd 31,19,8,31 ; rlwinm 12,29,3,13,28 - - fxcsmadd 24,19,1,24 ; lfpsx 13,11,12 - fxcpmadd 25,16,9,25 ; lhzux 29,5,10 - fxcsmadd 26,16,9,26 - fxcpmadd 27,17,9,27 - fxcsmadd 28,17,9,28 - fxcpmadd 29,18,9,29 - fxcsmadd 30,18,9,30 - fxcpmadd 31,19,9,31 - - fxcpmadd 24,19,2,24 - fxcsmadd 25,19,2,25 - fxcpmadd 26,16,10,26 - fxcsmadd 27,16,10,27 ; rlwinm 12,30,3,13,28 - fxcpmadd 28,17,10,28 ; lfpsx 14,11,12 - fxcsmadd 29,17,10,29 ; lhzux 30,5,10 - fxcpmadd 30,18,10,30 - fxcsmadd 31,18,10,31 - - fxcsmadd 24,18,3,24 - fxcpmadd 25,19,3,25 - fxcsmadd 26,19,3,26 - fxcpmadd 27,16,11,27 - fxcsmadd 28,16,11,28 - fxcpmadd 29,17,11,29 - fxcsmadd 30,17,11,30 - fxcpmadd 31,18,11,31 ; rlwinm 12,31,3,13,28 - - fxcpmadd 24,18,4,24 ; lfpsx 15,11,12 - fxcsmadd 25,18,4,25 ; lhzux 31,5,10 - fxcpmadd 26,19,4,26 - fxcsmadd 27,19,4,27 - fxcpmadd 28,16,12,28 - fxcsmadd 29,16,12,29 - fxcpmadd 30,17,12,30 - fxcsmadd 31,17,12,31 - - fxcsmadd 24,17,5,24 - fxcpmadd 25,18,5,25 - fxcsmadd 26,18,5,26 - fxcpmadd 27,19,5,27 - fxcsmadd 28,19,5,28 - fxcpmadd 29,16,13,29 - fxcsmadd 30,16,13,30 - fxcpmadd 31,17,13,31 - - fxcpmadd 24,17,6,24 - fxcsmadd 25,17,6,25 - fxcpmadd 26,18,6,26 - fxcsmadd 27,18,6,27 - fxcpmadd 28,19,6,28 - fxcsmadd 29,19,6,29 - fxcpmadd 30,16,14,30 - fxcsmadd 31,16,14,31 - - fxcsmadd 24,16,7,24 - fxcpmadd 25,17,7,25 - fxcsmadd 26,17,7,26 - fxcpmadd 27,18,7,27 - fxcsmadd 28,18,7,28 - fxcpmadd 29,19,7,29 ; stfpsux 24,6,9 - fxcsmadd 30,19,7,30 ; stfpsux 25,6,9 - fxcpmadd 31,16,15,31 ; stfpsux 26,6,9 - - fxpmul 24,20,8 # part of next loop - fxsmul 25,20,8 - fxpmul 26,21,8 ; stfpsux 27,6,9 - fxsmul 27,21,8 ; stfpsux 28,6,9 - fxpmul 28,22,8 ; stfpsux 29,6,9 - fxsmul 29,22,8 ; stfpsux 30,6,9 - fxpmul 30,23,8 ; stfpsux 31,6,9 - fxsmul 31,23,8 - - bdnz 0b - -#if 0 - addi 3,3,-120 # store delay line - stfpsux 1,3,9 - stfpsux 2,3,9 - stfpsux 3,3,9 - stfpsux 4,3,9 - stfpsux 5,3,9 - stfpsux 6,3,9 - stfpsux 7,3,9 - stfpsux 8,3,9 - stfpsux 9,3,9 - stfpsux 10,3,9 - stfpsux 11,3,9 - stfpsux 12,3,9 - stfpsux 13,3,9 - stfpsux 14,3,9 - stfpsux 15,3,9 -#endif - - li 9,DCOMPLEX_SIZE # restore call-saved registers - lmw 28,0(1) # restore r28 ... r31 - - #addi 1,1,16 - lfpdux 31,1,9 - lfpdux 30,1,9 - lfpdux 29,1,9 - lfpdux 28,1,9 - lfpdux 27,1,9 - lfpdux 26,1,9 - lfpdux 25,1,9 - lfpdux 24,1,9 - lfpdux 23,1,9 - lfpdux 22,1,9 - lfpdux 21,1,9 - lfpdux 20,1,9 - lfpdux 19,1,9 - lfpdux 18,1,9 - lfpdux 17,1,9 - lfpdux 16,1,9 - lfpdux 15,1,9 - lfpdux 14,1,9 - - addi 1,1,16 # restore stack pointer - blr # return - -#if 0 - -# filter for i16complex - -.global _ZN5LOFAR4RTCP7_filterISt7complexIsEEEvjPKfPKT_PS2_IfEi -_ZN5LOFAR4RTCP7_filterISt7complexIsEEEvjPKfPKT_PS2_IfEi: -# filters all samples for one station, one polarization - -# arguments: -# r3 : nrChannels -# r4 : pointer to weights line (const fcomplex[16]) -# r5 : pointer to first sample (const i16complex[16*r7]) -# r6 : pointer to result (fcomplex *) -# r7 : number of samples / 16 - -# internally used: -# r9 : 8 -# r10 : 2048 -# r11 : ptr to constant table -# r28-r31 : prefetched samples -# f0-f15 : delay line (real in primary, imaginary in secondary unit) -# f16-f23 : weights (these are real values alternately stored in primary -# and secondary units) -# f24-f29 : sums - -# The implementation works on 5 or 6 time samples concurrently, to avoid -# stalls in the double hummer. This unfortunately leads to totally -# incomprehensible code. The loop processes 16 samples at a time. -# The input is converted from int16complex to dcomplex by black magic, -# making the code even harder to understand. - - mtctr 7 # set number of iterations - - li 9,-DCOMPLEX_SIZE - stfpdux 14,1,9 # save call-saved registers - stfpdux 15,1,9 - stfpdux 16,1,9 - stfpdux 17,1,9 - stfpdux 18,1,9 - stfpdux 19,1,9 - stfpdux 20,1,9 - stfpdux 21,1,9 - stfpdux 22,1,9 - stfpdux 23,1,9 - stfpdux 24,1,9 - stfpdux 25,1,9 - stfpdux 26,1,9 - stfpdux 27,1,9 - stfpdux 28,1,9 - stfpdux 29,1,9 - stfpdux 30,1,9 - stfpdux 31,1,9 - - subi 1,1,16 - stmw 28,0(1) # save r28 ... r31 - - lis 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@ha - li 9,FCOMPLEX_SIZE - la 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@l(11) - slwi 10,3,3 # I16COMPLEX_SIZE*nrChannels*NR_POLARIZATIONS - subi 6,6,FCOMPLEX_SIZE - - - # convert 15 i16complex numbers to fcomplex - lwzx 29,0,5 # fetch FIR history samples - lwzux 30,5,10 - lwzux 31,5,10 - lwzux 28,5,10 - - rlwinm 12,29,2,14,29 - lfssx 1,11,12 - rlwinm 12,29,18,14,29 - lfsx 1,11,12 - lwzux 29,5,10 - - rlwinm 12,30,2,14,29 - lfssx 2,11,12 - rlwinm 12,30,18,14,29 - lfsx 2,11,12 - lwzux 30,5,10 - - rlwinm 12,31,2,14,29 - lfssx 3,11,12 - rlwinm 12,31,18,14,29 - lfsx 3,11,12 - lwzux 31,5,10 - - rlwinm 12,28,2,14,29 - lfssx 4,11,12 - rlwinm 12,28,18,14,29 - lfsx 4,11,12 - lwzux 28,5,10 - - rlwinm 12,29,2,14,29 - lfssx 5,11,12 - rlwinm 12,29,18,14,29 - lfsx 5,11,12 - lwzux 29,5,10 - - rlwinm 12,30,2,14,29 - lfssx 6,11,12 - rlwinm 12,30,18,14,29 - lfsx 6,11,12 - lwzux 30,5,10 - - rlwinm 12,31,2,14,29 - lfssx 7,11,12 - rlwinm 12,31,18,14,29 - lfsx 7,11,12 - lwzux 31,5,10 - - rlwinm 12,28,2,14,29 - lfssx 8,11,12 - rlwinm 12,28,18,14,29 - lfsx 8,11,12 - lwzux 28,5,10 - - rlwinm 12,29,2,14,29 - lfssx 9,11,12 - rlwinm 12,29,18,14,29 - lfsx 9,11,12 - lwzux 29,5,10 - - rlwinm 12,30,2,14,29 - lfssx 10,11,12 - rlwinm 12,30,18,14,29 - lfsx 10,11,12 - lwzux 30,5,10 - - rlwinm 12,31,2,14,29 - lfssx 11,11,12 - rlwinm 12,31,18,14,29 - lfsx 11,11,12 - lwzux 31,5,10 - - rlwinm 12,28,2,14,29 - lfssx 12,11,12 - rlwinm 12,28,18,14,29 - lfsx 12,11,12 - lwzux 28,5,10 # prefetch samples before entering loop - - rlwinm 12,29,2,14,29 - lfssx 13,11,12 - rlwinm 12,29,18,14,29 - lfsx 13,11,12 - lwzux 29,5,10 - - rlwinm 12,30,2,14,29 - lfssx 14,11,12 - rlwinm 12,30,18,14,29 - lfsx 14,11,12 - lwzux 30,5,10 - - rlwinm 12,31,2,14,29 - lfssx 15,11,12 - rlwinm 12,31,18,14,29 - lfsx 15,11,12 - lwzux 31,5,10 - - ; lfpsx 16,0,4 # load weights line - ; lfpsux 17,4,9 - ; lfpsux 18,4,9 - ; lfpsux 19,4,9 - ; lfpsux 20,4,9 - ; lfpsux 21,4,9 - ; lfpsux 22,4,9 - ; lfpsux 23,4,9 - - # essentially part of loop, but interleaved with - # the stores in the tail of the loop - fxpmul 24,20,8 - fxsmul 25,20,8 - fxpmul 26,21,8 - fxsmul 27,21,8 - fxpmul 28,22,8 - fxsmul 29,22,8 - fxpmul 30,23,8 - fxsmul 31,23,8 - -0: - # time steps 0-7 - - # load 0 - - fxcsmadd 24,23,1,24 ; rlwinm 12,28,2,14,29 - # load 1 - fxcpmadd 25,20,9,25 ; lfssx 0,11,12 - fxcsmadd 26,20,9,26 ; rlwinm 12,28,18,14,29 - fxcpmadd 27,21,9,27 ; lfsx 0,11,12 - fxcsmadd 28,21,9,28 ; lwzux 28,5,10 - fxcpmadd 29,22,9,29 - fxcsmadd 30,22,9,30 - fxcpmadd 31,23,9,31 - - fxcpmadd 24,23,2,24 ; rlwinm 12,29,2,14,29 - fxcsmadd 25,23,2,25 ; lfssx 1,11,12 - # load 2 - fxcpmadd 26,20,10,26 ; rlwinm 12,29,18,14,29 - fxcsmadd 27,20,10,27 ; lfsx 1,11,12 - fxcpmadd 28,21,10,28 ; lwzux 29,5,10 - fxcsmadd 29,21,10,29 - fxcpmadd 30,22,10,30 - fxcsmadd 31,22,10,31 - - fxcsmadd 24,22,3,24 ; rlwinm 12,30,2,14,29 - fxcpmadd 25,23,3,25 ; lfssx 2,11,12 - fxcsmadd 26,23,3,26 ; rlwinm 12,30,18,14,29 - # load 3 - fxcpmadd 27,20,11,27 ; lfsx 2,11,12 - fxcsmadd 28,20,11,28 ; lwzux 30,5,10 - fxcpmadd 29,21,11,29 - fxcsmadd 30,21,11,30 - fxcpmadd 31,22,11,31 - - fxcpmadd 24,22,4,24 ; rlwinm 12,31,2,14,29 - fxcsmadd 25,22,4,25 ; lfssx 3,11,12 - fxcpmadd 26,23,4,26 ; rlwinm 12,31,18,14,29 - fxcsmadd 27,23,4,27 ; lfsx 3,11,12 - # load 4 - fxcpmadd 28,20,12,28 ; lwzux 31,5,10 - fxcsmadd 29,20,12,29 - fxcpmadd 30,21,12,30 - fxcsmadd 31,21,12,31 - - fxcsmadd 24,21,5,24 - fxcpmadd 25,22,5,25 - fxcsmadd 26,22,5,26 - fxcpmadd 27,23,5,27 - fxcsmadd 28,23,5,28 - # load 5 - fxcpmadd 29,20,13,29 - fxcsmadd 30,20,13,30 - fxcpmadd 31,21,13,31 - - fxcpmadd 24,21,6,24 - fxcsmadd 25,21,6,25 - fxcpmadd 26,22,6,26 - fxcsmadd 27,22,6,27 - fxcpmadd 28,23,6,28 - fxcsmadd 29,23,6,29 - # load 6 - fxcpmadd 30,20,14,30 - fxcsmadd 31,20,14,31 - - fxcsmadd 24,20,7,24 - fxcpmadd 25,21,7,25 - fxcsmadd 26,21,7,26 - fxcpmadd 27,22,7,27 ; rlwinm 12,28,2,14,29 - fxcsmadd 28,22,7,28 ; lfssx 4,11,12 - fxcpmadd 29,23,7,29 - fxcsmadd 30,23,7,30 - # load 7 - fxcpmadd 31,20,15,31 - - # after loads - fxcpmadd 24,16,0,24 ; rlwinm 12,28,18,14,29 - fxcsmadd 25,16,0,25 ; lfsx 4,11,12 - fxcpmadd 26,17,0,26 - fxcsmadd 27,17,0,27 ; lwzux 28,5,10 - fxcpmadd 28,18,0,28 - fxcsmadd 29,18,0,29 - fxcpmadd 30,19,0,30 - fxcsmadd 31,19,0,31 ; rlwinm 12,29,2,14,29 - - fxcsmadd 24,19,9,24 ; lfssx 5,11,12 - fxcpmadd 25,16,1,25 - fxcsmadd 26,16,1,26 - fxcpmadd 27,17,1,27 - fxcsmadd 28,17,1,28 ; rlwinm 12,29,18,14,29 - fxcpmadd 29,18,1,29 ; lfsx 5,11,12 - fxcsmadd 30,18,1,30 - fxcpmadd 31,19,1,31 ; lwzux 29,5,10 - - fxcpmadd 24,19,10,24 - fxcsmadd 25,19,10,25 - fxcpmadd 26,16,2,26 - fxcsmadd 27,16,2,27 ; rlwinm 12,30,2,14,29 - fxcpmadd 28,17,2,28 ; lfssx 6,11,12 - fxcsmadd 29,17,2,29 - fxcpmadd 30,18,2,30 - fxcsmadd 31,18,2,31 - - fxcsmadd 24,18,11,24 ; rlwinm 12,30,18,14,29 - fxcpmadd 25,19,11,25 ; lfsx 6,11,12 - fxcsmadd 26,19,11,26 - fxcpmadd 27,16,3,27 ; lwzux 30,5,10 - fxcsmadd 28,16,3,28 - fxcpmadd 29,17,3,29 - fxcsmadd 30,17,3,30 - fxcpmadd 31,18,3,31 ; rlwinm 12,31,2,14,29 - - fxcpmadd 24,18,12,24 ; lfssx 7,11,12 - fxcsmadd 25,18,12,25 - fxcpmadd 26,19,12,26 - fxcsmadd 27,19,12,27 - fxcpmadd 28,16,4,28 ; rlwinm 12,31,18,14,29 - fxcsmadd 29,16,4,29 ; lfsx 7,11,12 - fxcpmadd 30,17,4,30 - fxcsmadd 31,17,4,31 ; lwzux 31,5,10 - - fxcsmadd 24,17,13,24 - fxcpmadd 25,18,13,25 - fxcsmadd 26,18,13,26 - fxcpmadd 27,19,13,27 - fxcsmadd 28,19,13,28 - fxcpmadd 29,16,5,29 - fxcsmadd 30,16,5,30 - fxcpmadd 31,17,5,31 ; rlwinm 12,28,2,14,29 - - fxcpmadd 24,17,14,24 ; lfssx 8,11,12 - fxcsmadd 25,17,14,25 - fxcpmadd 26,18,14,26 - fxcsmadd 27,18,14,27 - fxcpmadd 28,19,14,28 ; rlwinm 12,28,18,14,29 - fxcsmadd 29,19,14,29 ; lfsx 8,11,12 - fxcpmadd 30,16,6,30 - fxcsmadd 31,16,6,31 ; lwzux 28,5,10 - - fxcsmadd 24,16,15,24 - fxcpmadd 25,17,15,25 - fxcsmadd 26,17,15,26 - fxcpmadd 27,18,15,27 - fxcsmadd 28,18,15,28 - fxcpmadd 29,19,15,29 ; stfpsux 24,6,9 - fxcsmadd 30,19,15,30 ; stfpsux 25,6,9 - fxcpmadd 31,16,7,31 ; stfpsux 26,6,9 - - - # time steps 8-15 - fxpmul 24,20,0 - fxsmul 25,20,0 - fxpmul 26,21,0 ; stfpsux 27,6,9 - fxsmul 27,21,0 ; stfpsux 28,6,9 - fxpmul 28,22,0 ; stfpsux 29,6,9 - fxsmul 29,22,0 ; stfpsux 30,6,9 - fxpmul 30,23,0 ; stfpsux 31,6,9 - fxsmul 31,23,0 - - # already loaded 8 - - fxcsmadd 24,23,9,24 - # load 9 - fxcpmadd 25,20,1,25 - fxcsmadd 26,20,1,26 - fxcpmadd 27,21,1,27 - fxcsmadd 28,21,1,28 - fxcpmadd 29,22,1,29 - fxcsmadd 30,22,1,30 - fxcpmadd 31,23,1,31 - - fxcpmadd 24,23,10,24 - fxcsmadd 25,23,10,25 - # load 10 - fxcpmadd 26,20,2,26 - fxcsmadd 27,20,2,27 - fxcpmadd 28,21,2,28 - fxcsmadd 29,21,2,29 - fxcpmadd 30,22,2,30 - fxcsmadd 31,22,2,31 ; rlwinm 12,29,2,14,29 - - fxcsmadd 24,22,11,24 ; lfssx 9,11,12 - fxcpmadd 25,23,11,25 - fxcsmadd 26,23,11,26 - # load 11 - fxcpmadd 27,20,3,27 - fxcsmadd 28,20,3,28 ; rlwinm 12,29,18,14,29 - fxcpmadd 29,21,3,29 ; lfsx 9,11,12 - fxcsmadd 30,21,3,30 - fxcpmadd 31,22,3,31 ; lwzux 29,5,10 - - fxcpmadd 24,22,12,24 - fxcsmadd 25,22,12,25 - fxcpmadd 26,23,12,26 - fxcsmadd 27,23,12,27 ; rlwinm 12,30,2,14,29 - # load 12 - fxcpmadd 28,20,4,28 ; lfssx 10,11,12 - fxcsmadd 29,20,4,29 - fxcpmadd 30,21,4,30 - fxcsmadd 31,21,4,31 - - fxcsmadd 24,21,13,24 ; rlwinm 12,30,18,14,29 - fxcpmadd 25,22,13,25 ; lfsx 10,11,12 - fxcsmadd 26,22,13,26 - fxcpmadd 27,23,13,27 ; lwzux 30,5,10 - fxcsmadd 28,23,13,28 - # load 13 - fxcpmadd 29,20,5,29 - fxcsmadd 30,20,5,30 - fxcpmadd 31,21,5,31 ; rlwinm 12,31,2,14,29 - - fxcpmadd 24,21,14,24 ; lfssx 11,11,12 - fxcsmadd 25,21,14,25 - fxcpmadd 26,22,14,26 - fxcsmadd 27,22,14,27 - fxcpmadd 28,23,14,28 ; rlwinm 12,31,18,14,29 - fxcsmadd 29,23,14,29 ; lfsx 11,11,12 - # load 14 - fxcpmadd 30,20,6,30 - fxcsmadd 31,20,6,31 ; lwzux 31,5,10 - - fxcsmadd 24,20,15,24 - fxcpmadd 25,21,15,25 - fxcsmadd 26,21,15,26 - fxcpmadd 27,22,15,27 ; rlwinm 12,28,2,14,29 - fxcsmadd 28,22,15,28 ; lfssx 12,11,12 - fxcpmadd 29,23,15,29 - fxcsmadd 30,23,15,30 - # load 15 - fxcpmadd 31,20,7,31 - - # after loads - - fxcpmadd 24,16,8,24 ; rlwinm 12,28,18,14,29 - fxcsmadd 25,16,8,25 ; lfsx 12,11,12 - fxcpmadd 26,17,8,26 - fxcsmadd 27,17,8,27 ; lwzux 28,5,10 - fxcpmadd 28,18,8,28 - fxcsmadd 29,18,8,29 - fxcpmadd 30,19,8,30 - fxcsmadd 31,19,8,31 ; rlwinm 12,29,2,14,29 - - fxcsmadd 24,19,1,24 ; lfssx 13,11,12 - fxcpmadd 25,16,9,25 - fxcsmadd 26,16,9,26 - fxcpmadd 27,17,9,27 - fxcsmadd 28,17,9,28 ; rlwinm 12,29,18,14,29 - fxcpmadd 29,18,9,29 ; lfsx 13,11,12 - fxcsmadd 30,18,9,30 - fxcpmadd 31,19,9,31 ; lwzux 29,5,10 - - fxcpmadd 24,19,2,24 - fxcsmadd 25,19,2,25 - fxcpmadd 26,16,10,26 - fxcsmadd 27,16,10,27 ; rlwinm 12,30,2,14,29 - fxcpmadd 28,17,10,28 ; lfssx 14,11,12 - fxcsmadd 29,17,10,29 - fxcpmadd 30,18,10,30 - fxcsmadd 31,18,10,31 - - fxcsmadd 24,18,3,24 ; rlwinm 12,30,18,14,29 - fxcpmadd 25,19,3,25 ; lfsx 14,11,12 - fxcsmadd 26,19,3,26 - fxcpmadd 27,16,11,27 ; lwzux 30,5,10 - fxcsmadd 28,16,11,28 - fxcpmadd 29,17,11,29 - fxcsmadd 30,17,11,30 - fxcpmadd 31,18,11,31 ; rlwinm 12,31,2,14,29 - - fxcpmadd 24,18,4,24 ; lfssx 15,11,12 - fxcsmadd 25,18,4,25 - fxcpmadd 26,19,4,26 - fxcsmadd 27,19,4,27 - fxcpmadd 28,16,12,28 ; rlwinm 12,31,18,14,29 - fxcsmadd 29,16,12,29 ; lfsx 15,11,12 - fxcpmadd 30,17,12,30 - fxcsmadd 31,17,12,31 ; lwzux 31,5,10 - - fxcsmadd 24,17,5,24 - fxcpmadd 25,18,5,25 - fxcsmadd 26,18,5,26 - fxcpmadd 27,19,5,27 - fxcsmadd 28,19,5,28 - fxcpmadd 29,16,13,29 - fxcsmadd 30,16,13,30 - fxcpmadd 31,17,13,31 - - fxcpmadd 24,17,6,24 - fxcsmadd 25,17,6,25 - fxcpmadd 26,18,6,26 - fxcsmadd 27,18,6,27 - fxcpmadd 28,19,6,28 - fxcsmadd 29,19,6,29 - fxcpmadd 30,16,14,30 - fxcsmadd 31,16,14,31 - - fxcsmadd 24,16,7,24 - fxcpmadd 25,17,7,25 - fxcsmadd 26,17,7,26 - fxcpmadd 27,18,7,27 - fxcsmadd 28,18,7,28 - fxcpmadd 29,19,7,29 ; stfpsux 24,6,9 - fxcsmadd 30,19,7,30 ; stfpsux 25,6,9 - fxcpmadd 31,16,15,31 ; stfpsux 26,6,9 - - fxpmul 24,20,8 # part of next loop - fxsmul 25,20,8 - fxpmul 26,21,8 ; stfpsux 27,6,9 - fxsmul 27,21,8 ; stfpsux 28,6,9 - fxpmul 28,22,8 ; stfpsux 29,6,9 - fxsmul 29,22,8 ; stfpsux 30,6,9 - fxpmul 30,23,8 ; stfpsux 31,6,9 - fxsmul 31,23,8 - - bdnz 0b - - li 9,DCOMPLEX_SIZE # restore call-saved registers - lmw 28,0(1) # restore r28 ... r31 - - #addi 1,1,16 - lfpdux 31,1,9 - lfpdux 30,1,9 - lfpdux 29,1,9 - lfpdux 28,1,9 - lfpdux 27,1,9 - lfpdux 26,1,9 - lfpdux 25,1,9 - lfpdux 24,1,9 - lfpdux 23,1,9 - lfpdux 22,1,9 - lfpdux 21,1,9 - lfpdux 20,1,9 - lfpdux 19,1,9 - lfpdux 18,1,9 - lfpdux 17,1,9 - lfpdux 16,1,9 - lfpdux 15,1,9 - lfpdux 14,1,9 - - addi 1,1,16 # restore stack pointer - blr # return - -#else - -# filter for i16complex - -.align 5 -sub_value: - .long 0x43300000,0x00008000,0x43300000,0x00008000 - - -.global _ZN5LOFAR4RTCP7_filterISt7complexIsEEEvjPKfPKT_PS2_IfEi -_ZN5LOFAR4RTCP7_filterISt7complexIsEEEvjPKfPKT_PS2_IfEi: -# filters all samples for one station, one polarization - -# arguments: -# r3 : nrChannels -# r4 : pointer to weights line (const fcomplex[16]) -# r5 : pointer to first sample (const i16complex[16*r7]) -# r6 : pointer to result (fcomplex *) -# r7 : number of samples / 16 - -# internally used: -# r9 : 8 -# r10 : 2048 -# r11 : 8 -# r12 : 0x00800080 -# r28-r31 : prefetched samples -# f0-f15 : delay line (real in primary, imaginary in secondary unit) -# f16-f23 : weights (these are real values alternately stored in primary -# and secondary units) -# f24-f29 : sums -# f31 : sub_value - -# The implementation works on 5 or 6 time samples concurrently, to avoid -# stalls in the double hummer. This unfortunately leads to totally -# incomprehensible code. The loop processes 16 samples at a time. -# The input is converted from int16complex to dcomplex by black magic, -# making the code even harder to understand. - - mtctr 7 # set number of iterations - - li 9,-DCOMPLEX_SIZE - stfpdux 14,1,9 # save call-saved registers - stfpdux 15,1,9 - stfpdux 16,1,9 - stfpdux 17,1,9 - stfpdux 18,1,9 - stfpdux 19,1,9 - stfpdux 20,1,9 - stfpdux 21,1,9 - stfpdux 22,1,9 - stfpdux 23,1,9 - stfpdux 24,1,9 - stfpdux 25,1,9 - stfpdux 26,1,9 - stfpdux 27,1,9 - stfpdux 28,1,9 - stfpdux 29,1,9 - stfpdux 30,1,9 - stfpdux 31,1,9 - - subi 1,1,48 - stmw 28,16(1) # save r28 ... r31 - - lis 8,sub_value@ha # load sub_values - lis 12,0x0080 - la 8,sub_value@l(8) - lfpdx 31,0,8 - - - # Avoid that int->fp conversion area is in the same cache way as where - # the samples come from. There are two places that can be used where - # the conversion can take place: at 0(sp) or 32(sp). r8, r7, and r11 - # contain offsets (w.r.t. sp) to this area. Note that 16(sp) stores - # r28 ... r31 - - xor 8,1,5 - andi. 0,8,0x01E0 - li 9,FCOMPLEX_SIZE - mfcr 8 - slwi 10,3,3 # I16COMPLEX_SIZE*nrChannels*NR_POLARIZATIONS - rlwinm 8,8,8,26,26 - ori 12,12,0x0080 - sub 6,6,9 - - addi 7,8,14 - addi 11,8,6 - stfpdx 31,8,1 # initialize int->fp conversion area - -#if 0 - lfpsx 1,0,3 # load delay line - lfpsux 2,3,9 - lfpsux 3,3,9 - lfpsux 4,3,9 - lfpsux 5,3,9 - lfpsux 6,3,9 - lfpsux 7,3,9 - lfpsux 8,3,9 - lfpsux 9,3,9 - lfpsux 10,3,9 - lfpsux 11,3,9 - lfpsux 12,3,9 - lfpsux 13,3,9 - lfpsux 14,3,9 - lfpsux 15,3,9 -#endif - - # convert 15 i16complex numbers to fcomplex - lwzx 29,0,5 # fetch FIR history samples - lwzux 30,5,10 - lwzux 31,5,10 - lwzux 28,5,10 - - xor 29,29,12 - sthbrx 29,7,1 - srawi 29,29,16 - sthbrx 29,11,1 - lfpdx 1,8,1 - - lwzux 29,5,10 - - xor 30,30,12 - sthbrx 30,7,1 - srawi 30,30,16 - sthbrx 30,11,1 - lfpdx 2,8,1 - - lwzux 30,5,10 - - xor 31,31,12 - sthbrx 31,7,1 - srawi 31,31,16 - sthbrx 31,11,1 - lfpdx 3,8,1 - - lwzux 31,5,10 - - xor 28,28,12 - sthbrx 28,7,1 - srawi 28,28,16 - sthbrx 28,11,1 - lfpdx 4,8,1 - - lwzux 28,5,10 - - xor 29,29,12 - sthbrx 29,7,1 - srawi 29,29,16 - sthbrx 29,11,1 - lfpdx 5,8,1 - - lwzux 29,5,10 - - xor 30,30,12 - sthbrx 30,7,1 - srawi 30,30,16 - sthbrx 30,11,1 - lfpdx 6,8,1 - - lwzux 30,5,10 - - xor 31,31,12 - sthbrx 31,7,1 - srawi 31,31,16 - sthbrx 31,11,1 - lfpdx 7,8,1 - - lwzux 31,5,10 - - xor 28,28,12 - sthbrx 28,7,1 - srawi 28,28,16 - sthbrx 28,11,1 - lfpdx 8,8,1 - - lwzux 28,5,10 - - xor 29,29,12 - sthbrx 29,7,1 - srawi 29,29,16 - sthbrx 29,11,1 - lfpdx 9,8,1 - - lwzux 29,5,10 - - xor 30,30,12 - sthbrx 30,7,1 - srawi 30,30,16 - sthbrx 30,11,1 - lfpdx 10,8,1 - - lwzux 30,5,10 - - xor 31,31,12 - sthbrx 31,7,1 - srawi 31,31,16 - sthbrx 31,11,1 - lfpdx 11,8,1 - - lwzux 31,5,10 - - xor 28,28,12 - sthbrx 28,7,1 - srawi 28,28,16 - sthbrx 28,11,1 - lfpdx 12,8,1 - - xor 29,29,12 - sthbrx 29,7,1 - srawi 29,29,16 - sthbrx 29,11,1 - lfpdx 13,8,1 - - xor 30,30,12 - sthbrx 30,7,1 - srawi 30,30,16 - sthbrx 30,11,1 - lfpdx 14,8,1 - - xor 31,31,12 - sthbrx 31,7,1 - srawi 31,31,16 - sthbrx 31,11,1 - lfpdx 15,8,1 - - fpsub 1,1,31 ; lfpsx 16,0,4 # load weights line - fpsub 2,2,31 ; lfpsux 17,4,9 - fpsub 3,3,31 ; lfpsux 18,4,9 - fpsub 4,4,31 ; lfpsux 19,4,9 - fpsub 5,5,31 ; lfpsux 20,4,9 - fpsub 6,6,31 ; lfpsux 21,4,9 - fpsub 7,7,31 ; lfpsux 22,4,9 - fpsub 8,8,31 ; lfpsux 23,4,9 - fpsub 9,9,31 ; lwzux 28,5,10 # prefetch samples before entering loop - fpsub 10,10,31 ; lwzux 29,5,10 - fpsub 11,11,31 ; lwzux 30,5,10 - fpsub 12,12,31 ; lwzux 31,5,10 - fpsub 13,13,31 - fpsub 14,14,31 - fpsub 15,15,31 - - # essentially part of loop, but interleaved with - # the stores in the tail of the loop - fxsmul 24,16,15 - fxpmul 25,17,15 - fxsmul 26,17,15 - fxpmul 27,18,15 - fxsmul 28,18,15 - fxpmul 29,19,15 - -0: - # time steps 0-5 - - fxcsmadd 24,23,1,24 ; xor 28,28,12 - fxcpmadd 25,20,9,25 ; sthbrx 28,7,1 - fxcsmadd 26,20,9,26 ; srawi 28,28,16 - fxcpmadd 27,21,9,27 ; sthbrx 28,11,1 - fxcsmadd 28,21,9,28 - fxcpmadd 29,22,9,29 - - fxcpmadd 24,23,2,24 - fxcsmadd 25,23,2,25 ; lfpdx 30,8,1 - fxcpmadd 26,20,10,26 - fxcsmadd 27,20,10,27 - fxcpmadd 28,21,10,28 - fxcsmadd 29,21,10,29 ; lwzux 28,5,10 - - fxcsmadd 24,22,3,24 - fxcpmadd 25,23,3,25 - fxcsmadd 26,23,3,26 - fxcpmadd 27,20,11,27 ; xor 29,29,12 - fxcsmadd 28,20,11,28 ; sthbrx 29,7,1 - fxcpmadd 29,21,11,29 ; srawi 29,29,16 - - fxcpmadd 24,22,4,24 ; sthbrx 29,11,1 - fxcsmadd 25,22,4,25 - fxcpmadd 26,23,4,26 - fxcsmadd 27,23,4,27 - fpsub 0,30,31 - fxcpmadd 28,20,12,28 ; lfpdx 30,8,1 - fxcsmadd 29,20,12,29 - - fxcsmadd 24,21,5,24 - fxcpmadd 25,22,5,25 - fxcsmadd 26,22,5,26 ; lwzux 29,5,10 - fxcpmadd 27,23,5,27 - fxcsmadd 28,23,5,28 - fxcpmadd 29,20,13,29 - - fxcpmadd 24,21,6,24 ; xor 30,30,12 - fxcsmadd 25,21,6,25 ; sthbrx 30,7,1 - fxcpmadd 26,22,6,26 ; srawi 30,30,16 - fxcsmadd 27,22,6,27 ; sthbrx 30,11,1 - fxcpmadd 28,23,6,28 - fxcsmadd 29,23,6,29 - - fxcsmadd 24,20,7,24 - fxcpmadd 25,21,7,25 - fpsub 1,30,31 - fxcsmadd 26,21,7,26 ; lfpdx 30,8,1 - fxcpmadd 27,22,7,27 - fxcsmadd 28,22,7,28 - fxcpmadd 29,23,7,29 ; lwzux 30,5,10 - - fxcpmadd 24,20,8,24 - fxcsmadd 25,20,8,25 - fxcpmadd 26,21,8,26 - fxcsmadd 27,21,8,27 - fxcpmadd 28,22,8,28 - fxcsmadd 29,22,8,29 ; xor 31,31,12 - - fxcpmadd 24,17,14,24 ; sthbrx 31,7,1 - fxcsmadd 25,17,14,25 - fxcpmadd 26,18,14,26 - fxcsmadd 27,18,14,27 ; srawi 31,31,16 - fxcpmadd 28,19,14,28 ; sthbrx 31,11,1 - fxcsmadd 29,19,14,29 - - fxcpmadd 24,16,0,24 - fxcsmadd 25,16,0,25 - fpsub 2,30,31 - fxcpmadd 26,17,0,26 ; lfpdx 30,8,1 - fxcsmadd 27,17,0,27 - fxcpmadd 28,18,0,28 - fxcsmadd 29,18,0,29 ; lwzux 31,5,10 - - fpsub 3,30,31 ; xor 28,28,12 - fxcsmadd 24,19,9,24 ; sthbrx 28,7,1 - fxcpmadd 25,16,1,25 - fxcsmadd 26,16,1,26 - fxcpmadd 27,17,1,27 ; srawi 28,28,16 - fxcsmadd 28,17,1,28 ; sthbrx 28,11,1 - fxcpmadd 29,18,1,29 - - fxcpmadd 24,19,10,24 - fxcsmadd 25,19,10,25 - fxcpmadd 26,16,2,26 ; lfpdx 30,8,1 - fxcsmadd 27,16,2,27 - fxcpmadd 28,17,2,28 - fxcsmadd 29,17,2,29 ; lwzux 28,5,10 - - fpsub 4,30,31 ; xor 29,29,12 - fxcsmadd 24,18,11,24 ; sthbrx 29,7,1 - fxcpmadd 25,19,11,25 - fxcsmadd 26,19,11,26 - fxcpmadd 27,16,3,27 ; srawi 29,29,16 - fxcsmadd 28,16,3,28 ; sthbrx 29,11,1 - fxcpmadd 29,17,3,29 - - fxcpmadd 24,18,12,24 - fxcsmadd 25,18,12,25 - fxcpmadd 26,19,12,26 ; lfpdx 30,8,1 - fxcsmadd 27,19,12,27 - fxcpmadd 28,16,4,28 - fxcsmadd 29,16,4,29 ; lwzux 29,5,10 - - fpsub 5,30,31 - fxcsmadd 24,17,13,24 - fxcpmadd 25,18,13,25 - fxcsmadd 26,18,13,26 - fxcpmadd 27,19,13,27 - fxcsmadd 28,19,13,28 - fxcpmadd 29,16,5,29 - ; stfpsux 24,6,9 - ; stfpsux 25,6,9 - - - # time steps 6-10 - - fxsmul 24,21,11 ; stfpsux 26,6,9 - fxpmul 25,22,11 ; stfpsux 27,6,9 - fxsmul 26,22,11 ; stfpsux 28,6,9 - fxpmul 27,23,11 ; stfpsux 29,6,9 - fxsmul 28,23,11 - - fxcpmadd 24,17,4,24 - fxcsmadd 25,17,4,25 - fxcpmadd 26,18,4,26 - fxcsmadd 27,18,4,27 ; xor 30,30,12 - fxcpmadd 28,19,4,28 ; sthbrx 30,7,1 - - fxcsmadd 24,20,13,24 - fxcpmadd 25,21,13,25 - fxcsmadd 26,21,13,26 ; srawi 30,30,16 - fxcpmadd 27,22,13,27 ; sthbrx 30,11,1 - fxcsmadd 28,22,13,28 - - fxcsmadd 24,16,5,24 - fxcpmadd 25,17,5,25 ; lfpdx 30,8,1 - fxcsmadd 26,17,5,26 - fxcpmadd 27,18,5,27 ; lwzux 30,5,10 - fxcsmadd 28,18,5,28 - - fxcpmadd 24,20,14,24 ; xor 31,31,12 - fpsub 6,30,31 ; sthbrx 31,7,1 - fxcsmadd 25,20,14,25 - fxcpmadd 26,21,14,26 - fxcsmadd 27,21,14,27 ; srawi 31,31,16 - fxcpmadd 28,22,14,28 ; sthbrx 31,11,1 - - fxcpmadd 24,16,6,24 - fxcsmadd 25,16,6,25 - fxcpmadd 26,17,6,26 ; lfpdx 30,8,1 - fxcsmadd 27,17,6,27 - fxcpmadd 28,18,6,28 ; lwzux 31,5,10 - - fxcsmadd 24,23,7,24 - fxcpmadd 25,20,15,25 ; xor 28,28,12 - fpsub 7,30,31 ; sthbrx 28,7,1 - fxcsmadd 26,20,15,26 - fxcpmadd 27,21,15,27 - fxcsmadd 28,21,15,28 ; srawi 28,28,16 - - fxcsmadd 24,19,15,24 ; sthbrx 28,11,1 - fxcpmadd 25,16,7,25 - fxcsmadd 26,16,7,26 - fxcpmadd 27,17,7,27 ; lfpdx 30,8,1 - fxcsmadd 28,17,7,28 - - fxcpmadd 24,23,8,24 ; lwzux 28,5,10 - fxcsmadd 25,23,8,25 - fxcpmadd 26,20,0,26 ; xor 29,29,12 - fpsub 8,30,31 ; sthbrx 29,7,1 - fxcsmadd 27,20,0,27 - fxcpmadd 28,21,0,28 - - fxcpmadd 24,19,0,24 ; srawi 29,29,16 - fxcsmadd 25,19,0,25 ; sthbrx 29,11,1 - fxcpmadd 26,16,8,26 - fxcsmadd 27,16,8,27 - fxcpmadd 28,17,8,28 ; lfpdx 30,8,1 - - fxcsmadd 24,17,3,24 - fxcpmadd 25,18,3,25 - fxcsmadd 26,18,3,26 - fxcpmadd 27,19,3,27 - fxcsmadd 28,19,3,28 - - fxcsmadd 24,22,9,24 - fxcpmadd 25,23,9,25 ; lwzux 29,5,10 - fxcsmadd 26,23,9,26 - fxcpmadd 27,20,1,27 ; xor 30,30,12 - fpsub 9,30,31 ; sthbrx 30,7,1 - fxcsmadd 28,20,1,28 - - fxcsmadd 24,18,1,24 - fxcpmadd 25,19,1,25 ; srawi 30,30,16 - fxcsmadd 26,19,1,26 ; sthbrx 30,11,1 - fxcpmadd 27,16,9,27 - fxcsmadd 28,16,9,28 - - fxcpmadd 24,21,12,24 - fxcsmadd 25,21,12,25 - fxcpmadd 26,22,12,26 - fxcsmadd 27,22,12,27 - fxcpmadd 28,23,12,28 - - fxcpmadd 24,22,10,24 ; lfpdx 30,8,1 - fxcsmadd 25,22,10,25 - fxcpmadd 26,23,10,26 ; lwzux 30,5,10 - fxcsmadd 27,23,10,27 - fxcpmadd 28,20,2,28 - fpsub 10,30,31 - - fxcpmadd 24,18,2,24 - fxcsmadd 25,18,2,25 - fxcpmadd 26,19,2,26 - fxcsmadd 27,19,2,27 - fxcpmadd 28,16,10,28 - - - # time steps 11-15 - ; stfpsux 24,6,9 - fxsmul 24,21,0 ; stfpsux 25,6,9 - fxpmul 25,22,0 ; stfpsux 26,6,9 - fxsmul 26,22,0 ; stfpsux 27,6,9 - fxpmul 27,23,0 ; stfpsux 28,6,9 - fxsmul 28,23,0 - - fxcpmadd 24,17,9,24 - fxcsmadd 25,17,9,25 - fxcpmadd 26,18,9,26 - fxcsmadd 27,18,9,27 ; xor 31,31,12 - fxcpmadd 28,19,9,28 ; sthbrx 31,7,1 - - fxcsmadd 24,20,2,24 - fxcpmadd 25,21,2,25 - fxcsmadd 26,21,2,26 ; srawi 31,31,16 - fxcpmadd 27,22,2,27 ; sthbrx 31,11,1 - fxcsmadd 28,22,2,28 - - fxcsmadd 24,16,10,24 - fxcpmadd 25,17,10,25 ; lfpdx 30,8,1 - fxcsmadd 26,17,10,26 - fxcpmadd 27,18,10,27 ; lwzux 31,5,10 - fxcsmadd 28,18,10,28 - - fxcpmadd 24,20,3,24 ; xor 28,28,12 - fpsub 11,30,31 ; sthbrx 28,7,1 - fxcsmadd 25,20,3,25 - fxcpmadd 26,21,3,26 - fxcsmadd 27,21,3,27 ; srawi 28,28,16 - fxcpmadd 28,22,3,28 ; sthbrx 28,11,1 - - fxcpmadd 24,16,11,24 - fxcsmadd 25,16,11,25 - fxcpmadd 26,17,11,26 ; lfpdx 30,8,1 - fxcsmadd 27,17,11,27 - fxcpmadd 28,18,11,28 ; lwzux 28,5,10 - - fxcsmadd 24,23,12,24 - fxcpmadd 25,20,4,25 ; xor 29,29,12 - fpsub 12,30,31 ; sthbrx 29,7,1 - fxcsmadd 26,20,4,26 - fxcpmadd 27,21,4,27 - fxcsmadd 28,21,4,28 ; srawi 29,29,16 - - fxcsmadd 24,19,4,24 ; sthbrx 29,11,1 - fxcpmadd 25,16,12,25 - fxcsmadd 26,16,12,26 - fxcpmadd 27,17,12,27 ; lfpdx 30,8,1 - fxcsmadd 28,17,12,28 - - fxcpmadd 24,23,13,24 ; lwzux 29,5,10 - fxcsmadd 25,23,13,25 - fxcpmadd 26,20,5,26 ; xor 30,30,12 - fpsub 13,30,31 ; sthbrx 30,7,1 - fxcsmadd 27,20,5,27 - fxcpmadd 28,21,5,28 - - fxcsmadd 24,17,8,24 - fxcpmadd 25,18,8,25 - fxcsmadd 26,18,8,26 - fxcpmadd 27,19,8,27 - fxcsmadd 28,19,8,28 - - fxcpmadd 24,19,5,24 ; srawi 30,30,16 - fxcsmadd 25,19,5,25 ; sthbrx 30,11,1 - fxcpmadd 26,16,13,26 - fxcsmadd 27,16,13,27 - fxcpmadd 28,17,13,28 ; lfpdx 30,8,1 - - fxcsmadd 24,22,14,24 - fxcpmadd 25,23,14,25 ; lwzux 30,5,10 - fxcsmadd 26,23,14,26 - fxcpmadd 27,20,6,27 ; xor 31,31,12 - fpsub 14,30,31 ; sthbrx 31,7,1 - fxcsmadd 28,20,6,28 - - fxcsmadd 24,18,6,24 - fxcpmadd 25,19,6,25 ; srawi 31,31,16 - fxcsmadd 26,19,6,26 ; sthbrx 31,11,1 - fxcpmadd 27,16,14,27 - fxcsmadd 28,16,14,28 - - fxcpmadd 24,21,1,24 - fxcsmadd 25,21,1,25 - fxcpmadd 26,22,1,26 - fxcsmadd 27,22,1,27 - fxcpmadd 28,23,1,28 - - fxcpmadd 24,22,15,24 ; lfpdx 30,8,1 - fxcsmadd 25,22,15,25 - fxcpmadd 26,23,15,26 ; lwzux 31,5,10 - fxcsmadd 27,23,15,27 - fxcpmadd 28,20,7,28 - fpsub 15,30,31 - - fxcpmadd 24,18,7,24 - fxcsmadd 25,18,7,25 - fxcpmadd 26,19,7,26 - fxcsmadd 27,19,7,27 - fxcpmadd 28,16,15,28 - - fxpmul 29,19,15 ; stfpsux 24,6,9 - fxsmul 24,16,15 ; stfpsux 25,6,9 - fxpmul 25,17,15 ; stfpsux 26,6,9 - fxsmul 26,17,15 ; stfpsux 27,6,9 - fxpmul 27,18,15 ; stfpsux 28,6,9 - fxsmul 28,18,15 - - bdnz 0b - -#if 0 - addi 3,3,-120 # store delay line - stfpsux 1,3,9 - stfpsux 2,3,9 - stfpsux 3,3,9 - stfpsux 4,3,9 - stfpsux 5,3,9 - stfpsux 6,3,9 - stfpsux 7,3,9 - stfpsux 8,3,9 - stfpsux 9,3,9 - stfpsux 10,3,9 - stfpsux 11,3,9 - stfpsux 12,3,9 - stfpsux 13,3,9 - stfpsux 14,3,9 - stfpsux 15,3,9 -#endif - - li 9,DCOMPLEX_SIZE # restore call-saved registers - lmw 28,16(1) # restore r28 ... r31 - - addi 1,1,48 - lfpdx 31,0,1 - lfpdux 30,1,9 - lfpdux 29,1,9 - lfpdux 28,1,9 - lfpdux 27,1,9 - lfpdux 26,1,9 - lfpdux 25,1,9 - lfpdux 24,1,9 - lfpdux 23,1,9 - lfpdux 22,1,9 - lfpdux 21,1,9 - lfpdux 20,1,9 - lfpdux 19,1,9 - lfpdux 18,1,9 - lfpdux 17,1,9 - lfpdux 16,1,9 - lfpdux 15,1,9 - lfpdux 14,1,9 - - addi 1,1,16 # restore stack pointer - blr # return -#endif - - -.align 5 - -#if defined HAVE_BGP -zero: .long 0,0 -#endif - -.global _memzero -_memzero: -#if defined HAVE_BGP - lis 5,zero@ha ; srwi 4,4,7 - addi 5,5,zero@l ; mtctr 4 - lfpsx 0,0,5 ; li 8,16 - subi 3,3,16 - -0: stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - stfpdux 0,3,8 - bdnz 0b -#else - srwi 4,4,7 - mtctr 4 - li 4,32 - li 5,64 - li 6,96 - li 7,128 - -0: dcbz 0,3 - dcbz 3,4 - dcbz 3,5 - dcbz 3,6 - add 3,3,7 - bdnz 0b -#endif - blr - - -.align 5 -.global _fast_memcpy -_fast_memcpy: - - li 8,-16 - stfpdux 14,1,8 - stfpdux 15,1,8 - stfpdux 16,1,8 - stfpdux 17,1,8 - stfpdux 18,1,8 - stfpdux 19,1,8 - stfpdux 20,1,8 - stfpdux 21,1,8 - stfpdux 22,1,8 - stfpdux 23,1,8 - stfpdux 24,1,8 - stfpdux 25,1,8 - stfpdux 26,1,8 - stfpdux 27,1,8 - stfpdux 28,1,8 - stfpdux 29,1,8 - stfpdux 30,1,8 - stfpdux 31,1,8 - - srwi 5,5,9 - mtctr 5 - li 8,16 - - sub 3,3,8 - sub 4,4,8 - -0: - lfpdux 0,4,8 - lfpdux 1,4,8 - lfpdux 2,4,8 - lfpdux 3,4,8 - lfpdux 4,4,8 - lfpdux 5,4,8 - lfpdux 6,4,8 - lfpdux 7,4,8 - lfpdux 8,4,8 - lfpdux 9,4,8 - lfpdux 10,4,8 - lfpdux 11,4,8 - lfpdux 12,4,8 - lfpdux 13,4,8 - lfpdux 14,4,8 - lfpdux 15,4,8 - lfpdux 16,4,8 - lfpdux 17,4,8 - lfpdux 18,4,8 - lfpdux 19,4,8 - lfpdux 20,4,8 - lfpdux 21,4,8 - lfpdux 22,4,8 - lfpdux 23,4,8 - lfpdux 24,4,8 - lfpdux 25,4,8 - lfpdux 26,4,8 - lfpdux 27,4,8 - lfpdux 28,4,8 - lfpdux 29,4,8 - lfpdux 30,4,8 - lfpdux 31,4,8 - stfpdux 0,3,8 - stfpdux 1,3,8 - stfpdux 2,3,8 - stfpdux 3,3,8 - stfpdux 4,3,8 - stfpdux 5,3,8 - stfpdux 6,3,8 - stfpdux 7,3,8 - stfpdux 8,3,8 - stfpdux 9,3,8 - stfpdux 10,3,8 - stfpdux 11,3,8 - stfpdux 12,3,8 - stfpdux 13,3,8 - stfpdux 14,3,8 - stfpdux 15,3,8 - stfpdux 16,3,8 - stfpdux 17,3,8 - stfpdux 18,3,8 - stfpdux 19,3,8 - stfpdux 20,3,8 - stfpdux 21,3,8 - stfpdux 22,3,8 - stfpdux 23,3,8 - stfpdux 24,3,8 - stfpdux 25,3,8 - stfpdux 26,3,8 - stfpdux 27,3,8 - stfpdux 28,3,8 - stfpdux 29,3,8 - stfpdux 30,3,8 - stfpdux 31,3,8 - bdnz 0b - - lfpdx 31,0,1 - lfpdux 30,1,8 - lfpdux 29,1,8 - lfpdux 28,1,8 - lfpdux 27,1,8 - lfpdux 26,1,8 - lfpdux 25,1,8 - lfpdux 24,1,8 - lfpdux 23,1,8 - lfpdux 22,1,8 - lfpdux 21,1,8 - lfpdux 20,1,8 - lfpdux 19,1,8 - lfpdux 18,1,8 - lfpdux 17,1,8 - lfpdux 16,1,8 - lfpdux 15,1,8 - lfpdux 14,1,8 - addi 1,1,16 - blr - - - # little endian i16complex -> float - -.global _ZN5LOFAR4RTCP8_convertISt7complexIsEEEvPS2_IfEPKT_j -_ZN5LOFAR4RTCP8_convertISt7complexIsEEEvPS2_IfEPKT_j: - - stwu 1,-32(1) - - lis 8,sub_value@ha # load sub_values - li 9,sub_value@l - lfpdx 0,8,9 - - lis 12,0x0080 - ori 12,12,0x0080 - - srwi 5,5,1 - subi 5,5,2 - mtctr 5 - - subi 3,3,8 - - li 8,8 - li 9,4 - li 10,14 - li 11,6 - addi 5,1,16 - - stfpdx 0,0,1 # initialize int->fp conversion area - stfpdx 0,0,5 - - lwz 6,0(4) - - lwzux 7,4,9 - xor 6,6,12 - sthbrx 6,10,1 - srwi 6,6,16 - sthbrx 6,11,1 - - lwzux 6,4,9 - xor 7,7,12 - sthbrx 7,10,5 - srwi 7,7,16 - sthbrx 7,11,5 - lfpdx 1,0,1 - - lwzux 7,4,9 - xor 6,6,12 - sthbrx 6,10,1 - srwi 6,6,16 - sthbrx 6,11,1 - fpsub 1,1,0 - lfpdx 2,0,5 - -0: - lwzux 6,4,9 - xor 7,7,12 - sthbrx 7,10,5 - srwi 7,7,16 - sthbrx 7,11,5 - fpsub 2,2,0 - stfpsux 1,3,8 - lfpdx 1,0,1 - - lwzux 7,4,9 - xor 6,6,12 - sthbrx 6,10,1 - srwi 6,6,16 - sthbrx 6,11,1 - fpsub 1,1,0 - stfpsux 2,3,8 - lfpdx 2,0,5 - - bdnz 0b - - xor 7,7,12 - sthbrx 7,10,5 - srwi 7,7,16 - sthbrx 7,11,5 - fpsub 2,2,0 - stfpsux 1,3,8 - lfpdx 1,0,1 - - fpsub 1,1,0 - stfpsux 2,3,8 - lfpdx 2,0,5 - - fpsub 2,2,0 - stfpsux 1,3,8 - - stfpsux 2,3,8 - - addi 1,1,32 - blr - - - # i8complex -> float - -.global _ZN5LOFAR4RTCP8_convertISt7complexIaEEEvPS2_IfEPKT_j -_ZN5LOFAR4RTCP8_convertISt7complexIaEEEvPS2_IfEPKT_j: - - lis 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@ha - la 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@l(11) - - srwi 5,5,2 - subi 5,5,2 - mtctr 5 - - subi 3,3,8 - - li 10,8 - li 9,2 - - lhz 5,0(4) - lhzux 6,4,9 - lhzux 7,4,9 - lhzux 8,4,9 - - slwi 5,5,3 - lfpsx 0,11,5 - lhzux 5,4,9 - - slwi 6,6,3 - lfpsx 1,11,6 - lhzux 6,4,9 - - slwi 7,7,3 - lfpsx 2,11,7 - lhzux 7,4,9 - - slwi 8,8,3 - lfpsx 3,11,8 - lhzux 8,4,9 - -0: - slwi 5,5,3 - stfpsux 0,3,10 - lfpsx 0,11,5 - lhzux 5,4,9 - - slwi 6,6,3 - stfpsux 1,3,10 - lfpsx 1,11,6 - lhzux 6,4,9 - - slwi 7,7,3 - stfpsux 2,3,10 - lfpsx 2,11,7 - lhzux 7,4,9 - - slwi 8,8,3 - stfpsux 3,3,10 - lfpsx 3,11,8 - lhzux 8,4,9 - - bdnz 0b - - slwi 5,5,3 - stfpsux 0,3,10 - lfpsx 0,11,5 - - slwi 6,6,3 - stfpsux 1,3,10 - lfpsx 1,11,6 - - slwi 7,7,3 - stfpsux 2,3,10 - lfpsx 2,11,7 - - slwi 8,8,3 - stfpsux 3,3,10 - lfpsx 3,11,8 - - stfpsux 0,3,10 - stfpsux 1,3,10 - stfpsux 2,3,10 - stfpsux 3,3,10 - - blr - - - # i4complex -> float - -.global _ZN5LOFAR4RTCP8_convertINS_5TYPES9i4complexEEEvPSt7complexIfEPKT_j -_ZN5LOFAR4RTCP8_convertINS_5TYPES9i4complexEEEvPSt7complexIfEPKT_j: - - lis 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@ha - la 11,_ZN5LOFAR4RTCP13_FIR_fp_tableE@l(11) - - srwi 5,5,2 - subi 5,5,2 - mtctr 5 - - subi 3,3,8 - - li 10,8 - li 9,1 - - lbz 5,0(4) - lbzux 6,4,9 - lbzux 7,4,9 - lbzux 8,4,9 - - slwi 5,5,3 - lfpsx 0,11,5 - lbzux 5,4,9 - - slwi 6,6,3 - lfpsx 1,11,6 - lbzux 6,4,9 - - slwi 7,7,3 - lfpsx 2,11,7 - lbzux 7,4,9 - - slwi 8,8,3 - lfpsx 3,11,8 - lbzux 8,4,9 - -0: - slwi 5,5,3 - stfpsux 0,3,10 - lfpsx 0,11,5 - lbzux 5,4,9 - - slwi 6,6,3 - stfpsux 1,3,10 - lfpsx 1,11,6 - lbzux 6,4,9 - - slwi 7,7,3 - stfpsux 2,3,10 - lfpsx 2,11,7 - lbzux 7,4,9 - - slwi 8,8,3 - stfpsux 3,3,10 - lfpsx 3,11,8 - lbzux 8,4,9 - - bdnz 0b - - slwi 5,5,3 - stfpsux 0,3,10 - lfpsx 0,11,5 - - slwi 6,6,3 - stfpsux 1,3,10 - lfpsx 1,11,6 - - slwi 7,7,3 - stfpsux 2,3,10 - lfpsx 2,11,7 - - slwi 8,8,3 - stfpsux 3,3,10 - lfpsx 3,11,8 - - stfpsux 0,3,10 - stfpsux 1,3,10 - stfpsux 2,3,10 - stfpsux 3,3,10 - - blr - - -.global _apply_single_channel_delays -_apply_single_channel_delays: - - mtctr 4 - - lfpdx 8,0,5 - lfpdx 9,0,6 - subi 4,3,8 - subi 3,3,8 - li 8,8 - -0: lfpsux 0,3,8 - lfpsux 1,3,8 - - fxpmul 4,0,8 - fxpmul 5,1,8 - fxpmul 10,8,9 - fxcxnpma 0,0,8,4 - fxcxnpma 1,1,8,5 - fxcxnpma 8,8,9,10 - - stfpsux 0,4,8 - stfpsux 1,4,8 - - bdnz 0b - - blr - -#endif diff --git a/RTCP/CNProc/src/FIR_Asm.h b/RTCP/CNProc/src/FIR_Asm.h deleted file mode 100644 index 05113c07042976c44216344f67e4b4950442268d..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR_Asm.h +++ /dev/null @@ -1,79 +0,0 @@ -//# FIR.h: header files for CN assembly -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_CNPROC_FIR_ASM_H -#define LOFAR_CNPROC_FIR_ASM_H - -#if defined HAVE_BGP -#include <Common/lofar_complex.h> -#include <Interface/Config.h> - -namespace LOFAR { -namespace RTCP { - -struct phase_shift { - dcomplex v0, dv; -}; - - -template <typename SAMPLE_TYPE> extern void _filter(unsigned nrChannels, - const float weights[NR_TAPS], - const SAMPLE_TYPE samples[], - fcomplex out[], - int nr_samples_div_16); - -template <typename SAMPLE_TYPE> extern void _convert(fcomplex out[], const SAMPLE_TYPE samples[], unsigned count); - -extern "C" { - void _transpose_4x8(fcomplex *out, - const fcomplex *in, - int length, - int input_stride, - int output_stride); - - void _phase_shift_and_transpose(fcomplex *out, - const fcomplex *in, - const struct phase_shift *, - int stride, - unsigned nrChannels, - const float *bandPass); - - void _apply_single_channel_delays(fcomplex *samples, - unsigned nrSamplesPerIntegration, - const dcomplex *weigth, - const dcomplex *deltaWeight); - - void _fast_memcpy(void *dst, const void *src, size_t bytes); - void _memzero(void *dst, size_t bytes); // bytes must be multiple of 128 - void _prefetch(const void *src, size_t count, size_t stride); - - extern struct { - unsigned nr_taps; - unsigned nr_polarizations; - } _FIR_constants_used; - - unsigned long long _rdtsc(); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif -#endif diff --git a/RTCP/CNProc/src/FIR_InvertedStationPPFWeights.h b/RTCP/CNProc/src/FIR_InvertedStationPPFWeights.h deleted file mode 100644 index 047b5b75bee7c281cacf03c75418695505c0cbc2..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR_InvertedStationPPFWeights.h +++ /dev/null @@ -1,4103 +0,0 @@ -#ifndef LOFAR_CNPROC_FIR_INVERTED_STATION_PPF_WEIGHTS_H -#define LOFAR_CNPROC_FIR_INVERTED_STATION_PPF_WEIGHTS_H - -const float invertedStationPPFWeights[1024][16] __attribute__ ((aligned(32))) = { - { -0.0000000179151700, -0.0000003308169600, 0.0000003168136400, -0.0000001402398400, - -0.0000000353662500, 0.0000001927602200, -0.0000003163333400, 0.0000004012019600, - 0.0000305533321300, 0.0000003717851500, -0.0000003038205600, 0.0000001856478200, - -0.0000000314280200, -0.0000001413956600, 0.0000003176999800, -0.0000003309959200}, - { -0.0000000188174200, -0.0000003292642400, 0.0000003165263500, -0.0000001388720100, - -0.0000000384077600, 0.0000001988112900, -0.0000003285234700, 0.0000004303401100, - 0.0000305532062500, 0.0000003427783000, -0.0000002906671400, 0.0000001795892300, - -0.0000000283721000, -0.0000001437413900, 0.0000003189613400, -0.0000003326162500}, - { -0.0000000196877000, -0.0000003287185700, 0.0000003153111900, -0.0000001365477700, - -0.0000000414183100, 0.0000002048118400, -0.0000003406922200, 0.0000004585797400, - 0.0000305529242100, 0.0000003148416400, -0.0000002784621900, 0.0000001725095700, - -0.0000000252375300, -0.0000001452058900, 0.0000003202823300, -0.0000003332926300}, - { -0.0000000205837900, -0.0000003272003200, 0.0000003141260600, -0.0000001352471400, - -0.0000000443644700, 0.0000002116848800, -0.0000003537488300, 0.0000004878336100, - 0.0000305525209100, 0.0000002859642300, -0.0000002662171400, 0.0000001663994200, - -0.0000000211731900, -0.0000001466550800, 0.0000003206380900, -0.0000003349458000}, - { -0.0000000214552200, -0.0000003266806700, 0.0000003129659400, -0.0000001339690600, - -0.0000000482746700, 0.0000002176562700, -0.0000003658974500, 0.0000005162307100, - 0.0000305528831700, 0.0000002572382100, -0.0000002530584900, 0.0000001602837600, - -0.0000000180271600, -0.0000001491017200, 0.0000003220032300, -0.0000003356689400}, - { -0.0000000223661700, -0.0000003260822600, 0.0000003127233900, -0.0000001326570100, - -0.0000000512158000, 0.0000002235803700, -0.0000003780111100, 0.0000005456280000, - 0.0000305521935800, 0.0000002275511400, -0.0000002407952000, 0.0000001531547700, - -0.0000000148571000, -0.0000001505753800, 0.0000003233233200, -0.0000003373394500}, - { -0.0000000231910300, -0.0000003246569900, 0.0000003116275100, -0.0000001304684500, - -0.0000000541061900, 0.0000002304368000, -0.0000003901387700, 0.0000005741703600, - 0.0000305522735200, 0.0000001989240500, -0.0000002285243100, 0.0000001469413800, - -0.0000000116373400, -0.0000001521319900, 0.0000003247258700, -0.0000003380795000}, - { -0.0000000240501100, -0.0000003241453500, 0.0000003104789400, -0.0000001292085400, - -0.0000000569919800, 0.0000002362991000, -0.0000004022334800, 0.0000006027997600, - 0.0000305521780500, 0.0000001704243000, -0.0000002153295800, 0.0000001397822300, - -0.0000000074381800, -0.0000001537100900, 0.0000003251864100, -0.0000003388377600}, - { -0.0000000248796500, -0.0000003226864100, 0.0000003093528500, -0.0000001279946600, - -0.0000000607985400, 0.0000002421344900, -0.0000004142487600, 0.0000006323528600, - 0.0000305510887600, 0.0000001418764600, -0.0000002029953100, 0.0000001335330400, - -0.0000000042083300, -0.0000001561789400, 0.0000003265175300, -0.0000003404731400}, - { -0.0000000257636700, -0.0000003221504300, 0.0000003091948000, -0.0000001267872500, - -0.0000000636159800, 0.0000002489119800, -0.0000004263249000, 0.0000006610834100, - 0.0000305507531700, 0.0000001124928200, -0.0000001906951100, 0.0000001263167800, - -0.0000000009313800, -0.0000001577770500, 0.0000003279564200, -0.0000003412490900}, - { -0.0000000265507200, -0.0000003207541700, 0.0000003081283900, -0.0000001246591800, - -0.0000000664350300, 0.0000002546976200, -0.0000004383683600, 0.0000006898956800, - 0.0000305502674600, 0.0000000841583200, -0.0000001774239400, 0.0000001200242700, - 0.0000000033135500, -0.0000001593584100, 0.0000003293434500, -0.0000003429250800}, - { -0.0000000273917600, -0.0000003202910800, 0.0000003070451600, -0.0000001234554400, - -0.0000000692451500, 0.0000002604895500, -0.0000004503987800, 0.0000007187871700, - 0.0000305505931400, 0.0000000558741700, -0.0000001650952000, 0.0000001127390700, - 0.0000000066556300, -0.0000001619778200, 0.0000003298773100, -0.0000003437037600}, - { -0.0000000281862900, -0.0000003188993500, 0.0000003060168000, -0.0000001223831900, - -0.0000000729004800, 0.0000002671831100, -0.0000004624290900, 0.0000007477414500, - 0.0000305498083700, 0.0000000267125500, -0.0000001517720800, 0.0000001063982400, - 0.0000000099881700, -0.0000001636003800, 0.0000003313035200, -0.0000003454137100}, - { -0.0000000289997500, -0.0000003184579100, 0.0000003050026400, -0.0000001202902100, - -0.0000000756520300, 0.0000002728774500, -0.0000004744017700, 0.0000007767318900, - 0.0000305488765700, -0.0000000023525100, -0.0000001394377600, 0.0000000990953800, - 0.0000000143244500, -0.0000001652648300, 0.0000003327682700, -0.0000003461774600}, - { -0.0000000297868500, -0.0000003170531700, 0.0000003048908400, -0.0000001191632000, - -0.0000000784087900, 0.0000002786310700, -0.0000004864404400, 0.0000008048797600, - 0.0000305487970600, -0.0000000304469600, -0.0000001260861000, 0.0000000926754800, - 0.0000000177135000, -0.0000001679160000, 0.0000003343036000, -0.0000003469765900}, - { -0.0000000306075200, -0.0000003165955700, 0.0000003038511100, -0.0000001180375200, - -0.0000000811096700, 0.0000002842935600, -0.0000004983911700, 0.0000008340196300, - 0.0000305476029500, -0.0000000594272800, -0.0000001136564500, 0.0000000852586500, - 0.0000000211810600, -0.0000001696380900, 0.0000003348178400, -0.0000003486840300}, - { -0.0000000313813200, -0.0000003152349500, 0.0000003028499400, -0.0000001169925400, - -0.0000000837361100, 0.0000002908698000, -0.0000005103588900, 0.0000008632676200, - 0.0000305471690900, -0.0000000882964600, -0.0000001002806300, 0.0000000788301700, - 0.0000000255669300, -0.0000001713789300, 0.0000003363569600, -0.0000003495167000}, - { -0.0000000321551300, -0.0000003148759600, 0.0000003019394800, -0.0000001150412500, - -0.0000000873315500, 0.0000002965177700, -0.0000005223260400, 0.0000008916237200, - 0.0000305466205000, -0.0000001170623500, -0.0000000869571200, 0.0000000714234800, - 0.0000000290089600, -0.0000001740435500, 0.0000003378711000, -0.0000003512573100}, - { -0.0000000329970400, -0.0000003144017200, 0.0000003018842400, -0.0000001139831400, - -0.0000000899901500, 0.0000003021134300, -0.0000005342285700, 0.0000009209557400, - 0.0000305459744400, -0.0000001458744900, -0.0000000744677800, 0.0000000649268300, - 0.0000000334721100, -0.0000001758288700, 0.0000003394346200, -0.0000003520921500}, - { -0.0000000337260000, -0.0000003130746200, 0.0000003009011500, -0.0000001129494000, - -0.0000000925937200, 0.0000003077019500, -0.0000005461903400, 0.0000009494961400, - 0.0000305451127000, -0.0000001745336100, -0.0000000610465300, 0.0000000573925900, - 0.0000000370535700, -0.0000001776549100, 0.0000003400302700, -0.0000003538373300}, - { -0.0000000345274700, -0.0000003126683700, 0.0000002999325200, -0.0000001119130300, - -0.0000000951776200, 0.0000003132334500, -0.0000005580569300, 0.0000009789706100, - 0.0000305441562500, -0.0000002031776000, -0.0000000485477300, 0.0000000498512700, - 0.0000000406472900, -0.0000001794658100, 0.0000003416172000, -0.0000003546870600}, - { -0.0000000352248700, -0.0000003113898000, 0.0000002990283900, -0.0000001099777400, - -0.0000000977716300, 0.0000003187647900, -0.0000005699440100, 0.0000010075840400, - 0.0000305430485400, -0.0000002316996000, -0.0000000351097200, 0.0000000433003700, - 0.0000000451135800, -0.0000001822254600, 0.0000003431922800, -0.0000003564774200}, - { -0.0000000360263700, -0.0000003109808600, 0.0000002990478200, -0.0000001090243800, - -0.0000001002860000, 0.0000003252789700, -0.0000005809448800, 0.0000010362986600, - 0.0000305427509700, -0.0000002601772700, -0.0000000216601600, 0.0000000357013800, - 0.0000000487681400, -0.0000001841238600, 0.0000003448505600, -0.0000003573744000}, - { -0.0000000367260100, -0.0000003096989400, 0.0000002981370000, -0.0000001081004600, - -0.0000001037636700, 0.0000003307938500, -0.0000005928189500, 0.0000010650492300, - 0.0000305413750100, -0.0000002886387300, -0.0000000090648300, 0.0000000290078700, - 0.0000000524745900, -0.0000001860858600, 0.0000003455849400, -0.0000003582656500}, - { -0.0000000375146000, -0.0000003093318200, 0.0000002972423700, -0.0000001071720100, - -0.0000001062345400, 0.0000003362096800, -0.0000006046137200, 0.0000010948594500, - 0.0000305407159000, -0.0000003178921900, 0.0000000043993500, 0.0000000214496100, - 0.0000000570197700, -0.0000001888981300, 0.0000003472094500, -0.0000003601269100}, - { -0.0000000381874300, -0.0000003080805300, 0.0000002963790800, -0.0000001053001800, - -0.0000001087365200, 0.0000003416433800, -0.0000006164483000, 0.0000011237344100, - 0.0000305390383500, -0.0000003461481100, 0.0000000179544400, 0.0000000146785300, - 0.0000000607413700, -0.0000001908316200, 0.0000003489057800, -0.0000003610639600}, - { -0.0000000389669200, -0.0000003076842200, 0.0000002964194700, -0.0000001043813600, - -0.0000001112218000, 0.0000003470974700, -0.0000006273264800, 0.0000011526826700, - 0.0000305382025700, -0.0000003743576500, 0.0000000314498600, 0.0000000070163400, - 0.0000000654411200, -0.0000001927947000, 0.0000003505495000, -0.0000003629223000}, - { -0.0000000396332400, -0.0000003064410600, 0.0000002955492900, -0.0000001034693000, - -0.0000001136761300, 0.0000003525266500, -0.0000006392102100, 0.0000011808326800, - 0.0000305371538600, -0.0000004034754500, 0.0000000440667500, -0.0000000007068200, - 0.0000000692151600, -0.0000001958085100, 0.0000003514164000, -0.0000003638938800}, - { -0.0000000403882200, -0.0000003061151700, 0.0000002947019900, -0.0000001026023300, - -0.0000001160855500, 0.0000003578931400, -0.0000006510233800, 0.0000012099735200, - 0.0000305359759100, -0.0000004325205000, 0.0000000577290600, -0.0000000075620500, - 0.0000000729983100, -0.0000001977775600, 0.0000003531138400, -0.0000003658356000}, - { -0.0000000410416700, -0.0000003048768800, 0.0000002938122000, -0.0000001017024400, - -0.0000001185043200, 0.0000003632680800, -0.0000006618462800, 0.0000012391231100, - 0.0000305346710600, -0.0000004604878800, 0.0000000712646300, -0.0000000153154100, - 0.0000000778065700, -0.0000001998535200, 0.0000003548917800, -0.0000003668399300}, - { -0.0000000418160500, -0.0000003045285600, 0.0000002940099300, -0.0000000999989700, - -0.0000001207958100, 0.0000003694939000, -0.0000006736106600, 0.0000012683638900, - 0.0000305331925800, -0.0000004893293600, 0.0000000848238100, -0.0000000231056700, - 0.0000000815922500, -0.0000002028355600, 0.0000003567216600, -0.0000003678810800}, - { -0.0000000424402600, -0.0000003033543100, 0.0000002932209100, -0.0000000992319500, - -0.0000001241358200, 0.0000003749292200, -0.0000006845375400, 0.0000012968326800, - 0.0000305325129100, -0.0000005181636100, 0.0000000984943000, -0.0000000299850300, - 0.0000000864607400, -0.0000002050276300, 0.0000003575779100, -0.0000003698495600}, - { -0.0000000431795400, -0.0000003030515100, 0.0000002924143600, -0.0000000984066100, - -0.0000001264499500, 0.0000003801673700, -0.0000006962423800, 0.0000013261923500, - 0.0000305307792800, -0.0000005469551400, 0.0000001112105700, -0.0000000378641900, - 0.0000000903979800, -0.0000002071214100, 0.0000003594054000, -0.0000003708956400}, - { -0.0000000438154800, -0.0000003018644300, 0.0000002915881100, -0.0000000975892700, - -0.0000001287607700, 0.0000003854346300, -0.0000007080269600, 0.0000013547492500, - 0.0000305299153300, -0.0000005747166800, 0.0000001248307000, -0.0000000457538900, - 0.0000000942775500, -0.0000002101520100, 0.0000003612350900, -0.0000003729050600}, - { -0.0000000445068000, -0.0000003016231600, 0.0000002908760100, -0.0000000958623000, - -0.0000001311089600, 0.0000003906976500, -0.0000007187486600, 0.0000013842019100, - 0.0000305278786000, -0.0000006032900700, 0.0000001385321000, -0.0000000527217900, - 0.0000000991980200, -0.0000002123501700, 0.0000003631277700, -0.0000003740453600}, - { -0.0000000451769900, -0.0000003003554800, 0.0000002910117000, -0.0000000951286800, - -0.0000001333568200, 0.0000003959036100, -0.0000007305163600, 0.0000014129397200, - 0.0000305266353700, -0.0000006318495400, 0.0000001522406400, -0.0000000607494800, - 0.0000001032856600, -0.0000002146282400, 0.0000003641224700, -0.0000003751272400}, - { -0.0000000458704700, -0.0000003001127800, 0.0000002902744400, -0.0000000943766600, - -0.0000001356286200, 0.0000004011606300, -0.0000007413160700, 0.0000014416934300, - 0.0000305252141100, -0.0000006612456400, 0.0000001659411900, -0.0000000686657100, - 0.0000001082013300, -0.0000002177942800, 0.0000003660354300, -0.0000003772222700}, - { -0.0000000464860200, -0.0000002989337500, 0.0000002894831400, -0.0000000936224300, - -0.0000001378788100, 0.0000004063782200, -0.0000007520350800, 0.0000014714266400, - 0.0000305236860000, -0.0000006896906600, 0.0000001797689700, -0.0000000758115600, - 0.0000001122795500, -0.0000002200335400, 0.0000003679910900, -0.0000003784248300}, - { -0.0000000471906600, -0.0000002986971300, 0.0000002887514500, -0.0000000929037200, - -0.0000001400660100, 0.0000004114765900, -0.0000007637074700, 0.0000015003290600, - 0.0000305220409100, -0.0000007180134300, 0.0000001934852000, -0.0000000838292300, - 0.0000001173609200, -0.0000002223798900, 0.0000003689540000, -0.0000003804721500}, - { -0.0000000478005400, -0.0000002974973900, 0.0000002890024200, -0.0000000912804200, - -0.0000001423103300, 0.0000004166752200, -0.0000007744430700, 0.0000015292286200, - 0.0000305202709200, -0.0000007462776200, 0.0000002072061100, -0.0000000919168800, - 0.0000001214479000, -0.0000002256106400, 0.0000003709864100, -0.0000003816509300}, - { -0.0000000485004200, -0.0000002972661400, 0.0000002883075100, -0.0000000906121000, - -0.0000001444400500, 0.0000004217388300, -0.0000007861128300, 0.0000015582827100, - 0.0000305182829200, -0.0000007754203600, 0.0000002210354400, -0.0000001000782800, - 0.0000001256255000, -0.0000002278849600, 0.0000003729366300, -0.0000003838542900}, - { -0.0000000491739700, -0.0000002970642300, 0.0000002875940200, -0.0000000898797900, - -0.0000001467267200, 0.0000004259593600, -0.0000007967928800, 0.0000015873669900, - 0.0000305171969300, -0.0000008036267100, 0.0000002349092100, -0.0000001072739500, - 0.0000001307766700, -0.0000002302777900, 0.0000003749888800, -0.0000003850712800}, - { -0.0000000497291200, -0.0000002959470700, 0.0000002868512700, -0.0000000891753800, - -0.0000001488975800, 0.0000004311149200, -0.0000008075516000, 0.0000016155288200, - 0.0000305150388000, -0.0000008316860100, 0.0000002487086200, -0.0000001154788900, - 0.0000001350046400, -0.0000002336945300, 0.0000003761723500, -0.0000003862439200}, - { -0.0000000504731900, -0.0000002956450800, 0.0000002871262500, -0.0000000886061100, - -0.0000001509538700, 0.0000004360886000, -0.0000008191697200, 0.0000016448378400, - 0.0000305135746300, -0.0000008606633700, 0.0000002625496200, -0.0000001236297400, - 0.0000001401956000, -0.0000002360832800, 0.0000003781771800, -0.0000003884434400}, - { -0.0000000510187200, -0.0000002945799600, 0.0000002865288500, -0.0000000870352000, - -0.0000001531072000, 0.0000004411842900, -0.0000008298811000, 0.0000016741989300, - 0.0000305119193600, -0.0000008895401800, 0.0000002764325800, -0.0000001319345500, - 0.0000001445432500, -0.0000002385302500, 0.0000003803145000, -0.0000003898001300}, - { -0.0000000516831700, -0.0000002943863500, 0.0000002858545300, -0.0000000863995200, - -0.0000001552015500, 0.0000004462029400, -0.0000008404468200, 0.0000017034066400, - 0.0000305093771700, -0.0000009174192300, 0.0000002903186600, -0.0000001391517800, - 0.0000001496396500, -0.0000002418783000, 0.0000003823612700, -0.0000003919897700}, - { -0.0000000522254800, -0.0000002933011700, 0.0000002851744600, -0.0000000857749800, - -0.0000001572829300, 0.0000004512760300, -0.0000008512038500, 0.0000017319625600, - 0.0000305074913300, -0.0000009461842200, 0.0000003042687600, -0.0000001475450400, - 0.0000001541005000, -0.0000002444849800, 0.0000003836006300, -0.0000003932401200}, - { -0.0000000529601300, -0.0000002930099600, 0.0000002854820400, -0.0000000852704600, - -0.0000001592429500, 0.0000004561274000, -0.0000008627194900, 0.0000017615006900, - 0.0000305054496900, -0.0000009748599800, 0.0000003181615900, -0.0000001558137300, - 0.0000001594324200, -0.0000002470181000, 0.0000003857769000, -0.0000003945651400}, - { -0.0000000534931600, -0.0000002919339300, 0.0000002848150100, -0.0000000846731600, - -0.0000001612810100, 0.0000004611510300, -0.0000008734196000, 0.0000017901410200, - 0.0000305033298300, -0.0000010034991200, 0.0000003321126400, -0.0000001641796500, - 0.0000001637657900, -0.0000002504378200, 0.0000003879253900, -0.0000003968435100}, - { -0.0000000541059600, -0.0000002918541200, 0.0000002843043800, -0.0000000831250300, - -0.0000001634950600, 0.0000004652450700, -0.0000008840558000, 0.0000018188790800, - 0.0000305021093200, -0.0000010312015500, 0.0000003461182700, -0.0000001716342200, - 0.0000001692059700, -0.0000002531656000, 0.0000003892381100, -0.0000003981307700}, - { -0.0000000546470300, -0.0000002907704700, 0.0000002836444100, -0.0000000825608000, - -0.0000001654657700, 0.0000004701589700, -0.0000008946113900, 0.0000018485752400, - 0.0000304996474100, -0.0000010596860500, 0.0000003601134500, -0.0000001801009400, - 0.0000001736945200, -0.0000002556816600, 0.0000003913332400, -0.0000004004119100}, - { -0.0000000553421000, -0.0000002905324000, 0.0000002840026900, -0.0000000820954500, - -0.0000001674129700, 0.0000004751033800, -0.0000009052649800, 0.0000018774565100, - 0.0000304980747200, -0.0000010881885600, 0.0000003741264500, -0.0000001885730400, - 0.0000001781462400, -0.0000002592340800, 0.0000003936717300, -0.0000004018305800}, - { -0.0000000558583500, -0.0000002894695900, 0.0000002833775600, -0.0000000815677100, - -0.0000001693616200, 0.0000004800033700, -0.0000009158923400, 0.0000019063780300, - 0.0000304952581400, -0.0000011174339100, 0.0000003881652600, -0.0000001970197900, - 0.0000001836677600, -0.0000002619434800, 0.0000003959785900, -0.0000004032488300}, - { -0.0000000564955500, -0.0000002893561300, 0.0000002828266400, -0.0000000810671500, - -0.0000001712856100, 0.0000004849033400, -0.0000009265048200, 0.0000019354083600, - 0.0000304933847400, -0.0000011457786400, 0.0000004022181900, -0.0000002055659400, - 0.0000001882018300, -0.0000002656075600, 0.0000003973130000, -0.0000004055549600}, - { -0.0000000569990700, -0.0000002883172300, 0.0000002821862700, -0.0000000805210900, - -0.0000001733255400, 0.0000004888539700, -0.0000009370571700, 0.0000019645015200, - 0.0000304913195700, -0.0000011739650400, 0.0000004173020900, -0.0000002132234200, - 0.0000001937624600, -0.0000002683625100, 0.0000003996648800, -0.0000004070086100}, - { -0.0000000576816700, -0.0000002880712200, 0.0000002825556300, -0.0000000801110200, - -0.0000001751710900, 0.0000004936537800, -0.0000009475750900, 0.0000019935070200, - 0.0000304882818800, -0.0000012021363400, 0.0000004313763100, -0.0000002218448800, - 0.0000001984116400, -0.0000002710135300, 0.0000004018650800, -0.0000004093587400}, - { -0.0000000581575700, -0.0000002871029700, 0.0000002820817600, -0.0000000787003500, - -0.0000001771208200, 0.0000004984922000, -0.0000009581223300, 0.0000020227247700, - 0.0000304859324200, -0.0000012301966200, 0.0000004453794800, -0.0000002303557800, - 0.0000002039760600, -0.0000002748740500, 0.0000004034016500, -0.0000004107894100}, - { -0.0000000587752000, -0.0000002870343700, 0.0000002816043200, -0.0000000782738000, - -0.0000001789823800, 0.0000005033655500, -0.0000009688643500, 0.0000020512328500, - 0.0000304843748500, -0.0000012592772900, 0.0000004596104100, -0.0000002391051400, - 0.0000002087605700, -0.0000002776914700, 0.0000004058501200, -0.0000004123192100}, - { -0.0000000592610900, -0.0000002860138800, 0.0000002809924700, -0.0000000777559700, - -0.0000001809457700, 0.0000005071968700, -0.0000009792977800, 0.0000020805308800, - 0.0000304818061900, -0.0000012872591200, 0.0000004737013500, -0.0000002477149500, - 0.0000002144535400, -0.0000002805006000, 0.0000004081504200, -0.0000004147500100}, - { -0.0000000598855700, -0.0000002859183800, 0.0000002804989100, -0.0000000773711900, - -0.0000001827130700, 0.0000005119292900, -0.0000009897966800, 0.0000021099553600, - 0.0000304789228200, -0.0000013159535100, 0.0000004888119300, -0.0000002565148700, - 0.0000002191690700, -0.0000002842615100, 0.0000004106712900, -0.0000004163246800}, - { -0.0000000604129100, -0.0000002847973400, 0.0000002808540700, -0.0000000770115000, - -0.0000001845151700, 0.0000005166831300, -0.0000010003738700, 0.0000021384603000, - 0.0000304761759800, -0.0000013438827400, 0.0000005030699900, -0.0000002642744000, - 0.0000002248900100, -0.0000002872462400, 0.0000004120956700, -0.0000004186959300}, - { -0.0000000610304100, -0.0000002847187000, 0.0000002803718400, -0.0000000765887200, - -0.0000001863954900, 0.0000005204656900, -0.0000010108070800, 0.0000021680873600, - 0.0000304740017400, -0.0000013726605300, 0.0000005173599700, -0.0000002731549500, - 0.0000002298070200, -0.0000002901375100, 0.0000004145912600, -0.0000004202808100}, - { -0.0000000614775300, -0.0000002837812200, 0.0000002799287100, -0.0000000751378700, - -0.0000001873340800, 0.0000005251545400, -0.0000010213985000, 0.0000021968758500, - 0.0000304717226400, -0.0000014013384600, 0.0000005315723700, -0.0000002818772700, - 0.0000002355245100, -0.0000002940735300, 0.0000004172433300, -0.0000004219310800}, - { -0.0000000620567900, -0.0000002837320300, 0.0000002794490100, -0.0000000747532900, - -0.0000001891056000, 0.0000005299546400, -0.0000010309931700, 0.0000022254934400, - 0.0000304685251500, -0.0000014288738100, 0.0000005467214000, -0.0000002908733500, - 0.0000002405494900, -0.0000002971287100, 0.0000004187192800, -0.0000004243542100}, - { -0.0000000625856800, -0.0000002826051900, 0.0000002798242800, -0.0000000744164300, - -0.0000001909172200, 0.0000005336339900, -0.0000010413292700, 0.0000022552838800, - 0.0000304659243200, -0.0000014574287100, 0.0000005609909000, -0.0000002997005100, - 0.0000002464760300, -0.0000003001761400, 0.0000004213047800, -0.0000004260008200}, - { -0.0000000631862500, -0.0000002825655200, 0.0000002794055000, -0.0000000740960500, - -0.0000001926054500, 0.0000005382887800, -0.0000010518612100, 0.0000022842239000, - 0.0000304632697600, -0.0000014859275700, 0.0000005753037200, -0.0000003086221600, - 0.0000002513598800, -0.0000003041041300, 0.0000004239878600, -0.0000004276818000}, - { -0.0000000636395600, -0.0000002816103900, 0.0000002789011800, -0.0000000737686400, - -0.0000001942767200, 0.0000005429023200, -0.0000010623938900, 0.0000023132882500, - 0.0000304603952900, -0.0000015142040300, 0.0000005905217400, -0.0000003175720900, - 0.0000002573489500, -0.0000003072014700, 0.0000004265540900, -0.0000004304236600}, - { -0.0000000642092900, -0.0000002815797600, 0.0000002784613800, -0.0000000733852000, - -0.0000001961254600, 0.0000005467201200, -0.0000010718772800, 0.0000023422456600, - 0.0000304574941900, -0.0000015425894300, 0.0000006049293000, -0.0000003266869300, - 0.0000002625535200, -0.0000003104379700, 0.0000004282770700, -0.0000004320158000}, - { -0.0000000647228100, -0.0000002805014900, 0.0000002789105500, -0.0000000731700400, - -0.0000001977598200, 0.0000005513183700, -0.0000010823907600, 0.0000023714956500, - 0.0000304553789700, -0.0000015710304400, 0.0000006194068900, -0.0000003346361400, - 0.0000002683321200, -0.0000003144467600, 0.0000004309182300, -0.0000004346993300}, - { -0.0000000653083600, -0.0000002804663400, 0.0000002784856700, -0.0000000728568200, - -0.0000001994892300, 0.0000005549280000, -0.0000010927513200, 0.0000024006627800, - 0.0000304521224900, -0.0000015991075000, 0.0000006347319100, -0.0000003438518800, - 0.0000002735447600, -0.0000003175763900, 0.0000004336078200, -0.0000004364270700}, - { -0.0000000657344200, -0.0000002795073400, 0.0000002779372400, -0.0000000723818600, - -0.0000002002390300, 0.0000005594924600, -0.0000011022085400, 0.0000024298095100, - 0.0000304487711300, -0.0000016272419800, 0.0000006491186300, -0.0000003529018000, - 0.0000002797300300, -0.0000003209814400, 0.0000004354269100, -0.0000004380801100}, - { -0.0000000662778500, -0.0000002795722300, 0.0000002777270600, -0.0000000711766400, - -0.0000002020750200, 0.0000005631997300, -0.0000011127576100, 0.0000024583535100, - 0.0000304461685600, -0.0000016563520800, 0.0000006636493100, -0.0000003620768300, - 0.0000002848323700, -0.0000003250508600, 0.0000004381556100, -0.0000004408351500}, - { -0.0000000667608000, -0.0000002785075900, 0.0000002781813700, -0.0000000709968500, - -0.0000002036501400, 0.0000005678048700, -0.0000011222628000, 0.0000024877740200, - 0.0000304434316000, -0.0000016843034600, 0.0000006789868500, -0.0000003712463600, - 0.0000002910777700, -0.0000003284178700, 0.0000004410227500, -0.0000004427971200}, - { -0.0000000673385900, -0.0000002784864800, 0.0000002777897100, -0.0000000707171500, - -0.0000002053187900, 0.0000005713078000, -0.0000011324954000, 0.0000025171340700, - 0.0000304396703900, -0.0000017122233300, 0.0000006934475400, -0.0000003805137400, - 0.0000002964408100, -0.0000003317850200, 0.0000004428620600, -0.0000004444717000}, - { -0.0000000677353300, -0.0000002775967700, 0.0000002773610300, -0.0000000704737500, - -0.0000002069178100, 0.0000005759636500, -0.0000011421394400, 0.0000025458149700, - 0.0000304365892000, -0.0000017409498600, 0.0000007088896400, -0.0000003897094200, - 0.0000003025836900, -0.0000003360743400, 0.0000004457105300, -0.0000004473209500}, - { -0.0000000683225000, -0.0000002775689300, 0.0000002769352400, -0.0000000700635700, - -0.0000002076469800, 0.0000005793241800, -0.0000011523237400, 0.0000025753901000, - 0.0000304334966200, -0.0000017688142300, 0.0000007233613500, -0.0000003988893700, - 0.0000003088733700, -0.0000003394540900, 0.0000004485759300, -0.0000004491807700}, - { -0.0000000687773900, -0.0000002765299300, 0.0000002774214900, -0.0000000699143000, - -0.0000002091778900, 0.0000005839096700, -0.0000011618952200, 0.0000026040879100, - 0.0000304303942000, -0.0000017967050900, 0.0000007379100700, -0.0000004082281200, - 0.0000003142614000, -0.0000003427404600, 0.0000004512855100, -0.0000004519537900}, - { -0.0000000693472400, -0.0000002765610600, 0.0000002771073600, -0.0000000697223600, - -0.0000002107933500, 0.0000005874142700, -0.0000011723107400, 0.0000026331338900, - 0.0000304277893000, -0.0000018252857000, 0.0000007534408900, -0.0000004175833600, - 0.0000003206136100, -0.0000003473370900, 0.0000004534730300, -0.0000004538643100}, - { -0.0000000697463600, -0.0000002756676800, 0.0000002766964300, -0.0000000695192900, - -0.0000002122896500, 0.0000005919133800, -0.0000011817129000, 0.0000026629304300, - 0.0000304240989200, -0.0000018538518600, 0.0000007680828300, -0.0000004270140400, - 0.0000003260984500, -0.0000003507314200, 0.0000004563753700, -0.0000004557731900}, - { -0.0000000703804500, -0.0000002754968200, 0.0000002772071700, -0.0000000692658900, - -0.0000002129046300, 0.0000005951839900, -0.0000011919323000, 0.0000026918136600, - 0.0000304205403100, -0.0000018813366000, 0.0000007835360000, -0.0000004364128800, - 0.0000003325426100, -0.0000003542025400, 0.0000004592039500, -0.0000004586402700}, - { -0.0000000707548200, -0.0000002746360600, 0.0000002768039100, -0.0000000690246800, - -0.0000002145830400, 0.0000005988351400, -0.0000012013907400, 0.0000027209072700, - 0.0000304176499000, -0.0000019099860600, 0.0000007984496700, -0.0000004450296100, - 0.0000003379587100, -0.0000003587618200, 0.0000004614320900, -0.0000004606892100}, - { -0.0000000713093800, -0.0000002746934500, 0.0000002765358600, -0.0000000689188800, - -0.0000002160148400, 0.0000006033055000, -0.0000012109150300, 0.0000027501099300, - 0.0000304145203000, -0.0000019382840700, 0.0000008140437800, -0.0000004545293600, - 0.0000003445318600, -0.0000003624168800, 0.0000004645205500, -0.0000004627325000}, - { -0.0000000716707400, -0.0000002738242600, 0.0000002761221600, -0.0000000686846600, - -0.0000002176335900, 0.0000006068547500, -0.0000012202678300, 0.0000027791528800, - 0.0000304104283300, -0.0000019666250900, 0.0000008287779500, -0.0000004641076300, - 0.0000003501561200, -0.0000003658751600, 0.0000004673640000, -0.0000004656297500}, - { -0.0000000722876700, -0.0000002737400900, 0.0000002768917300, -0.0000000676615300, - -0.0000002181080700, 0.0000006110074200, -0.0000012305860200, 0.0000028085420100, - 0.0000304069875300, -0.0000019947475400, 0.0000008443532900, -0.0000004736314300, - 0.0000003566616300, -0.0000003706438500, 0.0000004696952300, -0.0000004676431900}, - { -0.0000000726338700, -0.0000002729093500, 0.0000002765145400, -0.0000000674502100, - -0.0000002197280000, 0.0000006146021300, -0.0000012401276400, 0.0000028369440400, - 0.0000304036328200, -0.0000020230886000, 0.0000008591834800, -0.0000004833255700, - 0.0000003624215600, -0.0000003742729000, 0.0000004728140600, -0.0000004696972400}, - { -0.0000000731741100, -0.0000002729709100, 0.0000002762428000, -0.0000000673225600, - -0.0000002212588700, 0.0000006180633900, -0.0000012494169800, 0.0000028662906200, - 0.0000304000013700, -0.0000020511012600, 0.0000008748066500, -0.0000004928785800, - 0.0000003689348800, -0.0000003788813700, 0.0000004759315900, -0.0000004727789800}, - { -0.0000000735386100, -0.0000002721352900, 0.0000002758959300, -0.0000000672109200, - -0.0000002226292500, 0.0000006224450200, -0.0000012588365800, 0.0000028957720600, - 0.0000303962072700, -0.0000020792099600, 0.0000008896179300, -0.0000005026132300, - 0.0000003747768000, -0.0000003827110500, 0.0000004781502000, -0.0000004747416400}, - { -0.0000000741467200, -0.0000002720193100, 0.0000002764997300, -0.0000000670457700, - -0.0000002231939800, 0.0000006257946300, -0.0000012682582100, 0.0000029244511900, - 0.0000303933574300, -0.0000021072898700, 0.0000009054063500, -0.0000005123937600, - 0.0000003816203000, -0.0000003865951000, 0.0000004814396600, -0.0000004769350200}, - { -0.0000000745150400, -0.0000002711729700, 0.0000002761387900, -0.0000000669147800, - -0.0000002246404800, 0.0000006290380500, -0.0000012784037700, 0.0000029540755700, - 0.0000303893044500, -0.0000021352478200, 0.0000009201932100, -0.0000005220680700, - 0.0000003872318000, -0.0000003911010800, 0.0000004845423900, -0.0000004800157600}, - { -0.0000000748453500, -0.0000002703558700, 0.0000002757747500, -0.0000000667691900, - -0.0000002261575500, 0.0000006324791000, -0.0000012877926700, 0.0000029827673100, - 0.0000303851724000, -0.0000021629843300, 0.0000009359170900, -0.0000005318693300, - 0.0000003941798300, -0.0000003952016200, 0.0000004869373400, -0.0000004820883700}, - { -0.0000000753869400, -0.0000002704376900, 0.0000002755157700, -0.0000000665839200, - -0.0000002265346200, 0.0000006366843000, -0.0000012972784600, 0.0000030116858700, - 0.0000303818672700, -0.0000021907914800, 0.0000009517056100, -0.0000005416881700, - 0.0000004010497500, -0.0000003990905800, 0.0000004901022400, -0.0000004852436300}, - { -0.0000000758084800, -0.0000002694258700, 0.0000002760975500, -0.0000000666054000, - -0.0000002279366500, 0.0000006400355600, -0.0000013065059600, 0.0000030415689700, - 0.0000303781885400, -0.0000022195988700, 0.0000009667243000, -0.0000005515687900, - 0.0000004068687500, -0.0000004038259800, 0.0000004935181400, -0.0000004875341600}, - { -0.0000000763249100, -0.0000002695207900, 0.0000002758724400, -0.0000000665508700, - -0.0000002293624700, 0.0000006433708500, -0.0000013157852400, 0.0000030703785700, - 0.0000303736794400, -0.0000022471040100, 0.0000009824735600, -0.0000005614528900, - 0.0000004139136400, -0.0000004080198200, 0.0000004959857600, -0.0000004896598000}, - { -0.0000000766591100, -0.0000002686928900, 0.0000002754921900, -0.0000000662665200, - -0.0000002299129500, 0.0000006466426100, -0.0000013251271900, 0.0000030994692400, - 0.0000303698508100, -0.0000022758266200, 0.0000009976047300, -0.0000005715080300, - 0.0000004199827500, -0.0000004118619000, 0.0000004991603200, -0.0000004928421800}, - { -0.0000000771897700, -0.0000002688143900, 0.0000002753279200, -0.0000000663161200, - -0.0000002311137900, 0.0000006508681700, -0.0000013345456800, 0.0000031285977700, - 0.0000303659766600, -0.0000023032853100, 0.0000010133649800, -0.0000005813434400, - 0.0000004268203300, -0.0000004168660700, 0.0000005027973800, -0.0000004954054600}, - { -0.0000000775874300, -0.0000002678215700, 0.0000002759243400, -0.0000000663934100, - -0.0000002324484400, 0.0000006541662700, -0.0000013438640200, 0.0000031578389200, - 0.0000303617696900, -0.0000023316437000, 0.0000010294044300, -0.0000005916048600, - 0.0000004331218000, -0.0000004210712400, 0.0000005053314100, -0.0000004976115300}, - { -0.0000000781019600, -0.0000002679339200, 0.0000002756838700, -0.0000000661553700, - -0.0000002330048900, 0.0000006575368200, -0.0000013522135600, 0.0000031870307600, - 0.0000303587200300, -0.0000023593760200, 0.0000010444472000, -0.0000006015436800, - 0.0000004402065400, -0.0000004251580600, 0.0000005086442900, -0.0000005008967600}, - { -0.0000000784186200, -0.0000002671460600, 0.0000002753849700, -0.0000000661193300, - -0.0000002343698500, 0.0000006608303400, -0.0000013614934700, 0.0000032163622800, - 0.0000303542329100, -0.0000023875417200, 0.0000010604498100, -0.0000006117430000, - 0.0000004462875900, -0.0000004301162100, 0.0000005122582000, -0.0000005033354700}, - { -0.0000000790060900, -0.0000002670435300, 0.0000002760669100, -0.0000000660699900, - -0.0000002347647400, 0.0000006639524200, -0.0000013708092900, 0.0000032447376800, - 0.0000303498774900, -0.0000024159306200, 0.0000010756094800, -0.0000006218141400, - 0.0000004535552600, -0.0000004345436200, 0.0000005149409700, -0.0000005056179700}, - { -0.0000000793256200, -0.0000002662733600, 0.0000002757935000, -0.0000000660639200, - -0.0000002360988600, 0.0000006672169900, -0.0000013801224500, 0.0000032743987500, - 0.0000303460194300, -0.0000024440923300, 0.0000010917290800, -0.0000006321772900, - 0.0000004598983100, -0.0000004386048500, 0.0000005182927100, -0.0000005089678500}, - { -0.0000000798421400, -0.0000002663989900, 0.0000002756297000, -0.0000000661054500, - -0.0000002373851700, 0.0000006703786000, -0.0000013892349300, 0.0000033037596300, - 0.0000303413510200, -0.0000024710885300, 0.0000011075401800, -0.0000006421881700, - 0.0000004669293700, -0.0000004437547500, 0.0000005220209500, -0.0000005114783000}, - { -0.0000000801279400, -0.0000002656330700, 0.0000002752971400, -0.0000000658573800, - -0.0000002379104500, 0.0000006737428400, -0.0000013977140000, 0.0000033324125700, - 0.0000303374972100, -0.0000024994140700, 0.0000011228843600, -0.0000006526058700, - 0.0000004734510300, -0.0000004481928500, 0.0000005247478500, -0.0000005138134800}, - { -0.0000000807307300, -0.0000002655561700, 0.0000002760752200, -0.0000000660917000, - -0.0000002390857100, 0.0000006768397200, -0.0000014068603800, 0.0000033621534300, - 0.0000303332931800, -0.0000025273538400, 0.0000011389660100, -0.0000006628580100, - 0.0000004808058900, -0.0000004525112200, 0.0000005283024100, -0.0000005174599300}, - { -0.0000000810410400, -0.0000002647879500, 0.0000002757788100, -0.0000000659822800, - -0.0000002392746100, 0.0000006808149800, -0.0000014163218900, 0.0000033911264900, - 0.0000303289891500, -0.0000025552150000, 0.0000011550770700, -0.0000006731633300, - 0.0000004882070200, -0.0000004569322900, 0.0000005320551900, -0.0000005200360700}, - { -0.0000000815493900, -0.0000002649463500, 0.0000002756849600, -0.0000000660759200, - -0.0000002405245800, 0.0000006840045300, -0.0000014256420100, 0.0000034200612800, - 0.0000303246711500, -0.0000025832407000, 0.0000011703557800, -0.0000006835218200, - 0.0000004945699400, -0.0000004623184600, 0.0000005349893100, -0.0000005224926800}, - { -0.0000000818255300, -0.0000002641882000, 0.0000002753575300, -0.0000000658712000, - -0.0000002409717000, 0.0000006872439200, -0.0000014340074900, 0.0000034489243800, - 0.0000303202188800, -0.0000026110236100, 0.0000011865377600, -0.0000006939263300, - 0.0000005020650000, -0.0000004667616900, 0.0000005385875600, -0.0000005260165300}, - { -0.0000000824295400, -0.0000002641015800, 0.0000002761659300, -0.0000000661736600, - -0.0000002420492700, 0.0000006902452300, -0.0000014430720500, 0.0000034789552300, - 0.0000303152032300, -0.0000026395378600, 0.0000012028731400, -0.0000007046166400, - 0.0000005088017800, -0.0000004713545300, 0.0000005414457900, -0.0000005284879700}, - { -0.0000000827077700, -0.0000002633626200, 0.0000002758707300, -0.0000000659803100, - -0.0000002424890300, 0.0000006934810400, -0.0000014514347800, 0.0000035080728500, - 0.0000303114481500, -0.0000026675115000, 0.0000012182095400, -0.0000007148973700, - 0.0000005161314600, -0.0000004768172600, 0.0000005454664900, -0.0000005312372600}, - { -0.0000000832149000, -0.0000002635253900, 0.0000002757890500, -0.0000000661304500, - -0.0000002436456100, 0.0000006965471700, -0.0000014606652200, 0.0000035372382500, - 0.0000303065098100, -0.0000026950110700, 0.0000012344296500, -0.0000007255591100, - 0.0000005228310500, -0.0000004812448700, 0.0000005492759000, -0.0000005338761500}, - { -0.0000000835595400, -0.0000002625576200, 0.0000002763550700, -0.0000000660398000, - -0.0000002441798600, 0.0000006987700700, -0.0000014687960800, 0.0000035664170800, - 0.0000303024793500, -0.0000027226932800, 0.0000012507686500, -0.0000007362011400, - 0.0000005306264800, -0.0000004861076400, 0.0000005521878400, -0.0000005375829600}, - { -0.0000000840529300, -0.0000002627331400, 0.0000002763058500, -0.0000000662228600, - -0.0000002453253700, 0.0000007018769500, -0.0000014782113000, 0.0000035948446100, - 0.0000302972042600, -0.0000027509888900, 0.0000012671612300, -0.0000007469387600, - 0.0000005372340600, -0.0000004915494200, 0.0000005562631500, -0.0000005403790100}, - { -0.0000000843220100, -0.0000002620023800, 0.0000002760230300, -0.0000000660605900, - -0.0000002456982100, 0.0000007050007700, -0.0000014864692500, 0.0000036241695300, - 0.0000302928958400, -0.0000027786579600, 0.0000012825587300, -0.0000007574066800, - 0.0000005449141300, -0.0000004962376800, 0.0000005602376800, -0.0000005431440200}, - { -0.0000000848374500, -0.0000002621758400, 0.0000002759921300, -0.0000000662808200, - -0.0000002467783200, 0.0000007079958900, -0.0000014956855300, 0.0000036538564300, - 0.0000302880652200, -0.0000028068772200, 0.0000012990451100, -0.0000007683264800, - 0.0000005518700600, -0.0000005009907900, 0.0000005630853800, -0.0000005466715000}, - { -0.0000000851700900, -0.0000002612329100, 0.0000002766079600, -0.0000000662984200, - -0.0000002470535200, 0.0000007110968900, -0.0000015040742100, 0.0000036823681900, - 0.0000302836038100, -0.0000028342627700, 0.0000013153651000, -0.0000007789506200, - 0.0000005594863000, -0.0000005067111000, 0.0000005673345500, -0.0000005495962500}, - { -0.0000000856978400, -0.0000002613369900, 0.0000002763436900, -0.0000000673963700, - -0.0000002480246400, 0.0000007141770500, -0.0000015122696500, 0.0000037119392900, - 0.0000302785848400, -0.0000028623546600, 0.0000013318487200, -0.0000007897426600, - 0.0000005674706600, -0.0000005118090200, 0.0000005705570200, -0.0000005523266400}, - { -0.0000000859635800, -0.0000002606209100, 0.0000002760875300, -0.0000000672918600, - -0.0000002482718300, 0.0000007170544900, -0.0000015215522800, 0.0000037407381800, - 0.0000302738295200, -0.0000028897800000, 0.0000013473662100, -0.0000008005370600, - 0.0000005743489200, -0.0000005163726600, 0.0000005743450200, -0.0000005560237100}, - { -0.0000000863002200, -0.0000002596834100, 0.0000002767923100, -0.0000000675974400, - -0.0000002493386100, 0.0000007201598200, -0.0000015297293000, 0.0000037704094600, - 0.0000302685277400, -0.0000029176984600, 0.0000013637747600, -0.0000008112433600, - 0.0000005820627000, -0.0000005221758100, 0.0000005786648100, -0.0000005590368200}, - { -0.0000000867828800, -0.0000002598670200, 0.0000002766900000, -0.0000000675186800, - -0.0000002497981300, 0.0000007223193600, -0.0000015379756300, 0.0000037993797900, - 0.0000302642069200, -0.0000029458517200, 0.0000013805185000, -0.0000008225058800, - 0.0000005893724000, -0.0000005272906200, 0.0000005819685000, -0.0000005618333200}, - { -0.0000000870433100, -0.0000002591465700, 0.0000002764455200, -0.0000000674653700, - -0.0000002499759200, 0.0000007250951700, -0.0000015471874400, 0.0000038284268000, - 0.0000302587106700, -0.0000029736435400, 0.0000013970133000, -0.0000008333790400, - 0.0000005973581100, -0.0000005321845400, 0.0000005859684300, -0.0000005657037700}, - { -0.0000000875301600, -0.0000002593729700, 0.0000002764759200, -0.0000000677160100, - -0.0000002510659300, 0.0000007282648600, -0.0000015556232000, 0.0000038575785600, - 0.0000302541430200, -0.0000030018298000, 0.0000014128120100, -0.0000008444322900, - 0.0000006045352000, -0.0000005370854200, 0.0000005902462900, -0.0000005689051600}, - { -0.0000000878577700, -0.0000002584426900, 0.0000002771222400, -0.0000000678044400, - -0.0000002512230800, 0.0000007312074800, -0.0000015638780000, 0.0000038866667200, - 0.0000302496054000, -0.0000030288050400, 0.0000014292583100, -0.0000008553225900, - 0.0000006124864000, -0.0000005432964900, 0.0000005938417900, -0.0000005718682200}, - { -0.0000000883371200, -0.0000002586549000, 0.0000002771330800, -0.0000000680774600, - -0.0000002522537800, 0.0000007342861000, -0.0000015721824200, 0.0000039157112000, - 0.0000302437909100, -0.0000030564097400, 0.0000014458560600, -0.0000008665183400, - 0.0000006197183700, -0.0000005481519600, 0.0000005978394700, -0.0000005757587300}, - { -0.0000000885670100, -0.0000002579613300, 0.0000002768808300, -0.0000000679473400, - -0.0000002527024400, 0.0000007363441100, -0.0000015802899000, 0.0000039449376300, - 0.0000302387399600, -0.0000030841085500, 0.0000014625338400, -0.0000008776679900, - 0.0000006280742400, -0.0000005535923100, 0.0000006013604000, -0.0000005787145500}, - { -0.0000000891447000, -0.0000002579042300, 0.0000002777178000, -0.0000000681709200, - -0.0000002527331400, 0.0000007391840300, -0.0000015884752000, 0.0000039742056100, - 0.0000302336098600, -0.0000031117719900, 0.0000014792369000, -0.0000008889397700, - 0.0000006352081900, -0.0000005595185800, 0.0000006058727200, -0.0000005818964100}, - { -0.0000000893764400, -0.0000002572520300, 0.0000002775953500, -0.0000000683794500, - -0.0000002538011700, 0.0000007422582300, -0.0000015967839100, 0.0000040036207000, - 0.0000302282936600, -0.0000031394934700, 0.0000014949546000, -0.0000008998513600, - 0.0000006433987600, -0.0000005646959300, 0.0000006102867800, -0.0000005850311400}, - { -0.0000000899005400, -0.0000002573622600, 0.0000002772999400, -0.0000000692720800, - -0.0000002539675700, 0.0000007441443200, -0.0000016048205900, 0.0000040332527300, - 0.0000302235443400, -0.0000031680564700, 0.0000015119563200, -0.0000009112249200, - 0.0000006519185100, -0.0000005702277700, 0.0000006137124600, -0.0000005890136500}, - { -0.0000000902066000, -0.0000002564399000, 0.0000002779793900, -0.0000000694252800, - -0.0000002540354300, 0.0000007470292100, -0.0000016132038300, 0.0000040618118300, - 0.0000302181358200, -0.0000031955488100, 0.0000015287200700, -0.0000009226118300, - 0.0000006591765300, -0.0000005762778500, 0.0000006183472900, -0.0000005922781400}, - { -0.0000000906938700, -0.0000002566684400, 0.0000002780297700, -0.0000000697575600, - -0.0000002549585000, 0.0000007499502500, -0.0000016213682700, 0.0000040913759200, - 0.0000302123085100, -0.0000032226770800, 0.0000015450858700, -0.0000009346907400, - 0.0000006678209600, -0.0000005819558300, 0.0000006220559900, -0.0000005953802600}, - { -0.0000000909073800, -0.0000002560158500, 0.0000002778219800, -0.0000000696753300, - -0.0000002553495700, 0.0000007519854200, -0.0000016296539100, 0.0000041202514700, - 0.0000302075447000, -0.0000032502060800, 0.0000015620155600, -0.0000009463128500, - 0.0000006754676200, -0.0000005871819500, 0.0000006264360200, -0.0000005997784800}, - { -0.0000000914005100, -0.0000002562081100, 0.0000002778180000, -0.0000000697783700, - -0.0000002553821800, 0.0000007547123000, -0.0000016377089100, 0.0000041498813500, - 0.0000302013593200, -0.0000032784352400, 0.0000015779698800, -0.0000009574791300, - 0.0000006838885700, -0.0000005925655500, 0.0000006310258300, -0.0000006030707600}, - { -0.0000000917048000, -0.0000002553292100, 0.0000002786094000, -0.0000000702405400, - -0.0000002562617900, 0.0000007576990700, -0.0000016461435000, 0.0000041789551900, - 0.0000301962237800, -0.0000033057262400, 0.0000015948108300, -0.0000009690267000, - 0.0000006913942100, -0.0000005990311300, 0.0000006349328800, -0.0000006062933900}, - { -0.0000000921807000, -0.0000002555562000, 0.0000002785897700, -0.0000000702731900, - -0.0000002565562900, 0.0000007595979900, -0.0000016542771000, 0.0000042079113900, - 0.0000301910604800, -0.0000033329631800, 0.0000016116562300, -0.0000009804671800, - 0.0000007000329800, -0.0000006045818500, 0.0000006396695800, -0.0000006096934600}, - { -0.0000000924334400, -0.0000002548160800, 0.0000002781648600, -0.0000000711981100, - -0.0000002564257200, 0.0000007623115300, -0.0000016625851600, 0.0000042371265900, - 0.0000301854227800, -0.0000033610088700, 0.0000016287909800, -0.0000009922951400, - 0.0000007079130900, -0.0000006101996500, 0.0000006432255400, -0.0000006137812800}, - { -0.0000000927029000, -0.0000002539353500, 0.0000002789348200, -0.0000000715860200, - -0.0000002576064600, 0.0000007646012100, -0.0000016699057600, 0.0000042661393000, - 0.0000301797671500, -0.0000033890060300, 0.0000016458330300, -0.0000010038799500, - 0.0000007167086900, -0.0000006158957400, 0.0000006480627500, -0.0000006172693900}, - { -0.0000000931902700, -0.0000002541677100, 0.0000002789556600, -0.0000000717300000, - -0.0000002575750000, 0.0000007673144100, -0.0000016781259600, 0.0000042953309700, - 0.0000301741305700, -0.0000034159645200, 0.0000016627163700, -0.0000010155742500, - 0.0000007243536900, -0.0000006224969100, 0.0000006520927200, -0.0000006205898400}, - { -0.0000000933911800, -0.0000002535183000, 0.0000002787827800, -0.0000000716968300, - -0.0000002578831000, 0.0000007691723300, -0.0000016861993700, 0.0000043245651300, - 0.0000301682214200, -0.0000034440183200, 0.0000016788863600, -0.0000010270201400, - 0.0000007330632700, -0.0000006281032900, 0.0000006567502700, -0.0000006252289300}, - { -0.0000000939577700, -0.0000002534998100, 0.0000002796975700, -0.0000000720236600, - -0.0000002578087200, 0.0000007720653400, -0.0000016935463200, 0.0000043538995400, - 0.0000301633352100, -0.0000034711193400, 0.0000016959520500, -0.0000010389329800, - 0.0000007410503600, -0.0000006337047100, 0.0000006615790600, -0.0000006287412000}, - { -0.0000000941518100, -0.0000002528823500, 0.0000002796070900, -0.0000000722919300, - -0.0000002589426200, 0.0000007740582000, -0.0000017016393700, 0.0000043833061900, - 0.0000301569791200, -0.0000034986501900, 0.0000017129209400, -0.0000010505114500, - 0.0000007497394200, -0.0000006406316800, 0.0000006658344700, -0.0000006322346100}, - { -0.0000000946421000, -0.0000002531073000, 0.0000002796544700, -0.0000000724851500, - -0.0000002588324800, 0.0000007766585900, -0.0000017097850700, 0.0000044127692000, - 0.0000301505220000, -0.0000035261474700, 0.0000017300143900, -0.0000010624650100, - 0.0000007577627400, -0.0000006462535400, 0.0000006707002900, -0.0000006357778700}, - { -0.0000000949359500, -0.0000002521316700, 0.0000002800927700, -0.0000000735266600, - -0.0000002588925400, 0.0000007786312500, -0.0000017171090300, 0.0000044413545900, - 0.0000301451854500, -0.0000035540053600, 0.0000017473398600, -0.0000010743983400, - 0.0000007669196200, -0.0000006524338300, 0.0000006746574400, -0.0000006401639200}, - { -0.0000000954362300, -0.0000002523680400, 0.0000002801635500, -0.0000000737454900, - -0.0000002587518900, 0.0000007812074200, -0.0000017252787500, 0.0000044711874800, - 0.0000301393202700, -0.0000035815202400, 0.0000017645387000, -0.0000010864711900, - 0.0000007750585800, -0.0000006581589800, 0.0000006796203400, -0.0000006438009700}, - { -0.0000000956035500, -0.0000002517691400, 0.0000002800277200, -0.0000000737232300, - -0.0000002591035300, 0.0000007833242200, -0.0000017326384300, 0.0000044998869000, - 0.0000301337182700, -0.0000036093943200, 0.0000017809064300, -0.0000010981524900, - 0.0000007839125400, -0.0000006652924700, 0.0000006840684600, -0.0000006474304300}, - { -0.0000000961768900, -0.0000002517572500, 0.0000002810197300, -0.0000000743330300, - -0.0000002599865500, 0.0000007850982300, -0.0000017405665400, 0.0000045296336600, - 0.0000301279455500, -0.0000036359405400, 0.0000017979361500, -0.0000011101909300, - 0.0000007921089700, -0.0000006710841700, 0.0000006891483500, -0.0000006513718100}, - { -0.0000000963551800, -0.0000002511606900, 0.0000002809097600, -0.0000000744270100, - -0.0000002600023100, 0.0000007880162200, -0.0000017480905500, 0.0000045585787000, - 0.0000301219274700, -0.0000036633262700, 0.0000018151488300, -0.0000011221145500, - 0.0000008012401600, -0.0000006770837100, 0.0000006940658100, -0.0000006560412300}, - { -0.0000000968652300, -0.0000002513137500, 0.0000002806943500, -0.0000000754654000, - -0.0000002599054600, 0.0000007895994400, -0.0000017561716500, 0.0000045876647100, - 0.0000301155082000, -0.0000036915500100, 0.0000018327200500, -0.0000011345476800, - 0.0000008097770300, -0.0000006833460100, 0.0000006983825400, -0.0000006596465200}, - { -0.0000000970271500, -0.0000002507180900, 0.0000002805563000, -0.0000000754783900, - -0.0000002601855100, 0.0000007916113200, -0.0000017634207100, 0.0000046165570800, - 0.0000301092874000, -0.0000037187988000, 0.0000018499388000, -0.0000011464768800, - 0.0000008187619300, -0.0000006903834600, 0.0000007038598500, -0.0000006636191300}, - { -0.0000000975884100, -0.0000002506921900, 0.0000002815167300, -0.0000000759066900, - -0.0000002599558300, 0.0000007943302900, -0.0000017707594600, 0.0000046455528400, - 0.0000301029284000, -0.0000037460064500, 0.0000018672889900, -0.0000011588469400, - 0.0000008272917200, -0.0000006966950500, 0.0000007082025300, -0.0000006672404900}, - { -0.0000000977775800, -0.0000002500954000, 0.0000002814043200, -0.0000000759764200, - -0.0000002601193300, 0.0000007960205400, -0.0000017789132800, 0.0000046750583700, - 0.0000300971836600, -0.0000037732212300, 0.0000018846008900, -0.0000011709400800, - 0.0000008366076000, -0.0000007028371700, 0.0000007132703000, -0.0000006720561000}, - { -0.0000000982640700, -0.0000002503047600, 0.0000002812783500, -0.0000000772729700, - -0.0000002609428000, 0.0000007980042300, -0.0000017860728900, 0.0000047040567000, - 0.0000300906624700, -0.0000038005599900, 0.0000019011206000, -0.0000011831617600, - 0.0000008451307000, -0.0000007091540900, 0.0000007176317300, -0.0000006756891400}, - { -0.0000000985371100, -0.0000002494154700, 0.0000002820679000, -0.0000000776398500, - -0.0000002607418500, 0.0000008007388400, -0.0000017934700400, 0.0000047335766700, - 0.0000300844278100, -0.0000038285177900, 0.0000019186232700, -0.0000011953311100, - 0.0000008543197100, -0.0000007164042200, 0.0000007233149500, -0.0000006798540800}, - { -0.0000000987006200, -0.0000002488366700, 0.0000002819585000, -0.0000000777006200, - -0.0000002609399200, 0.0000008026572200, -0.0000018006655200, 0.0000047630120500, - 0.0000300783801700, -0.0000038555831700, 0.0000019361129300, -0.0000012079179200, - 0.0000008630964100, -0.0000007229475600, 0.0000007279247200, -0.0000006839293900}, - { -0.0000000991790800, -0.0000002490903500, 0.0000002820404900, -0.0000000778976000, - -0.0000002609670800, 0.0000008041528500, -0.0000018085444700, 0.0000047923413800, - 0.0000300712721600, -0.0000038822537300, 0.0000019533132300, -0.0000012200346800, - 0.0000008724921800, -0.0000007291803100, 0.0000007330615400, -0.0000006888043700}, - { -0.0000000994223400, -0.0000002482150700, 0.0000002828146400, -0.0000000781936000, - -0.0000002610430800, 0.0000008060409500, -0.0000018159587600, 0.0000048210544400, - 0.0000300648793200, -0.0000039101469100, 0.0000019710850400, -0.0000012328366300, - 0.0000008814417700, -0.0000007358544200, 0.0000007377316500, -0.0000006926866100}, - { -0.0000000999231800, -0.0000002484009500, 0.0000002826100200, -0.0000000792419400, - -0.0000002609247300, 0.0000008077029200, -0.0000018229228000, 0.0000048504934800, - 0.0000300585104500, -0.0000039369675200, 0.0000019885022200, -0.0000012451522700, - 0.0000008910574100, -0.0000007423567800, 0.0000007433072000, -0.0000006968240600}, - { -0.0000001000945500, -0.0000002478474500, 0.0000002825789700, -0.0000000794439900, - -0.0000002607855100, 0.0000008105184800, -0.0000018306252700, 0.0000048797495500, - 0.0000300525821900, -0.0000039647806700, 0.0000020062891600, -0.0000012579180400, - 0.0000008997547100, -0.0000007499733800, 0.0000007482806700, -0.0000007009147900}, - { -0.0000001006580300, -0.0000002478145100, 0.0000002835512200, -0.0000000798497500, - -0.0000002607487200, 0.0000008121814200, -0.0000018375427900, 0.0000049092597200, - 0.0000300460428800, -0.0000039917450300, 0.0000020228151600, -0.0000012700466400, - 0.0000009092708900, -0.0000007563628700, 0.0000007535511600, -0.0000007059152000}, - { -0.0000001008355200, -0.0000002471553400, 0.0000002831584800, -0.0000000808105100, - -0.0000002606745200, 0.0000008139326600, -0.0000018448182600, 0.0000049381202700, - 0.0000300391149900, -0.0000040192877300, 0.0000020406004000, -0.0000012829151000, - 0.0000009182604800, -0.0000007628580400, 0.0000007591957300, -0.0000007101149600}, - { -0.0000001013982200, -0.0000002471464900, 0.0000002841559200, -0.0000000812553500, - -0.0000002606187400, 0.0000008156499100, -0.0000018520619000, 0.0000049672014200, - 0.0000300332528600, -0.0000040460854200, 0.0000020581902400, -0.0000012954925100, - 0.0000009282076700, -0.0000007699103200, 0.0000007641451600, -0.0000007142203300}, - { -0.0000001015410900, -0.0000002465827800, 0.0000002840812400, -0.0000000813752200, - -0.0000002607328400, 0.0000008174805900, -0.0000018593391800, 0.0000049961784800, - 0.0000300260370700, -0.0000040734108300, 0.0000020758957600, -0.0000013083002200, - 0.0000009369503200, -0.0000007773543100, 0.0000007701593500, -0.0000007189132600}, - { -0.0000001020138600, -0.0000002468794900, 0.0000002842431500, -0.0000000816356100, - -0.0000002607611600, 0.0000008192356500, -0.0000018666130300, 0.0000050254997100, - 0.0000300195390400, -0.0000041008289300, 0.0000020936736300, -0.0000013210161600, - 0.0000009469910200, -0.0000007844275500, 0.0000007748911800, -0.0000007239595400}, - { -0.0000001022805800, -0.0000002458999000, 0.0000002846963800, -0.0000000828329300, - -0.0000002605038900, 0.0000008207999600, -0.0000018736947600, 0.0000050544717400, - 0.0000300121126000, -0.0000041280619200, 0.0000021114682600, -0.0000013339966800, - 0.0000009561255200, -0.0000007910621800, 0.0000007806632000, -0.0000007282763500}, - { -0.0000001027526900, -0.0000002462055200, 0.0000002848515400, -0.0000000830876200, - -0.0000002605154700, 0.0000008224995500, -0.0000018808660100, 0.0000050837682400, - 0.0000300056546100, -0.0000041544493000, 0.0000021290236500, -0.0000013466505100, - 0.0000009661947700, -0.0000007982526900, 0.0000007857386900, -0.0000007324914900}, - { -0.0000001029015400, -0.0000002456559500, 0.0000002848095500, -0.0000000832295700, - -0.0000002605985800, 0.0000008242689200, -0.0000018881182900, 0.0000051132245200, - 0.0000299987943200, -0.0000041819414400, 0.0000021460165700, -0.0000013595099000, - 0.0000009753117800, -0.0000008049069000, 0.0000007915606500, -0.0000007368637400}, - { -0.0000001034829400, -0.0000002455432800, 0.0000002854963900, -0.0000000845516700, - -0.0000002603155800, 0.0000008260465800, -0.0000018942531200, 0.0000051423553400, - 0.0000299919862100, -0.0000042091828500, 0.0000021638799100, -0.0000013722881700, - 0.0000009852191300, -0.0000008130314500, 0.0000007966615900, -0.0000007421596100}, - { -0.0000001036184000, -0.0000002450114700, 0.0000002854590200, -0.0000000847135700, - -0.0000002603834000, 0.0000008278482500, -0.0000019017700500, 0.0000051710800600, - 0.0000299849767900, -0.0000042362922600, 0.0000021817938400, -0.0000013854742200, - 0.0000009945759200, -0.0000008198836000, 0.0000008026496300, -0.0000007466532300}, - { -0.0000001037730800, -0.0000002444743300, 0.0000002854305800, -0.0000000848986600, - -0.0000002604044700, 0.0000008295552500, -0.0000019090033000, 0.0000052010247800, - 0.0000299784559000, -0.0000042634176100, 0.0000021997806500, -0.0000013987692600, - 0.0000010041094600, -0.0000008271562400, 0.0000008079345200, -0.0000007513280300}, - { -0.0000001043455200, -0.0000002444344500, 0.0000002864501800, -0.0000000854285500, - -0.0000002602041500, 0.0000008310446500, -0.0000019159837900, 0.0000052305586800, - 0.0000299710502400, -0.0000042902559300, 0.0000022175330800, -0.0000014116237900, - 0.0000010143265600, -0.0000008342511600, 0.0000008140629300, -0.0000007559512700}, - { -0.0000001044875200, -0.0000002438248600, 0.0000002860802800, -0.0000000864181800, - -0.0000002600981100, 0.0000008329727400, -0.0000019224621200, 0.0000052591247500, - 0.0000299637947900, -0.0000043172229900, 0.0000022355720200, -0.0000014249993700, - 0.0000010239585900, -0.0000008416132400, 0.0000008193382200, -0.0000007603296800}, - { -0.0000001049660900, -0.0000002441463500, 0.0000002862933200, -0.0000000867444000, - -0.0000002600374000, 0.0000008346423900, -0.0000019298671600, 0.0000052882824900, - 0.0000299571471100, -0.0000043441724600, 0.0000022534686200, -0.0000014379049200, - 0.0000010339539800, -0.0000008496004600, 0.0000008255099600, -0.0000007660450500}, - { -0.0000001051839000, -0.0000002432661800, 0.0000002871064200, -0.0000000871418100, - -0.0000002599735200, 0.0000008364846400, -0.0000019359975400, 0.0000053178429700, - 0.0000299491463500, -0.0000043720040800, 0.0000022707641400, -0.0000014511589100, - 0.0000010435528000, -0.0000008569545100, 0.0000008307898100, -0.0000007704528800}, - { -0.0000001056944400, -0.0000002434904100, 0.0000002869839900, -0.0000000883216200, - -0.0000002596486400, 0.0000008379552700, -0.0000019432499100, 0.0000053470206400, - 0.0000299422575400, -0.0000043988296500, 0.0000022887494700, -0.0000014642563600, - 0.0000010540183700, -0.0000008642947600, 0.0000008371567300, -0.0000007752716200}, - { -0.0000001059278600, -0.0000002426308700, 0.0000002878112600, -0.0000000887696700, - -0.0000002594827000, 0.0000008395133400, -0.0000019505511500, 0.0000053763206500, - 0.0000299351847700, -0.0000044255915700, 0.0000023068158700, -0.0000014777689900, - 0.0000010638181300, -0.0000008718424600, 0.0000008427026200, -0.0000007801564500}, - { -0.0000001063908000, -0.0000002429340400, 0.0000002879382200, -0.0000000887586200, - -0.0000002586331800, 0.0000008411993400, -0.0000019568733800, 0.0000054053355000, - 0.0000299282071600, -0.0000044524238300, 0.0000023251997700, -0.0000014901532300, - 0.0000010741407000, -0.0000008790859100, 0.0000008487210700, -0.0000007858185900}, - { -0.0000001065244000, -0.0000002423263600, 0.0000002875630100, -0.0000000897083200, - -0.0000002587760600, 0.0000008421815400, -0.0000019630506300, 0.0000054344370000, - 0.0000299207159000, -0.0000044799707800, 0.0000023436300800, -0.0000015039485700, - 0.0000010841905100, -0.0000008868051200, 0.0000008543139300, -0.0000007904789100}, - { -0.0000001071045600, -0.0000002422944100, 0.0000002886222600, -0.0000000903092500, - -0.0000002584785900, 0.0000008436057700, -0.0000019701857900, 0.0000054637916200, - 0.0000299132742800, -0.0000045064497900, 0.0000023616380100, -0.0000015174084700, - 0.0000010937108800, -0.0000008952392000, 0.0000008600802500, -0.0000007952339000}, - { -0.0000001072495600, -0.0000002416975800, 0.0000002882721100, -0.0000000913301400, - -0.0000002582942100, 0.0000008453838100, -0.0000019764945900, 0.0000054929607400, - 0.0000299058734900, -0.0000045332341000, 0.0000023788158500, -0.0000015304227600, - 0.0000011042483200, -0.0000009027145700, 0.0000008665715200, -0.0000008001667100}, - { -0.0000001077376400, -0.0000002420012800, 0.0000002885109500, -0.0000000917271300, - -0.0000002580907300, 0.0000008468413700, -0.0000019836708300, 0.0000055225670900, - 0.0000298977325900, -0.0000045602981800, 0.0000023970548200, -0.0000015441580200, - 0.0000011142744200, -0.0000009104537200, 0.0000008722251100, -0.0000008048876900}, - { -0.0000001079321400, -0.0000002411773500, 0.0000002893394800, -0.0000000920943200, - -0.0000002583378800, 0.0000008478936300, -0.0000019901475900, 0.0000055512440700, - 0.0000298911585300, -0.0000045870162900, 0.0000024153171400, -0.0000015576602500, - 0.0000011251768000, -0.0000009181661000, 0.0000008787159000, -0.0000008112103700}, - { -0.0000001084311600, -0.0000002413690800, 0.0000002891307200, -0.0000000929480500, - -0.0000002571357000, 0.0000008492748700, -0.0000019961847400, 0.0000055805182500, - 0.0000298830136900, -0.0000046141044500, 0.0000024337335900, -0.0000015715846500, - 0.0000011353693700, -0.0000009260656400, 0.0000008844778800, -0.0000008160197200}, - { -0.0000001085440200, -0.0000002408972300, 0.0000002891576300, -0.0000000931811500, - -0.0000002571374100, 0.0000008512218400, -0.0000020029308800, 0.0000056094866900, - 0.0000298759763600, -0.0000046405144200, 0.0000024519846800, -0.0000015854163900, - 0.0000011454721200, -0.0000009336453400, 0.0000008911303700, -0.0000008211115400}, - { -0.0000001087840400, -0.0000002400214400, 0.0000002900157200, -0.0000000936969600, - -0.0000002568721700, 0.0000008526039100, -0.0000020100315900, 0.0000056395501800, - 0.0000298682066000, -0.0000046677919500, 0.0000024693755800, -0.0000015986171300, - 0.0000011560009200, -0.0000009425383800, 0.0000008972850800, -0.0000008261904500}, - { -0.0000001092599200, -0.0000002402600100, 0.0000002898882600, -0.0000000948207200, - -0.0000002568479900, 0.0000008534249200, -0.0000020162388700, 0.0000056680564700, - 0.0000298599300000, -0.0000046947568800, 0.0000024878475500, -0.0000016126306100, - 0.0000011662794000, -0.0000009502392800, 0.0000009040315200, -0.0000008313510700}, - { -0.0000001094674000, -0.0000002394239600, 0.0000002907384900, -0.0000000953100600, - -0.0000002566762900, 0.0000008551918400, -0.0000020227896300, 0.0000056970953100, - 0.0000298525257700, -0.0000047209041900, 0.0000025060099400, -0.0000016261962900, - 0.0000011773596800, -0.0000009584221800, 0.0000009097353100, -0.0000008372136900}, - { -0.0000001099661700, -0.0000002396213700, 0.0000002905172800, -0.0000000960917900, - -0.0000002557753000, 0.0000008556551400, -0.0000020285138500, 0.0000057267599400, - 0.0000298446320200, -0.0000047478375000, 0.0000025245702300, -0.0000016403414400, - 0.0000011877441200, -0.0000009662092200, 0.0000009165535000, -0.0000008424799700}, - { -0.0000001100755900, -0.0000002391414300, 0.0000002905602300, -0.0000000963826400, - -0.0000002557026600, 0.0000008574970900, -0.0000020351243300, 0.0000057560244000, - 0.0000298365825000, -0.0000047747110700, 0.0000025434302500, -0.0000016536709400, - 0.0000011980096900, -0.0000009743311000, 0.0000009226377800, -0.0000008478483800}, - { -0.0000001106899300, -0.0000002390253900, 0.0000002913287000, -0.0000000978876700, - -0.0000002551352000, 0.0000008590004000, -0.0000020415253900, 0.0000057854601300, - 0.0000298294423300, -0.0000048021033600, 0.0000025612282700, -0.0000016673561700, - 0.0000012092889000, -0.0000009827928200, 0.0000009288917500, -0.0000008530542400}, - { -0.0000001107825500, -0.0000002385153400, 0.0000002912420300, -0.0000000977036900, - -0.0000002545865100, 0.0000008597199400, -0.0000020476810000, 0.0000058145551600, - 0.0000298212478700, -0.0000048288066300, 0.0000025797833300, -0.0000016816027500, - 0.0000012198085900, -0.0000009907251900, 0.0000009358594600, -0.0000008584316600}, - { -0.0000001113605200, -0.0000002384780000, 0.0000002923485400, -0.0000000983932400, - -0.0000002542224400, 0.0000008612798400, -0.0000020540206700, 0.0000058438067100, - 0.0000298128451900, -0.0000048553232900, 0.0000025981636800, -0.0000016954362300, - 0.0000012312002500, -0.0000009992841500, 0.0000009421764400, -0.0000008636872000}, - { -0.0000001114931100, -0.0000002379174400, 0.0000002919927800, -0.0000000993979200, - -0.0000002542420300, 0.0000008620998100, -0.0000020602200500, 0.0000058732787100, - 0.0000298055673800, -0.0000048812541600, 0.0000026165585800, -0.0000017095016200, - 0.0000012413140100, -0.0000010079579700, 0.0000009490588100, -0.0000008700892600}, - { -0.0000001119665800, -0.0000002382694100, 0.0000002922998700, -0.0000000998529900, - -0.0000002540198000, 0.0000008638257800, -0.0000020669669800, 0.0000059018701600, - 0.0000297970747600, -0.0000049076921100, 0.0000026350960600, -0.0000017238147400, - 0.0000012520217600, -0.0000010164038100, 0.0000009553595700, -0.0000008753278600}, - { -0.0000001121930300, -0.0000002372946000, 0.0000002926808400, -0.0000001007501500, - -0.0000002530568000, 0.0000008642272200, -0.0000020728754500, 0.0000059312998000, - 0.0000297893741900, -0.0000049347375400, 0.0000026529402400, -0.0000017376589500, - 0.0000012634266200, -0.0000010246944100, 0.0000009626161500, -0.0000008809499600}, - { -0.0000001126794900, -0.0000002376553600, 0.0000002930143500, -0.0000001012468200, - -0.0000002528098100, 0.0000008659451000, -0.0000020796619900, 0.0000059603377300, - 0.0000297814833400, -0.0000049613614700, 0.0000026720176000, -0.0000017513336800, - 0.0000012740654600, -0.0000010331978800, 0.0000009690722000, -0.0000008866407500}, - { -0.0000001128974000, -0.0000002366817000, 0.0000002934650000, -0.0000001025446300, - -0.0000002525885700, 0.0000008665084700, -0.0000020855847900, 0.0000059897161500, - 0.0000297721129900, -0.0000049883464500, 0.0000026908098600, -0.0000017658755900, - 0.0000012849997300, -0.0000010418098600, 0.0000009755024700, -0.0000008920174300}, - { -0.0000001129829700, -0.0000002362132000, 0.0000002934410200, -0.0000001024611700, - -0.0000002517293800, 0.0000008683823800, -0.0000020914048900, 0.0000060185287000, - 0.0000297640606500, -0.0000050147624100, 0.0000027094554000, -0.0000017800540400, - 0.0000012966752800, -0.0000010503877000, 0.0000009829858100, -0.0000008978175500}, - { -0.0000001134965700, -0.0000002364533600, 0.0000002933528900, -0.0000001036539700, - -0.0000002515641700, 0.0000008689737800, -0.0000020973444000, 0.0000060482529200, - 0.0000297557115100, -0.0000050413365200, 0.0000027273058500, -0.0000017943142100, - 0.0000013074472100, -0.0000010588375400, 0.0000009890164700, -0.0000009040073800}, - { -0.0000001136940000, -0.0000002355925500, 0.0000002941289900, -0.0000001037794300, - -0.0000002507997500, 0.0000008695284800, -0.0000021036808600, 0.0000060775711600, - 0.0000297482132700, -0.0000050678910500, 0.0000027462057700, -0.0000018090535100, - 0.0000013184994200, -0.0000010672807300, 0.0000009964812300, -0.0000009098345900}, - { -0.0000001142165600, -0.0000002358437400, 0.0000002940699400, -0.0000001050877900, - -0.0000002502402100, 0.0000008709501200, -0.0000021101691400, 0.0000061067211800, - 0.0000297396279600, -0.0000050939241800, 0.0000027647756700, -0.0000018232338700, - 0.0000013303147900, -0.0000010762989400, 0.0000010032437200, -0.0000009154686400}, - { -0.0000001143817000, -0.0000002350196200, 0.0000002949420200, -0.0000001055769400, - -0.0000002503786900, 0.0000008721014300, -0.0000021156852500, 0.0000061355453400, - 0.0000297312718800, -0.0000051205897900, 0.0000027831555500, -0.0000018369198800, - 0.0000013411298100, -0.0000010850127500, 0.0000010098901500, -0.0000009213325600}, - { -0.0000001149066000, -0.0000002352278400, 0.0000002947918700, -0.0000001065202900, - -0.0000002489611700, 0.0000008732236600, -0.0000021220051600, 0.0000061647632000, - 0.0000297221172300, -0.0000051473353600, 0.0000028021068000, -0.0000018517173300, - 0.0000013522491900, -0.0000010935538100, 0.0000010174446400, -0.0000009272360200}, - { -0.0000001149887200, -0.0000002347967100, 0.0000002948573300, -0.0000001067597300, - -0.0000002492352100, 0.0000008744611200, -0.0000021276152500, 0.0000061941420000, - 0.0000297140614200, -0.0000051734216700, 0.0000028208189500, -0.0000018660250400, - 0.0000013639306600, -0.0000011036161100, 0.0000010246624400, -0.0000009332105500}, - { -0.0000001156099600, -0.0000002346166500, 0.0000002954987600, -0.0000001078834400, - -0.0000002480260300, 0.0000008746430300, -0.0000021336172300, 0.0000062236110400, - 0.0000297056151300, -0.0000052003778300, 0.0000028400005500, -0.0000018810443800, - 0.0000013752383900, -0.0000011122203700, 0.0000010319669900, -0.0000009400556800}, - { -0.0000001156792500, -0.0000002341776700, 0.0000002955577100, -0.0000001081090900, - -0.0000002482874600, 0.0000008758231200, -0.0000021390879000, 0.0000062526684700, - 0.0000296965665500, -0.0000052264429900, 0.0000028578727400, -0.0000018955461900, - 0.0000013863735500, -0.0000011211408300, 0.0000010387174600, -0.0000009457035400}, - { -0.0000001163170100, -0.0000002339996800, 0.0000002962141700, -0.0000001093302800, - -0.0000002466860000, 0.0000008767593500, -0.0000021452275300, 0.0000062822494300, - 0.0000296881395600, -0.0000052523860000, 0.0000028770277400, -0.0000019092348700, - 0.0000013982426200, -0.0000011303346500, 0.0000010456770600, -0.0000009515365500}, - { -0.0000001163895700, -0.0000002335754800, 0.0000002963079500, -0.0000001096137300, - -0.0000002469118700, 0.0000008780017100, -0.0000021511634200, 0.0000063110931400, - 0.0000296794244500, -0.0000052791038800, 0.0000028962045800, -0.0000019243677500, - 0.0000014097865300, -0.0000011393027300, 0.0000010536858700, -0.0000009581441000}, - { -0.0000001170125300, -0.0000002333956200, 0.0000002969450300, -0.0000001107234800, - -0.0000002456863700, 0.0000008780917600, -0.0000021569686100, 0.0000063405648500, - 0.0000296709109200, -0.0000053052763700, 0.0000029143138800, -0.0000019391070400, - 0.0000014211122400, -0.0000011483842100, 0.0000010606181300, -0.0000009639674100}, - { -0.0000001170874500, -0.0000002329660800, 0.0000002970330900, -0.0000001110081400, - -0.0000002459004700, 0.0000008793030100, -0.0000021628522100, 0.0000063695013000, - 0.0000296618745800, -0.0000053317589600, 0.0000029334344500, -0.0000019542481200, - 0.0000014326849900, -0.0000011573598100, 0.0000010685674300, -0.0000009702145300}, - { -0.0000001171914500, -0.0000002323961500, 0.0000002966009600, -0.0000001116909400, - -0.0000002450355900, 0.0000008799692100, -0.0000021679886200, 0.0000063990447900, - 0.0000296526171200, -0.0000053581877800, 0.0000029529044900, -0.0000019682702400, - 0.0000014449006700, -0.0000011668677900, 0.0000010757748000, -0.0000009762586000}, - { -0.0000001178072500, -0.0000002323403700, 0.0000002977740500, -0.0000001125189300, - -0.0000002444614700, 0.0000008813206900, -0.0000021746613300, 0.0000064282383100, - 0.0000296436562600, -0.0000053839700800, 0.0000029708485400, -0.0000019829369800, - 0.0000014562038800, -0.0000011759300000, 0.0000010824029000, -0.0000009829464000}, - { -0.0000001179124900, -0.0000002317979100, 0.0000002973757000, -0.0000001132168000, - -0.0000002435747100, 0.0000008820504400, -0.0000021802440100, 0.0000064574678500, - 0.0000296352017200, -0.0000054105959400, 0.0000029902690900, -0.0000019983871100, - 0.0000014680546000, -0.0000011851836600, 0.0000010906814900, -0.0000009898260300}, - { -0.0000001185031900, -0.0000002317376800, 0.0000002984984200, -0.0000001139351300, - -0.0000002434510900, 0.0000008828516100, -0.0000021853498100, 0.0000064870816200, - 0.0000296258886800, -0.0000054357841800, 0.0000030089125800, -0.0000020129945500, - 0.0000014804636400, -0.0000011948361700, 0.0000010980172100, -0.0000009959891000}, - { -0.0000001186088400, -0.0000002311933800, 0.0000002981060500, -0.0000001146354300, - -0.0000002425750100, 0.0000008835761000, -0.0000021908764800, 0.0000065163770900, - 0.0000296172290700, -0.0000054626925700, 0.0000030279417600, -0.0000020274570600, - 0.0000014920355400, -0.0000012042691300, 0.0000011052809300, -0.0000010020900500}, - { -0.0000001192214700, -0.0000002310334400, 0.0000002988338000, -0.0000001161750800, - -0.0000002421544800, 0.0000008842662600, -0.0000021962597300, 0.0000065452832100, - 0.0000296075847400, -0.0000054887446700, 0.0000030471019600, -0.0000020427698700, - 0.0000015038441400, -0.0000012134860100, 0.0000011134601100, -0.0000010085579200}, - { -0.0000001193029800, -0.0000002305832600, 0.0000002988510300, -0.0000001160745800, - -0.0000002415287100, 0.0000008851064800, -0.0000022018328800, 0.0000065747514100, - 0.0000295985303100, -0.0000055152663300, 0.0000030655950200, -0.0000020580030600, - 0.0000015157088900, -0.0000012231165800, 0.0000011208895700, -0.0000010148001100}, - { -0.0000001199255200, -0.0000002303988400, 0.0000002994947800, -0.0000001172180300, - -0.0000002403060700, 0.0000008854931500, -0.0000022070359700, 0.0000066040074000, - 0.0000295894792100, -0.0000055414282300, 0.0000030848876200, -0.0000020731638800, - 0.0000015285837100, -0.0000012331974000, 0.0000011286215600, -0.0000010212808300}, - { -0.0000001200034300, -0.0000002300011200, 0.0000002996071300, -0.0000001175466100, - -0.0000002404798200, 0.0000008866742900, -0.0000022131427200, 0.0000066328312100, - 0.0000295807177000, -0.0000055667568800, 0.0000031043216800, -0.0000020877200500, - 0.0000015401999100, -0.0000012423245400, 0.0000011365248300, -0.0000010290103500}, - { -0.0000001205321400, -0.0000002302348400, 0.0000002994763100, -0.0000001184119100, - -0.0000002394208300, 0.0000008871703300, -0.0000022183982500, 0.0000066622310400, - 0.0000295714067400, -0.0000055930893500, 0.0000031228731500, -0.0000021030519400, - 0.0000015521915600, -0.0000012520884000, 0.0000011440787900, -0.0000010353664500}, - { -0.0000001207424300, -0.0000002292788000, 0.0000002999278000, -0.0000001198036500, - -0.0000002390705100, 0.0000008878791700, -0.0000022237804200, 0.0000066918218000, - 0.0000295617466000, -0.0000056188447800, 0.0000031421091300, -0.0000021185866100, - 0.0000015643456400, -0.0000012619826700, 0.0000011517277400, -0.0000010418126800}, - { -0.0000001212436700, -0.0000002296230600, 0.0000003002379300, -0.0000001199058000, - -0.0000002383054500, 0.0000008886317900, -0.0000022295584100, 0.0000067206178800, - 0.0000295523834300, -0.0000056451724100, 0.0000031610777900, -0.0000021331865900, - 0.0000015760653300, -0.0000012712731400, 0.0000011600637200, -0.0000010484290500}, - { -0.0000001214616000, -0.0000002286436600, 0.0000003006011700, -0.0000001208867400, - -0.0000002371663200, 0.0000008890402300, -0.0000022347745200, 0.0000067505660900, - 0.0000295433201300, -0.0000056710441700, 0.0000031804218000, -0.0000021485136600, - 0.0000015891596000, -0.0000012815991100, 0.0000011680400300, -0.0000010551509800}, - { -0.0000001219729000, -0.0000002290053700, 0.0000003010061800, -0.0000001214114500, - -0.0000002371512600, 0.0000008900068000, -0.0000022406367600, 0.0000067795719500, - 0.0000295335292700, -0.0000056969680800, 0.0000031988588100, -0.0000021638667600, - 0.0000016012759800, -0.0000012915294700, 0.0000011757803200, -0.0000010616490000}, - { -0.0000001221768100, -0.0000002280163100, 0.0000003013484800, -0.0000001223949400, - -0.0000002359880400, 0.0000008903658200, -0.0000022457194700, 0.0000068091568200, - 0.0000295234898600, -0.0000057225248100, 0.0000032185366300, -0.0000021787511700, - 0.0000016132334200, -0.0000013010433300, 0.0000011843615700, -0.0000010688812000}, - { -0.0000001222885000, -0.0000002274839200, 0.0000003009550000, -0.0000001230956100, - -0.0000002350338500, 0.0000008909637200, -0.0000022513896200, 0.0000068385169700, - 0.0000295142943400, -0.0000057486437700, 0.0000032372518000, -0.0000021943625600, - 0.0000016255565900, -0.0000013111568500, 0.0000011922721200, -0.0000010755431700}, - { -0.0000001228791200, -0.0000002274200700, 0.0000003021279300, -0.0000001238353400, - -0.0000002352971000, 0.0000008913972000, -0.0000022561101300, 0.0000068676416600, - 0.0000295047141500, -0.0000057751817000, 0.0000032570797200, -0.0000022105269700, - 0.0000016383459600, -0.0000013216314100, 0.0000012004282000, -0.0000010824042300}, - { -0.0000001229834600, -0.0000002268726500, 0.0000003017029900, -0.0000001245178500, - -0.0000002343674400, 0.0000008919626500, -0.0000022616489300, 0.0000068966542100, - 0.0000294944915100, -0.0000058008634000, 0.0000032758671600, -0.0000022247384700, - 0.0000016509174100, -0.0000013312472500, 0.0000012086623000, -0.0000010900887700}, - { -0.0000001236321600, -0.0000002266647300, 0.0000003023412200, -0.0000001256945700, - -0.0000002330427000, 0.0000008922281200, -0.0000022670102300, 0.0000069259760100, - 0.0000294849437700, -0.0000058263509000, 0.0000032953544400, -0.0000022407065400, - 0.0000016635331800, -0.0000013416137200, 0.0000012167754700, -0.0000010969358900}, - { -0.0000001237037300, -0.0000002262428500, 0.0000003023848100, -0.0000001256128400, - -0.0000002324464800, 0.0000008933910800, -0.0000022719357000, 0.0000069553175900, - 0.0000294752983200, -0.0000058521997300, 0.0000033144550900, -0.0000022556496100, - 0.0000016757477900, -0.0000013517704400, 0.0000012247285200, -0.0000011036494600}, - { -0.0000001243631400, -0.0000002260491700, 0.0000003031143500, -0.0000001272367300, - -0.0000002318660300, 0.0000008938942400, -0.0000022774221100, 0.0000069848353600, - 0.0000294654140800, -0.0000058774188400, 0.0000033338099000, -0.0000022715294600, - 0.0000016882921900, -0.0000013617730300, 0.0000012337731100, -0.0000011112979600}, - { -0.0000001244616700, -0.0000002255007200, 0.0000003026834400, -0.0000001278495600, - -0.0000002312971700, 0.0000008936004500, -0.0000022826323700, 0.0000070143346800, - 0.0000294550501800, -0.0000059037642400, 0.0000033527611400, -0.0000022874644300, - 0.0000017009920100, -0.0000013722251500, 0.0000012419958100, -0.0000011182377900}, - { -0.0000001249868500, -0.0000002258640400, 0.0000003030359000, -0.0000001279931900, - -0.0000002305315700, 0.0000008946945700, -0.0000022879051900, 0.0000070434097200, - 0.0000294460157000, -0.0000059293518700, 0.0000033729073000, -0.0000023029828700, - 0.0000017136721300, -0.0000013827892600, 0.0000012503092200, -0.0000011252540100}, - { -0.0000001252011800, -0.0000002248666800, 0.0000003033725600, -0.0000001289637300, - -0.0000002293460500, 0.0000008949854300, -0.0000022931857800, 0.0000070729691900, - 0.0000294357625700, -0.0000059546703200, 0.0000033913734300, -0.0000023182283200, - 0.0000017269467600, -0.0000013934406600, 0.0000012586727200, -0.0000011323121700}, - { -0.0000001257327400, -0.0000002251340000, 0.0000003033306900, -0.0000001302187900, - -0.0000002294842900, 0.0000008953591700, -0.0000022981051800, 0.0000071016115000, - 0.0000294253594500, -0.0000059806163900, 0.0000034116321500, -0.0000023338009400, - 0.0000017396575200, -0.0000014036439400, 0.0000012678155200, -0.0000011396549400}, - { -0.0000001259366100, -0.0000002242376300, 0.0000003041364800, -0.0000001304581400, - -0.0000002285404200, 0.0000008958134900, -0.0000023035573000, 0.0000071318036600, - 0.0000294155332000, -0.0000060059835200, 0.0000034302863600, -0.0000023496551600, - 0.0000017523724800, -0.0000014142299300, 0.0000012762833200, -0.0000011472239700}, - { -0.0000001264793200, -0.0000002244873300, 0.0000003040255700, -0.0000001313420800, - -0.0000002274742400, 0.0000008966178100, -0.0000023084721700, 0.0000071604519400, - 0.0000294053570900, -0.0000060314068800, 0.0000034495386400, -0.0000023649793700, - 0.0000017653808300, -0.0000014239964400, 0.0000012843156400, -0.0000011540516700}, - { -0.0000001266776300, -0.0000002234895800, 0.0000003043324900, -0.0000001322245300, - -0.0000002267675400, 0.0000008965455900, -0.0000023127290700, 0.0000071902922400, - 0.0000293950616300, -0.0000060571265600, 0.0000034693878200, -0.0000023814273900, - 0.0000017784544000, -0.0000014343601700, 0.0000012932068300, -0.0000011623815900}, - { -0.0000001272408000, -0.0000002238111400, 0.0000003046799700, -0.0000001323837000, - -0.0000002258841200, 0.0000008970913900, -0.0000023185828700, 0.0000072198731500, - 0.0000293850684700, -0.0000060823698800, 0.0000034885265900, -0.0000023966290300, - 0.0000017910112100, -0.0000014448925000, 0.0000013015910500, -0.0000011694882200}, - { -0.0000001274483600, -0.0000002228201400, 0.0000003050212200, -0.0000001333772300, - -0.0000002247134700, 0.0000008978152700, -0.0000023234912400, 0.0000072492005600, - 0.0000293746271400, -0.0000061079622500, 0.0000035084175400, -0.0000024131925000, - 0.0000018043115400, -0.0000014559744600, 0.0000013103666900, -0.0000011769115200}, - { -0.0000001275293500, -0.0000002223339400, 0.0000003046802300, -0.0000001344236100, - -0.0000002249832100, 0.0000008982191000, -0.0000023282772800, 0.0000072780111500, - 0.0000293638750200, -0.0000061329463600, 0.0000035275317400, -0.0000024284154200, - 0.0000018169987600, -0.0000014666643200, 0.0000013189357000, -0.0000011845461600}, - { -0.0000001282008300, -0.0000002220878800, 0.0000003053154500, -0.0000001356054900, - -0.0000002236664600, 0.0000008988073400, -0.0000023330451200, 0.0000073072951600, - 0.0000293533527800, -0.0000061588331200, 0.0000035466290700, -0.0000024446846900, - 0.0000018300582900, -0.0000014771995300, 0.0000013284279500, -0.0000011922344800}, - { -0.0000001282913700, -0.0000002216603000, 0.0000003053533900, -0.0000001354819600, - -0.0000002234495000, 0.0000008991178300, -0.0000023379395200, 0.0000073372194300, - 0.0000293431988400, -0.0000061843667600, 0.0000035669418700, -0.0000024601980400, - 0.0000018440114900, -0.0000014885760000, 0.0000013374412100, -0.0000011998777300}, - { -0.0000001289852900, -0.0000002213970900, 0.0000003059661400, -0.0000001366666100, - -0.0000002220358400, 0.0000008991998000, -0.0000023433472500, 0.0000073667719600, - 0.0000293326498300, -0.0000062091368600, 0.0000035856112000, -0.0000024762400200, - 0.0000018570057000, -0.0000014994590500, 0.0000013461432300, -0.0000012072689000}, - { -0.0000001290828100, -0.0000002208668300, 0.0000003055268400, -0.0000001372665000, - -0.0000002215250000, 0.0000008992759700, -0.0000023479470700, 0.0000073961694600, - 0.0000293216599600, -0.0000062347556700, 0.0000036051519300, -0.0000024918766800, - 0.0000018700312600, -0.0000015104288800, 0.0000013548919900, -0.0000012146903000}, - { -0.0000001297565000, -0.0000002206188900, 0.0000003061515200, -0.0000001384640400, - -0.0000002201711800, 0.0000008998523600, -0.0000023530332000, 0.0000074248575600, - 0.0000293108050300, -0.0000062599496300, 0.0000036250520900, -0.0000025085987100, - 0.0000018835062100, -0.0000015213765300, 0.0000013648384700, -0.0000012231594800}, - { -0.0000001298486200, -0.0000002201990500, 0.0000003061911500, -0.0000001383193600, - -0.0000002199540200, 0.0000009001070400, -0.0000023577987000, 0.0000074548400000, - 0.0000293006277700, -0.0000062848029800, 0.0000036443834300, -0.0000025242884300, - 0.0000018970177400, -0.0000015316494200, 0.0000013733603800, -0.0000012304800000}, - { -0.0000001305173000, -0.0000002199287800, 0.0000003067771800, -0.0000001393998700, - -0.0000002190657800, 0.0000008998337100, -0.0000023620522900, 0.0000074841359700, - 0.0000292893802300, -0.0000063101285300, 0.0000036634397500, -0.0000025407276700, - 0.0000019104315500, -0.0000015429059800, 0.0000013823584100, -0.0000012381206600}, - { -0.0000001306486000, -0.0000002193998000, 0.0000003063717500, -0.0000001401081300, - -0.0000002180765400, 0.0000009007040500, -0.0000023673990600, 0.0000075136252200, - 0.0000292786821600, -0.0000063356530800, 0.0000036831074500, -0.0000025565504100, - 0.0000019236546600, -0.0000015541317500, 0.0000013913853300, -0.0000012457823800}, - { -0.0000001313321900, -0.0000002191380800, 0.0000003069674600, -0.0000001412157700, - -0.0000002171714300, 0.0000009004937300, -0.0000023721555300, 0.0000075427591700, - 0.0000292680753800, -0.0000063607547900, 0.0000037031767000, -0.0000025735481500, - 0.0000019375159900, -0.0000015657767200, 0.0000014007257400, -0.0000012537078000}, - { -0.0000001314354900, -0.0000002186268300, 0.0000003065150800, -0.0000001417698000, - -0.0000002167557500, 0.0000009010001600, -0.0000023759323400, 0.0000075724712100, - 0.0000292576319400, -0.0000063853917500, 0.0000037225319700, -0.0000025892093800, - 0.0000019506037600, -0.0000015764904400, 0.0000014104155900, -0.0000012616476800}, - { -0.0000001321218400, -0.0000002184458600, 0.0000003076233500, -0.0000001422547300, - -0.0000002156670200, 0.0000009017151300, -0.0000023810871100, 0.0000076019700600, - 0.0000292466530500, -0.0000064106762900, 0.0000037421391100, -0.0000026050975100, - 0.0000019639469300, -0.0000015878862800, 0.0000014196955700, -0.0000012699499300}, - { -0.0000001322405100, -0.0000002179145600, 0.0000003071783900, -0.0000001428408900, - -0.0000002151344500, 0.0000009017528200, -0.0000023860018100, 0.0000076314227000, - 0.0000292354833000, -0.0000064357589600, 0.0000037613307800, -0.0000026218842900, - 0.0000019781456700, -0.0000015987370400, 0.0000014287400700, -0.0000012776898100}, - { -0.0000001329411400, -0.0000002176246500, 0.0000003077588100, -0.0000001439416300, - -0.0000002142422000, 0.0000009015226300, -0.0000023906702500, 0.0000076607212500, - 0.0000292243989500, -0.0000064609585900, 0.0000037810235300, -0.0000026378597000, - 0.0000019915634000, -0.0000016100609100, 0.0000014374613700, -0.0000012862479300}, - { -0.0000001331821400, -0.0000002165817700, 0.0000003080409800, -0.0000001449188900, - -0.0000002130265600, 0.0000009021448800, -0.0000023957398700, 0.0000076903557900, - 0.0000292129090700, -0.0000064858733100, 0.0000038005130000, -0.0000026536730800, - 0.0000020047933100, -0.0000016209483700, 0.0000014473806100, -0.0000012943770500}, - { -0.0000001332912300, -0.0000002160549700, 0.0000003075666900, -0.0000001454699900, - -0.0000002125747900, 0.0000009026360900, -0.0000023998381000, 0.0000077196425000, - 0.0000292014040700, -0.0000065102449400, 0.0000038203933500, -0.0000026707041800, - 0.0000020188140300, -0.0000016328233200, 0.0000014569262800, -0.0000013025077600}, - { -0.0000001339767200, -0.0000002158494200, 0.0000003086316400, -0.0000001458535300, - -0.0000002119522600, 0.0000009025408000, -0.0000024045414700, 0.0000077491289100, - 0.0000291898436700, -0.0000065350608700, 0.0000038399388600, -0.0000026866946500, - 0.0000020323488600, -0.0000016444050200, 0.0000014663919000, -0.0000013110011800}, - { -0.0000001341225900, -0.0000002153019500, 0.0000003081710900, -0.0000001464447200, - -0.0000002114130700, 0.0000009025651700, -0.0000024094239400, 0.0000077792721000, - 0.0000291786795400, -0.0000065599338300, 0.0000038596149400, -0.0000027027766200, - 0.0000020459538900, -0.0000016560228700, 0.0000014758176300, -0.0000013190641200}, - { -0.0000001348116400, -0.0000002150215500, 0.0000003087524600, -0.0000001475208500, - -0.0000002105937200, 0.0000009027973200, -0.0000024136747400, 0.0000078077054200, - 0.0000291673553600, -0.0000065848400700, 0.0000038789809200, -0.0000027198631300, - 0.0000020605326600, -0.0000016672927800, 0.0000014852276800, -0.0000013270943900}, - { -0.0000001349842500, -0.0000002144524900, 0.0000003082911700, -0.0000001481921800, - -0.0000002095570400, 0.0000009035188200, -0.0000024188073400, 0.0000078381474100, - 0.0000291557196100, -0.0000066093324400, 0.0000038984672800, -0.0000027358305900, - 0.0000020740566100, -0.0000016789045200, 0.0000014946715800, -0.0000013351892900}, - { -0.0000001357082800, -0.0000002141367000, 0.0000003088470800, -0.0000001492702300, - -0.0000002087255200, 0.0000009036993800, -0.0000024226476800, 0.0000078678890800, - 0.0000291445410400, -0.0000066341740000, 0.0000039182293600, -0.0000027520351800, - 0.0000020877384400, -0.0000016902143900, 0.0000015049535100, -0.0000013436720300}, - { -0.0000001358430400, -0.0000002135814900, 0.0000003082938500, -0.0000001493462900, - -0.0000002074639200, 0.0000009034254800, -0.0000024276630700, 0.0000078972791400, - 0.0000291332516600, -0.0000066588317200, 0.0000039375542700, -0.0000027690881700, - 0.0000021019023100, -0.0000017023199600, 0.0000015149195700, -0.0000013526024300}, - { -0.0000001365518600, -0.0000002132688700, 0.0000003088416900, -0.0000001504139700, - -0.0000002066451500, 0.0000009036431600, -0.0000024318259900, 0.0000079258669800, - 0.0000291213669600, -0.0000066833494600, 0.0000039572395400, -0.0000027853162500, - 0.0000021157264500, -0.0000017142104300, 0.0000015245837400, -0.0000013608286800}, - { -0.0000001366787300, -0.0000002128108700, 0.0000003088564100, -0.0000001502425900, - -0.0000002064956100, 0.0000009042893100, -0.0000024359858000, 0.0000079560972200, - 0.0000291093788100, -0.0000067075438600, 0.0000039767446600, -0.0000028015676300, - 0.0000021300179900, -0.0000017253688600, 0.0000015339335300, -0.0000013689059900}, - { -0.0000001374342300, -0.0000002124476100, 0.0000003093955600, -0.0000001513509600, - -0.0000002055553100, 0.0000009039889200, -0.0000024409237700, 0.0000079856769100, - 0.0000290971758300, -0.0000067326482200, 0.0000039967168700, -0.0000028180320800, - 0.0000021440417100, -0.0000017374226900, 0.0000015437926100, -0.0000013773229200}, - { -0.0000001376849300, -0.0000002113994500, 0.0000003096377800, -0.0000001522077700, - -0.0000002048697200, 0.0000009043386000, -0.0000024453193600, 0.0000080155270500, - 0.0000290861113600, -0.0000067572563200, 0.0000040162405000, -0.0000028357551400, - 0.0000021577567700, -0.0000017494757400, 0.0000015536744300, -0.0000013857978600}, - { -0.0000001383359700, -0.0000002115681000, 0.0000003094623000, -0.0000001529706600, - -0.0000002042499600, 0.0000009046978300, -0.0000024496193000, 0.0000080448884900, - 0.0000290742857900, -0.0000067815030400, 0.0000040359106100, -0.0000028520619600, - 0.0000021716480000, -0.0000017610720400, 0.0000015643569600, -0.0000013950756900}, - { -0.0000001385829000, -0.0000002104702000, 0.0000003095698800, -0.0000001533174400, - -0.0000002027861900, 0.0000009041815800, -0.0000024543547500, 0.0000080744453800, - 0.0000290621547300, -0.0000068055928700, 0.0000040555731500, -0.0000028685336800, - 0.0000021861411400, -0.0000017724211200, 0.0000015739387800, -0.0000014033359700}, - { -0.0000001392505100, -0.0000002106039500, 0.0000003093740800, -0.0000001540744900, - -0.0000002021575300, 0.0000009045183800, -0.0000024586190700, 0.0000081040072300, - 0.0000290494347700, -0.0000068302308800, 0.0000040754474000, -0.0000028850387900, - 0.0000022002842700, -0.0000017846481100, 0.0000015839406100, -0.0000014118938600}, - { -0.0000001395190900, -0.0000002095226400, 0.0000003095699600, -0.0000001548946600, - -0.0000002014963700, 0.0000009048347000, -0.0000024629081800, 0.0000081340267800, - 0.0000290377478100, -0.0000068542945900, 0.0000040946718000, -0.0000029021815100, - 0.0000022146976500, -0.0000017970542200, 0.0000015941116300, -0.0000014206281900}, - { -0.0000001401882300, -0.0000002096680100, 0.0000003093691000, -0.0000001556387000, - -0.0000002008669700, 0.0000009051397000, -0.0000024670766100, 0.0000081635398000, - 0.0000290253164200, -0.0000068780397800, 0.0000041142095700, -0.0000029185104300, - 0.0000022287585300, -0.0000018092816300, 0.0000016042263500, -0.0000014297586900}, - { -0.0000001404564500, -0.0000002085806300, 0.0000003095765300, -0.0000001564993600, - -0.0000002001893100, 0.0000009055027000, -0.0000024718526100, 0.0000081930443400, - 0.0000290131292800, -0.0000069028755000, 0.0000041343948500, -0.0000029354488900, - 0.0000022437490000, -0.0000018211358000, 0.0000016142525900, -0.0000014383790400}, - { -0.0000001411478900, -0.0000002086898100, 0.0000003092724100, -0.0000001567128600, - -0.0000001988704700, 0.0000009055155500, -0.0000024758694700, 0.0000082230235800, - 0.0000290011569200, -0.0000069267292000, 0.0000041541189800, -0.0000029519935000, - 0.0000022579662500, -0.0000018334760000, 0.0000016243913500, -0.0000014471061400}, - { -0.0000001414337900, -0.0000002075770200, 0.0000003094262100, -0.0000001575159300, - -0.0000001982046700, 0.0000009058174200, -0.0000024801087800, 0.0000082532448100, - 0.0000289888685100, -0.0000069503998900, 0.0000041737590700, -0.0000029689051900, - 0.0000022713561300, -0.0000018449559000, 0.0000016349891900, -0.0000014559627800}, - { -0.0000001416907600, -0.0000002064831500, 0.0000003096053600, -0.0000001582625700, - -0.0000001980678900, 0.0000009054717400, -0.0000024845070000, 0.0000082826383600, - 0.0000289764874500, -0.0000069755255200, 0.0000041932542200, -0.0000029856412200, - 0.0000022863023200, -0.0000018567891400, 0.0000016450370300, -0.0000014646034300}, - { -0.0000001423747700, -0.0000002066861800, 0.0000003098336700, -0.0000001577810900, - -0.0000001970699600, 0.0000009057517500, -0.0000024891262300, 0.0000083121682100, - 0.0000289643060400, -0.0000069991474400, 0.0000042129344000, -0.0000030022736600, - 0.0000023006696000, -0.0000018693430700, 0.0000016554974400, -0.0000014740487700}, - { -0.0000001426747600, -0.0000002055331700, 0.0000003099557300, -0.0000001585752700, - -0.0000001964069200, 0.0000009060147700, -0.0000024932767200, 0.0000083425985400, - 0.0000289510095600, -0.0000070230755300, 0.0000042326526200, -0.0000030188546200, - 0.0000023150063400, -0.0000018818329000, 0.0000016657963500, -0.0000014829329300}, - { -0.0000001434061400, -0.0000002056302800, 0.0000003097143300, -0.0000001592655700, - -0.0000001958070000, 0.0000009063562600, -0.0000024979066000, 0.0000083722905800, - 0.0000289383840200, -0.0000070462608200, 0.0000042516727200, -0.0000030361552500, - 0.0000023301552900, -0.0000018938392400, 0.0000016759937100, -0.0000014917519700}, - { -0.0000001436913900, -0.0000002044866400, 0.0000003097508000, -0.0000001595199500, - -0.0000001944654100, 0.0000009063774800, -0.0000025022964500, 0.0000084018453400, - 0.0000289257793800, -0.0000070696301300, 0.0000042714039500, -0.0000030533338900, - 0.0000023439043400, -0.0000019061283500, 0.0000016861988700, -0.0000015005498900}, - { -0.0000001445044100, -0.0000002040355800, 0.0000003101858000, -0.0000001604479400, - -0.0000001941756600, 0.0000009058701400, -0.0000025064553400, 0.0000084313384800, - 0.0000289127389400, -0.0000070941485100, 0.0000042906585900, -0.0000030698827600, - 0.0000023583328300, -0.0000019187203800, 0.0000016966497900, -0.0000015095192700}, - { -0.0000001447330000, -0.0000002034312100, 0.0000003096284800, -0.0000001609315800, - -0.0000001937412700, 0.0000009063501400, -0.0000025112304400, 0.0000084617972200, - 0.0000289002944200, -0.0000071173336500, 0.0000043102902900, -0.0000030866540700, - 0.0000023733865500, -0.0000019307909900, 0.0000017070271400, -0.0000015190068200}, - { -0.0000001455518600, -0.0000002029502500, 0.0000003099574200, -0.0000001613820700, - -0.0000001923185400, 0.0000009067220900, -0.0000025147413900, 0.0000084911325500, - 0.0000288870320800, -0.0000071411887600, 0.0000043302468300, -0.0000031035919800, - 0.0000023880818700, -0.0000019436707600, 0.0000017176704600, -0.0000015281581500}, - { -0.0000001457861300, -0.0000002023130000, 0.0000003093622800, -0.0000001617413500, - -0.0000001924642300, 0.0000009065729600, -0.0000025192315000, 0.0000085215783300, - 0.0000288739140200, -0.0000071653858800, 0.0000043494252000, -0.0000031201529400, - 0.0000024025743900, -0.0000019563622700, 0.0000017282467800, -0.0000015372811900}, - { -0.0000001466497000, -0.0000002018075200, 0.0000003096710200, -0.0000001621883700, - -0.0000001909503200, 0.0000009063993200, -0.0000025234780000, 0.0000085517904200, - 0.0000288613216300, -0.0000071884560100, 0.0000043691563100, -0.0000031375546100, - 0.0000024169673500, -0.0000019676404700, 0.0000017390367400, -0.0000015464035900}, - { -0.0000001469685300, -0.0000002006309300, 0.0000003097408700, -0.0000001629128000, - -0.0000001904355000, 0.0000009073340000, -0.0000025278532500, 0.0000085809125600, - 0.0000288475887700, -0.0000072118967800, 0.0000043889313200, -0.0000031543979900, - 0.0000024316777100, -0.0000019805930700, 0.0000017497985500, -0.0000015556426100}, - { -0.0000001477449400, -0.0000002006818100, 0.0000003094518400, -0.0000001634855100, - -0.0000001903992100, 0.0000009069894600, -0.0000025320844800, 0.0000086112304400, - 0.0000288347603800, -0.0000072351635400, 0.0000044077625700, -0.0000031707875300, - 0.0000024461035300, -0.0000019933041100, 0.0000017605115800, -0.0000015654004700}, - { -0.0000001480767400, -0.0000001994653500, 0.0000003094108300, -0.0000001636592700, - -0.0000001891836000, 0.0000009074959300, -0.0000025357212300, 0.0000086414765800, - 0.0000288212217900, -0.0000072585572700, 0.0000044276425800, -0.0000031879037500, - 0.0000024614982500, -0.0000020057087700, 0.0000017710651600, -0.0000015745786000}, - { -0.0000001488858500, -0.0000001993991000, 0.0000003085609100, -0.0000001648979900, - -0.0000001888369000, 0.0000009070080400, -0.0000025403194900, 0.0000086711998100, - 0.0000288078851000, -0.0000072825294900, 0.0000044470365700, -0.0000032052144100, - 0.0000024755980300, -0.0000020183755000, 0.0000017817156300, -0.0000015837646000}, - { -0.0000001492305300, -0.0000001981877500, 0.0000003085015800, -0.0000001650306000, - -0.0000001876815400, 0.0000009076396600, -0.0000025444714700, 0.0000087007865500, - 0.0000287948850700, -0.0000073051883700, 0.0000044666232000, -0.0000032220613500, - 0.0000024903471000, -0.0000020314095600, 0.0000017925901000, -0.0000015931594800}, - { -0.0000001501262300, -0.0000001976310900, 0.0000003088203600, -0.0000001658952100, - -0.0000001873996900, 0.0000009070381000, -0.0000025484515600, 0.0000087312662900, - 0.0000287808844900, -0.0000073281372400, 0.0000044862930000, -0.0000032390709200, - 0.0000025057752300, -0.0000020438589400, 0.0000018033299200, -0.0000016030164800}, - { -0.0000001503969900, -0.0000001969379300, 0.0000003080858100, -0.0000001657013000, - -0.0000001864713500, 0.0000009078560600, -0.0000025527589100, 0.0000087611730400, - 0.0000287669639200, -0.0000073516228400, 0.0000045054475300, -0.0000032563221800, - 0.0000025198358100, -0.0000020565897500, 0.0000018140302000, -0.0000016122658700}, - { -0.0000001513327100, -0.0000001963597200, 0.0000003083968700, -0.0000001665725900, - -0.0000001862252200, 0.0000009073875600, -0.0000025573878100, 0.0000087916911500, - 0.0000287535419700, -0.0000073748515200, 0.0000045259152900, -0.0000032729171400, - 0.0000025351871200, -0.0000020690412400, 0.0000018247246600, -0.0000016215838300}, - { -0.0000001516114100, -0.0000001956698100, 0.0000003076434500, -0.0000001663416900, - -0.0000001853404200, 0.0000009082036700, -0.0000025616230100, 0.0000088215611900, - 0.0000287398826600, -0.0000073974168600, 0.0000045445650100, -0.0000032893481400, - 0.0000025497283800, -0.0000020820608400, 0.0000018361514000, -0.0000016303461100}, - { -0.0000001525545100, -0.0000001950784000, 0.0000003079287600, -0.0000001671519700, - -0.0000001851968500, 0.0000009083077500, -0.0000025655699800, 0.0000088518791800, - 0.0000287263294400, -0.0000074204448300, 0.0000045645401700, -0.0000033070898400, - 0.0000025642665600, -0.0000020951717000, 0.0000018471685500, -0.0000016399128000}, - { -0.0000001529263800, -0.0000001938044200, 0.0000003078214900, -0.0000001672419000, - -0.0000001840528300, 0.0000009088750200, -0.0000025695953100, 0.0000088817903900, - 0.0000287119707900, -0.0000074435467900, 0.0000045835202700, -0.0000033239161900, - 0.0000025796245500, -0.0000021077164200, 0.0000018580469200, -0.0000016498716200}, - { -0.0000001538275800, -0.0000001937151500, 0.0000003074065100, -0.0000001676983800, - -0.0000001841296500, 0.0000009086549100, -0.0000025743532000, 0.0000089126683900, - 0.0000286977836300, -0.0000074664683000, 0.0000046023517900, -0.0000033404937000, - 0.0000025943420100, -0.0000021207672000, 0.0000018690756000, -0.0000016594569100}, - { -0.0000001542197500, -0.0000001924344300, 0.0000003072425300, -0.0000001676580800, - -0.0000001835675000, 0.0000009085971800, -0.0000025781349400, 0.0000089429913200, - 0.0000286843179800, -0.0000074884840400, 0.0000046219477100, -0.0000033581867500, - 0.0000026093533900, -0.0000021331826000, 0.0000018797704300, -0.0000016688282800}, - { -0.0000001546377000, -0.0000001910937800, 0.0000003070488600, -0.0000001676528000, - -0.0000001825134600, 0.0000009092452800, -0.0000025821879500, 0.0000089731283500, - 0.0000286693376000, -0.0000075110245000, 0.0000046405855900, -0.0000033746731200, - 0.0000026239733700, -0.0000021462324800, 0.0000018907663300, -0.0000016783704800}, - { -0.0000001555232200, -0.0000001910366600, 0.0000003066530900, -0.0000001681411600, - -0.0000001826242300, 0.0000009095852900, -0.0000025867448300, 0.0000090031502000, - 0.0000286552421600, -0.0000075335881700, 0.0000046610354100, -0.0000033919719800, - 0.0000026389844800, -0.0000021587898200, 0.0000019017118400, -0.0000016884247400}, - { -0.0000001559561500, -0.0000001896839700, 0.0000003064309200, -0.0000001680332600, - -0.0000001821529400, 0.0000009096027200, -0.0000025905423200, 0.0000090337279400, - 0.0000286407594900, -0.0000075562967900, 0.0000046799004200, -0.0000034087052200, - 0.0000026538690300, -0.0000021720457700, 0.0000019128983200, -0.0000016981596000}, - { -0.0000001569153000, -0.0000001894703800, 0.0000003054176700, -0.0000001691600600, - -0.0000001814795900, 0.0000009104248700, -0.0000025952532400, 0.0000090639789400, - 0.0000286262228400, -0.0000075788745300, 0.0000046987841400, -0.0000034255105000, - 0.0000026693327400, -0.0000021847402400, 0.0000019238909500, -0.0000017077386900}, - { -0.0000001573670100, -0.0000001880890400, 0.0000003051424200, -0.0000001690153500, - -0.0000001810064900, 0.0000009104300700, -0.0000025990224500, 0.0000090946916500, - 0.0000286112971700, -0.0000076007137400, 0.0000047182370700, -0.0000034430712700, - 0.0000026838198900, -0.0000021978862300, 0.0000019350009900, -0.0000017174506000}, - { -0.0000001583828300, -0.0000001873935800, 0.0000003052700600, -0.0000001692015100, - -0.0000001803039800, 0.0000009103004000, -0.0000026032138000, 0.0000091251439600, - 0.0000285975563800, -0.0000076238222500, 0.0000047381154500, -0.0000034597273100, - 0.0000026994361100, -0.0000022107866200, 0.0000019462639700, -0.0000017278016500}, - { -0.0000001587867000, -0.0000001865780400, 0.0000003044301800, -0.0000001692821000, - -0.0000001807759500, 0.0000009109488100, -0.0000026079677000, 0.0000091556728800, - 0.0000285823700200, -0.0000076458633000, 0.0000047567511000, -0.0000034768617100, - 0.0000027136848800, -0.0000022237957200, 0.0000019573449500, -0.0000017374543300}, - { -0.0000001598323500, -0.0000001858063000, 0.0000003044500800, -0.0000001693384100, - -0.0000001801618700, 0.0000009107820400, -0.0000026115241800, 0.0000091863686900, - 0.0000285671811500, -0.0000076679031600, 0.0000047753629900, -0.0000034936118500, - 0.0000027291613500, -0.0000022364869500, 0.0000019683203200, -0.0000017470863500}, - { -0.0000001603558400, -0.0000001843678200, 0.0000003041601400, -0.0000001692544800, - -0.0000001791780100, 0.0000009115656500, -0.0000026162495500, 0.0000092174773000, - 0.0000285524247500, -0.0000076901860200, 0.0000047947719600, -0.0000035103343800, - 0.0000027432475300, -0.0000022494731800, 0.0000019794038100, -0.0000017567749800}, - { -0.0000001613422400, -0.0000001841112200, 0.0000003030366000, -0.0000001701864700, - -0.0000001792125700, 0.0000009123179000, -0.0000026199049700, 0.0000092474868600, - 0.0000285372738700, -0.0000077116537300, 0.0000048141797500, -0.0000035275280700, - 0.0000027591688900, -0.0000022626375700, 0.0000019908421800, -0.0000017673081200}, - { -0.0000001618684700, -0.0000001826555800, 0.0000003026957800, -0.0000001699564500, - -0.0000001788644700, 0.0000009124739900, -0.0000026242686200, 0.0000092784329800, - 0.0000285223614300, -0.0000077336969100, 0.0000048328815000, -0.0000035443127000, - 0.0000027742539400, -0.0000022762632500, 0.0000020029767800, -0.0000017767797800}, - { -0.0000001629703000, -0.0000001818503700, 0.0000003027010500, -0.0000001700124000, - -0.0000001782837800, 0.0000009124974400, -0.0000026290376100, 0.0000093086772800, - 0.0000285077698000, -0.0000077560338000, 0.0000048525355700, -0.0000035614488000, - 0.0000027892719100, -0.0000022889140600, 0.0000020140353900, -0.0000017864500900}, - { -0.0000001634392700, -0.0000001809252200, 0.0000003016455700, -0.0000001693615300, - -0.0000001782780900, 0.0000009129169500, -0.0000026335334700, 0.0000093393907400, - 0.0000284916529600, -0.0000077771874700, 0.0000048706755700, -0.0000035778114400, - 0.0000028040064200, -0.0000023021819100, 0.0000020253539400, -0.0000017963440300}, - { -0.0000001645793200, -0.0000001800824700, 0.0000003016678700, -0.0000001699031600, - -0.0000001784607900, 0.0000009137987500, -0.0000026373328800, 0.0000093702911100, - 0.0000284764041400, -0.0000077988760200, 0.0000048893523500, -0.0000035952564600, - 0.0000028191490700, -0.0000023149218600, 0.0000020364436200, -0.0000018061008600}, - { -0.0000001651378600, -0.0000001785770200, 0.0000003012636900, -0.0000001696266500, - -0.0000001781460200, 0.0000009139701600, -0.0000026416553200, 0.0000094014760000, - 0.0000284608657200, -0.0000078204266000, 0.0000049084885500, -0.0000036119295000, - 0.0000028333282800, -0.0000023280404100, 0.0000020477739000, -0.0000018165847100}, - { -0.0000001662265200, -0.0000001781999900, 0.0000002999487700, -0.0000001698314300, - -0.0000001777143500, 0.0000009146283300, -0.0000026457830700, 0.0000094316696700, - 0.0000284457324700, -0.0000078421164800, 0.0000049272679100, -0.0000036289687800, - 0.0000028492007500, -0.0000023412213700, 0.0000020592415900, -0.0000018266186600}, - { -0.0000001668313800, -0.0000001766316400, 0.0000002994642500, -0.0000001694643800, - -0.0000001774906500, 0.0000009148770700, -0.0000026501577500, 0.0000094630560000, - 0.0000284297024000, -0.0000078632258000, 0.0000049461377000, -0.0000036454574300, - 0.0000028632330500, -0.0000023541974700, 0.0000020703740000, -0.0000018364139000}, - { -0.0000001680418200, -0.0000001756770400, 0.0000002992954400, -0.0000001693172900, - -0.0000001771057900, 0.0000009150120900, -0.0000026549370400, 0.0000094937302500, - 0.0000284139414500, -0.0000078843755900, 0.0000049644890900, -0.0000036622085000, - 0.0000028788840800, -0.0000023671874000, 0.0000020817422100, -0.0000018463951300}, - { -0.0000001686115500, -0.0000001746931600, 0.0000002982552200, -0.0000001691727400, - -0.0000001778570200, 0.0000009164052800, -0.0000026591723800, 0.0000095258665900, - 0.0000283981176300, -0.0000079052887900, 0.0000049827569900, -0.0000036793287300, - 0.0000028933443100, -0.0000023805663500, 0.0000020933121700, -0.0000018571534300}, - { -0.0000001698209200, -0.0000001736659300, 0.0000002974894800, -0.0000001696435000, - -0.0000001772231300, 0.0000009168743300, -0.0000026630607200, 0.0000095561100700, - 0.0000283824708400, -0.0000079266196800, 0.0000050019918900, -0.0000036957408700, - 0.0000029090435800, -0.0000023942524200, 0.0000021041132500, -0.0000018668595300}, - { -0.0000001704658800, -0.0000001720493300, 0.0000002969448100, -0.0000001691965100, - -0.0000001770702400, 0.0000009171925300, -0.0000026679621900, 0.0000095870802000, - 0.0000283660491100, -0.0000079472717100, 0.0000050201664600, -0.0000037129754000, - 0.0000029241121700, -0.0000024070689600, 0.0000021159356200, -0.0000018761561600}, - { -0.0000001717442700, -0.0000001710235900, 0.0000002967018600, -0.0000001689724600, - -0.0000001768308200, 0.0000009180232100, -0.0000026722407800, 0.0000096183264500, - 0.0000283504106100, -0.0000079683587600, 0.0000050392415300, -0.0000037297550600, - 0.0000029384739600, -0.0000024204158900, 0.0000021274150600, -0.0000018862478100}, - { -0.0000001723295500, -0.0000001699869700, 0.0000002955079600, -0.0000001681516300, - -0.0000001770832400, 0.0000009192163800, -0.0000026767354800, 0.0000096492955100, - 0.0000283337590700, -0.0000079887593500, 0.0000050578218900, -0.0000037457346700, - 0.0000029538083300, -0.0000024333413500, 0.0000021388132400, -0.0000018968488000}, - { -0.0000001736577200, -0.0000001687977400, 0.0000002945624400, -0.0000001683731000, - -0.0000001771162500, 0.0000009186304800, -0.0000026811221400, 0.0000096806832700, - 0.0000283171957600, -0.0000080100778400, 0.0000050764840500, -0.0000037632549500, - 0.0000029686120900, -0.0000024469290200, 0.0000021505473200, -0.0000019071619200}, - { -0.0000001743866400, -0.0000001670904800, 0.0000002939243500, -0.0000001678044700, - -0.0000001772074700, 0.0000009197158400, -0.0000026855831200, 0.0000097122904600, - 0.0000283008922400, -0.0000080311308100, 0.0000050945404700, -0.0000037790101700, - 0.0000029837934200, -0.0000024597228000, 0.0000021617945900, -0.0000019170951200}, - { -0.0000001756624600, -0.0000001665754600, 0.0000002930209300, -0.0000001677015500, - -0.0000001779605600, 0.0000009211401200, -0.0000026902305100, 0.0000097436064800, - 0.0000282834989500, -0.0000080507440900, 0.0000051121120600, -0.0000037958156200, - 0.0000029986133000, -0.0000024723351000, 0.0000021728932000, -0.0000019269257400}, - { -0.0000001764156100, -0.0000001648349000, 0.0000002923256000, -0.0000001670895300, - -0.0000001780604500, 0.0000009222427700, -0.0000026946759500, 0.0000097753369800, - 0.0000282668132600, -0.0000080708954700, 0.0000051306676900, -0.0000038122909500, - 0.0000030128070300, -0.0000024856282600, 0.0000021844654800, -0.0000019377155600}, - { -0.0000001778008400, -0.0000001635839700, 0.0000002912741900, -0.0000001671632200, - -0.0000001783286000, 0.0000009223573800, -0.0000026984567000, 0.0000098066057000, - 0.0000282503350600, -0.0000080910856000, 0.0000051487224000, -0.0000038289759200, - 0.0000030286004000, -0.0000024988398200, 0.0000021960407900, -0.0000019479635100}, - { -0.0000001785075000, -0.0000001624082400, 0.0000002899683900, -0.0000001662356200, - -0.0000001786186700, 0.0000009231168400, -0.0000027042545900, 0.0000098383808800, - 0.0000282326299200, -0.0000081120147400, 0.0000051668545300, -0.0000038454440300, - 0.0000030434707800, -0.0000025122240000, 0.0000022073795700, -0.0000019570606700}, - { -0.0000001799471600, -0.0000001611646700, 0.0000002894723100, -0.0000001657398400, - -0.0000001786417100, 0.0000009241521900, -0.0000027086143300, 0.0000098702548800, - 0.0000282153907600, -0.0000081315971000, 0.0000051850662000, -0.0000038616812900, - 0.0000030574773900, -0.0000025253455800, 0.0000022187350300, -0.0000019671249500}, - { -0.0000001808127200, -0.0000001592362400, 0.0000002880377400, -0.0000001655707600, - -0.0000001785903000, 0.0000009251959300, -0.0000027135898100, 0.0000099021663300, - 0.0000281989192800, -0.0000081515568600, 0.0000052030462600, -0.0000038783583100, - 0.0000030733042100, -0.0000025387269800, 0.0000022306311600, -0.0000019782364100}, - { -0.0000001822507700, -0.0000001579820600, 0.0000002875237500, -0.0000001649711300, - -0.0000001792635900, 0.0000009256393500, -0.0000027175974500, 0.0000099338786400, - 0.0000281816351400, -0.0000081716496200, 0.0000052207335300, -0.0000038945254600, - 0.0000030878936400, -0.0000025512202200, 0.0000022416781800, -0.0000019880568400}, - { -0.0000001830818000, -0.0000001566710200, 0.0000002860056400, -0.0000001637727000, - -0.0000001799068700, 0.0000009272886300, -0.0000027230252500, 0.0000099657892600, - 0.0000281637176300, -0.0000081905722200, 0.0000052385802800, -0.0000039105374000, - 0.0000031017613200, -0.0000025642740200, 0.0000022530400400, -0.0000019981165400}, - { -0.0000001845760100, -0.0000001552740800, 0.0000002847881000, -0.0000001636760100, - -0.0000001804192200, 0.0000009282507800, -0.0000027269207300, 0.0000099967050900, - 0.0000281460005200, -0.0000082107814900, 0.0000052574179500, -0.0000039274706000, - 0.0000031169977600, -0.0000025773553200, 0.0000022645343300, -0.0000020082641400}, - { -0.0000001855192900, -0.0000001533110500, 0.0000002838490600, -0.0000001627660100, - -0.0000001808517000, 0.0000009296869200, -0.0000027321921500, 0.0000100291413500, - 0.0000281286138200, -0.0000082304345000, 0.0000052741885600, -0.0000039434316600, - 0.0000031323202100, -0.0000025903756400, 0.0000022761936700, -0.0000020192073400}, - { -0.0000001869926500, -0.0000001525588000, 0.0000002826213600, -0.0000001617884900, - -0.0000001812957700, 0.0000009311303900, -0.0000027373640000, 0.0000100609916000, - 0.0000281103932300, -0.0000082490397700, 0.0000052919415400, -0.0000039594468800, - 0.0000031463335700, -0.0000026042393200, 0.0000022877455000, -0.0000020285435000}, - { -0.0000001879711300, -0.0000001504548000, 0.0000002809677500, -0.0000001613216100, - -0.0000001820868000, 0.0000009318026600, -0.0000027421788700, 0.0000100932867600, - 0.0000280922614500, -0.0000082692676700, 0.0000053098254300, -0.0000039758154000, - 0.0000031611536400, -0.0000026169842500, 0.0000022990763600, -0.0000020386038100}, - { -0.0000001896148500, -0.0000001489715900, 0.0000002802122100, -0.0000001605491000, - -0.0000001823983800, 0.0000009331442300, -0.0000027473598000, 0.0000101258880600, - 0.0000280742505700, -0.0000082878251100, 0.0000053275619900, -0.0000039919465700, - 0.0000031757335000, -0.0000026295748600, 0.0000023102669400, -0.0000020486105200}, - { -0.0000001906217800, -0.0000001469185600, 0.0000002791306400, -0.0000001593896400, - -0.0000001837111200, 0.0000009347882600, -0.0000027518324200, 0.0000101581276800, - 0.0000280564653200, -0.0000083070602600, 0.0000053441716200, -0.0000040078628800, - 0.0000031911263600, -0.0000026426870800, 0.0000023219719400, -0.0000020596163500}, - { -0.0000001922140900, -0.0000001459273400, 0.0000002770198900, -0.0000001581275300, - -0.0000001835136600, 0.0000009358983900, -0.0000027567373500, 0.0000101900357800, - 0.0000280377353300, -0.0000083256870000, 0.0000053610471900, -0.0000040233651400, - 0.0000032046118400, -0.0000026554662000, 0.0000023331738800, -0.0000020695687800}, - { -0.0000001933077600, -0.0000001437420100, 0.0000002757857900, -0.0000001568643300, - -0.0000001848435300, 0.0000009370146400, -0.0000027619025000, 0.0000102229591200, - 0.0000280184129200, -0.0000083442004400, 0.0000053787235200, -0.0000040395032300, - 0.0000032192706400, -0.0000026681026200, 0.0000023444081100, -0.0000020796180800}, - { -0.0000001950196300, -0.0000001421126700, 0.0000002743236000, -0.0000001565501700, - -0.0000001850389700, 0.0000009389127400, -0.0000027669483100, 0.0000102547554800, - 0.0000280004451900, -0.0000083632987700, 0.0000053961014100, -0.0000040555637300, - 0.0000032339646100, -0.0000026814717500, 0.0000023552023700, -0.0000020894037400}, - { -0.0000001960990100, -0.0000001399562800, 0.0000002731039900, -0.0000001552949300, - -0.0000001863555500, 0.0000009399847000, -0.0000027719967200, 0.0000102875847200, - 0.0000279815921900, -0.0000083810986900, 0.0000054134314800, -0.0000040714985700, - 0.0000032485359700, -0.0000026941818000, 0.0000023672059200, -0.0000020996580900}, - { -0.0000001978335000, -0.0000001388824500, 0.0000002715202100, -0.0000001538161700, - -0.0000001879709700, 0.0000009419594300, -0.0000027767473800, 0.0000103205041100, - 0.0000279619234800, -0.0000083997214900, 0.0000054302452500, -0.0000040870290800, - 0.0000032621932300, -0.0000027071437200, 0.0000023785545000, -0.0000021097697500}, - { -0.0000001990835900, -0.0000001364801200, 0.0000002695060500, -0.0000001530065500, - -0.0000001885898300, 0.0000009436950100, -0.0000027828661600, 0.0000103538923200, - 0.0000279432441200, -0.0000084179631800, 0.0000054468678800, -0.0000041018806300, - 0.0000032768596100, -0.0000027197497600, 0.0000023898644100, -0.0000021198957800}, - { -0.0000002009220500, -0.0000001347505300, 0.0000002684579000, -0.0000001518047500, - -0.0000001900093500, 0.0000009455425900, -0.0000027880462700, 0.0000103861290100, - 0.0000279243346600, -0.0000084361255500, 0.0000054635449300, -0.0000041174711300, - 0.0000032911712700, -0.0000027321991400, 0.0000024009912800, -0.0000021298248700}, - { -0.0000002021097800, -0.0000001323447400, 0.0000002663196100, -0.0000001502518600, - -0.0000001906698600, 0.0000009462422300, -0.0000027927521300, 0.0000104190543900, - 0.0000279042526200, -0.0000084538637100, 0.0000054809534600, -0.0000041335183200, - 0.0000033058704200, -0.0000027455391500, 0.0000024118477100, -0.0000021403770100}, - { -0.0000002040050600, -0.0000001311257700, 0.0000002645934000, -0.0000001486507400, - -0.0000001918547800, 0.0000009490451500, -0.0000027986541700, 0.0000104526215400, - 0.0000278849784900, -0.0000084713840400, 0.0000054965250700, -0.0000041491644800, - 0.0000033194974400, -0.0000027586029200, 0.0000024240038400, -0.0000021501456000}, - { -0.0000002053034800, -0.0000001286367400, 0.0000002624167700, -0.0000001475643600, - -0.0000001933711100, 0.0000009510206500, -0.0000028039339300, 0.0000104851735700, - 0.0000278653475900, -0.0000084889121800, 0.0000055128391400, -0.0000041644581200, - 0.0000033335865400, -0.0000027708847400, 0.0000024350066900, -0.0000021599986800}, - { -0.0000002073264900, -0.0000001266673600, 0.0000002611261800, -0.0000001461338600, - -0.0000001949621100, 0.0000009524686500, -0.0000028099508700, 0.0000105189430300, - 0.0000278450786400, -0.0000085067297700, 0.0000055292010700, -0.0000041798158600, - 0.0000033477267300, -0.0000027831832100, 0.0000024460899000, -0.0000021699539700}, - { -0.0000002086264900, -0.0000001241753500, 0.0000002589582900, -0.0000001451556400, - -0.0000001957811700, 0.0000009549327200, -0.0000028154247100, 0.0000105517476900, - 0.0000278250526200, -0.0000085239563600, 0.0000055460095600, -0.0000041944857600, - 0.0000033615404000, -0.0000027960051300, 0.0000024565652100, -0.0000021801611400}, - { -0.0000002106926400, -0.0000001221321700, 0.0000002575063400, -0.0000001429511100, - -0.0000001970246700, 0.0000009568367500, -0.0000028207292800, 0.0000105852072900, - 0.0000278047516100, -0.0000085416983300, 0.0000055624216900, -0.0000042099685900, - 0.0000033757782300, -0.0000028084273300, 0.0000024677037500, -0.0000021901583000}, - { -0.0000002120617500, -0.0000001202056000, 0.0000002552535400, -0.0000001408007500, - -0.0000001993279700, 0.0000009595095600, -0.0000028266589600, 0.0000106192034600, - 0.0000277843916500, -0.0000085583072500, 0.0000055780937400, -0.0000042248483600, - 0.0000033896113600, -0.0000028206269200, 0.0000024793027300, -0.0000021995201800}, - { -0.0000002142396800, -0.0000001179865400, 0.0000002530754500, -0.0000001396393300, - -0.0000002009028700, 0.0000009610046500, -0.0000028326674100, 0.0000106531925400, - 0.0000277639650500, -0.0000085747792700, 0.0000055936365900, -0.0000042394273800, - 0.0000034025320000, -0.0000028330041100, 0.0000024903208900, -0.0000022094548100}, - { -0.0000002157159200, -0.0000001153285000, 0.0000002512274500, -0.0000001370844300, - -0.0000002024860800, 0.0000009632664400, -0.0000028388245500, 0.0000106864987700, - 0.0000277432448700, -0.0000085921130000, 0.0000056098971500, -0.0000042548622300, - 0.0000034168711000, -0.0000028462099000, 0.0000025011964800, -0.0000022199944300}, - { -0.0000002179375900, -0.0000001130552500, 0.0000002489758900, -0.0000001358263800, - -0.0000002042234800, 0.0000009654833100, -0.0000028443348800, 0.0000107203619900, - 0.0000277226300200, -0.0000086083834300, 0.0000056253954500, -0.0000042695656200, - 0.0000034305305000, -0.0000028581781400, 0.0000025119808500, -0.0000022297564100}, - { -0.0000002195061100, -0.0000001108669600, 0.0000002464213000, -0.0000001333423100, - -0.0000002068874300, 0.0000009685232500, -0.0000028506052900, 0.0000107550806200, - 0.0000277004327300, -0.0000086243310500, 0.0000056405162700, -0.0000042840028100, - 0.0000034439922500, -0.0000028700012900, 0.0000025226614100, -0.0000022394383100}, - { -0.0000002217436800, -0.0000001085689500, 0.0000002440979000, -0.0000001314845000, - -0.0000002074387600, 0.0000009710099800, -0.0000028567755500, 0.0000107884769000, - 0.0000276798805200, -0.0000086406171500, 0.0000056561115200, -0.0000042988680400, - 0.0000034577788700, -0.0000028822677500, 0.0000025344724600, -0.0000022496001600}, - { -0.0000002234052300, -0.0000001056977600, 0.0000002420334600, -0.0000001292564500, - -0.0000002099057700, 0.0000009738656200, -0.0000028628118700, 0.0000108230473600, - 0.0000276581678800, -0.0000086558899300, 0.0000056708946400, -0.0000043130672100, - 0.0000034711343700, -0.0000028946376900, 0.0000025445511400, -0.0000022589602700}, - { -0.0000002257986500, -0.0000001032008700, 0.0000002395334200, -0.0000001277542100, - -0.0000002119185700, 0.0000009764314400, -0.0000028692402200, 0.0000108569779600, - 0.0000276361694700, -0.0000086719885800, 0.0000056868813300, -0.0000043271529100, - 0.0000034844676000, -0.0000029064307100, 0.0000025552190100, -0.0000022685765900}, - { -0.0000002275798800, -0.0000001001252000, 0.0000002366059500, -0.0000001252260400, - -0.0000002137523800, 0.0000009790138000, -0.0000028757551100, 0.0000108916066600, - 0.0000276151572300, -0.0000086882727400, 0.0000057015156000, -0.0000043413931200, - 0.0000034977723200, -0.0000029181547900, 0.0000025659050200, -0.0000022782491400}, - { -0.0000002299519300, -0.0000000983084300, 0.0000002341848700, -0.0000001227918200, - -0.0000002164204600, 0.0000009821204200, -0.0000028826112600, 0.0000109260641300, - 0.0000275924294400, -0.0000087035380900, 0.0000057163011400, -0.0000043556341700, - 0.0000035112146900, -0.0000029306783100, 0.0000025762575100, -0.0000022884324300}, - { -0.0000002318342500, -0.0000000951184900, 0.0000002311491600, -0.0000001207356700, - -0.0000002190231800, 0.0000009858208200, -0.0000028883563000, 0.0000109614224000, - 0.0000275705340200, -0.0000087183966300, 0.0000057307956100, -0.0000043694747100, - 0.0000035236477300, -0.0000029428661900, 0.0000025877315200, -0.0000022977857000}, - { -0.0000002343785600, -0.0000000924936400, 0.0000002290080300, -0.0000001177431500, - -0.0000002211532800, 0.0000009886431100, -0.0000028949989000, 0.0000109957830700, - 0.0000275481985700, -0.0000087329639600, 0.0000057457528900, -0.0000043828523400, - 0.0000035363736500, -0.0000029541639900, 0.0000025980032600, -0.0000023071295000}, - { -0.0000002363396600, -0.0000000891896000, 0.0000002258762900, -0.0000001155997700, - -0.0000002237980900, 0.0000009918196800, -0.0000029019980500, 0.0000110312292600, - 0.0000275252475700, -0.0000087485388500, 0.0000057598214300, -0.0000043965976300, - 0.0000035494092700, -0.0000029663348400, 0.0000026080272800, -0.0000023164098500}, - { -0.0000002389152800, -0.0000000865190200, 0.0000002236651900, -0.0000001124397300, - -0.0000002266843400, 0.0000009941856300, -0.0000029083534200, 0.0000110654857700, - 0.0000275027780000, -0.0000087628679600, 0.0000057741079400, -0.0000044111852100, - 0.0000035620616000, -0.0000029776226200, 0.0000026184102500, -0.0000023265168600}, - { -0.0000002409751900, -0.0000000831096900, 0.0000002203852900, -0.0000001101449700, - -0.0000002295711000, 0.0000009982935500, -0.0000029157146400, 0.0000111004330000, - 0.0000274797647300, -0.0000087777694100, 0.0000057893310100, -0.0000044247467300, - 0.0000035750612400, -0.0000029893238400, 0.0000026296883500, -0.0000023356224600}, - { -0.0000002436583600, -0.0000000809275400, 0.0000002174932100, -0.0000001065376500, - -0.0000002322951600, 0.0000010016783300, -0.0000029228839400, 0.0000111361951300, - 0.0000274567466000, -0.0000087919930200, 0.0000058025057300, -0.0000044378805200, - 0.0000035875683000, -0.0000030010656200, 0.0000026393710400, -0.0000023446642300}, - { -0.0000002458072800, -0.0000000774072300, 0.0000002140548500, -0.0000001040420000, - -0.0000002353097400, 0.0000010052135800, -0.0000029301943900, 0.0000111721745400, - 0.0000274333594900, -0.0000088052895500, 0.0000058159209800, -0.0000044509951300, - 0.0000036000215000, -0.0000030121514300, 0.0000026496227300, -0.0000023547531800}, - { -0.0000002486798400, -0.0000000743082100, 0.0000002107901300, -0.0000001010435600, - -0.0000002377569500, 0.0000010090405600, -0.0000029366888100, 0.0000112076957700, - 0.0000274096422800, -0.0000088200445900, 0.0000058300810100, -0.0000044638462800, - 0.0000036123651800, -0.0000030232021100, 0.0000026596958900, -0.0000023639414500}, - { -0.0000002509178900, -0.0000000707489700, 0.0000002079209800, -0.0000000979178500, - -0.0000002412292800, 0.0000010130406600, -0.0000029450197300, 0.0000112436237300, - 0.0000273857995500, -0.0000088329074400, 0.0000058431854000, -0.0000044767731000, - 0.0000036247749400, -0.0000030349857900, 0.0000026701008800, -0.0000023725485500}, - { -0.0000002538546200, -0.0000000675641700, 0.0000002045354700, -0.0000000947146600, - -0.0000002444944300, 0.0000010165016900, -0.0000029513195500, 0.0000112791388300, - 0.0000273618006800, -0.0000088473828000, 0.0000058572790800, -0.0000044902786100, - 0.0000036367072300, -0.0000030457501700, 0.0000026799344000, -0.0000023815374100}, - { -0.0000002562081700, -0.0000000638597900, 0.0000002015094700, -0.0000000913965300, - -0.0000002481943700, 0.0000010207398600, -0.0000029598886400, 0.0000113154412600, - 0.0000273374591600, -0.0000088603102200, 0.0000058693934100, -0.0000045025119300, - 0.0000036484791400, -0.0000030563119800, 0.0000026898455900, -0.0000023913083300}, - { -0.0000002592531600, -0.0000000611735800, 0.0000001974049600, -0.0000000877067200, - -0.0000002513122700, 0.0000010252711500, -0.0000029676327000, 0.0000113513193200, - 0.0000273125908800, -0.0000088732072900, 0.0000058832779800, -0.0000045150554000, - 0.0000036606443900, -0.0000030679000400, 0.0000026993402700, -0.0000024001590900}, - { -0.0000002617432700, -0.0000000572476600, 0.0000001934940900, -0.0000000846562800, - -0.0000002549947700, 0.0000010301351000, -0.0000029750846500, 0.0000113886584200, - 0.0000272881898500, -0.0000088859686000, 0.0000058953274300, -0.0000045271977200, - 0.0000036723589400, -0.0000030784892400, 0.0000027097712600, -0.0000024087333600}, - { -0.0000002648556200, -0.0000000539287700, 0.0000001905685000, -0.0000000806920200, - -0.0000002588198100, 0.0000010335223100, -0.0000029830210100, 0.0000114246195000, - 0.0000272637989000, -0.0000088988209700, 0.0000059082508900, -0.0000045398291800, - 0.0000036835959600, -0.0000030886948300, 0.0000027193422300, -0.0000024182088200}, - { -0.0000002675426700, -0.0000000497529300, 0.0000001863568800, -0.0000000773306300, - -0.0000002628339500, 0.0000010387943600, -0.0000029915068400, 0.0000114620841300, - 0.0000272380972500, -0.0000089107334300, 0.0000059206370700, -0.0000045521223000, - 0.0000036954725600, -0.0000031000132500, 0.0000027286742200, -0.0000024270058800}, - { -0.0000002708812100, -0.0000000461001300, 0.0000001824188800, -0.0000000735439500, - -0.0000002661448300, 0.0000010435538400, -0.0000029994677500, 0.0000114983831800, - 0.0000272129953900, -0.0000089228688900, 0.0000059329528700, -0.0000045634938700, - 0.0000037065976700, -0.0000031100796100, 0.0000027379891900, -0.0000024355993600}, - { -0.0000002735490700, -0.0000000419849000, 0.0000001788462900, -0.0000000689215900, - -0.0000002707124200, 0.0000010482924400, -0.0000030075860600, 0.0000115356267200, - 0.0000271872904900, -0.0000089354351300, 0.0000059449185200, -0.0000045758252600, - 0.0000037192230500, -0.0000031210219100, 0.0000027478273400, -0.0000024437594700}, - { -0.0000002768719300, -0.0000000389873200, 0.0000001744376300, -0.0000000654868000, - -0.0000002747163000, 0.0000010528906800, -0.0000030164681700, 0.0000115727569700, - 0.0000271612337400, -0.0000089466219000, 0.0000059565965700, -0.0000045873231900, - 0.0000037295135500, -0.0000031304965400, 0.0000027568162200, -0.0000024528121700}, - { -0.0000002798079400, -0.0000000344868200, 0.0000001697477500, -0.0000000608943300, - -0.0000002794808000, 0.0000010579370800, -0.0000030249393200, 0.0000116105596800, - 0.0000271346326500, -0.0000089576437400, 0.0000059689822100, -0.0000045986571500, - 0.0000037406419500, -0.0000031405176100, 0.0000027660621000, -0.0000024614179100}, - { -0.0000002834574300, -0.0000000305400500, 0.0000001661742100, -0.0000000568717900, - -0.0000002840569000, 0.0000010637555700, -0.0000030338939200, 0.0000116487577100, - 0.0000271082832700, -0.0000089682984500, 0.0000059794346400, -0.0000046095149100, - 0.0000037513479000, -0.0000031508865800, 0.0000027746587900, -0.0000024696294000}, - { -0.0000002863090600, -0.0000000261546500, 0.0000001616196800, -0.0000000524060200, - -0.0000002886726400, 0.0000010686302700, -0.0000030421218200, 0.0000116863187300, - 0.0000270824597700, -0.0000089796024200, 0.0000059912731300, -0.0000046212603400, - 0.0000037619046000, -0.0000031606514800, 0.0000027845171900, -0.0000024784044100}, - { -0.0000002900989400, -0.0000000219487800, 0.0000001570599400, -0.0000000479303700, - -0.0000002927315300, 0.0000010742257600, -0.0000030515733500, 0.0000117240864200, - 0.0000270554278500, -0.0000089907403100, 0.0000060028342200, -0.0000046320155000, - 0.0000037725963100, -0.0000031710668200, 0.0000027931517600, -0.0000024865514300}, - { -0.0000002939110000, -0.0000000177806100, 0.0000001531519200, -0.0000000428383200, - -0.0000002978759900, 0.0000010796286200, -0.0000030603272900, 0.0000117623618000, - 0.0000270285855600, -0.0000090009416000, 0.0000060137232300, -0.0000046429802200, - 0.0000037824453100, -0.0000031801130600, 0.0000028016349500, -0.0000024945375600}, - { -0.0000002971404300, -0.0000000129367200, 0.0000001481455800, -0.0000000385645100, - -0.0000003028924400, 0.0000010859951400, -0.0000030704739700, 0.0000118009163200, - 0.0000270004747300, -0.0000090110535200, 0.0000060237393200, -0.0000046534338000, - 0.0000037928400600, -0.0000031903279600, 0.0000028108476700, -0.0000025021832500}, - { -0.0000003010799000, -0.0000000085506800, 0.0000001433304900, -0.0000000337127500, - -0.0000003080051000, 0.0000010914101700, -0.0000030792208700, 0.0000118393292300, - 0.0000269732724800, -0.0000090208244500, 0.0000060342765300, -0.0000046633690800, - 0.0000038028249000, -0.0000031994340000, 0.0000028194618000, -0.0000025109965600}, - { -0.0000003043352800, -0.0000000043286100, 0.0000001376710400, -0.0000000282666000, - -0.0000003129872000, 0.0000010978749000, -0.0000030894968100, 0.0000118781343500, - 0.0000269453183200, -0.0000090299385000, 0.0000060444527700, -0.0000046738202500, - 0.0000038128681100, -0.0000032076686500, 0.0000028274348700, -0.0000025185554200}, - { -0.0000003084097600, 0.0000000001652200, 0.0000001334856800, -0.0000000235221900, - -0.0000003190341200, 0.0000011040895200, -0.0000030996156800, 0.0000119168850700, - 0.0000269167050700, -0.0000090401757000, 0.0000060542535700, -0.0000046832398400, - 0.0000038225851900, -0.0000032173379200, 0.0000028361984300, -0.0000025257897700}, - { -0.0000003118681600, 0.0000000052969800, 0.0000001280388200, -0.0000000180668100, - -0.0000003240720400, 0.0000011105920600, -0.0000031092550300, 0.0000119563660200, - 0.0000268880111900, -0.0000090484913100, 0.0000060629970500, -0.0000046933803100, - 0.0000038315834400, -0.0000032256880200, 0.0000028442350400, -0.0000025341820300}, - { -0.0000003162561900, 0.0000000102202900, 0.0000001226211900, -0.0000000125395300, - -0.0000003299906800, 0.0000011175918200, -0.0000031191167100, 0.0000119959312000, - 0.0000268593285800, -0.0000090577351800, 0.0000060731151800, -0.0000047029530200, - 0.0000038413339800, -0.0000032353226800, 0.0000028521763200, -0.0000025418085200}, - { -0.0000003199268400, 0.0000000156014300, 0.0000001168676900, -0.0000000066919400, - -0.0000003361438800, 0.0000011241308700, -0.0000031296168100, 0.0000120353034900, - 0.0000268302409700, -0.0000090656855500, 0.0000060822958600, -0.0000047124517500, - 0.0000038499397300, -0.0000032433214400, 0.0000028598264500, -0.0000025491004800}, - { -0.0000003242762700, 0.0000000204180800, 0.0000001122626500, -0.0000000008679700, - -0.0000003414828400, 0.0000011309574900, -0.0000031402432600, 0.0000120754514200, - 0.0000268015321100, -0.0000090745034900, 0.0000060911299100, -0.0000047212175500, - 0.0000038596766500, -0.0000032520166800, 0.0000028679119400, -0.0000025558748500}, - { -0.0000003280931700, 0.0000000259812600, 0.0000001063521800, 0.0000000044884500, - -0.0000003483800400, 0.0000011387738000, -0.0000031508074100, 0.0000121152150800, - 0.0000267711413800, -0.0000090822485700, 0.0000061000604600, -0.0000047304659400, - 0.0000038681603800, -0.0000032600073600, 0.0000028755960800, -0.0000025638962100}, - { -0.0000003327797000, 0.0000000312623600, 0.0000001004973300, 0.0000000105206400, - -0.0000003548028100, 0.0000011456238300, -0.0000031616336600, 0.0000121558234900, - 0.0000267415888400, -0.0000090894622700, 0.0000061086213100, -0.0000047387160100, - 0.0000038767569400, -0.0000032686245400, 0.0000028827467700, -0.0000025709333200}, - { -0.0000003367277200, 0.0000000369742900, 0.0000000943784400, 0.0000000167921300, - -0.0000003614337200, 0.0000011526657700, -0.0000031726469200, 0.0000121966313400, - 0.0000267117532200, -0.0000090972059800, 0.0000061166435400, -0.0000047473566900, - 0.0000038846825400, -0.0000032761339500, 0.0000028907556300, -0.0000025775412400}, - { -0.0000003415490600, 0.0000000424433200, 0.0000000883119400, 0.0000000230091300, - -0.0000003674451700, 0.0000011609993400, -0.0000031842624600, 0.0000122364892800, - 0.0000266807297400, -0.0000091041565400, 0.0000061249320900, -0.0000047553631700, - 0.0000038930581400, -0.0000032847149600, 0.0000028979555600, -0.0000025852313500}, - { -0.0000003456266600, 0.0000000475867100, 0.0000000822340300, 0.0000000303040600, - -0.0000003749535300, 0.0000011688497100, -0.0000031960441800, 0.0000122782327100, - 0.0000266496871700, -0.0000091106317700, 0.0000061319593900, -0.0000047633284300, - 0.0000039010819600, -0.0000032912027100, 0.0000029044984700, -0.0000025916736900}, - { -0.0000003505638300, 0.0000000531731300, 0.0000000760093900, 0.0000000367747300, - -0.0000003818881300, 0.0000011769073200, -0.0000032068754900, 0.0000123192522800, - 0.0000266191486300, -0.0000091168632300, 0.0000061398326100, -0.0000047717396700, - 0.0000039088687600, -0.0000032993298700, 0.0000029119110500, -0.0000025979190500}, - { -0.0000003550040600, 0.0000000594828700, 0.0000000692495800, 0.0000000430866400, - -0.0000003898279700, 0.0000011852192100, -0.0000032198029300, 0.0000123611901100, - 0.0000265868569100, -0.0000091231578000, 0.0000061464903000, -0.0000047784155800, - 0.0000039161387400, -0.0000033061913700, 0.0000029187959100, -0.0000026053040700}, - { -0.0000003602065500, 0.0000000653931700, 0.0000000626385600, 0.0000000499981800, - -0.0000003972488800, 0.0000011937971200, -0.0000032311531400, 0.0000124029148500, - 0.0000265553269700, -0.0000091283444100, 0.0000061535070700, -0.0000047860778200, - 0.0000039232475500, -0.0000033136595000, 0.0000029249328200, -0.0000026115105800}, - { -0.0000003647327300, 0.0000000718027400, 0.0000000556866100, 0.0000000572266200, - -0.0000004049722900, 0.0000012020034000, -0.0000032439785200, 0.0000124448392000, - 0.0000265233959000, -0.0000091339033000, 0.0000061597170100, -0.0000047925510600, - 0.0000039309873100, -0.0000033199111900, 0.0000029320278800, -0.0000026173704500}, - { -0.0000003702105200, 0.0000000780101600, 0.0000000494443100, 0.0000000649052900, - -0.0000004123793300, 0.0000012117690200, -0.0000032570746200, 0.0000124873224300, - 0.0000264900163300, -0.0000091383468500, 0.0000061659588400, -0.0000047995635500, - 0.0000039375017600, -0.0000033269511800, 0.0000029378736300, -0.0000026232862100}, - { -0.0000003755895200, 0.0000000841447500, 0.0000000425856500, 0.0000000720904000, - -0.0000004201204700, 0.0000012206896600, -0.0000032687548300, 0.0000125295550200, - 0.0000264577145700, -0.0000091434512400, 0.0000061726016900, -0.0000048060026200, - 0.0000039436382500, -0.0000033329672000, 0.0000029438925700, -0.0000026300063600}, - { -0.0000003803350600, 0.0000000908270600, 0.0000000353021900, 0.0000000796996500, - -0.0000004282623500, 0.0000012293251100, -0.0000032819571200, 0.0000125720795200, - 0.0000264247652100, -0.0000091479732400, 0.0000061780340600, -0.0000048117964600, - 0.0000039508550400, -0.0000033394973500, 0.0000029502101900, -0.0000026353317400}, - { -0.0000003861457500, 0.0000000974841200, 0.0000000278697700, 0.0000000875358500, - -0.0000004367158600, 0.0000012390643600, -0.0000032952152900, 0.0000126156834400, - 0.0000263910245800, -0.0000091525806900, 0.0000061834912800, -0.0000048182001300, - 0.0000039568933000, -0.0000033460776600, 0.0000029556965600, -0.0000026409434000}, - { -0.0000003912507000, 0.0000001045891900, 0.0000000200514600, 0.0000000957623400, - -0.0000004455578400, 0.0000012491700600, -0.0000033087770300, 0.0000126588986000, - 0.0000263570751000, -0.0000091552786700, 0.0000061883959100, -0.0000048240646500, - 0.0000039624070900, -0.0000033515051500, 0.0000029612627700, -0.0000026473220500}, - { -0.0000003970051000, 0.0000001111797200, 0.0000000126628900, 0.0000001035742900, - -0.0000004539881200, 0.0000012588312500, -0.0000033218503400, 0.0000127016546500, - 0.0000263234790300, -0.0000091590421200, 0.0000061932964300, -0.0000048301375000, - 0.0000039688914300, -0.0000033575106100, 0.0000029670790800, -0.0000026522150600}, - { -0.0000004024302800, 0.0000001186615500, 0.0000000044341700, 0.0000001122432500, - -0.0000004633631600, 0.0000012695304100, -0.0000033360614900, 0.0000127463754300, - 0.0000262888924200, -0.0000091617477500, 0.0000061978479200, -0.0000048340055700, - 0.0000039737596900, -0.0000033623583100, 0.0000029720893300, -0.0000026573902300}, - { -0.0000004085082700, 0.0000001256538900, -0.0000000034034800, 0.0000001205478700, - -0.0000004723290400, 0.0000012797985100, -0.0000033498033100, 0.0000127907136500, - 0.0000262539269000, -0.0000091650848600, 0.0000062022592400, -0.0000048395229300, - 0.0000039790688300, -0.0000033684178100, 0.0000029779644500, -0.0000026631089400}, - { -0.0000004139947900, 0.0000001331802200, -0.0000000110045000, 0.0000001297966400, - -0.0000004821497300, 0.0000012908660300, -0.0000033643014900, 0.0000128351507600, - 0.0000262181947100, -0.0000091667171300, 0.0000062052525700, -0.0000048439828000, - 0.0000039840829600, -0.0000033723634100, 0.0000029823200100, -0.0000026677369100}, - { -0.0000004204208100, 0.0000001405618600, -0.0000000193120700, 0.0000001386785000, - -0.0000004924853700, 0.0000013014623800, -0.0000033792097000, 0.0000128796851700, - 0.0000261832669700, -0.0000091689502800, 0.0000062095944700, -0.0000048484357900, - 0.0000039885777900, -0.0000033776306400, 0.0000029866954600, -0.0000026723942900}, - { -0.0000004260417800, 0.0000001483063100, -0.0000000278806000, 0.0000001477736900, - -0.0000005023257700, 0.0000013125955200, -0.0000033937289100, 0.0000129242600400, - 0.0000261471099700, -0.0000091701578900, 0.0000062122650400, -0.0000048518010200, - 0.0000039936894900, -0.0000033824115200, 0.0000029914914700, -0.0000026764892400}, - { -0.0000004327008900, 0.0000001552956500, -0.0000000370001900, 0.0000001573784600, - -0.0000005126787000, 0.0000013243154600, -0.0000034089428900, 0.0000129704208100, - 0.0000261097309800, -0.0000091709577400, 0.0000062145158100, -0.0000048554302300, - 0.0000039972655000, -0.0000033861618500, 0.0000029956756400, -0.0000026817551300}, - { -0.0000004387061400, 0.0000001634796200, -0.0000000460660800, 0.0000001670082700, - -0.0000005230956800, 0.0000013361670100, -0.0000034249709200, 0.0000130162737200, - 0.0000260730415900, -0.0000091714875900, 0.0000062174189600, -0.0000048586130300, - 0.0000040006010900, -0.0000033904910800, 0.0000029992822400, -0.0000026858101400}, - { -0.0000004454372600, 0.0000001712493000, -0.0000000548375700, 0.0000001763978200, - -0.0000005332669200, 0.0000013476831400, -0.0000034399268600, 0.0000130622438100, - 0.0000260362390800, -0.0000091718251200, 0.0000062194230500, -0.0000048621392100, - 0.0000040048640600, -0.0000033945864700, 0.0000030035043200, -0.0000026894698800}, - { -0.0000004523786800, 0.0000001792774700, -0.0000000639267000, 0.0000001868519600, - -0.0000005434268500, 0.0000013594098000, -0.0000034558763500, 0.0000131081652600, - 0.0000259993523100, -0.0000091727265200, 0.0000062216113000, -0.0000048648464400, - 0.0000040076906100, -0.0000033977399000, 0.0000030072123900, -0.0000026942508300}, - { -0.0000004586585500, 0.0000001877974400, -0.0000000734060100, 0.0000001970438800, - -0.0000005551787400, 0.0000013714416500, -0.0000034721796900, 0.0000131545261000, - 0.0000259617106900, -0.0000091722403400, 0.0000062229403200, -0.0000048678076000, - 0.0000040115213700, -0.0000034014280800, 0.0000030111284500, -0.0000026976072400}, - { -0.0000004659557800, 0.0000001962511100, -0.0000000829862900, 0.0000002073337300, - -0.0000005663538600, 0.0000013840666600, -0.0000034882878100, 0.0000132019240400, - 0.0000259230513500, -0.0000091706871400, 0.0000062239873700, -0.0000048693489400, - 0.0000040133308800, -0.0000034036485500, 0.0000030138847000, -0.0000027009514400}, - { -0.0000004725695500, 0.0000002051981700, -0.0000000929347100, 0.0000002180035700, - -0.0000005779960100, 0.0000013979073500, -0.0000035051605900, 0.0000132491612100, - 0.0000258836019600, -0.0000091701376100, 0.0000062241192800, -0.0000048705371900, - 0.0000040165553900, -0.0000034068442600, 0.0000030166932700, -0.0000027050861400}, - { -0.0000004799901300, 0.0000002138024300, -0.0000001026848500, 0.0000002284840400, - -0.0000005893861400, 0.0000014108040800, -0.0000035222237300, 0.0000132964854500, - 0.0000258446283900, -0.0000091682539100, 0.0000062249560500, -0.0000048718972600, - 0.0000040182871900, -0.0000034098388500, 0.0000030199249900, -0.0000027078741500}, - { -0.0000004870595400, 0.0000002232582100, -0.0000001132590800, 0.0000002399200400, - -0.0000006025214200, 0.0000014243272400, -0.0000035401209000, 0.0000133455517400, - 0.0000258048229900, -0.0000091653939600, 0.0000062241715900, -0.0000048729769800, - 0.0000040203792100, -0.0000034111888100, 0.0000030220920600, -0.0000027107457100}, - { -0.0000004947156000, 0.0000002321555700, -0.0000001233847400, 0.0000002515774700, - -0.0000006140611400, 0.0000014382400400, -0.0000035570772900, 0.0000133930500000, - 0.0000257654713000, -0.0000091637493400, 0.0000062242822500, -0.0000048738434100, - 0.0000040216442600, -0.0000034137799500, 0.0000030242570200, -0.0000027143371600}, - { -0.0000005016493400, 0.0000002414767800, -0.0000001338252600, 0.0000002627935400, - -0.0000006262314300, 0.0000014519076200, -0.0000035748887100, 0.0000134413490000, - 0.0000257250575700, -0.0000091604648700, 0.0000062239840100, -0.0000048743282000, - 0.0000040233396200, -0.0000034157300200, 0.0000030266800800, -0.0000027164826500}, - { -0.0000005099278600, 0.0000002511020600, -0.0000001447380500, 0.0000002746842300, - -0.0000006399204100, 0.0000014660767100, -0.0000035934332400, 0.0000134912928100, - 0.0000256840267600, -0.0000091570002800, 0.0000062216233800, -0.0000048739644700, - 0.0000040234336300, -0.0000034163561400, 0.0000030281865200, -0.0000027187650100}, - { -0.0000005170558100, 0.0000002606541400, -0.0000001554671000, 0.0000002862380100, - -0.0000006525103100, 0.0000014809292700, -0.0000036112846200, 0.0000135398740700, - 0.0000256430891500, -0.0000091531009000, 0.0000062208163600, -0.0000048740138000, - 0.0000040247773900, -0.0000034180802400, 0.0000030304366300, -0.0000027215455700}, - { -0.0000005254922300, 0.0000002704732600, -0.0000001666038900, 0.0000002983502200, - -0.0000006664576800, 0.0000014954266000, -0.0000036308554600, 0.0000135898611300, - 0.0000256016406700, -0.0000091492283600, 0.0000062189717900, -0.0000048730903800, - 0.0000040245240000, -0.0000034192418000, 0.0000030314184400, -0.0000027233909600}, - { -0.0000005330421900, 0.0000002805447300, -0.0000001779622200, 0.0000003113745000, - -0.0000006794821100, 0.0000015108636900, -0.0000036493663300, 0.0000136392728600, - 0.0000255595532100, -0.0000091449297700, 0.0000062167723200, -0.0000048720314000, - 0.0000040247715100, -0.0000034191966500, 0.0000030331001200, -0.0000027248039400}, - { -0.0000005418047900, 0.0000002907510500, -0.0000001896019300, 0.0000003240948000, - -0.0000006941296500, 0.0000015268001700, -0.0000036685011500, 0.0000136902218400, - 0.0000255169264700, -0.0000091390047400, 0.0000062133585500, -0.0000048706450000, - 0.0000040240217600, -0.0000034199174200, 0.0000030336692900, -0.0000027272064200}, - { -0.0000005505373600, 0.0000003009395700, -0.0000002011695700, 0.0000003366480500, - -0.0000007078261400, 0.0000015421720100, -0.0000036888380700, 0.0000137411927200, - 0.0000254740700000, -0.0000091336957100, 0.0000062103176600, -0.0000048687487200, - 0.0000040235929700, -0.0000034199682900, 0.0000030337810300, -0.0000027283556600}, - { -0.0000005585382500, 0.0000003115541600, -0.0000002131832000, 0.0000003504827500, - -0.0000007224968800, 0.0000015582215100, -0.0000037080250800, 0.0000137915259700, - 0.0000254306086800, -0.0000091279630400, 0.0000062069083500, -0.0000048665013800, - 0.0000040221399100, -0.0000034201654500, 0.0000030346034000, -0.0000027291156400}, - { -0.0000005674994900, 0.0000003220173800, -0.0000002250865900, 0.0000003634318300, - -0.0000007366427500, 0.0000015748179900, -0.0000037284933600, 0.0000138428727000, - 0.0000253871405000, -0.0000091219627900, 0.0000062033003000, -0.0000048649242600, - 0.0000040210075200, -0.0000034189299100, 0.0000030346059500, -0.0000027308900300}, - { -0.0000005758700400, 0.0000003330548600, -0.0000002375530200, 0.0000003770118000, - -0.0000007521879300, 0.0000015909567200, -0.0000037496867100, 0.0000138949385400, - 0.0000253426570300, -0.0000091143115000, 0.0000061992180000, -0.0000048620522900, - 0.0000040197728000, -0.0000034182788700, 0.0000030348556000, -0.0000027312476200}, - { -0.0000005852674900, 0.0000003440460400, -0.0000002500886900, 0.0000003906772800, - -0.0000007671474500, 0.0000016084224600, -0.0000037702515700, 0.0000139476737000, - 0.0000252975093200, -0.0000091066456400, 0.0000061940861800, -0.0000048581744400, - 0.0000040168382200, -0.0000034171796400, 0.0000030338133100, -0.0000027314851900}, - { -0.0000005940171600, 0.0000003555441000, -0.0000002631162900, 0.0000004057015800, - -0.0000007831507500, 0.0000016259063300, -0.0000037917269600, 0.0000140002708200, - 0.0000252522799200, -0.0000090988640700, 0.0000061880613500, -0.0000048547165800, - 0.0000040149371300, -0.0000034151729900, 0.0000030339624000, -0.0000027324602000}, - { -0.0000006038006300, 0.0000003669989500, -0.0000002761828800, 0.0000004199685000, - -0.0000007987803500, 0.0000016441338600, -0.0000038138344000, 0.0000140535980000, - 0.0000252061541300, -0.0000090901636600, 0.0000061820252000, -0.0000048500250500, - 0.0000040112744100, -0.0000034134470700, 0.0000030324310800, -0.0000027322408700}, - { -0.0000006128817400, 0.0000003788978800, -0.0000002896910300, 0.0000004355118400, - -0.0000008153648900, 0.0000016622514100, -0.0000038359180300, 0.0000141069989900, - 0.0000251597538600, -0.0000090812420800, 0.0000061758888600, -0.0000048454321900, - 0.0000040084569400, -0.0000034113893000, 0.0000030306458400, -0.0000027317970100}, - { -0.0000006227186400, 0.0000003904318200, -0.0000003028595200, 0.0000004499540800, - -0.0000008319159800, 0.0000016794826900, -0.0000038581990000, 0.0000141605434000, - 0.0000251131429100, -0.0000090720594500, 0.0000061694722300, -0.0000048405249700, - 0.0000040054114300, -0.0000034091543000, 0.0000030295722900, -0.0000027310222200}, - { -0.0000006328397300, 0.0000004031158500, -0.0000003168595500, 0.0000004641928300, - -0.0000008476386900, 0.0000016978639900, -0.0000038804959500, 0.0000142142757000, - 0.0000250662990700, -0.0000090633704900, 0.0000061624954700, -0.0000048358207200, - 0.0000040007213300, -0.0000034057656100, 0.0000030276666600, -0.0000027311829700}, - { -0.0000006423738600, 0.0000004155528900, -0.0000003309959300, 0.0000004804548400, - -0.0000008650250700, 0.0000017168425100, -0.0000039034846100, 0.0000142695621300, - 0.0000250186846500, -0.0000090531292600, 0.0000061551769900, -0.0000048301646800, - 0.0000039969736100, -0.0000034029532000, 0.0000030260492100, -0.0000027299867000}, - { -0.0000006528665100, 0.0000004278722600, -0.0000003450970500, 0.0000004959568700, - -0.0000008827892900, 0.0000017361477800, -0.0000039267480800, 0.0000143244619700, - 0.0000249702348700, -0.0000090420060400, 0.0000061470769900, -0.0000048237360200, - 0.0000039925613200, -0.0000033995062800, 0.0000030230693900, -0.0000027285607600}, - { -0.0000006624732800, 0.0000004404173000, -0.0000003593946300, 0.0000005123920600, - -0.0000009003806900, 0.0000017553760300, -0.0000039499198000, 0.0000143792799000, - 0.0000249217705300, -0.0000090309454700, 0.0000061398382500, -0.0000048170611400, - 0.0000039872247300, -0.0000033963765200, 0.0000030211452200, -0.0000027278748100}, - { -0.0000006733019100, 0.0000004530986400, -0.0000003739016800, 0.0000005283093400, - -0.0000009178450500, 0.0000017763535800, -0.0000039744969800, 0.0000144353453000, - 0.0000248736735600, -0.0000090189496400, 0.0000061311021700, -0.0000048108842000, - 0.0000039820545400, -0.0000033924139600, 0.0000030177475500, -0.0000027261029400}, - { -0.0000006833632200, 0.0000004661933300, -0.0000003888052900, 0.0000005454760700, - -0.0000009362610000, 0.0000017964244700, -0.0000039985659800, 0.0000144912324100, - 0.0000248238004700, -0.0000090072272700, 0.0000061214521700, -0.0000048032095800, - 0.0000039764687300, -0.0000033871892800, 0.0000030150552400, -0.0000027238906300}, - { -0.0000006944808900, 0.0000004792587900, -0.0000004037760400, 0.0000005619673100, - -0.0000009551266900, 0.0000018169204500, -0.0000040230608100, 0.0000145484672100, - 0.0000247735896000, -0.0000089941342900, 0.0000061116139800, -0.0000047952151500, - 0.0000039706664600, -0.0000033825489900, 0.0000030111200300, -0.0000027225498800}, - { -0.0000007048709900, 0.0000004927883500, -0.0000004199654100, 0.0000005793881200, - -0.0000009738964200, 0.0000018374848700, -0.0000040483849800, 0.0000146046598800, - 0.0000247230365400, -0.0000089816950200, 0.0000061014854400, -0.0000047877574700, - 0.0000039635751800, -0.0000033778171100, 0.0000030078686000, -0.0000027198514200}, - { -0.0000007165536600, 0.0000005065305500, -0.0000004357110300, 0.0000005967529800, - -0.0000009937335800, 0.0000018590642800, -0.0000040747877600, 0.0000146628884600, - 0.0000246713790300, -0.0000089671417900, 0.0000060903432100, -0.0000047785728000, - 0.0000039566909200, -0.0000033722116600, 0.0000030030861700, -0.0000027169252500}, - { -0.0000007276776700, 0.0000005196186900, -0.0000004507476500, 0.0000006140611400, - -0.0000010115702100, 0.0000018796926000, -0.0000040992574000, 0.0000147194377100, - 0.0000246211745800, -0.0000089538068000, 0.0000060802547900, -0.0000047694806200, - 0.0000039498877900, -0.0000033667952600, 0.0000029984769900, -0.0000027149571000}, - { -0.0000007387874000, 0.0000005339424900, -0.0000004670815200, 0.0000006320666200, - -0.0000010320954700, 0.0000019027766500, -0.0000041261046500, 0.0000147782948500, - 0.0000245685443800, -0.0000089383414100, 0.0000060683139900, -0.0000047604443400, - 0.0000039421896500, -0.0000033597878400, 0.0000029942169700, -0.0000027114750800}, - { -0.0000007510337800, 0.0000005483782700, -0.0000004836420600, 0.0000006511584900, - -0.0000010526788500, 0.0000019252707100, -0.0000041534516600, 0.0000148377088500, - 0.0000245152841500, -0.0000089229128400, 0.0000060553978800, -0.0000047496635400, - 0.0000039330446700, -0.0000033531679300, 0.0000029885352000, -0.0000027077485500}, - { -0.0000007617681800, 0.0000005622426600, -0.0000004994838300, 0.0000006686063700, - -0.0000010725673400, 0.0000019468467400, -0.0000041789645200, 0.0000148963171000, - 0.0000244635866200, -0.0000089072585900, 0.0000060442764900, -0.0000047403936100, - 0.0000039252529900, -0.0000033469077500, 0.0000029839930100, -0.0000027050084400}, - { -0.0000007743458100, 0.0000005771106400, -0.0000005173633200, 0.0000006879940500, - -0.0000010936112200, 0.0000019706338200, -0.0000042065049900, 0.0000149561525700, - 0.0000244095869900, -0.0000088910561500, 0.0000060307776300, -0.0000047291253700, - 0.0000039164455700, -0.0000033396349900, 0.0000029777209800, -0.0000027007624400}, - { -0.0000007858967200, 0.0000005919845900, -0.0000005343167000, 0.0000007067136200, - -0.0000011149489200, 0.0000019938097200, -0.0000042344891600, 0.0000150163766200, - 0.0000243550330900, -0.0000088743758000, 0.0000060167864400, -0.0000047174313100, - 0.0000039073486100, -0.0000033321568100, 0.0000029721987600, -0.0000026962754000}, - { -0.0000007983157300, 0.0000006074179500, -0.0000005508592100, 0.0000007258796500, - -0.0000011356666000, 0.0000020172218500, -0.0000042616124600, 0.0000150758631000, - 0.0000243020071900, -0.0000088580561000, 0.0000060040729000, -0.0000047067967200, - 0.0000038982593900, -0.0000033247283000, 0.0000029658101500, -0.0000026927788900}, - { -0.0000008105130300, 0.0000006230560200, -0.0000005687757500, 0.0000007464989300, - -0.0000011579317500, 0.0000020414981800, -0.0000042907551700, 0.0000151374476700, - 0.0000242457316000, -0.0000088387814400, 0.0000059887026200, -0.0000046937384600, - 0.0000038870631000, -0.0000033163420100, 0.0000029594120700, -0.0000026875984700}, - { -0.0000008233810500, 0.0000006382559600, -0.0000005862421100, 0.0000007658087800, - -0.0000011799401200, 0.0000020662084900, -0.0000043192258600, 0.0000151985072700, - 0.0000241899935800, -0.0000088207332900, 0.0000059743644400, -0.0000046816052000, - 0.0000038766487900, -0.0000033069335600, 0.0000029522772700, -0.0000026834459500}, - { -0.0000008365745600, 0.0000006538532000, -0.0000006049746700, 0.0000007862043900, - -0.0000012020887000, 0.0000020904026300, -0.0000043490655700, 0.0000152598080900, - 0.0000241345587100, -0.0000088019183800, 0.0000059585807800, -0.0000046682659300, - 0.0000038659818300, -0.0000032980362900, 0.0000029455506100, -0.0000026779041200}, - { -0.0000008488941000, 0.0000006696553400, -0.0000006230594800, 0.0000008061850300, - -0.0000012248204100, 0.0000021158865900, -0.0000043782741400, 0.0000153217488200, - 0.0000240775110200, -0.0000087826286000, 0.0000059432200300, -0.0000046551952900, - 0.0000038547619600, -0.0000032887333800, 0.0000029375054800, -0.0000026721976200}, - { -0.0000008621850700, 0.0000006853393800, -0.0000006411265100, 0.0000008270409100, - -0.0000012474342700, 0.0000021413239200, -0.0000044074457000, 0.0000153836655200, - 0.0000240212813600, -0.0000087629196300, 0.0000059265982800, -0.0000046411553600, - 0.0000038435074500, -0.0000032793916400, 0.0000029303599100, -0.0000026672135800}, - { -0.0000008749942500, 0.0000007017378200, -0.0000006599218000, 0.0000008486986700, - -0.0000012716522600, 0.0000021665336500, -0.0000044383621100, 0.0000154463623000, - 0.0000239631193600, -0.0000087424514000, 0.0000059102015300, -0.0000046272077200, - 0.0000038314783100, -0.0000032692580400, 0.0000029216641900, -0.0000026609057300}, - { -0.0000008886221300, 0.0000007178451900, -0.0000006792714500, 0.0000008689620600, - -0.0000012948009400, 0.0000021925282500, -0.0000044681119300, 0.0000155098325200, - 0.0000239060508500, -0.0000087219020100, 0.0000058937803200, -0.0000046131179100, - 0.0000038193255500, -0.0000032591551900, 0.0000029137687900, -0.0000026544650500}, - { -0.0000009017719800, 0.0000007346605300, -0.0000006985204400, 0.0000008911224900, - -0.0000013188518400, 0.0000022195302800, -0.0000044997006400, 0.0000155734052300, - 0.0000238467918900, -0.0000087010194700, 0.0000058751361600, -0.0000045972814900, - 0.0000038064564500, -0.0000032483676700, 0.0000029046121000, -0.0000026486139900}, - { -0.0000009157733600, 0.0000007511909600, -0.0000007175647500, 0.0000009130702800, - -0.0000013426053000, 0.0000022454091700, -0.0000045304400400, 0.0000156379869500, - 0.0000237883048800, -0.0000086789838900, 0.0000058573065700, -0.0000045819242800, - 0.0000037922966700, -0.0000032373937700, 0.0000028959823600, -0.0000026415860100}, - { -0.0000009301621700, 0.0000007690545500, -0.0000007377781200, 0.0000009352140300, - -0.0000013667509600, 0.0000022725762800, -0.0000045622167700, 0.0000157018351900, - 0.0000237292774000, -0.0000086564748300, 0.0000058390364400, -0.0000045653170900, - 0.0000037787266600, -0.0000032260085200, 0.0000028870030600, -0.0000026341359100}, - { -0.0000009438250700, 0.0000007864516400, -0.0000007577424400, 0.0000009574249500, - -0.0000013927827700, 0.0000023004845600, -0.0000045939676500, 0.0000157677386600, - 0.0000236683031800, -0.0000086329249600, 0.0000058190028400, -0.0000045489825900, - 0.0000037645625200, -0.0000032140124600, 0.0000028767035600, -0.0000026274692700}, - { -0.0000009580872000, 0.0000008033410300, -0.0000007771917200, 0.0000009798419700, - -0.0000014171124700, 0.0000023277932300, -0.0000046258378200, 0.0000158318052700, - 0.0000236087895800, -0.0000086106607600, 0.0000058000802500, -0.0000045327782600, - 0.0000037504763700, -0.0000032022055600, 0.0000028674126500, -0.0000026197380900}, - { -0.0000009721894700, 0.0000008212777900, -0.0000007978032900, 0.0000010035312500, - -0.0000014428158400, 0.0000023565684300, -0.0000046592644400, 0.0000158984686900, - 0.0000235466308600, -0.0000085859387000, 0.0000057798739800, -0.0000045153519300, - 0.0000037352645400, -0.0000031893498200, 0.0000028563276700, -0.0000026114821800}, - { -0.0000009871323400, 0.0000008389875100, -0.0000008190788700, 0.0000010268343100, - -0.0000014682289800, 0.0000023850713300, -0.0000046924112000, 0.0000159640235100, - 0.0000234853461000, -0.0000085609536100, 0.0000057593857200, -0.0000044967652300, - 0.0000037198907100, -0.0000031755365000, 0.0000028462385300, -0.0000026039689900}, - { -0.0000010014352200, 0.0000008571352800, -0.0000008398761300, 0.0000010499975700, - -0.0000014953382600, 0.0000024141775800, -0.0000047261891500, 0.0000160311566300, - 0.0000234232816700, -0.0000085360140300, 0.0000057372021900, -0.0000044785182900, - 0.0000037040075600, -0.0000031620187000, 0.0000028346554700, -0.0000025952967800}, - { -0.0000010166260400, 0.0000008751093900, -0.0000008606212500, 0.0000010738923200, - -0.0000015213032100, 0.0000024432461700, -0.0000047598975500, 0.0000160982608100, - 0.0000233611368900, -0.0000085101130000, 0.0000057159516400, -0.0000044601390800, - 0.0000036879378400, -0.0000031484316000, 0.0000028237949300, -0.0000025863505900}, - { -0.0000010321897600, 0.0000008936015200, -0.0000008827674600, 0.0000010981773200, - -0.0000015478042100, 0.0000024729320900, -0.0000047942312100, 0.0000161661569100, - 0.0000232972740300, -0.0000084843025700, 0.0000056938084300, -0.0000044400455400, - 0.0000036712214700, -0.0000031342439100, 0.0000028116156900, -0.0000025780065800}, - { -0.0000010466289100, 0.0000009127889900, -0.0000009036452200, 0.0000011223231400, - -0.0000015749030400, 0.0000025020862500, -0.0000048280259200, 0.0000162326124500, - 0.0000232344053400, -0.0000084586151300, 0.0000056717963000, -0.0000044210265700, - 0.0000036546321900, -0.0000031201495400, 0.0000028003222400, -0.0000025686033500}, - { -0.0000010624282400, 0.0000009314904500, -0.0000009252420500, 0.0000011471920900, - -0.0000016019505400, 0.0000025323118600, -0.0000048628982800, 0.0000163011748400, - 0.0000231703178600, -0.0000084306442100, 0.0000056487091900, -0.0000044009688500, - 0.0000036370261500, -0.0000031051508400, 0.0000027873625100, -0.0000025587973900}, - { -0.0000010770500300, 0.0000009500718600, -0.0000009474642200, 0.0000011715943000, - -0.0000016285463700, 0.0000025620788400, -0.0000048972602300, 0.0000163692118500, - 0.0000231066748100, -0.0000084039975100, 0.0000056259353500, -0.0000043812102400, - 0.0000036197201000, -0.0000030904859500, 0.0000027756477200, -0.0000025499892900}, - { -0.0000010931246800, 0.0000009691737700, -0.0000009694581800, 0.0000011960978000, - -0.0000016571687400, 0.0000025928666900, -0.0000049336013900, 0.0000164383311000, - 0.0000230408652300, -0.0000083761749100, 0.0000056019673100, -0.0000043603445300, - 0.0000036015066800, -0.0000030749714100, 0.0000027631903700, -0.0000025396035700}, - { -0.0000011083143100, 0.0000009884244000, -0.0000009924855700, 0.0000012214065900, - -0.0000016847826800, 0.0000026245793300, -0.0000049688721100, 0.0000165075323300, - 0.0000229757192500, -0.0000083479360500, 0.0000055777843800, -0.0000043392967400, - 0.0000035830313000, -0.0000030592744600, 0.0000027496482800, -0.0000025301408600}, - { -0.0000011247937000, 0.0000010079726100, -0.0000010150237400, 0.0000012473832200, - -0.0000017139617800, 0.0000026560090900, -0.0000050058620700, 0.0000165774369800, - 0.0000229096722700, -0.0000083187562800, 0.0000055525970000, -0.0000043164809800, - 0.0000035639110100, -0.0000030429438500, 0.0000027364856000, -0.0000025191900900}, - { -0.0000011414156900, 0.0000010285088600, -0.0000010375664800, 0.0000012733949200, - -0.0000017423150000, 0.0000026876050100, -0.0000050421461700, 0.0000166486654000, - 0.0000228431981400, -0.0000082882457600, 0.0000055272032600, -0.0000042943711600, - 0.0000035452683100, -0.0000030260595300, 0.0000027218999400, -0.0000025080573500}, - { -0.0000011569876800, 0.0000010482366800, -0.0000010611428200, 0.0000012993995900, - -0.0000017715404200, 0.0000027190997300, -0.0000050791534100, 0.0000167187177600, - 0.0000227767190600, -0.0000082585986900, 0.0000055017316200, -0.0000042721547900, - 0.0000035257818300, -0.0000030094081500, 0.0000027084885600, -0.0000024977875100}, - { -0.0000011735641200, 0.0000010679052100, -0.0000010838874100, 0.0000013255461800, - -0.0000018000408400, 0.0000027517442600, -0.0000051153628100, 0.0000167891670700, - 0.0000227096876100, -0.0000082283304900, 0.0000054765605000, -0.0000042492896400, - 0.0000035056918500, -0.0000029922928500, 0.0000026936217500, -0.0000024863147800}, - { -0.0000011895524600, 0.0000010881222400, -0.0000011080393900, 0.0000013522101400, - -0.0000018299976100, 0.0000027840232000, -0.0000051531646700, 0.0000168601698400, - 0.0000226418695900, -0.0000081973147300, 0.0000054498561600, -0.0000042259399400, - 0.0000034851636500, -0.0000029746913300, 0.0000026793421400, -0.0000024744283000}, - { -0.0000012061741600, 0.0000011078958400, -0.0000011308563500, 0.0000013785401700, - -0.0000018595879900, 0.0000028167737000, -0.0000051903321700, 0.0000169306244900, - 0.0000225746079600, -0.0000081675879800, 0.0000054233890700, -0.0000042028641800, - 0.0000034649470800, -0.0000029583320700, 0.0000026652632600, -0.0000024635779800}, - { -0.0000012233380000, 0.0000011282444600, -0.0000011543470000, 0.0000014055945900, - -0.0000018890880000, 0.0000028496294000, -0.0000052278354600, 0.0000170034645100, - 0.0000225057382600, -0.0000081353165500, 0.0000053955054200, -0.0000041784523800, - 0.0000034433929800, -0.0000029398158700, 0.0000026492726700, -0.0000024512416500}, - { -0.0000012397906100, 0.0000011498850800, -0.0000011789873100, 0.0000014328734600, - -0.0000019197522300, 0.0000028826801200, -0.0000052664294200, 0.0000170754821100, - 0.0000224364465600, -0.0000081027646800, 0.0000053673705700, -0.0000041537691400, - 0.0000034216344400, -0.0000029211010100, 0.0000026340154100, -0.0000024385306400}, - { -0.0000012569967700, 0.0000011703276500, -0.0000012026289200, 0.0000014600559700, - -0.0000019494308900, 0.0000029165749700, -0.0000053047725600, 0.0000171482978400, - 0.0000223673445000, -0.0000080701758400, 0.0000053401535600, -0.0000041291105000, - 0.0000034007728400, -0.0000029023858700, 0.0000026178649300, -0.0000024268830700}, - { -0.0000012733999200, 0.0000011910640700, -0.0000012273784000, 0.0000014874303900, - -0.0000019802025600, 0.0000029497290200, -0.0000053434105100, 0.0000172204980000, - 0.0000222975700000, -0.0000080378906900, 0.0000053114037000, -0.0000041039151900, - 0.0000033785715200, -0.0000028832942600, 0.0000026023212900, -0.0000024139101200}, - { -0.0000012909827000, 0.0000012119093100, -0.0000012514786800, 0.0000015152338700, - -0.0000020114351000, 0.0000029842400300, -0.0000053824260500, 0.0000172940887300, - 0.0000222282695500, -0.0000080040051200, 0.0000052820808400, -0.0000040782083200, - 0.0000033559250100, -0.0000028638659800, 0.0000025864605000, -0.0000024016696400}, - { -0.0000013077694700, 0.0000012330804800, -0.0000012768208900, 0.0000015431882400, - -0.0000020419854900, 0.0000030191368700, -0.0000054217452300, 0.0000173672040800, - 0.0000221572261900, -0.0000079694814600, 0.0000052531679400, -0.0000040518864300, - 0.0000033326721800, -0.0000028439265300, 0.0000025691724900, -0.0000023881218600}, - { -0.0000013256584600, 0.0000012552301800, -0.0000013011940600, 0.0000015713408100, - -0.0000020736060900, 0.0000030531916300, -0.0000054613554100, 0.0000174415121200, - 0.0000220859647000, -0.0000079355588500, 0.0000052228216400, -0.0000040252363400, - 0.0000033091335800, -0.0000028236227500, 0.0000025525720700, -0.0000023743015900}, - { -0.0000013434190200, 0.0000012763748700, -0.0000013265795800, 0.0000015994241000, - -0.0000021052047100, 0.0000030880792200, -0.0000055006606000, 0.0000175147783700, - 0.0000220145965700, -0.0000079005398700, 0.0000051934897400, -0.0000039986031200, - 0.0000032865074900, -0.0000028032712000, 0.0000025349395400, -0.0000023613527100}, - { -0.0000013607326700, 0.0000012981847200, -0.0000013517060900, 0.0000016283677300, - -0.0000021377016200, 0.0000031239628300, -0.0000055419411200, 0.0000175899125500, - 0.0000219420925700, -0.0000078653073000, 0.0000051620280600, -0.0000039709589400, - 0.0000032621025300, -0.0000027822778600, 0.0000025177627600, -0.0000023470126900}, - { -0.0000013782589000, 0.0000013190197300, -0.0000013766570600, 0.0000016559610500, - -0.0000021678237600, 0.0000031575100900, -0.0000055808854800, 0.0000176637181300, - 0.0000218717601900, -0.0000078311440600, 0.0000051325946300, -0.0000039451087500, - 0.0000032383743600, -0.0000027618613700, 0.0000025010333400, -0.0000023331058700}, - { -0.0000013957302500, 0.0000013409708800, -0.0000014020295800, 0.0000016852102000, - -0.0000022006668200, 0.0000031937517200, -0.0000056216071400, 0.0000177395411400, - 0.0000217982956500, -0.0000077938975900, 0.0000051002551300, -0.0000039166330500, - 0.0000032131961500, -0.0000027401344200, 0.0000024822499400, -0.0000023192767000}, - { -0.0000014137826400, 0.0000013634160600, -0.0000014277189300, 0.0000017136805900, - -0.0000022327273100, 0.0000032291873400, -0.0000056623155700, 0.0000178133731400, - 0.0000217257004100, -0.0000077584995300, 0.0000050696728900, -0.0000038888338700, - 0.0000031895218300, -0.0000027197775400, 0.0000024646690200, -0.0000023045282800}, - { -0.0000014322369000, 0.0000013853217500, -0.0000014530205800, 0.0000017428585500, - -0.0000022655062900, 0.0000032653627200, -0.0000057029286500, 0.0000178891911700, - 0.0000216528434500, -0.0000077216471400, 0.0000050368084700, -0.0000038598885400, - 0.0000031639043700, -0.0000026976449100, 0.0000024455251600, -0.0000022894485700}, - { -0.0000014497130900, 0.0000014073600400, -0.0000014793724500, 0.0000017720424400, - -0.0000022983229400, 0.0000033016325000, -0.0000057445269000, 0.0000179650074100, - 0.0000215789443000, -0.0000076847958800, 0.0000050048943000, -0.0000038308589100, - 0.0000031382426000, -0.0000026755494400, 0.0000024273618900, -0.0000022751911400}, - { -0.0000014682624600, 0.0000014293733300, -0.0000015048990300, 0.0000018023602800, - -0.0000023312864800, 0.0000033380176500, -0.0000057853443800, 0.0000180411228100, - 0.0000215054814200, -0.0000076463911600, 0.0000049724541400, -0.0000038014094400, - 0.0000031121419200, -0.0000026530109300, 0.0000024086993000, -0.0000022596809400}, - { -0.0000014859695200, 0.0000014525847700, -0.0000015314517000, 0.0000018318827500, - -0.0000023644693500, 0.0000033746221600, -0.0000058272616300, 0.0000181174383300, - 0.0000214307631900, -0.0000076086492000, 0.0000049388587800, -0.0000037727262100, - 0.0000030867454500, -0.0000026301452600, 0.0000023889634600, -0.0000022449489700}, - { -0.0000015043628800, 0.0000014744644300, -0.0000015567389200, 0.0000018609777000, - -0.0000023962891000, 0.0000034108731100, -0.0000058687999000, 0.0000181933910400, - 0.0000213571477500, -0.0000075708968100, 0.0000049061183200, -0.0000037429622300, - 0.0000030603552000, -0.0000026074188000, 0.0000023702400300, -0.0000022293365600}, - { -0.0000015230621700, 0.0000014967722500, -0.0000015834525700, 0.0000018906008200, - -0.0000024296112800, 0.0000034477126200, -0.0000059108931600, 0.0000182699826000, - 0.0000212818269000, -0.0000075324331700, 0.0000048728034800, -0.0000037126070200, - 0.0000030334649300, -0.0000025851070600, 0.0000023509696000, -0.0000022132339300}, - { -0.0000015403239200, 0.0000015184755300, -0.0000016085532200, 0.0000019196261600, - -0.0000024622369200, 0.0000034836693200, -0.0000059511496600, 0.0000183458281900, - 0.0000212080113800, -0.0000074943583300, 0.0000048389608700, -0.0000036837633800, - 0.0000030079543400, -0.0000025621473000, 0.0000023311149400, -0.0000021984907000}, - { -0.0000015590979000, 0.0000015408947400, -0.0000016353520500, 0.0000019493453600, - -0.0000024956657000, 0.0000035205975300, -0.0000059933451000, 0.0000184226621300, - 0.0000211321394300, -0.0000074561582900, 0.0000048049643100, -0.0000036528248900, - 0.0000029805219600, -0.0000025384306000, 0.0000023115206300, -0.0000021820726800}, - { -0.0000015774153200, 0.0000015647568900, -0.0000016617815600, 0.0000019807043400, - -0.0000025298080600, 0.0000035582464000, -0.0000060363020600, 0.0000185012756300, - 0.0000210561671700, -0.0000074159545200, 0.0000047700175200, -0.0000036210874300, - 0.0000029523208500, -0.0000025139945600, 0.0000022903521200, -0.0000021652637100}, - { -0.0000015957718800, 0.0000015866363900, -0.0000016880438900, 0.0000020098938000, - -0.0000025626490200, 0.0000035944852300, -0.0000060777269100, 0.0000185774583200, - 0.0000209816210000, -0.0000073770259000, 0.0000047363636300, -0.0000035914525800, - 0.0000029260937100, -0.0000024904284200, 0.0000022708784900, -0.0000021499355400}, - { -0.0000016146341100, 0.0000016091423300, -0.0000017150197200, 0.0000020398479100, - -0.0000025963577000, 0.0000036317429100, -0.0000061201713700, 0.0000186547463400, - 0.0000209047984700, -0.0000073368078300, 0.0000047014992300, -0.0000035596734200, - 0.0000028978835200, -0.0000024669258800, 0.0000022505698100, -0.0000021329645000}, - { -0.0000016320272300, 0.0000016310576200, -0.0000017403342300, 0.0000020690491600, - -0.0000026292446400, 0.0000036679979100, -0.0000061615606400, 0.0000187310565800, - 0.0000208297289900, -0.0000072981740600, 0.0000046672091800, -0.0000035285782400, - 0.0000028712202900, -0.0000024430026800, 0.0000022298988100, -0.0000021174596000}, - { -0.0000016517713700, 0.0000016555097200, -0.0000017684359000, 0.0000021012495700, - -0.0000026652137000, 0.0000037074921500, -0.0000062062849200, 0.0000188107078200, - 0.0000207521739000, -0.0000072562306900, 0.0000046307362400, -0.0000034963432800, - 0.0000028417277400, -0.0000024173926100, 0.0000022085993400, -0.0000020996166200}, - { -0.0000016693369200, 0.0000016775967300, -0.0000017940069300, 0.0000021307570300, - -0.0000026984503800, 0.0000037441286100, -0.0000062480664600, 0.0000188874906800, - 0.0000206762441600, -0.0000072157646700, 0.0000045956576300, -0.0000034644987500, - 0.0000028143706400, -0.0000023928413000, 0.0000021882650000, -0.0000020826571400}, - { -0.0000016880502600, 0.0000016999617900, -0.0000018208006800, 0.0000021605481800, - -0.0000027319373500, 0.0000037811009900, -0.0000062901579400, 0.0000189647520400, - 0.0000205988741400, -0.0000071756528600, 0.0000045600627200, -0.0000034330459400, - 0.0000027855743300, -0.0000023678399200, 0.0000021665948800, -0.0000020662712500}, - { -0.0000017068318000, 0.0000017223435000, -0.0000018475976000, 0.0000021903230800, - -0.0000027654693700, 0.0000038181666300, -0.0000063323023000, 0.0000190429725400, - 0.0000205222534800, -0.0000071353119600, 0.0000045242727900, -0.0000034004343600, - 0.0000027565877300, -0.0000023436396900, 0.0000021457189000, -0.0000020488542500}, - { -0.0000017246917900, 0.0000017457669100, -0.0000018736272400, 0.0000022213168000, - -0.0000027992598200, 0.0000038563100600, -0.0000063755422100, 0.0000191204356500, - 0.0000204452658100, -0.0000070936826400, 0.0000044881428000, -0.0000033686094400, - 0.0000027283488000, -0.0000023183090400, 0.0000021246949000, -0.0000020321895500}, - { -0.0000017437502400, 0.0000017684574800, -0.0000019007749200, 0.0000022514818900, - -0.0000028332071700, 0.0000038937772100, -0.0000064180906300, 0.0000191992723900, - 0.0000203676829800, -0.0000070522535200, 0.0000044513642200, -0.0000033351129700, - 0.0000026985379900, -0.0000022924089100, 0.0000021022365800, -0.0000020142555600}, - { -0.0000017612607500, 0.0000017905551400, -0.0000019263469700, 0.0000022810027000, - -0.0000028664228600, 0.0000039313071700, -0.0000064606182200, 0.0000192761249200, - 0.0000202909086600, -0.0000070116301600, 0.0000044153394600, -0.0000033033628600, - 0.0000026704131700, -0.0000022671934000, 0.0000020813349900, -0.0000019967342300}, - { -0.0000017804156200, 0.0000018142992400, -0.0000019536907100, 0.0000023124244000, - -0.0000029016668700, 0.0000039691471800, -0.0000065035304900, 0.0000193554029900, - 0.0000202126709100, -0.0000069685647800, 0.0000043779368600, -0.0000032692955500, - 0.0000026400789300, -0.0000022417171100, 0.0000020592971000, -0.0000019792949400}, - { -0.0000017992718700, 0.0000018368200800, -0.0000019806941800, 0.0000023424641100, - -0.0000029354657000, 0.0000040073376700, -0.0000065467078100, 0.0000194340183400, - 0.0000201348610200, -0.0000069267933600, 0.0000043409003500, -0.0000032365611400, - 0.0000026110304900, -0.0000022156493800, 0.0000020376369200, -0.0000019611597000}, - { -0.0000018169389900, 0.0000018590771100, -0.0000020064391100, 0.0000023730685800, - -0.0000029688570400, 0.0000040441389700, -0.0000065894130000, 0.0000195112977600, - 0.0000200571593400, -0.0000068850504200, 0.0000043048431400, -0.0000032029425400, - 0.0000025810897300, -0.0000021896568900, 0.0000020150932200, -0.0000019430720600}, - { -0.0000018352128100, 0.0000018808952700, -0.0000020326930300, 0.0000024023078900, - -0.0000030018101100, 0.0000040814643600, -0.0000066306546900, 0.0000195890653300, - 0.0000199799462500, -0.0000068437128700, 0.0000042682739700, -0.0000031706143000, - 0.0000025524084500, -0.0000021648572900, 0.0000019936501000, -0.0000019261187000}, - { -0.0000018529692600, 0.0000019042047700, -0.0000020594876900, 0.0000024321965700, - -0.0000030363853100, 0.0000041184957000, -0.0000066735945800, 0.0000196675804800, - 0.0000199017015900, -0.0000068014184700, 0.0000042307739300, -0.0000031374606800, - 0.0000025230096300, -0.0000021383827800, 0.0000019716451300, -0.0000019076980100}, - { -0.0000018717857800, 0.0000019266724700, -0.0000020855153600, 0.0000024631079300, - -0.0000030701275000, 0.0000041566227500, -0.0000067166371900, 0.0000197464077100, - 0.0000198230805200, -0.0000067585453700, 0.0000041936966700, -0.0000031028914900, - 0.0000024921902400, -0.0000021116319300, 0.0000019483967100, -0.0000018899947900}, - { -0.0000018899947900, 0.0000019483967100, -0.0000021116319300, 0.0000024921902400, - -0.0000031028914900, 0.0000041936966700, -0.0000067585453700, 0.0000198230805200, - 0.0000197464077100, -0.0000067166371900, 0.0000041566227500, -0.0000030701275000, - 0.0000024631079300, -0.0000020855153600, 0.0000019266724700, -0.0000018717857800}, - { -0.0000019076980100, 0.0000019716451300, -0.0000021383827800, 0.0000025230096300, - -0.0000031374606800, 0.0000042307739300, -0.0000068014184700, 0.0000199017015900, - 0.0000196675804800, -0.0000066735945800, 0.0000041184957000, -0.0000030363853100, - 0.0000024321965700, -0.0000020594876900, 0.0000019042047700, -0.0000018529692600}, - { -0.0000019261187000, 0.0000019936501000, -0.0000021648572900, 0.0000025524084500, - -0.0000031706143000, 0.0000042682739700, -0.0000068437128700, 0.0000199799462500, - 0.0000195890653300, -0.0000066306546900, 0.0000040814643600, -0.0000030018101100, - 0.0000024023078900, -0.0000020326930300, 0.0000018808952700, -0.0000018352128100}, - { -0.0000019430720600, 0.0000020150932200, -0.0000021896568900, 0.0000025810897300, - -0.0000032029425400, 0.0000043048431400, -0.0000068850504200, 0.0000200571593400, - 0.0000195112977600, -0.0000065894130000, 0.0000040441389700, -0.0000029688570400, - 0.0000023730685800, -0.0000020064391100, 0.0000018590771100, -0.0000018169389900}, - { -0.0000019611597000, 0.0000020376369200, -0.0000022156493800, 0.0000026110304900, - -0.0000032365611400, 0.0000043409003500, -0.0000069267933600, 0.0000201348610200, - 0.0000194340183400, -0.0000065467078100, 0.0000040073376700, -0.0000029354657000, - 0.0000023424641100, -0.0000019806941800, 0.0000018368200800, -0.0000017992718700}, - { -0.0000019792949400, 0.0000020592971000, -0.0000022417171100, 0.0000026400789300, - -0.0000032692955500, 0.0000043779368600, -0.0000069685647800, 0.0000202126709100, - 0.0000193554029900, -0.0000065035304900, 0.0000039691471800, -0.0000029016668700, - 0.0000023124244000, -0.0000019536907100, 0.0000018142992400, -0.0000017804156200}, - { -0.0000019967342300, 0.0000020813349900, -0.0000022671934000, 0.0000026704131700, - -0.0000033033628600, 0.0000044153394600, -0.0000070116301600, 0.0000202909086600, - 0.0000192761249200, -0.0000064606182200, 0.0000039313071700, -0.0000028664228600, - 0.0000022810027000, -0.0000019263469700, 0.0000017905551400, -0.0000017612607500}, - { -0.0000020142555600, 0.0000021022365800, -0.0000022924089100, 0.0000026985379900, - -0.0000033351129700, 0.0000044513642200, -0.0000070522535200, 0.0000203676829800, - 0.0000191992723900, -0.0000064180906300, 0.0000038937772100, -0.0000028332071700, - 0.0000022514818900, -0.0000019007749200, 0.0000017684574800, -0.0000017437502400}, - { -0.0000020321895500, 0.0000021246949000, -0.0000023183090400, 0.0000027283488000, - -0.0000033686094400, 0.0000044881428000, -0.0000070936826400, 0.0000204452658100, - 0.0000191204356500, -0.0000063755422100, 0.0000038563100600, -0.0000027992598200, - 0.0000022213168000, -0.0000018736272400, 0.0000017457669100, -0.0000017246917900}, - { -0.0000020488542500, 0.0000021457189000, -0.0000023436396900, 0.0000027565877300, - -0.0000034004343600, 0.0000045242727900, -0.0000071353119600, 0.0000205222534800, - 0.0000190429725400, -0.0000063323023000, 0.0000038181666300, -0.0000027654693700, - 0.0000021903230800, -0.0000018475976000, 0.0000017223435000, -0.0000017068318000}, - { -0.0000020662712500, 0.0000021665948800, -0.0000023678399200, 0.0000027855743300, - -0.0000034330459400, 0.0000045600627200, -0.0000071756528600, 0.0000205988741400, - 0.0000189647520400, -0.0000062901579400, 0.0000037811009900, -0.0000027319373500, - 0.0000021605481800, -0.0000018208006800, 0.0000016999617900, -0.0000016880502600}, - { -0.0000020826571400, 0.0000021882650000, -0.0000023928413000, 0.0000028143706400, - -0.0000034644987500, 0.0000045956576300, -0.0000072157646700, 0.0000206762441600, - 0.0000188874906800, -0.0000062480664600, 0.0000037441286100, -0.0000026984503800, - 0.0000021307570300, -0.0000017940069300, 0.0000016775967300, -0.0000016693369200}, - { -0.0000020996166200, 0.0000022085993400, -0.0000024173926100, 0.0000028417277400, - -0.0000034963432800, 0.0000046307362400, -0.0000072562306900, 0.0000207521739000, - 0.0000188107078200, -0.0000062062849200, 0.0000037074921500, -0.0000026652137000, - 0.0000021012495700, -0.0000017684359000, 0.0000016555097200, -0.0000016517713700}, - { -0.0000021174596000, 0.0000022298988100, -0.0000024430026800, 0.0000028712202900, - -0.0000035285782400, 0.0000046672091800, -0.0000072981740600, 0.0000208297289900, - 0.0000187310565800, -0.0000061615606400, 0.0000036679979100, -0.0000026292446400, - 0.0000020690491600, -0.0000017403342300, 0.0000016310576200, -0.0000016320272300}, - { -0.0000021329645000, 0.0000022505698100, -0.0000024669258800, 0.0000028978835200, - -0.0000035596734200, 0.0000047014992300, -0.0000073368078300, 0.0000209047984700, - 0.0000186547463400, -0.0000061201713700, 0.0000036317429100, -0.0000025963577000, - 0.0000020398479100, -0.0000017150197200, 0.0000016091423300, -0.0000016146341100}, - { -0.0000021499355400, 0.0000022708784900, -0.0000024904284200, 0.0000029260937100, - -0.0000035914525800, 0.0000047363636300, -0.0000073770259000, 0.0000209816210000, - 0.0000185774583200, -0.0000060777269100, 0.0000035944852300, -0.0000025626490200, - 0.0000020098938000, -0.0000016880438900, 0.0000015866363900, -0.0000015957718800}, - { -0.0000021652637100, 0.0000022903521200, -0.0000025139945600, 0.0000029523208500, - -0.0000036210874300, 0.0000047700175200, -0.0000074159545200, 0.0000210561671700, - 0.0000185012756300, -0.0000060363020600, 0.0000035582464000, -0.0000025298080600, - 0.0000019807043400, -0.0000016617815600, 0.0000015647568900, -0.0000015774153200}, - { -0.0000021820726800, 0.0000023115206300, -0.0000025384306000, 0.0000029805219600, - -0.0000036528248900, 0.0000048049643100, -0.0000074561582900, 0.0000211321394300, - 0.0000184226621300, -0.0000059933451000, 0.0000035205975300, -0.0000024956657000, - 0.0000019493453600, -0.0000016353520500, 0.0000015408947400, -0.0000015590979000}, - { -0.0000021984907000, 0.0000023311149400, -0.0000025621473000, 0.0000030079543400, - -0.0000036837633800, 0.0000048389608700, -0.0000074943583300, 0.0000212080113800, - 0.0000183458281900, -0.0000059511496600, 0.0000034836693200, -0.0000024622369200, - 0.0000019196261600, -0.0000016085532200, 0.0000015184755300, -0.0000015403239200}, - { -0.0000022132339300, 0.0000023509696000, -0.0000025851070600, 0.0000030334649300, - -0.0000037126070200, 0.0000048728034800, -0.0000075324331700, 0.0000212818269000, - 0.0000182699826000, -0.0000059108931600, 0.0000034477126200, -0.0000024296112800, - 0.0000018906008200, -0.0000015834525700, 0.0000014967722500, -0.0000015230621700}, - { -0.0000022293365600, 0.0000023702400300, -0.0000026074188000, 0.0000030603552000, - -0.0000037429622300, 0.0000049061183200, -0.0000075708968100, 0.0000213571477500, - 0.0000181933910400, -0.0000058687999000, 0.0000034108731100, -0.0000023962891000, - 0.0000018609777000, -0.0000015567389200, 0.0000014744644300, -0.0000015043628800}, - { -0.0000022449489700, 0.0000023889634600, -0.0000026301452600, 0.0000030867454500, - -0.0000037727262100, 0.0000049388587800, -0.0000076086492000, 0.0000214307631900, - 0.0000181174383300, -0.0000058272616300, 0.0000033746221600, -0.0000023644693500, - 0.0000018318827500, -0.0000015314517000, 0.0000014525847700, -0.0000014859695200}, - { -0.0000022596809400, 0.0000024086993000, -0.0000026530109300, 0.0000031121419200, - -0.0000038014094400, 0.0000049724541400, -0.0000076463911600, 0.0000215054814200, - 0.0000180411228100, -0.0000057853443800, 0.0000033380176500, -0.0000023312864800, - 0.0000018023602800, -0.0000015048990300, 0.0000014293733300, -0.0000014682624600}, - { -0.0000022751911400, 0.0000024273618900, -0.0000026755494400, 0.0000031382426000, - -0.0000038308589100, 0.0000050048943000, -0.0000076847958800, 0.0000215789443000, - 0.0000179650074100, -0.0000057445269000, 0.0000033016325000, -0.0000022983229400, - 0.0000017720424400, -0.0000014793724500, 0.0000014073600400, -0.0000014497130900}, - { -0.0000022894485700, 0.0000024455251600, -0.0000026976449100, 0.0000031639043700, - -0.0000038598885400, 0.0000050368084700, -0.0000077216471400, 0.0000216528434500, - 0.0000178891911700, -0.0000057029286500, 0.0000032653627200, -0.0000022655062900, - 0.0000017428585500, -0.0000014530205800, 0.0000013853217500, -0.0000014322369000}, - { -0.0000023045282800, 0.0000024646690200, -0.0000027197775400, 0.0000031895218300, - -0.0000038888338700, 0.0000050696728900, -0.0000077584995300, 0.0000217257004100, - 0.0000178133731400, -0.0000056623155700, 0.0000032291873400, -0.0000022327273100, - 0.0000017136805900, -0.0000014277189300, 0.0000013634160600, -0.0000014137826400}, - { -0.0000023192767000, 0.0000024822499400, -0.0000027401344200, 0.0000032131961500, - -0.0000039166330500, 0.0000051002551300, -0.0000077938975900, 0.0000217982956500, - 0.0000177395411400, -0.0000056216071400, 0.0000031937517200, -0.0000022006668200, - 0.0000016852102000, -0.0000014020295800, 0.0000013409708800, -0.0000013957302500}, - { -0.0000023331058700, 0.0000025010333400, -0.0000027618613700, 0.0000032383743600, - -0.0000039451087500, 0.0000051325946300, -0.0000078311440600, 0.0000218717601900, - 0.0000176637181300, -0.0000055808854800, 0.0000031575100900, -0.0000021678237600, - 0.0000016559610500, -0.0000013766570600, 0.0000013190197300, -0.0000013782589000}, - { -0.0000023470126900, 0.0000025177627600, -0.0000027822778600, 0.0000032621025300, - -0.0000039709589400, 0.0000051620280600, -0.0000078653073000, 0.0000219420925700, - 0.0000175899125500, -0.0000055419411200, 0.0000031239628300, -0.0000021377016200, - 0.0000016283677300, -0.0000013517060900, 0.0000012981847200, -0.0000013607326700}, - { -0.0000023613527100, 0.0000025349395400, -0.0000028032712000, 0.0000032865074900, - -0.0000039986031200, 0.0000051934897400, -0.0000079005398700, 0.0000220145965700, - 0.0000175147783700, -0.0000055006606000, 0.0000030880792200, -0.0000021052047100, - 0.0000015994241000, -0.0000013265795800, 0.0000012763748700, -0.0000013434190200}, - { -0.0000023743015900, 0.0000025525720700, -0.0000028236227500, 0.0000033091335800, - -0.0000040252363400, 0.0000052228216400, -0.0000079355588500, 0.0000220859647000, - 0.0000174415121200, -0.0000054613554100, 0.0000030531916300, -0.0000020736060900, - 0.0000015713408100, -0.0000013011940600, 0.0000012552301800, -0.0000013256584600}, - { -0.0000023881218600, 0.0000025691724900, -0.0000028439265300, 0.0000033326721800, - -0.0000040518864300, 0.0000052531679400, -0.0000079694814600, 0.0000221572261900, - 0.0000173672040800, -0.0000054217452300, 0.0000030191368700, -0.0000020419854900, - 0.0000015431882400, -0.0000012768208900, 0.0000012330804800, -0.0000013077694700}, - { -0.0000024016696400, 0.0000025864605000, -0.0000028638659800, 0.0000033559250100, - -0.0000040782083200, 0.0000052820808400, -0.0000080040051200, 0.0000222282695500, - 0.0000172940887300, -0.0000053824260500, 0.0000029842400300, -0.0000020114351000, - 0.0000015152338700, -0.0000012514786800, 0.0000012119093100, -0.0000012909827000}, - { -0.0000024139101200, 0.0000026023212900, -0.0000028832942600, 0.0000033785715200, - -0.0000041039151900, 0.0000053114037000, -0.0000080378906900, 0.0000222975700000, - 0.0000172204980000, -0.0000053434105100, 0.0000029497290200, -0.0000019802025600, - 0.0000014874303900, -0.0000012273784000, 0.0000011910640700, -0.0000012733999200}, - { -0.0000024268830700, 0.0000026178649300, -0.0000029023858700, 0.0000034007728400, - -0.0000041291105000, 0.0000053401535600, -0.0000080701758400, 0.0000223673445000, - 0.0000171482978400, -0.0000053047725600, 0.0000029165749700, -0.0000019494308900, - 0.0000014600559700, -0.0000012026289200, 0.0000011703276500, -0.0000012569967700}, - { -0.0000024385306400, 0.0000026340154100, -0.0000029211010100, 0.0000034216344400, - -0.0000041537691400, 0.0000053673705700, -0.0000081027646800, 0.0000224364465600, - 0.0000170754821100, -0.0000052664294200, 0.0000028826801200, -0.0000019197522300, - 0.0000014328734600, -0.0000011789873100, 0.0000011498850800, -0.0000012397906100}, - { -0.0000024512416500, 0.0000026492726700, -0.0000029398158700, 0.0000034433929800, - -0.0000041784523800, 0.0000053955054200, -0.0000081353165500, 0.0000225057382600, - 0.0000170034645100, -0.0000052278354600, 0.0000028496294000, -0.0000018890880000, - 0.0000014055945900, -0.0000011543470000, 0.0000011282444600, -0.0000012233380000}, - { -0.0000024635779800, 0.0000026652632600, -0.0000029583320700, 0.0000034649470800, - -0.0000042028641800, 0.0000054233890700, -0.0000081675879800, 0.0000225746079600, - 0.0000169306244900, -0.0000051903321700, 0.0000028167737000, -0.0000018595879900, - 0.0000013785401700, -0.0000011308563500, 0.0000011078958400, -0.0000012061741600}, - { -0.0000024744283000, 0.0000026793421400, -0.0000029746913300, 0.0000034851636500, - -0.0000042259399400, 0.0000054498561600, -0.0000081973147300, 0.0000226418695900, - 0.0000168601698400, -0.0000051531646700, 0.0000027840232000, -0.0000018299976100, - 0.0000013522101400, -0.0000011080393900, 0.0000010881222400, -0.0000011895524600}, - { -0.0000024863147800, 0.0000026936217500, -0.0000029922928500, 0.0000035056918500, - -0.0000042492896400, 0.0000054765605000, -0.0000082283304900, 0.0000227096876100, - 0.0000167891670700, -0.0000051153628100, 0.0000027517442600, -0.0000018000408400, - 0.0000013255461800, -0.0000010838874100, 0.0000010679052100, -0.0000011735641200}, - { -0.0000024977875100, 0.0000027084885600, -0.0000030094081500, 0.0000035257818300, - -0.0000042721547900, 0.0000055017316200, -0.0000082585986900, 0.0000227767190600, - 0.0000167187177600, -0.0000050791534100, 0.0000027190997300, -0.0000017715404200, - 0.0000012993995900, -0.0000010611428200, 0.0000010482366800, -0.0000011569876800}, - { -0.0000025080573500, 0.0000027218999400, -0.0000030260595300, 0.0000035452683100, - -0.0000042943711600, 0.0000055272032600, -0.0000082882457600, 0.0000228431981400, - 0.0000166486654000, -0.0000050421461700, 0.0000026876050100, -0.0000017423150000, - 0.0000012733949200, -0.0000010375664800, 0.0000010285088600, -0.0000011414156900}, - { -0.0000025191900900, 0.0000027364856000, -0.0000030429438500, 0.0000035639110100, - -0.0000043164809800, 0.0000055525970000, -0.0000083187562800, 0.0000229096722700, - 0.0000165774369800, -0.0000050058620700, 0.0000026560090900, -0.0000017139617800, - 0.0000012473832200, -0.0000010150237400, 0.0000010079726100, -0.0000011247937000}, - { -0.0000025301408600, 0.0000027496482800, -0.0000030592744600, 0.0000035830313000, - -0.0000043392967400, 0.0000055777843800, -0.0000083479360500, 0.0000229757192500, - 0.0000165075323300, -0.0000049688721100, 0.0000026245793300, -0.0000016847826800, - 0.0000012214065900, -0.0000009924855700, 0.0000009884244000, -0.0000011083143100}, - { -0.0000025396035700, 0.0000027631903700, -0.0000030749714100, 0.0000036015066800, - -0.0000043603445300, 0.0000056019673100, -0.0000083761749100, 0.0000230408652300, - 0.0000164383311000, -0.0000049336013900, 0.0000025928666900, -0.0000016571687400, - 0.0000011960978000, -0.0000009694581800, 0.0000009691737700, -0.0000010931246800}, - { -0.0000025499892900, 0.0000027756477200, -0.0000030904859500, 0.0000036197201000, - -0.0000043812102400, 0.0000056259353500, -0.0000084039975100, 0.0000231066748100, - 0.0000163692118500, -0.0000048972602300, 0.0000025620788400, -0.0000016285463700, - 0.0000011715943000, -0.0000009474642200, 0.0000009500718600, -0.0000010770500300}, - { -0.0000025587973900, 0.0000027873625100, -0.0000031051508400, 0.0000036370261500, - -0.0000044009688500, 0.0000056487091900, -0.0000084306442100, 0.0000231703178600, - 0.0000163011748400, -0.0000048628982800, 0.0000025323118600, -0.0000016019505400, - 0.0000011471920900, -0.0000009252420500, 0.0000009314904500, -0.0000010624282400}, - { -0.0000025686033500, 0.0000028003222400, -0.0000031201495400, 0.0000036546321900, - -0.0000044210265700, 0.0000056717963000, -0.0000084586151300, 0.0000232344053400, - 0.0000162326124500, -0.0000048280259200, 0.0000025020862500, -0.0000015749030400, - 0.0000011223231400, -0.0000009036452200, 0.0000009127889900, -0.0000010466289100}, - { -0.0000025780065800, 0.0000028116156900, -0.0000031342439100, 0.0000036712214700, - -0.0000044400455400, 0.0000056938084300, -0.0000084843025700, 0.0000232972740300, - 0.0000161661569100, -0.0000047942312100, 0.0000024729320900, -0.0000015478042100, - 0.0000010981773200, -0.0000008827674600, 0.0000008936015200, -0.0000010321897600}, - { -0.0000025863505900, 0.0000028237949300, -0.0000031484316000, 0.0000036879378400, - -0.0000044601390800, 0.0000057159516400, -0.0000085101130000, 0.0000233611368900, - 0.0000160982608100, -0.0000047598975500, 0.0000024432461700, -0.0000015213032100, - 0.0000010738923200, -0.0000008606212500, 0.0000008751093900, -0.0000010166260400}, - { -0.0000025952967800, 0.0000028346554700, -0.0000031620187000, 0.0000037040075600, - -0.0000044785182900, 0.0000057372021900, -0.0000085360140300, 0.0000234232816700, - 0.0000160311566300, -0.0000047261891500, 0.0000024141775800, -0.0000014953382600, - 0.0000010499975700, -0.0000008398761300, 0.0000008571352800, -0.0000010014352200}, - { -0.0000026039689900, 0.0000028462385300, -0.0000031755365000, 0.0000037198907100, - -0.0000044967652300, 0.0000057593857200, -0.0000085609536100, 0.0000234853461000, - 0.0000159640235100, -0.0000046924112000, 0.0000023850713300, -0.0000014682289800, - 0.0000010268343100, -0.0000008190788700, 0.0000008389875100, -0.0000009871323400}, - { -0.0000026114821800, 0.0000028563276700, -0.0000031893498200, 0.0000037352645400, - -0.0000045153519300, 0.0000057798739800, -0.0000085859387000, 0.0000235466308600, - 0.0000158984686900, -0.0000046592644400, 0.0000023565684300, -0.0000014428158400, - 0.0000010035312500, -0.0000007978032900, 0.0000008212777900, -0.0000009721894700}, - { -0.0000026197380900, 0.0000028674126500, -0.0000032022055600, 0.0000037504763700, - -0.0000045327782600, 0.0000058000802500, -0.0000086106607600, 0.0000236087895800, - 0.0000158318052700, -0.0000046258378200, 0.0000023277932300, -0.0000014171124700, - 0.0000009798419700, -0.0000007771917200, 0.0000008033410300, -0.0000009580872000}, - { -0.0000026274692700, 0.0000028767035600, -0.0000032140124600, 0.0000037645625200, - -0.0000045489825900, 0.0000058190028400, -0.0000086329249600, 0.0000236683031800, - 0.0000157677386600, -0.0000045939676500, 0.0000023004845600, -0.0000013927827700, - 0.0000009574249500, -0.0000007577424400, 0.0000007864516400, -0.0000009438250700}, - { -0.0000026341359100, 0.0000028870030600, -0.0000032260085200, 0.0000037787266600, - -0.0000045653170900, 0.0000058390364400, -0.0000086564748300, 0.0000237292774000, - 0.0000157018351900, -0.0000045622167700, 0.0000022725762800, -0.0000013667509600, - 0.0000009352140300, -0.0000007377781200, 0.0000007690545500, -0.0000009301621700}, - { -0.0000026415860100, 0.0000028959823600, -0.0000032373937700, 0.0000037922966700, - -0.0000045819242800, 0.0000058573065700, -0.0000086789838900, 0.0000237883048800, - 0.0000156379869500, -0.0000045304400400, 0.0000022454091700, -0.0000013426053000, - 0.0000009130702800, -0.0000007175647500, 0.0000007511909600, -0.0000009157733600}, - { -0.0000026486139900, 0.0000029046121000, -0.0000032483676700, 0.0000038064564500, - -0.0000045972814900, 0.0000058751361600, -0.0000087010194700, 0.0000238467918900, - 0.0000155734052300, -0.0000044997006400, 0.0000022195302800, -0.0000013188518400, - 0.0000008911224900, -0.0000006985204400, 0.0000007346605300, -0.0000009017719800}, - { -0.0000026544650500, 0.0000029137687900, -0.0000032591551900, 0.0000038193255500, - -0.0000046131179100, 0.0000058937803200, -0.0000087219020100, 0.0000239060508500, - 0.0000155098325200, -0.0000044681119300, 0.0000021925282500, -0.0000012948009400, - 0.0000008689620600, -0.0000006792714500, 0.0000007178451900, -0.0000008886221300}, - { -0.0000026609057300, 0.0000029216641900, -0.0000032692580400, 0.0000038314783100, - -0.0000046272077200, 0.0000059102015300, -0.0000087424514000, 0.0000239631193600, - 0.0000154463623000, -0.0000044383621100, 0.0000021665336500, -0.0000012716522600, - 0.0000008486986700, -0.0000006599218000, 0.0000007017378200, -0.0000008749942500}, - { -0.0000026672135800, 0.0000029303599100, -0.0000032793916400, 0.0000038435074500, - -0.0000046411553600, 0.0000059265982800, -0.0000087629196300, 0.0000240212813600, - 0.0000153836655200, -0.0000044074457000, 0.0000021413239200, -0.0000012474342700, - 0.0000008270409100, -0.0000006411265100, 0.0000006853393800, -0.0000008621850700}, - { -0.0000026721976200, 0.0000029375054800, -0.0000032887333800, 0.0000038547619600, - -0.0000046551952900, 0.0000059432200300, -0.0000087826286000, 0.0000240775110200, - 0.0000153217488200, -0.0000043782741400, 0.0000021158865900, -0.0000012248204100, - 0.0000008061850300, -0.0000006230594800, 0.0000006696553400, -0.0000008488941000}, - { -0.0000026779041200, 0.0000029455506100, -0.0000032980362900, 0.0000038659818300, - -0.0000046682659300, 0.0000059585807800, -0.0000088019183800, 0.0000241345587100, - 0.0000152598080900, -0.0000043490655700, 0.0000020904026300, -0.0000012020887000, - 0.0000007862043900, -0.0000006049746700, 0.0000006538532000, -0.0000008365745600}, - { -0.0000026834459500, 0.0000029522772700, -0.0000033069335600, 0.0000038766487900, - -0.0000046816052000, 0.0000059743644400, -0.0000088207332900, 0.0000241899935800, - 0.0000151985072700, -0.0000043192258600, 0.0000020662084900, -0.0000011799401200, - 0.0000007658087800, -0.0000005862421100, 0.0000006382559600, -0.0000008233810500}, - { -0.0000026875984700, 0.0000029594120700, -0.0000033163420100, 0.0000038870631000, - -0.0000046937384600, 0.0000059887026200, -0.0000088387814400, 0.0000242457316000, - 0.0000151374476700, -0.0000042907551700, 0.0000020414981800, -0.0000011579317500, - 0.0000007464989300, -0.0000005687757500, 0.0000006230560200, -0.0000008105130300}, - { -0.0000026927788900, 0.0000029658101500, -0.0000033247283000, 0.0000038982593900, - -0.0000047067967200, 0.0000060040729000, -0.0000088580561000, 0.0000243020071900, - 0.0000150758631000, -0.0000042616124600, 0.0000020172218500, -0.0000011356666000, - 0.0000007258796500, -0.0000005508592100, 0.0000006074179500, -0.0000007983157300}, - { -0.0000026962754000, 0.0000029721987600, -0.0000033321568100, 0.0000039073486100, - -0.0000047174313100, 0.0000060167864400, -0.0000088743758000, 0.0000243550330900, - 0.0000150163766200, -0.0000042344891600, 0.0000019938097200, -0.0000011149489200, - 0.0000007067136200, -0.0000005343167000, 0.0000005919845900, -0.0000007858967200}, - { -0.0000027007624400, 0.0000029777209800, -0.0000033396349900, 0.0000039164455700, - -0.0000047291253700, 0.0000060307776300, -0.0000088910561500, 0.0000244095869900, - 0.0000149561525700, -0.0000042065049900, 0.0000019706338200, -0.0000010936112200, - 0.0000006879940500, -0.0000005173633200, 0.0000005771106400, -0.0000007743458100}, - { -0.0000027050084400, 0.0000029839930100, -0.0000033469077500, 0.0000039252529900, - -0.0000047403936100, 0.0000060442764900, -0.0000089072585900, 0.0000244635866200, - 0.0000148963171000, -0.0000041789645200, 0.0000019468467400, -0.0000010725673400, - 0.0000006686063700, -0.0000004994838300, 0.0000005622426600, -0.0000007617681800}, - { -0.0000027077485500, 0.0000029885352000, -0.0000033531679300, 0.0000039330446700, - -0.0000047496635400, 0.0000060553978800, -0.0000089229128400, 0.0000245152841500, - 0.0000148377088500, -0.0000041534516600, 0.0000019252707100, -0.0000010526788500, - 0.0000006511584900, -0.0000004836420600, 0.0000005483782700, -0.0000007510337800}, - { -0.0000027114750800, 0.0000029942169700, -0.0000033597878400, 0.0000039421896500, - -0.0000047604443400, 0.0000060683139900, -0.0000089383414100, 0.0000245685443800, - 0.0000147782948500, -0.0000041261046500, 0.0000019027766500, -0.0000010320954700, - 0.0000006320666200, -0.0000004670815200, 0.0000005339424900, -0.0000007387874000}, - { -0.0000027149571000, 0.0000029984769900, -0.0000033667952600, 0.0000039498877900, - -0.0000047694806200, 0.0000060802547900, -0.0000089538068000, 0.0000246211745800, - 0.0000147194377100, -0.0000040992574000, 0.0000018796926000, -0.0000010115702100, - 0.0000006140611400, -0.0000004507476500, 0.0000005196186900, -0.0000007276776700}, - { -0.0000027169252500, 0.0000030030861700, -0.0000033722116600, 0.0000039566909200, - -0.0000047785728000, 0.0000060903432100, -0.0000089671417900, 0.0000246713790300, - 0.0000146628884600, -0.0000040747877600, 0.0000018590642800, -0.0000009937335800, - 0.0000005967529800, -0.0000004357110300, 0.0000005065305500, -0.0000007165536600}, - { -0.0000027198514200, 0.0000030078686000, -0.0000033778171100, 0.0000039635751800, - -0.0000047877574700, 0.0000061014854400, -0.0000089816950200, 0.0000247230365400, - 0.0000146046598800, -0.0000040483849800, 0.0000018374848700, -0.0000009738964200, - 0.0000005793881200, -0.0000004199654100, 0.0000004927883500, -0.0000007048709900}, - { -0.0000027225498800, 0.0000030111200300, -0.0000033825489900, 0.0000039706664600, - -0.0000047952151500, 0.0000061116139800, -0.0000089941342900, 0.0000247735896000, - 0.0000145484672100, -0.0000040230608100, 0.0000018169204500, -0.0000009551266900, - 0.0000005619673100, -0.0000004037760400, 0.0000004792587900, -0.0000006944808900}, - { -0.0000027238906300, 0.0000030150552400, -0.0000033871892800, 0.0000039764687300, - -0.0000048032095800, 0.0000061214521700, -0.0000090072272700, 0.0000248238004700, - 0.0000144912324100, -0.0000039985659800, 0.0000017964244700, -0.0000009362610000, - 0.0000005454760700, -0.0000003888052900, 0.0000004661933300, -0.0000006833632200}, - { -0.0000027261029400, 0.0000030177475500, -0.0000033924139600, 0.0000039820545400, - -0.0000048108842000, 0.0000061311021700, -0.0000090189496400, 0.0000248736735600, - 0.0000144353453000, -0.0000039744969800, 0.0000017763535800, -0.0000009178450500, - 0.0000005283093400, -0.0000003739016800, 0.0000004530986400, -0.0000006733019100}, - { -0.0000027278748100, 0.0000030211452200, -0.0000033963765200, 0.0000039872247300, - -0.0000048170611400, 0.0000061398382500, -0.0000090309454700, 0.0000249217705300, - 0.0000143792799000, -0.0000039499198000, 0.0000017553760300, -0.0000009003806900, - 0.0000005123920600, -0.0000003593946300, 0.0000004404173000, -0.0000006624732800}, - { -0.0000027285607600, 0.0000030230693900, -0.0000033995062800, 0.0000039925613200, - -0.0000048237360200, 0.0000061470769900, -0.0000090420060400, 0.0000249702348700, - 0.0000143244619700, -0.0000039267480800, 0.0000017361477800, -0.0000008827892900, - 0.0000004959568700, -0.0000003450970500, 0.0000004278722600, -0.0000006528665100}, - { -0.0000027299867000, 0.0000030260492100, -0.0000034029532000, 0.0000039969736100, - -0.0000048301646800, 0.0000061551769900, -0.0000090531292600, 0.0000250186846500, - 0.0000142695621300, -0.0000039034846100, 0.0000017168425100, -0.0000008650250700, - 0.0000004804548400, -0.0000003309959300, 0.0000004155528900, -0.0000006423738600}, - { -0.0000027311829700, 0.0000030276666600, -0.0000034057656100, 0.0000040007213300, - -0.0000048358207200, 0.0000061624954700, -0.0000090633704900, 0.0000250662990700, - 0.0000142142757000, -0.0000038804959500, 0.0000016978639900, -0.0000008476386900, - 0.0000004641928300, -0.0000003168595500, 0.0000004031158500, -0.0000006328397300}, - { -0.0000027310222200, 0.0000030295722900, -0.0000034091543000, 0.0000040054114300, - -0.0000048405249700, 0.0000061694722300, -0.0000090720594500, 0.0000251131429100, - 0.0000141605434000, -0.0000038581990000, 0.0000016794826900, -0.0000008319159800, - 0.0000004499540800, -0.0000003028595200, 0.0000003904318200, -0.0000006227186400}, - { -0.0000027317970100, 0.0000030306458400, -0.0000034113893000, 0.0000040084569400, - -0.0000048454321900, 0.0000061758888600, -0.0000090812420800, 0.0000251597538600, - 0.0000141069989900, -0.0000038359180300, 0.0000016622514100, -0.0000008153648900, - 0.0000004355118400, -0.0000002896910300, 0.0000003788978800, -0.0000006128817400}, - { -0.0000027322408700, 0.0000030324310800, -0.0000034134470700, 0.0000040112744100, - -0.0000048500250500, 0.0000061820252000, -0.0000090901636600, 0.0000252061541300, - 0.0000140535980000, -0.0000038138344000, 0.0000016441338600, -0.0000007987803500, - 0.0000004199685000, -0.0000002761828800, 0.0000003669989500, -0.0000006038006300}, - { -0.0000027324602000, 0.0000030339624000, -0.0000034151729900, 0.0000040149371300, - -0.0000048547165800, 0.0000061880613500, -0.0000090988640700, 0.0000252522799200, - 0.0000140002708200, -0.0000037917269600, 0.0000016259063300, -0.0000007831507500, - 0.0000004057015800, -0.0000002631162900, 0.0000003555441000, -0.0000005940171600}, - { -0.0000027314851900, 0.0000030338133100, -0.0000034171796400, 0.0000040168382200, - -0.0000048581744400, 0.0000061940861800, -0.0000091066456400, 0.0000252975093200, - 0.0000139476737000, -0.0000037702515700, 0.0000016084224600, -0.0000007671474500, - 0.0000003906772800, -0.0000002500886900, 0.0000003440460400, -0.0000005852674900}, - { -0.0000027312476200, 0.0000030348556000, -0.0000034182788700, 0.0000040197728000, - -0.0000048620522900, 0.0000061992180000, -0.0000091143115000, 0.0000253426570300, - 0.0000138949385400, -0.0000037496867100, 0.0000015909567200, -0.0000007521879300, - 0.0000003770118000, -0.0000002375530200, 0.0000003330548600, -0.0000005758700400}, - { -0.0000027308900300, 0.0000030346059500, -0.0000034189299100, 0.0000040210075200, - -0.0000048649242600, 0.0000062033003000, -0.0000091219627900, 0.0000253871405000, - 0.0000138428727000, -0.0000037284933600, 0.0000015748179900, -0.0000007366427500, - 0.0000003634318300, -0.0000002250865900, 0.0000003220173800, -0.0000005674994900}, - { -0.0000027291156400, 0.0000030346034000, -0.0000034201654500, 0.0000040221399100, - -0.0000048665013800, 0.0000062069083500, -0.0000091279630400, 0.0000254306086800, - 0.0000137915259700, -0.0000037080250800, 0.0000015582215100, -0.0000007224968800, - 0.0000003504827500, -0.0000002131832000, 0.0000003115541600, -0.0000005585382500}, - { -0.0000027283556600, 0.0000030337810300, -0.0000034199682900, 0.0000040235929700, - -0.0000048687487200, 0.0000062103176600, -0.0000091336957100, 0.0000254740700000, - 0.0000137411927200, -0.0000036888380700, 0.0000015421720100, -0.0000007078261400, - 0.0000003366480500, -0.0000002011695700, 0.0000003009395700, -0.0000005505373600}, - { -0.0000027272064200, 0.0000030336692900, -0.0000034199174200, 0.0000040240217600, - -0.0000048706450000, 0.0000062133585500, -0.0000091390047400, 0.0000255169264700, - 0.0000136902218400, -0.0000036685011500, 0.0000015268001700, -0.0000006941296500, - 0.0000003240948000, -0.0000001896019300, 0.0000002907510500, -0.0000005418047900}, - { -0.0000027248039400, 0.0000030331001200, -0.0000034191966500, 0.0000040247715100, - -0.0000048720314000, 0.0000062167723200, -0.0000091449297700, 0.0000255595532100, - 0.0000136392728600, -0.0000036493663300, 0.0000015108636900, -0.0000006794821100, - 0.0000003113745000, -0.0000001779622200, 0.0000002805447300, -0.0000005330421900}, - { -0.0000027233909600, 0.0000030314184400, -0.0000034192418000, 0.0000040245240000, - -0.0000048730903800, 0.0000062189717900, -0.0000091492283600, 0.0000256016406700, - 0.0000135898611300, -0.0000036308554600, 0.0000014954266000, -0.0000006664576800, - 0.0000002983502200, -0.0000001666038900, 0.0000002704732600, -0.0000005254922300}, - { -0.0000027215455700, 0.0000030304366300, -0.0000034180802400, 0.0000040247773900, - -0.0000048740138000, 0.0000062208163600, -0.0000091531009000, 0.0000256430891500, - 0.0000135398740700, -0.0000036112846200, 0.0000014809292700, -0.0000006525103100, - 0.0000002862380100, -0.0000001554671000, 0.0000002606541400, -0.0000005170558100}, - { -0.0000027187650100, 0.0000030281865200, -0.0000034163561400, 0.0000040234336300, - -0.0000048739644700, 0.0000062216233800, -0.0000091570002800, 0.0000256840267600, - 0.0000134912928100, -0.0000035934332400, 0.0000014660767100, -0.0000006399204100, - 0.0000002746842300, -0.0000001447380500, 0.0000002511020600, -0.0000005099278600}, - { -0.0000027164826500, 0.0000030266800800, -0.0000034157300200, 0.0000040233396200, - -0.0000048743282000, 0.0000062239840100, -0.0000091604648700, 0.0000257250575700, - 0.0000134413490000, -0.0000035748887100, 0.0000014519076200, -0.0000006262314300, - 0.0000002627935400, -0.0000001338252600, 0.0000002414767800, -0.0000005016493400}, - { -0.0000027143371600, 0.0000030242570200, -0.0000034137799500, 0.0000040216442600, - -0.0000048738434100, 0.0000062242822500, -0.0000091637493400, 0.0000257654713000, - 0.0000133930500000, -0.0000035570772900, 0.0000014382400400, -0.0000006140611400, - 0.0000002515774700, -0.0000001233847400, 0.0000002321555700, -0.0000004947156000}, - { -0.0000027107457100, 0.0000030220920600, -0.0000034111888100, 0.0000040203792100, - -0.0000048729769800, 0.0000062241715900, -0.0000091653939600, 0.0000258048229900, - 0.0000133455517400, -0.0000035401209000, 0.0000014243272400, -0.0000006025214200, - 0.0000002399200400, -0.0000001132590800, 0.0000002232582100, -0.0000004870595400}, - { -0.0000027078741500, 0.0000030199249900, -0.0000034098388500, 0.0000040182871900, - -0.0000048718972600, 0.0000062249560500, -0.0000091682539100, 0.0000258446283900, - 0.0000132964854500, -0.0000035222237300, 0.0000014108040800, -0.0000005893861400, - 0.0000002284840400, -0.0000001026848500, 0.0000002138024300, -0.0000004799901300}, - { -0.0000027050861400, 0.0000030166932700, -0.0000034068442600, 0.0000040165553900, - -0.0000048705371900, 0.0000062241192800, -0.0000091701376100, 0.0000258836019600, - 0.0000132491612100, -0.0000035051605900, 0.0000013979073500, -0.0000005779960100, - 0.0000002180035700, -0.0000000929347100, 0.0000002051981700, -0.0000004725695500}, - { -0.0000027009514400, 0.0000030138847000, -0.0000034036485500, 0.0000040133308800, - -0.0000048693489400, 0.0000062239873700, -0.0000091706871400, 0.0000259230513500, - 0.0000132019240400, -0.0000034882878100, 0.0000013840666600, -0.0000005663538600, - 0.0000002073337300, -0.0000000829862900, 0.0000001962511100, -0.0000004659557800}, - { -0.0000026976072400, 0.0000030111284500, -0.0000034014280800, 0.0000040115213700, - -0.0000048678076000, 0.0000062229403200, -0.0000091722403400, 0.0000259617106900, - 0.0000131545261000, -0.0000034721796900, 0.0000013714416500, -0.0000005551787400, - 0.0000001970438800, -0.0000000734060100, 0.0000001877974400, -0.0000004586585500}, - { -0.0000026942508300, 0.0000030072123900, -0.0000033977399000, 0.0000040076906100, - -0.0000048648464400, 0.0000062216113000, -0.0000091727265200, 0.0000259993523100, - 0.0000131081652600, -0.0000034558763500, 0.0000013594098000, -0.0000005434268500, - 0.0000001868519600, -0.0000000639267000, 0.0000001792774700, -0.0000004523786800}, - { -0.0000026894698800, 0.0000030035043200, -0.0000033945864700, 0.0000040048640600, - -0.0000048621392100, 0.0000062194230500, -0.0000091718251200, 0.0000260362390800, - 0.0000130622438100, -0.0000034399268600, 0.0000013476831400, -0.0000005332669200, - 0.0000001763978200, -0.0000000548375700, 0.0000001712493000, -0.0000004454372600}, - { -0.0000026858101400, 0.0000029992822400, -0.0000033904910800, 0.0000040006010900, - -0.0000048586130300, 0.0000062174189600, -0.0000091714875900, 0.0000260730415900, - 0.0000130162737200, -0.0000034249709200, 0.0000013361670100, -0.0000005230956800, - 0.0000001670082700, -0.0000000460660800, 0.0000001634796200, -0.0000004387061400}, - { -0.0000026817551300, 0.0000029956756400, -0.0000033861618500, 0.0000039972655000, - -0.0000048554302300, 0.0000062145158100, -0.0000091709577400, 0.0000261097309800, - 0.0000129704208100, -0.0000034089428900, 0.0000013243154600, -0.0000005126787000, - 0.0000001573784600, -0.0000000370001900, 0.0000001552956500, -0.0000004327008900}, - { -0.0000026764892400, 0.0000029914914700, -0.0000033824115200, 0.0000039936894900, - -0.0000048518010200, 0.0000062122650400, -0.0000091701578900, 0.0000261471099700, - 0.0000129242600400, -0.0000033937289100, 0.0000013125955200, -0.0000005023257700, - 0.0000001477736900, -0.0000000278806000, 0.0000001483063100, -0.0000004260417800}, - { -0.0000026723942900, 0.0000029866954600, -0.0000033776306400, 0.0000039885777900, - -0.0000048484357900, 0.0000062095944700, -0.0000091689502800, 0.0000261832669700, - 0.0000128796851700, -0.0000033792097000, 0.0000013014623800, -0.0000004924853700, - 0.0000001386785000, -0.0000000193120700, 0.0000001405618600, -0.0000004204208100}, - { -0.0000026677369100, 0.0000029823200100, -0.0000033723634100, 0.0000039840829600, - -0.0000048439828000, 0.0000062052525700, -0.0000091667171300, 0.0000262181947100, - 0.0000128351507600, -0.0000033643014900, 0.0000012908660300, -0.0000004821497300, - 0.0000001297966400, -0.0000000110045000, 0.0000001331802200, -0.0000004139947900}, - { -0.0000026631089400, 0.0000029779644500, -0.0000033684178100, 0.0000039790688300, - -0.0000048395229300, 0.0000062022592400, -0.0000091650848600, 0.0000262539269000, - 0.0000127907136500, -0.0000033498033100, 0.0000012797985100, -0.0000004723290400, - 0.0000001205478700, -0.0000000034034800, 0.0000001256538900, -0.0000004085082700}, - { -0.0000026573902300, 0.0000029720893300, -0.0000033623583100, 0.0000039737596900, - -0.0000048340055700, 0.0000061978479200, -0.0000091617477500, 0.0000262888924200, - 0.0000127463754300, -0.0000033360614900, 0.0000012695304100, -0.0000004633631600, - 0.0000001122432500, 0.0000000044341700, 0.0000001186615500, -0.0000004024302800}, - { -0.0000026522150600, 0.0000029670790800, -0.0000033575106100, 0.0000039688914300, - -0.0000048301375000, 0.0000061932964300, -0.0000091590421200, 0.0000263234790300, - 0.0000127016546500, -0.0000033218503400, 0.0000012588312500, -0.0000004539881200, - 0.0000001035742900, 0.0000000126628900, 0.0000001111797200, -0.0000003970051000}, - { -0.0000026473220500, 0.0000029612627700, -0.0000033515051500, 0.0000039624070900, - -0.0000048240646500, 0.0000061883959100, -0.0000091552786700, 0.0000263570751000, - 0.0000126588986000, -0.0000033087770300, 0.0000012491700600, -0.0000004455578400, - 0.0000000957623400, 0.0000000200514600, 0.0000001045891900, -0.0000003912507000}, - { -0.0000026409434000, 0.0000029556965600, -0.0000033460776600, 0.0000039568933000, - -0.0000048182001300, 0.0000061834912800, -0.0000091525806900, 0.0000263910245800, - 0.0000126156834400, -0.0000032952152900, 0.0000012390643600, -0.0000004367158600, - 0.0000000875358500, 0.0000000278697700, 0.0000000974841200, -0.0000003861457500}, - { -0.0000026353317400, 0.0000029502101900, -0.0000033394973500, 0.0000039508550400, - -0.0000048117964600, 0.0000061780340600, -0.0000091479732400, 0.0000264247652100, - 0.0000125720795200, -0.0000032819571200, 0.0000012293251100, -0.0000004282623500, - 0.0000000796996500, 0.0000000353021900, 0.0000000908270600, -0.0000003803350600}, - { -0.0000026300063600, 0.0000029438925700, -0.0000033329672000, 0.0000039436382500, - -0.0000048060026200, 0.0000061726016900, -0.0000091434512400, 0.0000264577145700, - 0.0000125295550200, -0.0000032687548300, 0.0000012206896600, -0.0000004201204700, - 0.0000000720904000, 0.0000000425856500, 0.0000000841447500, -0.0000003755895200}, - { -0.0000026232862100, 0.0000029378736300, -0.0000033269511800, 0.0000039375017600, - -0.0000047995635500, 0.0000061659588400, -0.0000091383468500, 0.0000264900163300, - 0.0000124873224300, -0.0000032570746200, 0.0000012117690200, -0.0000004123793300, - 0.0000000649052900, 0.0000000494443100, 0.0000000780101600, -0.0000003702105200}, - { -0.0000026173704500, 0.0000029320278800, -0.0000033199111900, 0.0000039309873100, - -0.0000047925510600, 0.0000061597170100, -0.0000091339033000, 0.0000265233959000, - 0.0000124448392000, -0.0000032439785200, 0.0000012020034000, -0.0000004049722900, - 0.0000000572266200, 0.0000000556866100, 0.0000000718027400, -0.0000003647327300}, - { -0.0000026115105800, 0.0000029249328200, -0.0000033136595000, 0.0000039232475500, - -0.0000047860778200, 0.0000061535070700, -0.0000091283444100, 0.0000265553269700, - 0.0000124029148500, -0.0000032311531400, 0.0000011937971200, -0.0000003972488800, - 0.0000000499981800, 0.0000000626385600, 0.0000000653931700, -0.0000003602065500}, - { -0.0000026053040700, 0.0000029187959100, -0.0000033061913700, 0.0000039161387400, - -0.0000047784155800, 0.0000061464903000, -0.0000091231578000, 0.0000265868569100, - 0.0000123611901100, -0.0000032198029300, 0.0000011852192100, -0.0000003898279700, - 0.0000000430866400, 0.0000000692495800, 0.0000000594828700, -0.0000003550040600}, - { -0.0000025979190500, 0.0000029119110500, -0.0000032993298700, 0.0000039088687600, - -0.0000047717396700, 0.0000061398326100, -0.0000091168632300, 0.0000266191486300, - 0.0000123192522800, -0.0000032068754900, 0.0000011769073200, -0.0000003818881300, - 0.0000000367747300, 0.0000000760093900, 0.0000000531731300, -0.0000003505638300}, - { -0.0000025916736900, 0.0000029044984700, -0.0000032912027100, 0.0000039010819600, - -0.0000047633284300, 0.0000061319593900, -0.0000091106317700, 0.0000266496871700, - 0.0000122782327100, -0.0000031960441800, 0.0000011688497100, -0.0000003749535300, - 0.0000000303040600, 0.0000000822340300, 0.0000000475867100, -0.0000003456266600}, - { -0.0000025852313500, 0.0000028979555600, -0.0000032847149600, 0.0000038930581400, - -0.0000047553631700, 0.0000061249320900, -0.0000091041565400, 0.0000266807297400, - 0.0000122364892800, -0.0000031842624600, 0.0000011609993400, -0.0000003674451700, - 0.0000000230091300, 0.0000000883119400, 0.0000000424433200, -0.0000003415490600}, - { -0.0000025775412400, 0.0000028907556300, -0.0000032761339500, 0.0000038846825400, - -0.0000047473566900, 0.0000061166435400, -0.0000090972059800, 0.0000267117532200, - 0.0000121966313400, -0.0000031726469200, 0.0000011526657700, -0.0000003614337200, - 0.0000000167921300, 0.0000000943784400, 0.0000000369742900, -0.0000003367277200}, - { -0.0000025709333200, 0.0000028827467700, -0.0000032686245400, 0.0000038767569400, - -0.0000047387160100, 0.0000061086213100, -0.0000090894622700, 0.0000267415888400, - 0.0000121558234900, -0.0000031616336600, 0.0000011456238300, -0.0000003548028100, - 0.0000000105206400, 0.0000001004973300, 0.0000000312623600, -0.0000003327797000}, - { -0.0000025638962100, 0.0000028755960800, -0.0000032600073600, 0.0000038681603800, - -0.0000047304659400, 0.0000061000604600, -0.0000090822485700, 0.0000267711413800, - 0.0000121152150800, -0.0000031508074100, 0.0000011387738000, -0.0000003483800400, - 0.0000000044884500, 0.0000001063521800, 0.0000000259812600, -0.0000003280931700}, - { -0.0000025558748500, 0.0000028679119400, -0.0000032520166800, 0.0000038596766500, - -0.0000047212175500, 0.0000060911299100, -0.0000090745034900, 0.0000268015321100, - 0.0000120754514200, -0.0000031402432600, 0.0000011309574900, -0.0000003414828400, - -0.0000000008679700, 0.0000001122626500, 0.0000000204180800, -0.0000003242762700}, - { -0.0000025491004800, 0.0000028598264500, -0.0000032433214400, 0.0000038499397300, - -0.0000047124517500, 0.0000060822958600, -0.0000090656855500, 0.0000268302409700, - 0.0000120353034900, -0.0000031296168100, 0.0000011241308700, -0.0000003361438800, - -0.0000000066919400, 0.0000001168676900, 0.0000000156014300, -0.0000003199268400}, - { -0.0000025418085200, 0.0000028521763200, -0.0000032353226800, 0.0000038413339800, - -0.0000047029530200, 0.0000060731151800, -0.0000090577351800, 0.0000268593285800, - 0.0000119959312000, -0.0000031191167100, 0.0000011175918200, -0.0000003299906800, - -0.0000000125395300, 0.0000001226211900, 0.0000000102202900, -0.0000003162561900}, - { -0.0000025341820300, 0.0000028442350400, -0.0000032256880200, 0.0000038315834400, - -0.0000046933803100, 0.0000060629970500, -0.0000090484913100, 0.0000268880111900, - 0.0000119563660200, -0.0000031092550300, 0.0000011105920600, -0.0000003240720400, - -0.0000000180668100, 0.0000001280388200, 0.0000000052969800, -0.0000003118681600}, - { -0.0000025257897700, 0.0000028361984300, -0.0000032173379200, 0.0000038225851900, - -0.0000046832398400, 0.0000060542535700, -0.0000090401757000, 0.0000269167050700, - 0.0000119168850700, -0.0000030996156800, 0.0000011040895200, -0.0000003190341200, - -0.0000000235221900, 0.0000001334856800, 0.0000000001652200, -0.0000003084097600}, - { -0.0000025185554200, 0.0000028274348700, -0.0000032076686500, 0.0000038128681100, - -0.0000046738202500, 0.0000060444527700, -0.0000090299385000, 0.0000269453183200, - 0.0000118781343500, -0.0000030894968100, 0.0000010978749000, -0.0000003129872000, - -0.0000000282666000, 0.0000001376710400, -0.0000000043286100, -0.0000003043352800}, - { -0.0000025109965600, 0.0000028194618000, -0.0000031994340000, 0.0000038028249000, - -0.0000046633690800, 0.0000060342765300, -0.0000090208244500, 0.0000269732724800, - 0.0000118393292300, -0.0000030792208700, 0.0000010914101700, -0.0000003080051000, - -0.0000000337127500, 0.0000001433304900, -0.0000000085506800, -0.0000003010799000}, - { -0.0000025021832500, 0.0000028108476700, -0.0000031903279600, 0.0000037928400600, - -0.0000046534338000, 0.0000060237393200, -0.0000090110535200, 0.0000270004747300, - 0.0000118009163200, -0.0000030704739700, 0.0000010859951400, -0.0000003028924400, - -0.0000000385645100, 0.0000001481455800, -0.0000000129367200, -0.0000002971404300}, - { -0.0000024945375600, 0.0000028016349500, -0.0000031801130600, 0.0000037824453100, - -0.0000046429802200, 0.0000060137232300, -0.0000090009416000, 0.0000270285855600, - 0.0000117623618000, -0.0000030603272900, 0.0000010796286200, -0.0000002978759900, - -0.0000000428383200, 0.0000001531519200, -0.0000000177806100, -0.0000002939110000}, - { -0.0000024865514300, 0.0000027931517600, -0.0000031710668200, 0.0000037725963100, - -0.0000046320155000, 0.0000060028342200, -0.0000089907403100, 0.0000270554278500, - 0.0000117240864200, -0.0000030515733500, 0.0000010742257600, -0.0000002927315300, - -0.0000000479303700, 0.0000001570599400, -0.0000000219487800, -0.0000002900989400}, - { -0.0000024784044100, 0.0000027845171900, -0.0000031606514800, 0.0000037619046000, - -0.0000046212603400, 0.0000059912731300, -0.0000089796024200, 0.0000270824597700, - 0.0000116863187300, -0.0000030421218200, 0.0000010686302700, -0.0000002886726400, - -0.0000000524060200, 0.0000001616196800, -0.0000000261546500, -0.0000002863090600}, - { -0.0000024696294000, 0.0000027746587900, -0.0000031508865800, 0.0000037513479000, - -0.0000046095149100, 0.0000059794346400, -0.0000089682984500, 0.0000271082832700, - 0.0000116487577100, -0.0000030338939200, 0.0000010637555700, -0.0000002840569000, - -0.0000000568717900, 0.0000001661742100, -0.0000000305400500, -0.0000002834574300}, - { -0.0000024614179100, 0.0000027660621000, -0.0000031405176100, 0.0000037406419500, - -0.0000045986571500, 0.0000059689822100, -0.0000089576437400, 0.0000271346326500, - 0.0000116105596800, -0.0000030249393200, 0.0000010579370800, -0.0000002794808000, - -0.0000000608943300, 0.0000001697477500, -0.0000000344868200, -0.0000002798079400}, - { -0.0000024528121700, 0.0000027568162200, -0.0000031304965400, 0.0000037295135500, - -0.0000045873231900, 0.0000059565965700, -0.0000089466219000, 0.0000271612337400, - 0.0000115727569700, -0.0000030164681700, 0.0000010528906800, -0.0000002747163000, - -0.0000000654868000, 0.0000001744376300, -0.0000000389873200, -0.0000002768719300}, - { -0.0000024437594700, 0.0000027478273400, -0.0000031210219100, 0.0000037192230500, - -0.0000045758252600, 0.0000059449185200, -0.0000089354351300, 0.0000271872904900, - 0.0000115356267200, -0.0000030075860600, 0.0000010482924400, -0.0000002707124200, - -0.0000000689215900, 0.0000001788462900, -0.0000000419849000, -0.0000002735490700}, - { -0.0000024355993600, 0.0000027379891900, -0.0000031100796100, 0.0000037065976700, - -0.0000045634938700, 0.0000059329528700, -0.0000089228688900, 0.0000272129953900, - 0.0000114983831800, -0.0000029994677500, 0.0000010435538400, -0.0000002661448300, - -0.0000000735439500, 0.0000001824188800, -0.0000000461001300, -0.0000002708812100}, - { -0.0000024270058800, 0.0000027286742200, -0.0000031000132500, 0.0000036954725600, - -0.0000045521223000, 0.0000059206370700, -0.0000089107334300, 0.0000272380972500, - 0.0000114620841300, -0.0000029915068400, 0.0000010387943600, -0.0000002628339500, - -0.0000000773306300, 0.0000001863568800, -0.0000000497529300, -0.0000002675426700}, - { -0.0000024182088200, 0.0000027193422300, -0.0000030886948300, 0.0000036835959600, - -0.0000045398291800, 0.0000059082508900, -0.0000088988209700, 0.0000272637989000, - 0.0000114246195000, -0.0000029830210100, 0.0000010335223100, -0.0000002588198100, - -0.0000000806920200, 0.0000001905685000, -0.0000000539287700, -0.0000002648556200}, - { -0.0000024087333600, 0.0000027097712600, -0.0000030784892400, 0.0000036723589400, - -0.0000045271977200, 0.0000058953274300, -0.0000088859686000, 0.0000272881898500, - 0.0000113886584200, -0.0000029750846500, 0.0000010301351000, -0.0000002549947700, - -0.0000000846562800, 0.0000001934940900, -0.0000000572476600, -0.0000002617432700}, - { -0.0000024001590900, 0.0000026993402700, -0.0000030679000400, 0.0000036606443900, - -0.0000045150554000, 0.0000058832779800, -0.0000088732072900, 0.0000273125908800, - 0.0000113513193200, -0.0000029676327000, 0.0000010252711500, -0.0000002513122700, - -0.0000000877067200, 0.0000001974049600, -0.0000000611735800, -0.0000002592531600}, - { -0.0000023913083300, 0.0000026898455900, -0.0000030563119800, 0.0000036484791400, - -0.0000045025119300, 0.0000058693934100, -0.0000088603102200, 0.0000273374591600, - 0.0000113154412600, -0.0000029598886400, 0.0000010207398600, -0.0000002481943700, - -0.0000000913965300, 0.0000002015094700, -0.0000000638597900, -0.0000002562081700}, - { -0.0000023815374100, 0.0000026799344000, -0.0000030457501700, 0.0000036367072300, - -0.0000044902786100, 0.0000058572790800, -0.0000088473828000, 0.0000273618006800, - 0.0000112791388300, -0.0000029513195500, 0.0000010165016900, -0.0000002444944300, - -0.0000000947146600, 0.0000002045354700, -0.0000000675641700, -0.0000002538546200}, - { -0.0000023725485500, 0.0000026701008800, -0.0000030349857900, 0.0000036247749400, - -0.0000044767731000, 0.0000058431854000, -0.0000088329074400, 0.0000273857995500, - 0.0000112436237300, -0.0000029450197300, 0.0000010130406600, -0.0000002412292800, - -0.0000000979178500, 0.0000002079209800, -0.0000000707489700, -0.0000002509178900}, - { -0.0000023639414500, 0.0000026596958900, -0.0000030232021100, 0.0000036123651800, - -0.0000044638462800, 0.0000058300810100, -0.0000088200445900, 0.0000274096422800, - 0.0000112076957700, -0.0000029366888100, 0.0000010090405600, -0.0000002377569500, - -0.0000001010435600, 0.0000002107901300, -0.0000000743082100, -0.0000002486798400}, - { -0.0000023547531800, 0.0000026496227300, -0.0000030121514300, 0.0000036000215000, - -0.0000044509951300, 0.0000058159209800, -0.0000088052895500, 0.0000274333594900, - 0.0000111721745400, -0.0000029301943900, 0.0000010052135800, -0.0000002353097400, - -0.0000001040420000, 0.0000002140548500, -0.0000000774072300, -0.0000002458072800}, - { -0.0000023446642300, 0.0000026393710400, -0.0000030010656200, 0.0000035875683000, - -0.0000044378805200, 0.0000058025057300, -0.0000087919930200, 0.0000274567466000, - 0.0000111361951300, -0.0000029228839400, 0.0000010016783300, -0.0000002322951600, - -0.0000001065376500, 0.0000002174932100, -0.0000000809275400, -0.0000002436583600}, - { -0.0000023356224600, 0.0000026296883500, -0.0000029893238400, 0.0000035750612400, - -0.0000044247467300, 0.0000057893310100, -0.0000087777694100, 0.0000274797647300, - 0.0000111004330000, -0.0000029157146400, 0.0000009982935500, -0.0000002295711000, - -0.0000001101449700, 0.0000002203852900, -0.0000000831096900, -0.0000002409751900}, - { -0.0000023265168600, 0.0000026184102500, -0.0000029776226200, 0.0000035620616000, - -0.0000044111852100, 0.0000057741079400, -0.0000087628679600, 0.0000275027780000, - 0.0000110654857700, -0.0000029083534200, 0.0000009941856300, -0.0000002266843400, - -0.0000001124397300, 0.0000002236651900, -0.0000000865190200, -0.0000002389152800}, - { -0.0000023164098500, 0.0000026080272800, -0.0000029663348400, 0.0000035494092700, - -0.0000043965976300, 0.0000057598214300, -0.0000087485388500, 0.0000275252475700, - 0.0000110312292600, -0.0000029019980500, 0.0000009918196800, -0.0000002237980900, - -0.0000001155997700, 0.0000002258762900, -0.0000000891896000, -0.0000002363396600}, - { -0.0000023071295000, 0.0000025980032600, -0.0000029541639900, 0.0000035363736500, - -0.0000043828523400, 0.0000057457528900, -0.0000087329639600, 0.0000275481985700, - 0.0000109957830700, -0.0000028949989000, 0.0000009886431100, -0.0000002211532800, - -0.0000001177431500, 0.0000002290080300, -0.0000000924936400, -0.0000002343785600}, - { -0.0000022977857000, 0.0000025877315200, -0.0000029428661900, 0.0000035236477300, - -0.0000043694747100, 0.0000057307956100, -0.0000087183966300, 0.0000275705340200, - 0.0000109614224000, -0.0000028883563000, 0.0000009858208200, -0.0000002190231800, - -0.0000001207356700, 0.0000002311491600, -0.0000000951184900, -0.0000002318342500}, - { -0.0000022884324300, 0.0000025762575100, -0.0000029306783100, 0.0000035112146900, - -0.0000043556341700, 0.0000057163011400, -0.0000087035380900, 0.0000275924294400, - 0.0000109260641300, -0.0000028826112600, 0.0000009821204200, -0.0000002164204600, - -0.0000001227918200, 0.0000002341848700, -0.0000000983084300, -0.0000002299519300}, - { -0.0000022782491400, 0.0000025659050200, -0.0000029181547900, 0.0000034977723200, - -0.0000043413931200, 0.0000057015156000, -0.0000086882727400, 0.0000276151572300, - 0.0000108916066600, -0.0000028757551100, 0.0000009790138000, -0.0000002137523800, - -0.0000001252260400, 0.0000002366059500, -0.0000001001252000, -0.0000002275798800}, - { -0.0000022685765900, 0.0000025552190100, -0.0000029064307100, 0.0000034844676000, - -0.0000043271529100, 0.0000056868813300, -0.0000086719885800, 0.0000276361694700, - 0.0000108569779600, -0.0000028692402200, 0.0000009764314400, -0.0000002119185700, - -0.0000001277542100, 0.0000002395334200, -0.0000001032008700, -0.0000002257986500}, - { -0.0000022589602700, 0.0000025445511400, -0.0000028946376900, 0.0000034711343700, - -0.0000043130672100, 0.0000056708946400, -0.0000086558899300, 0.0000276581678800, - 0.0000108230473600, -0.0000028628118700, 0.0000009738656200, -0.0000002099057700, - -0.0000001292564500, 0.0000002420334600, -0.0000001056977600, -0.0000002234052300}, - { -0.0000022496001600, 0.0000025344724600, -0.0000028822677500, 0.0000034577788700, - -0.0000042988680400, 0.0000056561115200, -0.0000086406171500, 0.0000276798805200, - 0.0000107884769000, -0.0000028567755500, 0.0000009710099800, -0.0000002074387600, - -0.0000001314845000, 0.0000002440979000, -0.0000001085689500, -0.0000002217436800}, - { -0.0000022394383100, 0.0000025226614100, -0.0000028700012900, 0.0000034439922500, - -0.0000042840028100, 0.0000056405162700, -0.0000086243310500, 0.0000277004327300, - 0.0000107550806200, -0.0000028506052900, 0.0000009685232500, -0.0000002068874300, - -0.0000001333423100, 0.0000002464213000, -0.0000001108669600, -0.0000002195061100}, - { -0.0000022297564100, 0.0000025119808500, -0.0000028581781400, 0.0000034305305000, - -0.0000042695656200, 0.0000056253954500, -0.0000086083834300, 0.0000277226300200, - 0.0000107203619900, -0.0000028443348800, 0.0000009654833100, -0.0000002042234800, - -0.0000001358263800, 0.0000002489758900, -0.0000001130552500, -0.0000002179375900}, - { -0.0000022199944300, 0.0000025011964800, -0.0000028462099000, 0.0000034168711000, - -0.0000042548622300, 0.0000056098971500, -0.0000085921130000, 0.0000277432448700, - 0.0000106864987700, -0.0000028388245500, 0.0000009632664400, -0.0000002024860800, - -0.0000001370844300, 0.0000002512274500, -0.0000001153285000, -0.0000002157159200}, - { -0.0000022094548100, 0.0000024903208900, -0.0000028330041100, 0.0000034025320000, - -0.0000042394273800, 0.0000055936365900, -0.0000085747792700, 0.0000277639650500, - 0.0000106531925400, -0.0000028326674100, 0.0000009610046500, -0.0000002009028700, - -0.0000001396393300, 0.0000002530754500, -0.0000001179865400, -0.0000002142396800}, - { -0.0000021995201800, 0.0000024793027300, -0.0000028206269200, 0.0000033896113600, - -0.0000042248483600, 0.0000055780937400, -0.0000085583072500, 0.0000277843916500, - 0.0000106192034600, -0.0000028266589600, 0.0000009595095600, -0.0000001993279700, - -0.0000001408007500, 0.0000002552535400, -0.0000001202056000, -0.0000002120617500}, - { -0.0000021901583000, 0.0000024677037500, -0.0000028084273300, 0.0000033757782300, - -0.0000042099685900, 0.0000055624216900, -0.0000085416983300, 0.0000278047516100, - 0.0000105852072900, -0.0000028207292800, 0.0000009568367500, -0.0000001970246700, - -0.0000001429511100, 0.0000002575063400, -0.0000001221321700, -0.0000002106926400}, - { -0.0000021801611400, 0.0000024565652100, -0.0000027960051300, 0.0000033615404000, - -0.0000041944857600, 0.0000055460095600, -0.0000085239563600, 0.0000278250526200, - 0.0000105517476900, -0.0000028154247100, 0.0000009549327200, -0.0000001957811700, - -0.0000001451556400, 0.0000002589582900, -0.0000001241753500, -0.0000002086264900}, - { -0.0000021699539700, 0.0000024460899000, -0.0000027831832100, 0.0000033477267300, - -0.0000041798158600, 0.0000055292010700, -0.0000085067297700, 0.0000278450786400, - 0.0000105189430300, -0.0000028099508700, 0.0000009524686500, -0.0000001949621100, - -0.0000001461338600, 0.0000002611261800, -0.0000001266673600, -0.0000002073264900}, - { -0.0000021599986800, 0.0000024350066900, -0.0000027708847400, 0.0000033335865400, - -0.0000041644581200, 0.0000055128391400, -0.0000084889121800, 0.0000278653475900, - 0.0000104851735700, -0.0000028039339300, 0.0000009510206500, -0.0000001933711100, - -0.0000001475643600, 0.0000002624167700, -0.0000001286367400, -0.0000002053034800}, - { -0.0000021501456000, 0.0000024240038400, -0.0000027586029200, 0.0000033194974400, - -0.0000041491644800, 0.0000054965250700, -0.0000084713840400, 0.0000278849784900, - 0.0000104526215400, -0.0000027986541700, 0.0000009490451500, -0.0000001918547800, - -0.0000001486507400, 0.0000002645934000, -0.0000001311257700, -0.0000002040050600}, - { -0.0000021403770100, 0.0000024118477100, -0.0000027455391500, 0.0000033058704200, - -0.0000041335183200, 0.0000054809534600, -0.0000084538637100, 0.0000279042526200, - 0.0000104190543900, -0.0000027927521300, 0.0000009462422300, -0.0000001906698600, - -0.0000001502518600, 0.0000002663196100, -0.0000001323447400, -0.0000002021097800}, - { -0.0000021298248700, 0.0000024009912800, -0.0000027321991400, 0.0000032911712700, - -0.0000041174711300, 0.0000054635449300, -0.0000084361255500, 0.0000279243346600, - 0.0000103861290100, -0.0000027880462700, 0.0000009455425900, -0.0000001900093500, - -0.0000001518047500, 0.0000002684579000, -0.0000001347505300, -0.0000002009220500}, - { -0.0000021198957800, 0.0000023898644100, -0.0000027197497600, 0.0000032768596100, - -0.0000041018806300, 0.0000054468678800, -0.0000084179631800, 0.0000279432441200, - 0.0000103538923200, -0.0000027828661600, 0.0000009436950100, -0.0000001885898300, - -0.0000001530065500, 0.0000002695060500, -0.0000001364801200, -0.0000001990835900}, - { -0.0000021097697500, 0.0000023785545000, -0.0000027071437200, 0.0000032621932300, - -0.0000040870290800, 0.0000054302452500, -0.0000083997214900, 0.0000279619234800, - 0.0000103205041100, -0.0000027767473800, 0.0000009419594300, -0.0000001879709700, - -0.0000001538161700, 0.0000002715202100, -0.0000001388824500, -0.0000001978335000}, - { -0.0000020996580900, 0.0000023672059200, -0.0000026941818000, 0.0000032485359700, - -0.0000040714985700, 0.0000054134314800, -0.0000083810986900, 0.0000279815921900, - 0.0000102875847200, -0.0000027719967200, 0.0000009399847000, -0.0000001863555500, - -0.0000001552949300, 0.0000002731039900, -0.0000001399562800, -0.0000001960990100}, - { -0.0000020894037400, 0.0000023552023700, -0.0000026814717500, 0.0000032339646100, - -0.0000040555637300, 0.0000053961014100, -0.0000083632987700, 0.0000280004451900, - 0.0000102547554800, -0.0000027669483100, 0.0000009389127400, -0.0000001850389700, - -0.0000001565501700, 0.0000002743236000, -0.0000001421126700, -0.0000001950196300}, - { -0.0000020796180800, 0.0000023444081100, -0.0000026681026200, 0.0000032192706400, - -0.0000040395032300, 0.0000053787235200, -0.0000083442004400, 0.0000280184129200, - 0.0000102229591200, -0.0000027619025000, 0.0000009370146400, -0.0000001848435300, - -0.0000001568643300, 0.0000002757857900, -0.0000001437420100, -0.0000001933077600}, - { -0.0000020695687800, 0.0000023331738800, -0.0000026554662000, 0.0000032046118400, - -0.0000040233651400, 0.0000053610471900, -0.0000083256870000, 0.0000280377353300, - 0.0000101900357800, -0.0000027567373500, 0.0000009358983900, -0.0000001835136600, - -0.0000001581275300, 0.0000002770198900, -0.0000001459273400, -0.0000001922140900}, - { -0.0000020596163500, 0.0000023219719400, -0.0000026426870800, 0.0000031911263600, - -0.0000040078628800, 0.0000053441716200, -0.0000083070602600, 0.0000280564653200, - 0.0000101581276800, -0.0000027518324200, 0.0000009347882600, -0.0000001837111200, - -0.0000001593896400, 0.0000002791306400, -0.0000001469185600, -0.0000001906217800}, - { -0.0000020486105200, 0.0000023102669400, -0.0000026295748600, 0.0000031757335000, - -0.0000039919465700, 0.0000053275619900, -0.0000082878251100, 0.0000280742505700, - 0.0000101258880600, -0.0000027473598000, 0.0000009331442300, -0.0000001823983800, - -0.0000001605491000, 0.0000002802122100, -0.0000001489715900, -0.0000001896148500}, - { -0.0000020386038100, 0.0000022990763600, -0.0000026169842500, 0.0000031611536400, - -0.0000039758154000, 0.0000053098254300, -0.0000082692676700, 0.0000280922614500, - 0.0000100932867600, -0.0000027421788700, 0.0000009318026600, -0.0000001820868000, - -0.0000001613216100, 0.0000002809677500, -0.0000001504548000, -0.0000001879711300}, - { -0.0000020285435000, 0.0000022877455000, -0.0000026042393200, 0.0000031463335700, - -0.0000039594468800, 0.0000052919415400, -0.0000082490397700, 0.0000281103932300, - 0.0000100609916000, -0.0000027373640000, 0.0000009311303900, -0.0000001812957700, - -0.0000001617884900, 0.0000002826213600, -0.0000001525588000, -0.0000001869926500}, - { -0.0000020192073400, 0.0000022761936700, -0.0000025903756400, 0.0000031323202100, - -0.0000039434316600, 0.0000052741885600, -0.0000082304345000, 0.0000281286138200, - 0.0000100291413500, -0.0000027321921500, 0.0000009296869200, -0.0000001808517000, - -0.0000001627660100, 0.0000002838490600, -0.0000001533110500, -0.0000001855192900}, - { -0.0000020082641400, 0.0000022645343300, -0.0000025773553200, 0.0000031169977600, - -0.0000039274706000, 0.0000052574179500, -0.0000082107814900, 0.0000281460005200, - 0.0000099967050900, -0.0000027269207300, 0.0000009282507800, -0.0000001804192200, - -0.0000001636760100, 0.0000002847881000, -0.0000001552740800, -0.0000001845760100}, - { -0.0000019981165400, 0.0000022530400400, -0.0000025642740200, 0.0000031017613200, - -0.0000039105374000, 0.0000052385802800, -0.0000081905722200, 0.0000281637176300, - 0.0000099657892600, -0.0000027230252500, 0.0000009272886300, -0.0000001799068700, - -0.0000001637727000, 0.0000002860056400, -0.0000001566710200, -0.0000001830818000}, - { -0.0000019880568400, 0.0000022416781800, -0.0000025512202200, 0.0000030878936400, - -0.0000038945254600, 0.0000052207335300, -0.0000081716496200, 0.0000281816351400, - 0.0000099338786400, -0.0000027175974500, 0.0000009256393500, -0.0000001792635900, - -0.0000001649711300, 0.0000002875237500, -0.0000001579820600, -0.0000001822507700}, - { -0.0000019782364100, 0.0000022306311600, -0.0000025387269800, 0.0000030733042100, - -0.0000038783583100, 0.0000052030462600, -0.0000081515568600, 0.0000281989192800, - 0.0000099021663300, -0.0000027135898100, 0.0000009251959300, -0.0000001785903000, - -0.0000001655707600, 0.0000002880377400, -0.0000001592362400, -0.0000001808127200}, - { -0.0000019671249500, 0.0000022187350300, -0.0000025253455800, 0.0000030574773900, - -0.0000038616812900, 0.0000051850662000, -0.0000081315971000, 0.0000282153907600, - 0.0000098702548800, -0.0000027086143300, 0.0000009241521900, -0.0000001786417100, - -0.0000001657398400, 0.0000002894723100, -0.0000001611646700, -0.0000001799471600}, - { -0.0000019570606700, 0.0000022073795700, -0.0000025122240000, 0.0000030434707800, - -0.0000038454440300, 0.0000051668545300, -0.0000081120147400, 0.0000282326299200, - 0.0000098383808800, -0.0000027042545900, 0.0000009231168400, -0.0000001786186700, - -0.0000001662356200, 0.0000002899683900, -0.0000001624082400, -0.0000001785075000}, - { -0.0000019479635100, 0.0000021960407900, -0.0000024988398200, 0.0000030286004000, - -0.0000038289759200, 0.0000051487224000, -0.0000080910856000, 0.0000282503350600, - 0.0000098066057000, -0.0000026984567000, 0.0000009223573800, -0.0000001783286000, - -0.0000001671632200, 0.0000002912741900, -0.0000001635839700, -0.0000001778008400}, - { -0.0000019377155600, 0.0000021844654800, -0.0000024856282600, 0.0000030128070300, - -0.0000038122909500, 0.0000051306676900, -0.0000080708954700, 0.0000282668132600, - 0.0000097753369800, -0.0000026946759500, 0.0000009222427700, -0.0000001780604500, - -0.0000001670895300, 0.0000002923256000, -0.0000001648349000, -0.0000001764156100}, - { -0.0000019269257400, 0.0000021728932000, -0.0000024723351000, 0.0000029986133000, - -0.0000037958156200, 0.0000051121120600, -0.0000080507440900, 0.0000282834989500, - 0.0000097436064800, -0.0000026902305100, 0.0000009211401200, -0.0000001779605600, - -0.0000001677015500, 0.0000002930209300, -0.0000001665754600, -0.0000001756624600}, - { -0.0000019170951200, 0.0000021617945900, -0.0000024597228000, 0.0000029837934200, - -0.0000037790101700, 0.0000050945404700, -0.0000080311308100, 0.0000283008922400, - 0.0000097122904600, -0.0000026855831200, 0.0000009197158400, -0.0000001772074700, - -0.0000001678044700, 0.0000002939243500, -0.0000001670904800, -0.0000001743866400}, - { -0.0000019071619200, 0.0000021505473200, -0.0000024469290200, 0.0000029686120900, - -0.0000037632549500, 0.0000050764840500, -0.0000080100778400, 0.0000283171957600, - 0.0000096806832700, -0.0000026811221400, 0.0000009186304800, -0.0000001771162500, - -0.0000001683731000, 0.0000002945624400, -0.0000001687977400, -0.0000001736577200}, - { -0.0000018968488000, 0.0000021388132400, -0.0000024333413500, 0.0000029538083300, - -0.0000037457346700, 0.0000050578218900, -0.0000079887593500, 0.0000283337590700, - 0.0000096492955100, -0.0000026767354800, 0.0000009192163800, -0.0000001770832400, - -0.0000001681516300, 0.0000002955079600, -0.0000001699869700, -0.0000001723295500}, - { -0.0000018862478100, 0.0000021274150600, -0.0000024204158900, 0.0000029384739600, - -0.0000037297550600, 0.0000050392415300, -0.0000079683587600, 0.0000283504106100, - 0.0000096183264500, -0.0000026722407800, 0.0000009180232100, -0.0000001768308200, - -0.0000001689724600, 0.0000002967018600, -0.0000001710235900, -0.0000001717442700}, - { -0.0000018761561600, 0.0000021159356200, -0.0000024070689600, 0.0000029241121700, - -0.0000037129754000, 0.0000050201664600, -0.0000079472717100, 0.0000283660491100, - 0.0000095870802000, -0.0000026679621900, 0.0000009171925300, -0.0000001770702400, - -0.0000001691965100, 0.0000002969448100, -0.0000001720493300, -0.0000001704658800}, - { -0.0000018668595300, 0.0000021041132500, -0.0000023942524200, 0.0000029090435800, - -0.0000036957408700, 0.0000050019918900, -0.0000079266196800, 0.0000283824708400, - 0.0000095561100700, -0.0000026630607200, 0.0000009168743300, -0.0000001772231300, - -0.0000001696435000, 0.0000002974894800, -0.0000001736659300, -0.0000001698209200}, - { -0.0000018571534300, 0.0000020933121700, -0.0000023805663500, 0.0000028933443100, - -0.0000036793287300, 0.0000049827569900, -0.0000079052887900, 0.0000283981176300, - 0.0000095258665900, -0.0000026591723800, 0.0000009164052800, -0.0000001778570200, - -0.0000001691727400, 0.0000002982552200, -0.0000001746931600, -0.0000001686115500}, - { -0.0000018463951300, 0.0000020817422100, -0.0000023671874000, 0.0000028788840800, - -0.0000036622085000, 0.0000049644890900, -0.0000078843755900, 0.0000284139414500, - 0.0000094937302500, -0.0000026549370400, 0.0000009150120900, -0.0000001771057900, - -0.0000001693172900, 0.0000002992954400, -0.0000001756770400, -0.0000001680418200}, - { -0.0000018364139000, 0.0000020703740000, -0.0000023541974700, 0.0000028632330500, - -0.0000036454574300, 0.0000049461377000, -0.0000078632258000, 0.0000284297024000, - 0.0000094630560000, -0.0000026501577500, 0.0000009148770700, -0.0000001774906500, - -0.0000001694643800, 0.0000002994642500, -0.0000001766316400, -0.0000001668313800}, - { -0.0000018266186600, 0.0000020592415900, -0.0000023412213700, 0.0000028492007500, - -0.0000036289687800, 0.0000049272679100, -0.0000078421164800, 0.0000284457324700, - 0.0000094316696700, -0.0000026457830700, 0.0000009146283300, -0.0000001777143500, - -0.0000001698314300, 0.0000002999487700, -0.0000001781999900, -0.0000001662265200}, - { -0.0000018165847100, 0.0000020477739000, -0.0000023280404100, 0.0000028333282800, - -0.0000036119295000, 0.0000049084885500, -0.0000078204266000, 0.0000284608657200, - 0.0000094014760000, -0.0000026416553200, 0.0000009139701600, -0.0000001781460200, - -0.0000001696266500, 0.0000003012636900, -0.0000001785770200, -0.0000001651378600}, - { -0.0000018061008600, 0.0000020364436200, -0.0000023149218600, 0.0000028191490700, - -0.0000035952564600, 0.0000048893523500, -0.0000077988760200, 0.0000284764041400, - 0.0000093702911100, -0.0000026373328800, 0.0000009137987500, -0.0000001784607900, - -0.0000001699031600, 0.0000003016678700, -0.0000001800824700, -0.0000001645793200}, - { -0.0000017963440300, 0.0000020253539400, -0.0000023021819100, 0.0000028040064200, - -0.0000035778114400, 0.0000048706755700, -0.0000077771874700, 0.0000284916529600, - 0.0000093393907400, -0.0000026335334700, 0.0000009129169500, -0.0000001782780900, - -0.0000001693615300, 0.0000003016455700, -0.0000001809252200, -0.0000001634392700}, - { -0.0000017864500900, 0.0000020140353900, -0.0000022889140600, 0.0000027892719100, - -0.0000035614488000, 0.0000048525355700, -0.0000077560338000, 0.0000285077698000, - 0.0000093086772800, -0.0000026290376100, 0.0000009124974400, -0.0000001782837800, - -0.0000001700124000, 0.0000003027010500, -0.0000001818503700, -0.0000001629703000}, - { -0.0000017767797800, 0.0000020029767800, -0.0000022762632500, 0.0000027742539400, - -0.0000035443127000, 0.0000048328815000, -0.0000077336969100, 0.0000285223614300, - 0.0000092784329800, -0.0000026242686200, 0.0000009124739900, -0.0000001788644700, - -0.0000001699564500, 0.0000003026957800, -0.0000001826555800, -0.0000001618684700}, - { -0.0000017673081200, 0.0000019908421800, -0.0000022626375700, 0.0000027591688900, - -0.0000035275280700, 0.0000048141797500, -0.0000077116537300, 0.0000285372738700, - 0.0000092474868600, -0.0000026199049700, 0.0000009123179000, -0.0000001792125700, - -0.0000001701864700, 0.0000003030366000, -0.0000001841112200, -0.0000001613422400}, - { -0.0000017567749800, 0.0000019794038100, -0.0000022494731800, 0.0000027432475300, - -0.0000035103343800, 0.0000047947719600, -0.0000076901860200, 0.0000285524247500, - 0.0000092174773000, -0.0000026162495500, 0.0000009115656500, -0.0000001791780100, - -0.0000001692544800, 0.0000003041601400, -0.0000001843678200, -0.0000001603558400}, - { -0.0000017470863500, 0.0000019683203200, -0.0000022364869500, 0.0000027291613500, - -0.0000034936118500, 0.0000047753629900, -0.0000076679031600, 0.0000285671811500, - 0.0000091863686900, -0.0000026115241800, 0.0000009107820400, -0.0000001801618700, - -0.0000001693384100, 0.0000003044500800, -0.0000001858063000, -0.0000001598323500}, - { -0.0000017374543300, 0.0000019573449500, -0.0000022237957200, 0.0000027136848800, - -0.0000034768617100, 0.0000047567511000, -0.0000076458633000, 0.0000285823700200, - 0.0000091556728800, -0.0000026079677000, 0.0000009109488100, -0.0000001807759500, - -0.0000001692821000, 0.0000003044301800, -0.0000001865780400, -0.0000001587867000}, - { -0.0000017278016500, 0.0000019462639700, -0.0000022107866200, 0.0000026994361100, - -0.0000034597273100, 0.0000047381154500, -0.0000076238222500, 0.0000285975563800, - 0.0000091251439600, -0.0000026032138000, 0.0000009103004000, -0.0000001803039800, - -0.0000001692015100, 0.0000003052700600, -0.0000001873935800, -0.0000001583828300}, - { -0.0000017174506000, 0.0000019350009900, -0.0000021978862300, 0.0000026838198900, - -0.0000034430712700, 0.0000047182370700, -0.0000076007137400, 0.0000286112971700, - 0.0000090946916500, -0.0000025990224500, 0.0000009104300700, -0.0000001810064900, - -0.0000001690153500, 0.0000003051424200, -0.0000001880890400, -0.0000001573670100}, - { -0.0000017077386900, 0.0000019238909500, -0.0000021847402400, 0.0000026693327400, - -0.0000034255105000, 0.0000046987841400, -0.0000075788745300, 0.0000286262228400, - 0.0000090639789400, -0.0000025952532400, 0.0000009104248700, -0.0000001814795900, - -0.0000001691600600, 0.0000003054176700, -0.0000001894703800, -0.0000001569153000}, - { -0.0000016981596000, 0.0000019128983200, -0.0000021720457700, 0.0000026538690300, - -0.0000034087052200, 0.0000046799004200, -0.0000075562967900, 0.0000286407594900, - 0.0000090337279400, -0.0000025905423200, 0.0000009096027200, -0.0000001821529400, - -0.0000001680332600, 0.0000003064309200, -0.0000001896839700, -0.0000001559561500}, - { -0.0000016884247400, 0.0000019017118400, -0.0000021587898200, 0.0000026389844800, - -0.0000033919719800, 0.0000046610354100, -0.0000075335881700, 0.0000286552421600, - 0.0000090031502000, -0.0000025867448300, 0.0000009095852900, -0.0000001826242300, - -0.0000001681411600, 0.0000003066530900, -0.0000001910366600, -0.0000001555232200}, - { -0.0000016783704800, 0.0000018907663300, -0.0000021462324800, 0.0000026239733700, - -0.0000033746731200, 0.0000046405855900, -0.0000075110245000, 0.0000286693376000, - 0.0000089731283500, -0.0000025821879500, 0.0000009092452800, -0.0000001825134600, - -0.0000001676528000, 0.0000003070488600, -0.0000001910937800, -0.0000001546377000}, - { -0.0000016688282800, 0.0000018797704300, -0.0000021331826000, 0.0000026093533900, - -0.0000033581867500, 0.0000046219477100, -0.0000074884840400, 0.0000286843179800, - 0.0000089429913200, -0.0000025781349400, 0.0000009085971800, -0.0000001835675000, - -0.0000001676580800, 0.0000003072425300, -0.0000001924344300, -0.0000001542197500}, - { -0.0000016594569100, 0.0000018690756000, -0.0000021207672000, 0.0000025943420100, - -0.0000033404937000, 0.0000046023517900, -0.0000074664683000, 0.0000286977836300, - 0.0000089126683900, -0.0000025743532000, 0.0000009086549100, -0.0000001841296500, - -0.0000001676983800, 0.0000003074065100, -0.0000001937151500, -0.0000001538275800}, - { -0.0000016498716200, 0.0000018580469200, -0.0000021077164200, 0.0000025796245500, - -0.0000033239161900, 0.0000045835202700, -0.0000074435467900, 0.0000287119707900, - 0.0000088817903900, -0.0000025695953100, 0.0000009088750200, -0.0000001840528300, - -0.0000001672419000, 0.0000003078214900, -0.0000001938044200, -0.0000001529263800}, - { -0.0000016399128000, 0.0000018471685500, -0.0000020951717000, 0.0000025642665600, - -0.0000033070898400, 0.0000045645401700, -0.0000074204448300, 0.0000287263294400, - 0.0000088518791800, -0.0000025655699800, 0.0000009083077500, -0.0000001851968500, - -0.0000001671519700, 0.0000003079287600, -0.0000001950784000, -0.0000001525545100}, - { -0.0000016303461100, 0.0000018361514000, -0.0000020820608400, 0.0000025497283800, - -0.0000032893481400, 0.0000045445650100, -0.0000073974168600, 0.0000287398826600, - 0.0000088215611900, -0.0000025616230100, 0.0000009082036700, -0.0000001853404200, - -0.0000001663416900, 0.0000003076434500, -0.0000001956698100, -0.0000001516114100}, - { -0.0000016215838300, 0.0000018247246600, -0.0000020690412400, 0.0000025351871200, - -0.0000032729171400, 0.0000045259152900, -0.0000073748515200, 0.0000287535419700, - 0.0000087916911500, -0.0000025573878100, 0.0000009073875600, -0.0000001862252200, - -0.0000001665725900, 0.0000003083968700, -0.0000001963597200, -0.0000001513327100}, - { -0.0000016122658700, 0.0000018140302000, -0.0000020565897500, 0.0000025198358100, - -0.0000032563221800, 0.0000045054475300, -0.0000073516228400, 0.0000287669639200, - 0.0000087611730400, -0.0000025527589100, 0.0000009078560600, -0.0000001864713500, - -0.0000001657013000, 0.0000003080858100, -0.0000001969379300, -0.0000001503969900}, - { -0.0000016030164800, 0.0000018033299200, -0.0000020438589400, 0.0000025057752300, - -0.0000032390709200, 0.0000044862930000, -0.0000073281372400, 0.0000287808844900, - 0.0000087312662900, -0.0000025484515600, 0.0000009070381000, -0.0000001873996900, - -0.0000001658952100, 0.0000003088203600, -0.0000001976310900, -0.0000001501262300}, - { -0.0000015931594800, 0.0000017925901000, -0.0000020314095600, 0.0000024903471000, - -0.0000032220613500, 0.0000044666232000, -0.0000073051883700, 0.0000287948850700, - 0.0000087007865500, -0.0000025444714700, 0.0000009076396600, -0.0000001876815400, - -0.0000001650306000, 0.0000003085015800, -0.0000001981877500, -0.0000001492305300}, - { -0.0000015837646000, 0.0000017817156300, -0.0000020183755000, 0.0000024755980300, - -0.0000032052144100, 0.0000044470365700, -0.0000072825294900, 0.0000288078851000, - 0.0000086711998100, -0.0000025403194900, 0.0000009070080400, -0.0000001888369000, - -0.0000001648979900, 0.0000003085609100, -0.0000001993991000, -0.0000001488858500}, - { -0.0000015745786000, 0.0000017710651600, -0.0000020057087700, 0.0000024614982500, - -0.0000031879037500, 0.0000044276425800, -0.0000072585572700, 0.0000288212217900, - 0.0000086414765800, -0.0000025357212300, 0.0000009074959300, -0.0000001891836000, - -0.0000001636592700, 0.0000003094108300, -0.0000001994653500, -0.0000001480767400}, - { -0.0000015654004700, 0.0000017605115800, -0.0000019933041100, 0.0000024461035300, - -0.0000031707875300, 0.0000044077625700, -0.0000072351635400, 0.0000288347603800, - 0.0000086112304400, -0.0000025320844800, 0.0000009069894600, -0.0000001903992100, - -0.0000001634855100, 0.0000003094518400, -0.0000002006818100, -0.0000001477449400}, - { -0.0000015556426100, 0.0000017497985500, -0.0000019805930700, 0.0000024316777100, - -0.0000031543979900, 0.0000043889313200, -0.0000072118967800, 0.0000288475887700, - 0.0000085809125600, -0.0000025278532500, 0.0000009073340000, -0.0000001904355000, - -0.0000001629128000, 0.0000003097408700, -0.0000002006309300, -0.0000001469685300}, - { -0.0000015464035900, 0.0000017390367400, -0.0000019676404700, 0.0000024169673500, - -0.0000031375546100, 0.0000043691563100, -0.0000071884560100, 0.0000288613216300, - 0.0000085517904200, -0.0000025234780000, 0.0000009063993200, -0.0000001909503200, - -0.0000001621883700, 0.0000003096710200, -0.0000002018075200, -0.0000001466497000}, - { -0.0000015372811900, 0.0000017282467800, -0.0000019563622700, 0.0000024025743900, - -0.0000031201529400, 0.0000043494252000, -0.0000071653858800, 0.0000288739140200, - 0.0000085215783300, -0.0000025192315000, 0.0000009065729600, -0.0000001924642300, - -0.0000001617413500, 0.0000003093622800, -0.0000002023130000, -0.0000001457861300}, - { -0.0000015281581500, 0.0000017176704600, -0.0000019436707600, 0.0000023880818700, - -0.0000031035919800, 0.0000043302468300, -0.0000071411887600, 0.0000288870320800, - 0.0000084911325500, -0.0000025147413900, 0.0000009067220900, -0.0000001923185400, - -0.0000001613820700, 0.0000003099574200, -0.0000002029502500, -0.0000001455518600}, - { -0.0000015190068200, 0.0000017070271400, -0.0000019307909900, 0.0000023733865500, - -0.0000030866540700, 0.0000043102902900, -0.0000071173336500, 0.0000289002944200, - 0.0000084617972200, -0.0000025112304400, 0.0000009063501400, -0.0000001937412700, - -0.0000001609315800, 0.0000003096284800, -0.0000002034312100, -0.0000001447330000}, - { -0.0000015095192700, 0.0000016966497900, -0.0000019187203800, 0.0000023583328300, - -0.0000030698827600, 0.0000042906585900, -0.0000070941485100, 0.0000289127389400, - 0.0000084313384800, -0.0000025064553400, 0.0000009058701400, -0.0000001941756600, - -0.0000001604479400, 0.0000003101858000, -0.0000002040355800, -0.0000001445044100}, - { -0.0000015005498900, 0.0000016861988700, -0.0000019061283500, 0.0000023439043400, - -0.0000030533338900, 0.0000042714039500, -0.0000070696301300, 0.0000289257793800, - 0.0000084018453400, -0.0000025022964500, 0.0000009063774800, -0.0000001944654100, - -0.0000001595199500, 0.0000003097508000, -0.0000002044866400, -0.0000001436913900}, - { -0.0000014917519700, 0.0000016759937100, -0.0000018938392400, 0.0000023301552900, - -0.0000030361552500, 0.0000042516727200, -0.0000070462608200, 0.0000289383840200, - 0.0000083722905800, -0.0000024979066000, 0.0000009063562600, -0.0000001958070000, - -0.0000001592655700, 0.0000003097143300, -0.0000002056302800, -0.0000001434061400}, - { -0.0000014829329300, 0.0000016657963500, -0.0000018818329000, 0.0000023150063400, - -0.0000030188546200, 0.0000042326526200, -0.0000070230755300, 0.0000289510095600, - 0.0000083425985400, -0.0000024932767200, 0.0000009060147700, -0.0000001964069200, - -0.0000001585752700, 0.0000003099557300, -0.0000002055331700, -0.0000001426747600}, - { -0.0000014740487700, 0.0000016554974400, -0.0000018693430700, 0.0000023006696000, - -0.0000030022736600, 0.0000042129344000, -0.0000069991474400, 0.0000289643060400, - 0.0000083121682100, -0.0000024891262300, 0.0000009057517500, -0.0000001970699600, - -0.0000001577810900, 0.0000003098336700, -0.0000002066861800, -0.0000001423747700}, - { -0.0000014646034300, 0.0000016450370300, -0.0000018567891400, 0.0000022863023200, - -0.0000029856412200, 0.0000041932542200, -0.0000069755255200, 0.0000289764874500, - 0.0000082826383600, -0.0000024845070000, 0.0000009054717400, -0.0000001980678900, - -0.0000001582625700, 0.0000003096053600, -0.0000002064831500, -0.0000001416907600}, - { -0.0000014559627800, 0.0000016349891900, -0.0000018449559000, 0.0000022713561300, - -0.0000029689051900, 0.0000041737590700, -0.0000069503998900, 0.0000289888685100, - 0.0000082532448100, -0.0000024801087800, 0.0000009058174200, -0.0000001982046700, - -0.0000001575159300, 0.0000003094262100, -0.0000002075770200, -0.0000001414337900}, - { -0.0000014471061400, 0.0000016243913500, -0.0000018334760000, 0.0000022579662500, - -0.0000029519935000, 0.0000041541189800, -0.0000069267292000, 0.0000290011569200, - 0.0000082230235800, -0.0000024758694700, 0.0000009055155500, -0.0000001988704700, - -0.0000001567128600, 0.0000003092724100, -0.0000002086898100, -0.0000001411478900}, - { -0.0000014383790400, 0.0000016142525900, -0.0000018211358000, 0.0000022437490000, - -0.0000029354488900, 0.0000041343948500, -0.0000069028755000, 0.0000290131292800, - 0.0000081930443400, -0.0000024718526100, 0.0000009055027000, -0.0000002001893100, - -0.0000001564993600, 0.0000003095765300, -0.0000002085806300, -0.0000001404564500}, - { -0.0000014297586900, 0.0000016042263500, -0.0000018092816300, 0.0000022287585300, - -0.0000029185104300, 0.0000041142095700, -0.0000068780397800, 0.0000290253164200, - 0.0000081635398000, -0.0000024670766100, 0.0000009051397000, -0.0000002008669700, - -0.0000001556387000, 0.0000003093691000, -0.0000002096680100, -0.0000001401882300}, - { -0.0000014206281900, 0.0000015941116300, -0.0000017970542200, 0.0000022146976500, - -0.0000029021815100, 0.0000040946718000, -0.0000068542945900, 0.0000290377478100, - 0.0000081340267800, -0.0000024629081800, 0.0000009048347000, -0.0000002014963700, - -0.0000001548946600, 0.0000003095699600, -0.0000002095226400, -0.0000001395190900}, - { -0.0000014118938600, 0.0000015839406100, -0.0000017846481100, 0.0000022002842700, - -0.0000028850387900, 0.0000040754474000, -0.0000068302308800, 0.0000290494347700, - 0.0000081040072300, -0.0000024586190700, 0.0000009045183800, -0.0000002021575300, - -0.0000001540744900, 0.0000003093740800, -0.0000002106039500, -0.0000001392505100}, - { -0.0000014033359700, 0.0000015739387800, -0.0000017724211200, 0.0000021861411400, - -0.0000028685336800, 0.0000040555731500, -0.0000068055928700, 0.0000290621547300, - 0.0000080744453800, -0.0000024543547500, 0.0000009041815800, -0.0000002027861900, - -0.0000001533174400, 0.0000003095698800, -0.0000002104702000, -0.0000001385829000}, - { -0.0000013950756900, 0.0000015643569600, -0.0000017610720400, 0.0000021716480000, - -0.0000028520619600, 0.0000040359106100, -0.0000067815030400, 0.0000290742857900, - 0.0000080448884900, -0.0000024496193000, 0.0000009046978300, -0.0000002042499600, - -0.0000001529706600, 0.0000003094623000, -0.0000002115681000, -0.0000001383359700}, - { -0.0000013857978600, 0.0000015536744300, -0.0000017494757400, 0.0000021577567700, - -0.0000028357551400, 0.0000040162405000, -0.0000067572563200, 0.0000290861113600, - 0.0000080155270500, -0.0000024453193600, 0.0000009043386000, -0.0000002048697200, - -0.0000001522077700, 0.0000003096377800, -0.0000002113994500, -0.0000001376849300}, - { -0.0000013773229200, 0.0000015437926100, -0.0000017374226900, 0.0000021440417100, - -0.0000028180320800, 0.0000039967168700, -0.0000067326482200, 0.0000290971758300, - 0.0000079856769100, -0.0000024409237700, 0.0000009039889200, -0.0000002055553100, - -0.0000001513509600, 0.0000003093955600, -0.0000002124476100, -0.0000001374342300}, - { -0.0000013689059900, 0.0000015339335300, -0.0000017253688600, 0.0000021300179900, - -0.0000028015676300, 0.0000039767446600, -0.0000067075438600, 0.0000291093788100, - 0.0000079560972200, -0.0000024359858000, 0.0000009042893100, -0.0000002064956100, - -0.0000001502425900, 0.0000003088564100, -0.0000002128108700, -0.0000001366787300}, - { -0.0000013608286800, 0.0000015245837400, -0.0000017142104300, 0.0000021157264500, - -0.0000027853162500, 0.0000039572395400, -0.0000066833494600, 0.0000291213669600, - 0.0000079258669800, -0.0000024318259900, 0.0000009036431600, -0.0000002066451500, - -0.0000001504139700, 0.0000003088416900, -0.0000002132688700, -0.0000001365518600}, - { -0.0000013526024300, 0.0000015149195700, -0.0000017023199600, 0.0000021019023100, - -0.0000027690881700, 0.0000039375542700, -0.0000066588317200, 0.0000291332516600, - 0.0000078972791400, -0.0000024276630700, 0.0000009034254800, -0.0000002074639200, - -0.0000001493462900, 0.0000003082938500, -0.0000002135814900, -0.0000001358430400}, - { -0.0000013436720300, 0.0000015049535100, -0.0000016902143900, 0.0000020877384400, - -0.0000027520351800, 0.0000039182293600, -0.0000066341740000, 0.0000291445410400, - 0.0000078678890800, -0.0000024226476800, 0.0000009036993800, -0.0000002087255200, - -0.0000001492702300, 0.0000003088470800, -0.0000002141367000, -0.0000001357082800}, - { -0.0000013351892900, 0.0000014946715800, -0.0000016789045200, 0.0000020740566100, - -0.0000027358305900, 0.0000038984672800, -0.0000066093324400, 0.0000291557196100, - 0.0000078381474100, -0.0000024188073400, 0.0000009035188200, -0.0000002095570400, - -0.0000001481921800, 0.0000003082911700, -0.0000002144524900, -0.0000001349842500}, - { -0.0000013270943900, 0.0000014852276800, -0.0000016672927800, 0.0000020605326600, - -0.0000027198631300, 0.0000038789809200, -0.0000065848400700, 0.0000291673553600, - 0.0000078077054200, -0.0000024136747400, 0.0000009027973200, -0.0000002105937200, - -0.0000001475208500, 0.0000003087524600, -0.0000002150215500, -0.0000001348116400}, - { -0.0000013190641200, 0.0000014758176300, -0.0000016560228700, 0.0000020459538900, - -0.0000027027766200, 0.0000038596149400, -0.0000065599338300, 0.0000291786795400, - 0.0000077792721000, -0.0000024094239400, 0.0000009025651700, -0.0000002114130700, - -0.0000001464447200, 0.0000003081710900, -0.0000002153019500, -0.0000001341225900}, - { -0.0000013110011800, 0.0000014663919000, -0.0000016444050200, 0.0000020323488600, - -0.0000026866946500, 0.0000038399388600, -0.0000065350608700, 0.0000291898436700, - 0.0000077491289100, -0.0000024045414700, 0.0000009025408000, -0.0000002119522600, - -0.0000001458535300, 0.0000003086316400, -0.0000002158494200, -0.0000001339767200}, - { -0.0000013025077600, 0.0000014569262800, -0.0000016328233200, 0.0000020188140300, - -0.0000026707041800, 0.0000038203933500, -0.0000065102449400, 0.0000292014040700, - 0.0000077196425000, -0.0000023998381000, 0.0000009026360900, -0.0000002125747900, - -0.0000001454699900, 0.0000003075666900, -0.0000002160549700, -0.0000001332912300}, - { -0.0000012943770500, 0.0000014473806100, -0.0000016209483700, 0.0000020047933100, - -0.0000026536730800, 0.0000038005130000, -0.0000064858733100, 0.0000292129090700, - 0.0000076903557900, -0.0000023957398700, 0.0000009021448800, -0.0000002130265600, - -0.0000001449188900, 0.0000003080409800, -0.0000002165817700, -0.0000001331821400}, - { -0.0000012862479300, 0.0000014374613700, -0.0000016100609100, 0.0000019915634000, - -0.0000026378597000, 0.0000037810235300, -0.0000064609585900, 0.0000292243989500, - 0.0000076607212500, -0.0000023906702500, 0.0000009015226300, -0.0000002142422000, - -0.0000001439416300, 0.0000003077588100, -0.0000002176246500, -0.0000001329411400}, - { -0.0000012776898100, 0.0000014287400700, -0.0000015987370400, 0.0000019781456700, - -0.0000026218842900, 0.0000037613307800, -0.0000064357589600, 0.0000292354833000, - 0.0000076314227000, -0.0000023860018100, 0.0000009017528200, -0.0000002151344500, - -0.0000001428408900, 0.0000003071783900, -0.0000002179145600, -0.0000001322405100}, - { -0.0000012699499300, 0.0000014196955700, -0.0000015878862800, 0.0000019639469300, - -0.0000026050975100, 0.0000037421391100, -0.0000064106762900, 0.0000292466530500, - 0.0000076019700600, -0.0000023810871100, 0.0000009017151300, -0.0000002156670200, - -0.0000001422547300, 0.0000003076233500, -0.0000002184458600, -0.0000001321218400}, - { -0.0000012616476800, 0.0000014104155900, -0.0000015764904400, 0.0000019506037600, - -0.0000025892093800, 0.0000037225319700, -0.0000063853917500, 0.0000292576319400, - 0.0000075724712100, -0.0000023759323400, 0.0000009010001600, -0.0000002167557500, - -0.0000001417698000, 0.0000003065150800, -0.0000002186268300, -0.0000001314354900}, - { -0.0000012537078000, 0.0000014007257400, -0.0000015657767200, 0.0000019375159900, - -0.0000025735481500, 0.0000037031767000, -0.0000063607547900, 0.0000292680753800, - 0.0000075427591700, -0.0000023721555300, 0.0000009004937300, -0.0000002171714300, - -0.0000001412157700, 0.0000003069674600, -0.0000002191380800, -0.0000001313321900}, - { -0.0000012457823800, 0.0000013913853300, -0.0000015541317500, 0.0000019236546600, - -0.0000025565504100, 0.0000036831074500, -0.0000063356530800, 0.0000292786821600, - 0.0000075136252200, -0.0000023673990600, 0.0000009007040500, -0.0000002180765400, - -0.0000001401081300, 0.0000003063717500, -0.0000002193998000, -0.0000001306486000}, - { -0.0000012381206600, 0.0000013823584100, -0.0000015429059800, 0.0000019104315500, - -0.0000025407276700, 0.0000036634397500, -0.0000063101285300, 0.0000292893802300, - 0.0000074841359700, -0.0000023620522900, 0.0000008998337100, -0.0000002190657800, - -0.0000001393998700, 0.0000003067771800, -0.0000002199287800, -0.0000001305173000}, - { -0.0000012304800000, 0.0000013733603800, -0.0000015316494200, 0.0000018970177400, - -0.0000025242884300, 0.0000036443834300, -0.0000062848029800, 0.0000293006277700, - 0.0000074548400000, -0.0000023577987000, 0.0000009001070400, -0.0000002199540200, - -0.0000001383193600, 0.0000003061911500, -0.0000002201990500, -0.0000001298486200}, - { -0.0000012231594800, 0.0000013648384700, -0.0000015213765300, 0.0000018835062100, - -0.0000025085987100, 0.0000036250520900, -0.0000062599496300, 0.0000293108050300, - 0.0000074248575600, -0.0000023530332000, 0.0000008998523600, -0.0000002201711800, - -0.0000001384640400, 0.0000003061515200, -0.0000002206188900, -0.0000001297565000}, - { -0.0000012146903000, 0.0000013548919900, -0.0000015104288800, 0.0000018700312600, - -0.0000024918766800, 0.0000036051519300, -0.0000062347556700, 0.0000293216599600, - 0.0000073961694600, -0.0000023479470700, 0.0000008992759700, -0.0000002215250000, - -0.0000001372665000, 0.0000003055268400, -0.0000002208668300, -0.0000001290828100}, - { -0.0000012072689000, 0.0000013461432300, -0.0000014994590500, 0.0000018570057000, - -0.0000024762400200, 0.0000035856112000, -0.0000062091368600, 0.0000293326498300, - 0.0000073667719600, -0.0000023433472500, 0.0000008991998000, -0.0000002220358400, - -0.0000001366666100, 0.0000003059661400, -0.0000002213970900, -0.0000001289852900}, - { -0.0000011998777300, 0.0000013374412100, -0.0000014885760000, 0.0000018440114900, - -0.0000024601980400, 0.0000035669418700, -0.0000061843667600, 0.0000293431988400, - 0.0000073372194300, -0.0000023379395200, 0.0000008991178300, -0.0000002234495000, - -0.0000001354819600, 0.0000003053533900, -0.0000002216603000, -0.0000001282913700}, - { -0.0000011922344800, 0.0000013284279500, -0.0000014771995300, 0.0000018300582900, - -0.0000024446846900, 0.0000035466290700, -0.0000061588331200, 0.0000293533527800, - 0.0000073072951600, -0.0000023330451200, 0.0000008988073400, -0.0000002236664600, - -0.0000001356054900, 0.0000003053154500, -0.0000002220878800, -0.0000001282008300}, - { -0.0000011845461600, 0.0000013189357000, -0.0000014666643200, 0.0000018169987600, - -0.0000024284154200, 0.0000035275317400, -0.0000061329463600, 0.0000293638750200, - 0.0000072780111500, -0.0000023282772800, 0.0000008982191000, -0.0000002249832100, - -0.0000001344236100, 0.0000003046802300, -0.0000002223339400, -0.0000001275293500}, - { -0.0000011769115200, 0.0000013103666900, -0.0000014559744600, 0.0000018043115400, - -0.0000024131925000, 0.0000035084175400, -0.0000061079622500, 0.0000293746271400, - 0.0000072492005600, -0.0000023234912400, 0.0000008978152700, -0.0000002247134700, - -0.0000001333772300, 0.0000003050212200, -0.0000002228201400, -0.0000001274483600}, - { -0.0000011694882200, 0.0000013015910500, -0.0000014448925000, 0.0000017910112100, - -0.0000023966290300, 0.0000034885265900, -0.0000060823698800, 0.0000293850684700, - 0.0000072198731500, -0.0000023185828700, 0.0000008970913900, -0.0000002258841200, - -0.0000001323837000, 0.0000003046799700, -0.0000002238111400, -0.0000001272408000}, - { -0.0000011623815900, 0.0000012932068300, -0.0000014343601700, 0.0000017784544000, - -0.0000023814273900, 0.0000034693878200, -0.0000060571265600, 0.0000293950616300, - 0.0000071902922400, -0.0000023127290700, 0.0000008965455900, -0.0000002267675400, - -0.0000001322245300, 0.0000003043324900, -0.0000002234895800, -0.0000001266776300}, - { -0.0000011540516700, 0.0000012843156400, -0.0000014239964400, 0.0000017653808300, - -0.0000023649793700, 0.0000034495386400, -0.0000060314068800, 0.0000294053570900, - 0.0000071604519400, -0.0000023084721700, 0.0000008966178100, -0.0000002274742400, - -0.0000001313420800, 0.0000003040255700, -0.0000002244873300, -0.0000001264793200}, - { -0.0000011472239700, 0.0000012762833200, -0.0000014142299300, 0.0000017523724800, - -0.0000023496551600, 0.0000034302863600, -0.0000060059835200, 0.0000294155332000, - 0.0000071318036600, -0.0000023035573000, 0.0000008958134900, -0.0000002285404200, - -0.0000001304581400, 0.0000003041364800, -0.0000002242376300, -0.0000001259366100}, - { -0.0000011396549400, 0.0000012678155200, -0.0000014036439400, 0.0000017396575200, - -0.0000023338009400, 0.0000034116321500, -0.0000059806163900, 0.0000294253594500, - 0.0000071016115000, -0.0000022981051800, 0.0000008953591700, -0.0000002294842900, - -0.0000001302187900, 0.0000003033306900, -0.0000002251340000, -0.0000001257327400}, - { -0.0000011323121700, 0.0000012586727200, -0.0000013934406600, 0.0000017269467600, - -0.0000023182283200, 0.0000033913734300, -0.0000059546703200, 0.0000294357625700, - 0.0000070729691900, -0.0000022931857800, 0.0000008949854300, -0.0000002293460500, - -0.0000001289637300, 0.0000003033725600, -0.0000002248666800, -0.0000001252011800}, - { -0.0000011252540100, 0.0000012503092200, -0.0000013827892600, 0.0000017136721300, - -0.0000023029828700, 0.0000033729073000, -0.0000059293518700, 0.0000294460157000, - 0.0000070434097200, -0.0000022879051900, 0.0000008946945700, -0.0000002305315700, - -0.0000001279931900, 0.0000003030359000, -0.0000002258640400, -0.0000001249868500}, - { -0.0000011182377900, 0.0000012419958100, -0.0000013722251500, 0.0000017009920100, - -0.0000022874644300, 0.0000033527611400, -0.0000059037642400, 0.0000294550501800, - 0.0000070143346800, -0.0000022826323700, 0.0000008936004500, -0.0000002312971700, - -0.0000001278495600, 0.0000003026834400, -0.0000002255007200, -0.0000001244616700}, - { -0.0000011112979600, 0.0000012337731100, -0.0000013617730300, 0.0000016882921900, - -0.0000022715294600, 0.0000033338099000, -0.0000058774188400, 0.0000294654140800, - 0.0000069848353600, -0.0000022774221100, 0.0000008938942400, -0.0000002318660300, - -0.0000001272367300, 0.0000003031143500, -0.0000002260491700, -0.0000001243631400}, - { -0.0000011036494600, 0.0000012247285200, -0.0000013517704400, 0.0000016757477900, - -0.0000022556496100, 0.0000033144550900, -0.0000058521997300, 0.0000294752983200, - 0.0000069553175900, -0.0000022719357000, 0.0000008933910800, -0.0000002324464800, - -0.0000001256128400, 0.0000003023848100, -0.0000002262428500, -0.0000001237037300}, - { -0.0000010969358900, 0.0000012167754700, -0.0000013416137200, 0.0000016635331800, - -0.0000022407065400, 0.0000032953544400, -0.0000058263509000, 0.0000294849437700, - 0.0000069259760100, -0.0000022670102300, 0.0000008922281200, -0.0000002330427000, - -0.0000001256945700, 0.0000003023412200, -0.0000002266647300, -0.0000001236321600}, - { -0.0000010900887700, 0.0000012086623000, -0.0000013312472500, 0.0000016509174100, - -0.0000022247384700, 0.0000032758671600, -0.0000058008634000, 0.0000294944915100, - 0.0000068966542100, -0.0000022616489300, 0.0000008919626500, -0.0000002343674400, - -0.0000001245178500, 0.0000003017029900, -0.0000002268726500, -0.0000001229834600}, - { -0.0000010824042300, 0.0000012004282000, -0.0000013216314100, 0.0000016383459600, - -0.0000022105269700, 0.0000032570797200, -0.0000057751817000, 0.0000295047141500, - 0.0000068676416600, -0.0000022561101300, 0.0000008913972000, -0.0000002352971000, - -0.0000001238353400, 0.0000003021279300, -0.0000002274200700, -0.0000001228791200}, - { -0.0000010755431700, 0.0000011922721200, -0.0000013111568500, 0.0000016255565900, - -0.0000021943625600, 0.0000032372518000, -0.0000057486437700, 0.0000295142943400, - 0.0000068385169700, -0.0000022513896200, 0.0000008909637200, -0.0000002350338500, - -0.0000001230956100, 0.0000003009550000, -0.0000002274839200, -0.0000001222885000}, - { -0.0000010688812000, 0.0000011843615700, -0.0000013010433300, 0.0000016132334200, - -0.0000021787511700, 0.0000032185366300, -0.0000057225248100, 0.0000295234898600, - 0.0000068091568200, -0.0000022457194700, 0.0000008903658200, -0.0000002359880400, - -0.0000001223949400, 0.0000003013484800, -0.0000002280163100, -0.0000001221768100}, - { -0.0000010616490000, 0.0000011757803200, -0.0000012915294700, 0.0000016012759800, - -0.0000021638667600, 0.0000031988588100, -0.0000056969680800, 0.0000295335292700, - 0.0000067795719500, -0.0000022406367600, 0.0000008900068000, -0.0000002371512600, - -0.0000001214114500, 0.0000003010061800, -0.0000002290053700, -0.0000001219729000}, - { -0.0000010551509800, 0.0000011680400300, -0.0000012815991100, 0.0000015891596000, - -0.0000021485136600, 0.0000031804218000, -0.0000056710441700, 0.0000295433201300, - 0.0000067505660900, -0.0000022347745200, 0.0000008890402300, -0.0000002371663200, - -0.0000001208867400, 0.0000003006011700, -0.0000002286436600, -0.0000001214616000}, - { -0.0000010484290500, 0.0000011600637200, -0.0000012712731400, 0.0000015760653300, - -0.0000021331865900, 0.0000031610777900, -0.0000056451724100, 0.0000295523834300, - 0.0000067206178800, -0.0000022295584100, 0.0000008886317900, -0.0000002383054500, - -0.0000001199058000, 0.0000003002379300, -0.0000002296230600, -0.0000001212436700}, - { -0.0000010418126800, 0.0000011517277400, -0.0000012619826700, 0.0000015643456400, - -0.0000021185866100, 0.0000031421091300, -0.0000056188447800, 0.0000295617466000, - 0.0000066918218000, -0.0000022237804200, 0.0000008878791700, -0.0000002390705100, - -0.0000001198036500, 0.0000002999278000, -0.0000002292788000, -0.0000001207424300}, - { -0.0000010353664500, 0.0000011440787900, -0.0000012520884000, 0.0000015521915600, - -0.0000021030519400, 0.0000031228731500, -0.0000055930893500, 0.0000295714067400, - 0.0000066622310400, -0.0000022183982500, 0.0000008871703300, -0.0000002394208300, - -0.0000001184119100, 0.0000002994763100, -0.0000002302348400, -0.0000001205321400}, - { -0.0000010290103500, 0.0000011365248300, -0.0000012423245400, 0.0000015401999100, - -0.0000020877200500, 0.0000031043216800, -0.0000055667568800, 0.0000295807177000, - 0.0000066328312100, -0.0000022131427200, 0.0000008866742900, -0.0000002404798200, - -0.0000001175466100, 0.0000002996071300, -0.0000002300011200, -0.0000001200034300}, - { -0.0000010212808300, 0.0000011286215600, -0.0000012331974000, 0.0000015285837100, - -0.0000020731638800, 0.0000030848876200, -0.0000055414282300, 0.0000295894792100, - 0.0000066040074000, -0.0000022070359700, 0.0000008854931500, -0.0000002403060700, - -0.0000001172180300, 0.0000002994947800, -0.0000002303988400, -0.0000001199255200}, - { -0.0000010148001100, 0.0000011208895700, -0.0000012231165800, 0.0000015157088900, - -0.0000020580030600, 0.0000030655950200, -0.0000055152663300, 0.0000295985303100, - 0.0000065747514100, -0.0000022018328800, 0.0000008851064800, -0.0000002415287100, - -0.0000001160745800, 0.0000002988510300, -0.0000002305832600, -0.0000001193029800}, - { -0.0000010085579200, 0.0000011134601100, -0.0000012134860100, 0.0000015038441400, - -0.0000020427698700, 0.0000030471019600, -0.0000054887446700, 0.0000296075847400, - 0.0000065452832100, -0.0000021962597300, 0.0000008842662600, -0.0000002421544800, - -0.0000001161750800, 0.0000002988338000, -0.0000002310334400, -0.0000001192214700}, - { -0.0000010020900500, 0.0000011052809300, -0.0000012042691300, 0.0000014920355400, - -0.0000020274570600, 0.0000030279417600, -0.0000054626925700, 0.0000296172290700, - 0.0000065163770900, -0.0000021908764800, 0.0000008835761000, -0.0000002425750100, - -0.0000001146354300, 0.0000002981060500, -0.0000002311933800, -0.0000001186088400}, - { -0.0000009959891000, 0.0000010980172100, -0.0000011948361700, 0.0000014804636400, - -0.0000020129945500, 0.0000030089125800, -0.0000054357841800, 0.0000296258886800, - 0.0000064870816200, -0.0000021853498100, 0.0000008828516100, -0.0000002434510900, - -0.0000001139351300, 0.0000002984984200, -0.0000002317376800, -0.0000001185031900}, - { -0.0000009898260300, 0.0000010906814900, -0.0000011851836600, 0.0000014680546000, - -0.0000019983871100, 0.0000029902690900, -0.0000054105959400, 0.0000296352017200, - 0.0000064574678500, -0.0000021802440100, 0.0000008820504400, -0.0000002435747100, - -0.0000001132168000, 0.0000002973757000, -0.0000002317979100, -0.0000001179124900}, - { -0.0000009829464000, 0.0000010824029000, -0.0000011759300000, 0.0000014562038800, - -0.0000019829369800, 0.0000029708485400, -0.0000053839700800, 0.0000296436562600, - 0.0000064282383100, -0.0000021746613300, 0.0000008813206900, -0.0000002444614700, - -0.0000001125189300, 0.0000002977740500, -0.0000002323403700, -0.0000001178072500}, - { -0.0000009762586000, 0.0000010757748000, -0.0000011668677900, 0.0000014449006700, - -0.0000019682702400, 0.0000029529044900, -0.0000053581877800, 0.0000296526171200, - 0.0000063990447900, -0.0000021679886200, 0.0000008799692100, -0.0000002450355900, - -0.0000001116909400, 0.0000002966009600, -0.0000002323961500, -0.0000001171914500}, - { -0.0000009702145300, 0.0000010685674300, -0.0000011573598100, 0.0000014326849900, - -0.0000019542481200, 0.0000029334344500, -0.0000053317589600, 0.0000296618745800, - 0.0000063695013000, -0.0000021628522100, 0.0000008793030100, -0.0000002459004700, - -0.0000001110081400, 0.0000002970330900, -0.0000002329660800, -0.0000001170874500}, - { -0.0000009639674100, 0.0000010606181300, -0.0000011483842100, 0.0000014211122400, - -0.0000019391070400, 0.0000029143138800, -0.0000053052763700, 0.0000296709109200, - 0.0000063405648500, -0.0000021569686100, 0.0000008780917600, -0.0000002456863700, - -0.0000001107234800, 0.0000002969450300, -0.0000002333956200, -0.0000001170125300}, - { -0.0000009581441000, 0.0000010536858700, -0.0000011393027300, 0.0000014097865300, - -0.0000019243677500, 0.0000028962045800, -0.0000052791038800, 0.0000296794244500, - 0.0000063110931400, -0.0000021511634200, 0.0000008780017100, -0.0000002469118700, - -0.0000001096137300, 0.0000002963079500, -0.0000002335754800, -0.0000001163895700}, - { -0.0000009515365500, 0.0000010456770600, -0.0000011303346500, 0.0000013982426200, - -0.0000019092348700, 0.0000028770277400, -0.0000052523860000, 0.0000296881395600, - 0.0000062822494300, -0.0000021452275300, 0.0000008767593500, -0.0000002466860000, - -0.0000001093302800, 0.0000002962141700, -0.0000002339996800, -0.0000001163170100}, - { -0.0000009457035400, 0.0000010387174600, -0.0000011211408300, 0.0000013863735500, - -0.0000018955461900, 0.0000028578727400, -0.0000052264429900, 0.0000296965665500, - 0.0000062526684700, -0.0000021390879000, 0.0000008758231200, -0.0000002482874600, - -0.0000001081090900, 0.0000002955577100, -0.0000002341776700, -0.0000001156792500}, - { -0.0000009400556800, 0.0000010319669900, -0.0000011122203700, 0.0000013752383900, - -0.0000018810443800, 0.0000028400005500, -0.0000052003778300, 0.0000297056151300, - 0.0000062236110400, -0.0000021336172300, 0.0000008746430300, -0.0000002480260300, - -0.0000001078834400, 0.0000002954987600, -0.0000002346166500, -0.0000001156099600}, - { -0.0000009332105500, 0.0000010246624400, -0.0000011036161100, 0.0000013639306600, - -0.0000018660250400, 0.0000028208189500, -0.0000051734216700, 0.0000297140614200, - 0.0000061941420000, -0.0000021276152500, 0.0000008744611200, -0.0000002492352100, - -0.0000001067597300, 0.0000002948573300, -0.0000002347967100, -0.0000001149887200}, - { -0.0000009272360200, 0.0000010174446400, -0.0000010935538100, 0.0000013522491900, - -0.0000018517173300, 0.0000028021068000, -0.0000051473353600, 0.0000297221172300, - 0.0000061647632000, -0.0000021220051600, 0.0000008732236600, -0.0000002489611700, - -0.0000001065202900, 0.0000002947918700, -0.0000002352278400, -0.0000001149066000}, - { -0.0000009213325600, 0.0000010098901500, -0.0000010850127500, 0.0000013411298100, - -0.0000018369198800, 0.0000027831555500, -0.0000051205897900, 0.0000297312718800, - 0.0000061355453400, -0.0000021156852500, 0.0000008721014300, -0.0000002503786900, - -0.0000001055769400, 0.0000002949420200, -0.0000002350196200, -0.0000001143817000}, - { -0.0000009154686400, 0.0000010032437200, -0.0000010762989400, 0.0000013303147900, - -0.0000018232338700, 0.0000027647756700, -0.0000050939241800, 0.0000297396279600, - 0.0000061067211800, -0.0000021101691400, 0.0000008709501200, -0.0000002502402100, - -0.0000001050877900, 0.0000002940699400, -0.0000002358437400, -0.0000001142165600}, - { -0.0000009098345900, 0.0000009964812300, -0.0000010672807300, 0.0000013184994200, - -0.0000018090535100, 0.0000027462057700, -0.0000050678910500, 0.0000297482132700, - 0.0000060775711600, -0.0000021036808600, 0.0000008695284800, -0.0000002507997500, - -0.0000001037794300, 0.0000002941289900, -0.0000002355925500, -0.0000001136940000}, - { -0.0000009040073800, 0.0000009890164700, -0.0000010588375400, 0.0000013074472100, - -0.0000017943142100, 0.0000027273058500, -0.0000050413365200, 0.0000297557115100, - 0.0000060482529200, -0.0000020973444000, 0.0000008689737800, -0.0000002515641700, - -0.0000001036539700, 0.0000002933528900, -0.0000002364533600, -0.0000001134965700}, - { -0.0000008978175500, 0.0000009829858100, -0.0000010503877000, 0.0000012966752800, - -0.0000017800540400, 0.0000027094554000, -0.0000050147624100, 0.0000297640606500, - 0.0000060185287000, -0.0000020914048900, 0.0000008683823800, -0.0000002517293800, - -0.0000001024611700, 0.0000002934410200, -0.0000002362132000, -0.0000001129829700}, - { -0.0000008920174300, 0.0000009755024700, -0.0000010418098600, 0.0000012849997300, - -0.0000017658755900, 0.0000026908098600, -0.0000049883464500, 0.0000297721129900, - 0.0000059897161500, -0.0000020855847900, 0.0000008665084700, -0.0000002525885700, - -0.0000001025446300, 0.0000002934650000, -0.0000002366817000, -0.0000001128974000}, - { -0.0000008866407500, 0.0000009690722000, -0.0000010331978800, 0.0000012740654600, - -0.0000017513336800, 0.0000026720176000, -0.0000049613614700, 0.0000297814833400, - 0.0000059603377300, -0.0000020796619900, 0.0000008659451000, -0.0000002528098100, - -0.0000001012468200, 0.0000002930143500, -0.0000002376553600, -0.0000001126794900}, - { -0.0000008809499600, 0.0000009626161500, -0.0000010246944100, 0.0000012634266200, - -0.0000017376589500, 0.0000026529402400, -0.0000049347375400, 0.0000297893741900, - 0.0000059312998000, -0.0000020728754500, 0.0000008642272200, -0.0000002530568000, - -0.0000001007501500, 0.0000002926808400, -0.0000002372946000, -0.0000001121930300}, - { -0.0000008753278600, 0.0000009553595700, -0.0000010164038100, 0.0000012520217600, - -0.0000017238147400, 0.0000026350960600, -0.0000049076921100, 0.0000297970747600, - 0.0000059018701600, -0.0000020669669800, 0.0000008638257800, -0.0000002540198000, - -0.0000000998529900, 0.0000002922998700, -0.0000002382694100, -0.0000001119665800}, - { -0.0000008700892600, 0.0000009490588100, -0.0000010079579700, 0.0000012413140100, - -0.0000017095016200, 0.0000026165585800, -0.0000048812541600, 0.0000298055673800, - 0.0000058732787100, -0.0000020602200500, 0.0000008620998100, -0.0000002542420300, - -0.0000000993979200, 0.0000002919927800, -0.0000002379174400, -0.0000001114931100}, - { -0.0000008636872000, 0.0000009421764400, -0.0000009992841500, 0.0000012312002500, - -0.0000016954362300, 0.0000025981636800, -0.0000048553232900, 0.0000298128451900, - 0.0000058438067100, -0.0000020540206700, 0.0000008612798400, -0.0000002542224400, - -0.0000000983932400, 0.0000002923485400, -0.0000002384780000, -0.0000001113605200}, - { -0.0000008584316600, 0.0000009358594600, -0.0000009907251900, 0.0000012198085900, - -0.0000016816027500, 0.0000025797833300, -0.0000048288066300, 0.0000298212478700, - 0.0000058145551600, -0.0000020476810000, 0.0000008597199400, -0.0000002545865100, - -0.0000000977036900, 0.0000002912420300, -0.0000002385153400, -0.0000001107825500}, - { -0.0000008530542400, 0.0000009288917500, -0.0000009827928200, 0.0000012092889000, - -0.0000016673561700, 0.0000025612282700, -0.0000048021033600, 0.0000298294423300, - 0.0000057854601300, -0.0000020415253900, 0.0000008590004000, -0.0000002551352000, - -0.0000000978876700, 0.0000002913287000, -0.0000002390253900, -0.0000001106899300}, - { -0.0000008478483800, 0.0000009226377800, -0.0000009743311000, 0.0000011980096900, - -0.0000016536709400, 0.0000025434302500, -0.0000047747110700, 0.0000298365825000, - 0.0000057560244000, -0.0000020351243300, 0.0000008574970900, -0.0000002557026600, - -0.0000000963826400, 0.0000002905602300, -0.0000002391414300, -0.0000001100755900}, - { -0.0000008424799700, 0.0000009165535000, -0.0000009662092200, 0.0000011877441200, - -0.0000016403414400, 0.0000025245702300, -0.0000047478375000, 0.0000298446320200, - 0.0000057267599400, -0.0000020285138500, 0.0000008556551400, -0.0000002557753000, - -0.0000000960917900, 0.0000002905172800, -0.0000002396213700, -0.0000001099661700}, - { -0.0000008372136900, 0.0000009097353100, -0.0000009584221800, 0.0000011773596800, - -0.0000016261962900, 0.0000025060099400, -0.0000047209041900, 0.0000298525257700, - 0.0000056970953100, -0.0000020227896300, 0.0000008551918400, -0.0000002566762900, - -0.0000000953100600, 0.0000002907384900, -0.0000002394239600, -0.0000001094674000}, - { -0.0000008313510700, 0.0000009040315200, -0.0000009502392800, 0.0000011662794000, - -0.0000016126306100, 0.0000024878475500, -0.0000046947568800, 0.0000298599300000, - 0.0000056680564700, -0.0000020162388700, 0.0000008534249200, -0.0000002568479900, - -0.0000000948207200, 0.0000002898882600, -0.0000002402600100, -0.0000001092599200}, - { -0.0000008261904500, 0.0000008972850800, -0.0000009425383800, 0.0000011560009200, - -0.0000015986171300, 0.0000024693755800, -0.0000046677919500, 0.0000298682066000, - 0.0000056395501800, -0.0000020100315900, 0.0000008526039100, -0.0000002568721700, - -0.0000000936969600, 0.0000002900157200, -0.0000002400214400, -0.0000001087840400}, - { -0.0000008211115400, 0.0000008911303700, -0.0000009336453400, 0.0000011454721200, - -0.0000015854163900, 0.0000024519846800, -0.0000046405144200, 0.0000298759763600, - 0.0000056094866900, -0.0000020029308800, 0.0000008512218400, -0.0000002571374100, - -0.0000000931811500, 0.0000002891576300, -0.0000002408972300, -0.0000001085440200}, - { -0.0000008160197200, 0.0000008844778800, -0.0000009260656400, 0.0000011353693700, - -0.0000015715846500, 0.0000024337335900, -0.0000046141044500, 0.0000298830136900, - 0.0000055805182500, -0.0000019961847400, 0.0000008492748700, -0.0000002571357000, - -0.0000000929480500, 0.0000002891307200, -0.0000002413690800, -0.0000001084311600}, - { -0.0000008112103700, 0.0000008787159000, -0.0000009181661000, 0.0000011251768000, - -0.0000015576602500, 0.0000024153171400, -0.0000045870162900, 0.0000298911585300, - 0.0000055512440700, -0.0000019901475900, 0.0000008478936300, -0.0000002583378800, - -0.0000000920943200, 0.0000002893394800, -0.0000002411773500, -0.0000001079321400}, - { -0.0000008048876900, 0.0000008722251100, -0.0000009104537200, 0.0000011142744200, - -0.0000015441580200, 0.0000023970548200, -0.0000045602981800, 0.0000298977325900, - 0.0000055225670900, -0.0000019836708300, 0.0000008468413700, -0.0000002580907300, - -0.0000000917271300, 0.0000002885109500, -0.0000002420012800, -0.0000001077376400}, - { -0.0000008001667100, 0.0000008665715200, -0.0000009027145700, 0.0000011042483200, - -0.0000015304227600, 0.0000023788158500, -0.0000045332341000, 0.0000299058734900, - 0.0000054929607400, -0.0000019764945900, 0.0000008453838100, -0.0000002582942100, - -0.0000000913301400, 0.0000002882721100, -0.0000002416975800, -0.0000001072495600}, - { -0.0000007952339000, 0.0000008600802500, -0.0000008952392000, 0.0000010937108800, - -0.0000015174084700, 0.0000023616380100, -0.0000045064497900, 0.0000299132742800, - 0.0000054637916200, -0.0000019701857900, 0.0000008436057700, -0.0000002584785900, - -0.0000000903092500, 0.0000002886222600, -0.0000002422944100, -0.0000001071045600}, - { -0.0000007904789100, 0.0000008543139300, -0.0000008868051200, 0.0000010841905100, - -0.0000015039485700, 0.0000023436300800, -0.0000044799707800, 0.0000299207159000, - 0.0000054344370000, -0.0000019630506300, 0.0000008421815400, -0.0000002587760600, - -0.0000000897083200, 0.0000002875630100, -0.0000002423263600, -0.0000001065244000}, - { -0.0000007858185900, 0.0000008487210700, -0.0000008790859100, 0.0000010741407000, - -0.0000014901532300, 0.0000023251997700, -0.0000044524238300, 0.0000299282071600, - 0.0000054053355000, -0.0000019568733800, 0.0000008411993400, -0.0000002586331800, - -0.0000000887586200, 0.0000002879382200, -0.0000002429340400, -0.0000001063908000}, - { -0.0000007801564500, 0.0000008427026200, -0.0000008718424600, 0.0000010638181300, - -0.0000014777689900, 0.0000023068158700, -0.0000044255915700, 0.0000299351847700, - 0.0000053763206500, -0.0000019505511500, 0.0000008395133400, -0.0000002594827000, - -0.0000000887696700, 0.0000002878112600, -0.0000002426308700, -0.0000001059278600}, - { -0.0000007752716200, 0.0000008371567300, -0.0000008642947600, 0.0000010540183700, - -0.0000014642563600, 0.0000022887494700, -0.0000043988296500, 0.0000299422575400, - 0.0000053470206400, -0.0000019432499100, 0.0000008379552700, -0.0000002596486400, - -0.0000000883216200, 0.0000002869839900, -0.0000002434904100, -0.0000001056944400}, - { -0.0000007704528800, 0.0000008307898100, -0.0000008569545100, 0.0000010435528000, - -0.0000014511589100, 0.0000022707641400, -0.0000043720040800, 0.0000299491463500, - 0.0000053178429700, -0.0000019359975400, 0.0000008364846400, -0.0000002599735200, - -0.0000000871418100, 0.0000002871064200, -0.0000002432661800, -0.0000001051839000}, - { -0.0000007660450500, 0.0000008255099600, -0.0000008496004600, 0.0000010339539800, - -0.0000014379049200, 0.0000022534686200, -0.0000043441724600, 0.0000299571471100, - 0.0000052882824900, -0.0000019298671600, 0.0000008346423900, -0.0000002600374000, - -0.0000000867444000, 0.0000002862933200, -0.0000002441463500, -0.0000001049660900}, - { -0.0000007603296800, 0.0000008193382200, -0.0000008416132400, 0.0000010239585900, - -0.0000014249993700, 0.0000022355720200, -0.0000043172229900, 0.0000299637947900, - 0.0000052591247500, -0.0000019224621200, 0.0000008329727400, -0.0000002600981100, - -0.0000000864181800, 0.0000002860802800, -0.0000002438248600, -0.0000001044875200}, - { -0.0000007559512700, 0.0000008140629300, -0.0000008342511600, 0.0000010143265600, - -0.0000014116237900, 0.0000022175330800, -0.0000042902559300, 0.0000299710502400, - 0.0000052305586800, -0.0000019159837900, 0.0000008310446500, -0.0000002602041500, - -0.0000000854285500, 0.0000002864501800, -0.0000002444344500, -0.0000001043455200}, - { -0.0000007513280300, 0.0000008079345200, -0.0000008271562400, 0.0000010041094600, - -0.0000013987692600, 0.0000021997806500, -0.0000042634176100, 0.0000299784559000, - 0.0000052010247800, -0.0000019090033000, 0.0000008295552500, -0.0000002604044700, - -0.0000000848986600, 0.0000002854305800, -0.0000002444743300, -0.0000001037730800}, - { -0.0000007466532300, 0.0000008026496300, -0.0000008198836000, 0.0000009945759200, - -0.0000013854742200, 0.0000021817938400, -0.0000042362922600, 0.0000299849767900, - 0.0000051710800600, -0.0000019017700500, 0.0000008278482500, -0.0000002603834000, - -0.0000000847135700, 0.0000002854590200, -0.0000002450114700, -0.0000001036184000}, - { -0.0000007421596100, 0.0000007966615900, -0.0000008130314500, 0.0000009852191300, - -0.0000013722881700, 0.0000021638799100, -0.0000042091828500, 0.0000299919862100, - 0.0000051423553400, -0.0000018942531200, 0.0000008260465800, -0.0000002603155800, - -0.0000000845516700, 0.0000002854963900, -0.0000002455432800, -0.0000001034829400}, - { -0.0000007368637400, 0.0000007915606500, -0.0000008049069000, 0.0000009753117800, - -0.0000013595099000, 0.0000021460165700, -0.0000041819414400, 0.0000299987943200, - 0.0000051132245200, -0.0000018881182900, 0.0000008242689200, -0.0000002605985800, - -0.0000000832295700, 0.0000002848095500, -0.0000002456559500, -0.0000001029015400}, - { -0.0000007324914900, 0.0000007857386900, -0.0000007982526900, 0.0000009661947700, - -0.0000013466505100, 0.0000021290236500, -0.0000041544493000, 0.0000300056546100, - 0.0000050837682400, -0.0000018808660100, 0.0000008224995500, -0.0000002605154700, - -0.0000000830876200, 0.0000002848515400, -0.0000002462055200, -0.0000001027526900}, - { -0.0000007282763500, 0.0000007806632000, -0.0000007910621800, 0.0000009561255200, - -0.0000013339966800, 0.0000021114682600, -0.0000041280619200, 0.0000300121126000, - 0.0000050544717400, -0.0000018736947600, 0.0000008207999600, -0.0000002605038900, - -0.0000000828329300, 0.0000002846963800, -0.0000002458999000, -0.0000001022805800}, - { -0.0000007239595400, 0.0000007748911800, -0.0000007844275500, 0.0000009469910200, - -0.0000013210161600, 0.0000020936736300, -0.0000041008289300, 0.0000300195390400, - 0.0000050254997100, -0.0000018666130300, 0.0000008192356500, -0.0000002607611600, - -0.0000000816356100, 0.0000002842431500, -0.0000002468794900, -0.0000001020138600}, - { -0.0000007189132600, 0.0000007701593500, -0.0000007773543100, 0.0000009369503200, - -0.0000013083002200, 0.0000020758957600, -0.0000040734108300, 0.0000300260370700, - 0.0000049961784800, -0.0000018593391800, 0.0000008174805900, -0.0000002607328400, - -0.0000000813752200, 0.0000002840812400, -0.0000002465827800, -0.0000001015410900}, - { -0.0000007142203300, 0.0000007641451600, -0.0000007699103200, 0.0000009282076700, - -0.0000012954925100, 0.0000020581902400, -0.0000040460854200, 0.0000300332528600, - 0.0000049672014200, -0.0000018520619000, 0.0000008156499100, -0.0000002606187400, - -0.0000000812553500, 0.0000002841559200, -0.0000002471464900, -0.0000001013982200}, - { -0.0000007101149600, 0.0000007591957300, -0.0000007628580400, 0.0000009182604800, - -0.0000012829151000, 0.0000020406004000, -0.0000040192877300, 0.0000300391149900, - 0.0000049381202700, -0.0000018448182600, 0.0000008139326600, -0.0000002606745200, - -0.0000000808105100, 0.0000002831584800, -0.0000002471553400, -0.0000001008355200}, - { -0.0000007059152000, 0.0000007535511600, -0.0000007563628700, 0.0000009092708900, - -0.0000012700466400, 0.0000020228151600, -0.0000039917450300, 0.0000300460428800, - 0.0000049092597200, -0.0000018375427900, 0.0000008121814200, -0.0000002607487200, - -0.0000000798497500, 0.0000002835512200, -0.0000002478145100, -0.0000001006580300}, - { -0.0000007009147900, 0.0000007482806700, -0.0000007499733800, 0.0000008997547100, - -0.0000012579180400, 0.0000020062891600, -0.0000039647806700, 0.0000300525821900, - 0.0000048797495500, -0.0000018306252700, 0.0000008105184800, -0.0000002607855100, - -0.0000000794439900, 0.0000002825789700, -0.0000002478474500, -0.0000001000945500}, - { -0.0000006968240600, 0.0000007433072000, -0.0000007423567800, 0.0000008910574100, - -0.0000012451522700, 0.0000019885022200, -0.0000039369675200, 0.0000300585104500, - 0.0000048504934800, -0.0000018229228000, 0.0000008077029200, -0.0000002609247300, - -0.0000000792419400, 0.0000002826100200, -0.0000002484009500, -0.0000000999231800}, - { -0.0000006926866100, 0.0000007377316500, -0.0000007358544200, 0.0000008814417700, - -0.0000012328366300, 0.0000019710850400, -0.0000039101469100, 0.0000300648793200, - 0.0000048210544400, -0.0000018159587600, 0.0000008060409500, -0.0000002610430800, - -0.0000000781936000, 0.0000002828146400, -0.0000002482150700, -0.0000000994223400}, - { -0.0000006888043700, 0.0000007330615400, -0.0000007291803100, 0.0000008724921800, - -0.0000012200346800, 0.0000019533132300, -0.0000038822537300, 0.0000300712721600, - 0.0000047923413800, -0.0000018085444700, 0.0000008041528500, -0.0000002609670800, - -0.0000000778976000, 0.0000002820404900, -0.0000002490903500, -0.0000000991790800}, - { -0.0000006839293900, 0.0000007279247200, -0.0000007229475600, 0.0000008630964100, - -0.0000012079179200, 0.0000019361129300, -0.0000038555831700, 0.0000300783801700, - 0.0000047630120500, -0.0000018006655200, 0.0000008026572200, -0.0000002609399200, - -0.0000000777006200, 0.0000002819585000, -0.0000002488366700, -0.0000000987006200}, - { -0.0000006798540800, 0.0000007233149500, -0.0000007164042200, 0.0000008543197100, - -0.0000011953311100, 0.0000019186232700, -0.0000038285177900, 0.0000300844278100, - 0.0000047335766700, -0.0000017934700400, 0.0000008007388400, -0.0000002607418500, - -0.0000000776398500, 0.0000002820679000, -0.0000002494154700, -0.0000000985371100}, - { -0.0000006756891400, 0.0000007176317300, -0.0000007091540900, 0.0000008451307000, - -0.0000011831617600, 0.0000019011206000, -0.0000038005599900, 0.0000300906624700, - 0.0000047040567000, -0.0000017860728900, 0.0000007980042300, -0.0000002609428000, - -0.0000000772729700, 0.0000002812783500, -0.0000002503047600, -0.0000000982640700}, - { -0.0000006720561000, 0.0000007132703000, -0.0000007028371700, 0.0000008366076000, - -0.0000011709400800, 0.0000018846008900, -0.0000037732212300, 0.0000300971836600, - 0.0000046750583700, -0.0000017789132800, 0.0000007960205400, -0.0000002601193300, - -0.0000000759764200, 0.0000002814043200, -0.0000002500954000, -0.0000000977775800}, - { -0.0000006672404900, 0.0000007082025300, -0.0000006966950500, 0.0000008272917200, - -0.0000011588469400, 0.0000018672889900, -0.0000037460064500, 0.0000301029284000, - 0.0000046455528400, -0.0000017707594600, 0.0000007943302900, -0.0000002599558300, - -0.0000000759066900, 0.0000002815167300, -0.0000002506921900, -0.0000000975884100}, - { -0.0000006636191300, 0.0000007038598500, -0.0000006903834600, 0.0000008187619300, - -0.0000011464768800, 0.0000018499388000, -0.0000037187988000, 0.0000301092874000, - 0.0000046165570800, -0.0000017634207100, 0.0000007916113200, -0.0000002601855100, - -0.0000000754783900, 0.0000002805563000, -0.0000002507180900, -0.0000000970271500}, - { -0.0000006596465200, 0.0000006983825400, -0.0000006833460100, 0.0000008097770300, - -0.0000011345476800, 0.0000018327200500, -0.0000036915500100, 0.0000301155082000, - 0.0000045876647100, -0.0000017561716500, 0.0000007895994400, -0.0000002599054600, - -0.0000000754654000, 0.0000002806943500, -0.0000002513137500, -0.0000000968652300}, - { -0.0000006560412300, 0.0000006940658100, -0.0000006770837100, 0.0000008012401600, - -0.0000011221145500, 0.0000018151488300, -0.0000036633262700, 0.0000301219274700, - 0.0000045585787000, -0.0000017480905500, 0.0000007880162200, -0.0000002600023100, - -0.0000000744270100, 0.0000002809097600, -0.0000002511606900, -0.0000000963551800}, - { -0.0000006513718100, 0.0000006891483500, -0.0000006710841700, 0.0000007921089700, - -0.0000011101909300, 0.0000017979361500, -0.0000036359405400, 0.0000301279455500, - 0.0000045296336600, -0.0000017405665400, 0.0000007850982300, -0.0000002599865500, - -0.0000000743330300, 0.0000002810197300, -0.0000002517572500, -0.0000000961768900}, - { -0.0000006474304300, 0.0000006840684600, -0.0000006652924700, 0.0000007839125400, - -0.0000010981524900, 0.0000017809064300, -0.0000036093943200, 0.0000301337182700, - 0.0000044998869000, -0.0000017326384300, 0.0000007833242200, -0.0000002591035300, - -0.0000000737232300, 0.0000002800277200, -0.0000002517691400, -0.0000000956035500}, - { -0.0000006438009700, 0.0000006796203400, -0.0000006581589800, 0.0000007750585800, - -0.0000010864711900, 0.0000017645387000, -0.0000035815202400, 0.0000301393202700, - 0.0000044711874800, -0.0000017252787500, 0.0000007812074200, -0.0000002587518900, - -0.0000000737454900, 0.0000002801635500, -0.0000002523680400, -0.0000000954362300}, - { -0.0000006401639200, 0.0000006746574400, -0.0000006524338300, 0.0000007669196200, - -0.0000010743983400, 0.0000017473398600, -0.0000035540053600, 0.0000301451854500, - 0.0000044413545900, -0.0000017171090300, 0.0000007786312500, -0.0000002588925400, - -0.0000000735266600, 0.0000002800927700, -0.0000002521316700, -0.0000000949359500}, - { -0.0000006357778700, 0.0000006707002900, -0.0000006462535400, 0.0000007577627400, - -0.0000010624650100, 0.0000017300143900, -0.0000035261474700, 0.0000301505220000, - 0.0000044127692000, -0.0000017097850700, 0.0000007766585900, -0.0000002588324800, - -0.0000000724851500, 0.0000002796544700, -0.0000002531073000, -0.0000000946421000}, - { -0.0000006322346100, 0.0000006658344700, -0.0000006406316800, 0.0000007497394200, - -0.0000010505114500, 0.0000017129209400, -0.0000034986501900, 0.0000301569791200, - 0.0000043833061900, -0.0000017016393700, 0.0000007740582000, -0.0000002589426200, - -0.0000000722919300, 0.0000002796070900, -0.0000002528823500, -0.0000000941518100}, - { -0.0000006287412000, 0.0000006615790600, -0.0000006337047100, 0.0000007410503600, - -0.0000010389329800, 0.0000016959520500, -0.0000034711193400, 0.0000301633352100, - 0.0000043538995400, -0.0000016935463200, 0.0000007720653400, -0.0000002578087200, - -0.0000000720236600, 0.0000002796975700, -0.0000002534998100, -0.0000000939577700}, - { -0.0000006252289300, 0.0000006567502700, -0.0000006281032900, 0.0000007330632700, - -0.0000010270201400, 0.0000016788863600, -0.0000034440183200, 0.0000301682214200, - 0.0000043245651300, -0.0000016861993700, 0.0000007691723300, -0.0000002578831000, - -0.0000000716968300, 0.0000002787827800, -0.0000002535183000, -0.0000000933911800}, - { -0.0000006205898400, 0.0000006520927200, -0.0000006224969100, 0.0000007243536900, - -0.0000010155742500, 0.0000016627163700, -0.0000034159645200, 0.0000301741305700, - 0.0000042953309700, -0.0000016781259600, 0.0000007673144100, -0.0000002575750000, - -0.0000000717300000, 0.0000002789556600, -0.0000002541677100, -0.0000000931902700}, - { -0.0000006172693900, 0.0000006480627500, -0.0000006158957400, 0.0000007167086900, - -0.0000010038799500, 0.0000016458330300, -0.0000033890060300, 0.0000301797671500, - 0.0000042661393000, -0.0000016699057600, 0.0000007646012100, -0.0000002576064600, - -0.0000000715860200, 0.0000002789348200, -0.0000002539353500, -0.0000000927029000}, - { -0.0000006137812800, 0.0000006432255400, -0.0000006101996500, 0.0000007079130900, - -0.0000009922951400, 0.0000016287909800, -0.0000033610088700, 0.0000301854227800, - 0.0000042371265900, -0.0000016625851600, 0.0000007623115300, -0.0000002564257200, - -0.0000000711981100, 0.0000002781648600, -0.0000002548160800, -0.0000000924334400}, - { -0.0000006096934600, 0.0000006396695800, -0.0000006045818500, 0.0000007000329800, - -0.0000009804671800, 0.0000016116562300, -0.0000033329631800, 0.0000301910604800, - 0.0000042079113900, -0.0000016542771000, 0.0000007595979900, -0.0000002565562900, - -0.0000000702731900, 0.0000002785897700, -0.0000002555562000, -0.0000000921807000}, - { -0.0000006062933900, 0.0000006349328800, -0.0000005990311300, 0.0000006913942100, - -0.0000009690267000, 0.0000015948108300, -0.0000033057262400, 0.0000301962237800, - 0.0000041789551900, -0.0000016461435000, 0.0000007576990700, -0.0000002562617900, - -0.0000000702405400, 0.0000002786094000, -0.0000002553292100, -0.0000000917048000}, - { -0.0000006030707600, 0.0000006310258300, -0.0000005925655500, 0.0000006838885700, - -0.0000009574791300, 0.0000015779698800, -0.0000032784352400, 0.0000302013593200, - 0.0000041498813500, -0.0000016377089100, 0.0000007547123000, -0.0000002553821800, - -0.0000000697783700, 0.0000002778180000, -0.0000002562081100, -0.0000000914005100}, - { -0.0000005997784800, 0.0000006264360200, -0.0000005871819500, 0.0000006754676200, - -0.0000009463128500, 0.0000015620155600, -0.0000032502060800, 0.0000302075447000, - 0.0000041202514700, -0.0000016296539100, 0.0000007519854200, -0.0000002553495700, - -0.0000000696753300, 0.0000002778219800, -0.0000002560158500, -0.0000000909073800}, - { -0.0000005953802600, 0.0000006220559900, -0.0000005819558300, 0.0000006678209600, - -0.0000009346907400, 0.0000015450858700, -0.0000032226770800, 0.0000302123085100, - 0.0000040913759200, -0.0000016213682700, 0.0000007499502500, -0.0000002549585000, - -0.0000000697575600, 0.0000002780297700, -0.0000002566684400, -0.0000000906938700}, - { -0.0000005922781400, 0.0000006183472900, -0.0000005762778500, 0.0000006591765300, - -0.0000009226118300, 0.0000015287200700, -0.0000031955488100, 0.0000302181358200, - 0.0000040618118300, -0.0000016132038300, 0.0000007470292100, -0.0000002540354300, - -0.0000000694252800, 0.0000002779793900, -0.0000002564399000, -0.0000000902066000}, - { -0.0000005890136500, 0.0000006137124600, -0.0000005702277700, 0.0000006519185100, - -0.0000009112249200, 0.0000015119563200, -0.0000031680564700, 0.0000302235443400, - 0.0000040332527300, -0.0000016048205900, 0.0000007441443200, -0.0000002539675700, - -0.0000000692720800, 0.0000002772999400, -0.0000002573622600, -0.0000000899005400}, - { -0.0000005850311400, 0.0000006102867800, -0.0000005646959300, 0.0000006433987600, - -0.0000008998513600, 0.0000014949546000, -0.0000031394934700, 0.0000302282936600, - 0.0000040036207000, -0.0000015967839100, 0.0000007422582300, -0.0000002538011700, - -0.0000000683794500, 0.0000002775953500, -0.0000002572520300, -0.0000000893764400}, - { -0.0000005818964100, 0.0000006058727200, -0.0000005595185800, 0.0000006352081900, - -0.0000008889397700, 0.0000014792369000, -0.0000031117719900, 0.0000302336098600, - 0.0000039742056100, -0.0000015884752000, 0.0000007391840300, -0.0000002527331400, - -0.0000000681709200, 0.0000002777178000, -0.0000002579042300, -0.0000000891447000}, - { -0.0000005787145500, 0.0000006013604000, -0.0000005535923100, 0.0000006280742400, - -0.0000008776679900, 0.0000014625338400, -0.0000030841085500, 0.0000302387399600, - 0.0000039449376300, -0.0000015802899000, 0.0000007363441100, -0.0000002527024400, - -0.0000000679473400, 0.0000002768808300, -0.0000002579613300, -0.0000000885670100}, - { -0.0000005757587300, 0.0000005978394700, -0.0000005481519600, 0.0000006197183700, - -0.0000008665183400, 0.0000014458560600, -0.0000030564097400, 0.0000302437909100, - 0.0000039157112000, -0.0000015721824200, 0.0000007342861000, -0.0000002522537800, - -0.0000000680774600, 0.0000002771330800, -0.0000002586549000, -0.0000000883371200}, - { -0.0000005718682200, 0.0000005938417900, -0.0000005432964900, 0.0000006124864000, - -0.0000008553225900, 0.0000014292583100, -0.0000030288050400, 0.0000302496054000, - 0.0000038866667200, -0.0000015638780000, 0.0000007312074800, -0.0000002512230800, - -0.0000000678044400, 0.0000002771222400, -0.0000002584426900, -0.0000000878577700}, - { -0.0000005689051600, 0.0000005902462900, -0.0000005370854200, 0.0000006045352000, - -0.0000008444322900, 0.0000014128120100, -0.0000030018298000, 0.0000302541430200, - 0.0000038575785600, -0.0000015556232000, 0.0000007282648600, -0.0000002510659300, - -0.0000000677160100, 0.0000002764759200, -0.0000002593729700, -0.0000000875301600}, - { -0.0000005657037700, 0.0000005859684300, -0.0000005321845400, 0.0000005973581100, - -0.0000008333790400, 0.0000013970133000, -0.0000029736435400, 0.0000302587106700, - 0.0000038284268000, -0.0000015471874400, 0.0000007250951700, -0.0000002499759200, - -0.0000000674653700, 0.0000002764455200, -0.0000002591465700, -0.0000000870433100}, - { -0.0000005618333200, 0.0000005819685000, -0.0000005272906200, 0.0000005893724000, - -0.0000008225058800, 0.0000013805185000, -0.0000029458517200, 0.0000302642069200, - 0.0000037993797900, -0.0000015379756300, 0.0000007223193600, -0.0000002497981300, - -0.0000000675186800, 0.0000002766900000, -0.0000002598670200, -0.0000000867828800}, - { -0.0000005590368200, 0.0000005786648100, -0.0000005221758100, 0.0000005820627000, - -0.0000008112433600, 0.0000013637747600, -0.0000029176984600, 0.0000302685277400, - 0.0000037704094600, -0.0000015297293000, 0.0000007201598200, -0.0000002493386100, - -0.0000000675974400, 0.0000002767923100, -0.0000002596834100, -0.0000000863002200}, - { -0.0000005560237100, 0.0000005743450200, -0.0000005163726600, 0.0000005743489200, - -0.0000008005370600, 0.0000013473662100, -0.0000028897800000, 0.0000302738295200, - 0.0000037407381800, -0.0000015215522800, 0.0000007170544900, -0.0000002482718300, - -0.0000000672918600, 0.0000002760875300, -0.0000002606209100, -0.0000000859635800}, - { -0.0000005523266400, 0.0000005705570200, -0.0000005118090200, 0.0000005674706600, - -0.0000007897426600, 0.0000013318487200, -0.0000028623546600, 0.0000302785848400, - 0.0000037119392900, -0.0000015122696500, 0.0000007141770500, -0.0000002480246400, - -0.0000000673963700, 0.0000002763436900, -0.0000002613369900, -0.0000000856978400}, - { -0.0000005495962500, 0.0000005673345500, -0.0000005067111000, 0.0000005594863000, - -0.0000007789506200, 0.0000013153651000, -0.0000028342627700, 0.0000302836038100, - 0.0000036823681900, -0.0000015040742100, 0.0000007110968900, -0.0000002470535200, - -0.0000000662984200, 0.0000002766079600, -0.0000002612329100, -0.0000000851700900}, - { -0.0000005466715000, 0.0000005630853800, -0.0000005009907900, 0.0000005518700600, - -0.0000007683264800, 0.0000012990451100, -0.0000028068772200, 0.0000302880652200, - 0.0000036538564300, -0.0000014956855300, 0.0000007079958900, -0.0000002467783200, - -0.0000000662808200, 0.0000002759921300, -0.0000002621758400, -0.0000000848374500}, - { -0.0000005431440200, 0.0000005602376800, -0.0000004962376800, 0.0000005449141300, - -0.0000007574066800, 0.0000012825587300, -0.0000027786579600, 0.0000302928958400, - 0.0000036241695300, -0.0000014864692500, 0.0000007050007700, -0.0000002456982100, - -0.0000000660605900, 0.0000002760230300, -0.0000002620023800, -0.0000000843220100}, - { -0.0000005403790100, 0.0000005562631500, -0.0000004915494200, 0.0000005372340600, - -0.0000007469387600, 0.0000012671612300, -0.0000027509888900, 0.0000302972042600, - 0.0000035948446100, -0.0000014782113000, 0.0000007018769500, -0.0000002453253700, - -0.0000000662228600, 0.0000002763058500, -0.0000002627331400, -0.0000000840529300}, - { -0.0000005375829600, 0.0000005521878400, -0.0000004861076400, 0.0000005306264800, - -0.0000007362011400, 0.0000012507686500, -0.0000027226932800, 0.0000303024793500, - 0.0000035664170800, -0.0000014687960800, 0.0000006987700700, -0.0000002441798600, - -0.0000000660398000, 0.0000002763550700, -0.0000002625576200, -0.0000000835595400}, - { -0.0000005338761500, 0.0000005492759000, -0.0000004812448700, 0.0000005228310500, - -0.0000007255591100, 0.0000012344296500, -0.0000026950110700, 0.0000303065098100, - 0.0000035372382500, -0.0000014606652200, 0.0000006965471700, -0.0000002436456100, - -0.0000000661304500, 0.0000002757890500, -0.0000002635253900, -0.0000000832149000}, - { -0.0000005312372600, 0.0000005454664900, -0.0000004768172600, 0.0000005161314600, - -0.0000007148973700, 0.0000012182095400, -0.0000026675115000, 0.0000303114481500, - 0.0000035080728500, -0.0000014514347800, 0.0000006934810400, -0.0000002424890300, - -0.0000000659803100, 0.0000002758707300, -0.0000002633626200, -0.0000000827077700}, - { -0.0000005284879700, 0.0000005414457900, -0.0000004713545300, 0.0000005088017800, - -0.0000007046166400, 0.0000012028731400, -0.0000026395378600, 0.0000303152032300, - 0.0000034789552300, -0.0000014430720500, 0.0000006902452300, -0.0000002420492700, - -0.0000000661736600, 0.0000002761659300, -0.0000002641015800, -0.0000000824295400}, - { -0.0000005260165300, 0.0000005385875600, -0.0000004667616900, 0.0000005020650000, - -0.0000006939263300, 0.0000011865377600, -0.0000026110236100, 0.0000303202188800, - 0.0000034489243800, -0.0000014340074900, 0.0000006872439200, -0.0000002409717000, - -0.0000000658712000, 0.0000002753575300, -0.0000002641882000, -0.0000000818255300}, - { -0.0000005224926800, 0.0000005349893100, -0.0000004623184600, 0.0000004945699400, - -0.0000006835218200, 0.0000011703557800, -0.0000025832407000, 0.0000303246711500, - 0.0000034200612800, -0.0000014256420100, 0.0000006840045300, -0.0000002405245800, - -0.0000000660759200, 0.0000002756849600, -0.0000002649463500, -0.0000000815493900}, - { -0.0000005200360700, 0.0000005320551900, -0.0000004569322900, 0.0000004882070200, - -0.0000006731633300, 0.0000011550770700, -0.0000025552150000, 0.0000303289891500, - 0.0000033911264900, -0.0000014163218900, 0.0000006808149800, -0.0000002392746100, - -0.0000000659822800, 0.0000002757788100, -0.0000002647879500, -0.0000000810410400}, - { -0.0000005174599300, 0.0000005283024100, -0.0000004525112200, 0.0000004808058900, - -0.0000006628580100, 0.0000011389660100, -0.0000025273538400, 0.0000303332931800, - 0.0000033621534300, -0.0000014068603800, 0.0000006768397200, -0.0000002390857100, - -0.0000000660917000, 0.0000002760752200, -0.0000002655561700, -0.0000000807307300}, - { -0.0000005138134800, 0.0000005247478500, -0.0000004481928500, 0.0000004734510300, - -0.0000006526058700, 0.0000011228843600, -0.0000024994140700, 0.0000303374972100, - 0.0000033324125700, -0.0000013977140000, 0.0000006737428400, -0.0000002379104500, - -0.0000000658573800, 0.0000002752971400, -0.0000002656330700, -0.0000000801279400}, - { -0.0000005114783000, 0.0000005220209500, -0.0000004437547500, 0.0000004669293700, - -0.0000006421881700, 0.0000011075401800, -0.0000024710885300, 0.0000303413510200, - 0.0000033037596300, -0.0000013892349300, 0.0000006703786000, -0.0000002373851700, - -0.0000000661054500, 0.0000002756297000, -0.0000002663989900, -0.0000000798421400}, - { -0.0000005089678500, 0.0000005182927100, -0.0000004386048500, 0.0000004598983100, - -0.0000006321772900, 0.0000010917290800, -0.0000024440923300, 0.0000303460194300, - 0.0000032743987500, -0.0000013801224500, 0.0000006672169900, -0.0000002360988600, - -0.0000000660639200, 0.0000002757935000, -0.0000002662733600, -0.0000000793256200}, - { -0.0000005056179700, 0.0000005149409700, -0.0000004345436200, 0.0000004535552600, - -0.0000006218141400, 0.0000010756094800, -0.0000024159306200, 0.0000303498774900, - 0.0000032447376800, -0.0000013708092900, 0.0000006639524200, -0.0000002347647400, - -0.0000000660699900, 0.0000002760669100, -0.0000002670435300, -0.0000000790060900}, - { -0.0000005033354700, 0.0000005122582000, -0.0000004301162100, 0.0000004462875900, - -0.0000006117430000, 0.0000010604498100, -0.0000023875417200, 0.0000303542329100, - 0.0000032163622800, -0.0000013614934700, 0.0000006608303400, -0.0000002343698500, - -0.0000000661193300, 0.0000002753849700, -0.0000002671460600, -0.0000000784186200}, - { -0.0000005008967600, 0.0000005086442900, -0.0000004251580600, 0.0000004402065400, - -0.0000006015436800, 0.0000010444472000, -0.0000023593760200, 0.0000303587200300, - 0.0000031870307600, -0.0000013522135600, 0.0000006575368200, -0.0000002330048900, - -0.0000000661553700, 0.0000002756838700, -0.0000002679339200, -0.0000000781019600}, - { -0.0000004976115300, 0.0000005053314100, -0.0000004210712400, 0.0000004331218000, - -0.0000005916048600, 0.0000010294044300, -0.0000023316437000, 0.0000303617696900, - 0.0000031578389200, -0.0000013438640200, 0.0000006541662700, -0.0000002324484400, - -0.0000000663934100, 0.0000002759243400, -0.0000002678215700, -0.0000000775874300}, - { -0.0000004954054600, 0.0000005027973800, -0.0000004168660700, 0.0000004268203300, - -0.0000005813434400, 0.0000010133649800, -0.0000023032853100, 0.0000303659766600, - 0.0000031285977700, -0.0000013345456800, 0.0000006508681700, -0.0000002311137900, - -0.0000000663161200, 0.0000002753279200, -0.0000002688143900, -0.0000000771897700}, - { -0.0000004928421800, 0.0000004991603200, -0.0000004118619000, 0.0000004199827500, - -0.0000005715080300, 0.0000009976047300, -0.0000022758266200, 0.0000303698508100, - 0.0000030994692400, -0.0000013251271900, 0.0000006466426100, -0.0000002299129500, - -0.0000000662665200, 0.0000002754921900, -0.0000002686928900, -0.0000000766591100}, - { -0.0000004896598000, 0.0000004959857600, -0.0000004080198200, 0.0000004139136400, - -0.0000005614528900, 0.0000009824735600, -0.0000022471040100, 0.0000303736794400, - 0.0000030703785700, -0.0000013157852400, 0.0000006433708500, -0.0000002293624700, - -0.0000000665508700, 0.0000002758724400, -0.0000002695207900, -0.0000000763249100}, - { -0.0000004875341600, 0.0000004935181400, -0.0000004038259800, 0.0000004068687500, - -0.0000005515687900, 0.0000009667243000, -0.0000022195988700, 0.0000303781885400, - 0.0000030415689700, -0.0000013065059600, 0.0000006400355600, -0.0000002279366500, - -0.0000000666054000, 0.0000002760975500, -0.0000002694258700, -0.0000000758084800}, - { -0.0000004852436300, 0.0000004901022400, -0.0000003990905800, 0.0000004010497500, - -0.0000005416881700, 0.0000009517056100, -0.0000021907914800, 0.0000303818672700, - 0.0000030116858700, -0.0000012972784600, 0.0000006366843000, -0.0000002265346200, - -0.0000000665839200, 0.0000002755157700, -0.0000002704376900, -0.0000000753869400}, - { -0.0000004820883700, 0.0000004869373400, -0.0000003952016200, 0.0000003941798300, - -0.0000005318693300, 0.0000009359170900, -0.0000021629843300, 0.0000303851724000, - 0.0000029827673100, -0.0000012877926700, 0.0000006324791000, -0.0000002261575500, - -0.0000000667691900, 0.0000002757747500, -0.0000002703558700, -0.0000000748453500}, - { -0.0000004800157600, 0.0000004845423900, -0.0000003911010800, 0.0000003872318000, - -0.0000005220680700, 0.0000009201932100, -0.0000021352478200, 0.0000303893044500, - 0.0000029540755700, -0.0000012784037700, 0.0000006290380500, -0.0000002246404800, - -0.0000000669147800, 0.0000002761387900, -0.0000002711729700, -0.0000000745150400}, - { -0.0000004769350200, 0.0000004814396600, -0.0000003865951000, 0.0000003816203000, - -0.0000005123937600, 0.0000009054063500, -0.0000021072898700, 0.0000303933574300, - 0.0000029244511900, -0.0000012682582100, 0.0000006257946300, -0.0000002231939800, - -0.0000000670457700, 0.0000002764997300, -0.0000002720193100, -0.0000000741467200}, - { -0.0000004747416400, 0.0000004781502000, -0.0000003827110500, 0.0000003747768000, - -0.0000005026132300, 0.0000008896179300, -0.0000020792099600, 0.0000303962072700, - 0.0000028957720600, -0.0000012588365800, 0.0000006224450200, -0.0000002226292500, - -0.0000000672109200, 0.0000002758959300, -0.0000002721352900, -0.0000000735386100}, - { -0.0000004727789800, 0.0000004759315900, -0.0000003788813700, 0.0000003689348800, - -0.0000004928785800, 0.0000008748066500, -0.0000020511012600, 0.0000304000013700, - 0.0000028662906200, -0.0000012494169800, 0.0000006180633900, -0.0000002212588700, - -0.0000000673225600, 0.0000002762428000, -0.0000002729709100, -0.0000000731741100}, - { -0.0000004696972400, 0.0000004728140600, -0.0000003742729000, 0.0000003624215600, - -0.0000004833255700, 0.0000008591834800, -0.0000020230886000, 0.0000304036328200, - 0.0000028369440400, -0.0000012401276400, 0.0000006146021300, -0.0000002197280000, - -0.0000000674502100, 0.0000002765145400, -0.0000002729093500, -0.0000000726338700}, - { -0.0000004676431900, 0.0000004696952300, -0.0000003706438500, 0.0000003566616300, - -0.0000004736314300, 0.0000008443532900, -0.0000019947475400, 0.0000304069875300, - 0.0000028085420100, -0.0000012305860200, 0.0000006110074200, -0.0000002181080700, - -0.0000000676615300, 0.0000002768917300, -0.0000002737400900, -0.0000000722876700}, - { -0.0000004656297500, 0.0000004673640000, -0.0000003658751600, 0.0000003501561200, - -0.0000004641076300, 0.0000008287779500, -0.0000019666250900, 0.0000304104283300, - 0.0000027791528800, -0.0000012202678300, 0.0000006068547500, -0.0000002176335900, - -0.0000000686846600, 0.0000002761221600, -0.0000002738242600, -0.0000000716707400}, - { -0.0000004627325000, 0.0000004645205500, -0.0000003624168800, 0.0000003445318600, - -0.0000004545293600, 0.0000008140437800, -0.0000019382840700, 0.0000304145203000, - 0.0000027501099300, -0.0000012109150300, 0.0000006033055000, -0.0000002160148400, - -0.0000000689188800, 0.0000002765358600, -0.0000002746934500, -0.0000000713093800}, - { -0.0000004606892100, 0.0000004614320900, -0.0000003587618200, 0.0000003379587100, - -0.0000004450296100, 0.0000007984496700, -0.0000019099860600, 0.0000304176499000, - 0.0000027209072700, -0.0000012013907400, 0.0000005988351400, -0.0000002145830400, - -0.0000000690246800, 0.0000002768039100, -0.0000002746360600, -0.0000000707548200}, - { -0.0000004586402700, 0.0000004592039500, -0.0000003542025400, 0.0000003325426100, - -0.0000004364128800, 0.0000007835360000, -0.0000018813366000, 0.0000304205403100, - 0.0000026918136600, -0.0000011919323000, 0.0000005951839900, -0.0000002129046300, - -0.0000000692658900, 0.0000002772071700, -0.0000002754968200, -0.0000000703804500}, - { -0.0000004557731900, 0.0000004563753700, -0.0000003507314200, 0.0000003260984500, - -0.0000004270140400, 0.0000007680828300, -0.0000018538518600, 0.0000304240989200, - 0.0000026629304300, -0.0000011817129000, 0.0000005919133800, -0.0000002122896500, - -0.0000000695192900, 0.0000002766964300, -0.0000002756676800, -0.0000000697463600}, - { -0.0000004538643100, 0.0000004534730300, -0.0000003473370900, 0.0000003206136100, - -0.0000004175833600, 0.0000007534408900, -0.0000018252857000, 0.0000304277893000, - 0.0000026331338900, -0.0000011723107400, 0.0000005874142700, -0.0000002107933500, - -0.0000000697223600, 0.0000002771073600, -0.0000002765610600, -0.0000000693472400}, - { -0.0000004519537900, 0.0000004512855100, -0.0000003427404600, 0.0000003142614000, - -0.0000004082281200, 0.0000007379100700, -0.0000017967050900, 0.0000304303942000, - 0.0000026040879100, -0.0000011618952200, 0.0000005839096700, -0.0000002091778900, - -0.0000000699143000, 0.0000002774214900, -0.0000002765299300, -0.0000000687773900}, - { -0.0000004491807700, 0.0000004485759300, -0.0000003394540900, 0.0000003088733700, - -0.0000003988893700, 0.0000007233613500, -0.0000017688142300, 0.0000304334966200, - 0.0000025753901000, -0.0000011523237400, 0.0000005793241800, -0.0000002076469800, - -0.0000000700635700, 0.0000002769352400, -0.0000002775689300, -0.0000000683225000}, - { -0.0000004473209500, 0.0000004457105300, -0.0000003360743400, 0.0000003025836900, - -0.0000003897094200, 0.0000007088896400, -0.0000017409498600, 0.0000304365892000, - 0.0000025458149700, -0.0000011421394400, 0.0000005759636500, -0.0000002069178100, - -0.0000000704737500, 0.0000002773610300, -0.0000002775967700, -0.0000000677353300}, - { -0.0000004444717000, 0.0000004428620600, -0.0000003317850200, 0.0000002964408100, - -0.0000003805137400, 0.0000006934475400, -0.0000017122233300, 0.0000304396703900, - 0.0000025171340700, -0.0000011324954000, 0.0000005713078000, -0.0000002053187900, - -0.0000000707171500, 0.0000002777897100, -0.0000002784864800, -0.0000000673385900}, - { -0.0000004427971200, 0.0000004410227500, -0.0000003284178700, 0.0000002910777700, - -0.0000003712463600, 0.0000006789868500, -0.0000016843034600, 0.0000304434316000, - 0.0000024877740200, -0.0000011222628000, 0.0000005678048700, -0.0000002036501400, - -0.0000000709968500, 0.0000002781813700, -0.0000002785075900, -0.0000000667608000}, - { -0.0000004408351500, 0.0000004381556100, -0.0000003250508600, 0.0000002848323700, - -0.0000003620768300, 0.0000006636493100, -0.0000016563520800, 0.0000304461685600, - 0.0000024583535100, -0.0000011127576100, 0.0000005631997300, -0.0000002020750200, - -0.0000000711766400, 0.0000002777270600, -0.0000002795722300, -0.0000000662778500}, - { -0.0000004380801100, 0.0000004354269100, -0.0000003209814400, 0.0000002797300300, - -0.0000003529018000, 0.0000006491186300, -0.0000016272419800, 0.0000304487711300, - 0.0000024298095100, -0.0000011022085400, 0.0000005594924600, -0.0000002002390300, - -0.0000000723818600, 0.0000002779372400, -0.0000002795073400, -0.0000000657344200}, - { -0.0000004364270700, 0.0000004336078200, -0.0000003175763900, 0.0000002735447600, - -0.0000003438518800, 0.0000006347319100, -0.0000015991075000, 0.0000304521224900, - 0.0000024006627800, -0.0000010927513200, 0.0000005549280000, -0.0000001994892300, - -0.0000000728568200, 0.0000002784856700, -0.0000002804663400, -0.0000000653083600}, - { -0.0000004346993300, 0.0000004309182300, -0.0000003144467600, 0.0000002683321200, - -0.0000003346361400, 0.0000006194068900, -0.0000015710304400, 0.0000304553789700, - 0.0000023714956500, -0.0000010823907600, 0.0000005513183700, -0.0000001977598200, - -0.0000000731700400, 0.0000002789105500, -0.0000002805014900, -0.0000000647228100}, - { -0.0000004320158000, 0.0000004282770700, -0.0000003104379700, 0.0000002625535200, - -0.0000003266869300, 0.0000006049293000, -0.0000015425894300, 0.0000304574941900, - 0.0000023422456600, -0.0000010718772800, 0.0000005467201200, -0.0000001961254600, - -0.0000000733852000, 0.0000002784613800, -0.0000002815797600, -0.0000000642092900}, - { -0.0000004304236600, 0.0000004265540900, -0.0000003072014700, 0.0000002573489500, - -0.0000003175720900, 0.0000005905217400, -0.0000015142040300, 0.0000304603952900, - 0.0000023132882500, -0.0000010623938900, 0.0000005429023200, -0.0000001942767200, - -0.0000000737686400, 0.0000002789011800, -0.0000002816103900, -0.0000000636395600}, - { -0.0000004276818000, 0.0000004239878600, -0.0000003041041300, 0.0000002513598800, - -0.0000003086221600, 0.0000005753037200, -0.0000014859275700, 0.0000304632697600, - 0.0000022842239000, -0.0000010518612100, 0.0000005382887800, -0.0000001926054500, - -0.0000000740960500, 0.0000002794055000, -0.0000002825655200, -0.0000000631862500}, - { -0.0000004260008200, 0.0000004213047800, -0.0000003001761400, 0.0000002464760300, - -0.0000002997005100, 0.0000005609909000, -0.0000014574287100, 0.0000304659243200, - 0.0000022552838800, -0.0000010413292700, 0.0000005336339900, -0.0000001909172200, - -0.0000000744164300, 0.0000002798242800, -0.0000002826051900, -0.0000000625856800}, - { -0.0000004243542100, 0.0000004187192800, -0.0000002971287100, 0.0000002405494900, - -0.0000002908733500, 0.0000005467214000, -0.0000014288738100, 0.0000304685251500, - 0.0000022254934400, -0.0000010309931700, 0.0000005299546400, -0.0000001891056000, - -0.0000000747532900, 0.0000002794490100, -0.0000002837320300, -0.0000000620567900}, - { -0.0000004219310800, 0.0000004172433300, -0.0000002940735300, 0.0000002355245100, - -0.0000002818772700, 0.0000005315723700, -0.0000014013384600, 0.0000304717226400, - 0.0000021968758500, -0.0000010213985000, 0.0000005251545400, -0.0000001873340800, - -0.0000000751378700, 0.0000002799287100, -0.0000002837812200, -0.0000000614775300}, - { -0.0000004202808100, 0.0000004145912600, -0.0000002901375100, 0.0000002298070200, - -0.0000002731549500, 0.0000005173599700, -0.0000013726605300, 0.0000304740017400, - 0.0000021680873600, -0.0000010108070800, 0.0000005204656900, -0.0000001863954900, - -0.0000000765887200, 0.0000002803718400, -0.0000002847187000, -0.0000000610304100}, - { -0.0000004186959300, 0.0000004120956700, -0.0000002872462400, 0.0000002248900100, - -0.0000002642744000, 0.0000005030699900, -0.0000013438827400, 0.0000304761759800, - 0.0000021384603000, -0.0000010003738700, 0.0000005166831300, -0.0000001845151700, - -0.0000000770115000, 0.0000002808540700, -0.0000002847973400, -0.0000000604129100}, - { -0.0000004163246800, 0.0000004106712900, -0.0000002842615100, 0.0000002191690700, - -0.0000002565148700, 0.0000004888119300, -0.0000013159535100, 0.0000304789228200, - 0.0000021099553600, -0.0000009897966800, 0.0000005119292900, -0.0000001827130700, - -0.0000000773711900, 0.0000002804989100, -0.0000002859183800, -0.0000000598855700}, - { -0.0000004147500100, 0.0000004081504200, -0.0000002805006000, 0.0000002144535400, - -0.0000002477149500, 0.0000004737013500, -0.0000012872591200, 0.0000304818061900, - 0.0000020805308800, -0.0000009792977800, 0.0000005071968700, -0.0000001809457700, - -0.0000000777559700, 0.0000002809924700, -0.0000002860138800, -0.0000000592610900}, - { -0.0000004123192100, 0.0000004058501200, -0.0000002776914700, 0.0000002087605700, - -0.0000002391051400, 0.0000004596104100, -0.0000012592772900, 0.0000304843748500, - 0.0000020512328500, -0.0000009688643500, 0.0000005033655500, -0.0000001789823800, - -0.0000000782738000, 0.0000002816043200, -0.0000002870343700, -0.0000000587752000}, - { -0.0000004107894100, 0.0000004034016500, -0.0000002748740500, 0.0000002039760600, - -0.0000002303557800, 0.0000004453794800, -0.0000012301966200, 0.0000304859324200, - 0.0000020227247700, -0.0000009581223300, 0.0000004984922000, -0.0000001771208200, - -0.0000000787003500, 0.0000002820817600, -0.0000002871029700, -0.0000000581575700}, - { -0.0000004093587400, 0.0000004018650800, -0.0000002710135300, 0.0000001984116400, - -0.0000002218448800, 0.0000004313763100, -0.0000012021363400, 0.0000304882818800, - 0.0000019935070200, -0.0000009475750900, 0.0000004936537800, -0.0000001751710900, - -0.0000000801110200, 0.0000002825556300, -0.0000002880712200, -0.0000000576816700}, - { -0.0000004070086100, 0.0000003996648800, -0.0000002683625100, 0.0000001937624600, - -0.0000002132234200, 0.0000004173020900, -0.0000011739650400, 0.0000304913195700, - 0.0000019645015200, -0.0000009370571700, 0.0000004888539700, -0.0000001733255400, - -0.0000000805210900, 0.0000002821862700, -0.0000002883172300, -0.0000000569990700}, - { -0.0000004055549600, 0.0000003973130000, -0.0000002656075600, 0.0000001882018300, - -0.0000002055659400, 0.0000004022181900, -0.0000011457786400, 0.0000304933847400, - 0.0000019354083600, -0.0000009265048200, 0.0000004849033400, -0.0000001712856100, - -0.0000000810671500, 0.0000002828266400, -0.0000002893561300, -0.0000000564955500}, - { -0.0000004032488300, 0.0000003959785900, -0.0000002619434800, 0.0000001836677600, - -0.0000001970197900, 0.0000003881652600, -0.0000011174339100, 0.0000304952581400, - 0.0000019063780300, -0.0000009158923400, 0.0000004800033700, -0.0000001693616200, - -0.0000000815677100, 0.0000002833775600, -0.0000002894695900, -0.0000000558583500}, - { -0.0000004018305800, 0.0000003936717300, -0.0000002592340800, 0.0000001781462400, - -0.0000001885730400, 0.0000003741264500, -0.0000010881885600, 0.0000304980747200, - 0.0000018774565100, -0.0000009052649800, 0.0000004751033800, -0.0000001674129700, - -0.0000000820954500, 0.0000002840026900, -0.0000002905324000, -0.0000000553421000}, - { -0.0000004004119100, 0.0000003913332400, -0.0000002556816600, 0.0000001736945200, - -0.0000001801009400, 0.0000003601134500, -0.0000010596860500, 0.0000304996474100, - 0.0000018485752400, -0.0000008946113900, 0.0000004701589700, -0.0000001654657700, - -0.0000000825608000, 0.0000002836444100, -0.0000002907704700, -0.0000000546470300}, - { -0.0000003981307700, 0.0000003892381100, -0.0000002531656000, 0.0000001692059700, - -0.0000001716342200, 0.0000003461182700, -0.0000010312015500, 0.0000305021093200, - 0.0000018188790800, -0.0000008840558000, 0.0000004652450700, -0.0000001634950600, - -0.0000000831250300, 0.0000002843043800, -0.0000002918541200, -0.0000000541059600}, - { -0.0000003968435100, 0.0000003879253900, -0.0000002504378200, 0.0000001637657900, - -0.0000001641796500, 0.0000003321126400, -0.0000010034991200, 0.0000305033298300, - 0.0000017901410200, -0.0000008734196000, 0.0000004611510300, -0.0000001612810100, - -0.0000000846731600, 0.0000002848150100, -0.0000002919339300, -0.0000000534931600}, - { -0.0000003945651400, 0.0000003857769000, -0.0000002470181000, 0.0000001594324200, - -0.0000001558137300, 0.0000003181615900, -0.0000009748599800, 0.0000305054496900, - 0.0000017615006900, -0.0000008627194900, 0.0000004561274000, -0.0000001592429500, - -0.0000000852704600, 0.0000002854820400, -0.0000002930099600, -0.0000000529601300}, - { -0.0000003932401200, 0.0000003836006300, -0.0000002444849800, 0.0000001541005000, - -0.0000001475450400, 0.0000003042687600, -0.0000009461842200, 0.0000305074913300, - 0.0000017319625600, -0.0000008512038500, 0.0000004512760300, -0.0000001572829300, - -0.0000000857749800, 0.0000002851744600, -0.0000002933011700, -0.0000000522254800}, - { -0.0000003919897700, 0.0000003823612700, -0.0000002418783000, 0.0000001496396500, - -0.0000001391517800, 0.0000002903186600, -0.0000009174192300, 0.0000305093771700, - 0.0000017034066400, -0.0000008404468200, 0.0000004462029400, -0.0000001552015500, - -0.0000000863995200, 0.0000002858545300, -0.0000002943863500, -0.0000000516831700}, - { -0.0000003898001300, 0.0000003803145000, -0.0000002385302500, 0.0000001445432500, - -0.0000001319345500, 0.0000002764325800, -0.0000008895401800, 0.0000305119193600, - 0.0000016741989300, -0.0000008298811000, 0.0000004411842900, -0.0000001531072000, - -0.0000000870352000, 0.0000002865288500, -0.0000002945799600, -0.0000000510187200}, - { -0.0000003884434400, 0.0000003781771800, -0.0000002360832800, 0.0000001401956000, - -0.0000001236297400, 0.0000002625496200, -0.0000008606633700, 0.0000305135746300, - 0.0000016448378400, -0.0000008191697200, 0.0000004360886000, -0.0000001509538700, - -0.0000000886061100, 0.0000002871262500, -0.0000002956450800, -0.0000000504731900}, - { -0.0000003862439200, 0.0000003761723500, -0.0000002336945300, 0.0000001350046400, - -0.0000001154788900, 0.0000002487086200, -0.0000008316860100, 0.0000305150388000, - 0.0000016155288200, -0.0000008075516000, 0.0000004311149200, -0.0000001488975800, - -0.0000000891753800, 0.0000002868512700, -0.0000002959470700, -0.0000000497291200}, - { -0.0000003850712800, 0.0000003749888800, -0.0000002302777900, 0.0000001307766700, - -0.0000001072739500, 0.0000002349092100, -0.0000008036267100, 0.0000305171969300, - 0.0000015873669900, -0.0000007967928800, 0.0000004259593600, -0.0000001467267200, - -0.0000000898797900, 0.0000002875940200, -0.0000002970642300, -0.0000000491739700}, - { -0.0000003838542900, 0.0000003729366300, -0.0000002278849600, 0.0000001256255000, - -0.0000001000782800, 0.0000002210354400, -0.0000007754203600, 0.0000305182829200, - 0.0000015582827100, -0.0000007861128300, 0.0000004217388300, -0.0000001444400500, - -0.0000000906121000, 0.0000002883075100, -0.0000002972661400, -0.0000000485004200}, - { -0.0000003816509300, 0.0000003709864100, -0.0000002256106400, 0.0000001214479000, - -0.0000000919168800, 0.0000002072061100, -0.0000007462776200, 0.0000305202709200, - 0.0000015292286200, -0.0000007744430700, 0.0000004166752200, -0.0000001423103300, - -0.0000000912804200, 0.0000002890024200, -0.0000002974973900, -0.0000000478005400}, - { -0.0000003804721500, 0.0000003689540000, -0.0000002223798900, 0.0000001173609200, - -0.0000000838292300, 0.0000001934852000, -0.0000007180134300, 0.0000305220409100, - 0.0000015003290600, -0.0000007637074700, 0.0000004114765900, -0.0000001400660100, - -0.0000000929037200, 0.0000002887514500, -0.0000002986971300, -0.0000000471906600}, - { -0.0000003784248300, 0.0000003679910900, -0.0000002200335400, 0.0000001122795500, - -0.0000000758115600, 0.0000001797689700, -0.0000006896906600, 0.0000305236860000, - 0.0000014714266400, -0.0000007520350800, 0.0000004063782200, -0.0000001378788100, - -0.0000000936224300, 0.0000002894831400, -0.0000002989337500, -0.0000000464860200}, - { -0.0000003772222700, 0.0000003660354300, -0.0000002177942800, 0.0000001082013300, - -0.0000000686657100, 0.0000001659411900, -0.0000006612456400, 0.0000305252141100, - 0.0000014416934300, -0.0000007413160700, 0.0000004011606300, -0.0000001356286200, - -0.0000000943766600, 0.0000002902744400, -0.0000003001127800, -0.0000000458704700}, - { -0.0000003751272400, 0.0000003641224700, -0.0000002146282400, 0.0000001032856600, - -0.0000000607494800, 0.0000001522406400, -0.0000006318495400, 0.0000305266353700, - 0.0000014129397200, -0.0000007305163600, 0.0000003959036100, -0.0000001333568200, - -0.0000000951286800, 0.0000002910117000, -0.0000003003554800, -0.0000000451769900}, - { -0.0000003740453600, 0.0000003631277700, -0.0000002123501700, 0.0000000991980200, - -0.0000000527217900, 0.0000001385321000, -0.0000006032900700, 0.0000305278786000, - 0.0000013842019100, -0.0000007187486600, 0.0000003906976500, -0.0000001311089600, - -0.0000000958623000, 0.0000002908760100, -0.0000003016231600, -0.0000000445068000}, - { -0.0000003729050600, 0.0000003612350900, -0.0000002101520100, 0.0000000942775500, - -0.0000000457538900, 0.0000001248307000, -0.0000005747166800, 0.0000305299153300, - 0.0000013547492500, -0.0000007080269600, 0.0000003854346300, -0.0000001287607700, - -0.0000000975892700, 0.0000002915881100, -0.0000003018644300, -0.0000000438154800}, - { -0.0000003708956400, 0.0000003594054000, -0.0000002071214100, 0.0000000903979800, - -0.0000000378641900, 0.0000001112105700, -0.0000005469551400, 0.0000305307792800, - 0.0000013261923500, -0.0000006962423800, 0.0000003801673700, -0.0000001264499500, - -0.0000000984066100, 0.0000002924143600, -0.0000003030515100, -0.0000000431795400}, - { -0.0000003698495600, 0.0000003575779100, -0.0000002050276300, 0.0000000864607400, - -0.0000000299850300, 0.0000000984943000, -0.0000005181636100, 0.0000305325129100, - 0.0000012968326800, -0.0000006845375400, 0.0000003749292200, -0.0000001241358200, - -0.0000000992319500, 0.0000002932209100, -0.0000003033543100, -0.0000000424402600}, - { -0.0000003678810800, 0.0000003567216600, -0.0000002028355600, 0.0000000815922500, - -0.0000000231056700, 0.0000000848238100, -0.0000004893293600, 0.0000305331925800, - 0.0000012683638900, -0.0000006736106600, 0.0000003694939000, -0.0000001207958100, - -0.0000000999989700, 0.0000002940099300, -0.0000003045285600, -0.0000000418160500}, - { -0.0000003668399300, 0.0000003548917800, -0.0000001998535200, 0.0000000778065700, - -0.0000000153154100, 0.0000000712646300, -0.0000004604878800, 0.0000305346710600, - 0.0000012391231100, -0.0000006618462800, 0.0000003632680800, -0.0000001185043200, - -0.0000001017024400, 0.0000002938122000, -0.0000003048768800, -0.0000000410416700}, - { -0.0000003658356000, 0.0000003531138400, -0.0000001977775600, 0.0000000729983100, - -0.0000000075620500, 0.0000000577290600, -0.0000004325205000, 0.0000305359759100, - 0.0000012099735200, -0.0000006510233800, 0.0000003578931400, -0.0000001160855500, - -0.0000001026023300, 0.0000002947019900, -0.0000003061151700, -0.0000000403882200}, - { -0.0000003638938800, 0.0000003514164000, -0.0000001958085100, 0.0000000692151600, - -0.0000000007068200, 0.0000000440667500, -0.0000004034754500, 0.0000305371538600, - 0.0000011808326800, -0.0000006392102100, 0.0000003525266500, -0.0000001136761300, - -0.0000001034693000, 0.0000002955492900, -0.0000003064410600, -0.0000000396332400}, - { -0.0000003629223000, 0.0000003505495000, -0.0000001927947000, 0.0000000654411200, - 0.0000000070163400, 0.0000000314498600, -0.0000003743576500, 0.0000305382025700, - 0.0000011526826700, -0.0000006273264800, 0.0000003470974700, -0.0000001112218000, - -0.0000001043813600, 0.0000002964194700, -0.0000003076842200, -0.0000000389669200}, - { -0.0000003610639600, 0.0000003489057800, -0.0000001908316200, 0.0000000607413700, - 0.0000000146785300, 0.0000000179544400, -0.0000003461481100, 0.0000305390383500, - 0.0000011237344100, -0.0000006164483000, 0.0000003416433800, -0.0000001087365200, - -0.0000001053001800, 0.0000002963790800, -0.0000003080805300, -0.0000000381874300}, - { -0.0000003601269100, 0.0000003472094500, -0.0000001888981300, 0.0000000570197700, - 0.0000000214496100, 0.0000000043993500, -0.0000003178921900, 0.0000305407159000, - 0.0000010948594500, -0.0000006046137200, 0.0000003362096800, -0.0000001062345400, - -0.0000001071720100, 0.0000002972423700, -0.0000003093318200, -0.0000000375146000}, - { -0.0000003582656500, 0.0000003455849400, -0.0000001860858600, 0.0000000524745900, - 0.0000000290078700, -0.0000000090648300, -0.0000002886387300, 0.0000305413750100, - 0.0000010650492300, -0.0000005928189500, 0.0000003307938500, -0.0000001037636700, - -0.0000001081004600, 0.0000002981370000, -0.0000003096989400, -0.0000000367260100}, - { -0.0000003573744000, 0.0000003448505600, -0.0000001841238600, 0.0000000487681400, - 0.0000000357013800, -0.0000000216601600, -0.0000002601772700, 0.0000305427509700, - 0.0000010362986600, -0.0000005809448800, 0.0000003252789700, -0.0000001002860000, - -0.0000001090243800, 0.0000002990478200, -0.0000003109808600, -0.0000000360263700}, - { -0.0000003564774200, 0.0000003431922800, -0.0000001822254600, 0.0000000451135800, - 0.0000000433003700, -0.0000000351097200, -0.0000002316996000, 0.0000305430485400, - 0.0000010075840400, -0.0000005699440100, 0.0000003187647900, -0.0000000977716300, - -0.0000001099777400, 0.0000002990283900, -0.0000003113898000, -0.0000000352248700}, - { -0.0000003546870600, 0.0000003416172000, -0.0000001794658100, 0.0000000406472900, - 0.0000000498512700, -0.0000000485477300, -0.0000002031776000, 0.0000305441562500, - 0.0000009789706100, -0.0000005580569300, 0.0000003132334500, -0.0000000951776200, - -0.0000001119130300, 0.0000002999325200, -0.0000003126683700, -0.0000000345274700}, - { -0.0000003538373300, 0.0000003400302700, -0.0000001776549100, 0.0000000370535700, - 0.0000000573925900, -0.0000000610465300, -0.0000001745336100, 0.0000305451127000, - 0.0000009494961400, -0.0000005461903400, 0.0000003077019500, -0.0000000925937200, - -0.0000001129494000, 0.0000003009011500, -0.0000003130746200, -0.0000000337260000}, - { -0.0000003520921500, 0.0000003394346200, -0.0000001758288700, 0.0000000334721100, - 0.0000000649268300, -0.0000000744677800, -0.0000001458744900, 0.0000305459744400, - 0.0000009209557400, -0.0000005342285700, 0.0000003021134300, -0.0000000899901500, - -0.0000001139831400, 0.0000003018842400, -0.0000003144017200, -0.0000000329970400}, - { -0.0000003512573100, 0.0000003378711000, -0.0000001740435500, 0.0000000290089600, - 0.0000000714234800, -0.0000000869571200, -0.0000001170623500, 0.0000305466205000, - 0.0000008916237200, -0.0000005223260400, 0.0000002965177700, -0.0000000873315500, - -0.0000001150412500, 0.0000003019394800, -0.0000003148759600, -0.0000000321551300}, - { -0.0000003495167000, 0.0000003363569600, -0.0000001713789300, 0.0000000255669300, - 0.0000000788301700, -0.0000001002806300, -0.0000000882964600, 0.0000305471690900, - 0.0000008632676200, -0.0000005103588900, 0.0000002908698000, -0.0000000837361100, - -0.0000001169925400, 0.0000003028499400, -0.0000003152349500, -0.0000000313813200}, - { -0.0000003486840300, 0.0000003348178400, -0.0000001696380900, 0.0000000211810600, - 0.0000000852586500, -0.0000001136564500, -0.0000000594272800, 0.0000305476029500, - 0.0000008340196300, -0.0000004983911700, 0.0000002842935600, -0.0000000811096700, - -0.0000001180375200, 0.0000003038511100, -0.0000003165955700, -0.0000000306075200}, - { -0.0000003469765900, 0.0000003343036000, -0.0000001679160000, 0.0000000177135000, - 0.0000000926754800, -0.0000001260861000, -0.0000000304469600, 0.0000305487970600, - 0.0000008048797600, -0.0000004864404400, 0.0000002786310700, -0.0000000784087900, - -0.0000001191632000, 0.0000003048908400, -0.0000003170531700, -0.0000000297868500}, - { -0.0000003461774600, 0.0000003327682700, -0.0000001652648300, 0.0000000143244500, - 0.0000000990953800, -0.0000001394377600, -0.0000000023525100, 0.0000305488765700, - 0.0000007767318900, -0.0000004744017700, 0.0000002728774500, -0.0000000756520300, - -0.0000001202902100, 0.0000003050026400, -0.0000003184579100, -0.0000000289997500}, - { -0.0000003454137100, 0.0000003313035200, -0.0000001636003800, 0.0000000099881700, - 0.0000001063982400, -0.0000001517720800, 0.0000000267125500, 0.0000305498083700, - 0.0000007477414500, -0.0000004624290900, 0.0000002671831100, -0.0000000729004800, - -0.0000001223831900, 0.0000003060168000, -0.0000003188993500, -0.0000000281862900}, - { -0.0000003437037600, 0.0000003298773100, -0.0000001619778200, 0.0000000066556300, - 0.0000001127390700, -0.0000001650952000, 0.0000000558741700, 0.0000305505931400, - 0.0000007187871700, -0.0000004503987800, 0.0000002604895500, -0.0000000692451500, - -0.0000001234554400, 0.0000003070451600, -0.0000003202910800, -0.0000000273917600}, - { -0.0000003429250800, 0.0000003293434500, -0.0000001593584100, 0.0000000033135500, - 0.0000001200242700, -0.0000001774239400, 0.0000000841583200, 0.0000305502674600, - 0.0000006898956800, -0.0000004383683600, 0.0000002546976200, -0.0000000664350300, - -0.0000001246591800, 0.0000003081283900, -0.0000003207541700, -0.0000000265507200}, - { -0.0000003412490900, 0.0000003279564200, -0.0000001577770500, -0.0000000009313800, - 0.0000001263167800, -0.0000001906951100, 0.0000001124928200, 0.0000305507531700, - 0.0000006610834100, -0.0000004263249000, 0.0000002489119800, -0.0000000636159800, - -0.0000001267872500, 0.0000003091948000, -0.0000003221504300, -0.0000000257636700}, - { -0.0000003404731400, 0.0000003265175300, -0.0000001561789400, -0.0000000042083300, - 0.0000001335330400, -0.0000002029953100, 0.0000001418764600, 0.0000305510887600, - 0.0000006323528600, -0.0000004142487600, 0.0000002421344900, -0.0000000607985400, - -0.0000001279946600, 0.0000003093528500, -0.0000003226864100, -0.0000000248796500}, - { -0.0000003388377600, 0.0000003251864100, -0.0000001537100900, -0.0000000074381800, - 0.0000001397822300, -0.0000002153295800, 0.0000001704243000, 0.0000305521780500, - 0.0000006027997600, -0.0000004022334800, 0.0000002362991000, -0.0000000569919800, - -0.0000001292085400, 0.0000003104789400, -0.0000003241453500, -0.0000000240501100}, - { -0.0000003380795000, 0.0000003247258700, -0.0000001521319900, -0.0000000116373400, - 0.0000001469413800, -0.0000002285243100, 0.0000001989240500, 0.0000305522735200, - 0.0000005741703600, -0.0000003901387700, 0.0000002304368000, -0.0000000541061900, - -0.0000001304684500, 0.0000003116275100, -0.0000003246569900, -0.0000000231910300}, - { -0.0000003373394500, 0.0000003233233200, -0.0000001505753800, -0.0000000148571000, - 0.0000001531547700, -0.0000002407952000, 0.0000002275511400, 0.0000305521935800, - 0.0000005456280000, -0.0000003780111100, 0.0000002235803700, -0.0000000512158000, - -0.0000001326570100, 0.0000003127233900, -0.0000003260822600, -0.0000000223661700}, - { -0.0000003356689400, 0.0000003220032300, -0.0000001491017200, -0.0000000180271600, - 0.0000001602837600, -0.0000002530584900, 0.0000002572382100, 0.0000305528831700, - 0.0000005162307100, -0.0000003658974500, 0.0000002176562700, -0.0000000482746700, - -0.0000001339690600, 0.0000003129659400, -0.0000003266806700, -0.0000000214552200}, - { -0.0000003349458000, 0.0000003206380900, -0.0000001466550800, -0.0000000211731900, - 0.0000001663994200, -0.0000002662171400, 0.0000002859642300, 0.0000305525209100, - 0.0000004878336100, -0.0000003537488300, 0.0000002116848800, -0.0000000443644700, - -0.0000001352471400, 0.0000003141260600, -0.0000003272003200, -0.0000000205837900}, - { -0.0000003332926300, 0.0000003202823300, -0.0000001452058900, -0.0000000252375300, - 0.0000001725095700, -0.0000002784621900, 0.0000003148416400, 0.0000305529242100, - 0.0000004585797400, -0.0000003406922200, 0.0000002048118400, -0.0000000414183100, - -0.0000001365477700, 0.0000003153111900, -0.0000003287185700, -0.0000000196877000}, - { -0.0000003326162500, 0.0000003189613400, -0.0000001437413900, -0.0000000283721000, - 0.0000001795892300, -0.0000002906671400, 0.0000003427783000, 0.0000305532062500, - 0.0000004303401100, -0.0000003285234700, 0.0000001988112900, -0.0000000384077600, - -0.0000001388720100, 0.0000003165263500, -0.0000003292642400, -0.0000000188174200}, - { -0.0000003309959200, 0.0000003176999800, -0.0000001413956600, -0.0000000314280200, - 0.0000001856478200, -0.0000003038205600, 0.0000003717851500, 0.0000305533321300, - 0.0000004012019600, -0.0000003163333400, 0.0000001927602200, -0.0000000353662500, - -0.0000001402398400, 0.0000003168136400, -0.0000003308169600, -0.0000000179151700} -}; - -#endif diff --git a/RTCP/CNProc/src/FIR_OriginalCepPPFWeights.h b/RTCP/CNProc/src/FIR_OriginalCepPPFWeights.h deleted file mode 100644 index b3bb6e47b30db2e44f6ba98251de093e94ccae20..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR_OriginalCepPPFWeights.h +++ /dev/null @@ -1,1033 +0,0 @@ -#ifndef LOFAR_CNPROC_FIR_ORIGINAL_CEP_PPF_WEIGHTS_H -#define LOFAR_CNPROC_FIR_ORIGINAL_CEP_PPF_WEIGHTS_H - -#include <FilterBank.h> - -const float FilterBank::originalCepPPFWeights[256][16] __attribute__ ((aligned(32))) = { - { 0.011659500, -0.011535200, 0.005131880, 0.001219900, - -0.006891530, 0.011598600, -0.015420900, 1.000000000, - -0.011661800, 0.009847130, -0.005852040, 0.000558600, - 0.005549120, -0.011758700, 0.011716500, 0.000414833 }, - { -0.011602000, 0.011311400, -0.004715490, -0.001878750, - 0.007926170, -0.013340200, 0.019147200, -0.999948000, - 0.007870030, -0.008086100, 0.004807840, 0.000105072, - -0.005967150, 0.011982000, -0.011773000, -0.000414623 }, - { 0.011544100, -0.011087500, 0.004299990, 0.002535060, - -0.008955820, 0.015071700, -0.022840300, 0.999843000, - -0.004045800, 0.006315690, -0.003759060, -0.000771025, - 0.006385910, -0.012205000, 0.011829000, 0.000414214 }, - { -0.011485700, 0.010863400, -0.003885440, -0.003188740, - 0.009980360, -0.016793100, 0.026500200, -0.999686000, - 0.000189332, -0.004536100, 0.002705860, 0.001439170, - -0.006805360, 0.012427700, -0.011884500, -0.000413633 }, - { 0.011426900, -0.010639200, 0.003471880, 0.003839710, - -0.010999700, 0.018503900, -0.030126600, 0.999477000, - 0.003699140, 0.002747570, -0.001648360, -0.002109420, - 0.007225430, -0.012650100, 0.011939500, 0.000412915 }, - { -0.011367600, 0.010414900, -0.003059380, -0.004487890, - 0.012013600, -0.020204200, 0.033719300, -0.999215000, - -0.007619390, -0.000950314, 0.000586709, 0.002781680, - -0.007646080, 0.012872200, -0.011993900, -0.000412106 }, - { 0.011307900, -0.010190500, 0.002647990, 0.005133180, - -0.013021900, 0.021893500, -0.037278100, 0.998901000, - 0.011571200, -0.000855436, 0.000478948, -0.003455870, - 0.008067240, -0.013093800, 0.012047800, 0.000411265 }, - { -0.011247800, 0.009966110, -0.002237740, -0.005775510, - 0.014024700, -0.023571800, 0.040802900, -0.998535000, - -0.015554300, 0.002669450, -0.001548470, 0.004131890, - -0.008488880, 0.013315100, -0.012101100, -0.000410456 }, - { 0.011187300, -0.009741670, 0.001828700, 0.006414810, - -0.015021700, 0.025238900, -0.044293400, 0.998117000, - 0.019568500, -0.004491510, 0.002621710, -0.004809650, - 0.008910910, -0.013535900, 0.012153900, 0.000409752 }, - { -0.011126400, 0.009517230, -0.001420910, -0.007050970, - 0.016012700, -0.026894500, 0.047749500, -0.997646000, - -0.023613500, 0.006321360, -0.003698520, 0.005489070, - -0.009333300, 0.013756200, -0.012206100, -0.000409230 }, - { 0.011065200, -0.009292840, 0.001014430, 0.007683930, - -0.016997800, 0.028538400, -0.051171100, 0.997124000, - 0.027689100, -0.008158790, 0.004778750, -0.006170040, - 0.009755990, -0.013976000, 0.012257600, 0.000408972 }, - { -0.011003500, 0.009068510, -0.000609294, -0.008313610, - 0.017976700, -0.030170600, 0.054557800, -0.996549000, - -0.031795100, 0.010003500, -0.005862260, 0.006852470, - -0.010178900, 0.014195300, -0.012308600, -0.000409063 }, - { 0.010941500, -0.008844280, 0.000205562, 0.008939920, - -0.018949300, 0.031790600, -0.057909700, 0.995922000, - 0.035931100, -0.011855400, 0.006948890, -0.007536270, - 0.010602000, -0.014414000, 0.012358900, 0.000409585 }, - { -0.010879200, 0.008620160, 0.000196720, -0.009562800, - 0.019915600, -0.033398500, 0.061226400, -0.995244000, - -0.040096900, 0.013714100, -0.008038500, 0.008221360, - -0.011025300, 0.014632100, -0.012408600, -0.000410621 }, - { 0.010816400, -0.008396190, -0.000597505, 0.010182200, - -0.020875300, 0.034994000, -0.064507900, 0.994513000, - 0.044292300, -0.015579400, 0.009130930, -0.008907620, - 0.011448600, -0.014849700, 0.012457700, 0.000412251 }, - { -0.010753400, 0.008172400, 0.000996745, -0.010797900, - 0.021828400, -0.036576900, 0.067754100, -0.993731000, - -0.048517000, 0.017451100, -0.010226000, 0.009594970, - -0.011871900, 0.015066500, -0.012506100, -0.000414547 }, - { 0.010690100, -0.007948800, -0.001394390, 0.011410000, - -0.022774800, 0.038147100, -0.070964600, 0.992897000, - 0.052770700, -0.019328800, 0.011323700, -0.010283300, - 0.012295200, -0.015282700, 0.012553800, 0.000417579 }, - { -0.010626400, 0.007725430, 0.001790400, -0.012018300, - 0.023714300, -0.039704400, 0.074139500, -0.992011000, - -0.057053200, 0.021212500, -0.012423600, 0.010972500, - -0.012718300, 0.015498200, -0.012600900, -0.000421406 }, - { 0.010562400, -0.007502300, -0.002184730, 0.012622900, - -0.024646800, 0.041248500, -0.077278600, 0.991074000, - 0.061364100, -0.023101700, 0.013525800, -0.011662600, - 0.013141300, -0.015712900, 0.012647200, 0.000426080 }, - { -0.010498200, 0.007279450, 0.002577320, -0.013223500, - 0.025572200, -0.042779400, 0.080381600, -0.990085000, - -0.065703200, 0.024996400, -0.014630100, 0.012353300, - -0.013564100, 0.015926800, -0.012692900, -0.000431643 }, - { 0.010433600, -0.007056910, -0.002968140, 0.013820200, - -0.026490500, 0.044296800, -0.083448600, 0.989045000, - 0.070070300, -0.026896100, 0.015736200, -0.013044600, - 0.013986600, -0.016140000, 0.012737800, 0.000438126 }, - { -0.010368800, 0.006834680, 0.003357130, -0.014412800, - 0.027401400, -0.045800700, 0.086479400, -0.987953000, - -0.074464900, 0.028800600, -0.016844000, 0.013736500, - -0.014408800, 0.016352300, -0.012782000, -0.000445550 }, - { 0.010303700, -0.006612810, -0.003744260, 0.015001400, - -0.028304900, 0.047290800, -0.089473800, 0.986810000, - 0.078886800, -0.030709800, 0.017953500, -0.014428700, - 0.014830600, -0.016563700, 0.012825500, 0.000453924 }, - { -0.010238400, 0.006391310, 0.004129480, -0.015585700, - 0.029200900, -0.048766900, 0.092431700, -0.985617000, - -0.083335800, 0.032623200, -0.019064300, 0.015121200, - -0.015251900, 0.016774300, -0.012868200, -0.000463250 }, - { 0.010172900, -0.006170210, -0.004512750, 0.016165800, - -0.030089200, 0.050229000, -0.095353100, 0.984372000, - 0.087811500, -0.034540800, 0.020176400, -0.015814000, - 0.015672700, -0.016983900, 0.012910200, 0.000473514 }, - { -0.010107100, 0.005949540, 0.004894020, -0.016741600, - 0.030969900, -0.051676900, 0.098237800, -0.983076000, - -0.092313600, 0.036462100, -0.021289600, 0.016506800, - -0.016092900, 0.017192600, -0.012951400, -0.000484696 }, - { 0.010041100, -0.005729310, -0.005273240, 0.017313100, - -0.031842600, 0.053110400, -0.101086000, 0.981730000, - 0.096841900, -0.038386900, 0.022403700, -0.017199700, - 0.016512500, -0.017400200, 0.012991800, 0.000496767 }, - { -0.009974950, 0.005509550, 0.005650390, -0.017880100, - 0.032707500, -0.054529300, 0.103897000, -0.980333000, - -0.101396000, 0.040315000, -0.023518600, 0.017892400, - -0.016931400, 0.017606900, -0.013031400, -0.000509689 }, - { 0.009908570, -0.005290280, -0.006025420, 0.018442500, - -0.033564300, 0.055933600, -0.106671000, 0.978886000, - 0.105975000, -0.042246100, 0.024634100, -0.018585000, - 0.017349500, -0.017812500, 0.013070200, 0.000523415 }, - { -0.009842020, 0.005071530, 0.006398270, -0.019000400, - 0.034413000, -0.057323100, 0.109408000, -0.977388000, - -0.110580000, 0.044180000, -0.025750100, 0.019277200, - -0.017766900, 0.018017000, -0.013108200, -0.000537896 }, - { 0.009775290, -0.004853320, -0.006768930, 0.019553700, - -0.035253500, 0.058697600, -0.112107000, 0.975840000, - 0.115210000, -0.046116200, 0.026866300, -0.019969100, - 0.018183300, -0.018220400, 0.013145400, 0.000553077 }, - { -0.009708410, 0.004635680, 0.007137330, -0.020102300, - 0.036085600, -0.060057000, 0.114770000, -0.974242000, - -0.119864000, 0.048054700, -0.027982600, 0.020660400, - -0.018598800, 0.018422700, -0.013181700, -0.000568899 }, - { 0.009641370, -0.004418620, -0.007503460, 0.020646100, - -0.036909400, 0.061401200, -0.117395000, 0.972595000, - 0.124542000, -0.049995000, 0.029098800, -0.021351200, - 0.019013400, -0.018623700, 0.013217200, 0.000585302 }, - { -0.009574200, 0.004202160, 0.007867250, -0.021185100, - 0.037724600, -0.062730000, 0.119983000, -0.970897000, - -0.129244000, 0.051936900, -0.030214800, 0.022041200, - -0.019426800, 0.018823600, -0.013251800, -0.000602227 }, - { 0.009506900, -0.003986340, -0.008228680, 0.021719200, - -0.038531200, 0.064043400, -0.122533000, 0.969150000, - 0.133970000, -0.053880200, 0.031330400, -0.022730400, - 0.019839200, -0.019022200, 0.013285600, 0.000619615 }, - { -0.009439470, 0.003771170, 0.008587720, -0.022248400, - 0.039329200, -0.065341100, 0.125045000, -0.967354000, - -0.138719000, 0.055824500, -0.032445500, 0.023418700, - -0.020250300, 0.019219600, -0.013318400, -0.000637409 }, - { 0.009371930, -0.003556670, -0.008944310, 0.022772500, - -0.040118300, 0.066623100, -0.127520000, 0.965508000, - 0.143491000, -0.057769600, 0.033559800, -0.024106000, - 0.020660300, -0.019415600, 0.013350400, 0.000655555 }, - { -0.009304290, 0.003342870, 0.009298430, -0.023291700, - 0.040898700, -0.067889200, 0.129958000, -0.963614000, - -0.148285000, 0.059715200, -0.034673200, 0.024792100, - -0.021068900, 0.019610300, -0.013381400, -0.000674005 }, - { 0.009236550, -0.003129790, -0.009650030, 0.023805700, - -0.041670100, 0.069139400, -0.132357000, 0.961670000, - 0.153101000, -0.061661000, 0.035785500, -0.025477100, - 0.021476100, -0.019803700, 0.013411500, 0.000692716 }, - { -0.009168730, 0.002917450, 0.009999080, -0.024314500, - 0.042432500, -0.070373400, 0.134719000, -0.959678000, - -0.157939000, 0.063606700, -0.036896600, 0.026160600, - -0.021882000, 0.019995700, -0.013440700, -0.000711649 }, - { 0.009100820, -0.002705870, -0.010345600, 0.024818200, - -0.043185700, 0.071591300, -0.137043000, 0.957637000, - 0.162799000, -0.065552000, 0.038006300, -0.026842800, - 0.022286300, -0.020186200, 0.013469000, 0.000730774 }, - { -0.009032840, 0.002495060, 0.010689400, -0.025316500, - 0.043929900, -0.072792800, 0.139329000, -0.955548000, - -0.167680000, 0.067496700, -0.039114400, 0.027523400, - -0.022689100, 0.020375300, -0.013496200, -0.000750066 }, - { 0.008964800, -0.002285070, -0.011030600, 0.025809600, - -0.044664700, 0.073977900, -0.141578000, 0.953411000, - 0.172581000, -0.069440400, 0.040220700, -0.028202300, - 0.023090300, -0.020562800, 0.013522500, 0.000769507 }, - { -0.008896700, 0.002075890, 0.011369100, -0.026297300, - 0.045390300, -0.075146500, 0.143788000, -0.951226000, - -0.177503000, 0.071382800, -0.041325100, 0.028879500, - -0.023489900, 0.020748900, -0.013547900, -0.000789086 }, - { 0.008828540, -0.001867560, -0.011704900, 0.026779500, - -0.046106400, 0.076298500, -0.145960000, 0.948994000, - 0.182445000, -0.073323800, 0.042427300, -0.029554900, - 0.023887600, -0.020933400, 0.013572200, 0.000808800 }, - { -0.008760350, 0.001660090, 0.012037900, -0.027256300, - 0.046813100, -0.077433700, 0.148095000, -0.946714000, - -0.187407000, 0.075262900, -0.043527300, 0.030228300, - -0.024283600, 0.021116400, -0.013595500, -0.000828649 }, - { 0.008692120, -0.001453500, -0.012368200, 0.027727600, - -0.047510200, 0.078552200, -0.150191000, 0.944386000, - 0.192388000, -0.077199800, 0.044624900, -0.030899600, - 0.024677800, -0.021297700, 0.013617800, 0.000848641 }, - { -0.008623860, 0.001247820, 0.012695600, -0.028193200, - 0.048197700, -0.079653700, 0.152249000, -0.942012000, - -0.197388000, 0.079134300, -0.045719800, 0.031568700, - -0.025070000, 0.021477300, -0.013639100, -0.000868789 }, - { 0.008555590, -0.001043050, -0.013020200, 0.028653300, - -0.048875600, 0.080738200, -0.154269000, 0.939591000, - 0.202406000, -0.081066100, 0.046811900, -0.032235500, - 0.025460200, -0.021655300, 0.013659300, 0.000889109 }, - { -0.008487300, 0.000839230, 0.013341900, -0.029107700, - 0.049543700, -0.081805600, 0.156252000, -0.937123000, - -0.207442000, 0.082994900, -0.047901000, 0.032900000, - -0.025848400, 0.021831600, -0.013678500, -0.000909621 }, - { 0.008419010, -0.000636364, -0.013660700, 0.029556500, - -0.050202100, 0.082855900, -0.158196000, 0.934609000, - 0.212496000, -0.084920300, 0.048986900, -0.033562000, - 0.026234500, -0.022006200, 0.013696600, 0.000930348 }, - { -0.008350720, 0.000434476, 0.013976600, -0.029999400, - 0.050850500, -0.083888900, 0.160102000, -0.932049000, - -0.217568000, 0.086842200, -0.050069600, 0.034221300, - -0.026618500, 0.022179000, -0.013713600, -0.000951314 }, - { 0.008282450, -0.000233582, -0.014289400, 0.030436600, - -0.051489100, 0.084904600, -0.161970000, 0.929443000, - 0.222657000, -0.088760100, 0.051148700, -0.034878000, - 0.027000200, -0.022350000, 0.013729500, 0.000972545 }, - { -0.008214200, 0.000033699, 0.014599300, -0.030868000, - 0.052117600, -0.085902800, 0.163800000, -0.926792000, - -0.227762000, 0.090673700, -0.052224200, 0.035531800, - -0.027379600, 0.022519100, -0.013744400, -0.000994065 }, - { 0.008145980, 0.000165153, -0.014906200, 0.031293500, - -0.052736100, 0.086883600, -0.165592000, 0.924095000, - 0.232883000, -0.092582800, 0.053295800, -0.036182700, - 0.027756600, -0.022686400, 0.013758100, 0.001015900 }, - { -0.008077800, -0.000362959, 0.015210000, -0.031713100, - 0.053344600, -0.087846900, 0.167346000, -0.921353000, - -0.238020000, 0.094487100, -0.054363300, 0.036830600, - -0.028131300, 0.022851800, -0.013770700, -0.001038070 }, - { 0.008009680, 0.000559702, -0.015510700, 0.032126700, - -0.053942900, 0.088792500, -0.169062000, 0.918566000, - 0.243173000, -0.096386300, 0.055426700, -0.037475400, - 0.028503500, -0.023015300, 0.013782200, 0.001060610 }, - { -0.007941610, -0.000755366, 0.015808300, -0.032534400, - 0.054531000, -0.089720400, 0.170740000, -0.915735000, - -0.248340000, 0.098280000, -0.056485700, 0.038117000, - -0.028873100, 0.023176800, -0.013792600, -0.001083520 }, - { 0.007873600, 0.000949933, -0.016102800, 0.032936000, - -0.055108900, 0.090630600, -0.172380000, 0.912859000, - 0.253523000, -0.100168000, 0.057540100, -0.038755100, - 0.029240200, -0.023336400, 0.013801800, 0.001106820 }, - { -0.007805680, -0.001143390, 0.016394100, -0.033331600, - 0.055676400, -0.091523000, 0.173982000, -0.909939000, - -0.258719000, 0.102050000, -0.058589800, 0.039389900, - -0.029604600, 0.023493900, -0.013809800, -0.001130530 }, - { 0.007737840, 0.001335720, -0.016682300, 0.033721100, - -0.056233700, 0.092397600, -0.175546000, 0.906976000, - 0.263929000, -0.103925000, 0.059634500, -0.040021100, - 0.029966300, -0.023649400, 0.013816700, 0.001154660 }, - { -0.007670090, -0.001526900, 0.016967200, -0.034104500, - 0.056780500, -0.093254300, 0.177073000, -0.903969000, - -0.269153000, 0.105794000, -0.060674200, 0.040648600, - -0.030325200, 0.023802800, -0.013822400, -0.001179210 }, - { 0.007602450, 0.001716930, -0.017248900, 0.034481800, - -0.057317000, 0.094092900, -0.178561000, 0.900919000, - 0.274389000, -0.107656000, 0.061708600, -0.041272400, - 0.030681200, -0.023954100, 0.013826900, 0.001204190 }, - { -0.007534920, -0.001905780, 0.017527400, -0.034852800, - 0.057842900, -0.094913600, 0.180012000, -0.897826000, - -0.279638000, 0.109510000, -0.062737600, 0.041892300, - -0.031034400, 0.024103300, -0.013830200, -0.001229590 }, - { 0.007467500, 0.002093450, -0.017802500, 0.035217700, - -0.058358400, 0.095716300, -0.181426000, 0.894690000, - 0.284899000, -0.111357000, 0.063761000, -0.042508200, - 0.031384600, -0.024250300, 0.013832300, 0.001255410 }, - { -0.007400210, -0.002279910, 0.018074400, -0.035576300, - 0.058863300, -0.096500800, 0.182801000, -0.891512000, - -0.290172000, 0.113196000, -0.064778500, 0.043120000, - -0.031731800, 0.024395100, -0.013833100, -0.001281660 }, - { 0.007333050, 0.002465150, -0.018342900, 0.035928600, - -0.059357700, 0.097267200, -0.184139000, 0.888292000, - 0.295456000, -0.115027000, 0.065790100, -0.043727700, - 0.032075900, -0.024537700, 0.013832800, 0.001308310 }, - { -0.007266020, -0.002649160, 0.018608200, -0.036274700, - 0.059841400, -0.098015500, 0.185440000, -0.885030000, - -0.300751000, 0.116849000, -0.066795600, 0.044331000, - -0.032416900, 0.024678000, -0.013831200, -0.001335360 }, - { 0.007199140, 0.002831930, -0.018870000, 0.036614400, - -0.060314500, 0.098745500, -0.186703000, 0.881727000, - 0.306057000, -0.118663000, 0.067794800, -0.044930000, - 0.032754700, -0.024816100, 0.013828300, 0.001362810 }, - { -0.007132410, -0.003013430, 0.019128500, -0.036947800, - 0.060777000, -0.099457400, 0.187929000, -0.878383000, - -0.311372000, 0.120467000, -0.068787400, 0.045524500, - -0.033089200, 0.024951900, -0.013824200, -0.001390630 }, - { 0.007065840, 0.003193670, -0.019383500, 0.037274800, - -0.061228700, 0.100151000, -0.189118000, 0.874998000, - 0.316697000, -0.122261000, 0.069773400, -0.046114300, - 0.033420400, -0.025085300, 0.013818800, 0.001418820 }, - { -0.006999420, -0.003372610, 0.019635200, -0.037595400, - 0.061669700, -0.100826000, 0.190269000, -0.871573000, - -0.322032000, 0.124046000, -0.070752600, 0.046699500, - -0.033748200, 0.025216300, -0.013812100, -0.001447370 }, - { 0.006933170, 0.003550250, -0.019883400, 0.037909600, - -0.062100000, 0.101483000, -0.191383000, 0.868108000, - 0.327374000, -0.125821000, 0.071724700, -0.047279900, - 0.034072600, -0.025345000, 0.013804200, 0.001476260 }, - { -0.006867080, -0.003726580, 0.020128100, -0.038217400, - 0.062519400, -0.102122000, 0.192461000, -0.864602000, - -0.332726000, 0.127585000, -0.072689700, 0.047855300, - -0.034393500, 0.025471200, -0.013794900, -0.001505490 }, - { 0.006801170, 0.003901590, -0.020369400, 0.038518700, - -0.062928100, 0.102742000, -0.193501000, 0.861058000, - 0.338085000, -0.129339000, 0.073647200, -0.048425700, - 0.034710800, -0.025595000, 0.013784300, 0.001535060 }, - { -0.006735430, -0.004075260, 0.020607200, -0.038813500, - 0.063325900, -0.103344000, 0.194505000, -0.857474000, - -0.343451000, 0.131082000, -0.074597300, 0.048991000, - -0.035024600, 0.025716300, -0.013772400, -0.001564950 }, - { 0.006669880, 0.004247570, -0.020841500, 0.039101900, - -0.063712900, 0.103928000, -0.195471000, 0.853851000, - 0.348824000, -0.132813000, 0.075539700, -0.049551100, - 0.035334600, -0.025835000, 0.013759200, 0.001595150 }, - { -0.006604510, -0.004418520, 0.021072300, -0.039383700, - 0.064089100, -0.104493000, 0.196402000, -0.850190000, - -0.354204000, 0.134532000, -0.076474100, 0.050105900, - -0.035641000, 0.025951300, -0.013744600, -0.001625680 }, - { 0.006539330, 0.004588100, -0.021299500, 0.039659100, - -0.064454400, 0.105040000, -0.197295000, 0.846491000, - 0.359590000, -0.136240000, 0.077400500, -0.050655300, - 0.035943500, -0.026065000, 0.013728700, 0.001656520 }, - { -0.006474340, -0.004756290, 0.021523200, -0.039927800, - 0.064808800, -0.105568000, 0.198153000, -0.842754000, - -0.364982000, 0.137935000, -0.078318700, 0.051199100, - -0.036242200, 0.026176100, -0.013711400, -0.001687680 }, - { 0.006409560, 0.004923090, -0.021743400, 0.040190100, - -0.065152300, 0.106078000, -0.198974000, 0.838980000, - 0.370379000, -0.139618000, 0.079228600, -0.051737300, - 0.036537000, -0.026284600, 0.013692700, 0.001719160 }, - { -0.006344970, -0.005088480, 0.021959900, -0.040445700, - 0.065484900, -0.106570000, 0.199758000, -0.835168000, - -0.375780000, 0.141287000, -0.080129800, 0.052269800, - -0.036827900, 0.026390400, -0.013672700, -0.001750970 }, - { 0.006280600, 0.005252450, -0.022172900, 0.040694800, - -0.065806500, 0.107043000, -0.200507000, 0.831320000, - 0.381186000, -0.142944000, 0.081022300, -0.052796500, - 0.037114800, -0.026493600, 0.013651200, 0.001783110 }, - { -0.006216440, -0.005415000, 0.022382300, -0.040937300, - 0.066117300, -0.107498000, 0.201220000, -0.827436000, - -0.386596000, 0.144586000, -0.081905900, 0.053317300, - -0.037397500, 0.026594100, -0.013628400, -0.001815590 }, - { 0.006152510, 0.005576110, -0.022588000, 0.041173200, - -0.066417100, 0.107935000, -0.201897000, 0.823515000, - 0.392009000, -0.146215000, 0.082780500, -0.053832000, - 0.037676200, -0.026691800, 0.013604200, 0.001848420 }, - { -0.006088800, -0.005735770, 0.022790200, -0.041402500, - 0.066706000, -0.108353000, 0.202539000, -0.819559000, - -0.397425000, 0.147830000, -0.083645800, 0.054340600, - -0.037950700, 0.026786800, -0.013578500, -0.001881610 }, - { 0.006025320, 0.005893980, -0.022988700, 0.041625200, - -0.066983900, 0.108753000, -0.203145000, 0.815568000, - 0.402843000, -0.149431000, 0.084501700, -0.054843000, - 0.038221000, -0.026879000, 0.013551500, 0.001915170 }, - { -0.005962090, -0.006050720, 0.023183600, -0.041841300, - 0.067250900, -0.109135000, 0.203715000, -0.811542000, - -0.408264000, 0.151016000, -0.085348100, 0.055339100, - -0.038486900, 0.026968500, -0.013523000, -0.001949110 }, - { 0.005899110, 0.006205990, -0.023374800, 0.042050800, - -0.067507000, 0.109498000, -0.204250000, 0.807481000, - 0.413686000, -0.152586000, 0.086184700, -0.055828800, - 0.038748600, -0.027055100, 0.013493100, 0.001983430 }, - { -0.005836370, -0.006359780, 0.023562400, -0.042253600, - 0.067752100, -0.109843000, 0.204751000, -0.803387000, - -0.419109000, 0.154141000, -0.087011400, 0.056312000, - -0.039005800, 0.027138800, -0.013461700, -0.002018150 }, - { 0.005773900, 0.006512080, -0.023746300, 0.042449800, - -0.067986300, 0.110170000, -0.205216000, 0.799258000, - 0.424533000, -0.155681000, 0.087828100, -0.056788600, - 0.039258600, -0.027219700, 0.013428900, 0.002053260 }, - { -0.005711700, -0.006662890, 0.023926500, -0.042639300, - 0.068209600, -0.110479000, 0.205646000, -0.795096000, - -0.429957000, 0.157204000, -0.088634500, 0.057258500, - -0.039506900, 0.027297700, -0.013394600, -0.002088790 }, - { 0.005649770, 0.006812190, -0.024103100, 0.042822200, - -0.068422000, 0.110769000, -0.206042000, 0.790902000, - 0.435380000, -0.158711000, 0.089430600, -0.057721700, - 0.039750700, -0.027372700, 0.013358900, 0.002124730 }, - { -0.005588130, -0.006959980, 0.024275900, -0.042998500, - 0.068623400, -0.111041000, 0.206403000, -0.786674000, - -0.440803000, 0.160201000, -0.090216100, 0.058177900, - -0.039989900, 0.027444800, -0.013321700, -0.002161090 }, - { 0.005526770, 0.007106250, -0.024445100, 0.043168100, - -0.068814000, 0.111295000, -0.206731000, 0.782415000, - 0.446225000, -0.161674000, 0.090990900, -0.058627200, - 0.040224400, -0.027514000, 0.013283000, 0.002197860 }, - { -0.005465700, -0.007251000, 0.024610600, -0.043331100, - 0.068993700, -0.111531000, 0.207023000, -0.778123000, - -0.451645000, 0.163130000, -0.091754800, 0.059069400, - -0.040454200, 0.027580100, -0.013242800, -0.002235060 }, - { 0.005404930, 0.007394220, -0.024772300, 0.043487500, - -0.069162500, 0.111750000, -0.207282000, 0.773801000, - 0.457063000, -0.164568000, 0.092507700, -0.059504500, - 0.040679200, -0.027643200, 0.013201200, 0.002272680 }, - { -0.005344460, -0.007535900, 0.024930400, -0.043637200, - 0.069320400, -0.111950000, 0.207508000, -0.769447000, - -0.462478000, 0.165988000, -0.093249500, 0.059932300, - -0.040899500, 0.027703300, -0.013158100, -0.002310720 }, - { 0.005284290, 0.007676030, -0.025084700, 0.043780300, - -0.069467500, 0.112132000, -0.207699000, 0.765063000, - 0.467891000, -0.167391000, 0.093979900, -0.060352800, - 0.041114900, -0.027760300, 0.013113400, 0.002349170 }, - { -0.005224440, -0.007814610, 0.025235300, -0.043916800, - 0.069603800, -0.112296000, 0.207857000, -0.760649000, - -0.473299000, 0.168774000, -0.094698800, 0.060765800, - -0.041325400, 0.027814200, -0.013067200, -0.002388040 }, - { 0.005164890, 0.007951640, -0.025382200, 0.044046600, - -0.069729300, 0.112442000, -0.207982000, 0.756204000, - 0.478704000, -0.170139000, 0.095406000, -0.061171400, - 0.041530900, -0.027865000, 0.013019600, 0.002427310 }, - { -0.005105670, -0.008087110, 0.025525400, -0.044169900, - 0.069844000, -0.112571000, 0.208074000, -0.751731000, - -0.484104000, 0.171485000, -0.096101500, 0.061569300, - -0.041731400, 0.027912700, -0.012970400, -0.002466990 }, - { 0.005046750, 0.008221000, -0.025664900, 0.044286500, - -0.069947900, 0.112682000, -0.208133000, 0.747228000, - 0.489500000, -0.172811000, 0.096785000, -0.061959600, - 0.041926900, -0.027957300, 0.012919600, 0.002507070 }, - { -0.004988160, -0.008353330, 0.025800600, -0.044396600, - 0.070041100, -0.112775000, 0.208159000, -0.742698000, - -0.494890000, 0.174118000, -0.097456400, 0.062342100, - -0.042117300, 0.027998600, -0.012867400, -0.002547540 }, - { 0.004929880, 0.008484080, -0.025932700, 0.044500000, - -0.070123600, 0.112850000, -0.208153000, 0.738138000, - 0.500274000, -0.175405000, 0.098115500, -0.062716700, - 0.042302600, -0.028036800, 0.012813600, 0.002588390 }, - { -0.004871920, -0.008613240, 0.026060900, -0.044596900, - 0.070195500, -0.112908000, 0.208114000, -0.733552000, - -0.505652000, 0.176671000, -0.098762300, 0.063083500, - -0.042482700, 0.028071700, -0.012758200, -0.002629630 }, - { 0.004814280, 0.008740820, -0.026185500, 0.044687200, - -0.070256600, 0.112949000, -0.208043000, 0.728938000, - 0.511023000, -0.177917000, 0.099396500, -0.063442100, - 0.042657500, -0.028103500, 0.012701300, 0.002671240 }, - { -0.004756970, -0.008866800, 0.026306400, -0.044771000, - 0.070307200, -0.112972000, 0.207941000, -0.724297000, - -0.516386000, 0.179142000, -0.100018000, 0.063792700, - -0.042827100, 0.028131900, -0.012642800, -0.002713230 }, - { 0.004699970, 0.008991190, -0.026423500, 0.044848200, - -0.070347100, 0.112977000, -0.207806000, 0.719630000, - 0.521742000, -0.180346000, 0.100627000, -0.064135100, - 0.042991400, -0.028157100, 0.012582800, 0.002755580 }, - { -0.004643290, -0.009113970, 0.026536900, -0.044918900, - 0.070376500, -0.112966000, 0.207641000, -0.714936000, - -0.527090000, 0.181528000, -0.101222000, 0.064469200, - -0.043150300, 0.028179000, -0.012521200, -0.002798310 }, - { 0.004586940, 0.009235160, -0.026646600, 0.044983100, - -0.070395400, 0.112937000, -0.207444000, 0.710218000, - 0.532429000, -0.182688000, 0.101805000, -0.064795000, - 0.043303700, -0.028197600, 0.012458000, 0.002841390 }, - { -0.004530910, -0.009354740, 0.026752600, -0.045040800, - 0.070403800, -0.112891000, 0.207216000, -0.705474000, - -0.537759000, 0.183827000, -0.102374000, 0.065112400, - -0.043451800, 0.028212900, -0.012393300, -0.002884840 }, - { 0.004475210, 0.009472700, -0.026854800, 0.045092000, - -0.070401800, 0.112828000, -0.206957000, 0.700705000, - 0.543079000, -0.184943000, 0.102930000, -0.065421200, - 0.043594300, -0.028224800, 0.012327000, 0.002928660 }, - { -0.004419840, -0.009589060, 0.026953400, -0.045136800, - 0.070389300, -0.112748000, 0.206667000, -0.695912000, - -0.548389000, 0.186036000, -0.103473000, 0.065721500, - -0.043731300, 0.028233400, -0.012259000, -0.002972840 }, - { 0.004364790, 0.009703800, -0.027048300, 0.045175100, - -0.070366500, 0.112651000, -0.206347000, 0.691096000, - 0.553689000, -0.187106000, 0.104001000, -0.066013100, - 0.043862800, -0.028238600, 0.012189500, 0.003017380 }, - { -0.004310080, -0.009816920, 0.027139400, -0.045207000, - 0.070333300, -0.112537000, 0.205997000, -0.686256000, - -0.558978000, 0.188154000, -0.104516000, 0.066296000, - -0.043988600, 0.028240400, -0.012118400, -0.003062300 }, - { 0.004255710, 0.009928420, -0.027226900, 0.045232400, - -0.070289900, 0.112406000, -0.205617000, 0.681393000, - 0.564255000, -0.189177000, 0.105017000, -0.066570100, - 0.044108700, -0.028238700, 0.012045700, 0.003107590 }, - { -0.004201670, -0.010038300, 0.027310700, -0.045251500, - 0.070236200, -0.112259000, 0.205208000, -0.676508000, - -0.569520000, 0.190177000, -0.105504000, 0.066835300, - -0.044223200, 0.028233700, -0.011971400, -0.003153250 }, - { 0.004147990, 0.010146600, -0.027390800, 0.045264300, - -0.070172300, 0.112096000, -0.204769000, 0.671600000, - 0.574773000, -0.191153000, 0.105976000, -0.067091500, - 0.044332000, -0.028225200, 0.011895500, 0.003199290 }, - { -0.004094650, -0.010253200, 0.027467200, -0.045270600, - 0.070098300, -0.111916000, 0.204300000, -0.666671000, - -0.580013000, 0.192105000, -0.106435000, 0.067338800, - -0.044435000, 0.028213200, -0.011818000, -0.003245720 }, - { 0.004041660, 0.010358200, -0.027540000, 0.045270700, - -0.070014200, 0.111719000, -0.203803000, 0.661721000, - 0.585239000, -0.193032000, 0.106879000, -0.067576900, - 0.044532100, -0.028197800, 0.011738900, 0.003292530 }, - { -0.003989040, -0.010461600, 0.027609100, -0.045264500, - 0.069920000, -0.111506000, 0.203277000, -0.656750000, - -0.590452000, 0.193934000, -0.107308000, 0.067805900, - -0.044623500, 0.028178800, -0.011658200, -0.003339730 }, - { 0.003936790, 0.010563400, -0.027674600, 0.045252000, - -0.069815800, 0.111277000, -0.202722000, 0.651759000, - 0.595651000, -0.194811000, 0.107722000, -0.068025700, - 0.044708900, -0.028156400, 0.011575800, 0.003387320 }, - { -0.003884900, -0.010663500, 0.027736400, -0.045233300, - 0.069701700, -0.111032000, 0.202139000, -0.646748000, - -0.600834000, 0.195663000, -0.108122000, 0.068236100, - -0.044788500, 0.028130400, -0.011491900, -0.003435300 }, - { 0.003833390, 0.010762100, -0.027794600, 0.045208300, - -0.069577700, 0.110771000, -0.201528000, 0.641718000, - 0.606003000, -0.196489000, 0.108507000, -0.068437200, - 0.044862100, -0.028101000, 0.011406300, 0.003483680 }, - { -0.003782260, -0.010859000, 0.027849100, -0.045177200, - 0.069443800, -0.110495000, 0.200890000, -0.636669000, - -0.611156000, 0.197289000, -0.108877000, 0.068628900, - -0.044929800, 0.028067900, -0.011319200, -0.003532460 }, - { 0.003731520, 0.010954200, -0.027900100, 0.045139900, - -0.069300200, 0.110202000, -0.200223000, 0.631601000, - 0.616292000, -0.198062000, 0.109231000, -0.068811100, - 0.044991400, -0.028031300, 0.011230400, 0.003581630 }, - { -0.003681160, -0.011047900, 0.027947400, -0.045096500, - 0.069146800, -0.109894000, 0.199530000, -0.626516000, - -0.621413000, 0.198809000, -0.109570000, 0.068983800, - -0.045047000, 0.027991200, -0.011139900, -0.003631200 }, - { 0.003631200, 0.011139900, -0.027991200, 0.045047000, - -0.068983800, 0.109570000, -0.198809000, 0.621413000, - 0.626516000, -0.199530000, 0.109894000, -0.069146800, - 0.045096500, -0.027947400, 0.011047900, 0.003681160 }, - { -0.003581630, -0.011230400, 0.028031300, -0.044991400, - 0.068811100, -0.109231000, 0.198062000, -0.616292000, - -0.631601000, 0.200223000, -0.110202000, 0.069300200, - -0.045139900, 0.027900100, -0.010954200, -0.003731520 }, - { 0.003532460, 0.011319200, -0.028067900, 0.044929800, - -0.068628900, 0.108877000, -0.197289000, 0.611156000, - 0.636669000, -0.200890000, 0.110495000, -0.069443800, - 0.045177200, -0.027849100, 0.010859000, 0.003782260 }, - { -0.003483680, -0.011406300, 0.028101000, -0.044862100, - 0.068437200, -0.108507000, 0.196489000, -0.606003000, - -0.641718000, 0.201528000, -0.110771000, 0.069577700, - -0.045208300, 0.027794600, -0.010762100, -0.003833390 }, - { 0.003435300, 0.011491900, -0.028130400, 0.044788500, - -0.068236100, 0.108122000, -0.195663000, 0.600834000, - 0.646748000, -0.202139000, 0.111032000, -0.069701700, - 0.045233300, -0.027736400, 0.010663500, 0.003884900 }, - { -0.003387320, -0.011575800, 0.028156400, -0.044708900, - 0.068025700, -0.107722000, 0.194811000, -0.595651000, - -0.651759000, 0.202722000, -0.111277000, 0.069815800, - -0.045252000, 0.027674600, -0.010563400, -0.003936790 }, - { 0.003339730, 0.011658200, -0.028178800, 0.044623500, - -0.067805900, 0.107308000, -0.193934000, 0.590452000, - 0.656750000, -0.203277000, 0.111506000, -0.069920000, - 0.045264500, -0.027609100, 0.010461600, 0.003989040 }, - { -0.003292530, -0.011738900, 0.028197800, -0.044532100, - 0.067576900, -0.106879000, 0.193032000, -0.585239000, - -0.661721000, 0.203803000, -0.111719000, 0.070014200, - -0.045270700, 0.027540000, -0.010358200, -0.004041660 }, - { 0.003245720, 0.011818000, -0.028213200, 0.044435000, - -0.067338800, 0.106435000, -0.192105000, 0.580013000, - 0.666671000, -0.204300000, 0.111916000, -0.070098300, - 0.045270600, -0.027467200, 0.010253200, 0.004094650 }, - { -0.003199290, -0.011895500, 0.028225200, -0.044332000, - 0.067091500, -0.105976000, 0.191153000, -0.574773000, - -0.671600000, 0.204769000, -0.112096000, 0.070172300, - -0.045264300, 0.027390800, -0.010146600, -0.004147990 }, - { 0.003153250, 0.011971400, -0.028233700, 0.044223200, - -0.066835300, 0.105504000, -0.190177000, 0.569520000, - 0.676508000, -0.205208000, 0.112259000, -0.070236200, - 0.045251500, -0.027310700, 0.010038300, 0.004201670 }, - { -0.003107590, -0.012045700, 0.028238700, -0.044108700, - 0.066570100, -0.105017000, 0.189177000, -0.564255000, - -0.681393000, 0.205617000, -0.112406000, 0.070289900, - -0.045232400, 0.027226900, -0.009928420, -0.004255710 }, - { 0.003062300, 0.012118400, -0.028240400, 0.043988600, - -0.066296000, 0.104516000, -0.188154000, 0.558978000, - 0.686256000, -0.205997000, 0.112537000, -0.070333300, - 0.045207000, -0.027139400, 0.009816920, 0.004310080 }, - { -0.003017380, -0.012189500, 0.028238600, -0.043862800, - 0.066013100, -0.104001000, 0.187106000, -0.553689000, - -0.691096000, 0.206347000, -0.112651000, 0.070366500, - -0.045175100, 0.027048300, -0.009703800, -0.004364790 }, - { 0.002972840, 0.012259000, -0.028233400, 0.043731300, - -0.065721500, 0.103473000, -0.186036000, 0.548389000, - 0.695912000, -0.206667000, 0.112748000, -0.070389300, - 0.045136800, -0.026953400, 0.009589060, 0.004419840 }, - { -0.002928660, -0.012327000, 0.028224800, -0.043594300, - 0.065421200, -0.102930000, 0.184943000, -0.543079000, - -0.700705000, 0.206957000, -0.112828000, 0.070401800, - -0.045092000, 0.026854800, -0.009472700, -0.004475210 }, - { 0.002884840, 0.012393300, -0.028212900, 0.043451800, - -0.065112400, 0.102374000, -0.183827000, 0.537759000, - 0.705474000, -0.207216000, 0.112891000, -0.070403800, - 0.045040800, -0.026752600, 0.009354740, 0.004530910 }, - { -0.002841390, -0.012458000, 0.028197600, -0.043303700, - 0.064795000, -0.101805000, 0.182688000, -0.532429000, - -0.710218000, 0.207444000, -0.112937000, 0.070395400, - -0.044983100, 0.026646600, -0.009235160, -0.004586940 }, - { 0.002798310, 0.012521200, -0.028179000, 0.043150300, - -0.064469200, 0.101222000, -0.181528000, 0.527090000, - 0.714936000, -0.207641000, 0.112966000, -0.070376500, - 0.044918900, -0.026536900, 0.009113970, 0.004643290 }, - { -0.002755580, -0.012582800, 0.028157100, -0.042991400, - 0.064135100, -0.100627000, 0.180346000, -0.521742000, - -0.719630000, 0.207806000, -0.112977000, 0.070347100, - -0.044848200, 0.026423500, -0.008991190, -0.004699970 }, - { 0.002713230, 0.012642800, -0.028131900, 0.042827100, - -0.063792700, 0.100018000, -0.179142000, 0.516386000, - 0.724297000, -0.207941000, 0.112972000, -0.070307200, - 0.044771000, -0.026306400, 0.008866800, 0.004756970 }, - { -0.002671240, -0.012701300, 0.028103500, -0.042657500, - 0.063442100, -0.099396500, 0.177917000, -0.511023000, - -0.728938000, 0.208043000, -0.112949000, 0.070256600, - -0.044687200, 0.026185500, -0.008740820, -0.004814280 }, - { 0.002629630, 0.012758200, -0.028071700, 0.042482700, - -0.063083500, 0.098762300, -0.176671000, 0.505652000, - 0.733552000, -0.208114000, 0.112908000, -0.070195500, - 0.044596900, -0.026060900, 0.008613240, 0.004871920 }, - { -0.002588390, -0.012813600, 0.028036800, -0.042302600, - 0.062716700, -0.098115500, 0.175405000, -0.500274000, - -0.738138000, 0.208153000, -0.112850000, 0.070123600, - -0.044500000, 0.025932700, -0.008484080, -0.004929880 }, - { 0.002547540, 0.012867400, -0.027998600, 0.042117300, - -0.062342100, 0.097456400, -0.174118000, 0.494890000, - 0.742698000, -0.208159000, 0.112775000, -0.070041100, - 0.044396600, -0.025800600, 0.008353330, 0.004988160 }, - { -0.002507070, -0.012919600, 0.027957300, -0.041926900, - 0.061959600, -0.096785000, 0.172811000, -0.489500000, - -0.747228000, 0.208133000, -0.112682000, 0.069947900, - -0.044286500, 0.025664900, -0.008221000, -0.005046750 }, - { 0.002466990, 0.012970400, -0.027912700, 0.041731400, - -0.061569300, 0.096101500, -0.171485000, 0.484104000, - 0.751731000, -0.208074000, 0.112571000, -0.069844000, - 0.044169900, -0.025525400, 0.008087110, 0.005105670 }, - { -0.002427310, -0.013019600, 0.027865000, -0.041530900, - 0.061171400, -0.095406000, 0.170139000, -0.478704000, - -0.756204000, 0.207982000, -0.112442000, 0.069729300, - -0.044046600, 0.025382200, -0.007951640, -0.005164890 }, - { 0.002388040, 0.013067200, -0.027814200, 0.041325400, - -0.060765800, 0.094698800, -0.168774000, 0.473299000, - 0.760649000, -0.207857000, 0.112296000, -0.069603800, - 0.043916800, -0.025235300, 0.007814610, 0.005224440 }, - { -0.002349170, -0.013113400, 0.027760300, -0.041114900, - 0.060352800, -0.093979900, 0.167391000, -0.467891000, - -0.765063000, 0.207699000, -0.112132000, 0.069467500, - -0.043780300, 0.025084700, -0.007676030, -0.005284290 }, - { 0.002310720, 0.013158100, -0.027703300, 0.040899500, - -0.059932300, 0.093249500, -0.165988000, 0.462478000, - 0.769447000, -0.207508000, 0.111950000, -0.069320400, - 0.043637200, -0.024930400, 0.007535900, 0.005344460 }, - { -0.002272680, -0.013201200, 0.027643200, -0.040679200, - 0.059504500, -0.092507700, 0.164568000, -0.457063000, - -0.773801000, 0.207282000, -0.111750000, 0.069162500, - -0.043487500, 0.024772300, -0.007394220, -0.005404930 }, - { 0.002235060, 0.013242800, -0.027580100, 0.040454200, - -0.059069400, 0.091754800, -0.163130000, 0.451645000, - 0.778123000, -0.207023000, 0.111531000, -0.068993700, - 0.043331100, -0.024610600, 0.007251000, 0.005465700 }, - { -0.002197860, -0.013283000, 0.027514000, -0.040224400, - 0.058627200, -0.090990900, 0.161674000, -0.446225000, - -0.782415000, 0.206731000, -0.111295000, 0.068814000, - -0.043168100, 0.024445100, -0.007106250, -0.005526770 }, - { 0.002161090, 0.013321700, -0.027444800, 0.039989900, - -0.058177900, 0.090216100, -0.160201000, 0.440803000, - 0.786674000, -0.206403000, 0.111041000, -0.068623400, - 0.042998500, -0.024275900, 0.006959980, 0.005588130 }, - { -0.002124730, -0.013358900, 0.027372700, -0.039750700, - 0.057721700, -0.089430600, 0.158711000, -0.435380000, - -0.790902000, 0.206042000, -0.110769000, 0.068422000, - -0.042822200, 0.024103100, -0.006812190, -0.005649770 }, - { 0.002088790, 0.013394600, -0.027297700, 0.039506900, - -0.057258500, 0.088634500, -0.157204000, 0.429957000, - 0.795096000, -0.205646000, 0.110479000, -0.068209600, - 0.042639300, -0.023926500, 0.006662890, 0.005711700 }, - { -0.002053260, -0.013428900, 0.027219700, -0.039258600, - 0.056788600, -0.087828100, 0.155681000, -0.424533000, - -0.799258000, 0.205216000, -0.110170000, 0.067986300, - -0.042449800, 0.023746300, -0.006512080, -0.005773900 }, - { 0.002018150, 0.013461700, -0.027138800, 0.039005800, - -0.056312000, 0.087011400, -0.154141000, 0.419109000, - 0.803387000, -0.204751000, 0.109843000, -0.067752100, - 0.042253600, -0.023562400, 0.006359780, 0.005836370 }, - { -0.001983430, -0.013493100, 0.027055100, -0.038748600, - 0.055828800, -0.086184700, 0.152586000, -0.413686000, - -0.807481000, 0.204250000, -0.109498000, 0.067507000, - -0.042050800, 0.023374800, -0.006205990, -0.005899110 }, - { 0.001949110, 0.013523000, -0.026968500, 0.038486900, - -0.055339100, 0.085348100, -0.151016000, 0.408264000, - 0.811542000, -0.203715000, 0.109135000, -0.067250900, - 0.041841300, -0.023183600, 0.006050720, 0.005962090 }, - { -0.001915170, -0.013551500, 0.026879000, -0.038221000, - 0.054843000, -0.084501700, 0.149431000, -0.402843000, - -0.815568000, 0.203145000, -0.108753000, 0.066983900, - -0.041625200, 0.022988700, -0.005893980, -0.006025320 }, - { 0.001881610, 0.013578500, -0.026786800, 0.037950700, - -0.054340600, 0.083645800, -0.147830000, 0.397425000, - 0.819559000, -0.202539000, 0.108353000, -0.066706000, - 0.041402500, -0.022790200, 0.005735770, 0.006088800 }, - { -0.001848420, -0.013604200, 0.026691800, -0.037676200, - 0.053832000, -0.082780500, 0.146215000, -0.392009000, - -0.823515000, 0.201897000, -0.107935000, 0.066417100, - -0.041173200, 0.022588000, -0.005576110, -0.006152510 }, - { 0.001815590, 0.013628400, -0.026594100, 0.037397500, - -0.053317300, 0.081905900, -0.144586000, 0.386596000, - 0.827436000, -0.201220000, 0.107498000, -0.066117300, - 0.040937300, -0.022382300, 0.005415000, 0.006216440 }, - { -0.001783110, -0.013651200, 0.026493600, -0.037114800, - 0.052796500, -0.081022300, 0.142944000, -0.381186000, - -0.831320000, 0.200507000, -0.107043000, 0.065806500, - -0.040694800, 0.022172900, -0.005252450, -0.006280600 }, - { 0.001750970, 0.013672700, -0.026390400, 0.036827900, - -0.052269800, 0.080129800, -0.141287000, 0.375780000, - 0.835168000, -0.199758000, 0.106570000, -0.065484900, - 0.040445700, -0.021959900, 0.005088480, 0.006344970 }, - { -0.001719160, -0.013692700, 0.026284600, -0.036537000, - 0.051737300, -0.079228600, 0.139618000, -0.370379000, - -0.838980000, 0.198974000, -0.106078000, 0.065152300, - -0.040190100, 0.021743400, -0.004923090, -0.006409560 }, - { 0.001687680, 0.013711400, -0.026176100, 0.036242200, - -0.051199100, 0.078318700, -0.137935000, 0.364982000, - 0.842754000, -0.198153000, 0.105568000, -0.064808800, - 0.039927800, -0.021523200, 0.004756290, 0.006474340 }, - { -0.001656520, -0.013728700, 0.026065000, -0.035943500, - 0.050655300, -0.077400500, 0.136240000, -0.359590000, - -0.846491000, 0.197295000, -0.105040000, 0.064454400, - -0.039659100, 0.021299500, -0.004588100, -0.006539330 }, - { 0.001625680, 0.013744600, -0.025951300, 0.035641000, - -0.050105900, 0.076474100, -0.134532000, 0.354204000, - 0.850190000, -0.196402000, 0.104493000, -0.064089100, - 0.039383700, -0.021072300, 0.004418520, 0.006604510 }, - { -0.001595150, -0.013759200, 0.025835000, -0.035334600, - 0.049551100, -0.075539700, 0.132813000, -0.348824000, - -0.853851000, 0.195471000, -0.103928000, 0.063712900, - -0.039101900, 0.020841500, -0.004247570, -0.006669880 }, - { 0.001564950, 0.013772400, -0.025716300, 0.035024600, - -0.048991000, 0.074597300, -0.131082000, 0.343451000, - 0.857474000, -0.194505000, 0.103344000, -0.063325900, - 0.038813500, -0.020607200, 0.004075260, 0.006735430 }, - { -0.001535060, -0.013784300, 0.025595000, -0.034710800, - 0.048425700, -0.073647200, 0.129339000, -0.338085000, - -0.861058000, 0.193501000, -0.102742000, 0.062928100, - -0.038518700, 0.020369400, -0.003901590, -0.006801170 }, - { 0.001505490, 0.013794900, -0.025471200, 0.034393500, - -0.047855300, 0.072689700, -0.127585000, 0.332726000, - 0.864602000, -0.192461000, 0.102122000, -0.062519400, - 0.038217400, -0.020128100, 0.003726580, 0.006867080 }, - { -0.001476260, -0.013804200, 0.025345000, -0.034072600, - 0.047279900, -0.071724700, 0.125821000, -0.327374000, - -0.868108000, 0.191383000, -0.101483000, 0.062100000, - -0.037909600, 0.019883400, -0.003550250, -0.006933170 }, - { 0.001447370, 0.013812100, -0.025216300, 0.033748200, - -0.046699500, 0.070752600, -0.124046000, 0.322032000, - 0.871573000, -0.190269000, 0.100826000, -0.061669700, - 0.037595400, -0.019635200, 0.003372610, 0.006999420 }, - { -0.001418820, -0.013818800, 0.025085300, -0.033420400, - 0.046114300, -0.069773400, 0.122261000, -0.316697000, - -0.874998000, 0.189118000, -0.100151000, 0.061228700, - -0.037274800, 0.019383500, -0.003193670, -0.007065840 }, - { 0.001390630, 0.013824200, -0.024951900, 0.033089200, - -0.045524500, 0.068787400, -0.120467000, 0.311372000, - 0.878383000, -0.187929000, 0.099457400, -0.060777000, - 0.036947800, -0.019128500, 0.003013430, 0.007132410 }, - { -0.001362810, -0.013828300, 0.024816100, -0.032754700, - 0.044930000, -0.067794800, 0.118663000, -0.306057000, - -0.881727000, 0.186703000, -0.098745500, 0.060314500, - -0.036614400, 0.018870000, -0.002831930, -0.007199140 }, - { 0.001335360, 0.013831200, -0.024678000, 0.032416900, - -0.044331000, 0.066795600, -0.116849000, 0.300751000, - 0.885030000, -0.185440000, 0.098015500, -0.059841400, - 0.036274700, -0.018608200, 0.002649160, 0.007266020 }, - { -0.001308310, -0.013832800, 0.024537700, -0.032075900, - 0.043727700, -0.065790100, 0.115027000, -0.295456000, - -0.888292000, 0.184139000, -0.097267200, 0.059357700, - -0.035928600, 0.018342900, -0.002465150, -0.007333050 }, - { 0.001281660, 0.013833100, -0.024395100, 0.031731800, - -0.043120000, 0.064778500, -0.113196000, 0.290172000, - 0.891512000, -0.182801000, 0.096500800, -0.058863300, - 0.035576300, -0.018074400, 0.002279910, 0.007400210 }, - { -0.001255410, -0.013832300, 0.024250300, -0.031384600, - 0.042508200, -0.063761000, 0.111357000, -0.284899000, - -0.894690000, 0.181426000, -0.095716300, 0.058358400, - -0.035217700, 0.017802500, -0.002093450, -0.007467500 }, - { 0.001229590, 0.013830200, -0.024103300, 0.031034400, - -0.041892300, 0.062737600, -0.109510000, 0.279638000, - 0.897826000, -0.180012000, 0.094913600, -0.057842900, - 0.034852800, -0.017527400, 0.001905780, 0.007534920 }, - { -0.001204190, -0.013826900, 0.023954100, -0.030681200, - 0.041272400, -0.061708600, 0.107656000, -0.274389000, - -0.900919000, 0.178561000, -0.094092900, 0.057317000, - -0.034481800, 0.017248900, -0.001716930, -0.007602450 }, - { 0.001179210, 0.013822400, -0.023802800, 0.030325200, - -0.040648600, 0.060674200, -0.105794000, 0.269153000, - 0.903969000, -0.177073000, 0.093254300, -0.056780500, - 0.034104500, -0.016967200, 0.001526900, 0.007670090 }, - { -0.001154660, -0.013816700, 0.023649400, -0.029966300, - 0.040021100, -0.059634500, 0.103925000, -0.263929000, - -0.906976000, 0.175546000, -0.092397600, 0.056233700, - -0.033721100, 0.016682300, -0.001335720, -0.007737840 }, - { 0.001130530, 0.013809800, -0.023493900, 0.029604600, - -0.039389900, 0.058589800, -0.102050000, 0.258719000, - 0.909939000, -0.173982000, 0.091523000, -0.055676400, - 0.033331600, -0.016394100, 0.001143390, 0.007805680 }, - { -0.001106820, -0.013801800, 0.023336400, -0.029240200, - 0.038755100, -0.057540100, 0.100168000, -0.253523000, - -0.912859000, 0.172380000, -0.090630600, 0.055108900, - -0.032936000, 0.016102800, -0.000949933, -0.007873600 }, - { 0.001083520, 0.013792600, -0.023176800, 0.028873100, - -0.038117000, 0.056485700, -0.098280000, 0.248340000, - 0.915735000, -0.170740000, 0.089720400, -0.054531000, - 0.032534400, -0.015808300, 0.000755366, 0.007941610 }, - { -0.001060610, -0.013782200, 0.023015300, -0.028503500, - 0.037475400, -0.055426700, 0.096386300, -0.243173000, - -0.918566000, 0.169062000, -0.088792500, 0.053942900, - -0.032126700, 0.015510700, -0.000559702, -0.008009680 }, - { 0.001038070, 0.013770700, -0.022851800, 0.028131300, - -0.036830600, 0.054363300, -0.094487100, 0.238020000, - 0.921353000, -0.167346000, 0.087846900, -0.053344600, - 0.031713100, -0.015210000, 0.000362959, 0.008077800 }, - { -0.001015900, -0.013758100, 0.022686400, -0.027756600, - 0.036182700, -0.053295800, 0.092582800, -0.232883000, - -0.924095000, 0.165592000, -0.086883600, 0.052736100, - -0.031293500, 0.014906200, -0.000165153, -0.008145980 }, - { 0.000994065, 0.013744400, -0.022519100, 0.027379600, - -0.035531800, 0.052224200, -0.090673700, 0.227762000, - 0.926792000, -0.163800000, 0.085902800, -0.052117600, - 0.030868000, -0.014599300, -0.000033699, 0.008214200 }, - { -0.000972545, -0.013729500, 0.022350000, -0.027000200, - 0.034878000, -0.051148700, 0.088760100, -0.222657000, - -0.929443000, 0.161970000, -0.084904600, 0.051489100, - -0.030436600, 0.014289400, 0.000233582, -0.008282450 }, - { 0.000951314, 0.013713600, -0.022179000, 0.026618500, - -0.034221300, 0.050069600, -0.086842200, 0.217568000, - 0.932049000, -0.160102000, 0.083888900, -0.050850500, - 0.029999400, -0.013976600, -0.000434476, 0.008350720 }, - { -0.000930348, -0.013696600, 0.022006200, -0.026234500, - 0.033562000, -0.048986900, 0.084920300, -0.212496000, - -0.934609000, 0.158196000, -0.082855900, 0.050202100, - -0.029556500, 0.013660700, 0.000636364, -0.008419010 }, - { 0.000909621, 0.013678500, -0.021831600, 0.025848400, - -0.032900000, 0.047901000, -0.082994900, 0.207442000, - 0.937123000, -0.156252000, 0.081805600, -0.049543700, - 0.029107700, -0.013341900, -0.000839230, 0.008487300 }, - { -0.000889109, -0.013659300, 0.021655300, -0.025460200, - 0.032235500, -0.046811900, 0.081066100, -0.202406000, - -0.939591000, 0.154269000, -0.080738200, 0.048875600, - -0.028653300, 0.013020200, 0.001043050, -0.008555590 }, - { 0.000868789, 0.013639100, -0.021477300, 0.025070000, - -0.031568700, 0.045719800, -0.079134300, 0.197388000, - 0.942012000, -0.152249000, 0.079653700, -0.048197700, - 0.028193200, -0.012695600, -0.001247820, 0.008623860 }, - { -0.000848641, -0.013617800, 0.021297700, -0.024677800, - 0.030899600, -0.044624900, 0.077199800, -0.192388000, - -0.944386000, 0.150191000, -0.078552200, 0.047510200, - -0.027727600, 0.012368200, 0.001453500, -0.008692120 }, - { 0.000828649, 0.013595500, -0.021116400, 0.024283600, - -0.030228300, 0.043527300, -0.075262900, 0.187407000, - 0.946714000, -0.148095000, 0.077433700, -0.046813100, - 0.027256300, -0.012037900, -0.001660090, 0.008760350 }, - { -0.000808800, -0.013572200, 0.020933400, -0.023887600, - 0.029554900, -0.042427300, 0.073323800, -0.182445000, - -0.948994000, 0.145960000, -0.076298500, 0.046106400, - -0.026779500, 0.011704900, 0.001867560, -0.008828540 }, - { 0.000789086, 0.013547900, -0.020748900, 0.023489900, - -0.028879500, 0.041325100, -0.071382800, 0.177503000, - 0.951226000, -0.143788000, 0.075146500, -0.045390300, - 0.026297300, -0.011369100, -0.002075890, 0.008896700 }, - { -0.000769507, -0.013522500, 0.020562800, -0.023090300, - 0.028202300, -0.040220700, 0.069440400, -0.172581000, - -0.953411000, 0.141578000, -0.073977900, 0.044664700, - -0.025809600, 0.011030600, 0.002285070, -0.008964800 }, - { 0.000750066, 0.013496200, -0.020375300, 0.022689100, - -0.027523400, 0.039114400, -0.067496700, 0.167680000, - 0.955548000, -0.139329000, 0.072792800, -0.043929900, - 0.025316500, -0.010689400, -0.002495060, 0.009032840 }, - { -0.000730774, -0.013469000, 0.020186200, -0.022286300, - 0.026842800, -0.038006300, 0.065552000, -0.162799000, - -0.957637000, 0.137043000, -0.071591300, 0.043185700, - -0.024818200, 0.010345600, 0.002705870, -0.009100820 }, - { 0.000711649, 0.013440700, -0.019995700, 0.021882000, - -0.026160600, 0.036896600, -0.063606700, 0.157939000, - 0.959678000, -0.134719000, 0.070373400, -0.042432500, - 0.024314500, -0.009999080, -0.002917450, 0.009168730 }, - { -0.000692716, -0.013411500, 0.019803700, -0.021476100, - 0.025477100, -0.035785500, 0.061661000, -0.153101000, - -0.961670000, 0.132357000, -0.069139400, 0.041670100, - -0.023805700, 0.009650030, 0.003129790, -0.009236550 }, - { 0.000674005, 0.013381400, -0.019610300, 0.021068900, - -0.024792100, 0.034673200, -0.059715200, 0.148285000, - 0.963614000, -0.129958000, 0.067889200, -0.040898700, - 0.023291700, -0.009298430, -0.003342870, 0.009304290 }, - { -0.000655555, -0.013350400, 0.019415600, -0.020660300, - 0.024106000, -0.033559800, 0.057769600, -0.143491000, - -0.965508000, 0.127520000, -0.066623100, 0.040118300, - -0.022772500, 0.008944310, 0.003556670, -0.009371930 }, - { 0.000637409, 0.013318400, -0.019219600, 0.020250300, - -0.023418700, 0.032445500, -0.055824500, 0.138719000, - 0.967354000, -0.125045000, 0.065341100, -0.039329200, - 0.022248400, -0.008587720, -0.003771170, 0.009439470 }, - { -0.000619615, -0.013285600, 0.019022200, -0.019839200, - 0.022730400, -0.031330400, 0.053880200, -0.133970000, - -0.969150000, 0.122533000, -0.064043400, 0.038531200, - -0.021719200, 0.008228680, 0.003986340, -0.009506900 }, - { 0.000602227, 0.013251800, -0.018823600, 0.019426800, - -0.022041200, 0.030214800, -0.051936900, 0.129244000, - 0.970897000, -0.119983000, 0.062730000, -0.037724600, - 0.021185100, -0.007867250, -0.004202160, 0.009574200 }, - { -0.000585302, -0.013217200, 0.018623700, -0.019013400, - 0.021351200, -0.029098800, 0.049995000, -0.124542000, - -0.972595000, 0.117395000, -0.061401200, 0.036909400, - -0.020646100, 0.007503460, 0.004418620, -0.009641370 }, - { 0.000568899, 0.013181700, -0.018422700, 0.018598800, - -0.020660400, 0.027982600, -0.048054700, 0.119864000, - 0.974242000, -0.114770000, 0.060057000, -0.036085600, - 0.020102300, -0.007137330, -0.004635680, 0.009708410 }, - { -0.000553077, -0.013145400, 0.018220400, -0.018183300, - 0.019969100, -0.026866300, 0.046116200, -0.115210000, - -0.975840000, 0.112107000, -0.058697600, 0.035253500, - -0.019553700, 0.006768930, 0.004853320, -0.009775290 }, - { 0.000537896, 0.013108200, -0.018017000, 0.017766900, - -0.019277200, 0.025750100, -0.044180000, 0.110580000, - 0.977388000, -0.109408000, 0.057323100, -0.034413000, - 0.019000400, -0.006398270, -0.005071530, 0.009842020 }, - { -0.000523415, -0.013070200, 0.017812500, -0.017349500, - 0.018585000, -0.024634100, 0.042246100, -0.105975000, - -0.978886000, 0.106671000, -0.055933600, 0.033564300, - -0.018442500, 0.006025420, 0.005290280, -0.009908570 }, - { 0.000509689, 0.013031400, -0.017606900, 0.016931400, - -0.017892400, 0.023518600, -0.040315000, 0.101396000, - 0.980333000, -0.103897000, 0.054529300, -0.032707500, - 0.017880100, -0.005650390, -0.005509550, 0.009974950 }, - { -0.000496767, -0.012991800, 0.017400200, -0.016512500, - 0.017199700, -0.022403700, 0.038386900, -0.096841900, - -0.981730000, 0.101086000, -0.053110400, 0.031842600, - -0.017313100, 0.005273240, 0.005729310, -0.010041100 }, - { 0.000484696, 0.012951400, -0.017192600, 0.016092900, - -0.016506800, 0.021289600, -0.036462100, 0.092313600, - 0.983076000, -0.098237800, 0.051676900, -0.030969900, - 0.016741600, -0.004894020, -0.005949540, 0.010107100 }, - { -0.000473514, -0.012910200, 0.016983900, -0.015672700, - 0.015814000, -0.020176400, 0.034540800, -0.087811500, - -0.984372000, 0.095353100, -0.050229000, 0.030089200, - -0.016165800, 0.004512750, 0.006170210, -0.010172900 }, - { 0.000463250, 0.012868200, -0.016774300, 0.015251900, - -0.015121200, 0.019064300, -0.032623200, 0.083335800, - 0.985617000, -0.092431700, 0.048766900, -0.029200900, - 0.015585700, -0.004129480, -0.006391310, 0.010238400 }, - { -0.000453924, -0.012825500, 0.016563700, -0.014830600, - 0.014428700, -0.017953500, 0.030709800, -0.078886800, - -0.986810000, 0.089473800, -0.047290800, 0.028304900, - -0.015001400, 0.003744260, 0.006612810, -0.010303700 }, - { 0.000445550, 0.012782000, -0.016352300, 0.014408800, - -0.013736500, 0.016844000, -0.028800600, 0.074464900, - 0.987953000, -0.086479400, 0.045800700, -0.027401400, - 0.014412800, -0.003357130, -0.006834680, 0.010368800 }, - { -0.000438126, -0.012737800, 0.016140000, -0.013986600, - 0.013044600, -0.015736200, 0.026896100, -0.070070300, - -0.989045000, 0.083448600, -0.044296800, 0.026490500, - -0.013820200, 0.002968140, 0.007056910, -0.010433600 }, - { 0.000431643, 0.012692900, -0.015926800, 0.013564100, - -0.012353300, 0.014630100, -0.024996400, 0.065703200, - 0.990085000, -0.080381600, 0.042779400, -0.025572200, - 0.013223500, -0.002577320, -0.007279450, 0.010498200 }, - { -0.000426080, -0.012647200, 0.015712900, -0.013141300, - 0.011662600, -0.013525800, 0.023101700, -0.061364100, - -0.991074000, 0.077278600, -0.041248500, 0.024646800, - -0.012622900, 0.002184730, 0.007502300, -0.010562400 }, - { 0.000421406, 0.012600900, -0.015498200, 0.012718300, - -0.010972500, 0.012423600, -0.021212500, 0.057053200, - 0.992011000, -0.074139500, 0.039704400, -0.023714300, - 0.012018300, -0.001790400, -0.007725430, 0.010626400 }, - { -0.000417579, -0.012553800, 0.015282700, -0.012295200, - 0.010283300, -0.011323700, 0.019328800, -0.052770700, - -0.992897000, 0.070964600, -0.038147100, 0.022774800, - -0.011410000, 0.001394390, 0.007948800, -0.010690100 }, - { 0.000414547, 0.012506100, -0.015066500, 0.011871900, - -0.009594970, 0.010226000, -0.017451100, 0.048517000, - 0.993731000, -0.067754100, 0.036576900, -0.021828400, - 0.010797900, -0.000996745, -0.008172400, 0.010753400 }, - { -0.000412251, -0.012457700, 0.014849700, -0.011448600, - 0.008907620, -0.009130930, 0.015579400, -0.044292300, - -0.994513000, 0.064507900, -0.034994000, 0.020875300, - -0.010182200, 0.000597505, 0.008396190, -0.010816400 }, - { 0.000410621, 0.012408600, -0.014632100, 0.011025300, - -0.008221360, 0.008038500, -0.013714100, 0.040096900, - 0.995244000, -0.061226400, 0.033398500, -0.019915600, - 0.009562800, -0.000196720, -0.008620160, 0.010879200 }, - { -0.000409585, -0.012358900, 0.014414000, -0.010602000, - 0.007536270, -0.006948890, 0.011855400, -0.035931100, - -0.995922000, 0.057909700, -0.031790600, 0.018949300, - -0.008939920, -0.000205562, 0.008844280, -0.010941500 }, - { 0.000409063, 0.012308600, -0.014195300, 0.010178900, - -0.006852470, 0.005862260, -0.010003500, 0.031795100, - 0.996549000, -0.054557800, 0.030170600, -0.017976700, - 0.008313610, 0.000609294, -0.009068510, 0.011003500 }, - { -0.000408972, -0.012257600, 0.013976000, -0.009755990, - 0.006170040, -0.004778750, 0.008158790, -0.027689100, - -0.997124000, 0.051171100, -0.028538400, 0.016997800, - -0.007683930, -0.001014430, 0.009292840, -0.011065200 }, - { 0.000409230, 0.012206100, -0.013756200, 0.009333300, - -0.005489070, 0.003698520, -0.006321360, 0.023613500, - 0.997646000, -0.047749500, 0.026894500, -0.016012700, - 0.007050970, 0.001420910, -0.009517230, 0.011126400 }, - { -0.000409752, -0.012153900, 0.013535900, -0.008910910, - 0.004809650, -0.002621710, 0.004491510, -0.019568500, - -0.998117000, 0.044293400, -0.025238900, 0.015021700, - -0.006414810, -0.001828700, 0.009741670, -0.011187300 }, - { 0.000410456, 0.012101100, -0.013315100, 0.008488880, - -0.004131890, 0.001548470, -0.002669450, 0.015554300, - 0.998535000, -0.040802900, 0.023571800, -0.014024700, - 0.005775510, 0.002237740, -0.009966110, 0.011247800 }, - { -0.000411265, -0.012047800, 0.013093800, -0.008067240, - 0.003455870, -0.000478948, 0.000855436, -0.011571200, - -0.998901000, 0.037278100, -0.021893500, 0.013021900, - -0.005133180, -0.002647990, 0.010190500, -0.011307900 }, - { 0.000412106, 0.011993900, -0.012872200, 0.007646080, - -0.002781680, -0.000586709, 0.000950314, 0.007619390, - 0.999215000, -0.033719300, 0.020204200, -0.012013600, - 0.004487890, 0.003059380, -0.010414900, 0.011367600 }, - { -0.000412915, -0.011939500, 0.012650100, -0.007225430, - 0.002109420, 0.001648360, -0.002747570, -0.003699140, - -0.999477000, 0.030126600, -0.018503900, 0.010999700, - -0.003839710, -0.003471880, 0.010639200, -0.011426900 }, - { 0.000413633, 0.011884500, -0.012427700, 0.006805360, - -0.001439170, -0.002705860, 0.004536100, -0.000189332, - 0.999686000, -0.026500200, 0.016793100, -0.009980360, - 0.003188740, 0.003885440, -0.010863400, 0.011485700 }, - { -0.000414214, -0.011829000, 0.012205000, -0.006385910, - 0.000771025, 0.003759060, -0.006315690, 0.004045800, - -0.999843000, 0.022840300, -0.015071700, 0.008955820, - -0.002535060, -0.004299990, 0.011087500, -0.011544100 }, - { 0.000414623, 0.011773000, -0.011982000, 0.005967150, - -0.000105072, -0.004807840, 0.008086100, -0.007870030, - 0.999948000, -0.019147200, 0.013340200, -0.007926170, - 0.001878750, 0.004715490, -0.011311400, 0.011602000 }, - { -0.000414833, -0.011716500, 0.011758700, -0.005549120, - -0.000558600, 0.005852040, -0.009847130, 0.011661800, - -1.000000000, 0.015420900, -0.011598600, 0.006891530, - -0.001219900, -0.005131880, 0.011535200, -0.011659500 } -}; - -#endif diff --git a/RTCP/CNProc/src/FIR_OriginalStationPPFWeights.h b/RTCP/CNProc/src/FIR_OriginalStationPPFWeights.h deleted file mode 100644 index 3eb733acab28dbe879103eca4005febfdded7734..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FIR_OriginalStationPPFWeights.h +++ /dev/null @@ -1,4103 +0,0 @@ -#ifndef LOFAR_CNPROC_FIR_ORIGINAL_STATION_PPF_WEIGHTS_H -#define LOFAR_CNPROC_FIR_ORIGINAL_STATION_PPF_WEIGHTS_H - -const long long originalStationPPFWeights[1024][16] __attribute__ ((aligned(32))) = { -{ 367, -351, 161, 32, - -209, 352, -454, 32767, - -423, 338, -200, 26, - 164, -353, 367, 36}, -{ 366, -350, 158, 37, - -217, 366, -485, 32767, - -392, 323, -192, 21, - 168, -355, 368, 36}, -{ 366, -348, 154, 42, - -225, 380, -515, 32767, - -362, 309, -183, 16, - 171, -357, 368, 35}, -{ 365, -346, 151, 47, - -234, 395, -546, 32767, - -331, 295, -175, 10, - 174, -358, 369, 35}, -{ 365, -344, 148, 53, - -242, 409, -576, 32766, - -300, 280, -167, 5, - 178, -360, 369, 34}, -{ 365, -343, 145, 58, - -250, 423, -607, 32766, - -268, 266, -158, 0, - 181, -362, 370, 33}, -{ 364, -341, 141, 63, - -259, 437, -637, 32765, - -237, 252, -150, -5, - 184, -364, 370, 32}, -{ 364, -339, 138, 68, - -267, 451, -667, 32764, - -206, 237, -141, -11, - 187, -365, 370, 31}, -{ 363, -337, 135, 74, - -275, 465, -698, 32764, - -175, 223, -133, -16, - 191, -367, 371, 29}, -{ 363, -336, 132, 79, - -284, 479, -728, 32763, - -143, 209, -124, -21, - 194, -369, 371, 28}, -{ 362, -334, 128, 84, - -292, 493, -758, 32762, - -112, 194, -116, -27, - 197, -371, 372, 26}, -{ 362, -332, 125, 89, - -300, 507, -788, 32760, - -81, 180, -107, -32, - 201, -372, 372, 25}, -{ 361, -330, 122, 95, - -309, 521, -818, 32759, - -49, 165, -99, -37, - 204, -374, 373, 23}, -{ 361, -328, 118, 100, - -317, 535, -848, 32758, - -17, 151, -90, -43, - 207, -376, 373, 21}, -{ 360, -327, 115, 105, - -325, 549, -877, 32756, - 14, 136, -82, -48, - 211, -378, 373, 20}, -{ 360, -325, 112, 110, - -333, 563, -907, 32755, - 46, 122, -73, -53, - 214, -379, 374, 18}, -{ 359, -323, 109, 115, - -342, 577, -937, 32753, - 78, 107, -65, -59, - 217, -381, 374, 17}, -{ 359, -321, 105, 121, - -350, 591, -966, 32751, - 110, 92, -56, -64, - 221, -383, 375, 15}, -{ 359, -320, 102, 126, - -358, 605, -996, 32749, - 142, 78, -48, -70, - 224, -385, 375, 14}, -{ 358, -318, 99, 131, - -366, 619, -1025, 32747, - 174, 63, -39, -75, - 227, -386, 376, 12}, -{ 358, -316, 96, 136, - -374, 633, -1055, 32745, - 206, 49, -30, -80, - 230, -388, 376, 11}, -{ 357, -314, 92, 141, - -382, 647, -1084, 32743, - 238, 34, -22, -86, - 234, -390, 377, 10}, -{ 357, -313, 89, 146, - -391, 660, -1113, 32740, - 270, 19, -13, -91, - 237, -392, 377, 9}, -{ 356, -311, 86, 152, - -399, 674, -1142, 32738, - 302, 5, -5, -96, - 240, -393, 377, 9}, -{ 356, -309, 83, 157, - -407, 688, -1172, 32735, - 335, -10, 4, -102, - 244, -395, 378, 8}, -{ 355, -307, 79, 162, - -415, 702, -1201, 32733, - 367, -25, 12, -107, - 247, -397, 378, 8}, -{ 355, -306, 76, 167, - -423, 715, -1230, 32730, - 399, -40, 21, -113, - 250, -399, 379, 7}, -{ 354, -304, 73, 172, - -431, 729, -1258, 32727, - 432, -54, 30, -118, - 254, -400, 379, 7}, -{ 354, -302, 70, 177, - -439, 743, -1287, 32724, - 465, -69, 38, -123, - 257, -402, 380, 7}, -{ 353, -300, 67, 182, - -447, 756, -1316, 32721, - 497, -84, 47, -129, - 260, -404, 380, 7}, -{ 353, -299, 63, 187, - -456, 770, -1345, 32718, - 530, -99, 56, -134, - 264, -406, 380, 7}, -{ 352, -297, 60, 193, - -464, 783, -1373, 32714, - 563, -114, 64, -140, - 267, -407, 381, 7}, -{ 352, -295, 57, 198, - -472, 797, -1402, 32711, - 596, -128, 73, -145, - 270, -409, 381, 7}, -{ 351, -293, 54, 203, - -480, 811, -1430, 32707, - 628, -143, 82, -150, - 274, -411, 382, 7}, -{ 351, -291, 50, 208, - -488, 824, -1459, 32704, - 661, -158, 90, -156, - 277, -413, 382, 8}, -{ 350, -290, 47, 213, - -496, 838, -1487, 32700, - 694, -173, 99, -161, - 280, -414, 382, 8}, -{ 350, -288, 44, 218, - -504, 851, -1515, 32696, - 728, -188, 108, -167, - 284, -416, 383, 8}, -{ 349, -286, 41, 223, - -512, 864, -1544, 32692, - 761, -203, 116, -172, - 287, -418, 383, 9}, -{ 349, -284, 38, 228, - -520, 878, -1572, 32688, - 794, -218, 125, -178, - 290, -419, 384, 9}, -{ 348, -283, 34, 233, - -528, 891, -1600, 32684, - 827, -233, 134, -183, - 294, -421, 384, 9}, -{ 348, -281, 31, 238, - -536, 905, -1628, 32680, - 861, -248, 143, -188, - 297, -423, 385, 10}, -{ 348, -279, 28, 243, - -543, 918, -1656, 32675, - 894, -263, 151, -194, - 300, -425, 385, 10}, -{ 347, -277, 25, 248, - -551, 931, -1683, 32671, - 927, -278, 160, -199, - 304, -426, 385, 10}, -{ 347, -276, 22, 253, - -559, 945, -1711, 32666, - 961, -293, 169, -205, - 307, -428, 386, 10}, -{ 346, -274, 18, 258, - -567, 958, -1739, 32661, - 995, -308, 178, -210, - 310, -430, 386, 11}, -{ 346, -272, 15, 263, - -575, 971, -1767, 32657, - 1028, -323, 186, -216, - 314, -432, 387, 11}, -{ 345, -270, 12, 268, - -583, 984, -1794, 32652, - 1062, -338, 195, -221, - 317, -433, 387, 11}, -{ 345, -269, 9, 273, - -591, 998, -1822, 32647, - 1096, -353, 204, -227, - 320, -435, 387, 11}, -{ 344, -267, 6, 278, - -599, 1011, -1849, 32642, - 1130, -368, 213, -232, - 324, -437, 388, 11}, -{ 344, -265, 2, 283, - -606, 1024, -1876, 32636, - 1163, -383, 221, -238, - 327, -438, 388, 11}, -{ 343, -263, -1, 288, - -614, 1037, -1904, 32631, - 1197, -398, 230, -243, - 330, -440, 389, 11}, -{ 343, -262, -4, 293, - -622, 1050, -1931, 32625, - 1231, -413, 239, -248, - 334, -442, 389, 11}, -{ 342, -260, -7, 298, - -630, 1063, -1958, 32620, - 1266, -428, 248, -254, - 337, -444, 389, 11}, -{ 342, -258, -10, 303, - -638, 1076, -1985, 32614, - 1300, -443, 257, -259, - 341, -445, 390, 11}, -{ 341, -256, -13, 308, - -645, 1089, -2012, 32608, - 1334, -459, 265, -265, - 344, -447, 390, 11}, -{ 341, -255, -16, 313, - -653, 1102, -2039, 32603, - 1368, -474, 274, -270, - 347, -449, 391, 11}, -{ 340, -253, -20, 318, - -661, 1115, -2066, 32597, - 1402, -489, 283, -276, - 351, -450, 391, 11}, -{ 340, -251, -23, 323, - -669, 1128, -2092, 32590, - 1437, -504, 292, -281, - 354, -452, 391, 11}, -{ 339, -249, -26, 328, - -676, 1141, -2119, 32584, - 1471, -519, 301, -287, - 357, -454, 392, 11}, -{ 339, -247, -29, 333, - -684, 1154, -2146, 32578, - 1506, -535, 310, -292, - 361, -456, 392, 11}, -{ 338, -246, -32, 338, - -692, 1167, -2172, 32572, - 1540, -550, 318, -298, - 364, -457, 393, 11}, -{ 338, -244, -35, 343, - -699, 1180, -2199, 32565, - 1575, -565, 327, -303, - 367, -459, 393, 11}, -{ 337, -242, -39, 347, - -707, 1193, -2225, 32558, - 1610, -580, 336, -309, - 371, -461, 393, 11}, -{ 337, -240, -42, 352, - -715, 1205, -2251, 32552, - 1644, -596, 345, -314, - 374, -462, 394, 11}, -{ 336, -239, -45, 357, - -722, 1218, -2278, 32545, - 1679, -611, 354, -320, - 377, -464, 394, 11}, -{ 336, -237, -48, 362, - -730, 1231, -2304, 32538, - 1714, -626, 363, -325, - 381, -466, 394, 11}, -{ 335, -235, -51, 367, - -738, 1244, -2330, 32531, - 1749, -642, 372, -331, - 384, -468, 395, 12}, -{ 335, -233, -54, 372, - -745, 1256, -2356, 32524, - 1784, -657, 381, -336, - 387, -469, 395, 12}, -{ 334, -232, -57, 377, - -753, 1269, -2382, 32516, - 1819, -672, 389, -342, - 391, -471, 396, 12}, -{ 334, -230, -60, 382, - -760, 1282, -2408, 32509, - 1854, -688, 398, -347, - 394, -473, 396, 12}, -{ 333, -228, -63, 386, - -768, 1294, -2434, 32502, - 1889, -703, 407, -353, - 397, -474, 396, 12}, -{ 333, -226, -67, 391, - -775, 1307, -2459, 32494, - 1925, -718, 416, -358, - 401, -476, 397, 12}, -{ 332, -225, -70, 396, - -783, 1319, -2485, 32486, - 1960, -734, 425, -364, - 404, -478, 397, 13}, -{ 332, -223, -73, 401, - -790, 1332, -2511, 32479, - 1995, -749, 434, -369, - 407, -479, 397, 13}, -{ 331, -221, -76, 406, - -798, 1344, -2536, 32471, - 2031, -765, 443, -375, - 411, -481, 398, 13}, -{ 331, -219, -79, 410, - -805, 1357, -2562, 32463, - 2066, -780, 452, -381, - 414, -483, 398, 13}, -{ 330, -218, -82, 415, - -813, 1369, -2587, 32455, - 2101, -795, 461, -386, - 417, -485, 399, 13}, -{ 330, -216, -85, 420, - -820, 1382, -2612, 32446, - 2137, -811, 470, -392, - 421, -486, 399, 13}, -{ 329, -214, -88, 425, - -828, 1394, -2638, 32438, - 2173, -826, 479, -397, - 424, -488, 399, 13}, -{ 329, -213, -91, 429, - -835, 1407, -2663, 32430, - 2208, -842, 488, -403, - 427, -490, 400, 13}, -{ 328, -211, -94, 434, - -842, 1419, -2688, 32421, - 2244, -857, 496, -408, - 431, -491, 400, 14}, -{ 328, -209, -97, 439, - -850, 1431, -2713, 32412, - 2280, -873, 505, -414, - 434, -493, 400, 14}, -{ 327, -207, -100, 444, - -857, 1443, -2738, 32404, - 2316, -888, 514, -419, - 437, -495, 401, 14}, -{ 327, -206, -104, 448, - -865, 1456, -2763, 32395, - 2352, -904, 523, -425, - 441, -496, 401, 14}, -{ 326, -204, -107, 453, - -872, 1468, -2787, 32386, - 2388, -919, 532, -430, - 444, -498, 401, 14}, -{ 326, -202, -110, 458, - -879, 1480, -2812, 32377, - 2424, -935, 541, -436, - 448, -500, 402, 14}, -{ 325, -200, -113, 463, - -887, 1492, -2837, 32368, - 2460, -950, 550, -441, - 451, -501, 402, 14}, -{ 325, -199, -116, 467, - -894, 1504, -2861, 32358, - 2496, -966, 559, -447, - 454, -503, 402, 14}, -{ 324, -197, -119, 472, - -901, 1517, -2886, 32349, - 2532, -981, 568, -452, - 458, -505, 403, 14}, -{ 323, -195, -122, 477, - -908, 1529, -2910, 32340, - 2568, -997, 577, -458, - 461, -506, 403, 14}, -{ 323, -193, -125, 481, - -916, 1541, -2934, 32330, - 2604, -1013, 586, -464, - 464, -508, 404, 14}, -{ 322, -192, -128, 486, - -923, 1553, -2959, 32320, - 2641, -1028, 595, -469, - 468, -510, 404, 14}, -{ 322, -190, -131, 491, - -930, 1565, -2983, 32311, - 2677, -1044, 604, -475, - 471, -511, 404, 14}, -{ 321, -188, -134, 495, - -937, 1577, -3007, 32301, - 2714, -1059, 613, -480, - 474, -513, 405, 14}, -{ 321, -186, -137, 500, - -945, 1589, -3031, 32291, - 2750, -1075, 622, -486, - 478, -515, 405, 15}, -{ 320, -185, -140, 505, - -952, 1601, -3055, 32281, - 2787, -1091, 631, -491, - 481, -516, 405, 15}, -{ 320, -183, -143, 509, - -959, 1612, -3079, 32270, - 2823, -1106, 640, -497, - 484, -518, 406, 15}, -{ 319, -181, -146, 514, - -966, 1624, -3103, 32260, - 2860, -1122, 649, -502, - 488, -520, 406, 15}, -{ 319, -180, -149, 518, - -973, 1636, -3126, 32250, - 2897, -1137, 658, -508, - 491, -521, 406, 15}, -{ 318, -178, -152, 523, - -980, 1648, -3150, 32239, - 2934, -1153, 667, -513, - 494, -523, 407, 15}, -{ 318, -176, -155, 528, - -987, 1660, -3174, 32229, - 2970, -1169, 676, -519, - 498, -525, 407, 15}, -{ 317, -174, -158, 532, - -994, 1671, -3197, 32218, - 3007, -1184, 685, -524, - 501, -526, 407, 15}, -{ 317, -173, -161, 537, - -1001, 1683, -3221, 32207, - 3044, -1200, 694, -530, - 504, -528, 408, 16}, -{ 316, -171, -164, 541, - -1009, 1695, -3244, 32196, - 3081, -1216, 703, -536, - 507, -530, 408, 16}, -{ 316, -169, -167, 546, - -1016, 1707, -3267, 32185, - 3118, -1231, 712, -541, - 511, -531, 408, 16}, -{ 315, -167, -170, 550, - -1023, 1718, -3290, 32174, - 3155, -1247, 721, -547, - 514, -533, 409, 16}, -{ 315, -166, -173, 555, - -1030, 1730, -3314, 32163, - 3193, -1263, 730, -552, - 517, -534, 409, 16}, -{ 314, -164, -176, 559, - -1037, 1741, -3337, 32151, - 3230, -1278, 739, -558, - 521, -536, 409, 16}, -{ 314, -162, -179, 564, - -1044, 1753, -3360, 32140, - 3267, -1294, 748, -563, - 524, -538, 409, 16}, -{ 313, -161, -182, 568, - -1050, 1764, -3383, 32128, - 3304, -1310, 757, -569, - 527, -539, 410, 17}, -{ 313, -159, -185, 573, - -1057, 1776, -3405, 32117, - 3342, -1326, 766, -574, - 531, -541, 410, 17}, -{ 312, -157, -188, 577, - -1064, 1787, -3428, 32105, - 3379, -1341, 775, -580, - 534, -543, 410, 17}, -{ 312, -155, -191, 582, - -1071, 1799, -3451, 32093, - 3417, -1357, 784, -585, - 537, -544, 411, 17}, -{ 311, -154, -194, 586, - -1078, 1810, -3473, 32081, - 3454, -1373, 793, -591, - 541, -546, 411, 17}, -{ 311, -152, -196, 591, - -1085, 1821, -3496, 32069, - 3492, -1389, 802, -597, - 544, -547, 411, 17}, -{ 310, -150, -199, 595, - -1092, 1833, -3518, 32057, - 3529, -1404, 811, -602, - 547, -549, 412, 17}, -{ 309, -149, -202, 600, - -1099, 1844, -3541, 32045, - 3567, -1420, 820, -608, - 551, -551, 412, 17}, -{ 309, -147, -205, 604, - -1105, 1855, -3563, 32032, - 3605, -1436, 829, -613, - 554, -552, 412, 17}, -{ 308, -145, -208, 608, - -1112, 1867, -3585, 32020, - 3643, -1452, 838, -619, - 557, -554, 413, 17}, -{ 308, -143, -211, 613, - -1119, 1878, -3607, 32007, - 3681, -1467, 847, -624, - 560, -556, 413, 18}, -{ 307, -142, -214, 617, - -1126, 1889, -3629, 31994, - 3718, -1483, 856, -630, - 564, -557, 413, 18}, -{ 307, -140, -217, 622, - -1133, 1900, -3651, 31982, - 3756, -1499, 865, -635, - 567, -559, 414, 18}, -{ 306, -138, -220, 626, - -1139, 1911, -3673, 31969, - 3794, -1515, 874, -641, - 570, -560, 414, 18}, -{ 306, -137, -223, 630, - -1146, 1922, -3695, 31956, - 3832, -1531, 883, -646, - 574, -562, 414, 18}, -{ 305, -135, -226, 635, - -1153, 1933, -3717, 31943, - 3870, -1546, 892, -652, - 577, -564, 414, 18}, -{ 305, -133, -228, 639, - -1159, 1944, -3739, 31929, - 3909, -1562, 901, -658, - 580, -565, 415, 18}, -{ 304, -132, -231, 643, - -1166, 1955, -3760, 31916, - 3947, -1578, 910, -663, - 584, -567, 415, 18}, -{ 304, -130, -234, 648, - -1173, 1966, -3782, 31903, - 3985, -1594, 920, -669, - 587, -568, 415, 18}, -{ 303, -128, -237, 652, - -1179, 1977, -3803, 31889, - 4023, -1610, 929, -674, - 590, -570, 416, 19}, -{ 303, -126, -240, 656, - -1186, 1988, -3825, 31876, - 4062, -1625, 938, -680, - 593, -572, 416, 19}, -{ 302, -125, -243, 661, - -1193, 1999, -3846, 31862, - 4100, -1641, 947, -685, - 597, -573, 416, 19}, -{ 302, -123, -246, 665, - -1199, 2010, -3867, 31848, - 4138, -1657, 956, -691, - 600, -575, 416, 19}, -{ 301, -121, -248, 669, - -1206, 2021, -3888, 31834, - 4177, -1673, 965, -696, - 603, -576, 417, 19}, -{ 300, -120, -251, 674, - -1212, 2031, -3909, 31820, - 4216, -1689, 974, -702, - 606, -578, 417, 19}, -{ 300, -118, -254, 678, - -1219, 2042, -3930, 31806, - 4254, -1705, 983, -707, - 610, -579, 417, 19}, -{ 299, -116, -257, 682, - -1225, 2053, -3951, 31792, - 4293, -1720, 992, -713, - 613, -581, 418, 20}, -{ 299, -115, -260, 686, - -1232, 2063, -3972, 31777, - 4331, -1736, 1001, -718, - 616, -583, 418, 20}, -{ 298, -113, -263, 691, - -1238, 2074, -3993, 31763, - 4370, -1752, 1010, -724, - 620, -584, 418, 20}, -{ 298, -111, -266, 695, - -1245, 2085, -4014, 31749, - 4409, -1768, 1019, -729, - 623, -586, 418, 20}, -{ 297, -110, -268, 699, - -1251, 2095, -4034, 31734, - 4448, -1784, 1028, -735, - 626, -587, 419, 20}, -{ 297, -108, -271, 703, - -1258, 2106, -4055, 31719, - 4487, -1800, 1037, -740, - 629, -589, 419, 20}, -{ 296, -106, -274, 707, - -1264, 2116, -4075, 31704, - 4526, -1815, 1046, -746, - 633, -590, 419, 20}, -{ 296, -105, -277, 712, - -1270, 2127, -4096, 31689, - 4564, -1831, 1055, -751, - 636, -592, 419, 21}, -{ 295, -103, -280, 716, - -1277, 2137, -4116, 31674, - 4603, -1847, 1064, -757, - 639, -594, 420, 21}, -{ 295, -101, -282, 720, - -1283, 2148, -4136, 31659, - 4643, -1863, 1073, -762, - 642, -595, 420, 21}, -{ 294, -99, -285, 724, - -1289, 2158, -4156, 31644, - 4682, -1879, 1082, -768, - 646, -597, 420, 21}, -{ 294, -98, -288, 728, - -1296, 2168, -4176, 31629, - 4721, -1895, 1091, -773, - 649, -598, 420, 21}, -{ 293, -96, -291, 732, - -1302, 2179, -4196, 31613, - 4760, -1911, 1100, -779, - 652, -600, 421, 21}, -{ 293, -94, -293, 737, - -1308, 2189, -4216, 31598, - 4799, -1926, 1109, -784, - 655, -601, 421, 21}, -{ 292, -93, -296, 741, - -1315, 2199, -4236, 31582, - 4839, -1942, 1118, -790, - 659, -603, 421, 21}, -{ 291, -91, -299, 745, - -1321, 2209, -4256, 31566, - 4878, -1958, 1127, -795, - 662, -604, 421, 22}, -{ 291, -89, -302, 749, - -1327, 2220, -4276, 31551, - 4917, -1974, 1136, -801, - 665, -606, 422, 22}, -{ 290, -88, -305, 753, - -1333, 2230, -4295, 31535, - 4957, -1990, 1145, -806, - 668, -607, 422, 22}, -{ 290, -86, -307, 757, - -1339, 2240, -4315, 31519, - 4996, -2006, 1154, -812, - 671, -609, 422, 22}, -{ 289, -84, -310, 761, - -1346, 2250, -4334, 31502, - 5036, -2022, 1163, -817, - 675, -610, 422, 22}, -{ 289, -83, -313, 765, - -1352, 2260, -4354, 31486, - 5075, -2037, 1172, -823, - 678, -612, 423, 22}, -{ 288, -81, -315, 769, - -1358, 2270, -4373, 31470, - 5115, -2053, 1181, -828, - 681, -614, 423, 22}, -{ 288, -80, -318, 773, - -1364, 2280, -4392, 31453, - 5154, -2069, 1190, -834, - 684, -615, 423, 22}, -{ 287, -78, -321, 777, - -1370, 2290, -4411, 31437, - 5194, -2085, 1199, -839, - 688, -617, 423, 23}, -{ 287, -76, -324, 781, - -1376, 2300, -4430, 31420, - 5234, -2101, 1208, -845, - 691, -618, 424, 23}, -{ 286, -75, -326, 785, - -1382, 2310, -4449, 31404, - 5274, -2117, 1217, -850, - 694, -620, 424, 23}, -{ 286, -73, -329, 789, - -1388, 2320, -4468, 31387, - 5313, -2133, 1226, -856, - 697, -621, 424, 23}, -{ 285, -71, -332, 793, - -1394, 2330, -4487, 31370, - 5353, -2148, 1235, -861, - 700, -623, 424, 23}, -{ 285, -70, -334, 797, - -1400, 2339, -4506, 31353, - 5393, -2164, 1244, -867, - 704, -624, 425, 23}, -{ 284, -68, -337, 801, - -1406, 2349, -4524, 31336, - 5433, -2180, 1253, -872, - 707, -626, 425, 23}, -{ 283, -66, -340, 805, - -1412, 2359, -4543, 31318, - 5473, -2196, 1262, -877, - 710, -627, 425, 24}, -{ 283, -65, -343, 809, - -1418, 2369, -4562, 31301, - 5513, -2212, 1271, -883, - 713, -629, 425, 24}, -{ 282, -63, -345, 813, - -1424, 2378, -4580, 31284, - 5553, -2228, 1280, -888, - 716, -630, 425, 24}, -{ 282, -61, -348, 817, - -1430, 2388, -4598, 31266, - 5593, -2244, 1289, -894, - 720, -632, 426, 24}, -{ 281, -60, -351, 821, - -1436, 2397, -4617, 31249, - 5634, -2259, 1298, -899, - 723, -633, 426, 24}, -{ 281, -58, -353, 825, - -1442, 2407, -4635, 31231, - 5674, -2275, 1307, -905, - 726, -635, 426, 24}, -{ 280, -57, -356, 829, - -1448, 2417, -4653, 31213, - 5714, -2291, 1316, -910, - 729, -636, 426, 25}, -{ 280, -55, -359, 832, - -1454, 2426, -4671, 31195, - 5754, -2307, 1324, -916, - 732, -638, 427, 25}, -{ 279, -53, -361, 836, - -1459, 2435, -4689, 31177, - 5795, -2323, 1333, -921, - 735, -639, 427, 25}, -{ 279, -52, -364, 840, - -1465, 2445, -4707, 31159, - 5835, -2339, 1342, -926, - 739, -640, 427, 25}, -{ 278, -50, -366, 844, - -1471, 2454, -4725, 31141, - 5875, -2354, 1351, -932, - 742, -642, 427, 25}, -{ 278, -48, -369, 848, - -1477, 2464, -4743, 31123, - 5916, -2370, 1360, -937, - 745, -643, 427, 25}, -{ 277, -47, -372, 852, - -1482, 2473, -4760, 31104, - 5956, -2386, 1369, -943, - 748, -645, 428, 26}, -{ 277, -45, -374, 855, - -1488, 2482, -4778, 31086, - 5997, -2402, 1378, -948, - 751, -646, 428, 26}, -{ 276, -43, -377, 859, - -1494, 2491, -4795, 31067, - 6037, -2418, 1387, -953, - 754, -648, 428, 26}, -{ 275, -42, -380, 863, - -1500, 2501, -4813, 31048, - 6078, -2433, 1396, -959, - 758, -649, 428, 26}, -{ 275, -40, -382, 867, - -1505, 2510, -4830, 31030, - 6119, -2449, 1405, -964, - 761, -651, 428, 26}, -{ 274, -39, -385, 871, - -1511, 2519, -4847, 31011, - 6159, -2465, 1414, -970, - 764, -652, 429, 26}, -{ 274, -37, -387, 874, - -1516, 2528, -4865, 30992, - 6200, -2481, 1423, -975, - 767, -654, 429, 26}, -{ 273, -35, -390, 878, - -1522, 2537, -4882, 30973, - 6241, -2497, 1431, -980, - 770, -655, 429, 27}, -{ 273, -34, -392, 882, - -1528, 2546, -4899, 30953, - 6282, -2512, 1440, -986, - 773, -656, 429, 27}, -{ 272, -32, -395, 885, - -1533, 2555, -4916, 30934, - 6323, -2528, 1449, -991, - 776, -658, 429, 27}, -{ 272, -31, -398, 889, - -1539, 2564, -4933, 30915, - 6364, -2544, 1458, -997, - 779, -659, 429, 27}, -{ 271, -29, -400, 893, - -1544, 2573, -4950, 30895, - 6404, -2560, 1467, -1002, - 783, -661, 430, 27}, -{ 271, -27, -403, 897, - -1550, 2582, -4966, 30876, - 6445, -2576, 1476, -1007, - 786, -662, 430, 27}, -{ 270, -26, -405, 900, - -1555, 2591, -4983, 30856, - 6486, -2591, 1485, -1013, - 789, -664, 430, 27}, -{ 270, -24, -408, 904, - -1561, 2600, -4999, 30836, - 6527, -2607, 1493, -1018, - 792, -665, 430, 28}, -{ 269, -23, -410, 908, - -1566, 2609, -5016, 30817, - 6569, -2623, 1502, -1023, - 795, -666, 430, 28}, -{ 268, -21, -413, 911, - -1572, 2617, -5032, 30797, - 6610, -2639, 1511, -1029, - 798, -668, 430, 28}, -{ 268, -19, -415, 915, - -1577, 2626, -5049, 30777, - 6651, -2654, 1520, -1034, - 801, -669, 431, 28}, -{ 267, -18, -418, 918, - -1582, 2635, -5065, 30756, - 6692, -2670, 1529, -1039, - 804, -671, 431, 28}, -{ 267, -16, -420, 922, - -1588, 2644, -5081, 30736, - 6733, -2686, 1538, -1045, - 807, -672, 431, 28}, -{ 266, -15, -423, 926, - -1593, 2652, -5097, 30716, - 6774, -2701, 1546, -1050, - 810, -673, 431, 29}, -{ 266, -13, -425, 929, - -1599, 2661, -5113, 30696, - 6816, -2717, 1555, -1055, - 813, -675, 431, 29}, -{ 265, -11, -428, 933, - -1604, 2669, -5129, 30675, - 6857, -2733, 1564, -1061, - 817, -676, 431, 29}, -{ 265, -10, -430, 936, - -1609, 2678, -5145, 30654, - 6899, -2749, 1573, -1066, - 820, -678, 432, 29}, -{ 264, -8, -433, 940, - -1614, 2686, -5161, 30634, - 6940, -2764, 1582, -1071, - 823, -679, 432, 29}, -{ 264, -7, -435, 943, - -1620, 2695, -5177, 30613, - 6981, -2780, 1590, -1077, - 826, -680, 432, 29}, -{ 263, -5, -438, 947, - -1625, 2703, -5192, 30592, - 7023, -2796, 1599, -1082, - 829, -682, 432, 30}, -{ 263, -4, -440, 950, - -1630, 2712, -5208, 30571, - 7064, -2811, 1608, -1087, - 832, -683, 432, 30}, -{ 262, -2, -443, 954, - -1635, 2720, -5223, 30550, - 7106, -2827, 1617, -1092, - 835, -685, 432, 30}, -{ 261, 0, -445, 957, - -1640, 2728, -5239, 30529, - 7148, -2843, 1625, -1098, - 838, -686, 432, 30}, -{ 261, 1, -448, 961, - -1646, 2737, -5254, 30508, - 7189, -2858, 1634, -1103, - 841, -687, 433, 30}, -{ 260, 3, -450, 964, - -1651, 2745, -5269, 30486, - 7231, -2874, 1643, -1108, - 844, -689, 433, 31}, -{ 260, 4, -453, 968, - -1656, 2753, -5285, 30465, - 7272, -2890, 1652, -1114, - 847, -690, 433, 31}, -{ 259, 6, -455, 971, - -1661, 2761, -5300, 30443, - 7314, -2905, 1660, -1119, - 850, -691, 433, 31}, -{ 259, 7, -457, 975, - -1666, 2769, -5315, 30422, - 7356, -2921, 1669, -1124, - 853, -693, 433, 31}, -{ 258, 9, -460, 978, - -1671, 2777, -5330, 30400, - 7398, -2936, 1678, -1129, - 856, -694, 433, 31}, -{ 258, 10, -462, 981, - -1676, 2785, -5345, 30378, - 7440, -2952, 1687, -1135, - 859, -695, 433, 31}, -{ 257, 12, -465, 985, - -1681, 2793, -5359, 30356, - 7481, -2968, 1695, -1140, - 862, -697, 434, 32}, -{ 257, 14, -467, 988, - -1686, 2801, -5374, 30334, - 7523, -2983, 1704, -1145, - 865, -698, 434, 32}, -{ 256, 15, -469, 992, - -1691, 2809, -5389, 30312, - 7565, -2999, 1713, -1150, - 868, -699, 434, 32}, -{ 256, 17, -472, 995, - -1696, 2817, -5403, 30290, - 7607, -3014, 1721, -1155, - 871, -701, 434, 32}, -{ 255, 18, -474, 998, - -1701, 2825, -5418, 30267, - 7649, -3030, 1730, -1161, - 874, -702, 434, 32}, -{ 255, 20, -477, 1002, - -1706, 2833, -5432, 30245, - 7691, -3045, 1739, -1166, - 877, -703, 434, 32}, -{ 254, 21, -479, 1005, - -1711, 2841, -5447, 30223, - 7733, -3061, 1747, -1171, - 880, -705, 434, 33}, -{ 253, 23, -481, 1008, - -1716, 2849, -5461, 30200, - 7775, -3076, 1756, -1176, - 883, -706, 434, 33}, -{ 253, 24, -484, 1012, - -1720, 2856, -5475, 30177, - 7818, -3092, 1765, -1181, - 886, -707, 434, 33}, -{ 252, 26, -486, 1015, - -1725, 2864, -5489, 30155, - 7860, -3107, 1773, -1187, - 889, -709, 435, 33}, -{ 252, 27, -488, 1018, - -1730, 2872, -5503, 30132, - 7902, -3123, 1782, -1192, - 892, -710, 435, 33}, -{ 251, 29, -491, 1021, - -1735, 2879, -5517, 30109, - 7944, -3138, 1790, -1197, - 895, -711, 435, 33}, -{ 251, 30, -493, 1025, - -1740, 2887, -5531, 30086, - 7986, -3154, 1799, -1202, - 898, -713, 435, 34}, -{ 250, 32, -495, 1028, - -1744, 2895, -5545, 30063, - 8029, -3169, 1808, -1207, - 901, -714, 435, 34}, -{ 250, 34, -498, 1031, - -1749, 2902, -5558, 30039, - 8071, -3185, 1816, -1212, - 904, -715, 435, 34}, -{ 249, 35, -500, 1034, - -1754, 2910, -5572, 30016, - 8113, -3200, 1825, -1218, - 907, -716, 435, 34}, -{ 249, 37, -502, 1038, - -1758, 2917, -5585, 29993, - 8156, -3216, 1833, -1223, - 910, -718, 435, 34}, -{ 248, 38, -505, 1041, - -1763, 2925, -5599, 29969, - 8198, -3231, 1842, -1228, - 913, -719, 435, 35}, -{ 248, 40, -507, 1044, - -1768, 2932, -5612, 29946, - 8240, -3246, 1850, -1233, - 915, -720, 435, 35}, -{ 247, 41, -509, 1047, - -1772, 2939, -5626, 29922, - 8283, -3262, 1859, -1238, - 918, -722, 436, 35}, -{ 247, 43, -512, 1050, - -1777, 2947, -5639, 29898, - 8325, -3277, 1867, -1243, - 921, -723, 436, 35}, -{ 246, 44, -514, 1053, - -1782, 2954, -5652, 29874, - 8368, -3293, 1876, -1248, - 924, -724, 436, 35}, -{ 245, 46, -516, 1057, - -1786, 2961, -5665, 29851, - 8410, -3308, 1884, -1253, - 927, -725, 436, 36}, -{ 245, 47, -518, 1060, - -1791, 2968, -5678, 29827, - 8453, -3323, 1893, -1258, - 930, -727, 436, 36}, -{ 244, 49, -521, 1063, - -1795, 2975, -5691, 29802, - 8496, -3339, 1901, -1264, - 933, -728, 436, 36}, -{ 244, 50, -523, 1066, - -1800, 2983, -5704, 29778, - 8538, -3354, 1910, -1269, - 936, -729, 436, 36}, -{ 243, 52, -525, 1069, - -1804, 2990, -5717, 29754, - 8581, -3369, 1918, -1274, - 939, -730, 436, 36}, -{ 243, 53, -527, 1072, - -1809, 2997, -5729, 29730, - 8624, -3385, 1927, -1279, - 942, -732, 436, 37}, -{ 242, 55, -530, 1075, - -1813, 3004, -5742, 29705, - 8666, -3400, 1935, -1284, - 944, -733, 436, 37}, -{ 242, 56, -532, 1078, - -1817, 3011, -5755, 29681, - 8709, -3415, 1944, -1289, - 947, -734, 436, 37}, -{ 241, 58, -534, 1081, - -1822, 3018, -5767, 29656, - 8752, -3430, 1952, -1294, - 950, -735, 436, 37}, -{ 241, 59, -536, 1084, - -1826, 3025, -5779, 29631, - 8795, -3446, 1961, -1299, - 953, -736, 436, 37}, -{ 240, 61, -538, 1087, - -1830, 3031, -5792, 29606, - 8837, -3461, 1969, -1304, - 956, -738, 436, 37}, -{ 240, 62, -541, 1090, - -1835, 3038, -5804, 29581, - 8880, -3476, 1977, -1309, - 959, -739, 436, 38}, -{ 239, 64, -543, 1093, - -1839, 3045, -5816, 29556, - 8923, -3491, 1986, -1314, - 961, -740, 436, 38}, -{ 239, 65, -545, 1096, - -1843, 3052, -5828, 29531, - 8966, -3506, 1994, -1319, - 964, -741, 437, 38}, -{ 238, 66, -547, 1099, - -1848, 3059, -5840, 29506, - 9009, -3521, 2002, -1324, - 967, -743, 437, 38}, -{ 237, 68, -549, 1102, - -1852, 3065, -5852, 29481, - 9052, -3537, 2011, -1329, - 970, -744, 437, 38}, -{ 237, 69, -552, 1105, - -1856, 3072, -5864, 29456, - 9095, -3552, 2019, -1334, - 973, -745, 437, 39}, -{ 236, 71, -554, 1108, - -1860, 3079, -5876, 29430, - 9138, -3567, 2027, -1339, - 976, -746, 437, 39}, -{ 236, 72, -556, 1111, - -1864, 3085, -5887, 29405, - 9181, -3582, 2036, -1344, - 978, -747, 437, 39}, -{ 235, 74, -558, 1114, - -1869, 3092, -5899, 29379, - 9224, -3597, 2044, -1349, - 981, -748, 437, 39}, -{ 235, 75, -560, 1117, - -1873, 3098, -5911, 29353, - 9267, -3612, 2052, -1354, - 984, -750, 437, 39}, -{ 234, 77, -562, 1119, - -1877, 3105, -5922, 29327, - 9310, -3627, 2061, -1359, - 987, -751, 437, 40}, -{ 234, 78, -564, 1122, - -1881, 3111, -5933, 29302, - 9353, -3642, 2069, -1364, - 990, -752, 437, 40}, -{ 233, 80, -567, 1125, - -1885, 3117, -5945, 29276, - 9396, -3657, 2077, -1369, - 992, -753, 437, 40}, -{ 233, 81, -569, 1128, - -1889, 3124, -5956, 29250, - 9440, -3672, 2085, -1374, - 995, -754, 437, 40}, -{ 232, 82, -571, 1131, - -1893, 3130, -5967, 29223, - 9483, -3687, 2094, -1378, - 998, -755, 437, 40}, -{ 232, 84, -573, 1134, - -1897, 3136, -5978, 29197, - 9526, -3702, 2102, -1383, - 1001, -757, 437, 41}, -{ 231, 85, -575, 1136, - -1901, 3143, -5989, 29171, - 9569, -3717, 2110, -1388, - 1003, -758, 437, 41}, -{ 231, 87, -577, 1139, - -1905, 3149, -6000, 29145, - 9613, -3732, 2118, -1393, - 1006, -759, 437, 41}, -{ 230, 88, -579, 1142, - -1909, 3155, -6011, 29118, - 9656, -3747, 2127, -1398, - 1009, -760, 437, 41}, -{ 230, 90, -581, 1145, - -1913, 3161, -6022, 29092, - 9699, -3762, 2135, -1403, - 1012, -761, 437, 42}, -{ 229, 91, -583, 1148, - -1917, 3167, -6032, 29065, - 9743, -3777, 2143, -1408, - 1014, -762, 437, 42}, -{ 229, 93, -585, 1150, - -1921, 3173, -6043, 29038, - 9786, -3792, 2151, -1413, - 1017, -763, 437, 42}, -{ 228, 94, -587, 1153, - -1925, 3179, -6054, 29011, - 9829, -3807, 2159, -1417, - 1020, -765, 437, 42}, -{ 227, 95, -589, 1156, - -1928, 3185, -6064, 28984, - 9873, -3821, 2167, -1422, - 1022, -766, 437, 42}, -{ 227, 97, -592, 1158, - -1932, 3191, -6074, 28957, - 9916, -3836, 2175, -1427, - 1025, -767, 437, 43}, -{ 226, 98, -594, 1161, - -1936, 3197, -6085, 28930, - 9960, -3851, 2183, -1432, - 1028, -768, 437, 43}, -{ 226, 100, -596, 1164, - -1940, 3203, -6095, 28903, - 10003, -3866, 2192, -1437, - 1030, -769, 437, 43}, -{ 225, 101, -598, 1166, - -1944, 3209, -6105, 28876, - 10046, -3881, 2200, -1441, - 1033, -770, 437, 43}, -{ 225, 102, -600, 1169, - -1947, 3215, -6115, 28849, - 10090, -3895, 2208, -1446, - 1036, -771, 437, 43}, -{ 224, 104, -602, 1172, - -1951, 3221, -6125, 28821, - 10133, -3910, 2216, -1451, - 1038, -772, 437, 44}, -{ 224, 105, -604, 1174, - -1955, 3226, -6135, 28794, - 10177, -3925, 2224, -1456, - 1041, -773, 437, 44}, -{ 223, 107, -606, 1177, - -1958, 3232, -6145, 28766, - 10221, -3939, 2232, -1461, - 1044, -774, 437, 44}, -{ 223, 108, -608, 1179, - -1962, 3238, -6155, 28738, - 10264, -3954, 2240, -1465, - 1046, -776, 437, 44}, -{ 222, 109, -610, 1182, - -1966, 3243, -6164, 28711, - 10308, -3969, 2248, -1470, - 1049, -777, 437, 44}, -{ 222, 111, -612, 1185, - -1969, 3249, -6174, 28683, - 10351, -3983, 2256, -1475, - 1052, -778, 437, 45}, -{ 221, 112, -614, 1187, - -1973, 3254, -6184, 28655, - 10395, -3998, 2264, -1480, - 1054, -779, 437, 45}, -{ 221, 114, -615, 1190, - -1976, 3260, -6193, 28627, - 10439, -4012, 2272, -1484, - 1057, -780, 437, 45}, -{ 220, 115, -617, 1192, - -1980, 3265, -6202, 28599, - 10482, -4027, 2280, -1489, - 1060, -781, 437, 45}, -{ 220, 116, -619, 1195, - -1983, 3271, -6212, 28571, - 10526, -4042, 2288, -1494, - 1062, -782, 437, 46}, -{ 219, 118, -621, 1197, - -1987, 3276, -6221, 28543, - 10570, -4056, 2296, -1498, - 1065, -783, 437, 46}, -{ 219, 119, -623, 1200, - -1990, 3282, -6230, 28514, - 10614, -4071, 2303, -1503, - 1067, -784, 437, 46}, -{ 218, 121, -625, 1202, - -1994, 3287, -6239, 28486, - 10657, -4085, 2311, -1508, - 1070, -785, 436, 46}, -{ 218, 122, -627, 1205, - -1997, 3292, -6248, 28457, - 10701, -4100, 2319, -1512, - 1073, -786, 436, 46}, -{ 217, 123, -629, 1207, - -2001, 3297, -6257, 28429, - 10745, -4114, 2327, -1517, - 1075, -787, 436, 47}, -{ 217, 125, -631, 1210, - -2004, 3303, -6266, 28400, - 10789, -4128, 2335, -1522, - 1078, -788, 436, 47}, -{ 216, 126, -633, 1212, - -2007, 3308, -6275, 28371, - 10832, -4143, 2343, -1526, - 1080, -789, 436, 47}, -{ 215, 127, -635, 1214, - -2011, 3313, -6284, 28343, - 10876, -4157, 2351, -1531, - 1083, -790, 436, 47}, -{ 215, 129, -637, 1217, - -2014, 3318, -6292, 28314, - 10920, -4172, 2358, -1535, - 1085, -791, 436, 48}, -{ 214, 130, -639, 1219, - -2017, 3323, -6301, 28285, - 10964, -4186, 2366, -1540, - 1088, -792, 436, 48}, -{ 214, 132, -640, 1222, - -2021, 3328, -6309, 28256, - 11008, -4200, 2374, -1545, - 1090, -793, 436, 48}, -{ 213, 133, -642, 1224, - -2024, 3333, -6318, 28227, - 11052, -4215, 2382, -1549, - 1093, -794, 436, 48}, -{ 213, 134, -644, 1226, - -2027, 3338, -6326, 28197, - 11096, -4229, 2389, -1554, - 1095, -795, 436, 49}, -{ 212, 136, -646, 1229, - -2030, 3343, -6334, 28168, - 11140, -4243, 2397, -1558, - 1098, -796, 436, 49}, -{ 212, 137, -648, 1231, - -2033, 3348, -6343, 28139, - 11184, -4257, 2405, -1563, - 1100, -797, 436, 49}, -{ 211, 138, -650, 1233, - -2037, 3353, -6351, 28109, - 11228, -4271, 2412, -1567, - 1103, -798, 436, 49}, -{ 211, 140, -651, 1236, - -2040, 3357, -6359, 28080, - 11272, -4286, 2420, -1572, - 1105, -799, 436, 50}, -{ 210, 141, -653, 1238, - -2043, 3362, -6367, 28050, - 11316, -4300, 2428, -1577, - 1108, -800, 435, 50}, -{ 210, 142, -655, 1240, - -2046, 3367, -6374, 28020, - 11360, -4314, 2435, -1581, - 1110, -801, 435, 50}, -{ 209, 144, -657, 1242, - -2049, 3372, -6382, 27991, - 11404, -4328, 2443, -1586, - 1113, -802, 435, 50}, -{ 209, 145, -659, 1245, - -2052, 3376, -6390, 27961, - 11448, -4342, 2451, -1590, - 1115, -803, 435, 50}, -{ 208, 146, -661, 1247, - -2055, 3381, -6398, 27931, - 11492, -4356, 2458, -1594, - 1118, -804, 435, 51}, -{ 208, 148, -662, 1249, - -2058, 3385, -6405, 27901, - 11536, -4370, 2466, -1599, - 1120, -805, 435, 51}, -{ 207, 149, -664, 1251, - -2061, 3390, -6413, 27871, - 11580, -4384, 2473, -1603, - 1123, -806, 435, 51}, -{ 207, 150, -666, 1253, - -2064, 3395, -6420, 27841, - 11624, -4398, 2481, -1608, - 1125, -807, 435, 51}, -{ 206, 152, -668, 1256, - -2067, 3399, -6428, 27810, - 11668, -4412, 2489, -1612, - 1128, -808, 435, 52}, -{ 206, 153, -669, 1258, - -2070, 3403, -6435, 27780, - 11712, -4426, 2496, -1617, - 1130, -808, 435, 52}, -{ 205, 154, -671, 1260, - -2073, 3408, -6442, 27750, - 11756, -4440, 2504, -1621, - 1132, -809, 434, 52}, -{ 205, 155, -673, 1262, - -2076, 3412, -6449, 27719, - 11800, -4454, 2511, -1625, - 1135, -810, 434, 52}, -{ 204, 157, -675, 1264, - -2079, 3416, -6456, 27689, - 11844, -4468, 2518, -1630, - 1137, -811, 434, 53}, -{ 204, 158, -676, 1266, - -2081, 3421, -6463, 27658, - 11889, -4482, 2526, -1634, - 1140, -812, 434, 53}, -{ 203, 159, -678, 1268, - -2084, 3425, -6470, 27627, - 11933, -4495, 2533, -1639, - 1142, -813, 434, 53}, -{ 203, 161, -680, 1271, - -2087, 3429, -6477, 27597, - 11977, -4509, 2541, -1643, - 1144, -814, 434, 53}, -{ 202, 162, -682, 1273, - -2090, 3433, -6484, 27566, - 12021, -4523, 2548, -1647, - 1147, -815, 434, 54}, -{ 202, 163, -683, 1275, - -2092, 3437, -6491, 27535, - 12065, -4537, 2556, -1652, - 1149, -816, 434, 54}, -{ 201, 165, -685, 1277, - -2095, 3442, -6497, 27504, - 12110, -4550, 2563, -1656, - 1151, -816, 433, 54}, -{ 201, 166, -687, 1279, - -2098, 3446, -6504, 27473, - 12154, -4564, 2570, -1660, - 1154, -817, 433, 54}, -{ 200, 167, -688, 1281, - -2101, 3450, -6510, 27441, - 12198, -4578, 2578, -1665, - 1156, -818, 433, 55}, -{ 200, 168, -690, 1283, - -2103, 3454, -6517, 27410, - 12242, -4591, 2585, -1669, - 1158, -819, 433, 55}, -{ 199, 170, -692, 1285, - -2106, 3458, -6523, 27379, - 12286, -4605, 2592, -1673, - 1161, -820, 433, 55}, -{ 199, 171, -693, 1287, - -2108, 3461, -6529, 27348, - 12331, -4619, 2599, -1677, - 1163, -821, 433, 55}, -{ 198, 172, -695, 1289, - -2111, 3465, -6535, 27316, - 12375, -4632, 2607, -1682, - 1165, -822, 433, 56}, -{ 198, 174, -697, 1291, - -2114, 3469, -6541, 27285, - 12419, -4646, 2614, -1686, - 1168, -822, 432, 56}, -{ 197, 175, -698, 1293, - -2116, 3473, -6547, 27253, - 12464, -4659, 2621, -1690, - 1170, -823, 432, 56}, -{ 197, 176, -700, 1295, - -2119, 3477, -6553, 27221, - 12508, -4673, 2628, -1694, - 1172, -824, 432, 56}, -{ 196, 177, -702, 1297, - -2121, 3480, -6559, 27189, - 12552, -4686, 2636, -1699, - 1174, -825, 432, 57}, -{ 196, 179, -703, 1298, - -2124, 3484, -6565, 27158, - 12596, -4699, 2643, -1703, - 1177, -826, 432, 57}, -{ 195, 180, -705, 1300, - -2126, 3488, -6571, 27126, - 12641, -4713, 2650, -1707, - 1179, -827, 432, 57}, -{ 195, 181, -706, 1302, - -2129, 3491, -6576, 27094, - 12685, -4726, 2657, -1711, - 1181, -827, 432, 57}, -{ 194, 182, -708, 1304, - -2131, 3495, -6582, 27062, - 12729, -4740, 2664, -1715, - 1183, -828, 431, 58}, -{ 194, 184, -710, 1306, - -2133, 3498, -6588, 27030, - 12774, -4753, 2671, -1719, - 1186, -829, 431, 58}, -{ 193, 185, -711, 1308, - -2136, 3502, -6593, 26997, - 12818, -4766, 2678, -1724, - 1188, -830, 431, 58}, -{ 193, 186, -713, 1310, - -2138, 3505, -6598, 26965, - 12862, -4779, 2685, -1728, - 1190, -831, 431, 58}, -{ 192, 187, -714, 1311, - -2140, 3509, -6604, 26933, - 12907, -4793, 2692, -1732, - 1192, -831, 431, 59}, -{ 192, 189, -716, 1313, - -2143, 3512, -6609, 26900, - 12951, -4806, 2700, -1736, - 1195, -832, 430, 59}, -{ 191, 190, -717, 1315, - -2145, 3515, -6614, 26868, - 12995, -4819, 2707, -1740, - 1197, -833, 430, 59}, -{ 191, 191, -719, 1317, - -2147, 3519, -6619, 26835, - 13040, -4832, 2714, -1744, - 1199, -834, 430, 59}, -{ 190, 192, -720, 1319, - -2150, 3522, -6624, 26803, - 13084, -4845, 2720, -1748, - 1201, -834, 430, 60}, -{ 190, 193, -722, 1320, - -2152, 3525, -6629, 26770, - 13129, -4858, 2727, -1752, - 1203, -835, 430, 60}, -{ 189, 195, -724, 1322, - -2154, 3528, -6634, 26737, - 13173, -4871, 2734, -1756, - 1205, -836, 429, 60}, -{ 189, 196, -725, 1324, - -2156, 3532, -6639, 26704, - 13217, -4884, 2741, -1760, - 1208, -837, 429, 60}, -{ 188, 197, -727, 1325, - -2158, 3535, -6643, 26671, - 13262, -4897, 2748, -1764, - 1210, -837, 429, 61}, -{ 188, 198, -728, 1327, - -2160, 3538, -6648, 26638, - 13306, -4910, 2755, -1768, - 1212, -838, 429, 61}, -{ 187, 200, -730, 1329, - -2162, 3541, -6653, 26605, - 13351, -4923, 2762, -1772, - 1214, -839, 429, 61}, -{ 187, 201, -731, 1330, - -2165, 3544, -6657, 26572, - 13395, -4936, 2769, -1776, - 1216, -840, 428, 62}, -{ 186, 202, -733, 1332, - -2167, 3547, -6662, 26539, - 13439, -4949, 2776, -1780, - 1218, -840, 428, 62}, -{ 186, 203, -734, 1334, - -2169, 3550, -6666, 26506, - 13484, -4962, 2782, -1784, - 1220, -841, 428, 62}, -{ 185, 204, -735, 1335, - -2171, 3553, -6670, 26472, - 13528, -4974, 2789, -1788, - 1222, -842, 428, 62}, -{ 185, 206, -737, 1337, - -2173, 3556, -6674, 26439, - 13573, -4987, 2796, -1792, - 1224, -842, 428, 63}, -{ 184, 207, -738, 1339, - -2175, 3558, -6679, 26405, - 13617, -5000, 2803, -1796, - 1227, -843, 427, 63}, -{ 184, 208, -740, 1340, - -2177, 3561, -6683, 26372, - 13661, -5013, 2809, -1800, - 1229, -844, 427, 63}, -{ 183, 209, -741, 1342, - -2179, 3564, -6687, 26338, - 13706, -5025, 2816, -1804, - 1231, -844, 427, 63}, -{ 183, 210, -743, 1343, - -2180, 3567, -6691, 26305, - 13750, -5038, 2823, -1807, - 1233, -845, 427, 64}, -{ 182, 211, -744, 1345, - -2182, 3569, -6694, 26271, - 13795, -5051, 2829, -1811, - 1235, -846, 426, 64}, -{ 182, 213, -746, 1346, - -2184, 3572, -6698, 26237, - 13839, -5063, 2836, -1815, - 1237, -846, 426, 64}, -{ 181, 214, -747, 1348, - -2186, 3575, -6702, 26203, - 13883, -5076, 2843, -1819, - 1239, -847, 426, 65}, -{ 181, 215, -748, 1349, - -2188, 3577, -6706, 26169, - 13928, -5088, 2849, -1823, - 1241, -848, 426, 65}, -{ 180, 216, -750, 1351, - -2190, 3580, -6709, 26135, - 13972, -5101, 2856, -1827, - 1243, -848, 425, 65}, -{ 180, 217, -751, 1352, - -2191, 3582, -6713, 26101, - 14017, -5113, 2862, -1830, - 1245, -849, 425, 65}, -{ 179, 218, -753, 1354, - -2193, 3585, -6716, 26067, - 14061, -5125, 2869, -1834, - 1247, -850, 425, 66}, -{ 179, 220, -754, 1355, - -2195, 3587, -6719, 26033, - 14106, -5138, 2875, -1838, - 1249, -850, 425, 66}, -{ 178, 221, -755, 1357, - -2197, 3589, -6723, 25998, - 14150, -5150, 2882, -1842, - 1251, -851, 424, 66}, -{ 178, 222, -757, 1358, - -2198, 3592, -6726, 25964, - 14194, -5162, 2888, -1845, - 1253, -852, 424, 67}, -{ 177, 223, -758, 1360, - -2200, 3594, -6729, 25929, - 14239, -5175, 2895, -1849, - 1255, -852, 424, 67}, -{ 177, 224, -759, 1361, - -2202, 3596, -6732, 25895, - 14283, -5187, 2901, -1853, - 1257, -853, 424, 67}, -{ 176, 225, -761, 1362, - -2203, 3598, -6735, 25860, - 14328, -5199, 2908, -1857, - 1258, -853, 423, 67}, -{ 176, 227, -762, 1364, - -2205, 3601, -6738, 25826, - 14372, -5211, 2914, -1860, - 1260, -854, 423, 68}, -{ 175, 228, -763, 1365, - -2206, 3603, -6741, 25791, - 14417, -5224, 2920, -1864, - 1262, -855, 423, 68}, -{ 175, 229, -765, 1367, - -2208, 3605, -6744, 25756, - 14461, -5236, 2927, -1868, - 1264, -855, 423, 68}, -{ 174, 230, -766, 1368, - -2209, 3607, -6747, 25721, - 14505, -5248, 2933, -1871, - 1266, -856, 422, 69}, -{ 174, 231, -767, 1369, - -2211, 3609, -6749, 25686, - 14550, -5260, 2939, -1875, - 1268, -856, 422, 69}, -{ 174, 232, -769, 1370, - -2212, 3611, -6752, 25651, - 14594, -5272, 2945, -1878, - 1270, -857, 422, 69}, -{ 173, 233, -770, 1372, - -2214, 3613, -6754, 25616, - 14639, -5284, 2952, -1882, - 1272, -857, 421, 69}, -{ 173, 234, -771, 1373, - -2215, 3615, -6757, 25581, - 14683, -5296, 2958, -1886, - 1274, -858, 421, 70}, -{ 172, 236, -772, 1374, - -2217, 3617, -6759, 25546, - 14727, -5308, 2964, -1889, - 1275, -859, 421, 70}, -{ 172, 237, -774, 1376, - -2218, 3619, -6761, 25511, - 14772, -5319, 2970, -1893, - 1277, -859, 420, 70}, -{ 171, 238, -775, 1377, - -2220, 3621, -6764, 25476, - 14816, -5331, 2977, -1896, - 1279, -860, 420, 71}, -{ 171, 239, -776, 1378, - -2221, 3622, -6766, 25440, - 14861, -5343, 2983, -1900, - 1281, -860, 420, 71}, -{ 170, 240, -777, 1379, - -2222, 3624, -6768, 25405, - 14905, -5355, 2989, -1903, - 1283, -861, 420, 71}, -{ 170, 241, -779, 1380, - -2224, 3626, -6770, 25369, - 14949, -5366, 2995, -1907, - 1284, -861, 419, 71}, -{ 169, 242, -780, 1382, - -2225, 3627, -6772, 25334, - 14994, -5378, 3001, -1910, - 1286, -862, 419, 72}, -{ 169, 243, -781, 1383, - -2226, 3629, -6774, 25298, - 15038, -5390, 3007, -1914, - 1288, -862, 419, 72}, -{ 168, 244, -782, 1384, - -2227, 3631, -6776, 25262, - 15082, -5401, 3013, -1917, - 1290, -863, 418, 72}, -{ 168, 245, -783, 1385, - -2229, 3632, -6777, 25227, - 15127, -5413, 3019, -1921, - 1292, -863, 418, 73}, -{ 167, 247, -785, 1386, - -2230, 3634, -6779, 25191, - 15171, -5424, 3025, -1924, - 1293, -864, 418, 73}, -{ 167, 248, -786, 1387, - -2231, 3635, -6781, 25155, - 15215, -5436, 3031, -1927, - 1295, -864, 417, 73}, -{ 166, 249, -787, 1389, - -2232, 3637, -6782, 25119, - 15260, -5447, 3037, -1931, - 1297, -865, 417, 74}, -{ 166, 250, -788, 1390, - -2233, 3638, -6784, 25083, - 15304, -5459, 3043, -1934, - 1299, -865, 417, 74}, -{ 165, 251, -789, 1391, - -2234, 3640, -6785, 25047, - 15348, -5470, 3049, -1938, - 1300, -866, 416, 74}, -{ 165, 252, -791, 1392, - -2236, 3641, -6786, 25011, - 15393, -5482, 3055, -1941, - 1302, -866, 416, 74}, -{ 165, 253, -792, 1393, - -2237, 3642, -6788, 24975, - 15437, -5493, 3060, -1944, - 1304, -867, 416, 75}, -{ 164, 254, -793, 1394, - -2238, 3644, -6789, 24939, - 15481, -5504, 3066, -1948, - 1305, -867, 415, 75}, -{ 164, 255, -794, 1395, - -2239, 3645, -6790, 24902, - 15526, -5515, 3072, -1951, - 1307, -867, 415, 75}, -{ 163, 256, -795, 1396, - -2240, 3646, -6791, 24866, - 15570, -5527, 3078, -1954, - 1309, -868, 415, 76}, -{ 163, 257, -796, 1397, - -2241, 3647, -6792, 24830, - 15614, -5538, 3084, -1957, - 1310, -868, 414, 76}, -{ 162, 258, -797, 1398, - -2242, 3648, -6793, 24793, - 15658, -5549, 3089, -1961, - 1312, -869, 414, 76}, -{ 162, 259, -798, 1399, - -2243, 3649, -6794, 24756, - 15703, -5560, 3095, -1964, - 1314, -869, 413, 77}, -{ 161, 260, -800, 1400, - -2244, 3650, -6795, 24720, - 15747, -5571, 3101, -1967, - 1315, -870, 413, 77}, -{ 161, 261, -801, 1401, - -2244, 3651, -6795, 24683, - 15791, -5582, 3106, -1970, - 1317, -870, 413, 77}, -{ 160, 262, -802, 1402, - -2245, 3652, -6796, 24647, - 15835, -5593, 3112, -1974, - 1318, -870, 412, 77}, -{ 160, 264, -803, 1403, - -2246, 3653, -6797, 24610, - 15880, -5604, 3118, -1977, - 1320, -871, 412, 78}, -{ 159, 265, -804, 1404, - -2247, 3654, -6797, 24573, - 15924, -5615, 3123, -1980, - 1322, -871, 412, 78}, -{ 159, 266, -805, 1405, - -2248, 3655, -6798, 24536, - 15968, -5626, 3129, -1983, - 1323, -871, 411, 78}, -{ 159, 267, -806, 1405, - -2249, 3656, -6798, 24499, - 16012, -5636, 3134, -1986, - 1325, -872, 411, 79}, -{ 158, 268, -807, 1406, - -2249, 3657, -6798, 24462, - 16056, -5647, 3140, -1989, - 1326, -872, 410, 79}, -{ 158, 269, -808, 1407, - -2250, 3658, -6799, 24425, - 16100, -5658, 3145, -1992, - 1328, -873, 410, 79}, -{ 157, 270, -809, 1408, - -2251, 3658, -6799, 24388, - 16145, -5668, 3151, -1996, - 1329, -873, 410, 80}, -{ 157, 271, -810, 1409, - -2252, 3659, -6799, 24351, - 16189, -5679, 3156, -1999, - 1331, -873, 409, 80}, -{ 156, 272, -811, 1410, - -2252, 3660, -6799, 24313, - 16233, -5690, 3162, -2002, - 1332, -874, 409, 80}, -{ 156, 273, -812, 1410, - -2253, 3660, -6799, 24276, - 16277, -5700, 3167, -2005, - 1334, -874, 409, 81}, -{ 155, 274, -813, 1411, - -2254, 3661, -6799, 24239, - 16321, -5711, 3172, -2008, - 1335, -874, 408, 81}, -{ 155, 275, -814, 1412, - -2254, 3662, -6799, 24201, - 16365, -5721, 3178, -2011, - 1337, -875, 408, 81}, -{ 154, 276, -815, 1413, - -2255, 3662, -6799, 24164, - 16409, -5732, 3183, -2014, - 1338, -875, 407, 82}, -{ 154, 277, -816, 1414, - -2255, 3663, -6798, 24126, - 16453, -5742, 3188, -2017, - 1340, -875, 407, 82}, -{ 153, 278, -817, 1414, - -2256, 3663, -6798, 24089, - 16497, -5752, 3193, -2020, - 1341, -876, 406, 82}, -{ 153, 279, -818, 1415, - -2256, 3663, -6798, 24051, - 16541, -5763, 3199, -2023, - 1343, -876, 406, 83}, -{ 153, 280, -819, 1416, - -2257, 3664, -6797, 24013, - 16585, -5773, 3204, -2026, - 1344, -876, 406, 83}, -{ 152, 281, -820, 1416, - -2257, 3664, -6797, 23976, - 16629, -5783, 3209, -2029, - 1346, -876, 405, 83}, -{ 152, 282, -821, 1417, - -2258, 3664, -6796, 23938, - 16673, -5793, 3214, -2031, - 1347, -877, 405, 84}, -{ 151, 283, -822, 1418, - -2258, 3665, -6795, 23900, - 16717, -5804, 3219, -2034, - 1348, -877, 404, 84}, -{ 151, 284, -823, 1419, - -2259, 3665, -6795, 23862, - 16761, -5814, 3224, -2037, - 1350, -877, 404, 84}, -{ 150, 285, -824, 1419, - -2259, 3665, -6794, 23824, - 16805, -5824, 3230, -2040, - 1351, -878, 403, 85}, -{ 150, 286, -825, 1420, - -2260, 3665, -6793, 23786, - 16849, -5834, 3235, -2043, - 1353, -878, 403, 85}, -{ 149, 287, -826, 1420, - -2260, 3665, -6792, 23748, - 16893, -5844, 3240, -2046, - 1354, -878, 403, 85}, -{ 149, 288, -827, 1421, - -2260, 3666, -6791, 23710, - 16937, -5854, 3245, -2049, - 1355, -878, 402, 85}, -{ 149, 288, -827, 1422, - -2261, 3666, -6790, 23672, - 16981, -5863, 3250, -2051, - 1357, -879, 402, 86}, -{ 148, 289, -828, 1422, - -2261, 3666, -6789, 23633, - 17025, -5873, 3255, -2054, - 1358, -879, 401, 86}, -{ 148, 290, -829, 1423, - -2261, 3666, -6788, 23595, - 17069, -5883, 3260, -2057, - 1359, -879, 401, 86}, -{ 147, 291, -830, 1423, - -2261, 3666, -6787, 23557, - 17113, -5893, 3264, -2060, - 1361, -879, 400, 87}, -{ 147, 292, -831, 1424, - -2262, 3665, -6785, 23518, - 17156, -5903, 3269, -2062, - 1362, -879, 400, 87}, -{ 146, 293, -832, 1424, - -2262, 3665, -6784, 23480, - 17200, -5912, 3274, -2065, - 1363, -880, 399, 87}, -{ 146, 294, -833, 1425, - -2262, 3665, -6783, 23441, - 17244, -5922, 3279, -2068, - 1364, -880, 399, 88}, -{ 145, 295, -833, 1425, - -2262, 3665, -6781, 23403, - 17288, -5931, 3284, -2070, - 1366, -880, 398, 88}, -{ 145, 296, -834, 1426, - -2262, 3665, -6779, 23364, - 17332, -5941, 3289, -2073, - 1367, -880, 398, 88}, -{ 145, 297, -835, 1426, - -2263, 3665, -6778, 23326, - 17375, -5950, 3293, -2076, - 1368, -880, 398, 89}, -{ 144, 298, -836, 1427, - -2263, 3664, -6776, 23287, - 17419, -5960, 3298, -2078, - 1369, -881, 397, 89}, -{ 144, 299, -837, 1427, - -2263, 3664, -6774, 23248, - 17463, -5969, 3303, -2081, - 1371, -881, 397, 89}, -{ 143, 300, -838, 1428, - -2263, 3664, -6773, 23209, - 17506, -5979, 3307, -2083, - 1372, -881, 396, 90}, -{ 143, 301, -838, 1428, - -2263, 3663, -6771, 23170, - 17550, -5988, 3312, -2086, - 1373, -881, 396, 90}, -{ 142, 302, -839, 1429, - -2263, 3663, -6769, 23131, - 17594, -5997, 3317, -2089, - 1374, -881, 395, 90}, -{ 142, 302, -840, 1429, - -2263, 3662, -6767, 23092, - 17637, -6006, 3321, -2091, - 1375, -881, 395, 91}, -{ 141, 303, -841, 1429, - -2263, 3662, -6765, 23053, - 17681, -6016, 3326, -2094, - 1377, -881, 394, 91}, -{ 141, 304, -842, 1430, - -2263, 3661, -6763, 23014, - 17725, -6025, 3330, -2096, - 1378, -882, 394, 92}, -{ 141, 305, -842, 1430, - -2263, 3661, -6760, 22975, - 17768, -6034, 3335, -2099, - 1379, -882, 393, 92}, -{ 140, 306, -843, 1431, - -2263, 3660, -6758, 22936, - 17812, -6043, 3339, -2101, - 1380, -882, 393, 92}, -{ 140, 307, -844, 1431, - -2263, 3659, -6756, 22897, - 17855, -6052, 3344, -2104, - 1381, -882, 392, 93}, -{ 139, 308, -845, 1431, - -2262, 3659, -6753, 22858, - 17899, -6061, 3348, -2106, - 1382, -882, 392, 93}, -{ 139, 309, -845, 1432, - -2262, 3658, -6751, 22818, - 17942, -6070, 3352, -2108, - 1383, -882, 391, 93}, -{ 138, 310, -846, 1432, - -2262, 3657, -6748, 22779, - 17986, -6078, 3357, -2111, - 1384, -882, 391, 94}, -{ 138, 311, -847, 1432, - -2262, 3657, -6746, 22739, - 18029, -6087, 3361, -2113, - 1386, -882, 390, 94}, -{ 138, 311, -847, 1432, - -2262, 3656, -6743, 22700, - 18072, -6096, 3365, -2116, - 1387, -882, 389, 94}, -{ 137, 312, -848, 1433, - -2261, 3655, -6741, 22660, - 18116, -6105, 3370, -2118, - 1388, -882, 389, 95}, -{ 137, 313, -849, 1433, - -2261, 3654, -6738, 22621, - 18159, -6113, 3374, -2120, - 1389, -882, 388, 95}, -{ 136, 314, -850, 1433, - -2261, 3653, -6735, 22581, - 18203, -6122, 3378, -2122, - 1390, -882, 388, 95}, -{ 136, 315, -850, 1433, - -2261, 3652, -6732, 22542, - 18246, -6131, 3382, -2125, - 1391, -883, 387, 96}, -{ 135, 316, -851, 1434, - -2260, 3651, -6729, 22502, - 18289, -6139, 3387, -2127, - 1392, -883, 387, 96}, -{ 135, 317, -852, 1434, - -2260, 3650, -6726, 22462, - 18332, -6148, 3391, -2129, - 1393, -883, 386, 96}, -{ 135, 318, -852, 1434, - -2260, 3649, -6723, 22422, - 18376, -6156, 3395, -2132, - 1394, -883, 386, 97}, -{ 134, 318, -853, 1434, - -2259, 3648, -6720, 22383, - 18419, -6164, 3399, -2134, - 1395, -883, 385, 97}, -{ 134, 319, -854, 1434, - -2259, 3647, -6717, 22343, - 18462, -6173, 3403, -2136, - 1396, -883, 385, 97}, -{ 133, 320, -854, 1434, - -2259, 3646, -6714, 22303, - 18505, -6181, 3407, -2138, - 1397, -883, 384, 98}, -{ 133, 321, -855, 1435, - -2258, 3645, -6710, 22263, - 18549, -6189, 3411, -2140, - 1398, -883, 383, 98}, -{ 132, 322, -855, 1435, - -2258, 3643, -6707, 22223, - 18592, -6197, 3415, -2142, - 1399, -883, 383, 99}, -{ 132, 323, -856, 1435, - -2257, 3642, -6703, 22183, - 18635, -6205, 3419, -2145, - 1400, -883, 382, 99}, -{ 132, 323, -857, 1435, - -2257, 3641, -6700, 22142, - 18678, -6214, 3423, -2147, - 1400, -883, 382, 99}, -{ 131, 324, -857, 1435, - -2256, 3640, -6696, 22102, - 18721, -6222, 3427, -2149, - 1401, -883, 381, 100}, -{ 131, 325, -858, 1435, - -2256, 3638, -6693, 22062, - 18764, -6230, 3430, -2151, - 1402, -883, 381, 100}, -{ 130, 326, -858, 1435, - -2255, 3637, -6689, 22022, - 18807, -6238, 3434, -2153, - 1403, -883, 380, 100}, -{ 130, 327, -859, 1435, - -2254, 3635, -6685, 21982, - 18850, -6245, 3438, -2155, - 1404, -882, 379, 101}, -{ 130, 328, -860, 1435, - -2254, 3634, -6682, 21941, - 18893, -6253, 3442, -2157, - 1405, -882, 379, 101}, -{ 129, 328, -860, 1435, - -2253, 3633, -6678, 21901, - 18936, -6261, 3446, -2159, - 1406, -882, 378, 101}, -{ 129, 329, -861, 1435, - -2253, 3631, -6674, 21860, - 18979, -6269, 3449, -2161, - 1406, -882, 378, 102}, -{ 128, 330, -861, 1435, - -2252, 3630, -6670, 21820, - 19022, -6276, 3453, -2163, - 1407, -882, 377, 102}, -{ 128, 331, -862, 1435, - -2251, 3628, -6666, 21779, - 19064, -6284, 3457, -2165, - 1408, -882, 376, 103}, -{ 127, 332, -862, 1435, - -2251, 3626, -6662, 21739, - 19107, -6292, 3460, -2167, - 1409, -882, 376, 103}, -{ 127, 332, -863, 1435, - -2250, 3625, -6658, 21698, - 19150, -6299, 3464, -2169, - 1410, -882, 375, 103}, -{ 127, 333, -863, 1435, - -2249, 3623, -6654, 21658, - 19193, -6307, 3467, -2171, - 1410, -882, 375, 104}, -{ 126, 334, -864, 1435, - -2248, 3621, -6649, 21617, - 19236, -6314, 3471, -2173, - 1411, -882, 374, 104}, -{ 126, 335, -864, 1435, - -2248, 3620, -6645, 21576, - 19278, -6321, 3474, -2174, - 1412, -882, 373, 104}, -{ 125, 336, -865, 1435, - -2247, 3618, -6641, 21535, - 19321, -6329, 3478, -2176, - 1413, -882, 373, 105}, -{ 125, 336, -865, 1435, - -2246, 3616, -6636, 21495, - 19364, -6336, 3481, -2178, - 1413, -881, 372, 105}, -{ 125, 337, -866, 1435, - -2245, 3614, -6632, 21454, - 19406, -6343, 3485, -2180, - 1414, -881, 372, 105}, -{ 124, 338, -866, 1435, - -2244, 3612, -6627, 21413, - 19449, -6350, 3488, -2182, - 1415, -881, 371, 106}, -{ 124, 339, -867, 1434, - -2243, 3610, -6623, 21372, - 19491, -6358, 3491, -2184, - 1416, -881, 370, 106}, -{ 123, 339, -867, 1434, - -2242, 3608, -6618, 21331, - 19534, -6365, 3495, -2185, - 1416, -881, 370, 107}, -{ 123, 340, -868, 1434, - -2242, 3606, -6613, 21290, - 19576, -6372, 3498, -2187, - 1417, -881, 369, 107}, -{ 123, 341, -868, 1434, - -2241, 3604, -6608, 21249, - 19619, -6379, 3501, -2189, - 1418, -880, 368, 107}, -{ 122, 342, -869, 1434, - -2240, 3602, -6604, 21208, - 19661, -6386, 3505, -2190, - 1418, -880, 368, 108}, -{ 122, 343, -869, 1434, - -2239, 3600, -6599, 21167, - 19704, -6392, 3508, -2192, - 1419, -880, 367, 108}, -{ 121, 343, -870, 1433, - -2238, 3598, -6594, 21125, - 19746, -6399, 3511, -2194, - 1420, -880, 367, 108}, -{ 121, 344, -870, 1433, - -2237, 3596, -6589, 21084, - 19788, -6406, 3514, -2195, - 1420, -880, 366, 109}, -{ 121, 345, -870, 1433, - -2236, 3594, -6584, 21043, - 19831, -6413, 3517, -2197, - 1421, -879, 365, 109}, -{ 120, 346, -871, 1433, - -2235, 3592, -6579, 21002, - 19873, -6419, 3520, -2199, - 1421, -879, 365, 110}, -{ 120, 346, -871, 1432, - -2233, 3589, -6573, 20960, - 19915, -6426, 3523, -2200, - 1422, -879, 364, 110}, -{ 119, 347, -872, 1432, - -2232, 3587, -6568, 20919, - 19957, -6433, 3526, -2202, - 1422, -879, 363, 110}, -{ 119, 348, -872, 1432, - -2231, 3585, -6563, 20878, - 20000, -6439, 3529, -2203, - 1423, -879, 363, 111}, -{ 119, 349, -872, 1432, - -2230, 3583, -6558, 20836, - 20042, -6445, 3532, -2205, - 1424, -878, 362, 111}, -{ 118, 349, -873, 1431, - -2229, 3580, -6552, 20795, - 20084, -6452, 3535, -2206, - 1424, -878, 361, 112}, -{ 118, 350, -873, 1431, - -2228, 3578, -6547, 20753, - 20126, -6458, 3538, -2208, - 1425, -878, 361, 112}, -{ 117, 351, -874, 1431, - -2227, 3575, -6541, 20712, - 20168, -6464, 3541, -2209, - 1425, -878, 360, 112}, -{ 117, 351, -874, 1430, - -2225, 3573, -6536, 20670, - 20210, -6471, 3544, -2211, - 1426, -877, 359, 113}, -{ 117, 352, -874, 1430, - -2224, 3570, -6530, 20628, - 20252, -6477, 3547, -2212, - 1426, -877, 358, 113}, -{ 116, 353, -875, 1429, - -2223, 3568, -6524, 20587, - 20294, -6483, 3549, -2214, - 1427, -877, 358, 113}, -{ 116, 354, -875, 1429, - -2222, 3565, -6519, 20545, - 20336, -6489, 3552, -2215, - 1427, -876, 357, 114}, -{ 115, 354, -875, 1429, - -2220, 3563, -6513, 20503, - 20378, -6495, 3555, -2216, - 1427, -876, 356, 114}, -{ 115, 355, -876, 1428, - -2219, 3560, -6507, 20461, - 20420, -6501, 3557, -2218, - 1428, -876, 356, 115}, -{ 115, 356, -876, 1428, - -2218, 3557, -6501, 20420, - 20461, -6507, 3560, -2219, - 1428, -876, 355, 115}, -{ 114, 356, -876, 1427, - -2216, 3555, -6495, 20378, - 20503, -6513, 3563, -2220, - 1429, -875, 354, 115}, -{ 114, 357, -876, 1427, - -2215, 3552, -6489, 20336, - 20545, -6519, 3565, -2222, - 1429, -875, 354, 116}, -{ 113, 358, -877, 1427, - -2214, 3549, -6483, 20294, - 20587, -6524, 3568, -2223, - 1429, -875, 353, 116}, -{ 113, 358, -877, 1426, - -2212, 3547, -6477, 20252, - 20628, -6530, 3570, -2224, - 1430, -874, 352, 117}, -{ 113, 359, -877, 1426, - -2211, 3544, -6471, 20210, - 20670, -6536, 3573, -2225, - 1430, -874, 351, 117}, -{ 112, 360, -878, 1425, - -2209, 3541, -6464, 20168, - 20712, -6541, 3575, -2227, - 1431, -874, 351, 117}, -{ 112, 361, -878, 1425, - -2208, 3538, -6458, 20126, - 20753, -6547, 3578, -2228, - 1431, -873, 350, 118}, -{ 112, 361, -878, 1424, - -2206, 3535, -6452, 20084, - 20795, -6552, 3580, -2229, - 1431, -873, 349, 118}, -{ 111, 362, -878, 1424, - -2205, 3532, -6445, 20042, - 20836, -6558, 3583, -2230, - 1432, -872, 349, 119}, -{ 111, 363, -879, 1423, - -2203, 3529, -6439, 20000, - 20878, -6563, 3585, -2231, - 1432, -872, 348, 119}, -{ 110, 363, -879, 1422, - -2202, 3526, -6433, 19957, - 20919, -6568, 3587, -2232, - 1432, -872, 347, 119}, -{ 110, 364, -879, 1422, - -2200, 3523, -6426, 19915, - 20960, -6573, 3589, -2233, - 1432, -871, 346, 120}, -{ 110, 365, -879, 1421, - -2199, 3520, -6419, 19873, - 21002, -6579, 3592, -2235, - 1433, -871, 346, 120}, -{ 109, 365, -879, 1421, - -2197, 3517, -6413, 19831, - 21043, -6584, 3594, -2236, - 1433, -870, 345, 121}, -{ 109, 366, -880, 1420, - -2195, 3514, -6406, 19788, - 21084, -6589, 3596, -2237, - 1433, -870, 344, 121}, -{ 108, 367, -880, 1420, - -2194, 3511, -6399, 19746, - 21125, -6594, 3598, -2238, - 1433, -870, 343, 121}, -{ 108, 367, -880, 1419, - -2192, 3508, -6392, 19704, - 21167, -6599, 3600, -2239, - 1434, -869, 343, 122}, -{ 108, 368, -880, 1418, - -2190, 3505, -6386, 19661, - 21208, -6604, 3602, -2240, - 1434, -869, 342, 122}, -{ 107, 368, -880, 1418, - -2189, 3501, -6379, 19619, - 21249, -6608, 3604, -2241, - 1434, -868, 341, 123}, -{ 107, 369, -881, 1417, - -2187, 3498, -6372, 19576, - 21290, -6613, 3606, -2242, - 1434, -868, 340, 123}, -{ 107, 370, -881, 1416, - -2185, 3495, -6365, 19534, - 21331, -6618, 3608, -2242, - 1434, -867, 339, 123}, -{ 106, 370, -881, 1416, - -2184, 3491, -6358, 19491, - 21372, -6623, 3610, -2243, - 1434, -867, 339, 124}, -{ 106, 371, -881, 1415, - -2182, 3488, -6350, 19449, - 21413, -6627, 3612, -2244, - 1435, -866, 338, 124}, -{ 105, 372, -881, 1414, - -2180, 3485, -6343, 19406, - 21454, -6632, 3614, -2245, - 1435, -866, 337, 125}, -{ 105, 372, -881, 1413, - -2178, 3481, -6336, 19364, - 21495, -6636, 3616, -2246, - 1435, -865, 336, 125}, -{ 105, 373, -882, 1413, - -2176, 3478, -6329, 19321, - 21535, -6641, 3618, -2247, - 1435, -865, 336, 125}, -{ 104, 373, -882, 1412, - -2174, 3474, -6321, 19278, - 21576, -6645, 3620, -2248, - 1435, -864, 335, 126}, -{ 104, 374, -882, 1411, - -2173, 3471, -6314, 19236, - 21617, -6649, 3621, -2248, - 1435, -864, 334, 126}, -{ 104, 375, -882, 1410, - -2171, 3467, -6307, 19193, - 21658, -6654, 3623, -2249, - 1435, -863, 333, 127}, -{ 103, 375, -882, 1410, - -2169, 3464, -6299, 19150, - 21698, -6658, 3625, -2250, - 1435, -863, 332, 127}, -{ 103, 376, -882, 1409, - -2167, 3460, -6292, 19107, - 21739, -6662, 3626, -2251, - 1435, -862, 332, 127}, -{ 103, 376, -882, 1408, - -2165, 3457, -6284, 19064, - 21779, -6666, 3628, -2251, - 1435, -862, 331, 128}, -{ 102, 377, -882, 1407, - -2163, 3453, -6276, 19022, - 21820, -6670, 3630, -2252, - 1435, -861, 330, 128}, -{ 102, 378, -882, 1406, - -2161, 3449, -6269, 18979, - 21860, -6674, 3631, -2253, - 1435, -861, 329, 129}, -{ 101, 378, -882, 1406, - -2159, 3446, -6261, 18936, - 21901, -6678, 3633, -2253, - 1435, -860, 328, 129}, -{ 101, 379, -882, 1405, - -2157, 3442, -6253, 18893, - 21941, -6682, 3634, -2254, - 1435, -860, 328, 130}, -{ 101, 379, -882, 1404, - -2155, 3438, -6245, 18850, - 21982, -6685, 3635, -2254, - 1435, -859, 327, 130}, -{ 100, 380, -883, 1403, - -2153, 3434, -6238, 18807, - 22022, -6689, 3637, -2255, - 1435, -858, 326, 130}, -{ 100, 381, -883, 1402, - -2151, 3430, -6230, 18764, - 22062, -6693, 3638, -2256, - 1435, -858, 325, 131}, -{ 100, 381, -883, 1401, - -2149, 3427, -6222, 18721, - 22102, -6696, 3640, -2256, - 1435, -857, 324, 131}, -{ 99, 382, -883, 1400, - -2147, 3423, -6214, 18678, - 22142, -6700, 3641, -2257, - 1435, -857, 323, 132}, -{ 99, 382, -883, 1400, - -2145, 3419, -6205, 18635, - 22183, -6703, 3642, -2257, - 1435, -856, 323, 132}, -{ 99, 383, -883, 1399, - -2142, 3415, -6197, 18592, - 22223, -6707, 3643, -2258, - 1435, -855, 322, 132}, -{ 98, 383, -883, 1398, - -2140, 3411, -6189, 18549, - 22263, -6710, 3645, -2258, - 1435, -855, 321, 133}, -{ 98, 384, -883, 1397, - -2138, 3407, -6181, 18505, - 22303, -6714, 3646, -2259, - 1434, -854, 320, 133}, -{ 97, 385, -883, 1396, - -2136, 3403, -6173, 18462, - 22343, -6717, 3647, -2259, - 1434, -854, 319, 134}, -{ 97, 385, -883, 1395, - -2134, 3399, -6164, 18419, - 22383, -6720, 3648, -2259, - 1434, -853, 318, 134}, -{ 97, 386, -883, 1394, - -2132, 3395, -6156, 18376, - 22422, -6723, 3649, -2260, - 1434, -852, 318, 135}, -{ 96, 386, -883, 1393, - -2129, 3391, -6148, 18332, - 22462, -6726, 3650, -2260, - 1434, -852, 317, 135}, -{ 96, 387, -883, 1392, - -2127, 3387, -6139, 18289, - 22502, -6729, 3651, -2260, - 1434, -851, 316, 135}, -{ 96, 387, -883, 1391, - -2125, 3382, -6131, 18246, - 22542, -6732, 3652, -2261, - 1433, -850, 315, 136}, -{ 95, 388, -882, 1390, - -2122, 3378, -6122, 18203, - 22581, -6735, 3653, -2261, - 1433, -850, 314, 136}, -{ 95, 388, -882, 1389, - -2120, 3374, -6113, 18159, - 22621, -6738, 3654, -2261, - 1433, -849, 313, 137}, -{ 95, 389, -882, 1388, - -2118, 3370, -6105, 18116, - 22660, -6741, 3655, -2261, - 1433, -848, 312, 137}, -{ 94, 389, -882, 1387, - -2116, 3365, -6096, 18072, - 22700, -6743, 3656, -2262, - 1432, -847, 311, 138}, -{ 94, 390, -882, 1386, - -2113, 3361, -6087, 18029, - 22739, -6746, 3657, -2262, - 1432, -847, 311, 138}, -{ 94, 391, -882, 1384, - -2111, 3357, -6078, 17986, - 22779, -6748, 3657, -2262, - 1432, -846, 310, 138}, -{ 93, 391, -882, 1383, - -2108, 3352, -6070, 17942, - 22818, -6751, 3658, -2262, - 1432, -845, 309, 139}, -{ 93, 392, -882, 1382, - -2106, 3348, -6061, 17899, - 22858, -6753, 3659, -2262, - 1431, -845, 308, 139}, -{ 93, 392, -882, 1381, - -2104, 3344, -6052, 17855, - 22897, -6756, 3659, -2263, - 1431, -844, 307, 140}, -{ 92, 393, -882, 1380, - -2101, 3339, -6043, 17812, - 22936, -6758, 3660, -2263, - 1431, -843, 306, 140}, -{ 92, 393, -882, 1379, - -2099, 3335, -6034, 17768, - 22975, -6760, 3661, -2263, - 1430, -842, 305, 141}, -{ 92, 394, -882, 1378, - -2096, 3330, -6025, 17725, - 23014, -6763, 3661, -2263, - 1430, -842, 304, 141}, -{ 91, 394, -881, 1377, - -2094, 3326, -6016, 17681, - 23053, -6765, 3662, -2263, - 1429, -841, 303, 141}, -{ 91, 395, -881, 1375, - -2091, 3321, -6006, 17637, - 23092, -6767, 3662, -2263, - 1429, -840, 302, 142}, -{ 90, 395, -881, 1374, - -2089, 3317, -5997, 17594, - 23131, -6769, 3663, -2263, - 1429, -839, 302, 142}, -{ 90, 396, -881, 1373, - -2086, 3312, -5988, 17550, - 23170, -6771, 3663, -2263, - 1428, -838, 301, 143}, -{ 90, 396, -881, 1372, - -2083, 3307, -5979, 17506, - 23209, -6773, 3664, -2263, - 1428, -838, 300, 143}, -{ 89, 397, -881, 1371, - -2081, 3303, -5969, 17463, - 23248, -6774, 3664, -2263, - 1427, -837, 299, 144}, -{ 89, 397, -881, 1369, - -2078, 3298, -5960, 17419, - 23287, -6776, 3664, -2263, - 1427, -836, 298, 144}, -{ 89, 398, -880, 1368, - -2076, 3293, -5950, 17375, - 23326, -6778, 3665, -2263, - 1426, -835, 297, 145}, -{ 88, 398, -880, 1367, - -2073, 3289, -5941, 17332, - 23364, -6779, 3665, -2262, - 1426, -834, 296, 145}, -{ 88, 398, -880, 1366, - -2070, 3284, -5931, 17288, - 23403, -6781, 3665, -2262, - 1425, -833, 295, 145}, -{ 88, 399, -880, 1364, - -2068, 3279, -5922, 17244, - 23441, -6783, 3665, -2262, - 1425, -833, 294, 146}, -{ 87, 399, -880, 1363, - -2065, 3274, -5912, 17200, - 23480, -6784, 3665, -2262, - 1424, -832, 293, 146}, -{ 87, 400, -879, 1362, - -2062, 3269, -5903, 17156, - 23518, -6785, 3665, -2262, - 1424, -831, 292, 147}, -{ 87, 400, -879, 1361, - -2060, 3264, -5893, 17113, - 23557, -6787, 3666, -2261, - 1423, -830, 291, 147}, -{ 86, 401, -879, 1359, - -2057, 3260, -5883, 17069, - 23595, -6788, 3666, -2261, - 1423, -829, 290, 148}, -{ 86, 401, -879, 1358, - -2054, 3255, -5873, 17025, - 23633, -6789, 3666, -2261, - 1422, -828, 289, 148}, -{ 86, 402, -879, 1357, - -2051, 3250, -5863, 16981, - 23672, -6790, 3666, -2261, - 1422, -827, 288, 149}, -{ 85, 402, -878, 1355, - -2049, 3245, -5854, 16937, - 23710, -6791, 3666, -2260, - 1421, -827, 288, 149}, -{ 85, 403, -878, 1354, - -2046, 3240, -5844, 16893, - 23748, -6792, 3665, -2260, - 1420, -826, 287, 149}, -{ 85, 403, -878, 1353, - -2043, 3235, -5834, 16849, - 23786, -6793, 3665, -2260, - 1420, -825, 286, 150}, -{ 85, 403, -878, 1351, - -2040, 3230, -5824, 16805, - 23824, -6794, 3665, -2259, - 1419, -824, 285, 150}, -{ 84, 404, -877, 1350, - -2037, 3224, -5814, 16761, - 23862, -6795, 3665, -2259, - 1419, -823, 284, 151}, -{ 84, 404, -877, 1348, - -2034, 3219, -5804, 16717, - 23900, -6795, 3665, -2258, - 1418, -822, 283, 151}, -{ 84, 405, -877, 1347, - -2031, 3214, -5793, 16673, - 23938, -6796, 3664, -2258, - 1417, -821, 282, 152}, -{ 83, 405, -876, 1346, - -2029, 3209, -5783, 16629, - 23976, -6797, 3664, -2257, - 1416, -820, 281, 152}, -{ 83, 406, -876, 1344, - -2026, 3204, -5773, 16585, - 24013, -6797, 3664, -2257, - 1416, -819, 280, 153}, -{ 83, 406, -876, 1343, - -2023, 3199, -5763, 16541, - 24051, -6798, 3663, -2256, - 1415, -818, 279, 153}, -{ 82, 406, -876, 1341, - -2020, 3193, -5752, 16497, - 24089, -6798, 3663, -2256, - 1414, -817, 278, 153}, -{ 82, 407, -875, 1340, - -2017, 3188, -5742, 16453, - 24126, -6798, 3663, -2255, - 1414, -816, 277, 154}, -{ 82, 407, -875, 1338, - -2014, 3183, -5732, 16409, - 24164, -6799, 3662, -2255, - 1413, -815, 276, 154}, -{ 81, 408, -875, 1337, - -2011, 3178, -5721, 16365, - 24201, -6799, 3662, -2254, - 1412, -814, 275, 155}, -{ 81, 408, -874, 1335, - -2008, 3172, -5711, 16321, - 24239, -6799, 3661, -2254, - 1411, -813, 274, 155}, -{ 81, 409, -874, 1334, - -2005, 3167, -5700, 16277, - 24276, -6799, 3660, -2253, - 1410, -812, 273, 156}, -{ 80, 409, -874, 1332, - -2002, 3162, -5690, 16233, - 24313, -6799, 3660, -2252, - 1410, -811, 272, 156}, -{ 80, 409, -873, 1331, - -1999, 3156, -5679, 16189, - 24351, -6799, 3659, -2252, - 1409, -810, 271, 157}, -{ 80, 410, -873, 1329, - -1996, 3151, -5668, 16145, - 24388, -6799, 3658, -2251, - 1408, -809, 270, 157}, -{ 79, 410, -873, 1328, - -1992, 3145, -5658, 16100, - 24425, -6799, 3658, -2250, - 1407, -808, 269, 158}, -{ 79, 410, -872, 1326, - -1989, 3140, -5647, 16056, - 24462, -6798, 3657, -2249, - 1406, -807, 268, 158}, -{ 79, 411, -872, 1325, - -1986, 3134, -5636, 16012, - 24499, -6798, 3656, -2249, - 1405, -806, 267, 159}, -{ 78, 411, -871, 1323, - -1983, 3129, -5626, 15968, - 24536, -6798, 3655, -2248, - 1405, -805, 266, 159}, -{ 78, 412, -871, 1322, - -1980, 3123, -5615, 15924, - 24573, -6797, 3654, -2247, - 1404, -804, 265, 159}, -{ 78, 412, -871, 1320, - -1977, 3118, -5604, 15880, - 24610, -6797, 3653, -2246, - 1403, -803, 264, 160}, -{ 77, 412, -870, 1318, - -1974, 3112, -5593, 15835, - 24647, -6796, 3652, -2245, - 1402, -802, 262, 160}, -{ 77, 413, -870, 1317, - -1970, 3106, -5582, 15791, - 24683, -6795, 3651, -2244, - 1401, -801, 261, 161}, -{ 77, 413, -870, 1315, - -1967, 3101, -5571, 15747, - 24720, -6795, 3650, -2244, - 1400, -800, 260, 161}, -{ 77, 413, -869, 1314, - -1964, 3095, -5560, 15703, - 24756, -6794, 3649, -2243, - 1399, -798, 259, 162}, -{ 76, 414, -869, 1312, - -1961, 3089, -5549, 15658, - 24793, -6793, 3648, -2242, - 1398, -797, 258, 162}, -{ 76, 414, -868, 1310, - -1957, 3084, -5538, 15614, - 24830, -6792, 3647, -2241, - 1397, -796, 257, 163}, -{ 76, 415, -868, 1309, - -1954, 3078, -5527, 15570, - 24866, -6791, 3646, -2240, - 1396, -795, 256, 163}, -{ 75, 415, -867, 1307, - -1951, 3072, -5515, 15526, - 24902, -6790, 3645, -2239, - 1395, -794, 255, 164}, -{ 75, 415, -867, 1305, - -1948, 3066, -5504, 15481, - 24939, -6789, 3644, -2238, - 1394, -793, 254, 164}, -{ 75, 416, -867, 1304, - -1944, 3060, -5493, 15437, - 24975, -6788, 3642, -2237, - 1393, -792, 253, 165}, -{ 74, 416, -866, 1302, - -1941, 3055, -5482, 15393, - 25011, -6786, 3641, -2236, - 1392, -791, 252, 165}, -{ 74, 416, -866, 1300, - -1938, 3049, -5470, 15348, - 25047, -6785, 3640, -2234, - 1391, -789, 251, 165}, -{ 74, 417, -865, 1299, - -1934, 3043, -5459, 15304, - 25083, -6784, 3638, -2233, - 1390, -788, 250, 166}, -{ 74, 417, -865, 1297, - -1931, 3037, -5447, 15260, - 25119, -6782, 3637, -2232, - 1389, -787, 249, 166}, -{ 73, 417, -864, 1295, - -1927, 3031, -5436, 15215, - 25155, -6781, 3635, -2231, - 1387, -786, 248, 167}, -{ 73, 418, -864, 1293, - -1924, 3025, -5424, 15171, - 25191, -6779, 3634, -2230, - 1386, -785, 247, 167}, -{ 73, 418, -863, 1292, - -1921, 3019, -5413, 15127, - 25227, -6777, 3632, -2229, - 1385, -783, 245, 168}, -{ 72, 418, -863, 1290, - -1917, 3013, -5401, 15082, - 25262, -6776, 3631, -2227, - 1384, -782, 244, 168}, -{ 72, 419, -862, 1288, - -1914, 3007, -5390, 15038, - 25298, -6774, 3629, -2226, - 1383, -781, 243, 169}, -{ 72, 419, -862, 1286, - -1910, 3001, -5378, 14994, - 25334, -6772, 3627, -2225, - 1382, -780, 242, 169}, -{ 71, 419, -861, 1284, - -1907, 2995, -5366, 14949, - 25369, -6770, 3626, -2224, - 1380, -779, 241, 170}, -{ 71, 420, -861, 1283, - -1903, 2989, -5355, 14905, - 25405, -6768, 3624, -2222, - 1379, -777, 240, 170}, -{ 71, 420, -860, 1281, - -1900, 2983, -5343, 14861, - 25440, -6766, 3622, -2221, - 1378, -776, 239, 171}, -{ 71, 420, -860, 1279, - -1896, 2977, -5331, 14816, - 25476, -6764, 3621, -2220, - 1377, -775, 238, 171}, -{ 70, 420, -859, 1277, - -1893, 2970, -5319, 14772, - 25511, -6761, 3619, -2218, - 1376, -774, 237, 172}, -{ 70, 421, -859, 1275, - -1889, 2964, -5308, 14727, - 25546, -6759, 3617, -2217, - 1374, -772, 236, 172}, -{ 70, 421, -858, 1274, - -1886, 2958, -5296, 14683, - 25581, -6757, 3615, -2215, - 1373, -771, 234, 173}, -{ 69, 421, -857, 1272, - -1882, 2952, -5284, 14639, - 25616, -6754, 3613, -2214, - 1372, -770, 233, 173}, -{ 69, 422, -857, 1270, - -1878, 2945, -5272, 14594, - 25651, -6752, 3611, -2212, - 1370, -769, 232, 174}, -{ 69, 422, -856, 1268, - -1875, 2939, -5260, 14550, - 25686, -6749, 3609, -2211, - 1369, -767, 231, 174}, -{ 69, 422, -856, 1266, - -1871, 2933, -5248, 14505, - 25721, -6747, 3607, -2209, - 1368, -766, 230, 174}, -{ 68, 423, -855, 1264, - -1868, 2927, -5236, 14461, - 25756, -6744, 3605, -2208, - 1367, -765, 229, 175}, -{ 68, 423, -855, 1262, - -1864, 2920, -5224, 14417, - 25791, -6741, 3603, -2206, - 1365, -763, 228, 175}, -{ 68, 423, -854, 1260, - -1860, 2914, -5211, 14372, - 25826, -6738, 3601, -2205, - 1364, -762, 227, 176}, -{ 67, 423, -853, 1258, - -1857, 2908, -5199, 14328, - 25860, -6735, 3598, -2203, - 1362, -761, 225, 176}, -{ 67, 424, -853, 1257, - -1853, 2901, -5187, 14283, - 25895, -6732, 3596, -2202, - 1361, -759, 224, 177}, -{ 67, 424, -852, 1255, - -1849, 2895, -5175, 14239, - 25929, -6729, 3594, -2200, - 1360, -758, 223, 177}, -{ 67, 424, -852, 1253, - -1845, 2888, -5162, 14194, - 25964, -6726, 3592, -2198, - 1358, -757, 222, 178}, -{ 66, 424, -851, 1251, - -1842, 2882, -5150, 14150, - 25998, -6723, 3589, -2197, - 1357, -755, 221, 178}, -{ 66, 425, -850, 1249, - -1838, 2875, -5138, 14106, - 26033, -6719, 3587, -2195, - 1355, -754, 220, 179}, -{ 66, 425, -850, 1247, - -1834, 2869, -5125, 14061, - 26067, -6716, 3585, -2193, - 1354, -753, 218, 179}, -{ 65, 425, -849, 1245, - -1830, 2862, -5113, 14017, - 26101, -6713, 3582, -2191, - 1352, -751, 217, 180}, -{ 65, 425, -848, 1243, - -1827, 2856, -5101, 13972, - 26135, -6709, 3580, -2190, - 1351, -750, 216, 180}, -{ 65, 426, -848, 1241, - -1823, 2849, -5088, 13928, - 26169, -6706, 3577, -2188, - 1349, -748, 215, 181}, -{ 65, 426, -847, 1239, - -1819, 2843, -5076, 13883, - 26203, -6702, 3575, -2186, - 1348, -747, 214, 181}, -{ 64, 426, -846, 1237, - -1815, 2836, -5063, 13839, - 26237, -6698, 3572, -2184, - 1346, -746, 213, 182}, -{ 64, 426, -846, 1235, - -1811, 2829, -5051, 13795, - 26271, -6694, 3569, -2182, - 1345, -744, 211, 182}, -{ 64, 427, -845, 1233, - -1807, 2823, -5038, 13750, - 26305, -6691, 3567, -2180, - 1343, -743, 210, 183}, -{ 63, 427, -844, 1231, - -1804, 2816, -5025, 13706, - 26338, -6687, 3564, -2179, - 1342, -741, 209, 183}, -{ 63, 427, -844, 1229, - -1800, 2809, -5013, 13661, - 26372, -6683, 3561, -2177, - 1340, -740, 208, 184}, -{ 63, 427, -843, 1227, - -1796, 2803, -5000, 13617, - 26405, -6679, 3558, -2175, - 1339, -738, 207, 184}, -{ 63, 428, -842, 1224, - -1792, 2796, -4987, 13573, - 26439, -6674, 3556, -2173, - 1337, -737, 206, 185}, -{ 62, 428, -842, 1222, - -1788, 2789, -4974, 13528, - 26472, -6670, 3553, -2171, - 1335, -735, 204, 185}, -{ 62, 428, -841, 1220, - -1784, 2782, -4962, 13484, - 26506, -6666, 3550, -2169, - 1334, -734, 203, 186}, -{ 62, 428, -840, 1218, - -1780, 2776, -4949, 13439, - 26539, -6662, 3547, -2167, - 1332, -733, 202, 186}, -{ 62, 428, -840, 1216, - -1776, 2769, -4936, 13395, - 26572, -6657, 3544, -2165, - 1330, -731, 201, 187}, -{ 61, 429, -839, 1214, - -1772, 2762, -4923, 13351, - 26605, -6653, 3541, -2162, - 1329, -730, 200, 187}, -{ 61, 429, -838, 1212, - -1768, 2755, -4910, 13306, - 26638, -6648, 3538, -2160, - 1327, -728, 198, 188}, -{ 61, 429, -837, 1210, - -1764, 2748, -4897, 13262, - 26671, -6643, 3535, -2158, - 1325, -727, 197, 188}, -{ 60, 429, -837, 1208, - -1760, 2741, -4884, 13217, - 26704, -6639, 3532, -2156, - 1324, -725, 196, 189}, -{ 60, 429, -836, 1205, - -1756, 2734, -4871, 13173, - 26737, -6634, 3528, -2154, - 1322, -724, 195, 189}, -{ 60, 430, -835, 1203, - -1752, 2727, -4858, 13129, - 26770, -6629, 3525, -2152, - 1320, -722, 193, 190}, -{ 60, 430, -834, 1201, - -1748, 2720, -4845, 13084, - 26803, -6624, 3522, -2150, - 1319, -720, 192, 190}, -{ 59, 430, -834, 1199, - -1744, 2714, -4832, 13040, - 26835, -6619, 3519, -2147, - 1317, -719, 191, 191}, -{ 59, 430, -833, 1197, - -1740, 2707, -4819, 12995, - 26868, -6614, 3515, -2145, - 1315, -717, 190, 191}, -{ 59, 430, -832, 1195, - -1736, 2700, -4806, 12951, - 26900, -6609, 3512, -2143, - 1313, -716, 189, 192}, -{ 59, 431, -831, 1192, - -1732, 2692, -4793, 12907, - 26933, -6604, 3509, -2140, - 1311, -714, 187, 192}, -{ 58, 431, -831, 1190, - -1728, 2685, -4779, 12862, - 26965, -6598, 3505, -2138, - 1310, -713, 186, 193}, -{ 58, 431, -830, 1188, - -1724, 2678, -4766, 12818, - 26997, -6593, 3502, -2136, - 1308, -711, 185, 193}, -{ 58, 431, -829, 1186, - -1719, 2671, -4753, 12774, - 27030, -6588, 3498, -2133, - 1306, -710, 184, 194}, -{ 58, 431, -828, 1183, - -1715, 2664, -4740, 12729, - 27062, -6582, 3495, -2131, - 1304, -708, 182, 194}, -{ 57, 432, -827, 1181, - -1711, 2657, -4726, 12685, - 27094, -6576, 3491, -2129, - 1302, -706, 181, 195}, -{ 57, 432, -827, 1179, - -1707, 2650, -4713, 12641, - 27126, -6571, 3488, -2126, - 1300, -705, 180, 195}, -{ 57, 432, -826, 1177, - -1703, 2643, -4699, 12596, - 27158, -6565, 3484, -2124, - 1298, -703, 179, 196}, -{ 57, 432, -825, 1174, - -1699, 2636, -4686, 12552, - 27189, -6559, 3480, -2121, - 1297, -702, 177, 196}, -{ 56, 432, -824, 1172, - -1694, 2628, -4673, 12508, - 27221, -6553, 3477, -2119, - 1295, -700, 176, 197}, -{ 56, 432, -823, 1170, - -1690, 2621, -4659, 12464, - 27253, -6547, 3473, -2116, - 1293, -698, 175, 197}, -{ 56, 432, -822, 1168, - -1686, 2614, -4646, 12419, - 27285, -6541, 3469, -2114, - 1291, -697, 174, 198}, -{ 56, 433, -822, 1165, - -1682, 2607, -4632, 12375, - 27316, -6535, 3465, -2111, - 1289, -695, 172, 198}, -{ 55, 433, -821, 1163, - -1677, 2599, -4619, 12331, - 27348, -6529, 3461, -2108, - 1287, -693, 171, 199}, -{ 55, 433, -820, 1161, - -1673, 2592, -4605, 12286, - 27379, -6523, 3458, -2106, - 1285, -692, 170, 199}, -{ 55, 433, -819, 1158, - -1669, 2585, -4591, 12242, - 27410, -6517, 3454, -2103, - 1283, -690, 168, 200}, -{ 55, 433, -818, 1156, - -1665, 2578, -4578, 12198, - 27441, -6510, 3450, -2101, - 1281, -688, 167, 200}, -{ 54, 433, -817, 1154, - -1660, 2570, -4564, 12154, - 27473, -6504, 3446, -2098, - 1279, -687, 166, 201}, -{ 54, 433, -816, 1151, - -1656, 2563, -4550, 12110, - 27504, -6497, 3442, -2095, - 1277, -685, 165, 201}, -{ 54, 434, -816, 1149, - -1652, 2556, -4537, 12065, - 27535, -6491, 3437, -2092, - 1275, -683, 163, 202}, -{ 54, 434, -815, 1147, - -1647, 2548, -4523, 12021, - 27566, -6484, 3433, -2090, - 1273, -682, 162, 202}, -{ 53, 434, -814, 1144, - -1643, 2541, -4509, 11977, - 27597, -6477, 3429, -2087, - 1271, -680, 161, 203}, -{ 53, 434, -813, 1142, - -1639, 2533, -4495, 11933, - 27627, -6470, 3425, -2084, - 1268, -678, 159, 203}, -{ 53, 434, -812, 1140, - -1634, 2526, -4482, 11889, - 27658, -6463, 3421, -2081, - 1266, -676, 158, 204}, -{ 53, 434, -811, 1137, - -1630, 2518, -4468, 11844, - 27689, -6456, 3416, -2079, - 1264, -675, 157, 204}, -{ 52, 434, -810, 1135, - -1625, 2511, -4454, 11800, - 27719, -6449, 3412, -2076, - 1262, -673, 155, 205}, -{ 52, 434, -809, 1132, - -1621, 2504, -4440, 11756, - 27750, -6442, 3408, -2073, - 1260, -671, 154, 205}, -{ 52, 435, -808, 1130, - -1617, 2496, -4426, 11712, - 27780, -6435, 3403, -2070, - 1258, -669, 153, 206}, -{ 52, 435, -808, 1128, - -1612, 2489, -4412, 11668, - 27810, -6428, 3399, -2067, - 1256, -668, 152, 206}, -{ 51, 435, -807, 1125, - -1608, 2481, -4398, 11624, - 27841, -6420, 3395, -2064, - 1253, -666, 150, 207}, -{ 51, 435, -806, 1123, - -1603, 2473, -4384, 11580, - 27871, -6413, 3390, -2061, - 1251, -664, 149, 207}, -{ 51, 435, -805, 1120, - -1599, 2466, -4370, 11536, - 27901, -6405, 3385, -2058, - 1249, -662, 148, 208}, -{ 51, 435, -804, 1118, - -1594, 2458, -4356, 11492, - 27931, -6398, 3381, -2055, - 1247, -661, 146, 208}, -{ 50, 435, -803, 1115, - -1590, 2451, -4342, 11448, - 27961, -6390, 3376, -2052, - 1245, -659, 145, 209}, -{ 50, 435, -802, 1113, - -1586, 2443, -4328, 11404, - 27991, -6382, 3372, -2049, - 1242, -657, 144, 209}, -{ 50, 435, -801, 1110, - -1581, 2435, -4314, 11360, - 28020, -6374, 3367, -2046, - 1240, -655, 142, 210}, -{ 50, 435, -800, 1108, - -1577, 2428, -4300, 11316, - 28050, -6367, 3362, -2043, - 1238, -653, 141, 210}, -{ 50, 436, -799, 1105, - -1572, 2420, -4286, 11272, - 28080, -6359, 3357, -2040, - 1236, -651, 140, 211}, -{ 49, 436, -798, 1103, - -1567, 2412, -4271, 11228, - 28109, -6351, 3353, -2037, - 1233, -650, 138, 211}, -{ 49, 436, -797, 1100, - -1563, 2405, -4257, 11184, - 28139, -6343, 3348, -2033, - 1231, -648, 137, 212}, -{ 49, 436, -796, 1098, - -1558, 2397, -4243, 11140, - 28168, -6334, 3343, -2030, - 1229, -646, 136, 212}, -{ 49, 436, -795, 1095, - -1554, 2389, -4229, 11096, - 28197, -6326, 3338, -2027, - 1226, -644, 134, 213}, -{ 48, 436, -794, 1093, - -1549, 2382, -4215, 11052, - 28227, -6318, 3333, -2024, - 1224, -642, 133, 213}, -{ 48, 436, -793, 1090, - -1545, 2374, -4200, 11008, - 28256, -6309, 3328, -2021, - 1222, -640, 132, 214}, -{ 48, 436, -792, 1088, - -1540, 2366, -4186, 10964, - 28285, -6301, 3323, -2017, - 1219, -639, 130, 214}, -{ 48, 436, -791, 1085, - -1535, 2358, -4172, 10920, - 28314, -6292, 3318, -2014, - 1217, -637, 129, 215}, -{ 47, 436, -790, 1083, - -1531, 2351, -4157, 10876, - 28343, -6284, 3313, -2011, - 1214, -635, 127, 215}, -{ 47, 436, -789, 1080, - -1526, 2343, -4143, 10832, - 28371, -6275, 3308, -2007, - 1212, -633, 126, 216}, -{ 47, 436, -788, 1078, - -1522, 2335, -4128, 10789, - 28400, -6266, 3303, -2004, - 1210, -631, 125, 217}, -{ 47, 436, -787, 1075, - -1517, 2327, -4114, 10745, - 28429, -6257, 3297, -2001, - 1207, -629, 123, 217}, -{ 46, 436, -786, 1073, - -1512, 2319, -4100, 10701, - 28457, -6248, 3292, -1997, - 1205, -627, 122, 218}, -{ 46, 436, -785, 1070, - -1508, 2311, -4085, 10657, - 28486, -6239, 3287, -1994, - 1202, -625, 121, 218}, -{ 46, 437, -784, 1067, - -1503, 2303, -4071, 10614, - 28514, -6230, 3282, -1990, - 1200, -623, 119, 219}, -{ 46, 437, -783, 1065, - -1498, 2296, -4056, 10570, - 28543, -6221, 3276, -1987, - 1197, -621, 118, 219}, -{ 46, 437, -782, 1062, - -1494, 2288, -4042, 10526, - 28571, -6212, 3271, -1983, - 1195, -619, 116, 220}, -{ 45, 437, -781, 1060, - -1489, 2280, -4027, 10482, - 28599, -6202, 3265, -1980, - 1192, -617, 115, 220}, -{ 45, 437, -780, 1057, - -1484, 2272, -4012, 10439, - 28627, -6193, 3260, -1976, - 1190, -615, 114, 221}, -{ 45, 437, -779, 1054, - -1480, 2264, -3998, 10395, - 28655, -6184, 3254, -1973, - 1187, -614, 112, 221}, -{ 45, 437, -778, 1052, - -1475, 2256, -3983, 10351, - 28683, -6174, 3249, -1969, - 1185, -612, 111, 222}, -{ 44, 437, -777, 1049, - -1470, 2248, -3969, 10308, - 28711, -6164, 3243, -1966, - 1182, -610, 109, 222}, -{ 44, 437, -776, 1046, - -1465, 2240, -3954, 10264, - 28738, -6155, 3238, -1962, - 1179, -608, 108, 223}, -{ 44, 437, -774, 1044, - -1461, 2232, -3939, 10221, - 28766, -6145, 3232, -1958, - 1177, -606, 107, 223}, -{ 44, 437, -773, 1041, - -1456, 2224, -3925, 10177, - 28794, -6135, 3226, -1955, - 1174, -604, 105, 224}, -{ 44, 437, -772, 1038, - -1451, 2216, -3910, 10133, - 28821, -6125, 3221, -1951, - 1172, -602, 104, 224}, -{ 43, 437, -771, 1036, - -1446, 2208, -3895, 10090, - 28849, -6115, 3215, -1947, - 1169, -600, 102, 225}, -{ 43, 437, -770, 1033, - -1441, 2200, -3881, 10046, - 28876, -6105, 3209, -1944, - 1166, -598, 101, 225}, -{ 43, 437, -769, 1030, - -1437, 2192, -3866, 10003, - 28903, -6095, 3203, -1940, - 1164, -596, 100, 226}, -{ 43, 437, -768, 1028, - -1432, 2183, -3851, 9960, - 28930, -6085, 3197, -1936, - 1161, -594, 98, 226}, -{ 43, 437, -767, 1025, - -1427, 2175, -3836, 9916, - 28957, -6074, 3191, -1932, - 1158, -592, 97, 227}, -{ 42, 437, -766, 1022, - -1422, 2167, -3821, 9873, - 28984, -6064, 3185, -1928, - 1156, -589, 95, 227}, -{ 42, 437, -765, 1020, - -1417, 2159, -3807, 9829, - 29011, -6054, 3179, -1925, - 1153, -587, 94, 228}, -{ 42, 437, -763, 1017, - -1413, 2151, -3792, 9786, - 29038, -6043, 3173, -1921, - 1150, -585, 93, 229}, -{ 42, 437, -762, 1014, - -1408, 2143, -3777, 9743, - 29065, -6032, 3167, -1917, - 1148, -583, 91, 229}, -{ 42, 437, -761, 1012, - -1403, 2135, -3762, 9699, - 29092, -6022, 3161, -1913, - 1145, -581, 90, 230}, -{ 41, 437, -760, 1009, - -1398, 2127, -3747, 9656, - 29118, -6011, 3155, -1909, - 1142, -579, 88, 230}, -{ 41, 437, -759, 1006, - -1393, 2118, -3732, 9613, - 29145, -6000, 3149, -1905, - 1139, -577, 87, 231}, -{ 41, 437, -758, 1003, - -1388, 2110, -3717, 9569, - 29171, -5989, 3143, -1901, - 1136, -575, 85, 231}, -{ 41, 437, -757, 1001, - -1383, 2102, -3702, 9526, - 29197, -5978, 3136, -1897, - 1134, -573, 84, 232}, -{ 40, 437, -755, 998, - -1378, 2094, -3687, 9483, - 29223, -5967, 3130, -1893, - 1131, -571, 82, 232}, -{ 40, 437, -754, 995, - -1374, 2085, -3672, 9440, - 29250, -5956, 3124, -1889, - 1128, -569, 81, 233}, -{ 40, 437, -753, 992, - -1369, 2077, -3657, 9396, - 29276, -5945, 3117, -1885, - 1125, -567, 80, 233}, -{ 40, 437, -752, 990, - -1364, 2069, -3642, 9353, - 29302, -5933, 3111, -1881, - 1122, -564, 78, 234}, -{ 40, 437, -751, 987, - -1359, 2061, -3627, 9310, - 29327, -5922, 3105, -1877, - 1119, -562, 77, 234}, -{ 39, 437, -750, 984, - -1354, 2052, -3612, 9267, - 29353, -5911, 3098, -1873, - 1117, -560, 75, 235}, -{ 39, 437, -748, 981, - -1349, 2044, -3597, 9224, - 29379, -5899, 3092, -1869, - 1114, -558, 74, 235}, -{ 39, 437, -747, 978, - -1344, 2036, -3582, 9181, - 29405, -5887, 3085, -1864, - 1111, -556, 72, 236}, -{ 39, 437, -746, 976, - -1339, 2027, -3567, 9138, - 29430, -5876, 3079, -1860, - 1108, -554, 71, 236}, -{ 39, 437, -745, 973, - -1334, 2019, -3552, 9095, - 29456, -5864, 3072, -1856, - 1105, -552, 69, 237}, -{ 38, 437, -744, 970, - -1329, 2011, -3537, 9052, - 29481, -5852, 3065, -1852, - 1102, -549, 68, 237}, -{ 38, 437, -743, 967, - -1324, 2002, -3521, 9009, - 29506, -5840, 3059, -1848, - 1099, -547, 66, 238}, -{ 38, 437, -741, 964, - -1319, 1994, -3506, 8966, - 29531, -5828, 3052, -1843, - 1096, -545, 65, 239}, -{ 38, 436, -740, 961, - -1314, 1986, -3491, 8923, - 29556, -5816, 3045, -1839, - 1093, -543, 64, 239}, -{ 38, 436, -739, 959, - -1309, 1977, -3476, 8880, - 29581, -5804, 3038, -1835, - 1090, -541, 62, 240}, -{ 37, 436, -738, 956, - -1304, 1969, -3461, 8837, - 29606, -5792, 3031, -1830, - 1087, -538, 61, 240}, -{ 37, 436, -736, 953, - -1299, 1961, -3446, 8795, - 29631, -5779, 3025, -1826, - 1084, -536, 59, 241}, -{ 37, 436, -735, 950, - -1294, 1952, -3430, 8752, - 29656, -5767, 3018, -1822, - 1081, -534, 58, 241}, -{ 37, 436, -734, 947, - -1289, 1944, -3415, 8709, - 29681, -5755, 3011, -1817, - 1078, -532, 56, 242}, -{ 37, 436, -733, 944, - -1284, 1935, -3400, 8666, - 29705, -5742, 3004, -1813, - 1075, -530, 55, 242}, -{ 37, 436, -732, 942, - -1279, 1927, -3385, 8624, - 29730, -5729, 2997, -1809, - 1072, -527, 53, 243}, -{ 36, 436, -730, 939, - -1274, 1918, -3369, 8581, - 29754, -5717, 2990, -1804, - 1069, -525, 52, 243}, -{ 36, 436, -729, 936, - -1269, 1910, -3354, 8538, - 29778, -5704, 2983, -1800, - 1066, -523, 50, 244}, -{ 36, 436, -728, 933, - -1264, 1901, -3339, 8496, - 29802, -5691, 2975, -1795, - 1063, -521, 49, 244}, -{ 36, 436, -727, 930, - -1258, 1893, -3323, 8453, - 29827, -5678, 2968, -1791, - 1060, -518, 47, 245}, -{ 36, 436, -725, 927, - -1253, 1884, -3308, 8410, - 29851, -5665, 2961, -1786, - 1057, -516, 46, 245}, -{ 35, 436, -724, 924, - -1248, 1876, -3293, 8368, - 29874, -5652, 2954, -1782, - 1053, -514, 44, 246}, -{ 35, 436, -723, 921, - -1243, 1867, -3277, 8325, - 29898, -5639, 2947, -1777, - 1050, -512, 43, 247}, -{ 35, 436, -722, 918, - -1238, 1859, -3262, 8283, - 29922, -5626, 2939, -1772, - 1047, -509, 41, 247}, -{ 35, 435, -720, 915, - -1233, 1850, -3246, 8240, - 29946, -5612, 2932, -1768, - 1044, -507, 40, 248}, -{ 35, 435, -719, 913, - -1228, 1842, -3231, 8198, - 29969, -5599, 2925, -1763, - 1041, -505, 38, 248}, -{ 34, 435, -718, 910, - -1223, 1833, -3216, 8156, - 29993, -5585, 2917, -1758, - 1038, -502, 37, 249}, -{ 34, 435, -716, 907, - -1218, 1825, -3200, 8113, - 30016, -5572, 2910, -1754, - 1034, -500, 35, 249}, -{ 34, 435, -715, 904, - -1212, 1816, -3185, 8071, - 30039, -5558, 2902, -1749, - 1031, -498, 34, 250}, -{ 34, 435, -714, 901, - -1207, 1808, -3169, 8029, - 30063, -5545, 2895, -1744, - 1028, -495, 32, 250}, -{ 34, 435, -713, 898, - -1202, 1799, -3154, 7986, - 30086, -5531, 2887, -1740, - 1025, -493, 30, 251}, -{ 33, 435, -711, 895, - -1197, 1790, -3138, 7944, - 30109, -5517, 2879, -1735, - 1021, -491, 29, 251}, -{ 33, 435, -710, 892, - -1192, 1782, -3123, 7902, - 30132, -5503, 2872, -1730, - 1018, -488, 27, 252}, -{ 33, 435, -709, 889, - -1187, 1773, -3107, 7860, - 30155, -5489, 2864, -1725, - 1015, -486, 26, 252}, -{ 33, 434, -707, 886, - -1181, 1765, -3092, 7818, - 30177, -5475, 2856, -1720, - 1012, -484, 24, 253}, -{ 33, 434, -706, 883, - -1176, 1756, -3076, 7775, - 30200, -5461, 2849, -1716, - 1008, -481, 23, 253}, -{ 33, 434, -705, 880, - -1171, 1747, -3061, 7733, - 30223, -5447, 2841, -1711, - 1005, -479, 21, 254}, -{ 32, 434, -703, 877, - -1166, 1739, -3045, 7691, - 30245, -5432, 2833, -1706, - 1002, -477, 20, 255}, -{ 32, 434, -702, 874, - -1161, 1730, -3030, 7649, - 30267, -5418, 2825, -1701, - 998, -474, 18, 255}, -{ 32, 434, -701, 871, - -1155, 1721, -3014, 7607, - 30290, -5403, 2817, -1696, - 995, -472, 17, 256}, -{ 32, 434, -699, 868, - -1150, 1713, -2999, 7565, - 30312, -5389, 2809, -1691, - 992, -469, 15, 256}, -{ 32, 434, -698, 865, - -1145, 1704, -2983, 7523, - 30334, -5374, 2801, -1686, - 988, -467, 14, 257}, -{ 32, 434, -697, 862, - -1140, 1695, -2968, 7481, - 30356, -5359, 2793, -1681, - 985, -465, 12, 257}, -{ 31, 433, -695, 859, - -1135, 1687, -2952, 7440, - 30378, -5345, 2785, -1676, - 981, -462, 10, 258}, -{ 31, 433, -694, 856, - -1129, 1678, -2936, 7398, - 30400, -5330, 2777, -1671, - 978, -460, 9, 258}, -{ 31, 433, -693, 853, - -1124, 1669, -2921, 7356, - 30422, -5315, 2769, -1666, - 975, -457, 7, 259}, -{ 31, 433, -691, 850, - -1119, 1660, -2905, 7314, - 30443, -5300, 2761, -1661, - 971, -455, 6, 259}, -{ 31, 433, -690, 847, - -1114, 1652, -2890, 7272, - 30465, -5285, 2753, -1656, - 968, -453, 4, 260}, -{ 31, 433, -689, 844, - -1108, 1643, -2874, 7231, - 30486, -5269, 2745, -1651, - 964, -450, 3, 260}, -{ 30, 433, -687, 841, - -1103, 1634, -2858, 7189, - 30508, -5254, 2737, -1646, - 961, -448, 1, 261}, -{ 30, 432, -686, 838, - -1098, 1625, -2843, 7148, - 30529, -5239, 2728, -1640, - 957, -445, 0, 261}, -{ 30, 432, -685, 835, - -1092, 1617, -2827, 7106, - 30550, -5223, 2720, -1635, - 954, -443, -2, 262}, -{ 30, 432, -683, 832, - -1087, 1608, -2811, 7064, - 30571, -5208, 2712, -1630, - 950, -440, -4, 263}, -{ 30, 432, -682, 829, - -1082, 1599, -2796, 7023, - 30592, -5192, 2703, -1625, - 947, -438, -5, 263}, -{ 29, 432, -680, 826, - -1077, 1590, -2780, 6981, - 30613, -5177, 2695, -1620, - 943, -435, -7, 264}, -{ 29, 432, -679, 823, - -1071, 1582, -2764, 6940, - 30634, -5161, 2686, -1614, - 940, -433, -8, 264}, -{ 29, 432, -678, 820, - -1066, 1573, -2749, 6899, - 30654, -5145, 2678, -1609, - 936, -430, -10, 265}, -{ 29, 431, -676, 817, - -1061, 1564, -2733, 6857, - 30675, -5129, 2669, -1604, - 933, -428, -11, 265}, -{ 29, 431, -675, 813, - -1055, 1555, -2717, 6816, - 30696, -5113, 2661, -1599, - 929, -425, -13, 266}, -{ 29, 431, -673, 810, - -1050, 1546, -2701, 6774, - 30716, -5097, 2652, -1593, - 926, -423, -15, 266}, -{ 28, 431, -672, 807, - -1045, 1538, -2686, 6733, - 30736, -5081, 2644, -1588, - 922, -420, -16, 267}, -{ 28, 431, -671, 804, - -1039, 1529, -2670, 6692, - 30756, -5065, 2635, -1582, - 918, -418, -18, 267}, -{ 28, 431, -669, 801, - -1034, 1520, -2654, 6651, - 30777, -5049, 2626, -1577, - 915, -415, -19, 268}, -{ 28, 430, -668, 798, - -1029, 1511, -2639, 6610, - 30797, -5032, 2617, -1572, - 911, -413, -21, 268}, -{ 28, 430, -666, 795, - -1023, 1502, -2623, 6569, - 30817, -5016, 2609, -1566, - 908, -410, -23, 269}, -{ 28, 430, -665, 792, - -1018, 1493, -2607, 6527, - 30836, -4999, 2600, -1561, - 904, -408, -24, 270}, -{ 27, 430, -664, 789, - -1013, 1485, -2591, 6486, - 30856, -4983, 2591, -1555, - 900, -405, -26, 270}, -{ 27, 430, -662, 786, - -1007, 1476, -2576, 6445, - 30876, -4966, 2582, -1550, - 897, -403, -27, 271}, -{ 27, 430, -661, 783, - -1002, 1467, -2560, 6404, - 30895, -4950, 2573, -1544, - 893, -400, -29, 271}, -{ 27, 429, -659, 779, - -997, 1458, -2544, 6364, - 30915, -4933, 2564, -1539, - 889, -398, -31, 272}, -{ 27, 429, -658, 776, - -991, 1449, -2528, 6323, - 30934, -4916, 2555, -1533, - 885, -395, -32, 272}, -{ 27, 429, -656, 773, - -986, 1440, -2512, 6282, - 30953, -4899, 2546, -1528, - 882, -392, -34, 273}, -{ 27, 429, -655, 770, - -980, 1431, -2497, 6241, - 30973, -4882, 2537, -1522, - 878, -390, -35, 273}, -{ 26, 429, -654, 767, - -975, 1423, -2481, 6200, - 30992, -4865, 2528, -1516, - 874, -387, -37, 274}, -{ 26, 429, -652, 764, - -970, 1414, -2465, 6159, - 31011, -4847, 2519, -1511, - 871, -385, -39, 274}, -{ 26, 428, -651, 761, - -964, 1405, -2449, 6119, - 31030, -4830, 2510, -1505, - 867, -382, -40, 275}, -{ 26, 428, -649, 758, - -959, 1396, -2433, 6078, - 31048, -4813, 2501, -1500, - 863, -380, -42, 275}, -{ 26, 428, -648, 754, - -953, 1387, -2418, 6037, - 31067, -4795, 2491, -1494, - 859, -377, -43, 276}, -{ 26, 428, -646, 751, - -948, 1378, -2402, 5997, - 31086, -4778, 2482, -1488, - 855, -374, -45, 277}, -{ 26, 428, -645, 748, - -943, 1369, -2386, 5956, - 31104, -4760, 2473, -1482, - 852, -372, -47, 277}, -{ 25, 427, -643, 745, - -937, 1360, -2370, 5916, - 31123, -4743, 2464, -1477, - 848, -369, -48, 278}, -{ 25, 427, -642, 742, - -932, 1351, -2354, 5875, - 31141, -4725, 2454, -1471, - 844, -366, -50, 278}, -{ 25, 427, -640, 739, - -926, 1342, -2339, 5835, - 31159, -4707, 2445, -1465, - 840, -364, -52, 279}, -{ 25, 427, -639, 735, - -921, 1333, -2323, 5795, - 31177, -4689, 2435, -1459, - 836, -361, -53, 279}, -{ 25, 427, -638, 732, - -916, 1324, -2307, 5754, - 31195, -4671, 2426, -1454, - 832, -359, -55, 280}, -{ 25, 426, -636, 729, - -910, 1316, -2291, 5714, - 31213, -4653, 2417, -1448, - 829, -356, -57, 280}, -{ 24, 426, -635, 726, - -905, 1307, -2275, 5674, - 31231, -4635, 2407, -1442, - 825, -353, -58, 281}, -{ 24, 426, -633, 723, - -899, 1298, -2259, 5634, - 31249, -4617, 2397, -1436, - 821, -351, -60, 281}, -{ 24, 426, -632, 720, - -894, 1289, -2244, 5593, - 31266, -4598, 2388, -1430, - 817, -348, -61, 282}, -{ 24, 425, -630, 716, - -888, 1280, -2228, 5553, - 31284, -4580, 2378, -1424, - 813, -345, -63, 282}, -{ 24, 425, -629, 713, - -883, 1271, -2212, 5513, - 31301, -4562, 2369, -1418, - 809, -343, -65, 283}, -{ 24, 425, -627, 710, - -877, 1262, -2196, 5473, - 31318, -4543, 2359, -1412, - 805, -340, -66, 283}, -{ 23, 425, -626, 707, - -872, 1253, -2180, 5433, - 31336, -4524, 2349, -1406, - 801, -337, -68, 284}, -{ 23, 425, -624, 704, - -867, 1244, -2164, 5393, - 31353, -4506, 2339, -1400, - 797, -334, -70, 285}, -{ 23, 424, -623, 700, - -861, 1235, -2148, 5353, - 31370, -4487, 2330, -1394, - 793, -332, -71, 285}, -{ 23, 424, -621, 697, - -856, 1226, -2133, 5313, - 31387, -4468, 2320, -1388, - 789, -329, -73, 286}, -{ 23, 424, -620, 694, - -850, 1217, -2117, 5274, - 31404, -4449, 2310, -1382, - 785, -326, -75, 286}, -{ 23, 424, -618, 691, - -845, 1208, -2101, 5234, - 31420, -4430, 2300, -1376, - 781, -324, -76, 287}, -{ 23, 423, -617, 688, - -839, 1199, -2085, 5194, - 31437, -4411, 2290, -1370, - 777, -321, -78, 287}, -{ 22, 423, -615, 684, - -834, 1190, -2069, 5154, - 31453, -4392, 2280, -1364, - 773, -318, -80, 288}, -{ 22, 423, -614, 681, - -828, 1181, -2053, 5115, - 31470, -4373, 2270, -1358, - 769, -315, -81, 288}, -{ 22, 423, -612, 678, - -823, 1172, -2037, 5075, - 31486, -4354, 2260, -1352, - 765, -313, -83, 289}, -{ 22, 422, -610, 675, - -817, 1163, -2022, 5036, - 31502, -4334, 2250, -1346, - 761, -310, -84, 289}, -{ 22, 422, -609, 671, - -812, 1154, -2006, 4996, - 31519, -4315, 2240, -1339, - 757, -307, -86, 290}, -{ 22, 422, -607, 668, - -806, 1145, -1990, 4957, - 31535, -4295, 2230, -1333, - 753, -305, -88, 290}, -{ 22, 422, -606, 665, - -801, 1136, -1974, 4917, - 31551, -4276, 2220, -1327, - 749, -302, -89, 291}, -{ 22, 421, -604, 662, - -795, 1127, -1958, 4878, - 31566, -4256, 2209, -1321, - 745, -299, -91, 291}, -{ 21, 421, -603, 659, - -790, 1118, -1942, 4839, - 31582, -4236, 2199, -1315, - 741, -296, -93, 292}, -{ 21, 421, -601, 655, - -784, 1109, -1926, 4799, - 31598, -4216, 2189, -1308, - 737, -293, -94, 293}, -{ 21, 421, -600, 652, - -779, 1100, -1911, 4760, - 31613, -4196, 2179, -1302, - 732, -291, -96, 293}, -{ 21, 420, -598, 649, - -773, 1091, -1895, 4721, - 31629, -4176, 2168, -1296, - 728, -288, -98, 294}, -{ 21, 420, -597, 646, - -768, 1082, -1879, 4682, - 31644, -4156, 2158, -1289, - 724, -285, -99, 294}, -{ 21, 420, -595, 642, - -762, 1073, -1863, 4643, - 31659, -4136, 2148, -1283, - 720, -282, -101, 295}, -{ 21, 420, -594, 639, - -757, 1064, -1847, 4603, - 31674, -4116, 2137, -1277, - 716, -280, -103, 295}, -{ 21, 419, -592, 636, - -751, 1055, -1831, 4564, - 31689, -4096, 2127, -1270, - 712, -277, -105, 296}, -{ 20, 419, -590, 633, - -746, 1046, -1815, 4526, - 31704, -4075, 2116, -1264, - 707, -274, -106, 296}, -{ 20, 419, -589, 629, - -740, 1037, -1800, 4487, - 31719, -4055, 2106, -1258, - 703, -271, -108, 297}, -{ 20, 419, -587, 626, - -735, 1028, -1784, 4448, - 31734, -4034, 2095, -1251, - 699, -268, -110, 297}, -{ 20, 418, -586, 623, - -729, 1019, -1768, 4409, - 31749, -4014, 2085, -1245, - 695, -266, -111, 298}, -{ 20, 418, -584, 620, - -724, 1010, -1752, 4370, - 31763, -3993, 2074, -1238, - 691, -263, -113, 298}, -{ 20, 418, -583, 616, - -718, 1001, -1736, 4331, - 31777, -3972, 2063, -1232, - 686, -260, -115, 299}, -{ 20, 418, -581, 613, - -713, 992, -1720, 4293, - 31792, -3951, 2053, -1225, - 682, -257, -116, 299}, -{ 19, 417, -579, 610, - -707, 983, -1705, 4254, - 31806, -3930, 2042, -1219, - 678, -254, -118, 300}, -{ 19, 417, -578, 606, - -702, 974, -1689, 4216, - 31820, -3909, 2031, -1212, - 674, -251, -120, 300}, -{ 19, 417, -576, 603, - -696, 965, -1673, 4177, - 31834, -3888, 2021, -1206, - 669, -248, -121, 301}, -{ 19, 416, -575, 600, - -691, 956, -1657, 4138, - 31848, -3867, 2010, -1199, - 665, -246, -123, 302}, -{ 19, 416, -573, 597, - -685, 947, -1641, 4100, - 31862, -3846, 1999, -1193, - 661, -243, -125, 302}, -{ 19, 416, -572, 593, - -680, 938, -1625, 4062, - 31876, -3825, 1988, -1186, - 656, -240, -126, 303}, -{ 19, 416, -570, 590, - -674, 929, -1610, 4023, - 31889, -3803, 1977, -1179, - 652, -237, -128, 303}, -{ 18, 415, -568, 587, - -669, 920, -1594, 3985, - 31903, -3782, 1966, -1173, - 648, -234, -130, 304}, -{ 18, 415, -567, 584, - -663, 910, -1578, 3947, - 31916, -3760, 1955, -1166, - 643, -231, -132, 304}, -{ 18, 415, -565, 580, - -658, 901, -1562, 3909, - 31929, -3739, 1944, -1159, - 639, -228, -133, 305}, -{ 18, 414, -564, 577, - -652, 892, -1546, 3870, - 31943, -3717, 1933, -1153, - 635, -226, -135, 305}, -{ 18, 414, -562, 574, - -646, 883, -1531, 3832, - 31956, -3695, 1922, -1146, - 630, -223, -137, 306}, -{ 18, 414, -560, 570, - -641, 874, -1515, 3794, - 31969, -3673, 1911, -1139, - 626, -220, -138, 306}, -{ 18, 414, -559, 567, - -635, 865, -1499, 3756, - 31982, -3651, 1900, -1133, - 622, -217, -140, 307}, -{ 18, 413, -557, 564, - -630, 856, -1483, 3718, - 31994, -3629, 1889, -1126, - 617, -214, -142, 307}, -{ 18, 413, -556, 560, - -624, 847, -1467, 3681, - 32007, -3607, 1878, -1119, - 613, -211, -143, 308}, -{ 17, 413, -554, 557, - -619, 838, -1452, 3643, - 32020, -3585, 1867, -1112, - 608, -208, -145, 308}, -{ 17, 412, -552, 554, - -613, 829, -1436, 3605, - 32032, -3563, 1855, -1105, - 604, -205, -147, 309}, -{ 17, 412, -551, 551, - -608, 820, -1420, 3567, - 32045, -3541, 1844, -1099, - 600, -202, -149, 309}, -{ 17, 412, -549, 547, - -602, 811, -1404, 3529, - 32057, -3518, 1833, -1092, - 595, -199, -150, 310}, -{ 17, 411, -547, 544, - -597, 802, -1389, 3492, - 32069, -3496, 1821, -1085, - 591, -196, -152, 311}, -{ 17, 411, -546, 541, - -591, 793, -1373, 3454, - 32081, -3473, 1810, -1078, - 586, -194, -154, 311}, -{ 17, 411, -544, 537, - -585, 784, -1357, 3417, - 32093, -3451, 1799, -1071, - 582, -191, -155, 312}, -{ 17, 410, -543, 534, - -580, 775, -1341, 3379, - 32105, -3428, 1787, -1064, - 577, -188, -157, 312}, -{ 17, 410, -541, 531, - -574, 766, -1326, 3342, - 32117, -3405, 1776, -1057, - 573, -185, -159, 313}, -{ 17, 410, -539, 527, - -569, 757, -1310, 3304, - 32128, -3383, 1764, -1050, - 568, -182, -161, 313}, -{ 16, 409, -538, 524, - -563, 748, -1294, 3267, - 32140, -3360, 1753, -1044, - 564, -179, -162, 314}, -{ 16, 409, -536, 521, - -558, 739, -1278, 3230, - 32151, -3337, 1741, -1037, - 559, -176, -164, 314}, -{ 16, 409, -534, 517, - -552, 730, -1263, 3193, - 32163, -3314, 1730, -1030, - 555, -173, -166, 315}, -{ 16, 409, -533, 514, - -547, 721, -1247, 3155, - 32174, -3290, 1718, -1023, - 550, -170, -167, 315}, -{ 16, 408, -531, 511, - -541, 712, -1231, 3118, - 32185, -3267, 1707, -1016, - 546, -167, -169, 316}, -{ 16, 408, -530, 507, - -536, 703, -1216, 3081, - 32196, -3244, 1695, -1009, - 541, -164, -171, 316}, -{ 16, 408, -528, 504, - -530, 694, -1200, 3044, - 32207, -3221, 1683, -1001, - 537, -161, -173, 317}, -{ 15, 407, -526, 501, - -524, 685, -1184, 3007, - 32218, -3197, 1671, -994, - 532, -158, -174, 317}, -{ 15, 407, -525, 498, - -519, 676, -1169, 2970, - 32229, -3174, 1660, -987, - 528, -155, -176, 318}, -{ 15, 407, -523, 494, - -513, 667, -1153, 2934, - 32239, -3150, 1648, -980, - 523, -152, -178, 318}, -{ 15, 406, -521, 491, - -508, 658, -1137, 2897, - 32250, -3126, 1636, -973, - 518, -149, -180, 319}, -{ 15, 406, -520, 488, - -502, 649, -1122, 2860, - 32260, -3103, 1624, -966, - 514, -146, -181, 319}, -{ 15, 406, -518, 484, - -497, 640, -1106, 2823, - 32270, -3079, 1612, -959, - 509, -143, -183, 320}, -{ 15, 405, -516, 481, - -491, 631, -1091, 2787, - 32281, -3055, 1601, -952, - 505, -140, -185, 320}, -{ 15, 405, -515, 478, - -486, 622, -1075, 2750, - 32291, -3031, 1589, -945, - 500, -137, -186, 321}, -{ 14, 405, -513, 474, - -480, 613, -1059, 2714, - 32301, -3007, 1577, -937, - 495, -134, -188, 321}, -{ 14, 404, -511, 471, - -475, 604, -1044, 2677, - 32311, -2983, 1565, -930, - 491, -131, -190, 322}, -{ 14, 404, -510, 468, - -469, 595, -1028, 2641, - 32320, -2959, 1553, -923, - 486, -128, -192, 322}, -{ 14, 404, -508, 464, - -464, 586, -1013, 2604, - 32330, -2934, 1541, -916, - 481, -125, -193, 323}, -{ 14, 403, -506, 461, - -458, 577, -997, 2568, - 32340, -2910, 1529, -908, - 477, -122, -195, 323}, -{ 14, 403, -505, 458, - -452, 568, -981, 2532, - 32349, -2886, 1517, -901, - 472, -119, -197, 324}, -{ 14, 402, -503, 454, - -447, 559, -966, 2496, - 32358, -2861, 1504, -894, - 467, -116, -199, 325}, -{ 14, 402, -501, 451, - -441, 550, -950, 2460, - 32368, -2837, 1492, -887, - 463, -113, -200, 325}, -{ 14, 402, -500, 448, - -436, 541, -935, 2424, - 32377, -2812, 1480, -879, - 458, -110, -202, 326}, -{ 14, 401, -498, 444, - -430, 532, -919, 2388, - 32386, -2787, 1468, -872, - 453, -107, -204, 326}, -{ 14, 401, -496, 441, - -425, 523, -904, 2352, - 32395, -2763, 1456, -865, - 448, -104, -206, 327}, -{ 14, 401, -495, 437, - -419, 514, -888, 2316, - 32404, -2738, 1443, -857, - 444, -100, -207, 327}, -{ 14, 400, -493, 434, - -414, 505, -873, 2280, - 32412, -2713, 1431, -850, - 439, -97, -209, 328}, -{ 14, 400, -491, 431, - -408, 496, -857, 2244, - 32421, -2688, 1419, -842, - 434, -94, -211, 328}, -{ 13, 400, -490, 427, - -403, 488, -842, 2208, - 32430, -2663, 1407, -835, - 429, -91, -213, 329}, -{ 13, 399, -488, 424, - -397, 479, -826, 2173, - 32438, -2638, 1394, -828, - 425, -88, -214, 329}, -{ 13, 399, -486, 421, - -392, 470, -811, 2137, - 32446, -2612, 1382, -820, - 420, -85, -216, 330}, -{ 13, 399, -485, 417, - -386, 461, -795, 2101, - 32455, -2587, 1369, -813, - 415, -82, -218, 330}, -{ 13, 398, -483, 414, - -381, 452, -780, 2066, - 32463, -2562, 1357, -805, - 410, -79, -219, 331}, -{ 13, 398, -481, 411, - -375, 443, -765, 2031, - 32471, -2536, 1344, -798, - 406, -76, -221, 331}, -{ 13, 397, -479, 407, - -369, 434, -749, 1995, - 32479, -2511, 1332, -790, - 401, -73, -223, 332}, -{ 13, 397, -478, 404, - -364, 425, -734, 1960, - 32486, -2485, 1319, -783, - 396, -70, -225, 332}, -{ 12, 397, -476, 401, - -358, 416, -718, 1925, - 32494, -2459, 1307, -775, - 391, -67, -226, 333}, -{ 12, 396, -474, 397, - -353, 407, -703, 1889, - 32502, -2434, 1294, -768, - 386, -63, -228, 333}, -{ 12, 396, -473, 394, - -347, 398, -688, 1854, - 32509, -2408, 1282, -760, - 382, -60, -230, 334}, -{ 12, 396, -471, 391, - -342, 389, -672, 1819, - 32516, -2382, 1269, -753, - 377, -57, -232, 334}, -{ 12, 395, -469, 387, - -336, 381, -657, 1784, - 32524, -2356, 1256, -745, - 372, -54, -233, 335}, -{ 12, 395, -468, 384, - -331, 372, -642, 1749, - 32531, -2330, 1244, -738, - 367, -51, -235, 335}, -{ 11, 394, -466, 381, - -325, 363, -626, 1714, - 32538, -2304, 1231, -730, - 362, -48, -237, 336}, -{ 11, 394, -464, 377, - -320, 354, -611, 1679, - 32545, -2278, 1218, -722, - 357, -45, -239, 336}, -{ 11, 394, -462, 374, - -314, 345, -596, 1644, - 32552, -2251, 1205, -715, - 352, -42, -240, 337}, -{ 11, 393, -461, 371, - -309, 336, -580, 1610, - 32558, -2225, 1193, -707, - 347, -39, -242, 337}, -{ 11, 393, -459, 367, - -303, 327, -565, 1575, - 32565, -2199, 1180, -699, - 343, -35, -244, 338}, -{ 11, 393, -457, 364, - -298, 318, -550, 1540, - 32572, -2172, 1167, -692, - 338, -32, -246, 338}, -{ 11, 392, -456, 361, - -292, 310, -535, 1506, - 32578, -2146, 1154, -684, - 333, -29, -247, 339}, -{ 11, 392, -454, 357, - -287, 301, -519, 1471, - 32584, -2119, 1141, -676, - 328, -26, -249, 339}, -{ 11, 391, -452, 354, - -281, 292, -504, 1437, - 32590, -2092, 1128, -669, - 323, -23, -251, 340}, -{ 11, 391, -450, 351, - -276, 283, -489, 1402, - 32597, -2066, 1115, -661, - 318, -20, -253, 340}, -{ 11, 391, -449, 347, - -270, 274, -474, 1368, - 32603, -2039, 1102, -653, - 313, -16, -255, 341}, -{ 11, 390, -447, 344, - -265, 265, -459, 1334, - 32608, -2012, 1089, -645, - 308, -13, -256, 341}, -{ 11, 390, -445, 341, - -259, 257, -443, 1300, - 32614, -1985, 1076, -638, - 303, -10, -258, 342}, -{ 11, 389, -444, 337, - -254, 248, -428, 1266, - 32620, -1958, 1063, -630, - 298, -7, -260, 342}, -{ 11, 389, -442, 334, - -248, 239, -413, 1231, - 32625, -1931, 1050, -622, - 293, -4, -262, 343}, -{ 11, 389, -440, 330, - -243, 230, -398, 1197, - 32631, -1904, 1037, -614, - 288, -1, -263, 343}, -{ 11, 388, -438, 327, - -238, 221, -383, 1163, - 32636, -1876, 1024, -606, - 283, 2, -265, 344}, -{ 11, 388, -437, 324, - -232, 213, -368, 1130, - 32642, -1849, 1011, -599, - 278, 6, -267, 344}, -{ 11, 387, -435, 320, - -227, 204, -353, 1096, - 32647, -1822, 998, -591, - 273, 9, -269, 345}, -{ 11, 387, -433, 317, - -221, 195, -338, 1062, - 32652, -1794, 984, -583, - 268, 12, -270, 345}, -{ 11, 387, -432, 314, - -216, 186, -323, 1028, - 32657, -1767, 971, -575, - 263, 15, -272, 346}, -{ 11, 386, -430, 310, - -210, 178, -308, 995, - 32661, -1739, 958, -567, - 258, 18, -274, 346}, -{ 10, 386, -428, 307, - -205, 169, -293, 961, - 32666, -1711, 945, -559, - 253, 22, -276, 347}, -{ 10, 385, -426, 304, - -199, 160, -278, 927, - 32671, -1683, 931, -551, - 248, 25, -277, 347}, -{ 10, 385, -425, 300, - -194, 151, -263, 894, - 32675, -1656, 918, -543, - 243, 28, -279, 348}, -{ 10, 385, -423, 297, - -188, 143, -248, 861, - 32680, -1628, 905, -536, - 238, 31, -281, 348}, -{ 9, 384, -421, 294, - -183, 134, -233, 827, - 32684, -1600, 891, -528, - 233, 34, -283, 348}, -{ 9, 384, -419, 290, - -178, 125, -218, 794, - 32688, -1572, 878, -520, - 228, 38, -284, 349}, -{ 9, 383, -418, 287, - -172, 116, -203, 761, - 32692, -1544, 864, -512, - 223, 41, -286, 349}, -{ 8, 383, -416, 284, - -167, 108, -188, 728, - 32696, -1515, 851, -504, - 218, 44, -288, 350}, -{ 8, 382, -414, 280, - -161, 99, -173, 694, - 32700, -1487, 838, -496, - 213, 47, -290, 350}, -{ 8, 382, -413, 277, - -156, 90, -158, 661, - 32704, -1459, 824, -488, - 208, 50, -291, 351}, -{ 7, 382, -411, 274, - -150, 82, -143, 628, - 32707, -1430, 811, -480, - 203, 54, -293, 351}, -{ 7, 381, -409, 270, - -145, 73, -128, 596, - 32711, -1402, 797, -472, - 198, 57, -295, 352}, -{ 7, 381, -407, 267, - -140, 64, -114, 563, - 32714, -1373, 783, -464, - 193, 60, -297, 352}, -{ 7, 380, -406, 264, - -134, 56, -99, 530, - 32718, -1345, 770, -456, - 187, 63, -299, 353}, -{ 7, 380, -404, 260, - -129, 47, -84, 497, - 32721, -1316, 756, -447, - 182, 67, -300, 353}, -{ 7, 380, -402, 257, - -123, 38, -69, 465, - 32724, -1287, 743, -439, - 177, 70, -302, 354}, -{ 7, 379, -400, 254, - -118, 30, -54, 432, - 32727, -1258, 729, -431, - 172, 73, -304, 354}, -{ 7, 379, -399, 250, - -113, 21, -40, 399, - 32730, -1230, 715, -423, - 167, 76, -306, 355}, -{ 8, 378, -397, 247, - -107, 12, -25, 367, - 32733, -1201, 702, -415, - 162, 79, -307, 355}, -{ 8, 378, -395, 244, - -102, 4, -10, 335, - 32735, -1172, 688, -407, - 157, 83, -309, 356}, -{ 9, 377, -393, 240, - -96, -5, 5, 302, - 32738, -1142, 674, -399, - 152, 86, -311, 356}, -{ 9, 377, -392, 237, - -91, -13, 19, 270, - 32740, -1113, 660, -391, - 146, 89, -313, 357}, -{ 10, 377, -390, 234, - -86, -22, 34, 238, - 32743, -1084, 647, -382, - 141, 92, -314, 357}, -{ 11, 376, -388, 230, - -80, -30, 49, 206, - 32745, -1055, 633, -374, - 136, 96, -316, 358}, -{ 12, 376, -386, 227, - -75, -39, 63, 174, - 32747, -1025, 619, -366, - 131, 99, -318, 358}, -{ 14, 375, -385, 224, - -70, -48, 78, 142, - 32749, -996, 605, -358, - 126, 102, -320, 359}, -{ 15, 375, -383, 221, - -64, -56, 92, 110, - 32751, -966, 591, -350, - 121, 105, -321, 359}, -{ 17, 374, -381, 217, - -59, -65, 107, 78, - 32753, -937, 577, -342, - 115, 109, -323, 359}, -{ 18, 374, -379, 214, - -53, -73, 122, 46, - 32755, -907, 563, -333, - 110, 112, -325, 360}, -{ 20, 373, -378, 211, - -48, -82, 136, 14, - 32756, -877, 549, -325, - 105, 115, -327, 360}, -{ 21, 373, -376, 207, - -43, -90, 151, -17, - 32758, -848, 535, -317, - 100, 118, -328, 361}, -{ 23, 373, -374, 204, - -37, -99, 165, -49, - 32759, -818, 521, -309, - 95, 122, -330, 361}, -{ 25, 372, -372, 201, - -32, -107, 180, -81, - 32760, -788, 507, -300, - 89, 125, -332, 362}, -{ 26, 372, -371, 197, - -27, -116, 194, -112, - 32762, -758, 493, -292, - 84, 128, -334, 362}, -{ 28, 371, -369, 194, - -21, -124, 209, -143, - 32763, -728, 479, -284, - 79, 132, -336, 363}, -{ 29, 371, -367, 191, - -16, -133, 223, -175, - 32764, -698, 465, -275, - 74, 135, -337, 363}, -{ 31, 370, -365, 187, - -11, -141, 237, -206, - 32764, -667, 451, -267, - 68, 138, -339, 364}, -{ 32, 370, -364, 184, - -5, -150, 252, -237, - 32765, -637, 437, -259, - 63, 141, -341, 364}, -{ 33, 370, -362, 181, - 0, -158, 266, -268, - 32766, -607, 423, -250, - 58, 145, -343, 365}, -{ 34, 369, -360, 178, - 5, -167, 280, -300, - 32766, -576, 409, -242, - 53, 148, -344, 365}, -{ 35, 369, -358, 174, - 10, -175, 295, -331, - 32767, -546, 395, -234, - 47, 151, -346, 365}, -{ 35, 368, -357, 171, - 16, -183, 309, -362, - 32767, -515, 380, -225, - 42, 154, -348, 366}, -{ 36, 368, -355, 168, - 21, -192, 323, -392, - 32767, -485, 366, -217, - 37, 158, -350, 366}, -{ 36, 367, -353, 164, - 26, -200, 338, -423, - 32767, -454, 352, -209, - 32, 161, -351, 367} -}; - -#endif diff --git a/RTCP/CNProc/src/FilterBank.cc b/RTCP/CNProc/src/FilterBank.cc deleted file mode 100644 index 4bfcbb855633dc8e6d41dd20a0f8fd673c1166b4..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FilterBank.cc +++ /dev/null @@ -1,490 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <FilterBank.h> -#include <cstring> - -#include <math.h> -#include <iostream> -#include <cstring> - -#include <Common/LofarLogger.h> -#include <Interface/Align.h> -#include <Interface/Exceptions.h> - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#define fftw_real(x) ((x)[0]) -#define fftw_imag(x) ((x)[1]) -#elif defined HAVE_FFTW2 -#include <fftw.h> -#define fftw_real(x) (c_re(x)) -#define fftw_imag(x) (c_im(x)) -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -namespace LOFAR { -namespace RTCP { - -#if USE_ORIGINAL_FILTER -#include <FIR_OriginalCepPPFWeights.h> -#endif - -// For documentation on this class, see the header file. - -FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType) -: - itsWindowType(windowType), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false) -{ - generate_filter(); -} - - -FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, float newWeights[]) -: - itsWindowType(PREDEFINED_FILTER), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false) -{ - weights.resize(boost::extents[itsNrChannels][itsNrTaps]); - memcpy(weights.origin(), newWeights, (itsNrChannels * itsNrTaps) * sizeof(float)); -} - - -// hamming window function -void FilterBank::hamming(unsigned n, double d[]) -{ - if (n == 1) { - d[0] = 1.0; - return; - } - - unsigned m = n - 1; - - for (unsigned i = 0; i < n; i++) { - d[i] = 0.54 - 0.46 * cos((2.0 * M_PI * i) / m); - } -} - - -// blackman window function -void FilterBank::blackman(unsigned n, double d[]) -{ - if (n == 1) { - d[0] = 1.0; - return; - } - - unsigned m = n - 1; - - for (unsigned i = 0; i < n; i++) { - double k = i / m; - d[i] = 0.42 - 0.5 * cos(2.0 * M_PI * k) + 0.08 * cos(4.0 * M_PI * k); - } -} - - -// Guassian window function -void FilterBank::gaussian(int n, double a, double d[]) -{ - int index = 0; - - for (int i = -(n - 1); i <= n - 1; i += 2) { - d[index++] = exp(-0.5 * pow((a / n * i), 2)); - } -} - - -// Compute the modified Bessel function I_0(x) for any real x. -// This method was taken from the ROOT package, See http://root.cern.ch/root. -// It was released undet the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 -double FilterBank::besselI0(double x) -{ - // Parameters of the polynomial approximation - const double p1 = 1.0, p2 = 3.5156229, p3 = 3.0899424, p4 = 1.2067492, p5 = 0.2659732, p6 = 3.60768e-2, p7 = 4.5813e-3; - - const double q1 = 0.39894228, q2 = 1.328592e-2, q3 = 2.25319e-3, q4 = -1.57565e-3, q5 = 9.16281e-3, q6 = -2.057706e-2, q7 = 2.635537e-2, q8 = -1.647633e-2, - q9 = 3.92377e-3; - - const double k1 = 3.75; - double ax = fabs(x); - - double y = 0, result = 0; - - if (ax < k1) { - double xx = x / k1; - y = xx * xx; - result = p1 + y * (p2 + y * (p3 + y * (p4 + y * (p5 + y * (p6 + y * p7))))); - } else { - y = k1 / ax; - result = (exp(ax) / sqrt(ax)) * (q1 + y * (q2 + y * (q3 + y * (q4 + y * (q5 + y * (q6 + y * (q7 + y * (q8 + y * q9)))))))); - } - - return result; -} - - -// Kaiser window function -void FilterBank::kaiser(int n, double beta, double d[]) -{ - if (n == 1) { - d[0] = 1.0; - return; - } - - int m = n - 1; - - for (int i = 0; i < n; i++) { - double k = 2.0 * beta / m * sqrt(i * (m - i)); - d[i] = besselI0(k) / besselI0(beta); - } -} - - -// One-dimensional interpolation. Interpolate Y, defined at the points X, -// at N evenly spaced points between 0 and 1. The sample points X must be strictly monotonic -void FilterBank::interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[]) -{ - unsigned nextX = 0; - unsigned index = 0; - - for (double interpolatedX = 0; interpolatedX <= 1.0; interpolatedX += 1.0 / (n - 1), index++) { - while (x[nextX] <= interpolatedX && nextX < xlen - 1) - nextX++; - - if (nextX == 0) { - LOG_ERROR("ERROR in FilterBank::interpolate"); - } - - double prevXVal = x[nextX - 1]; - double nextXVal = x[nextX]; - double prevYVal = y[nextX - 1]; - double nextYVal = y[nextX]; - - double rc = (nextYVal - prevYVal) / (nextXVal - prevXVal); - - double newVal = prevYVal + (interpolatedX - prevXVal) * rc; - result[index] = newVal; - } -} - - -// Compute the filter, similar to Octave's fir2(n, f, m, grid_n, ramp_n, window); -// Window and result must be of size n+1. -// grid_n: length of ideal frequency response function -// ramp_n: transition width for jumps in filter response -// defaults to grid_n/20; a wider ramp gives wider transitions -// but has better stopband characteristics. -void FilterBank::generate_fir_filter(unsigned n, double w, const double window[], double result[]) -{ - // make sure grid is big enough for the window - // the grid must be at least (n+1)/2 - // for all filters where the order is a power of two minus 1, grid_n = n+1; - unsigned grid_n = nextPowerOfTwo(n + 1); - - unsigned ramp_n = 2; // grid_n/20; - - // Apply ramps to discontinuities - // this is a low pass filter - // maybe we can omit the "w, 0" point? - // I did observe a small difference - double f[] = { 0.0, w - ramp_n / grid_n / 2.0, w, w + ramp_n / grid_n / 2.0, 1.0 }; - double m[] = { 1.0, 1.0, 0.0, 0.0, 0.0 }; - - // grid is a 1-D array with grid_n+1 points. Values are 1 in filter passband, 0 otherwise - std::vector<double> grid(grid_n + 1); - - // interpolate between grid points - interpolate(f, m, 5 /* length of f and m arrays */, grid_n + 1, &grid[0]); - -#if 0 - std::stringstream logStr; - logStr << "interpolated = ["; - for(unsigned i=0; i<grid_n+1; i++) { - logStr << grid[i]; - if(i != grid_n+1-1) logStr << ", "; - } - logStr << "];"; - LOG_DEBUG(logStr.str()); -#endif - - // the grid we do an ifft on is: - // grid appended with grid_n*2 zeros - // appended with original grid values from indices grid_n..2, i.e., the values in reverse order - // (note, arrays start at 1 in octave!) - // the input for the ifft is of size 4*grid_n - // input = [grid ; zeros(grid_n*2,1) ;grid(grid_n:-1:2)]; - -#if defined HAVE_FFTW3 - fftwf_complex* cinput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex)); - fftwf_complex* coutput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex)); -#elif defined HAVE_FFTW2 - fftw_complex* cinput = (fftw_complex*) fftw_malloc(grid_n*4*sizeof(fftw_complex)); - fftw_complex* coutput = (fftw_complex*) fftw_malloc(grid_n*4*sizeof(fftw_complex)); -#endif - - if (cinput == NULL || coutput == NULL) { - THROW(CNProcException, "cannot allocate buffers"); - } - - // wipe imaginary part - for (unsigned i = 0; i < grid_n * 4; i++) { - fftw_imag(cinput[i]) = 0.0; - } - - // copy first part of grid - for (unsigned i = 0; i < grid_n + 1; i++) { - fftw_real(cinput[i]) = grid[i]; - } - - // append zeros - for (unsigned i = grid_n + 1; i <= grid_n * 3; i++) { - fftw_real(cinput[i]) = 0.0; - } - - // now append the grid in reverse order - for (unsigned i = grid_n - 1, index = 0; i >= 1; i --, index ++) { - fftw_real(cinput[grid_n * 3 + 1 + index]) = grid[i]; - } - -#if 0 - std::stringstream logStr; - logStr << "ifft_in = ["; - for(unsigned i=0; i<grid_n*4; i++) { - logStr << fftw_real(cinput[i]) << " " << fftw_imag(cinput[i]); - if(i != grid_n*4-1) logStr << ", "; - } - logStr << "];"; - LOG_DEBUG(logStr.str()); -#endif - -#if defined HAVE_FFTW3 - fftwf_plan plan = fftwf_plan_dft_1d(grid_n * 4, cinput, coutput, FFTW_BACKWARD, FFTW_ESTIMATE); - fftwf_execute(plan); -#elif defined HAVE_FFTW2 - fftw_plan plan = fftw_create_plan(grid_n * 4, FFTW_BACKWARD, FFTW_ESTIMATE); - fftw_one(plan, cinput, coutput); -#endif - -#if 0 - for(unsigned i=0; i<grid_n*4; i++) { - LOG_DEBUG_STR("ifft result [" << i << "] = " << fftw_real(coutput[i]) << " " << fftw_imag(coutput[i])); - } -#endif - - // half end - // 1 2 n+1 2(n+1) 3(n+1) 4(n+1) - // x x x x x x x x x # last quarter - // x x x x x x # first quarter - - // last_quarter = b([end-n+1:2:end]); # the size is only 1/8, since we skip half of the elements - // first_quarter = b(2:2:(n+1)); # the size is only 1/8, since we skip half of the elements - - unsigned index = 0; - - for (unsigned i = 4 * grid_n - n; i < 4 * grid_n; i += 2) { - result[index] = fftw_real(coutput[i]); - index++; - } - - for (unsigned i = 1; i <= n; i += 2) { - result[index] = fftw_real(coutput[i]); - index++; - } - -#if defined HAVE_FFTW3 - fftwf_destroy_plan(plan); - fftwf_free(cinput); - fftwf_free(coutput); -#elif defined HAVE_FFTW2 - fftw_destroy_plan(plan); - fftw_free(cinput); - fftw_free(coutput); -#endif - - // multiply with window - for (unsigned i = 0; i <= n; i++) { - result[i] *= window[i]; - } - - // normalize - double factor = result[n / 2]; - for (unsigned i = 0; i <= n; i++) { - result[i] /= factor; - } - -#if 0 - std::stringstream logStr; - logStr << "result = ["; - for(unsigned i=0; i<=n; i++) { - logStr << result[i]; - if(i != n) logStr << ", "; - } - logStr << "];"; - LOG_DEBUG(logStr.str()); -#endif -} - - -#if ! USE_ORIGINAL_FILTER -// This method initializes the weights array. -void FilterBank::generate_filter() -{ - unsigned n = itsNrChannels * itsNrTaps; - - std::stringstream logStr; - - if (itsVerbose) { - logStr << "generating FIR filter bank with " << itsNrChannels << " channels and " << itsNrTaps << " taps (" << n << " total), using a "; - } - - std::vector<double> window(n); - - switch (itsWindowType) { - case HAMMING: { - // Use a n-point Hamming window. - if (itsVerbose) { - logStr << "Hamming window"; - LOG_DEBUG(logStr.str()); - } - hamming(n, &window[0]); - break; - } - case BLACKMAN: { - // Use a n-point Blackman window. - if (itsVerbose) { - logStr << "Blackman window"; - LOG_DEBUG(logStr.str()); - } - blackman(n, &window[0]); - break; - } - case GAUSSIAN: { - // Use a n-point Gaussian window. - double alpha = 3.5; - if (itsVerbose) { - logStr << "Gaussian window with alpha = " << alpha; - LOG_DEBUG(logStr.str()); - } - gaussian(n, alpha, &window[0]); - break; - } - case KAISER: { - // Use a n-point Kaiser window. - // The beta parameter is found in matlab / octave with - // [n,Wn,bta,filtype]=kaiserord([fsin/channels 1.4*fsin/channels],[1 0],[10^(0.5/20) 10^(-91/20)],fsin); - // where fsin is the sample freq - double beta = 9.0695; - if (itsVerbose) { - logStr << "Kaiser window with beta = " << beta; - LOG_DEBUG(logStr.str()); - } - kaiser(n, beta, &window[0]); - break; - } - default: - THROW(CNProcException, "unknown window type"); - } - -#if 0 - std::stringstream logStr; - logStr << "window = ["; - for(unsigned i=0; i<n; i++) { - logStr << window[i]; - if(i != n-1) logStr << ", "; - } - logStr << "];"; - LOG_DEBUG(logStr.str()); -#endif - - std::vector<double> result(n); - - generate_fir_filter(n - 1, 1.0 / itsNrChannels, &window[0], &result[0]); - - weights.resize(boost::extents[itsNrChannels][itsNrTaps]); - - unsigned index = 0; - for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse! - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - // Correct total power. - // we use the 256 channel case as a reference, so we - // multiply by 256, and divide by the number of channels - weights[channel][tap] = result[index] * 256.0 / itsNrChannels; - index++; - } - } - -#if 0 - LOG_DEBUG("final taps: "); - std::stringstream logStr; - for(unsigned channel=0; channel<itsNrChannels; channel++) { - logStr << "channel: " << channel << "| "; - for(unsigned tap=0; tap<itsNrTaps; tap++) { - logStr << " " << weights[channel][tap]; - } - LOG_DEBUG(logStr.str()); - } -#endif -} - -#else // USE_ORIGINAL_FILTER -// This method initializes the weights array. -void FilterBank::generate_filter() -{ - if(itsVerbose) { - LOG_DEBUG("using original static 256 channel FIR filter bank"); - } - - if(itsNrTaps != 16 || itsNrChannels != 256) { - THROW(CNProcException, "not supported!"); - } - weights.resize(boost::extents[itsNrChannels][itsNrTaps]); - memcpy(weights.origin(), origWeights, (itsNrChannels * itsNrTaps) * sizeof(float)); - itsNegated = true; -} -#endif // USE_ORIGINAL_FILTER -// In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz. -// To avoid that the FFT outputs the channels in the wrong order (from 128 to -// 255 followed by channels 0 to 127), we multiply each second FFT input by -1. -// This is efficiently achieved by negating the FIR filter constants of all -// uneven FIR filters. -void FilterBank::negateWeights() { - for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse! - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - // Negate all odd channels - if (channel % 2 != 0) { - weights[channel][tap] = -weights[channel][tap]; - } - } - } - itsNegated = !itsNegated; -} - - -// Used for debugging. -void FilterBank::reverseTaps() { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for (unsigned tap = 0; tap < itsNrTaps/2; tap++) { - float tmp = weights[channel][itsNrTaps - tap - 1]; - weights[channel][itsNrTaps - tap - 1] = weights[channel][tap]; - weights[channel][tap] = tmp; - } - } -} - - -// Print the weights array in the natural order, in a format that can be read by gnuplot. -void FilterBank::printWeights() { - cout << (itsNegated ? "NEGATED" : "NORMAL(NOT NEGATED)") << endl; - for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // taps are stored in reverse! - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - if (itsNegated && channel % 2 != 0) { - cout << -weights[channel][tap] << endl; // odd channels are negated - } else { - cout << weights[channel][tap] << endl; - } - } - } -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/FilterBank.h b/RTCP/CNProc/src/FilterBank.h deleted file mode 100644 index 96ac431738c8f5abf9ccacf182e168b94659d20c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FilterBank.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef LOFAR_CNPROC_FILTER_BANK_H -#define LOFAR_CNPROC_FILTER_BANK_H - -#define USE_ORIGINAL_FILTER 0 - -#if 0 || !defined HAVE_BGP -#define FIR_C_IMPLEMENTATION -#endif - -#include <Common/lofar_complex.h> - -#include <Interface/AlignedStdAllocator.h> -#include <Interface/Config.h> - -#include <boost/multi_array.hpp> - -namespace LOFAR { -namespace RTCP { - -enum WindowType { HAMMING, BLACKMAN, GAUSSIAN, KAISER, PREDEFINED_FILTER }; - -// Note that the filter tap constants for a channel are in reverse order. -// This makes the implementation more efficient. - -class FilterBank -{ - public: - - // This constructor designs a new filter with the specified parameters, and initializes the weights array. - FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType); - - // This constructor creates a filterbank from an already existing set of weights. - FilterBank(bool verbose, unsigned taps, unsigned channels, float *weights); - - unsigned getNrTaps(); - - float *getWeights(unsigned channel); - - // In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz. - // To avoid that the FFT outputs the channels in the wrong order (from 128 to - // 255 followed by channels 0 to 127), we multiply each second FFT input by -1. - // This is efficiently achieved by negating the FIR filter constants of all - // uneven FIR filters. - void negateWeights(); - - bool isNegated(); - - // Used for debugging. - void reverseTaps(); - - // Print the weights array in the natural order, in a format that can be read by gnuplot. - void printWeights(); - -private: - // Hamming window function - void hamming(unsigned n, double d[]); - - // Blackman window function - void blackman(unsigned n, double d[]); - - // Gaussian window function - void gaussian(int n, double a, double d[]); - - // Kaiser window function - void kaiser(int n, double beta, double d[]); - - // helper functions - double besselI0(double x); - void interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[]); - void generate_fir_filter(unsigned n, double w, const double window[], double result[]); - void generate_filter(); - - - // The window used for generating the filter, default is KAISER. - WindowType itsWindowType; - - const unsigned itsNrTaps; - const unsigned itsNrChannels; - const bool itsVerbose; - bool itsNegated; - - // Store the weights in a multiarray, since both the number of channels are not known at compile time. - boost::multi_array<float, 2, AlignedStdAllocator<float, 32> > weights; // [nrChannels][taps]; - - -#if USE_ORIGINAL_FILTER - static const float originalCepPPFWeights[256][16]; -#endif - -}; - - -inline unsigned FilterBank::getNrTaps() -{ - return itsNrTaps; -} - - -inline float *FilterBank::getWeights(unsigned channel) -{ - return weights[channel].origin(); -} - - -inline bool FilterBank::isNegated() -{ - return itsNegated; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/Flagger.cc b/RTCP/CNProc/src/Flagger.cc deleted file mode 100644 index 04b3e150e53ba8d912a907d5b0de28d35853e617..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Flagger.cc +++ /dev/null @@ -1,713 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Flagger.h> -#include <Common/LofarLogger.h> -#include <Common/Timer.h> - -#include <math.h> -#include <algorithm> -#include <string.h> -#include <vector> - -#include <boost/lexical_cast.hpp> - -#define MAX_SUM_THRESHOLD_ITERS 7 - -namespace LOFAR { -namespace RTCP { - -//using boost::lexical_cast; - -static NSTimer RFIStatsTimer("RFI post statistics calculations", true, true); - -Flagger::Flagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, const float cutoffThreshold, - float baseSentitivity, FlaggerStatisticsType flaggerStatisticsType) : - itsParset(parset), itsNrStations(nrStations), itsNrSubbands(nrSubbands), itsNrChannels(nrChannels), itsCutoffThreshold(cutoffThreshold), - itsBaseSensitivity(baseSentitivity), itsFlaggerStatisticsType(flaggerStatisticsType) -{ -} - - -void Flagger::calculateMeanAndStdDev(const std::vector<float>& powers, float& mean, float& stdDev) { - stdDev = 0.0f; - mean = 0.0f; - - // Calculate mean value. - for (unsigned i = 0; i < powers.size(); i++) { - mean += powers[i]; - } - mean /= powers.size(); - - // Calculate standard deviation. - for (unsigned i = 0; i < powers.size(); i++) { - float diff = powers[i] - mean; - stdDev += diff * diff; - } - - stdDev /= powers.size(); - stdDev = sqrtf(stdDev); -} - - -// TODO, write version that avoid linear scan for index (often not needed) -unsigned Flagger::calculateMedian(const std::vector<float>& powers, float& median) { // calculate median, return position of the element - // we have to copy the vector, nth_element changes the ordering. - // TODO create copy without flagged elements - std::vector<float> copy(powers); - - // calculate median, expensive, but nth_element is guaranteed to be O(n) - std::vector<float>::iterator it = copy.begin() + (copy.size() / 2); - std::nth_element(copy.begin(), it, copy.end()); - median = *it; -// return it - copy.begin(); // Incorrect! nth_element changes ordering, so index does not mean anything! - - for(unsigned i=0; i<powers.size(); i++) { - if(median == powers[i]) return i; - } - - // The element was not found! This should not happen. - LOG_DEBUG_STR("calculateMedian: could not find index, returning 0"); - return 0; -} - - -// calculate median, return position of the element -// returns -1 if all all elements were flagged -// TODO write version without linear scan for index -unsigned Flagger::calculateMedian(const std::vector<float>& powers, const std::vector<bool>& flags, float& median) { - std::vector<float> data; - data.resize(powers.size()); - unsigned unflaggedCount = 0; - for(unsigned i=0; i<powers.size(); i++) { - if(!flags[i]) { - data[unflaggedCount] = powers[i]; - unflaggedCount++; - } - } - -// cout << "unflaggedCount = " << unflaggedCount << endl; - - if(unflaggedCount == 0) { - median = 0.0f; - return -1; - } - - // fast O(n) median - std::nth_element(&data[0], &data[unflaggedCount/2], &data[unflaggedCount]); - median = data[unflaggedCount/2]; - - for(unsigned i=0; i<powers.size(); i++) { - if(median == powers[i]) return i; - } - - // The element was not found! This should not happen. - LOG_DEBUG_STR("calculateMedian: could not find index, returning 0"); - return 0; -} - - -void Flagger::calculateMeanAndStdDev(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& stdDev) { - stdDev = 0.0f; - mean = 0.0f; - unsigned count = 0; - - // Calculate mean value. - for (unsigned i = 0; i < powers.size(); i++) { - if(!flags[i]) { - mean += powers[i]; - count++; - } - } - mean /= count; - - // Calculate standard deviation. - for (unsigned i = 0; i < powers.size(); i++) { - if(!flags[i]) { - float diff = powers[i] - mean; - stdDev += diff * diff; - } - } - - stdDev /= count; - stdDev = sqrtf(stdDev); -} - - -void Flagger::calculateNormalStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, - float& mean, float& median, float& stdDev) { - // TODO do not count flagged samples - calculateMeanAndStdDev(powers, flags, mean, stdDev); - calculateMedian(powers, median); -} - - -void Flagger::calculateWinsorizedStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, - float& mean, float& median, float& stdDev) { - std::vector<float> data; - data.resize(powers.size()); - unsigned unflaggedCount = 0; - for(unsigned i=0; i<powers.size(); i++) { - if(!flags[i]) { - data[unflaggedCount] = powers[i]; - unflaggedCount++; - } - } - -// cout << "unflaggedCount = " << unflaggedCount << endl; - - if(unflaggedCount == 0) { - mean = 0.0f; - median = 0.0f; - stdDev = 0.0f; - return; - } - - // fast O(n) median - std::nth_element(&data[0], &data[unflaggedCount/2], &data[unflaggedCount]); - median = data[unflaggedCount/2]; - - unsigned lowIndex = (unsigned) floor(0.1 * unflaggedCount); - unsigned highIndex = (unsigned) ceil(0.9 * unflaggedCount); - if(highIndex > 0) highIndex--; - std::nth_element(&data[0], &data[lowIndex], &data[unflaggedCount]); - float lowValue = data[lowIndex]; - std::nth_element(&data[0], &data[highIndex], &data[unflaggedCount]); - float highValue = data[highIndex]; - - // Calculate mean - mean = 0.0f; - for(unsigned i = 0;i<unflaggedCount;++i) { - float value = data[i]; - if(value < lowValue) { - mean += lowValue; - } else if(value > highValue) { - mean += highValue; - } else { - mean += value; - } - } - mean /= unflaggedCount; - - // Calculate variance - stdDev = 0.0f; - for(unsigned i = 0;i<unflaggedCount;++i) { - float value = data[i]; - if(value < lowValue) { - stdDev += (lowValue-mean)*(lowValue-mean); - } else if(value > highValue) { - stdDev += (highValue-mean)*(highValue-mean); - } else { - stdDev += (value-mean)*(value-mean); - } - } - stdDev = sqrtf(1.54f * stdDev / unflaggedCount); - -// cout << "mean = " << mean << ", median = " << median << ", stdDev = " << stdDev << endl; -} - - -void Flagger::calculateStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& median, float& stdDev) { - RFIStatsTimer.start(); - - switch (itsFlaggerStatisticsType) { - case FLAGGER_STATISTICS_NORMAL: - calculateNormalStatistics(powers, flags, mean, median, stdDev); - break; - case FLAGGER_STATISTICS_WINSORIZED: - calculateWinsorizedStatistics(powers, flags, mean, median, stdDev); - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerStatisticsType."); - return; - } - - RFIStatsTimer.stop(); -} - - -void Flagger::calculateStatistics(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, float& mean, float& median, float& stdDev) { - RFIStatsTimer.start(); - - unsigned size = powers.shape()[0] * powers.shape()[1]; - - // convert to 1D - std::vector<float> powers1D(size); - memcpy(powers1D.data(), powers.data(), size * sizeof(float)); - - // Std uses specialized versions for bools (bit vectors). So, we have to copy manually. - std::vector<bool> flags1D( flags.shape()[0] * flags.shape()[1]); - int idx=0; - for (unsigned channel = 0; channel < flags.shape()[0]; channel++) { - for (unsigned time = 0; time < flags.shape()[1]; time++) { - flags1D[idx++] = flags[channel][time]; - } - } - - switch (itsFlaggerStatisticsType) { - case FLAGGER_STATISTICS_NORMAL: - calculateNormalStatistics(powers1D, flags1D, mean, median, stdDev); - break; - case FLAGGER_STATISTICS_WINSORIZED: - calculateWinsorizedStatistics(powers1D, flags1D, mean, median, stdDev); - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerStatisticsType."); - return; - } - - RFIStatsTimer.stop(); -} - - -float Flagger::evaluateGaussian(const float x, const float sigma) { - return (float) (1.0 / (sigma * sqrt(2.0 * M_PI)) * exp(-0.5 * x * x / sigma)); -} - - -float Flagger::logBase2(const float x) { - // log(base 2) x=log(base e) x/log(base e) 2 - return (float) (log(x) / log(2.0)); -} - - -void Flagger::oneDimensionalConvolution(const float* data, const unsigned dataSize, float*dest, const float* kernel, const unsigned kernelSize) { - for (unsigned i = 0; i < dataSize; ++i) { - int offset = i - kernelSize / 2; - unsigned start, end; - - if (offset < 0) { - start = -offset; - } else { - start = 0; - } - if (offset + kernelSize > dataSize) { - end = dataSize - offset; - } else { - end = kernelSize; - } - - float sum = 0.0f; - float weight = 0.0f; - for (unsigned k = start; k < end; k++) { - sum += data[k + offset] * kernel[k]; - weight += kernel[k]; - } - - if (weight != 0.0f) { - dest[i] = sum / weight; - } - } -} - - -void Flagger::oneDimensionalGausConvolution(const float* data, const unsigned dataSize, float* dest, const float sigma) { - unsigned kernelSize = (unsigned) round(sigma * 3.0); - if(kernelSize < 1) { - kernelSize = 1; - } else if (kernelSize > dataSize) { - kernelSize = dataSize; - } - - float kernel[kernelSize]; - for (unsigned i = 0; i < kernelSize; ++i) { - float x = i - kernelSize / 2.0f; - kernel[i] = evaluateGaussian(x, sigma); - } - oneDimensionalConvolution(data, dataSize, dest, kernel, kernelSize); -} - - -float Flagger::calcThresholdI(float threshold1, unsigned window, float p) { - if (p <= 0.0f) { - p = 1.5f; // according to Andre's RFI paper, this is a good default value - } - - return (float) (threshold1 * pow(p, logBase2(window)) / window); -} - - -void Flagger::sumThreshold1D(std::vector<float>& powers, std::vector<bool>& flags, const unsigned window, const float threshold) { - for (unsigned base = 1; base + window < powers.size(); base++) { - float sum = 0.0f; - - for (unsigned pos = base; pos < base + window; pos++) { - if (flags[pos]) { // If it was flagged in a previous iteration, replace sample with current threshold - sum += threshold; - powers[pos] = threshold; // for stats calc - } else { - sum += powers[pos]; - } - } - - if (sum >= window * threshold) { - // flag all samples in the sequence! - for (unsigned pos = base; pos < base + window; pos++) { - flags[pos] = true; - powers[pos] = threshold; // for stats calc - } - } - } -} - - -// in time direction -void Flagger::sumThreshold2DHorizontal(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const unsigned window, const float threshold) { - for(unsigned channel=1; channel<powers.shape()[0]; channel++) { - for (unsigned base = 0; base + window < powers.shape()[1]; base++) { - float sum = 0.0f; - - for (unsigned time = base; time < base + window; time++) { - if (flags[channel][time]) { // If it was flagged in a previous iteration, replace sample with current threshold - sum += threshold; - powers[channel][time] = threshold; // for stats calc - } else { - sum += powers[channel][time]; - } - } - - if (sum >= window * threshold) { - // flag all samples in the sequence! - for (unsigned time = base; time < base + window; time++) { - flags[channel][time] = true; - powers[channel][time] = threshold; // for stats calc - } - } - } - } -} - - -// in frequency direction -void Flagger::sumThreshold2DVertical(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const unsigned window, const float threshold) { - for (unsigned time = 0; time < powers.shape()[1]; time++) { - for(unsigned base=1; base + window <powers.shape()[0]; base++) { - float sum = 0.0f; - - for (unsigned channel = base; channel < base + window; channel++) { - if (flags[channel][time]) { // If it was flagged in a previous iteration, replace sample with current threshold - sum += threshold; - powers[channel][time] = threshold; // for stats calc - } else { - sum += powers[channel][time]; - } - } - - if (sum >= window * threshold) { - // flag all samples in the sequence! - for (unsigned channel = base; channel < base + window; channel++) { - flags[channel][time] = true; - powers[channel][time] = threshold; // for stats calc - } - } - } - } -} - - -void Flagger::sumThresholdFlagger2D(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const float sensitivity) { - float mean, stdDev, median; - calculateStatistics(powers, flags, mean, median, stdDev); - - float factor; - if (stdDev == 0.0f) { - factor = sensitivity; - } else { - factor = stdDev * sensitivity; - } - - unsigned window = 1; - for (unsigned iter = 1; iter <= MAX_SUM_THRESHOLD_ITERS; iter++) { - float thresholdI = median + calcThresholdI(itsCutoffThreshold, iter, 1.5f) * factor; -// LOG_DEBUG_STR("THRESHOLD in iter " << iter <<", window " << window << " = " << calcThresholdI(itsCutoffThreshold, iter, 1.5f) << ", becomes = " << thresholdI); - - sumThreshold2DHorizontal(powers, flags, window, thresholdI); - sumThreshold2DVertical(powers, flags, window, thresholdI); - - window *= 2; - } -} - - -void Flagger::thresholdingFlagger1D(std::vector<float>& powers, std::vector<bool>& flags) { - float mean, stdDev, median; - - calculateStatistics(powers, flags, mean, median, stdDev); - - float threshold = median + itsCutoffThreshold * stdDev; - - for (unsigned channel = 0; channel < powers.size(); channel++) { - if (powers[channel] > threshold) { - flags[channel] = true; - } - } -} - - -void Flagger::thresholdingFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags) { - float mean, stdDev, median; - calculateStatistics(powers, flags, mean, median, stdDev); - - float threshold = median + itsCutoffThreshold * stdDev; - - for (unsigned channel = 1; channel < powers.shape()[0]; channel++) { - for (unsigned time = 0; time < powers.shape()[1]; time++) { - const float power = powers[channel][time]; - if (power > threshold) { - // flag this sample, both polarizations. - flags[channel][time] = true; - } - } - } -} - - -void Flagger::sumThresholdFlagger1D(std::vector<float>& powers, std::vector<bool>& flags, const float sensitivity) { - float mean, stdDev, median; - calculateStatistics(powers, flags, mean, median, stdDev); - - float factor; - if (stdDev == 0.0f) { - factor = sensitivity; - } else { - factor = stdDev * sensitivity; - } - - unsigned window = 1; - for (unsigned iter = 1; iter <= MAX_SUM_THRESHOLD_ITERS; iter++) { - float thresholdI = median + calcThresholdI(itsCutoffThreshold, iter, 1.5f) * factor; -// LOG_DEBUG_STR("THRESHOLD in iter " << iter <<", window " << window << " = " << calcThresholdI(itsCutoffThreshold, iter, 1.5f) << ", becomes = " << thresholdI); - sumThreshold1D(powers, flags, window, thresholdI); - window *= 2; - } -} - - -void Flagger::sumThresholdFlagger1DSmoothed(std::vector<float>& powers, std::vector<float>& smoothedPowers, std::vector<float>& powerDiffs, std::vector<bool>& flags) { - // first do an insensitive sumthreshold - sumThresholdFlagger1D(powers, flags, 1.0f * itsBaseSensitivity); // sets flags, and replaces flagged samples with threshold - - // smooth - oneDimensionalGausConvolution(powers.data(), powers.size(), smoothedPowers.data(), 0.5f); // last param is sigma, height of the gaussian curve - - // calculate difference - for (unsigned int i = 0; i < powers.size(); i++) { - powerDiffs[i] = powers[i] - smoothedPowers[i]; - } - - // flag based on difference - sumThresholdFlagger1D(powerDiffs, flags, 1.0f * itsBaseSensitivity); // sets additional flags - - // and one final, more sensitive pass on the flagged power - sumThresholdFlagger1D(powers, flags, 0.8f * itsBaseSensitivity); // sets flags, and replaces flagged samples with threshold -} - - -bool Flagger::addToHistory(const float value, FlaggerHistory& history, float historyFlaggingThreshold) { - if (history.getSize() < MIN_HISTORY_SIZE) { - history.add(value); // add it, and return, we don't have enough history yet. - return false; - } - - float mean = history.getMean(); - float stdDev = history.getStdDev(); - float threshold = mean + historyFlaggingThreshold * stdDev; - - bool flagSecond = value > threshold; - if (flagSecond) { - LOG_DEBUG_STR("History flagger flagged this second: value = " << value << ", mean = " << mean << ", stdDev = " << stdDev << ", factor from cuttoff is: " << (value / threshold)); - // this second was flagged, add the threshold value to the history. - history.add(threshold); - } else { - // add data - history.add(value); - } - - return flagSecond; -} - - -void Flagger::sumThresholdFlagger1DWithHistory(std::vector<float>& powers, - std::vector<bool>& flags, const float sensitivity, FlaggerHistory& history) { - sumThresholdFlagger1D(powers, flags, sensitivity); - - // flag twice, so the second time flags with the corrected statistics - sumThresholdFlagger1D(powers, flags, sensitivity); - - float localMean, localStdDev, localMedian; - - // calculate final statistics (flagged samples were replaced with threshold values) - calculateStatistics(powers, flags, localMean, localMedian, localStdDev); - - if(addToHistory(localMedian, history)) { - for (unsigned i = 0; i < powers.size(); i++) { - flags[i] = true; - } - } -} - - -void Flagger::sumThresholdFlagger2DWithHistory(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, std::vector<float> &integratedPowers, - std::vector<bool> & /*integratedFlags*/, const float sensitivity, - MultiDimArray<FlaggerHistory, 3>& history, unsigned station, unsigned subband, unsigned pol) { - float localMean, localStdDev, localMedian; - - sumThresholdFlagger2D(powers, flags, sensitivity); - - // initialize integratedFlags - std::vector<bool> integratedFlags(flags.shape()[0]); - integratedFlags.clear(); - for (unsigned channel = 0; channel < flags.shape()[0]; channel++) { - for (unsigned time = 0; time < flags.shape()[1]; time++) { - if(flags[channel][time]) { - integratedFlags[channel] = true; - } - } - } - - // Also flag in frequency direction on fully integrated data for maximal signal to noise - sumThresholdFlagger1D(integratedPowers, integratedFlags, sensitivity); - - // apply flags of step above - apply1DflagsTo2D(flags, integratedFlags); - - // calculate final statistics for integrated data - calculateStatistics(integratedPowers, integratedFlags, localMean, localMedian, localStdDev); - - float total = 0.0f; - for(unsigned i=0; i<integratedPowers.size(); i++) { - if(!integratedFlags[i]) { - total += integratedPowers[i]; - } - } - - - string s(" "); - for (unsigned channel = 0; channel < integratedPowers.size(); channel++) { - s += boost::lexical_cast<string>(integratedPowers[channel]/total); - s += " "; - } - - LOG_DEBUG_STR("HISTORY_FREQ: station " << station << " subband = " << subband << " pol " << pol << " mean = " << localMean << " median " << localMedian << ", stdDev " << localStdDev << "total " << total << " meanTot " << (localMean / total) << " medTot " << (localMedian / total) << " stdDevTot " << (localStdDev / total) << s); - - -#if 0 - LOG_DEBUG_STR("HISTORY: station = " << station << ", subband = " << subband << " pol = " << pol << ", mean = " << localMean << ", median = " << localMedian << ", stdDev = " << localStdDev << ", total = " << total << ", meanTot = " << (localMean / total) << ", medTot = " << (localMedian / total) << ", stdDevTot = " << (localStdDev / total)); -#endif - -// if we divide median by the total power, we cancel out bandpass, etc. -// if(addToHistory(localMean / total, localStdDev / total, localMedian / total, history[station][subband][pol])) { - - if(addToHistory(localMedian, history[station][subband][pol])) { - for (unsigned channel = 0; channel < flags.shape()[0]; channel++) { - for (unsigned time = 0; time < flags.shape()[1]; time++) { - flags[channel][time] = true; - } - } - } -} - - -void Flagger::apply1DflagsTo2D(MultiDimArray<bool,2> &flags, std::vector<bool> & integratedFlags) -{ - for (unsigned channel = 0; channel < flags.shape()[0]; channel++) { - if(integratedFlags[channel]) { - for (unsigned time = 0; time < flags.shape()[1]; time++) { - flags[channel][time] = true; - } - } - } -} - - -void Flagger::sumThresholdFlagger1DSmoothedWithHistory(std::vector<float>& powers, std::vector<float>& smoothedPowers, std::vector<float>& powerDiffs, - std::vector<bool>& flags, FlaggerHistory& history) { - sumThresholdFlagger1DSmoothed(powers, smoothedPowers, powerDiffs, flags); - - float localMean, localStdDev, localMedian; - - // calculate final statistics (flagged samples were replaced with threshold values) - calculateStatistics(powers, flags, localMean, localMedian, localStdDev); - - if(addToHistory(localMedian, history)) { - for (unsigned i = 0; i < powers.size(); i++) { - flags[i] = true; - } - } -} - - -/** - * This is an experimental algorithm that might be slightly faster than - * the original algorithm by Andre Offringa. Jasper van de Gronde is preparing an article about it. - * @param [in,out] flags The input array of flags to be dilated that will be overwritten by the dilatation of itself. - * @param [in] eta The η parameter that specifies the minimum number of good data - * that any subsequence should have (see class description for the definition). - */ -unsigned Flagger::SIROperator(std::vector<bool> flags, float eta) { - int old= 0; - for(unsigned i=0; i<flags.size(); i++) { - if(flags[i]) old++; - } - - bool temp[flags.size()]; - float credit = 0.0f; - for (unsigned i = 0; i < flags.size(); i++) { - // credit ← max(0, credit) + w(f [i]) - const float w = flags[i] ? eta : eta - 1.0f; - const float maxcredit0 = credit > 0.0f ? credit : 0.0f; - credit = maxcredit0 + w; - temp[i] = (credit >= 0.0f); - } - - // The same iteration, but now backwards - credit = 0.0f; - for (int i = flags.size() - 1; i >= 0; i--) { - const float w = flags[i] ? eta : eta - 1.0f; - const float maxcredit0 = credit > 0.0f ? credit : 0.0f; - credit = maxcredit0 + w; - flags[i] = (credit >= 0.0f) || temp[i]; - } - - - int c= 0; - for(unsigned i=0; i<flags.size(); i++) { - if(flags[i]) c++; - } - - LOG_DEBUG_STR("SIR operator flagged " << (c - old) << " samples"); - - return c; -} - - -FlaggerStatisticsType Flagger::getFlaggerStatisticsType(std::string t) { - if (t.compare("NORMAL") == 0) { - return FLAGGER_STATISTICS_NORMAL; - } else if (t.compare("WINSORIZED") == 0) { - return FLAGGER_STATISTICS_WINSORIZED; - } else { - LOG_DEBUG_STR("unknown flagger statistics type, using default FLAGGER_STATISTICS_WINSORIZED"); - return FLAGGER_STATISTICS_WINSORIZED; - } -} - - -std::string Flagger::getFlaggerStatisticsTypeString(FlaggerStatisticsType t) { - switch(t) { - case FLAGGER_STATISTICS_NORMAL: - return "FLAGGER_STATISTICS_NORMAL"; - case FLAGGER_STATISTICS_WINSORIZED: - return "FLAGGER_STATISTICS_WINSORIZED"; - default: - return "ILLEGAL FLAGGER STATISTICS TYPE"; - } -} - - -std::string Flagger::getFlaggerStatisticsTypeString() { - return getFlaggerStatisticsTypeString(itsFlaggerStatisticsType); -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/Flagger.h b/RTCP/CNProc/src/Flagger.h deleted file mode 100644 index a20f47a333fa61830b38d9e82b7f2e138401250c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Flagger.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef LOFAR_CNPROC_FLAGGER_H -#define LOFAR_CNPROC_FLAGGER_H - -#include <Interface/MultiDimArray.h> -#include <Common/lofar_complex.h> - -#include <FlaggerHistory.h> - -#include <string> -#include <vector> - -namespace LOFAR { -namespace RTCP { - -class Parset; - -enum FlaggerStatisticsType { - FLAGGER_STATISTICS_NORMAL, - FLAGGER_STATISTICS_WINSORIZED -}; - -class Flagger { - -public: - - // The firstThreshold of 6.0 is taken from Andre's code. - Flagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, const float cutoffThreshold = 6.0f, - float baseSentitivity = 1.0f, FlaggerStatisticsType flaggerStatisticsType = FLAGGER_STATISTICS_WINSORIZED); - -private: - float evaluateGaussian(const float x, const float sigma); - float logBase2(const float x); - void oneDimensionalConvolution(const float* data, const unsigned dataSize, float* dest, const float* kernel, const unsigned kernelSize); - void sumThreshold2DHorizontal(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const unsigned window, const float threshold); - void sumThreshold2DVertical(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const unsigned window, const float threshold); - void apply1DflagsTo2D(MultiDimArray<bool,2> &flags, std::vector<bool> & integratedFlags); - -protected: - - // Does simple thresholding. - void thresholdingFlagger1D(std::vector<float>& powers, std::vector<bool>& flags); - void thresholdingFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags); - - // Does sum thresholding. - void sumThresholdFlagger1D(std::vector<float>& powers, std::vector<bool>& flags, const float sensitivity); - - void sumThresholdFlagger1DWithHistory(std::vector<float>& powers, std::vector<bool>& flags, const float sensitivity, FlaggerHistory& history); - - void sumThresholdFlagger2D(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, const float sensitivity); - - void sumThresholdFlagger2DWithHistory(MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, std::vector<float> &integratedPowers, - std::vector<bool> &integratedFlags, const float sensitivity, - MultiDimArray<FlaggerHistory, 3>& history, unsigned station, unsigned subband, unsigned pol); - - - // Does sum thresholding on samples, a gaussion smooth, calculates difference, and flags again. - void sumThresholdFlagger1DSmoothed(std::vector<float>& powers, std::vector<float>& smoothedPowers, - std::vector<float>& powerDiffs, std::vector<bool>& flags); - - void sumThresholdFlagger1DSmoothedWithHistory(std::vector<float>& powers, std::vector<float>& smoothedPowers, - std::vector<float>& powerDiffs, - std::vector<bool>& flags, FlaggerHistory& history); - - void calculateMeanAndStdDev(const std::vector<float>& powers, float& mean, float& stdDev); - unsigned calculateMedian(const std::vector<float>& powers, float& median); // calculate median, return position of the element - unsigned calculateMedian(const std::vector<float>& powers, const std::vector<bool>& flags, float& median); // calculate median, return position of the element, or -1 if all was flagged - - void calculateMeanAndStdDev(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& stdDev); - void calculateNormalStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& median, float& stdDev); - void calculateWinsorizedStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& median, float& stdDev); - void calculateStatistics(const std::vector<float>& powers, const std::vector<bool>& flags, float& mean, float& median, float& stdDev); - void calculateStatistics(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2> &flags, float& mean, float& median, float& stdDev); - - float calcThresholdI(float threshold1, unsigned window, float p); - void sumThreshold1D(std::vector<float>& powers, std::vector<bool>& flags, const unsigned window, const float threshold); - void oneDimensionalGausConvolution(const float* data, const unsigned dataSize, float*dest, const float sigma); - - bool addToHistory(const float value, FlaggerHistory& history, float threshold = 7.0f); - - unsigned SIROperator(std::vector<bool> flags, float eta); - - std::string getFlaggerStatisticsTypeString(); - std::string getFlaggerStatisticsTypeString(FlaggerStatisticsType t); - FlaggerStatisticsType getFlaggerStatisticsType(std::string t); - - float power(fcomplex in) { - return real(in) * real(in) + imag(in) * imag(in); - } - - const Parset& itsParset; - const unsigned itsNrStations; - const unsigned itsNrSubbands; - const unsigned itsNrChannels; - const float itsCutoffThreshold; - const float itsBaseSensitivity; - const FlaggerStatisticsType itsFlaggerStatisticsType; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_FLAGGER_H diff --git a/RTCP/CNProc/src/FlaggerHistory.h b/RTCP/CNProc/src/FlaggerHistory.h deleted file mode 100644 index a4fc29e4b70b87dfd89040186c64cc29611f741e..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/FlaggerHistory.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef LOFAR_CNPROC_FLAGGER_HISTORY_H -#define LOFAR_CNPROC_FLAGGER_HISTORY_H - - -#define HISTORY_SIZE 1024 -#define MIN_HISTORY_SIZE 32 // at least 1, and the maximum is HISTORY_SIZE - -namespace LOFAR { -namespace RTCP { - -class FlaggerHistory { - unsigned itsSize; - unsigned itsCurrent; - float itsSum; - - std::vector<float> itsValues; // [HISTORY_SIZE] - -public: - -FlaggerHistory() : itsSize(0), itsCurrent(0), itsSum(0.0f) { - itsValues.resize(HISTORY_SIZE); - memset(&itsValues[0], 0, HISTORY_SIZE * sizeof(float)); - } - - - void add(float val) { - if (itsSize >= HISTORY_SIZE) { // we are overwriting an old element - itsSum -= itsValues[itsCurrent]; - } else { - itsSize++; - } - itsSum += val; - itsValues[itsCurrent] = val; - itsCurrent++; - if(itsCurrent >= HISTORY_SIZE) itsCurrent = 0; - -#if 0 - std::cout << "HISTORY(" << itsSize << "): "; - for(int i=0; i<HISTORY_SIZE; i++) { - std::cout << itsValues[i] << " "; - } - std::cout << std::endl; -#endif - } - - - float getMean() { - if (itsSize == 0) { - return 0.0f; - } - return itsSum / itsSize; - } - - - float getStdDev() { - if (itsSize == 0) { - return 0.0f; - } - - float stdDev = 0.0f; - float mean = getMean(); - - for (unsigned i = 0; i < itsSize; i++) { - float diff = itsValues[i] - mean; - stdDev += diff * diff; - } - stdDev /= itsSize; - stdDev = (float) sqrt(stdDev); - return stdDev; - } - - - unsigned getSize() { - return itsSize; - } -}; // end of FlaggerHistory - - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_FLAGGER_HISTORY_H diff --git a/RTCP/CNProc/src/InversePPF.cc b/RTCP/CNProc/src/InversePPF.cc deleted file mode 100644 index f4f0ffb3519242cc0c4cdf1bf663895a7014d1f7..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/InversePPF.cc +++ /dev/null @@ -1,199 +0,0 @@ -/* - For comments on how this class works, see InversePPF.h. -*/ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <InversePPF.h> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; - -#include <FIR_InvertedStationPPFWeights.h> // defines invertedStationPPFWeights array - -static NSTimer firTimer("FIR", true); -static NSTimer fftTimer("FFT", true); -static NSTimer fftInTimer("create FFT input", true); - -InversePPF::InversePPF(std::vector<unsigned>& subbandList, unsigned nrSamplesPerIntegration, bool verbose) : - itsFilterBank(false, ON_STATION_FILTER_TAPS, ON_STATION_FILTER_SIZE, (float*) invertedStationPPFWeights), itsSubbandList(subbandList), itsNrSubbands(itsSubbandList.size()), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), itsVerbose(verbose) { - - double origInputSize = (itsNrSubbands * itsNrSamplesPerIntegration * sizeof(fcomplex)) / (1024.0 * 1024.0); - double fftBufSize = (ON_STATION_FILTER_SIZE * sizeof(float)) / (1024.0); - double outputSize = (ON_STATION_FILTER_SIZE * itsNrSamplesPerIntegration * sizeof(float)) / (1024.0 * 1024.0); - - if (itsVerbose) { - cerr << "size of original input data: " << origInputSize << " MB" << endl; - cerr << "size of FFT buffers: " << fftBufSize << " KB" << endl; - cerr << "size of output: " << outputSize << " MB" << endl; - cerr << "total memory usage: " << (origInputSize + outputSize) << " MB" << endl; - } - - // Init the FIR filters themselves with the weights of the filterbank. - itsFIRs.resize(ON_STATION_FILTER_SIZE); - for (unsigned chan = 0; chan < ON_STATION_FILTER_SIZE; chan++) { - itsFIRs[chan].initFilter(&itsFilterBank, chan); - } - - // See if the selected subbands are a contiguous list. If so, we can index the data more efficiently. - itsSubbandsAreContiguous = true; - unsigned prev = itsSubbandList[0]; - for(unsigned i=1; i<itsNrSubbands; i++) { - unsigned sb = itsSubbandList[i]; - if(sb != prev+1) { - cout << "EEE" << endl; - itsSubbandsAreContiguous = false; - break; - } - prev = sb; - } - - initFFT(); -} - - -InversePPF::~InversePPF() { - destroyFFT(); -} - - -void InversePPF::initFFT() { -#if defined HAVE_FFTW3 - itsFftInData = (float*) fftwf_malloc(ON_STATION_FILTER_SIZE * sizeof(float)); - itsFftOutData = (float*) fftwf_malloc(ON_STATION_FILTER_SIZE * sizeof(float)); - - itsPlan = fftwf_plan_r2r_1d(ON_STATION_FILTER_SIZE, itsFftInData, itsFftOutData, FFTW_HC2R, FFTW_ESTIMATE); - -// itsPlan = fftwf_plan_dft_c2r_1d(ON_STATION_FILTER_SIZE, itsFftInData, itsFftOutData, FFTW_ESTIMATE); - -#elif defined HAVE_FFTW2 - itsFftInData = (float*) malloc(ON_STATION_FILTER_SIZE * sizeof(float)); - itsFftOutData = (float*) malloc(ON_STATION_FILTER_SIZE * sizeof(float)); - - itsPlan = rfftw_create_plan(ON_STATION_FILTER_SIZE, FFTW_COMPLEX_TO_REAL, FFTW_ESTIMATE); -#endif - - if (itsFftInData == NULL || itsFftOutData == NULL) { - cerr << "Out of memory" << endl; - exit(1); - } -} - -void InversePPF::destroyFFT() { -#if defined HAVE_FFTW3 - fftwf_destroy_plan(itsPlan); - fftwf_free(itsFftInData); - fftwf_free(itsFftOutData); -#elif defined HAVE_FFTW2 - rfftw_destroy_plan(itsPlan); - free(itsFftInData); - free(itsFftOutData); -#endif -} - - -// in hc format, we store n/2+1 reals and n/2-1 imags -// Goes from tansposedBeamFormedData to itsFftInData. -// Fill input buffer, using "half complex" format. -void InversePPF::createFFTInput(const TransposedBeamFormedData& transposedBeamFormedData, unsigned time) { - fftInTimer.start(); - - if(itsSubbandsAreContiguous) { - const unsigned start = itsSubbandList[0]; // inclusive - const unsigned end = start + itsNrSubbands-1; // inclusive - - if(start > 0) { - memset(itsFftInData, 0, start * sizeof(float)); // subbands before start, real - memset(itsFftInData + ON_STATION_FILTER_SIZE-start, 0, (start-1) * sizeof(float)); // subbands before start, imag - } - - if(end < ON_STATION_FILTER_SIZE/2) { - memset(itsFftInData + end, 0, (ON_STATION_FILTER_SIZE/2 - end) * sizeof(float)); // subbands after end, real - memset(itsFftInData + ((ON_STATION_FILTER_SIZE/2) + 1), 0, ((ON_STATION_FILTER_SIZE/2 - end)-1) * sizeof(float)); - } - - if(start == 0) { // special case, the half complex format doesn store the imag part of the 0th element (it is always 0) - fcomplex sample = transposedBeamFormedData.samples[0][0 /* channel, but there only is 1 now */][time]; - itsFftInData[0] = real(sample); - for (unsigned sb = 1; sb < itsNrSubbands; sb++) { - fcomplex sample = transposedBeamFormedData.samples[sb][0 /* channel, but there only is 1 now */][time]; - itsFftInData[sb] = real(sample); - itsFftInData[ON_STATION_FILTER_SIZE - sb] = imag(sample); - } - } else { - for (unsigned i = 0; i < itsNrSubbands; i++) { - unsigned sb = start + i; - fcomplex sample = transposedBeamFormedData.samples[sb][0 /* channel, but there only is 1 now */][time]; - itsFftInData[i] = real(sample); - itsFftInData[ON_STATION_FILTER_SIZE - sb] = imag(sample); - } - } - } else { - // First set the unselected subbands to zero. - // We have to do this every time, since the input is destroyed by the FFT. - // However, the time this takes is very small compared to the time to fill in the real data below. - memset(itsFftInData, 0, ON_STATION_FILTER_SIZE * sizeof(float)); - - // There can be gaps in the subband list. - // Copy the samples from the different subbands to their correct places. - for (unsigned i = 0; i < itsNrSubbands; i++) { - unsigned sb = itsSubbandList[i]; - fcomplex sample = transposedBeamFormedData.samples[sb][0 /* channel, but there only is 1 now */][time]; - - itsFftInData[sb] = real(sample); - if(sb != 0) { - itsFftInData[ON_STATION_FILTER_SIZE - sb] = imag(sample); - } - } - } - - fftInTimer.stop(); -} - - -// This method writes the result to itsFFtOutData -void InversePPF::performInverseFFT() { - fftTimer.start(); - -#if defined HAVE_FFTW3 - // in and out are not the same buffer, and the input is destroyed by the fftw call. - fftwf_execute(itsPlan); -#elif defined HAVE_FFTW2 - // Do the inverse FFT. NB: this call destoys the input data. - rfftw_one(itsPlan, (fftw_real*) itsFftInData, (fftw_real*) itsFftOutData); -#endif - - fftTimer.stop(); -} - - -// Reads itsFftOutData, writes to invertedFilteredData. -void InversePPF::performFiltering(InverseFilteredData& invertedFilteredData, unsigned time) { - firTimer.start(); - - unsigned index = time * ON_STATION_FILTER_SIZE; - for (unsigned minorTime = 0; minorTime < ON_STATION_FILTER_SIZE; minorTime++) { - const float sample = itsFftOutData[minorTime]; - const float result = itsFIRs[minorTime].processNextSample(sample); - invertedFilteredData.samples[index++] = result; - } - - firTimer.stop(); -} - - -void InversePPF::performInversePPFTimeStep(const TransposedBeamFormedData& transposedBeamFormedData, InverseFilteredData& invertedFilteredData, unsigned time) { - createFFTInput(transposedBeamFormedData, time); - performInverseFFT(); - performFiltering(invertedFilteredData, time); -} - - -void InversePPF::performInversePPF(const TransposedBeamFormedData& transposedBeamFormedData, InverseFilteredData& invertedFilteredData) { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - performInversePPFTimeStep(transposedBeamFormedData, invertedFilteredData, time); - } -} diff --git a/RTCP/CNProc/src/InversePPF.h b/RTCP/CNProc/src/InversePPF.h deleted file mode 100644 index 123ff1d060ddf075545df297345412af4c7c98e8..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/InversePPF.h +++ /dev/null @@ -1,144 +0,0 @@ -#ifndef LOFAR_CNPROC_INVERSE_PPF_H -#define LOFAR_CNPROC_INVERSE_PPF_H - -#if 0 || !defined HAVE_BGP -#define INVERSE_PPF_C_IMPLEMENTATION -#endif - -/* - The subbandList is specified in the Parset file (and class), exactly in the format we need: - #subbands x the index van de FFT bin. So, 248 x [0..511] - - The station PPF first does the FIR filtering, next an FFT. - The station FFT goes from real to complex: 1024 reals to 1024 complex. - Of those 1024 results, the lower half is discarded, since they are the complex conjungates of the upper half. - From the FFTW manual: In many practical applications, the input data in[i] are purely real numbers, - in which case the DFT output satisfies the Hermitian redundancy: out[i] is the conjugate of out[n-i]. - Next, from the 512 upper values, 248 subbands are selected. I.e. more than half of the frequencies are thrown away. - - For the inverse PPF, we first do an inverse FFT, and next the FIR filter with the inverted constants. - In memory, we have to keep 1 beam, 248 subbands. The CEP PPF was bypassed, so there are no channels. - Also, we can assume that each core processes only 1 polarization. - In total, there can be as many as 50 beams and 2 polarizations, so we need 100 cores for the processing. - - There are 3 options: - - - complex to complex FFT - - - complex to real FFT *** This is what this code currently uses. *** - * Destroys the input data. - * Input must be in "half complex" format. - - This consists of the non-redundant half of the complex output for a 1d real-input DFT of size n, - stored as a sequence of n real numbers (double) in the format: - - r0, r1, r2, ..., rn/2, i(n+1)/2-1, ..., i2, i1 - - Here, rk is the real part of the kth output, and ik is the imaginary - part. (Division by 2 is rounded down.) For a halfcomplex array hc[n], - the kth component thus has its real part in hc[k] and its imaginary - part in hc[n-k], with the exception of k == 0 or n/2 (the latter only - if n is even)—in these two cases, the imaginary part is zero due to - symmetries of the real-input DFT, and is not stored. Thus, the r2hc - transform of n real values is a halfcomplex array of length n, and - vice versa for hc2r. Aside from the differing format, the output of - FFTW_R2HC/FFTW_HC2R is otherwise exactly the same as for the - corresponding 1d r2c/c2r transform (i.e. FFTW_FORWARD/FFTW_BACKWARD - transforms, respectively). Recall that these transforms are - unnormalized, so r2hc followed by hc2r will result in the original - data multiplied by n. Furthermore, like the c2r transform, an - out-of-place hc2r transform will destroy its input array. - - - complex to real FFT, multidimensional version with N=1 - * Also destroys input data - * normal input format - - TODO: Which option gives the best performance? - - A BG/P compute node has 2 GB of memory, which is shared between 4 cores. - So, we have only 512 MB per core. - */ - -#include <lofar_config.h> - -#include <Common/lofar_complex.h> -#include <Common/Timer.h> -#include <Interface/TransposedBeamFormedData.h> -#include <Interface/InverseFilteredData.h> -#include <Interface/Align.h> -#include <Interface/AlignedStdAllocator.h> -#include <boost/noncopyable.hpp> -#include <vector> -#include <FilterBank.h> -#include <FIR.h> - -// #undef HAVE_FFTW3 - -// On the BG/P, FFT2 uses the double floating point units, FFT3 works, but only uses one. -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#include <rfftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -#if defined HAVE_FFTW3 -#define fftw_real(x) ((x)[0]) -#define fftw_imag(x) ((x)[1]) -#elif defined HAVE_FFTW2 -#define fftw_real(x) (c_re(x)) -#define fftw_imag(x) (c_im(x)) -#endif - -#define ON_STATION_FILTER_SIZE 1024 -#define ON_STATION_FILTER_TAPS 16 - - -#define USE_FFT_HALF_COMPLEX 1 - - -namespace LOFAR { -namespace RTCP { - -class InversePPF: boost::noncopyable { -public: - InversePPF(std::vector<unsigned>& subbandList, unsigned nrSamplesPerIntegration, bool verbose); - ~InversePPF(); - - void performInversePPF(const TransposedBeamFormedData& transposedBeamFormedData, InverseFilteredData& inverseFilteredData); - -private: - - void initFFT(); - void destroyFFT(); - void createFFTInput(const TransposedBeamFormedData& transposedBeamFormedData, unsigned time); - void performInverseFFT(); - void performFiltering(InverseFilteredData& invertedFilteredData, unsigned time); - void performInversePPFTimeStep(const TransposedBeamFormedData& transposedBeamFormedData, InverseFilteredData& invertedFilteredData, unsigned time); - - FilterBank itsFilterBank; - std::vector<FIR<float> > itsFIRs; - -#if defined HAVE_FFTW3 - fftwf_plan itsPlan; -#elif defined HAVE_FFTW2 - fftw_plan itsPlan; -#endif - - float* itsFftInData; - float* itsFftOutData; - - std::vector<unsigned>& itsSubbandList; - unsigned itsNrSubbands; - unsigned itsNrSamplesPerIntegration; - - bool itsVerbose; - bool itsSubbandsAreContiguous; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_INVERSE_PPF_H diff --git a/RTCP/CNProc/src/LocationInfo.cc b/RTCP/CNProc/src/LocationInfo.cc deleted file mode 100644 index 3fd649893da8f1328db66627c3f75400c06a4ec5..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/LocationInfo.cc +++ /dev/null @@ -1,142 +0,0 @@ -#include <lofar_config.h> - -#include <LocationInfo.h> - -#include <Interface/CN_Mapping.h> -#include <Interface/PrintVector.h> -#include <Interface/Exceptions.h> - -#include <Common/LofarLogger.h> - -#if defined HAVE_BGP -#include <common/bgp_personality_inlines.h> -#include <spi/kernel_interface.h> -#endif - - -#include <iostream> -#include <boost/lexical_cast.hpp> - - -namespace LOFAR { -namespace RTCP { - -LocationInfo::LocationInfo() -{ -#if defined HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, reinterpret_cast<int *>(&itsRank)); - MPI_Comm_size(MPI_COMM_WORLD, reinterpret_cast<int *>(&itsNrNodes)); -#else - itsRank = 0; - itsNrNodes = 1; -#endif - -#if defined HAVE_BGP - getPersonality(); -#else - const char *nrPsetsStr = getenv("NR_PSETS"); - const char *psetSizeStr = getenv("PSET_SIZE"); - - if (nrPsetsStr == 0 || psetSizeStr == 0) - THROW(CNProcException, "environment variables NR_PSETS and PSET_SIZE must be defined"); - - itsNrPsets = boost::lexical_cast<unsigned>(nrPsetsStr); - itsPsetSize = boost::lexical_cast<unsigned>(psetSizeStr); - -#if defined CLUSTER_SCHEDULING - itsPsetNumber = 0; - itsRankInPset = itsRank; -#else - itsPsetNumber = itsRank % itsNrPsets; - itsRankInPset = itsRank / itsNrPsets; -#endif - -#endif - - ASSERT( itsPsetNumber < itsNrPsets ); - ASSERT( itsRankInPset < itsPsetSize ); -} - - -#if defined HAVE_BGP - -void LocationInfo::getPersonality() -{ - // allow this only once due to the MPI_Bcast that needs to be synced. - static bool initialised = false; - - if (initialised) { - THROW(CNProcException,"LocationInfo::getPersonality called for a second time"); - } - - initialised = true; - - if (Kernel_GetPersonality(&itsPersonality, sizeof itsPersonality) != 0) { - LOG_FATAL("could not get personality"); - exit(1); - } - - itsPsetNumbers.resize(itsNrNodes); - itsPsetNumber = BGP_Personality_psetNum(&itsPersonality); - itsPsetNumbers[itsRank] = itsPsetNumber; - -#if defined HAVE_MPI - for (unsigned core = 0; core < itsNrNodes; core ++) - MPI_Bcast(&itsPsetNumbers[core], 1, MPI_INT, core, MPI_COMM_WORLD); -#endif - - itsRankInPset = 0; - - for (unsigned rank = 0; rank < itsRank; rank ++) - if (itsPsetNumbers[rank] == itsPsetNumber) - ++ itsRankInPset; - - itsNrPsets = *std::max_element(itsPsetNumbers.begin(), itsPsetNumbers.end()) + 1; - itsPsetSize = itsNrNodes / itsNrPsets; -} - - -unsigned LocationInfo::remapOnTree(unsigned pset, unsigned core) const -{ - core = CN_Mapping::mapCoreOnPset(core, pset); - - for (unsigned rank = 0;; rank ++) - if (itsPsetNumbers[rank] == pset && core -- == 0) - return rank; -} - - -void LocationInfo::print() const -{ - LOG_DEBUG_STR("topology = (" - << BGP_Personality_xSize(&itsPersonality) << ',' - << BGP_Personality_ySize(&itsPersonality) << ',' - << BGP_Personality_zSize(&itsPersonality) << "), torus wraparound = (" - << (BGP_Personality_isTorusX(&itsPersonality) ? 'T' : 'F') << ',' - << (BGP_Personality_isTorusY(&itsPersonality) ? 'T' : 'F') << ',' - << (BGP_Personality_isTorusZ(&itsPersonality) ? 'T' : 'F') << ')'); - - std::vector<std::vector<unsigned> > cores(BGP_Personality_numIONodes(&itsPersonality)); - - for (unsigned rank = 0; rank < itsPsetNumbers.size(); rank ++) - cores[itsPsetNumbers[rank]].push_back(rank); - - for (unsigned pset = 0; pset < BGP_Personality_numIONodes(&itsPersonality); pset ++) - LOG_DEBUG_STR("pset " << pset << " contains cores " << cores[pset]); -} - -#else - -unsigned LocationInfo::remapOnTree(unsigned pset, unsigned core) const -{ - return pset + itsNrPsets * core; -} - -void LocationInfo::print() const -{ -} - -#endif - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/LocationInfo.h b/RTCP/CNProc/src/LocationInfo.h deleted file mode 100644 index 13361ad62fbfe7c4ffb65c55a760557a901a724c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/LocationInfo.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef LOFAR_CNPROC_LOCATIONINFO_H -#define LOFAR_CNPROC_LOCATIONINFO_H - -#include <vector> - -#if defined HAVE_MPI -// we do not need mpi.h here, but including it after bgp_personality.h leads -// to compilation errors -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif // HAVE_MPI - -#if defined HAVE_BGP -#include <common/bgp_personality.h> -#endif // HAVE_BGP - - -namespace LOFAR { -namespace RTCP { - -class LocationInfo -{ - public: - LocationInfo(); - - unsigned remapOnTree(unsigned pset, unsigned core) const; - - void print() const; - - unsigned rank() const; - unsigned nrNodes() const; - unsigned psetNumber() const; - unsigned rankInPset() const; - unsigned nrPsets() const; - unsigned psetSize() const; - - private: -#if defined HAVE_BGP - void getPersonality(); - - _BGP_Personality_t itsPersonality; - std::vector<unsigned> itsPsetNumbers; -#endif - - unsigned itsPsetNumber, itsRankInPset, itsNrPsets, itsPsetSize; - unsigned itsRank, itsNrNodes; -}; - - -inline unsigned LocationInfo::rank() const -{ - return itsRank; -} - - -inline unsigned LocationInfo::nrNodes() const -{ - return itsNrNodes; -} - - -inline unsigned LocationInfo::psetNumber() const -{ - return itsPsetNumber; -} - - -inline unsigned LocationInfo::rankInPset() const -{ - return itsRankInPset; -} - - -inline unsigned LocationInfo::nrPsets() const -{ - return itsNrPsets; -} - - -inline unsigned LocationInfo::psetSize() const -{ - return itsPsetSize; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/PPF.cc b/RTCP/CNProc/src/PPF.cc deleted file mode 100644 index 278c69dc1741ab7e6942b4901392e4578fdd5c97..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PPF.cc +++ /dev/null @@ -1,453 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <PPF.h> -#include <FFT_Asm.h> -#include <FIR_Asm.h> -#include <CN_Math.h> - -#include <Interface/Align.h> -#include <Interface/AlignedStdAllocator.h> -#include <Interface/Exceptions.h> - -#include <Common/DataConvert.h> -#include <Common/Timer.h> - -#include <complex> -#include <cmath> -#include <stdexcept> - - -namespace LOFAR { -namespace RTCP { - - -static NSTimer computeFlagsTimer("PPF::computeFlags()", true, true); -static NSTimer FIRtimer("PPF::FIRtimer", true, true); -static NSTimer FFTtimer("PPF::FFT", true, true); -static NSTimer PPFtimer("PPF::filter()", true, true); - - -template <typename SAMPLE_TYPE> PPF<SAMPLE_TYPE>::PPF(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, double channelBandwidth, bool delayCompensation, bool correctBandPass, bool verbose) -: - itsNrStations(nrStations), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), - itsNrChannels(nrChannels), - itsChannelBandwidth(channelBandwidth), - itsDelayCompensation(delayCompensation), - itsCorrectBandPass(correctBandPass), - itsBandPass(correctBandPass, nrChannels), - itsFilterBank(verbose, NR_TAPS, nrChannels, KAISER), - itsFIRs(boost::extents[nrStations][NR_POLARIZATIONS][nrChannels]), - -#if defined PPF_C_IMPLEMENTATION - itsFFTinData(boost::extents[NR_TAPS - 1 + nrSamplesPerIntegration][NR_POLARIZATIONS][nrChannels]) -#else - itsDelayLines(boost::extents[4][nrSamplesPerIntegration]), - itsFFTinData(boost::extents[nrSamplesPerIntegration][NR_POLARIZATIONS][nrChannels + 4]), - itsFFToutData(boost::extents[2][NR_POLARIZATIONS][nrChannels]) -#endif -{ - if (!powerOfTwo(nrChannels)) - THROW(CNProcException, "nrChannels must be a power of 2"); - -#if USE_ORIGINAL_FILTER - if (nrChannels != 256) - THROW(CNProcException, "nrChannels != 256 not implemented, turn USE_ORIGINAL_FILTER off in FIR.h"); -#endif - - for (itsLogNrChannels = 0; 1U << itsLogNrChannels != itsNrChannels; itsLogNrChannels ++) - ; - - init_fft(); - -#if !defined PPF_C_IMPLEMENTATION - initConstantTable(); -#endif - - // Init the FIR filters themselves with the weights of the filterbank. - for (unsigned stat = 0; stat < nrStations; stat ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - for (unsigned chan = 0; chan < nrChannels; chan ++) - itsFIRs[stat][pol][chan].initFilter(&itsFilterBank, chan); - - // In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz. - // To avoid that the FFT outputs the channels in the wrong order (from 128 to - // 255 followed by channels 0 to 127), we multiply each second FFT input by -1. - // This is efficiently achieved by negating the FIR filter constants of all - // uneven FIR filters. - itsFilterBank.negateWeights(); -} - - -#if !defined PPF_C_IMPLEMENTATION - -template <> void PPF<i4complex>::initConstantTable() -{ - extern fcomplex _FIR_fp_table[16][16]; - - static const float map[] = { -/* - * TODO: Test whether this is better: - * - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5 - */ - 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, - -7.0, -7.0, -6.0, 5.0, -4.0, -3.0, -2.0, -1.0 - }; - - for (unsigned i = 0; i < 16; i ++) - for (unsigned j = 0; j < 16; j ++) - _FIR_fp_table[i][j] = makefcomplex(map[j], map[i]); -} - - -template <> void PPF<i8complex>::initConstantTable() -{ - // This takes up pretty much space (.5 MB) - extern fcomplex _FIR_fp_table[256][256]; - - for (unsigned i = 0; i < 256; i ++) - for (unsigned j = 0; j < 256; j ++) - _FIR_fp_table[i][j] = makefcomplex((float) (signed char) i, (float) (signed char) j); -} - - -template <> void PPF<i16complex>::initConstantTable() -{ -#if 0 - extern float _FIR_fp_table[65536]; - - for (unsigned i = 0; i < 65536; i ++) - _FIR_fp_table[i] = (float) byteSwap((signed short) i); -#endif -} - -#endif // PPF_C_IMPLEMENTATION - - -template <typename SAMPLE_TYPE> PPF<SAMPLE_TYPE>::~PPF() -{ - destroy_fft(); -} - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::init_fft() -{ -#if defined HAVE_FFTW3 - fftwf_complex *buf = static_cast<fftwf_complex *>(fftwf_malloc(2 * itsNrChannels * sizeof(fftwf_complex))); - - if (buf == 0) - THROW(AssertError, "Out of memory"); - - - itsFFTWPlan = fftwf_plan_dft_1d(itsNrChannels, buf, buf + itsNrChannels, FFTW_FORWARD, FFTW_ESTIMATE); - fftwf_free(buf); -#elif defined HAVE_FFTW2 - itsFFTWPlan = fftw_create_plan(itsNrChannels, FFTW_FORWARD, FFTW_ESTIMATE); -#endif - - //FFTtest(); -} - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::destroy_fft() -{ -#if defined HAVE_FFTW3 - fftwf_destroy_plan(itsFFTWPlan); -#elif defined HAVE_FFTW2 - fftw_destroy_plan(itsFFTWPlan); -#endif -} - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::computeFlags(unsigned stat, const SubbandMetaData *metaData, FilteredData *filteredData) -{ - computeFlagsTimer.start(); - - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - filteredData->flags[ch][stat].reset(); - } - - SparseSet<unsigned> flags = metaData->getFlags(stat); - const SparseSet<unsigned>::Ranges &ranges = flags.getRanges(); - - for (SparseSet<unsigned>::const_iterator it = ranges.begin(); it != ranges.end(); it ++) { - unsigned begin = itsNrChannels == 1 ? it->begin : std::max(0, (signed) (it->begin >> itsLogNrChannels) - NR_TAPS + 1); - unsigned end = std::min(itsNrSamplesPerIntegration, ((it->end - 1) >> itsLogNrChannels) + 1); - - for (unsigned ch = 0; ch < itsNrChannels; ch++) { - filteredData->flags[ch][stat].include(begin, end); - } - } - - computeFlagsTimer.stop(); -} - - -#if defined PPF_C_IMPLEMENTATION - -template <typename SAMPLE_TYPE> fcomplex PPF<SAMPLE_TYPE>::phaseShift(unsigned time, unsigned chan, double baseFrequency, double delayAtBegin, double delayAfterEnd) const -{ - float timeInterpolatedDelay = delayAtBegin + ((float) time / itsNrSamplesPerIntegration) * (delayAfterEnd - delayAtBegin); - float frequency = baseFrequency + chan * itsChannelBandwidth; - float phaseShift = timeInterpolatedDelay * frequency; - float phi = -2 * M_PI * phaseShift; - - return makefcomplex(std::cos(phi), std::sin(phi)); -} - -#else - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::computePhaseShifts(struct phase_shift phaseShifts[/*itsNrSamplesPerIntegration*/], double delayAtBegin, double delayAfterEnd, double baseFrequency) const -{ - if (itsDelayCompensation) { - double phiBegin = -2 * M_PI * delayAtBegin; - double phiEnd = -2 * M_PI * delayAfterEnd; - double deltaPhi = (phiEnd - phiBegin) / itsNrSamplesPerIntegration; - dcomplex v = cosisin(phiBegin * baseFrequency); - dcomplex dv = cosisin(phiBegin * itsChannelBandwidth); - dcomplex vf = cosisin(deltaPhi * baseFrequency); - dcomplex dvf = cosisin(deltaPhi * itsChannelBandwidth); - - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - phaseShifts[time].v0 = v; v *= vf; - phaseShifts[time].dv = dv; dv *= dvf; - } - } else { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - phaseShifts[time].v0 = makefcomplex(1.0f, 0.0f); - phaseShifts[time].dv = makefcomplex(1.0f, 0.0f); - } - } -} - -#endif // PPF_C_IMPLEMENTATION - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::filter(unsigned stat, double centerFrequency, const SubbandMetaData *metaData, const TransposedData<SAMPLE_TYPE> *transposedData, FilteredData *filteredData) -{ - PPFtimer.start(); - - double baseFrequency = centerFrequency - (itsNrChannels * 0.5) * itsChannelBandwidth; - unsigned alignmentShift = metaData->alignmentShift(stat); - -#if 0 - LOG_DEBUG_STR(setprecision(15) << "stat " << stat << ", basefreq " << baseFrequency << ": delay from " << delays[stat].delayAtBegin << " to " << delays[stat].delayAfterEnd << " sec"); -#endif - -#if defined PPF_C_IMPLEMENTATION - FIRtimer.start(); - -#pragma omp parallel for - for (int chan = 0; chan < (int) itsNrChannels; chan ++) { - for (unsigned time = 0; time < NR_TAPS - 1 + itsNrSamplesPerIntegration; time ++) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - SAMPLE_TYPE currSample = transposedData->samples[stat][itsNrChannels * time + chan + alignmentShift][pol]; - -#if defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &currSample, 1); -#endif - fcomplex sample = makefcomplex(real(currSample), imag(currSample)); - itsFFTinData[time][pol][chan] = itsFIRs[stat][pol][chan].processNextSample(sample); - } - } - } - - FIRtimer.stop(); - - FFTtimer.start(); - -#pragma omp parallel - { - std::vector<fcomplex, AlignedStdAllocator<fcomplex, 32> > fftOutData(itsNrChannels); - - // The flags of all channels are still the same here, so we just use channel 1. - // Flags are kept per channel, since we will do online flagging on FilteredData later. - -#pragma omp for - for (int time = 0; time < (int) itsNrSamplesPerIntegration; time ++) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - if (filteredData->flags[1][stat].test(time)) { - for (unsigned chan = 0; chan < itsNrChannels; chan ++) - filteredData->samples[chan][stat][time][pol] = makefcomplex(0, 0); - } else { -#if defined HAVE_FFTW3 - fftwf_execute_dft(itsFFTWPlan, - (fftwf_complex *) itsFFTinData[NR_TAPS - 1 + time][pol].origin(), - (fftwf_complex *) (void *) &fftOutData[0]); -#else - fftw_one(itsFFTWPlan, - (fftw_complex *) itsFFTinData[NR_TAPS - 1 + time][pol].origin(), - (fftw_complex *) (void *) &fftOutData[0]); -#endif - - for (unsigned chan = 0; chan < itsNrChannels; chan ++) { - if (itsDelayCompensation) - fftOutData[chan] *= phaseShift(time, chan, baseFrequency, metaData->beams(stat)[0].delayAtBegin, metaData->beams(stat)[0].delayAfterEnd); - - if (itsCorrectBandPass) - fftOutData[chan] *= itsBandPass.correctionFactors()[chan]; - - filteredData->samples[chan][stat][time][pol] = fftOutData[chan]; - } - } - } - } - } - - FFTtimer.stop(); - -#else // assembly implementation - int transpose_stride = sizeof(fcomplex) * (NR_POLARIZATIONS * (itsNrSamplesPerIntegration | 2) * itsNrStations - 3); - - for (unsigned chan = 0; chan < itsNrChannels; chan += 4) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { -#if defined __GNUC__ // work around bug ??? - for (register unsigned ch asm ("r28") = 0; ch < 4; ch ++) -#else - for (unsigned ch = 0; ch < 4; ch ++) -#endif - { - FIRtimer.start(); - _filter(itsNrChannels, - itsFIRs[stat][pol][chan + ch].getWeights(), -// FIR::weights[chan + ch].origin(), - &transposedData->samples[stat][chan + ch + alignmentShift][pol], - itsDelayLines[ch].origin(), - itsNrSamplesPerIntegration / NR_TAPS); - FIRtimer.stop(); - } - - _transpose_4x8(&itsFFTinData[0][pol][chan], - itsDelayLines.origin(), - itsNrSamplesPerIntegration, - sizeof(fcomplex) * itsNrSamplesPerIntegration, - sizeof(fcomplex) * NR_POLARIZATIONS * (itsNrChannels + 4)); - } - } - - struct phase_shift phaseShifts[itsNrSamplesPerIntegration]; - - computePhaseShifts(phaseShifts, metaData->beams(stat)[0].delayAtBegin, metaData->beams(stat)[0].delayAfterEnd, baseFrequency); - - // The flags of all channels are still the same here, so we just use channel 1. - // Flags are kept per channel, since we will do online flagging on FilteredData later. - - const SparseSet<unsigned>::Ranges &ranges = filteredData->flags[1][stat].getRanges(); - SparseSet<unsigned>::const_iterator it = ranges.begin(); - - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - bool good = it == ranges.end() || time < it->begin || (time == it->end && (++ it, true)); - - if (good) { - FFTtimer.start(); -#if 0 - _prefetch(itsFFTinData[time].origin(), - sizeof(fcomplex[NR_POLARIZATIONS][itsNrChannels]) / CACHE_LINE_SIZE, - CACHE_LINE_SIZE); -#endif - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - if(itsNrChannels == 256) - _fft256(itsFFTinData[time][pol].origin(), - itsFFToutData[time & 1][pol].origin()); - else - fftw_one(itsFFTWPlan, - (fftw_complex *) itsFFTinData[time][pol].origin(), - (fftw_complex *) itsFFToutData[time & 1][pol].origin()); - - FFTtimer.stop(); - } else { - _memzero(itsFFToutData[time & 1].origin(), - itsFFToutData[time & 1].num_elements() * sizeof(fcomplex)); - } - - if (time & 1) - _phase_shift_and_transpose(&filteredData->samples[0][stat][time - 1][0], - itsFFToutData.origin(), - &phaseShifts[time - 1], - transpose_stride, - itsNrChannels, - itsBandPass.correctionFactors()); - } -#endif // PPF_C_IMPLEMENTATION - - PPFtimer.stop(); -} - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::bypass(unsigned stat, double frequency, const SubbandMetaData *metaData, const TransposedData<SAMPLE_TYPE> *transposedData, FilteredData *filteredData) -{ - PPFtimer.start(); - - unsigned alignmentShift = metaData->alignmentShift(stat); - - // The flags of all channels are still the same here, so we just use channel 1. - // Flags are kept per channel, since we will do online flagging on FilteredData later. - -#if defined PPF_C_IMPLEMENTATION - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time ++) { - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - if ((itsNrChannels > 1 && filteredData->flags[1][stat].test(time)) || (itsNrChannels == 1 && filteredData->flags[0][stat].test(time))) { - filteredData->samples[0][stat][time][pol] = makefcomplex(0, 0); - } else { - SAMPLE_TYPE currSample = transposedData->samples[stat][time + alignmentShift][pol]; - -#if defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &currSample, 1); -#endif - - fcomplex sample = makefcomplex(real(currSample), imag(currSample)); - - if (itsDelayCompensation) - sample *= phaseShift(time, 0, frequency, metaData->beams(stat)[0].delayAtBegin, metaData->beams(stat)[0].delayAfterEnd); - - filteredData->samples[0][stat][time][pol] = sample; - } - } - } -#else // assembly implementation - // convert little-endian integers to floating point - _convert(filteredData->samples[0][stat].origin(), transposedData->samples[stat][alignmentShift].origin(), itsNrSamplesPerIntegration * NR_POLARIZATIONS); - - if (itsDelayCompensation) { - double phiBegin = -2 * M_PI * metaData->beams(stat)[0].delayAtBegin; - double phiEnd = -2 * M_PI * metaData->beams(stat)[0].delayAfterEnd; - double deltaPhi = (phiEnd - phiBegin) / itsNrSamplesPerIntegration; - dcomplex v __attribute__((aligned(16))) = cosisin(phiBegin * frequency); - dcomplex vf __attribute__((aligned(16))) = cosisin(deltaPhi * frequency) ; - - _apply_single_channel_delays(filteredData->samples[0][stat].origin(), itsNrSamplesPerIntegration, &v, &vf); - } - - // clear flagged data - const SparseSet<unsigned>::Ranges &ranges = filteredData->flags[0][stat].getRanges(); - - for (SparseSet<unsigned>::const_iterator it = ranges.begin(); it != ranges.end(); it ++) - memset(filteredData->samples[0][stat][it->begin].origin(), 0, (it->end - it->begin) * NR_POLARIZATIONS * sizeof(fcomplex)); -#endif - - PPFtimer.stop(); -} - - -template <typename SAMPLE_TYPE> void PPF<SAMPLE_TYPE>::doWork(unsigned stat, double frequency, const SubbandMetaData *metaData, const TransposedData<SAMPLE_TYPE> *transposedData, FilteredData *filteredData) -{ - computeFlags(stat, metaData, filteredData); - - if (itsNrChannels > 1) - filter(stat, frequency, metaData, transposedData, filteredData); - else - bypass(stat, frequency, metaData, transposedData, filteredData); -} - - -template class PPF<i4complex>; -template class PPF<i8complex>; -template class PPF<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/PPF.h b/RTCP/CNProc/src/PPF.h deleted file mode 100644 index c71d7ac8ba98483eedf84dc0e6918a2101033985..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PPF.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef LOFAR_CNPROC_PPF_H -#define LOFAR_CNPROC_PPF_H - -#if 0 || !defined HAVE_BGP -#define PPF_C_IMPLEMENTATION -#endif - - -#include <BandPass.h> -#include <FilterBank.h> -#include <FIR.h> -#include <Interface/TransposedData.h> -#include <Interface/FilteredData.h> -#include <Interface/SubbandMetaData.h> -#include <Interface/AlignedStdAllocator.h> - -#include <boost/multi_array.hpp> -#include <boost/noncopyable.hpp> - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - - -namespace LOFAR { -namespace RTCP { - -template <typename SAMPLE_TYPE> class PPF: boost::noncopyable -{ - public: - PPF(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, double channelBandwidth, bool delayCompensation, bool correctBandPass, bool verbose); - ~PPF(); - - void doWork(unsigned stat, double centerFrequency, const SubbandMetaData *, const TransposedData<SAMPLE_TYPE> *, FilteredData *); - -#if !defined PPF_C_IMPLEMENTATION - static void initConstantTable(); -#endif - - private: - void init_fft(), destroy_fft(); - -#if defined PPF_C_IMPLEMENTATION - fcomplex phaseShift(unsigned time, unsigned chan, double baseFrequency, double delayAtBegin, double delayAfterEnd) const; -#else - void computePhaseShifts(struct phase_shift phaseShifts[/*itsNrSamplesPerIntegration*/], double delayAtBegin, double delayAfterEnd, double baseFrequency) const; -#endif - - void computeFlags(unsigned stat, const SubbandMetaData *metaData, FilteredData *); - void filter(unsigned stat, double centerFrequency, const SubbandMetaData *, const TransposedData<SAMPLE_TYPE> *, FilteredData *); - void bypass(unsigned stat, double centerFrequency, const SubbandMetaData *, const TransposedData<SAMPLE_TYPE> *, FilteredData *); - - const unsigned itsNrStations, itsNrSamplesPerIntegration; - const unsigned itsNrChannels; - unsigned itsLogNrChannels; - const double itsChannelBandwidth; - const bool itsDelayCompensation, itsCorrectBandPass; - const BandPass itsBandPass; - FilterBank itsFilterBank; - boost::multi_array<FIR<fcomplex>, 3> itsFIRs; //[itsNrStations][NR_POLARIZATIONS][itsNrChannels] - -#if defined PPF_C_IMPLEMENTATION - boost::multi_array<fcomplex, 3> itsFFTinData; //[NR_TAPS - 1 + itsNrSamplesPerIntegration][NR_POLARIZATIONS][itsNrChannels] -#else - boost::multi_array<fcomplex, 2, AlignedStdAllocator<fcomplex, 32> > itsDelayLines; //[4][itsNrSamplesPerIntegration] - boost::multi_array<fcomplex, 3, AlignedStdAllocator<fcomplex, 32> > itsFFTinData; //[itsNrSamplesPerIntegration][NR_POLARIZATIONS][itsNrChannels + 4] - boost::multi_array<fcomplex, 3, AlignedStdAllocator<fcomplex, 32> > itsFFToutData; //[2][NR_POLARIZATIONS][itsNrChannels] -#endif - -#if defined HAVE_FFTW3 - fftwf_plan itsFFTWPlan; -#elif defined HAVE_FFTW2 - fftw_plan itsFFTWPlan; -#endif -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/PostCorrelationFlagger.cc b/RTCP/CNProc/src/PostCorrelationFlagger.cc deleted file mode 100644 index 6139e00260cc2b8ad2bae4c3d5b0ee69a857c6ab..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PostCorrelationFlagger.cc +++ /dev/null @@ -1,207 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/Timer.h> - -#include <Correlator.h> -#include <PostCorrelationFlagger.h> - -namespace LOFAR { -namespace RTCP { - -static NSTimer detectBrokenStationsTimer("RFI post DetectBrokenStations", true, true); - -// CorrelatedData samples: [nrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS] - -// We have the data for one second, all frequencies in a subband. -// If one of the polarizations exceeds the threshold, flag them all. -// All baselines are flagged completely independently. -// Autocorrelations are ignored. - -// TODO: if detectBrokenStations is not enabled, we don't have to wipe/calc summedbaselinePowers -// TODO: if some data was already flagged, take that into account (already done for pre-correlation flagger). - -PostCorrelationFlagger::PostCorrelationFlagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, - const unsigned nrChannels, const float cutoffThreshold, float baseSentitivity) : - Flagger(parset, nrStations, nrSubbands, nrChannels, cutoffThreshold, baseSentitivity, - getFlaggerStatisticsType(parset.onlinePostCorrelationFlaggingStatisticsType(getFlaggerStatisticsTypeString(FLAGGER_STATISTICS_WINSORIZED)))), - itsFlaggerType(getFlaggerType(parset.onlinePostCorrelationFlaggingType(getFlaggerTypeString(POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY)))), - itsNrBaselines((nrStations * (nrStations + 1) / 2)) { - - itsPowers.resize(itsNrChannels); - itsSmoothedPowers.resize(itsNrChannels); - itsPowerDiffs.resize(nrChannels); - itsFlags.resize(itsNrChannels); - itsSummedBaselinePowers.resize(itsNrBaselines); - itsSummedStationPowers.resize(itsNrStations); - itsHistory.resize(boost::extents[itsNrBaselines][nrSubbands][NR_POLARIZATIONS][NR_POLARIZATIONS]); - - LOG_DEBUG_STR("post correlation flagging type = " << getFlaggerTypeString() - << ", statistics type = " << getFlaggerStatisticsTypeString()); -} - -void PostCorrelationFlagger::flag(CorrelatedData* correlatedData, unsigned currentSubband) { - NSTimer flaggerTimer("RFI post flagger", true, true); - flaggerTimer.start(); - - wipeSums(); - - for (unsigned baseline = 0; baseline < itsNrBaselines; baseline++) { - if (Correlator::baselineIsAutoCorrelation(baseline)) { -// LOG_DEBUG_STR(" baseline " << baseline << " is an autocorrelation, skipping"); - continue; - } - - wipeFlags(); - for (unsigned pol1 = 0; pol1 < NR_POLARIZATIONS; pol1++) { - for (unsigned pol2 = 0; pol2 < NR_POLARIZATIONS; pol2++) { - calculatePowers(baseline, pol1, pol2, correlatedData); - - switch (itsFlaggerType) { - case POST_FLAGGER_THRESHOLD: - thresholdingFlagger1D(itsPowers, itsFlags); - break; - case POST_FLAGGER_SUM_THRESHOLD: - sumThresholdFlagger1D(itsPowers, itsFlags, itsBaseSensitivity); - break; - case POST_FLAGGER_SMOOTHED_SUM_THRESHOLD: - sumThresholdFlagger1DSmoothed(itsPowers, itsSmoothedPowers, itsPowerDiffs, itsFlags); - break; - case POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - sumThresholdFlagger1DSmoothedWithHistory(itsPowers, itsSmoothedPowers, itsPowerDiffs, itsFlags, itsHistory[baseline][currentSubband][pol1][pol2]); - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerType. Skipping online post correlation flagger."); - return; - } - - calculateSummedbaselinePowers(baseline); - } - } - - applyFlags(baseline, correlatedData); - } - flaggerTimer.stop(); -} - -void PostCorrelationFlagger::calculateSummedbaselinePowers(unsigned baseline) { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - if (!itsFlags[channel]) { - itsSummedBaselinePowers[baseline] += itsPowers[channel]; - } - } -} - - // TODO: also integrate flags? -void PostCorrelationFlagger::detectBrokenStations() { - detectBrokenStationsTimer.start(); - - // Sum all baselines that involve a station (both horizontally and vertically). - - for (unsigned station = 0; station < itsNrStations; station++) { - float sum = 0.0f; - for (unsigned stationH = station+1; stationH < itsNrStations; stationH++) { // do not count autocorrelation - unsigned baseline = Correlator::baseline(station, stationH); - sum += itsSummedBaselinePowers[baseline]; - } - for (unsigned stationV = 0; stationV < station; stationV++) { - unsigned baseline = Correlator::baseline(stationV, station); - sum += itsSummedBaselinePowers[baseline]; - } - - itsSummedStationPowers[station] = sum; - } - - float stdDev; - float mean; - // calculateStdDevAndSum(itsSummedStationPowers.data(), itsSummedStationPowers.size(), mean, stdDev, sum); - - calculateMeanAndStdDev(itsSummedStationPowers, mean, stdDev); - - float median; - calculateMedian(itsSummedStationPowers, median); - float threshold = mean + itsCutoffThreshold * stdDev; - - LOG_DEBUG_STR("RFI post detectBrokenStations: mean = " << mean << ", median = " << median << " stdDev = " << stdDev << ", threshold = " << threshold); - - for (unsigned station = 0; station < itsNrStations; station++) { - LOG_INFO_STR("RFI post detectBrokenStations: station " << station << " total summed power = " << itsSummedStationPowers[station]); - if (itsSummedStationPowers[station] > threshold) { - LOG_INFO_STR( - "RFI post detectBrokenStations: WARNING, station " << station << " seems to be corrupted, total summed power = " << itsSummedStationPowers[station]); - } - } - - detectBrokenStationsTimer.stop(); -} - -void PostCorrelationFlagger::wipeSums() { - for (unsigned baseline = 0; baseline < itsNrBaselines; baseline++) { - itsSummedBaselinePowers[baseline] = 0.0f; - } - - for (unsigned station = 0; station < itsNrStations; station++) { - itsSummedStationPowers[station] = 0.0f; - } -} - -void PostCorrelationFlagger::wipeFlags() { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - itsFlags[channel] = false; - } -} - -void PostCorrelationFlagger::applyFlags(unsigned baseline, CorrelatedData* correlatedData) { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - if (itsFlags[channel]) { - correlatedData->setNrValidSamples(baseline, channel, 0); - // TODO: currently, we can only flag all channels at once! This is a limitation in CorrelatedData. - // correlatedData->flags[station].include(time); - } - } -} - -void PostCorrelationFlagger::calculatePowers(unsigned baseline, unsigned pol1, unsigned pol2, CorrelatedData* correlatedData) { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - fcomplex sample = correlatedData->visibilities[baseline][channel][pol1][pol2]; - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - itsPowers[channel] = power; - } -} - -PostCorrelationFlaggerType PostCorrelationFlagger::getFlaggerType(std::string t) { - if (t.compare("THRESHOLD") == 0) { - return POST_FLAGGER_THRESHOLD; - } else if (t.compare("SUM_THRESHOLD") == 0) { - return POST_FLAGGER_SUM_THRESHOLD; - } else if (t.compare("SMOOTHED_SUM_THRESHOLD") == 0) { - return POST_FLAGGER_SMOOTHED_SUM_THRESHOLD; - } else if (t.compare("SMOOTHED_SUM_THRESHOLD_WITH_HISTORY") == 0) { - return POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY; - } else { - LOG_DEBUG_STR("unknown flagger type, using default SMOOTHED_SUM_THRESHOLD_WITH_HISTORY"); - return POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY; - } -} - -std::string PostCorrelationFlagger::getFlaggerTypeString(PostCorrelationFlaggerType t) { - switch(t) { - case POST_FLAGGER_THRESHOLD: - return "THRESHOLD"; - case POST_FLAGGER_SUM_THRESHOLD: - return "SUM_THRESHOLD"; - case POST_FLAGGER_SMOOTHED_SUM_THRESHOLD: - return "SMOOTHED_SUM_THRESHOLD"; - case POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - return "SMOOTHED_SUM_THRESHOLD_WITH_HISTORY"; - default: - return "ILLEGAL FLAGGER TYPE"; - } -} - -std::string PostCorrelationFlagger::getFlaggerTypeString() { - return getFlaggerTypeString(itsFlaggerType); -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/PostCorrelationFlagger.h b/RTCP/CNProc/src/PostCorrelationFlagger.h deleted file mode 100644 index 5c92634f20aafb3c4949ce647c856985ee5e2d45..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PostCorrelationFlagger.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef LOFAR_CNPROC_POST_CORRELATION_FLAGGER_H -#define LOFAR_CNPROC_POST_CORRELATION_FLAGGER_H - -#include <Flagger.h> - -namespace LOFAR { -namespace RTCP { - -class CorrelatedData; -class Parset; - -enum PostCorrelationFlaggerType { - POST_FLAGGER_THRESHOLD, - POST_FLAGGER_SUM_THRESHOLD, - POST_FLAGGER_SMOOTHED_SUM_THRESHOLD, - POST_FLAGGER_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY -}; - -class PostCorrelationFlagger : public Flagger -{ - public: - - // The firstThreshold of 6.0 is taken from Andre's code. - PostCorrelationFlagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, - const float cutoffThreshold = 7.0f, float baseSentitivity = 1.0f); - - void flag(CorrelatedData* correlatedData, unsigned currentSubband); - - // Tries to detect broken stations - void detectBrokenStations(); - -private: - // calculates mean, stddev, and median. - void calculatePowers(unsigned baseline, unsigned pol1, unsigned pol2, CorrelatedData* correlatedData); - void calculateSummedbaselinePowers(unsigned baseline); - - void wipeFlags(); - void applyFlags(unsigned baseline, CorrelatedData* correlatedData); - void wipeSums(); - - PostCorrelationFlaggerType getFlaggerType(std::string t); - std::string getFlaggerTypeString(PostCorrelationFlaggerType t); - std::string getFlaggerTypeString(); - - const PostCorrelationFlaggerType itsFlaggerType; - const unsigned itsNrBaselines; - - std::vector<float> itsPowers; - std::vector<float> itsSmoothedPowers; - std::vector<float> itsPowerDiffs; - std::vector<bool> itsFlags; - std::vector<float> itsSummedBaselinePowers; // [nrBaselines] - std::vector<float> itsSummedStationPowers; // [nrStations] - - MultiDimArray<FlaggerHistory, 4> itsHistory; // [nrBaselines][nrSubbands][NR_POLARIZATIONS][NR_POLARIZATIONS] -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_POST_CORRELATION_FLAGGER_H diff --git a/RTCP/CNProc/src/PreCorrelationFlagger.cc b/RTCP/CNProc/src/PreCorrelationFlagger.cc deleted file mode 100644 index afcf98ded198ff11393a4f9853d2f78cdf4097ac..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PreCorrelationFlagger.cc +++ /dev/null @@ -1,462 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/Timer.h> - -#include <PreCorrelationFlagger.h> - -// history is kept per subband, as we can get different subbands over time on this compute node. -// Always flag poth polarizations as a unit. - -namespace LOFAR { -namespace RTCP { - -PreCorrelationFlagger::PreCorrelationFlagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, - const unsigned nrSamplesPerIntegration, const float cutoffThreshold) -: - Flagger(parset, nrStations, nrSubbands, nrChannels, cutoffThreshold, /*baseSentitivity*/ 1.0f, - getFlaggerStatisticsType(parset.onlinePreCorrelationFlaggingStatisticsType(getFlaggerStatisticsTypeString(FLAGGER_STATISTICS_WINSORIZED)))), - itsFlaggerType(getFlaggerType(parset.onlinePreCorrelationFlaggingType(getFlaggerTypeString(PRE_FLAGGER_THRESHOLD)))), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), - itsIntegrationFactor(parset.onlinePreCorrelationFlaggingIntegration()) -{ - if(itsIntegrationFactor == 0) { - itsIntegrationFactor = itsNrSamplesPerIntegration; - } - - if(itsNrSamplesPerIntegration % itsIntegrationFactor != 0) { - LOG_ERROR_STR("preCorrelationFlagger: Illegal integration factor, fully integrating"); - itsIntegrationFactor = itsNrSamplesPerIntegration; - } - - itsPowers.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration]); - itsFlags.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration]); - - switch(itsFlaggerType) { - // not integrated - case PRE_FLAGGER_THRESHOLD: - break; - - // fully integrated - case PRE_FLAGGER_INTEGRATED_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD: - itsIntegratedPowers.resize(itsNrChannels); - itsIntegratedFlags.resize(itsNrChannels); - break; - - // fully integrated, and smoothed - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD: - itsIntegratedPowers.resize(itsNrChannels); - itsIntegratedFlags.resize(itsNrChannels); - itsSmoothedIntegratedPowers.resize(itsNrChannels); - itsIntegratedPowerDiffs.resize(itsNrChannels); - break; - - // fully integrated, and history - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY: - itsHistory.resize(boost::extents[itsNrStations][itsNrSubbands][NR_POLARIZATIONS]); - itsIntegratedPowers.resize(itsNrChannels); - itsIntegratedFlags.resize(itsNrChannels); - break; - - // fully integrated, smoothed, and history - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - itsHistory.resize(boost::extents[itsNrStations][itsNrSubbands][NR_POLARIZATIONS]); - itsIntegratedPowers.resize(itsNrChannels); - itsIntegratedFlags.resize(itsNrChannels); - itsSmoothedIntegratedPowers.resize(itsNrChannels); - itsIntegratedPowerDiffs.resize(itsNrChannels); - break; - - // Partially integrated - case PRE_FLAGGER_INTEGRATED_THRESHOLD_2D: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D: - itsIntegratedPowers2D.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor]); - itsIntegratedFlags2D.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor]); - break; - - // Partially integrated, with history - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY: - itsIntegratedPowers.resize(itsNrChannels); // needed for history - itsIntegratedFlags.resize(itsNrChannels); // needed for history - itsIntegratedPowers2D.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor]); - itsIntegratedFlags2D.resize(boost::extents[itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor]); - itsHistory.resize(boost::extents[itsNrStations][itsNrSubbands][NR_POLARIZATIONS]); - break; - - default: - LOG_INFO_STR("ERROR, illegal FlaggerType. Skipping online pre correlation flagger."); - return; - } - - LOG_DEBUG_STR("pre correlation flagging type = " << getFlaggerTypeString() - << ", statistics type = " << getFlaggerStatisticsTypeString() - << ", extra integration factor = " << itsIntegrationFactor); -} - - -void PreCorrelationFlagger::flag(FilteredData* filteredData, unsigned currentSubband) -{ - NSTimer flaggerTimer("RFI pre flagger", true, true); - flaggerTimer.start(); - - for(unsigned station = 0; station < itsNrStations; station++) { - initFlags(station, filteredData); // copy flags to my local format - filteredData->resetFlags(); // Wipe original flags - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - calculatePowers(station, pol, filteredData); - - switch(itsFlaggerType) { - case PRE_FLAGGER_THRESHOLD: - thresholdingFlagger2D(itsPowers, itsFlags); - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD: - integratingThresholdingFlagger(itsPowers, itsFlags, itsIntegratedPowers, itsIntegratedFlags); - break; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD: - integratingSumThresholdFlagger(itsPowers, itsFlags, itsIntegratedPowers, itsIntegratedFlags); - break; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY: - integratingSumThresholdFlaggerWithHistory(itsPowers, itsFlags, itsIntegratedPowers, itsIntegratedFlags, itsHistory[station][currentSubband][pol]); - break; - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD: - integratingSumThresholdFlaggerSmoothed(itsPowers, itsFlags, itsIntegratedPowers, itsSmoothedIntegratedPowers, itsIntegratedPowerDiffs, itsIntegratedFlags); - break; - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - integratingSumThresholdFlaggerSmoothedWithHistory(itsPowers, itsFlags, itsIntegratedPowers, itsSmoothedIntegratedPowers, itsIntegratedPowerDiffs, itsIntegratedFlags, itsHistory[station][currentSubband][pol]); - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD_2D: - integratingThresholdingFlagger2D(itsPowers, itsFlags, itsIntegratedPowers2D, itsIntegratedFlags2D); - break; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D: - integratingSumThresholdFlagger2D(itsPowers, itsFlags, itsIntegratedPowers2D, itsIntegratedFlags2D); - break; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY: - integratingSumThresholdFlagger2DWithHistory(itsPowers, itsFlags, itsIntegratedPowers2D, itsIntegratedFlags2D, itsIntegratedPowers, itsIntegratedFlags, itsHistory, station, currentSubband, pol); - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerType. Skipping online pre correlation flagger."); - return; - } - } - - applyFlags(station, filteredData); // copy flags from my original format into FilteredData again. - } - - flaggerTimer.stop(); -} - - -void PreCorrelationFlagger::integratingThresholdingFlagger(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<bool> &integratedFlags) -{ - integratePowers(powers, flags, integratedPowers, integratedFlags); - thresholdingFlagger1D(integratedPowers, integratedFlags); -} - -void PreCorrelationFlagger::integratingThresholdingFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, - MultiDimArray<bool,2>& integratedFlags2D) -{ - integratePowers2D(powers, flags, integratedPowers2D, integratedFlags2D); - thresholdingFlagger2D(integratedPowers2D, integratedFlags2D); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlagger(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<bool> &integratedFlags) { - integratePowers(powers, flags, integratedPowers, integratedFlags); - sumThresholdFlagger1D(integratedPowers, integratedFlags, itsBaseSensitivity); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, - MultiDimArray<bool,2>& integratedFlags2D) { - integratePowers2D(powers, flags, integratedPowers2D, integratedFlags2D); - sumThresholdFlagger2D(integratedPowers2D, integratedFlags2D, itsBaseSensitivity); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlagger2DWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, MultiDimArray<bool,2>& integratedFlags2D, - vector<float> &integratedPowers, vector<bool> &integratedFlags, - MultiDimArray<FlaggerHistory, 3>& history, unsigned station, unsigned subband, unsigned pol) { - integratePowers2D(powers, flags, integratedPowers2D, integratedFlags2D); - integratePowers(powers, flags, integratedPowers, integratedFlags); // for the history - sumThresholdFlagger2DWithHistory(integratedPowers2D, integratedFlags2D, integratedPowers, integratedFlags, itsBaseSensitivity, history, station, subband, pol); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlaggerSmoothed(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<float> &smoothedPowers, - vector<float> &powerDiffs, vector<bool> &integratedFlags) { - integratePowers(powers, flags, integratedPowers, integratedFlags); - sumThresholdFlagger1DSmoothed(integratedPowers, smoothedPowers, powerDiffs, integratedFlags); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlaggerWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<bool> &integratedFlags, - FlaggerHistory& history) { - integratePowers(powers, flags, integratedPowers, integratedFlags); - sumThresholdFlagger1DWithHistory(integratedPowers, integratedFlags, itsBaseSensitivity, history); -} - - -void PreCorrelationFlagger::integratingSumThresholdFlaggerSmoothedWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<float> &smoothedPowers, - vector<float> &powerDiffs, vector<bool> &integratedFlags, - FlaggerHistory& history) { - integratePowers(powers, flags, integratedPowers, integratedFlags); - sumThresholdFlagger1DSmoothedWithHistory(integratedPowers, smoothedPowers, powerDiffs, integratedFlags, history); -} - - -void PreCorrelationFlagger::integratePowers(const MultiDimArray<float,2>& powers, MultiDimArray<bool,2>& flags, - vector<float>& integratedPowers, vector<bool>& integratedFlags) { - // sum all powers over time to increase the signal-to-noise-ratio - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - float powerSum = 0.0f; - bool flagged = false; - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - powerSum += powers[channel][time]; - flagged |= flags[channel][time]; - } - integratedPowers[channel] = powerSum; - integratedFlags[channel] = flagged; - } -} - - -void PreCorrelationFlagger::integratePowers2D(const MultiDimArray<float,2>& powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, MultiDimArray<bool,2>& integratedFlags2D) { - // Sum powers over time to increase the signal-to-noise-ratio. - // We do this in groups of itsIntegrationFactor. - unsigned nrTimes = itsNrSamplesPerIntegration / itsIntegrationFactor; - - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for(unsigned block = 0; block < nrTimes; block++) { - float powerSum = 0.0f; - bool flagged = false; - for (unsigned time = 0; time < itsIntegrationFactor; time++) { - unsigned globalIndex = block * itsIntegrationFactor + time; - powerSum += powers[channel][globalIndex]; - flagged |= flags[channel][globalIndex]; - } - integratedPowers2D[channel][block] = powerSum; - integratedFlags2D[channel][block] = flagged; - } - } -} - - -// data: [nrChannels][nrStations][nrSamplesPerIntegration | 2][NR_POLARIZATIONS] -void PreCorrelationFlagger::calculatePowers(unsigned station, unsigned pol, FilteredData* filteredData) { - itsTotalPower = 0.0f; - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - fcomplex sample = filteredData->samples[channel][station][time][pol]; - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - itsPowers[channel][time] = power; - itsTotalPower += power; - } - } -} - - -// flags: nrStations -> nrSamplesPerIntegration -void PreCorrelationFlagger::initFlags(unsigned station, FilteredData* filteredData) { - switch(itsFlaggerType) { - case PRE_FLAGGER_THRESHOLD: - // not integrated - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - itsFlags[channel][time] = false; - } - } - - // Use the original coarse flags to initialize the flags. - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - if(filteredData->flags[channel][station].test(time)) { - itsFlags[channel][time] = true; - } - } - } - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY: - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - // The flags of all channels are still the same in the input FilteredData, so we just use channel 1. - // Flags are kept per channel, since we will do online flagging on FilteredData later. - - // fully integrated - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - itsIntegratedFlags[channel] = false; - } - // Use the original coarse flags to initialize the flags. - if(filteredData->flags[itsNrChannels == 1 ? 0 : 1][station].count() > 0) { // We are integrating, so if any sample in time is flagged, everything is flagged. - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - itsIntegratedFlags[channel] = true; - } - } - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD_2D: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY: - // Partially integrated - { - unsigned nrTimes = itsNrSamplesPerIntegration / itsIntegrationFactor; - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for(unsigned block = 0; block < nrTimes; block++) { - itsIntegratedFlags2D[channel][block] = false; - } - } - - // Use the original coarse flags to initialize the flags. - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - if(filteredData->flags[itsNrChannels == 1 ? 0 : 1][station].test(time)) { - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - itsIntegratedFlags2D[channel][time/itsIntegrationFactor] = true; - } - } - } - } - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerType. Skipping online pre correlation flagger."); - return; - } -} - - -void PreCorrelationFlagger::applyFlags(unsigned station, FilteredData* filteredData) { - switch(itsFlaggerType) { - case PRE_FLAGGER_THRESHOLD: - // not integrated - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - if(itsFlags[channel][time]) { - flagSample(filteredData, channel, station, time); - } - } - } - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY: - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD: - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - // fully integrated - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - if(itsIntegratedFlags[channel]) { - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - flagSample(filteredData, channel, station, time); - } - } - } - break; - case PRE_FLAGGER_INTEGRATED_THRESHOLD_2D: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D: - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY: - // Partially integrated - { - unsigned nrTimes = itsNrSamplesPerIntegration / itsIntegrationFactor; - const fcomplex zero = makefcomplex(0, 0); - - for (unsigned channel = 0; channel < itsNrChannels; channel++) { - for(unsigned block = 0; block < nrTimes; block++) { - if(itsIntegratedFlags2D[channel][block]) { - unsigned startIndex = block * itsIntegrationFactor; - - filteredData->flags[channel][station].include(startIndex, startIndex+itsIntegrationFactor); - - for (unsigned time = 0; time < itsIntegrationFactor; time++) { - unsigned globalIndex = block * itsIntegrationFactor + time; - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - filteredData->samples[channel][station][globalIndex][pol] = zero; - } - } - } - } - } - } - break; - default: - LOG_INFO_STR("ERROR, illegal FlaggerType. Skipping online pre correlation flagger."); - return; - } -} - - -void PreCorrelationFlagger::flagSample(FilteredData* filteredData, unsigned channel, unsigned station, unsigned time) { - filteredData->flags[channel][station].include(time); - const fcomplex zero = makefcomplex(0, 0); - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - filteredData->samples[channel][station][time][pol] = zero; - } -} - - -PreCorrelationFlaggerType PreCorrelationFlagger::getFlaggerType(std::string t) { - if (t.compare("THRESHOLD") == 0) { - return PRE_FLAGGER_THRESHOLD; - } else if (t.compare("INTEGRATED_THRESHOLD") == 0) { - return PRE_FLAGGER_INTEGRATED_THRESHOLD; - } else if (t.compare("INTEGRATED_THRESHOLD_2D") == 0) { - return PRE_FLAGGER_INTEGRATED_THRESHOLD_2D; - } else if (t.compare("INTEGRATED_SUM_THRESHOLD") == 0) { - return PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD; - } else if (t.compare("INTEGRATED_SUM_THRESHOLD_WITH_HISTORY") == 0) { - return PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY; - } else if (t.compare("INTEGRATED_SUM_THRESHOLD_2D") == 0) { - return PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D; - } else if (t.compare("INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY") == 0) { - return PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY; - } else if (t.compare("INTEGRATED_SMOOTHED_SUM_THRESHOLD") == 0) { - return PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD; - } else if (t.compare("INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY") == 0) { - return PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY; - } else { - LOG_DEBUG_STR("unknown flagger type, using default THRESHOLD"); - return PRE_FLAGGER_THRESHOLD; - } -} - - -std::string PreCorrelationFlagger::getFlaggerTypeString(PreCorrelationFlaggerType t) { - switch(t) { - case PRE_FLAGGER_THRESHOLD: - return "THRESHOLD"; - case PRE_FLAGGER_INTEGRATED_THRESHOLD: - return "INTEGRATED_THRESHOLD"; - case PRE_FLAGGER_INTEGRATED_THRESHOLD_2D: - return "INTEGRATED_THRESHOLD_2D"; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD: - return "INTEGRATED_SUM_THRESHOLD"; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY: - return "INTEGRATED_SUM_THRESHOLD_WITH_HISTORY"; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D: - return "INTEGRATED_SUM_THRESHOLD_2D"; - case PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY: - return "INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY"; - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD: - return "INTEGRATED_SMOOTHED_SUM_THRESHOLD"; - case PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY: - return "INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY"; - default: - return "ILLEGAL FLAGGER TYPE"; - } -} - - -std::string PreCorrelationFlagger::getFlaggerTypeString() { - return getFlaggerTypeString(itsFlaggerType); -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/PreCorrelationFlagger.h b/RTCP/CNProc/src/PreCorrelationFlagger.h deleted file mode 100644 index 99eebaf503c4ed1b8380b8e4d3fc3786fca0312b..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PreCorrelationFlagger.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef LOFAR_CNPROC_PRE_CORRELATION_FLAGGER_H -#define LOFAR_CNPROC_PRE_CORRELATION_FLAGGER_H - -#include <Flagger.h> -#include <Interface/FilteredData.h> - -namespace LOFAR { -namespace RTCP { - -enum PreCorrelationFlaggerType { - PRE_FLAGGER_THRESHOLD, - - PRE_FLAGGER_INTEGRATED_THRESHOLD, - PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD, - PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_WITH_HISTORY, - - PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD, - PRE_FLAGGER_INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY, - - PRE_FLAGGER_INTEGRATED_THRESHOLD_2D, - PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D, - PRE_FLAGGER_INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY, -}; - -// If we only have few channels (e.g., 16), we have to do 2D flagging, otherwise we don't have enough data to do statistics. -// So, we partially integrate in the time direction. -class PreCorrelationFlagger : public Flagger { - public: - PreCorrelationFlagger(const Parset& parset, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, const unsigned nrSamplesPerIntegration, float cutoffThreshold = 7.0f); - - void flag(FilteredData* filteredData, unsigned currentSubband); - - private: - - // Does simple thresholding. - void integratingThresholdingFlagger(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<bool> &integratedFlags); - - void integratingThresholdingFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, MultiDimArray<bool,2>& integratedFlags2D); - - void integratingSumThresholdFlagger(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<bool> &integratedFlags); - - void integratingSumThresholdFlaggerWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, - vector<bool> &integratedFlags, FlaggerHistory& history); - - void integratingSumThresholdFlagger2D(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, - MultiDimArray<bool,2>& integratedFlags2D); - - void integratingSumThresholdFlagger2DWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, MultiDimArray<bool,2>& integratedFlags2D, - vector<float> &integratedPowers, vector<bool> &integratedFlags, - MultiDimArray<FlaggerHistory, 3>& history, unsigned station, unsigned subband, unsigned pol); - - void integratingSumThresholdFlaggerSmoothed(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<float> &smoothedPowers, vector<float> &powerDiffs, vector<bool> &integratedFlags); - - void integratingSumThresholdFlaggerSmoothedWithHistory(const MultiDimArray<float,2> &powers, MultiDimArray<bool,2>& flags, - vector<float> &integratedPowers, vector<float> &smoothedPowers, vector<float> &powerDiffs, - vector<bool> &integratedFlags, FlaggerHistory& history); - - - void calculatePowers(unsigned station, unsigned pol, FilteredData* filteredData); - void integratePowers(const MultiDimArray<float,2>& powers, MultiDimArray<bool,2>& flags, - vector<float>& integratedPowers, vector<bool>& integratedFlags); - void integratePowers2D(const MultiDimArray<float,2>& powers, MultiDimArray<bool,2>& flags, - MultiDimArray<float,2>& integratedPowers2D, - MultiDimArray<bool,2>& integratedFlags2D); - - - void initFlags(unsigned station, FilteredData* filteredData); - void applyFlags(unsigned station, FilteredData* filteredData); - - void flagSample(FilteredData* filteredData, unsigned channel, unsigned station, unsigned time); - void wipeFlaggedSamples(unsigned station, FilteredData* filteredData); - - PreCorrelationFlaggerType getFlaggerType(std::string t); - std::string getFlaggerTypeString(PreCorrelationFlaggerType t); - std::string getFlaggerTypeString(); - - const PreCorrelationFlaggerType itsFlaggerType; - const unsigned itsNrSamplesPerIntegration; - unsigned itsIntegrationFactor; - - float itsTotalPower; - - MultiDimArray<float,2> itsPowers; // [itsNrChannels][itsNrSamplesPerIntegration] - MultiDimArray<float,2> itsIntegratedPowers2D; // [itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor] - vector<float> itsIntegratedPowers; // [itsNrChannels] - - MultiDimArray<bool,2> itsFlags; // [itsNrChannels][itsNrSamplesPerIntegration] - MultiDimArray<bool,2> itsIntegratedFlags2D; // [itsNrChannels][itsNrSamplesPerIntegration/itsIntegrationFactor] - vector<bool> itsIntegratedFlags; // [itsNrChannels] - - std::vector<float> itsSmoothedIntegratedPowers; // [itsNrChannels] - std::vector<float> itsIntegratedPowerDiffs; // [itsNrChannels] - - MultiDimArray<FlaggerHistory, 3> itsHistory; // [nrStations][nrSubbands][NR_POLARIZATIONS] - -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_PRE_CORRELATION_FLAGGER_H diff --git a/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.cc b/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.cc deleted file mode 100644 index 4567dc478746413c9eb89368a1bf77d425c7b04e..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.cc +++ /dev/null @@ -1,701 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/Timer.h> - -#include <PreCorrelationNoChannelsFlagger.h> - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG -#include <Interface/CN_Mapping.h> -#endif - -/* - Some notes: - - We cannot integrate by adding samples, and then taking the power. We have to calculate the power for each sample, - and then add the powers. - - The history is kept per subband, as we can get different subbands over time on this compute node. - - We always flag poth polarizations seperately, and then take the union. - - An FFT followed by an inverse FFT multiplies all samples by N. Thus, we have to divide by N after we are done. - - We first flag in the frequency direction, as most RFI is narrowband. - Next, we flag in the time direction, while integrating to improve signal-to-noise. - This was empirically verified to work much better than flagging on the raw data. - We can then replace flagged samples with 0s or mean/median values. - - For the flagging in the frequency direction, we do the following: - - - Move over raw data in full time resolution, in chunks of the FFT size. - - Do the FFT. - - Perform bandpass correction. Here, we correct for the bandpass of the station polyphase filter bank. - We found that the ripple introduced by the station PPF can cause many false positives in specific frequencies. - Bandpass correction only is one multiplication, and it completely removes this effect. - - Computer powers of the FFT-ed data. - NOTE, both itsPowers and itsFlagsFrequency are stored in FFTshifted order! - - Add powers of the chunks together to integrate over time, increasing signal-to-noise. - - Flag on the integrated data, using SumThreshold, recording which frequencies are poluted. - We perform two SumThreshold passes: a first pass, and then recalculate statistics while omitting the - flagged data, then second pass with the corrected statistics. - This way, very strong RFI does not polute the stddev, etc. Making more than two passes was emperically found to - improve the result only very slightly, at high computational costs. - - Next, we make another pass on the raw data, to replace flagged samples with corrected values in the full resolution. - - This means: FFT - We have several options here: - * Replace with 0. This removes the RFI, but decreases the total power, and causes jumps in the output signal. - It is therefore undesirable. - * Replace with a sample where the imaginary part is 0, and the real part is the mean of the reals of the unflagged samples - * Replace with a sample where the imaginary part is 0, and the real part is the sqrt of the mean power of the - unflagged samples. - This way, we keep the total signal power the same. This currently is the best method. - * Suggestion, TODO: replace with a random imaginary part, and keep the total power the same. -@@@ replace with median - - Inverse fft. -*/ - -// TODO iteratively change the integration time when flagging in time? Is this really needed? -// SumThreshold already does this by changing the window sizes... -// TODO: for both time and freq, if more than p% of a block is flagged, don't replace with median, but with sample from historical data? -// TODO: keep a history of frequency as well: one history per channel. We can use this both for flagging and replacing samples... - -namespace LOFAR { -namespace RTCP { - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG -static FILE* intermediateOutputFile; -#endif -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG -static FILE* replacedOutputFile; -#endif - - - PreCorrelationNoChannelsFlagger::PreCorrelationNoChannelsFlagger(const Parset& parset, unsigned myPset, unsigned myCoreInPset, - bool correctBandPass, const unsigned nrStations, - const unsigned nrSubbands, const unsigned nrChannels, - const unsigned nrSamplesPerIntegration, - const float cutoffThreshold) -: - Flagger(parset, nrStations, nrSubbands, nrChannels, cutoffThreshold, - /*baseSentitivity*/ 0.6f, // 0.6 was emperically found to be a good setting for LOFAR - getFlaggerStatisticsType(parset.onlinePreCorrelationFlaggingStatisticsType(getFlaggerStatisticsTypeString(FLAGGER_STATISTICS_WINSORIZED)))), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), itsCorrectBandPass(correctBandPass), itsBandPass(correctBandPass, itsFFTSize) -{ - assert(itsNrSamplesPerIntegration % itsFFTSize == 0); - assert(nrChannels == 1); - - itsIntegrationFactor = itsNrSamplesPerIntegration / itsFFTSize; - - LOG_DEBUG_STR("PreCorrelationNoChannelsFlagger: nrSamplesPerIntegration = " << itsNrSamplesPerIntegration << ", fft size = " << itsFFTSize << ", integrationFactor = " << itsIntegrationFactor); - - itsSamples.resize(itsFFTSize); - itsFFTBuffer.resize(itsFFTSize); - - itsPowers.resize(NR_POLARIZATIONS); - itsFlagsFrequency.resize(NR_POLARIZATIONS); - itsFlagsTime.resize(NR_POLARIZATIONS); - for(unsigned pol=0; pol<NR_POLARIZATIONS; pol++) { - itsPowers[pol].resize(itsFFTSize); - itsFlagsFrequency[pol].resize(itsFFTSize); - itsFlagsTime[pol].resize(itsFFTSize); - } - -#if USE_HISTORY_FLAGGER - itsHistory.resize(boost::extents[itsNrStations][nrSubbands]); -#endif - - initFFT(); - - if(itsCorrectBandPass) { - LOG_DEBUG_STR("PreCorrelationNoChannelsFlagger: bandpass correction enabled"); - } else { - LOG_DEBUG_STR("PreCorrelationNoChannelsFlagger: bandpass correction disabled"); - } - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - stringstream intermediateFileName; - intermediateFileName << "/var/scratch/rob/" << myPset << "." << myCoreInPset << ".myIntermediateData"; - intermediateOutputFile = fopen(intermediateFileName.str().c_str(), "w"); - fwrite(&itsNrStations, sizeof(unsigned), 1, intermediateOutputFile); - fwrite(&itsNrSubbands, sizeof(unsigned), 1, intermediateOutputFile); - unsigned tmp = itsFFTSize; - fwrite(&tmp, sizeof(unsigned), 1, intermediateOutputFile); - tmp = NR_POLARIZATIONS; - fwrite(&tmp, sizeof(unsigned), 1, intermediateOutputFile); - fflush(intermediateOutputFile); -#else - // avoid warnings - (void)myPset; - (void)myCoreInPset; -#endif // SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG - stringstream replacedFileName; - replacedFileName << "/var/scratch/rob/" << myPset << "." << myCoreInPset << ".myReplacedData"; - replacedOutputFile = fopen(replacedFileName.str().c_str(), "w"); - fwrite(&itsNrStations, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&itsNrSubbands, sizeof(unsigned), 1, replacedOutputFile); - unsigned tmp2 = itsFFTSize; - fwrite(&tmp2, sizeof(unsigned), 1, replacedOutputFile); - tmp2 = NR_POLARIZATIONS; - fwrite(&tmp2, sizeof(unsigned), 1, replacedOutputFile); - fflush(replacedOutputFile); -#else - // avoid warnings - (void)myPset; - (void)myCoreInPset; -#endif // SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG -} - - -void PreCorrelationNoChannelsFlagger::flag(FilteredData* filteredData, unsigned globalTime, unsigned subband) -{ - NSTimer flaggerTimer("RFI noChannels flagger total", true, true); - - flaggerTimer.start(); - for(unsigned station = 0; station < itsNrStations; station++) { - flagStation(filteredData, globalTime, station, subband); - } - flaggerTimer.stop(); -} - - -void PreCorrelationNoChannelsFlagger::flagStation(FilteredData* filteredData, unsigned globalTime, unsigned station, unsigned subband) -{ - NSTimer flaggerTimeTimer("RFI noChannels time flagger", true, true); - NSTimer flaggerFrequencyTimer("RFI noChannels frequency flagger", true, true); - - -#if FLAG_IN_FREQUENCY_DIRECTION - flaggerFrequencyTimer.start(); - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - // init frequency flags - for (unsigned i = 0; i < itsFFTSize; i++) { - itsFlagsFrequency[pol][i] = false; - } - - calcIntegratedPowersFrequency(filteredData, station, subband, pol); - - // Flag twice, the second time with corrected statistics - sumThresholdFlagger1D(itsPowers[pol], itsFlagsFrequency[pol], itsBaseSensitivity); - sumThresholdFlagger1D(itsPowers[pol], itsFlagsFrequency[pol], itsBaseSensitivity); - } - - // Compute the union of flags of the polarizations - takeUnionOfFlags(itsFlagsFrequency); - - // Scale-Invariant-Rank operator, to expand the flagged windows a bit, and to fill in the holes. - unsigned flaggedCountFrequency = SIROperator(itsFlagsFrequency[0], 0.4f); - - LOG_DEBUG_STR("samples flagged in frequency: " << flaggedCountFrequency); - - if(flaggedCountFrequency == itsFFTSize) { - LOG_DEBUG_STR("all samples flagged in frequency!"); - } - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - saveIntermediate(globalTime, station, subband, pol, false); - } -#endif - -#if 0 -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG - // do forward FFT; fix samples; backward FFT on the original samples in full resolution - applyFlagsFrequency(filteredData, globalTime, station, subband, flaggedCountFrequency); -#else - if(flaggedCountFrequency > 0) { - // do forward FFT; fix samples; backward FFT on the original samples in full resolution - applyFlagsFrequency(filteredData, station, subband, flaggedCountFrequency); - } -#endif -#endif - flaggerFrequencyTimer.stop(); -#endif // FLAG_IN_FREQUENCY_DIRECTION - - -#if FLAG_IN_TIME_DIRECTION - flaggerTimeTimer.start(); - initFlagsTime(filteredData, station); // copy flags to my local format - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - calcIntegratedPowersTime(filteredData, station, subband, pol); - sumThresholdFlagger1D(itsPowers[pol], itsFlagsTime[pol], itsBaseSensitivity); // Flag in time direction. - sumThresholdFlagger1D(itsPowers[pol], itsFlagsTime[pol], itsBaseSensitivity); // Flag twice, the second time with corrected statistics. - } - - takeUnionOfFlags(itsFlagsTime); - - // Scale-Invariant-Rank operator, to expand the flagged windows a bit, and to fill in the holes. - unsigned flaggedCountTime = SIROperator(itsFlagsTime[0], 0.4f); - - LOG_DEBUG_STR("samples flagged in time: " << flaggedCountTime); - -#if USE_HISTORY_FLAGGER - if(flaggedCountTime < itsFFTSize) { // If everything was already flagged, skip this entirely. - // TODO just compute mean inline here, we don't need median and stddev - float mean0, median0, stdDev0, mean1, median1, stdDev1; - calculateWinsorizedStatistics(itsPowers[0], itsFlagsTime[0], mean0, median0, stdDev0); - calculateWinsorizedStatistics(itsPowers[1], itsFlagsTime[0], mean1, median1, stdDev1); // take flags at index 0, they are unified. - - // I have empirically found that the mean of the unflagged samples is a better predictor than the median, for history flagging at least. - if(addToHistory((mean0 + mean1)/(2.0f * itsIntegrationFactor) /*meanPower*/, itsHistory[station][subband], 10.0f)) { - LOG_DEBUG_STR("History flagger flagged this second " << globalTime << " for station " << station << " subband " << subband); - for(unsigned i=0; i<itsFFTSize; i++) { - itsFlagsTime[0][i] = true; - } - flaggedCountTime = itsFFTSize; - } - } -#endif // USE_HISTORY_FLAGGER - - if(flaggedCountTime > 0) { - // copy flags from my original format into FilteredData again. - applyFlagsTime(filteredData, station, subband, flaggedCountTime); - } - - flaggerTimeTimer.stop(); -#endif -} - - -void PreCorrelationNoChannelsFlagger::calcIntegratedPowersFrequency(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol) -{ - (void) subband; // avoids compiler warning - - memset(&itsPowers[pol][0], 0, itsFFTSize * sizeof(float)); - - for(unsigned block=0; block<itsIntegrationFactor; block++) { - unsigned startIndex = block * itsFFTSize; - - for(unsigned minorTime=0; minorTime<itsFFTSize; minorTime++) { - itsSamples[minorTime] = filteredData->samples[0][station][startIndex + minorTime][pol]; - } - - forwardFFT(); - - for (unsigned i = 0; i < itsFFTSize; i++) { // compute powers from FFT-ed data - unsigned fftShiftedPos = ((itsFFTSize / 2) + i) % itsFFTSize; - fcomplex sample = itsFFTBuffer[i]; - if (itsCorrectBandPass) { - sample *= itsBandPass.correctionFactors()[fftShiftedPos]; // do not just use index i, we do an FFTshift... - } - - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - itsPowers[pol][fftShiftedPos] += power; - } - } -} - - -void PreCorrelationNoChannelsFlagger::calcIntegratedPowersTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol) -{ - (void) subband; // avoids compiler warning - - memset(&itsPowers[pol][0], 0, itsFFTSize * sizeof(float)); - - for(unsigned t=0; t<itsNrSamplesPerIntegration; t++) { - fcomplex sample = filteredData->samples[0][station][t][pol]; - itsPowers[pol][t/itsIntegrationFactor] += real(sample) * real(sample) + imag(sample) * imag(sample); - } -} - - -void PreCorrelationNoChannelsFlagger::initFlagsTime(FilteredData* filteredData, unsigned station) -{ - for (unsigned pol=0; pol < NR_POLARIZATIONS; pol++) { - for (unsigned i = 0; i < itsFFTSize; i++) { - itsFlagsTime[pol][i] = false; - } - } - - // Use the original flags to initialize the flags. - // This could be done much faster by just iterating over the windows in the sparse flags set. - for (unsigned time = 0; time < itsNrSamplesPerIntegration; time++) { - if(filteredData->flags[0][station].test(time)) { - for (unsigned pol=0; pol < NR_POLARIZATIONS; pol++) { - itsFlagsTime[pol][time/itsIntegrationFactor] = true; - } - } - } -} - - -// Do forward FFT; fix samples; backward FFT on the original samples in full resolution. Flags are already set in itsFlagsFrequency. -// FFT followed by an inverse FFT multiplies all samples by N. Thus, we have to divide by N after we are done. -// NOTE, itsFlagsFrequency are stored in FFTshifted order! -void PreCorrelationNoChannelsFlagger::applyFlagsFrequency(FilteredData* filteredData, unsigned globalTime, unsigned station, unsigned subband, unsigned nrFlaggedSamples) -{ -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG - std::vector<float> tmp; - tmp.resize(itsFFTSize); - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - tmp[minorTime] = 0.0f; - } -#endif - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - for (unsigned majorTime = 0; majorTime < itsIntegrationFactor; majorTime++) { - unsigned startIndex = majorTime * itsFFTSize; - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - itsSamples[minorTime] = filteredData->samples[0][station][startIndex+minorTime][pol]; - } - forwardFFT(); - - fcomplex replacementValue = computeReplacementValueFrequency(station, subband, pol, nrFlaggedSamples); - - // Replace all flagged samples. - // Note, the flags are stored in the order of the real frequencies (ie. FFTshifted). - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - unsigned fftShiftedPos = ((itsFFTSize / 2) + minorTime) % itsFFTSize; - if(itsFlagsFrequency[0][fftShiftedPos]) { - itsFFTBuffer[minorTime] = replacementValue; - if (itsCorrectBandPass) { - itsFFTBuffer[minorTime] /= itsBandPass.correctionFactors()[fftShiftedPos]; - } - } - } - -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG - for(unsigned c=0; c<itsFFTSize; c++) { - fcomplex sample = itsFFTBuffer[c]; - unsigned fftShiftedPos = ((itsFFTSize / 2) + c) % itsFFTSize; - if (itsCorrectBandPass) { - sample *= itsBandPass.correctionFactors()[fftShiftedPos]; // do not just use index i, we do an FFTshift... - } - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - tmp[fftShiftedPos] += power; - } -#endif - - backwardFFT(); - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - // FFT followed by an inverse FFT multiplies all samples by N. Thus, we have to divide by N after we are done. - filteredData->samples[0][station][startIndex+minorTime][pol] = makefcomplex(real(itsSamples[minorTime]) / itsFFTSize, imag(itsSamples[minorTime]) / itsFFTSize); - } - } - -#if SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG - unsigned tmpu = true; - fwrite(&tmpu, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&globalTime, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&station, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&pol, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&subband, sizeof(unsigned), 1, replacedOutputFile); - fwrite(&tmp[0], itsFFTSize * sizeof(float), 1, replacedOutputFile); - fflush(replacedOutputFile); -#endif - } -} - - -// I found that time replacement occasionally (only 1x in our dataset) replaces with values that are too high, if some samples were not flagged correctly. -// So, as a sanity check, we verify replacement value against history? -// replace samples. This can be removed if the beamformer / pulsar pipeline correctly handles flags for stokesI. -void PreCorrelationNoChannelsFlagger::applyFlagsTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned nrFlaggedSamples) -{ - filteredData->resetFlags(); // Wipe original flags - - // include data in orgiginal flags - for (unsigned i = 0; i < itsFFTSize; i++) { - if(itsFlagsTime[0][i]) { - unsigned startIndex = i * itsIntegrationFactor; - filteredData->flags[0][station].include(startIndex, startIndex+itsIntegrationFactor); - } - } - - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) { - fcomplex replacementValue = computeReplacementValueTime(filteredData, station, subband, pol, nrFlaggedSamples); - - // and replace - for (unsigned i = 0; i < itsFFTSize; i++) { - if(itsFlagsTime[0][i]) { - unsigned startIndex = i * itsIntegrationFactor; - for(unsigned pos = startIndex; pos < startIndex+itsIntegrationFactor; pos++) { - filteredData->samples[0][station][pos][pol] = replacementValue; - } - } - } - } -} - - -fcomplex PreCorrelationNoChannelsFlagger::computeReplacementValueFrequency(unsigned station, unsigned subband, unsigned pol, unsigned nrFlaggedSamples) -{ -#if REPLACEMENT_METHOD == REPLACE_WITH_ZERO - (void) station; (void) subband; (void) pol; (void) nrFlaggedSamples; // prevent compiler warning - return makefcomplex(0.0f, 0.0f); - -#elif REPLACEMENT_METHOD == REPLACE_WITH_MEAN - // take the mean power of unflagged samples, and create a sample where the total power is the same, with imag=0 - (void) station; (void) subband; (void) pol; // prevent compiler warning - float meanPower = 0.0f; - for(unsigned i=0; i < itsFFTSize; i++) { - if(!itsFlagsFrequency[0][i]) { // The union of the flags for both polarizations is at index 0 - meanPower += power(itsFFTBuffer[i]); - } - } - meanPower /= (itsFFTSize - nrFlaggedSamples); - return makefcomplex(sqrtf(meanPower), 0.0f); - -#elif REPLACEMENT_METHOD == REPLACE_WITH_RANDOM - // take a random, unflagged sample. - (void) station; (void) subband; (void) pol; (void) nrFlaggedSamples; // prevent compiler warning - fcomplex replacementValue = makefcomplex(0.0f, 0.0f); - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - unsigned fftShiftedPos = ((itsFFTSize / 2) + minorTime) % itsFFTSize; - if(!itsFlagsFrequency[0][fftShiftedPos]) { // The union of the flags for both polarizations is at index 0 - replacementValue = itsFFTBuffer[minorTime]; - if (itsCorrectBandPass) { - replacementValue *= itsBandPass.correctionFactors()[fftShiftedPos]; - } - return replacementValue; - } - } - LOG_DEBUG_STR("replace frequency random: no unflagged samples, returning zero"); - return replacementValue; - -#elif REPLACEMENT_METHOD == REPLACE_WITH_MEDIAN - // Take median of unflagged samples. - (void) station; (void) subband; (void) pol; (void) nrFlaggedSamples; // prevent compiler warning - fcomplex replacementValue = makefcomplex(0.0f, 0.0f); - std::vector<float> powers; - powers.resize(itsFFTSize); - for (unsigned i = 0; i < itsFFTSize; i++) { // compute powers from FFT-ed data - unsigned fftShiftedPos = ((itsFFTSize / 2) + i) % itsFFTSize; - fcomplex sample = itsFFTBuffer[i]; - float power = real(sample) * real(sample) + imag(sample) * imag(sample); - if (itsCorrectBandPass) { - sample *= itsBandPass.correctionFactors()[fftShiftedPos]; // do not just use index i, we do an FFTshift... - } - - powers[fftShiftedPos] = power; - } - float median; - unsigned medianIndex = calculateMedian(powers, itsFlagsFrequency[0], median); - unsigned fftUnshiftedPos = ((itsFFTSize / 2) + medianIndex) % itsFFTSize; // undo fft shift, only works if fft size is even - assert(!itsFlagsFrequency[0][medianIndex]); - replacementValue = itsFFTBuffer[fftUnshiftedPos]; - if (itsCorrectBandPass) { - replacementValue *= itsBandPass.correctionFactors()[medianIndex]; - } - - return replacementValue; -#else -#error unsupported replacement method -#endif -} - - -fcomplex PreCorrelationNoChannelsFlagger::computeReplacementValueTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol, unsigned nrFlaggedSamples) -{ -#if REPLACEMENT_METHOD == REPLACE_WITH_ZERO - (void) station; (void) subband; (void) pol; (void) nrFlaggedSamples; // prevent compiler warning - return makefcomplex(0.0f, 0.0f); - -#elif REPLACEMENT_METHOD == REPLACE_WITH_MEAN - float meanPower = 0.0f; - if(nrFlaggedSamples == itsFFTSize) { -#if USE_HISTORY_FLAGGER - return computeReplacementValueFromHistoryTime(station, subband); -#else - return makefcomplex(0.0f, 0.0f); -#endif - } else { - // compute mean power of the unflagged samples - for(unsigned i=0; i < itsFFTSize; i++) { - if(!itsFlagsTime[0][i]) { // The union of the flags for both polarizations is at index 0 - meanPower += itsPowers[pol][i]; - } - } - meanPower /= (itsFFTSize - nrFlaggedSamples) * itsIntegrationFactor; - } - - meanPower = sqrtf(meanPower); - fcomplex replacementValue = makefcomplex(meanPower, 0.0f); - return replacementValueTimeSanityCheck(station, subband, replacementValue); - -#elif REPLACEMENT_METHOD == REPLACE_WITH_RANDOM - if(nrFlaggedSamples == itsFFTSize) { -#if USE_HISTORY_FLAGGER - return computeReplacementValueFromHistoryTime(station, subband); -#else - return makefcomplex(0.0f, 0.0f); -#endif - } else { - // replace with random (or first) sample of random (first) non-flagged block - fcomplex replacementValue = makefcomplex(0.0f, 0.0f); - for (unsigned i = 0; i < itsFFTSize; i++) { - if(!itsFlagsTime[0][i]) { - replacementValue = filteredData->samples[0][station][i*itsIntegrationFactor][pol]; - break; - } - } - return replacementValueTimeSanityCheck(station, subband, replacementValue); - } - -#elif REPLACEMENT_METHOD == REPLACE_WITH_MEDIAN - if(nrFlaggedSamples == itsFFTSize) { -#if USE_HISTORY_FLAGGER - return computeReplacementValueFromHistoryTime(station, subband); -#else - return makefcomplex(0.0f, 0.0f); -#endif - } else { - // replace with median of random (or first) non-flagged block - fcomplex replacementValue = makefcomplex(0.0f, 0.0f); - for (unsigned i = 0; i < itsFFTSize; i++) { - if(!itsFlagsTime[0][i]) { - std::vector<float> samples; - samples.resize(itsIntegrationFactor); - unsigned startIndex = i*itsIntegrationFactor; - for(unsigned s=0; s<itsIntegrationFactor; s++) { - samples[s] = power(filteredData->samples[0][station][startIndex + s][pol]); - } - float median; - int medianIndex = calculateMedian(samples, median); - replacementValue = filteredData->samples[0][station][startIndex + medianIndex][pol]; - break; - } - } - return replacementValueTimeSanityCheck(station, subband, replacementValue); - } -#else -#error not supported -#endif -} - - -#if USE_HISTORY_FLAGGER -// This is used in two cases: -// - If all samples are flagged, either by the time flagger, or by the historical flagger. -// - If the sanity check is triggered beacuse the computed replacement is very high compared to the history. -// In both cases, we cannot compute a (good) median of the non-flagged data in this block. -// So, we take a previous value from the history. -fcomplex PreCorrelationNoChannelsFlagger::computeReplacementValueFromHistoryTime(unsigned station, unsigned subband) -{ - LOG_DEBUG_STR("replace time: replacing with historic data"); - float meanOfMeanPower = itsHistory[station][subband].getMean(); - return makefcomplex(sqrtf(meanOfMeanPower), 0.0f); -} -#endif // USE_HISTORY_FLAGGER - - -fcomplex PreCorrelationNoChannelsFlagger::replacementValueTimeSanityCheck(unsigned station, unsigned subband, fcomplex replacementValue) -{ -#if USE_HISTORY_FLAGGER - float meanOfMeanPower = itsHistory[station][subband].getMean(); - float stdDev = itsHistory[station][subband].getStdDev(); - - if(power(replacementValue) > meanOfMeanPower /*+ 7.0f * stdDev*/) { - // Replace with meanPower from history. - LOG_DEBUG_STR("sanity check time flagger, station: " << station << ", subband: " << subband - << ", replacement: " << power(replacementValue) << ", mean history power: " << meanOfMeanPower << ", history stddev: " << stdDev); - return computeReplacementValueFromHistoryTime(station, subband); - } else { - LOG_DEBUG_STR("sanity check time flagger NOT triggered"); - } -#endif // USE_HISTORY_FLAGGER - - if(replacementValue == makefcomplex(0.0f, 0.0f)) { - LOG_DEBUG_STR("time flagger replaces with zero, station: " << station << ", subband: " << subband); - } - return replacementValue; -} - - -unsigned PreCorrelationNoChannelsFlagger::takeUnionOfFlags(vector<vector<bool> >& flags) -{ - // Compute the union of flags of the polarizations. - unsigned flaggedCount = 0; - for(unsigned minorTime=0; minorTime < itsFFTSize; minorTime++) { - for(unsigned pol=1; pol<NR_POLARIZATIONS; pol++) { - flags[0][minorTime] = flags[0][minorTime] | flags[pol][minorTime]; - } - if(flags[0][minorTime]) { - flaggedCount++; - } - } - - return flaggedCount; -} - - -void PreCorrelationNoChannelsFlagger::initFFT() -{ -#if defined HAVE_FFTW3 - itsFFTWforwardPlan = fftwf_plan_dft_1d(itsFFTSize, (fftwf_complex *) &itsSamples[0], (fftwf_complex *) &itsFFTBuffer[0], FFTW_FORWARD, FFTW_MEASURE); - itsFFTWbackwardPlan = fftwf_plan_dft_1d(itsFFTSize, (fftwf_complex *) &itsFFTBuffer[0], (fftwf_complex *) &itsSamples[0], FFTW_FORWARD, FFTW_MEASURE); -#elif defined HAVE_FFTW2 - itsFFTWforwardPlan = fftw_create_plan(itsFFTSize, FFTW_FORWARD, FFTW_ESTIMATE); - itsFFTWbackwardPlan = fftw_create_plan(itsFFTSize, FFTW_BACKWARD, FFTW_ESTIMATE); -#endif -} - - -void PreCorrelationNoChannelsFlagger::forwardFFT() -{ -#if defined HAVE_FFTW3 - fftwf_execute(itsFFTWforwardPlan); -#elif defined HAVE_FFTW2 - fftw_one(itsFFTWforwardPlan, (fftw_complex *) &itsSamples[0], (fftw_complex *) &itsFFTBuffer[0]); -#endif -} - - -void PreCorrelationNoChannelsFlagger::backwardFFT() -{ -#if defined HAVE_FFTW3 - fftwf_execute(itsFFTWbackwardPlan); -#elif defined HAVE_FFTW2 - fftw_one(itsFFTWbackwardPlan,( fftw_complex *) &itsFFTBuffer[0], (fftw_complex *) &itsSamples[0]); -#endif -} - - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG -void PreCorrelationNoChannelsFlagger::saveIntermediate(unsigned globalTime, unsigned station, unsigned subband, unsigned pol, bool isFlagged) -{ - unsigned tmp = isFlagged; - fwrite(&tmp, sizeof(unsigned), 1, intermediateOutputFile); - fwrite(&globalTime, sizeof(unsigned), 1, intermediateOutputFile); - fwrite(&station, sizeof(unsigned), 1, intermediateOutputFile); - fwrite(&pol, sizeof(unsigned), 1, intermediateOutputFile); - fwrite(&subband, sizeof(unsigned), 1, intermediateOutputFile); - - for(unsigned c=0; c<itsFFTSize; c++) { - float val = (isFlagged && itsFlagsFrequency[pol][c]) ? -1.0f : itsPowers[pol][c]; - fwrite(&val, sizeof(float), 1, intermediateOutputFile); - } - - fflush(intermediateOutputFile); -} -#endif // OUTPUT_REAL_TIME_FLAGGER_DEBUG - - -PreCorrelationNoChannelsFlagger::~PreCorrelationNoChannelsFlagger() -{ -#if defined HAVE_FFTW3 - if(itsFFTWforwardPlan != 0) { - fftwf_destroy_plan(itsFFTWforwardPlan); - } - if(itsFFTWbackwardPlan != 0) { - fftwf_destroy_plan(itsFFTWbackwardPlan); - } -#else - if(itsFFTWforwardPlan != 0) { - fftw_destroy_plan(itsFFTWforwardPlan); - } - if(itsFFTWbackwardPlan != 0) { - fftw_destroy_plan(itsFFTWbackwardPlan); - } -#endif - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - fclose(intermediateOutputFile); -#endif -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - fclose(replacedOutputFile); -#endif -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.h b/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.h deleted file mode 100644 index 7f87b03b7612d869915839f022ed52e8c13a5d11..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/PreCorrelationNoChannelsFlagger.h +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef LOFAR_CNPROC_PRE_CORRELATION_NO_CHANNELS_FLAGGER_H -#define LOFAR_CNPROC_PRE_CORRELATION_NO_CHANNELS_FLAGGER_H - -#include <Flagger.h> -#include <BandPass.h> -#include <Interface/FilteredData.h> - -#if defined HAVE_FFTW3 -#include <fftw3.h> -#elif defined HAVE_FFTW2 -#include <fftw.h> -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -namespace LOFAR { -namespace RTCP { - -#define SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG 1 -#define SAVE_REAL_TIME_FLAGGER_REPLACED_DEBUG 1 - -#define FLAG_IN_TIME_DIRECTION 0 -#define FLAG_IN_FREQUENCY_DIRECTION 1 -#define USE_HISTORY_FLAGGER 1 - -#define REPLACE_WITH_ZERO 0 -#define REPLACE_WITH_MEAN 1 -#define REPLACE_WITH_RANDOM 2 -#define REPLACE_WITH_MEDIAN 3 - -// Choose a way to replace missing data. -#define REPLACEMENT_METHOD REPLACE_WITH_MEDIAN - -// Integrate in time until we have itsFFTSize elements. -// Flag on that in time direction. -// Next, do FFT, flag in frequency direction, replace samples with median, inverseFFT. -class PreCorrelationNoChannelsFlagger : public Flagger { -public: - PreCorrelationNoChannelsFlagger(const Parset& parset, unsigned myPset, unsigned myCoreInPset, - bool correctBandPass, const unsigned nrStations, const unsigned nrSubbands, const unsigned nrChannels, - const unsigned nrSamplesPerIntegration, float cutoffThreshold = 7.0f); - - void flag(FilteredData* filteredData, unsigned globalTime, unsigned currentSubband); - - ~PreCorrelationNoChannelsFlagger(); - -private: - - static const unsigned itsFFTSize = 256; - - const unsigned itsNrSamplesPerIntegration; - unsigned itsIntegrationFactor; - - void flagStation(FilteredData* filteredData, unsigned globalTime, unsigned station, unsigned subband); - void calcIntegratedPowersTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol); - void calcIntegratedPowersFrequency(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol); - - void initFlagsTime(FilteredData* filteredData, unsigned station); - void applyFlagsTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned flaggedCountTime); - void applyFlagsFrequency(FilteredData* filteredData, unsigned globalTime, unsigned station, unsigned subband, unsigned flaggedCountFrequency); - unsigned takeUnionOfFlags(vector<vector<bool> >& flags); - - fcomplex computeReplacementValueTime(FilteredData* filteredData, unsigned station, unsigned subband, unsigned pol, unsigned nrFlaggedSamples); - fcomplex replacementValueTimeSanityCheck(unsigned station, unsigned subband, fcomplex replacementValue); - -#if USE_HISTORY_FLAGGER - fcomplex computeReplacementValueFromHistoryTime(unsigned station, unsigned subband); -#endif - - fcomplex computeReplacementValueFrequency(unsigned station, unsigned subband, unsigned pol, unsigned nrFlaggedSamples); - -#if SAVE_REAL_TIME_FLAGGER_INTERMEDIATE_DEBUG - void saveIntermediate(unsigned globalTime, unsigned station, unsigned subband, unsigned pol, bool isFlagged); -#endif - - void initFFT(); - void forwardFFT(); - void backwardFFT(); - - vector<fcomplex> itsSamples; // [itsFFTSize] - vector<vector<float> >itsPowers; // [NR_POLARIZATIONS][itsFFTSize] - vector<fcomplex> itsFFTBuffer; // [itsFFTSize] - vector<vector<bool> >itsFlagsTime; // [NR_POLARIZATIONS][itsFFTSize] - vector<vector<bool> > itsFlagsFrequency; // [NR_POLARIZATIONS][itsFFTSize] - -#if defined HAVE_FFTW3 - fftwf_plan itsFFTWforwardPlan, itsFFTWbackwardPlan; -#elif defined HAVE_FFTW2 - fftw_plan itsFFTWforwardPlan, itsFFTWbackwardPlan; -#endif - -#if USE_HISTORY_FLAGGER - MultiDimArray<FlaggerHistory, 2> itsHistory; // [nrSations][nrSubbands] -#endif - - bool itsCorrectBandPass; - BandPass itsBandPass; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_CNPROC_PRE_CORRELATION_NO_CHANNELS_FLAGGER_H diff --git a/RTCP/CNProc/src/Ring.h b/RTCP/CNProc/src/Ring.h deleted file mode 100644 index 469944c9603bdd6e8072cd2da8afd71b4af6823d..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Ring.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef LOFAR_CNPROC_RING_H -#define LOFAR_CNPROC_RING_H - -namespace LOFAR { -namespace RTCP { - -#include <vector> - -/* - * Ring handles a ring of subbands or beams to be processed by a compute node. - * - * pset: the pset index of this node - * numperpset: the number of subbands or beams to be processed per pset - * core: the core index of this node - * numcores: the number of cores per pset (that will be used) - */ - -class Ring -{ - public: - Ring(unsigned pset, unsigned numperpset, unsigned core, unsigned numcores); - - // emulate a cast to (unsigned) for ease of use, and add a few shorthands - operator unsigned () const; - - void next(); - - // returns the relative core number within this pset to process this 'second' of data - unsigned relative() const; - - // is the current element the last to be processed for this 'second' of data? - bool isLast() const; - - // list the elements to process - std::vector<unsigned> list() const; - - const unsigned pset; - const unsigned core; - - const unsigned numperpset; - const unsigned numcores; - - const unsigned first; - const unsigned last; - const unsigned increment; - - void skipFirstBlocks(size_t n); - - private: - unsigned current; -}; - - -inline Ring::Ring(unsigned pset, unsigned numperpset, unsigned core, unsigned numcores) -: - pset(pset), - core(core), - numperpset(numperpset), - numcores(numcores), - first(pset * numperpset), - last((pset + 1) * numperpset), - increment(numcores % numperpset), - current(first + core % numperpset) -{ -} - - -inline Ring::operator unsigned () const -{ - return current; -} - - -inline void Ring::next() -{ - if ((current += increment) >= last) - current -= last - first; -} - - -inline unsigned Ring::relative() const -{ - return current - first; -} - - -inline std::vector<unsigned> Ring::list() const -{ - std::vector<unsigned> list; - - for (Ring copy = *this; list.empty() || copy.current != current; copy.next()) - list.push_back(copy); - - return list; -} - - -inline bool Ring::isLast() const -{ - return current + increment >= last || numcores >= numperpset; -} - -inline void Ring::skipFirstBlocks(size_t n) -{ - // TODO: extend towards skipping from any position - - for( unsigned b = 0, activecore = 0; b < n; b++ ) { - for (unsigned sb = 0; sb < numperpset; sb++) { - if (activecore == core) - next(); - - if (++activecore == numcores) - activecore = 0; - } - } -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/Stokes.cc b/RTCP/CNProc/src/Stokes.cc deleted file mode 100644 index 7a6162ad74d67c4999fbb50e2d3e6d18d21c5e09..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Stokes.cc +++ /dev/null @@ -1,343 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Stokes.h> -#include <Interface/MultiDimArray.h> -#include <Common/LofarLogger.h> - -template <typename T> static inline T sqr(const T x) { return x * x; } - -#if defined STOKES_C_IMPLEMENTATION -static void inline _StokesIQUV( - float *I, float *Q, float *U, float *V, - const LOFAR::fcomplex (*XY)[2], - unsigned length) -{ - for (unsigned i = 0; i < length; i ++, I ++, Q ++, U ++, V ++, XY ++) { - LOFAR::fcomplex polX = (*XY)[0]; - LOFAR::fcomplex polY = (*XY)[1]; - float powerX = sqr(real(polX)) + sqr(imag(polX)); - float powerY = sqr(real(polY)) + sqr(imag(polY)); - - *I = powerX + powerY; - *Q = powerX - powerY; - *U = 2 * real(polX * conj(polY)); - *V = 2 * imag(polX * conj(polY)); - } -} - -static void inline _StokesI( - float *I, - const LOFAR::fcomplex (*XY)[2], - unsigned length) -{ - for (unsigned i = 0; i < length; i ++, I ++, XY ++) { - LOFAR::fcomplex polX = (*XY)[0]; - LOFAR::fcomplex polY = (*XY)[1]; - float powerX = sqr(real(polX)) + sqr(imag(polX)); - float powerY = sqr(real(polY)) + sqr(imag(polY)); - - *I = powerX + powerY; - } -} -#else -#include <StokesAsm.h> -#endif - -namespace LOFAR { -namespace RTCP { - -Stokes::Stokes(unsigned nrChannels, unsigned nrSamples) -: - itsNrChannels(nrChannels), - itsNrSamples(nrSamples) -{ -} -CoherentStokes::CoherentStokes(unsigned nrChannels, unsigned nrSamples) -: - Stokes(nrChannels, nrSamples) -{ -} - -IncoherentStokes::IncoherentStokes(unsigned nrChannels, unsigned nrSamples, unsigned nrStations, unsigned maxChannelIntegrations, DedispersionBeforeBeamForming *dedispersion, Allocator &allocator) -: - Stokes(nrChannels, nrSamples), - itsAllocator(allocator), - itsDedispersedData(dedispersion ? new FilteredData(nrStations, maxChannelIntegrations, itsNrSamples, allocator) : 0), - itsDedispersion(dedispersion), - itsMaxChannelIntegrations(maxChannelIntegrations) -{ -} - -// Calculate coherent stokes values from pencil beams. -template <bool ALLSTOKES> void CoherentStokes::calculate(const SampleData<> *sampleData, PreTransposeBeamFormedData *stokesData, unsigned inbeam, const StreamInfo &info) -{ - // TODO: divide by #valid stations - ASSERT(sampleData->samples.shape()[0] > inbeam); - ASSERT(sampleData->samples.shape()[1] == itsNrChannels); - ASSERT(sampleData->samples.shape()[2] >= itsNrSamples); - ASSERT(sampleData->samples.shape()[3] == NR_POLARIZATIONS); - - const unsigned &timeIntegrations = info.timeIntFactor; - const unsigned channelIntegrations = itsNrChannels / info.nrChannels; - -#ifndef STOKES_C_IMPLEMENTATION - // restrictions demanded by assembly routines - ASSERT(itsNrSamples % 4 == 0); - ASSERT(itsNrSamples >= 8); -#endif - - // process flags - for(unsigned ch = 0; ch < info.nrChannels; ch++) { - stokesData->flags[ch].reset(); - } - for(unsigned ch=0; ch < itsNrChannels; ch++) { - stokesData->flags[ch/channelIntegrations] |= sampleData->flags[inbeam][ch]; - stokesData->flags[ch/channelIntegrations] /= timeIntegrations; - } - - // process data - const boost::detail::multi_array::const_sub_array<fcomplex,3> &in = sampleData->samples[inbeam]; - MultiDimArray<float,3> &out = stokesData->samples; - - if (timeIntegrations <= 1 && channelIntegrations <= 1) { - for (unsigned ch = 0; ch < itsNrChannels; ch ++) { - if (ALLSTOKES) { - _StokesIQUV(&out[0][ch][0], - &out[1][ch][0], - &out[2][ch][0], - &out[3][ch][0], - reinterpret_cast<const fcomplex (*)[2]>(&in[ch][0][0]), - itsNrSamples); - } else { - _StokesI( &out[0][ch][0], - reinterpret_cast<const fcomplex (*)[2]>(&in[ch][0][0]), - itsNrSamples); - } - } - } else { - // process per channel, as there are |2 samples between them, and _StokesI* routines only - // takes multiples of 4. - Cube<float> stokes(channelIntegrations, ALLSTOKES ? 4 : 1, itsNrSamples); - - for (unsigned ch = 0; ch < itsNrChannels; ch += channelIntegrations) { - if (ALLSTOKES) { - for (unsigned c = 0; c < channelIntegrations; c++) - _StokesIQUV(&stokes[c][0][0], - &stokes[c][1][0], - &stokes[c][2][0], - &stokes[c][3][0], - reinterpret_cast<const fcomplex (*)[2]>(&in[ch][0][0]), - itsNrSamples); - - // integrate - unsigned outchnum = ch / channelIntegrations; - - float *outch[4] = { - &out[0][outchnum][0], - &out[1][outchnum][0], - &out[2][outchnum][0], - &out[3][outchnum][0] - }; - - for (unsigned i = 0; i < itsNrSamples;) { - float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; - - for (unsigned j = 0; j < timeIntegrations; j ++) { - for (unsigned c = 0; c < channelIntegrations; c ++) { - for (unsigned s = 0; s < 4; s ++) - acc[s] += stokes[c][s][i]; - } - - i++; - } - - for (unsigned s = 0; s < 4; s ++) - *(outch[s]++) = acc[s]; - } - } else { - for (unsigned c = 0; c < channelIntegrations; c ++) - _StokesI(&stokes[c][0][0], - reinterpret_cast<const fcomplex (*)[2]>(&in[ch][0][0]), - itsNrSamples); - - // integrate - float *outch = &out[0][ch / channelIntegrations][0]; - - for (unsigned i = 0; i < itsNrSamples;) { - float acc = 0.0f; - - for (unsigned j = 0; j < timeIntegrations; j ++) { - for (unsigned c = 0; c < channelIntegrations; c ++) - acc += stokes[c][0][i]; - - i ++; - } - - *(outch ++) = acc; - } - } - } - } -} - -template void CoherentStokes::calculate<true>(const SampleData<> *, PreTransposeBeamFormedData *, unsigned, const StreamInfo&); -template void CoherentStokes::calculate<false>(const SampleData<> *, PreTransposeBeamFormedData *, unsigned, const StreamInfo&); - -template <bool ALLSTOKES> struct stokes { - // the sums of stokes values over a number of stations or beams -}; - -template<> struct stokes<true> { - double i, q, u, v; - - stokes(): i(0.0), q(0.0), u(0.0), v(0.0) {} - - double &I() { return i; } - double &Q() { return q; } - double &U() { return u; } - double &V() { return v; } -}; - -template<> struct stokes<false> { - double i; - - stokes(): i(0.0) {} - - double &I() { return i; } - double &Q() { return i; } - double &U() { return i; } - double &V() { return i; } -}; - -// compute Stokes values, and add them to an existing stokes array -template <bool ALLSTOKES> static inline void addStokes(struct stokes<ALLSTOKES> &stokes, const LOFAR::fcomplex (*XY)[2], unsigned nrIntegrations = 1) -{ - // assert: two polarizations - for (unsigned i = 0 ; i < nrIntegrations; i++, XY++) { - const LOFAR::fcomplex polX = (*XY)[0]; - const LOFAR::fcomplex polY = (*XY)[1]; - - const double powerX = sqr(real(polX)) + sqr(imag(polX)); - const double powerY = sqr(real(polY)) + sqr(imag(polY)); - - stokes.I() += powerX + powerY; - - if (ALLSTOKES) { - stokes.Q() += powerX - powerY; - stokes.U() += 2 * real(polX * conj(polY)); - stokes.V() += 2 * imag(polX * conj(polY)); - } - } -} - -// Calculate incoherent stokes values from (filtered) station data. -template <bool ALLSTOKES> void IncoherentStokes::calculate(const FilteredData *in, PreTransposeBeamFormedData *out, const std::vector<unsigned> &stationMapping, const StreamInfo &info, unsigned subband, double dm) -{ - const unsigned nrStations = stationMapping.size(); - - ASSERT(in->samples.shape()[0] == itsNrChannels); - // in->samples.shape()[1] has to be bigger than all elements in stationMapping - ASSERT(in->samples.shape()[2] >= itsNrSamples); - ASSERT(in->samples.shape()[3] == NR_POLARIZATIONS); - - const unsigned &timeIntegrations = info.timeIntFactor; - const unsigned channelIntegrations = itsNrChannels / info.nrChannels; - std::vector<unsigned> stationList; - - for(unsigned ch = 0; ch < info.nrChannels; ch++) { - out->flags[ch].reset(); - } - - ASSERT(channelIntegrations <= itsMaxChannelIntegrations); - - for (unsigned stat = 0; stat < nrStations; stat ++) { - const unsigned upperBound = static_cast<unsigned>(itsNrSamples * Stokes::MAX_FLAGGED_PERCENTAGE); - const unsigned srcStat = stationMapping[stat]; - - unsigned count = 0; - for(unsigned ch = 0; ch < itsNrChannels; ch++) { - count += in->flags[ch][srcStat].count(); - } - - if(count > upperBound) { - // drop station due to too much flagging - } else { - stationList.push_back(srcStat); - - // conservative flagging: flag anything that is flagged in one of the stations - for(unsigned ch = 0; ch < itsNrChannels; ch++) { - out->flags[ch/channelIntegrations] |= in->flags[ch][srcStat]; - } - } - } - - const unsigned nrValidStations = stationList.size(); - - if (nrValidStations == 0) { - /* if no valid samples, insert zeroes */ - - for (unsigned stokes = 0; stokes < info.nrStokes; stokes++) - for (unsigned ch = 0; ch < info.nrChannels; ch++) - memset(&out->samples[stokes][ch][0], 0, info.nrSamples * sizeof out->samples[0][0][0]); - - // flag everything - for(unsigned ch=0; ch<info.nrChannels; ch++) { - out->flags[ch].include(0, info.nrSamples); - } - - return; - } - - // shorten the flags over the integration length - for(unsigned ch = 0; ch < info.nrChannels; ch++) { - out->flags[ch] /= timeIntegrations; - } - - const bool dedisperse = dm != 0.0 && itsDedispersion; - - for (unsigned inch = 0, outch = 0; inch < itsNrChannels; inch += channelIntegrations, outch++) { - - if (dedisperse) { - // dedisperse channelIntegration channels for all stations - for (unsigned outstat = 0; outstat < stationList.size(); outstat ++) { - unsigned instat = stationList[outstat]; - - itsDedispersion->dedisperse( in, itsDedispersedData.get(), instat, outstat, inch, channelIntegrations, subband, dm ); - } - } - - for (unsigned inTime = 0, outTime = 0; inTime < itsNrSamples; inTime += timeIntegrations, outTime ++) { - struct stokes<ALLSTOKES> stokes; - - if (dedisperse) { - for (unsigned i = 0; i < nrValidStations; i ++) - for (unsigned c = 0; c < channelIntegrations; c++) - addStokes<ALLSTOKES>(stokes, reinterpret_cast<const fcomplex (*)[2]>(&itsDedispersedData->samples[c][i][inTime][0]), timeIntegrations); - } else { - for (unsigned i = 0; i < nrValidStations; i ++) { - unsigned stat = stationList[i]; - - for (unsigned c = 0; c < channelIntegrations; c++) - addStokes<ALLSTOKES>(stokes, reinterpret_cast<const fcomplex (*)[2]>(&in->samples[inch + c][stat][inTime][0]), timeIntegrations); - } - } - - #define dest(stokes) out->samples[stokes][outch][outTime] - dest(0) = stokes.I() / nrValidStations; - - if (ALLSTOKES) { - dest(1) = stokes.Q() / nrValidStations; - dest(2) = stokes.U() / nrValidStations; - dest(3) = stokes.V() / nrValidStations; - } - #undef dest - } - } -} - -template void IncoherentStokes::calculate<true>(const FilteredData *, PreTransposeBeamFormedData *, const std::vector<unsigned> &, const StreamInfo&, unsigned, double); -template void IncoherentStokes::calculate<false>(const FilteredData *, PreTransposeBeamFormedData *, const std::vector<unsigned> &, const StreamInfo&, unsigned, double); - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/CNProc/src/Stokes.h b/RTCP/CNProc/src/Stokes.h deleted file mode 100644 index b2102edce224e4dda1acbda06c0b651f80c6b0dd..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Stokes.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef LOFAR_CNPROC_STOKES_H -#define LOFAR_CNPROC_STOKES_H - -#include <Interface/FilteredData.h> -#include <Interface/StreamableData.h> -#include <Interface/BeamFormedData.h> -#include <Interface/MultiDimArray.h> -#include <Interface/Parset.h> -#include <Dedispersion.h> - -#if 0 || !defined HAVE_BGP -#define STOKES_C_IMPLEMENTATION -#endif - -namespace LOFAR { -namespace RTCP { - - -class Stokes -{ - public: - static const float MAX_FLAGGED_PERCENTAGE = 0.9f; - - Stokes(unsigned nrChannels, unsigned nrSamples); - - protected: - const unsigned itsNrChannels; - const unsigned itsNrSamples; -}; - -class CoherentStokes: public Stokes -{ - public: - CoherentStokes(unsigned nrChannels, unsigned nrSamples); - - template <bool ALLSTOKES> void calculate(const SampleData<> *sampleData, PreTransposeBeamFormedData *stokesData, unsigned inbeam, const StreamInfo &info); -}; - -class IncoherentStokes: public Stokes -{ - public: - IncoherentStokes(unsigned nrChannels, unsigned nrSamples, unsigned nrStations, unsigned channelIntegrations, DedispersionBeforeBeamForming *dedispersion, Allocator &allocator); - - template <bool ALLSTOKES> void calculate(const FilteredData *sampleData, PreTransposeBeamFormedData *stokesData, const std::vector<unsigned> &stationMapping, const StreamInfo &info, unsigned subband, double dm); - - private: - Allocator &itsAllocator; - SmartPtr<FilteredData> itsDedispersedData; - DedispersionBeforeBeamForming *itsDedispersion; - const unsigned itsMaxChannelIntegrations; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/src/StokesAsm.S b/RTCP/CNProc/src/StokesAsm.S deleted file mode 100644 index 7fd890c74a4f3f0112abd9505b49f4f497a439a1..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/StokesAsm.S +++ /dev/null @@ -1,259 +0,0 @@ -#if defined HAVE_BGP - - -zero_one: .long 0x00000000, 0x3F800000 - -.global _StokesI -_StokesI: - - srwi 5,5,2 - subi 5,5,1 - mtctr 5 - - lis 9,zero_one@ha # load constants - addi 9,9,zero_one@l - lfpsx 12,0,9 - - li 8,8 - li 9,4 - - ; lfpsx 0,0,4 # A0 - ; lfpsux 1,4,8 - ; lfpsux 2,4,8 # A1 - ; lfpsux 3,4,8 - fpmul 0,0,0 # B0 - ; lfpsux 4,4,8 # A2 - fpmadd 0,1,1,0 # C0 - ; lfpsux 5,4,8 - fpmul 2,2,2 # B1 - fxcxma 0,12,0,0 # D0 - ; lfpsux 6,4,8 # A3 - fpmadd 2,3,3,2 # C1 - ; lfpsux 7,4,8 - fpmul 4,4,4 # B2 - ; stfsx 0,0,3 # E0 - -0: - fxcxma 2,12,2,2 # D1 - ; lfpsux 0,4,8 # A0 - fpmadd 4,5,5,4 # C2 - ; lfpsux 1,4,8 - fpmul 6,6,6 # B3 - ; stfsux 2,3,9 # E1 - fxcxma 4,12,4,4 # D2 - ; lfpsux 2,4,8 # A1 - fpmadd 6,7,7,6 # C3 - ; lfpsux 3,4,8 - fpmul 0,0,0 # B0 - ; stfsux 4,3,9 # E2 - fxcxma 6,12,6,6 # D3 - ; lfpsux 4,4,8 # A2 - fpmadd 0,1,1,0 # C0 - ; lfpsux 5,4,8 - fpmul 2,2,2 # B1 - ; stfsux 6,3,9 # E3 - fxcxma 0,12,0,0 # D0 - ; lfpsux 6,4,8 # A3 - fpmadd 2,3,3,2 # C1 - ; lfpsux 7,4,8 - fpmul 4,4,4 # B2 - ; stfsux 0,3,9 # E0 - - bdnz 0b - - fxcxma 2,12,2,2 # D1 - fpmadd 4,5,5,4 # C2 - fpmul 6,6,6 # B3 - ; stfsux 2,3,9 # E1 - fxcxma 4,12,4,4 # D2 - fpmadd 6,7,7,6 # C3 - ; stfsux 4,3,9 # E2 - fxcxma 6,12,6,6 # D3 - ; stfsux 6,3,9 # E3 - - blr - - -.align 5 - -constants: .long 0x3F800000, 0xBF800000 - .long 0xBF800000, 0x3F800000 - - -.global _StokesIQUV -_StokesIQUV: - srwi 8,8,2 # set loop iterations - subi 8,8,1 - mtctr 8 - - li 12,-16 # push call-saved registers - ; stfpdux 14,1,12 - ; stfpdux 15,1,12 - ; stfpdux 16,1,12 - ; stfpdux 17,1,12 - ; stfpdux 18,1,12 - ; stfpdux 19,1,12 - ; stfpdux 20,1,12 - ; stfpdux 21,1,12 - ; stfpdux 22,1,12 - ; stfpdux 23,1,12 - ; stfpdux 24,1,12 - - li 8,8 - - lis 9,constants@ha # load constants - addi 9,9,constants@l - lfpsx 24,0,9 - lfpsux 25,9,8 - - li 9,4 - - subi 3,3,4 - subi 4,4,4 - subi 5,5,4 - subi 6,6,4 - subi 7,7,8 - - ; lfpsux 18,7,8 - ; lfpsux 19,7,8 - ; lfpsux 0,7,8 - ; lfpsux 1,7,8 - ; lfpsux 6,7,8 - fpmul 20,18,18 - ; lfpsux 7,7,8 - fpmul 21,19,19 - fxpmul 23,19,18 - ; lfpsux 12,7,8 - fpmul 2,0,0 - fxcxnsma 23,19,18,23 - ; lfpsux 13,7,8 - fpmul 3,1,1 - fxpmul 5,1,0 - fxmadd 22,21,24,20 - fxmadd 21,21,25,20 - fpadd 23,23,23 - ; lfpsux 18,7,8 - fpmul 8,6,6 - fxcxnsma 5,1,0,5 - ; lfpsux 19,7,8 - fpmul 9,7,7 - fxpmul 11,7,6 - -0: - fxcxma 22,25,21,22 - fxmadd 4,3,24,2 - ; stfsux 23,5,9 - fxmadd 3,3,25,2 - ; stfssux 23,6,9 - fpadd 5,5,5 - ; lfpsux 0,7,8 - fpmul 14,12,12 - fxcxnsma 11,7,6,11 - ; lfpsux 1,7,8 - fpmul 15,13,13 - ; stfsux 22,3,9 - fxpmul 17,13,12 - ; stfssux 22,4,9 - - fxcxma 4,25,3,4 - fxmadd 10,9,24,8 - ; stfsux 5,5,9 - fxmadd 9,9,25,8 - ; stfssux 5,6,9 - fpadd 11,11,11 - ; lfpsux 6,7,8 - fpmul 20,18,18 - fxcxnsma 17,13,12,17 - ; lfpsux 7,7,8 - fpmul 21,19,19 - ; stfsux 4,3,9 - fxpmul 23,19,18 - ; stfssux 4,4,9 - - fxcxma 10,25,9,10 - fxmadd 16,15,24,14 - ; stfsux 11,5,9 - fxmadd 15,15,25,14 - ; stfssux 11,6,9 - fpadd 17,17,17 - ; lfpsux 12,7,8 - fpmul 2,0,0 - fxcxnsma 23,19,18,23 - ; lfpsux 13,7,8 - fpmul 3,1,1 - ; stfsux 10,3,9 - fxpmul 5,1,0 - ; stfssux 10,4,9 - - fxcxma 16,25,15,16 - fxmadd 22,21,24,20 - ; stfsux 17,5,9 - fxmadd 21,21,25,20 - ; stfssux 17,6,9 - fpadd 23,23,23 - ; lfpsux 18,7,8 - fpmul 8,6,6 - fxcxnsma 5,1,0,5 - ; lfpsux 19,7,8 - fpmul 9,7,7 - ; stfsux 16,3,9 - fxpmul 11,7,6 - ; stfssux 16,4,9 - - bdnz 0b - - fxcxma 22,25,21,22 - fxmadd 4,3,24,2 - ; stfsux 23,5,9 - fxmadd 3,3,25,2 - ; stfssux 23,6,9 - fpadd 5,5,5 - fpmul 14,12,12 - fxcxnsma 11,7,6,11 - fpmul 15,13,13 - ; stfsux 22,3,9 - fxpmul 17,13,12 - ; stfssux 22,4,9 - - fxcxma 4,25,3,4 - fxmadd 10,9,24,8 - ; stfsux 5,5,9 - fxmadd 9,9,25,8 - ; stfssux 5,6,9 - fpadd 11,11,11 - fxcxnsma 17,13,12,17 - ; stfsux 4,3,9 - ; stfssux 4,4,9 - - fxcxma 10,25,9,10 - fxmadd 16,15,24,14 - ; stfsux 11,5,9 - fxmadd 15,15,25,14 - ; stfssux 11,6,9 - fpadd 17,17,17 - ; stfsux 10,3,9 - ; stfssux 10,4,9 - - fxcxma 16,25,15,16 - ; stfsux 17,5,9 - ; stfssux 17,6,9 - ; stfsux 16,3,9 - ; stfssux 16,4,9 - - li 12,16 # restore call-saved registers - ; lfpdx 24,0,1 - ; lfpdux 23,1,12 - ; lfpdux 22,1,12 - ; lfpdux 21,1,12 - ; lfpdux 20,1,12 - ; lfpdux 19,1,12 - ; lfpdux 18,1,12 - ; lfpdux 17,1,12 - ; lfpdux 16,1,12 - ; lfpdux 15,1,12 - ; lfpdux 14,1,12 - - addi 1,1,16 # reset stack pointer - blr - -#endif diff --git a/RTCP/CNProc/src/StokesAsm.h b/RTCP/CNProc/src/StokesAsm.h deleted file mode 100644 index 8c3397964fec5dab0d3c290e6b48be4f4986dead..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/StokesAsm.h +++ /dev/null @@ -1,46 +0,0 @@ -//# StokesAsm.h: header files for CN assembly -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: STOKES_Asm.h 13808 2009-08-19 11:42:05Z romein $ - -#ifndef LOFAR_CNPROC_STOKES_ASM_H -#define LOFAR_CNPROC_STOKES_ASM_H - -#if defined HAVE_BGP - -#include <Common/lofar_complex.h> - - -namespace LOFAR { -namespace RTCP { - -extern "C" { - void _StokesI(float *I, - const fcomplex (*in)[2], // XY - unsigned length); // must be at least 8 and multiple of 4 - - void _StokesIQUV(float *I, float *Q, float *U, float *V, - const fcomplex (*in)[2], // XY - unsigned length); // must be at least 8 and multiple of 4 -} - -} // namespace RTCP -} // namespace LOFAR - -#endif -#endif diff --git a/RTCP/CNProc/src/Trigger.h b/RTCP/CNProc/src/Trigger.h deleted file mode 100644 index 51baef823c836a7beaeb98214df5ce45656972e5..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/src/Trigger.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef LOFAR_CNPROC_TRIGGER_H -#define LOFAR_CNPROC_TRIGGER_H - - -#include <Interface/TriggerData.h> - - -namespace LOFAR { -namespace RTCP { - - -class Trigger -{ - public: - void compute(TriggerData *triggerData) { triggerData->trigger = false; } - - private: -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/CNProc/test/CMakeLists.txt b/RTCP/CNProc/test/CMakeLists.txt deleted file mode 100644 index 48c235099de689c7044909da76f1f3a06f44ec1c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -include(LofarCTest) - -include_directories(${PACKAGE_SOURCE_DIR}/src) - -lofar_add_test(tCN_Processing tCN_Processing.cc) -lofar_add_test(tCN_Processing_alloc tCN_Processing_alloc.cc) -lofar_add_test(tBeamForming tBeamForming.cc) -lofar_add_test(tDedispersion tDedispersion.cc) -lofar_add_test(tFIR_Asm tFIR_Asm.cc) -lofar_add_test(tPencilBeamFormer tPencilBeamFormer.cc) -lofar_add_test(tStokes tStokes.cc) -lofar_add_test(tInversePPF tInversePPF.cc) -lofar_add_test(tStokesAsm tStokesAsm.cc) diff --git a/RTCP/CNProc/test/FlaggerTest-01-11-11.txt b/RTCP/CNProc/test/FlaggerTest-01-11-11.txt deleted file mode 100644 index 1da10abc332e633dc1f00a879fe68e8c8ef1efd6..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/FlaggerTest-01-11-11.txt +++ /dev/null @@ -1,47 +0,0 @@ -HBA's only, 1 HBA -stations used: -CS005 -CS006 -RS205 -RS406 -UK608 - -J2000 -RA: 19:21:44:81 -DEC: +21:53:02.2 -pulsar B1919+21 - -subbands 200-231 (142 MHz) - -nrStations: 5 -nrChannels: 16 -nrSubbands: 32 -integration time: 12208 - ---- - -It is the subbands 200..231 - -You can calculate the frequencies as follows: - -center freq = (512 + subbandId) * (clockFreq/1024) - -In our case, the clock frequency is 200 MHz. - -center freq first subband = (512 + 200) * (200/1024) = 139.0625 MHz -center freq 2nd subband = (512 + 201) * (200/1024) = 139.258 MHz -etc. - -So, the width of a suband is 200/1024 = 195.3125 KHz. -We have 16 channels per subband, so the width of a channel is 12.207 KHz... - -However, the frequencies above are the CENTER frequencies of a subband. -So, the start frequency = centerFrequency - ((nrChannels / 2) * channelBandwidth) - -So, the start freq channel 0, subband 200 = 138.96484375 MHz -and the end freq of channel 15 subband 31 = 145.21484375 MHz -So, the entire frequency range for this observation is 6.25 MHz - - -It is pulsar B1919+21, with a period of 1.3373 seconds and a pulse width of 0.04 second, and DM = 12.455. -See also http://en.wikipedia.org/wiki/PSR_B1919%2B21 diff --git a/RTCP/CNProc/test/FlaggerTest-1subband.parset b/RTCP/CNProc/test/FlaggerTest-1subband.parset deleted file mode 100644 index 6140b611f4c46675f8e854801d42b374d8722565..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/FlaggerTest-1subband.parset +++ /dev/null @@ -1,114 +0,0 @@ -OLAP.CNProc.integrationSteps = 12208 -OLAP.CNProc.phaseOnePsets = [0] -OLAP.CNProc.phaseTwoPsets = [0] -OLAP.CNProc.phaseThreePsets = [] -OLAP.CNProc.phaseOneTwoCores = [0..5] -OLAP.CNProc.phaseThreeCores = [] -OLAP.CNProc.partition = PartitionName -OLAP.CNProc.tabList = [] -OLAP.realTime = F -OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = F -OLAP.nrBitsPerSample = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSecondsOfBuffer = 3.5 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.Storage.userName = rob -OLAP.Storage.sshIdentityFile = /home/rob/.ssh/id_rsa -OLAP.Storage.msWriter = /home/rob/workspace/LOFAR-build/gnu_opt/installed/bin/Storage_main -OLAP.storageNodeList = [1*0] -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = F -OLAP.storageStationNames = [UK608HBA] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].nrTiedArrayBeams = 1 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 -OLAP.IONProc.integrationSteps = 1 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -#OLAP.CNProc_CoherentStokes.which = IQUV -#OLAP.CNProc_IncoherentStokes.which = IQUV -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.which = I -OLAP.PencilInfo.storageNodeList = [] -OLAP.delayCompensation = T -OLAP.DelayComp.positionType = ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.dispersionMeasure = 12.46 -Observation.ObserverName = Rob -Observation.Campaign.name = Online Flagger Test -Observation.Campaign.title = dr. -Observation.Campaign.contact = Rob -Observation.Campaign.PI = Rob -Observation.Campaign.CO_I = Rob -Observation.ProjectName = Online Flagger Test -Observation.nrPolarisations = 2 -Observation.antennaSet = HBA -Observation.bandFilter = HBA_110_190 -Observation.subbandList = [200..200] -Observation.beamList = [1*0] -Observation.rspBoardList = [1*0] -Observation.rspSlotList = [0..0] -Observation.channelsPerSubband = 16 -Observation.sampleClock = 200 -Observation.nrSlotsInFrame = 32 -Observation.ObsID = 1000000 -Observation.startTime = '2011-11-01 15:06:56' -Observation.stopTime = '2011-11-01 15:45:00' -Observation.nrBeams = 1 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].angle1 = 5.069077189772498 -Observation.AnaBeam[0].angle2 = 0.38194712046815327 -Observation.AnaBeam[0].target = B1919+21 -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].angle1 = 5.069077189772498 -Observation.Beam[0].angle2 = 0.38194712046815327 -Observation.Beam[0].target = B1919+21 -#Observation.MSNameMask = /tmp/rob${RAID}/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -OLAP.Storage.hosts = [r815] -Observation.DataProducts.Output_FilteredData.enabled = F -Observation.DataProducts.Output_FilteredData.locations = [] -Observation.DataProducts.Output_FilteredData.filenames = [] -Observation.DataProducts.Output_Correlated.enabled = T -Observation.DataProducts.Output_Correlated.locations = [1*r815:/tmp/rob] -Observation.DataProducts.Output_Correlated.filenames = [SB000.MS] -Observation.DataProducts.Output_IncoherentStokes.enabled = T -Observation.DataProducts.Output_IncoherentStokes.locations = [1*r815:/tmp/rob] -Observation.DataProducts.Output_IncoherentStokes.filenames = [SB000.incStokes] -Observation.DataProducts.Output_Beamformed.enabled = F -#Observation.DataProducts.Output_Beamformed.locations = [4*r815:/tmp/rob] -#Observation.DataProducts.Output_Beamformed.filenames = [CV001.X,CV001.Y,CV002.X,CV002.Y] -Observation.DataProducts.Output_Beamformed.locations = [2*r815:/tmp/rob] -Observation.DataProducts.Output_Beamformed.filenames = [CV000.X,CV000.Y] -Observation.DataProducts.Output_CoherentStokes.enabled = F -Observation.DataProducts.Output_CoherentStokes.locations = [1*r815:/tmp/rob] -Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I] -#Observation.DataProducts.Output_CoherentStokes.locations = [8*r815:/tmp/rob] -#Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I,Coherent.0.Q,Coherent.0.U,Coherent.0.V,Coherent.1.I,Coherent.1.Q,Coherent.1.U,Coherent.1.V] -Observation.DataProducts.Output_Trigger.enabled = F -Observation.DataProducts.Output_Trigger.locations = [] -Observation.DataProducts.Output_Trigger.filenames = [] -OLAP.Storage.subbandsPerPart = 1 -OLAP.Storage.partsPerStokes = 1 -PIC.Core.IONProc.PartitionName[0].inputs = [UK608HBA/RSP0] -PIC.Core.Station.CS005HBA0.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/CS005.raw] -PIC.Core.Station.CS006HBA0.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/CS006.raw] -PIC.Core.Station.RS205HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/RS205.raw] -PIC.Core.Station.RS406HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/RS406.raw] -PIC.Core.Station.UK608HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/UK608.raw] -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205HBA.position = [3831479.714,463487.482,5060989.875] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406HBA.position = [3818425.334,452019.946,5071817.384] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608HBA.position = [4008461.975,-100376.657,4943716.841] - diff --git a/RTCP/CNProc/test/FlaggerTest.parset b/RTCP/CNProc/test/FlaggerTest.parset deleted file mode 100644 index 207081d8feb4e76846a1b05ee1e9a5e1c3f10887..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/FlaggerTest.parset +++ /dev/null @@ -1,163 +0,0 @@ -#OLAP.CNProc.integrationSteps = 48 -OLAP.CNProc.integrationSteps = 12288 -OLAP.CNProc.phaseOnePsets = [0..4] -OLAP.CNProc.phaseTwoPsets = [0..4] -OLAP.CNProc.phaseThreePsets = [0..4] -OLAP.CNProc.phaseOneTwoCores = [0..7] -OLAP.CNProc.phaseThreeCores = [0..7] -OLAP.CNProc.partition = PartitionName -OLAP.CNProc.tabList = [] - -OLAP.CNProc.onlineFlagging = T # enable or disable all online flagging - -OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging = T - -OLAP.CNProc.onlinePreCorrelationFlagging = F -OLAP.CNProc.onlinePreCorrelationFlaggingType = INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY # THRESHOLD, INTEGRATED_THRESHOLD, INTEGRATED_THRESHOLD_2D, SUM_THRESHOLD, INTEGRATED_SUM_THRESHOLD, INTEGRATED_SUM_THRESHOLD_WITH_HISTORY, INTEGRATED_SMOOTHED_SUM_THRESHOLD, INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY, INTEGRATED_SUM_THRESHOLD_2D, INTEGRATED_SUM_THRESHOLD_2D_WITH_HISTORY -OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType = WINSORIZED # NORMAL, WINSORIZED - -OLAP.CNProc.onlinePostCorrelationFlagging= F -OLAP.CNProc.onlinePostCorrelationFlaggingType = SMOOTHED_SUM_THRESHOLD_WITH_HISTORY # THRESHOLD, SUM_THRESHOLD, SMOOTHED_SUM_THRESHOLD, SMOOTHED_SUM_THRESHOLD_WITH_HISTORY -OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType = WINSORIZED # NORMAL, WINSORIZED -OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations = F -OLAP.CNProc.onlinePostCorrelationFlaggingIntegration = 768 - -OLAP.realTime = F -OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = T -Observation.nrBitsPerSample = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSecondsOfBuffer = 3.5 -OLAP.CNProc.nrPPFTaps = 16 - -OLAP.Storage.userName = rob -OLAP.Storage.sshIdentityFile = /home/rob/.ssh/id_dsa -OLAP.Storage.msWriter = /home/rob/root/bin/Storage_main -OLAP.Storage.subbandsPerPart = 1 -OLAP.Storage.partsPerStokes = 1 -OLAP.Storage.hosts = [localhost] -OLAP.storageNodeList = [32*0] - -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = F -OLAP.storageStationNames = [CS005HBA0,CS006HBA0,RS205HBA,RS406HBA,UK608HBA] -Observation.VirtualInstrument.stationList = [CS005HBA0,CS006HBA0,RS205HBA,RS406HBA,UK608HBA] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].nrTiedArrayBeams = 1 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].coherent = false -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 - -OLAP.IONProc.integrationSteps = 1 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 1 -#OLAP.CNProc_CoherentStokes.which = IQUV -#OLAP.CNProc_IncoherentStokes.which = IQUV -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.which = I -OLAP.PencilInfo.storageNodeList = [] -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 - -OLAP.delayCompensation = F -OLAP.DelayComp.positionType = ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.dispersionMeasure = 12.46 -Observation.ObserverName = Rob -Observation.Campaign.name = Online Flagger Test -Observation.Campaign.title = dr. -Observation.Campaign.contact = Rob -Observation.Campaign.PI = Rob -Observation.Campaign.CO_I = Rob -Observation.ProjectName = Online Flagger Test -Observation.nrPolarisations = 2 -Observation.antennaSet = HBA -Observation.bandFilter = HBA_110_190 -Observation.subbandList = [200..231] -Observation.beamList = [32*0] -Observation.rspBoardList = [32*0] -Observation.rspSlotList = [0..31] -Observation.channelsPerSubband = 1 -Observation.sampleClock = 200 -Observation.nrSlotsInFrame = 32 -Observation.ObsID = 1000000 -Observation.startTime = '2011-11-01 15:06:56' -Observation.stopTime = '2011-11-01 15:07:56' -#Observation.stopTime = '2011-11-01 15:16:56' -#Observation.stopTime = '2011-11-01 15:45:00' -Observation.nrBeams = 1 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].angle1 = 5.069077189772498 -Observation.AnaBeam[0].angle2 = 0.38194712046815327 -Observation.AnaBeam[0].target = B1919+21 -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].angle1 = 5.069077189772498 -Observation.Beam[0].angle2 = 0.38194712046815327 -Observation.Beam[0].target = B1919+21 -#Observation.MSNameMask = /tmp/rob${RAID}/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS - -# TODO outputting filteredData does not work yet -#Observation.DataProducts.Output_FilteredData.enabled = T -#Observation.DataProducts.Output_FilteredData.locations = [localhost:/tmp/rob] -#Observation.DataProducts.Output_FilteredData.filenames = [FilteredData] - -#Observation.DataProducts.Output_Correlated.enabled = T -#Observation.DataProducts.Output_Correlated.locations = [32*localhost:/tmp/rob] -#Observation.DataProducts.Output_Correlated.filenames = [SB000.MS,SB001.MS,SB002.MS,SB003.MS,SB004.MS,SB005.MS,SB006.MS,SB007.MS,SB008.MS,SB009.MS,SB010.MS,SB011.MS,SB012.MS,SB013.MS,SB014.MS,SB015.MS,SB016.MS,SB017.MS,SB018.MS,SB019.MS,SB020.MS,SB021.MS,SB022.MS,SB023.MS,SB024.MS,SB025.MS,SB026.MS,SB027.MS,SB028.MS,SB029.MS,SB030.MS,SB031.MS] - -#Observation.DataProducts.Output_IncoherentStokes.enabled = T -#Observation.DataProducts.Output_IncoherentStokes.locations = [32*localhost:/tmp/rob] -#Observation.DataProducts.Output_IncoherentStokes.filenames = [SB000.incStokes,SB001.incStokes,SB002.incStokes,SB003.incStokes,SB004.incStokes,SB005.incStokes,SB006.incStokes,SB007.incStokes,SB008.incStokes,SB009.incStokes,SB010.incStokes,SB011.incStokes,SB012.incStokes,SB013.incStokes,SB014.incStokes,SB015.incStokes,SB016.incStokes,SB017.incStokes,SB018.incStokes,SB019.incStokes,SB020.incStokes,SB021.incStokes,SB022.incStokes,SB023.incStokes,SB024.incStokes,SB025.incStokes,SB026.incStokes,SB027.incStokes,SB028.incStokes,SB029.incStokes,SB030.incStokes,SB031.incStokes] - -Observation.DataProducts.Output_Beamformed.enabled = T -Observation.DataProducts.Output_Beamformed.locations = [localhost:/var/scratch/rob] -Observation.DataProducts.Output_Beamformed.filenames = [BeamFormedData] - -#Observation.DataProducts.Output_Beamformed.locations = [2*localhost:/tmp/rob] -#Observation.DataProducts.Output_Beamformed.filenames = [CV000.X,CV000.Y] -#Observation.DataProducts.Output_CoherentStokes.enabled = F -#Observation.DataProducts.Output_CoherentStokes.locations = [1*localhost:/tmp/rob] -#Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I] -#Observation.DataProducts.Output_CoherentStokes.locations = [8*localhost:/tmp/rob] -#Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I,Coherent.0.Q,Coherent.0.U,Coherent.0.V,Coherent.1.I,Coherent.1.Q,Coherent.1.U,Coherent.1.V] -#Observation.DataProducts.Output_Trigger.enabled = F -#Observation.DataProducts.Output_Trigger.locations = [] -#Observation.DataProducts.Output_Trigger.filenames = [] -PIC.Core.IONProc.PartitionName[0].inputs = [CS005HBA0/RSP0] -PIC.Core.IONProc.PartitionName[1].inputs = [CS006HBA0/RSP0] -PIC.Core.IONProc.PartitionName[2].inputs = [RS205HBA/RSP0] -PIC.Core.IONProc.PartitionName[3].inputs = [RS406HBA/RSP0] -PIC.Core.IONProc.PartitionName[4].inputs = [UK608HBA/RSP0] - -PIC.Core.Station.CS005HBA0.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/CS005.raw] -PIC.Core.Station.CS006HBA0.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/CS006.raw] -PIC.Core.Station.RS205HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/RS205.raw] -PIC.Core.Station.RS406HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/RS406.raw] -PIC.Core.Station.UK608HBA.RSP.ports = [file:/var/scratch/rob/FlaggerTest-01-11-11/UK608.raw] - -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] - -PIC.Core.CS005HBA0.clockCorrectionTime = 8.513765e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA0.position = [3826701.204,460989.202,5064802.657] - -PIC.Core.CS006HBA0.clockCorrectionTime = 7.855584e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA0.position = [3826653.826,461136.392,5064824.914] - -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205HBA.position = [3831479.714,463487.482,5060989.875] - -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406HBA.position = [3818425.334,452019.946,5071817.384] - -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608HBA.position = [4008461.975,-100376.657,4943716.841] diff --git a/RTCP/CNProc/test/RFI-test.parset b/RTCP/CNProc/test/RFI-test.parset deleted file mode 100644 index 3c5a01111d7c2bb2b0a34cd633ea80ef92602874..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/RFI-test.parset +++ /dev/null @@ -1,142 +0,0 @@ -OLAP.CNProc.integrationSteps = 768 -OLAP.CNProc.phaseOnePsets = [0..4] -OLAP.CNProc.phaseTwoPsets = [0..4] -OLAP.CNProc.phaseThreePsets = [] -OLAP.CNProc.phaseOneTwoCores = [0,1,2] -OLAP.CNProc.phaseThreeCores = [0,1,2] -OLAP.CNProc.partition = PartitionName -OLAP.CNProc.tabList = [] - -OLAP.CNProc.onlineFlagging = T # enable or disable all online flagging - -OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging = T - -OLAP.CNProc.onlinePreCorrelationFlagging = F -OLAP.CNProc.onlinePreCorrelationFlaggingType = INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY # THRESHOLD, INTEGRATED_THRESHOLD, SUM_THRESHOLD, INTEGRATED_SUM_THRESHOLD, INTEGRATED_SMOOTHED_SUM_THRESHOLD, INTEGRATED_SMOOTHED_SUM_THRESHOLD_WITH_HISTORY -OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType = WINSORIZED # NORMAL, WINSORIZED - -OLAP.CNProc.onlinePostCorrelationFlagging= F -OLAP.CNProc.onlinePostCorrelationFlaggingType = SMOOTHED_SUM_THRESHOLD_WITH_HISTORY # THRESHOLD, SUM_THRESHOLD, SMOOTHED_SUM_THRESHOLD, SMOOTHED_SUM_THRESHOLD_WITH_HISTORY -OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType = WINSORIZED # NORMAL, WINSORIZED -OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations = F - -OLAP.realTime = F -OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = T -OLAP.nrBitsPerSample = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSecondsOfBuffer = 3.5 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.Storage.userName = rob -OLAP.Storage.sshIdentityFile = /home/rob/.ssh/id_rsa -OLAP.Storage.msWriter = /home/rob/workspace/LOFAR-build/gnu_opt/installed/bin/Storage_main -OLAP.storageNodeList = [5*0] -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = F -OLAP.storageStationNames = [CS004LBA,CS006LBA,RS205LBA,RS208LBA,RS306LBA] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].nrTiedArrayBeams = 1 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 1.1 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 1.2 -Observation.Beam[0].TiedArrayBeam[1].angle1 = 1.3 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 1.4 -OLAP.IONProc.integrationSteps = 1 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 256 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 256 -OLAP.CNProc_CoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.which = I # IQUV -OLAP.PencilInfo.storageNodeList = [] -OLAP.delayCompensation = T -OLAP.DelayComp.positionType = ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.dispersionMeasure = 2 -Observation.ObserverName = Rob -Observation.Campaign.name = Test -Observation.Campaign.title = dr. -Observation.Campaign.contact = Rob -Observation.Campaign.PI = Rob -Observation.Campaign.CO_I = Rob -Observation.ProjectName = Online flagger test -Observation.nrPolarisations = 2 -Observation.antennaSet = LBA_OUTER -Observation.bandFilter = LBA_30_90 -Observation.subbandList = [138,183,256,282,283] -Observation.beamList = [5*0] -Observation.rspBoardList = [5*0] -Observation.rspSlotList = [0..4] -Observation.channelsPerSubband = 256 -Observation.sampleClock = 200 -Observation.nrSlotsInFrame = 5 -Observation.ObsID = 1000000 -Observation.startTime = '2010-04-28 17:25:03' -Observation.stopTime = '2010-04-28 17:45:03' -Observation.nrBeams = 1 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.AnaBeam[0].angle2 = 0.71094251447010637 -Observation.AnaBeam[0].target = Cygnus A -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].target = Cygnus A -#Observation.MSNameMask = /tmp/rob${RAID}/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -OLAP.Storage.hosts = [localhost] -Observation.DataProducts.Output_FilteredData.enabled = F -Observation.DataProducts.Output_FilteredData.locations = [5*localhost:/tmp/rob] -Observation.DataProducts.Output_FilteredData.filenames = [SB000.filt,SB001.filt,SB002.filt,SB003.filt,SB004.filt] -Observation.DataProducts.Output_Correlated.enabled = T -Observation.DataProducts.Output_Correlated.locations = [5*localhost:/home/rob/workspace/LOFAR-output] -Observation.DataProducts.Output_Correlated.filenames = [SB000.MS,SB001.MS,SB002.MS,SB003.MS,SB004.MS] -Observation.DataProducts.Output_IncoherentStokes.enabled = F -Observation.DataProducts.Output_IncoherentStokes.locations = [5*localhost:/tmp/rob] -Observation.DataProducts.Output_IncoherentStokes.filenames = [SB000.incStokes,SB001.incStokes,SB002.incStokes,SB003.incStokes,SB004.incStokes] -Observation.DataProducts.Output_Beamformed.enabled = F -Observation.DataProducts.Output_Beamformed.locations = [4*localhost:/tmp/rob] -Observation.DataProducts.Output_Beamformed.filenames = [CV001.X,CV001.Y,CV002.X,CV002.Y] -#Observation.DataProducts.Output_Beamformed.locations = [2*localhost:/tmp/rob] -#Observation.DataProducts.Output_Beamformed.filenames = [CV001.X,CV001.Y] -Observation.DataProducts.Output_CoherentStokes.enabled = F -Observation.DataProducts.Output_CoherentStokes.locations = [2*localhost:/tmp/rob] -Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I,Coherent.1.I] -#Observation.DataProducts.Output_CoherentStokes.locations = [8*localhost:/tmp/rob] -#Observation.DataProducts.Output_CoherentStokes.filenames = [Coherent.0.I,Coherent.0.Q,Coherent.0.U,Coherent.0.V,Coherent.1.I,Coherent.1.Q,Coherent.1.U,Coherent.1.V] -Observation.DataProducts.Output_Trigger.enabled = F -Observation.DataProducts.Output_Trigger.locations = [] -Observation.DataProducts.Output_Trigger.filenames = [] -OLAP.Storage.subbandsPerPart = 5 -OLAP.Storage.partsPerStokes = 1 -PIC.Core.IONProc.PartitionName[0].inputs = [CS004LBA/RSP0] -PIC.Core.IONProc.PartitionName[1].inputs = [CS006LBA/RSP0] -PIC.Core.IONProc.PartitionName[2].inputs = [RS205LBA/RSP0] -PIC.Core.IONProc.PartitionName[3].inputs = [RS208LBA/RSP0] -PIC.Core.IONProc.PartitionName[4].inputs = [RS306LBA/RSP0] -PIC.Core.Station.CS004LBA.RSP.ports = [file:/var/scratch/rob/LOFAR-dataset-raw-2010-04-28/CS004.raw] -PIC.Core.Station.CS006LBA.RSP.ports = [file:/var/scratch/rob/LOFAR-dataset-raw-2010-04-28/CS006.raw] -PIC.Core.Station.RS205LBA.RSP.ports = [file:/var/scratch/rob/LOFAR-dataset-raw-2010-04-28/RS205.raw] -PIC.Core.Station.RS208LBA.RSP.ports = [file:/var/scratch/rob/LOFAR-dataset-raw-2010-04-28/RS208.raw] -PIC.Core.Station.RS306LBA.RSP.ports = [file:/var/scratch/rob/LOFAR-dataset-raw-2010-04-28/RS306.raw] -#PIC.Core.Station.CS004LBA.RSP.ports = [null:] -#PIC.Core.Station.CS006LBA.RSP.ports = [null:] -#PIC.Core.Station.RS205LBA.RSP.ports = [null:] -#PIC.Core.Station.RS208LBA.RSP.ports = [null:] -#PIC.Core.Station.RS306LBA.RSP.ports = [null:] -PIC.Core.CS004LBA.clockCorrectionTime = -1e-6 -PIC.Core.CS006LBA.clockCorrectionTime = 1e-6 -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.clockCorrectionTime = 0 -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.CS004LBA.phaseCenter = [3826654.240, 460939.528, 5064842.398] -PIC.Core.CS006LBA.phaseCenter = [3826596.773, 461145.130, 5064866.950] -PIC.Core.RS205LBA.phaseCenter = [3831438.606, 463435.393, 5061025.437] -PIC.Core.RS208LBA.phaseCenter = [3847810.094, 466929.659, 5048357.193] -PIC.Core.RS306LBA.phaseCenter = [3829791.851, 452829.800, 5063221.562] -PIC.Core.CS004LBA.position = [3826654.240, 460939.528, 5064842.398] -PIC.Core.CS006LBA.position = [3826596.773, 461145.130, 5064866.950] -PIC.Core.RS205LBA.position = [3831438.606, 463435.393, 5061025.437] -PIC.Core.RS208LBA.position = [3847810.094, 466929.659, 5048357.193] -PIC.Core.RS306LBA.position = [3829791.851, 452829.800, 5063221.562] diff --git a/RTCP/CNProc/test/filterTestOutput.dat b/RTCP/CNProc/test/filterTestOutput.dat deleted file mode 100644 index 2d979321238aaca72d4cc8dc08fb1393594acb12..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/filterTestOutput.dat +++ /dev/null @@ -1,32768 +0,0 @@ - 0.0000000000 0.0000000000 0.0000000000 - 0.0013020830 0.4765623808 -0.0000000090 - 0.0026041637 0.9531239271 -0.0000000188 - 0.0039062400 1.4257775545 -0.0000000293 - 0.0052083097 1.9010330439 -0.0000000408 - 0.0065103709 2.3762853146 -0.0000000531 - 0.0078124204 2.8437209129 -0.0000000659 - 0.0091144573 3.3176624775 -0.0000000798 - 0.0104164779 3.7811815739 -0.0000000941 - 0.0117184818 4.2538089752 -0.0000001096 - 0.0130204652 4.7134084702 -0.0000001251 - 0.0143224271 5.1847186089 -0.0000001420 - 0.0156243639 5.6403951645 -0.0000001590 - 0.0169262756 6.1103854179 -0.0000001772 - 0.0182281565 6.5621361732 -0.0000001955 - 0.0195300076 7.0308027267 -0.0000002152 - 0.0208318271 7.4786257744 -0.0000002347 - 0.0221336093 7.9459657669 -0.0000002555 - 0.0234353542 8.4132919312 -0.0000002776 - 0.0247370601 8.8558673859 -0.0000002987 - 0.0260387231 9.3218631744 -0.0000003219 - 0.0273403432 9.7605028152 -0.0000003438 - 0.0286419149 10.2251634598 -0.0000003684 - 0.0299434401 10.6598644257 -0.0000003915 - 0.0312449131 11.1231889725 -0.0000004173 - 0.0325463340 11.5539484024 -0.0000004412 - 0.0338477008 12.0159339905 -0.0000004682 - 0.0351490080 12.4427490234 -0.0000004931 - 0.0364502557 12.9033908844 -0.0000005211 - 0.0377514437 13.3262596130 -0.0000005469 - 0.0390525684 13.7855567932 -0.0000005765 - 0.0403536223 14.2044754028 -0.0000006028 - 0.0416546129 14.6624240875 -0.0000006331 - 0.0429555289 15.0773906708 -0.0000006606 - 0.0442563742 15.5339870453 -0.0000006914 - 0.0455571450 15.9450006485 -0.0000007203 - 0.0468578376 16.4002437592 -0.0000007523 - 0.0481584482 16.8072986603 -0.0000007813 - 0.0494589806 17.2611846924 -0.0000008146 - 0.0507594272 17.6642799377 -0.0000008444 - 0.0520597883 18.1168060303 -0.0000008787 - 0.0533600636 18.5693016052 -0.0000009131 - 0.0546602458 18.9671058655 -0.0000009432 - 0.0559603348 19.4182357788 -0.0000009801 - 0.0572603308 19.8120746613 -0.0000010108 - 0.0585602298 20.2618389130 -0.0000010472 - 0.0598600283 20.6517105103 -0.0000010785 - 0.0611597225 21.1001033783 -0.0000011175 - 0.0624593161 21.4860038757 -0.0000011494 - 0.0637588054 21.9330291748 -0.0000011867 - 0.0650581867 22.3149585724 -0.0000012194 - 0.0663574561 22.7606067657 -0.0000012596 - 0.0676566139 23.1385612488 -0.0000012925 - 0.0689556524 23.5828323364 -0.0000013323 - 0.0702545792 23.9568119049 -0.0000013655 - 0.0715533867 24.3997039795 -0.0000014074 - 0.0728520676 24.7697029114 -0.0000014405 - 0.0741506293 25.2112140656 -0.0000014818 - 0.0754490644 25.5772323608 -0.0000015157 - 0.0767473727 26.0173587799 -0.0000015581 - 0.0780455545 26.3793983459 -0.0000015937 - 0.0793435946 26.8181343079 -0.0000016367 - 0.0806415081 27.1761875153 -0.0000016707 - 0.0819392800 27.6135368347 -0.0000017136 - 0.0832369179 27.9676036835 -0.0000017504 - 0.0845344067 28.4035606384 -0.0000017947 - 0.0858317614 28.7536392212 -0.0000018299 - 0.0871289670 29.1882038116 -0.0000018742 - 0.0884260237 29.5342922211 -0.0000019115 - 0.0897229314 29.9674587250 -0.0000019571 - 0.0910196826 30.3095550537 -0.0000019924 - 0.0923162848 30.7413234711 -0.0000020375 - 0.0936127305 31.0794258118 -0.0000020749 - 0.0949090198 31.5097942352 -0.0000021218 - 0.0962051451 31.8439025879 -0.0000021570 - 0.0975011066 32.2728652954 -0.0000022050 - 0.0987968966 32.6029777527 -0.0000022423 - 0.1000925303 33.0305366516 -0.0000022906 - 0.1013879851 33.3566474915 -0.0000023265 - 0.1026832759 33.7827987671 -0.0000023776 - 0.1039783880 34.1049118042 -0.0000024131 - 0.1052733287 34.5296516418 -0.0000024623 - 0.1065680832 34.8477630615 -0.0000024976 - 0.1078626588 35.2710876465 -0.0000025497 - 0.1091570556 35.5852012634 -0.0000025847 - 0.1104512662 36.0071144104 -0.0000026348 - 0.1117452905 36.3172187805 -0.0000026707 - 0.1130391210 36.7377128601 -0.0000027240 - 0.1143327653 37.0438156128 -0.0000027603 - 0.1156262085 37.3472671509 -0.0000027953 - 0.1169194654 37.7649879456 -0.0000028470 - 0.1182125136 38.0644302368 -0.0000028856 - 0.1195053682 38.4807281494 -0.0000029370 - 0.1207980216 38.7761650085 -0.0000029725 - 0.1220904663 39.1910400391 -0.0000030251 - 0.1233827025 39.4824638367 -0.0000030633 - 0.1246747300 39.8959121704 -0.0000031159 - 0.1259665489 40.1833305359 -0.0000031511 - 0.1272581518 40.5953521729 -0.0000032073 - 0.1285495460 40.8787574768 -0.0000032427 - 0.1298407167 41.2893486023 -0.0000032966 - 0.1311316639 41.5687370300 -0.0000033308 - 0.1324223876 41.9778976440 -0.0000033889 - 0.1337129027 42.2532768250 -0.0000034242 - 0.1350031793 42.6610031128 -0.0000034790 - 0.1362932175 42.9323654175 -0.0000035130 - 0.1375830472 43.3386611938 -0.0000035724 - 0.1388726234 43.6060028076 -0.0000036066 - 0.1401619762 44.0108604431 -0.0000036624 - 0.1414510757 44.2741851807 -0.0000036995 - 0.1427399516 44.6776046753 -0.0000037553 - 0.1440285891 44.9369201660 -0.0000037892 - 0.1453169733 45.3388938904 -0.0000038464 - 0.1466051042 45.5941886902 -0.0000038833 - 0.1478929967 45.9947204590 -0.0000039416 - 0.1491806358 46.2459983826 -0.0000039755 - 0.1504680216 46.4946174622 -0.0000040125 - 0.1517551541 46.8923416138 -0.0000040695 - 0.1530420333 47.1369476318 -0.0000041030 - 0.1543286443 47.5332221985 -0.0000041606 - 0.1556149870 47.7737998962 -0.0000041973 - 0.1569010764 48.1686286926 -0.0000042551 - 0.1581868976 48.4051895142 -0.0000042871 - 0.1594724655 48.7985763550 -0.0000043501 - 0.1607577503 49.0311126709 -0.0000043822 - 0.1620427519 49.4230384827 -0.0000044432 - 0.1633274853 49.6515541077 -0.0000044789 - 0.1646119505 50.0420341492 -0.0000045385 - 0.1658961326 50.2665290833 -0.0000045696 - 0.1671800315 50.6555480957 -0.0000046299 - 0.1684636474 50.8760223389 -0.0000046656 - 0.1697469801 51.2635879517 -0.0000047255 - 0.1710300148 51.4800338745 -0.0000047585 - 0.1723127812 51.6938362122 -0.0000047922 - 0.1735952348 52.0785713196 -0.0000048532 - 0.1748774052 52.2883453369 -0.0000048833 - 0.1761592776 52.6716232300 -0.0000049489 - 0.1774408370 52.8773689270 -0.0000049785 - 0.1787221134 53.2591896057 -0.0000050406 - 0.1800030768 53.4609146118 -0.0000050754 - 0.1812837422 53.8412704468 -0.0000051384 - 0.1825640947 54.0389709473 -0.0000051663 - 0.1838441491 54.4178695679 -0.0000052337 - 0.1851238757 54.6115417480 -0.0000052621 - 0.1864032894 54.9889717102 -0.0000053265 - 0.1876824051 55.1786270142 -0.0000053538 - 0.1889611930 55.5545921326 -0.0000054215 - 0.1902396530 55.7402191162 -0.0000054501 - 0.1915178001 56.1147155762 -0.0000055141 - 0.1927956045 56.2963180542 -0.0000055473 - 0.1940730959 56.4752693176 -0.0000055741 - 0.1953502595 56.8469238281 -0.0000056380 - 0.1966270953 57.0218582153 -0.0000056692 - 0.1979035884 57.3920402527 -0.0000057348 - 0.1991797537 57.5629501343 -0.0000057617 - 0.2004555762 57.9316596985 -0.0000058313 - 0.2017310709 58.0985488892 -0.0000058584 - 0.2030062079 58.4657897949 -0.0000059283 - 0.2042810023 58.6286468506 -0.0000059532 - 0.2055554539 58.9944152832 -0.0000060182 - 0.2068295628 59.1532554626 -0.0000060502 - 0.2081033140 59.5175476074 -0.0000061156 - 0.2093767077 59.6723632812 -0.0000061404 - 0.2106497586 60.0351829529 -0.0000062126 - 0.2119224519 60.1859779358 -0.0000062364 - 0.2131947726 60.3341217041 -0.0000062611 - 0.2144667357 60.6940879822 -0.0000063332 - 0.2157383412 60.8382110596 -0.0000063568 - 0.2170095742 61.1967010498 -0.0000064236 - 0.2182804495 61.3368072510 -0.0000064516 - 0.2195509523 61.6938171387 -0.0000065207 - 0.2208210826 61.8299026489 -0.0000065495 - 0.2220908254 62.1854324341 -0.0000066160 - 0.2233602107 62.3174972534 -0.0000066383 - 0.2246292084 62.6715507507 -0.0000067124 - 0.2258978188 62.7995948792 -0.0000067352 - 0.2271660566 63.1521644592 -0.0000068039 - 0.2284339070 63.2761917114 -0.0000068295 - 0.2297013700 63.6272811890 -0.0000068992 - 0.2309684455 63.7472915649 -0.0000069194 - 0.2322351187 63.8646583557 -0.0000069475 - 0.2335014045 64.2128829956 -0.0000070159 - 0.2347673029 64.3262405396 -0.0000070416 - 0.2360327840 64.6729812622 -0.0000071118 - 0.2372978777 64.7823181152 -0.0000071310 - 0.2385625690 65.1275787354 -0.0000072090 - 0.2398268580 65.2329025269 -0.0000072267 - 0.2410907298 65.5766754150 -0.0000073027 - 0.2423542142 65.6779937744 -0.0000073226 - 0.2436172664 66.0202789307 -0.0000073921 - 0.2448799163 66.1175765991 -0.0000074179 - 0.2461421490 66.4583816528 -0.0000074885 - 0.2474039644 66.5516662598 -0.0000075135 - 0.2486653477 66.6423110962 -0.0000075294 - 0.2499263287 66.9802551270 -0.0000076020 - 0.2511868775 67.0668945312 -0.0000076251 - 0.2524470091 67.4033508301 -0.0000076986 - 0.2537066936 67.4859771729 -0.0000077192 - 0.2549659610 67.8209457397 -0.0000077931 - 0.2562247813 67.8995666504 -0.0000078077 - 0.2574831843 68.2330474854 -0.0000078884 - 0.2587411404 68.3076629639 -0.0000079018 - 0.2599986792 68.6396484375 -0.0000079840 - 0.2612557709 68.7102661133 -0.0000079972 - 0.2625123858 69.0407562256 -0.0000080786 - 0.2637685835 69.1073684692 -0.0000080916 - 0.2650243342 69.1713485718 -0.0000081063 - 0.2662796378 69.4989852905 -0.0000081875 - 0.2675344944 69.5589675903 -0.0000082019 - 0.2687888741 69.8851089478 -0.0000082816 - 0.2700428069 69.9410858154 -0.0000082956 - 0.2712962925 70.2657394409 -0.0000083772 - 0.2725493014 70.3177185059 -0.0000083891 - 0.2738018632 70.6408843994 -0.0000084716 - 0.2750539780 70.6888732910 -0.0000084829 - 0.2763055861 71.0105361938 -0.0000085591 - 0.2775567472 71.0545272827 -0.0000085793 - 0.2788074315 71.3747024536 -0.0000086537 - 0.2800576687 71.4147033691 -0.0000086741 - 0.2813073993 71.7333831787 -0.0000087495 - 0.2825566530 71.7693862915 -0.0000087686 - 0.2838054299 71.8027725220 -0.0000087807 - 0.2850537598 72.1185989380 -0.0000088619 - 0.2863015532 72.1479949951 -0.0000088730 - 0.2875488997 72.4623260498 -0.0000089587 - 0.2887957394 72.4877319336 -0.0000089670 - 0.2900421023 72.8005676270 -0.0000090537 - 0.2912879586 72.8219909668 -0.0000090635 - 0.2925333381 73.1333312988 -0.0000091407 - 0.2937782109 73.1507720947 -0.0000091586 - 0.2950226068 73.4606323242 -0.0000092364 - 0.2962664664 73.4740829468 -0.0000092531 - 0.2975098491 73.7824401855 -0.0000093320 - 0.2987527251 73.7919235229 -0.0000093478 - 0.2999950945 74.0987854004 -0.0000094284 - 0.3012369275 74.1042861938 -0.0000094445 - 0.3024782836 74.1071777344 -0.0000094508 - 0.3037191033 74.4111785889 -0.0000095396 - 0.3049594462 74.4101028442 -0.0000095462 - 0.3061992228 74.7126083374 -0.0000096368 - 0.3074385226 74.7075576782 -0.0000096435 - 0.3086772859 75.0085830688 -0.0000097329 - 0.3099155128 74.9995574951 -0.0000097386 - 0.3111532331 75.2990798950 -0.0000098278 - 0.3123904169 75.2860870361 -0.0000098360 - 0.3136270642 75.5841217041 -0.0000099266 - 0.3148631752 75.5671615601 -0.0000099322 - 0.3160987794 75.8637084961 -0.0000100233 - 0.3173338175 75.8427810669 -0.0000100295 - 0.3185683489 76.1378326416 -0.0000101219 - 0.3198023140 76.1129531860 -0.0000101369 - 0.3210357428 76.0854721069 -0.0000101415 - 0.3222686350 76.3776702881 -0.0000102328 - 0.3235009611 76.3462295532 -0.0000102398 - 0.3247327507 76.6369323730 -0.0000103316 - 0.3259640038 76.6015396118 -0.0000103400 - 0.3271946907 76.8907546997 -0.0000104347 - 0.3284248412 76.8514099121 -0.0000104397 - 0.3296543956 77.1391296387 -0.0000105335 - 0.3308834434 77.0958404541 -0.0000105374 - 0.3321118951 77.3820724487 -0.0000106349 - 0.3333397806 77.3348312378 -0.0000106478 - 0.3345670998 77.6195678711 -0.0000107376 - 0.3357938826 77.5683898926 -0.0000107497 - 0.3370200694 77.8516387939 -0.0000108409 - 0.3382456899 77.7965087891 -0.0000108541 - 0.3394707441 78.0782699585 -0.0000109457 - 0.3406952024 78.0192031860 -0.0000109583 - 0.3419190943 78.2994689941 -0.0000110518 - 0.3431424201 78.2364730835 -0.0000110653 - 0.3443651497 78.1708908081 -0.0000110761 - 0.3455873132 78.4483184814 -0.0000111691 - 0.3468088806 78.3788070679 -0.0000111827 - 0.3480298519 78.6547470093 -0.0000112796 - 0.3492502272 78.5812988281 -0.0000112915 - 0.3504700363 78.8557586670 -0.0000113950 - 0.3516892195 78.7783813477 -0.0000114018 - 0.3529078364 79.0513534546 -0.0000115061 - 0.3541258276 78.9700622559 -0.0000115127 - 0.3553432524 79.2415466309 -0.0000116207 - 0.3565600514 79.1563339233 -0.0000116335 - 0.3577762544 79.4263305664 -0.0000117348 - 0.3589918315 79.3371963501 -0.0000117480 - 0.3602068126 79.6057052612 -0.0000118522 - 0.3614211977 79.5126647949 -0.0000118657 - 0.3626349568 79.7796936035 -0.0000119770 - 0.3638480902 79.6827316284 -0.0000119840 - 0.3650606275 79.9482803345 -0.0000120988 - 0.3662725389 79.8474121094 -0.0000121058 - 0.3674838245 80.1114730835 -0.0000122214 - 0.3686944842 80.0067062378 -0.0000122351 - 0.3699045181 80.2692794800 -0.0000123476 - 0.3711139262 80.1606063843 -0.0000123623 - 0.3723227084 80.0493850708 -0.0000123787 - 0.3735308647 80.3091354370 -0.0000124899 - 0.3747383952 80.1940155029 -0.0000125067 - 0.3759452701 80.4522857666 -0.0000126242 - 0.3771515191 80.3332748413 -0.0000126418 - 0.3783571124 80.5900650024 -0.0000127641 - 0.3795620799 80.4671630859 -0.0000127771 - 0.3807664216 80.7224807739 -0.0000129021 - 0.3819700778 80.5956878662 -0.0000129240 - 0.3831731081 80.8495254517 -0.0000130444 - 0.3843754828 80.7188491821 -0.0000130658 - 0.3855772316 80.9712219238 -0.0000131959 - 0.3867782950 80.8366622925 -0.0000132119 - 0.3879787028 81.0875473022 -0.0000133453 - 0.3891784549 80.9491195679 -0.0000133678 - 0.3903775811 81.1985397339 -0.0000134973 - 0.3915760219 81.0562362671 -0.0000135227 - 0.3927737772 81.3041687012 -0.0000136625 - 0.3939708769 81.1579971313 -0.0000136842 - 0.3951673210 81.4044647217 -0.0000138242 - 0.3963631094 81.2544403076 -0.0000138511 - 0.3975582123 81.4994354248 -0.0000139971 - 0.3987526298 81.3455352783 -0.0000140182 - 0.3999463618 81.5890579224 -0.0000141686 - 0.4011394382 81.4313049316 -0.0000142005 - 0.4023318291 81.6733627319 -0.0000143469 - 0.4035235345 81.5117568970 -0.0000143799 - 0.4047145545 81.7523422241 -0.0000145356 - 0.4059048891 81.5868835449 -0.0000145639 - 0.4070945382 81.8260040283 -0.0000147244 - 0.4082835019 81.6567001343 -0.0000147646 - 0.4094717801 81.8943557739 -0.0000149253 - 0.4106593430 81.7212066650 -0.0000149617 - 0.4118462205 81.9573974609 -0.0000151274 - 0.4130324125 81.7804183960 -0.0000151718 - 0.4142178893 82.0151443481 -0.0000153362 - 0.4154026508 81.8343200684 -0.0000153825 - 0.4165867269 82.0675888062 -0.0000155612 - 0.4177700877 81.8829345703 -0.0000156087 - 0.4189527631 82.1147384644 -0.0000157836 - 0.4201346934 81.9262619019 -0.0000158370 - 0.4213159382 82.1566085815 -0.0000160222 - 0.4224964678 81.9643173218 -0.0000160731 - 0.4236762524 82.1931915283 -0.0000162606 - 0.4248553514 81.9970855713 -0.0000163243 - 0.4260337055 82.2245025635 -0.0000165207 - 0.4272113442 82.0245819092 -0.0000165780 - 0.4283882678 82.2505493164 -0.0000167795 - 0.4295644760 82.0468139648 -0.0000168445 - 0.4307399392 82.2713317871 -0.0000170570 - 0.4319146574 82.0637817383 -0.0000171207 - 0.4330886602 82.2868423462 -0.0000173372 - 0.4342619181 82.0755004883 -0.0000174051 - 0.4354344606 82.2971115112 -0.0000176313 - 0.4366062582 82.0819778442 -0.0000177064 - 0.4377773106 82.3021316528 -0.0000179367 - 0.4389476180 82.0832061768 -0.0000180178 - 0.4401171803 82.3019104004 -0.0000182499 - 0.4412859976 82.0791931152 -0.0000183369 - 0.4424540699 82.2964553833 -0.0000185824 - 0.4436213970 82.0699615479 -0.0000186775 - 0.4447879493 82.2857742310 -0.0000189218 - 0.4459537864 82.0554962158 -0.0000190233 - 0.4471188486 82.2698669434 -0.0000192823 - 0.4482831359 82.0358123779 -0.0000193883 - 0.4494466782 82.2487411499 -0.0000196505 - 0.4506094456 82.0109176636 -0.0000197626 - 0.4517714679 82.2224044800 -0.0000200342 - 0.4529327154 81.9808197021 -0.0000201515 - 0.4540931880 82.1908645630 -0.0000204392 - 0.4552529156 81.9455261230 -0.0000205616 - 0.4564118385 82.1541290283 -0.0000208552 - 0.4575700164 81.9050292969 -0.0000209847 - 0.4587274194 82.1122055054 -0.0000212878 - 0.4598840177 81.8593521118 -0.0000214261 - 0.4610398412 82.0650939941 -0.0000217354 - 0.4621948898 81.8084945679 -0.0000218873 - 0.4633491635 82.0128021240 -0.0000222157 - 0.4645026624 81.7524719238 -0.0000223633 - 0.4656553566 81.9553451538 -0.0000226911 - 0.4668072462 81.6912689209 -0.0000228579 - 0.4679583609 81.8927154541 -0.0000232131 - 0.4691086709 81.6249084473 -0.0000233700 - 0.4702582061 81.8249282837 -0.0000237373 - 0.4714069366 82.0248107910 -0.0000241080 - 0.4725548625 81.7519912720 -0.0000242918 - 0.4737019837 81.9504394531 -0.0000246736 - 0.4748483002 81.6739044189 -0.0000248563 - 0.4759938419 81.8709411621 -0.0000252498 - 0.4771385491 81.5906906128 -0.0000254455 - 0.4782824516 81.7863006592 -0.0000258654 - 0.4794255495 81.5023422241 -0.0000260748 - 0.4805678129 81.6965255737 -0.0000264922 - 0.4817092717 81.4088668823 -0.0000267097 - 0.4828499258 81.6016387939 -0.0000271554 - 0.4839897454 81.3102798462 -0.0000273794 - 0.4851287603 81.5016326904 -0.0000278368 - 0.4862669408 81.2065811157 -0.0000280672 - 0.4874043167 81.3965225220 -0.0000285347 - 0.4885408580 81.0977859497 -0.0000287900 - 0.4896765649 81.2863082886 -0.0000292799 - 0.4908114374 80.9838867188 -0.0000295375 - 0.4919454753 81.1710052490 -0.0000300504 - 0.4930786788 81.3579788208 -0.0000305572 - 0.4942110479 81.0506134033 -0.0000308264 - 0.4953425825 81.2361831665 -0.0000313690 - 0.4964732826 80.9251480103 -0.0000316620 - 0.4976031482 81.1093139648 -0.0000322008 - 0.4987321496 80.7946090698 -0.0000325142 - 0.4998603165 80.9773712158 -0.0000330799 - 0.5009876490 80.6590118408 -0.0000333924 - 0.5021141171 80.8403701782 -0.0000339870 - 0.5032397509 80.5183563232 -0.0000343042 - 0.5043644905 80.6983184814 -0.0000349182 - 0.5054883957 80.3726577759 -0.0000352600 - 0.5066114664 80.5512237549 -0.0000358805 - 0.5077336431 80.7296524048 -0.0000365204 - 0.5088549852 80.3990859985 -0.0000368757 - 0.5099754333 80.5761184692 -0.0000375449 - 0.5110950470 80.2419204712 -0.0000379199 - 0.5122137666 80.4175643921 -0.0000385996 - 0.5133316517 80.0797348022 -0.0000390036 - 0.5144486427 80.2539901733 -0.0000397029 - 0.5155647993 79.9125442505 -0.0000400881 - 0.5166800618 80.0854110718 -0.0000408378 - 0.5177944303 79.7403411865 -0.0000412302 - 0.5189079046 79.9118194580 -0.0000419930 - 0.5200205445 79.5631408691 -0.0000424105 - 0.5211322904 79.7332382202 -0.0000431999 - 0.5222431421 79.9031982422 -0.0000439897 - 0.5233530998 79.5496673584 -0.0000444315 - 0.5244621634 79.7182464600 -0.0000452401 - 0.5255703926 79.3611297607 -0.0000457017 - 0.5266776681 79.5283279419 -0.0000465453 - 0.5277841091 79.1676177979 -0.0000470269 - 0.5288895965 79.3334426880 -0.0000479016 - 0.5299942493 78.9691467285 -0.0000483987 - 0.5310979486 79.1335906982 -0.0000492780 - 0.5322007537 79.2979125977 -0.0000501829 - 0.5333026648 78.9287948608 -0.0000507018 - 0.5344036818 79.0917434692 -0.0000516364 - 0.5355038047 78.7190628052 -0.0000521493 - 0.5366029739 78.8806381226 -0.0000531105 - 0.5377012491 78.5043792725 -0.0000536470 - 0.5387986302 78.6645965576 -0.0000546311 - 0.5398951173 78.2847900391 -0.0000551807 - 0.5409906507 78.4436416626 -0.0000562091 - 0.5420852900 78.6023635864 -0.0000571972 - 0.5431790352 78.2177810669 -0.0000577863 - 0.5442717671 78.3751373291 -0.0000588624 - 0.5453636646 77.9870071411 -0.0000594080 - 0.5464546084 78.1430053711 -0.0000605097 - 0.5475445986 77.7513351440 -0.0000611045 - 0.5486336946 77.9059829712 -0.0000621936 - 0.5497218966 77.5107879639 -0.0000628235 - 0.5508090854 77.6640777588 -0.0000639471 - 0.5518953800 77.8172454834 -0.0000650999 - 0.5529807210 77.4172973633 -0.0000657191 - 0.5540651679 77.5691223145 -0.0000668789 - 0.5551486611 77.1656646729 -0.0000675195 - 0.5562312007 77.3161392212 -0.0000687048 - 0.5573127866 76.9091644287 -0.0000693545 - 0.5583934188 77.0582885742 -0.0000705679 - 0.5594731569 77.2072982788 -0.0000718153 - 0.5605518818 76.7956085205 -0.0000724816 - 0.5616297126 76.9432678223 -0.0000737184 - 0.5627065301 76.5280914307 -0.0000743998 - 0.5637824535 76.6744155884 -0.0000756878 - 0.5648573637 76.2557449341 -0.0000763652 - 0.5659313798 76.4007339478 -0.0000776710 - 0.5670043826 76.5455932617 -0.0000790096 - 0.5680764318 76.1222381592 -0.0000796717 - 0.5691475868 76.2657775879 -0.0000810269 - 0.5702176690 75.8389511108 -0.0000816823 - 0.5712868571 75.9811553955 -0.0000830569 - 0.5723550916 75.5508728027 -0.0000837341 - 0.5734223127 75.6917419434 -0.0000851376 - 0.5744885802 75.8324890137 -0.0000865564 - 0.5755538344 75.3975524902 -0.0000872340 - 0.5766181350 75.5369720459 -0.0000886475 - 0.5776814818 75.0985946655 -0.0000893337 - 0.5787438154 75.2366943359 -0.0000907486 - 0.5798051953 75.3746719360 -0.0000922087 - 0.5808655620 74.9316558838 -0.0000928996 - 0.5819249749 75.0683212280 -0.0000943606 - 0.5829834342 74.6218795776 -0.0000950235 - 0.5840408206 74.7572250366 -0.0000965103 - 0.5850972533 74.3073501587 -0.0000971769 - 0.5861527324 74.4413986206 -0.0000986839 - 0.5872071981 74.5753173828 -0.0001001859 - 0.5882606506 74.1208419800 -0.0001008586 - 0.5893130898 74.2534484863 -0.0001023405 - 0.5903645158 73.7955627441 -0.0001029987 - 0.5914149880 73.9268722534 -0.0001045165 - 0.5924644470 74.0580596924 -0.0001060687 - 0.5935128927 73.5955963135 -0.0001066925 - 0.5945603251 73.7254791260 -0.0001082484 - 0.5956068039 73.2596359253 -0.0001088616 - 0.5966522098 73.3882217407 -0.0001104025 - 0.5976966619 73.5166931152 -0.0001119705 - 0.5987400413 73.0462875366 -0.0001125149 - 0.5997824073 73.1734542847 -0.0001140846 - 0.6008238196 72.6996841431 -0.0001146776 - 0.6018641591 72.8255615234 -0.0001162130 - 0.6029034853 72.9513244629 -0.0001177897 - 0.6039417982 72.4730148315 -0.0001182779 - 0.6049790978 72.5974884033 -0.0001199145 - 0.6060153246 72.1158218384 -0.0001203856 - 0.6070505381 72.2390136719 -0.0001219431 - 0.6080847383 72.3620834351 -0.0001235099 - 0.6091179252 71.8759155273 -0.0001239638 - 0.6101500988 71.9977111816 -0.0001255460 - 0.6111811996 71.5082015991 -0.0001259446 - 0.6122112274 71.6287155151 -0.0001275289 - 0.6132403016 71.7491149902 -0.0001290962 - 0.6142682433 71.2551193237 -0.0001294662 - 0.6152952313 71.3742446899 -0.0001309869 - 0.6163211465 70.8769302368 -0.0001313328 - 0.6173459888 70.9947891235 -0.0001328870 - 0.6183698177 71.1125259399 -0.0001344023 - 0.6193925738 70.6107559204 -0.0001347040 - 0.6204142570 70.7272262573 -0.0001362290 - 0.6214349270 70.2221450806 -0.0001364467 - 0.6224545836 70.3373641968 -0.0001379428 - 0.6234731078 70.4524612427 -0.0001394462 - 0.6244906187 69.9429473877 -0.0001396575 - 0.6255070567 70.0567932129 -0.0001411123 - 0.6265224218 70.1705093384 -0.0001425998 - 0.6275367737 69.6565856934 -0.0001427162 - 0.6285499930 69.7690505981 -0.0001441618 - 0.6295621991 69.2518386841 -0.0001442278 - 0.6305733323 69.3630676270 -0.0001456359 - 0.6315833330 69.4741668701 -0.0001471087 - 0.6325923204 68.9525604248 -0.0001470734 - 0.6336002350 69.0624237061 -0.0001484798 - 0.6346070766 68.5375671387 -0.0001484019 - 0.6356128454 68.6461868286 -0.0001497910 - 0.6366175413 68.7546920776 -0.0001511565 - 0.6376211047 68.2254562378 -0.0001509989 - 0.6386236548 68.3327331543 -0.0001523367 - 0.6396250725 68.4398803711 -0.0001536440 - 0.6406254172 67.9062957764 -0.0001534466 - 0.6416246891 68.0122146606 -0.0001547408 - 0.6426228881 67.4754028320 -0.0001544815 - 0.6436199546 67.5800933838 -0.0001557402 - 0.6446159482 67.6846771240 -0.0001569795 - 0.6456108689 67.1435317993 -0.0001566530 - 0.6466046572 67.2468872070 -0.0001578293 - 0.6475973725 67.3501281738 -0.0001590374 - 0.6485890150 66.8046722412 -0.0001586144 - 0.6495795250 66.9066925049 -0.0001597813 - 0.6505689025 67.0085983276 -0.0001609325 - 0.6515572667 66.4588394165 -0.0001604257 - 0.6525444388 66.5595321655 -0.0001615322 - 0.6535305381 66.0065841675 -0.0001609591 - 0.6545155644 66.1060714722 -0.0001620420 - 0.6554993987 66.2054367065 -0.0001631023 - 0.6564822197 65.6482238770 -0.0001624418 - 0.6574638486 65.7463836670 -0.0001634662 - 0.6584444046 65.8444366455 -0.0001644654 - 0.6594238281 65.2829589844 -0.0001637334 - 0.6604021192 65.3798065186 -0.0001647042 - 0.6613793373 65.4765548706 -0.0001656649 - 0.6623554230 64.9108276367 -0.0001648478 - 0.6633303165 65.0063705444 -0.0001657656 - 0.6643041372 64.4375000000 -0.0001648825 - 0.6652768850 64.5318603516 -0.0001657567 - 0.6662484407 64.6260986328 -0.0001666065 - 0.6672188640 64.0530090332 -0.0001656635 - 0.6681881547 64.1460647583 -0.0001664781 - 0.6691563129 64.2390060425 -0.0001672764 - 0.6701233983 63.6617240906 -0.0001662515 - 0.6710892916 63.7534828186 -0.0001670174 - 0.6720540524 63.8451347351 -0.0001677511 - 0.6730176806 63.2636604309 -0.0001666451 - 0.6739801764 63.3541374207 -0.0001673554 - 0.6749414802 63.4444999695 -0.0001680400 - 0.6759017110 62.8588600159 -0.0001668567 - 0.6768607497 62.9480514526 -0.0001674988 - 0.6778186560 63.0371360779 -0.0001681335 - 0.6787754297 62.4473381042 -0.0001668716 - 0.6797310114 62.5352516174 -0.0001674634 - 0.6806854606 62.6230621338 -0.0001680456 - 0.6816387773 62.0291290283 -0.0001667094 - 0.6825909019 62.1157722473 -0.0001672641 - 0.6835418940 61.5187721252 -0.0001658716 - 0.6844916940 61.6042518616 -0.0001663784 - 0.6854403615 61.6896324158 -0.0001668710 - 0.6863878965 61.0885238647 -0.0001654124 - 0.6873342395 61.1727485657 -0.0001658684 - 0.6882793903 61.2568664551 -0.0001663098 - 0.6892234087 60.6516609192 -0.0001647860 - 0.6901662350 60.7346267700 -0.0001651892 - 0.6911079288 60.8174972534 -0.0001655787 - 0.6920484304 60.2082138062 -0.0001640006 - 0.6929877400 60.2899322510 -0.0001643566 - 0.6939258575 60.3715515137 -0.0001646860 - 0.6948628426 59.7582054138 -0.0001630539 - 0.6957986355 59.8386840820 -0.0001633588 - 0.6967332363 59.9190597534 -0.0001636499 - 0.6976667047 59.3016700745 -0.0001619542 - 0.6985989213 59.3809089661 -0.0001622166 - 0.6995300055 59.4600486755 -0.0001624592 - 0.7004598975 59.5390930176 -0.0001626882 - 0.7013885975 58.9166412354 -0.0001609299 - 0.7023161054 58.9945526123 -0.0001611287 - 0.7032424212 59.0723648071 -0.0001613201 - 0.7041674852 58.4458999634 -0.0001595056 - 0.7050914168 58.5225868225 -0.0001596704 - 0.7060141563 58.5991744995 -0.0001598120 - 0.7069357038 57.9687271118 -0.0001579534 - 0.7078560591 58.0441970825 -0.0001580770 - 0.7087751627 58.1195640564 -0.0001581750 - 0.7096931338 57.4851455688 -0.0001562886 - 0.7106098533 57.5593986511 -0.0001563591 - 0.7115253806 57.6335563660 -0.0001564369 - 0.7124396563 56.9951705933 -0.0001544994 - 0.7133527994 57.0682220459 -0.0001545336 - 0.7142646909 57.1411743164 -0.0001545718 - 0.7151753902 56.4988555908 -0.0001526007 - 0.7160848379 56.5707015991 -0.0001526055 - 0.7169931531 56.6424598694 -0.0001526090 - 0.7179001570 55.9962120056 -0.0001506001 - 0.7188060284 56.0668716431 -0.0001505850 - 0.7197105885 56.1374244690 -0.0001505468 - 0.7206140161 55.4872779846 -0.0001485111 - 0.7215161920 55.5567474365 -0.0001484695 - 0.7224171162 55.6261177063 -0.0001483958 - 0.7233168483 55.6953964233 -0.0001483229 - 0.7242153287 55.0403633118 -0.0001462637 - 0.7251126170 55.1085586548 -0.0001461597 - 0.7260086536 55.1766586304 -0.0001460704 - 0.7269034386 54.5177574158 -0.0001439783 - 0.7277970314 54.5847778320 -0.0001438490 - 0.7286893725 54.6517028809 -0.0001437343 - 0.7295804620 53.9889526367 -0.0001416285 - 0.7304703593 54.0548057556 -0.0001414814 - 0.7313590050 54.1205673218 -0.0001413364 - 0.7322463989 54.1862335205 -0.0001411716 - 0.7331325412 53.5186767578 -0.0001390372 - 0.7340174317 53.5832710266 -0.0001388704 - 0.7349010706 53.6477775574 -0.0001386919 - 0.7357835174 52.9764137268 -0.0001365489 - 0.7366647124 53.0398597717 -0.0001363619 - 0.7375445962 53.1032104492 -0.0001361511 - 0.7384232879 52.4280548096 -0.0001339995 - 0.7393006682 52.4903488159 -0.0001338032 - 0.7401768565 52.5525550842 -0.0001335785 - 0.7410517335 52.6146736145 -0.0001333352 - 0.7419254184 51.9347801208 -0.0001311763 - 0.7427977920 51.9958457947 -0.0001309544 - 0.7436689734 52.0568275452 -0.0001307145 - 0.7445388436 51.3731803894 -0.0001285451 - 0.7454074025 51.4331092834 -0.0001283018 - 0.7462747693 51.4929580688 -0.0001280399 - 0.7471408844 51.5527191162 -0.0001277685 - 0.7480056882 50.8643875122 -0.0001256162 - 0.7488692403 50.9231071472 -0.0001253430 - 0.7497314811 50.9817390442 -0.0001250486 - 0.7505925298 50.2896995544 -0.0001228959 - 0.7514522672 50.3473014832 -0.0001226258 - 0.7523106933 50.4048156738 -0.0001223328 - 0.7531678677 50.4622459412 -0.0001220283 - 0.7540237904 49.7655715942 -0.0001198720 - 0.7548784614 49.8219795227 -0.0001195807 - 0.7557317615 49.8782958984 -0.0001192744 - 0.7565838695 49.1779518127 -0.0001171191 - 0.7574346662 49.2332534790 -0.0001168083 - 0.7582841516 49.2884712219 -0.0001165151 - 0.7591323853 49.3436050415 -0.0001161920 - 0.7599793077 48.6386756897 -0.0001140414 - 0.7608249187 48.6927947998 -0.0001137280 - 0.7616692781 48.7468338013 -0.0001134103 - 0.7625123262 48.0382766724 -0.0001112763 - 0.7633541226 48.0913085938 -0.0001109529 - 0.7641946077 48.1442604065 -0.0001106252 - 0.7650337815 48.1971282959 -0.0001102959 - 0.7658716440 47.4840431213 -0.0001081805 - 0.7667081952 47.5359077454 -0.0001078388 - 0.7675434947 47.5876960754 -0.0001074987 - 0.7683774829 47.6394042969 -0.0001071696 - 0.7692101598 46.9218215942 -0.0001050785 - 0.7700415254 46.9725341797 -0.0001047373 - 0.7708715796 47.0231666565 -0.0001043912 - 0.7717003822 46.3020248413 -0.0001023022 - 0.7725278139 46.3516693115 -0.0001019514 - 0.7733539343 46.4012374878 -0.0001016261 - 0.7741788030 46.4507293701 -0.0001012701 - 0.7750023007 45.7251358032 -0.0000992214 - 0.7758244872 45.7736434937 -0.0000988710 - 0.7766454220 45.8220787048 -0.0000985241 - 0.7774649858 45.8704338074 -0.0000981800 - 0.7782832384 45.1404266357 -0.0000961412 - 0.7791001797 45.1878089905 -0.0000957934 - 0.7799158096 45.2351150513 -0.0000954357 - 0.7807300687 45.2823448181 -0.0000950774 - 0.7815430164 44.5479507446 -0.0000930787 - 0.7823547125 44.5942192078 -0.0000927389 - 0.7831649780 44.6404037476 -0.0000923864 - 0.7839739919 44.6865158081 -0.0000920371 - 0.7847816348 43.9477729797 -0.0000900319 - 0.7855879664 43.9929275513 -0.0000896841 - 0.7863929868 44.0380058289 -0.0000893330 - 0.7871966362 44.0830116272 -0.0000890127 - 0.7879989743 43.3399429321 -0.0000870381 - 0.7887999415 43.3839950562 -0.0000866863 - 0.7895996571 43.4279823303 -0.0000863373 - 0.7903979421 43.4718856812 -0.0000859977 - 0.7911949158 42.7245254517 -0.0000840445 - 0.7919905782 42.7674903870 -0.0000836986 - 0.7927848697 42.8103828430 -0.0000833931 - 0.7935777903 42.8531990051 -0.0000830373 - 0.7943693995 42.1015777588 -0.0000811266 - 0.7951596379 42.1434593201 -0.0000807930 - 0.7959485650 42.1852722168 -0.0000804541 - 0.7967361212 42.2270126343 -0.0000800983 - 0.7975223660 41.4711647034 -0.0000782249 - 0.7983071804 41.5119743347 -0.0000778829 - 0.7990906835 41.5527153015 -0.0000775731 - 0.7998728752 41.5933914185 -0.0000772453 - 0.8006536365 40.8333358765 -0.0000753945 - 0.8014330864 40.8730888367 -0.0000750599 - 0.8022111654 40.9127693176 -0.0000747320 - 0.8029878736 40.9523811340 -0.0000743935 - 0.8037632108 40.1881599426 -0.0000725839 - 0.8045372367 40.2268600464 -0.0000722613 - 0.8053098321 40.2654914856 -0.0000719323 - 0.8060811162 40.3040542603 -0.0000716114 - 0.8068510294 40.3425521851 -0.0000712977 - 0.8076195121 39.5733566284 -0.0000695215 - 0.8083866835 39.6109466553 -0.0000692037 - 0.8091524839 39.6484718323 -0.0000688874 - 0.8099169135 39.6859283447 -0.0000685694 - 0.8106799126 38.9126358032 -0.0000668305 - 0.8114416003 38.9491958618 -0.0000665150 - 0.8122019172 38.9856910706 -0.0000662039 - 0.8129608035 39.0221176147 -0.0000658859 - 0.8137183785 38.2447624207 -0.0000641889 - 0.8144745231 38.2803039551 -0.0000638833 - 0.8152292967 38.3157768250 -0.0000635834 - 0.8159826994 38.3511886597 -0.0000632745 - 0.8167346716 37.5697937012 -0.0000616112 - 0.8174853325 37.6043243408 -0.0000613081 - 0.8182345629 37.6387901306 -0.0000610345 - 0.8189824224 37.6731910706 -0.0000607392 - 0.8197289109 37.7075309753 -0.0000604458 - 0.8204739690 36.9213294983 -0.0000588216 - 0.8212176561 36.9547958374 -0.0000585277 - 0.8219599128 36.9881973267 -0.0000582408 - 0.8227008581 37.0215377808 -0.0000579535 - 0.8234403133 36.2313728333 -0.0000563631 - 0.8241784573 36.2638511658 -0.0000560786 - 0.8249151707 36.2962684631 -0.0000557976 - 0.8256504536 36.3286209106 -0.0000555159 - 0.8263843656 36.3609123230 -0.0000552325 - 0.8271169066 35.5660285950 -0.0000536876 - 0.8278480172 35.5974655151 -0.0000534158 - 0.8285776973 35.6288414001 -0.0000531494 - 0.8293060064 35.6601600647 -0.0000528816 - 0.8300328851 35.6914138794 -0.0000526109 - 0.8307583928 34.8918533325 -0.0000511027 - 0.8314824700 34.9222640991 -0.0000508455 - 0.8322051167 34.9526138306 -0.0000505801 - 0.8329263926 34.9829101562 -0.0000503187 - 0.8336462379 35.0131416321 -0.0000500603 - 0.8343646526 34.2089500427 -0.0000485982 - 0.8350816965 34.2383499146 -0.0000483409 - 0.8357973099 34.2676887512 -0.0000480891 - 0.8365114927 34.2969703674 -0.0000478469 - 0.8372242451 33.4889678955 -0.0000464089 - 0.8379355669 33.5174217224 -0.0000461643 - 0.8386455178 33.5458221436 -0.0000459211 - 0.8393540382 33.5741615295 -0.0000456887 - 0.8400610685 33.6024436951 -0.0000454507 - 0.8407667279 32.7899017334 -0.0000440589 - 0.8414709568 32.8173675537 -0.0000438174 - 0.8421738148 32.8447799683 -0.0000435881 - 0.8428751826 32.8721313477 -0.0000433605 - 0.8435751200 32.8994293213 -0.0000431312 - 0.8442736268 32.0823974609 -0.0000417876 - 0.8449707031 32.1088867188 -0.0000415610 - 0.8456663489 32.1353225708 -0.0000413340 - 0.8463606238 32.1617050171 -0.0000410927 - 0.8470534086 32.1880302429 -0.0000408772 - 0.8477447033 31.3665542603 -0.0000395735 - 0.8484346271 31.3920803070 -0.0000393565 - 0.8491231203 31.4175548553 -0.0000391394 - 0.8498101234 31.4429740906 -0.0000389302 - 0.8504957557 31.4683437347 -0.0000387212 - 0.8511798978 31.4936561584 -0.0000385218 - 0.8518626094 30.6670532227 -0.0000372510 - 0.8525438905 30.6915798187 -0.0000370530 - 0.8532236814 30.7160530090 -0.0000368555 - 0.8539020419 30.7404727936 -0.0000366498 - 0.8545789719 30.7648429871 -0.0000364424 - 0.8552544713 29.9339065552 -0.0000352296 - 0.8559284806 29.9574966431 -0.0000350349 - 0.8566010594 29.9810371399 -0.0000348494 - 0.8572721481 30.0045242310 -0.0000346268 - 0.8579418659 30.0279655457 -0.0000344488 - 0.8586100340 29.1927413940 -0.0000332697 - 0.8592768312 29.2154121399 -0.0000330810 - 0.8599421382 29.2380332947 -0.0000329002 - 0.8606059551 29.2606029510 -0.0000327203 - 0.8612683415 29.2831230164 -0.0000325423 - 0.8619292378 28.4436645508 -0.0000313918 - 0.8625887036 28.4654273987 -0.0000312248 - 0.8632467389 28.4871425629 -0.0000310535 - 0.8639032841 28.5088081360 -0.0000308581 - 0.8645583391 28.5304260254 -0.0000306857 - 0.8652119637 28.5519943237 -0.0000305187 - 0.8658640981 27.7076511383 -0.0000294158 - 0.8665147424 27.7284717560 -0.0000292577 - 0.8671639562 27.7492465973 -0.0000290931 - 0.8678116798 27.7699737549 -0.0000289311 - 0.8684579730 27.7906551361 -0.0000287735 - 0.8691027164 27.8112869263 -0.0000286181 - 0.8697460294 26.9621276855 -0.0000275359 - 0.8703879118 26.9820251465 -0.0000273814 - 0.8710282445 27.0018749237 -0.0000272330 - 0.8716671467 27.0216808319 -0.0000270782 - 0.8723045588 27.0414409637 -0.0000269330 - 0.8729404807 27.0611553192 -0.0000267858 - 0.8735749125 26.2072467804 -0.0000257603 - 0.8742079139 26.2262382507 -0.0000256036 - 0.8748393655 26.2451801300 -0.0000254635 - 0.8754693866 26.2640819550 -0.0000253177 - 0.8760979176 26.2829380035 -0.0000251828 - 0.8767249584 25.4250240326 -0.0000241928 - 0.8773505092 25.4431648254 -0.0000240617 - 0.8779745698 25.4612617493 -0.0000239350 - 0.8785971403 25.4793167114 -0.0000237776 - 0.8792182207 25.4973278046 -0.0000236420 - 0.8798378110 25.5152969360 -0.0000235081 - 0.8804559112 24.6527652740 -0.0000225688 - 0.8810725212 24.6700305939 -0.0000224456 - 0.8816876411 24.6872539520 -0.0000223175 - 0.8823012710 24.7044353485 -0.0000221801 - 0.8829133511 24.7215728760 -0.0000220521 - 0.8835240006 24.7386722565 -0.0000219343 - 0.8841331005 23.8715934753 -0.0000210297 - 0.8847407699 23.8880004883 -0.0000209098 - 0.8853468895 23.9043655396 -0.0000207989 - 0.8859515190 23.9206905365 -0.0000206600 - 0.8865546584 23.9369754791 -0.0000205483 - 0.8871562481 23.9532184601 -0.0000204334 - 0.8877564073 23.9694232941 -0.0000203224 - 0.8883550167 23.0972309113 -0.0000194590 - 0.8889520764 23.1127548218 -0.0000193503 - 0.8895477057 23.1282405853 -0.0000192277 - 0.8901417851 23.1436862946 -0.0000191211 - 0.8907343745 23.1590938568 -0.0000190162 - 0.8913254738 23.1744613647 -0.0000189108 - 0.8919150233 23.1897907257 -0.0000188118 - 0.8925030828 22.3125762939 -0.0000179591 - 0.8930895925 22.3272399902 -0.0000178655 - 0.8936746120 22.3418655396 -0.0000177670 - 0.8942581415 22.3564529419 -0.0000176723 - 0.8948401213 22.3710021973 -0.0000175796 - 0.8954206109 22.3855152130 -0.0000174642 - 0.8959995508 21.5039901733 -0.0000166714 - 0.8965770006 21.5178489685 -0.0000165785 - 0.8971529007 21.5316696167 -0.0000164942 - 0.8977273107 21.5454559326 -0.0000163816 - 0.8983001709 21.5592041016 -0.0000162977 - 0.8988715410 21.5729179382 -0.0000162083 - 0.8994413614 20.6871509552 -0.0000154461 - 0.9000096321 20.7002220154 -0.0000153629 - 0.9005764127 20.7132568359 -0.0000152628 - 0.9011417031 20.7262592316 -0.0000151818 - 0.9017053843 20.7392234802 -0.0000151039 - 0.9022675753 20.7521533966 -0.0000150237 - 0.9028282762 20.7650508881 -0.0000149283 - 0.9033873677 19.8745212555 -0.0000141948 - 0.9039449692 19.8867893219 -0.0000141219 - 0.9045010805 19.8990230560 -0.0000140470 - 0.9050555825 19.9112224579 -0.0000139561 - 0.9056085944 19.9233894348 -0.0000138831 - 0.9061600566 19.9355220795 -0.0000138091 - 0.9067099690 19.9476184845 -0.0000137400 - 0.9072583914 19.9596843719 -0.0000136510 - 0.9078052044 19.0639095306 -0.0000129607 - 0.9083505273 19.0753612518 -0.0000128890 - 0.9088943005 19.0867805481 -0.0000128274 - 0.9094365239 19.0981674194 -0.0000127431 - 0.9099772573 19.1095218658 -0.0000126814 - 0.9105163813 19.1208438873 -0.0000126130 - 0.9110540152 19.1321334839 -0.0000125515 - 0.9115900397 19.1433906555 -0.0000124695 - 0.9121245742 18.2424907684 -0.0000118107 - 0.9126575589 18.2531509399 -0.0000117514 - 0.9131889343 18.2637786865 -0.0000116918 - 0.9137188196 18.2743759155 -0.0000116184 - 0.9142471552 18.2849426270 -0.0000115604 - 0.9147739410 18.2954788208 -0.0000115031 - 0.9152991176 18.3059825897 -0.0000114454 - 0.9158228040 17.4006328583 -0.0000107987 - 0.9163449407 17.4105529785 -0.0000107470 - 0.9168654680 17.4204444885 -0.0000106923 - 0.9173845053 17.4303054810 -0.0000106271 - 0.9179019332 17.4401359558 -0.0000105738 - 0.9184178710 17.4499397278 -0.0000105235 - 0.9189321995 17.4597110748 -0.0000104720 - 0.9194449782 16.5500087738 -0.0000098535 - 0.9199562073 16.5592117310 -0.0000098077 - 0.9204658866 16.5683860779 -0.0000097590 - 0.9209739566 16.5775318146 -0.0000096984 - 0.9214805365 16.5866489410 -0.0000096517 - 0.9219855070 16.5957393646 -0.0000096042 - 0.9224889278 16.6048011780 -0.0000095604 - 0.9229907393 16.6138324738 -0.0000095009 - 0.9234910607 16.6228389740 -0.0000094568 - 0.9239897728 15.7078266144 -0.0000088860 - 0.9244869351 15.7162780762 -0.0000088299 - 0.9249824882 15.7247018814 -0.0000087907 - 0.9254765511 15.7331008911 -0.0000087480 - 0.9259690046 15.7414731979 -0.0000086944 - 0.9264598489 15.7498178482 -0.0000086560 - 0.9269492030 15.7581367493 -0.0000086145 - 0.9274368882 15.7664270401 -0.0000085634 - 0.9279230833 15.7746925354 -0.0000085243 - 0.9284076691 15.7829303741 -0.0000084846 - 0.9288907051 14.8622512817 -0.0000079346 - 0.9293721318 14.8699541092 -0.0000078995 - 0.9298520088 14.8776321411 -0.0000078626 - 0.9303302765 14.8852844238 -0.0000078299 - 0.9308069944 14.8929119110 -0.0000077814 - 0.9312821627 14.9005146027 -0.0000077488 - 0.9317557216 14.9080915451 -0.0000077143 - 0.9322276711 13.9834146500 -0.0000071849 - 0.9326980710 13.9904708862 -0.0000071558 - 0.9331669211 13.9975042343 -0.0000071243 - 0.9336341619 14.0045127869 -0.0000070809 - 0.9340997934 14.0114965439 -0.0000070525 - 0.9345638752 14.0184583664 -0.0000070218 - 0.9350263476 14.0253953934 -0.0000069792 - 0.9354872108 14.0323085785 -0.0000069517 - 0.9359465241 13.1032514572 -0.0000064578 - 0.9364042878 13.1096601486 -0.0000064193 - 0.9368603826 13.1160449982 -0.0000063945 - 0.9373149276 13.1224088669 -0.0000063676 - 0.9377679229 13.1287508011 -0.0000063292 - 0.9382193089 13.1350708008 -0.0000063050 - 0.9386690855 13.1413669586 -0.0000062676 - 0.9391172528 13.1476411819 -0.0000062417 - 0.9395638704 13.1538944244 -0.0000062189 - 0.9400088787 13.1601238251 -0.0000061813 - 0.9404522777 13.1663322449 -0.0000061571 - 0.9408940673 13.1725168228 -0.0000061335 - 0.9413343072 13.1786804199 -0.0000060982 - 0.9417729378 13.1848211288 -0.0000060741 - 0.9422099590 12.2487297058 -0.0000056178 - 0.9426453710 12.2543897629 -0.0000055852 - 0.9430791736 12.2600288391 -0.0000055644 - 0.9435114264 12.2656488419 -0.0000055435 - 0.9439420700 12.2712469101 -0.0000055120 - 0.9443711042 12.2768239975 -0.0000054917 - 0.9447985291 12.2823810577 -0.0000054592 - 0.9452243447 12.2879161835 -0.0000054411 - 0.9456486106 11.3477830887 -0.0000050025 - 0.9460712075 11.3528547287 -0.0000049735 - 0.9464922547 11.3579072952 -0.0000049569 - 0.9469116330 11.3629398346 -0.0000049395 - 0.9473294616 11.3679533005 -0.0000049111 - 0.9477456808 11.3729476929 -0.0000048952 - 0.9481602311 10.4297628403 -0.0000044606 - 0.9485732317 10.4343051910 -0.0000044450 - 0.9489846230 10.4388313293 -0.0000044298 - 0.9493944049 10.4433383942 -0.0000044064 - 0.9498025775 10.4478282928 -0.0000043910 - 0.9502090812 10.4523000717 -0.0000043763 - 0.9506140351 10.4567546844 -0.0000043534 - 0.9510173798 10.4611911774 -0.0000043388 - 0.9514191151 10.4656105042 -0.0000043152 - 0.9518191814 10.4700107574 -0.0000043010 - 0.9522176981 10.4743947983 -0.0000042878 - 0.9526145458 10.4787597656 -0.0000042649 - 0.9530098438 10.4831085205 -0.0000042515 - 0.9534034729 10.4874382019 -0.0000042290 - 0.9537954926 10.4917507172 -0.0000042159 - 0.9541859031 10.4960451126 -0.0000042027 - 0.9545747042 10.5003213882 -0.0000041805 - 0.9549618959 10.5045804977 -0.0000041687 - 0.9553474188 10.5088214874 -0.0000041464 - 0.9557313323 10.5130443573 -0.0000041342 - 0.9561136961 10.5172510147 -0.0000041227 - 0.9564943910 10.5214385986 -0.0000041013 - 0.9568734169 9.5687341690 -0.0000037169 - 0.9572508931 9.5725088120 -0.0000036973 - 0.9576267004 9.5762672424 -0.0000036875 - 0.9580008984 9.5800094604 -0.0000036773 - 0.9583734870 8.6253614426 -0.0000032919 - 0.9587444663 8.6287002563 -0.0000032830 - 0.9591137767 8.6320238113 -0.0000032666 - 0.9594814777 7.6758518219 -0.0000028955 - 0.9598475695 7.6787805557 -0.0000028805 - 0.9602119923 7.6816959381 -0.0000028733 - 0.9605748653 6.7240238190 -0.0000025074 - 0.9609360099 6.7265520096 -0.0000024948 - 0.9612956047 6.7290692329 -0.0000024887 - 0.9616535306 6.7315745354 -0.0000024764 - 0.9620098472 6.7340688705 -0.0000024703 - 0.9623644948 6.7365512848 -0.0000024645 - 0.9627175331 6.7390227318 -0.0000024523 - 0.9630689621 6.7414827347 -0.0000024466 - 0.9634187222 7.7073497772 -0.0000027828 - 0.9637668729 7.7101349831 -0.0000027766 - 0.9641133547 8.6770200729 -0.0000031087 - 0.9644582868 8.6801242828 -0.0000031021 - 0.9648014903 9.6480150223 -0.0000034393 - 0.9651430845 10.6165742874 -0.0000037656 - 0.9654830694 11.5857963562 -0.0000040995 - 0.9658213854 13.5214996338 -0.0000047608 - 0.9661580920 14.4923715591 -0.0000050906 - 0.9664931297 16.4303836823 -0.0000057427 - 0.9668265581 17.4028778076 -0.0000060681 - 0.9671583176 19.3431663513 -0.0000067116 - 0.9674884677 20.3172569275 -0.0000070334 - 0.9678169489 22.2597904205 -0.0000076888 - 0.9681438208 24.2035961151 -0.0000083189 - 0.9684690237 25.1801948547 -0.0000086349 - 0.9687926173 27.1261940002 -0.0000092568 - 0.9691145420 28.1043224335 -0.0000095688 - 0.9694347978 30.0524787903 -0.0000101829 - 0.9697534442 31.0321102142 -0.0000104913 - 0.9700704813 32.0123252869 -0.0000107990 - 0.9703857899 32.9931182861 -0.0000110748 - 0.9706995487 33.9744834900 -0.0000113796 - 0.9710115790 33.9854049683 -0.0000113271 - 0.9713220000 34.9675903320 -0.0000116308 - 0.9716307521 34.9787063599 -0.0000115778 - 0.9719378948 356.7012023926 -0.0000063904 - 0.9722433686 355.3853454590 -0.0000068444 - 0.9725471735 355.0460205078 -0.0000073033 - 0.9728493690 353.7384643555 -0.0000077478 - 0.9731498957 353.4080505371 -0.0000082035 - 0.9734488130 353.0757446289 -0.0000086718 - 0.9737460017 351.7795104980 -0.0000090814 - 0.9740415812 351.4613342285 -0.0000095281 - 0.9743354917 350.1734313965 -0.0000099323 - 0.9746277928 349.8524780273 -0.0000103839 - 0.9749184251 348.5716247559 -0.0000107667 - 0.9752073884 348.2700500488 -0.0000112003 - 0.9754946828 346.9975585938 -0.0000115793 - 0.9757803679 346.7048950195 -0.0000120003 - 0.9760643840 345.4225769043 -0.0000123696 - 0.9763467312 345.1375732422 -0.0000127897 - 0.9766274095 343.8805847168 -0.0000131490 - 0.9769064784 343.6045227051 -0.0000135506 - 0.9771838188 343.3096923828 -0.0000139734 - 0.9774595499 342.0641174316 -0.0000143090 - 0.9777336121 341.8003845215 -0.0000147162 - 0.9780060649 340.5632934570 -0.0000150356 - 0.9782767892 340.2799072266 -0.0000154389 - 0.9785459042 339.0499267578 -0.0000157533 - 0.9788133502 338.8028564453 -0.0000161508 - 0.9790791273 337.5813598633 -0.0000164509 - 0.9793432355 337.3094482422 -0.0000168410 - 0.9796056747 336.0950927734 -0.0000171335 - 0.9798665047 335.8647766113 -0.0000175149 - 0.9801256061 334.6589050293 -0.0000177978 - 0.9803830981 334.3984985352 -0.0000181813 - 0.9806389213 333.1998901367 -0.0000184501 - 0.9808930755 332.9862365723 -0.0000188217 - 0.9811455607 331.7961120605 -0.0000190891 - 0.9813963771 331.5915222168 -0.0000194435 - 0.9816455245 330.3643493652 -0.0000197140 - 0.9818930030 330.1674804688 -0.0000200669 - 0.9821388721 328.9931640625 -0.0000203179 - 0.9823830128 328.8053283691 -0.0000206724 - 0.9826254845 327.5887451172 -0.0000209140 - 0.9828663468 327.4086608887 -0.0000212650 - 0.9831054807 327.2332458496 -0.0000216076 - 0.9833430052 326.0791320801 -0.0000218289 - 0.9835788608 325.8568420410 -0.0000221879 - 0.9838129878 324.7099609375 -0.0000224025 - 0.9840455055 324.5513610840 -0.0000227387 - 0.9842763543 323.4131469727 -0.0000229476 - 0.9845054746 323.2024230957 -0.0000232994 - 0.9847329855 322.0715026855 -0.0000235011 - 0.9849588275 321.9297485352 -0.0000238196 - 0.9851829410 320.8074645996 -0.0000240197 - 0.9854054451 320.6084289551 -0.0000243558 - 0.9856262207 319.4934387207 -0.0000245443 - 0.9858453870 319.3685607910 -0.0000248667 - 0.9860628247 318.2622680664 -0.0000250478 - 0.9862786531 318.0748901367 -0.0000253759 - 0.9864927530 316.9759521484 -0.0000255460 - 0.9867052436 316.8679809570 -0.0000258605 - 0.9869160056 315.7777099609 -0.0000260288 - 0.9871250987 315.6788024902 -0.0000263434 - 0.9873325229 314.5191650391 -0.0000265138 - 0.9875382781 314.4281005859 -0.0000268253 - 0.9877423644 313.3539123535 -0.0000269763 - 0.9879447818 313.2719421387 -0.0000272755 - 0.9881455302 312.1232910156 -0.0000274382 - 0.9883445501 312.0491027832 -0.0000277431 - 0.9885419607 310.9910888672 -0.0000278887 - 0.9887376428 310.9260559082 -0.0000281831 - 0.9889317155 309.7883605957 -0.0000283348 - 0.9891240597 309.7311706543 -0.0000286329 - 0.9893147349 308.6893310547 -0.0000287633 - 0.9895037413 308.6412963867 -0.0000290505 - 0.9896910787 307.5145568848 -0.0000291858 - 0.9898766875 307.4743652344 -0.0000294799 - 0.9900606871 306.4487304688 -0.0000295972 - 0.9902429581 306.4176635742 -0.0000298932 - 0.9904235601 305.3020629883 -0.0000300136 - 0.9906024933 305.2788391113 -0.0000303052 - 0.9907797575 304.2695312500 -0.0000304170 - 0.9909552932 304.1527404785 -0.0000307135 - 0.9911292195 303.1509399414 -0.0000308158 - 0.9913014174 303.1447143555 -0.0000311021 - 0.9914719462 302.1517333984 -0.0000311976 - 0.9916407466 302.0468139648 -0.0000314894 - 0.9918079376 301.0613403320 -0.0000315788 - 0.9919734001 301.0721740723 -0.0000318596 - 0.9921372533 300.0955505371 -0.0000319518 - 0.9922993779 300.0025024414 -0.0000322376 - 0.9924597740 299.0334167480 -0.0000323278 - 0.9926185608 298.0686645508 -0.0000324061 - 0.9927756190 298.1010742188 -0.0000326860 - 0.9929310083 297.0269775391 -0.0000327727 - 0.9930847287 297.0672607422 -0.0000330450 - 0.9932367206 296.1189575195 -0.0000331191 - 0.9933871031 296.1684265137 -0.0000333963 - 0.9935357571 295.1056518555 -0.0000334707 - 0.9936826825 295.1629638672 -0.0000337423 - 0.9938279986 294.2311706543 -0.0000338080 - 0.9939715862 294.1704711914 -0.0000340820 - 0.9941135049 293.2462768555 -0.0000341469 - 0.9942537546 293.3207397461 -0.0000344188 - 0.9943922758 292.4054565430 -0.0000344719 - 0.9945291281 292.3566894531 -0.0000347497 - 0.9946643114 291.4490356445 -0.0000348075 - 0.9947977662 291.5405273438 -0.0000350778 - 0.9949296117 290.6418762207 -0.0000351242 - 0.9950597286 290.6050415039 -0.0000354002 - 0.9951881170 289.7139587402 -0.0000354458 - 0.9953148365 289.8226318359 -0.0000357155 - 0.9954398870 288.7990722656 -0.0000357564 - 0.9955632687 288.9156494141 -0.0000360225 - 0.9956849813 288.0412292480 -0.0000360618 - 0.9958049655 288.1670227051 -0.0000363341 - 0.9959232211 287.1549377441 -0.0000363677 - 0.9960398674 287.2886657715 -0.0000366401 - 0.9961547852 286.4308776855 -0.0000366753 - 0.9962679744 285.4270629883 -0.0000367063 - 0.9963795543 285.5732727051 -0.0000369686 - 0.9964894056 284.7276306152 -0.0000369990 - 0.9965975881 284.8830566406 -0.0000372647 - 0.9967040420 283.8908081055 -0.0000372888 - 0.9968088269 284.0541687012 -0.0000375516 - 0.9969119430 283.2252502441 -0.0000375711 - 0.9970133305 283.2383728027 -0.0000378346 - 0.9971130490 282.4171752930 -0.0000378548 - 0.9972110391 282.5976562500 -0.0000381253 - 0.9973074198 281.6222229004 -0.0000381368 - 0.9974020123 281.8106384277 -0.0000384027 - 0.9974949956 281.0062866211 -0.0000384146 - 0.9975862503 281.2039489746 -0.0000386805 - 0.9976758361 280.2401428223 -0.0000386895 - 0.9977636933 280.4457702637 -0.0000389524 - 0.9978498816 279.6581726074 -0.0000389677 - 0.9979344010 278.7027893066 -0.0000389634 - 0.9980171919 278.9208984375 -0.0000392294 - 0.9980983138 278.1456298828 -0.0000392324 - 0.9981777072 278.1968383789 -0.0000394910 - 0.9982554317 277.4293212891 -0.0000394922 - 0.9983314872 277.6646118164 -0.0000397591 - 0.9984058142 276.7261962891 -0.0000397505 - 0.9984784722 276.9694519043 -0.0000400207 - 0.9985494018 276.2188110352 -0.0000400128 - 0.9986186624 276.2874755859 -0.0000402726 - 0.9986862540 275.5447082520 -0.0000402664 - 0.9987521172 275.8051452637 -0.0000405354 - 0.9988163114 275.0714416504 -0.0000405237 - 0.9988787770 275.1521606445 -0.0000407788 - 0.9989395738 274.4263000488 -0.0000407731 - 0.9989987016 274.7039489746 -0.0000410393 - 0.9990561008 273.7944030762 -0.0000410201 - 0.9991117716 273.0808715820 -0.0000410064 - 0.9991658330 273.3710937500 -0.0000412727 - 0.9992181659 272.4700622559 -0.0000412433 - 0.9992687702 272.7682189941 -0.0000415121 - 0.9993177056 272.0717163086 -0.0000414997 - 0.9993649721 272.1786499023 -0.0000417533 - 0.9994105101 271.4900207520 -0.0000417352 - 0.9994543791 271.6023559570 -0.0000419896 - 0.9994965196 270.9215698242 -0.0000419665 - 0.9995369911 271.2449035645 -0.0000422353 - 0.9995757341 270.3664550781 -0.0000421990 - 0.9996128082 270.6977233887 -0.0000424685 - 0.9996482134 270.0339965820 -0.0000424458 - 0.9996818900 270.1638488770 -0.0000426986 - 0.9997138977 269.5080261230 -0.0000426722 - 0.9997441769 268.8567504883 -0.0000426502 - 0.9997727871 268.9953613281 -0.0000429042 - 0.9997997284 268.3519897461 -0.0000428733 - 0.9998249412 268.7130432129 -0.0000431467 - 0.9998484254 267.8605651855 -0.0000430958 - 0.9998702407 268.2295837402 -0.0000433722 - 0.9998903871 267.3825073242 -0.0000433251 - 0.9999088049 267.7594604492 -0.0000435941 - 0.9999255538 267.1411132812 -0.0000435582 - 0.9999405742 267.3027038574 -0.0000438143 - 0.9999539256 266.6922912598 -0.0000437811 - 0.9999656081 267.0864868164 -0.0000440582 - 0.9999755621 266.2568359375 -0.0000439985 - 0.9999837875 266.6589660645 -0.0000442718 - 0.9999903440 266.0657043457 -0.0000442364 - 0.9999952316 265.2448120117 -0.0000441833 - 0.9999983907 265.6594848633 -0.0000444537 - 0.9999998808 264.8440551758 -0.0000443930 - 0.9999996424 265.2666931152 -0.0000446674 - 0.9999977350 264.6939697266 -0.0000446285 - 0.9999941587 264.8872985840 -0.0000448875 - 0.9999888539 264.3225097656 -0.0000448414 - 0.9999818206 264.5212402344 -0.0000450958 - 0.9999731183 263.9644470215 -0.0000450562 - 0.9999627471 264.4122314453 -0.0000453359 - 0.9999506474 263.6197814941 -0.0000452656 - 0.9999368787 264.0755615234 -0.0000455501 - 0.9999214411 263.2886047363 -0.0000454762 - 0.9999042153 262.7523498535 -0.0000454283 - 0.9998853803 263.2206726074 -0.0000457123 - 0.9998648167 262.4425354004 -0.0000456386 - 0.9998425841 262.9188232422 -0.0000459263 - 0.9998186231 262.1461486816 -0.0000458452 - 0.9997929335 262.6303710938 -0.0000461313 - 0.9997656345 262.1194152832 -0.0000460834 - 0.9997365475 262.3553466797 -0.0000463395 - 0.9997058511 261.8524169922 -0.0000462870 - 0.9996734262 262.0938110352 -0.0000465476 - 0.9996392727 261.5988464355 -0.0000464964 - 0.9996034503 261.8456726074 -0.0000467530 - 0.9995659590 261.3587646484 -0.0000467015 - 0.9995267391 260.8764648438 -0.0000466476 - 0.9994858503 261.1320800781 -0.0000469107 - 0.9994432330 260.6578674316 -0.0000468584 - 0.9993989468 260.9188842773 -0.0000471147 - 0.9993529916 260.4526977539 -0.0000470619 - 0.9993053079 260.7191467285 -0.0000473171 - 0.9992559552 260.2609863281 -0.0000472640 - 0.9992048740 260.5328674316 -0.0000475201 - 0.9991521239 260.0827636719 -0.0000474693 - 0.9990976453 260.6363830566 -0.0000477642 - 0.9990414977 259.9179687500 -0.0000476744 - 0.9989836812 260.4795532227 -0.0000479708 - 0.9989241362 259.7666931152 -0.0000478802 - 0.9988628626 260.3361816406 -0.0000481813 - 0.9987999797 259.6288757324 -0.0000480852 - 0.9987353683 259.2075805664 -0.0000480321 - 0.9986690283 259.5045471191 -0.0000482889 - 0.9986010194 259.0913085938 -0.0000482324 - 0.9985313416 259.3937072754 -0.0000484941 - 0.9984599352 258.9885253906 -0.0000484377 - 0.9983868599 259.2963867188 -0.0000487034 - 0.9983121157 258.8992614746 -0.0000486444 - 0.9982356429 259.5050354004 -0.0000489529 - 0.9981574416 258.8234252930 -0.0000488542 - 0.9980776310 259.4371643066 -0.0000491582 - 0.9979960918 258.7611694336 -0.0000490632 - 0.9979128242 259.3827819824 -0.0000493698 - 0.9978278875 258.7123413086 -0.0000492648 - 0.9977412820 259.3418884277 -0.0000495830 - 0.9976529479 258.6770629883 -0.0000494799 - 0.9975629449 258.3169250488 -0.0000494195 - 0.9974712729 258.6552734375 -0.0000496856 - 0.9973778725 258.3032226562 -0.0000496318 - 0.9972828031 258.6469726562 -0.0000499028 - 0.9971860647 258.3030090332 -0.0000498429 - 0.9970875978 258.6521911621 -0.0000501101 - 0.9969874620 258.3163146973 -0.0000500568 - 0.9968855977 258.6708984375 -0.0000503215 - 0.9967820644 258.3431091309 -0.0000502699 - 0.9966768622 258.7031250000 -0.0000505394 - 0.9965699315 258.3834533691 -0.0000504818 - 0.9964613318 258.7488403320 -0.0000507585 - 0.9963510633 258.4372558594 -0.0000507031 - 0.9962390661 258.8080749512 -0.0000509757 - 0.9961254001 258.1848144531 -0.0000508703 - 0.9960100651 257.8848266602 -0.0000508124 - 0.9958930016 258.2631835938 -0.0000510873 - 0.9957742691 257.9713134766 -0.0000510373 - 0.9956538677 258.3550720215 -0.0000513079 - 0.9955317378 258.0712890625 -0.0000512629 - 0.9954079390 258.4604797363 -0.0000515404 - 0.9952824712 258.1848144531 -0.0000514866 - 0.9951552749 258.5793762207 -0.0000517609 - 0.9950264692 258.3118591309 -0.0000517126 - 0.9948958755 258.7118225098 -0.0000519955 - 0.9947636724 258.1190185547 -0.0000518876 - 0.9946297407 258.8577270508 -0.0000522312 - 0.9944941401 258.2706298828 -0.0000521177 - 0.9943568707 259.0171813965 -0.0000524641 - 0.9942178726 258.4357299805 -0.0000523568 - 0.9940772057 259.1901245117 -0.0000527059 - 0.9939348698 258.6143493652 -0.0000525973 - 0.9937908053 259.3765563965 -0.0000529508 - 0.9936451316 258.8064575195 -0.0000528441 - 0.9934977293 258.2386779785 -0.0000527310 - 0.9933485985 259.0120849609 -0.0000530910 - 0.9931978583 258.4499816895 -0.0000529837 - 0.9930453897 259.2312316895 -0.0000533492 - 0.9928912520 258.6748046875 -0.0000532382 - 0.9927354455 259.1134338379 -0.0000535324 - 0.9925779104 258.9131164551 -0.0000534993 - 0.9924187660 259.3571166992 -0.0000537934 - 0.9922578931 259.1649780273 -0.0000537593 - 0.9920952916 259.6143188477 -0.0000540639 - 0.9919310808 259.0737304688 -0.0000539569 - 0.9917651415 259.8850097656 -0.0000543361 - 0.9915975928 259.3501586914 -0.0000542287 - 0.9914283156 260.1692199707 -0.0000546088 - 0.9912573099 259.6400451660 -0.0000545047 - 0.9910846949 260.1042785645 -0.0000548154 - 0.9909103513 259.9434509277 -0.0000547873 - 0.9907343388 260.4130249023 -0.0000551076 - 0.9905566573 260.2603149414 -0.0000550822 - 0.9903773069 260.7352905273 -0.0000554044 - 0.9901962876 260.2220153809 -0.0000553005 - 0.9900135398 261.0709838867 -0.0000557093 - 0.9898291826 260.5634460449 -0.0000556097 - 0.9896430969 260.0582580566 -0.0000555118 - 0.9894553423 260.9183654785 -0.0000559209 - 0.9892659187 260.4189147949 -0.0000558255 - 0.9890748262 261.2868041992 -0.0000562432 - 0.9888820052 260.7930297852 -0.0000561500 - 0.9886875749 261.2903137207 -0.0000564860 - 0.9884914160 261.1806335449 -0.0000564854 - 0.9882935882 261.6832275391 -0.0000568242 - 0.9880941510 261.1997375488 -0.0000567442 - 0.9878929853 262.0896606445 -0.0000571714 - 0.9876900911 261.6118469238 -0.0000570905 - 0.9874855876 262.1239624023 -0.0000574431 - 0.9872794151 262.0374755859 -0.0000574526 - 0.9870715737 262.5548706055 -0.0000578135 - 0.9868620038 262.0873413086 -0.0000577362 - 0.9866508245 262.9992675781 -0.0000581870 - 0.9864379168 262.5374755859 -0.0000581166 - 0.9862233996 263.0643005371 -0.0000584891 - 0.9860071540 263.0010375977 -0.0000585228 - 0.9857892394 263.5332031250 -0.0000588906 - 0.9855697155 263.0817260742 -0.0000588262 - 0.9853484631 263.6179504395 -0.0000592132 - 0.9851255417 263.5697631836 -0.0000592485 - 0.9849009514 264.1113281250 -0.0000596370 - 0.9846746922 263.6701354980 -0.0000595869 - 0.9844467640 264.6181030273 -0.0000600882 - 0.9842172265 264.1826782227 -0.0000600419 - 0.9839859605 264.7336425781 -0.0000604432 - 0.9837530255 264.7086791992 -0.0000605029 - 0.9835184216 265.2648925781 -0.0000609211 - 0.9832821488 264.8397827148 -0.0000608891 - 0.9830442667 265.4001159668 -0.0000613072 - 0.9828046560 265.3901977539 -0.0000613915 - 0.9825633764 265.9558105469 -0.0000618149 - 0.9823204875 265.5410156250 -0.0000618008 - 0.9820758700 266.5249328613 -0.0000623503 - 0.9818295836 266.1159057617 -0.0000623345 - 0.9815816879 266.6908569336 -0.0000627943 - 0.9813321233 266.2864074707 -0.0000627901 - 0.9810808301 267.2843933105 -0.0000633586 - 0.9808279276 266.8856811523 -0.0000633673 - 0.9805733562 267.4700012207 -0.0000638374 - 0.9803171158 267.0758666992 -0.0000638447 - 0.9800592065 268.0879211426 -0.0000644520 - 0.9797996879 267.6995849609 -0.0000644856 - 0.9795384407 268.2931823730 -0.0000649858 - 0.9792755842 267.9094238281 -0.0000650026 - 0.9790109992 268.9354858398 -0.0000656494 - 0.9787448049 268.5574951172 -0.0000656900 - 0.9784769416 269.1604309082 -0.0000662252 - 0.9782074094 268.7870178223 -0.0000662664 - 0.9779362679 269.3940124512 -0.0000668092 - 0.9776633978 269.4594726562 -0.0000670080 - 0.9773889184 270.0716552734 -0.0000675700 - 0.9771127701 269.7086486816 -0.0000676468 - 0.9768349528 270.3248901367 -0.0000682186 - 0.9765554667 270.4053955078 -0.0000684559 - 0.9762743711 271.0268554688 -0.0000690339 - 0.9759916067 270.6741943359 -0.0000691456 - 0.9757071733 271.2997131348 -0.0000697522 - 0.9754210711 270.9516601562 -0.0000698804 - 0.9751332998 272.0259704590 -0.0000706423 - 0.9748439193 271.6837158203 -0.0000707906 - 0.9745528698 272.3184509277 -0.0000714350 - 0.9742602110 271.9807739258 -0.0000715966 - 0.9739658237 272.6195678711 -0.0000722491 - 0.9736698270 272.2864990234 -0.0000724302 - 0.9733721614 273.3810424805 -0.0000732656 - 0.9730728865 273.0538024902 -0.0000734645 - 0.9727719426 273.7017517090 -0.0000741716 - 0.9724693298 273.3791198730 -0.0000743933 - 0.9721650481 274.0310668945 -0.0000751147 - 0.9718591571 273.7130432129 -0.0000753580 - 0.9715516567 274.8277587891 -0.0000762731 - 0.9712424278 274.5155029297 -0.0000765388 - 0.9709315896 275.1766662598 -0.0000773078 - 0.9706190825 274.8690185547 -0.0000776094 - 0.9703049660 275.5341796875 -0.0000784178 - 0.9699891806 275.2312011719 -0.0000787216 - 0.9696717858 276.3659973145 -0.0000797132 - 0.9693527222 276.0687866211 -0.0000800635 - 0.9690319896 276.7430725098 -0.0000809459 - 0.9687096477 276.4504699707 -0.0000812851 - 0.9683856368 277.1287536621 -0.0000821907 - 0.9680600166 277.8088378906 -0.0000831095 - 0.9677327275 277.5230407715 -0.0000835209 - 0.9674038291 278.2071228027 -0.0000844633 - 0.9670732617 278.4007873535 -0.0000850807 - 0.9667410851 279.0899963379 -0.0000860606 - 0.9664072394 278.8146057129 -0.0000865212 - 0.9660717845 279.5077819824 -0.0000875602 - 0.9657346606 279.2370300293 -0.0000880639 - 0.9653959274 279.9341430664 -0.0000891079 - 0.9650555253 279.6680297852 -0.0000896421 - 0.9647135139 280.3691406250 -0.0000907501 - 0.9643698335 280.1076354980 -0.0000913136 - 0.9640245438 280.8126525879 -0.0000924521 - 0.9636775851 281.0420837402 -0.0000932713 - 0.9633290768 281.7522277832 -0.0000944440 - 0.9629788399 281.5011596680 -0.0000951101 - 0.9626270533 282.2152404785 -0.0000963402 - 0.9622735977 281.9688110352 -0.0000970284 - 0.9619184732 282.6868286133 -0.0000983215 - 0.9615617394 283.4065856934 -0.0000995987 - 0.9612033963 283.1669616699 -0.0001003367 - 0.9608434439 283.8906860352 -0.0001017039 - 0.9604818225 283.6557006836 -0.0001025166 - 0.9601185918 284.3833312988 -0.0001038839 - 0.9597536922 284.1530151367 -0.0001047646 - 0.9593871832 284.8845520020 -0.0001062026 - 0.9590190649 284.6588745117 -0.0001071051 - 0.9586493373 285.3943481445 -0.0001086226 - 0.9582779408 285.1732788086 -0.0001095544 - 0.9579049945 286.4170227051 -0.0001114008 - 0.9575303197 286.2017211914 -0.0001124192 - 0.9571540952 286.9461669922 -0.0001140222 - 0.9567762613 287.6923217773 -0.0001156729 - 0.9563967586 287.4838256836 -0.0001167582 - 0.9560156465 288.2338867188 -0.0001184911 - 0.9556329250 288.0300292969 -0.0001196487 - 0.9552485347 288.7839355469 -0.0001214200 - 0.9548625946 288.5847778320 -0.0001226795 - 0.9544749856 289.3425903320 -0.0001245109 - 0.9540857673 289.1480712891 -0.0001257539 - 0.9536949396 289.9097290039 -0.0001277234 - 0.9533025026 289.7198486328 -0.0001290167 - 0.9529084563 290.4854125977 -0.0001310338 - 0.9525128007 290.3001708984 -0.0001324212 - 0.9521154761 291.0695800781 -0.0001345204 - 0.9517166018 291.8406982422 -0.0001366232 - 0.9513160586 291.6622619629 -0.0001381205 - 0.9509139061 292.4372558594 -0.0001402873 - 0.9505102038 292.2634582520 -0.0001418742 - 0.9501048326 293.0422973633 -0.0001441467 - 0.9496978521 292.8731689453 -0.0001458241 - 0.9492893219 293.6558227539 -0.0001481943 - 0.9488791227 293.4913330078 -0.0001499542 - 0.9484673142 294.2778320312 -0.0001523560 - 0.9480538964 294.5338439941 -0.0001544265 - 0.9476389289 294.3750305176 -0.0001562997 - 0.9472222924 295.1659545898 -0.0001588628 - 0.9468040466 295.0117797852 -0.0001607682 - 0.9463842511 295.8065490723 -0.0001634264 - 0.9459627867 295.6570434570 -0.0001654429 - 0.9455397725 296.4556274414 -0.0001681821 - 0.9451151490 296.3107604980 -0.0001702830 - 0.9446889162 297.1131286621 -0.0001731634 - 0.9442610741 297.9171752930 -0.0001759444 - 0.9438316226 297.7791137695 -0.0001782317 - 0.9434005618 298.5869445801 -0.0001812697 - 0.9429679513 298.4535217285 -0.0001835048 - 0.9425336719 299.2651367188 -0.0001866376 - 0.9420978427 299.1363525391 -0.0001890627 - 0.9416604042 299.4031372070 -0.0001916967 - 0.9412213564 299.2779541016 -0.0001942751 - 0.9407807589 300.0960693359 -0.0001975239 - 0.9403385520 300.9158325195 -0.0002008575 - 0.9398947358 300.7973632812 -0.0002035022 - 0.9394493103 301.6209106445 -0.0002068919 - 0.9390022755 301.5071105957 -0.0002096669 - 0.9385536909 302.3344116211 -0.0002131600 - 0.9381034970 302.2252502441 -0.0002160361 - 0.9376517534 303.0562744141 -0.0002196454 - 0.9371983409 303.3295288086 -0.0002227690 - 0.9367433786 303.2260131836 -0.0002257963 - 0.9362868667 304.0614013672 -0.0002295056 - 0.9358287454 303.9625549316 -0.0002326584 - 0.9353690147 304.8016662598 -0.0002365507 - 0.9349076748 304.7074584961 -0.0002397833 - 0.9344447851 305.5502929688 -0.0002437714 - 0.9339803457 306.3947448730 -0.0002478563 - 0.9335142970 305.7392272949 -0.0002505120 - 0.9330466390 306.5863342285 -0.0002546851 - 0.9325774312 306.5024414062 -0.0002580660 - 0.9321066141 307.3532714844 -0.0002623365 - 0.9316342473 307.2740478516 -0.0002658799 - 0.9311602712 308.1285705566 -0.0002702859 - 0.9306847453 308.4102172852 -0.0002740299 - 0.9302076101 308.3366394043 -0.0002777072 - 0.9297289252 309.1953735352 -0.0002821943 - 0.9292486310 309.1264648438 -0.0002860057 - 0.9287667871 309.9888916016 -0.0002905462 - 0.9282833338 310.8529357910 -0.0002952372 - 0.9277983904 310.2098999023 -0.0002984325 - 0.9273117781 311.0765380859 -0.0003031677 - 0.9268236756 311.0179748535 -0.0003071708 - 0.9263339639 311.8882446289 -0.0003120434 - 0.9258426428 311.8342895508 -0.0003161804 - 0.9253497720 312.1221313477 -0.0003203263 - 0.9248553514 312.9966125488 -0.0003252996 - 0.9243593812 312.9483642578 -0.0003296165 - 0.9238618016 313.8264770508 -0.0003345924 - 0.9233627319 313.7828063965 -0.0003389984 - 0.9228619933 314.0731811523 -0.0003432381 - 0.9223597646 314.9555053711 -0.0003484967 - 0.9218559265 314.9174804688 -0.0003529645 - 0.9213505387 315.8034057617 -0.0003583010 - 0.9208436012 315.1744689941 -0.0003619238 - 0.9203351140 316.0629882812 -0.0003672651 - 0.9198250771 316.9530334473 -0.0003727014 - 0.9193134308 316.9253234863 -0.0003772486 - 0.9188002348 317.8190002441 -0.0003827583 - 0.9182854891 317.1950988770 -0.0003865911 - 0.9177691936 318.0913391113 -0.0003920536 - 0.9172513485 318.9891357422 -0.0003976616 - 0.9167319536 318.9717102051 -0.0004023628 - 0.9162109494 319.2680664062 -0.0004071720 - 0.9156884551 319.2542419434 -0.0004119616 - 0.9151644111 320.1581420898 -0.0004176395 - 0.9146387577 321.0635986328 -0.0004233692 - 0.9141116142 320.4473266602 -0.0004271942 - 0.9135828614 321.3553161621 -0.0004330385 - 0.9130526185 321.3517456055 -0.0004379448 - 0.9125207663 321.6510620117 -0.0004427166 - 0.9119874239 322.5631103516 -0.0004485885 - 0.9114525318 322.5651855469 -0.0004536125 - 0.9109160304 323.4807739258 -0.0004594086 - 0.9103780389 322.8711547852 -0.0004633061 - 0.9098384976 323.7892456055 -0.0004692804 - 0.9092974067 324.7088623047 -0.0004751426 - 0.9087548256 324.1018066406 -0.0004790691 - 0.9082106352 325.0238952637 -0.0004850293 - 0.9076648951 325.0398559570 -0.0004900717 - 0.9071176648 325.3430480957 -0.0004947276 - 0.9065688848 326.2691345215 -0.0005007003 - 0.9060185552 326.2907104492 -0.0005059412 - 0.9054666758 327.2203063965 -0.0005118294 - 0.9049133062 327.5248718262 -0.0005165017 - 0.9043583870 327.5520935059 -0.0005216430 - 0.9038019180 328.4856567383 -0.0005275792 - 0.9032438993 327.8879089355 -0.0005313367 - 0.9026843905 328.8239746094 -0.0005372091 - 0.9021233320 329.7614746094 -0.0005433362 - 0.9015607834 329.1663208008 -0.0005469175 - 0.9009966254 330.1063232422 -0.0005528750 - 0.9004309773 330.1473388672 -0.0005578809 - 0.8998638391 330.4552001953 -0.0005624002 - 0.8992951512 331.3991394043 -0.0005683028 - 0.8987249136 330.8081359863 -0.0005717598 - 0.8981531858 331.7545166016 -0.0005776275 - 0.8975799084 332.7023315430 -0.0005833994 - 0.8970051408 332.1139526367 -0.0005869057 - 0.8964288235 333.0642089844 -0.0005926944 - 0.8958510160 333.1200561523 -0.0005976484 - 0.8952716589 333.4301452637 -0.0006018367 - 0.8946908116 334.3842773438 -0.0006075194 - 0.8941084146 333.8001098633 -0.0006108627 - 0.8935245275 334.7566833496 -0.0006163665 - 0.8929390907 335.7146606445 -0.0006220122 - 0.8923521638 335.1331481934 -0.0006251834 - 0.8917637467 336.0935668945 -0.0006307376 - 0.8911737800 336.4048156738 -0.0006346182 - 0.8905823231 336.4764709473 -0.0006392767 - 0.8899893761 337.4407348633 -0.0006446854 - 0.8893948793 336.8634338379 -0.0006475894 - 0.8887988925 337.8300781250 -0.0006529702 - 0.8882014155 338.1426086426 -0.0006565858 - 0.8876023889 338.2234802246 -0.0006610157 - 0.8870018721 339.1939086914 -0.0006662469 - 0.8863998652 339.5073242188 -0.0006696783 - 0.8857963681 339.5937500000 -0.0006740270 - 0.8851913214 339.9075317383 -0.0006773808 - 0.8845848441 340.8822021484 -0.0006824424 - 0.8839768171 340.3118591309 -0.0006848963 - 0.8833673000 341.2888183594 -0.0006898481 - 0.8827562928 341.3844604492 -0.0006939230 - 0.8821437955 341.6995239258 -0.0006969806 - 0.8815298080 342.6802978516 -0.0007017283 - 0.8809142709 342.1142578125 -0.0007039548 - 0.8802973032 343.0973510742 -0.0007086074 - 0.8796787858 343.4126586914 -0.0007113964 - 0.8790588379 343.5184631348 -0.0007152536 - 0.8784373999 343.8342285156 -0.0007179481 - 0.8778144121 344.8213806152 -0.0007223441 - 0.8771899939 344.2597045898 -0.0007241844 - 0.8765640259 345.2492675781 -0.0007285331 - 0.8759366274 346.2401733398 -0.0007327750 - 0.8753077388 345.6811828613 -0.0007344425 - 0.8746773601 346.6744079590 -0.0007385549 - 0.8740454912 346.9911499023 -0.0007407780 - 0.8734121323 347.1126708984 -0.0007441142 - 0.8727772832 347.4297790527 -0.0007461829 - 0.8721410036 348.4270324707 -0.0007501045 - 0.8715031743 347.8724670410 -0.0007513718 - 0.8708639145 348.8720397949 -0.0007552117 - 0.8702231646 348.3191528320 -0.0007563183 - 0.8695809841 349.3210144043 -0.0007599928 - 0.8689372540 349.6387329102 -0.0007616943 - 0.8682920933 349.7739868164 -0.0007645348 - 0.8676454425 350.0921630859 -0.0007661017 - 0.8669973612 351.0979614258 -0.0007695386 - 0.8663477898 350.5494995117 -0.0007702746 - 0.8656967282 350.8674621582 -0.0007716256 - 0.8650442362 351.8759765625 -0.0007748711 - 0.8643902540 351.3292846680 -0.0007754515 - 0.8637347817 352.3400268555 -0.0007785754 - 0.8630778790 352.6581115723 -0.0007796159 - 0.8624194860 352.8081054688 -0.0007820051 - 0.8617596626 353.1265869141 -0.0007829560 - 0.8610983491 354.1412353516 -0.0007858096 - 0.8604356050 353.5990295410 -0.0007860281 - 0.8597713709 354.6159362793 -0.0007887763 - 0.8591057062 354.9345703125 -0.0007894582 - 0.8584385514 355.2526245117 -0.0007900743 - 0.8577699661 355.4136657715 -0.0007920651 - 0.8570999503 355.7321166992 -0.0007925525 - 0.8564284444 356.7531738281 -0.0007949923 - 0.8557555079 356.2155456543 -0.0007947933 - 0.8550810814 357.2388610840 -0.0007971299 - 0.8544052839 357.5574035645 -0.0007973624 - 0.8537279367 357.0216064453 -0.0007969890 - 0.8530492187 358.0474548340 -0.0007991469 - 0.8523690104 358.3657531738 -0.0007991811 - 0.8516873717 358.5415039062 -0.0008007144 - 0.8510043025 358.8601684570 -0.0008006235 - 0.8503198028 359.8897705078 -0.0008025634 - 0.8496338129 359.3585205078 -0.0008018849 - 0.8489464521 359.6770019531 -0.0008016183 - 0.8482576013 360.7091064453 -0.0008033718 - 0.8475673199 360.1797485352 -0.0008025470 - 0.8468756080 360.4979553223 -0.0008021403 - 0.8461824059 361.5325927734 -0.0008037236 - 0.8454878330 361.0050354004 -0.0008027274 - 0.8447918296 362.0418395996 -0.0008042153 - 0.8440943360 362.3601074219 -0.0008035916 - 0.8433954716 361.8344116211 -0.0008024562 - 0.8426951766 362.8737182617 -0.0008038105 - 0.8419933915 363.1917724609 -0.0008030052 - 0.8412902355 363.5092163086 -0.0008022058 - 0.8405856490 363.7096557617 -0.0008029336 - 0.8398796320 364.0274658203 -0.0008019677 - 0.8391721845 365.0706787109 -0.0008030671 - 0.8384633064 364.5496520996 -0.0008016170 - 0.8377529979 364.8672485352 -0.0008005097 - 0.8370413184 365.9128723145 -0.0008014644 - 0.8363281488 365.3937377930 -0.0007999197 - 0.8356136084 365.7110900879 -0.0007987112 - 0.8348976374 366.7591552734 -0.0007994964 - 0.8341802955 367.0760803223 -0.0007981862 - 0.8334614635 366.5589599609 -0.0007964489 - 0.8327412605 367.6093750000 -0.0007970909 - 0.8320196271 367.9260864258 -0.0007957052 - 0.8312966228 367.4108581543 -0.0007938748 - 0.8305721879 368.4637145996 -0.0007943952 - 0.8298463225 368.7801208496 -0.0007928106 - 0.8291190863 368.2668151855 -0.0007908848 - 0.8283904195 369.3220214844 -0.0007913256 - 0.8276603818 369.6381530762 -0.0007896603 - 0.8269288540 369.9536743164 -0.0007878814 - 0.8261960149 369.4423828125 -0.0007858365 - 0.8254617453 370.5001831055 -0.0007861104 - 0.8247260451 370.8154602051 -0.0007843441 - 0.8239889741 370.3060913086 -0.0007821714 - 0.8232505322 371.3662109375 -0.0007822902 - 0.8225106597 371.6811828613 -0.0007803768 - 0.8217694163 371.9955444336 -0.0007784059 - 0.8210267425 372.2362060547 -0.0007781541 - 0.8202826977 372.5509338379 -0.0007761470 - 0.8195372820 372.8649597168 -0.0007740204 - 0.8187904954 372.3596191406 -0.0007717699 - 0.8180422783 373.4245910645 -0.0007716623 - 0.8172926903 373.7383422852 -0.0007695269 - 0.8165416718 374.0514526367 -0.0007673104 - 0.8157893419 373.5481872559 -0.0007649246 - 0.8150355816 374.6156921387 -0.0007646508 - 0.8142804503 374.9285278320 -0.0007624048 - 0.8135239482 374.4272155762 -0.0007599187 - 0.8127660155 374.7395324707 -0.0007576300 - 0.8120067716 375.8095092773 -0.0007572993 - 0.8112460971 376.1213684082 -0.0007549310 - 0.8104841113 375.6221618652 -0.0007523323 - 0.8097206950 375.9335327148 -0.0007499919 - 0.8089559078 377.0059814453 -0.0007494715 - 0.8081898093 376.5087280273 -0.0007468634 - 0.8074222803 376.8198242188 -0.0007444308 - 0.8066533804 377.1302490234 -0.0007419800 - 0.8058831692 378.2050781250 -0.0007413286 - 0.8051115274 377.7099609375 -0.0007386779 - 0.8043385744 378.0200805664 -0.0007361028 - 0.8035641909 378.3295898438 -0.0007335421 - 0.8027884960 378.6384582520 -0.0007310443 - 0.8020114303 378.9138488770 -0.0007301864 - 0.8012329936 379.2230224609 -0.0007275809 - 0.8004532456 379.5315551758 -0.0007249438 - 0.7996720672 379.0397949219 -0.0007221644 - 0.7988895774 379.3478088379 -0.0007194633 - 0.7981057167 380.4285583496 -0.0007186943 - 0.7973205447 380.7361145020 -0.0007159568 - 0.7965340018 380.2464904785 -0.0007132696 - 0.7957460880 380.5535278320 -0.0007105360 - 0.7949568033 380.8599853516 -0.0007078315 - 0.7941662073 381.9432067871 -0.0007068700 - 0.7933742404 381.4557800293 -0.0007040522 - 0.7925809622 381.7618713379 -0.0007013026 - 0.7917863131 382.0673217773 -0.0006984798 - 0.7909903526 382.3721008301 -0.0006956580 - 0.7901930213 382.6676025391 -0.0006946277 - 0.7893943787 382.9727172852 -0.0006918899 - 0.7885943651 383.2771606445 -0.0006890647 - 0.7877930403 383.5809631348 -0.0006862688 - 0.7869903445 383.0971374512 -0.0006832857 - 0.7861863375 383.4004211426 -0.0006804584 - 0.7853810191 383.7031250000 -0.0006776107 - 0.7845743299 384.7922973633 -0.0006766340 - 0.7837663293 384.3106994629 -0.0006736526 - 0.7829570174 384.6130371094 -0.0006707557 - 0.7821463346 384.9146728516 -0.0006678806 - 0.7813343406 385.2156982422 -0.0006650780 - 0.7805210352 384.7355346680 -0.0006620285 - 0.7797064185 385.0360717773 -0.0006591349 - 0.7788904905 386.1287231445 -0.0006581513 - 0.7780731916 386.4287109375 -0.0006551776 - 0.7772545815 385.9508056641 -0.0006522163 - 0.7764347196 386.2503051758 -0.0006493731 - 0.7756134868 386.5491943359 -0.0006464905 - 0.7747909427 386.8474121094 -0.0006434753 - 0.7739670873 386.3709716797 -0.0006405650 - 0.7731419206 386.6686706543 -0.0006376142 - 0.7723154426 387.7648620605 -0.0006364709 - 0.7714876533 388.0620727539 -0.0006336229 - 0.7706585526 387.5879211426 -0.0006306359 - 0.7698281407 387.8846130371 -0.0006276941 - 0.7689964175 388.1806640625 -0.0006248088 - 0.7681633830 388.4760437012 -0.0006218384 - 0.7673290968 388.0034484863 -0.0006189325 - 0.7664934993 388.2983703613 -0.0006160439 - 0.7656565309 388.5926208496 -0.0006131052 - 0.7648183703 388.8861999512 -0.0006102370 - 0.7639788389 389.9859924316 -0.0006089098 - 0.7631380558 389.5158691406 -0.0006059600 - 0.7622959614 389.8091125488 -0.0006030631 - 0.7614525557 390.1016845703 -0.0006001781 - 0.7606078386 390.3935546875 -0.0005972833 - 0.7597618699 389.9250183105 -0.0005943810 - 0.7589146495 390.2164306641 -0.0005914537 - 0.7580660582 390.5072021484 -0.0005885679 - 0.7572162747 390.7972717285 -0.0005856230 - 0.7563651204 390.3303833008 -0.0005828071 - 0.7555127144 390.6199951172 -0.0005799195 - 0.7546590567 390.9089355469 -0.0005770814 - 0.7538040876 391.1972656250 -0.0005741669 - 0.7529478669 390.7319030762 -0.0005713686 - 0.7520903349 391.0197753906 -0.0005684503 - 0.7512315512 392.1251525879 -0.0005671834 - 0.7503715158 392.4124145508 -0.0005643328 - 0.7495101690 392.6990051270 -0.0005615039 - 0.7486475706 392.2362670898 -0.0005587101 - 0.7477836609 392.5223693848 -0.0005558201 - 0.7469185591 392.8078002930 -0.0005529982 - 0.7460521460 393.0926208496 -0.0005501705 - 0.7451844811 392.6315307617 -0.0005473967 - 0.7443155050 392.9158630371 -0.0005445423 - 0.7434453368 393.1995239258 -0.0005417293 - 0.7425738573 393.4824829102 -0.0005389029 - 0.7417011261 393.7648315430 -0.0005360624 - 0.7408271432 393.3056335449 -0.0005333594 - 0.7399519086 393.5875244141 -0.0005305733 - 0.7390754223 393.8686828613 -0.0005278406 - 0.7381976843 394.1492309570 -0.0005250943 - 0.7373186946 394.4290771484 -0.0005223206 - 0.7364384532 393.9718322754 -0.0005196141 - 0.7355570197 394.2512512207 -0.0005169176 - 0.7346742749 394.5299682617 -0.0005141500 - 0.7337902784 394.8080139160 -0.0005114123 - 0.7329050303 395.0854187012 -0.0005087078 - 0.7320185900 394.6300964355 -0.0005060898 - 0.7311308980 394.9070739746 -0.0005033354 - 0.7302418947 395.1833496094 -0.0005006398 - 0.7293517590 395.4589233398 -0.0004980425 - 0.7284603119 395.0054321289 -0.0004953668 - 0.7275676727 395.2805786133 -0.0004926851 - 0.7266737819 395.5550537109 -0.0004900206 - 0.7257786393 395.8288879395 -0.0004874687 - 0.7248823047 396.1019897461 -0.0004848635 - 0.7239847183 395.6504821777 -0.0004822772 - 0.7230858803 395.9231567383 -0.0004795812 - 0.7221858501 396.1952209473 -0.0004770065 - 0.7212845683 396.4665527344 -0.0004744515 - 0.7203820944 396.7372436523 -0.0004718795 - 0.7194783688 396.2877502441 -0.0004694262 - 0.7185734510 396.5579833984 -0.0004668217 - 0.7176673412 396.8275451660 -0.0004642253 - 0.7167599797 396.2501220703 -0.0004603340 - 0.7158513665 396.5176391602 -0.0004578604 - 0.7149416208 396.0695495605 -0.0004554603 - 0.7140305638 396.3366394043 -0.0004529186 - 0.7131183743 396.6030578613 -0.0004503672 - 0.7122049332 396.8688049316 -0.0004479060 - 0.7112903595 397.1339111328 -0.0004454480 - 0.7103744745 397.3982849121 -0.0004430977 - 0.7094574571 396.9525756836 -0.0004406239 - 0.7085391879 397.2165527344 -0.0004382319 - 0.7076197863 397.4798278809 -0.0004358463 - 0.7066991329 397.7424621582 -0.0004333658 - 0.7057772875 398.0044250488 -0.0004308778 - 0.7048542500 397.5608520508 -0.0004286695 - 0.7039300203 397.8223571777 -0.0004262562 - 0.7030045986 398.0832214355 -0.0004239529 - 0.7020779848 397.4861145020 -0.0004201843 - 0.7011501789 397.7449645996 -0.0004179784 - 0.7002211809 397.3028869629 -0.0004157772 - 0.6992909908 397.5613403320 -0.0004133909 - 0.6983596087 397.8190612793 -0.0004110909 - 0.6974270344 398.0761108398 -0.0004088022 - 0.6964933276 398.3325195312 -0.0004065374 - 0.6955584288 397.8926391602 -0.0004042982 - 0.6946222782 398.1486206055 -0.0004021075 - 0.6936850548 398.4039306641 -0.0003998643 - 0.6927465796 397.7946472168 -0.0003963518 - 0.6918069720 398.0479431152 -0.0003941017 - 0.6908661723 398.3005676270 -0.0003919201 - 0.6899241805 397.8625793457 -0.0003898123 - 0.6889810562 398.1148071289 -0.0003876832 - 0.6880367398 398.3663330078 -0.0003854679 - 0.6870912910 398.6171875000 -0.0003833010 - 0.6861446500 398.8674011230 -0.0003811793 - 0.6851968169 399.1168823242 -0.0003790872 - 0.6842478514 397.8117065430 -0.0003758474 - 0.6832977533 398.0601806641 -0.0003737076 - 0.6823464632 398.3079833984 -0.0003716511 - 0.6813940406 398.5551147461 -0.0003695216 - 0.6804404259 398.8015441895 -0.0003675100 - 0.6794856787 399.0472717285 -0.0003654723 - 0.6785297990 398.6138305664 -0.0003634492 - 0.6775727272 397.9849853516 -0.0003603227 - 0.6766145229 398.2290344238 -0.0003583228 - 0.6756551862 398.4724426270 -0.0003562583 - 0.6746947169 398.7151489258 -0.0003543326 - 0.6737330556 398.2834472656 -0.0003523949 - 0.6727702618 398.5257568359 -0.0003504590 - 0.6718063354 398.7673950195 -0.0003485884 - 0.6708413363 398.1297607422 -0.0003454312 - 0.6698750854 398.3694458008 -0.0003434404 - 0.6689077616 398.6083984375 -0.0003414832 - 0.6679393053 398.1788024902 -0.0003397875 - 0.6669697165 398.4173889160 -0.0003379107 - 0.6659989953 398.6553649902 -0.0003359713 - 0.6650271416 398.0103149414 -0.0003330565 - 0.6640541553 398.2462463379 -0.0003311266 - 0.6630800366 398.4815673828 -0.0003293364 - 0.6621047854 398.0540771484 -0.0003276865 - 0.6611284614 398.2890014648 -0.0003258119 - 0.6601509452 398.5232238770 -0.0003240641 - 0.6591723561 397.8708496094 -0.0003210985 - 0.6581926346 398.1031494141 -0.0003193427 - 0.6572118402 398.3347473145 -0.0003175512 - 0.6562299132 398.5657043457 -0.0003158082 - 0.6552468538 398.1407165527 -0.0003142557 - 0.6542626619 398.3712768555 -0.0003124954 - 0.6532773972 397.7116088867 -0.0003097293 - 0.6522909999 397.9402465820 -0.0003080079 - 0.6513035297 398.1682128906 -0.0003063028 - 0.6503149271 398.3955078125 -0.0003046013 - 0.6493251920 398.6220703125 -0.0003029891 - 0.6483344436 397.3071899414 -0.0003003261 - 0.6473425031 397.5328063965 -0.0002987444 - 0.6463495493 397.7578125000 -0.0002970947 - 0.6453554034 397.9821166992 -0.0002954970 - 0.6443602443 398.2057495117 -0.0002939308 - 0.6433639526 397.5332946777 -0.0002912738 - 0.6423665881 397.1126098633 -0.0002898680 - 0.6413681507 397.3346252441 -0.0002882508 - 0.6403685808 397.5559692383 -0.0002867712 - 0.6393679380 396.8789367676 -0.0002841058 - 0.6383662224 397.0983886719 -0.0002826365 - 0.6373634338 397.3171386719 -0.0002810860 - 0.6363595724 396.8988342285 -0.0002797413 - 0.6353546381 397.1172485352 -0.0002782333 - 0.6343485713 396.4344177246 -0.0002757224 - 0.6333414912 396.6509399414 -0.0002742580 - 0.6323332787 396.8667602539 -0.0002728383 - 0.6313240528 397.0819091797 -0.0002713906 - 0.6303136945 396.3935852051 -0.0002689802 - 0.6293023229 395.9775085449 -0.0002676282 - 0.6282898784 396.1911010742 -0.0002662433 - 0.6272763610 396.4040222168 -0.0002648327 - 0.6262617707 395.7112121582 -0.0002624606 - 0.6252461076 395.9222412109 -0.0002610790 - 0.6242293715 396.1325683594 -0.0002596887 - 0.6232116222 396.3422546387 -0.0002583794 - 0.6221928000 395.6440124512 -0.0002560634 - 0.6211729050 395.2306213379 -0.0002549099 - 0.6201519370 395.4387512207 -0.0002535046 - 0.6191299558 395.6462402344 -0.0002522824 - 0.6181069613 394.9436035156 -0.0002499970 - 0.6170828342 395.1492004395 -0.0002487781 - 0.6160577536 395.3540954590 -0.0002474403 - 0.6150315404 395.5583496094 -0.0002462236 - 0.6140043139 394.8503417969 -0.0002440018 - 0.6129760742 394.4397277832 -0.0002428932 - 0.6119467616 394.6424255371 -0.0002416660 - 0.6109164357 394.8444824219 -0.0002404434 - 0.6098850965 394.1321716309 -0.0002383239 - 0.6088526845 394.3323669434 -0.0002371358 - 0.6078192592 394.5318908691 -0.0002359545 - 0.6067847610 394.7307128906 -0.0002347746 - 0.6057492495 393.4073486328 -0.0002327978 - 0.6047127247 393.6053771973 -0.0002316774 - 0.6036751866 393.8027038574 -0.0002305034 - 0.6026366353 393.0820617676 -0.0002285099 - 0.6015970111 393.2775268555 -0.0002273682 - 0.6005564332 393.4724121094 -0.0002262803 - 0.5995147824 393.6665649414 -0.0002251753 - 0.5984721184 392.3421630859 -0.0002232977 - 0.5974285007 392.5355529785 -0.0002222509 - 0.5963838100 392.7282714844 -0.0002211541 - 0.5953381062 391.9992980957 -0.0002192148 - 0.5942914486 392.1901855469 -0.0002181647 - 0.5932437181 392.3803710938 -0.0002170962 - 0.5921950340 392.5699462891 -0.0002160986 - 0.5911452770 391.8358154297 -0.0002142125 - 0.5900945663 392.0234985352 -0.0002132126 - 0.5890428424 391.6215209961 -0.0002123375 - 0.5879901648 390.8844299316 -0.0002104655 - 0.5869364142 391.0706787109 -0.0002095236 - 0.5858817101 391.2563171387 -0.0002085116 - 0.5848260522 390.5153198242 -0.0002067106 - 0.5837693214 390.6990661621 -0.0002057913 - 0.5827116370 390.8822326660 -0.0002048110 - 0.5816529989 390.1372070312 -0.0002030678 - 0.5805933475 390.3185424805 -0.0002021451 - 0.5795326829 390.4992065430 -0.0002012106 - 0.5784710646 389.1718139648 -0.0001996061 - 0.5774084926 389.3517150879 -0.0001987271 - 0.5763449073 389.5310058594 -0.0001978070 - 0.5752803087 389.7095947266 -0.0001969767 - 0.5742148161 388.9566955566 -0.0001952595 - 0.5731483102 389.1335144043 -0.0001944356 - 0.5720807910 389.3096313477 -0.0001935762 - 0.5710123777 387.9818420410 -0.0001920125 - 0.5699429512 388.1572570801 -0.0001912307 - 0.5688725710 388.3320312500 -0.0001903937 - 0.5678011775 387.5725097656 -0.0001887521 - 0.5667288899 387.7454528809 -0.0001879885 - 0.5656555891 387.9177551270 -0.0001871763 - 0.5645813942 387.1543884277 -0.0001855650 - 0.5635061860 387.3249206543 -0.0001848275 - 0.5624300241 386.9323730469 -0.0001841560 - 0.5613529682 386.1662902832 -0.0001825879 - 0.5602748990 386.3354492188 -0.0001818787 - 0.5591959357 386.5039672852 -0.0001811173 - 0.5581159592 385.7341003418 -0.0001795650 - 0.5570350885 385.9008789062 -0.0001788740 - 0.5559532046 385.1283264160 -0.0001773544 - 0.5548704267 385.2933349609 -0.0001766283 - 0.5537867546 385.4577026367 -0.0001759759 - 0.5527020693 384.6813964844 -0.0001744615 - 0.5516164899 384.8439941406 -0.0001737855 - 0.5505299568 385.0059509277 -0.0001731139 - 0.5494424701 384.2259216309 -0.0001716720 - 0.5483540893 384.3861389160 -0.0001709987 - 0.5472647548 383.9984130859 -0.0001704925 - 0.5461744666 383.2157897949 -0.0001690669 - 0.5450833440 383.3746948242 -0.0001684405 - 0.5439912081 383.5329589844 -0.0001678039 - 0.5428981781 382.7466125488 -0.0001664178 - 0.5418042541 382.9031677246 -0.0001658087 - 0.5407093763 382.1142578125 -0.0001643996 - 0.5396136045 382.2690429688 -0.0001638484 - 0.5385168791 381.8846740723 -0.0001633761 - 0.5374192595 381.0932312012 -0.0001620060 - 0.5363207459 381.2467956543 -0.0001614615 - 0.5352213383 381.3996887207 -0.0001608977 - 0.5341209769 380.6045837402 -0.0001595586 - 0.5330197215 380.7557983398 -0.0001590351 - 0.5319175720 379.4262390137 -0.0001578516 - 0.5308145285 379.5768127441 -0.0001573040 - 0.5297105908 379.7267456055 -0.0001567677 - 0.5286057591 378.9266662598 -0.0001555235 - 0.5274999738 379.0748901367 -0.0001549863 - 0.5263933539 379.2224731445 -0.0001544715 - 0.5252858400 378.4188537598 -0.0001532508 - 0.5241774321 378.5647888184 -0.0001527400 - 0.5230681300 377.7586364746 -0.0001515097 - 0.5219579339 377.9028320312 -0.0001510149 - 0.5208468437 378.0464172363 -0.0001505473 - 0.5197348595 377.2367553711 -0.0001493506 - 0.5186220407 377.3786621094 -0.0001488827 - 0.5175082684 376.5665588379 -0.0001476972 - 0.5163936615 376.7067871094 -0.0001472420 - 0.5152782202 376.8463745117 -0.0001467863 - 0.5141618252 376.0307922363 -0.0001456223 - 0.5130446553 376.1687011719 -0.0001452051 - 0.5119265318 375.3506469727 -0.0001440462 - 0.5108075738 375.4869079590 -0.0001436237 - 0.5096877217 375.6225585938 -0.0001432188 - 0.5085670352 374.8010864258 -0.0001420961 - 0.5074455142 374.4276123047 -0.0001418253 - 0.5063230991 373.6048278809 -0.0001407017 - 0.5051997900 373.7382812500 -0.0001403249 - 0.5040757060 373.8711242676 -0.0001399393 - 0.5029507279 372.5419616699 -0.0001389811 - 0.5018248558 372.6742858887 -0.0001386086 - 0.5006982088 371.8468627930 -0.0001375396 - 0.4995706379 371.4779663086 -0.0001373201 - 0.4984422624 370.6493225098 -0.0001362446 - 0.4973130226 370.7795104980 -0.0001358989 - 0.4961829484 370.4128723145 -0.0001356999 - 0.4950520396 369.5819702148 -0.0001346588 - 0.4939202964 369.7110595703 -0.0001343313 - 0.4927877188 368.8778686523 -0.0001333019 - 0.4916542768 369.0053405762 -0.0001329760 - 0.4905200303 369.1321716309 -0.0001326629 - 0.4893849492 368.2956237793 -0.0001316523 - 0.4882490039 368.4208984375 -0.0001313449 - 0.4871122837 368.0691833496 -0.0001302074 - 0.4859746993 368.1916503906 -0.0001299187 - 0.4848363101 367.8342590332 -0.0001287837 - 0.4836970866 367.9540405273 -0.0001285040 - 0.4825570285 368.5557250977 -0.0001280707 - 0.4814161956 368.1893920898 -0.0001269652 - 0.4802744985 368.7849426270 -0.0001265504 - 0.4791320264 368.8908691406 -0.0001252939 - 0.4779887199 369.4791259766 -0.0001248857 - 0.4768446088 369.5747985840 -0.0001236461 - 0.4756996930 370.1557312012 -0.0001232406 - 0.4745539725 370.2411499023 -0.0001219985 - 0.4734074473 370.8147583008 -0.0001216068 - 0.4722601175 371.8576965332 -0.0001210700 - 0.4711119831 371.9273071289 -0.0001198486 - 0.4699630439 372.4895019531 -0.0001194431 - 0.4688133001 372.5488281250 -0.0001182357 - 0.4676627815 373.1037292480 -0.0001178552 - 0.4665114582 373.1527404785 -0.0001166656 - 0.4653593600 373.7002868652 -0.0001162635 - 0.4642064571 374.2449035645 -0.0001158972 - 0.4630527794 373.8161621094 -0.0001148546 - 0.4618983269 374.3545837402 -0.0001144950 - 0.4607430696 373.4582824707 -0.0001135860 - 0.4595870376 373.9916381836 -0.0001132424 - 0.4584302306 373.0919799805 -0.0001123792 - 0.4572726190 -173.3311614990 -0.0001148975 - 0.4561142623 -173.1416320801 -0.0001136068 - 0.4549551308 -171.5317840576 -0.0001130326 - 0.4537952244 -170.3807983398 -0.0001117884 - 0.4526345432 -168.7811126709 -0.0001112354 - 0.4514730871 -168.1612701416 -0.0001106275 - 0.4503108859 -167.0326843262 -0.0001094478 - 0.4491479099 -165.4524688721 -0.0001089153 - 0.4479841590 -164.3265991211 -0.0001077381 - 0.4468196630 -163.7325592041 -0.0001071715 - 0.4456544220 -162.6292114258 -0.0001060355 - 0.4444884062 -161.0737609863 -0.0001055438 - 0.4433216453 -159.9679565430 -0.0001044223 - 0.4421541393 -158.4410247803 -0.0001039525 - 0.4409858584 -158.3219146729 -0.0001028007 - 0.4398168623 -156.7912445068 -0.0001023337 - 0.4386470914 -155.7056732178 -0.0001012520 - 0.4374766052 -154.2088317871 -0.0001008350 - 0.4363053441 -153.6747894287 -0.0001003265 - 0.4351333678 -152.6054077148 -0.0000992801 - 0.4339606464 -151.1061859131 -0.0000988569 - 0.4327872097 -150.0735626221 -0.0000978430 - 0.4316129982 -149.5656433105 -0.0000973744 - 0.4304380715 -148.5167083740 -0.0000963709 - 0.4292624295 -147.0425872803 -0.0000959800 - 0.4280860424 -146.0355834961 -0.0000950012 - 0.4269089401 -145.5539245605 -0.0000945512 - 0.4257311225 -144.5254211426 -0.0000935879 - 0.4245525599 -143.0765533447 -0.0000932320 - 0.4233733118 -142.0575714111 -0.0000922841 - 0.4221933186 -141.6399993896 -0.0000918580 - 0.4210126102 -140.6320953369 -0.0000909441 - 0.4198311865 -139.2085723877 -0.0000906135 - 0.4186490774 -138.2102203369 -0.0000897053 - 0.4174662232 -136.8428802490 -0.0000894068 - 0.4162826836 -136.8370819092 -0.0000884047 - 0.4150984287 -135.4389801025 -0.0000881143 - 0.4139134586 -134.4614257812 -0.0000872312 - 0.4127278030 -133.0753173828 -0.0000869491 - 0.4115414619 -133.1407623291 -0.0000859876 - 0.4103544056 -131.7682800293 -0.0000857135 - 0.4091666341 -130.4023742676 -0.0000854565 - 0.4079782069 -129.4510803223 -0.0000846239 - 0.4067890644 -129.0808410645 -0.0000842474 - 0.4055992365 -128.1967315674 -0.0000834359 - 0.4044087231 -126.8565521240 -0.0000831952 - 0.4032175243 -125.9262390137 -0.0000823916 - 0.4020256400 -125.5826873779 -0.0000820269 - 0.4008330703 -124.6623687744 -0.0000812355 - 0.3996398449 -123.4104766846 -0.0000810436 - 0.3984459043 -122.5012359619 -0.0000802575 - 0.3972513080 -122.1844635010 -0.0000799211 - 0.3960560262 -121.2852630615 -0.0000791519 - 0.3948600888 -119.9955291748 -0.0000789622 - 0.3936634958 -119.1061401367 -0.0000782113 - 0.3924662173 -118.8149261475 -0.0000778805 - 0.3912682533 -118.0085144043 -0.0000771546 - 0.3900696635 -116.7447814941 -0.0000769907 - 0.3888703883 -115.8766937256 -0.0000762628 - 0.3876704574 -114.6252899170 -0.0000760961 - 0.3864698708 -114.7544403076 -0.0000752328 - 0.3852686286 -113.5155639648 -0.0000750766 - 0.3840667307 -112.7481842041 -0.0000743851 - 0.3828641772 -111.5229797363 -0.0000742479 - 0.3816609979 -111.6743392944 -0.0000733924 - 0.3804571629 -110.4617004395 -0.0000732585 - 0.3792526722 -109.6351318359 -0.0000725818 - 0.3780475259 -108.4349136353 -0.0000724602 - 0.3768417537 -108.6072998047 -0.0000716293 - 0.3756353557 -107.4197006226 -0.0000715083 - 0.3744283020 -106.6133804321 -0.0000708486 - 0.3732206225 -105.5305557251 -0.0000707555 - 0.3720123172 -105.7253036499 -0.0000699411 - 0.3708033562 -104.5641555786 -0.0000698332 - 0.3695937991 -103.7794494629 -0.0000692074 - 0.3683835864 -102.6308288574 -0.0000691025 - 0.3671727777 -102.8466644287 -0.0000683069 - 0.3659613132 -101.7107696533 -0.0000682219 - 0.3647492528 -100.9465103149 -0.0000676070 - 0.3635365665 -100.8141174316 -0.0000673329 - 0.3623232543 -100.0602111816 -0.0000667361 - 0.3611093462 -98.9496383667 -0.0000666671 - 0.3598948121 -98.2059020996 -0.0000660758 - 0.3586796820 -98.2074584961 -0.0000658169 - 0.3574639261 -97.4753875732 -0.0000652426 - 0.3562475741 -96.3915557861 -0.0000651839 - 0.3550306261 -95.6697082520 -0.0000646114 - 0.3538130522 -95.5908737183 -0.0000643608 - 0.3525949121 -94.8794174194 -0.0000637906 - 0.3513761461 -94.1725311279 -0.0000632368 - 0.3501567841 -93.1199951172 -0.0000631929 - 0.3489368558 -93.4162979126 -0.0000624355 - 0.3477163017 -92.3766555786 -0.0000623994 - 0.3464951813 -91.6904830933 -0.0000618536 - 0.3452734649 -90.6636199951 -0.0000618256 - 0.3440511525 -90.9813232422 -0.0000610825 - 0.3428282738 -89.9673690796 -0.0000610589 - 0.3416048288 -89.3020477295 -0.0000605339 - 0.3403807580 -89.2948913574 -0.0000602944 - 0.3391561508 -88.6400909424 -0.0000597781 - 0.3379309475 -87.6519317627 -0.0000597615 - 0.3367051780 -87.0075225830 -0.0000592571 - 0.3354788423 -87.0267486572 -0.0000590223 - 0.3342519403 -86.3929061890 -0.0000585183 - 0.3330244720 -85.4306182861 -0.0000585148 - 0.3317964077 -84.8072204590 -0.0000580230 - 0.3305678070 -84.8529205322 -0.0000577862 - 0.3293386698 -84.2400817871 -0.0000573029 - 0.3281089365 -83.3037872314 -0.0000573058 - 0.3268786669 -83.6968917847 -0.0000565973 - 0.3256478310 -82.7736740112 -0.0000566057 - 0.3244164288 -82.1819915771 -0.0000561341 - 0.3231845200 -81.2717437744 -0.0000561424 - 0.3219520152 -81.6864929199 -0.0000554454 - 0.3207190037 -80.6414794922 -0.0000554580 - 0.3194854259 -80.0696868896 -0.0000549989 - 0.3182513118 -80.4988098145 -0.0000543043 - 0.3170166612 -79.6194458008 -0.0000543268 - 0.3157814741 -79.0630111694 -0.0000538735 - 0.3145457506 -78.1967163086 -0.0000539046 - 0.3133094907 -78.6475677490 -0.0000532205 - 0.3120726943 -77.7944488525 -0.0000532507 - 0.3108353615 -77.2593460083 -0.0000528161 - 0.3095975220 -77.4163360596 -0.0000525949 - 0.3083591461 -76.8919754028 -0.0000521693 - 0.3071202636 -75.9031448364 -0.0000522012 - 0.3058808446 -76.3854522705 -0.0000515266 - 0.3046409190 -75.5706176758 -0.0000515649 - 0.3034004569 -75.0664062500 -0.0000511528 - 0.3021595180 -74.2647399902 -0.0000511859 - 0.3009180129 -74.7689056396 -0.0000505223 - 0.2996760309 -73.9805297852 -0.0000505686 - 0.2984335423 -73.3267822266 -0.0000501636 - 0.2971905470 -73.8454742432 -0.0000495076 - 0.2959470451 -73.0751037598 -0.0000495552 - 0.2947030365 -72.6066894531 -0.0000491571 - 0.2934585214 -72.8477478027 -0.0000489461 - 0.2922135293 -72.3901748657 -0.0000485564 - 0.2909680307 -71.6464080811 -0.0000486040 - 0.2897220254 -72.0180206299 -0.0000479603 - 0.2884755433 -71.2863311768 -0.0000480106 - 0.2872285843 -70.8491363525 -0.0000476375 - 0.2859811187 -71.1293716431 -0.0000474239 - 0.2847331762 -70.7030868530 -0.0000470525 - 0.2834847569 -69.8116836548 -0.0000471162 - 0.2822358310 -69.3949661255 -0.0000467515 - 0.2809864581 -69.7009277344 -0.0000465369 - 0.2797365785 -69.2951202393 -0.0000461717 - 0.2784862518 -68.4241180420 -0.0000462522 - 0.2772354484 -69.0269622803 -0.0000456075 - 0.2759841681 -68.6356353760 -0.0000452545 - 0.2747324109 -67.9744110107 -0.0000453193 - 0.2734802067 -68.5932006836 -0.0000446849 - 0.2722275257 -67.7475280762 -0.0000447668 - 0.2709743977 -67.3768157959 -0.0000444221 - 0.2697207928 -67.7405853271 -0.0000442046 - 0.2684667408 -67.1791152954 -0.0000438751 - 0.2672122419 -67.5552062988 -0.0000436622 - 0.2659572661 -67.2052001953 -0.0000433252 - 0.2647018433 -66.5953521729 -0.0000434024 - 0.2634460032 -67.0490570068 -0.0000427846 - 0.2621896863 -66.4514694214 -0.0000428655 - 0.2609329224 -66.1222076416 -0.0000425361 - 0.2596757412 -66.3271636963 -0.0000423334 - 0.2584181130 -66.0076675415 -0.0000420123 - 0.2571600378 -65.6930465698 -0.0000416902 - 0.2559015155 -66.1271896362 -0.0000414658 - 0.2546425760 -65.6079025269 -0.0000411711 - 0.2533831894 -65.0545959473 -0.0000412566 - 0.2521233857 -65.7606735229 -0.0000406343 - 0.2508631647 -65.0014190674 -0.0000407359 - 0.2496024966 -65.7173538208 -0.0000401186 - 0.2483414114 -65.1899871826 -0.0000402067 - 0.2470799088 -64.6937942505 -0.0000399237 - 0.2458179891 -65.1787185669 -0.0000396966 - 0.2445556521 -64.6898269653 -0.0000394176 - 0.2432928979 -64.1871948242 -0.0000394998 - 0.2420297414 -64.9340362549 -0.0000388983 - 0.2407661527 -64.2153625488 -0.0000390037 - 0.2395021766 -63.9720878601 -0.0000387177 - 0.2382377833 -64.7337570190 -0.0000381007 - 0.2369729877 -64.0299072266 -0.0000382169 - 0.2357077897 -64.8014831543 -0.0000376142 - 0.2344422042 -64.1075134277 -0.0000377253 - 0.2331762016 -63.8889884949 -0.0000374435 - 0.2319098264 -64.2049407959 -0.0000372344 - 0.2306430340 -63.9963455200 -0.0000369567 - 0.2293758690 -64.5633087158 -0.0000367215 - 0.2281083018 -64.1235580444 -0.0000364749 - 0.2268403620 -63.7030105591 -0.0000365710 - 0.2255720198 -64.2706375122 -0.0000359935 - 0.2243033051 -63.8625869751 -0.0000360897 - 0.2230342180 -64.4376144409 -0.0000355102 - 0.2217647433 -64.2638244629 -0.0000352493 - 0.2204948962 -63.6246185303 -0.0000353694 - 0.2192246616 -64.4606933594 -0.0000347744 - 0.2179540694 -63.8314857483 -0.0000348958 - 0.2166831046 -64.6775054932 -0.0000343071 - 0.2154117823 -64.0583114624 -0.0000344242 - 0.2141400874 -63.9145050049 -0.0000341746 - 0.2128680199 -64.3051071167 -0.0000339558 - 0.2115955949 -64.1713256836 -0.0000337078 - 0.2103228122 -64.5719146729 -0.0000334870 - 0.2090496868 -64.4481582642 -0.0000332426 - 0.2077761889 -64.8587265015 -0.0000330230 - 0.2065023482 -64.7449951172 -0.0000327797 - 0.2052281499 -64.3712768555 -0.0000325666 - 0.2039536089 -65.0618972778 -0.0000323118 - 0.2026787251 -64.6957321167 -0.0000321064 - 0.2014034986 -65.3988571167 -0.0000318542 - 0.2001279294 -65.0402297974 -0.0000316507 - 0.1988520175 -65.4845962524 -0.0000314299 - 0.1975757629 -65.4048309326 -0.0000311943 - 0.1962991804 -65.8592224121 -0.0000309717 - 0.1950222701 -65.7895507812 -0.0000307455 - 0.1937450171 -65.2548828125 -0.0000308763 - 0.1924674511 -65.9168243408 -0.0000303235 - 0.1911895424 -65.6698608398 -0.0000304207 - 0.1899113208 -66.3393096924 -0.0000298690 - 0.1886327714 -66.1050109863 -0.0000299632 - 0.1873539090 -66.7819442749 -0.0000294128 - 0.1860747188 -66.4625854492 -0.0000292285 - 0.1847952157 -67.2447738647 -0.0000289645 - 0.1835153997 -66.9330444336 -0.0000287818 - 0.1822352856 -67.4402313232 -0.0000285493 - 0.1809548438 -67.4237060547 -0.0000283345 - 0.1796741039 -67.9409408569 -0.0000280975 - 0.1783930510 -67.6432952881 -0.0000279210 - 0.1771117151 -67.4636611938 -0.0000280188 - 0.1758300662 -68.1719055176 -0.0000274736 - 0.1745481193 -67.7099990845 -0.0000276119 - 0.1732658744 -68.7207717896 -0.0000270234 - 0.1719833314 -68.2691116333 -0.0000271618 - 0.1707005054 -68.9911727905 -0.0000266226 - 0.1694173962 -68.8485107422 -0.0000267068 - 0.1681339890 -69.5780944824 -0.0000261675 - 0.1668502986 -69.3125762939 -0.0000260142 - 0.1655663252 -69.8815917969 -0.0000257664 - 0.1642820686 -69.9275207520 -0.0000255631 - 0.1629975438 -70.5066528320 -0.0000253098 - 0.1617127359 -70.2553558350 -0.0000251566 - 0.1604276597 -70.8433685303 -0.0000249072 - 0.1591423005 -70.9084777832 -0.0000247094 - 0.1578566730 -71.5066223145 -0.0000244563 - 0.1565707922 -71.2695617676 -0.0000243036 - 0.1552846283 -71.8765716553 -0.0000240501 - 0.1539982110 -71.6460571289 -0.0000239102 - 0.1527115256 -72.5780715942 -0.0000235960 - 0.1514245868 -72.3553161621 -0.0000234517 - 0.1501373947 -72.9813690186 -0.0000231887 - 0.1488499343 -73.7613067627 -0.0000226485 - 0.1475622356 -73.5476989746 -0.0000225127 - 0.1462742835 -74.5086669922 -0.0000221910 - 0.1449860781 -74.3028335571 -0.0000220483 - 0.1436976343 -74.9516830444 -0.0000217857 - 0.1424089372 -74.7524642944 -0.0000216380 - 0.1411200017 -75.4102325439 -0.0000213646 - 0.1398308426 -75.2176055908 -0.0000212329 - 0.1385414302 -75.8842697144 -0.0000209610 - 0.1372517794 -76.0291366577 -0.0000207685 - 0.1359619051 -76.7059783936 -0.0000204790 - 0.1346717924 -77.5225524902 -0.0000199467 - 0.1333814710 -77.2135543823 -0.0000200643 - 0.1320908964 -78.0364761353 -0.0000195309 - 0.1308001131 -77.7367095947 -0.0000196399 - 0.1295091063 -78.5659866333 -0.0000191032 - 0.1282178760 -78.2754364014 -0.0000192156 - 0.1269264370 -79.1110687256 -0.0000186774 - 0.1256347746 -78.8297729492 -0.0000187867 - 0.1243429035 -79.6717910767 -0.0000182456 - 0.1230508238 -80.5162429810 -0.0000177114 - 0.1217585281 -80.5936889648 -0.0000177538 - 0.1204660311 -81.4457550049 -0.0000172058 - 0.1191733330 -81.1880722046 -0.0000173024 - 0.1178804263 -82.0465240479 -0.0000167655 - 0.1165873185 -82.7908630371 -0.0000164448 - 0.1152940169 -82.6629486084 -0.0000163149 - 0.1140005216 -83.4162368774 -0.0000159926 - 0.1127068326 -83.2950363159 -0.0000158588 - 0.1114129499 -84.0573043823 -0.0000155263 - 0.1101188734 -84.9347457886 -0.0000149775 - 0.1088246182 -84.7140579224 -0.0000150595 - 0.1075301766 -85.5978851318 -0.0000145085 - 0.1062355563 -85.0263061523 -0.0000146551 - 0.1049407497 -85.9153213501 -0.0000141065 - 0.1036457643 -86.7031478882 -0.0000137507 - 0.1023506075 -86.6074600220 -0.0000136181 - 0.1010552794 -87.4042816162 -0.0000132517 - 0.0997597724 -87.3153457642 -0.0000131225 - 0.0984641016 -88.1211395264 -0.0000127519 - 0.0971682593 -89.0291748047 -0.0000121895 - 0.0958722606 -88.8537750244 -0.0000122299 - 0.0945760906 -89.7682037354 -0.0000116686 - 0.0932797641 -90.6851043701 -0.0000110931 - 0.0919832811 -90.5230102539 -0.0000111395 - 0.0906866416 -91.4463348389 -0.0000105618 - 0.0893898457 -90.9176788330 -0.0000106682 - 0.0880929008 -91.8461761475 -0.0000100857 - 0.0867957994 -92.6903533936 -0.0000096818 - 0.0854985639 -92.6365661621 -0.0000095245 - 0.0842011720 -93.4897766113 -0.0000091037 - 0.0829036459 -94.4308776855 -0.0000085003 - 0.0816059709 -93.9218139648 -0.0000085997 - 0.0803081617 -94.8681793213 -0.0000079954 - 0.0790102184 -95.7379913330 -0.0000075548 - 0.0777121410 -95.7032623291 -0.0000073835 - 0.0764139295 -96.5820770264 -0.0000069246 - 0.0751155838 -97.5410614014 -0.0000063080 - 0.0738171190 -97.0516815186 -0.0000063785 - 0.0725185275 -98.0158843994 -0.0000057469 - 0.0712198094 -98.9113311768 -0.0000052591 - 0.0699209720 -98.8957366943 -0.0000050637 - 0.0686220154 -99.4050445557 -0.0000046687 - 0.0673229471 -100.3807067871 -0.0000040235 - 0.0660237595 -101.2927856445 -0.0000035074 - 0.0647244602 -101.2895202637 -0.0000033100 - 0.0634250492 -101.8106689453 -0.0000028681 - 0.0621255375 -102.7977752686 -0.0000021956 - 0.0608259179 -102.7420501709 -0.0000020990 - 0.0595261939 -103.7355804443 -0.0000014180 - 0.0582263693 -104.2686157227 -0.0000009548 - 0.0569264442 -104.2834167480 -0.0000007179 - 0.0556264259 -105.2289886475 -0.0000001293 - 0.0543263108 -105.8256683350 0.0000004827 - 0.0530261062 -106.7788543701 0.0000010786 - 0.0517258085 -106.8060455322 0.0000013480 - 0.0504254252 -107.3564147949 0.0000018599 - 0.0491249561 -108.3716583252 0.0000026080 - 0.0478244051 -108.3594360352 0.0000027809 - 0.0465237722 -108.9656829834 0.0000034368 - 0.0452230573 -109.9434051514 0.0000041139 - 0.0439222679 -110.9700469971 0.0000048869 - 0.0426214039 -110.5565490723 0.0000049938 - 0.0413204692 -111.5884246826 0.0000058023 - 0.0400194637 -112.1614837646 0.0000064003 - 0.0387183912 -113.1984405518 0.0000072039 - 0.0374172516 -113.2203216553 0.0000074832 - 0.0361160487 -113.8388061523 0.0000082265 - 0.0348147824 -114.8486328125 0.0000089968 - 0.0335134603 -115.4698028564 0.0000097259 - 0.0322120786 -115.5082092285 0.0000100628 - 0.0309106465 -116.1322937012 0.0000108265 - 0.0296091586 -117.1575927734 0.0000116792 - 0.0283076223 -117.7842712402 0.0000124473 - 0.0270060357 -118.8171691895 0.0000133216 - 0.0257044062 -118.9031524658 0.0000137743 - 0.0244027302 -119.5096282959 0.0000145663 - 0.0231010150 -120.5785522461 0.0000155269 - 0.0217992608 -121.1902923584 0.0000163415 - 0.0204974674 -121.2876281738 0.0000168714 - 0.0191956405 -121.9048919678 0.0000176963 - 0.0178937819 -122.9841003418 0.0000187315 - 0.0165918916 -123.6066436768 0.0000196246 - 0.0152899744 -124.2471923828 0.0000205653 - 0.0139880311 -124.3434600830 0.0000211207 - 0.0126860635 -124.9869689941 0.0000221012 - 0.0113840746 -126.0662841797 0.0000232000 - 0.0100820661 -126.7123870850 0.0000242193 - 0.0087800408 -127.7993011475 0.0000253426 - 0.0074780006 -128.4480895996 0.0000263972 - 0.0061759478 -128.5692138672 0.0000270857 - 0.0048738844 -129.2209625244 0.0000281755 - 0.0035718128 -129.8692626953 0.0000292826 - 0.0022697349 -130.9777832031 0.0000305616 - 0.0009676534 -131.6313171387 0.0000317040 - -0.0003344297 -132.7448120117 0.0000330357 - -0.0016365123 -132.4320373535 0.0000337306 - -0.0029385921 -133.0909271240 0.0000349596 - -0.0042406670 -134.2152099609 0.0000363467 - -0.0055427346 -134.8767395020 0.0000376553 - -0.0068447930 -135.5452117920 0.0000389752 - -0.0081468392 -136.6727905273 0.0000404523 - -0.0094488729 -136.3768768311 0.0000412803 - -0.0107508888 -137.0429077148 0.0000426919 - -0.0120528881 -138.1890869141 0.0000443274 - -0.0133548658 -138.8577880859 0.0000457180 - -0.0146568213 -139.5412597656 0.0000472496 - -0.0159587525 -140.6988372803 0.0000489756 - -0.0172606558 -141.3716125488 0.0000505282 - -0.0185625311 -142.0630493164 0.0000521395 - -0.0198643729 -141.7702789307 0.0000531847 - -0.0211661831 -142.9421844482 0.0000550595 - -0.0224679559 -143.6194610596 0.0000567140 - -0.0237696916 -144.3206329346 0.0000585277 - -0.0250713862 -144.9994659424 0.0000602707 - -0.0263730381 -146.1853485107 0.0000622916 - -0.0276746452 -146.8668060303 0.0000641101 - -0.0289762076 -147.5773925781 0.0000660765 - -0.0302777179 -148.2604064941 0.0000679541 - -0.0315791778 -148.9750823975 0.0000699985 - -0.0328805856 -149.1822357178 0.0000716132 - -0.0341819376 -149.9025573730 0.0000737190 - -0.0354832299 -150.5901489258 0.0000758206 - -0.0367844626 -151.3146057129 0.0000780511 - -0.0380856320 -152.0036621094 0.0000801966 - -0.0393867381 -153.2242279053 0.0000827911 - -0.0406877771 -153.9566650391 0.0000851364 - -0.0419887491 -154.6498718262 0.0000873993 - -0.0432896465 -155.3864135742 0.0000899407 - -0.0445904732 -156.0811614990 0.0000923569 - -0.0458912216 -156.8218841553 0.0000949038 - -0.0471918955 -157.5181579590 0.0000974664 - -0.0484924875 -158.2630157471 0.0001001730 - -0.0497929975 -159.4618377686 0.0001030397 - -0.0510934219 -160.2119903564 0.0001059108 - -0.0523937605 -160.9124450684 0.0001086035 - -0.0536940135 -160.7088165283 0.0001110323 - -0.0549941733 -161.4112091064 0.0001138978 - -0.0562942363 -162.1700134277 0.0001169587 - -0.0575942062 -162.9315185547 0.0001201227 - -0.0588940792 -163.6369018555 0.0001231404 - -0.0601938553 -164.4025573730 0.0001264838 - -0.0614935234 -165.1094665527 0.0001296717 - -0.0627930909 -165.8793334961 0.0001331055 - -0.0640925542 -166.5877990723 0.0001364973 - -0.0653919056 -167.3617553711 0.0001400668 - -0.0666911453 -168.0718078613 0.0001434413 - -0.0679902732 -168.8499450684 0.0001473068 - -0.0692892820 -169.5615539551 0.0001507925 - -0.0705881789 -170.3438110352 0.0001547693 - -0.0718869567 -171.0569458008 0.0001584635 - -0.0731856078 -171.8433837891 0.0001626168 - -0.0744841322 -172.6325683594 0.0001667930 - -0.0757825375 -173.3486633301 0.0001707318 - -0.0770808160 -174.1419982910 0.0001750519 - -0.0783789530 -174.8597106934 0.0001791838 - -0.0796769708 -175.6571655273 0.0001837373 - -0.0809748396 -176.3764648438 0.0001880697 - -0.0822725818 -177.1780700684 0.0001928411 - -0.0835701823 -177.8988952637 0.0001973576 - -0.0848676413 -178.7046813965 0.0002022118 - -0.0861649513 -179.9291076660 0.0002074712 - -0.0874621198 -180.6513671875 0.0002122490 - -0.0887591392 -181.4625549316 0.0002174698 - -0.0900560096 -182.1864013672 0.0002223307 - -0.0913527235 -183.0017395020 0.0002277514 - -0.0926492810 -183.7271423340 0.0002328628 - -0.0939456895 -184.5466308594 0.0002384802 - -0.0952419341 -184.7337646484 0.0002433551 - -0.0965380147 -185.5562744141 0.0002492791 - -0.0978339314 -186.3815917969 0.0002549992 - -0.0991296917 -187.1105651855 0.0002606978 - -0.1004252732 -187.9399414062 0.0002669823 - -0.1017206907 -188.6704101562 0.0002725732 - -0.1030159295 -188.9575805664 0.0002785993 - -0.1043109968 -189.6885375977 0.0002846158 - -0.1056058928 -191.4668884277 0.0002917987 - -0.1069006026 -192.1990356445 0.0002981605 - -0.1081951335 -193.0394287109 0.0003049532 - -0.1094894856 -193.3306884766 0.0003114128 - -0.1107836440 -194.0646667480 0.0003179353 - -0.1120776162 -194.9109191895 0.0003250304 - -0.1133714020 -195.6465454102 0.0003318453 - -0.1146649942 -195.9407043457 0.0003386279 - -0.1159583926 -196.6767883301 0.0003456679 - -0.1172515899 -197.5302734375 0.0003532518 - -0.1185445935 -198.7642211914 0.0003611981 - -0.1198373958 -199.5017700195 0.0003685761 - -0.1211299971 -200.3606567383 0.0003764283 - -0.1224223897 -201.0997619629 0.0003840904 - -0.1237145737 -201.3990478516 0.0003917299 - -0.1250065416 -202.1386718750 0.0003995589 - -0.1262983084 -203.0047912598 0.0004080178 - -0.1275898665 -203.3066406250 0.0004160739 - -0.1288811862 -204.9817199707 0.0004248277 - -0.1301723123 -205.8532409668 0.0004337222 - -0.1314631999 -206.0257263184 0.0004412446 - -0.1327538639 -206.9002685547 0.0004503860 - -0.1340443194 -207.0712280273 0.0004582340 - -0.1353345364 -207.9488830566 0.0004676559 - -0.1366245300 -209.7599487305 0.0004779447 - -0.1379142851 -209.9291381836 0.0004860876 - -0.1392038018 -210.8121643066 0.0004957194 - -0.1404930949 -210.9797973633 0.0005041267 - -0.1417821497 -211.8659057617 0.0005139007 - -0.1430709511 -212.7547607422 0.0005239806 - -0.1443595141 -213.8488769531 0.0005334901 - -0.1456478387 -214.7404174805 0.0005437102 - -0.1469359100 -214.9047241211 0.0005525127 - -0.1482237428 -215.7992858887 0.0005630163 - -0.1495113075 -215.9619750977 0.0005720681 - -0.1507986337 -217.7850952148 0.0005836311 - -0.1520857066 -218.0978698730 0.0005935677 - -0.1533725113 -218.8461303711 0.0006038663 - -0.1546590477 -219.1598510742 0.0006137808 - -0.1559453458 -219.9086303711 0.0006242432 - -0.1572313607 -221.1462707520 0.0006353183 - -0.1585171074 -222.0536193848 0.0006467402 - -0.1598026007 -222.2104187012 0.0006564683 - -0.1610878110 -223.1209106445 0.0006680516 - -0.1623727530 -224.1969909668 0.0006787739 - -0.1636574268 -225.1100463867 0.0006904245 - -0.1649418175 -225.4282226562 0.0007013375 - -0.1662259251 -226.1794738770 0.0007121342 - -0.1675097495 -226.4986877441 0.0007231949 - -0.1687932909 -228.1688232422 0.0007354392 - -0.1700765491 -228.4884948730 0.0007463781 - -0.1713595092 -228.8088378906 0.0007576286 - -0.1726421863 -229.5610961914 0.0007687839 - -0.1739245802 -230.7987365723 0.0007813941 - -0.1752066612 -231.5510864258 0.0007927404 - -0.1764884591 -231.8730163574 0.0008041371 - -0.1777699590 -232.1955566406 0.0008156046 - -0.1790511459 -233.8630371094 0.0008280993 - -0.1803320348 -234.1861877441 0.0008398140 - -0.1816126257 -234.9395446777 0.0008514382 - -0.1828929037 -236.1763305664 0.0008641229 - -0.1841728687 -236.5007019043 0.0008759064 - -0.1854525208 -237.2545166016 0.0008877814 - -0.1867318600 -237.5799255371 0.0008993612 - -0.1880108714 -238.6284484863 0.0009110138 - -0.1892895848 -239.5707397461 0.0009242002 - -0.1905679703 -239.8974304199 0.0009359031 - -0.1918460280 -240.9415893555 0.0009476647 - -0.1931237578 -241.2678222656 0.0009595801 - -0.1944011599 -242.0217285156 0.0009714888 - -0.1956782341 -243.2561950684 0.0009841523 - -0.1969549805 -243.5835876465 0.0009960743 - -0.1982313991 -244.3379516602 0.0010084240 - -0.1995074749 -244.6665649414 0.0010201166 - -0.2007832080 -245.9006958008 0.0010329303 - -0.2020586133 -246.0280761719 0.0010436604 - -0.2033336610 -246.9853210449 0.0010568320 - -0.2046083659 -248.0145568848 0.0010683263 - -0.2058827281 -248.3439636230 0.0010799898 - -0.2071567476 -248.6739501953 0.0010921662 - -0.2084304094 -249.6979064941 0.0011033077 - -0.2097037137 -250.6611938477 0.0011165417 - -0.2109766752 -250.7815246582 0.0011268588 - -0.2122492641 -252.0121765137 0.0011395093 - -0.2135214955 -252.3431396484 0.0011511438 - -0.2147933692 -253.3587036133 0.0011620920 - -0.2160648853 -254.3278808594 0.0011751482 - -0.2173360288 -254.6600952148 0.0011865058 - -0.2186067998 -255.6713867188 0.0011975423 - -0.2198772132 -256.0032653809 0.0012089537 - -0.2211472392 -256.1146240234 0.0012189900 - -0.2224168926 -257.3418884277 0.0012310438 - -0.2236861736 -258.3186645508 0.0012436727 - -0.2249550819 -259.3216552734 0.0012544289 - -0.2262235880 -259.6543579102 0.0012651505 - -0.2274917364 -259.9878540039 0.0012761387 - -0.2287594825 -260.9856872559 0.0012864792 - -0.2300268412 -261.3187255859 0.0012972656 - -0.2312938124 -262.5436706543 0.0013087373 - -0.2325603962 -262.6451110840 0.0013180012 - -0.2338265777 -262.9785461426 0.0013284110 - -0.2350923717 -263.9670104980 0.0013381832 - -0.2363577634 -264.3000793457 0.0013485276 - -0.2376227528 -265.5220031738 0.0013595156 - -0.2388873398 -266.2736511230 0.0013698083 - -0.2401515096 -266.6080017090 0.0013797991 - -0.2414152920 -267.8296203613 0.0013903804 - -0.2426786572 -267.9222412109 0.0013987545 - -0.2439416051 -269.1421813965 0.0014092253 - -0.2452041507 -269.4771423340 0.0014188106 - -0.2464662790 -270.4504394531 0.0014275844 - -0.2477279752 -270.7849426270 0.0014368950 - -0.2489892691 -270.8713684082 0.0014445791 - -0.2502501309 -272.0884399414 0.0014544070 - -0.2515105605 -272.4234008789 0.0014632407 - -0.2527705729 -273.3873291016 0.0014714694 - -0.2540301681 -273.7219848633 0.0014801216 - -0.2552893162 -274.9371032715 0.0014893687 - -0.2565480471 -274.3460693359 0.0014946116 - -0.2578063309 -275.5586242676 0.0015036543 - -0.2590641677 -275.8929138184 0.0015116499 - -0.2603215873 -276.8449401855 0.0015190369 - -0.2615785599 -277.1788940430 0.0015269254 - -0.2628350854 -277.5136718750 0.0015346289 - -0.2640911639 -278.4604797363 0.0015415319 - -0.2653467953 -278.7949218750 0.0015489197 - -0.2666019797 -280.0042419434 0.0015569165 - -0.2678567171 -280.0717773438 0.0015626799 - -0.2691109776 -281.2795410156 0.0015703682 - -0.2703648210 -281.6145324707 0.0015772603 - -0.2716181576 -281.8687133789 0.0015813380 - -0.2728710771 -282.2026062012 0.0015880794 - -0.2741235197 -283.1333618164 0.0015936891 - -0.2753754854 -283.4669189453 0.0016000215 - -0.2766269743 -284.6702575684 0.0016068856 - -0.2778780162 -284.7269287109 0.0016114407 - -0.2791285813 -285.9286804199 0.0016180129 - -0.2803786993 -285.5745849609 0.0016218426 - -0.2816283107 -286.4934387207 0.0016265814 - -0.2828774452 -287.6921997070 0.0016326928 - -0.2841261029 -288.0254516602 0.0016379863 - -0.2853742838 -288.9384765625 0.0016423775 - -0.2866219878 -288.5783996582 0.0016454393 - -0.2878691852 -289.7742919922 0.0016508548 - -0.2891159058 -289.8181762695 0.0016542015 - -0.2903621495 -291.0125122070 0.0016594104 - -0.2916078866 -291.3453063965 0.0016638688 - -0.2928531170 -291.5487976074 0.0016653115 - -0.2940978706 -291.8803100586 0.0016695017 - -0.2953421175 -293.0717773438 0.0016740935 - -0.2965858579 -294.2628173828 0.0016785483 - -0.2978291214 -293.5963745117 0.0016788841 - -0.2990718484 -294.7848510742 0.0016830662 - -0.3003140986 -295.1164550781 0.0016865716 - -0.3015558124 -295.2988281250 0.0016869830 - -0.3027970195 -295.6293029785 0.0016902210 - -0.3040377200 -296.8149414062 0.0016937823 - -0.3052779138 -297.6949157715 0.0016958361 - -0.3065175712 -297.3174438477 0.0016966361 - -0.3077567220 -298.5001220703 0.0016997290 - -0.3089953661 -298.5216979980 0.0017009511 - -0.3102334440 -298.9921569824 0.0017017545 - -0.3114710450 -299.3215026855 0.0017041103 - -0.3127080798 -300.1886596680 0.0017053282 - -0.3139446080 -300.6534729004 0.0017057359 - -0.3151805699 -300.9819030762 0.0017076596 - -0.3164160252 -301.8424377441 0.0017084997 - -0.3176509440 -302.3013916016 0.0017085749 - -0.3188853264 -302.6289978027 0.0017101073 - -0.3201191723 -302.7648010254 0.0017084731 - -0.3213524520 -303.0913391113 0.0017098172 - -0.3225851953 -304.2626647949 0.0017113809 - -0.3238174021 -304.3892211914 0.0017094382 - -0.3250490427 -304.7147521973 0.0017104611 - -0.3262801468 -305.8832092285 0.0017115786 - -0.3275107145 -306.3277587891 0.0017106964 - -0.3287406862 -306.3249816895 0.0017099371 - -0.3299701214 -306.7652893066 0.0017086783 - -0.3311989903 -307.0902099609 0.0017091120 - -0.3324273229 -307.1950683594 0.0017063624 - -0.3336550593 -308.3566284180 0.0017067713 - -0.3348822594 -308.6806335449 0.0017068880 - -0.3361088634 -308.7762145996 0.0017038704 - -0.3373349011 -309.9348449707 0.0017040323 - -0.3385604024 -309.5267028809 0.0017017410 - -0.3397852778 -310.6840515137 0.0017016964 - -0.3410096169 -310.7667541504 0.0016981582 - -0.3422333598 -311.0882263184 0.0016976065 - -0.3434565365 -311.5077209473 0.0016953353 - -0.3446791172 -312.3161010742 0.0016935448 - -0.3459011018 -311.9001770020 0.0016906948 - -0.3471225202 -313.0506286621 0.0016899751 - -0.3483433425 -313.1139221191 0.0016859398 - -0.3495635986 -313.4329528809 0.0016849258 - -0.3507832289 -313.8403930664 0.0016819709 - -0.3520022631 -314.9865722656 0.0016807499 - -0.3532207310 -315.0371093750 0.0016764377 - -0.3544385731 -315.3546142578 0.0016750178 - -0.3556558192 -315.7542724609 0.0016718055 - -0.3568724692 -315.7946166992 0.0016671527 - -0.3580885231 -316.1105651855 0.0016654192 - -0.3593039513 -316.5037231445 0.0016618771 - -0.3605187833 -317.6417236328 0.0016601325 - -0.3617329895 -316.8483886719 0.0016550587 - -0.3629465997 -317.9839782715 0.0016532654 - -0.3641595840 -318.3692932129 0.0016492221 - -0.3653719425 -318.3869628906 0.0016442857 - -0.3665837049 -318.6999511719 0.0016420737 - -0.3677948117 -319.0788574219 0.0016379609 - -0.3690053225 -320.2086791992 0.0016356430 - -0.3702152073 -320.2137756348 0.0016303370 - -0.3714244664 -319.7705688477 0.0016258666 - -0.3726330698 -320.8966369629 0.0016234190 - -0.3738410771 -320.8917236328 0.0016178722 - -0.3750484288 -321.2572326660 0.0016133685 - -0.3762551546 -321.5666809082 0.0016106948 - -0.3774612248 -321.9292297363 0.0016060132 - -0.3786666691 -321.9109497070 0.0016002115 - -0.3798714578 -323.0286560059 0.0015975025 - -0.3810756207 -322.5752258301 0.0015924833 - -0.3822791278 -322.5469360352 0.0015865982 - -0.3834820092 -323.6609191895 0.0015836372 - -0.3846842051 -324.0101928711 0.0015787357 - -0.3858857751 -323.5512390137 0.0015735285 - -0.3870866597 -324.2756042480 0.0015693828 - -0.3882869184 -324.6184692383 0.0015641862 - -0.3894865215 -324.9592285156 0.0015589998 - -0.3906854391 -326.0660705566 0.0015558575 - -0.3918837011 -325.2093200684 0.0015494919 - -0.3930813074 -325.5438232422 0.0015442285 - -0.3942782581 -325.8760070801 0.0015388881 - -0.3954745233 -326.5823364258 0.0015343258 - -0.3966701031 -326.9098510742 0.0015288221 - -0.3978650272 -326.4369812012 0.0015234191 - -0.3990592957 -326.7608032227 0.0015178178 - -0.4002528787 -327.4572448730 0.0015134227 - -0.4014457762 -327.7762756348 0.0015078133 - -0.4026379883 -328.0932006836 0.0015022494 - -0.4038295150 -327.6137084961 0.0014964666 - -0.4050203562 -328.3002014160 0.0014917613 - -0.4062105119 -328.6109313965 0.0014860805 - -0.4073999822 -328.9195556641 0.0014802545 - -0.4085887671 -329.2257995605 0.0014744162 - -0.4097768664 -328.3299865723 0.0014678196 - -0.4109642506 -329.4139404297 0.0014639175 - -0.4121509492 -329.7141418457 0.0014580772 - -0.4133369625 -330.0121459961 0.0014522702 - -0.4145222604 -329.8935241699 0.0014453160 - -0.4157068431 -330.1859741211 0.0014394564 - -0.4168907404 -330.4763183594 0.0014335152 - -0.4180739224 -330.7671203613 0.0014295577 - -0.4192563891 -330.6354064941 0.0014225856 - -0.4204381704 -330.9196777344 0.0014165161 - -0.4216192067 -331.2018432617 0.0014105085 - -0.4227995574 -331.4817199707 0.0014046602 - -0.4239791632 -331.3355407715 0.0013975105 - -0.4251580536 -331.6099548340 0.0013914600 - -0.4263362586 -331.8961486816 0.0013874997 - -0.4275136888 -332.1678466797 0.0013812699 - -0.4286904335 -332.0087890625 0.0013742968 - -0.4298664331 -332.2750244141 0.0013683354 - -0.4310417175 -332.5392150879 0.0013622742 - -0.4322162569 -332.8012084961 0.0013559151 - -0.4333900809 -332.6276550293 0.0013490121 - -0.4345631599 -332.8842163086 0.0013427866 - -0.4357354939 -332.3663330078 0.0013368947 - -0.4369070828 -333.4193420410 0.0013325301 - -0.4380779564 -333.2330017090 0.0013254777 - -0.4392480850 -333.4815063477 0.0013192529 - -0.4404174387 -333.7278442383 0.0013131654 - -0.4415860772 -333.9720458984 0.0013068608 - -0.4427539706 -333.7714233398 0.0012999396 - -0.4439210892 -334.0102539062 0.0012938294 - -0.4450874627 -334.2469787598 0.0012875905 - -0.4462530911 -334.4815673828 0.0012814875 - -0.4474179447 -333.9500732422 0.0012753127 - -0.4485820532 -333.7326965332 0.0012682832 - -0.4497453868 -333.9606628418 0.0012621379 - -0.4509079754 -334.1865539551 0.0012560273 - -0.4520697892 -334.4103698730 0.0012498666 - -0.4532308578 -334.1787719727 0.0012429152 - -0.4543911517 -334.3972167969 0.0012367031 - -0.4555506408 -334.6135559082 0.0012305491 - -0.4567093849 -334.8277587891 0.0012242747 - -0.4578673542 -334.5820922852 0.0012174941 - -0.4590245485 -334.7910461426 0.0012113259 - -0.4601809680 -334.9978332520 0.0012052939 - -0.4613365829 -335.2026367188 0.0011990707 - -0.4624914527 -334.9427490234 0.0011923094 - -0.4636455178 -335.1423339844 0.0011860750 - -0.4647987783 -334.5884704590 0.0011802076 - -0.4659512937 -334.7846679688 0.0011741316 - -0.4671029747 -334.9788208008 0.0011680736 - -0.4682538807 -334.7025756836 0.0011613511 - -0.4694040120 -334.8914489746 0.0011551639 - -0.4705533385 -335.0782775879 0.0011491078 - -0.4717018604 -335.2630615234 0.0011430699 - -0.4728495777 -334.9728393555 0.0011363645 - -0.4739964902 -335.1524658203 0.0011302219 - -0.4751425982 -334.5049438477 0.0011227652 - -0.4762879312 -334.6796875000 0.0011167058 - -0.4774324298 -334.8523864746 0.0011106050 - -0.4785761237 -334.5444946289 0.0011040620 - -0.4797190130 -334.7119445801 0.0010980654 - -0.4808610678 -334.8773193359 0.0010922001 - -0.4820023179 -335.0406799316 0.0010863087 - -0.4831427634 -335.2020568848 0.0010803610 - -0.4842823744 -334.8771362305 0.0010737736 - -0.4854211807 -335.0333862305 0.0010679626 - -0.4865591526 -334.3553466797 0.0010606339 - -0.4876962900 -334.5068054199 0.0010547588 - -0.4888326228 -334.6562194824 0.0010489355 - -0.4899681211 -334.3136901855 0.0010425446 - -0.4911027849 -334.4580078125 0.0010366251 - -0.4922366142 -334.6003417969 0.0010308144 - -0.4933696091 -334.7406311035 0.0010252279 - -0.4945017695 -333.5472412109 0.0010173507 - -0.4956330955 -333.6816406250 0.0010115847 - -0.4967635572 -333.8141479492 0.0010058364 - -0.4978932142 -333.9446716309 0.0010003626 - -0.4990220070 -334.0731811523 0.0009947288 - -0.5001499653 -333.6996154785 0.0009883965 - -0.5012770295 -332.9815673828 0.0009812713 - -0.5024033189 -333.1023559570 0.0009757365 - -0.5035287142 -333.2211914062 0.0009702154 - -0.5046532154 -333.3379211426 0.0009646787 - -0.5057769418 -332.9470825195 0.0009586433 - -0.5068997741 -333.0588378906 0.0009530272 - -0.5080217123 -332.3229675293 0.0009461341 - -0.5091428757 -333.1469421387 0.0009403788 - -0.5102630854 -333.2512817383 0.0009350359 - -0.5113824606 -332.8422241211 0.0009291032 - -0.5125010014 -332.0930786133 0.0009223536 - -0.5136186481 -332.1897583008 0.0009168368 - -0.5147354007 -332.2844848633 0.0009115096 - -0.5158513188 -332.3772888184 0.0009061932 - -0.5169663429 -332.4681396484 0.0009011323 - -0.5180804729 -331.1871032715 0.0008937972 - -0.5191937685 -331.2723999023 0.0008886245 - -0.5203061700 -331.3556518555 0.0008834690 - -0.5214176774 -331.4370422363 0.0008781130 - -0.5225282907 -330.6618957520 0.0008715048 - -0.5236380696 -330.2150878906 0.0008660014 - -0.5247468948 -330.2889709473 0.0008607857 - -0.5258548856 -330.3608398438 0.0008558057 - -0.5269619226 -330.2756958008 0.0008489265 - -0.5280681252 -330.3422546387 0.0008441454 - -0.5291733742 -329.8776550293 0.0008386772 - -0.5302777886 -329.0800170898 0.0008323110 - -0.5313812494 -329.1391601562 0.0008273319 - -0.5324838758 -329.1963195801 0.0008223765 - -0.5335855484 -329.2516479492 0.0008174716 - -0.5346863270 -327.9084167480 0.0008107571 - -0.5357862115 -327.9582519531 0.0008060170 - -0.5368851423 -328.0061645508 0.0008011682 - -0.5379832387 -327.8810119629 0.0007947456 - -0.5390803814 -327.9236145020 0.0007898696 - -0.5401765704 -327.9643249512 0.0007851394 - -0.5412719250 -326.5960388184 0.0007787441 - -0.5423662663 -326.6312561035 0.0007741225 - -0.5434597731 -326.6647033691 0.0007693382 - -0.5445523262 -325.8283691406 0.0007635053 - -0.5456439257 -325.8575134277 0.0007589213 - -0.5467346311 -325.8846435547 0.0007543943 - -0.5478244424 -325.1767272949 0.0007478260 - -0.5489133000 -325.1975708008 0.0007431898 - -0.5500012040 -325.2165832520 0.0007387334 - -0.5510882139 -324.3621520996 0.0007330141 - -0.5521742702 -324.3768615723 0.0007286568 - -0.5532593727 -324.3897705078 0.0007242505 - -0.5543435216 -322.9728393555 0.0007181079 - -0.5554267764 -323.6579589844 0.0007135135 - -0.5565090775 -323.6627197266 0.0007091818 - -0.5575904250 -322.7903137207 0.0007036252 - -0.5586708188 -322.7908020020 0.0006994564 - -0.5597503185 -321.3530883789 0.0006935163 - -0.5608288050 -321.3482971191 0.0006893305 - -0.5619063377 -321.3417358398 0.0006852754 - -0.5629829764 -321.1254882812 0.0006795069 - -0.5640586019 -321.1138610840 0.0006751845 - -0.5651333332 -320.2204589844 0.0006698958 - -0.5662070513 -319.6383666992 0.0006655555 - -0.5672798157 -319.6195373535 0.0006614865 - -0.5683516860 -318.7173156738 0.0006562597 - -0.5694224834 -319.3594360352 0.0006520158 - -0.5704923868 -318.4508056641 0.0006467987 - -0.5715613365 -318.4227600098 0.0006429240 - -0.5726292729 -317.8203430176 0.0006386960 - -0.5736962557 -316.9029235840 0.0006336233 - -0.5747622848 -316.8679504395 0.0006298308 - -0.5758273005 -316.6044616699 0.0006244082 - -0.5768913627 -316.5643615723 0.0006206025 - -0.5779544115 -315.6354064941 0.0006157230 - -0.5790165067 -315.5912475586 0.0006119511 - -0.5800776482 -314.9653320312 0.0006079525 - -0.5811377764 -314.0276184082 0.0006031689 - -0.5821969509 -314.6300048828 0.0005991345 - -0.5832551122 -313.6860961914 0.0005944165 - -0.5843122602 -313.6300964355 0.0005907227 - -0.5853684545 -312.6810913086 0.0005860649 - -0.5864236355 -312.6210327148 0.0005825849 - -0.5874778628 -311.7276000977 0.0005771325 - -0.5885310173 -311.6615295410 0.0005737167 - -0.5895832181 -310.7000732422 0.0005691816 - -0.5906344652 -310.6300659180 0.0005657224 - -0.5916846395 -310.5583190918 0.0005623421 - -0.5927338600 -310.2327880859 0.0005575158 - -0.5937820077 -309.5623474121 0.0005538546 - -0.5948292017 -308.5863037109 0.0005494129 - -0.5958753824 -308.5046081543 0.0005462215 - -0.5969205499 -308.1629028320 0.0005413505 - -0.5979647040 -308.0763244629 0.0005381680 - -0.5990078449 -307.0891723633 0.0005338867 - -0.6000499725 -306.3986206055 0.0005303832 - -0.6010910869 -305.4053649902 0.0005261977 - -0.6021311879 -305.9442749023 0.0005225689 - -0.6031702757 -304.9451293945 0.0005184889 - -0.6042082906 -304.8447875977 0.0005154245 - -0.6052453518 -303.8406372070 0.0005113850 - -0.6062813401 -304.3668212891 0.0005079578 - -0.6073163152 -302.7493286133 0.0005035124 - -0.6083502173 -302.6393127441 0.0005005245 - -0.6093831062 -301.6232299805 0.0004965803 - -0.6104149818 -301.2305908203 0.0004923071 - -0.6114458442 -301.1135559082 0.0004893248 - -0.6124756336 -300.0888671875 0.0004854375 - -0.6135044098 -299.9680175781 0.0004826171 - -0.6145321131 -299.5606079102 0.0004784475 - -0.6155588031 -298.8195190430 0.0004753724 - -0.6165844798 -297.7829895020 0.0004714607 - -0.6176090240 -297.6526794434 0.0004688271 - -0.6186326146 -297.2293701172 0.0004647179 - -0.6196550727 -297.0943603516 0.0004620943 - -0.6206765175 -296.0471801758 0.0004583288 - -0.6216969490 -295.9085083008 0.0004557177 - -0.6227162480 -295.4705200195 0.0004517248 - -0.6237345338 -293.7911987305 0.0004478966 - -0.6247518063 -293.6446533203 0.0004452422 - -0.6257679462 -292.5833129883 0.0004417701 - -0.6267830729 -293.0428771973 0.0004388448 - -0.6277970672 -291.9758911133 0.0004354434 - -0.6288100481 -291.8209533691 0.0004329000 - -0.6298220158 -290.7491455078 0.0004295263 - -0.6308328509 -289.6498107910 0.0004254600 - -0.6318426132 -289.4871826172 0.0004230494 - -0.6328513026 -288.4061279297 0.0004196923 - -0.6338589191 -288.8425903320 0.0004170100 - -0.6348655224 -287.7559204102 0.0004137221 - -0.6358709931 -287.5850830078 0.0004113852 - -0.6368753910 -286.4938964844 0.0004081878 - -0.6378787160 -285.3606262207 0.0004043255 - -0.6388809681 -285.1822204590 0.0004020878 - -0.6398820877 -284.0818481445 0.0003989026 - -0.6408821940 -284.4952392578 0.0003963093 - -0.6418811679 -283.3892211914 0.0003932400 - -0.6428790689 -282.2808227539 0.0003901348 - -0.6438758969 -282.0923461914 0.0003880090 - -0.6448715925 -281.5704956055 0.0003846835 - -0.6458662152 -281.3776245117 0.0003825397 - -0.6468597651 -279.6122741699 0.0003792961 - -0.6478521824 -279.0783081055 0.0003759909 - -0.6488435268 -278.8778686523 0.0003739908 - -0.6498337388 -277.7505187988 0.0003710279 - -0.6508228779 -277.2055053711 0.0003678626 - -0.6518108845 -276.9986572266 0.0003659139 - -0.6527978182 -275.8634338379 0.0003630121 - -0.6537836194 -276.2348632812 0.0003607810 - -0.6547683477 -275.0941772461 0.0003580209 - -0.6557519436 -273.9511413574 0.0003552282 - -0.6567344069 -273.6562805176 0.0003527089 - -0.6577157974 -272.5068359375 0.0003500539 - -0.6586960554 -271.3550415039 0.0003473051 - -0.6596751809 -271.1311950684 0.0003455644 - -0.6606532335 -270.5493164062 0.0003425624 - -0.6616301537 -270.3211364746 0.0003408087 - -0.6626058817 -269.1597290039 0.0003382065 - -0.6635805964 -267.9034118652 0.0003349778 - -0.6645541191 -267.6680297852 0.0003333242 - -0.6655265093 -266.4980468750 0.0003307692 - -0.6664977670 -265.8935852051 0.0003279319 - -0.6674679518 -265.6519775391 0.0003263113 - -0.6684369445 -264.4744873047 0.0003238265 - -0.6694048047 -263.8591918945 0.0003210350 - -0.6703715920 -263.6114807129 0.0003194909 - -0.6713371873 -261.7551269531 0.0003167485 - -0.6723016500 -261.1282348633 0.0003140480 - -0.6732649803 -260.8734741211 0.0003125517 - -0.6742271781 -259.6799926758 0.0003101975 - -0.6751882434 -259.0424804688 0.0003075212 - -0.6761481166 -258.7816772461 0.0003060675 - -0.6771069169 -258.1368408203 0.0003034502 - -0.6780645251 -256.9327392578 0.0003011730 - -0.6790209413 -256.6659545898 0.0002998140 - -0.6799762845 -256.0105590820 0.0002972048 - -0.6809304357 -254.7991333008 0.0002950344 - -0.6818833947 -254.5263977051 0.0002936335 - -0.6828352809 -253.8605194092 0.0002911742 - -0.6837859750 -252.6418914795 0.0002890273 - -0.6847354770 -251.6785430908 0.0002874250 - -0.6856838465 -251.0012207031 0.0002849919 - -0.6866310239 -249.7744445801 0.0002829554 - -0.6875770688 -249.4890441895 0.0002816365 - -0.6885219812 -248.8013153076 0.0002792822 - -0.6894657016 -247.5674438477 0.0002772802 - -0.6904082298 -246.8721923828 0.0002748765 - -0.6913495660 -246.5781707764 0.0002737379 - -0.6922897696 -244.6450195312 0.0002714844 - -0.6932287812 -243.9384765625 0.0002691588 - -0.6941666603 -243.6378021240 0.0002680347 - -0.6951032877 -242.3889923096 0.0002661454 - -0.6960387826 -241.6722106934 0.0002638814 - -0.6969730854 -241.3658752441 0.0002628088 - -0.6979062557 -239.9441223145 0.0002603201 - -0.6988381743 -238.6842651367 0.0002584651 - -0.6997689605 -237.4223785400 0.0002566484 - -0.7006985545 -237.6364135742 0.0002552997 - -0.7016268969 -236.3697814941 0.0002534715 - -0.7025541067 -235.1010437012 0.0002517094 - -0.7034801245 -235.3062438965 0.0002503971 - -0.7044049501 -234.0327911377 0.0002486421 - -0.7053285241 -233.2804107666 0.0002465932 - -0.7062509656 -232.0018463135 0.0002448726 - -0.7071722150 -231.6735229492 0.0002439225 - -0.7080922127 -230.9111022949 0.0002419390 - -0.7090110779 -229.6259307861 0.0002402790 - -0.7099286914 -229.8096466064 0.0002390357 - -0.7108451128 -228.5197753906 0.0002374052 - -0.7117602825 -227.2279510498 0.0002357737 - -0.7126743197 -226.4483642578 0.0002338632 - -0.7135871053 -226.1064910889 0.0002330235 - -0.7144986987 -225.3200683594 0.0002311092 - -0.7154091001 -224.0186462402 0.0002295598 - -0.7163182497 -223.6714477539 0.0002287565 - -0.7172262073 -222.8752288818 0.0002269094 - -0.7181329727 -220.8491821289 0.0002251284 - -0.7190384865 -220.0448913574 0.0002232938 - -0.7199427485 -219.6888427734 0.0002225384 - -0.7208458185 -218.3736877441 0.0002210708 - -0.7217476964 -216.8378906250 0.0002190184 - -0.7226483226 -215.5170288086 0.0002175790 - -0.7235477567 -215.6540679932 0.0002165458 - -0.7244459391 -213.6042938232 0.0002148786 - -0.7253428698 -212.7746887207 0.0002131312 - -0.7262386084 -212.4039001465 0.0002124578 - -0.7271330953 -210.3443145752 0.0002108315 - -0.7280263305 -209.5041961670 0.0002091407 - -0.7289183736 -208.1660919189 0.0002078110 - -0.7298091650 -208.2806701660 0.0002068438 - -0.7306987047 -206.9382476807 0.0002055244 - -0.7315870523 -205.5940246582 0.0002042270 - -0.7324740887 -204.7374267578 0.0002026083 - -0.7333599329 -204.3516693115 0.0002020138 - -0.7342445254 -204.2227478027 0.0002006881 - -0.7351278663 -202.8704986572 0.0001994423 - -0.7360099554 -202.7373352051 0.0001981371 - -0.7368907928 -202.3458709717 0.0001976042 - -0.7377703786 -201.7263031006 0.0001966382 - -0.7386487722 -201.5881500244 0.0001953752 - -0.7395258546 -200.9675445557 0.0001944496 - -0.7404016852 -202.5323638916 0.0001941469 - -0.7412762642 -201.9119110107 0.0001932371 - -0.7421495914 -202.5105438232 0.0001922740 - -0.7430216670 -201.8899841309 0.0001913783 - -0.7438924909 -203.4550476074 0.0001911191 - -0.7447620630 -202.8347015381 0.0001902545 - -0.7456303239 -202.9600067139 0.0001896612 - -0.7464973330 -203.5582885742 0.0001887337 - -0.7473630905 -203.9071807861 0.0001885892 - -0.7482275963 -204.5051116943 0.0001876871 - -0.7490907907 -203.8857727051 0.0001868532 - -0.7499527931 -204.4829864502 0.0001860114 - -0.7508134246 -204.8333282471 0.0001858791 - -0.7516728640 -204.2143402100 0.0001850714 - -0.7525309920 -204.0584869385 0.0001839468 - -0.7533878684 -203.4385528564 0.0001831907 - -0.7542434335 -203.4962005615 0.0001825010 - -0.7550977468 -202.8748016357 0.0001817420 - -0.7559507489 -201.9559936523 0.0001804321 - -0.7568024993 -281.7672119141 0.0001753966 - -0.7576529384 -283.2783203125 0.0001747626 - -0.7585021257 -286.0545349121 0.0001738373 - -0.7593500018 -287.0920410156 0.0001725837 - -0.7601966262 -288.8758544922 0.0001716854 - -0.7610419393 -291.1079101562 0.0001714452 - -0.7618859410 -293.0921020508 0.0001702786 - -0.7627286911 -294.8568725586 0.0001694147 - -0.7635701299 -295.8405151367 0.0001682295 - -0.7644102573 -298.0357055664 0.0001680582 - -0.7652490735 -299.9854736328 0.0001669461 - -0.7660866380 -301.7178955078 0.0001661496 - -0.7669228911 -302.6606445312 0.0001650414 - -0.7677578330 -305.3524169922 0.0001643228 - -0.7685914636 -306.7339477539 0.0001638673 - -0.7694238424 -308.4338989258 0.0001631203 - -0.7702548504 -309.3564453125 0.0001620612 - -0.7710846066 -311.9960327148 0.0001614226 - -0.7719129920 -314.1088562012 0.0001613611 - -0.7727401257 -315.0043029785 0.0001603279 - -0.7735659480 -316.6644897461 0.0001596536 - -0.7743904591 -318.5210571289 0.0001587159 - -0.7752135992 -320.5977478027 0.0001587072 - -0.7760354877 -321.4285583496 0.0001577313 - -0.7768560052 -323.0558471680 0.0001571187 - -0.7776752710 -324.8773803711 0.0001562324 - -0.7784931660 -326.9165649414 0.0001562544 - -0.7793097496 -327.7410583496 0.0001553232 - -0.7801250815 -329.3367919922 0.0001547553 - -0.7809389830 -330.1442565918 0.0001538313 - -0.7817516327 -333.1271667480 0.0001540014 - -0.7825629115 -333.8763427734 0.0001531228 - -0.7833729386 -335.4389648438 0.0001525985 - -0.7841815352 -336.2100524902 0.0001517284 - -0.7849888802 -338.7386169434 0.0001513140 - -0.7857948542 -339.9091491699 0.0001510789 - -0.7865995169 -341.4399108887 0.0001506004 - -0.7874028683 -342.1758117676 0.0001497659 - -0.7882048488 -343.6910095215 0.0001493076 - -0.7890054584 -345.8039550781 0.0001492002 - -0.7898048162 -347.3025817871 0.0001487673 - -0.7906027436 -348.7938232422 0.0001483308 - -0.7913994193 -349.4862365723 0.0001475351 - -0.7921947241 -351.3686523438 0.0001477383 - -0.7929886580 -353.0264892578 0.0001470896 - -0.7937812209 -354.4854736328 0.0001466896 - -0.7945725322 -355.1424560547 0.0001459396 - -0.7953624129 -356.9877929688 0.0001461724 - -0.7961509824 -357.6262817383 0.0001454352 - -0.7969381809 -360.0376281738 0.0001452009 - -0.7977240682 -360.6590576172 0.0001444816 - -0.7985085845 -362.4671936035 0.0001447434 - -0.7992917299 -363.0700073242 0.0001440388 - -0.8000735044 -364.4639587402 0.0001437262 - -0.8008539677 -365.0494689941 0.0001430281 - -0.8016330600 -366.8200073242 0.0001433051 - -0.8024107814 -368.3734436035 0.0001427681 - -0.8031871319 -369.7346801758 0.0001424990 - -0.8039621711 -370.2844238281 0.0001418282 - -0.8047357798 -371.6297912598 0.0001415633 - -0.8055080771 -372.5485534668 0.0001414910 - -0.8062790036 -373.8768310547 0.0001412407 - -0.8070484996 -375.4588317871 0.0001407529 - -0.8078166842 -376.7727050781 0.0001405033 - -0.8085834980 -377.6520080566 0.0001404538 - -0.8093489408 -378.9486694336 0.0001402406 - -0.8101130128 -379.4276123047 0.0001396357 - -0.8108757138 -380.7083129883 0.0001394170 - -0.8116370440 -381.5465393066 0.0001394015 - -0.8123969436 -382.8099975586 0.0001392007 - -0.8131555319 -383.3436584473 0.0001386005 - -0.8139126897 -385.5818786621 0.0001385889 - -0.8146684766 -386.3804321289 0.0001385786 - -0.8154229522 -387.6120605469 0.0001384059 - -0.8161759377 -388.0197753906 0.0001378443 - -0.8169276118 -389.3327941895 0.0001376840 - -0.8176779151 -390.0914001465 0.0001376876 - -0.8184267879 -391.2908325195 0.0001375562 - -0.8191742897 -391.6633911133 0.0001370161 - -0.8199203610 -393.3128967285 0.0001374288 - -0.8206651211 -393.6678771973 0.0001368933 - -0.8214084506 -394.8350830078 0.0001367869 - -0.8221503496 -395.1723632812 0.0001362507 - -0.8228908777 -397.7814941406 0.0001368858 - -0.8236300349 -398.1013183594 0.0001363652 - -0.8243678212 -399.2362976074 0.0001362708 - -0.8251041770 -399.5384216309 0.0001357708 - -0.8258391023 -401.1239624023 0.0001362321 - -0.8265726566 -401.4083862305 0.0001357357 - -0.8273047805 -401.6835632324 0.0001352304 - -0.8280355334 -402.8944091797 0.0001351731 - -0.8287649155 -403.5020751953 0.0001352308 - -0.8294928074 -404.5797424316 0.0001351687 - -0.8302193880 -404.9402160645 0.0001346878 - -0.8309444785 -406.0028381348 0.0001346554 - -0.8316681981 -406.5700378418 0.0001347169 - -0.8323904872 -407.7397155762 0.0001346829 - -0.8331114054 -407.9450988770 0.0001342171 - -0.8338308930 -409.4426269531 0.0001347227 - -0.8345489502 -409.6301879883 0.0001342715 - -0.8352656364 -410.6437377930 0.0001342555 - -0.8359808326 -410.9445495605 0.0001338010 - -0.8366946578 -412.2784118652 0.0001343321 - -0.8374070525 -412.5639953613 0.0001338979 - -0.8381180763 -413.5459289551 0.0001339134 - -0.8388276100 -413.8174438477 0.0001334683 - -0.8395357728 -415.1148071289 0.0001340148 - -0.8402424455 -415.3709716797 0.0001335866 - -0.8409477472 -416.3212585449 0.0001336162 - -0.8416516185 -416.8902893066 0.0001336977 - -0.8423540592 -417.8240356445 0.0001337371 - -0.8430550694 -418.0508422852 0.0001333202 - -0.8437546492 -418.9693298340 0.0001333785 - -0.8444527984 -419.5039672852 0.0001334749 - -0.8451495171 -419.4098510742 0.0001333077 - -0.8458448052 -419.6070251465 0.0001329068 - -0.8465386629 -419.9651794434 0.0001330084 - -0.8472310901 -420.9935302734 0.0001330747 - -0.8479220867 -421.1685791016 0.0001326804 - -0.8486115932 -422.0310668945 0.0001327671 - -0.8492997289 -422.5051879883 0.0001328794 - -0.8499863744 -423.3510742188 0.0001329611 - -0.8506715894 -423.4963989258 0.0001325684 - -0.8513553739 -424.7958984375 0.0001331680 - -0.8520377278 -424.7663574219 0.0001327897 - -0.8527185917 -424.7449340820 0.0001326601 - -0.8533980846 -425.1677551270 0.0001327793 - -0.8540760279 -425.9659423828 0.0001328900 - -0.8547526002 -426.0673522949 0.0001325182 - -0.8554276824 -427.0172729492 0.0001326457 - -0.8561013341 -427.2380981445 0.0001327744 - -0.8567735553 -428.1738891602 0.0001329024 - -0.8574442863 -427.2489013672 0.0001323027 - -0.8581135869 -427.4396667480 0.0001324162 - -0.8587814569 -428.3549804688 0.0001325628 - -0.8594478369 -428.4053344727 0.0001322097 - -0.8601127863 -429.6024169922 0.0001328488 - -0.8607762456 -429.4609985352 0.0001324893 - -0.8614382148 -430.3503723145 0.0001326531 - -0.8620988131 -429.6633605957 0.0001325267 - -0.8627578616 -430.5396423340 0.0001327057 - -0.8634154797 -430.5469360352 0.0001323644 - -0.8640716672 -431.5135498047 0.0001330061 - -0.8647263646 -431.5052490234 0.0001326742 - -0.8653795719 -431.3566589355 0.0001325953 - -0.8660313487 -431.3351440430 0.0001322580 - -0.8666816354 -432.4544067383 0.0001329190 - -0.8673304319 -432.4184875488 0.0001326010 - -0.8679777980 -432.0531921387 0.0001325143 - -0.8686236739 -432.2800903320 0.0001326698 - -0.8692681193 -432.2215270996 0.0001323489 - -0.8699110150 -433.0260009766 0.0001325524 - -0.8705524802 -433.2278137207 0.0001326982 - -0.8711925149 -433.0198974609 0.0001326364 - -0.8718309999 -432.9336853027 0.0001323422 - -0.8724680543 -433.9828491211 0.0001330217 - -0.8731035590 -432.8827514648 0.0001324334 - -0.8737376332 -433.9161376953 0.0001331211 - -0.8743702173 -433.8009643555 0.0001328131 - -0.8750013709 -434.5539245605 0.0001330550 - -0.8756309748 -433.6894226074 0.0001329179 - -0.8762590885 -434.4290161133 0.0001331630 - -0.8768857718 -434.2861633301 0.0001328738 - -0.8775109053 -434.2738037109 0.0001332808 - -0.8781346083 -434.1163635254 0.0001329900 - -0.8787568212 -433.9519958496 0.0001327105 - -0.8793774843 -434.9158935547 0.0001334141 - -0.8799967170 -433.7371826172 0.0001328296 - -0.8806143999 -434.4318847656 0.0001331057 - -0.8812306523 -434.4917907715 0.0001332584 - -0.8818453550 -434.1732482910 0.0001332456 - -0.8824586272 -434.2160644531 0.0001334077 - -0.8830703497 -435.1061706543 0.0001337068 - -0.8836805820 -433.8860778809 0.0001331260 - -0.8842893243 -434.7890625000 0.0001338500 - -0.8848965764 -433.5543823242 0.0001332783 - -0.8855023384 -434.1982116699 0.0001335775 - -0.8861065507 -434.1921081543 0.0001337351 - -0.8867093325 -434.0522155762 0.0001337497 - -0.8873105645 -433.7907714844 0.0001334910 - -0.8879102468 -433.7605895996 0.0001336650 - -0.8885084987 -433.3724060059 0.0001336569 - -0.8891052008 -433.3250427246 0.0001338194 - -0.8897004128 -433.1594543457 0.0001338444 - -0.8902941346 -432.8630371094 0.0001335918 - -0.8908863664 -432.6824340820 0.0001340343 - -0.8914770484 -432.6111755371 0.0001337982 - -0.8920661807 -433.4157714844 0.0001345424 - -0.8926538825 -432.0912780762 0.0001339788 - -0.8932400346 -432.6530456543 0.0001343165 - -0.8938246369 -431.7856140137 0.0001341895 - -0.8944077492 -432.3351135254 0.0001345418 - -0.8949893713 -431.2069396973 0.0001343748 - -0.8955694437 -431.0959777832 0.0001341605 - -0.8961480260 -430.6268920898 0.0001341927 - -0.8967250586 -430.7255859375 0.0001343892 - -0.8973006010 -430.2442932129 0.0001344285 - -0.8978745937 -430.0757446289 0.0001345862 - -0.8984470963 -429.8358764648 0.0001346563 - -0.8990180492 -429.4372558594 0.0001344262 - -0.8995874524 -429.4018249512 0.0001348946 - -0.9001553655 -428.9897460938 0.0001346605 - -0.9007217288 -428.9419860840 0.0001351346 - -0.9012866020 -428.5164489746 0.0001349106 - -0.9018499255 -428.4564208984 0.0001353819 - -0.9024117589 -428.0173645020 0.0001351596 - -0.9029719830 -426.8367919922 0.0001346317 - -0.9035307765 -427.4925231934 0.0001354166 - -0.9040879607 -426.3010253906 0.0001349006 - -0.9046436548 -426.9418334961 0.0001356709 - -0.9051977992 -425.7394714355 0.0001351581 - -0.9057503939 -425.3660278320 0.0001355905 - -0.9063014388 -425.1521301270 0.0001354203 - -0.9068509936 -425.0375976562 0.0001358946 - -0.9073989987 -424.5388488770 0.0001356912 - -0.9079454541 -424.2182312012 0.0001358018 - -0.9084903598 -422.9006958008 0.0001356194 - -0.9090337157 -423.5693054199 0.0001360820 - -0.9095755816 -422.5158691406 0.0001359406 - -0.9101158381 -422.8944702148 0.0001363736 - -0.9106546044 -421.8276367188 0.0001362195 - -0.9111918211 -420.5676574707 0.0001357210 - -0.9117274880 -421.1133728027 0.0001365116 - -0.9122616053 -419.8425598145 0.0001360039 - -0.9127941728 -419.6622924805 0.0001364874 - -0.9133251905 -419.3803405762 0.0001363418 - -0.9138546586 -418.8988342285 0.0001367871 - -0.9143825769 -417.6075134277 0.0001362840 - -0.9149089456 -418.2249145508 0.0001367890 - -0.9154337645 -417.1010131836 0.0001366373 - -0.9159570336 -416.4165344238 0.0001367303 - -0.9164787531 -416.2772827148 0.0001369477 - -0.9169989228 -415.8779296875 0.0001370938 - -0.9175175428 -414.7284240723 0.0001369331 - -0.9180346131 -415.3182983398 0.0001374613 - -0.9185501337 -414.1566162109 0.0001373051 - -0.9190640450 -412.5185241699 0.0001367611 - -0.9195764065 -412.2624511719 0.0001372531 - -0.9200872779 -411.9134216309 0.0001371376 - -0.9205965400 -411.6462097168 0.0001376328 - -0.9211041927 -410.2901611328 0.0001371421 - -0.9216103554 -410.0117492676 0.0001376318 - -0.9221149683 -409.6431884766 0.0001375259 - -0.9226179719 -409.3535156250 0.0001380117 - -0.9231194258 -407.9782714844 0.0001375392 - -0.9236192703 -407.6774902344 0.0001380318 - -0.9241176248 -406.2926330566 0.0001375503 - -0.9246143699 -406.9772644043 0.0001384302 - -0.9251095653 -405.5827636719 0.0001379546 - -0.9256031513 -405.2596130371 0.0001384493 - -0.9260951877 -404.0044555664 0.0001382828 - -0.9265856743 -402.5946655273 0.0001378013 - -0.9270746112 -403.2498474121 0.0001386770 - -0.9275619388 -401.8305053711 0.0001382109 - -0.9280477166 -401.4785156250 0.0001387024 - -0.9285318851 -400.0495300293 0.0001382406 - -0.9290145040 -399.6863708496 0.0001387361 - -0.9294955134 -398.5763549805 0.0001383282 - -0.9299750328 -398.2032775879 0.0001388164 - -0.9304528832 -397.7514953613 0.0001387422 - -0.9309291840 -397.3671264648 0.0001392403 - -0.9314039350 -396.0454101562 0.0001390702 - -0.9318770766 -395.5151977539 0.0001392831 - -0.9323486686 -394.5170898438 0.0001391579 - -0.9328186512 -393.9795532227 0.0001393718 - -0.9332870841 -392.6348266602 0.0001391951 - -0.9337539077 -392.0886230469 0.0001394115 - -0.9342191219 -390.7318115234 0.0001392328 - -0.9346827865 -390.5189819336 0.0001395194 - -0.9351448417 -389.1513061523 0.0001393352 - -0.9356053472 -387.7766418457 0.0001391502 - -0.9360642433 -388.5483093262 0.0001398501 - -0.9365215898 -387.1626586914 0.0001396573 - -0.9369773269 -386.5878601074 0.0001398944 - -0.9374314547 -385.5393371582 0.0001397655 - -0.9378839731 -385.0738220215 0.0001402582 - -0.9383349419 -383.5486145020 0.0001398173 - -0.9387843013 -383.4247741699 0.0001403697 - -0.9392321110 -381.8913269043 0.0001399293 - -0.9396783113 -381.7598876953 0.0001404913 - -0.9401229024 -380.3282775879 0.0001402870 - -0.9405658841 -379.7214965820 0.0001405393 - -0.9410073161 -378.6369018555 0.0001404026 - -0.9414470792 -377.0312500000 0.0001402400 - -0.9418852925 -375.9382934570 0.0001401062 - -0.9423219562 -375.4205627441 0.0001405861 - -0.9427569509 -374.2156066895 0.0001402186 - -0.9431903958 -373.6878662109 0.0001407072 - -0.9436221719 -372.4770507812 0.0001403422 - -0.9440523982 -371.9393310547 0.0001408286 - -0.9444810152 -370.8198547363 0.0001406838 - -0.9449080825 -370.1750793457 0.0001409494 - -0.9453334808 -369.0472717285 0.0001408055 - -0.9457572699 -367.9148864746 0.0001406530 - -0.9461795092 -367.2587585449 0.0001409186 - -0.9466000795 -366.1179809570 0.0001407694 - -0.9470191002 -364.4653625488 0.0001406087 - -0.9474365115 -363.3164062500 0.0001404507 - -0.9478523135 -363.1108703613 0.0001410082 - -0.9482665062 -361.4883422852 0.0001405731 - -0.9486790299 -361.2751770020 0.0001411145 - -0.9490900040 -360.1093444824 0.0001409610 - -0.9494993687 -358.4359130859 0.0001407862 - -0.9499071240 -357.2618103027 0.0001406277 - -0.9503132701 -357.0335998535 0.0001411749 - -0.9507178068 -355.7734375000 0.0001408143 - -0.9511207342 -355.1509094238 0.0001412706 - -0.9515219927 -353.9599304199 0.0001410971 - -0.9519217014 -352.6560058594 0.0001410116 - -0.9523197412 -351.4580688477 0.0001408314 - -0.9527162313 -351.2084960938 0.0001413619 - -0.9531110525 -349.5382385254 0.0001409243 - -0.9535043240 -348.2951965332 0.0001409997 - -0.9538959265 -347.0806884766 0.0001408086 - -0.9542859197 -346.8160095215 0.0001413319 - -0.9546743035 -345.5281982422 0.0001409712 - -0.9550610781 -344.2722473145 0.0001410308 - -0.9554461837 -343.0422668457 0.0001408331 - -0.9558297396 -342.3005371094 0.0001410855 - -0.9562116265 -341.0621643066 0.0001408755 - -0.9565919042 -339.7920532227 0.0001409161 - -0.9569705725 -338.4885559082 0.0001405537 - -0.9573475718 -338.1961975098 0.0001410417 - -0.9577229619 -335.9590454102 0.0001403608 - -0.9580968022 -335.6592102051 0.0001408419 - -0.9584689140 -334.3454895020 0.0001404654 - -0.9588394761 -333.0566711426 0.0001404705 - -0.9592083693 -331.7877502441 0.0001402301 - -0.9595756531 -331.4261169434 0.0001405620 - -0.9599413276 -329.1682739258 0.0001398369 - -0.9603053927 -328.8482971191 0.0001402871 - -0.9606677890 -327.5640258789 0.0001400218 - -0.9610285163 -326.6315002441 0.0001399749 - -0.9613876939 -325.3414916992 0.0001396830 - -0.9617452025 -324.0282287598 0.0001396431 - -0.9621011019 -322.7300109863 0.0001393407 - -0.9624553323 -322.3524475098 0.0001396451 - -0.9628079534 -320.0672302246 0.0001388574 - -0.9631589651 -319.7208862305 0.0001392582 - -0.9635083079 -317.8552246094 0.0001385487 - -0.9638560414 -317.4703369141 0.0001388436 - -0.9642021060 -315.1723327637 0.0001380117 - -0.9645465612 -314.8134765625 0.0001383714 - -0.9648894072 -312.5078125000 0.0001375159 - -0.9652305841 -312.5746459961 0.0001379763 - -0.9655700922 -311.2144470215 0.0001375137 - -0.9659080505 -309.8655090332 0.0001373426 - -0.9662442803 -308.9606933594 0.0001370599 - -0.9665789604 -307.6059875488 0.0001368657 - -0.9669119120 -306.2371520996 0.0001363562 - -0.9672432542 -305.3168640137 0.0001362728 - -0.9675729871 -303.9629211426 0.0001358090 - -0.9679010510 -302.5968017578 0.0001355539 - -0.9682275057 -300.7028808594 0.0001347057 - -0.9685522914 -300.2923583984 0.0001348772 - -0.9688754678 -297.9497375488 0.0001338560 - -0.9691969752 -297.9942016602 0.0001341802 - -0.9695168138 -295.6452941895 0.0001331248 - -0.9698350430 -295.6857299805 0.0001334284 - -0.9701516032 -293.3303833008 0.0001323355 - -0.9704665542 -293.3606262207 0.0001325833 - -0.9707798362 -291.0003051758 0.0001314517 - -0.9710914493 -290.0613098145 0.0001311715 - -0.9714014530 -288.6672973633 0.0001305156 - -0.9717098475 -287.7249450684 0.0001302017 - -0.9720165133 -286.3240051270 0.0001295055 - -0.9723215699 -285.3798522949 0.0001291375 - -0.9726249576 -283.0020751953 0.0001278803 - -0.9729267359 -283.0255432129 0.0001280170 - -0.9732268453 -280.6414184570 0.0001266915 - -0.9735252857 -279.6904602051 0.0001262426 - -0.9738221169 -278.7348327637 0.0001255754 - -0.9741172194 -277.3255004883 0.0001249422 - -0.9744107723 -275.3973388672 0.0001236721 - -0.9747025967 -274.9433898926 0.0001234852 - -0.9749928117 -273.0113220215 0.0001221996 - -0.9752813578 -272.0529479980 0.0001215890 - -0.9755682349 -272.0619506836 0.0001214969 - -0.9758534431 -269.6532592773 0.0001199149 - -0.9761370420 -268.6908569336 0.0001192249 - -0.9764189720 -266.7710266113 0.0001178206 - -0.9766992331 -266.2987365723 0.0001174342 - -0.9769778848 -264.3564758301 0.0001159086 - -0.9772548079 -263.3899841309 0.0001150717 - -0.9775301218 -261.4452819824 0.0001134695 - -0.9778037667 -261.4423828125 0.0001131500 - -0.9780757427 -259.0131225586 0.0001112734 - -0.9783460498 -258.0415649414 0.0001102922 - -0.9786147475 -256.0904541016 0.0001085524 - -0.9788817763 -255.1169586182 0.0001074864 - -0.9791471362 -254.1599578857 0.0001063175 - -0.9794108272 -253.1856231689 0.0001051961 - -0.9796728492 -250.7420654297 0.0001030450 - -0.9799332023 -249.7646636963 0.0001018137 - -0.9801918864 -247.8063201904 0.0000998051 - -0.9804489613 -247.7889251709 0.0000990267 - -0.9807043672 -246.8085327148 0.0000976782 - -0.9809580445 -244.8464202881 0.0000955334 - -0.9812101126 -243.8640594482 0.0000940424 - -0.9814605117 -241.8995971680 0.0000917563 - -0.9817092419 -240.9154357910 0.0000902112 - -0.9819563031 -238.9485778809 0.0000877974 - -0.9822016954 -237.9626312256 0.0000861154 - -0.9824454784 -236.9524688721 0.0000841967 - -0.9826875329 -235.9643554688 0.0000823839 - -0.9829279184 -233.9923706055 0.0000797739 - -0.9831666946 -233.0562591553 0.0000779890 - -0.9834037423 -231.0833435059 0.0000752289 - -0.9836391211 -230.0928039551 0.0000731940 - -0.9838728905 -229.6093444824 0.0000713537 - -0.9841049314 -227.6342620850 0.0000684149 - -0.9843353629 -226.6422729492 0.0000661278 - -0.9845640659 -224.6650238037 0.0000630147 - -0.9847911596 -223.6713409424 0.0000606150 - -0.9850165248 -221.6917114258 0.0000573129 - -0.9852402806 -221.2106323242 0.0000550720 - -0.9854623079 -219.2298583984 0.0000516963 - -0.9856826663 -218.2335815430 0.0000489220 - -0.9859014153 -216.2506103516 0.0000453995 - -0.9861184359 -215.2526855469 0.0000424859 - -0.9863337874 -213.7875518799 0.0000390801 - -0.9865474701 -212.7888488770 0.0000359802 - -0.9867595434 -211.7893371582 0.0000328358 - -0.9869698882 -210.3254699707 0.0000291706 - -0.9871785641 -209.3253479004 0.0000258637 - -0.9873855710 -207.3370666504 0.0000216533 - -0.9875908494 -206.3351745605 0.0000181105 - -0.9877945185 -204.8723907471 0.0000140468 - -0.9879965186 -203.8698577881 0.0000102874 - -0.9881967902 -202.4082946777 0.0000060170 - -0.9883954525 -201.4050750732 0.0000021283 - -0.9885923862 -199.3668365479 -0.0000028814 - -0.9887876511 -197.9057617188 -0.0000074559 - -0.9889812469 -196.9002380371 -0.0000117280 - -0.9891731739 -195.4401855469 -0.0000164548 - -0.9893634319 -194.4341430664 -0.0000209342 - -0.9895520210 -192.9752807617 -0.0000259109 - -0.9897388816 -191.9685363770 -0.0000306219 - -0.9899241328 -189.5657958984 -0.0000364982 - -0.9901076555 -188.5587158203 -0.0000415215 - -0.9902895093 -188.0930480957 -0.0000459951 - -0.9904696941 -186.0950317383 -0.0000520699 - -0.9906481504 -185.6309814453 -0.0000570216 - -0.9908249974 -183.6320495605 -0.0000631236 - -0.9910001159 -182.2268524170 -0.0000690097 - -0.9911735654 -180.2274475098 -0.0000755382 - -0.9913453460 -179.6612243652 -0.0000812526 - -0.9915154576 -178.2091217041 -0.0000876703 - -0.9916839004 -177.1991271973 -0.0000937593 - -0.9918506145 -175.7999267578 -0.0001002063 - -0.9920156598 -173.7978057861 -0.0001074225 - -0.9921790361 -173.3408813477 -0.0001133525 - -0.9923407435 -171.8929443359 -0.0001203680 - -0.9925007224 -169.9438781738 -0.0001278215 - -0.9926590323 -168.4976959229 -0.0001351192 - -0.9928156734 -168.0454406738 -0.0001415943 - -0.9929706454 -166.5387573242 -0.0001495370 - -0.9931239486 -164.5347747803 -0.0001578477 - -0.9932755232 -164.0845947266 -0.0001646723 - -0.9934254289 -162.6424713135 -0.0001727435 - -0.9935736656 -161.2595214844 -0.0001807115 - -0.9937201738 -159.2553100586 -0.0001896245 - -0.9938650131 -158.8097534180 -0.0001971182 - -0.9940081835 -157.4316711426 -0.0002055904 - -0.9941496849 -155.8664245605 -0.0002148168 - -0.9942894578 -155.4239501953 -0.0002227986 - -0.9944275618 -153.0560760498 -0.0002324378 - -0.9945639968 -152.0455017090 -0.0002414029 - -0.9946987629 -149.6802673340 -0.0002514682 - -0.9948318005 -149.2430267334 -0.0002600803 - -0.9949631691 -148.6705627441 -0.0002694764 - -0.9950928688 -146.3096008301 -0.0002799947 - -0.9952208400 -145.8755187988 -0.0002889383 - -0.9953471422 -143.5183410645 -0.0002998245 - -0.9954717755 -143.0873718262 -0.0003089732 - -0.9955946803 -142.6578063965 -0.0003184066 - -0.9957159162 -140.1618041992 -0.0003304963 - -0.9958354831 -139.7340545654 -0.0003401771 - -0.9959533215 -137.3847808838 -0.0003517614 - -0.9960695505 -136.9602508545 -0.0003617626 - -0.9961839914 -134.6149291992 -0.0003737395 - -0.9962968230 -134.0425109863 -0.0003848345 - -0.9964079261 -132.6961669922 -0.0003960454 - -0.9965173602 -131.2799987793 -0.0004077840 - -0.9966250658 -129.9378509521 -0.0004190588 - -0.9967311025 -128.5246582031 -0.0004310771 - -0.9968354702 -127.0293273926 -0.0004436437 - -0.9969381094 -126.6146011353 -0.0004548377 - -0.9970390797 -124.2823791504 -0.0004680220 - -0.9971383810 -124.4653320312 -0.0004785477 - -0.9972359538 -121.9756393433 -0.0004928845 - -0.9973318577 -121.5669860840 -0.0005044896 - -0.9974260926 -120.2397308350 -0.0005171715 - -0.9975185990 -118.8366928101 -0.0005299707 - -0.9976094365 -117.5136413574 -0.0005429010 - -0.9976985455 -116.5454559326 -0.0005563005 - -0.9977859855 -115.2263641357 -0.0005692337 - -0.9978717566 -113.9095001221 -0.0005825269 - -0.9979557991 -112.5137939453 -0.0005959690 - -0.9980381727 -111.6321258545 -0.0006097584 - -0.9981188178 -110.2392120361 -0.0006235060 - -0.9981978536 -108.9304962158 -0.0006371634 - -0.9982751012 -107.6241149902 -0.0006509242 - -0.9983507395 -106.6658477783 -0.0006650442 - -0.9984246492 -105.3633422852 -0.0006791436 - -0.9984968305 -103.9779052734 -0.0006934646 - -0.9985673428 -103.1089248657 -0.0007076885 - -0.9986361861 -101.8126754761 -0.0007220497 - -0.9987033010 -101.0459747314 -0.0007355942 - -0.9987687469 -99.7548751831 -0.0007498657 - -0.9988325238 -97.2794799805 -0.0007667041 - -0.9988945723 -97.5190887451 -0.0007794392 - -0.9989548922 -96.2344665527 -0.0007939723 - -0.9990136027 -94.3807449341 -0.0008099034 - -0.9990705848 -93.1006393433 -0.0008247863 - -0.9991258383 -91.7312927246 -0.0008399320 - -0.9991794229 -90.8820343018 -0.0008546267 - -0.9992313385 -89.6082687378 -0.0008696528 - -0.9992815256 -88.8680648804 -0.0008840908 - -0.9993299842 -87.5993499756 -0.0008989713 - -0.9993768334 -86.7589187622 -0.0009140076 - -0.9994219542 -84.4953765869 -0.0009304379 - -0.9994653463 -84.7660522461 -0.0009434220 - -0.9995070696 -82.9326248169 -0.0009596847 - -0.9995471239 -81.6758117676 -0.0009747901 - -0.9995854497 -81.0531311035 -0.0009890236 - -0.9996221066 -78.5941314697 -0.0010065365 - -0.9996570349 -78.8788146973 -0.0010196597 - -0.9996902943 -76.6322326660 -0.0010360928 - -0.9997218251 -75.8110046387 -0.0010513423 - -0.9997516870 -75.2051849365 -0.0010651854 - -0.9997798800 -72.7516021729 -0.0010828372 - -0.9998063445 -73.0504531860 -0.0010958647 - -0.9998311400 -72.4550399780 -0.0011095147 - -0.9998542070 -70.0049972534 -0.0011274144 - -0.9998756051 -69.4161224365 -0.0011411685 - -0.9998952746 -67.8317718506 -0.0011561913 - -0.9999132752 -67.0293045044 -0.0011710993 - -0.9999295473 -66.7025222778 -0.0011852836 - -0.9999441504 -64.9035491943 -0.0012016189 - -0.9999570847 -64.3325958252 -0.0012147785 - -0.9999682903 -63.7660675049 -0.0012282319 - -0.9999778271 -61.3266754150 -0.0012458008 - -0.9999856353 -60.7667007446 -0.0012591019 - -0.9999917746 -59.9798431396 -0.0012735496 - -0.9999961853 -58.4274063110 -0.0012880731 - -0.9999989271 -57.8794860840 -0.0013010050 - -1.0000000000 -55.4472503662 -0.0013182451 - -0.9999993443 -54.9057617188 -0.0013311447 - -0.9999969602 -54.1312255859 -0.0013452694 - -0.9999929667 -53.4848327637 -0.0013584094 - -0.9999871850 -52.9547576904 -0.0013709599 - -0.9999797940 -52.1877212524 -0.0013846227 - -0.9999706149 -50.6651611328 -0.0013983718 - -0.9999598265 -49.2426986694 -0.0014137637 - -0.9999473095 -48.7267303467 -0.0014259295 - -0.9999330640 -46.9686050415 -0.0014406968 - -0.9999171495 -46.4603042603 -0.0014525738 - -0.9998995662 -44.9563293457 -0.0014656719 - -0.9998802543 -44.2064056396 -0.0014787000 - -0.9998592734 -43.7099075317 -0.0014900523 - -0.9998365641 -41.9651947021 -0.0015043528 - -0.9998121858 -41.4762420654 -0.0015155470 - -0.9997860789 -40.7362976074 -0.0015280178 - -0.9997583032 -38.3760910034 -0.0015412109 - -0.9997288585 -37.6418914795 -0.0015534502 - -0.9996976852 -37.1685409546 -0.0015639141 - -0.9996648431 -35.4396591187 -0.0015774281 - -0.9996302724 -34.9738311768 -0.0015877689 - -0.9995940328 -35.1874618530 -0.0015960883 - -0.9995560646 -33.4677124023 -0.0016090807 - -0.9995164275 -33.0148468018 -0.0016188798 - -0.9994750619 -32.2997207642 -0.0016299991 - -0.9994320273 -30.8548507690 -0.0016411035 - -0.9993873239 -30.1447677612 -0.0016518742 - -0.9993408918 -29.7069702148 -0.0016611447 - -0.9992927909 -27.1309585571 -0.0016738016 - -0.9992429614 -27.3837432861 -0.0016809823 - -0.9991914630 -25.6860809326 -0.0016925507 - -0.9991382957 -25.2648773193 -0.0017011859 - -0.9990833998 -24.5712585449 -0.0017110498 - -0.9990268350 -23.1585159302 -0.0017207961 - -0.9989685416 -23.1573104858 -0.0017284228 - -0.9989085793 -21.8850936890 -0.0017369889 - -0.9988468885 -20.2042160034 -0.0017476184 - -0.9987835288 -19.5241851807 -0.0017566774 - -0.9987185001 -19.8212738037 -0.0017620665 - -0.9986517429 -18.1484603882 -0.0017723339 - -0.9985833168 -16.8991622925 -0.0017799933 - -0.9985131621 -16.2306823730 -0.0017882198 - -0.9984413385 -15.5495529175 -0.0017944977 - -0.9983678460 -14.8870620728 -0.0018024761 - -0.9982926250 -14.5179977417 -0.0018088478 - -0.9982157350 -12.6993637085 -0.0018165320 - -0.9981371164 -12.3394317627 -0.0018225843 - -0.9980568290 -11.6884002686 -0.0018298242 - -0.9979748726 -11.7396774292 -0.0018349076 - -0.9978911877 -9.5354919434 -0.0018425243 - -0.9978058338 -9.5952301025 -0.0018472694 - -0.9977187514 -9.2558135986 -0.0018524692 - -0.9976300001 -6.7657852173 -0.0018608888 - -0.9975395799 -7.1395111084 -0.0018636700 - -0.9974474311 -6.5095062256 -0.0018696981 - -0.9973536134 -5.5907211304 -0.0018751211 - -0.9972581267 -4.4187927246 -0.0018799100 - -0.9971609116 -4.5058898926 -0.0018833274 - -0.9970620275 -3.1988296509 -0.0018889003 - -0.9969614148 -2.4427413940 -0.0018925064 - -0.9968591928 -2.1418991089 -0.0018962141 - -0.9967551827 -1.2483749390 -0.0019005112 - -0.9966495633 0.2070007324 -0.0019056357 - -0.9965422153 -0.2185363770 -0.0019067479 - -0.9964331985 1.3778839111 -0.0019126167 - -0.9963224530 2.1066131592 -0.0019152244 - -0.9962100387 2.3824005127 -0.0019178768 - -0.9960959554 4.0975189209 -0.0019215811 - -0.9959801435 4.3642578125 -0.0019239765 - -0.9958626628 4.2294158936 -0.0019254283 - -0.9957435131 5.9301910400 -0.0019287239 - -0.9956226349 6.1838226318 -0.0019306769 - -0.9955001473 6.0370635986 -0.0019315425 - -0.9953758717 7.4512634277 -0.0019349117 - -0.9952499866 7.9639739990 -0.0019357936 - -0.9951223731 8.6450500488 -0.0019366315 - -0.9949930906 8.8768157959 -0.0019377786 - -0.9948620796 10.5430908203 -0.0019399095 - -0.9947294593 10.3717193604 -0.0019398665 - -0.9945950508 10.5904693604 -0.0019406248 - -0.9944590330 12.2423095703 -0.0019423261 - -0.9943213463 12.0590057373 -0.0019419400 - -0.9941819310 13.0997314453 -0.0019425415 - -0.9940407872 12.9081115723 -0.0019418758 - -0.9938980341 14.5403289795 -0.0019429012 - -0.9937535524 13.9985198975 -0.0019406790 - -0.9936074018 15.3610687256 -0.0019421257 - -0.9934595823 16.1467895508 -0.0019423392 - -0.9933100343 16.4200439453 -0.0019400910 - -0.9931588769 16.2030639648 -0.0019385642 - -0.9930059910 17.8047027588 -0.0019387442 - -0.9928513765 17.9694824219 -0.0019379152 - -0.9926951528 18.5683288574 -0.0019363521 - -0.9925372005 18.3352508545 -0.0019341183 - -0.9923775792 19.9172515869 -0.0019339104 - -0.9922162890 19.3217620850 -0.0019304961 - -0.9920532703 20.6445159912 -0.0019305320 - -0.9918886423 22.2112121582 -0.0019297749 - -0.9917222857 21.5995330811 -0.0019259509 - -0.9915542603 22.1637725830 -0.0019235180 - -0.9913845658 21.9012908936 -0.0019205711 - -0.9912131429 23.0857543945 -0.0019182235 - -0.9910400510 22.8141021729 -0.0019152362 - -0.9908653498 23.3585052490 -0.0019120950 - -0.9906889200 24.8886413574 -0.0019107983 - -0.9905107617 24.9897766113 -0.0019082252 - -0.9903309941 25.5193481445 -0.0019049221 - -0.9901494980 25.2276000977 -0.0019012109 - -0.9899663925 26.7379760742 -0.0018993178 - -0.9897815585 26.8819732666 -0.0018945935 - -0.9895950556 26.5768127441 -0.0018906342 - -0.9894068241 28.0711517334 -0.0018883871 - -0.9892169833 28.5709686279 -0.0018844448 - -0.9890254736 27.8775329590 -0.0018792707 - -0.9888322353 28.3669891357 -0.0018750847 - -0.9886373281 29.8401031494 -0.0018723797 - -0.9884407520 29.5096588135 -0.0018680955 - -0.9882425070 29.6037139893 -0.0018624502 - -0.9880425930 31.0605773926 -0.0018595037 - -0.9878410101 30.7169952393 -0.0018548591 - -0.9876377583 31.1766662598 -0.0018502892 - -0.9874328375 30.4803466797 -0.0018424705 - -0.9872261882 31.1101074219 -0.0018390648 - -0.9870179296 31.5533142090 -0.0018341042 - -0.9868079424 31.9917907715 -0.0018290873 - -0.9865962863 31.6223907471 -0.0018241542 - -0.9863829613 32.6460571289 -0.0018193866 - -0.9861680269 33.0689849854 -0.0018142419 - -0.9859513640 33.4868927002 -0.0018089750 - -0.9857330322 34.0859985352 -0.0018048835 - -0.9855130315 33.7220153809 -0.0017975653 - -0.9852913618 33.7270660400 -0.0017911830 - -0.9850680232 34.1238708496 -0.0017854988 - -0.9848430157 34.7039489746 -0.0017815162 - -0.9846163392 35.0913848877 -0.0017758145 - -0.9843879938 35.4739990234 -0.0017701087 - -0.9841579795 34.6703033447 -0.0017613601 - -0.9839262962 35.2315216064 -0.0017569312 - -0.9836929440 35.5978240967 -0.0017510219 - -0.9834579229 35.9593200684 -0.0017449644 - -0.9832212329 35.5350799561 -0.0017370356 - -0.9829828739 36.4590606689 -0.0017315071 - -0.9827428460 36.0140991211 -0.0017254259 - -0.9825011492 36.3544158936 -0.0017192428 - -0.9822577834 35.9058990479 -0.0017113155 - -0.9820127487 37.2176971436 -0.0017062029 - -0.9817661047 37.5423278809 -0.0016999411 - -0.9815177321 37.8620605469 -0.0016935470 - -0.9812677503 36.1870117188 -0.0016846337 - -0.9810160398 37.4767608643 -0.0016794131 - -0.9807627201 37.7802886963 -0.0016727510 - -0.9805077314 37.2895355225 -0.0016644828 - -0.9802510738 37.5825195312 -0.0016581158 - -0.9799926877 38.8506774902 -0.0016525309 - -0.9797327518 38.3417358398 -0.0016441614 - -0.9794710875 37.4137878418 -0.0016369566 - -0.9792077541 37.6859283447 -0.0016300436 - -0.9789428115 38.1377410889 -0.0016228617 - -0.9786761403 38.3990325928 -0.0016162463 - -0.9784078598 38.6554870605 -0.0016094904 - -0.9781379104 38.1103515625 -0.0016006904 - -0.9778663516 39.3341827393 -0.0015951477 - -0.9775930643 38.7766571045 -0.0015864650 - -0.9773181081 38.5760955811 -0.0015788809 - -0.9770415425 38.0338592529 -0.0015720490 - -0.9767633080 38.4350585938 -0.0015646103 - -0.9764834046 38.6542510986 -0.0015575445 - -0.9762018919 38.0664825439 -0.0015490074 - -0.9759187102 38.2752838135 -0.0015417859 - -0.9756338000 38.6510467529 -0.0015344156 - -0.9753473401 38.8491058350 -0.0015274124 - -0.9750591516 38.2370452881 -0.0015186374 - -0.9747693539 38.4246368408 -0.0015116245 - -0.9744778872 37.3532104492 -0.0015019416 - -0.9741847515 38.5033111572 -0.0014958794 - -0.9738899469 37.8659057617 -0.0014871949 - -0.9735935330 38.0312652588 -0.0014801089 - -0.9732954502 37.3818817139 -0.0014713865 - -0.9729957581 38.5097503662 -0.0014653511 - -0.9726943374 37.8481597900 -0.0014565317 - -0.9723913670 37.9924621582 -0.0014493356 - -0.9720866680 37.3189849854 -0.0014404266 - -0.9717803597 38.4247589111 -0.0014344940 - -0.9714723825 37.7390747070 -0.0014256872 - -0.9711627364 37.8623199463 -0.0014185898 - -0.9708514810 37.1648101807 -0.0014097407 - -0.9705386162 38.2482604980 -0.0014037311 - -0.9702240229 37.5386047363 -0.0013948191 - -0.9699078202 36.3579101562 -0.0013853910 - -0.9695900083 36.4535675049 -0.0013781833 - -0.9692705274 35.7247619629 -0.0013694796 - -0.9689493775 36.7789916992 -0.0013634248 - -0.9686266184 36.0380554199 -0.0013545294 - -0.9683021903 35.2908020020 -0.0013458251 - -0.9679761529 35.3601226807 -0.0013385819 - -0.9676484466 35.5687103271 -0.0013310075 - -0.9673190713 34.8033599854 -0.0013221311 - -0.9669880867 35.5999298096 -0.0013148703 - -0.9666554928 34.8218841553 -0.0013061273 - -0.9663212299 34.0376281738 -0.0012972846 - -0.9659853578 35.0402679443 -0.0012912657 - -0.9656478167 34.2440185547 -0.0012825670 - -0.9653086066 33.4414672852 -0.0012740418 - -0.9649678469 33.4621582031 -0.0012669011 - -0.9646253586 32.6479797363 -0.0012582600 - -0.9642813206 32.7920074463 -0.0012506619 - -0.9639356136 32.7966613770 -0.0012435820 - -0.9635882378 32.6990966797 -0.0012348824 - -0.9632392526 31.8598175049 -0.0012263111 - -0.9628886580 31.8480377197 -0.0012191844 - -0.9625363946 31.9597930908 -0.0012117455 - -0.9621825218 31.1024322510 -0.0012031109 - -0.9618270397 30.2389678955 -0.0011945931 - -0.9614698887 30.2059478760 -0.0011877441 - -0.9611111283 31.0205230713 -0.0011800034 - -0.9607506990 30.1381988525 -0.0011715520 - -0.9603886604 29.2497711182 -0.0011631141 - -0.9600250125 29.1946563721 -0.0011563557 - -0.9596597552 28.2946319580 -0.0011480286 - -0.9592928290 28.3479766846 -0.0011405703 - -0.9589242935 28.1586761475 -0.0011319474 - -0.9585540891 27.2393035889 -0.0011237777 - -0.9581823349 27.1567382812 -0.0011168980 - -0.9578089118 26.2259368896 -0.0011087200 - -0.9574338794 26.2464752197 -0.0011015651 - -0.9570571780 25.3032226562 -0.0010932431 - -0.9566789269 25.0715332031 -0.0010848667 - -0.9562990069 24.6244812012 -0.0010773221 - -0.9559174776 24.5104675293 -0.0010706517 - -0.9555343390 24.4994659424 -0.0010635717 - -0.9551495910 24.2407836914 -0.0010553142 - -0.9547631741 23.2610015869 -0.0010471189 - -0.9543752074 22.2752532959 -0.0010391773 - -0.9539855719 21.2834625244 -0.0010312366 - -0.9535943270 21.1369781494 -0.0010248931 - -0.9532014728 21.7967224121 -0.0010174194 - -0.9528070092 20.7864837646 -0.0010096505 - -0.9524108768 19.7701721191 -0.0010019287 - -0.9520131946 18.7480773926 -0.0009939304 - -0.9516138434 18.4257049561 -0.0009857870 - -0.9512129426 18.3419647217 -0.0009791180 - -0.9508103728 17.3006896973 -0.0009712905 - -0.9504062533 16.2535400391 -0.0009637925 - -0.9500004649 16.4293975830 -0.0009561880 - -0.9495930672 16.2285003662 -0.0009501107 - -0.9491841197 16.1136322021 -0.0009434745 - -0.9487735033 15.7425842285 -0.0009355542 - -0.9483612776 14.6654663086 -0.0009280237 - -0.9479475021 13.5823364258 -0.0009205267 - -0.9475320578 12.4934387207 -0.0009131058 - -0.9471150041 13.0412750244 -0.0009061869 - -0.9466964006 11.9393463135 -0.0008989567 - -0.9462761283 10.8314819336 -0.0008916003 - -0.9458543062 10.9485931396 -0.0008844790 - -0.9454308748 9.8292083740 -0.0008770713 - -0.9450058341 8.7040863037 -0.0008698772 - -0.9445791841 9.2075195312 -0.0008632640 - -0.9441509247 8.0693664551 -0.0008561914 - -0.9437210560 6.9254150391 -0.0008489105 - -0.9432895780 6.4627838135 -0.0008416047 - -0.9428565502 5.3063201904 -0.0008345814 - -0.9424219131 4.1440124512 -0.0008276380 - -0.9419856668 5.1500549316 -0.0008216276 - -0.9415478110 3.9759674072 -0.0008145225 - -0.9411083460 2.7961273193 -0.0008076703 - -0.9406673312 2.2918548584 -0.0008004582 - -0.9402247071 1.0996398926 -0.0007937353 - -0.9397804737 -0.0983276367 -0.0007869257 - -0.9393346310 0.3157501221 -0.0007804760 - -0.9388872385 -0.3396301270 -0.0007743530 - -0.9384382367 -1.5551757812 -0.0007676398 - -0.9379876256 -2.1007080078 -0.0007606075 - -0.9375354648 -3.3284606934 -0.0007541349 - -0.9370816350 -2.9511718750 -0.0007478667 - -0.9366263151 -4.1917724609 -0.0007413557 - -0.9361693263 -5.4379882812 -0.0007350040 - -0.9357107878 -5.4561767578 -0.0007285839 - -0.9352506995 -7.5927429199 -0.0007208350 - -0.9347889423 -8.1876373291 -0.0007141199 - -0.9343256950 -8.5236968994 -0.0007086355 - -0.9338607788 -9.8000335693 -0.0007022743 - -0.9333943129 -10.4160919189 -0.0006956344 - -0.9329262972 -11.1353302002 -0.0006899599 - -0.9324566722 -11.7644195557 -0.0006832851 - -0.9319854379 -13.0641326904 -0.0006771831 - -0.9315126538 -13.4379882812 -0.0006718246 - -0.9310382605 -14.0882568359 -0.0006653386 - -0.9305623174 -15.4061126709 -0.0006593434 - -0.9300848246 -16.3805541992 -0.0006522845 - -0.9296057224 -17.7100830078 -0.0006462692 - -0.9291250110 -18.3880004883 -0.0006400193 - -0.9286427498 -19.7295989990 -0.0006340680 - -0.9281589389 -20.1486053467 -0.0006289614 - -0.9276735187 -20.8475036621 -0.0006228241 - -0.9271865487 -21.6249694824 -0.0006174047 - -0.9266980290 -22.3367462158 -0.0006113313 - -0.9262079000 -24.5980377197 -0.0006045074 - -0.9257162213 -25.3243255615 -0.0005985232 - -0.9252229333 -26.7073974609 -0.0005929484 - -0.9247281551 -25.9355316162 -0.0005878889 - -0.9242317677 -27.3299102783 -0.0005824124 - -0.9237337708 -28.0835113525 -0.0005765469 - -0.9232342839 -30.3841705322 -0.0005700515 - -0.9227331877 -31.7965850830 -0.0005646185 - -0.9222304821 -31.9782867432 -0.0005592582 - -0.9217262864 -32.4797058105 -0.0005545283 - -0.9212204814 -33.2674560547 -0.0005487821 - -0.9207131863 -34.7028961182 -0.0005435906 - -0.9202042818 -35.8051605225 -0.0005372228 - -0.9196937680 -37.2519378662 -0.0005320446 - -0.9191817641 -38.0667724609 -0.0005264891 - -0.9186682105 -38.6066894531 -0.0005219409 - -0.9181530476 -39.4356994629 -0.0005165117 - -0.9176363349 -41.2049255371 -0.0005107019 - -0.9171180725 -42.0471801758 -0.0005054100 - -0.9165982604 -43.5292358398 -0.0005003968 - -0.9160768986 -44.3851318359 -0.0004951403 - -0.9155539870 -45.2724304199 -0.0004905465 - -0.9150295258 -46.1294860840 -0.0004848173 - -0.9145035148 -47.6346740723 -0.0004799127 - -0.9139759541 -48.5179443359 -0.0004747707 - -0.9134468436 -48.7980957031 -0.0004700594 - -0.9129161835 -51.2257995605 -0.0004642872 - -0.9123839736 -52.1294555664 -0.0004591996 - -0.9118502140 -53.6636657715 -0.0004545321 - -0.9113149047 -53.9663696289 -0.0004499511 - -0.9107780457 -54.6002197266 -0.0004458787 - -0.9102396369 -56.4388122559 -0.0004398693 - -0.9096996784 -57.9960021973 -0.0004354370 - -0.9091582298 -58.3216857910 -0.0004309395 - -0.9086151719 -59.8891601562 -0.0004265275 - -0.9080706239 -61.7564392090 -0.0004206968 - -0.9075245261 -63.3359985352 -0.0004163256 - -0.9069768786 -63.6839294434 -0.0004119553 - -0.9064276814 -63.7543029785 -0.0004078141 - -0.9058769941 -66.2636108398 -0.0004024965 - -0.9053246975 -67.2549743652 -0.0003979423 - -0.9047709107 -68.2365722656 -0.0003940223 - -0.9042156339 -69.2401733398 -0.0003895444 - -0.9036587477 -71.7736816406 -0.0003843944 - -0.9031003714 -72.7911682129 -0.0003799507 - -0.9025404453 -72.2824707031 -0.0003763114 - -0.9019789696 -74.8348388672 -0.0003713542 - -0.9014160037 -75.8729248047 -0.0003669069 - -0.9008514881 -76.8867797852 -0.0003633349 - -0.9002854824 -77.9371337891 -0.0003589804 - -0.8997179270 -80.5134582520 -0.0003541427 - -0.8991488218 -81.5773925781 -0.0003499021 - -0.8985782266 -81.1120300293 -0.0003464911 - -0.8980060816 -82.7872924805 -0.0003426027 - -0.8974324465 -84.7914733887 -0.0003375446 - -0.8968572617 -85.8373718262 -0.0003341006 - -0.8962805867 -86.9338378906 -0.0003300130 - -0.8957023621 -88.9593505859 -0.0003250658 - -0.8951225877 -90.6626586914 -0.0003213438 - -0.8945413828 -91.1348571777 -0.0003177985 - -0.8939585686 -93.7716064453 -0.0003132360 - -0.8933743238 -94.0079040527 -0.0003096951 - -0.8927884698 -94.4972839355 -0.0003061700 - -0.8922011852 -96.2276000977 -0.0003026369 - -0.8916123509 -98.3022766113 -0.0002978640 - -0.8910220265 -98.8082580566 -0.0002945235 - -0.8904301524 -100.5548400879 -0.0002910461 - -0.8898367882 -102.6505126953 -0.0002863505 - -0.8892419338 -103.7546691895 -0.0002834129 - -0.8886455894 -104.9358520508 -0.0002797058 - -0.8880476952 -107.0523681641 -0.0002751728 - -0.8874483109 -107.2822570801 -0.0002725539 - -0.8868474364 -108.4833984375 -0.0002689877 - -0.8862450123 -110.6213073730 -0.0002644995 - -0.8856410980 -112.4120483398 -0.0002613254 - -0.8850356936 -112.9728088379 -0.0002581698 - -0.8844287992 -115.7044982910 -0.0002541884 - -0.8838204145 -116.9380798340 -0.0002506860 - -0.8832105398 -116.6319274902 -0.0002479249 - -0.8825991154 -118.4489440918 -0.0002448583 - -0.8819862008 -120.6349792480 -0.0002406116 - -0.8813718557 -121.2286987305 -0.0002376894 - -0.8807559609 -123.0616455078 -0.0002346636 - -0.8801385760 -125.2681579590 -0.0002305324 - -0.8795197010 -125.8780822754 -0.0002276428 - -0.8788993359 -127.7268066406 -0.0002247400 - -0.8782775402 -129.0754394531 -0.0002209035 - -0.8776541948 -129.7019958496 -0.0002181433 - -0.8770293593 -131.5670166016 -0.0002152782 - -0.8764030337 -133.8148498535 -0.0002113243 - -0.8757752180 -134.4573974609 -0.0002085848 - -0.8751459718 -136.3380432129 -0.0002057862 - -0.8745151758 -137.9289245605 -0.0002023679 - -0.8738829494 -139.2645263672 -0.0001992663 - -0.8732492328 -141.1606750488 -0.0001966074 - -0.8726140261 -142.7687683105 -0.0001931936 - -0.8719773293 -144.1231079102 -0.0001902239 - -0.8713391423 -146.9756164551 -0.0001867719 - -0.8706995249 -147.6599731445 -0.0001843058 - -0.8700583577 -149.0329284668 -0.0001813664 - -0.8694157600 -151.0326843262 -0.0001782421 - -0.8687717319 -151.7333984375 -0.0001758045 - -0.8681261539 -153.1255798340 -0.0001729972 - -0.8674791455 -156.0119323730 -0.0001696782 - -0.8668306470 -156.7283325195 -0.0001673416 - -0.8661807179 -158.1390075684 -0.0001645737 - -0.8655292988 -159.8107604980 -0.0001614378 - -0.8648763895 -161.7738342285 -0.0001590808 - -0.8642220497 -162.3386840820 -0.0001565277 - -0.8635662198 -164.0278320312 -0.0001535082 - -0.8629088998 -166.0066833496 -0.0001511615 - -0.8622501493 -167.4546966553 -0.0001485383 - -0.8615899682 -169.1606292725 -0.0001455920 - -0.8609282970 -171.1544342041 -0.0001433286 - -0.8602651358 -171.0625305176 -0.0001413365 - -0.8596005440 -173.4836730957 -0.0001380227 - -0.8589345217 -174.9632873535 -0.0001354836 - -0.8582670093 -176.2774353027 -0.0001337479 - -0.8575980067 -178.7178802490 -0.0001304680 - -0.8569276333 -180.2156372070 -0.0001280082 - -0.8562557697 -181.5417327881 -0.0001263313 - -0.8555824161 -184.0014801025 -0.0001231502 - -0.8549076319 -184.8118591309 -0.0001211909 - -0.8542314172 -186.3332214355 -0.0001187863 - -0.8535537720 -189.3341064453 -0.0001159734 - -0.8528746367 -190.1596832275 -0.0001140962 - -0.8521940708 -191.6989135742 -0.0001117506 - -0.8515120745 -194.0055999756 -0.0001094801 - -0.8508286476 -195.5561828613 -0.0001071675 - -0.8501437306 -198.0674133301 -0.0001041429 - -0.8494573832 -198.9186096191 -0.0001023681 - -0.8487696648 -201.0011138916 -0.0001004330 - -0.8480803967 -202.8167266846 -0.0000979418 - -0.8473897576 -204.3974456787 -0.0000957373 - -0.8466976881 -206.4942321777 -0.0000938608 - -0.8460041881 -208.3259124756 -0.0000914378 - -0.8453091979 -209.0789794922 -0.0000893594 - -0.8446128368 -209.9653015137 -0.0000876940 - -0.8439149857 -213.0389862061 -0.0000851570 - -0.8432157636 -214.6555480957 -0.0000830392 - -0.8425150514 -214.7142181396 -0.0000814999 - -0.8418129683 -217.3020019531 -0.0000787011 - -0.8411093950 -218.7149810791 -0.0000774412 - -0.8404044509 -219.5146789551 -0.0000754562 - -0.8396980762 -221.3963317871 -0.0000731830 - -0.8389902711 -223.5466156006 -0.0000714863 - -0.8382810354 -224.3665008545 -0.0000695254 - -0.8375703692 -226.2645721436 -0.0000673167 - -0.8368582726 -227.9355316162 -0.0000653529 - -0.8361448050 -229.3757781982 -0.0000641875 - -0.8354298472 -232.0192718506 -0.0000615498 - -0.8347135186 -233.7074584961 -0.0000596139 - -0.8339958191 -234.6693572998 -0.0000582023 - -0.8332766294 -237.8204650879 -0.0000559134 - -0.8325560689 -239.6240234375 -0.0000545060 - -0.8318340778 -241.3338928223 -0.0000526388 - -0.8311107159 -244.1091918945 -0.0000506005 - -0.8303858638 -246.3139343262 -0.0000490786 - -0.8296597004 -248.8697204590 -0.0000472395 - -0.8289320469 -251.6567687988 -0.0000452525 - -0.8282030225 -254.2214355469 -0.0000434692 - -0.8274726272 -257.3570861816 -0.0000425422 - -0.8267408013 -259.9284667969 -0.0000408035 - -0.8260075450 -263.5548706055 -0.0000389163 - -0.8252729177 -266.1343383789 -0.0000372235 - -0.8245369196 -269.2736206055 -0.0000364109 - -0.8237994909 -272.8271484375 -0.0000340420 - -0.8230606318 -276.2411499023 -0.0000324376 - -0.8223204017 -278.9118041992 -0.0000313691 - -0.8215788007 -282.9480285645 -0.0000294014 - -0.8208357692 -285.6221923828 -0.0000284054 - -0.8200914264 -288.2267150879 -0.0000268280 - -0.8193455935 -291.8746337891 -0.0000251778 - -0.8185984492 -294.9522705078 -0.0000240103 - -0.8178498745 -297.5679931641 -0.0000224735 - -0.8170999289 -299.4356689453 -0.0000215276 - -0.8163485527 -303.0302124023 -0.0000193518 - -0.8155958652 -304.5497436523 -0.0000187581 - -0.8148417473 -307.1815795898 -0.0000172858 - -0.8140862584 -309.2194519043 -0.0000156639 - -0.8133293986 71.8686981201 -0.0000130116 - -0.8125711679 75.5339508057 -0.0000123232 - -0.8118115067 77.1598510742 -0.0000100938 - -0.8110505342 80.0346069336 -0.0000091372 - -0.8102881312 83.0589294434 -0.0000076722 - -0.8095244169 85.8569946289 -0.0000065428 - -0.8087592721 88.2311553955 -0.0000049937 - -0.8079927564 90.2393341064 -0.0000035642 - -0.8072249293 94.0146331787 -0.0000027605 - -0.8064556718 96.7461853027 -0.0000017329 - -0.8056851029 99.0701141357 -0.0000002853 - -0.8049131036 101.0200042725 0.0000010587 - -0.8041397929 104.7193756104 0.0000017359 - -0.8033651114 106.1963653564 0.0000036698 - -0.8025890589 109.6733093262 0.0000040371 - -0.8018116355 111.5646972656 0.0000052834 - -0.8010328412 114.2217102051 0.0000059224 - -0.8002527356 116.6213836670 0.0000077057 - -0.7994712591 119.2404022217 0.0000085412 - -0.7986884117 121.8725280762 0.0000091345 - -0.7979041934 123.6906433105 0.0000102794 - -0.7971186638 125.8585205078 0.0000114659 - -0.7963317633 128.3944244385 0.0000122227 - -0.7955434918 131.9427947998 0.0000126645 - -0.7947539091 133.7019042969 0.0000137166 - -0.7939629555 135.8123779297 0.0000148165 - -0.7931706309 138.3211822510 0.0000155068 - -0.7923769951 140.8300018311 0.0000159474 - -0.7915820479 142.5311584473 0.0000169351 - -0.7907856703 145.0083160400 0.0000173489 - -0.7899880409 146.9997863770 0.0000185515 - -0.7891890407 150.4266052246 0.0000188351 - -0.7883886695 152.0684204102 0.0000197604 - -0.7875869870 154.4830932617 0.0000200995 - -0.7867839932 155.6772155762 0.0000216146 - -0.7859796286 158.8470764160 0.0000215427 - -0.7851739526 160.4304199219 0.0000224125 - -0.7843669653 162.7834167480 0.0000226779 - -0.7835586071 164.3365478516 0.0000235137 - -0.7827489376 167.0350952148 0.0000239972 - -0.7819378972 168.5599060059 0.0000247923 - -0.7811256051 170.1232604980 0.0000256093 - -0.7803119421 172.4001159668 0.0000258205 - -0.7794969678 174.6732788086 0.0000261974 - -0.7786806822 176.5132751465 0.0000269624 - -0.7778630853 177.9658355713 0.0000277096 - -0.7770441175 180.1806182861 0.0000278538 - -0.7762238979 182.3980712891 0.0000281699 - -0.7754023075 184.5815277100 0.0000282876 - -0.7745794654 185.6380767822 0.0000296018 - -0.7737552524 187.7919006348 0.0000296815 - -0.7729297280 189.9548034668 0.0000299643 - -0.7721029520 192.0772094727 0.0000300200 - -0.7712748051 193.4118347168 0.0000306653 - -0.7704453468 195.5722503662 0.0000307133 - -0.7696146369 197.6792297363 0.0000309406 - -0.7687826157 199.3479614258 0.0000315461 - -0.7679492235 200.6246490479 0.0000321441 - -0.7671145797 202.7289733887 0.0000321504 - -0.7662786245 203.9762725830 0.0000327101 - -0.7654414177 206.7795867920 0.0000322904 - -0.7646028399 208.0763397217 0.0000328438 - -0.7637630105 208.6720733643 0.0000335223 - -0.7629218698 209.8610229492 0.0000340742 - -0.7620794177 212.6889190674 0.0000335993 - -0.7612357140 213.8491668701 0.0000341096 - -0.7603906989 215.7548522949 0.0000340153 - -0.7595443726 216.9714355469 0.0000345313 - -0.7586967945 219.6575775146 0.0000340079 - -0.7578479052 220.8479309082 0.0000344830 - -0.7569977641 221.7026062012 0.0000345294 - -0.7561463118 222.4925994873 0.0000355629 - -0.7552936077 225.1209564209 0.0000350079 - -0.7544395924 226.2591705322 0.0000354486 - -0.7535843253 228.0422515869 0.0000352965 - -0.7527277470 228.1631774902 0.0000358858 - -0.7518699169 230.7324676514 0.0000353061 - -0.7510107756 231.8170776367 0.0000357078 - -0.7501503825 233.5380401611 0.0000355151 - -0.7492887378 234.4244842529 0.0000356512 - -0.7484257817 236.2185974121 0.0000354615 - -0.7475615740 237.1455688477 0.0000358335 - -0.7466961145 238.9106903076 0.0000356308 - -0.7458294034 239.2804870605 0.0000362690 - -0.7449613810 241.0185241699 0.0000360604 - -0.7440921664 241.9981689453 0.0000364086 - -0.7432216406 243.5968322754 0.0000361649 - -0.7423498034 244.3827972412 0.0000362489 - -0.7414767742 246.0646972656 0.0000359844 - -0.7406024933 247.7324218750 0.0000357373 - -0.7397269607 247.5363159180 0.0000362370 - -0.7388501167 250.0035400391 0.0000355096 - -0.7379720807 250.8904113770 0.0000358132 - -0.7370927334 251.5085754395 0.0000357262 - -0.7362121940 252.2471771240 0.0000360080 - -0.7353304029 254.6609649658 0.0000352551 - -0.7344473004 254.5013122559 0.0000357451 - -0.7335630059 256.0561828613 0.0000354368 - -0.7326774597 256.7037963867 0.0000354403 - -0.7317907214 258.2313842773 0.0000351184 - -0.7309026718 259.0136108398 0.0000353638 - -0.7300133705 259.5187988281 0.0000352661 - -0.7291228771 261.1114501953 0.0000350188 - -0.7282311320 261.4553222656 0.0000348874 - -0.7273381948 262.1843872070 0.0000351097 - -0.7264439464 262.6323242188 0.0000349929 - -0.7255485058 264.1745910645 0.0000347027 - -0.7246518731 264.5947265625 0.0000345804 - -0.7237539291 265.2717285156 0.0000347732 - -0.7228548527 266.6466064453 0.0000341637 - -0.7219544649 267.2993469238 0.0000343447 - -0.7210528851 267.6647033691 0.0000342071 - -0.7201501131 268.2908935547 0.0000343635 - -0.7192460895 269.4722290039 0.0000337400 - -0.7183408737 270.3934326172 0.0000333804 - -0.7174344063 270.7012939453 0.0000332256 - -0.7165266871 272.8371582031 0.0000323436 - -0.7156178355 272.5524291992 0.0000327244 - -0.7147077322 272.8189697266 0.0000325484 - -0.7137964368 273.3535461426 0.0000326921 - -0.7128838897 274.4408874512 0.0000320357 - -0.7119701505 274.9496459961 0.0000321657 - -0.7110552192 275.3179931641 0.0000319935 - -0.7101390958 275.6558227539 0.0000318419 - -0.7092217207 276.8364257812 0.0000314288 - -0.7083031535 276.7659606934 0.0000312560 - -0.7073834538 277.7742919922 0.0000305744 - -0.7064625025 278.2059936523 0.0000306725 - -0.7055402994 278.4989318848 0.0000304926 - -0.7046169639 277.9077148438 0.0000308138 - -0.7036924362 279.8610839844 0.0000298686 - -0.7027667165 279.4135437012 0.0000301959 - -0.7018398046 279.7848205566 0.0000294995 - -0.7009116411 281.8700256348 0.0000285459 - -0.6999823451 281.2139892578 0.0000288617 - -0.6990518570 281.4190063477 0.0000286586 - -0.6981201768 281.5974426270 0.0000284546 - -0.6971873641 282.7764587402 0.0000279903 - -0.6962532997 282.0700073242 0.0000282811 - -0.6953181028 283.3777160645 0.0000270699 - -0.6943817139 282.6450195312 0.0000273513 - -0.6934441328 282.7753601074 0.0000271589 - -0.6925053596 284.0635986328 0.0000266424 - -0.6915654540 283.9859619141 0.0000264454 - -0.6906243563 283.6725158691 0.0000262264 - -0.6896820664 283.7537536621 0.0000260239 - -0.6887386441 283.8115844727 0.0000257666 - -0.6877940297 283.8684082031 0.0000255409 - -0.6868482232 284.5036315918 0.0000250723 - -0.6859012842 285.2115173340 0.0000243070 - -0.6849532127 285.2304382324 0.0000240925 - -0.6840039492 284.5531311035 0.0000243392 - -0.6830535531 285.4189453125 0.0000235669 - -0.6821019650 284.9926757812 0.0000233494 - -0.6811491847 284.7644653320 0.0000231328 - -0.6801953316 284.9140930176 0.0000228214 - -0.6792402864 285.1290283203 0.0000221317 - -0.6782841086 285.2574462891 0.0000218136 - -0.6773267388 285.1796569824 0.0000215859 - -0.6763682365 284.4130859375 0.0000218124 - -0.6754086018 285.4505615234 0.0000205546 - -0.6744478345 284.6615295410 0.0000207834 - -0.6734858751 284.5355529785 0.0000205482 - -0.6725228429 284.8618469238 0.0000197476 - -0.6715586185 284.7114562988 0.0000195172 - -0.6705932617 284.5487060547 0.0000192740 - -0.6696267724 284.5832519531 0.0000188986 - -0.6686591506 284.6520080566 0.0000182298 - -0.6676903963 283.7847290039 0.0000184297 - -0.6667205095 284.4548950195 0.0000176090 - -0.6657494903 283.8171997070 0.0000173556 - -0.6647773385 284.4641723633 0.0000165281 - -0.6638040543 282.5532226562 0.0000170212 - -0.6628296971 282.7649536133 0.0000163261 - -0.6618541479 282.7162780762 0.0000159156 - -0.6608775258 282.6789245605 0.0000152458 - -0.6598997116 281.7234802246 0.0000154075 - -0.6589208245 282.5310058594 0.0000145678 - -0.6579408646 280.7962951660 0.0000146068 - -0.6569597125 280.4659729004 0.0000143740 - -0.6559774876 281.0112609863 0.0000135108 - -0.6549941301 280.4722900391 0.0000132332 - -0.6540096998 280.9954223633 0.0000123950 - -0.6530241370 279.4351501465 0.0000124098 - -0.6520375013 279.0459899902 0.0000121588 - -0.6510496736 279.1161499023 0.0000112765 - -0.6500608325 277.9422302246 0.0000113221 - -0.6490708590 277.7603454590 0.0000108554 - -0.6480797529 277.7951354980 0.0000101706 - -0.6470875740 276.6999816895 0.0000103136 - -0.6460943222 276.6045837402 0.0000093253 - -0.6450999379 275.4880676270 0.0000094541 - -0.6441044807 276.3706359863 0.0000081381 - -0.6431078911 274.8760070801 0.0000082189 - -0.6421102285 274.1972351074 0.0000079046 - -0.6411114931 273.8265991211 0.0000073270 - -0.6401116848 272.8753051758 0.0000070360 - -0.6391108036 273.4849853516 0.0000061448 - -0.6381087899 271.5099182129 0.0000061670 - -0.6371057034 271.2009887695 0.0000058930 - -0.6361015439 270.3586730957 0.0000052592 - -0.6350963116 270.0302124023 0.0000049880 - -0.6340900064 268.9090576172 0.0000043792 - -0.6330826283 268.5596618652 0.0000040967 - -0.6320741773 267.6784362793 0.0000034638 - -0.6310646534 267.3096313477 0.0000031770 - -0.6300540566 266.1365356445 0.0000028267 - -0.6290423870 265.7547912598 0.0000022701 - -0.6280296445 264.5583801270 0.0000019284 - -0.6270158291 264.4253234863 0.0000013404 - -0.6260010004 263.2070312500 0.0000009975 - -0.6249850392 263.2563781738 0.0000000147 - -0.6239680648 261.8171386719 0.0000000577 - -0.6229500175 260.8482055664 -0.0000005933 - -0.6219309568 260.3887329102 -0.0000008852 - -0.6209107637 258.4930114746 -0.0000008930 - -0.6198895574 259.1144409180 -0.0000022204 - -0.6188673377 257.0063171387 -0.0000018577 - -0.6178440452 256.6076049805 -0.0000028436 - -0.6168196797 255.4809722900 -0.0000028341 - -0.6157942414 255.0615234375 -0.0000038176 - -0.6147678494 253.7195281982 -0.0000041402 - -0.6137403250 253.7619476318 -0.0000048341 - -0.6127117872 252.3991851807 -0.0000051547 - -0.6116822362 251.3251037598 -0.0000058304 - -0.6106516719 249.7581939697 -0.0000057839 - -0.6096200347 249.6637115479 -0.0000068231 - -0.6085873246 248.5470733643 -0.0000071820 - -0.6075536609 246.3431396484 -0.0000068460 - -0.6065189242 245.8294525146 -0.0000078232 - -0.6054831743 245.0760192871 -0.0000082447 - -0.6044463515 244.3679656982 -0.0000088796 - -0.6034085751 242.3027648926 -0.0000088940 - -0.6023697257 242.0458679199 -0.0000099123 - -0.6013298631 239.7913513184 -0.0000096055 - -0.6002889872 239.2162170410 -0.0000105819 - -0.5992470980 239.0106201172 -0.0000112789 - -0.5982041955 237.8151245117 -0.0000119839 - -0.5971602798 236.4281158447 -0.0000120018 - -0.5961153507 235.2151947021 -0.0000127120 - -0.5950694084 233.9744110107 -0.0000130534 - -0.5940224528 232.7425079346 -0.0000137611 - -0.5929744840 231.3230743408 -0.0000137721 - -0.5919255018 230.3849639893 -0.0000145313 - -0.5908755064 228.7952880859 -0.0000148305 - -0.5898245573 227.8408813477 -0.0000155966 - -0.5887725949 226.5442657471 -0.0000159207 - -0.5877196193 225.1057891846 -0.0000163352 - -0.5866656303 223.7911834717 -0.0000166697 - -0.5856106877 222.8065643311 -0.0000174515 - -0.5845547318 222.0799255371 -0.0000184285 - -0.5834977627 220.7364959717 -0.0000187488 - -0.5824398398 219.5814208984 -0.0000192303 - -0.5813809037 218.2210083008 -0.0000195706 - -0.5803210139 217.1985168457 -0.0000203479 - -0.5792601109 215.4938964844 -0.0000206387 - -0.5781982541 214.4552307129 -0.0000214356 - -0.5771353841 212.0618743896 -0.0000213706 - -0.5760715604 211.0081787109 -0.0000221598 - -0.5750067234 209.4549407959 -0.0000221937 - -0.5739409328 208.3872985840 -0.0000230149 - -0.5728741884 207.8860473633 -0.0000240342 - -0.5718064904 205.8720092773 -0.0000241472 - -0.5707377791 204.3588867188 -0.0000247715 - -0.5696681142 202.3290405273 -0.0000248967 - -0.5685974956 201.7933959961 -0.0000259158 - -0.5675258636 199.7474975586 -0.0000260332 - -0.5664533377 199.1946105957 -0.0000270616 - -0.5653797984 196.1389465332 -0.0000267862 - -0.5643053055 195.5691833496 -0.0000278067 - -0.5632299185 195.3347167969 -0.0000288887 - -0.5621535182 192.1349334717 -0.0000283453 - -0.5610761642 191.5415039062 -0.0000293759 - -0.5599978566 189.4423217773 -0.0000295059 - -0.5589185953 187.8390197754 -0.0000301123 - -0.5578384399 187.0122985840 -0.0000310220 - -0.5567572713 185.4481353760 -0.0000313394 - -0.5556752086 183.2648620605 -0.0000317725 - -0.5545921922 182.0369567871 -0.0000321618 - -0.5535082221 179.8401794434 -0.0000325992 - -0.5524233580 179.1815490723 -0.0000336168 - -0.5513374805 177.3798675537 -0.0000338289 - -0.5502507091 175.7137145996 -0.0000344334 - -0.5491630435 174.0061187744 -0.0000348970 - -0.5480743647 172.3231811523 -0.0000354861 - -0.5469847918 171.4383239746 -0.0000364191 - -0.5458943248 168.7977294922 -0.0000363035 - -0.5448029041 167.9016723633 -0.0000372530 - -0.5437105894 165.2445678711 -0.0000371235 - -0.5426173210 164.3375091553 -0.0000380669 - -0.5415230989 162.6086730957 -0.0000386512 - -0.5404280424 160.7459564209 -0.0000388940 - -0.5393319726 159.3729400635 -0.0000395421 - -0.5382350683 157.6214294434 -0.0000401223 - -0.5371372104 155.7409667969 -0.0000403581 - -0.5360384583 154.3488159180 -0.0000410135 - -0.5349388123 152.1710510254 -0.0000413902 - -0.5338382125 150.7647094727 -0.0000420346 - -0.5327367783 148.8194580078 -0.0000425628 - -0.5316343904 147.4421234131 -0.0000429272 - -0.5305311084 145.4872436523 -0.0000434455 - -0.5294269323 143.6761169434 -0.0000440190 - -0.5283218026 141.8313140869 -0.0000444464 - -0.5272158384 140.3878021240 -0.0000450850 - -0.5261089802 138.4120788574 -0.0000456105 - -0.5250012279 136.0067901611 -0.0000455194 - -0.5238925815 135.0089111328 -0.0000464788 - -0.5227830410 133.5427246094 -0.0000471072 - -0.5216726065 130.6706390381 -0.0000470838 - -0.5205613375 129.1914215088 -0.0000477043 - -0.5194491148 127.1870117188 -0.0000482180 - -0.5183360577 125.7297821045 -0.0000485608 - -0.5172221065 123.7844390869 -0.0000492396 - -0.5161072612 122.2814788818 -0.0000498376 - -0.5149915814 120.2572784424 -0.0000503493 - -0.5138750076 117.7886199951 -0.0000502196 - -0.5127575397 116.2187347412 -0.0000509795 - -0.5116392374 114.6930389404 -0.0000515719 - -0.5105200410 112.6795196533 -0.0000517918 - -0.5094000101 111.1424255371 -0.0000523691 - -0.5082790852 109.5538482666 -0.0000530975 - -0.5071573257 107.0484619141 -0.0000529515 - -0.5060346723 104.9876861572 -0.0000534303 - -0.5049111843 103.4823608398 -0.0000541287 - -0.5037868023 101.8210449219 -0.0000546943 - -0.5026616454 99.2917327881 -0.0000545093 - -0.5015355945 97.6752929688 -0.0000552046 - -0.5004086494 96.0930023193 -0.0000557327 - -0.4992808998 93.0459899902 -0.0000554513 - -0.4981523156 91.9142913818 -0.0000561993 - -0.4970228672 89.8176727295 -0.0000566352 - -0.4958925843 88.6308135986 -0.0000572310 - -0.4947614372 84.6269836426 -0.0000565626 - -0.4936294854 83.4314727783 -0.0000571456 - -0.4924966693 81.3584289551 -0.0000576612 - -0.4913630486 80.1540374756 -0.0000582150 - -0.4902285635 77.4934539795 -0.0000579895 - -0.4890932739 75.8939666748 -0.0000585303 - -0.4879571199 74.1890411377 -0.0000590073 - -0.4868201613 72.0238800049 -0.0000591356 - -0.4856823981 68.9216613770 -0.0000587522 - -0.4845437706 67.7244873047 -0.0000593314 - -0.4834043384 66.0078887939 -0.0000597747 - -0.4822641015 64.3686676025 -0.0000602070 - -0.4811230302 61.6678314209 -0.0000601364 - -0.4799811542 59.4583435059 -0.0000598496 - -0.4788384438 57.7559051514 -0.0000603050 - -0.4776949286 55.5269470215 -0.0000602320 - -0.4765506387 53.8169708252 -0.0000606510 - -0.4754054844 51.5909881592 -0.0000602993 - -0.4742595553 48.4567565918 -0.0000600622 - -0.4731128216 47.1892395020 -0.0000603957 - -0.4719652832 45.4626312256 -0.0000607449 - -0.4708169401 43.2274627686 -0.0000606002 - -0.4696678221 40.5093841553 -0.0000601242 - -0.4685178697 39.2397613525 -0.0000604212 - -0.4673671424 36.5104064941 -0.0000601228 - -0.4662156403 35.2308654785 -0.0000603797 - -0.4650633335 32.9468078613 -0.0000601711 - -0.4639102221 31.6588134766 -0.0000603768 - -0.4627563357 27.9517974854 -0.0000592579 - -0.4616016746 26.6538238525 -0.0000593865 - -0.4604462087 23.9162902832 -0.0000589660 - -0.4592899978 22.6048736572 -0.0000590184 - -0.4581329823 20.3171539307 -0.0000586820 - -0.4569751918 18.9999389648 -0.0000586775 - -0.4558166265 15.2778930664 -0.0000573859 - -0.4546572864 13.9502868652 -0.0000573157 - -0.4534971714 11.6574707031 -0.0000568461 - -0.4523363113 10.3215789795 -0.0000566918 - -0.4511746466 7.5577697754 -0.0000559707 - -0.4500122368 5.7134246826 -0.0000554044 - -0.4488490820 2.9403076172 -0.0000544040 - -0.4476851523 1.0821990967 -0.0000537101 - -0.4465204477 -0.7128753662 -0.0000533657 - -0.4453549981 -2.5766296387 -0.0000526145 - -0.4441888034 -5.3579101562 -0.0000516264 - -0.4430218637 -7.6553802490 -0.0000507950 - -0.4418541491 -9.0311431885 -0.0000502362 - -0.4406856894 -11.3473968506 -0.0000492683 - -0.4395164847 -14.6763610840 -0.0000473287 - -0.4383465350 -16.0093994141 -0.0000468717 - -0.4371758401 -18.3699188232 -0.0000455387 - -0.4360044003 -20.6938171387 -0.0000443378 - -0.4348322451 -22.5837860107 -0.0000430647 - -0.4336593449 -25.3646545410 -0.0000416651 - -0.4324856997 -26.2945098877 -0.0000408280 - -0.4313113093 -28.6245117188 -0.0000393753 - -0.4301362038 -30.5251159668 -0.0000378674 - -0.4289603531 -33.3429412842 -0.0000360822 - -0.4277837873 -36.1961669922 -0.0000337841 - -0.4266065061 -38.5317687988 -0.0000320718 - -0.4254284799 -39.4799041748 -0.0000308129 - -0.4242497683 -41.8186798096 -0.0000289283 - -0.4230703115 -43.7354431152 -0.0000269661 - -0.4218901396 -46.5296783447 -0.0000248057 - -0.4207092524 -48.8720092773 -0.0000227174 - -0.4195276499 -50.7955932617 -0.0000205214 - -0.4183453321 -53.1406707764 -0.0000182099 - -0.4171622992 -55.0693511963 -0.0000157771 - -0.4159785807 -57.4174346924 -0.0000133436 - -0.4147941470 -59.3511962891 -0.0000107107 - -0.4136089981 -61.7019042969 -0.0000080623 - -0.4124231637 -63.5911712646 -0.0000054181 - -0.4112366438 -65.4409942627 -0.0000027955 - -0.4100494087 -67.3827972412 0.0000001863 - -0.4088614583 -70.7194976807 0.0000040576 - -0.4076728523 -72.6664581299 0.0000072928 - -0.4064835310 -75.0230407715 0.0000105692 - -0.4052935243 -78.3370971680 0.0000145751 - -0.4041028321 -79.7819213867 0.0000178665 - -0.4029114544 -82.1403198242 0.0000215641 - -0.4017193913 -84.0978393555 0.0000253977 - -0.4005266726 -86.4588928223 0.0000292968 - -0.3993332386 -87.9080810547 0.0000331771 - -0.3981391490 -91.2251586914 0.0000379363 - -0.3969443738 -93.1911621094 0.0000422451 - -0.3957489431 -95.0392150879 0.0000464886 - -0.3945528269 -97.0091247559 0.0000510512 - -0.3933560252 -98.8563842773 0.0000555166 - -0.3921585977 -101.7826385498 0.0000610495 - -0.3909604847 -103.6289520264 0.0000658488 - -0.3897616863 -105.9957275391 0.0000710373 - -0.3885622621 -108.4025421143 0.0000767224 - -0.3873621523 -110.7706909180 0.0000822101 - -0.3861613870 -112.2274780273 0.0000876046 - -0.3849599957 -114.5967102051 0.0000934858 - -0.3837579191 -117.0049438477 0.0000998882 - -0.3825552166 -119.3751220703 0.0001061485 - -0.3813518584 -121.7835998535 0.0001129129 - -0.3801478446 -123.6235961914 0.0001190492 - -0.3789432049 -125.0919189453 0.0001253120 - -0.3777379096 -127.5010375977 0.0001326164 - -0.3765319586 -129.3393249512 0.0001393836 - -0.3753253818 -131.7476806641 0.0001469654 - -0.3741181791 -134.1201477051 0.0001545073 - -0.3729103506 -136.5287475586 0.0001625423 - -0.3717018664 -138.3632049561 0.0001700672 - -0.3704927564 -140.8662567139 0.0001788962 - -0.3692830205 -142.6996765137 0.0001869412 - -0.3680726588 -146.0179290771 0.0001959559 - -0.3668616712 -147.4820098877 0.0002044777 - -0.3656500578 -150.2558746338 0.0002138705 - -0.3644378483 -151.7199096680 0.0002224691 - -0.3632249832 -154.5935821533 0.0002327381 - -0.3620115221 -156.0586853027 0.0002420228 - -0.3607974648 -157.8360290527 0.0002512002 - -0.3595827818 -160.2421875000 0.0002618207 - -0.3583674729 -162.0657958984 0.0002716886 - -0.3571515679 -164.9378051758 0.0002830337 - -0.3559350669 -166.4031219482 0.0002934639 - -0.3547179699 -169.1635437012 0.0003047060 - -0.3535002470 -171.0126647949 0.0003158835 - -0.3522819281 -172.9439849854 0.0003273935 - -0.3510630131 -175.3473815918 0.0003396054 - -0.3498435020 -178.1006774902 0.0003518593 - -0.3486234248 -179.9769134521 0.0003641291 - -0.3474027216 -180.8812561035 0.0003758491 - -0.3461814523 -183.6283721924 0.0003887296 - -0.3449595869 -186.0279235840 0.0004023378 - -0.3437371254 -188.8949890137 0.0004165366 - -0.3425140977 -189.7944183350 0.0004292489 - -0.3412904739 -192.5343780518 0.0004433692 - -0.3400662839 -195.3991394043 0.0004584785 - -0.3388415277 -196.2338409424 0.0004715946 - -0.3376161754 -198.9672546387 0.0004866160 - -0.3363902569 -201.4927978516 0.0005023949 - -0.3351637721 -202.7199707031 0.0005165319 - -0.3339367211 -205.2473602295 0.0005330659 - -0.3327091038 -207.4010314941 0.0005485452 - -0.3314809203 -209.1295166016 0.0005640385 - -0.3302521706 -211.0821838379 0.0005806999 - -0.3290228546 -213.8014221191 0.0005975082 - -0.3277930021 -215.7530670166 0.0006148317 - -0.3265625834 -217.8896484375 0.0006312997 - -0.3253315985 -220.6014404297 0.0006490539 - -0.3241000772 -221.5539093018 0.0006662768 - -0.3228680193 -224.2617645264 0.0006844633 - -0.3216353953 -226.2088012695 0.0007030407 - -0.3204022050 -228.3283691406 0.0007210671 - -0.3191685081 -230.8584899902 0.0007411479 - -0.3179342449 -231.9756774902 0.0007587351 - -0.3166994750 -234.2362365723 0.0007782496 - -0.3154641390 -236.0256958008 0.0007977046 - -0.3142282665 -238.8709259033 0.0008182593 - -0.3129918873 -240.6564941406 0.0008382527 - -0.3117549419 -241.9120483398 0.0008577145 - -0.3105174899 -244.0033569336 0.0008778610 - -0.3092795014 -245.9404754639 0.0008992658 - -0.3080410063 -248.9459991455 0.0009207014 - -0.3068019748 -249.8832244873 0.0009416284 - -0.3055624366 -252.5561370850 0.0009634543 - -0.3043223619 -254.7934875488 0.0009856645 - -0.3030817807 -256.5593261719 0.0010070765 - -0.3018406928 -258.7919006348 0.0010297333 - -0.3005990684 -260.4734802246 0.0010520298 - -0.2993569672 -262.7008666992 0.0010747904 - -0.2981143296 -264.9257812500 0.0010981548 - -0.2968712151 -266.6789245605 0.0011206426 - -0.2956275642 -268.2125244141 0.0011437446 - -0.2943834364 -269.9589843750 0.0011667721 - -0.2931388021 -272.1727905273 0.0011908228 - -0.2918936908 -274.3841857910 0.0012150838 - -0.2906480432 -276.0393981934 0.0012386569 - -0.2894019186 -278.2455749512 0.0012635365 - -0.2881553173 -279.9794006348 0.0012875451 - -0.2869082391 -281.4822387695 0.0013114514 - -0.2856606543 -283.6795654297 0.0013368161 - -0.2844125628 -286.3157348633 0.0013623259 - -0.2831640244 -288.5078735352 0.0013876206 - -0.2819149792 -288.8001098633 0.0014114266 - -0.2806654871 -291.7077636719 0.0014373204 - -0.2794154882 -293.8908081055 0.0014631061 - -0.2781650424 -295.0834350586 0.0014882436 - -0.2769141197 -297.2609863281 0.0015146051 - -0.2756627202 -298.9662475586 0.0015400499 - -0.2744108438 -300.4245605469 0.0015647958 - -0.2731585205 -302.5932922363 0.0015914831 - -0.2719057202 -304.5710449219 0.0016174286 - -0.2706524730 -306.7332763672 0.0016439296 - -0.2693987489 -308.1719360352 0.0016692264 - -0.2681445777 -310.0595703125 0.0016966281 - -0.2668899596 -312.2859497070 0.0017219363 - -0.2656348646 -314.0733642578 0.0017489633 - -0.2643793523 -315.5901794434 0.0017744853 - -0.2631233633 -318.6361083984 0.0018031426 - -0.2618669271 -318.8825683594 0.0018277069 - -0.2606100738 -321.0791015625 0.0018533164 - -0.2593527734 -322.9529418945 0.0018807471 - -0.2580950260 -324.3493957520 0.0019064072 - -0.2568368316 -326.7399291992 0.0019331204 - -0.2555782199 -327.6083679199 0.0019591972 - -0.2543191612 -329.7743530273 0.0019846901 - -0.2530596554 -332.1495361328 0.0020111219 - -0.2517997622 -333.0108032227 0.0020376220 - -0.2505393922 -335.3774108887 0.0020641899 - -0.2492786348 -337.4891967773 0.0020911987 - -0.2480174452 -338.8458557129 0.0021162624 - -0.2467558384 -340.0781555176 0.0021403371 - -0.2454938143 -341.1770629883 0.0021659678 - -0.2442313582 -344.1636047363 0.0021931888 - -0.2429684997 -346.4988403320 0.0022194018 - -0.2417052388 -346.6944580078 0.0022436373 - -0.2404415607 -349.0201110840 0.0022695451 - -0.2391774654 -350.3400268555 0.0022938298 - -0.2379129678 -352.4164428711 0.0023200063 - -0.2366480678 -354.7261047363 0.0023453510 - -0.2353827804 -354.9053649902 0.0023689202 - -0.2341170758 -357.2056884766 0.0023941915 - -0.2328509837 -358.4999389648 0.0024178145 - -0.2315844893 -360.3183593750 0.0024416985 - -0.2303176075 -362.6011352539 0.0024664034 - -0.2290503383 -363.8785095215 0.0024892811 - -0.2277826816 -365.9221496582 0.0025141984 - -0.2265146375 -366.3038330078 0.0025362112 - -0.2252462059 -367.9042663574 0.0025585419 - -0.2239773870 -368.9354553223 0.0025813957 - -0.2227081954 -371.1859436035 0.0026049833 - -0.2214386314 -373.2091674805 0.0026287902 - -0.2201686800 -374.4497070312 0.0026504665 - -0.2188983560 -376.6841125488 0.0026731526 - -0.2176276743 -377.0281066895 0.0026933779 - -0.2163566053 -379.2512207031 0.0027157685 - -0.2150851935 -380.4689025879 0.0027364464 - -0.2138133943 -382.0531005859 0.0027587730 - -0.2125412375 -383.2608642578 0.0027790652 - -0.2112687230 -385.4624938965 0.0028002623 - -0.2099958658 -386.4486083984 0.0028207926 - -0.2087226361 -387.9657592773 0.0028399024 - -0.2074490488 -391.0262451172 0.0028612143 - -0.2061751187 -391.3224487305 0.0028790743 - -0.2049008310 -393.4949951172 0.0028990493 - -0.2036262006 -394.6622619629 0.0029173400 - -0.2023512274 -395.9419555664 0.0029358123 - -0.2010759115 -397.0979003906 0.0029534935 - -0.1998002529 -398.5665283203 0.0029706620 - -0.1985242516 -399.7832031250 0.0029899920 - -0.1972479224 -402.1108703613 0.0030074550 - -0.1959712505 -403.0476684570 0.0030246219 - -0.1946942508 -404.4904479980 0.0030406395 - -0.1934169233 -404.9264526367 0.0030547616 - -0.1921392530 -406.8481445312 0.0030726963 - -0.1908612698 -408.1387939453 0.0030869003 - -0.1895829588 -410.5209350586 0.0031050302 - -0.1883043349 -410.7416076660 0.0031185835 - -0.1870253831 -411.1443481445 0.0031312041 - -0.1857461184 -414.0942993164 0.0031475176 - -0.1844665408 -414.2972717285 0.0031603284 - -0.1831866503 -415.9637756348 0.0031749294 - -0.1819064319 -417.0323181152 0.0031880729 - -0.1806259304 -419.0807189941 0.0032020686 - -0.1793451011 -419.4416503906 0.0032127299 - -0.1780639887 -420.7931518555 0.0032246239 - -0.1767825633 -422.8129577637 0.0032394312 - -0.1755008399 -424.1518249512 0.0032507542 - -0.1742188036 -424.4848632812 0.0032600930 - -0.1729364991 -425.6688232422 0.0032697355 - -0.1716538817 -427.1098632812 0.0032823987 - -0.1703709811 -428.2789611816 0.0032914004 - -0.1690877825 -429.5802612305 0.0033011558 - -0.1678043157 -430.7139282227 0.0033132294 - -0.1665205508 -432.8583068848 0.0033228267 - -0.1652365029 -433.1415100098 0.0033300039 - -0.1639521867 -434.1072082520 0.0033382822 - -0.1626675725 -435.6797180176 0.0033478471 - -0.1613827050 -436.7941589355 0.0033544647 - -0.1600975543 -437.8850708008 0.0033630638 - -0.1588121206 -439.2938232422 0.0033704701 - -0.1575264335 -440.5310974121 0.0033775419 - -0.1562404782 -441.4572143555 0.0033839270 - -0.1549542397 -441.9968261719 0.0033899317 - -0.1536677629 -444.0611267090 0.0033964629 - -0.1523810178 -443.4044189453 0.0033995402 - -0.1510940045 -444.7726745605 0.0034051915 - -0.1498067379 -445.9657592773 0.0034103165 - -0.1485192329 -447.1717529297 0.0034162379 - -0.1472314596 -448.3509826660 0.0034208815 - -0.1459434479 -449.3705749512 0.0034239327 - -0.1446551830 -450.5604858398 0.0034290708 - -0.1433666646 -450.9959106445 0.0034309088 - -0.1420779079 -451.9909667969 0.0034328809 - -0.1407889128 -452.4630432129 0.0034358772 - -0.1394996792 -454.2976684570 0.0034401193 - -0.1382102072 -454.8737182617 0.0034406446 - -0.1369205117 -455.9918212891 0.0034430414 - -0.1356305778 -457.1425476074 0.0034461550 - -0.1343404055 -458.0903015137 0.0034464616 - -0.1330500096 -458.4576721191 0.0034461177 - -0.1317593902 -459.5913391113 0.0034485045 - -0.1304685473 -460.5142211914 0.0034481953 - -0.1291774958 -461.1945800781 0.0034482579 - -0.1278862059 -462.1002502441 0.0034473650 - -0.1265947074 -462.4784240723 0.0034465976 - -0.1253029853 -464.3614501953 0.0034468262 - -0.1240110621 -464.7533874512 0.0034464677 - -0.1227189302 -464.7681274414 0.0034436013 - -0.1214265823 -466.9721679688 0.0034444772 - -0.1201340333 -467.0914611816 0.0034400125 - -0.1188412756 -468.1679992676 0.0034397596 - -0.1175483242 -468.4335021973 0.0034365470 - -0.1162551641 -469.6156921387 0.0034347596 - -0.1149618104 -469.6979980469 0.0034290659 - -0.1136682630 -470.7512512207 0.0034280908 - -0.1123745218 -471.8078002930 0.0034241071 - -0.1110805944 -472.1361389160 0.0034213599 - -0.1097864732 -472.4287719727 0.0034174742 - -0.1084921733 -473.4578247070 0.0034127091 - -0.1071976796 -474.5899963379 0.0034093407 - -0.1059030071 -474.6080017090 0.0034023831 - -0.1046081558 -476.6116943359 0.0034013903 - -0.1033131331 -476.6112976074 0.0033942808 - -0.1020179316 -476.9646911621 0.0033876891 - -0.1007225513 -477.9594421387 0.0033848716 - -0.0994270071 -478.1041564941 0.0033784492 - -0.0981312916 -478.4341735840 0.0033716362 - -0.0968354121 -478.3867797852 0.0033632328 - -0.0955393612 -479.3575439453 0.0033593774 - -0.0942431539 -480.6535949707 0.0033536186 - -0.0929467902 -480.5787048340 0.0033448008 - -0.0916502625 -480.7752075195 0.0033384284 - -0.0903535858 -481.8140563965 0.0033323660 - -0.0890567452 -482.7008666992 0.0033249285 - -0.0877597630 -482.9651184082 0.0033165419 - -0.0864626318 -483.1346740723 0.0033093411 - -0.0851653516 -483.0039062500 0.0032998854 - -0.0838679224 -484.2319946289 0.0032924830 - -0.0825703591 -485.1431274414 0.0032867580 - -0.0812726542 -484.9849243164 0.0032766720 - -0.0799748078 -485.2008361816 0.0032675918 - -0.0786768273 -487.2016296387 0.0032597079 - -0.0773787126 -486.9355468750 0.0032504690 - -0.0760804713 -487.1257019043 0.0032406920 - -0.0747820958 -487.3078002930 0.0032308369 - -0.0734835938 -487.0910949707 0.0032201686 - -0.0721849725 -488.1696777344 0.0032128952 - -0.0708862245 -488.3271484375 0.0032027652 - -0.0695873573 -488.4762268066 0.0031924169 - -0.0682883710 -488.1533508301 0.0031820480 - -0.0669892728 -489.0852050781 0.0031714635 - -0.0656900555 -490.1943969727 0.0031625009 - -0.0643907264 -490.3097534180 0.0031514294 - -0.0630912930 -489.9537353516 0.0031412779 - -0.0617917515 -490.0529785156 0.0031301775 - -0.0604921021 -490.1441955566 0.0031190896 - -0.0591923520 -492.0052795410 0.0031092211 - -0.0578925051 -491.6161499023 0.0030982001 - -0.0565925539 -491.6817932129 0.0030867527 - -0.0552925095 -490.9593811035 0.0030732751 - -0.0539923720 -491.7988891602 0.0030615050 - -0.0526921451 -492.7686767578 0.0030527352 - -0.0513918251 -492.3903198242 0.0030400800 - -0.0500914194 -492.4134216309 0.0030280992 - -0.0487909280 -493.2162780762 0.0030162856 - -0.0474903546 -492.3899536133 0.0030033551 - -0.0461896993 -492.3885498047 0.0029912693 - -0.0448889695 -492.3787841797 0.0029789617 - -0.0435881615 -493.7086791992 0.0029675344 - -0.0422872789 -492.8502197266 0.0029544851 - -0.0409863219 -492.8144531250 0.0029417130 - -0.0396852978 -493.5527954102 0.0029292151 - -0.0383842103 -493.4998474121 0.0029169193 - -0.0370830521 -492.6105651855 0.0029032943 - -0.0357818343 -493.3218383789 0.0028905603 - -0.0344805531 -493.7974853516 0.0028789267 - -0.0331792161 -492.9167785645 0.0028639680 - -0.0318778232 -493.5664062500 0.0028522795 - -0.0305763744 -493.4627685547 0.0028395609 - -0.0292748734 -492.5552062988 0.0028249735 - -0.0279733241 -493.2096252441 0.0028113760 - -0.0266717281 -492.2562255859 0.0027979582 - -0.0253700856 -492.8922729492 0.0027845965 - -0.0240684003 -493.7238769531 0.0027731075 - -0.0227666739 -492.3328857422 0.0027574429 - -0.0214649085 -492.9180603027 0.0027452386 - -0.0201631077 -491.9448852539 0.0027301274 - -0.0188612714 -492.5332946777 0.0027169227 - -0.0175594054 -491.5409240723 0.0027015684 - -0.0162575077 -492.0936889648 0.0026894892 - -0.0149555830 -491.8880310059 0.0026761028 - -0.0136536332 -491.6345214844 0.0026608410 - -0.0123516601 -491.4109191895 0.0026474795 - -0.0110496655 -492.1111755371 0.0026334119 - -0.0097476533 -491.0522460938 0.0026192274 - -0.0084456233 -491.5656127930 0.0026057055 - -0.0071435799 -490.4986572266 0.0025905827 - -0.0058415239 -490.9928283691 0.0025769430 - -0.0045394581 -489.9021606445 0.0025628954 - -0.0032373848 -490.3782043457 0.0025490213 - -0.0019353060 -489.2744445801 0.0025338021 - -0.0006332238 -488.9181823730 0.0025182404 - 0.0006688595 -488.6089477539 0.0025059630 - 0.0019709414 -488.2332458496 0.0024906017 - 0.0032730203 -487.9070129395 0.0024770384 - 0.0045750937 -487.5105590820 0.0024615619 - 0.0058771591 -486.3559265137 0.0024476890 - 0.0071792146 -486.7569274902 0.0024335959 - 0.0084812576 -487.2997741699 0.0024197400 - 0.0097832866 -486.1109008789 0.0024045215 - 0.0110852988 -486.4820556641 0.0023907898 - 0.0123872925 -485.2866210938 0.0023768283 - 0.0136892656 -484.8183898926 0.0023612641 - 0.0149912145 -485.1609191895 0.0023474765 - 0.0162931383 -483.9252929688 0.0023322278 - 0.0175950341 -483.4428100586 0.0023182123 - 0.0188969020 -482.9331054688 0.0023026783 - 0.0201987363 -482.9687500000 0.0022898384 - 0.0215005353 -482.4395141602 0.0022744827 - 0.0228022989 -481.8992309570 0.0022589639 - 0.0241040252 -480.6309509277 0.0022452320 - 0.0254057087 -480.0707092285 0.0022299567 - 0.0267073493 -480.3277282715 0.0022163817 - 0.0280089453 -479.0077209473 0.0022013730 - 0.0293104947 -478.4156799316 0.0021861598 - 0.0306119937 -477.8432922363 0.0021721553 - 0.0319134407 -476.4948425293 0.0021573070 - 0.0332148336 -477.1905517578 0.0021443493 - 0.0345161706 -476.5582885742 0.0021292430 - 0.0358174480 -475.1822814941 0.0021143386 - 0.0371186621 -474.5658264160 0.0021006148 - 0.0384198166 -473.9026489258 0.0020853833 - 0.0397209078 -473.2285766602 0.0020703743 - 0.0410219282 -471.8139343262 0.0020559519 - 0.0423228815 -471.6554870605 0.0020427068 - 0.0436237603 -471.7893676758 0.0020291242 - 0.0449245684 -471.0751953125 0.0020142358 - 0.0462252982 -469.6242675781 0.0019999903 - 0.0475259498 -468.8888549805 0.0019853031 - 0.0488265231 -468.1915588379 0.0019715580 - 0.0501270108 -467.9367980957 0.0019573006 - 0.0514274128 -467.1710205078 0.0019428554 - 0.0527277291 -465.6729736328 0.0019284590 - 0.0540279560 -464.8862609863 0.0019139843 - 0.0553280935 -464.1437683105 0.0019007823 - 0.0566281341 -463.3362731934 0.0018860368 - 0.0579280779 -463.0259704590 0.0018722045 - 0.0592279248 -461.2416381836 0.0018566361 - 0.0605276749 -459.6870727539 0.0018426288 - 0.0618273169 -458.9000244141 0.0018296073 - 0.0631268546 -458.5542297363 0.0018159508 - 0.0644262880 -457.6860351562 0.0018014155 - 0.0657256097 -456.8071289062 0.0017873611 - 0.0670248270 -455.9172058105 0.0017732474 - 0.0683239251 -454.3061218262 0.0017598438 - 0.0696229041 -453.9830627441 0.0017471109 - 0.0709217712 -453.0638732910 0.0017333146 - 0.0722205117 -452.1336975098 0.0017195845 - 0.0735191330 -450.3389587402 0.0017041548 - 0.0748176351 -449.9090576172 0.0016906741 - 0.0761160031 -449.0230407715 0.0016783671 - 0.0774142444 -448.0513916016 0.0016644486 - 0.0787123516 -447.0689697266 0.0016511156 - 0.0800103322 -445.6524353027 0.0016364721 - 0.0813081712 -443.9487304688 0.0016236427 - 0.0826058760 -443.0187988281 0.0016113893 - 0.0839034393 -442.5270690918 0.0015982864 - 0.0852008536 -440.6355285645 0.0015836901 - 0.0864981338 -439.5923461914 0.0015703612 - 0.0877952650 -438.5384826660 0.0015571113 - 0.0890922397 -438.0974426270 0.0015453437 - 0.0903890729 -437.0245361328 0.0015324594 - 0.0916857496 -435.9407043457 0.0015193186 - 0.0929822698 -433.5744628906 0.0015044895 - 0.0942786336 -432.4700622559 0.0014912619 - 0.0955748335 -431.3550415039 0.0014784159 - 0.0968708768 -430.8674011230 0.0014671964 - 0.0981667563 -429.7332153320 0.0014545621 - 0.0994624645 -427.7211608887 0.0014404063 - 0.1007580087 -427.1095275879 0.0014283432 - 0.1020533815 -425.9438476562 0.0014157547 - 0.1033485755 -424.7673950195 0.0014033121 - 0.1046435982 -423.2906799316 0.0013913099 - 0.1059384421 -421.2253417969 0.0013774850 - 0.1072331145 -420.0191040039 0.0013652074 - 0.1085275933 -419.3532104492 0.0013532552 - 0.1098218933 -418.1267700195 0.0013412113 - 0.1111160070 -416.0168457031 0.0013278831 - 0.1124099344 -415.4351501465 0.0013169814 - 0.1137036681 -413.2397155762 0.0013041580 - 0.1149972081 -411.0981445312 0.0012910330 - 0.1162905619 -410.3777465820 0.0012793952 - 0.1175837070 -409.0903320312 0.0012677420 - 0.1188766584 -408.4709167480 0.0012571802 - 0.1201694086 -406.2873229980 0.0012444269 - 0.1214619577 -404.9699096680 0.0012329918 - 0.1227542907 -403.2691955566 0.0012206200 - 0.1240464225 -401.7228698730 0.0012074030 - 0.1253383458 -400.9388732910 0.0011962887 - 0.1266300529 -399.7069396973 0.0011861497 - 0.1279215515 -397.4581298828 0.0011736632 - 0.1292128265 -396.6475219727 0.0011626646 - 0.1305038780 -394.3263244629 0.0011506533 - 0.1317947209 -392.6154785156 0.0011385999 - 0.1330853403 -391.2071228027 0.0011275598 - 0.1343757212 -389.9225769043 0.0011176668 - 0.1356658787 -388.1835632324 0.0011059179 - 0.1369558126 -386.7454528809 0.0010950993 - 0.1382455081 -385.6019897461 0.0010832866 - 0.1395349652 -383.2570800781 0.0010714113 - 0.1408241987 -382.3656311035 0.0010610656 - 0.1421131790 -379.9991455078 0.0010493168 - 0.1434019357 -378.6527099609 0.0010398644 - 0.1446904391 -377.7350158691 0.0010296907 - 0.1459786892 -374.4100341797 0.0010172359 - 0.1472667009 -373.4747009277 0.0010072014 - 0.1485544741 -371.7072448730 0.0009954860 - 0.1498419791 -370.7527160645 0.0009856115 - 0.1511292309 -369.2033996582 0.0009754700 - 0.1524162292 -366.5664672852 0.0009644919 - 0.1537029743 -364.9988403320 0.0009545229 - 0.1549894512 -363.1166687012 0.0009438898 - 0.1562756747 -362.1742248535 0.0009336672 - 0.1575616151 -360.5750732422 0.0009237604 - 0.1588473022 -357.7406921387 0.0009124422 - 0.1601327211 -356.2820434570 0.0009036546 - 0.1614178717 -354.3525390625 0.0008932319 - 0.1627027392 -352.7150573730 0.0008837478 - 0.1639873385 -350.4855957031 0.0008721873 - 0.1652716547 -348.8274536133 0.0008627381 - 0.1665556878 -346.8593444824 0.0008526347 - 0.1678394377 -345.3490600586 0.0008441641 - 0.1691229045 -344.2630615234 0.0008352263 - 0.1704060882 -341.3830871582 0.0008236805 - 0.1716889888 -340.2787475586 0.0008149675 - 0.1729715914 -337.6604919434 0.0008048680 - 0.1742538959 -336.5382995605 0.0007962065 - 0.1755359173 -332.9834594727 0.0007853543 - 0.1768176258 -332.6502075195 0.0007772278 - 0.1780990511 -329.9908142090 0.0007673318 - 0.1793801636 -328.8340454102 0.0007588708 - 0.1806609780 -325.8506164551 0.0007487901 - 0.1819414794 -324.6914978027 0.0007396919 - 0.1832216829 -322.6022033691 0.0007304169 - 0.1845015585 -320.7970275879 0.0007218271 - 0.1857811362 -317.7778320312 0.0007119900 - 0.1870603859 -316.1405334473 0.0007043775 - 0.1883393377 -314.6357421875 0.0006948959 - 0.1896179467 -312.7920837402 0.0006866995 - 0.1908962578 -309.7383422852 0.0006770464 - 0.1921742260 -307.8757019043 0.0006688921 - 0.1934518814 -306.3290405273 0.0006596970 - 0.1947292089 -304.4457702637 0.0006515933 - 0.1960061938 -301.3565368652 0.0006422048 - 0.1972828507 -300.2752380371 0.0006354253 - 0.1985591799 -298.0645141602 0.0006261645 - 0.1998351663 -296.7687377930 0.0006186892 - 0.2011108249 -293.0197448730 0.0006091520 - 0.2023861259 -291.7071533203 0.0006018119 - 0.2036610991 -289.4508972168 0.0005927943 - 0.2049357146 -288.1198730469 0.0005855177 - 0.2062099874 -285.1688232422 0.0005774386 - 0.2074839026 -283.7962951660 0.0005695973 - 0.2087574750 -281.5239868164 0.0005614680 - 0.2100307047 -278.6254882812 0.0005534035 - 0.2113035619 -276.3354492188 0.0005454401 - 0.2125760615 -274.9197082520 0.0005377863 - 0.2138482034 -272.6103820801 0.0005300135 - 0.2151199877 -270.5282897949 0.0005232235 - 0.2163913995 -267.5646972656 0.0005150981 - 0.2176624537 -266.7471313477 0.0005080008 - 0.2189331353 -262.8655090332 0.0004993469 - 0.2202034444 -260.5123901367 0.0004918599 - 0.2214733809 -259.6658020020 0.0004849227 - 0.2227429301 -256.6505737305 0.0004770910 - 0.2240121216 -254.2981262207 0.0004700655 - 0.2252809256 -251.8536987305 0.0004620115 - 0.2265493423 -250.6047363281 0.0004563355 - 0.2278173715 -247.3054809570 0.0004485551 - 0.2290850282 -245.1669921875 0.0004418682 - 0.2303522825 -243.3291625977 0.0004343828 - 0.2316191643 -240.9305114746 0.0004277471 - 0.2328856438 -237.8375854492 0.0004203471 - 0.2341517210 -235.9694519043 0.0004130107 - 0.2354174107 -232.8933105469 0.0004060952 - 0.2366826981 -230.4241943359 0.0003992765 - 0.2379475832 -229.4544067383 0.0003929973 - 0.2392120659 -225.6624755859 0.0003859316 - 0.2404761463 -224.0971679688 0.0003801369 - 0.2417398095 -222.1707153320 0.0003731346 - 0.2430030704 -219.9288330078 0.0003670264 - 0.2442659140 -216.5222778320 0.0003599586 - 0.2455283552 -214.8355712891 0.0003536268 - 0.2467903644 -212.2960205078 0.0003471742 - 0.2480519712 -209.1125793457 0.0003408796 - 0.2493131459 -206.8259582520 0.0003349906 - 0.2505739033 -204.8309936523 0.0003283598 - 0.2518342435 -202.3099060059 0.0003224856 - 0.2530941367 -199.0615539551 0.0003158912 - 0.2543536127 -197.9715576172 0.0003102211 - 0.2556126714 -194.4926757812 0.0003036627 - 0.2568712533 -192.1506347656 0.0002980230 - 0.2581294477 -190.3551330566 0.0002922090 - 0.2593871653 -187.7895202637 0.0002866471 - 0.2606444657 -184.4845581055 0.0002803127 - 0.2619013190 -183.3399963379 0.0002749165 - 0.2631577551 -179.8142089844 0.0002686539 - 0.2644137144 -176.4803161621 0.0002624373 - 0.2656692266 -174.4333038330 0.0002568226 - 0.2669242918 -171.7577972412 0.0002510731 - 0.2681789100 -169.3345947266 0.0002458465 - 0.2694330513 -166.3220520020 0.0002394920 - 0.2706867754 -164.5611572266 0.0002347248 - 0.2719400227 -161.7205657959 0.0002284344 - 0.2731927931 -159.0716857910 0.0002234079 - 0.2744451165 -156.3449401855 0.0002179351 - 0.2756969631 -154.6904144287 0.0002130880 - 0.2769483626 -151.0781250000 0.0002073773 - 0.2781992555 -149.2700347900 0.0002028615 - 0.2794497013 -146.3675231934 0.0001967778 - 0.2806997001 -143.6754608154 0.0001920137 - 0.2819491923 -140.8992004395 0.0001868199 - 0.2831982076 -137.7899627686 0.0001809788 - 0.2844467461 -135.2508087158 0.0001762316 - 0.2856947780 -132.7348175049 0.0001715710 - 0.2869423628 -130.5461578369 0.0001666640 - 0.2881894410 -127.0352325439 0.0001612160 - 0.2894360423 -125.1564025879 0.0001570039 - 0.2906821370 -121.9955291748 0.0001514959 - 0.2919277549 -119.4043884277 0.0001469112 - 0.2931728661 -115.9867095947 0.0001421986 - 0.2944175005 -114.6094512939 0.0001378110 - 0.2956616282 -111.7440490723 0.0001330103 - 0.2969052494 -108.2610778809 0.0001283135 - 0.2981483638 -105.9073333740 0.0001232559 - 0.2993909717 -103.9671325684 0.0001193175 - 0.3006330729 -99.5094451904 0.0001140182 - 0.3018746674 -98.0784912109 0.0001098173 - 0.3031157553 -94.3087921143 0.0001050181 - 0.3043563068 -92.3384857178 0.0001012071 - 0.3055963516 -89.2225799561 0.0000959090 - 0.3068358898 -86.3827514648 0.0000919863 - 0.3080749214 -83.4363708496 0.0000875323 - 0.3093134165 -80.3916015625 0.0000828898 - 0.3105513752 -77.4285430908 0.0000784988 - 0.3117887974 -75.9270629883 0.0000745556 - 0.3130257130 -73.0526733398 0.0000708112 - 0.3142620921 -69.3529052734 0.0000660534 - 0.3154979646 -66.9770812988 0.0000620486 - 0.3167332709 -63.9742736816 0.0000578310 - 0.3179680407 -61.2034606934 0.0000538815 - 0.3192022741 -57.8471679688 0.0000492688 - 0.3204359710 -56.0973815918 0.0000461707 - 0.3216691315 -52.2195739746 0.0000419426 - 0.3229017258 -49.9222106934 0.0000377748 - 0.3241337836 -46.8726196289 0.0000337124 - 0.3253653049 -44.2565612793 0.0000306071 - 0.3265962601 -42.6544799805 0.0000269951 - 0.3278266788 -38.0186767578 0.0000224496 - 0.3290565014 -36.2283020020 0.0000195051 - 0.3302858174 -32.8020629883 0.0000151733 - 0.3315145373 -29.9429931641 0.0000115037 - 0.3327427208 -27.1745300293 0.0000079027 - 0.3339703083 -24.6854248047 0.0000043826 - 0.3351973593 -22.5315246582 0.0000012721 - 0.3364238143 -17.8431396484 -0.0000030704 - 0.3376497328 -16.1666870117 -0.0000064459 - 0.3388750553 -13.0281982422 -0.0000102022 - 0.3400998116 -10.0109863281 -0.0000132475 - 0.3413239717 -7.5764770508 -0.0000170631 - 0.3425475657 -3.2398071289 -0.0000209941 - 0.3437705934 -1.0339965820 -0.0000239396 - 0.3449930251 2.8339538574 -0.0000280956 - 0.3462148905 5.7921752930 -0.0000315004 - 0.3474361300 8.3684997559 -0.0000345890 - 0.3486568034 12.2668151855 -0.0000386478 - 0.3498769104 14.8622436523 -0.0000416692 - 0.3510963917 19.3858337402 -0.0000453450 - 0.3523152769 22.9671325684 -0.0000489949 - 0.3535335660 26.2944335938 -0.0000523887 - 0.3547512889 29.8966064453 -0.0000559587 - 0.3559683561 34.4657592773 -0.0000594637 - 0.3571848571 36.6475524902 -0.0000626283 - 0.3584007621 40.6391906738 -0.0000662701 - 0.3596160412 44.4971313477 -0.0000691245 - 0.3608306944 47.4600219727 -0.0000727115 - 0.3620447516 52.3083190918 -0.0000761761 - 0.3632582128 55.0146484375 -0.0000788167 - 0.3644710183 58.4473571777 -0.0000818615 - 0.3656832278 62.8938598633 -0.0000856690 - 0.3668948114 65.6300354004 -0.0000882580 - 0.3681057990 69.1921997070 -0.0000906700 - 0.3693161309 71.4836425781 -0.0000935438 - 0.3705258667 76.4172668457 -0.0000970247 - 0.3717349470 79.1887817383 -0.0000994881 - 0.3729434013 81.9518737793 -0.0001020409 - 0.3741512299 112.4446105957 -0.0001033648 - 0.3753584325 108.4479064941 -0.0001060867 - 0.3765649796 104.7984313965 -0.0001087112 - 0.3777709007 99.0726013184 -0.0001107578 - 0.3789761662 95.1738586426 -0.0001136195 - 0.3801808059 91.6589050293 -0.0001163267 - 0.3813847899 86.7684783936 -0.0001185783 - 0.3825881481 82.4986572266 -0.0001206503 - 0.3837908506 78.3211364746 -0.0001231465 - 0.3849928677 73.9370117188 -0.0001256610 - 0.3861942589 70.1271362305 -0.0001277568 - 0.3873950243 65.9660339355 -0.0001296838 - 0.3885951042 60.9123535156 -0.0001319430 - 0.3897944987 57.5727233887 -0.0001341246 - 0.3909932673 53.9060516357 -0.0001362879 - 0.3921913803 49.8539733887 -0.0001380527 - 0.3933888078 44.4602203369 -0.0001394940 - 0.3945855796 41.6718292236 -0.0001421762 - 0.3957816660 38.5023498535 -0.0001444207 - 0.3969770968 34.1639709473 -0.0001458039 - 0.3981718421 30.2497100830 -0.0001473976 - 0.3993659317 26.7388610840 -0.0001490611 - 0.4005593061 22.6704559326 -0.0001511120 - 0.4017520249 18.8673706055 -0.0001529853 - 0.4029440880 15.0616760254 -0.0001544432 - 0.4041354358 11.6580047607 -0.0001559557 - 0.4053260982 8.6682281494 -0.0001579538 - 0.4065161049 4.5390319824 -0.0001590653 - 0.4077053964 0.8436737061 -0.0001604123 - 0.4088940024 -3.2697448730 -0.0001614458 - 0.4100818932 -6.3190612793 -0.0001635805 - 0.4112691283 -9.9620208740 -0.0001651905 - 0.4124556482 -13.5494384766 -0.0001664195 - 0.4136414528 -17.5218353271 -0.0001673232 - 0.4148265719 -20.3123626709 -0.0001688702 - 0.4160109758 -23.4454956055 -0.0001702955 - 0.4171946943 -26.9687500000 -0.0001714402 - 0.4183776975 -30.8842468262 -0.0001722224 - 0.4195599854 -34.3069458008 -0.0001732978 - 0.4207415581 -36.6005859375 -0.0001749870 - 0.4219224453 -39.9682922363 -0.0001760092 - 0.4231025875 -42.3773956299 -0.0001771482 - 0.4242820144 -46.1674346924 -0.0001778076 - 0.4254607260 -48.6726531982 -0.0001793557 - 0.4266387224 -51.6202545166 -0.0001803330 - 0.4278160036 -54.9082946777 -0.0001812538 - 0.4289925396 -58.5991210938 -0.0001818108 - 0.4301683605 -60.9982604980 -0.0001832625 - 0.4313434660 -64.6394042969 -0.0001837654 - 0.4325178266 -66.0421600342 -0.0001851374 - 0.4336914420 -69.6330718994 -0.0001855753 - 0.4348643422 -71.9921417236 -0.0001869751 - 0.4360364676 -75.5345764160 -0.0001873775 - 0.4372079074 -78.6157379150 -0.0001881437 - 0.4383785725 -81.1227111816 -0.0001886359 - 0.4395484924 -83.3823242188 -0.0001899372 - 0.4407176673 -86.0241241455 -0.0001906501 - 0.4418860972 -89.0016174316 -0.0001913592 - 0.4430538118 -91.4085693359 -0.0001917693 - 0.4442207217 -94.3338317871 -0.0001924040 - 0.4453869164 -96.9125366211 -0.0001932336 - 0.4465523362 -98.7991180420 -0.0001939941 - 0.4477170110 -101.6712493896 -0.0001940269 - 0.4488809109 -104.5730743408 -0.0001946144 - 0.4500440657 -106.0675201416 -0.0001954997 - 0.4512064755 -108.8371734619 -0.0001960580 - 0.4523680806 -112.0326080322 -0.0001961722 - 0.4535289407 -113.8485412598 -0.0001968624 - 0.4546890259 -116.2365264893 -0.0001975426 - 0.4558483362 -117.9146423340 -0.0001981787 - 0.4570068717 -121.4773254395 -0.0001976645 - 0.4581646621 -122.2887268066 -0.0001987281 - 0.4593216479 -124.6733856201 -0.0001993306 - 0.4604778588 -126.2470550537 -0.0001999175 - 0.4616332948 -129.3414764404 -0.0001999194 - 0.4627879262 -131.2317810059 -0.0001999245 - 0.4639417827 -133.5266571045 -0.0002004754 - 0.4650948644 -134.9965209961 -0.0002010361 - 0.4662471712 -137.9975433350 -0.0002009572 - 0.4673986733 -139.0296783447 -0.0002014929 - 0.4685493708 -140.9926147461 -0.0002015882 - 0.4696992636 -143.4546966553 -0.0002019311 - 0.4708483815 -145.3718872070 -0.0002019821 - 0.4719966948 -146.4683074951 -0.0002027383 - 0.4731442332 -148.3372039795 -0.0002027888 - 0.4742909372 -149.7094726562 -0.0002032606 - 0.4754368365 -152.5244903564 -0.0002030804 - 0.4765819609 -153.4600372314 -0.0002035685 - 0.4777262509 -155.1222229004 -0.0002035358 - 0.4788697362 -156.8751831055 -0.0002035100 - 0.4800124168 -159.4683532715 -0.0002032106 - 0.4811542630 -160.4352111816 -0.0002037197 - 0.4822953045 -161.6368103027 -0.0002041266 - 0.4834355414 -163.6435394287 -0.0002035229 - 0.4845749438 -165.7889251709 -0.0002037223 - 0.4857135415 -166.6665191650 -0.0002041832 - 0.4868513048 -168.2383880615 -0.0002040466 - 0.4879882336 -169.8058471680 -0.0002039304 - 0.4891243577 -170.4693145752 -0.0002043243 - 0.4902596176 -171.9902191162 -0.0002041945 - 0.4913940728 -172.9969329834 -0.0002045304 - 0.4925276935 -174.9391632080 -0.0002038807 - 0.4936604798 -175.1681976318 -0.0002047524 - 0.4947924316 -177.9258422852 -0.0002038566 - 0.4959235191 -178.8350219727 -0.0002041867 - 0.4970537722 -180.6844177246 -0.0002034926 - 0.4981832206 -180.8191986084 -0.0002043161 - 0.4993117750 -182.6230926514 -0.0002036230 - 0.5004395247 -183.4354553223 -0.0002039076 - 0.5015664101 -183.4746093750 -0.0002039429 - 0.5026924014 -184.2390899658 -0.0002042284 - 0.5038176179 -185.9506835938 -0.0002035024 - 0.5049419403 -186.6661987305 -0.0002037622 - 0.5060654283 -187.6120147705 -0.0002035593 - 0.5071880221 -189.2726440430 -0.0002033162 - 0.5083097816 -190.7447662354 -0.0002025653 - 0.5094306469 -191.3074035645 -0.0002028275 - 0.5105506778 -191.3771362305 -0.0002027924 - 0.5116698146 -192.7769165039 -0.0002020126 - 0.5127881169 -193.4783172607 -0.0002022593 - 0.5139055848 -194.2713928223 -0.0002019993 - 0.5150220990 -194.9284973145 -0.0002022104 - 0.5161377788 -195.3930053711 -0.0002016533 - 0.5172525644 -195.6041870117 -0.0002018642 - 0.5183665156 -196.7113647461 -0.0002015748 - 0.5194795728 -197.4411926270 -0.0002009956 - 0.5205917358 -198.1043853760 -0.0002006977 - 0.5217030048 -198.6264343262 -0.0002008731 - 0.5228134394 -198.9548797607 -0.0002003094 - 0.5239229202 -199.7337646484 -0.0001999816 - 0.5250315666 -200.0079650879 -0.0002001619 - 0.5261393189 -199.7420654297 -0.0002000899 - 0.5272461176 -201.8333740234 -0.0001987302 - 0.5283520818 -201.2212219238 -0.0001991349 - 0.5294571519 -201.8838958740 -0.0001987947 - 0.5305612683 -202.0536651611 -0.0001982115 - 0.5316645503 -202.1448974609 -0.0001983594 - 0.5327668786 -201.9774780273 -0.0001982479 - 0.5338683724 -202.5448608398 -0.0001978852 - 0.5349689126 -202.9702758789 -0.0001972457 - 0.5360685587 -203.4911499023 -0.0001968798 - 0.5371672511 -203.7078399658 -0.0001963000 - 0.5382651091 -202.2032470703 -0.0001971520 - 0.5393620133 -203.3773193359 -0.0001962890 - 0.5404580235 -203.6704711914 -0.0001956372 - 0.5415530801 -203.8027954102 -0.0001950334 - 0.5426472425 -203.6819000244 -0.0001951235 - 0.5437404513 -203.5826416016 -0.0001945212 - 0.5448327661 -203.6962127686 -0.0001943387 - 0.5459241867 -204.0585327148 -0.0001939129 - 0.5470146537 -204.0877990723 -0.0001932951 - 0.5481041670 -203.3530883789 -0.0001931741 - 0.5491927862 -202.6556396484 -0.0001930209 - 0.5502804518 -202.9423828125 -0.0001923374 - 0.5513672233 -203.8864746094 -0.0001914520 - 0.5524530411 -202.5778198242 -0.0001917813 - 0.5535379052 -203.3540039062 -0.0001905937 - 0.5546218753 -202.0041198730 -0.0001909252 - 0.5557048321 -201.8662719727 -0.0001902989 - 0.5567868948 -201.1509704590 -0.0001901778 - 0.5578680038 -201.1707153320 -0.0001894109 - 0.5589481592 -200.4120330811 -0.0001892866 - 0.5600273609 -200.1907653809 -0.0001886678 - 0.5611056685 -199.8030090332 -0.0001883812 - 0.5621829629 -199.5416870117 -0.0001877626 - 0.5632593632 -199.2596740723 -0.0001871340 - 0.5643347502 -197.7229156494 -0.0001874173 - 0.5654091835 -198.4949035645 -0.0001862002 - 0.5664826632 -197.5856475830 -0.0001860751 - 0.5675551891 -196.7725830078 -0.0001858452 - 0.5686267614 -196.7026062012 -0.0001851249 - 0.5696973801 -195.6334533691 -0.0001849094 - 0.5707670450 -195.1087951660 -0.0001843227 - 0.5718356967 -194.7695312500 -0.0001833868 - 0.5729033947 -193.0696411133 -0.0001836474 - 0.5739701390 -193.6942443848 -0.0001824180 - 0.5750358701 -192.6141204834 -0.0001822616 - 0.5761007071 -190.6565399170 -0.0001823437 - 0.5771644711 -190.8908081055 -0.0001811367 - 0.5782273412 -190.5547180176 -0.0001805052 - 0.5792891383 -189.3121032715 -0.0001802694 - 0.5803500414 -188.2472229004 -0.0001798098 - 0.5814099312 -187.2012939453 -0.0001795606 - 0.5824688077 -186.3338012695 -0.0001786592 - 0.5835267305 -185.9043273926 -0.0001780152 - 0.5845836401 -185.1118469238 -0.0001776312 - 0.5856395364 -183.8768920898 -0.0001768759 - 0.5866944790 -182.1558074951 -0.0001770780 - 0.5877484083 -181.5447692871 -0.0001761350 - 0.5888013840 -180.4343719482 -0.0001759659 - 0.5898533463 -179.3666839600 -0.0001749834 - 0.5909042954 -178.2167358398 -0.0001748159 - 0.5919542313 -176.8891754150 -0.0001742141 - 0.5930031538 -176.7643280029 -0.0001731462 - 0.5940510631 -175.4526824951 -0.0001726651 - 0.5950980186 -173.3981933594 -0.0001723003 - 0.5961439610 -173.0479125977 -0.0001714929 - 0.5971888304 -170.9924926758 -0.0001715161 - 0.5982327461 -170.8215942383 -0.0001702887 - 0.5992756486 -169.3714141846 -0.0001699544 - 0.6003174782 -167.5238342285 -0.0001694049 - 0.6013583541 -166.0400848389 -0.0001690706 - 0.6023981571 -165.1544494629 -0.0001681878 - 0.6034369469 -163.6365509033 -0.0001678559 - 0.6044747233 -161.7135314941 -0.0001673069 - 0.6055114865 -160.1619110107 -0.0001669711 - 0.6065472364 -159.7027893066 -0.0001655992 - 0.6075819731 -157.6153106689 -0.0001657387 - 0.6086156368 -157.1208190918 -0.0001643796 - 0.6096482873 -154.2662353516 -0.0001648093 - 0.6106798649 -153.7378234863 -0.0001634577 - 0.6117104292 -151.7564849854 -0.0001632351 - 0.6127399802 -150.2883453369 -0.0001625279 - 0.6137684584 -148.4717559814 -0.0001619258 - 0.6147959232 -146.7720947266 -0.0001616047 - 0.6158223152 -145.5424499512 -0.0001606913 - 0.6168476939 -144.0978393555 -0.0001600042 - 0.6178720593 -141.9238891602 -0.0001597524 - 0.6188952923 -140.6395874023 -0.0001586960 - 0.6199175119 -138.2383728027 -0.0001588090 - 0.6209387183 -136.9223327637 -0.0001577411 - 0.6219588518 -136.2056427002 -0.0001564003 - 0.6229779124 -132.4246826172 -0.0001571155 - 0.6239959002 -131.6754455566 -0.0001557712 - 0.6250128746 -129.6719207764 -0.0001551361 - 0.6260287762 -128.2631835938 -0.0001544254 - 0.6270436049 -126.0459289551 -0.0001541365 - 0.6280573606 -124.2306518555 -0.0001531492 - 0.6290701032 -122.1448898315 -0.0001528679 - 0.6300817132 -120.6862640381 -0.0001518053 - 0.6310923100 -118.3090667725 -0.0001515575 - 0.6321017742 -115.9039001465 -0.0001511582 - 0.6331102252 -114.6669235229 -0.0001502101 - 0.6341176033 -112.4470367432 -0.0001494530 - 0.6351238489 -109.9602432251 -0.0001492091 - 0.6361290812 -108.7086791992 -0.0001480901 - 0.6371331811 -106.8791503906 -0.0001474314 - 0.6381362081 -104.9641723633 -0.0001467243 - 0.6391382217 -102.3527679443 -0.0001463953 - 0.6401391029 -100.1012420654 -0.0001457256 - 0.6411388516 -98.3787307739 -0.0001447270 - 0.6421375871 -96.4022598267 -0.0001440061 - 0.6431351900 -93.7279815674 -0.0001436979 - 0.6441317201 -90.7245483398 -0.0001433487 - 0.6451271772 -89.9390258789 -0.0001419829 - 0.6461215019 -86.9060363770 -0.0001416286 - 0.6471147537 -85.4089660645 -0.0001406005 - 0.6481068730 -82.4195098877 -0.0001405513 - 0.6490979195 -80.5786743164 -0.0001395699 - 0.6500878930 -77.4873962402 -0.0001392117 - 0.6510767341 -76.0286407471 -0.0001380686 - 0.6520645022 -74.4655380249 -0.0001370336 - 0.6530511379 -70.4052124023 -0.0001373577 - 0.6540366411 -68.4921569824 -0.0001363794 - 0.6550210714 -65.6538391113 -0.0001359723 - 0.6560043693 -64.7079620361 -0.0001346024 - 0.6569865942 -61.8437500000 -0.0001341767 - 0.6579676867 -60.0137672424 -0.0001329197 - 0.6589476466 -57.1227302551 -0.0001324969 - 0.6599265337 -54.5239143372 -0.0001321706 - 0.6609042287 -51.2754096985 -0.0001317855 - 0.6618808508 -49.0079727173 -0.0001309743 - 0.6628563404 -46.6391067505 -0.0001303391 - 0.6638306975 -44.1453399658 -0.0001292977 - 0.6648039818 -41.7473449707 -0.0001286518 - 0.6657760739 -39.4321479797 -0.0001278381 - 0.6667470932 -37.0076866150 -0.0001272010 - 0.6677169204 -34.6702384949 -0.0001263843 - 0.6686856747 -32.3447265625 -0.0001254709 - 0.6696532369 -29.9835433960 -0.0001246477 - 0.6706196666 -26.6184768677 -0.0001242440 - 0.6715850234 -23.3130722046 -0.0001240504 - 0.6725491881 -20.9174728394 -0.0001232208 - 0.6735122204 -18.3982238770 -0.0001225881 - 0.6744741201 -16.0979957581 -0.0001215095 - 0.6754348874 -12.0004730225 -0.0001214643 - 0.6763944626 -10.1167449951 -0.0001204776 - 0.6773529649 -7.4545402527 -0.0001196937 - 0.6783102751 -4.5538291931 -0.0001191230 - 0.6792664528 -1.5117378235 -0.0001184072 - 0.6802214384 0.6182518005 -0.0001175221 - 0.6811752915 4.2355003357 -0.0001173217 - 0.6821280122 6.2764015198 -0.0001161903 - 0.6830795407 8.9780235291 -0.0001152763 - 0.6840299368 11.0413322449 -0.0001141597 - 0.6849792004 15.2572212219 -0.0001141062 - 0.6859272122 16.7957153320 -0.0001128398 - 0.6868741512 21.0355529785 -0.0001127889 - 0.6878198981 22.5987777710 -0.0001115446 - 0.6887644529 26.4946594238 -0.0001114233 - 0.6897078753 28.6228256226 -0.0001103269 - 0.6906501055 32.3675155640 -0.0001101454 - 0.6915911436 35.5079193115 -0.0001094788 - 0.6925310493 37.6686859131 -0.0001083893 - 0.6934697628 41.0775833130 -0.0001081431 - 0.6944073439 44.2489929199 -0.0001074936 - 0.6953436732 45.7439727783 -0.0001061168 - 0.6962788701 48.9356460571 -0.0001054653 - 0.6972128749 52.8344955444 -0.0001051699 - 0.6981457472 55.6008300781 -0.0001046181 - 0.6990773678 59.5225906372 -0.0001043297 - 0.7000077963 61.7673645020 -0.0001032751 - 0.7009370923 63.9322280884 -0.0001022720 - 0.7018651962 67.1847229004 -0.0001016751 - 0.7027920485 71.1497039795 -0.0001014098 - 0.7037177682 73.8978118896 -0.0001007123 - 0.7046422958 77.5749740601 -0.0001005661 - 0.7055655718 80.8674621582 -0.0000999964 - 0.7064877152 83.0124282837 -0.0000988529 - 0.7074086070 86.3251266479 -0.0000983014 - 0.7083283067 90.3558273315 -0.0000980910 - 0.7092468739 92.8469543457 -0.0000975433 - 0.7101641893 95.5503845215 -0.0000965408 - 0.7110802531 98.9013824463 -0.0000960355 - 0.7119951844 102.5769729614 -0.0000957665 - 0.7129088640 105.0350646973 -0.0000950972 - 0.7138213515 109.1588973999 -0.0000946695 - 0.7147326469 112.1483535767 -0.0000941305 - 0.7156426907 115.4113159180 -0.0000939733 - 0.7165516019 118.4161605835 -0.0000934455 - 0.7174592018 122.1735534668 -0.0000929913 - 0.7183656096 125.0924148560 -0.0000924985 - 0.7192708254 128.8418426514 -0.0000923305 - 0.7201748490 130.9225463867 -0.0000911472 - 0.7210776210 135.6721954346 -0.0000914788 - 0.7219791412 138.2229309082 -0.0000909614 - 0.7228794694 141.6198577881 -0.0000904915 - 0.7237785459 144.6886291504 -0.0000901064 - 0.7246764302 147.9900817871 -0.0000899579 - 0.7255730629 151.0973510742 -0.0000893408 - 0.7264684439 154.9161834717 -0.0000893138 - 0.7273626328 158.5805664062 -0.0000893727 - 0.7282555699 160.9172668457 -0.0000884806 - 0.7291472554 165.0149230957 -0.0000886776 - 0.7300377488 167.4863281250 -0.0000879094 - 0.7309269905 171.5975646973 -0.0000881537 - 0.7318149805 175.5335388184 -0.0000885691 - 0.7327017188 177.7168426514 -0.0000876857 - 0.7335872650 182.1570892334 -0.0000882249 - 0.7344714999 185.2992248535 -0.0000877514 - 0.7353545427 188.2886352539 -0.0000878165 - 0.7362363338 191.0496215820 -0.0000874076 - 0.7371168137 195.9470825195 -0.0000881866 - 0.7379961014 197.7400665283 -0.0000873343 - 0.7388741374 202.1925964355 -0.0000879792 - 0.7397509217 205.4596099854 -0.0000883729 - 0.7406264544 209.4225769043 -0.0000885824 - 0.7415006757 213.1583557129 -0.0000890209 - 0.7423737049 216.6990661621 -0.0000891821 - 0.7432454824 219.9931793213 -0.0000897441 - 0.7441159487 222.5497436523 -0.0000894140 - 0.7449851632 226.3315734863 -0.0000901061 - 0.7458531260 229.8957214355 -0.0000904293 - 0.7467198372 232.7034606934 -0.0000904448 - 0.7475852370 236.7779998779 -0.0000915430 - 0.7484494448 239.1662139893 -0.0000915728 - 0.7493123412 243.7102050781 -0.0000927856 - 0.7501739264 246.5529632568 -0.0000930479 - 0.7510343194 252.0857543945 -0.0000948706 - 0.7518934011 254.4877471924 -0.0000950923 - 0.7527511716 258.5974731445 -0.0000965227 - 0.7536077499 261.4597778320 -0.0000970215 - 0.7544629574 264.6229248047 -0.0000977437 - 0.7553169727 268.4655456543 -0.0000990899 - 0.7561696172 272.6116027832 -0.0001004482 - 0.7570210695 276.4631347656 -0.0001019403 - 0.7578711510 279.1915893555 -0.0001029164 - 0.7587200403 281.6211547852 -0.0001036771 - 0.7595675588 287.2207641602 -0.0001062114 - 0.7604138255 289.6564331055 -0.0001071410 - 0.7612588406 292.8616638184 -0.0001084786 - 0.7621024847 297.2542724609 -0.0001107925 - 0.7629448771 300.4773864746 -0.0001123857 - 0.7637860179 303.9052429199 -0.0001142071 - 0.7646257877 308.0947570801 -0.0001166364 - 0.7654643059 311.5294799805 -0.0001185502 - 0.7663015127 314.7656860352 -0.0001204618 - 0.7671374679 319.9509582520 -0.0001237367 - 0.7679720521 322.4130554199 -0.0001254585 - 0.7688053846 326.6312255859 -0.0001282150 - 0.7696374059 328.6784057617 -0.0001301523 - 0.7704681158 333.8629455566 -0.0001338004 - 0.7712975144 336.3580017090 -0.0001359919 - 0.7721256018 340.1169738770 -0.0001390943 - 0.7729523778 343.5855102539 -0.0001421033 - 0.7737778425 347.8430786133 -0.0001457359 - 0.7746019959 350.8099365234 -0.0001487118 - 0.7754248381 355.0621948242 -0.0001525284 - 0.7762463689 358.5437622070 -0.0001560361 - 0.7770665884 361.3561096191 -0.0001593536 - 0.7778854966 365.3954162598 -0.0001638937 - 0.7787030339 369.1790771484 -0.0001680285 - 0.7795193195 372.6393432617 -0.0001721074 - 0.7803342342 376.4272766113 -0.0001766069 - 0.7811478376 379.9273986816 -0.0001810571 - 0.7819601297 383.7397766113 -0.0001861048 - 0.7827711105 387.5364990234 -0.0001910283 - 0.7835807204 391.0465087891 -0.0001959437 - 0.7843890190 394.8487548828 -0.0002013706 - 0.7851960063 397.8685607910 -0.0002065189 - 0.7860016823 401.6752319336 -0.0002121479 - 0.7868059874 404.6976318359 -0.0002177400 - 0.7876089811 408.5085754395 -0.0002238251 - 0.7884106040 412.5162353516 -0.0002304670 - 0.7892109156 417.2904052734 -0.0002376389 - 0.7900098562 420.3183288574 -0.0002438831 - 0.7908074856 423.7287902832 -0.0002509691 - 0.7916038036 426.7605285645 -0.0002577335 - 0.7923987508 430.5854492188 -0.0002650965 - 0.7931923270 434.4702148438 -0.0002729501 - 0.7939845920 438.4639892578 -0.0002809642 - 0.7947755456 442.2965698242 -0.0002892084 - 0.7955650687 444.8249511719 -0.0002968921 - 0.7963532805 448.6605834961 -0.0003055227 - 0.7971401811 452.6563720703 -0.0003147747 - 0.7979256511 456.0469665527 -0.0003238519 - 0.7987098694 459.0904541016 -0.0003326836 - 0.7994926572 463.8878479004 -0.0003433154 - 0.8002740741 466.4156799316 -0.0003523193 - 0.8010541797 471.2146911621 -0.0003634118 - 0.8018329144 473.8131713867 -0.0003733784 - 0.8026103377 478.0948791504 -0.0003848160 - 0.8033863306 481.9458312988 -0.0003960864 - 0.8041610122 485.4990539551 -0.0004076300 - 0.8049342632 488.8297119141 -0.0004191332 - 0.8057062030 492.8309936523 -0.0004314321 - 0.8064767718 496.1619567871 -0.0004437287 - 0.8072459698 499.7165222168 -0.0004567362 - 0.8080137968 503.0479431152 -0.0004697868 - 0.8087802529 506.6033325195 -0.0004835087 - 0.8095453382 511.4148254395 -0.0004980565 - 0.8103090525 514.1378784180 -0.0005111652 - 0.8110713959 517.6932373047 -0.0005259583 - 0.8118323088 521.9724121094 -0.0005414213 - 0.8125919104 525.5283813477 -0.0005567246 - 0.8133501410 528.3234252930 -0.0005718577 - 0.8141069412 531.8787841797 -0.0005880891 - 0.8148624301 536.1555175781 -0.0006050838 - 0.8156164885 538.7211303711 -0.0006212965 - 0.8163691759 542.9967651367 -0.0006393617 - 0.8171204329 546.4252929688 -0.0006567782 - 0.8178703785 549.3403930664 -0.0006744430 - 0.8186188936 553.7137451172 -0.0006942773 - 0.8193660378 557.1681518555 -0.0007124441 - 0.8201118112 560.0062255859 -0.0007318688 - 0.8208561540 563.4567260742 -0.0007514605 - 0.8215991259 567.6445922852 -0.0007719144 - 0.8223406672 571.1975097656 -0.0007932235 - 0.8230808973 574.9146728516 -0.0008143882 - 0.8238196373 578.2984619141 -0.0008363360 - 0.8245570660 581.1874389648 -0.0008575815 - 0.8252930641 585.0092163086 -0.0008805381 - 0.8260276318 589.4989013672 -0.0009046535 - 0.8267608285 592.2127075195 -0.0009271724 - 0.8274925947 595.2044677734 -0.0009510115 - 0.8282229900 599.5803222656 -0.0009765005 - 0.8289520144 602.7548828125 -0.0010012068 - 0.8296795487 606.5588378906 -0.0010267337 - 0.8304057717 610.3729248047 -0.0010528845 - 0.8311305046 613.3549194336 -0.0010793493 - 0.8318538666 616.1737060547 -0.0011060894 - 0.8325757980 619.9625854492 -0.0011335680 - 0.8332963586 623.7717285156 -0.0011621302 - 0.8340154290 626.5854492188 -0.0011906023 - 0.8347331882 630.8306884766 -0.0012196187 - 0.8354494572 634.6353759766 -0.0012499465 - 0.8361643553 636.6092529297 -0.0012783041 - 0.8368777633 641.2113647461 -0.0013097933 - 0.8375898004 642.6074829102 -0.0013388459 - 0.8383004665 647.3370971680 -0.0013721647 - 0.8390096426 651.4655761719 -0.0014050764 - 0.8397173882 654.3563842773 -0.0014370901 - 0.8404237628 657.5733642578 -0.0014700587 - 0.8411287069 660.4584350586 -0.0015033050 - 0.8418321609 664.5985717773 -0.0015378018 - 0.8425342441 668.3867797852 -0.0015733645 - 0.8432348967 671.5871582031 -0.0016080806 - 0.8439341187 674.7896728516 -0.0016436329 - 0.8446319103 677.6588134766 -0.0016791568 - 0.8453282714 681.7821044922 -0.0017167153 - 0.8460231423 683.1337280273 -0.0017518563 - 0.8467166424 688.1536865234 -0.0017911735 - 0.8474087119 691.2688598633 -0.0018290633 - 0.8480992913 694.5289306641 -0.0018678226 - 0.8487884998 697.3012695312 -0.0019060420 - 0.8494762182 700.5527343750 -0.0019457397 - 0.8501625061 703.9648437500 -0.0019852081 - 0.8508473635 708.0566406250 -0.0020268697 - 0.8515307903 710.2962646484 -0.0020665554 - 0.8522127271 714.5408935547 -0.0021099381 - 0.8528932333 717.0791625977 -0.0021504341 - 0.8535723090 720.2340698242 -0.0021926155 - 0.8542499542 723.3091430664 -0.0022354219 - 0.8549261689 726.5221557617 -0.0022775594 - 0.8556008935 729.5882568359 -0.0023211741 - 0.8562741280 733.2619628906 -0.0023662576 - 0.8569459915 736.3193969727 -0.0024099248 - 0.8576163650 739.3734130859 -0.0024547686 - 0.8582852483 742.5628662109 -0.0024988367 - 0.8589527607 746.3892822266 -0.0025462075 - 0.8596187234 749.5675048828 -0.0025912533 - 0.8602833152 752.6027832031 -0.0026372559 - 0.8609464169 755.6342163086 -0.0026836628 - 0.8616080284 758.6588134766 -0.0027298245 - 0.8622682095 761.6807861328 -0.0027773634 - 0.8629269004 764.2232055664 -0.0028229244 - 0.8635841608 768.6174316406 -0.0028728677 - 0.8642399311 771.0120849609 -0.0029200134 - 0.8648942709 774.3338012695 -0.0029689630 - 0.8655471206 776.7185668945 -0.0030157825 - 0.8661984801 780.0386352539 -0.0030638226 - 0.8668484092 783.5974121094 -0.0031144384 - 0.8674968481 785.9635009766 -0.0031620529 - 0.8681438565 789.4534301758 -0.0032120328 - 0.8687893748 791.8068237305 -0.0032606549 - 0.8694334030 794.2843017578 -0.0033084052 - 0.8700759411 798.6248168945 -0.0033598391 - 0.8707170486 800.9600830078 -0.0034089030 - 0.8713566065 804.5217285156 -0.0034603672 - 0.8719947338 806.8449096680 -0.0035089147 - 0.8726314306 810.5373535156 -0.0035600741 - 0.8732665777 811.9749755859 -0.0036077644 - 0.8739002943 816.3852539062 -0.0036603091 - 0.8745324612 818.2799682617 -0.0037087423 - 0.8751631975 821.4747924805 -0.0037585574 - 0.8757924438 823.9671630859 -0.0038105671 - 0.8764201999 826.5347290039 -0.0038578906 - 0.8770464659 830.9173583984 -0.0039110230 - 0.8776712418 832.3066406250 -0.0039581410 - 0.8782945275 835.9367065430 -0.0040097544 - 0.8789163828 839.3030395508 -0.0040613129 - 0.8795366883 840.2894897461 -0.0041061505 - 0.8801555037 844.6427612305 -0.0041589942 - 0.8807728291 847.9916381836 -0.0042098747 - 0.8813886642 848.9498291016 -0.0042552804 - 0.8820030093 852.2855834961 -0.0043063974 - 0.8826158643 854.7340087891 -0.0043554893 - 0.8832272291 857.6642456055 -0.0044041928 - 0.8838371038 861.7595214844 -0.0044545238 - 0.8844454288 863.7877197266 -0.0045013865 - 0.8850523233 866.1995239258 -0.0045497064 - 0.8856576681 868.8531494141 -0.0045983279 - 0.8862615228 871.2755737305 -0.0046441876 - 0.8868638873 873.9135742188 -0.0046921195 - 0.8874647021 877.4346313477 -0.0047407355 - 0.8880640864 879.1710815430 -0.0047861235 - 0.8886619210 881.7880859375 -0.0048328554 - 0.8892582655 884.1632690430 -0.0048770877 - 0.8898530602 886.7650146484 -0.0049236184 - 0.8904463649 889.5923461914 -0.0049690679 - 0.8910381794 892.2884521484 -0.0050137644 - 0.8916285038 894.8681640625 -0.0050590932 - 0.8922172785 898.3285522461 -0.0051048193 - 0.8928045630 900.0015869141 -0.0051473090 - 0.8933902979 902.5427246094 -0.0051895948 - 0.8939745426 905.9765625000 -0.0052343067 - 0.8945572972 907.8482666016 -0.0052748639 - 0.8951385021 910.3815307617 -0.0053178621 - 0.8957182169 912.0126953125 -0.0053579286 - 0.8962963820 914.7523193359 -0.0053993193 - 0.8968729973 917.2639160156 -0.0054404801 - 0.8974481821 919.9697265625 -0.0054798787 - 0.8980217576 922.4653930664 -0.0055203866 - 0.8985938430 924.4998168945 -0.0055579194 - 0.8991644382 925.9600830078 -0.0055949078 - 0.8997334838 928.6445922852 -0.0056334608 - 0.9003009796 931.1086425781 -0.0056715477 - 0.9008669853 932.2019042969 -0.0057052737 - 0.9014314413 935.5262451172 -0.0057435571 - 0.9019944072 938.2293701172 -0.0057818475 - 0.9025557637 940.1674804688 -0.0058145113 - 0.9031156898 942.5922241211 -0.0058501707 - 0.9036740065 945.2136840820 -0.0058847079 - 0.9042308331 946.9141845703 -0.0059162993 - 0.9047861099 949.5163574219 -0.0059496621 - 0.9053398371 952.1009521484 -0.0059821368 - 0.9058920741 952.7794799805 -0.0060108262 - 0.9064427614 955.6166381836 -0.0060440265 - 0.9069918990 957.2745971680 -0.0060727512 - 0.9075394869 959.8202514648 -0.0061029745 - 0.9080855250 962.5498657227 -0.0061317245 - 0.9086300731 963.9840087891 -0.0061596893 - 0.9091730714 966.9700317383 -0.0061887316 - 0.9097144604 967.6096801758 -0.0062143593 - 0.9102543592 970.0733032227 -0.0062402789 - 0.9107927680 972.7461547852 -0.0062660305 - 0.9113295674 974.6398925781 -0.0062926281 - 0.9118648171 976.3792724609 -0.0063151093 - 0.9123985171 977.8354492188 -0.0063381833 - 0.9129307270 979.5992431641 -0.0063605132 - 0.9134613276 982.1041259766 -0.0063854116 - 0.9139904380 984.7095947266 -0.0064073466 - 0.9145179391 987.1243286133 -0.0064294972 - 0.9150438905 987.2255249023 -0.0064473008 - 0.9155683517 989.6204833984 -0.0064683291 - 0.9160912037 992.1800537109 -0.0064876475 - 0.9166125059 995.0238647461 -0.0065078991 - 0.9171323180 994.7716064453 -0.0065214466 - 0.9176505208 997.5940551758 -0.0065404782 - 0.9181671739 999.9367065430 -0.0065584783 - 0.9186822772 999.6652221680 -0.0065705967 - 0.9191957712 1002.2898559570 -0.0065887384 - 0.9197077751 1004.7683715820 -0.0066037839 - 0.9202182293 1005.9127197266 -0.0066156853 - 0.9207270741 1007.2059326172 -0.0066290176 - 0.9212343693 1009.9559326172 -0.0066434420 - 0.9217401147 1011.3050537109 -0.0066555198 - 0.9222443104 1012.3269653320 -0.0066651269 - 0.9227468967 1014.5762939453 -0.0066779531 - 0.9232479334 1016.3615722656 -0.0066882339 - 0.9237474203 1017.0360717773 -0.0066946829 - 0.9242453575 1019.5681152344 -0.0067069754 - 0.9247416854 1021.1365966797 -0.0067126863 - 0.9252364635 1022.8040161133 -0.0067210440 - 0.9257296920 1024.2724609375 -0.0067280917 - 0.9262213707 1024.9930419922 -0.0067332038 - 0.9267114401 1026.4382324219 -0.0067393235 - 0.9271999002 1029.0598144531 -0.0067469426 - 0.9276868701 1029.0275878906 -0.0067485701 - 0.9281722307 1031.2807617188 -0.0067536263 - 0.9286559820 1033.8696289062 -0.0067592179 - 0.9291381836 1034.4018554688 -0.0067599155 - 0.9296188354 1035.1752929688 -0.0067621605 - 0.9300978780 1037.5767822266 -0.0067650666 - 0.9305753708 1038.9282226562 -0.0067669256 - 0.9310512543 1038.8104248047 -0.0067647928 - 0.9315255880 1040.6066894531 -0.0067651556 - 0.9319983721 1042.7597656250 -0.0067659719 - 0.9324695468 1043.3339843750 -0.0067645581 - 0.9329391122 1045.0944824219 -0.0067637516 - 0.9334071279 1046.2156982422 -0.0067612315 - 0.9338735342 1047.9521484375 -0.0067593553 - 0.9343383908 1048.5817871094 -0.0067540747 - 0.9348016381 1050.1677246094 -0.0067525557 - 0.9352632761 1050.5314941406 -0.0067469091 - 0.9357233644 1052.1153564453 -0.0067417421 - 0.9361818433 1052.6756591797 -0.0067373984 - 0.9366387725 1055.1700439453 -0.0067328340 - 0.9370940924 1054.8920898438 -0.0067245783 - 0.9375478625 1056.8934326172 -0.0067198952 - 0.9379999638 1057.5280761719 -0.0067123338 - 0.9384505153 1059.9710693359 -0.0067054625 - 0.9388995171 1058.9011230469 -0.0066938037 - 0.9393468499 1061.2047119141 -0.0066884570 - 0.9397926331 1061.4360351562 -0.0066783652 - 0.9402368069 1061.8944091797 -0.0066673355 - 0.9406794310 1063.4172363281 -0.0066584917 - 0.9411203861 1063.9669189453 -0.0066480632 - 0.9415597916 1066.3186035156 -0.0066387048 - 0.9419975877 1065.7979736328 -0.0066275978 - 0.9424338341 1067.3759765625 -0.0066159819 - 0.9428684115 1068.6975097656 -0.0066034794 - 0.9433014393 1068.2446289062 -0.0065905973 - 0.9437328577 1069.3138427734 -0.0065778894 - 0.9441626668 1070.5959472656 -0.0065649655 - 0.9445908666 1072.1022949219 -0.0065508909 - 0.9450174570 1071.5972900391 -0.0065361359 - 0.9454424977 1071.9912109375 -0.0065217288 - 0.9458658695 1074.2111816406 -0.0065088291 - 0.9462876916 1073.7258300781 -0.0064912848 - 0.9467079043 1074.1165771484 -0.0064760288 - 0.9471264482 1075.4492187500 -0.0064622327 - 0.9475434422 1076.6279296875 -0.0064464021 - 0.9479588270 1076.0854492188 -0.0064274007 - 0.9483726025 1077.4647216797 -0.0064112740 - 0.9487847686 1078.5183105469 -0.0063958643 - 0.9491953254 1077.1243896484 -0.0063759806 - 0.9496042728 1078.4616699219 -0.0063586971 - 0.9500116110 1079.5606689453 -0.0063415710 - 0.9504173398 1080.1885986328 -0.0063242954 - 0.9508213997 1080.5340576172 -0.0063052382 - 0.9512239099 1080.8275146484 -0.0062849028 - 0.9516248107 1081.8746337891 -0.0062663690 - 0.9520241022 1083.1267089844 -0.0062479926 - 0.9524217248 1082.3527832031 -0.0062276665 - 0.9528177977 1082.5903320312 -0.0062067648 - 0.9532122016 1082.8129882812 -0.0061854604 - 0.9536050558 1083.0538330078 -0.0061643044 - 0.9539962411 1083.6436767578 -0.0061434344 - 0.9543858171 1083.7581787109 -0.0061234450 - 0.9547737837 1083.9250488281 -0.0061008157 - 0.9551601410 1084.8819580078 -0.0060819760 - 0.9555448294 1085.0203857422 -0.0060592862 - 0.9559279680 1085.1440429688 -0.0060366807 - 0.9563094378 1084.8208007812 -0.0060141599 - 0.9566892982 1084.9447021484 -0.0059918663 - 0.9570675492 1085.0263671875 -0.0059686340 - 0.9574441314 1085.8852539062 -0.0059449701 - 0.9578191638 1086.3459472656 -0.0059220791 - 0.9581925273 1085.3737792969 -0.0058994726 - 0.9585642815 1086.3822021484 -0.0058773458 - 0.9589343667 1086.3928222656 -0.0058531393 - 0.9593029022 1086.8027343750 -0.0058301575 - 0.9596697688 1085.8286132812 -0.0058026817 - 0.9600349665 1085.7957763672 -0.0057782969 - 0.9603986144 1085.7482910156 -0.0057535213 - 0.9607605934 1087.0424804688 -0.0057334471 - 0.9611209631 1086.0032958984 -0.0057057505 - 0.9614796638 1085.9134521484 -0.0056801983 - 0.9618367553 1086.2309570312 -0.0056560594 - 0.9621922374 1086.1135253906 -0.0056313798 - 0.9625460505 1085.0085449219 -0.0056026783 - 0.9628982544 1085.2860107422 -0.0055781486 - 0.9632488489 1086.0699462891 -0.0055567548 - 0.9635977745 1085.8802490234 -0.0055286307 - 0.9639450908 1085.1551513672 -0.0055031059 - 0.9642907381 1084.1563720703 -0.0054760296 - 0.9646347761 1084.7135009766 -0.0054502850 - 0.9649772048 1084.1156005859 -0.0054225037 - 0.9653179646 1083.6770019531 -0.0053960248 - 0.9656570554 1083.8488769531 -0.0053704213 - 0.9659945369 1082.7502441406 -0.0053446554 - 0.9663304090 1084.2094726562 -0.0053199469 - 0.9666646123 1082.5755615234 -0.0052920235 - 0.9669972062 1082.2253417969 -0.0052636107 - 0.9673281312 1082.3314208984 -0.0052383384 - 0.9676574469 1081.9494628906 -0.0052095102 - 0.9679850936 1081.0610351562 -0.0051835296 - 0.9683110714 1079.8800048828 -0.0051554143 - 0.9686354399 1079.8942871094 -0.0051277364 - 0.9689581990 1079.4884033203 -0.0051012486 - 0.9692792892 1079.4621582031 -0.0050748698 - 0.9695987105 1078.0147705078 -0.0050455290 - 0.9699165225 1078.0152587891 -0.0050197481 - 0.9702326655 1077.5056152344 -0.0049913740 - 0.9705471992 1076.6701660156 -0.0049638557 - 0.9708600640 1075.9678955078 -0.0049363389 - 0.9711712599 1075.1041259766 -0.0049084136 - 0.9714808464 1074.5301513672 -0.0048798723 - 0.9717887640 1074.3951416016 -0.0048516765 - 0.9720950127 1072.8731689453 -0.0048246863 - 0.9723996520 1072.7087402344 -0.0047968710 - 0.9727026224 1071.3145751953 -0.0047686179 - 0.9730039835 1071.1202392578 -0.0047405814 - 0.9733036160 1069.4749755859 -0.0047119427 - 0.9736016989 1068.4973144531 -0.0046837647 - 0.9738980532 1068.2661132812 -0.0046579847 - 0.9741927981 1068.3660888672 -0.0046309694 - 0.9744858742 1067.3483886719 -0.0046034758 - 0.9747772813 1065.6229248047 -0.0045747617 - 0.9750670791 1065.3244628906 -0.0045466060 - 0.9753551483 1064.2641601562 -0.0045190598 - 0.9756416678 1063.4654541016 -0.0044905082 - 0.9759264588 1062.1462402344 -0.0044627395 - 0.9762096405 1061.7879638672 -0.0044346764 - 0.9764910936 1059.2294921875 -0.0044053169 - 0.9767709374 1058.8416748047 -0.0043775714 - 0.9770491719 1058.4392089844 -0.0043495344 - 0.9773256779 1056.5664062500 -0.0043213703 - 0.9776005745 1056.1330566406 -0.0042937845 - 0.9778738022 1054.9460449219 -0.0042667571 - 0.9781453609 1053.1729736328 -0.0042372481 - 0.9784152508 1052.6947021484 -0.0042097769 - 0.9786834717 1051.2230224609 -0.0041821613 - 0.9789500833 1050.2294921875 -0.0041543851 - 0.9792150259 1048.0076904297 -0.0041260915 - 0.9794782400 1047.4704589844 -0.0040988210 - 0.9797398448 1046.4298095703 -0.0040709414 - 0.9799997807 1044.8822021484 -0.0040439512 - 0.9802581072 1043.4647216797 -0.0040150904 - 0.9805147052 1042.8673095703 -0.0039880276 - 0.9807696939 1041.7615966797 -0.0039610090 - 0.9810229540 1039.1915283203 -0.0039325310 - 0.9812746048 1036.9833984375 -0.0039043496 - 0.9815245867 1036.3265380859 -0.0038774994 - 0.9817728400 1035.1573486328 -0.0038508822 - 0.9820194840 1034.4700927734 -0.0038244415 - 0.9822644591 1031.9455566406 -0.0037961602 - 0.9825077653 1030.2696533203 -0.0037681565 - 0.9827494025 1029.5385742188 -0.0037421270 - 0.9829894304 1027.4464111328 -0.0037139303 - 0.9832277298 1026.6845703125 -0.0036878553 - 0.9834643602 1024.9246826172 -0.0036620095 - 0.9836993217 1023.2886352539 -0.0036341797 - 0.9839326143 1021.5256347656 -0.0036069972 - 0.9841642976 1020.6460571289 -0.0035793958 - 0.9843942523 1018.4530029297 -0.0035519227 - 0.9846225381 1016.6159057617 -0.0035264613 - 0.9848492146 1014.7940063477 -0.0034996960 - 0.9850741625 1013.0639648438 -0.0034722653 - 0.9852974415 1012.1680908203 -0.0034469785 - 0.9855190516 1010.4072875977 -0.0034203471 - 0.9857389927 1008.9649658203 -0.0033952894 - 0.9859573245 1005.2332763672 -0.0033669954 - 0.9861739278 1004.2778320312 -0.0033422213 - 0.9863888621 1002.4544677734 -0.0033162944 - 0.9866021276 1002.1761474609 -0.0032906453 - 0.9868137240 999.3698730469 -0.0032630335 - 0.9870236516 997.3682250977 -0.0032390854 - 0.9872318506 995.4832153320 -0.0032128596 - 0.9874384403 994.4390869141 -0.0031889058 - 0.9876433611 991.4934692383 -0.0031595957 - 0.9878465533 989.8912963867 -0.0031356239 - 0.9880481362 986.9552612305 -0.0031105774 - 0.9882479906 984.9020385742 -0.0030850109 - 0.9884461761 983.6222534180 -0.0030596247 - 0.9886426926 982.4882812500 -0.0030357069 - 0.9888375401 980.4786376953 -0.0030107466 - 0.9890307188 976.5176391602 -0.0029846351 - 0.9892222285 975.3400268555 -0.0029615643 - 0.9894120097 973.2851562500 -0.0029368273 - 0.9896001816 971.7326049805 -0.0029104152 - 0.9897866249 969.6455688477 -0.0028855652 - 0.9899713993 967.5433349609 -0.0028613787 - 0.9901545048 964.3566894531 -0.0028375648 - 0.9903359413 962.2246093750 -0.0028138156 - 0.9905156493 960.7649536133 -0.0027891987 - 0.9906937480 958.5256347656 -0.0027656306 - 0.9908701181 956.3477783203 -0.0027419731 - 0.9910448194 954.1542968750 -0.0027185783 - 0.9912178516 950.7775878906 -0.0026937104 - 0.9913892150 949.2364501953 -0.0026696932 - 0.9915588498 946.9960327148 -0.0026466171 - 0.9917268753 943.7995605469 -0.0026222283 - 0.9918931723 942.4014892578 -0.0026006941 - 0.9920578003 940.7959594727 -0.0025776024 - 0.9922206998 936.5630493164 -0.0025535135 - 0.9923819900 934.1335449219 -0.0025296644 - 0.9925415516 933.3523559570 -0.0025079944 - 0.9926994443 930.0664672852 -0.0024842557 - 0.9928556681 927.7037963867 -0.0024623545 - 0.9930101633 923.3959350586 -0.0024390358 - 0.9931629896 922.5537109375 -0.0024180000 - 0.9933141470 920.1456909180 -0.0023965661 - 0.9934636354 916.6642456055 -0.0023716744 - 0.9936114550 915.4594116211 -0.0023497220 - 0.9937575459 912.0708618164 -0.0023269970 - 0.9939019680 909.4892578125 -0.0023074718 - 0.9940447211 907.6735229492 -0.0022858607 - 0.9941857457 904.2412109375 -0.0022633921 - 0.9943251014 901.5976562500 -0.0022410408 - 0.9944627881 898.7998657227 -0.0022184276 - 0.9945988059 896.2550048828 -0.0021977297 - 0.9947330952 893.5847167969 -0.0021786743 - 0.9948657155 890.7407226562 -0.0021566246 - 0.9949966073 888.1512451172 -0.0021363478 - 0.9951258898 885.0546264648 -0.0021135649 - 0.9952534437 883.0938720703 -0.0020930516 - 0.9953793287 879.5301513672 -0.0020719022 - 0.9955034852 877.5374755859 -0.0020516103 - 0.9956259727 874.7655029297 -0.0020334343 - 0.9957467914 871.1589965820 -0.0020126370 - 0.9958659410 868.9730834961 -0.0019911202 - 0.9959833622 865.3361816406 -0.0019706176 - 0.9960991144 863.8475341797 -0.0019513201 - 0.9962131381 860.1828002930 -0.0019311169 - 0.9963254929 857.4296264648 -0.0019121199 - 0.9964361787 853.2366333008 -0.0018902458 - 0.9965451956 850.4523925781 -0.0018715628 - 0.9966524839 847.3760375977 -0.0018516439 - 0.9967581034 845.1528930664 -0.0018334728 - 0.9968619943 842.3252563477 -0.0018149444 - 0.9969642162 839.9409179688 -0.0017947287 - 0.9970647693 836.0863037109 -0.0017769276 - 0.9971635938 832.9339599609 -0.0017573800 - 0.9972607493 830.0465698242 -0.0017396456 - 0.9973562360 827.2969360352 -0.0017189824 - 0.9974499941 824.3800048828 -0.0017013164 - 0.9975420833 821.1668090820 -0.0016823685 - 0.9976324439 817.2227783203 -0.0016652180 - 0.9977211952 813.3436889648 -0.0016468873 - 0.9978081584 811.4351806641 -0.0016278732 - 0.9978935122 807.5277099609 -0.0016099729 - 0.9979771376 805.1560058594 -0.0015926394 - 0.9980590343 801.2203369141 -0.0015748525 - 0.9981392622 798.6419677734 -0.0015560843 - 0.9982178211 794.2863769531 -0.0015390676 - 0.9982947111 791.8520507812 -0.0015220955 - 0.9983698726 787.8602905273 -0.0015047155 - 0.9984433055 784.3008422852 -0.0014858167 - 0.9985151291 781.8048095703 -0.0014697732 - 0.9985851645 778.3961181641 -0.0014524019 - 0.9986535907 775.2609252930 -0.0014363438 - 0.9987202883 771.6365356445 -0.0014178593 - 0.9987853169 767.4725341797 -0.0014024650 - 0.9988486171 764.6195068359 -0.0013856830 - 0.9989102483 761.4265136719 -0.0013703905 - 0.9989701509 757.7374877930 -0.0013522309 - 0.9990283847 754.5146484375 -0.0013369926 - 0.9990848899 751.6062011719 -0.0013207654 - 0.9991397858 748.3560180664 -0.0013056019 - 0.9991928935 744.6026000977 -0.0012879408 - 0.9992443919 739.4168701172 -0.0012726879 - 0.9992941022 737.3601074219 -0.0012578230 - 0.9993422031 733.1472778320 -0.0012423674 - 0.9993885756 730.2352294922 -0.0012258914 - 0.9994332194 725.9941406250 -0.0012107057 - 0.9994762540 723.8804931641 -0.0011962627 - 0.9995175004 719.6130981445 -0.0011812255 - 0.9995571375 714.7331542969 -0.0011649281 - 0.9995950460 711.9719848633 -0.0011512615 - 0.9996312261 708.2683715820 -0.0011360684 - 0.9996657372 704.6384277344 -0.0011208691 - 0.9996985793 700.9046020508 -0.0011059570 - 0.9997296929 698.0912475586 -0.0010926527 - 0.9997590780 694.3296508789 -0.0010780930 - 0.9997868538 688.7401123047 -0.0010628595 - 0.9998128414 684.9270629883 -0.0010482358 - 0.9998372197 681.1639404297 -0.0010345818 - 0.9998598695 678.0225830078 -0.0010196180 - 0.9998807907 674.1870727539 -0.0010056123 - 0.9999000430 670.3865356445 -0.0009922691 - 0.9999176264 667.4190673828 -0.0009789900 - 0.9999334812 662.7263183594 -0.0009643504 - 0.9999476671 660.3739013672 -0.0009516375 - 0.9999601245 654.8786010742 -0.0009387380 - 0.9999709129 650.7311401367 -0.0009239881 - 0.9999799728 647.1010742188 -0.0009115081 - 0.9999873638 643.8017578125 -0.0008985060 - 0.9999930859 639.0227661133 -0.0008845903 - 0.9999970794 635.9360961914 -0.0008720848 - 0.9999994040 632.5969238281 -0.0008593622 - 1.0000000000 628.6639404297 -0.0008462392 - 0.9999988675 624.6436767578 -0.0008334845 - 0.9999961257 620.6854858398 -0.0008214437 - 0.9999916553 616.2871093750 -0.0008084397 - 0.9999854565 611.6468505859 -0.0007963215 - 0.9999775887 608.2297363281 -0.0007842337 - 0.9999679923 604.4512329102 -0.0007728259 - 0.9999567866 600.1043090820 -0.0007593937 - 0.9999437928 596.9592285156 -0.0007485874 - 0.9999291301 592.8287963867 -0.0007364966 - 0.9999127984 587.4361572266 -0.0007236270 - 0.9998947382 583.5889892578 -0.0007126554 - 0.9998750091 580.0811157227 -0.0007012691 - 0.9998536110 575.0751342773 -0.0006887990 - 0.9998304844 571.7552490234 -0.0006777241 - 0.9998056293 567.6429443359 -0.0006669001 - 0.9997791052 563.1604614258 -0.0006544025 - 0.9997509122 559.2337036133 -0.0006438789 - 0.9997209907 554.6499023438 -0.0006332070 - 0.9996894002 549.5607910156 -0.0006213366 - 0.9996560812 546.1555175781 -0.0006107379 - 0.9996210933 541.9737548828 -0.0006004610 - 0.9995844364 537.4022216797 -0.0005884778 - 0.9995460510 533.9539794922 -0.0005780848 - 0.9995059371 529.4716186523 -0.0005671293 - 0.9994642138 525.1209106445 -0.0005563743 - 0.9994207025 521.0760498047 -0.0005466321 - 0.9993755817 517.1090698242 -0.0005354927 - 0.9993287325 512.1659545898 -0.0005254204 - 0.9992801547 509.3151855469 -0.0005158510 - 0.9992299080 504.0753173828 -0.0005050066 - 0.9991779923 499.6443176270 -0.0004947743 - 0.9991243482 496.1498413086 -0.0004867710 - 0.9990690351 491.4168090820 -0.0004757826 - 0.9990119934 486.4008483887 -0.0004661985 - 0.9989532828 483.4727172852 -0.0004570120 - 0.9988929033 478.1527709961 -0.0004466694 - 0.9988307953 473.6429138184 -0.0004369521 - 0.9987669587 469.5268554688 -0.0004267560 - 0.9987015128 465.3151245117 -0.0004179056 - 0.9986343384 459.7667236328 -0.0004084950 - 0.9985654354 455.0725402832 -0.0003989077 - 0.9984948635 451.3598022461 -0.0003898783 - 0.9984226227 446.2350769043 -0.0003808872 - 0.9983486533 442.9862060547 -0.0003720247 - 0.9982730150 438.6993713379 -0.0003634968 - 0.9981957078 432.7804870605 -0.0003536599 - 0.9981166720 428.3066711426 -0.0003454046 - 0.9980359077 423.6538085938 -0.0003364391 - 0.9979535341 419.0205078125 -0.0003273591 - 0.9978694320 415.0422363281 -0.0003189501 - 0.9977836013 409.8237609863 -0.0003105021 - 0.9976961017 406.6260070801 -0.0003020793 - 0.9976069331 402.0876770020 -0.0002941939 - 0.9975160956 397.0551147461 -0.0002848817 - 0.9974235296 391.7894592285 -0.0002766861 - 0.9973292351 388.5946655273 -0.0002689339 - 0.9972333312 382.9999389648 -0.0002601815 - 0.9971356988 379.1716918945 -0.0002525843 - 0.9970363379 375.1126708984 -0.0002446074 - 0.9969353080 370.3062438965 -0.0002364084 - 0.9968326092 365.6834716797 -0.0002290535 - 0.9967282414 360.0263061523 -0.0002206349 - 0.9966221452 356.9871826172 -0.0002135326 - 0.9965143800 352.0183105469 -0.0002056976 - 0.9964048862 347.1504516602 -0.0001978058 - 0.9962937236 342.6069335938 -0.0001904391 - 0.9961808920 339.0686645508 -0.0001832329 - 0.9960663915 332.6597290039 -0.0001758144 - 0.9959501624 327.4213256836 -0.0001675101 - 0.9958322644 323.5494384766 -0.0001608247 - 0.9957126379 319.5655822754 -0.0001539625 - 0.9955913424 312.7876586914 -0.0001461426 - 0.9954683781 308.0420532227 -0.0001394801 - 0.9953436852 303.5783386230 -0.0001315995 - 0.9952173829 298.0516967773 -0.0001252299 - 0.9950892925 293.4446105957 -0.0001178294 - 0.9949595928 288.7713623047 -0.0001109706 - 0.9948281646 283.7102661133 -0.0001044015 - 0.9946950674 278.5704956055 -0.0000975130 - 0.9945603013 273.0263061523 -0.0000907236 - 0.9944238067 269.4262390137 -0.0000839026 - 0.9942856431 264.5899658203 -0.0000777025 - 0.9941458106 259.5043945312 -0.0000707248 - 0.9940043092 254.5398712158 -0.0000643275 - 0.9938610792 250.5085296631 -0.0000582965 - 0.9937161803 246.0390777588 -0.0000511021 - 0.9935696125 241.3827514648 -0.0000453361 - 0.9934213161 237.6224517822 -0.0000387744 - 0.9932714105 233.7762145996 -0.0000331155 - 0.9931197762 229.1180877686 -0.0000269338 - 0.9929664135 226.2864227295 -0.0000212612 - 0.9928114414 221.6070251465 -0.0000151839 - 0.9926547408 218.3866424561 -0.0000088964 - 0.9924963713 215.1292114258 -0.0000032949 - 0.9923363328 211.7977905273 0.0000022936 - 0.9921745658 208.5175018311 0.0000077545 - 0.9920111895 205.2444915771 0.0000137918 - 0.9918460846 202.2110900879 0.0000182905 - 0.9916793108 198.9207000732 0.0000241065 - 0.9915108085 195.7551879883 0.0000291544 - 0.9913406968 192.5476531982 0.0000342559 - 0.9911688566 189.8282012939 0.0000395176 - 0.9909953475 185.0300292969 0.0000449551 - 0.9908201694 182.5677337646 0.0000492194 - 0.9906433225 179.0337524414 0.0000549715 - 0.9904647470 175.1741180420 0.0000595760 - 0.9902845621 169.9669952393 0.0000651199 - 0.9901026487 166.8410949707 0.0000690338 - 0.9899190664 162.8695678711 0.0000745115 - 0.9897338152 157.9987792969 0.0000796168 - 0.9895468354 153.4834442139 0.0000839395 - 0.9893582463 323.1558227539 0.0000941839 - 0.9891679287 330.4733581543 0.0000984693 - 0.9889760017 339.9063720703 0.0001017458 - 0.9887823462 347.9932861328 0.0001063253 - 0.9885870218 355.7341613770 0.0001103450 - 0.9883900285 363.7876586914 0.0001140972 - 0.9881913662 371.5355834961 0.0001179392 - 0.9879909754 379.8537597656 0.0001213833 - 0.9877889752 386.3499755859 0.0001252778 - 0.9875852466 393.7141113281 0.0001294232 - 0.9873799086 401.6681518555 0.0001322826 - 0.9871728420 409.7430725098 0.0001354536 - 0.9869641066 415.5605468750 0.0001397138 - 0.9867537618 424.3188476562 0.0001421770 - 0.9865416884 430.8532714844 0.0001455321 - 0.9863279462 438.6869201660 0.0001484287 - 0.9861125350 445.0352783203 0.0001520491 - 0.9858954549 452.8004760742 0.0001546254 - 0.9856767058 460.0579223633 0.0001575672 - 0.9854562283 466.6887817383 0.0001603628 - 0.9852341413 474.2210388184 0.0001629490 - 0.9850103855 481.5321350098 0.0001650470 - 0.9847849607 487.1619262695 0.0001684933 - 0.9845578671 492.7832641602 0.0001713893 - 0.9843290448 500.0751953125 0.0001737498 - 0.9840986133 507.1486816406 0.0001755927 - 0.9838665128 512.9687500000 0.0001781993 - 0.9836327434 519.1652832031 0.0001805242 - 0.9833972454 526.2534790039 0.0001826946 - 0.9831601381 531.3199462891 0.0001849577 - 0.9829213619 538.2491455078 0.0001873303 - 0.9826809168 542.4556274414 0.0001898998 - 0.9824388027 549.3096313477 0.0001918484 - 0.9821950197 555.1660156250 0.0001938268 - 0.9819495678 561.7099609375 0.0001952101 - 0.9817024469 567.0366210938 0.0001973789 - 0.9814537168 572.7220458984 0.0001992773 - 0.9812032580 577.3217773438 0.0002011487 - 0.9809511304 583.8753662109 0.0002028290 - 0.9806973934 588.7714233398 0.0002043491 - 0.9804419279 595.2107543945 0.0002059518 - 0.9801848531 601.0198974609 0.0002070359 - 0.9799261093 605.4364013672 0.0002087097 - 0.9796656966 611.2814331055 0.0002105041 - 0.9794036150 616.3097534180 0.0002115079 - 0.9791398644 621.4812622070 0.0002130190 - 0.9788744450 625.6769409180 0.0002145320 - 0.9786074162 631.2906494141 0.0002161679 - 0.9783387184 635.3762817383 0.0002175980 - 0.9780683517 641.5602416992 0.0002178315 - 0.9777963161 645.4707031250 0.0002191536 - 0.9775226116 649.9336547852 0.0002208250 - 0.9772472382 653.7986450195 0.0002220966 - 0.9769702554 658.5866088867 0.0002233556 - 0.9766916037 662.7368774414 0.0002239747 - 0.9764112830 666.9753417969 0.0002255008 - 0.9761292934 671.3901977539 0.0002260543 - 0.9758456945 676.0314331055 0.0002272194 - 0.9755603671 679.9582519531 0.0002276873 - 0.9752734303 684.4160766602 0.0002287505 - 0.9749848843 687.4770507812 0.0002301248 - 0.9746946096 692.2113037109 0.0002305574 - 0.9744027257 697.1812133789 0.0002305390 - 0.9741091728 700.5148925781 0.0002316497 - 0.9738140106 703.6585693359 0.0002323120 - 0.9735171199 707.8718872070 0.0002332265 - 0.9732186198 711.0598754883 0.0002340518 - 0.9729185104 714.5583496094 0.0002345029 - 0.9726166725 717.1863403320 0.0002356713 - 0.9723132253 721.5640869141 0.0002359008 - 0.9720081687 724.3643798828 0.0002363547 - 0.9717013836 729.4829101562 0.0002360207 - 0.9713929892 730.9063110352 0.0002372428 - 0.9710829854 735.0669555664 0.0002373698 - 0.9707713127 736.9389648438 0.0002381902 - 0.9704579711 741.8092041016 0.0002378454 - 0.9701429605 743.1157226562 0.0002389985 - 0.9698263407 747.1616821289 0.0002390842 - 0.9695081115 748.7283935547 0.0002397808 - 0.9691881537 753.0219726562 0.0002397553 - 0.9688666463 754.9500732422 0.0002398996 - 0.9685434103 757.4331054688 0.0002406358 - 0.9682185650 759.2574462891 0.0002407122 - 0.9678921103 763.7270507812 0.0002406241 - 0.9675639868 765.5557861328 0.0002406953 - 0.9672342539 768.1913452148 0.0002408037 - 0.9669028521 769.4521484375 0.0002413580 - 0.9665697813 772.4454345703 0.0002414176 - 0.9662351012 774.9506835938 0.0002411878 - 0.9658988118 776.5267944336 0.0002411556 - 0.9655608535 779.4963989258 0.0002412883 - 0.9652212858 780.3748779297 0.0002416366 - 0.9648800492 782.7655029297 0.0002416387 - 0.9645371437 784.9711303711 0.0002410979 - 0.9641926885 786.9161376953 0.0002416178 - 0.9638465047 787.7077026367 0.0002419190 - 0.9634987712 789.7357177734 0.0002416285 - 0.9631493688 790.9120483398 0.0002414851 - 0.9627983570 793.4729003906 0.0002413828 - 0.9624456763 794.5495605469 0.0002412176 - 0.9620913863 796.5382080078 0.0002411091 - 0.9617354274 797.4872436523 0.0002406820 - 0.9613778591 798.8828735352 0.0002409856 - 0.9610186815 800.3962402344 0.0002408237 - 0.9606578946 802.3213500977 0.0002407025 - 0.9602954388 803.0819702148 0.0002402112 - 0.9599313736 804.2758178711 0.0002404708 - 0.9595656395 804.9401245117 0.0002399687 - 0.9591982961 806.6712646484 0.0002397900 - 0.9588293433 807.0671386719 0.0002391665 - 0.9584587812 808.8432617188 0.0002389927 - 0.9580865502 809.3187866211 0.0002384384 - 0.9577127099 810.8575439453 0.0002382285 - 0.9573372602 810.8794555664 0.0002380972 - 0.9569602013 810.6079711914 0.0002386044 - 0.9565814734 812.0417480469 0.0002377793 - 0.9562011957 810.9289550781 0.0002381042 - 0.9558192492 812.5484008789 0.0002370994 - 0.9554356933 813.8457031250 0.0002362403 - 0.9550504684 814.2091674805 0.0002362282 - 0.9546636939 813.9069824219 0.0002360302 - 0.9542752504 814.1780395508 0.0002359865 - 0.9538851976 814.6104125977 0.0002348426 - 0.9534935951 815.1228027344 0.0002347122 - 0.9531002641 814.3012084961 0.0002345685 - 0.9527053833 814.8382568359 0.0002339849 - 0.9523088932 814.4218750000 0.0002337552 - 0.9519107938 814.4165039062 0.0002336572 - 0.9515110254 814.7375488281 0.0002324932 - 0.9511097074 815.4960937500 0.0002318759 - 0.9507067204 814.0463256836 0.0002321462 - 0.9503021836 815.1842651367 0.0002310340 - 0.9498959780 814.3270263672 0.0002308046 - 0.9494882226 812.0437011719 0.0002308362 - 0.9490787983 812.7517700195 0.0002301919 - 0.9486677647 812.7635498047 0.0002289868 - 0.9482551813 811.8558959961 0.0002290323 - 0.9478409290 810.9180297852 0.0002283532 - 0.9474251270 811.4526367188 0.0002276774 - 0.9470076561 809.2384033203 0.0002276275 - 0.9465886354 809.6879272461 0.0002269431 - 0.9461679459 808.6197509766 0.0002260028 - 0.9457457066 807.8681030273 0.0002257987 - 0.9453218579 806.4284667969 0.0002253176 - 0.9448964000 806.4856567383 0.0002245925 - 0.9444693327 805.2483520508 0.0002236336 - 0.9440406561 804.0897827148 0.0002236225 - 0.9436103702 803.7677001953 0.0002223770 - 0.9431785345 801.7930297852 0.0002224541 - 0.9427450895 799.5648193359 0.0002223900 - 0.9423099756 798.1177978516 0.0002214239 - 0.9418733716 798.5703125000 0.0002202001 - 0.9414350986 796.6866455078 0.0002196685 - 0.9409952164 795.3724365234 0.0002191615 - 0.9405537844 793.6862792969 0.0002186654 - 0.9401107430 792.4204101562 0.0002181492 - 0.9396660924 790.2453613281 0.0002175986 - 0.9392198920 789.0960693359 0.0002170836 - 0.9387720823 787.5208129883 0.0002161111 - 0.9383226633 786.8447265625 0.0002151678 - 0.9378716350 783.9569091797 0.0002150230 - 0.9374190569 783.2004394531 0.0002140644 - 0.9369648695 781.4666137695 0.0002130913 - 0.9365090728 778.3961181641 0.0002132673 - 0.9360517263 776.7944946289 0.0002122880 - 0.9355927706 774.9428710938 0.0002113168 - 0.9351322651 773.4222412109 0.0002107651 - 0.9346701503 770.0372924805 0.0002104900 - 0.9342064261 769.2192382812 0.0002095225 - 0.9337411523 765.6432495117 0.0002092754 - 0.9332742691 764.0812988281 0.0002086894 - 0.9328057766 761.6455078125 0.0002081257 - 0.9323357940 760.5570678711 0.0002068699 - 0.9318641424 757.2002563477 0.0002061635 - 0.9313909411 755.5806884766 0.0002055881 - 0.9309161901 751.9030761719 0.0002053025 - 0.9304398298 750.7805175781 0.0002043065 - 0.9299619198 747.5845336914 0.0002036311 - 0.9294824004 745.6140747070 0.0002027255 - 0.9290013313 742.6804809570 0.0002020597 - 0.9285186529 739.9010620117 0.0002014964 - 0.9280344248 737.4061889648 0.0002007555 - 0.9275486469 733.7844848633 0.0002004984 - 0.9270612597 731.8709106445 0.0001991562 - 0.9265722632 728.7588500977 0.0001985098 - 0.9260817766 725.3031005859 0.0001985911 - 0.9255896807 723.2434082031 0.0001969106 - 0.9250960350 720.3654174805 0.0001966123 - 0.9246007800 716.6926269531 0.0001959050 - 0.9241039753 714.5725097656 0.0001951910 - 0.9236056209 711.1343383789 0.0001942758 - 0.9231057167 708.9468383789 0.0001935740 - 0.9226042032 704.5431518555 0.0001932672 - 0.9221011400 701.2609252930 0.0001923246 - 0.9215965271 698.3016357422 0.0001915612 - 0.9210903645 695.5792236328 0.0001902896 - 0.9205825925 692.5823974609 0.0001898957 - 0.9200732708 687.8934936523 0.0001896053 - 0.9195624590 685.7299804688 0.0001885790 - 0.9190499783 681.5705566406 0.0001878859 - 0.9185360074 678.9575195312 0.0001868590 - 0.9180204868 674.7288818359 0.0001861712 - 0.9175033569 671.8364868164 0.0001855256 - 0.9169847369 667.8006591797 0.0001848343 - 0.9164645076 665.0523071289 0.0001837904 - 0.9159427881 660.9515380859 0.0001831017 - 0.9154194593 656.8265380859 0.0001821238 - 0.9148945808 653.7648925781 0.0001817475 - 0.9143681526 649.8439941406 0.0001807493 - 0.9138401747 645.6520996094 0.0001803623 - 0.9133107066 641.6691284180 0.0001793786 - 0.9127796292 637.0525512695 0.0001792781 - 0.9122470021 633.6339111328 0.0001779812 - 0.9117128253 629.8589477539 0.0001772358 - 0.9111771584 625.7451171875 0.0001765688 - 0.9106398821 622.5233154297 0.0001754425 - 0.9101011157 616.8361206055 0.0001754658 - 0.9095607400 614.4511108398 0.0001740280 - 0.9090188742 609.6107177734 0.0001734059 - 0.9084754586 606.2557983398 0.0001726055 - 0.9079304934 601.3539428711 0.0001719915 - 0.9073839784 597.3264160156 0.0001709761 - 0.9068359733 592.4447631836 0.0001705709 - 0.9062863588 588.3604736328 0.0001695557 - 0.9057352543 584.5303955078 0.0001687425 - 0.9051826000 580.0039672852 0.0001678356 - 0.9046284556 575.2015991211 0.0001676738 - 0.9040727019 571.1857910156 0.0001663178 - 0.9035154581 567.7691040039 0.0001652133 - 0.9029567242 562.8900146484 0.0001645625 - 0.9023963809 558.0715942383 0.0001640394 - 0.9018345475 553.7409667969 0.0001631372 - 0.9012711644 549.6095581055 0.0001622875 - 0.9007062912 543.7907104492 0.0001616760 - 0.9001398683 541.2059326172 0.0001601889 - 0.8995718956 535.4606933594 0.0001598827 - 0.8990024328 529.5744628906 0.0001595779 - 0.8984314203 524.6751708984 0.0001590679 - 0.8978589177 520.2518310547 0.0001578486 - 0.8972848654 516.2953491211 0.0001569465 - 0.8967092633 511.2213745117 0.0001559829 - 0.8961321712 506.5225830078 0.0001554187 - 0.8955535889 501.9898071289 0.0001542219 - 0.8949734569 497.0873107910 0.0001533802 - 0.8943918347 492.0621032715 0.0001527036 - 0.8938086629 487.4185791016 0.0001518137 - 0.8932240009 481.1909179688 0.0001512571 - 0.8926377892 476.9288940430 0.0001504660 - 0.8920500875 471.9624328613 0.0001494760 - 0.8914608955 467.2138366699 0.0001485922 - 0.8908701539 461.3984680176 0.0001482604 - 0.8902779222 455.3634033203 0.0001476671 - 0.8896841407 451.1198120117 0.0001465746 - 0.8890889287 446.0312500000 0.0001456131 - 0.8884921670 440.4813842773 0.0001450720 - 0.8878938556 435.2021179199 0.0001444032 - 0.8872941136 429.2780151367 0.0001439130 - 0.8866928220 425.3518676758 0.0001422264 - 0.8860900402 419.7074279785 0.0001416898 - 0.8854857683 414.0575561523 0.0001409451 - 0.8848800063 409.3586730957 0.0001400057 - 0.8842726946 402.7569885254 0.0001397579 - 0.8836638927 397.6785583496 0.0001388865 - 0.8830536008 392.9578552246 0.0001375517 - 0.8824418187 387.8351745605 0.0001366768 - 0.8818285465 381.1425476074 0.0001364382 - 0.8812137842 375.9752197266 0.0001355730 - 0.8805975318 369.5781555176 0.0001352984 - 0.8799797893 365.3020324707 0.0001337353 - 0.8793605566 358.5202026367 0.0001335166 - 0.8787397742 352.1834716797 0.0001330017 - 0.8781175613 348.7494201660 0.0001312163 - 0.8774938583 341.9004821777 0.0001310184 - 0.8768686056 336.9268493652 0.0001300898 - 0.8762419224 331.3204040527 0.0001291470 - 0.8756137490 325.7489013672 0.0001283199 - 0.8749840856 319.8393249512 0.0001277624 - 0.8743529320 314.0545349121 0.0001268975 - 0.8737202883 308.2197265625 0.0001261095 - 0.8730862141 303.3858947754 0.0001248226 - 0.8724505901 296.0838623047 0.0001249666 - 0.8718135357 291.0595703125 0.0001238452 - 0.8711749911 284.3022766113 0.0001233606 - 0.8705349565 279.0466918945 0.0001223346 - 0.8698934913 272.6127014160 0.0001217995 - 0.8692504764 266.8219299316 0.0001210098 - 0.8686060309 261.0369873047 0.0001201756 - 0.8679600954 255.5674591064 0.0001193339 - 0.8673127294 249.7500305176 0.0001185215 - 0.8666638732 243.2502136230 0.0001181132 - 0.8660135269 236.7107849121 0.0001176350 - 0.8653617501 231.8509521484 0.0001164995 - 0.8647084236 225.3713531494 0.0001158111 - 0.8640537262 218.7790527344 0.0001153551 - 0.8633975387 213.2463836670 0.0001146176 - 0.8627398610 206.7112426758 0.0001139750 - 0.8620807528 200.5198669434 0.0001135846 - 0.8614201546 193.9496917725 0.0001129558 - 0.8607580662 188.6005706787 0.0001118691 - 0.8600946069 182.1227111816 0.0001115997 - 0.8594295979 176.3573608398 0.0001105950 - 0.8587632179 170.0125122070 0.0001101625 - 0.8580952883 162.8282165527 0.0001100623 - 0.8574259877 156.5353393555 0.0001094586 - 0.8567551970 151.4680480957 0.0001083538 - 0.8560829163 145.8458862305 0.0001074675 - 0.8554092646 138.4218750000 0.0001076214 - 0.8547341228 132.0627746582 0.0001070999 - 0.8540574908 126.1302185059 0.0001062879 - 0.8533794880 119.7411956787 0.0001057981 - 0.8526999950 114.5809097290 0.0001047717 - 0.8520190716 106.9292449951 0.0001051744 - 0.8513366580 100.2351684570 0.0001047534 - 0.8506528735 94.1792678833 0.0001042527 - 0.8499675989 87.9738464355 0.0001037638 - 0.8492808938 81.6170272827 0.0001034628 - 0.8485927582 75.9189682007 0.0001024930 - 0.8479031920 68.8214797974 0.0001025622 - 0.8472121358 62.3175964355 0.0001025644 - 0.8465197086 55.1931457520 0.0001026856 - 0.8458257914 48.4504241943 0.0001022787 - 0.8451305032 43.4059371948 0.0001015975 - 0.8444337249 37.0859069824 0.0001013137 - 0.8437355161 29.8104019165 0.0001015395 - 0.8430359364 23.5162506104 0.0001011809 - 0.8423348665 17.4432983398 0.0001010851 - 0.8416323662 10.0460128784 0.0001012375 - 0.8409284949 3.2292251587 0.0001015276 - 0.8402231336 -2.0340499878 0.0001010302 - 0.8395164013 -9.3251266479 0.0001013508 - 0.8388082385 -15.3368682861 0.0001012396 - 0.8380986452 -23.1362457275 0.0001020414 - 0.8373876214 -27.9790191650 0.0001010594 - 0.8366751671 -34.8214874268 0.0001014852 - 0.8359612823 -41.9338531494 0.0001019834 - 0.8352460265 -48.8007202148 0.0001024999 - 0.8345293403 -55.0948486328 0.0001027255 - 0.8338112235 -62.0886993408 0.0001034409 - 0.8330916762 -68.7132568359 0.0001039713 - 0.8323707581 -75.1529083252 0.0001040550 - 0.8316484094 -81.0977630615 0.0001044852 - 0.8309246898 -89.0711212158 0.0001057974 - 0.8301994801 -94.7609558105 0.0001060974 - 0.8294729590 -102.7813110352 0.0001076086 - 0.8287449479 -108.5059051514 0.0001077970 - 0.8280155659 -115.2953186035 0.0001089987 - 0.8272848129 -121.5086975098 0.0001096385 - 0.8265525699 -127.6557159424 0.0001104582 - 0.8258190155 -134.8654479980 0.0001117227 - 0.8250840306 -141.6912689209 0.0001132596 - 0.8243476152 -147.5317840576 0.0001138644 - 0.8236098289 -155.1181030273 0.0001158801 - 0.8228706717 -161.9216156006 0.0001173559 - 0.8221300840 -168.5866699219 0.0001187616 - 0.8213881254 -174.1868591309 0.0001200123 - 0.8206447363 -183.2534027100 0.0001229797 - 0.8198999763 -188.6493225098 0.0001240562 - 0.8191538453 -196.3089599609 0.0001265861 - 0.8184062839 -201.7131500244 0.0001277942 - 0.8176573515 -209.9105224609 0.0001309082 - 0.8169070482 -214.5870666504 0.0001320709 - 0.8161553741 -222.2724609375 0.0001350435 - 0.8154022694 -229.1499633789 0.0001373560 - 0.8146478534 -235.9329833984 0.0001403805 - 0.8138920069 -242.8220825195 0.0001429031 - 0.8131347895 -249.6183013916 0.0001462036 - 0.8123762012 -255.3045349121 0.0001485309 - 0.8116161823 -263.9960021973 0.0001528212 - 0.8108548522 -269.0275573730 0.0001551603 - 0.8100920916 -277.2694091797 0.0001596477 - 0.8093280196 -283.7312316895 0.0001629194 - 0.8085625172 -290.5634765625 0.0001668801 - 0.8077957034 -296.2751464844 0.0001702220 - 0.8070274591 -303.5671997070 0.0001746668 - 0.8062579036 -310.5737915039 0.0001793300 - 0.8054869771 -317.8762207031 0.0001839488 - 0.8047146201 -323.8940734863 0.0001881029 - 0.8039409518 -329.9571228027 0.0001925898 - 0.8031659126 -337.7600097656 0.0001984440 - 0.8023895025 -344.2770385742 0.0002033446 - 0.8016117215 -350.3376159668 0.0002084078 - 0.8008326292 -356.9255371094 0.0002142367 - 0.8000521660 -364.2354736328 0.0002203052 - 0.7992703319 -371.2589111328 0.0002265534 - 0.7984871268 -378.1189880371 0.0002330097 - 0.7977025509 -383.7235107422 0.0002388805 - 0.7969166636 -392.5320434570 0.0002470829 - 0.7961294055 -398.6034545898 0.0002537197 - 0.7953408360 -405.4739990234 0.0002610980 - 0.7945508957 -411.9996643066 0.0002684816 - 0.7937595844 -417.6674804688 0.0002759589 - 0.7929669619 -424.7138061523 0.0002840938 - 0.7921729684 -432.0838928223 0.0002932455 - 0.7913776040 -439.1351928711 0.0003020567 - 0.7905809283 -445.5269165039 0.0003109362 - 0.7897829413 -451.6297607422 0.0003201079 - 0.7889835835 -458.6877441406 0.0003297062 - 0.7881829143 -465.0813293457 0.0003394273 - 0.7873808742 -471.6485900879 0.0003497165 - 0.7865775228 -479.0031127930 0.0003608681 - 0.7857728004 -485.5712890625 0.0003715056 - 0.7849668264 -492.9253234863 0.0003834998 - 0.7841594219 -499.4942626953 0.0003949911 - 0.7833507657 -506.4350585938 0.0004075244 - 0.7825407386 -512.5546264648 0.0004198399 - 0.7817294002 -519.9082641602 0.0004330294 - 0.7809167504 -525.6888427734 0.0004458104 - 0.7801027298 -532.5355834961 0.0004597207 - 0.7792874575 -539.1060791016 0.0004735037 - 0.7784708142 -544.1853027344 0.0004868149 - 0.7776528597 -551.0841064453 0.0005020593 - 0.7768335938 -557.6546020508 0.0005174418 - 0.7760130167 -565.4467163086 0.0005341391 - 0.7751911283 -571.5043945312 0.0005499497 - 0.7743678689 -578.3989257812 0.0005674620 - 0.7735433578 -584.4232177734 0.0005840461 - 0.7727175355 -591.2489624023 0.0006017081 - 0.7718903422 -597.3674316406 0.0006202068 - 0.7710618973 -605.1423339844 0.0006393783 - 0.7702321410 -610.7410278320 0.0006584181 - 0.7694010735 -617.5228271484 0.0006781161 - 0.7685686946 -624.5913696289 0.0006992829 - 0.7677350044 -630.1112670898 0.0007194734 - 0.7669000030 -636.9578857422 0.0007411648 - 0.7660637498 -643.4226074219 0.0007629981 - 0.7652261257 -649.7752685547 0.0007857438 - 0.7643872499 -656.7576904297 0.0008093794 - 0.7635470629 -663.0672607422 0.0008333452 - 0.7627056241 -669.5151367188 0.0008579933 - 0.7618628740 -675.8155517578 0.0008832641 - 0.7610188127 -681.3910522461 0.0009083938 - 0.7601734400 -689.0158691406 0.0009352637 - 0.7593268156 -695.3045654297 0.0009624581 - 0.7584788799 -701.8199462891 0.0009905844 - 0.7576296926 -708.1016235352 0.0010187174 - 0.7567791939 -714.9293823242 0.0010480857 - 0.7559274435 -721.2009887695 0.0010778576 - 0.7550743818 -727.7023925781 0.0011087497 - 0.7542200089 -733.7973022461 0.0011394859 - 0.7533644438 -739.7502441406 0.0011718727 - 0.7525075078 -745.1530151367 0.0012028001 - 0.7516493797 -752.7926025391 0.0012377199 - 0.7507899404 -757.7400512695 0.0012717015 - 0.7499291897 -764.9687500000 0.0013064968 - 0.7490671873 -771.2137451172 0.0013426611 - 0.7482039332 -777.8852539062 0.0013795876 - 0.7473394275 -784.5750732422 0.0014170692 - 0.7464736104 -790.2446289062 0.0014554496 - 0.7456066012 -797.0934448242 0.0014949508 - 0.7447382808 -801.8104248047 0.0015334686 - 0.7438686490 -809.3908691406 0.0015750416 - 0.7429978251 -815.2288818359 0.0016160280 - 0.7421256900 -820.4233398438 0.0016580396 - 0.7412523627 -827.5947265625 0.0017014609 - 0.7403777242 -833.5979003906 0.0017454375 - 0.7395018339 -838.4726562500 0.0017891943 - 0.7386247516 -844.8981933594 0.0018352417 - 0.7377463579 -852.5484619141 0.0018838504 - 0.7368667126 -857.7819824219 0.0019299036 - 0.7359858155 -863.7427978516 0.0019785473 - 0.7351037264 -869.3038330078 0.0020270990 - 0.7342203259 -876.3642578125 0.0020786843 - 0.7333356738 -881.5645751953 0.0021289513 - 0.7324498296 -887.0969238281 0.0021805691 - 0.7315627337 -893.9750976562 0.0022341609 - 0.7306743860 -899.1520385742 0.0022874991 - 0.7297847867 -905.3868408203 0.0023409617 - 0.7288939953 -911.1016235352 0.0023969938 - 0.7280018926 -918.2467651367 0.0024536918 - 0.7271085978 -922.9492797852 0.0025108857 - 0.7262141109 -928.9212646484 0.0025699874 - 0.7253183722 -934.6651000977 0.0026285304 - 0.7244213820 -940.7110595703 0.0026884808 - 0.7235231400 -946.4329223633 0.0027491995 - 0.7226237059 -952.0223999023 0.0028104095 - 0.7217230201 -957.1127929688 0.0028727893 - 0.7208211422 -963.6459960938 0.0029374931 - 0.7199180126 -969.0645751953 0.0030011998 - 0.7190136909 -974.7326660156 0.0030658911 - 0.7181081176 -980.2766723633 0.0031324401 - 0.7172013521 -986.6992187500 0.0031993489 - 0.7162933946 -992.1447143555 0.0032682733 - 0.7153841853 -997.9776611328 0.0033370014 - 0.7144737840 -1003.6109619141 0.0034072320 - 0.7135621309 -1008.3431396484 0.0034747934 - 0.7126493454 -1014.5413208008 0.0035475038 - 0.7117353082 -1020.5888061523 0.0036197454 - 0.7108200192 -1026.0549316406 0.0036934707 - 0.7099035978 -1031.9388427734 0.0037669428 - 0.7089859247 -1036.3880615234 0.0038411315 - 0.7080670595 -1043.0983886719 0.0039176685 - 0.7071470022 -1047.7647705078 0.0039918874 - 0.7062257528 -1052.8875732422 0.0040682866 - 0.7053033113 -1058.9980468750 0.0041452339 - 0.7043796182 -1064.0958251953 0.0042230138 - 0.7034547925 -1069.4425048828 0.0043033846 - 0.7025287747 -1074.5146484375 0.0043811058 - 0.7016015053 -1079.5745849609 0.0044609513 - 0.7006731033 -1085.0249023438 0.0045402795 - 0.6997435093 -1090.4052734375 0.0046247556 - 0.6988127232 -1095.8302001953 0.0047057709 - 0.6978807449 -1100.8383789062 0.0047875075 - 0.6969475746 -1105.8337402344 0.0048699393 - 0.6960132122 -1111.3895263672 0.0049536419 - 0.6950777173 -1116.3579101562 0.0050380044 - 0.6941409707 -1122.0212402344 0.0051215012 - 0.6932030916 -1127.0098876953 0.0052086916 - 0.6922640800 -1132.2387695312 0.0052939444 - 0.6913238168 -1135.9470214844 0.0053775227 - 0.6903824210 -1141.7596435547 0.0054632914 - 0.6894398332 -1147.7745361328 0.0055516297 - 0.6884961128 -1151.6619873047 0.0056380974 - 0.6875512004 -1156.8140869141 0.0057239849 - 0.6866051555 -1161.7884521484 0.0058126347 - 0.6856579185 -1166.9089355469 0.0059003090 - 0.6847094893 -1172.4228515625 0.0059874700 - 0.6837599277 -1176.6712646484 0.0060756700 - 0.6828092337 -1181.7458496094 0.0061639738 - 0.6818573475 -1185.7891845703 0.0062527987 - 0.6809043288 -1190.8322753906 0.0063400958 - 0.6799501181 -1195.9326171875 0.0064307894 - 0.6789947748 -1200.9965820312 0.0065182019 - 0.6780382991 -1204.9270019531 0.0066069923 - 0.6770806909 -1210.4600830078 0.0066961129 - 0.6761218905 -1214.9987792969 0.0067838244 - 0.6751619577 -1218.3149414062 0.0068723005 - 0.6742008328 -1225.0043945312 0.0069624949 - 0.6732386351 -1228.2352294922 0.0070506227 - 0.6722753048 -1233.1733398438 0.0071367188 - 0.6713107824 -1237.5106201172 0.0072265500 - 0.6703451276 -1241.5913085938 0.0073150084 - 0.6693783402 -1248.2521972656 0.0074030636 - 0.6684104204 -1251.4091796875 0.0074903443 - 0.6674413681 -1254.8056640625 0.0075759441 - 0.6664712429 -1261.4123535156 0.0076649650 - 0.6654999256 -1264.1337890625 0.0077494290 - 0.6645274758 -1268.1441650391 0.0078348517 - 0.6635538936 -1273.2518310547 0.0079227183 - 0.6625792384 -1277.3183593750 0.0080087464 - 0.6616033912 -1282.4121093750 0.0080949692 - 0.6606264710 -1285.4670410156 0.0081757735 - 0.6596484184 -1289.6243896484 0.0082605276 - 0.6586692333 -1294.7685546875 0.0083448980 - 0.6576889753 -1298.8909912109 0.0084283948 - 0.6567075849 -1302.3422851562 0.0085105728 - 0.6557250619 -1306.4357910156 0.0085910698 - 0.6547414064 -1310.5056152344 0.0086722691 - 0.6537566781 -1315.5585937500 0.0087536164 - 0.6527708173 -1318.9398193359 0.0088327145 - 0.6517838836 -1323.1921386719 0.0089128781 - 0.6507958174 -1327.6118164062 0.0089916456 - 0.6498066783 -1330.9377441406 0.0090684611 - 0.6488164067 -1334.2512207031 0.0091451500 - 0.6478250027 -1338.1882324219 0.0092201289 - 0.6468325853 -1342.6906738281 0.0092966724 - 0.6458390355 -1346.1871337891 0.0093722045 - 0.6448443532 -1350.9592285156 0.0094467355 - 0.6438485980 -1354.1728515625 0.0095191179 - 0.6428517699 -1358.0100097656 0.0095895743 - 0.6418538690 -1361.4163818359 0.0096604312 - 0.6408548355 -1364.5717773438 0.0097294413 - 0.6398547292 -1369.4987792969 0.0098018488 - 0.6388535500 -1371.9497070312 0.0098677948 - 0.6378512383 -1376.8264160156 0.0099374447 - 0.6368479133 -1380.3442382812 0.0100024119 - 0.6358434558 -1383.6317138672 0.0100680180 - 0.6348379850 -1386.6724853516 0.0101312995 - 0.6338313818 -1391.4324951172 0.0101956520 - 0.6328237057 -1394.0209960938 0.0102574546 - 0.6318150163 -1395.3278808594 0.0103151202 - 0.6308051944 -1400.9630126953 0.0103794858 - 0.6297942996 -1403.2297363281 0.0104363784 - 0.6287823915 -1406.3797607422 0.0104946699 - 0.6277693510 -1410.3747558594 0.0105518792 - 0.6267552972 -1413.4848632812 0.0106079755 - 0.6257401705 -1416.8117675781 0.0106633306 - 0.6247239709 -1420.7055664062 0.0107163712 - 0.6237066984 -1422.3100585938 0.0107670026 - 0.6226884127 -1425.9609375000 0.0108181313 - 0.6216689944 -1429.2061767578 0.0108694267 - 0.6206486225 -1433.3405761719 0.0109215211 - 0.6196271181 -1435.3347167969 0.0109658623 - 0.6186046004 -1438.4299316406 0.0110143879 - 0.6175810099 -1440.8171386719 0.0110571329 - 0.6165564060 -1444.6203613281 0.0111034308 - 0.6155307293 -1447.9654541016 0.0111482413 - 0.6145040393 -1449.7871093750 0.0111885387 - 0.6134762764 -1453.7042236328 0.0112308729 - 0.6124475002 -1456.9499511719 0.0112712812 - 0.6114176512 -1459.9235839844 0.0113095948 - 0.6103867888 -1460.9997558594 0.0113443919 - 0.6093548536 -1464.2183837891 0.0113823805 - 0.6083219647 -1466.5026855469 0.0114172306 - 0.6072880030 -1469.8714599609 0.0114504714 - 0.6062529683 -1472.1110839844 0.0114832846 - 0.6052169800 -1475.2456054688 0.0115166334 - 0.6041799188 -1477.3625488281 0.0115474481 - 0.6031418443 -1481.1722412109 0.0115762316 - 0.6021027565 -1483.2452392578 0.0116048958 - 0.6010625958 -1484.6745605469 0.0116302948 - 0.6000214815 -1488.1697998047 0.0116554536 - 0.5989793539 -1489.2586669922 0.0116789741 - 0.5979361534 -1492.2435302734 0.0117046796 - 0.5968919992 -1494.9548339844 0.0117260711 - 0.5958467722 -1497.1391601562 0.0117469504 - 0.5948005915 -1499.0620117188 0.0117674815 - 0.5937533379 -1500.9248046875 0.0117854858 - 0.5927051306 -1503.8155517578 0.0118034147 - 0.5916559100 -1505.0368652344 0.0118195415 - 0.5906056762 -1507.4645996094 0.0118359048 - 0.5895544291 -1510.5690917969 0.0118502844 - 0.5885022283 -1510.7241210938 0.0118613802 - 0.5874490142 -1515.2448730469 0.0118783107 - 0.5863947868 -1516.4313964844 0.0118878661 - 0.5853395462 -1518.3615722656 0.0118978685 - 0.5842833519 -1520.8018798828 0.0119068343 - 0.5832261443 -1522.6835937500 0.0119151594 - 0.5821679831 -1523.6274414062 0.0119216572 - 0.5811088085 -1526.1195068359 0.0119264545 - 0.5800486207 -1528.2526855469 0.0119334683 - 0.5789874792 -1529.1290283203 0.0119364560 - 0.5779253244 -1531.9614257812 0.0119405314 - 0.5768622160 -1533.2802734375 0.0119410437 - 0.5757981539 -1534.5560302734 0.0119416071 - 0.5747330785 -1536.2456054688 0.0119423764 - 0.5736670494 -1537.8292236328 0.0119384192 - 0.5726000667 -1539.4046630859 0.0119361896 - 0.5715320706 -1541.3543701172 0.0119357826 - 0.5704631209 -1542.7506103516 0.0119311269 - 0.5693932176 -1543.5263671875 0.0119248200 - 0.5683223605 -1545.5366210938 0.0119201746 - 0.5672504902 -1546.2626953125 0.0119120413 - 0.5661776662 -1548.7313232422 0.0119051468 - 0.5651039481 -1548.4731445312 0.0118940677 - 0.5640292168 -1550.9774169922 0.0118868500 - 0.5629535317 -1552.5114746094 0.0118764993 - 0.5618768930 -1553.0358886719 0.0118640698 - 0.5607993007 -1553.9595947266 0.0118519915 - 0.5597207546 -1555.1914062500 0.0118371043 - 0.5586412549 -1556.8620605469 0.0118270935 - 0.5575608611 -1557.4819335938 0.0118105877 - 0.5564794540 -1558.3122558594 0.0117945019 - 0.5553971529 -1560.2619628906 0.0117774410 - 0.5543138981 -1560.8466796875 0.0117625035 - 0.5532296896 -1562.3546142578 0.0117453076 - 0.5521445274 -1563.7514648438 0.0117262928 - 0.5510584712 -1564.3446044922 0.0117070135 - 0.5499714613 -1564.7802734375 0.0116855297 - 0.5488834977 -1565.4436035156 0.0116651542 - 0.5477946401 -1565.4339599609 0.0116417324 - 0.5467048287 -1566.8692626953 0.0116211921 - 0.5456140637 -1566.8143310547 0.0115949102 - 0.5445224047 -1567.6628417969 0.0115718013 - 0.5434298515 -1569.0709228516 0.0115496200 - 0.5423363447 -1569.6889648438 0.0115245217 - 0.5412419438 -1570.2492675781 0.0114977509 - 0.5401465893 -1570.9881591797 0.0114714084 - 0.5390503407 -1571.4001464844 0.0114439521 - 0.5379531980 -1571.0678710938 0.0114156399 - 0.5368551016 -1572.9114990234 0.0113887917 - 0.5357561111 -1573.0029296875 0.0113588832 - 0.5346562266 -1572.4613037109 0.0113292783 - 0.5335553885 -1572.8771972656 0.0112991938 - 0.5324537158 -1573.8515625000 0.0112678353 - 0.5313510895 -1574.9409179688 0.0112395268 - 0.5302475691 -1573.5712890625 0.0112049039 - 0.5291431546 -1574.0792236328 0.0111711938 - 0.5280378461 -1575.0927734375 0.0111408336 - 0.5269316435 -1574.5920410156 0.0111066960 - 0.5258245468 -1572.9331054688 0.0110689681 - 0.5247165561 -1573.6320800781 0.0110362154 - 0.5236076713 -1574.6230468750 0.0110018458 - 0.5224978924 -1574.0175781250 0.0109652802 - 0.5213872790 -1574.1151123047 0.0109312572 - 0.5202757120 -1573.8281250000 0.0108941793 - 0.5191633105 -1573.9440917969 0.0108569805 - 0.5180500150 -1574.0329589844 0.0108190607 - 0.5169358253 -1574.5438232422 0.0107826572 - 0.5158208013 -1573.5926513672 0.0107421521 - 0.5147048831 -1572.6457519531 0.0107033160 - 0.5135880709 -1572.6254882812 0.0106631424 - 0.5124703646 -1572.2307128906 0.0106273964 - 0.5113518238 -1572.1572265625 0.0105871223 - 0.5102324486 -1572.0563964844 0.0105469543 - 0.5091121793 -1570.7819824219 0.0105037512 - 0.5079910159 -1570.2977294922 0.0104636056 - 0.5068690181 -1570.1136474609 0.0104223834 - 0.5057461858 -1570.3099365234 0.0103812935 - 0.5046224594 -1569.0895996094 0.0103374608 - 0.5034978986 -1567.5888671875 0.0102947615 - 0.5023725033 -1567.2445068359 0.0102543496 - 0.5012462139 -1566.1419677734 0.0102097364 - 0.5001190901 -1564.8125000000 0.0101657882 - 0.4989911318 -1566.1391601562 0.0101235928 - 0.4978623092 -1564.9521484375 0.0100786528 - 0.4967326522 -1564.5225830078 0.0100347837 - 0.4956021309 -1561.2937011719 0.0099901380 - 0.4944708049 -1562.5083007812 0.0099474741 - 0.4933386147 -1561.2087402344 0.0099005401 - 0.4922055900 -1558.9003906250 0.0098530026 - 0.4910717309 -1558.3344726562 0.0098093729 - 0.4899370670 -1558.6448974609 0.0097631654 - 0.4888015389 -1556.2520751953 0.0097150272 - 0.4876652062 -1554.6054687500 0.0096731102 - 0.4865280092 -1554.3430175781 0.0096257851 - 0.4853900373 -1552.3533935547 0.0095781367 - 0.4842512012 -1551.6044921875 0.0095316311 - 0.4831115603 -1551.2768554688 0.0094870981 - 0.4819711149 -1549.4926757812 0.0094364416 - 0.4808298349 -1548.7972412109 0.0093910713 - 0.4796877205 -1546.1816406250 0.0093412697 - 0.4785448313 -1544.3221435547 0.0092941448 - 0.4774011075 -1543.0407714844 0.0092488993 - 0.4762565792 -1541.5898437500 0.0092001054 - 0.4751112461 -1541.0478515625 0.0091522532 - 0.4739651084 -1538.2930908203 0.0091031604 - 0.4728181660 -1537.6959228516 0.0090545649 - 0.4716704190 -1535.3572998047 0.0090063084 - 0.4705218673 -1534.2604980469 0.0089579970 - 0.4693725407 -1532.6040039062 0.0089085912 - 0.4682224095 -1530.6835937500 0.0088603068 - 0.4670714736 -1528.0039062500 0.0088103991 - 0.4659197628 -1526.8979492188 0.0087613026 - 0.4647672474 -1523.9187011719 0.0087114945 - 0.4636139274 -1523.0983886719 0.0086637279 - 0.4624598324 -1520.8253173828 0.0086136991 - 0.4613049626 -1519.6508789062 0.0085666226 - 0.4601493180 -1516.5087890625 0.0085143950 - 0.4589928985 -1515.5765380859 0.0084662577 - 0.4578356743 -1513.6447753906 0.0084160902 - 0.4566776752 -1511.0871582031 0.0083674202 - 0.4555189312 -1509.0998535156 0.0083178943 - 0.4543593824 -1506.7814941406 0.0082678469 - 0.4531990886 -1504.7390136719 0.0082180006 - 0.4520380199 -1504.0924072266 0.0081715714 - 0.4508761764 -1500.7139892578 0.0081190169 - 0.4497135580 -1497.6147460938 0.0080704419 - 0.4485501945 -1494.8627929688 0.0080209533 - 0.4473860860 -1492.2170410156 0.0079711061 - 0.4462212026 -1490.6052246094 0.0079230908 - 0.4450555444 -1487.5493164062 0.0078716306 - 0.4438891411 -1484.8165283203 0.0078217303 - 0.4427219927 -1482.6726074219 0.0077721751 - 0.4415540993 -1480.7973632812 0.0077247014 - 0.4403854609 -1477.6290283203 0.0076734452 - 0.4392160773 -1474.9047851562 0.0076221679 - 0.4380459189 -1472.5039062500 0.0075729769 - 0.4368750453 -1469.2506103516 0.0075218384 - 0.4357034266 -1467.3713378906 0.0074747237 - 0.4345310628 -1464.8892822266 0.0074258284 - 0.4333579540 -1461.0715332031 0.0073755165 - 0.4321841300 -1459.4089355469 0.0073267464 - 0.4310095608 -1456.0144042969 0.0072766668 - 0.4298342764 -1453.0227050781 0.0072280872 - 0.4286582470 -1451.3677978516 0.0071813245 - 0.4274814725 -1447.3704833984 0.0071294559 - 0.4263040125 -1443.8630371094 0.0070798039 - 0.4251258075 -1441.2917480469 0.0070314701 - 0.4239468873 -1438.1529541016 0.0069839829 - 0.4227672517 -1435.2934570312 0.0069339429 - 0.4215869009 -1431.6748046875 0.0068846927 - 0.4204058349 -1428.9901123047 0.0068378840 - 0.4192240536 -1425.6929931641 0.0067883739 - 0.4180415571 -1422.2215576172 0.0067385496 - 0.4168583453 -1418.4892578125 0.0066897292 - 0.4156744480 -1415.6896972656 0.0066436413 - 0.4144898057 -1411.9023437500 0.0065955506 - 0.4133045077 -1409.2250976562 0.0065481621 - 0.4121184945 -1405.3320312500 0.0064978972 - 0.4109317660 -1401.4604492188 0.0064505571 - 0.4097443521 -1399.2415771484 0.0064039310 - 0.4085562527 -1395.3149414062 0.0063565667 - 0.4073674381 -1391.7683105469 0.0063111940 - 0.4061779678 -1387.6600341797 0.0062617138 - 0.4049877822 -1383.5919189453 0.0062128878 - 0.4037969112 -1380.5380859375 0.0061651673 - 0.4026053548 -1378.1448974609 0.0061197653 - 0.4014131129 -1374.4532470703 0.0060750591 - 0.4002202153 -1370.2695312500 0.0060270103 - 0.3990266025 -1365.9846191406 0.0059782732 - 0.3978323340 -1361.8076171875 0.0059323669 - 0.3966374099 -1358.3154296875 0.0058862660 - 0.3954418004 -1355.0377197266 0.0058429539 - 0.3942455053 -1350.9616699219 0.0057946024 - 0.3930485547 -1346.6733398438 0.0057496554 - 0.3918509185 -1343.0653076172 0.0057047587 - 0.3906526268 -1338.3902587891 0.0056581227 - 0.3894536793 -1334.6525878906 0.0056106858 - 0.3882540762 -1330.6439208984 0.0055686757 - 0.3870538175 -1326.0668945312 0.0055220854 - 0.3858529031 -1321.6140136719 0.0054786359 - 0.3846513033 -1317.8870849609 0.0054291813 - 0.3834490776 -1314.3291015625 0.0053877179 - 0.3822461963 -1310.8768310547 0.0053458265 - 0.3810426891 -1305.3703613281 0.0052987710 - 0.3798384964 -1302.0091552734 0.0052558067 - 0.3786336780 -1296.5313720703 0.0052113310 - 0.3774282336 -1292.5841064453 0.0051681772 - 0.3762221336 -1288.0336914062 0.0051235538 - 0.3750153780 -1283.3327636719 0.0050817323 - 0.3738080263 -1278.4362792969 0.0050378051 - 0.3726000190 -1275.1160888672 0.0049934443 - 0.3713913858 -1270.1627197266 0.0049493639 - 0.3701820970 -1266.0456542969 0.0049075349 - 0.3689722121 -1260.6168212891 0.0048649930 - 0.3677617013 -1256.4420166016 0.0048239175 - 0.3665505350 -1251.9155273438 0.0047812127 - 0.3653387725 -1246.8977050781 0.0047388682 - 0.3641263843 -1241.7718505859 0.0046968539 - 0.3629133999 -1237.4855957031 0.0046564117 - 0.3616997600 -1232.8664550781 0.0046139844 - 0.3604855239 -1228.2019042969 0.0045723384 - 0.3592706919 -1223.8312988281 0.0045324606 - 0.3580552340 -1218.4537353516 0.0044894191 - 0.3568391800 -1213.3461914062 0.0044504101 - 0.3556225300 -1208.5728759766 0.0044103959 - 0.3544052541 -1203.4606933594 0.0043692156 - 0.3531873822 -1199.9423828125 0.0043298099 - 0.3519689143 -1194.4093017578 0.0042905067 - 0.3507498503 -1188.8535156250 0.0042486079 - 0.3495301902 -1184.2607421875 0.0042107645 - 0.3483099341 -1178.9929199219 0.0041708802 - 0.3470891118 -1173.3530273438 0.0041326997 - 0.3458676636 -1168.6766357422 0.0040956680 - 0.3446456492 -1163.9654541016 0.0040535741 - 0.3434230685 -1157.9826660156 0.0040138336 - 0.3421998918 -1152.2189941406 0.0039736666 - 0.3409761190 -1147.1048583984 0.0039395145 - 0.3397517800 -1141.9765625000 0.0039020875 - 0.3385268450 -1136.1243896484 0.0038624185 - 0.3373013735 -1132.2490234375 0.0038255486 - 0.3360753059 -1126.9078369141 0.0037865457 - 0.3348486722 -1121.1000976562 0.0037497755 - 0.3336214721 -1114.9357910156 0.0037154320 - 0.3323937058 -1110.3945312500 0.0036784261 - 0.3311653733 -1104.5030517578 0.0036423856 - 0.3299364746 -1098.5102539062 0.0036021785 - 0.3287070394 -1093.1389160156 0.0035667045 - 0.3274770379 -1087.0230712891 0.0035293046 - 0.3262464702 -1082.4860839844 0.0034952031 - 0.3250153661 -1076.1257324219 0.0034624329 - 0.3237836957 -1069.9226074219 0.0034256421 - 0.3225514591 -1065.4140625000 0.0033901171 - 0.3213187158 -1059.1530761719 0.0033538062 - 0.3200854063 -1053.5595703125 0.0033198234 - 0.3188515604 -1047.2421875000 0.0032840357 - 0.3176171482 -1041.0451660156 0.0032502674 - 0.3163822293 -1036.5690917969 0.0032153502 - 0.3151467741 -1030.3162841797 0.0031821299 - 0.3139107525 -1025.3640136719 0.0031487131 - 0.3126742244 -1018.1330566406 0.0031148128 - 0.3114371598 -1011.7991943359 0.0030818947 - 0.3101995885 -1006.2249755859 0.0030471273 - 0.3089614511 -1000.1459960938 0.0030165962 - 0.3077228367 -994.1629028320 0.0029828809 - 0.3064836562 -988.6163940430 0.0029522649 - 0.3052439690 -982.6560668945 0.0029166555 - 0.3040037751 -976.1586914062 0.0028852220 - 0.3027630746 -970.0670776367 0.0028525544 - 0.3015218377 -963.8171386719 0.0028231516 - 0.3002800941 -957.0682373047 0.0027905882 - 0.2990378439 -951.1424560547 0.0027578240 - 0.2977950871 -945.2388916016 0.0027269153 - 0.2965518534 -939.1823730469 0.0026970520 - 0.2953080833 -932.3215332031 0.0026654166 - 0.2940638065 -927.2113037109 0.0026345844 - 0.2928190529 -919.6717529297 0.0026038841 - 0.2915737927 -913.5111083984 0.0025746613 - 0.2903280556 -906.5371093750 0.0025437290 - 0.2890818119 -902.0477905273 0.0025134997 - 0.2878350616 -894.2861328125 0.0024834597 - 0.2865878344 -887.8406982422 0.0024535027 - 0.2853401303 -880.9391479492 0.0024249167 - 0.2840919495 -875.4386596680 0.0023944899 - 0.2828432620 -868.7667236328 0.0023680977 - 0.2815940976 -861.3026123047 0.0023377202 - 0.2803444862 -855.2031250000 0.0023113193 - 0.2790943682 -849.5957031250 0.0022814358 - 0.2778438032 -842.5352783203 0.0022542616 - 0.2765927315 -834.9677124023 0.0022248793 - 0.2753412127 -827.8549804688 0.0021978565 - 0.2740892470 -822.1420898438 0.0021687930 - 0.2728367746 -815.0525512695 0.0021425381 - 0.2715838850 -808.4906005859 0.0021164720 - 0.2703304887 -801.0729980469 0.0020888529 - 0.2690766752 -795.4543457031 0.0020619233 - 0.2678223848 -787.9824218750 0.0020347582 - 0.2665676475 -780.4107055664 0.0020086027 - 0.2653124332 -772.8843994141 0.0019817115 - 0.2640568018 -768.1403808594 0.0019567769 - 0.2628006935 -759.8635253906 0.0019310117 - 0.2615441680 -752.8873291016 0.0019048147 - 0.2602871954 -746.4611816406 0.0018790963 - 0.2590297759 -739.4331054688 0.0018533830 - 0.2577719092 -731.0557861328 0.0018282735 - 0.2565135956 -724.8952636719 0.0018039773 - 0.2552548647 -718.4074707031 0.0017790187 - 0.2539957166 -712.0881347656 0.0017551709 - 0.2527360916 -703.3919067383 0.0017293367 - 0.2514760792 -697.4251708984 0.0017049947 - 0.2502156198 -691.1369628906 0.0016816263 - 0.2489547580 -682.3631591797 0.0016563486 - 0.2476934493 -675.3243408203 0.0016336183 - 0.2464317381 -668.3935546875 0.0016086762 - 0.2451695949 -660.4123535156 0.0015856349 - 0.2439070493 -653.5970458984 0.0015641061 - 0.2426440865 -647.2329101562 0.0015399187 - 0.2413807064 -639.4237670898 0.0015176161 - 0.2401169240 -631.1176757812 0.0014939194 - 0.2388527244 -624.9530029297 0.0014709875 - 0.2375881374 -617.7205810547 0.0014495824 - 0.2363231331 -609.3411254883 0.0014263800 - 0.2350577265 -602.4082031250 0.0014042151 - 0.2337919325 -595.7966308594 0.0013829910 - 0.2325257361 -586.6884765625 0.0013599986 - 0.2312591374 -580.5690307617 0.0013398771 - 0.2299921662 -572.2960205078 0.0013179802 - 0.2287247926 -564.6983642578 0.0012966843 - 0.2274570316 -556.6163330078 0.0012762400 - 0.2261888832 -549.9260864258 0.0012542831 - 0.2249203473 -541.8416748047 0.0012344455 - 0.2236514390 -534.1030273438 0.0012135587 - 0.2223821580 -527.5615234375 0.0011933710 - 0.2211124897 -520.2890625000 0.0011744562 - 0.2198424488 -511.5929260254 0.0011536124 - 0.2185720354 -504.0880737305 0.0011323134 - 0.2173012495 -497.4111633301 0.0011141920 - 0.2160300910 -487.9755859375 0.0010933569 - 0.2147585750 -481.9983520508 0.0010737418 - 0.2134866863 -473.6484985352 0.0010548439 - 0.2122144401 -465.0218811035 0.0010360121 - 0.2109418362 -458.2999267578 0.0010164723 - 0.2096688747 -450.5497131348 0.0009984224 - 0.2083955556 -441.9022216797 0.0009793107 - 0.2071218789 -434.8434448242 0.0009597712 - 0.2058478594 -427.0251159668 0.0009420878 - 0.2045734823 -419.3057861328 0.0009229615 - 0.2032987624 -411.1756591797 0.0009043943 - 0.2020236999 -403.5502014160 0.0008875914 - 0.2007482946 -395.4989929199 0.0008683929 - 0.1994725466 -387.5571899414 0.0008507525 - 0.1981964707 -378.7317199707 0.0008333962 - 0.1969200522 -371.7413940430 0.0008155667 - 0.1956432909 -363.4685668945 0.0007978849 - 0.1943662018 -354.4827575684 0.0007826493 - 0.1930887848 -347.1622924805 0.0007648103 - 0.1918110549 -339.0753173828 0.0007479905 - 0.1905329823 -330.1195373535 0.0007313441 - 0.1892545819 -322.9841308594 0.0007143308 - 0.1879758835 -315.5144653320 0.0006982883 - 0.1866968423 -307.2104797363 0.0006807085 - 0.1854175031 -299.2883300781 0.0006654689 - 0.1841378361 -290.9892578125 0.0006498558 - 0.1828578562 -282.8689270020 0.0006330767 - 0.1815775782 -275.5719909668 0.0006185157 - 0.1802969873 -266.3234863281 0.0006019852 - 0.1790160835 -258.2955932617 0.0005864209 - 0.1777348816 -250.2392883301 0.0005717474 - 0.1764533818 -242.7921752930 0.0005564447 - 0.1751715839 -233.5359802246 0.0005408432 - 0.1738894880 -225.8154907227 0.0005260817 - 0.1726070940 -217.7173461914 0.0005107909 - 0.1713244021 -209.0942687988 0.0004959507 - 0.1700414270 -200.6046752930 0.0004810744 - 0.1687581688 -193.5675048828 0.0004676495 - 0.1674746126 -183.2262878418 0.0004519905 - 0.1661907732 -176.3707275391 0.0004376945 - 0.1649066657 -167.7891845703 0.0004232214 - 0.1636222601 -159.3430480957 0.0004098898 - 0.1623375863 -151.7137756348 0.0003955122 - 0.1610526443 -142.3005981445 0.0003814243 - 0.1597674191 -134.0829162598 0.0003677589 - 0.1584819257 -126.0992126465 0.0003542958 - 0.1571961641 -116.5316772461 0.0003402836 - 0.1559101343 -108.7881164551 0.0003264735 - 0.1546238512 -100.5388793945 0.0003143452 - 0.1533372998 -91.9029846191 0.0003005567 - 0.1520504802 -83.8111267090 0.0002876225 - 0.1507634073 -75.2992553711 0.0002749460 - 0.1494760811 -66.8060302734 0.0002623328 - 0.1481885016 -58.0813598633 0.0002496713 - 0.1469006687 -50.8989562988 0.0002370514 - 0.1456125826 -41.4579162598 0.0002245928 - 0.1443242580 -32.7334594727 0.0002125226 - 0.1430356801 -24.9096374512 0.0002001420 - 0.1417468637 -15.0807800293 0.0001873520 - 0.1404578090 -8.1180725098 0.0001758365 - 0.1391685158 1.2727966309 0.0001639911 - 0.1378789842 9.4457092285 0.0001519816 - 0.1365892291 18.1893615723 0.0001401692 - 0.1352992207 26.9199218750 0.0001290042 - 0.1340090036 35.8818359375 0.0001168254 - 0.1327185482 44.0617675781 0.0001054136 - 0.1314278692 51.6575622559 0.0000948184 - 0.1301369816 61.6763000488 0.0000828192 - 0.1288458556 70.1499938965 0.0000714383 - 0.1275545210 78.8724060059 0.0000601211 - 0.1262629628 87.6499023438 0.0000495323 - 0.1249711886 95.3158264160 0.0000384354 - 0.1236792132 105.0910949707 0.0000272161 - 0.1223870218 113.6258239746 0.0000163538 - 0.1210946217 122.1291809082 0.0000064409 - 0.1198020205 131.5989685059 -0.0000049430 - 0.1185092106 140.6671905518 -0.0000151014 - 0.1172161996 149.2082672119 -0.0000255717 - 0.1159229949 157.5063171387 -0.0000359443 - 0.1146295965 165.8199615479 -0.0000453437 - 0.1133359969 175.3272705078 -0.0000557606 - 0.1120422035 184.6378173828 -0.0000655912 - 0.1107482314 192.0287628174 -0.0000746991 - 0.1094540581 202.9379730225 -0.0000847811 - 0.1081597060 210.9621734619 -0.0000938114 - 0.1068651751 220.1948852539 -0.0001031705 - 0.1055704579 229.3504333496 -0.0001121797 - 0.1042755619 237.8642883301 -0.0001207268 - 0.1029804870 246.5913391113 -0.0001298978 - 0.1016852409 255.7335510254 -0.0001379088 - 0.1003898159 264.3477172852 -0.0001466944 - 0.0990942270 273.5894775391 -0.0001552243 - 0.0977984667 281.3938293457 -0.0001634615 - 0.0965025425 292.4559020996 -0.0001723248 - 0.0952064544 299.5364990234 -0.0001794782 - 0.0939102098 308.3827209473 -0.0001880000 - 0.0926138014 318.4090576172 -0.0001963410 - 0.0913172364 -401.6676025391 -0.0002104471 - 0.0900205150 -381.5439453125 -0.0002178861 - 0.0887236446 -359.7810668945 -0.0002259504 - 0.0874266177 -337.5269165039 -0.0002343885 - 0.0861294493 -316.2772827148 -0.0002418874 - 0.0848321319 -296.2112731934 -0.0002495834 - 0.0835346729 -273.9311218262 -0.0002569832 - 0.0822370648 -251.9864044189 -0.0002647745 - 0.0809393227 -231.9330596924 -0.0002711743 - 0.0796414465 -210.2870483398 -0.0002789565 - 0.0783434287 -188.9205780029 -0.0002856053 - 0.0770452842 -167.1430358887 -0.0002930749 - 0.0757470056 -145.5045013428 -0.0002995172 - 0.0744486004 -124.1791687012 -0.0003066068 - 0.0731500685 -102.6062316895 -0.0003129892 - 0.0718514100 -80.9700164795 -0.0003201361 - 0.0705526322 -58.6939086914 -0.0003267794 - 0.0692537352 -37.3750305176 -0.0003330754 - 0.0679547191 -16.8655090332 -0.0003398727 - 0.0666555837 5.4990234375 -0.0003459924 - 0.0653563440 26.9129638672 -0.0003527832 - 0.0640569925 48.7997741699 -0.0003584725 - 0.0627575293 70.4394226074 -0.0003648409 - 0.0614579581 91.8519287109 -0.0003700436 - 0.0601582825 113.0726928711 -0.0003765671 - 0.0588585064 134.7978515625 -0.0003819200 - 0.0575586297 155.5010375977 -0.0003876742 - 0.0562586598 178.4960327148 -0.0003932333 - 0.0549585894 200.5262756348 -0.0003995864 - 0.0536584295 222.0358581543 -0.0004042696 - 0.0523581766 243.3706054688 -0.0004105108 - 0.0510578342 264.9521179199 -0.0004145972 - 0.0497574061 286.8137207031 -0.0004206804 - 0.0484568924 309.5216674805 -0.0004258066 - 0.0471563004 330.4647827148 -0.0004308459 - 0.0458556265 352.1053771973 -0.0004358058 - 0.0445548743 374.3151550293 -0.0004411585 - 0.0432540439 395.4563598633 -0.0004452919 - 0.0419531427 417.9939880371 -0.0004511325 - 0.0406521708 438.6329956055 -0.0004549007 - 0.0393511318 461.0818786621 -0.0004606518 - 0.0380500220 482.2327575684 -0.0004653625 - 0.0367488526 505.1294250488 -0.0004693682 - 0.0354476161 526.4093017578 -0.0004749867 - 0.0341463201 547.7553710938 -0.0004784606 - 0.0328449681 569.5756835938 -0.0004833061 - 0.0315435603 592.2463378906 -0.0004871003 - 0.0302420985 613.3438720703 -0.0004925234 - 0.0289405864 635.9277343750 -0.0004961955 - 0.0276390240 657.2041015625 -0.0005002700 - 0.0263374150 678.7142333984 -0.0005036942 - 0.0250357613 700.1489257812 -0.0005084870 - 0.0237340648 722.5576782227 -0.0005119257 - 0.0224323291 744.8781738281 -0.0005165753 - 0.0211305544 766.3297119141 -0.0005195178 - 0.0198287442 787.6516113281 -0.0005241220 - 0.0185269006 809.3736572266 -0.0005269631 - 0.0172250252 832.4208984375 -0.0005316142 - 0.0159231219 853.6873779297 -0.0005343135 - 0.0146211898 875.7273559570 -0.0005387138 - 0.0133192334 897.7193603516 -0.0005419445 - 0.0120172547 918.7817993164 -0.0005458700 - 0.0107152555 941.8931274414 -0.0005491226 - 0.0094132386 964.3484497070 -0.0005528933 - 0.0081112050 984.2797851562 -0.0005554084 - 0.0068091583 1006.9412231445 -0.0005597251 - 0.0055070994 1029.5484619141 -0.0005626106 - 0.0042050318 1050.9243164062 -0.0005658348 - 0.0029029567 1072.3765869141 -0.0005687653 - 0.0016008768 1094.0318603516 -0.0005725127 - 0.0002987941 1116.8327636719 -0.0005751724 - -0.0010032890 1138.8286132812 -0.0005786096 - -0.0023053705 1159.7128906250 -0.0005807895 - -0.0036074480 1181.1695556641 -0.0005843682 - -0.0049095196 1203.9208984375 -0.0005864886 - -0.0062115826 1225.9340820312 -0.0005905806 - -0.0075136353 1247.6192626953 -0.0005927590 - -0.0088156750 1269.6679687500 -0.0005964278 - -0.0101177003 1291.2362060547 -0.0005982164 - -0.0114197079 1313.0615234375 -0.0006025039 - -0.0127216959 1334.6008300781 -0.0006039498 - -0.0140236625 1356.8975830078 -0.0006073645 - -0.0153256059 1378.4422607422 -0.0006086997 - -0.0166275222 1400.3034667969 -0.0006129137 - -0.0179294124 1422.6320800781 -0.0006143686 - -0.0192312710 1443.9002685547 -0.0006171975 - -0.0205330960 1465.9616699219 -0.0006188581 - -0.0218348876 1487.7814941406 -0.0006225855 - -0.0231366418 1509.2689208984 -0.0006242750 - -0.0244383551 1531.3450927734 -0.0006255265 - -0.0257400293 1554.7972412109 -0.0006294369 - -0.0270416588 1574.6955566406 -0.0006306845 - -0.0283432435 1596.5917968750 -0.0006334828 - -0.0296447780 1619.0823974609 -0.0006351824 - -0.0309462640 1641.5826416016 -0.0006384366 - -0.0322476961 1662.2666015625 -0.0006397442 - -0.0335490741 1684.0965576172 -0.0006424708 - -0.0348503962 1705.6392822266 -0.0006434883 - -0.0361516587 1727.8577880859 -0.0006471197 - -0.0374528617 1749.1669921875 -0.0006481060 - -0.0387539975 1770.5126953125 -0.0006507244 - -0.0400550701 1793.1014404297 -0.0006517957 - -0.0413560756 1813.2447509766 -0.0006546519 - -0.0426570103 1836.8977050781 -0.0006567199 - -0.0439578705 1858.8857421875 -0.0006594855 - -0.0452586561 1881.2576904297 -0.0006604295 - -0.0465593673 1901.1799316406 -0.0006632232 - -0.0478600003 1923.3052978516 -0.0006641257 - -0.0491605513 1945.0703125000 -0.0006668163 - -0.0504610166 1965.2822265625 -0.0006674086 - -0.0517613962 1987.9307861328 -0.0006702724 - -0.0530616902 2009.8326416016 -0.0006710548 - -0.0543618947 2031.2274169922 -0.0006737053 - -0.0556620061 2053.0541992188 -0.0006749026 - -0.0569620244 2074.5197753906 -0.0006774482 - -0.0582619458 2097.5148925781 -0.0006788863 - -0.0595617667 2117.4643554688 -0.0006792988 - -0.0608614869 2138.9694824219 -0.0006815252 - -0.0621611029 2161.7915039062 -0.0006828858 - -0.0634606183 2183.3088378906 -0.0006850896 - -0.0647600219 2204.5913085938 -0.0006861384 - -0.0660593137 2226.1496582031 -0.0006882838 - -0.0673585013 2247.4218750000 -0.0006884866 - -0.0686575696 2268.4643554688 -0.0006914061 - -0.0699565187 2289.7614746094 -0.0006915921 - -0.0712553561 2311.1435546875 -0.0006941987 - -0.0725540668 2333.0778808594 -0.0006953561 - -0.0738526583 2354.1306152344 -0.0006974198 - -0.0751511231 2375.8808593750 -0.0006977344 - -0.0764494613 2397.5195312500 -0.0007002644 - -0.0777476653 2418.3498535156 -0.0007008802 - -0.0790457428 2439.8413085938 -0.0007030801 - -0.0803436860 2462.7321777344 -0.0007043739 - -0.0816414878 2482.2326660156 -0.0007038477 - -0.0829391554 2504.3974609375 -0.0007065565 - -0.0842366815 2525.7253417969 -0.0007066900 - -0.0855340660 2546.3481445312 -0.0007091759 - -0.0868313015 2566.8554687500 -0.0007087931 - -0.0881283954 2588.7734375000 -0.0007114625 - -0.0894253403 2609.9724121094 -0.0007120701 - -0.0907221287 2631.5866699219 -0.0007147442 - -0.0920187682 2653.0756835938 -0.0007144797 - -0.0933152437 2672.0610351562 -0.0007163751 - -0.0946115702 2694.2905273438 -0.0007166679 - -0.0959077328 2716.3239746094 -0.0007194765 - -0.0972037315 2737.5678710938 -0.0007191423 - -0.0984995663 2758.5747070312 -0.0007217600 - -0.0997952297 2779.7854003906 -0.0007219474 - -0.1010907292 2800.6013183594 -0.0007237070 - -0.1023860574 2821.3312988281 -0.0007242500 - -0.1036812067 2842.0747070312 -0.0007238643 - -0.1049761847 2863.1201171875 -0.0007260278 - -0.1062709838 2883.7924804688 -0.0007261817 - -0.1075656042 2904.7883300781 -0.0007283537 - -0.1088600457 2926.9489746094 -0.0007287975 - -0.1101542935 2946.3242187500 -0.0007307315 - -0.1114483625 2968.2380371094 -0.0007310300 - -0.1127422377 2988.2822265625 -0.0007332360 - -0.1140359268 3009.5148925781 -0.0007329801 - -0.1153294146 3030.3647460938 -0.0007348644 - -0.1166227162 3051.0900878906 -0.0007354113 - -0.1179158092 3071.8071289062 -0.0007372578 - -0.1192087084 3092.5761718750 -0.0007369670 - -0.1205014065 3112.5241699219 -0.0007391292 - -0.1217939034 3134.1625976562 -0.0007390837 - -0.1230861843 3154.5229492188 -0.0007387829 - -0.1243782640 3173.9702148438 -0.0007409044 - -0.1256701350 3195.7216796875 -0.0007408280 - -0.1269617826 3216.7548828125 -0.0007429202 - -0.1282532215 3235.8798828125 -0.0007423495 - -0.1295444518 3257.3457031250 -0.0007449422 - -0.1308354437 3277.3715820312 -0.0007451459 - -0.1321262270 3298.5458984375 -0.0007471016 - -0.1334167868 3318.8098144531 -0.0007463544 - -0.1347071081 3338.5000000000 -0.0007487109 - -0.1359972060 3359.5173339844 -0.0007485570 - -0.1372870803 3380.0029296875 -0.0007505998 - -0.1385767162 3399.2697753906 -0.0007498927 - -0.1398661286 3420.6105957031 -0.0007523143 - -0.1411552876 3441.5585937500 -0.0007519370 - -0.1424442083 3460.7485351562 -0.0007520535 - -0.1437328905 3481.3422851562 -0.0007537102 - -0.1450213343 3501.1596679688 -0.0007536013 - -0.1463095397 3521.0366210938 -0.0007553443 - -0.1475974768 3541.6457519531 -0.0007549337 - -0.1488851756 3561.4577636719 -0.0007575745 - -0.1501726210 3581.6887207031 -0.0007568317 - -0.1514598131 3601.0153808594 -0.0007589226 - -0.1527467519 3620.8044433594 -0.0007583353 - -0.1540334225 3641.9174804688 -0.0007604181 - -0.1553198248 3661.2895507812 -0.0007604506 - -0.1566059738 3682.0158691406 -0.0007625615 - -0.1578918695 3700.8505859375 -0.0007622229 - -0.1591774821 3722.0163574219 -0.0007619244 - -0.1604628265 3741.2299804688 -0.0007635324 - -0.1617479026 3760.4064941406 -0.0007633440 - -0.1630326957 3781.3723144531 -0.0007659199 - -0.1643172204 3799.7998046875 -0.0007648816 - -0.1656014770 3821.2651367188 -0.0007677972 - -0.1668854356 3840.2187500000 -0.0007664758 - -0.1681691110 3859.4638671875 -0.0007690087 - -0.1694525182 3878.5317382812 -0.0007676493 - -0.1707356274 3898.5322265625 -0.0007708356 - -0.1720184386 3918.2009277344 -0.0007698290 - -0.1733009666 3937.1525878906 -0.0007722963 - -0.1745832115 3956.6774902344 -0.0007712852 - -0.1758651435 3976.3671875000 -0.0007707344 - -0.1771467775 3995.7658691406 -0.0007734152 - -0.1784281284 4016.0473632812 -0.0007732028 - -0.1797091663 4033.1921386719 -0.0007743902 - -0.1809898913 4053.3261718750 -0.0007741645 - -0.1822703183 4071.9387207031 -0.0007761760 - -0.1835504323 4091.3151855469 -0.0007754491 - -0.1848302335 4110.1342773438 -0.0007777427 - -0.1861097366 4129.7392578125 -0.0007770605 - -0.1873889118 4149.3198242188 -0.0007790804 - -0.1886677593 4167.4843750000 -0.0007788208 - -0.1899463087 4187.2983398438 -0.0007806928 - -0.1912245154 4205.6572265625 -0.0007807084 - -0.1925024092 4224.7011718750 -0.0007823050 - -0.1937799752 4243.1928710938 -0.0007822965 - -0.1950572133 4263.2343750000 -0.0007823712 - -0.1963341236 4279.7651367188 -0.0007831026 - -0.1976107061 4299.9423828125 -0.0007831579 - -0.1988869458 4318.6567382812 -0.0007857613 - -0.2001628429 4337.5893554688 -0.0007849378 - -0.2014383972 4355.5400390625 -0.0007872961 - -0.2027136236 4374.2158203125 -0.0007866328 - -0.2039885074 4393.4272460938 -0.0007884641 - -0.2052630335 4411.9614257812 -0.0007887634 - -0.2065372169 4430.4199218750 -0.0007900787 - -0.2078110576 4447.8764648438 -0.0007899438 - -0.2090845257 4467.7050781250 -0.0007922110 - -0.2103576511 4484.5532226562 -0.0007914027 - -0.2116304338 4503.4638671875 -0.0007936708 - -0.2129028440 4522.0742187500 -0.0007939456 - -0.2141748816 4540.2939453125 -0.0007929844 - -0.2154465765 4558.5405273438 -0.0007955396 - -0.2167178988 4575.9633789062 -0.0007944266 - -0.2179888487 4594.2172851562 -0.0007973746 - -0.2192594409 4612.4267578125 -0.0007966924 - -0.2205296457 4631.3632812500 -0.0007996030 - -0.2217994928 4648.4658203125 -0.0007985004 - -0.2230689526 4665.3276367188 -0.0008002919 - -0.2243380398 4684.8364257812 -0.0008007886 - -0.2256067395 4702.2265625000 -0.0008029775 - -0.2268750668 4719.5029296875 -0.0008019659 - -0.2281430066 4737.0107421875 -0.0008044853 - -0.2294105440 4755.2812500000 -0.0008042421 - -0.2306777090 4772.3525390625 -0.0008064625 - -0.2319444865 4790.4995117188 -0.0008072307 - -0.2332108617 4808.3896484375 -0.0008066478 - -0.2344768494 4824.5698242188 -0.0008084316 - -0.2357424200 4842.1250000000 -0.0008082895 - -0.2370076180 4859.6494140625 -0.0008105063 - -0.2382723987 4877.9726562500 -0.0008111807 - -0.2395367771 4894.0190429688 -0.0008131093 - -0.2408007532 4912.8251953125 -0.0008135249 - -0.2420643121 4930.0361328125 -0.0008158077 - -0.2433274686 4946.3120117188 -0.0008149612 - -0.2445902079 4963.1694335938 -0.0008176886 - -0.2458525300 4979.7207031250 -0.0008178647 - -0.2471144497 4997.1660156250 -0.0008200825 - -0.2483759373 5014.5986328125 -0.0008207639 - -0.2496370077 5031.8808593750 -0.0008230436 - -0.2508976460 5048.1127929688 -0.0008233092 - -0.2521578670 5065.2338867188 -0.0008255930 - -0.2534176707 5082.2993164062 -0.0008262921 - -0.2546770275 5099.4819335938 -0.0008287997 - -0.2559359670 5115.3920898438 -0.0008291926 - -0.2571944594 5131.2817382812 -0.0008291642 - -0.2584525347 5148.5361328125 -0.0008317066 - -0.2597101331 5164.2045898438 -0.0008321849 - -0.2609673440 5181.4008789062 -0.0008351006 - -0.2622240782 5198.4589843750 -0.0008361190 - -0.2634803653 5213.6762695312 -0.0008384142 - -0.2647362053 5230.5375976562 -0.0008392698 - -0.2659916282 5246.9687500000 -0.0008422061 - -0.2672465742 5262.7250976562 -0.0008424005 - -0.2685010731 5278.7485351562 -0.0008457548 - -0.2697551250 5295.6416015625 -0.0008469987 - -0.2710087001 5310.8769531250 -0.0008493824 - -0.2722618282 5326.8100585938 -0.0008503974 - -0.2735144794 5343.5498046875 -0.0008537017 - -0.2747666836 5360.3095703125 -0.0008552301 - -0.2760184109 5374.3359375000 -0.0008578649 - -0.2772696912 5391.7993164062 -0.0008594192 - -0.2785204947 5406.2812500000 -0.0008626268 - -0.2797707915 5423.5766601562 -0.0008642544 - -0.2810206413 5437.7871093750 -0.0008672794 - -0.2822700143 5454.0498046875 -0.0008690563 - -0.2835189104 5469.0537109375 -0.0008724639 - -0.2847673297 5483.8325195312 -0.0008736052 - -0.2860152721 5499.8457031250 -0.0008756818 - -0.2872627079 5515.4873046875 -0.0008792763 - -0.2885096669 5530.0131835938 -0.0008806915 - -0.2897561491 5547.1230468750 -0.0008857097 - -0.2910021245 5561.4804687500 -0.0008872801 - -0.2922475934 5576.0717773438 -0.0008912525 - -0.2934925854 5591.5742187500 -0.0008933389 - -0.2947371006 5605.3818359375 -0.0008971110 - -0.2959810793 5620.9526367188 -0.0009002591 - -0.2972245812 5636.5214843750 -0.0009045970 - -0.2984675467 5650.9736328125 -0.0009070885 - -0.2997100353 5666.0253906250 -0.0009120392 - -0.3009520173 5681.5424804688 -0.0009147795 - -0.3021934628 5694.8291015625 -0.0009192218 - -0.3034344316 5708.9311523438 -0.0009220304 - -0.3046748638 5725.1166992188 -0.0009275305 - -0.3059147894 5739.0454101562 -0.0009306630 - -0.3071541786 5753.5659179688 -0.0009363042 - -0.3083930612 5767.1884765625 -0.0009393980 - -0.3096314073 5782.1733398438 -0.0009452263 - -0.3108692467 5796.7407226562 -0.0009491815 - -0.3121065497 5810.4458007812 -0.0009550656 - -0.3133433163 5825.6206054688 -0.0009590672 - -0.3145795763 5838.9702148438 -0.0009650382 - -0.3158152699 5852.7226562500 -0.0009693976 - -0.3170504570 5866.8100585938 -0.0009758518 - -0.3182851076 5880.3886718750 -0.0009804663 - -0.3195191920 5893.3237304688 -0.0009867286 - -0.3207527399 5908.6132812500 -0.0009922659 - -0.3219857514 5921.6079101562 -0.0009993465 - -0.3232182264 5936.1313476562 -0.0010054967 - -0.3244501352 5947.9897460938 -0.0010119186 - -0.3256815076 5962.8671875000 -0.0010182908 - -0.3269123435 5976.2016601562 -0.0010257792 - -0.3281425834 5989.6503906250 -0.0010323308 - -0.3293723166 6003.9345703125 -0.0010408427 - -0.3306014538 6016.9692382812 -0.0010473452 - -0.3318300247 6029.8183593750 -0.0010563694 - -0.3330580592 6041.9018554688 -0.0010627357 - -0.3342855275 6057.0502929688 -0.0010725812 - -0.3355124295 6068.9985351562 -0.0010797640 - -0.3367387354 6083.1547851562 -0.0010900982 - -0.3379645050 6094.9267578125 -0.0010973435 - -0.3391896784 6107.0649414062 -0.0011069825 - -0.3404142857 6120.9072265625 -0.0011168657 - -0.3416382968 6133.0112304688 -0.0011272226 - -0.3428617418 6145.6440429688 -0.0011358646 - -0.3440846205 6158.9355468750 -0.0011478832 - -0.3453069031 6171.8496093750 -0.0011577449 - -0.3465286195 6183.1943359375 -0.0011695484 - -0.3477497101 6196.8964843750 -0.0011803370 - -0.3489702344 6208.5092773438 -0.0011925530 - -0.3501901627 6220.7280273438 -0.0012033953 - -0.3514094949 6232.4404296875 -0.0012168576 - -0.3526282609 6245.1035156250 -0.0012285822 - -0.3538464010 6256.6074218750 -0.0012424322 - -0.3550639451 6268.4594726562 -0.0012550453 - -0.3562808633 6282.2011718750 -0.0012704553 - -0.3574972153 6293.0468750000 -0.0012833322 - -0.3587129414 6305.1669921875 -0.0012992289 - -0.3599280715 6317.5825195312 -0.0013139098 - -0.3611425757 6329.5932617188 -0.0013301189 - -0.3623564839 6340.3676757812 -0.0013451695 - -0.3635697663 6351.8408203125 -0.0013622460 - -0.3647824228 6363.4208984375 -0.0013786448 - -0.3659944832 6373.7392578125 -0.0013954341 - -0.3672059178 6386.1025390625 -0.0014132900 - -0.3684167266 6397.5673828125 -0.0014322445 - -0.3696269095 6408.7817382812 -0.0014505422 - -0.3708364666 6419.9907226562 -0.0014708171 - -0.3720453978 6431.2402343750 -0.0014902080 - -0.3732536733 6441.2944335938 -0.0015104936 - -0.3744613528 6452.3588867188 -0.0015310358 - -0.3756683767 6464.9824218750 -0.0015542407 - -0.3768747747 6475.1918945312 -0.0015757900 - -0.3780805171 6485.0830078125 -0.0015980649 - -0.3792856336 6496.0795898438 -0.0016219262 - -0.3804900944 6507.5209960938 -0.0016472692 - -0.3816939294 6517.0522460938 -0.0016702968 - -0.3828971088 6528.6567382812 -0.0016964328 - -0.3840996325 6538.7597656250 -0.0017222310 - -0.3853015006 6548.1494140625 -0.0017499594 - -0.3865027428 6558.0673828125 -0.0017755138 - -0.3877032995 6569.4501953125 -0.0018056042 - -0.3889032006 6578.0249023438 -0.0018344001 - -0.3901024759 6589.1635742188 -0.0018646569 - -0.3913010657 6598.3164062500 -0.0018951918 - -0.3924989700 6610.5122070312 -0.0019267662 - -0.3936962485 6619.2348632812 -0.0019588412 - -0.3948928416 6629.4775390625 -0.0019912631 - -0.3960887492 6638.7636718750 -0.0020264694 - -0.3972840011 6648.8076171875 -0.0020608406 - -0.3984785974 6658.0830078125 -0.0020964115 - -0.3996725082 6667.5336914062 -0.0021324866 - -0.4008657336 6676.4150390625 -0.0021708587 - -0.4020582736 6685.5991210938 -0.0022081984 - -0.4032501280 6696.7451171875 -0.0022497145 - -0.4044413269 6705.7583007812 -0.0022888358 - -0.4056318104 6714.2866210938 -0.0023302585 - -0.4068216085 6723.6298828125 -0.0023731627 - -0.4080107212 6731.9692382812 -0.0024172415 - -0.4091991484 6741.5473632812 -0.0024614227 - -0.4103868902 6750.8559570312 -0.0025091288 - -0.4115739167 6758.9091796875 -0.0025554425 - -0.4127602577 6768.2016601562 -0.0026022936 - -0.4139459133 6776.5312500000 -0.0026530200 - -0.4151308537 6785.6757812500 -0.0027036164 - -0.4163150787 6794.3105468750 -0.0027547181 - -0.4174986184 6802.7695312500 -0.0028083664 - -0.4186814129 6810.7143554688 -0.0028625219 - -0.4198635221 6818.6958007812 -0.0029171500 - -0.4210449457 6826.4238281250 -0.0029746599 - -0.4222256243 6835.0048828125 -0.0030316128 - -0.4234055877 6843.3437500000 -0.0030926000 - -0.4245848358 6852.1879882812 -0.0031538245 - -0.4257633686 6859.5546875000 -0.0032154159 - -0.4269411862 6868.1850585938 -0.0032797188 - -0.4281182587 6875.7563476562 -0.0033436476 - -0.4292946160 6882.8305664062 -0.0034111375 - -0.4304702580 6891.2539062500 -0.0034797045 - -0.4316451550 6899.0913085938 -0.0035495951 - -0.4328193367 6905.7685546875 -0.0036216294 - -0.4339927435 6913.8740234375 -0.0036945357 - -0.4351654649 6921.8569335938 -0.0037673221 - -0.4363374114 6927.8037109375 -0.0038451389 - -0.4375086427 6935.6616210938 -0.0039207265 - -0.4386791289 6942.3647460938 -0.0040013478 - -0.4398488700 6950.4262695312 -0.0040815338 - -0.4410178363 6956.0546875000 -0.0041655484 - -0.4421860874 6963.4492187500 -0.0042508072 - -0.4433535933 6970.2363281250 -0.0043356195 - -0.4445203245 6977.5083007812 -0.0044240775 - -0.4456863105 6984.0668945312 -0.0045131268 - -0.4468515515 6990.1938476562 -0.0046057929 - -0.4480160177 6997.0219726562 -0.0046995063 - -0.4491797388 7003.9057617188 -0.0047972323 - -0.4503426850 7010.5385742188 -0.0048949602 - -0.4515048862 7016.1542968750 -0.0049930257 - -0.4526663125 7022.7958984375 -0.0050953114 - -0.4538269639 7028.6025390625 -0.0051983050 - -0.4549868703 7034.0122070312 -0.0053041587 - -0.4561459720 7040.1567382812 -0.0054093390 - -0.4573043287 7046.8618164062 -0.0055206250 - -0.4584618807 7052.8110351562 -0.0056310771 - -0.4596186876 7057.2919921875 -0.0057443171 - -0.4607746899 7064.8081054688 -0.0058603315 - -0.4619299173 7070.0371093750 -0.0059805592 - -0.4630843699 7076.1235351562 -0.0060966243 - -0.4642380178 7081.7177734375 -0.0062203412 - -0.4653908908 7087.0166015625 -0.0063474411 - -0.4665429890 7091.3730468750 -0.0064676795 - -0.4676942825 7097.3940429688 -0.0066002216 - -0.4688447714 7102.4970703125 -0.0067300829 - -0.4699944854 7106.7529296875 -0.0068608960 - -0.4711433947 7112.0239257812 -0.0069980915 - -0.4722915292 7116.4702148438 -0.0071350476 - -0.4734388292 7122.8315429688 -0.0072766151 - -0.4745853245 7127.5571289062 -0.0074173734 - -0.4757310450 7132.0683593750 -0.0075600580 - -0.4768759310 7136.7905273438 -0.0077060903 - -0.4780200124 7141.0224609375 -0.0078535760 - -0.4791632891 7146.6523437500 -0.0080055725 - -0.4803057611 7150.0903320312 -0.0081564309 - -0.4814474285 7155.1352539062 -0.0083138738 - -0.4825882614 7157.6318359375 -0.0084707430 - -0.4837282598 7162.3881835938 -0.0086278468 - -0.4848674536 7166.9648437500 -0.0087918462 - -0.4860058427 7172.3540039062 -0.0089578647 - -0.4871433973 7175.3969726562 -0.0091243293 - -0.4882801175 7179.1909179688 -0.0092924731 - -0.4894160032 7183.7167968750 -0.0094659524 - -0.4905510843 7186.6411132812 -0.0096359039 - -0.4916853011 7190.1357421875 -0.0098119788 - -0.4928187132 7194.8549804688 -0.0099868271 - -0.4939512908 7197.7514648438 -0.0101670111 - -0.4950830042 7202.4106445312 -0.0103495661 - -0.4962139130 7205.4409179688 -0.0105349049 - -0.4973439574 7207.1318359375 -0.0107212421 - -0.4984731674 7211.2958984375 -0.0109089389 - -0.4996015131 7214.2260742188 -0.0110980486 - -0.5007290244 7218.1938476562 -0.0112913512 - -0.5018556714 7220.8613281250 -0.0114821279 - -0.5029814839 7222.7744140625 -0.0116776163 - -0.5041064620 7225.7231445312 -0.0118773049 - -0.5052305460 7228.5068359375 -0.0120760901 - -0.5063537955 7231.9799804688 -0.0122771170 - -0.5074762106 7233.5659179688 -0.0124799879 - -0.5085977316 7237.9873046875 -0.0126881087 - -0.5097184181 7238.5087890625 -0.0128943212 - -0.5108382106 7241.2309570312 -0.0131031368 - -0.5119571686 7243.8535156250 -0.0133165484 - -0.5130752325 7246.6303710938 -0.0135234175 - -0.5141924024 7248.1279296875 -0.0137390122 - -0.5153087378 7250.6665039062 -0.0139539726 - -0.5164241791 7251.4545898438 -0.0141708711 - -0.5175387859 7254.4321289062 -0.0143906865 - -0.5186524987 7255.3276367188 -0.0146096703 - -0.5197653174 7257.3994140625 -0.0148328925 - -0.5208772421 7259.7021484375 -0.0150535787 - -0.5219882727 7261.7656250000 -0.0152784949 - -0.5230984688 7262.4746093750 -0.0154970791 - -0.5242077708 7264.3354492188 -0.0157239642 - -0.5253161788 7264.7646484375 -0.0159541033 - -0.5264236331 7266.4257812500 -0.0161777344 - -0.5275302529 7267.9882812500 -0.0164073836 - -0.5286359787 7269.1201171875 -0.0166312903 - -0.5297408104 7269.5668945312 -0.0168703832 - -0.5308447480 7270.4995117188 -0.0170973390 - -0.5319477916 7271.6645507812 -0.0173276942 - -0.5330498815 7272.1220703125 -0.0175580252 - -0.5341511369 7273.4458007812 -0.0177912824 - -0.5352514386 7273.7031250000 -0.0180255380 - -0.5363508463 7275.2377929688 -0.0182567295 - -0.5374493003 7273.8881835938 -0.0184915215 - -0.5385469198 7274.9399414062 -0.0187271871 - -0.5396435857 7276.2773437500 -0.0189601984 - -0.5407393575 7276.2187500000 -0.0191898216 - -0.5418341756 7275.6367187500 -0.0194241740 - -0.5429280996 7275.7026367188 -0.0196594372 - -0.5440211296 7276.8735351562 -0.0198916253 - -0.5451132059 7276.2734375000 -0.0201265514 - -0.5462043285 7276.6274414062 -0.0203607921 - -0.5472945571 7276.5610351562 -0.0205898061 - -0.5483838916 7275.1147460938 -0.0208183359 - -0.5494722724 7275.1713867188 -0.0210507046 - -0.5505596995 7274.9868164062 -0.0212854706 - -0.5516461730 7274.8457031250 -0.0215118527 - -0.5527317524 7273.1938476562 -0.0217414610 - -0.5538163781 7274.3129882812 -0.0219721440 - -0.5549001098 7272.2685546875 -0.0221952312 - -0.5559828281 7271.2456054688 -0.0224208161 - -0.5570646524 7270.5126953125 -0.0226424225 - -0.5581455231 7270.9409179688 -0.0228746086 - -0.5592254400 7268.9897460938 -0.0230923146 - -0.5603044033 7266.7104492188 -0.0233110748 - -0.5613824725 7267.1396484375 -0.0235295091 - -0.5624595284 7265.4941406250 -0.0237503313 - -0.5635356307 7262.8847656250 -0.0239644274 - -0.5646107793 7262.5644531250 -0.0241786782 - -0.5656849742 7259.7734375000 -0.0243888050 - -0.5667582750 7258.3979492188 -0.0245970935 - -0.5678305626 7257.1484375000 -0.0248101670 - -0.5689018369 7256.4716796875 -0.0250184387 - -0.5699722171 7254.7236328125 -0.0252235252 - -0.5710415840 7252.5039062500 -0.0254278239 - -0.5721100569 7248.8535156250 -0.0256237835 - -0.5731774569 7247.2607421875 -0.0258269347 - -0.5742439628 7246.1835937500 -0.0260183979 - -0.5753094554 7243.5874023438 -0.0262130946 - -0.5763739944 7241.2299804688 -0.0264055170 - -0.5774375796 7238.4331054688 -0.0265944079 - -0.5785001516 7235.5390625000 -0.0267796703 - -0.5795617104 7234.6650390625 -0.0269670933 - -0.5806223750 7231.5688476562 -0.0271463301 - -0.5816819668 7228.7202148438 -0.0273248106 - -0.5827406049 7226.3164062500 -0.0275018048 - -0.5837982893 7223.1582031250 -0.0276751332 - -0.5848549604 7219.3598632812 -0.0278422236 - -0.5859106183 7216.6547851562 -0.0280097872 - -0.5869652629 7212.9589843750 -0.0281713437 - -0.5880189538 7210.6411132812 -0.0283345170 - -0.5890716314 7207.6464843750 -0.0284952056 - -0.5901233554 7203.5424804688 -0.0286503006 - -0.5911740661 7200.2841796875 -0.0288043227 - -0.5922237039 7196.3168945312 -0.0289523248 - -0.5932723880 7193.5058593750 -0.0290985741 - -0.5943200588 7190.2451171875 -0.0292426720 - -0.5953667760 7186.6411132812 -0.0293805245 - -0.5964124203 7181.2285156250 -0.0295178555 - -0.5974570513 7178.3076171875 -0.0296512637 - -0.5985006690 7174.0224609375 -0.0297823437 - -0.5995433331 7171.4018554688 -0.0299137942 - -0.6005849242 7166.8764648438 -0.0300370418 - -0.6016255021 7162.6787109375 -0.0301545076 - -0.6026650667 7158.8154296875 -0.0302755274 - -0.6037036180 7154.2978515625 -0.0303883012 - -0.6047411561 7150.8852539062 -0.0304973181 - -0.6057776213 7144.8549804688 -0.0306056738 - -0.6068130732 7141.0375976562 -0.0307079591 - -0.6078475118 7135.8115234375 -0.0308065377 - -0.6088809371 7131.6718750000 -0.0309065096 - -0.6099133492 7126.2490234375 -0.0309977047 - -0.6109446883 7121.3037109375 -0.0310880132 - -0.6119749546 7117.2031250000 -0.0311778747 - -0.6130042076 7112.4482421875 -0.0312615149 - -0.6140324473 7107.9257812500 -0.0313430056 - -0.6150596738 7101.9052734375 -0.0314180925 - -0.6160858274 7095.1665039062 -0.0314898901 - -0.6171109080 7091.8437500000 -0.0315625705 - -0.6181349754 7085.1005859375 -0.0316270031 - -0.6191579700 7081.4604492188 -0.0316928066 - -0.6201798916 7075.3598632812 -0.0317533799 - -0.6212007999 7069.0000000000 -0.0318089910 - -0.6222206950 7063.4760742188 -0.0318605490 - -0.6232394576 7057.5449218750 -0.0319130570 - -0.6242572069 7051.5532226562 -0.0319596902 - -0.6252738833 7046.4946289062 -0.0320037380 - -0.6262895465 7040.7768554688 -0.0320442095 - -0.6273040771 7033.8305664062 -0.0320796221 - -0.6283175945 7027.3964843750 -0.0321115479 - -0.6293300390 7022.1132812500 -0.0321456268 - -0.6303413510 7015.4829101562 -0.0321716741 - -0.6313516498 7008.1479492188 -0.0321937501 - -0.6323608756 7000.8896484375 -0.0322119482 - -0.6333690286 6995.8115234375 -0.0322359167 - -0.6343761086 6988.3579101562 -0.0322479680 - -0.6353821158 6982.0927734375 -0.0322590657 - -0.6363870502 6976.8247070312 -0.0322731547 - -0.6373909116 6969.6748046875 -0.0322765745 - -0.6383937001 6961.6611328125 -0.0322770178 - -0.6393953562 6955.5136718750 -0.0322801024 - -0.6403959394 6948.8247070312 -0.0322774127 - -0.6413955092 6940.6840820312 -0.0322670527 - -0.6423938870 6934.3735351562 -0.0322632082 - -0.6433912516 6927.2695312500 -0.0322502628 - -0.6443874836 6920.1210937500 -0.0322359614 - -0.6453826427 6912.2333984375 -0.0322200842 - -0.6463767290 6905.5371093750 -0.0322003923 - -0.6473696828 6898.2490234375 -0.0321758725 - -0.6483615637 6888.5268554688 -0.0321513154 - -0.6493523121 6881.3793945312 -0.0321219973 - -0.6503419876 6873.9638671875 -0.0320917256 - -0.6513305306 6866.4282226562 -0.0320611671 - -0.6523180008 6858.8208007812 -0.0320265293 - -0.6533043385 6850.3569335938 -0.0319849290 - -0.6542896032 6842.9838867188 -0.0319475047 - -0.6552737355 6834.0917968750 -0.0319045819 - -0.6562567949 6825.3378906250 -0.0318540968 - -0.6572386622 6817.6015625000 -0.0318081751 - -0.6582195163 6809.4931640625 -0.0317607448 - -0.6591991782 6800.3823242188 -0.0317033865 - -0.6601777673 6792.0087890625 -0.0316499062 - -0.6611551642 6785.5307617188 -0.0315984897 - -0.6621314883 6775.8007812500 -0.0315333530 - -0.6631067395 6766.1474609375 -0.0314720757 - -0.6640807986 6758.2148437500 -0.0314134881 - -0.6650537252 6749.0322265625 -0.0313438326 - -0.6660255790 6740.0258789062 -0.0312765092 - -0.6669963002 6731.3813476562 -0.0312044453 - -0.6679658294 6721.6826171875 -0.0311342273 - -0.6689342856 6713.4121093750 -0.0310597699 - -0.6699015498 6704.4584960938 -0.0309865549 - -0.6708677411 6694.3725585938 -0.0309096035 - -0.6718327403 6685.9184570312 -0.0308310539 - -0.6727966666 6675.7080078125 -0.0307450239 - -0.6737594008 6667.2661132812 -0.0306663178 - -0.6747210026 6656.4770507812 -0.0305825677 - -0.6756814718 6647.9125976562 -0.0304952040 - -0.6766407490 6636.5815429688 -0.0303979721 - -0.6775989532 6628.8574218750 -0.0303171463 - -0.6785559654 6617.0639648438 -0.0302225687 - -0.6795118451 6608.0107421875 -0.0301316753 - -0.6804665327 6598.6616210938 -0.0300415345 - -0.6814200878 6587.7646484375 -0.0299425330 - -0.6823725104 6578.5395507812 -0.0298439991 - -0.6833237410 6566.5419921875 -0.0297377296 - -0.6842738390 6558.3618164062 -0.0296468828 - -0.6852228045 6547.2856445312 -0.0295429602 - -0.6861705780 6536.7636718750 -0.0294319801 - -0.6871171594 6527.7573242188 -0.0293382127 - -0.6880626082 6516.0947265625 -0.0292312745 - -0.6890068650 6505.2246093750 -0.0291209575 - -0.6899499893 6493.7485351562 -0.0290060937 - -0.6908919215 6484.3730468750 -0.0289055556 - -0.6918326616 6474.1357421875 -0.0287949108 - -0.6927722692 6462.0073242188 -0.0286766551 - -0.6937106848 6451.7397460938 -0.0285718013 - -0.6946479678 6440.5449218750 -0.0284537990 - -0.6955839992 6429.8017578125 -0.0283398107 - -0.6965188980 6417.4301757812 -0.0282174163 - -0.6974526048 6407.6118164062 -0.0281076841 - -0.6983851194 6395.2475585938 -0.0279886331 - -0.6993164420 6383.9375000000 -0.0278650280 - -0.7002466321 6374.8349609375 -0.0277550649 - -0.7011755705 6361.4340820312 -0.0276300181 - -0.7021033764 6350.0781250000 -0.0275060888 - -0.7030299306 6339.6171875000 -0.0273805447 - -0.7039553523 6327.4467773438 -0.0272639357 - -0.7048795223 6315.3945312500 -0.0271362662 - -0.7058025599 6302.9008789062 -0.0270056985 - -0.7067243457 6290.5190429688 -0.0268800408 - -0.7076449394 6280.2280273438 -0.0267643537 - -0.7085643411 6267.8481445312 -0.0266337469 - -0.7094825506 6256.1469726562 -0.0265035667 - -0.7103995681 6243.3413085938 -0.0263806991 - -0.7113153934 6231.5278320312 -0.0262468718 - -0.7122299671 6220.0722656250 -0.0261193104 - -0.7131433487 6207.2338867188 -0.0259831157 - -0.7140555382 6194.4414062500 -0.0258641914 - -0.7149665356 6181.4223632812 -0.0257282779 - -0.7158762813 6169.0908203125 -0.0255948491 - -0.7167848349 6157.6411132812 -0.0254609454 - -0.7176921368 6144.9067382812 -0.0253363643 - -0.7185982466 6132.3037109375 -0.0252012573 - -0.7195031643 6118.6293945312 -0.0250626970 - -0.7204068303 6105.1250000000 -0.0249220226 - -0.7213092446 6094.2695312500 -0.0248019416 - -0.7222104669 6080.3520507812 -0.0246662330 - -0.7231104970 6067.3090820312 -0.0245269798 - -0.7240092754 6054.2202148438 -0.0243890490 - -0.7249068022 6041.1499023438 -0.0242604706 - -0.7258031368 6028.6250000000 -0.0241230205 - -0.7266982198 6014.4365234375 -0.0239825435 - -0.7275921106 6001.3085937500 -0.0238482393 - -0.7284847498 5987.8940429688 -0.0237199757 - -0.7293761373 5974.2211914062 -0.0235774647 - -0.7302662730 5961.2871093750 -0.0234370418 - -0.7311551571 5947.4418945312 -0.0233002584 - -0.7320428491 5934.4638671875 -0.0231692716 - -0.7329292893 5921.2617187500 -0.0230282024 - -0.7338144779 5905.8852539062 -0.0228947457 - -0.7346984148 5891.9140625000 -0.0227518342 - -0.7355811596 5879.1762695312 -0.0226231571 - -0.7364625931 5866.0102539062 -0.0224862937 - -0.7373427749 5850.5737304688 -0.0223458298 - -0.7382217646 5836.4687500000 -0.0221998263 - -0.7390994430 5822.3706054688 -0.0220727138 - -0.7399759293 5808.4521484375 -0.0219298974 - -0.7408511043 5795.3315429688 -0.0217964966 - -0.7417250276 5779.2670898438 -0.0216564275 - -0.7425977588 5766.2583007812 -0.0215284377 - -0.7434691787 5751.4233398438 -0.0213872381 - -0.7443393469 5737.0605468750 -0.0212473162 - -0.7452082038 5722.0546875000 -0.0211050231 - -0.7460758686 5708.2602539062 -0.0209786817 - -0.7469422221 5694.0600585938 -0.0208408386 - -0.7478073239 5678.8115234375 -0.0206989013 - -0.7486711740 5663.9956054688 -0.0205607545 - -0.7495337725 5649.0424804688 -0.0204214938 - -0.7503950596 5635.0375976562 -0.0202947482 - -0.7512550950 5619.9692382812 -0.0201551802 - -0.7521138191 5604.2812500000 -0.0200169105 - -0.7529712915 5589.4892578125 -0.0198783241 - -0.7538275123 5573.9340820312 -0.0197528414 - -0.7546824217 5559.7290039062 -0.0196133088 - -0.7555360794 5543.7031250000 -0.0194753073 - -0.7563884258 5527.5957031250 -0.0193342362 - -0.7572395205 5513.4316406250 -0.0192130841 - -0.7580893040 5497.1528320312 -0.0190740526 - -0.7589378357 5483.3330078125 -0.0189408381 - -0.7597850561 5466.8847656250 -0.0188014433 - -0.7606309652 5451.1171875000 -0.0186810605 - -0.7614756227 5436.2231445312 -0.0185425840 - -0.7623189688 5420.7890625000 -0.0184116140 - -0.7631610632 5404.2968750000 -0.0182751846 - -0.7640018463 5388.3935546875 -0.0181401912 - -0.7648413181 5372.9604492188 -0.0180209838 - -0.7656794786 5357.4897460938 -0.0178845823 - -0.7665163875 5341.3325195312 -0.0177501645 - -0.7673519254 5324.8862304688 -0.0176158454 - -0.7681862116 5309.1840820312 -0.0174983479 - -0.7690191865 5292.5541992188 -0.0173618942 - -0.7698508501 5278.6259765625 -0.0172317289 - -0.7706812620 5261.0815429688 -0.0170970112 - -0.7715103030 5244.1977539062 -0.0169614702 - -0.7723380327 5228.8515625000 -0.0168482531 - -0.7731645107 5211.0605468750 -0.0167149976 - -0.7739896178 5195.7182617188 -0.0165861882 - -0.7748134732 5179.8354492188 -0.0164580997 - -0.7756359577 5162.5346679688 -0.0163258724 - -0.7764571309 5146.7539062500 -0.0162118711 - -0.7772770524 5128.5810546875 -0.0160834733 - -0.7780956030 5113.8037109375 -0.0159549061 - -0.7789128423 5097.0009765625 -0.0158258956 - -0.7797287107 5079.3173828125 -0.0156976506 - -0.7805433273 5063.1303710938 -0.0155873504 - -0.7813566327 5046.5722656250 -0.0154590830 - -0.7821685672 5028.6069335938 -0.0153304404 - -0.7829791903 5011.4335937500 -0.0152077898 - -0.7837884426 4995.9038085938 -0.0150967948 - -0.7845964432 4979.9848632812 -0.0149724614 - -0.7854030728 4961.6889648438 -0.0148455417 - -0.7862083912 4944.1972656250 -0.0147251701 - -0.7870123386 4926.5766601562 -0.0146015845 - -0.7878149748 4910.1640625000 -0.0144948326 - -0.7886162996 4893.3652343750 -0.0143694589 - -0.7894162536 4875.5039062500 -0.0142479781 - -0.7902148962 4858.1166992188 -0.0141285462 - -0.7910121679 4840.0947265625 -0.0140073765 - -0.7918081284 4822.7832031250 -0.0139051229 - -0.7926027179 4805.8251953125 -0.0137835853 - -0.7933959365 4788.5463867188 -0.0136623885 - -0.7941879034 4769.7983398438 -0.0135384472 - -0.7949784398 4751.9467773438 -0.0134227481 - -0.7957676649 4734.2402343750 -0.0133231096 - -0.7965555191 4717.4921875000 -0.0132055245 - -0.7973420620 4700.0590820312 -0.0130865593 - -0.7981272340 4681.3188476562 -0.0129701691 - -0.7989110351 4663.0146484375 -0.0128545770 - -0.7996934652 4645.0346679688 -0.0127445562 - -0.8004745841 4629.0727539062 -0.0126445815 - -0.8012543321 4610.0166015625 -0.0125309527 - -0.8020327091 4592.2563476562 -0.0124198040 - -0.8028097749 4572.7978515625 -0.0123029733 - -0.8035854101 4555.0156250000 -0.0121879019 - -0.8043597341 4537.3056640625 -0.0120977424 - -0.8051326871 4519.0864257812 -0.0119849313 - -0.8059042692 4500.4169921875 -0.0118766008 - -0.8066744804 4482.6445312500 -0.0117576765 - -0.8074433208 4463.9023437500 -0.0116533116 - -0.8082107902 4446.3398437500 -0.0115654143 - -0.8089768887 4428.1938476562 -0.0114536509 - -0.8097416162 4408.7241210938 -0.0113458922 - -0.8105049729 4390.2924804688 -0.0112386774 - -0.8112669587 4370.7592773438 -0.0111319115 - -0.8120275736 4354.5092773438 -0.0110439286 - -0.8127867579 4335.1513671875 -0.0109403888 - -0.8135446310 4316.9462890625 -0.0108359121 - -0.8143011332 4297.1083984375 -0.0107248398 - -0.8150562048 4277.8901367188 -0.0106191188 - -0.8158099055 4258.7690429688 -0.0105171259 - -0.8165622354 4241.5302734375 -0.0104336208 - -0.8173131943 4222.2607421875 -0.0103334952 - -0.8180627823 4202.6621093750 -0.0102301808 - -0.8188109398 4183.6909179688 -0.0101288175 - -0.8195577264 4164.8867187500 -0.0100293113 - -0.8203030825 4145.3217773438 -0.0099310195 - -0.8210471272 4128.1411132812 -0.0098474231 - -0.8217897415 4108.1718750000 -0.0097470209 - -0.8225309253 4088.3884277344 -0.0096503040 - -0.8232707381 4070.2058105469 -0.0095513985 - -0.8240091801 4049.7243652344 -0.0094557013 - -0.8247462511 4030.3337402344 -0.0093601849 - -0.8254818320 4012.7539062500 -0.0092826188 - -0.8262161016 3993.1286621094 -0.0091861589 - -0.8269489408 3972.0920410156 -0.0090904711 - -0.8276803493 3953.4702148438 -0.0089945681 - -0.8284103870 3933.9819335938 -0.0089040855 - -0.8291389942 3916.0429687500 -0.0088300155 - -0.8298662305 3895.5891113281 -0.0087381583 - -0.8305920362 3875.8876953125 -0.0086497013 - -0.8313164115 3856.5568847656 -0.0085515827 - -0.8320394158 3836.3276367188 -0.0084581403 - -0.8327609897 3817.1977539062 -0.0083665345 - -0.8334811926 3797.4804687500 -0.0083012357 - -0.8341999054 3777.1596679688 -0.0082125980 - -0.8349172473 3758.6950683594 -0.0081232926 - -0.8356332183 3738.1628417969 -0.0080336044 - -0.8363476992 3718.6264648438 -0.0079439636 - -0.8370608091 3698.0747070312 -0.0078579308 - -0.8377724886 3678.5986328125 -0.0077951867 - -0.8384827375 3658.1894531250 -0.0077079791 - -0.8391915560 3638.3088378906 -0.0076247598 - -0.8398989439 3619.7697753906 -0.0075339796 - -0.8406049609 3598.8193359375 -0.0074501871 - -0.8413094878 3579.7231445312 -0.0073662996 - -0.8420126438 3557.9768066406 -0.0072835502 - -0.8427143693 3538.0090332031 -0.0072250580 - -0.8434146047 3518.7041015625 -0.0071426742 - -0.8441134691 3497.9733886719 -0.0070580416 - -0.8448109031 3478.5317382812 -0.0069767842 - -0.8455068469 3456.2971191406 -0.0068949945 - -0.8462014198 3437.6081542969 -0.0068158451 - -0.8468945026 3416.9633789062 -0.0067381356 - -0.8475862145 3397.7431640625 -0.0066761347 - -0.8482764363 3376.9619140625 -0.0065996931 - -0.8489652276 3356.4316406250 -0.0065220972 - -0.8496526480 3336.2534179688 -0.0064455285 - -0.8503385186 3315.2668457031 -0.0063699032 - -0.8510230184 3294.2788085938 -0.0062884670 - -0.8517060876 3274.9038085938 -0.0062382771 - -0.8523876667 3254.6860351562 -0.0061622523 - -0.8530678153 3232.7893066406 -0.0060898042 - -0.8537465334 3211.9704589844 -0.0060081603 - -0.8544237614 3191.4770507812 -0.0059369057 - -0.8550995588 3170.9960937500 -0.0058632153 - -0.8557739258 3151.2260742188 -0.0058160694 - -0.8564468622 3131.5312500000 -0.0057444456 - -0.8571183085 3109.3857421875 -0.0056672003 - -0.8577883244 3088.9260253906 -0.0055972836 - -0.8584568501 3068.0217285156 -0.0055287923 - -0.8591239452 3048.0646972656 -0.0054592257 - -0.8597895503 3025.8347167969 -0.0053860159 - -0.8604537249 3006.4323730469 -0.0053389333 - -0.8611164689 2985.2707519531 -0.0052719861 - -0.8617777228 2965.0529785156 -0.0052040704 - -0.8624375463 2943.8464355469 -0.0051332572 - -0.8630958796 2922.3215332031 -0.0050656167 - -0.8637527227 2901.9042968750 -0.0049990509 - -0.8644081354 2880.4304199219 -0.0049343449 - -0.8650621176 2859.6022949219 -0.0048650247 - -0.8657145500 2839.7729492188 -0.0048266063 - -0.8663655519 2818.0087890625 -0.0047585815 - -0.8670151234 2796.5681152344 -0.0046977336 - -0.8676632047 2775.4946289062 -0.0046297414 - -0.8683097959 2754.5493164062 -0.0045690304 - -0.8689548969 2733.4372558594 -0.0045040362 - -0.8695985675 2711.4531250000 -0.0044428548 - -0.8702407479 2690.1354980469 -0.0043766918 - -0.8708814383 2671.7202148438 -0.0043417998 - -0.8715206385 2648.7443847656 -0.0042804843 - -0.8721584082 2628.4218750000 -0.0042206971 - -0.8727946877 2605.8642578125 -0.0041574747 - -0.8734294772 2585.4189453125 -0.0040986626 - -0.8740627766 2562.8044433594 -0.0040388294 - -0.8746945858 2543.1489257812 -0.0039814217 - -0.8753249645 2521.6198730469 -0.0039442861 - -0.8759537935 2500.6391601562 -0.0038877139 - -0.8765811920 2478.9848632812 -0.0038295060 - -0.8772071004 2456.9104003906 -0.0037705279 - -0.8778314590 2436.0537109375 -0.0037142087 - -0.8784543872 2414.8249511719 -0.0036589773 - -0.8790758252 2392.3298339844 -0.0036031986 - -0.8796957731 2372.8168945312 -0.0035705692 - -0.8803142309 2351.3625488281 -0.0035176203 - -0.8809311390 2330.8913574219 -0.0034626087 - -0.8815466166 2307.5073242188 -0.0034052324 - -0.8821605444 2285.6440429688 -0.0033523014 - -0.8827730417 2264.9909667969 -0.0032984177 - -0.8833839893 2242.6037597656 -0.0032467989 - -0.8839935064 2221.8066406250 -0.0031920313 - -0.8846014738 2200.0019531250 -0.0031405580 - -0.8852079511 2179.6296386719 -0.0031157513 - -0.8858128786 2157.7690429688 -0.0030612503 - -0.8864163756 2135.9858398438 -0.0030120355 - -0.8870183229 2114.0227050781 -0.0029600041 - -0.8876187801 2093.2241210938 -0.0029088198 - -0.8882177472 2070.3771972656 -0.0028600385 - -0.8888152242 2049.1655273438 -0.0028098461 - -0.8894111514 2026.8572998047 -0.0027593910 - -0.8900055885 2005.1859130859 -0.0027118560 - -0.8905985355 1983.7619628906 -0.0026626580 - -0.8911899328 1962.2181396484 -0.0026394115 - -0.8917798400 1941.8470458984 -0.0025933434 - -0.8923682570 1919.7152099609 -0.0025456562 - -0.8929551244 1897.3006591797 -0.0025002691 - -0.8935405016 1875.6480712891 -0.0024513074 - -0.8941243887 1853.2337646484 -0.0024064484 - -0.8947067261 1831.6977539062 -0.0023610950 - -0.8952875137 1810.7795410156 -0.0023397442 - -0.8958668113 1788.4483642578 -0.0022969656 - -0.8964446187 1767.4323730469 -0.0022523808 - -0.8970208764 1746.3414306641 -0.0022061402 - -0.8975956440 1722.9667968750 -0.0021636719 - -0.8981688619 1701.7318115234 -0.0021196210 - -0.8987405300 1679.9696044922 -0.0020749287 - -0.8993107080 1657.8797607422 -0.0020335077 - -0.8998793960 1637.4339599609 -0.0020175097 - -0.9004465342 1615.4617919922 -0.0019735945 - -0.9010121226 1593.2686767578 -0.0019334326 - -0.9015761614 1571.1408691406 -0.0018915079 - -0.9021387100 1549.6339111328 -0.0018484092 - -0.9026997089 1527.2834472656 -0.0018089806 - -0.9032592177 1505.7280273438 -0.0017664752 - -0.9038171768 1484.2723388672 -0.0017266331 - -0.9043735862 1462.0849609375 -0.0016888971 - -0.9049285054 1440.0550537109 -0.0016462911 - -0.9054818153 1418.7639160156 -0.0016082303 - -0.9060336351 1395.8293457031 -0.0015692322 - -0.9065839052 1374.2379150391 -0.0015295304 - -0.9071326852 1352.4716796875 -0.0014913953 - -0.9076798558 1329.9248046875 -0.0014810197 - -0.9082255363 1308.8040771484 -0.0014421698 - -0.9087696671 1287.2071533203 -0.0014057523 - -0.9093122482 1263.9582519531 -0.0013681913 - -0.9098532796 1243.0140380859 -0.0013309161 - -0.9103928208 1221.3447265625 -0.0012955945 - -0.9109307528 1198.7536621094 -0.0012562686 - -0.9114671946 1176.8533935547 -0.0012224227 - -0.9120020270 1156.4897460938 -0.0012151930 - -0.9125353694 1134.0750732422 -0.0011774816 - -0.9130671620 1111.1655273438 -0.0011438691 - -0.9135973454 1090.6048583984 -0.0011099784 - -0.9141260386 1067.4321289062 -0.0010731289 - -0.9146531820 1045.2397460938 -0.0010404297 - -0.9151787758 1024.4075927734 -0.0010331485 - -0.9157027602 1002.8243408203 -0.0009996317 - -0.9162252545 980.6271362305 -0.0009668837 - -0.9167461991 959.5491333008 -0.0009338361 - -0.9172655344 936.9606323242 -0.0009006574 - -0.9177833796 915.4798583984 -0.0008688078 - -0.9182996154 892.1756591797 -0.0008360482 - -0.9188143015 870.8234863281 -0.0008034938 - -0.9193274379 849.1296386719 -0.0007713333 - -0.9198390245 827.4605712891 -0.0007402387 - -0.9203490615 804.5405273438 -0.0007094500 - -0.9208574891 783.5673828125 -0.0006782386 - -0.9213644266 761.6694335938 -0.0006475304 - -0.9218697548 739.3003540039 -0.0006161919 - -0.9223735332 716.5473022461 -0.0005859305 - -0.9228757620 695.2414550781 -0.0005560413 - -0.9233763814 674.0446777344 -0.0005259279 - -0.9238754511 651.3555908203 -0.0004974014 - -0.9243729711 629.7562255859 -0.0004669917 - -0.9248689413 607.7331542969 -0.0004384238 - -0.9253633022 585.5168457031 -0.0004102663 - -0.9258561134 563.1760864258 -0.0003806689 - -0.9263473749 542.7924194336 -0.0003816245 - -0.9268370271 520.4465942383 -0.0003528295 - -0.9273251295 498.6882324219 -0.0003254703 - -0.9278116822 476.6395263672 -0.0002982080 - -0.9282966256 455.9379272461 -0.0002991590 - -0.9287800193 435.0403442383 -0.0002722959 - -0.9292618036 412.4477539062 -0.0002452989 - -0.9297420382 391.9957580566 -0.0002479413 - -0.9302206635 369.0271911621 -0.0002200928 - -0.9306977391 347.2884521484 -0.0001944082 - -0.9311732650 325.8673400879 -0.0001975678 - -0.9316471815 305.5305480957 -0.0001718629 - -0.9321195483 284.1644287109 -0.0001470526 - -0.9325903058 260.5587158203 -0.0001208659 - -0.9330594540 239.2657165527 -0.0000955147 - -0.9335270524 218.3941040039 -0.0000714521 - -0.9339931011 196.4933471680 -0.0000459836 - -0.9344574809 173.5871582031 -0.0000212094 - -0.9349203706 151.5331115723 0.0000321788 - -0.9353815913 130.5964508057 0.0000561604 - -0.9358412623 107.1541595459 0.0001104019 - -0.9362993836 84.6552047729 0.0001340721 - -0.9367558956 63.3925056458 0.0001867841 - -0.9372107983 40.0531463623 0.0002404437 - -0.9376640916 18.2262458801 0.0002926694 - -0.9381158352 -5.2077102661 0.0003751353 - -0.9385659695 -28.6815643311 0.0004277584 - -0.9390145540 -51.5559425354 0.0005101682 - -0.9394615293 -74.6344528198 0.0005629793 - -0.9399068952 -98.7034530640 0.0006449258 - -0.9403506517 -120.4287033081 0.0006973715 - -0.9407928586 -144.2984313965 0.0007789753 - -0.9412333965 -167.7662048340 0.0008612649 - -0.9416723847 -190.3339538574 0.0009131058 - -0.9421098232 -213.7350616455 0.0009945007 - -0.9425455928 -235.9967193604 0.0010461899 - -0.9429798126 -259.4863281250 0.0011275829 - -0.9434123635 -282.1994323730 0.0011791859 - -0.9438433647 -304.3579101562 0.0012305843 - -0.9442728162 -326.8710021973 0.0012815791 - -0.9447005987 -349.0129699707 0.0013334844 - -0.9451267719 -372.2441711426 0.0013544862 - -0.9455513954 -392.8294372559 0.0014044365 - -0.9459743500 -414.2396240234 0.0014253713 - -0.9463957548 31335.3574218750 -0.0002008044 - -0.9468155503 31326.9355468750 -0.0002091620 - -0.9472337365 31317.1914062500 -0.0002168365 - -0.9476503134 31309.0527343750 -0.0002260307 - -0.9480652809 31299.8437500000 -0.0002342476 - -0.9484786391 31290.7695312500 -0.0002423274 - -0.9488903880 31282.0957031250 -0.0002503538 - -0.9493005276 31272.7148437500 -0.0002581991 - -0.9497090578 31265.2695312500 -0.0002658583 - -0.9501159787 31256.7734375000 -0.0002744823 - -0.9505212903 31247.5742187500 -0.0002812470 - -0.9509249330 31237.5078125000 -0.0002887639 - -0.9513270259 31230.6406250000 -0.0002969094 - -0.9517275095 31220.7167968750 -0.0003035851 - -0.9521263838 31212.1835937500 -0.0003108033 - -0.9525236487 31203.3886718750 -0.0003179784 - -0.9529192448 31195.4472656250 -0.0003256438 - -0.9533132911 31185.6679687500 -0.0003321477 - -0.9537056684 31176.0449218750 -0.0003392833 - -0.9540964365 31167.9550781250 -0.0003458920 - -0.9544855952 31158.5468750000 -0.0003526872 - -0.9548731446 31149.6171875000 -0.0003584293 - -0.9552590847 31141.3125000000 -0.0003659350 - -0.9556434155 31133.9082031250 -0.0003722955 - -0.9560260773 31123.8398437500 -0.0003788087 - -0.9564071298 31115.1972656250 -0.0003841957 - -0.9567865729 31106.3906250000 -0.0003906070 - -0.9571644068 31098.3496093750 -0.0003965838 - -0.9575406313 31089.0097656250 -0.0004028743 - -0.9579151869 31081.4296875000 -0.0004083848 - -0.9582881331 31071.9863281250 -0.0004149177 - -0.9586594701 31064.4511718750 -0.0004204924 - -0.9590291977 31055.3964843750 -0.0004264878 - -0.9593972564 31046.7695312500 -0.0004319828 - -0.9597637057 31037.6601562500 -0.0004369177 - -0.9601285458 31029.1699218750 -0.0004425774 - -0.9604917169 31020.6718750000 -0.0004481845 - -0.9608532786 31012.7480468750 -0.0004531255 - -0.9612132311 31003.5644531250 -0.0004587955 - -0.9615715146 30995.1757812500 -0.0004632531 - -0.9619281888 30986.1875000000 -0.0004688257 - -0.9622832537 30976.2421875000 -0.0004733279 - -0.9626366496 30969.5058593750 -0.0004780187 - -0.9629884362 30959.7187500000 -0.0004837934 - -0.9633386135 30950.8105468750 -0.0004875988 - -0.9636871219 30942.9277343750 -0.0004926645 - -0.9640340209 30935.5566406250 -0.0004971237 - -0.9643792510 30926.0644531250 -0.0005026862 - -0.9647228718 30918.8437500000 -0.0005070162 - -0.9650648832 30907.9277343750 -0.0005104225 - -0.9654052258 30900.4472656250 -0.0005145487 - -0.9657438993 30891.4726562500 -0.0005198396 - -0.9660809636 30884.6113281250 -0.0005239183 - -0.9664164186 30875.8066406250 -0.0005286948 - -0.9667502046 30867.2656250000 -0.0005318471 - -0.9670823216 30859.5703125000 -0.0005369281 - -0.9674128294 30850.9804687500 -0.0005400254 - -0.9677417278 30841.9433593750 -0.0005447270 - -0.9680689573 30833.7089843750 -0.0005476215 - -0.9683945775 30825.4140625000 -0.0005521197 - -0.9687185287 30818.4687500000 -0.0005562736 - -0.9690408111 30808.5761718750 -0.0005598798 - -0.9693614841 30799.4589843750 -0.0005625654 - -0.9696804881 30792.5781250000 -0.0005667802 - -0.9699978828 30783.8769531250 -0.0005698571 - -0.9703136086 30775.4355468750 -0.0005741901 - -0.9706276655 30768.0351562500 -0.0005775893 - -0.9709401131 30759.7949218750 -0.0005808528 - -0.9712509513 30751.5527343750 -0.0005846920 - -0.9715600610 30742.6503906250 -0.0005880281 - -0.9718675613 30735.9042968750 -0.0005908654 - -0.9721734524 30725.6542968750 -0.0005934988 - -0.9724776149 30718.5312500000 -0.0005969986 - -0.9727801681 30709.9316406250 -0.0006001622 - -0.9730811119 30703.4218750000 -0.0006031569 - -0.9733803272 30693.5175781250 -0.0006060536 - -0.9736779332 30687.0703125000 -0.0006094793 - -0.9739739299 30677.2539062500 -0.0006126598 - -0.9742681980 30670.6855468750 -0.0006153811 - -0.9745608568 30661.4531250000 -0.0006187645 - -0.9748518467 30653.6601562500 -0.0006207011 - -0.9751412272 30645.7226562500 -0.0006244437 - -0.9754289389 30639.0703125000 -0.0006262515 - -0.9757149816 30629.0390625000 -0.0006296261 - -0.9759993553 30621.9121093750 -0.0006314817 - -0.9762820601 30613.5273437500 -0.0006342618 - -0.9765631557 30606.9433593750 -0.0006367678 - -0.9768425822 30597.6210937500 -0.0006399557 - -0.9771203399 30589.6191406250 -0.0006416658 - -0.9773964286 30582.8730468750 -0.0006433089 - -0.9776709080 30574.4941406250 -0.0006466438 - -0.9779436588 30566.6972656250 -0.0006487683 - -0.9782148004 30559.2050781250 -0.0006514242 - -0.9784842730 30551.4062500000 -0.0006527193 - -0.9787521362 30543.8066406250 -0.0006561873 - -0.9790182710 30536.6816406250 -0.0006582802 - -0.9792827964 30527.8437500000 -0.0006605303 - -0.9795455933 30520.8437500000 -0.0006619466 - -0.9798067808 30512.8300781250 -0.0006649373 - -0.9800662994 30504.9863281250 -0.0006663231 - -0.9803241491 30497.1093750000 -0.0006687994 - -0.9805803299 30490.0996093750 -0.0006698435 - -0.9808349013 30481.5546875000 -0.0006729515 - -0.9810877442 30474.5976562500 -0.0006748487 - -0.9813389778 30466.4921875000 -0.0006773922 - -0.9815884829 30459.7949218750 -0.0006783042 - -0.9818363786 30451.6972656250 -0.0006813481 - -0.9820826054 30444.1601562500 -0.0006822319 - -0.9823271036 30436.3652343750 -0.0006846860 - -0.9825699925 30428.3046875000 -0.0006853122 - -0.9828112125 30421.1367187500 -0.0006878581 - -0.9830507636 30413.9023437500 -0.0006886177 - -0.9832886457 30405.5664062500 -0.0006910384 - -0.9835248590 30398.8652343750 -0.0006925183 - -0.9837594032 30392.4843750000 -0.0006955486 - -0.9839922786 30385.0332031250 -0.0006963842 - -0.9842234850 30378.9003906250 -0.0006980142 - -0.9844530225 30369.9003906250 -0.0006992508 - -0.9846809506 30362.8281250000 -0.0007000102 - -0.9849071503 30355.2089843750 -0.0007023765 - -0.9851316810 30348.0468750000 -0.0007037101 - -0.9853545427 30341.5800781250 -0.0007060211 - -0.9855757356 30333.9531250000 -0.0007058117 - -0.9857952595 30326.2031250000 -0.0007084493 - -0.9860131145 30319.9570312500 -0.0007093881 - -0.9862293005 30311.6992187500 -0.0007112303 - -0.9864437580 30305.4785156250 -0.0007125803 - -0.9866566062 30298.4843750000 -0.0007148079 - -0.9868677855 30290.6367187500 -0.0007146250 - -0.9870772958 30283.4453125000 -0.0007164842 - -0.9872850776 30277.0605468750 -0.0007181579 - -0.9874912500 30268.4550781250 -0.0007192933 - -0.9876956940 30262.7382812500 -0.0007205805 - -0.9878984690 30256.9160156250 -0.0007213431 - -0.9880995750 30249.2500000000 -0.0007232740 - -0.9882990718 30242.1152343750 -0.0007229494 - -0.9884968400 30234.5449218750 -0.0007255515 - -0.9886928797 30228.1054687500 -0.0007255927 - -0.9888873100 30220.9238281250 -0.0007274830 - -0.9890800714 30215.2949218750 -0.0007286114 - -0.9892711043 30207.2695312500 -0.0007305098 - -0.9894605279 30200.7656250000 -0.0007302305 - -0.9896482229 30192.6503906250 -0.0007323367 - -0.9898342490 30187.0000000000 -0.0007328808 - -0.9900186062 30180.0058593750 -0.0007347001 - -0.9902012348 30173.8164062500 -0.0007343707 - -0.9903822541 30167.5078125000 -0.0007370033 - -0.9905615449 30159.6113281250 -0.0007366952 - -0.9907392263 30154.1562500000 -0.0007388637 - -0.9909151793 30148.2656250000 -0.0007400751 - -0.9910894632 30141.4765625000 -0.0007396929 - -0.9912620187 30133.9042968750 -0.0007407551 - -0.9914329648 30127.8476562500 -0.0007412161 - -0.9916021824 30121.2441406250 -0.0007429355 - -0.9917697310 30114.9199218750 -0.0007435639 - -0.9919356108 30107.6464843750 -0.0007453253 - -0.9920997620 30102.7382812500 -0.0007456939 - -0.9922623038 30094.8925781250 -0.0007476011 - -0.9924231172 30089.2070312500 -0.0007473023 - -0.9925822616 30081.6093750000 -0.0007485313 - -0.9927397370 30077.1328125000 -0.0007495461 - -0.9928954840 30069.4882812500 -0.0007507318 - -0.9930495620 30063.1191406250 -0.0007504480 - -0.9932019711 30057.7714843750 -0.0007529939 - -0.9933527112 30051.8261718750 -0.0007528435 - -0.9935017824 30044.7011718750 -0.0007525441 - -0.9936491251 30037.7851562500 -0.0007544218 - -0.9937947989 30033.8867187500 -0.0007548764 - -0.9939388037 30026.2617187500 -0.0007562705 - -0.9940810800 30021.6796875000 -0.0007566678 - -0.9942216873 30015.1464843750 -0.0007586296 - -0.9943606257 30008.8828125000 -0.0007591269 - -0.9944978952 30001.8847656250 -0.0007600344 - -0.9946334362 29997.0195312500 -0.0007596753 - -0.9947673082 29990.0019531250 -0.0007617074 - -0.9948995113 29985.7382812500 -0.0007621697 - -0.9950299859 29978.9726562500 -0.0007635239 - -0.9951587915 29972.6562500000 -0.0007634290 - -0.9952859282 29967.2871093750 -0.0007648710 - -0.9954113960 29961.6503906250 -0.0007649462 - -0.9955351353 29955.3398437500 -0.0007655048 - -0.9956572056 29950.3710937500 -0.0007668125 - -0.9957775474 29945.1191406250 -0.0007675728 - -0.9958962202 29938.4960937500 -0.0007682158 - -0.9960132241 29933.4921875000 -0.0007682763 - -0.9961285591 29927.6484375000 -0.0007711428 - -0.9962421656 29921.5664062500 -0.0007698673 - -0.9963541031 29915.9609375000 -0.0007721519 - -0.9964643121 29910.3125000000 -0.0007720497 - -0.9965729117 29904.9414062500 -0.0007738394 - -0.9966797829 29899.2597656250 -0.0007738093 - -0.9967849255 29893.0468750000 -0.0007756117 - -0.9968883991 29889.3691406250 -0.0007761128 - -0.9969902039 29884.6152343750 -0.0007759722 - -0.9970902801 29878.6972656250 -0.0007773893 - -0.9971886873 29871.7265625000 -0.0007770404 - -0.9972854257 29866.8339843750 -0.0007794351 - -0.9973804951 29862.5117187500 -0.0007796644 - -0.9974738359 29857.4277343750 -0.0007815098 - -0.9975654483 29852.1113281250 -0.0007812358 - -0.9976553917 29845.7167968750 -0.0007829771 - -0.9977436662 29841.5625000000 -0.0007826602 - -0.9978302717 29835.7070312500 -0.0007851633 - -0.9979151487 29831.1835937500 -0.0007850773 - -0.9979982972 29824.8593750000 -0.0007867463 - -0.9980798364 29820.4960937500 -0.0007867494 - -0.9981596470 29816.3222656250 -0.0007864460 - -0.9982377291 29810.7636718750 -0.0007893067 - -0.9983141422 29805.9550781250 -0.0007891918 - -0.9983888865 29800.6269531250 -0.0007911804 - -0.9984619021 29795.9804687500 -0.0007911160 - -0.9985332489 29792.2050781250 -0.0007938061 - -0.9986029267 29786.8085937500 -0.0007933155 - -0.9986708760 29781.5878906250 -0.0007954092 - -0.9987371564 29776.8867187500 -0.0007957747 - -0.9988017082 29771.6367187500 -0.0007972718 - -0.9988645911 29768.2734375000 -0.0007985658 - -0.9989257455 29762.4765625000 -0.0007998653 - -0.9989852905 29757.6621093750 -0.0008005979 - -0.9990430474 29752.6367187500 -0.0008025658 - -0.9990991354 29748.9824218750 -0.0008032396 - -0.9991535544 29744.4062500000 -0.0008035878 - -0.9992063046 29739.4042968750 -0.0008056175 - -0.9992573261 29735.9882812500 -0.0008060954 - -0.9993066192 29730.8554687500 -0.0008085645 - -0.9993542433 29726.6015625000 -0.0008087427 - -0.9994001985 29722.2500000000 -0.0008118969 - -0.9994444251 29717.8398437500 -0.0008116256 - -0.9994869828 29712.0078125000 -0.0008135770 - -0.9995278716 29708.2734375000 -0.0008147341 - -0.9995670319 29704.8242187500 -0.0008170722 - -0.9996044636 29699.3535156250 -0.0008178232 - -0.9996402264 29695.7421875000 -0.0008201913 - -0.9996743202 29691.9472656250 -0.0008210131 - -0.9997066855 29685.6816406250 -0.0008230026 - -0.9997373819 29682.8203125000 -0.0008247491 - -0.9997664094 29680.5664062500 -0.0008257058 - -0.9997937083 29676.8691406250 -0.0008289815 - -0.9998192787 29671.5488281250 -0.0008292301 - -0.9998431802 29666.7949218750 -0.0008323217 - -0.9998654127 29663.5312500000 -0.0008329250 - -0.9998859167 29660.3261718750 -0.0008364446 - -0.9999047518 29655.0253906250 -0.0008367569 - -0.9999218583 29651.2304687500 -0.0008394218 - -0.9999372959 29648.0468750000 -0.0008412410 - -0.9999510050 29643.5781250000 -0.0008442506 - -0.9999630451 29640.4199218750 -0.0008454430 - -0.9999734163 29635.8066406250 -0.0008488286 - -0.9999820590 29632.3613281250 -0.0008500536 - -0.9999890327 29628.2187500000 -0.0008533197 - -0.9999942780 29625.7441406250 -0.0008560598 - -0.9999978542 29623.4648437500 -0.0008577726 - -0.9999997020 29618.6757812500 -0.0008606594 - -0.9999998808 29614.6367187500 -0.0008623011 - -0.9999983311 29611.9785156250 -0.0008661119 - -0.9999951124 29608.6757812500 -0.0008686648 - -0.9999902248 29605.0468750000 -0.0008726080 - -0.9999836087 29600.8105468750 -0.0008738436 - -0.9999752641 29598.4785156250 -0.0008779729 - -0.9999653101 29594.9667968750 -0.0008799174 - -0.9999535680 29591.2050781250 -0.0008840717 - -0.9999402165 29588.1308593750 -0.0008872340 - -0.9999251366 29584.8867187500 -0.0008912060 - -0.9999083281 29581.3750000000 -0.0008934106 - -0.9998898506 29578.6250000000 -0.0008976703 - -0.9998697042 29575.8808593750 -0.0009012666 - -0.9998478293 29572.9570312500 -0.0009054739 - -0.9998242259 29570.8378906250 -0.0009093598 - -0.9997990131 29566.4121093750 -0.0009132205 - -0.9997720122 29563.9921875000 -0.0009172148 - -0.9997434020 29561.5644531250 -0.0009206249 - -0.9997130632 29556.6210937500 -0.0009245470 - -0.9996809959 29554.8027343750 -0.0009288872 - -0.9996472597 29551.5664062500 -0.0009342277 - -0.9996118546 29549.0039062500 -0.0009380552 - -0.9995747209 29545.9863281250 -0.0009433522 - -0.9995359182 29543.0000000000 -0.0009476258 - -0.9994953871 29540.9707031250 -0.0009534108 - -0.9994531870 29537.9433593750 -0.0009575911 - -0.9994092584 29533.7890625000 -0.0009632849 - -0.9993636608 29533.7929687500 -0.0009693456 - -0.9993163943 29529.6562500000 -0.0009747817 - -0.9992673993 29528.0390625000 -0.0009800286 - -0.9992167354 29525.4121093750 -0.0009863768 - -0.9991643429 29523.7011718750 -0.0009922246 - -0.9991102815 29520.5253906250 -0.0009985915 - -0.9990545511 29519.0644531250 -0.0010042714 - -0.9989970922 29515.1699218750 -0.0010114278 - -0.9989379048 29513.5039062500 -0.0010172743 - -0.9988771081 29510.7187500000 -0.0010251964 - -0.9988145828 29509.8574218750 -0.0010315779 - -0.9987503290 29506.0117187500 -0.0010392619 - -0.9986844063 29503.4101562500 -0.0010455638 - -0.9986168146 29502.7968750000 -0.0010529985 - -0.9985474944 29500.2324218750 -0.0010611159 - -0.9984765053 29498.2500000000 -0.0010683509 - -0.9984037876 29497.2460937500 -0.0010782174 - -0.9983294010 29495.4296875000 -0.0010858317 - -0.9982533455 29491.7949218750 -0.0010943686 - -0.9981755614 29490.6347656250 -0.0011030856 - -0.9980961084 29488.0683593750 -0.0011122210 - -0.9980149269 29486.2089843750 -0.0011214991 - -0.9979320765 29486.1035156250 -0.0011321019 - -0.9978475571 29483.8691406250 -0.0011412295 - -0.9977613091 29480.8046875000 -0.0011515447 - -0.9976733923 29479.4238281250 -0.0011611118 - -0.9975837469 29478.0976562500 -0.0011730607 - -0.9974924922 29476.1972656250 -0.0011827908 - -0.9973994493 29474.9550781250 -0.0011947199 - -0.9973047972 29473.2148437500 -0.0012054271 - -0.9972084165 29470.6289062500 -0.0012177214 - -0.9971103072 29469.4218750000 -0.0012298410 - -0.9970105886 29468.8007812500 -0.0012427226 - -0.9969091415 29467.4589843750 -0.0012544165 - -0.9968059659 29465.1621093750 -0.0012682925 - -0.9967011213 29464.6152343750 -0.0012807075 - -0.9965946078 29462.2617187500 -0.0012946958 - -0.9964864254 29461.2050781250 -0.0013084998 - -0.9963765144 29460.6210937500 -0.0013241025 - -0.9962649345 29459.7265625000 -0.0013383467 - -0.9961516261 29458.2558593750 -0.0013539791 - -0.9960366488 29456.7128906250 -0.0013679198 - -0.9959200025 29455.0664062500 -0.0013846189 - -0.9958016872 29454.4160156250 -0.0014010940 - -0.9956816435 29452.4277343750 -0.0014174244 - -0.9955599308 29451.7480468750 -0.0014346023 - -0.9954364896 29452.1835937500 -0.0014530102 - -0.9953114390 29451.0097656250 -0.0014708703 - -0.9951846600 29449.5683593750 -0.0014891913 - -0.9950561523 29449.3027343750 -0.0015076532 - -0.9949259758 29447.3710937500 -0.0015278235 - -0.9947941303 29446.9824218750 -0.0015474352 - -0.9946606159 29445.9648437500 -0.0015675148 - -0.9945254326 29445.1894531250 -0.0015881115 - -0.9943885207 29445.4160156250 -0.0016103333 - -0.9942499399 29444.3867187500 -0.0016304693 - -0.9941096306 29443.4941406250 -0.0016537762 - -0.9939676523 29443.0058593750 -0.0016774898 - -0.9938240051 29442.2246093750 -0.0017017282 - -0.9936786890 29442.0468750000 -0.0017235500 - -0.9935317039 29440.5898437500 -0.0017496854 - -0.9933829904 29441.8730468750 -0.0017750808 - -0.9932326078 29439.8984375000 -0.0018016357 - -0.9930805564 29441.8242187500 -0.0018269769 - -0.9929267764 29440.2441406250 -0.0018544709 - -0.9927713275 29439.6914062500 -0.0018816604 - -0.9926142097 29438.4355468750 -0.0019110551 - -0.9924554229 29438.1132812500 -0.0019388910 - -0.9922949076 29437.9882812500 -0.0019696588 - -0.9921327829 29438.1894531250 -0.0020006341 - -0.9919689298 29437.9726562500 -0.0020311987 - -0.9918034077 29438.2539062500 -0.0020627833 - -0.9916361570 29438.9062500000 -0.0020967077 - -0.9914672971 29438.4609375000 -0.0021300337 - -0.9912967086 29438.0898437500 -0.0021640831 - -0.9911244512 29439.5058593750 -0.0022003655 - -0.9909505248 29438.4609375000 -0.0022361281 - -0.9907749295 29439.5332031250 -0.0022731775 - -0.9905976057 29438.1757812500 -0.0023091529 - -0.9904186130 29440.3808593750 -0.0023488812 - -0.9902379513 29438.3125000000 -0.0023874203 - -0.9900556207 29439.2500000000 -0.0024277824 - -0.9898716211 29439.9414062500 -0.0024698146 - -0.9896859527 29440.2226562500 -0.0025116617 - -0.9894985557 29440.6171875000 -0.0025545582 - -0.9893095493 29441.0527343750 -0.0025984619 - -0.9891188145 29441.6953125000 -0.0026442914 - -0.9889264107 29443.1035156250 -0.0026911208 - -0.9887323380 29441.5722656250 -0.0027359121 - -0.9885365963 29443.5957031250 -0.0027865658 - -0.9883391261 29444.4589843750 -0.0028365531 - -0.9881400466 29444.6230468750 -0.0028857142 - -0.9879392982 29445.0449218750 -0.0029354997 - -0.9877368212 29446.1777343750 -0.0029899455 - -0.9875326753 29446.3398437500 -0.0030452309 - -0.9873268604 29447.1582031250 -0.0030975034 - -0.9871193767 29447.9707031250 -0.0031549416 - -0.9869102836 29447.1621093750 -0.0032122047 - -0.9866994023 29449.8847656250 -0.0032721239 - -0.9864869118 29450.0371093750 -0.0033316468 - -0.9862727523 29451.2792968750 -0.0033918773 - -0.9860569239 29452.0078125000 -0.0034539555 - -0.9858394265 29453.8164062500 -0.0035169728 - -0.9856202006 29454.7421875000 -0.0035848822 - -0.9853993654 29456.2519531250 -0.0036516879 - -0.9851768613 29455.5136718750 -0.0037171976 - -0.9849526286 29459.4042968750 -0.0037877720 - -0.9847267866 29459.1914062500 -0.0038596247 - -0.9844992161 29460.0390625000 -0.0039305296 - -0.9842700362 29462.8046875000 -0.0040057106 - -0.9840391874 29462.6093750000 -0.0040791119 - -0.9838066101 29463.6835937500 -0.0041554477 - -0.9835724235 29466.0722656250 -0.0042355978 - -0.9833365083 29467.3046875000 -0.0043165358 - -0.9830989838 29468.5781250000 -0.0043971920 - -0.9828597903 29470.0488281250 -0.0044827000 - -0.9826188684 29471.5156250000 -0.0045660543 - -0.9823763371 29473.0156250000 -0.0046500843 - -0.9821321368 29474.1308593750 -0.0047408310 - -0.9818862677 29476.7656250000 -0.0048320806 - -0.9816387296 29478.5000000000 -0.0049213185 - -0.9813895226 29480.3242187500 -0.0050177490 - -0.9811386466 29481.7460937500 -0.0051122005 - -0.9808861017 29483.9101562500 -0.0052093160 - -0.9806319475 29484.5214843750 -0.0053096293 - -0.9803760648 29487.6171875000 -0.0054088957 - -0.9801185727 29488.9335937500 -0.0055135856 - -0.9798593521 29491.1640625000 -0.0056190435 - -0.9795985222 29492.5488281250 -0.0057236883 - -0.9793360233 29493.1660156250 -0.0058312537 - -0.9790718555 29495.2167968750 -0.0059408406 - -0.9788060188 29496.8320312500 -0.0060551399 - -0.9785385728 29500.9394531250 -0.0061712619 - -0.9782693982 29502.6445312500 -0.0062869010 - -0.9779986143 29504.0527343750 -0.0064096372 - -0.9777261615 29506.0937500000 -0.0065290462 - -0.9774520397 29509.0097656250 -0.0066487463 - -0.9771762490 29509.6640625000 -0.0067785364 - -0.9768988490 29513.7109375000 -0.0069019003 - -0.9766197801 29514.4550781250 -0.0070335409 - -0.9763389826 29517.8476562500 -0.0071634362 - -0.9760566354 29519.8027343750 -0.0073013124 - -0.9757725596 29521.1621093750 -0.0074369973 - -0.9754868746 29524.3906250000 -0.0075741159 - -0.9751995206 29526.8867187500 -0.0077139055 - -0.9749104977 29529.0605468750 -0.0078562386 - -0.9746198058 29531.7812500000 -0.0080035198 - -0.9743275046 29534.2832031250 -0.0081521543 - -0.9740335345 29537.0742187500 -0.0083053997 - -0.9737378955 29539.7304687500 -0.0084592970 - -0.9734406471 29541.3046875000 -0.0086116185 - -0.9731417298 29545.5351562500 -0.0087695662 - -0.9728411436 29547.4648437500 -0.0089299055 - -0.9725388885 29550.2539062500 -0.0090937205 - -0.9722350240 29553.2812500000 -0.0092548402 - -0.9719294906 29556.0136718750 -0.0094235875 - -0.9716223478 29559.1875000000 -0.0095921354 - -0.9713135362 29561.3378906250 -0.0097648008 - -0.9710030556 29565.3203125000 -0.0099382903 - -0.9706909657 29567.5214843750 -0.0101199578 - -0.9703772068 29569.8496093750 -0.0102903862 - -0.9700618386 29574.1640625000 -0.0104764346 - -0.9697447419 29575.7695312500 -0.0106658898 - -0.9694260955 29578.7968750000 -0.0108431261 - -0.9691057205 29582.2949218750 -0.0110385604 - -0.9687837958 29585.9140625000 -0.0112295933 - -0.9684601426 29588.7285156250 -0.0114203226 - -0.9681348801 29591.6738281250 -0.0116213532 - -0.9678080082 29595.5429687500 -0.0118201301 - -0.9674794674 29597.7500000000 -0.0120221162 - -0.9671492577 29602.7324218750 -0.0122252321 - -0.9668174386 29605.4472656250 -0.0124287484 - -0.9664840102 29608.2929687500 -0.0126374830 - -0.9661489129 29611.7753906250 -0.0128464755 - -0.9658121467 29616.1113281250 -0.0130609600 - -0.9654737711 29617.1855468750 -0.0132734664 - -0.9651337862 29621.3554687500 -0.0134937018 - -0.9647921324 29625.5742187500 -0.0137167461 - -0.9644488692 29628.6777343750 -0.0139328064 - -0.9641039371 29632.4375000000 -0.0141610373 - -0.9637573957 29636.4121093750 -0.0143884514 - -0.9634091854 29640.2441406250 -0.0146198468 - -0.9630593657 29642.6914062500 -0.0148495864 - -0.9627079368 29646.5117187500 -0.0150858900 - -0.9623548388 29651.1484375000 -0.0153177129 - -0.9620001316 29653.8144531250 -0.0155565105 - -0.9616437554 29658.2441406250 -0.0157895610 - -0.9612857699 29661.9882812500 -0.0160326324 - -0.9609261751 29667.5507812500 -0.0162756722 - -0.9605649114 29670.0292968750 -0.0165233780 - -0.9602020383 29672.6191406250 -0.0167734846 - -0.9598375559 29676.9296875000 -0.0170199368 - -0.9594714642 29681.0898437500 -0.0172689073 - -0.9591037035 29685.5390625000 -0.0175216887 - -0.9587343335 29689.3730468750 -0.0177692771 - -0.9583633542 29691.8203125000 -0.0180253573 - -0.9579907060 29696.9863281250 -0.0182851758 - -0.9576164484 29700.4277343750 -0.0185406655 - -0.9572405815 29705.2304687500 -0.0187977664 - -0.9568631053 29707.9082031250 -0.0190584995 - -0.9564839602 29714.1660156250 -0.0193222053 - -0.9561032057 29717.0839843750 -0.0195872523 - -0.9557209015 29722.2031250000 -0.0198504832 - -0.9553368688 29726.5605468750 -0.0201201364 - -0.9549512863 29729.6191406250 -0.0203757621 - -0.9545640945 29734.2695312500 -0.0206481442 - -0.9541752338 29740.0253906250 -0.0209138338 - -0.9537847638 29743.2734375000 -0.0211853217 - -0.9533926845 29748.6855468750 -0.0214551501 - -0.9529989958 29751.2167968750 -0.0217258260 - -0.9526036978 29757.2871093750 -0.0219995342 - -0.9522067904 29760.9589843750 -0.0222663824 - -0.9518082738 29765.6933593750 -0.0225388333 - -0.9514080882 29770.3066406250 -0.0228027403 - -0.9510063529 29775.1796875000 -0.0230754428 - -0.9506030083 29778.5214843750 -0.0233551189 - -0.9501979947 29782.9335937500 -0.0236187931 - -0.9497914314 29788.0117187500 -0.0238916129 - -0.9493831992 29792.8046875000 -0.0241544209 - -0.9489733577 29796.6992187500 -0.0244402513 - -0.9485619664 29801.6328125000 -0.0247054696 - -0.9481489062 29806.9863281250 -0.0249737315 - -0.9477342963 29810.8886718750 -0.0252416171 - -0.9473180175 29816.5175781250 -0.0255100206 - -0.9469001889 29820.5566406250 -0.0257822052 - -0.9464807510 29826.6425781250 -0.0260441750 - -0.9460596442 29830.2050781250 -0.0263169631 - -0.9456369877 29835.2617187500 -0.0265839137 - -0.9452127218 29839.6914062500 -0.0268453937 - -0.9447868466 29845.0625000000 -0.0271025244 - -0.9443593621 29850.5273437500 -0.0273673348 - -0.9439303279 29854.2949218750 -0.0276307054 - -0.9434996247 29859.9785156250 -0.0278847963 - -0.9430673718 29864.7753906250 -0.0281464290 - -0.9426334500 29870.2988281250 -0.0284037646 - -0.9421979785 29876.1445312500 -0.0286527071 - -0.9417609572 29879.5839843750 -0.0289017726 - -0.9413222671 29885.3105468750 -0.0291535668 - -0.9408820271 29890.0175781250 -0.0294080190 - -0.9404401183 29895.2460937500 -0.0296477862 - -0.9399967194 29900.5781250000 -0.0298952665 - -0.9395516515 29906.6757812500 -0.0301366858 - -0.9391050339 29910.9121093750 -0.0303733982 - -0.9386567473 29916.1191406250 -0.0306101479 - -0.9382069707 29921.2070312500 -0.0308380593 - -0.9377555251 29926.3730468750 -0.0310812127 - -0.9373025298 29933.2949218750 -0.0313050486 - -0.9368479252 29936.1230468750 -0.0315309018 - -0.9363917708 29942.6660156250 -0.0317486897 - -0.9359340072 29948.3984375000 -0.0319749415 - -0.9354746342 29952.3046875000 -0.0321929678 - -0.9350137115 29960.5996093750 -0.0324030370 - -0.9345511794 29963.7578125000 -0.0326140709 - -0.9340870380 29968.5488281250 -0.0328170583 - -0.9336213470 29976.1386718750 -0.0330274701 - -0.9331541061 29980.8398437500 -0.0332274139 - -0.9326852560 29985.8554687500 -0.0334254429 - -0.9322147965 29992.4687500000 -0.0336226523 - -0.9317427874 29996.2578125000 -0.0338123515 - -0.9312691689 30002.8144531250 -0.0340045393 - -0.9307940006 30008.2949218750 -0.0341785550 - -0.9303172231 30013.7011718750 -0.0343615897 - -0.9298388958 30019.6835937500 -0.0345397070 - -0.9293589592 30025.2226562500 -0.0347142555 - -0.9288774729 30029.5195312500 -0.0348823220 - -0.9283944368 30036.7695312500 -0.0350478292 - -0.9279097915 30041.8437500000 -0.0352074802 - -0.9274235964 30048.7988281250 -0.0353656262 - -0.9269357920 30053.7617187500 -0.0355199948 - -0.9264464378 30060.0253906250 -0.0356705934 - -0.9259555340 30065.6289062500 -0.0358143188 - -0.9254630208 30070.7773437500 -0.0359554440 - -0.9249689579 30075.5742187500 -0.0360905379 - -0.9244733453 30081.7714843750 -0.0362237170 - -0.9239761233 30089.0039062500 -0.0363563411 - -0.9234773517 30094.1718750000 -0.0364836827 - -0.9229770303 30101.1464843750 -0.0366064310 - -0.9224751592 30105.7812500000 -0.0367239192 - -0.9219716787 30112.2812500000 -0.0368339382 - -0.9214666486 30118.2695312500 -0.0369430631 - -0.9209600687 30123.3027343750 -0.0370444134 - -0.9204519391 30129.4843750000 -0.0371509232 - -0.9199422598 30135.0546875000 -0.0372446030 - -0.9194309711 30142.5371093750 -0.0373394005 - -0.9189181328 30148.9003906250 -0.0374286994 - -0.9184037447 30154.3691406250 -0.0375141241 - -0.9178878069 30159.7597656250 -0.0375899673 - -0.9173703194 30167.2695312500 -0.0376696363 - -0.9168512821 30172.3144531250 -0.0377412252 - -0.9163306355 30177.3984375000 -0.0378035232 - -0.9158084989 30184.4707031250 -0.0378729403 - -0.9152848125 30190.5742187500 -0.0379287899 - -0.9147595167 30195.7968750000 -0.0379843041 - -0.9142327309 30203.0488281250 -0.0380367227 - -0.9137043357 30208.3886718750 -0.0380826294 - -0.9131744504 30214.8496093750 -0.0381268747 - -0.9126429558 30221.8476562500 -0.0381676331 - -0.9121099710 30226.3710937500 -0.0382019803 - -0.9115753770 30233.7324218750 -0.0382338166 - -0.9110392928 30239.5585937500 -0.0382612795 - -0.9105016589 30246.0566406250 -0.0382894129 - -0.9099624753 30252.7050781250 -0.0383042097 - -0.9094217420 30258.4140625000 -0.0383223966 - -0.9088794589 30265.0078125000 -0.0383337177 - -0.9083356261 30271.8398437500 -0.0383419655 - -0.9077903032 30278.3574218750 -0.0383486822 - -0.9072433710 30283.1894531250 -0.0383474678 - -0.9066949487 30290.7363281250 -0.0383480415 - -0.9061449766 30297.0195312500 -0.0383421108 - -0.9055934548 30304.8222656250 -0.0383318290 - -0.9050404429 30309.3144531250 -0.0383160561 - -0.9044858813 30315.4921875000 -0.0383000933 - -0.9039297700 30321.7968750000 -0.0382792950 - -0.9033721089 30329.1640625000 -0.0382573940 - -0.9028129578 30334.8847656250 -0.0382291451 - -0.9022522569 30341.2988281250 -0.0381996855 - -0.9016900063 30346.8515625000 -0.0381649099 - -0.9011262059 30355.2500000000 -0.0381312519 - -0.9005609155 30360.9179687500 -0.0380897596 - -0.8999941349 30366.6250000000 -0.0380440876 - -0.8994258046 30374.9941406250 -0.0380000025 - -0.8988559246 30379.4863281250 -0.0379477292 - -0.8982844949 30386.3027343750 -0.0378959700 - -0.8977115750 30393.8417968750 -0.0378417894 - -0.8971371651 30400.0234375000 -0.0377824716 - -0.8965612054 30406.0839843750 -0.0377198234 - -0.8959837556 30412.3632812500 -0.0376566425 - -0.8954047561 30420.1308593750 -0.0375892296 - -0.8948242068 30425.6191406250 -0.0375177562 - -0.8942421675 30432.0898437500 -0.0374472439 - -0.8936586380 30440.6347656250 -0.0373720117 - -0.8930735588 30445.3593750000 -0.0372904502 - -0.8924869895 30452.9140625000 -0.0372164771 - -0.8918989301 30458.9785156250 -0.0371303484 - -0.8913093209 30465.7890625000 -0.0370446369 - -0.8907181621 30473.1757812500 -0.0369586423 - -0.8901255727 30480.0878906250 -0.0368685648 - -0.8895314336 30485.7832031250 -0.0367734879 - -0.8889358044 30493.1601562500 -0.0366800725 - -0.8883386254 30499.3613281250 -0.0365840346 - -0.8877399564 30505.2207031250 -0.0364817232 - -0.8871397972 30512.9160156250 -0.0363810286 - -0.8865381479 30519.2636718750 -0.0362792052 - -0.8859350085 30525.7148437500 -0.0361704156 - -0.8853303194 30532.3281250000 -0.0360637680 - -0.8847241402 30539.8476562500 -0.0359538421 - -0.8841164708 30546.1816406250 -0.0358402431 - -0.8835073113 30552.8125000000 -0.0357286260 - -0.8828966618 30559.8203125000 -0.0356150866 - -0.8822844625 30565.2500000000 -0.0354947560 - -0.8816708326 30572.6093750000 -0.0353765711 - -0.8810556531 30578.9726562500 -0.0352527536 - -0.8804389834 30586.2128906250 -0.0351329073 - -0.8798208833 30592.0097656250 -0.0350057483 - -0.8792012334 30600.3632812500 -0.0348823294 - -0.8785800934 30606.1250000000 -0.0347566679 - -0.8779575229 30612.9785156250 -0.0346266516 - -0.8773334026 30619.5214843750 -0.0344935283 - -0.8767077923 30626.1093750000 -0.0343629830 - -0.8760807514 30633.3671875000 -0.0342338011 - -0.8754521608 30640.0039062500 -0.0340960547 - -0.8748221397 30645.9218750000 -0.0339561515 - -0.8741906285 30654.5234375000 -0.0338222012 - -0.8735575676 30659.4824218750 -0.0336849466 - -0.8729230762 30667.2519531250 -0.0335461162 - -0.8722871542 30674.8867187500 -0.0334073231 - -0.8716496825 30680.6367187500 -0.0332644507 - -0.8710107207 30687.6054687500 -0.0331188589 - -0.8703703284 30693.1484375000 -0.0329723544 - -0.8697284460 30700.3984375000 -0.0328309312 - -0.8690851331 30707.8457031250 -0.0326845720 - -0.8684402704 30713.7167968750 -0.0325307734 - -0.8677939773 30721.0410156250 -0.0323884189 - -0.8671461940 30728.0781250000 -0.0322421156 - -0.8664969802 30734.5312500000 -0.0320899561 - -0.8658462763 30741.0410156250 -0.0319354162 - -0.8651940823 30748.5507812500 -0.0317889303 - -0.8645404577 30756.1933593750 -0.0316357911 - -0.8638853431 30761.1113281250 -0.0314795561 - -0.8632287383 30769.6542968750 -0.0313313492 - -0.8625707030 30775.6640625000 -0.0311747193 - -0.8619111776 30781.8242187500 -0.0310196541 - -0.8612502217 30787.8378906250 -0.0308614802 - -0.8605878353 30796.1855468750 -0.0307083949 - -0.8599238992 30803.5625000000 -0.0305534136 - -0.8592585921 30808.6484375000 -0.0303920414 - -0.8585917950 30816.4453125000 -0.0302382559 - -0.8579235077 30823.1621093750 -0.0300809331 - -0.8572538495 30829.1210937500 -0.0299196038 - -0.8565826416 30835.2246093750 -0.0297547597 - -0.8559100628 30841.7851562500 -0.0296016335 - -0.8552359939 30850.0214843750 -0.0294402651 - -0.8545604944 30855.3515625000 -0.0292764455 - -0.8538835049 30862.0019531250 -0.0291169472 - -0.8532050848 30869.3574218750 -0.0289617330 - -0.8525252342 30875.8085937500 -0.0287983455 - -0.8518439531 30883.1132812500 -0.0286344569 - -0.8511611819 30889.9902343750 -0.0284788609 - -0.8504769802 30896.4238281250 -0.0283114389 - -0.8497913480 30903.1425781250 -0.0281497650 - -0.8491042852 30909.8222656250 -0.0279839076 - -0.8484157920 30915.9179687500 -0.0278318934 - -0.8477258086 30922.6816406250 -0.0276669562 - -0.8470344543 30929.5117187500 -0.0275029279 - -0.8463416100 30936.4746093750 -0.0273364075 - -0.8456473351 30942.5273437500 -0.0271801762 - -0.8449516892 30949.4746093750 -0.0270160027 - -0.8442545533 30957.1992187500 -0.0268507954 - -0.8435559869 30962.4902343750 -0.0266828798 - -0.8428559899 30969.2871093750 -0.0265277997 - -0.8421545625 30975.9082031250 -0.0263667107 - -0.8414517045 30981.8730468750 -0.0262004640 - -0.8407474756 30987.3417968750 -0.0260349549 - -0.8400417566 30996.3574218750 -0.0258780625 - -0.8393346667 31003.2343750000 -0.0257132165 - -0.8386260867 31009.7832031250 -0.0255495384 - -0.8379161358 31013.7714843750 -0.0253878906 - -0.8372047544 31022.9609375000 -0.0252327733 - -0.8364919424 31028.4277343750 -0.0250666440 - -0.8357776999 31033.7500000000 -0.0249000788 - -0.8350620866 31040.5058593750 -0.0247400329 - -0.8343450427 31049.4375000000 -0.0245824140 - -0.8336265683 31054.8828125000 -0.0244166106 - -0.8329066634 31059.7539062500 -0.0242628567 - -0.8321853876 31067.1835937500 -0.0240982175 - -0.8314626813 31073.5742187500 -0.0239421204 - -0.8307385445 31080.3183593750 -0.0237818994 - -0.8300130367 31087.3222656250 -0.0236227866 - -0.8292860985 31093.1933593750 -0.0234560966 - -0.8285577297 31099.8847656250 -0.0233050399 - -0.8278279901 31105.6308593750 -0.0231411234 - -0.8270968795 31111.8242187500 -0.0229851231 - -0.8263643384 31117.3183593750 -0.0228283294 - -0.8256303668 31124.9863281250 -0.0226754416 - -0.8248950243 31132.0136718750 -0.0225160457 - -0.8241582513 31137.1542968750 -0.0223564059 - -0.8234201074 31144.2539062500 -0.0221968982 - -0.8226805925 31150.2890625000 -0.0220473651 - -0.8219396472 31157.4824218750 -0.0218912121 - -0.8211973310 31162.9218750000 -0.0217319243 - -0.8204535842 31169.2187500000 -0.0215768609 - -0.8197084665 31174.7929687500 -0.0214201063 - -0.8189619780 31181.6875000000 -0.0212719850 - -0.8182140589 31187.1210937500 -0.0211158246 - -0.8174647689 31193.7167968750 -0.0209625959 - -0.8167141080 31199.3886718750 -0.0208073687 - -0.8159620762 31206.7148437500 -0.0206640773 - -0.8152086735 31212.0019531250 -0.0205071904 - -0.8144538403 31218.7441406250 -0.0203556642 - -0.8136976361 31224.5585937500 -0.0202009622 - -0.8129400611 31230.7617187500 -0.0200598910 - -0.8121811152 31235.8300781250 -0.0199074987 - -0.8114207983 31243.0156250000 -0.0197577104 - -0.8106590509 31248.9687500000 -0.0196058471 - -0.8098959923 31255.9257812500 -0.0194688179 - -0.8091315627 31261.4824218750 -0.0193158630 - -0.8083657026 31266.7167968750 -0.0191703923 - -0.8075985312 31272.3535156250 -0.0190224051 - -0.8068299294 31277.6621093750 -0.0188748874 - -0.8060600162 31284.3242187500 -0.0187389925 - -0.8052887321 31289.9902343750 -0.0185894631 - -0.8045160770 31295.3945312500 -0.0184434969 - -0.8037420511 31301.3535156250 -0.0182983689 - -0.8029666543 31308.3886718750 -0.0181647651 - -0.8021898866 31312.6191406250 -0.0180175416 - -0.8014117479 31319.8417968750 -0.0178731699 - -0.8006322980 31325.4316406250 -0.0177296326 - -0.7998514771 31329.7558593750 -0.0175841972 - -0.7990692854 31337.4570312500 -0.0174552109 - -0.7982857227 31342.3242187500 -0.0173138082 - -0.7975008488 31347.4550781250 -0.0171730295 - -0.7967146039 31354.5898437500 -0.0170345120 - -0.7959269881 31359.0761718750 -0.0168935023 - -0.7951380610 31365.1269531250 -0.0167644694 - -0.7943477631 31371.1445312500 -0.0166296028 - -0.7935560942 31376.8535156250 -0.0164890010 - -0.7927631140 31382.1953125000 -0.0163509902 - -0.7919688225 31387.8222656250 -0.0162157491 - -0.7911731005 31393.1914062500 -0.0160912722 - -0.7903761268 31399.5917968750 -0.0159543045 - -0.7895777822 31403.4980468750 -0.0158187188 - -0.7887780666 31409.1445312500 -0.0156883784 - -0.7879770398 31415.0468750000 -0.0155628026 - -0.7871746421 31421.5234375000 -0.0154294483 - -0.7863709927 31425.5507812500 -0.0152965141 - -0.7855659127 31431.3164062500 -0.0151692638 - -0.7847595811 31435.2890625000 -0.0150387697 - -0.7839518785 31441.8750000000 -0.0149192614 - -0.7831428647 31447.1601562500 -0.0147862732 - -0.7823324800 31452.0585937500 -0.0146584408 - -0.7815207839 31458.0898437500 -0.0145328324 - -0.7807078362 31463.0468750000 -0.0144058345 - -0.7798934579 31467.9746093750 -0.0142919403 - -0.7790778279 31472.5957031250 -0.0141633153 - -0.7782608271 31477.2050781250 -0.0140354913 - -0.7774425745 31482.2285156250 -0.0139076151 - -0.7766229510 31488.4257812500 -0.0137867574 - -0.7758020163 31493.4921875000 -0.0136763211 - -0.7749797702 31498.9179687500 -0.0135517754 - -0.7741562128 31503.7050781250 -0.0134269791 - -0.7733313441 31508.0722656250 -0.0133063653 - -0.7725051641 31512.5781250000 -0.0131861549 - -0.7716776729 31518.7011718750 -0.0130713359 - -0.7708489299 31523.9082031250 -0.0129586961 - -0.7700188160 31527.5312500000 -0.0128413793 - -0.7691873908 31532.8476562500 -0.0127251148 - -0.7683546543 31536.9375000000 -0.0126052788 - -0.7675206661 31541.9882812500 -0.0124854716 - -0.7666853666 31546.3476562500 -0.0123847090 - -0.7658486962 31550.5292968750 -0.0122675896 - -0.7650108337 31555.0273437500 -0.0121554378 - -0.7641716003 31560.4531250000 -0.0120325070 - -0.7633311152 31565.1308593750 -0.0119247939 - -0.7624892592 31571.4062500000 -0.0118265394 - -0.7616462111 31574.2988281250 -0.0117104929 - -0.7608017921 31579.0878906250 -0.0116002699 - -0.7599561214 31583.2031250000 -0.0114892861 - -0.7591091394 31587.2656250000 -0.0113802701 - -0.7582609057 31592.6406250000 -0.0112803411 - -0.7574113607 31596.5000000000 -0.0111742532 - -0.7565605640 31600.7949218750 -0.0110659720 - -0.7557084560 31605.1152343750 -0.0109536014 - -0.7548550367 31608.7597656250 -0.0108454395 - -0.7540004253 31613.6601562500 -0.0107410196 - -0.7531444430 31617.3554687500 -0.0106465649 - -0.7522872090 31621.4316406250 -0.0105441213 - -0.7514287233 31625.9589843750 -0.0104389172 - -0.7505689859 31629.5078125000 -0.0103349146 - -0.7497079372 31633.1132812500 -0.0102325464 - -0.7488456368 31637.2812500000 -0.0101324711 - -0.7479820251 31642.6015625000 -0.0100386795 - -0.7471171618 31646.3750000000 -0.0099369194 - -0.7462510467 31650.6132812500 -0.0098387562 - -0.7453836799 31653.8066406250 -0.0097364802 - -0.7445150018 31657.1484375000 -0.0096400585 - -0.7436451316 31660.8222656250 -0.0095425732 - -0.7427739501 31665.6894531250 -0.0094548129 - -0.7419015169 31670.6699218750 -0.0093574468 - -0.7410278320 31672.7851562500 -0.0092614796 - -0.7401528955 31676.0976562500 -0.0091629066 - -0.7392767072 31680.3183593750 -0.0090708770 - -0.7383992672 31684.4023437500 -0.0089868940 - -0.7375205159 31687.2773437500 -0.0088942554 - -0.7366405725 31690.6699218750 -0.0088044461 - -0.7357593775 31694.9082031250 -0.0087052053 - -0.7348769307 31697.7929687500 -0.0086107878 - -0.7339932323 31700.3515625000 -0.0085171321 - -0.7331082821 31703.6250000000 -0.0084436983 - -0.7322220802 31706.6777343750 -0.0083543397 - -0.7313346863 31710.8398437500 -0.0082625505 - -0.7304460406 31715.2070312500 -0.0081731789 - -0.7295561433 31718.6523437500 -0.0080821766 - -0.7286649942 31720.1035156250 -0.0079955701 - -0.7277725935 31722.9101562500 -0.0079241367 - -0.7268790007 31726.9902343750 -0.0078366706 - -0.7259841561 31729.1523437500 -0.0077523077 - -0.7250880599 31733.0566406250 -0.0076597002 - -0.7241907716 31735.3925781250 -0.0075759273 - -0.7232922316 31737.9316406250 -0.0074902363 - -0.7223924994 31741.7714843750 -0.0074086105 - -0.7214915156 31743.8164062500 -0.0073417025 - -0.7205892801 31746.4062500000 -0.0072577442 - -0.7196858525 31750.3320312500 -0.0071737017 - -0.7187812328 31752.0644531250 -0.0070910081 - -0.7178753614 31754.1093750000 -0.0070105148 - -0.7169682980 31757.4140625000 -0.0069293850 - -0.7160599828 31758.8652343750 -0.0068513751 - -0.7151504755 31763.9101562500 -0.0067810500 - -0.7142397761 31765.3945312500 -0.0067044082 - -0.7133278251 31768.6015625000 -0.0066268011 - -0.7124146819 31769.7675781250 -0.0065494301 - -0.7115003467 31771.3007812500 -0.0064738831 - -0.7105847597 31773.8945312500 -0.0063932603 - -0.7096679807 31776.8105468750 -0.0063338885 - -0.7087500095 31779.4960937500 -0.0062573981 - -0.7078308463 31780.7890625000 -0.0061859828 - -0.7069104910 31783.3632812500 -0.0061048958 - -0.7059889436 31784.7265625000 -0.0060333330 - -0.7050661445 31786.5742187500 -0.0059594051 - -0.7041422129 31789.5722656250 -0.0059032366 - -0.7032170296 31791.2753906250 -0.0058305967 - -0.7022907138 31792.7226562500 -0.0057550594 - -0.7013631463 31795.0527343750 -0.0056850133 - -0.7004344463 31797.3046875000 -0.0056167701 - -0.6995045543 31798.1523437500 -0.0055464227 - -0.6985734701 31800.6601562500 -0.0054751355 - -0.6976411343 31801.2285156250 -0.0054182406 - -0.6967076659 31803.5292968750 -0.0053517744 - -0.6957730651 31804.4277343750 -0.0052833045 - -0.6948372126 31807.6093750000 -0.0052138008 - -0.6939002275 31808.1425781250 -0.0051466129 - -0.6929620504 31809.8808593750 -0.0050798752 - -0.6920226812 31810.5332031250 -0.0050157043 - -0.6910821795 31812.2460937500 -0.0049471194 - -0.6901404262 31814.2343750000 -0.0048992331 - -0.6891975999 31814.3925781250 -0.0048318915 - -0.6882535219 31815.4160156250 -0.0047718119 - -0.6873083115 31818.0898437500 -0.0047047865 - -0.6863619685 31818.5175781250 -0.0046442221 - -0.6854144335 31818.4296875000 -0.0045794812 - -0.6844657063 31818.2695312500 -0.0045191669 - -0.6835158467 31820.0664062500 -0.0044541406 - -0.6825648546 31822.1093750000 -0.0044084364 - -0.6816126704 31822.4101562500 -0.0043490678 - -0.6806593537 31823.1679687500 -0.0042888978 - -0.6797048450 31824.7402343750 -0.0042277854 - -0.6787492633 31824.6074218750 -0.0041686632 - -0.6777924299 31823.4140625000 -0.0041102162 - -0.6768345237 31824.8164062500 -0.0040520770 - -0.6758754253 31827.0898437500 -0.0040070293 - -0.6749151945 31826.3222656250 -0.0039505712 - -0.6739538312 31826.4316406250 -0.0038930927 - -0.6729913354 31826.9589843750 -0.0038356318 - -0.6720276475 31827.6933593750 -0.0037795424 - -0.6710628867 31826.9609375000 -0.0037246486 - -0.6700969338 31826.8203125000 -0.0036704051 - -0.6691298485 31828.9082031250 -0.0036278071 - -0.6681616306 31829.3925781250 -0.0035754803 - -0.6671923399 31828.0195312500 -0.0035201665 - -0.6662218571 31828.8300781250 -0.0034653177 - -0.6652502418 31829.3300781250 -0.0034135387 - -0.6642775536 31827.9785156250 -0.0033595003 - -0.6633036733 31827.6054687500 -0.0033091921 - -0.6623287201 31827.2246093750 -0.0032550059 - -0.6613525748 31826.4550781250 -0.0032044747 - -0.6603753567 31827.4277343750 -0.0031695878 - -0.6593970656 31827.2949218750 -0.0031164791 - -0.6584175825 31826.7265625000 -0.0030679873 - -0.6574370265 31824.7167968750 -0.0030167974 - -0.6564553380 31825.6015625000 -0.0029665218 - -0.6554725170 31824.3632812500 -0.0029192925 - -0.6544886231 31822.9492187500 -0.0028695455 - -0.6535035968 31822.3828125000 -0.0028206992 - -0.6525174379 31822.6367187500 -0.0027742384 - -0.6515302062 31819.4921875000 -0.0027253665 - -0.6505418420 31820.4140625000 -0.0026929341 - -0.6495524049 31818.8535156250 -0.0026466325 - -0.6485618949 31818.1289062500 -0.0026002312 - -0.6475702524 31815.7734375000 -0.0025558970 - -0.6465774775 31815.3593750000 -0.0025082149 - -0.6455836296 31813.2460937500 -0.0024647312 - -0.6445887089 31811.9511718750 -0.0024200347 - -0.6435926557 31812.1933593750 -0.0023886575 - -0.6425955892 31811.0976562500 -0.0023471999 - -0.6415973306 31808.4453125000 -0.0023029633 - -0.6405980587 31807.8046875000 -0.0022574526 - -0.6395976543 31806.0410156250 -0.0022170818 - -0.6385962367 31802.5781250000 -0.0021732745 - -0.6375936866 31803.4375000000 -0.0021302523 - -0.6365900636 31800.7617187500 -0.0020897086 - -0.6355853081 31798.7539062500 -0.0020625335 - -0.6345795393 31797.8671875000 -0.0020200924 - -0.6335726976 31795.0859375000 -0.0019810610 - -0.6325647235 31792.3046875000 -0.0019401778 - -0.6315557361 31791.5722656250 -0.0018982291 - -0.6305456758 31788.7968750000 -0.0018600153 - -0.6295344830 31786.5449218750 -0.0018188016 - -0.6285222769 31784.9140625000 -0.0017795721 - -0.6275089979 31782.5546875000 -0.0017430929 - -0.6264946461 31779.8925781250 -0.0017019107 - -0.6254792213 31777.7402343750 -0.0016645070 - -0.6244627833 31773.9726562500 -0.0016270297 - -0.6234452724 31771.7890625000 -0.0015886375 - -0.6224266887 31769.2265625000 -0.0015512847 - -0.6214070320 31765.6328125000 -0.0015306697 - -0.6203863621 31763.5839843750 -0.0014927586 - -0.6193646193 31760.4863281250 -0.0014571190 - -0.6183418036 31756.7382812500 -0.0014212036 - -0.6173179746 31755.0957031250 -0.0013849209 - -0.6162930727 31752.8261718750 -0.0013506560 - -0.6152671576 31749.2343750000 -0.0013129800 - -0.6142401695 31745.5507812500 -0.0012802524 - -0.6132121086 31743.1992187500 -0.0012608885 - -0.6121830940 31740.0175781250 -0.0012248219 - -0.6111529469 31736.6132812500 -0.0011929696 - -0.6101218462 31732.4101562500 -0.0011590330 - -0.6090896726 31729.1894531250 -0.0011246480 - -0.6080564857 31725.5019531250 -0.0010931757 - -0.6070222259 31723.1054687500 -0.0010741301 - -0.6059870124 31718.5898437500 -0.0010413984 - -0.6049507260 31715.3652343750 -0.0010098948 - -0.6039133668 31711.4648437500 -0.0009776598 - -0.6028750539 31707.2421875000 -0.0009459406 - -0.6018356681 31703.7128906250 -0.0009147957 - -0.6007953286 31699.9531250000 -0.0008846381 - -0.5997539163 31693.7714843750 -0.0008524433 - -0.5987114906 31691.0332031250 -0.0008217616 - -0.5976680517 31687.5000000000 -0.0007914655 - -0.5966235995 31682.6718750000 -0.0007624864 - -0.5955781937 31678.6718750000 -0.0007322227 - -0.5945317149 31673.4433593750 -0.0007025551 - -0.5934842229 31669.2226562500 -0.0006729955 - -0.5924357772 31664.0781250000 -0.0006442128 - -0.5913862586 31659.0957031250 -0.0006150741 - -0.5903357863 31655.0722656250 -0.0005860008 - -0.5892843008 31650.9003906250 -0.0005594046 - -0.5882318020 31645.8730468750 -0.0005302737 - -0.5871783495 31641.2265625000 -0.0005029047 - -0.5861238241 31636.1113281250 -0.0004759796 - -0.5850683451 31630.0957031250 -0.0004484698 - -0.5840119123 31625.7050781250 -0.0004361951 - -0.5829544663 31621.9746093750 -0.0004090712 - -0.5818960071 31615.4003906250 -0.0003828164 - -0.5808365941 31610.3925781250 -0.0003570143 - -0.5797761679 31605.9472656250 -0.0003450138 - -0.5787147880 31599.4960937500 -0.0003187110 - -0.5776523948 31595.1503906250 -0.0002936028 - -0.5765890479 31589.4160156250 -0.0002829580 - -0.5755246878 31583.7089843750 -0.0002570014 - -0.5744593740 31578.0859375000 -0.0002322478 - -0.5733931065 31571.7070312500 -0.0002225373 - -0.5723258257 31566.6425781250 -0.0001974622 - -0.5712575912 31560.9082031250 -0.0001735823 - -0.5701884031 31555.6972656250 -0.0001498616 - -0.5691182613 31548.2226562500 -0.0001251677 - -0.5680471063 31542.5703125000 -0.0001017152 - -0.5669750571 31536.1757812500 -0.0000776673 - -0.5659019947 31529.2890625000 -0.0000546846 - -0.5648279786 31523.9824218750 -0.0000170661 - -0.5637530088 31516.1621093750 0.0000061235 - -0.5626770854 31509.3671875000 0.0000438496 - -0.5616002083 31502.1503906250 0.0000655570 - -0.5605223775 31495.5390625000 0.0001030391 - -0.5594435930 31487.4179687500 0.0001396722 - -0.5583638549 31480.5722656250 0.0001759267 - -0.5572831631 31473.2402343750 0.0002269195 - -0.5562015772 31465.9062500000 0.0002622004 - -0.5551189780 31457.6914062500 0.0003130695 - -0.5540354848 31449.6093750000 0.0003488084 - -0.5529510379 31442.0449218750 0.0003980709 - -0.5518656969 31433.0800781250 0.0004337652 - -0.5507793427 31425.0332031250 0.0004826828 - -0.5496920943 31416.0000000000 0.0005321833 - -0.5486038923 31408.4804687500 0.0005664122 - -0.5475147963 31400.2675781250 0.0006145346 - -0.5464247465 31392.3964843750 0.0006488074 - -0.5453338027 31382.5996093750 0.0006962568 - -0.5442419052 31374.6953125000 0.0007300330 - -0.5431491137 31366.4511718750 0.0007633592 - -0.5420553684 31358.5273437500 0.0007962099 - -0.5409606695 31348.5292968750 0.0008300529 - -0.5398651361 31341.0546875000 0.0008471759 - -0.5387686491 31333.0878906250 0.0008796576 - -0.5376712084 31323.5761718750 0.0008978876 - -0.5365729332 14733.0449218750 0.0001250925 - -0.5354737043 14739.6298828125 0.0001288662 - -0.5343735814 14742.9277343750 0.0001336001 - -0.5332725048 14747.4052734375 0.0001380155 - -0.5321705937 14752.3251953125 0.0001419671 - -0.5310677290 14759.4082031250 0.0001461999 - -0.5299640298 14763.4414062500 0.0001501404 - -0.5288593769 14767.4140625000 0.0001545837 - -0.5277538300 14774.1376953125 0.0001577046 - -0.5266473889 14779.6884765625 0.0001618322 - -0.5255400538 14784.1484375000 0.0001656320 - -0.5244318247 14787.7460937500 0.0001699449 - -0.5233227611 14793.8828125000 0.0001729429 - -0.5222127438 14798.8554687500 0.0001772828 - -0.5211018920 14803.1845703125 0.0001806654 - -0.5199900866 14808.2607421875 0.0001848517 - -0.5188774467 14813.0166015625 0.0001882976 - -0.5177639127 14817.8076171875 0.0001919735 - -0.5166495442 14823.4433593750 0.0001958776 - -0.5155342817 14827.8603515625 0.0001992965 - -0.5144181252 14832.5751953125 0.0002033422 - -0.5133010745 14836.9550781250 0.0002067443 - -0.5121831894 14841.8125000000 0.0002100728 - -0.5110644102 14847.2929687500 0.0002127271 - -0.5099447966 14852.5869140625 0.0002166629 - -0.5088242888 14857.0166015625 0.0002199169 - -0.5077029467 14862.3320312500 0.0002231440 - -0.5065807104 14866.6542968750 0.0002263449 - -0.5054576397 14871.2275390625 0.0002302388 - -0.5043337345 14876.1318359375 0.0002327552 - -0.5032089353 14881.2275390625 0.0002364824 - -0.5020833015 14886.9111328125 0.0002384009 - -0.5009567738 14891.5781250000 0.0002421821 - -0.4998294711 14894.5361328125 0.0002451949 - -0.4987012744 14899.9287109375 0.0002484033 - -0.4975722432 14904.8525390625 0.0002512066 - -0.4964423478 14910.1005859375 0.0002544262 - -0.4953116477 14915.6601562500 0.0002566818 - -0.4941800833 14919.1640625000 0.0002603969 - -0.4930476844 14924.8818359375 0.0002625473 - -0.4919144511 14929.3974609375 0.0002662251 - -0.4907803833 14933.7373046875 0.0002693040 - -0.4896454811 14937.7773437500 0.0002715671 - -0.4885097444 14942.8906250000 0.0002750568 - -0.4873732030 14948.2851562500 0.0002771979 - -0.4862358272 14952.6630859375 0.0002801837 - -0.4850976169 14957.3232421875 0.0002823481 - -0.4839585721 14962.4931640625 0.0002857503 - -0.4828187227 14967.1767578125 0.0002878532 - -0.4816780388 14970.4082031250 0.0002908306 - -0.4805365801 14975.9121093750 0.0002927752 - -0.4793942571 14980.7167968750 0.0002956549 - -0.4782511592 14986.4306640625 0.0002976432 - -0.4771072268 14990.2958984375 0.0003005909 - -0.4759624898 14995.0214843750 0.0003024815 - -0.4748169482 15000.2714843750 0.0003052745 - -0.4736706018 15004.6289062500 0.0003071241 - -0.4725234509 15008.3388671875 0.0003101248 - -0.4713754952 15013.1845703125 0.0003118906 - -0.4702267647 15018.0380859375 0.0003147237 - -0.4690771997 15022.6240234375 0.0003165072 - -0.4679268599 15027.6396484375 0.0003192527 - -0.4667757452 15030.8974609375 0.0003216900 - -0.4656237960 15034.7646484375 0.0003239978 - -0.4644711018 15041.2578125000 0.0003255261 - -0.4633176029 15045.0732421875 0.0003283639 - -0.4621632993 15049.2773437500 0.0003301147 - -0.4610082209 15054.3291015625 0.0003322875 - -0.4598523676 15059.2343750000 0.0003339201 - -0.4586957395 15063.4658203125 0.0003366163 - -0.4575383365 15067.5849609375 0.0003383392 - -0.4563801587 15071.7324218750 0.0003410736 - -0.4552211761 15077.3525390625 0.0003420636 - -0.4540614486 15081.7255859375 0.0003446704 - -0.4529009461 15086.5634765625 0.0003458150 - -0.4517396688 15089.6230468750 0.0003490327 - -0.4505776465 15094.5644531250 0.0003500693 - -0.4494148493 15098.3261718750 0.0003527757 - -0.4482512772 15104.1230468750 0.0003536949 - -0.4470869601 15107.2919921875 0.0003569303 - -0.4459218681 15112.3935546875 0.0003578421 - -0.4447560310 15116.4921875000 0.0003600242 - -0.4435894489 15121.9775390625 0.0003608847 - -0.4424221218 15125.3720703125 0.0003640931 - -0.4412540197 15129.7001953125 0.0003650617 - -0.4400851727 15134.3125000000 0.0003670696 - -0.4389155805 15139.0117187500 0.0003679590 - -0.4377452731 15142.4785156250 0.0003707008 - -0.4365741909 15146.9355468750 0.0003719898 - -0.4354023635 15151.2050781250 0.0003728429 - -0.4342298210 15153.2490234375 0.0003756946 - -0.4330565333 15160.1035156250 0.0003763493 - -0.4318825305 15163.9648437500 0.0003783861 - -0.4307077527 15168.0712890625 0.0003798157 - -0.4295322895 15171.1259765625 0.0003819689 - -0.4283560812 15177.0732421875 0.0003827019 - -0.4271791279 15180.1855468750 0.0003847927 - -0.4260014594 15185.1767578125 0.0003855061 - -0.4248230755 15189.0625000000 0.0003882488 - -0.4236439764 15193.7353515625 0.0003889464 - -0.4224641621 15197.3388671875 0.0003908854 - -0.4212836027 15201.0986328125 0.0003917627 - -0.4201023579 15206.3623046875 0.0003936877 - -0.4189203978 15208.7871093750 0.0003952421 - -0.4177377224 15212.3925781250 0.0003973125 - -0.4165543318 15216.0566406250 0.0003981218 - -0.4153702557 15222.3642578125 0.0004000170 - -0.4141854346 15225.8583984375 0.0004007919 - -0.4129999578 15229.3720703125 0.0004028287 - -0.4118137658 15234.2324218750 0.0004034052 - -0.4106268585 15237.9228515625 0.0004055928 - -0.4094392657 15241.4609375000 0.0004062997 - -0.4082509875 15245.6923828125 0.0004083142 - -0.4070619941 15249.2490234375 0.0004091626 - -0.4058723450 15254.1650390625 0.0004107384 - -0.4046819806 15256.1816406250 0.0004121205 - -0.4034909308 15262.5625000000 0.0004121279 - -0.4022991955 15265.9550781250 0.0004141694 - -0.4011068046 15268.8554687500 0.0004155096 - -0.3999136984 15272.8691406250 0.0004170677 - -0.3987199366 15276.1728515625 0.0004178286 - -0.3975254893 15280.3691406250 0.0004193699 - -0.3963303864 15284.2207031250 0.0004199101 - -0.3951345980 15288.1542968750 0.0004220856 - -0.3939381242 15292.6220703125 0.0004221546 - -0.3927410245 15296.7333984375 0.0004242896 - -0.3915432096 15300.2441406250 0.0004251748 - -0.3903447688 15304.1875000000 0.0004266682 - -0.3891456425 15306.9433593750 0.0004273211 - -0.3879458606 15311.1259765625 0.0004294221 - -0.3867454231 15315.3164062500 0.0004296461 - -0.3855443299 15317.7207031250 0.0004317374 - -0.3843425810 15320.9150390625 0.0004327265 - -0.3831402063 15327.3642578125 0.0004321546 - -0.3819371462 15329.2714843750 0.0004344252 - -0.3807334602 15333.2753906250 0.0004349612 - -0.3795291185 15336.6005859375 0.0004367116 - -0.3783241212 15341.4033203125 0.0004366091 - -0.3771184981 15344.3535156250 0.0004388639 - -0.3759122491 15348.6679687500 0.0004392383 - -0.3747053444 15351.3496093750 0.0004415018 - -0.3734978139 15354.9667968750 0.0004416178 - -0.3722896278 15359.1513671875 0.0004430260 - -0.3710808456 15362.0664062500 0.0004433771 - -0.3698714077 15365.3740234375 0.0004457785 - -0.3686613441 15368.8466796875 0.0004458614 - -0.3674506843 15372.4091796875 0.0004477613 - -0.3662393689 15374.9296875000 0.0004484076 - -0.3650274575 15379.1005859375 0.0004496011 - -0.3638148904 15383.7783203125 0.0004499513 - -0.3626017272 15387.0195312500 0.0004499750 - -0.3613879681 15389.5019531250 0.0004521329 - -0.3601735830 15393.8837890625 0.0004524109 - -0.3589585721 15396.6884765625 0.0004542149 - -0.3577429652 15399.2763671875 0.0004547187 - -0.3565267622 15403.4042968750 0.0004563439 - -0.3553099334 15406.7236328125 0.0004567653 - -0.3540925086 15409.5283203125 0.0004586144 - -0.3528744876 15412.9765625000 0.0004587900 - -0.3516558707 15415.8154296875 0.0004606112 - -0.3504366577 15420.1552734375 0.0004610382 - -0.3492168486 15422.0166015625 0.0004628305 - -0.3479964435 15425.4453125000 0.0004630066 - -0.3467754424 15429.8750000000 0.0004645064 - -0.3455538750 15432.2382812500 0.0004649046 - -0.3443317115 15435.2294921875 0.0004650480 - -0.3431089520 15439.1396484375 0.0004668767 - -0.3418856263 15442.0722656250 0.0004669055 - -0.3406617045 15443.8730468750 0.0004689591 - -0.3394372165 15450.0380859375 0.0004685656 - -0.3382121623 15451.7353515625 0.0004708199 - -0.3369865119 15454.9023437500 0.0004711961 - -0.3357602954 15456.4814453125 0.0004732679 - -0.3345335424 15460.7744140625 0.0004730010 - -0.3333061934 15463.6367187500 0.0004750635 - -0.3320782781 15466.6025390625 0.0004750788 - -0.3308497965 15469.4912109375 0.0004771068 - -0.3296207786 15472.8242187500 0.0004768814 - -0.3283911645 15475.3242187500 0.0004791580 - -0.3271610141 15477.1035156250 0.0004792162 - -0.3259303272 15481.3505859375 0.0004796009 - -0.3246990740 15484.4970703125 0.0004812470 - -0.3234672546 15487.2949218750 0.0004813392 - -0.3222348988 15490.1894531250 0.0004833261 - -0.3210020065 15493.0097656250 0.0004833285 - -0.3197685480 15496.3730468750 0.0004853546 - -0.3185345531 15498.8730468750 0.0004856517 - -0.3173000216 15502.3984375000 0.0004874393 - -0.3160649538 15504.4619140625 0.0004874356 - -0.3148293495 15506.1171875000 0.0004894519 - -0.3135932088 15509.5146484375 0.0004900135 - -0.3123565614 15510.9648437500 0.0004920135 - -0.3111193478 15516.2832031250 0.0004919972 - -0.3098816276 15517.7812500000 0.0004923525 - -0.3086433709 15520.8359375000 0.0004940494 - -0.3074046075 15523.0800781250 0.0004946622 - -0.3061653078 15524.4179687500 0.0004969668 - -0.3049255013 15528.7148437500 0.0004963810 - -0.3036851585 15530.1445312500 0.0004992802 - -0.3024443090 15532.9931640625 0.0004987651 - -0.3012029529 15535.8232421875 0.0005013975 - -0.2999610901 15539.1630859375 0.0005008392 - -0.2987187207 15540.4130859375 0.0005037747 - -0.2974758148 15543.3984375000 0.0005035172 - -0.2962324321 15545.5332031250 0.0005060900 - -0.2949885428 15548.5371093750 0.0005058930 - -0.2937441468 15551.3583984375 0.0005061724 - -0.2924992740 15553.1083984375 0.0005086544 - -0.2912538946 15554.8408203125 0.0005092211 - -0.2900080085 15558.4873046875 0.0005105282 - -0.2887616158 15560.5039062500 0.0005111094 - -0.2875147760 15564.0830078125 0.0005129850 - -0.2862674296 15566.2978515625 0.0005133492 - -0.2850195765 15568.7861328125 0.0005157716 - -0.2837712765 15569.7568359375 0.0005159010 - -0.2825224698 15571.5361328125 0.0005183015 - -0.2812731862 15575.2402343750 0.0005184505 - -0.2800234556 15576.3232421875 0.0005209334 - -0.2787732184 15578.9443359375 0.0005216519 - -0.2775225043 15580.9570312500 0.0005236217 - -0.2762713432 15583.7861328125 0.0005242825 - -0.2750197053 15584.8085937500 0.0005252804 - -0.2737675905 15589.6162109375 0.0005264315 - -0.2725150287 15590.8417968750 0.0005275039 - -0.2712619901 15592.3320312500 0.0005303505 - -0.2700085044 15594.2011718750 0.0005306234 - -0.2687545419 15596.6171875000 0.0005329535 - -0.2675001621 15599.3183593750 0.0005336404 - -0.2662452757 15599.5654296875 0.0005360809 - -0.2649899721 15601.6630859375 0.0005372097 - -0.2637342215 15604.4296875000 0.0005390481 - -0.2624780238 15606.5781250000 0.0005398956 - -0.2612213492 15607.1269531250 0.0005425862 - -0.2599642575 15611.0244140625 0.0005429750 - -0.2587067187 15611.0292968750 0.0005460302 - -0.2574487627 15613.3916015625 0.0005470985 - -0.2561903596 15615.7646484375 0.0005471050 - -0.2549315095 15618.1855468750 0.0005500279 - -0.2536722124 15620.2568359375 0.0005505183 - -0.2524125278 15621.1025390625 0.0005539353 - -0.2511523962 15623.4453125000 0.0005546473 - -0.2498918176 15624.6728515625 0.0005579148 - -0.2486308366 15626.0966796875 0.0005583973 - -0.2473694384 15629.2177734375 0.0005609747 - -0.2461076081 15629.8720703125 0.0005625677 - -0.2448453605 15631.6210937500 0.0005655689 - -0.2435827106 15633.4521484375 0.0005659768 - -0.2423196286 15635.1152343750 0.0005690786 - -0.2410561591 15636.4511718750 0.0005703270 - -0.2397922575 15638.5566406250 0.0005734493 - -0.2385279685 15640.2597656250 0.0005752593 - -0.2372632623 15641.8837890625 0.0005761753 - -0.2359981537 15644.2519531250 0.0005789646 - -0.2347326577 15645.4873046875 0.0005804151 - -0.2334667593 15647.2949218750 0.0005834396 - -0.2322004586 15647.8916015625 0.0005854233 - -0.2309337705 15650.5039062500 0.0005882923 - -0.2296666801 15649.9619140625 0.0005905959 - -0.2283992171 15651.8037109375 0.0005937838 - -0.2271313518 15653.9150390625 0.0005946653 - -0.2258631140 15656.0566406250 0.0005984777 - -0.2245944738 15657.8769531250 0.0006000591 - -0.2233254761 15658.6181640625 0.0006034249 - -0.2220560908 15659.1347656250 0.0006059506 - -0.2207863182 15660.8906250000 0.0006094915 - -0.2195161879 15662.7441406250 0.0006112913 - -0.2182456702 15663.5205078125 0.0006147572 - -0.2169747949 15665.4541015625 0.0006169411 - -0.2157035470 15665.2402343750 0.0006211121 - -0.2144319266 15667.1328125000 0.0006231074 - -0.2131599635 15670.1035156250 0.0006249170 - -0.2118876129 15669.2480468750 0.0006292053 - -0.2106149197 15672.1591796875 0.0006313543 - -0.2093418688 15671.9404296875 0.0006356896 - -0.2080684602 15672.0625000000 0.0006386628 - -0.2067946941 15674.8818359375 0.0006425562 - -0.2055205852 15674.7792968750 0.0006451402 - -0.2042461187 15676.2724609375 0.0006496534 - -0.2029713094 15678.2148437500 0.0006520902 - -0.2016961575 15678.0664062500 0.0006571519 - -0.2004206628 15679.7177734375 0.0006600646 - -0.1991448402 15680.4980468750 0.0006642267 - -0.1978686601 15682.1259765625 0.0006672777 - -0.1965921521 15682.7109375000 0.0006723455 - -0.1953153163 15682.4189453125 0.0006759618 - -0.1940381378 15684.8759765625 0.0006803041 - -0.1927606463 15684.9550781250 0.0006840867 - -0.1914828122 15686.3916015625 0.0006891130 - -0.1902046651 15685.4970703125 0.0006929431 - -0.1889261901 15687.4980468750 0.0006977553 - -0.1876474023 15688.6093750000 0.0007015374 - -0.1863682866 15689.4619140625 0.0007070787 - -0.1850888580 15689.8281250000 0.0007106760 - -0.1838091165 15690.9648437500 0.0007150103 - -0.1825290620 15691.0722656250 0.0007203673 - -0.1812486947 15692.8291015625 0.0007243995 - -0.1799680293 15692.3466796875 0.0007310039 - -0.1786870509 15693.7451171875 0.0007352126 - -0.1774057746 15694.3183593750 0.0007412597 - -0.1761242002 15695.0283203125 0.0007457281 - -0.1748423129 15696.6601562500 0.0007518022 - -0.1735601425 15696.7480468750 0.0007572346 - -0.1722776741 15697.1611328125 0.0007633297 - -0.1709949076 15697.9658203125 0.0007684613 - -0.1697118580 15697.6640625000 0.0007756436 - -0.1684285253 15697.5712890625 0.0007812590 - -0.1671448946 15699.6240234375 0.0007875096 - -0.1658609957 15700.4716796875 0.0007928121 - -0.1645767987 15699.4375000000 0.0008006142 - -0.1632923335 15700.3056640625 0.0008064015 - -0.1620075852 15700.0732421875 0.0008144686 - -0.1607225686 15701.2675781250 0.0008197613 - -0.1594372839 15701.2636718750 0.0008276301 - -0.1581517160 15701.2216796875 0.0008341195 - -0.1568658799 15701.4814453125 0.0008422569 - -0.1555797905 15700.9755859375 0.0008487115 - -0.1542934328 15702.1298828125 0.0008574245 - -0.1530068070 15702.9755859375 0.0008642259 - -0.1517199278 15703.1933593750 0.0008726078 - -0.1504327953 15703.6582031250 0.0008795508 - -0.1491453946 15704.3808593750 0.0008883253 - -0.1478577554 15703.7949218750 0.0008962792 - -0.1465698481 15704.1416015625 0.0009055533 - -0.1452817172 15703.3105468750 0.0009140032 - -0.1439933181 15704.8105468750 0.0009227241 - -0.1427046806 15703.3818359375 0.0009315796 - -0.1414158046 15704.6923828125 0.0009412193 - -0.1401266903 15704.6396484375 0.0009499672 - -0.1388373375 15703.0937500000 0.0009604278 - -0.1375477463 15704.4394531250 0.0009693457 - -0.1362579167 15703.8642578125 0.0009803134 - -0.1349678636 15705.0791015625 0.0009888490 - -0.1336775869 15702.8222656250 0.0010009934 - -0.1323870718 15704.1259765625 0.0010105418 - -0.1310963333 15703.2128906250 0.0010222737 - -0.1298053861 15703.5566406250 0.0010314388 - -0.1285142004 15704.6796875000 0.0010430254 - -0.1272228062 15703.3964843750 0.0010547293 - -0.1259312034 15703.5937500000 0.0010666861 - -0.1246393770 15703.7841796875 0.0010774224 - -0.1233473420 15702.2441406250 0.0010908078 - -0.1220550984 15702.2539062500 0.0011021853 - -0.1207626462 15702.9628906250 0.0011155657 - -0.1194699928 15702.2548828125 0.0011270731 - -0.1181771308 15702.6396484375 0.0011409279 - -0.1168840751 15702.0175781250 0.0011529610 - -0.1155908182 15701.4501953125 0.0011676298 - -0.1142973602 15701.0283203125 0.0011806095 - -0.1130037159 15700.9638671875 0.0011951763 - -0.1117098778 15701.3613281250 0.0012086981 - -0.1104158461 15698.7841796875 0.0012245064 - -0.1091216356 15699.2207031250 0.0012377903 - -0.1078272313 15699.2041015625 0.0012539162 - -0.1065326482 15697.9384765625 0.0012692250 - -0.1052378863 15697.3144531250 0.0012853069 - -0.1039429456 15697.8828125000 0.0013000711 - -0.1026478261 15696.4794921875 0.0013171621 - -0.1013525352 15697.0546875000 0.0013330807 - -0.1000570729 15696.4257812500 0.0013496554 - -0.0987614393 15696.0673828125 0.0013664954 - -0.0974656343 15694.1621093750 0.0013847756 - -0.0961696729 15693.3593750000 0.0014017988 - -0.0948735401 15693.5400390625 0.0014207691 - -0.0935772508 15692.1533203125 0.0014384771 - -0.0922808051 15693.1132812500 0.0014571873 - -0.0909841955 15692.2050781250 0.0014755691 - -0.0896874368 15690.0136718750 0.0014966555 - -0.0883905292 15690.1816406250 0.0015153305 - -0.0870934650 15689.1699218750 0.0015351503 - -0.0857962593 15688.9003906250 0.0015557725 - -0.0844989046 15687.2265625000 0.0015778288 - -0.0832014009 15687.7685546875 0.0015975010 - -0.0819037631 15685.4921875000 0.0016194440 - -0.0806059912 15685.2128906250 0.0016414614 - -0.0793080702 15684.7890625000 0.0016642681 - -0.0780100226 15684.0292968750 0.0016850255 - -0.0767118409 15682.4306640625 0.0017099875 - -0.0754135326 15682.0087890625 0.0017334252 - -0.0741150901 15681.3134765625 0.0017574108 - -0.0728165284 15680.5312500000 0.0017817704 - -0.0715178400 15677.0976562500 0.0018067262 - -0.0702190325 15677.9990234375 0.0018314507 - -0.0689201057 15676.5537109375 0.0018562863 - -0.0676210597 15676.2695312500 0.0018835412 - -0.0663218945 15674.6367187500 0.0019097356 - -0.0650226250 15673.0830078125 0.0019363812 - -0.0637232438 15673.6699218750 0.0019625893 - -0.0624237508 15672.0371093750 0.0019913358 - -0.0611241534 15670.9648437500 0.0020184855 - -0.0598244555 15668.9667968750 0.0020489213 - -0.0585246533 15667.3398437500 0.0020769013 - -0.0572247542 15666.1894531250 0.0021062442 - -0.0559247546 15665.9472656250 0.0021364156 - -0.0546246618 15664.8193359375 0.0021672510 - -0.0533244759 15662.8486328125 0.0021979476 - -0.0520242006 15661.3564453125 0.0022311294 - -0.0507238396 15660.7597656250 0.0022622987 - -0.0494233891 15658.8232421875 0.0022937753 - -0.0481228530 15658.2773437500 0.0023280985 - -0.0468222387 15656.2890625000 0.0023615635 - -0.0455215462 15654.7617187500 0.0023949626 - -0.0442207716 15653.3398437500 0.0024299794 - -0.0429199263 15652.8417968750 0.0024648760 - -0.0416190065 15651.8183593750 0.0024994765 - -0.0403180160 15650.2001953125 0.0025363665 - -0.0390169583 15648.7763671875 0.0025717146 - -0.0377158336 15647.3583984375 0.0026102534 - -0.0364146456 15645.0273437500 0.0026482069 - -0.0351133943 15643.6562500000 0.0026857234 - -0.0338120833 15641.0458984375 0.0027255178 - -0.0325107165 15639.5478515625 0.0027637153 - -0.0312092956 15638.2216796875 0.0028042074 - -0.0299078207 15637.8232421875 0.0028445562 - -0.0286062956 15635.5361328125 0.0028858453 - -0.0273047201 15634.1542968750 0.0029279294 - -0.0260031000 15632.0332031250 0.0029702545 - -0.0247014351 15629.8134765625 0.0030114818 - -0.0233997293 15628.9619140625 0.0030562147 - -0.0220979825 15627.1650390625 0.0030978085 - -0.0207961984 15625.3613281250 0.0031435238 - -0.0194943789 15623.3310546875 0.0031877011 - -0.0181925278 15622.4150390625 0.0032337857 - -0.0168906450 15619.8593750000 0.0032808506 - -0.0155887334 15618.6718750000 0.0033261268 - -0.0142867947 15616.5332031250 0.0033736755 - -0.0129848327 15614.3164062500 0.0034208661 - -0.0116828484 15613.1875000000 0.0034696339 - -0.0103808446 15611.1464843750 0.0035187034 - -0.0090788230 15609.0634765625 0.0035700011 - -0.0077767861 15607.0458984375 0.0036203833 - -0.0064747357 15605.4169921875 0.0036703413 - -0.0051726745 15604.4287109375 0.0037221508 - -0.0038706048 15602.5419921875 0.0037736818 - -0.0025685283 15601.3378906250 0.0038263500 - -0.0012664474 15599.3916015625 0.0038777059 - 0.0000356356 15595.9326171875 0.0039327759 - 0.0013377186 15594.5507812500 0.0039861621 - 0.0026397991 15593.4970703125 0.0040403241 - 0.0039418754 15590.6943359375 0.0040964223 - 0.0052439449 15588.6845703125 0.0041542230 - 0.0065460056 15585.6064453125 0.0042083077 - 0.0078480551 15583.9804687500 0.0042660385 - 0.0091500916 15581.8056640625 0.0043261154 - 0.0104521122 15579.8925781250 0.0043792203 - 0.0117541151 15577.6484375000 0.0044407947 - 0.0130560985 15576.2597656250 0.0044991914 - 0.0143580586 15574.5419921875 0.0045570713 - 0.0156599954 15571.8857421875 0.0046188086 - 0.0169619061 15570.9199218750 0.0046788286 - 0.0182637870 15566.4580078125 0.0047425134 - 0.0195656363 15565.4990234375 0.0048028659 - 0.0208674539 15562.8886718750 0.0048640436 - 0.0221692361 15560.6923828125 0.0049269125 - 0.0234709810 15558.4980468750 0.0049888194 - 0.0247726850 15556.4150390625 0.0050535314 - 0.0260743462 15553.6367187500 0.0051161628 - 0.0273759644 15550.6015625000 0.0051822383 - 0.0286775362 15550.6835937500 0.0052451938 - 0.0299790595 15547.7558593750 0.0053093191 - 0.0312805325 15545.3095703125 0.0053763539 - 0.0325819515 15541.3632812500 0.0054441523 - 0.0338833146 15540.1425781250 0.0055098571 - 0.0351846218 15536.8388671875 0.0055765361 - 0.0364858694 15534.5605468750 0.0056455769 - 0.0377870537 15533.4951171875 0.0057103634 - 0.0390881747 15530.2402343750 0.0057787560 - 0.0403892286 15527.0449218750 0.0058454350 - 0.0416902155 15525.9003906250 0.0059142597 - 0.0429911315 15523.0625000000 0.0059831720 - 0.0442919731 15520.2910156250 0.0060534123 - 0.0455927402 15518.2187500000 0.0061218888 - 0.0468934327 15514.9394531250 0.0061915610 - 0.0481940433 15512.7080078125 0.0062601194 - 0.0494945720 15509.4589843750 0.0063310713 - 0.0507950187 15507.6835937500 0.0063990057 - 0.0520953760 15505.3173828125 0.0064682141 - 0.0533956476 15503.0771484375 0.0065392144 - 0.0546958260 15500.0742187500 0.0066090226 - 0.0559959151 15497.4873046875 0.0066794343 - 0.0572959073 15494.4433593750 0.0067489892 - 0.0585958026 15490.7763671875 0.0068217590 - 0.0598955974 15489.9101562500 0.0068908557 - 0.0611952916 15487.1806640625 0.0069613289 - 0.0624948852 15484.6582031250 0.0070340671 - 0.0637943670 15480.6152343750 0.0071023293 - 0.0650937483 15478.5361328125 0.0071730576 - 0.0663930103 15476.4140625000 0.0072437413 - 0.0676921681 15474.1025390625 0.0073133260 - 0.0689912066 15471.1503906250 0.0073851906 - 0.0702901259 15467.5742187500 0.0074543692 - 0.0715889260 15465.6064453125 0.0075255260 - 0.0728876069 15461.5205078125 0.0075956099 - 0.0741861686 15458.7050781250 0.0076665618 - 0.0754846036 15456.4316406250 0.0077316612 - 0.0767829046 15454.2480468750 0.0078019761 - 0.0780810788 15451.4287109375 0.0078721531 - 0.0793791190 15447.7666015625 0.0079390816 - 0.0806770250 15445.0390625000 0.0080082826 - 0.0819747970 15442.4619140625 0.0080735497 - 0.0832724273 15439.4287109375 0.0081457123 - 0.0845699161 15436.2802734375 0.0082110316 - 0.0858672634 15434.2275390625 0.0082774572 - 0.0871644691 15431.4531250000 0.0083427206 - 0.0884615183 15427.9023437500 0.0084099136 - 0.0897584260 15425.1689453125 0.0084757283 - 0.0910551772 15422.0087890625 0.0085409991 - 0.0923517719 15419.8164062500 0.0086042322 - 0.0936482102 15416.4287109375 0.0086700730 - 0.0949444920 15412.3447265625 0.0087349564 - 0.0962406099 15409.9921875000 0.0087946840 - 0.0975365713 15408.0917968750 0.0088567585 - 0.0988323614 15404.6318359375 0.0089197718 - 0.1001279876 15400.2353515625 0.0089814849 - 0.1014234424 15397.7011718750 0.0090424493 - 0.1027187258 15394.4423828125 0.0091033876 - 0.1040138304 15392.2636718750 0.0091611221 - 0.1053087637 15388.9863281250 0.0092169829 - 0.1066035181 15385.7792968750 0.0092754997 - 0.1078980863 15382.8486328125 0.0093359314 - 0.1091924831 15378.7734375000 0.0093906112 - 0.1104866862 15377.3789062500 0.0094448924 - 0.1117807031 15372.2294921875 0.0095033199 - 0.1130745262 15370.4892578125 0.0095539391 - 0.1143681630 15367.4707031250 0.0096059963 - 0.1156616062 15363.9960937500 0.0096574128 - 0.1169548556 15359.2597656250 0.0097150654 - 0.1182479039 15357.6386718750 0.0097615421 - 0.1195407510 15354.3164062500 0.0098098032 - 0.1208333969 15349.9199218750 0.0098602399 - 0.1221258342 15347.7089843750 0.0099092722 - 0.1234180704 15344.8925781250 0.0099531002 - 0.1247100905 15342.3798828125 0.0099997558 - 0.1260019094 15339.1728515625 0.0100427605 - 0.1272934973 15335.2109375000 0.0100860335 - 0.1285848916 15332.3261718750 0.0101310685 - 0.1298760474 15328.0419921875 0.0101763681 - 0.1311669946 15324.2275390625 0.0102177337 - 0.1324577183 15322.1689453125 0.0102576911 - 0.1337482184 15318.8681640625 0.0102930218 - 0.1350384802 15315.9384765625 0.0103344843 - 0.1363285333 15311.8808593750 0.0103704408 - 0.1376183331 15308.5488281250 0.0104059502 - 0.1389079094 15305.2031250000 0.0104422942 - 0.1401972622 15302.5644531250 0.0104752034 - 0.1414863616 15298.7421875000 0.0105079189 - 0.1427752227 15294.7724609375 0.0105441585 - 0.1440638453 15291.3085937500 0.0105728582 - 0.1453522295 15288.9541015625 0.0106030032 - 0.1466403604 15284.5302734375 0.0106333494 - 0.1479282379 15282.5996093750 0.0106609985 - 0.1492158771 15279.6552734375 0.0106846467 - 0.1505032480 15275.3017578125 0.0107111409 - 0.1517903805 15272.3222656250 0.0107339695 - 0.1530772448 15267.8583984375 0.0107597187 - 0.1543638557 15265.6865234375 0.0107847154 - 0.1556501985 15262.3134765625 0.0108052641 - 0.1569362730 15259.4931640625 0.0108266026 - 0.1582220942 15255.5146484375 0.0108447522 - 0.1595076323 15251.8164062500 0.0108640641 - 0.1607929170 15248.2207031250 0.0108833909 - 0.1620779186 15243.8476562500 0.0108987466 - 0.1633626521 15242.2812500000 0.0109121501 - 0.1646471024 15237.8369140625 0.0109286755 - 0.1659312695 15235.5439453125 0.0109409839 - 0.1672151685 15230.3935546875 0.0109582990 - 0.1684987694 15227.1884765625 0.0109695196 - 0.1697821021 15222.9521484375 0.0109777898 - 0.1710651368 15220.5078125000 0.0109899268 - 0.1723478734 15216.2158203125 0.0109986812 - 0.1736303270 15211.9707031250 0.0110074133 - 0.1749124825 15209.9394531250 0.0110115334 - 0.1761943549 15206.3701171875 0.0110177621 - 0.1774759144 15202.4560546875 0.0110210553 - 0.1787571758 15198.9863281250 0.0110273883 - 0.1800381392 15195.7978515625 0.0110280886 - 0.1813187897 15191.8750000000 0.0110302046 - 0.1825991273 15187.9414062500 0.0110335201 - 0.1838791668 15183.3945312500 0.0110357776 - 0.1851588935 15179.8466796875 0.0110364482 - 0.1864383072 15176.9707031250 0.0110325739 - 0.1877174079 15175.0283203125 0.0110273361 - 0.1889961809 15170.3242187500 0.0110288411 - 0.1902746409 15167.8134765625 0.0110216886 - 0.1915527731 15162.5078125000 0.0110210329 - 0.1928305775 15159.8242187500 0.0110140964 - 0.1941080540 15157.0039062500 0.0110069066 - 0.1953852177 15151.9082031250 0.0109983608 - 0.1966620386 15149.6298828125 0.0109919682 - 0.1979385167 15146.1767578125 0.0109816492 - 0.1992146820 15142.2529296875 0.0109736100 - 0.2004904896 15137.4833984375 0.0109646991 - 0.2017659694 15134.6416015625 0.0109519213 - 0.2030411065 15131.7792968750 0.0109391883 - 0.2043158859 15127.6289062500 0.0109282359 - 0.2055903375 15123.9550781250 0.0109138340 - 0.2068644315 15121.2148437500 0.0108976364 - 0.2081381679 15117.8916015625 0.0108806640 - 0.2094115615 15113.6269531250 0.0108702555 - 0.2106845975 15111.0615234375 0.0108516216 - 0.2119572759 15106.5175781250 0.0108364001 - 0.2132295966 15102.1347656250 0.0108229592 - 0.2145015448 15097.8896484375 0.0108033121 - 0.2157731354 15095.3261718750 0.0107814148 - 0.2170443684 15091.8417968750 0.0107666925 - 0.2183152288 15087.6416015625 0.0107466504 - 0.2195857167 15084.5488281250 0.0107225776 - 0.2208558321 15079.8261718750 0.0107058957 - 0.2221255749 15077.0195312500 0.0106835067 - 0.2233949453 15072.5664062500 0.0106619820 - 0.2246639282 15069.2207031250 0.0106390193 - 0.2259325385 15066.0781250000 0.0106176808 - 0.2272007614 15061.1191406250 0.0105940849 - 0.2284685969 15059.8310546875 0.0105670467 - 0.2297360450 15055.8896484375 0.0105428696 - 0.2310031056 15051.7519531250 0.0105185583 - 0.2322697788 15047.9101562500 0.0104937926 - 0.2335360497 15044.5449218750 0.0104683861 - 0.2348019332 15040.6425781250 0.0104398876 - 0.2360674143 15037.0693359375 0.0104160532 - 0.2373324931 15033.8642578125 0.0103875399 - 0.2385971844 15030.0458984375 0.0103570893 - 0.2398614585 15026.2011718750 0.0103297308 - 0.2411253154 15022.5048828125 0.0103032142 - 0.2423887849 15019.7636718750 0.0102712959 - 0.2436518222 15015.7695312500 0.0102418214 - 0.2449144572 15010.2119140625 0.0102192387 - 0.2461766899 15007.7509765625 0.0101850927 - 0.2474384904 15004.7685546875 0.0101525411 - 0.2486998737 15000.8779296875 0.0101246759 - 0.2499608248 14996.6728515625 0.0100924373 - 0.2512213588 14993.1113281250 0.0100600943 - 0.2524814904 14989.3554687500 0.0100286379 - 0.2537411749 14986.2421875000 0.0099965483 - 0.2550004125 14981.6660156250 0.0099655911 - 0.2562592328 14978.8867187500 0.0099322796 - 0.2575176358 14974.7021484375 0.0099003538 - 0.2587755620 14970.5312500000 0.0098671690 - 0.2600331008 14967.8828125000 0.0098313764 - 0.2612901628 14962.9130859375 0.0098018646 - 0.2625467777 14960.9970703125 0.0097646490 - 0.2638029754 14955.9960937500 0.0097314417 - 0.2650586963 14953.8164062500 0.0096919984 - 0.2663139999 14949.4580078125 0.0096642971 - 0.2675688267 14946.6318359375 0.0096238181 - 0.2688232064 14942.2919921875 0.0095897242 - 0.2700771391 14938.8447265625 0.0095579699 - 0.2713305950 14935.2246093750 0.0095202252 - 0.2725836039 14931.1660156250 0.0094846338 - 0.2738361359 14928.3710937500 0.0094434544 - 0.2750882208 14923.2226562500 0.0094139874 - 0.2763398290 14920.9785156250 0.0093754455 - 0.2775909901 14917.3496093750 0.0093373060 - 0.2788416743 14912.3369140625 0.0093063340 - 0.2800918519 14910.2216796875 0.0092669576 - 0.2813415825 14906.4902343750 0.0092277825 - 0.2825908363 14903.7675781250 0.0091882870 - 0.2838396132 14898.8671875000 0.0091560483 - 0.2850879133 14896.0214843750 0.0091185868 - 0.2863357067 14892.4824218750 0.0090777203 - 0.2875830233 14888.7050781250 0.0090442300 - 0.2888298631 14885.3320312500 0.0090034977 - 0.2900761962 14880.7412109375 0.0089666694 - 0.2913220525 14878.3818359375 0.0089237466 - 0.2925674319 14874.4843750000 0.0088918582 - 0.2938122749 14872.5917968750 0.0088505223 - 0.2950566411 14867.7177734375 0.0088108703 - 0.2963005006 14862.1435546875 0.0087803751 - 0.2975438833 14860.7226562500 0.0087365657 - 0.2987867296 14856.3750000000 0.0086971745 - 0.3000290692 14852.3271484375 0.0086592585 - 0.3012709320 14848.9091796875 0.0086237118 - 0.3025122583 14846.5253906250 0.0085818917 - 0.3037530780 14842.6875000000 0.0085398182 - 0.3049933612 14840.0449218750 0.0084996969 - 0.3062331676 14834.7988281250 0.0084679723 - 0.3074724376 14831.9042968750 0.0084268004 - 0.3087111712 14828.6503906250 0.0083869025 - 0.3099493980 14825.4462890625 0.0083502308 - 0.3111870885 14821.7333984375 0.0083095655 - 0.3124242425 14817.7187500000 0.0082713142 - 0.3136608899 14814.9843750000 0.0082289129 - 0.3148970008 14811.4199218750 0.0081937015 - 0.3161325753 14808.7460937500 0.0081513599 - 0.3173676133 14804.9091796875 0.0081108660 - 0.3186021149 14800.6015625000 0.0080720261 - 0.3198360801 14797.4238281250 0.0080376044 - 0.3210694790 14793.6826171875 0.0079966858 - 0.3223023713 14791.7158203125 0.0079537779 - 0.3235346973 14788.7216796875 0.0079104751 - 0.3247664571 14783.7011718750 0.0078804418 - 0.3259977102 14780.8046875000 0.0078382641 - 0.3272283673 14777.4326171875 0.0077973902 - 0.3284584880 14773.3710937500 0.0077560022 - 0.3296880424 14771.3115234375 0.0077205747 - 0.3309170604 14767.6201171875 0.0076811984 - 0.3321455121 14765.3603515625 0.0076379105 - 0.3333733678 14760.3437500000 0.0075992867 - 0.3346006870 14758.4023437500 0.0075640455 - 0.3358274400 14754.4794921875 0.0075223967 - 0.3370536268 14749.6738281250 0.0074823014 - 0.3382792175 14747.1699218750 0.0074410476 - 0.3395042717 14744.3642578125 0.0074072331 - 0.3407287300 14740.4531250000 0.0073669143 - 0.3419525921 14737.5810546875 0.0073253214 - 0.3431758881 14735.2246093750 0.0072842985 - 0.3443986177 14731.0751953125 0.0072513334 - 0.3456207514 14727.0468750000 0.0072128028 - 0.3468422890 14725.7392578125 0.0071695484 - 0.3480632603 14722.4941406250 0.0071276054 - 0.3492836356 14719.1542968750 0.0070941448 - 0.3505034149 14715.5214843750 0.0070531294 - 0.3517225981 14710.8281250000 0.0070163086 - 0.3529411852 14708.6796875000 0.0069740415 - 0.3541591763 14705.6201171875 0.0069419816 - 0.3553765416 14702.8222656250 0.0069011748 - 0.3565933406 14699.3945312500 0.0068607964 - 0.3578095138 14696.6621093750 0.0068196431 - 0.3590250909 14692.9492187500 0.0067872405 - 0.3602400720 14690.1181640625 0.0067480430 - 0.3614544272 14687.0527343750 0.0067069307 - 0.3626681566 14683.4716796875 0.0066668130 - 0.3638812900 14680.4228515625 0.0066271834 - 0.3650937974 14676.5937500000 0.0065963194 - 0.3663056791 14673.4580078125 0.0065556765 - 0.3675169647 14671.8437500000 0.0065153167 - 0.3687275946 14668.0263671875 0.0064756721 - 0.3699376285 14666.0595703125 0.0064424612 - 0.3711470366 14662.1503906250 0.0064042285 - 0.3723557889 14659.8691406250 0.0063637272 - 0.3735639155 14657.9755859375 0.0063223876 - 0.3747714162 14653.4453125000 0.0062928535 - 0.3759782910 14650.8691406250 0.0062520169 - 0.3771845102 14647.1376953125 0.0062160566 - 0.3783901036 14645.3916015625 0.0061749183 - 0.3795950413 14643.0009765625 0.0061437823 - 0.3807993531 14639.3798828125 0.0061052814 - 0.3820030093 14635.7197265625 0.0060681589 - 0.3832060397 14633.6054687500 0.0060284957 - 0.3844083846 14630.3173828125 0.0059891902 - 0.3856101036 14627.9541015625 0.0059598237 - 0.3868111670 14624.2744140625 0.0059216544 - 0.3880115449 14621.0996093750 0.0058823153 - 0.3892112970 14619.2304687500 0.0058437102 - 0.3904103637 14617.0644531250 0.0058139339 - 0.3916088045 14613.2578125000 0.0057746395 - 0.3928065598 14609.2822265625 0.0057394654 - 0.3940036297 14608.0888671875 0.0056989193 - 0.3952000737 14605.2265625000 0.0056596510 - 0.3963958025 14602.7041015625 0.0056323856 - 0.3975909054 14600.8837890625 0.0055921115 - 0.3987852931 14596.6796875000 0.0055560991 - 0.3999790251 14593.8955078125 0.0055201650 - 0.4011720717 14592.0566406250 0.0054814182 - 0.4023644626 14588.5429687500 0.0054537207 - 0.4035561383 14587.3447265625 0.0054145157 - 0.4047471583 14583.3798828125 0.0053789243 - 0.4059374630 14581.2109375000 0.0053416006 - 0.4071271122 14579.1591796875 0.0053036287 - 0.4083160460 14575.9287109375 0.0052767508 - 0.4095042944 14573.8359375000 0.0052400641 - 0.4106918275 14571.5800781250 0.0052017756 - 0.4118787050 14569.2958984375 0.0051659346 - 0.4130648673 14565.4296875000 0.0051394105 - 0.4142503142 14562.5048828125 0.0051042102 - 0.4154350758 14560.4111328125 0.0050660744 - 0.4166191220 14559.1162109375 0.0050305463 - 0.4178024828 14555.8769531250 0.0049940161 - 0.4189850986 14552.9394531250 0.0049683340 - 0.4201670289 14550.5576171875 0.0049318187 - 0.4213482440 14549.0039062500 0.0048955828 - 0.4225287437 14546.2802734375 0.0048606321 - 0.4237085283 14544.8056640625 0.0048243292 - 0.4248875976 14542.2265625000 0.0047990121 - 0.4260659516 14539.0996093750 0.0047644041 - 0.4272435606 14536.2343750000 0.0047285892 - 0.4284204543 14534.9804687500 0.0046902932 - 0.4295966327 14533.3310546875 0.0046559013 - 0.4307720959 14530.9492187500 0.0046310648 - 0.4319467843 14528.5732421875 0.0045966655 - 0.4331207871 14525.6826171875 0.0045621991 - 0.4342940152 14523.8496093750 0.0045265555 - 0.4354665279 14522.1328125000 0.0044917315 - 0.4366382957 14521.1093750000 0.0044585578 - 0.4378093481 14516.4277343750 0.0044357777 - 0.4389796257 14514.8964843750 0.0044006519 - 0.4401491880 14512.8193359375 0.0043674819 - 0.4413179755 14512.1162109375 0.0043316968 - 0.4424860179 14509.8369140625 0.0042971224 - 0.4436533153 14506.8037109375 0.0042752288 - 0.4448198676 14504.4570312500 0.0042416342 - 0.4459856749 14502.6503906250 0.0042082444 - 0.4471507072 14501.2031250000 0.0041723959 - 0.4483149946 14499.1630859375 0.0041401163 - 0.4494785070 14497.8085937500 0.0041191541 - 0.4506412745 14494.2353515625 0.0040854551 - 0.4518032670 14493.6972656250 0.0040518083 - 0.4529644847 14491.1865234375 0.0040192679 - 0.4541249573 14490.2773437500 0.0039857030 - 0.4552846551 14486.6601562500 0.0039660893 - 0.4564435482 14485.3837890625 0.0039333850 - 0.4576016963 14483.1171875000 0.0039019212 - 0.4587590694 14482.1630859375 0.0038659424 - 0.4599156678 14480.5156250000 0.0038332306 - 0.4610714614 14479.3164062500 0.0038012117 - 0.4622265100 14476.2011718750 0.0037820041 - 0.4633807540 14474.3906250000 0.0037504137 - 0.4645342231 14474.2236328125 0.0037181303 - 0.4656868875 14471.7802734375 0.0036859810 - 0.4668387771 14470.0214843750 0.0036552548 - 0.4679898620 14469.2421875000 0.0036238730 - 0.4691401422 14465.7158203125 0.0036039837 - 0.4702896476 14465.0693359375 0.0035721697 - 0.4714383483 14464.4169921875 0.0035410188 - 0.4725862741 14461.3632812500 0.0035105832 - 0.4737333655 14460.9033203125 0.0034789965 - 0.4748796821 14460.0693359375 0.0034489166 - 0.4760251641 14457.3466796875 0.0034312960 - 0.4771698713 14456.4101562500 0.0033995528 - 0.4783137441 14456.3730468750 0.0033680480 - 0.4794568121 14453.5742187500 0.0033379551 - 0.4805990756 14452.8994140625 0.0033086576 - 0.4817405045 14449.6982421875 0.0032918192 - 0.4828811288 14449.2812500000 0.0032617133 - 0.4840209484 14448.0566406250 0.0032328237 - 0.4851599336 14447.0830078125 0.0032007620 - 0.4862980843 14446.3300781250 0.0031702835 - 0.4874354303 14444.0312500000 0.0031409208 - 0.4885719419 14442.6210937500 0.0031251851 - 0.4897076190 14441.6718750000 0.0030961297 - 0.4908424914 14439.6044921875 0.0030677374 - 0.4919764996 14440.2949218750 0.0030370448 - 0.4931096733 14438.6386718750 0.0030078590 - 0.4942420423 14437.6572265625 0.0029792525 - 0.4953735471 14435.5703125000 0.0029648412 - 0.4965042174 14435.8593750000 0.0029354021 - 0.4976340532 14433.5576171875 0.0029079709 - 0.4987630546 14431.8242187500 0.0028780811 - 0.4998911917 14431.4912109375 0.0028497744 - 0.5010184646 14429.3691406250 0.0028223228 - 0.5021449327 14430.7109375000 0.0027933791 - 0.5032705069 14429.1572265625 0.0027800035 - 0.5043952465 14428.0537109375 0.0027527977 - 0.5055191517 14428.0810546875 0.0027235225 - 0.5066421628 14425.5205078125 0.0026965085 - 0.5077643394 14427.0009765625 0.0026673879 - 0.5088856816 14424.5966796875 0.0026413407 - 0.5100061297 14423.9091796875 0.0026147701 - 0.5111256838 14422.7949218750 0.0026000459 - 0.5122444034 14422.1962890625 0.0025737341 - 0.5133622289 14422.1318359375 0.0025467016 - 0.5144792199 14420.7216796875 0.0025205202 - 0.5155953169 14420.2636718750 0.0024942178 - 0.5167105794 14420.2763671875 0.0024651065 - 0.5178248882 14418.7978515625 0.0024548061 - 0.5189383626 14418.0292968750 0.0024285764 - 0.5200510025 14418.9296875000 0.0024023559 - 0.5211626887 14418.6474609375 0.0023731925 - 0.5222735405 14417.2294921875 0.0023483504 - 0.5233834982 14416.8935546875 0.0023225620 - 0.5244925022 14416.5751953125 0.0023130067 - 0.5256006718 14414.4345703125 0.0022882223 - 0.5267079473 14415.4951171875 0.0022597238 - 0.5278143287 14415.2626953125 0.0022347011 - 0.5289198756 14415.4082031250 0.0022103284 - 0.5300244689 14413.7148437500 0.0021859072 - 0.5311281085 14415.2558593750 0.0021585859 - 0.5322309136 14412.8281250000 0.0021490306 - 0.5333328247 14413.1562500000 0.0021248609 - 0.5344337821 14411.6464843750 0.0021007005 - 0.5355339050 14413.0830078125 0.0020741504 - 0.5366330743 14412.8671875000 0.0020493530 - 0.5377313495 14412.7861328125 0.0020254124 - 0.5388286710 14412.3242187500 0.0020016264 - 0.5399250984 14412.4062500000 0.0019758884 - 0.5410206318 14411.7871093750 0.0019691158 - 0.5421152115 14412.2207031250 0.0019438006 - 0.5432088971 14412.5263671875 0.0019209273 - 0.5443016887 14413.4062500000 0.0018953457 - 0.5453935266 14412.8945312500 0.0018729363 - 0.5464844704 14412.2841796875 0.0018487908 - 0.5475744605 14412.4892578125 0.0018256623 - 0.5486634970 14412.9326171875 0.0018004049 - 0.5497516394 14411.4765625000 0.0017953347 - 0.5508388281 14412.8320312500 0.0017712768 - 0.5519251227 14412.6416015625 0.0017491337 - 0.5530104637 14414.1367187500 0.0017242674 - 0.5540948510 14413.4296875000 0.0017023329 - 0.5551782846 14414.3779296875 0.0016790591 - 0.5562608242 14413.7421875000 0.0016578399 - 0.5573423505 14415.2011718750 0.0016497541 - 0.5584229827 14414.6621093750 0.0016282368 - 0.5595026612 14415.1943359375 0.0016057640 - 0.5605813861 14416.3203125000 0.0015823431 - 0.5616591573 14416.3095703125 0.0015608035 - 0.5627359748 14415.9658203125 0.0015394464 - 0.5638118982 14417.9042968750 0.0015170872 - 0.5648868084 14417.1376953125 0.0015116781 - 0.5659607649 14418.2949218750 0.0014911629 - 0.5670337677 14416.6640625000 0.0014699921 - 0.5681058168 14420.0361328125 0.0014463160 - 0.5691768527 14421.5712890625 0.0014250521 - 0.5702469945 14421.0039062500 0.0014040712 - 0.5713161230 14422.6220703125 0.0013832841 - 0.5723842978 14422.4687500000 0.0013613869 - 0.5734515190 14423.2900390625 0.0013407189 - 0.5745177269 14423.4853515625 0.0013380218 - 0.5755829811 14424.4746093750 0.0013156999 - 0.5766472816 14425.3281250000 0.0012958478 - 0.5777105689 14426.4394531250 0.0012747254 - 0.5787729025 14426.8173828125 0.0012536831 - 0.5798342228 14429.1552734375 0.0012334473 - 0.5808945894 14428.8378906250 0.0012131538 - 0.5819539428 14430.9296875000 0.0011919383 - 0.5830123425 14432.7617187500 0.0011722222 - 0.5840697885 14431.6650390625 0.0011521131 - 0.5851261616 14433.6611328125 0.0011492800 - 0.5861815810 14433.1660156250 0.0011307281 - 0.5872359872 14434.9531250000 0.0011105929 - 0.5882894397 14437.0380859375 0.0010915026 - 0.5893418789 14438.3359375000 0.0010707770 - 0.5903933048 14439.5908203125 0.0010515396 - 0.5914437175 14440.3398437500 0.0010325983 - 0.5924931765 14442.1210937500 0.0010306612 - 0.5935415626 14443.7431640625 0.0010122182 - 0.5945889950 14444.1123046875 0.0009936010 - 0.5956354141 14445.6240234375 0.0009739008 - 0.5966808200 14447.8212890625 0.0009550843 - 0.5977252126 14448.0068359375 0.0009364886 - 0.5987685919 14450.8769531250 0.0009168135 - 0.5998109579 14452.2744140625 0.0008989284 - 0.6008522511 14452.3427734375 0.0008995784 - 0.6018925905 14454.4560546875 0.0008800924 - 0.6029319167 14455.7714843750 0.0008625556 - 0.6039701700 14458.0761718750 0.0008440735 - 0.6050074697 14459.7812500000 0.0008250950 - 0.6060436964 14461.2451171875 0.0008076681 - 0.6070789099 14463.0947265625 0.0007886272 - 0.6081130505 14464.3134765625 0.0007712226 - 0.6091461778 14466.7412109375 0.0007542372 - 0.6101782918 14468.8652343750 0.0007350324 - 0.6112093925 14469.5458984375 0.0007181233 - 0.6122394204 14472.0517578125 0.0007003769 - 0.6132684350 14473.8437500000 0.0006822655 - 0.6142963767 14475.7392578125 0.0006651981 - 0.6153233051 14477.9306640625 0.0006670663 - 0.6163491607 14479.3125000000 0.0006495062 - 0.6173740029 14481.6269531250 0.0006329631 - 0.6183978319 14484.4355468750 0.0006154934 - 0.6194205284 14485.8339843750 0.0005983571 - 0.6204422116 14488.6044921875 0.0005820971 - 0.6214628816 14490.7294921875 0.0005636495 - 0.6224824786 14492.9697265625 0.0005478691 - 0.6235010028 14494.3984375000 0.0005520256 - 0.6245184541 14496.5400390625 0.0005340884 - 0.6255348325 14499.9296875000 0.0005179942 - 0.6265501976 14500.5937500000 0.0005026432 - 0.6275644898 14504.4228515625 0.0004845401 - 0.6285777092 14506.9628906250 0.0004689544 - 0.6295898557 14508.7558593750 0.0004726602 - 0.6306009889 14510.3056640625 0.0004568398 - 0.6316109896 14514.0273437500 0.0004411386 - 0.6326199174 14515.2841796875 0.0004254533 - 0.6336278319 14517.9814453125 0.0004093461 - 0.6346346140 14520.8544921875 0.0003941525 - 0.6356403232 14524.4160156250 0.0003775219 - 0.6366450191 14525.8378906250 0.0003620973 - 0.6376485825 14529.2324218750 0.0003462816 - 0.6386510730 14531.3496093750 0.0003312128 - 0.6396524906 14534.9941406250 0.0003157714 - 0.6406527758 14537.0117187500 0.0003004940 - 0.6416520476 14539.4560546875 0.0002853731 - 0.6426501870 14542.8515625000 0.0002695136 - 0.6436472535 14546.1328125000 0.0002542976 - 0.6446431875 14548.1162109375 0.0002395688 - 0.6456380486 14551.3359375000 0.0002245381 - 0.6466318369 14555.0947265625 0.0002097851 - 0.6476245522 14557.3046875000 0.0001944108 - 0.6486161351 14561.0820312500 0.0001799418 - 0.6496065855 14563.8808593750 0.0001655612 - 0.6505959630 14567.2910156250 0.0001500584 - 0.6515842676 14569.5722656250 0.0001576068 - 0.6525714397 14574.1347656250 0.0001426339 - 0.6535575390 14575.7617187500 0.0001285672 - 0.6545425057 14579.4462890625 0.0001143394 - 0.6555263400 14582.0000000000 0.0001216410 - 0.6565091014 14583.8154296875 0.0001079859 - 0.6574907303 14588.3281250000 0.0000935756 - 0.6584712267 14591.0136718750 0.0001017796 - 0.6594505906 14595.2802734375 0.0000868924 - 0.6604288816 14598.3671875000 0.0000734497 - 0.6614060402 14601.7060546875 0.0000816509 - 0.6623820662 14603.6777343750 0.0000683339 - 0.6633570194 14607.2861328125 0.0000552488 - 0.6643307805 14612.4785156250 0.0000406755 - 0.6653034687 14615.2246093750 0.0000273706 - 0.6662750244 14618.4160156250 0.0000147168 - 0.6672453880 14622.3037109375 0.0000008978 - 0.6682146788 14626.0117187500 -0.0000128001 - 0.6691828370 14630.5888671875 -0.0000482127 - 0.6701498032 14632.8447265625 -0.0000611134 - 0.6711156964 14639.0996093750 -0.0000974340 - 0.6720804572 14643.2265625000 -0.0001108367 - 0.6730440259 14646.4531250000 -0.0001459131 - 0.6740064621 14651.0292968750 -0.0001823576 - 0.6749677658 14655.6699218750 -0.0002176482 - 0.6759279370 14660.7421875000 -0.0002763998 - 0.6768869758 14666.8320312500 -0.0003126729 - 0.6778448820 14670.9570312500 -0.0003715511 - 0.6788015962 14676.3291015625 -0.0004079565 - 0.6797571182 14682.9335937500 -0.0004673116 - 0.6807115674 14685.6005859375 -0.0005035009 - 0.6816648245 14691.8115234375 -0.0005628252 - 0.6826169491 14697.1708984375 -0.0006226590 - 0.6835678816 14702.3750000000 -0.0006591454 - 0.6845176816 14708.0898437500 -0.0007188935 - 0.6854663491 14712.8398437500 -0.0007553315 - 0.6864138246 14718.8925781250 -0.0008154986 - 0.6873601079 14724.1162109375 -0.0008522943 - 0.6883052588 14728.6425781250 -0.0008890685 - 0.6892492175 14734.6572265625 -0.0009257207 - 0.6901920438 14738.3759765625 -0.0009629121 - 0.6911336780 14745.3564453125 -0.0009768298 - 0.6920741200 14748.5078125000 -0.0010127919 - 0.6930134296 14752.7500000000 -0.0010262132 - 0.6939515471 -24075.3105468750 0.0002524075 - 0.6948884726 -24078.7207031250 0.0002624481 - 0.6958242655 -24081.3496093750 0.0002722600 - 0.6967588067 -24085.0000000000 0.0002834257 - 0.6976922154 -24088.3183593750 0.0002933810 - 0.6986244321 -24089.7421875000 0.0003033089 - 0.6995554566 -24092.9765625000 0.0003130711 - 0.7004852891 -24096.4707031250 0.0003228704 - 0.7014139891 -24099.6074218750 0.0003318735 - 0.7023414373 -24102.2089843750 0.0003422489 - 0.7032677531 -24105.5625000000 0.0003506811 - 0.7041928172 -24107.4453125000 0.0003600665 - 0.7051166892 -24112.2890625000 0.0003694505 - 0.7060394287 -24113.6074218750 0.0003780047 - 0.7069609165 -24117.5644531250 0.0003866409 - 0.7078812122 -24119.9023437500 0.0003956067 - 0.7088003159 -24124.1933593750 0.0004047086 - 0.7097182274 -24126.5781250000 0.0004127473 - 0.7106348872 -24127.7500000000 0.0004215036 - 0.7115504146 -24131.9335937500 0.0004295460 - 0.7124646902 -24133.6621093750 0.0004380443 - 0.7133777738 -24136.9843750000 0.0004452178 - 0.7142896056 -24140.6503906250 0.0004540351 - 0.7152003050 -24143.9531250000 0.0004614498 - 0.7161097527 -24145.5839843750 0.0004695999 - 0.7170179486 -24149.0429687500 0.0004763398 - 0.7179249525 -24151.8593750000 0.0004840265 - 0.7188307643 -24154.9160156250 0.0004913141 - 0.7197353840 -24157.5039062500 0.0004992145 - 0.7206386924 -24161.6464843750 0.0005057147 - 0.7215408683 -24163.7929687500 0.0005137282 - 0.7224417925 -24167.5761718750 0.0005199932 - 0.7233414650 -24169.2832031250 0.0005275342 - 0.7242399454 -24173.1484375000 0.0005342420 - 0.7251371741 -24175.3984375000 0.0005404647 - 0.7260331511 -24178.4121093750 0.0005472084 - 0.7269279361 -24181.2304687500 0.0005540922 - 0.7278214693 -24184.4902343750 0.0005598939 - 0.7287138104 -24187.3691406250 0.0005670669 - 0.7296048403 -24189.9726562500 0.0005723075 - 0.7304946780 -24192.5117187500 0.0005793660 - 0.7313832641 -24194.1875000000 0.0005851039 - 0.7322706580 -24199.1308593750 0.0005906452 - 0.7331567407 -24200.4765625000 0.0005977834 - 0.7340416312 -24202.5390625000 0.0006023925 - 0.7349252701 -24206.1230468750 0.0006086137 - 0.7358076572 -24210.0000000000 0.0006138743 - 0.7366887927 -24211.4804687500 0.0006207554 - 0.7375686765 -24215.4238281250 0.0006258562 - 0.7384473085 -24216.3789062500 0.0006304444 - 0.7393246889 -24219.6113281250 0.0006352696 - 0.7402008176 -24221.6328125000 0.0006416286 - 0.7410756946 -24225.3144531250 0.0006464263 - 0.7419493198 -24227.8769531250 0.0006523272 - 0.7428216934 -24231.2949218750 0.0006561875 - 0.7436927557 -24234.2500000000 0.0006622928 - 0.7445626259 -24236.6914062500 0.0006660465 - 0.7454311848 -24238.9550781250 0.0006718915 - 0.7462984920 -24241.4511718750 0.0006754361 - 0.7471645474 -24244.8046875000 0.0006810017 - 0.7480293512 -24248.7187500000 0.0006857468 - 0.7488928437 -24249.3750000000 0.0006904164 - 0.7497550845 -24251.5839843750 0.0006940486 - 0.7506160736 -24256.6679687500 0.0006990833 - 0.7514757514 -24257.7031250000 0.0007026740 - 0.7523341775 -24260.2246093750 0.0007080738 - 0.7531913519 -24264.5175781250 0.0007120823 - 0.7540472150 -24266.5781250000 0.0007161419 - 0.7549018264 -24268.7675781250 0.0007204977 - 0.7557551265 -24271.4277343750 0.0007248744 - 0.7566071749 -24275.3183593750 0.0007283273 - 0.7574579120 -24275.6562500000 0.0007320102 - 0.7583073974 -24279.3320312500 0.0007357392 - 0.7591555715 -24281.1347656250 0.0007399041 - 0.7600024343 -24285.7187500000 0.0007432126 - 0.7608480453 -24286.7656250000 0.0007474171 - 0.7616923451 -24290.3398437500 0.0007510795 - 0.7625353932 -24292.0117187500 0.0007552970 - 0.7633771300 -24294.9882812500 0.0007582386 - 0.7642175555 -24297.4433593750 0.0007629017 - 0.7650567293 -24299.5566406250 0.0007651006 - 0.7658945322 -24302.7949218750 0.0007695970 - 0.7667310834 -24305.6894531250 0.0007716306 - 0.7675663233 -24307.0820312500 0.0007762345 - 0.7684003115 -24309.9667968750 0.0007783640 - 0.7692329288 -24312.3671875000 0.0007818509 - 0.7700642943 -24315.5390625000 0.0007845629 - 0.7708942890 -24317.4589843750 0.0007887925 - 0.7717230320 -24319.2539062500 0.0007909327 - 0.7725504637 -24323.2949218750 0.0007927986 - 0.7733765244 -24326.7070312500 0.0007972131 - 0.7742013335 -24327.4707031250 0.0007994394 - 0.7750248313 -24330.8320312500 0.0008028187 - 0.7758470178 -24332.8105468750 0.0008046287 - 0.7766678333 -24336.3691406250 0.0008088364 - 0.7774873972 -24339.0058593750 0.0008110707 - 0.7783055902 -24340.2929687500 0.0008140802 - 0.7791225314 -24343.4257812500 0.0008156546 - 0.7799381018 -24345.0859375000 0.0008196840 - 0.7807523608 -24347.4492187500 0.0008212118 - 0.7815652490 -24350.2363281250 0.0008243592 - 0.7823768854 -24352.8515625000 0.0008256570 - 0.7831871510 -24354.1152343750 0.0008294052 - 0.7839961052 -24358.2539062500 0.0008318312 - 0.7848037481 -24359.7324218750 0.0008350974 - 0.7856100202 -24363.4687500000 0.0008362229 - 0.7864149809 -24364.5234375000 0.0008398816 - 0.7872186303 -24366.4941406250 0.0008409671 - 0.7880209088 -24369.0898437500 0.0008441256 - 0.7888218760 -24370.7441406250 0.0008448865 - 0.7896214724 -24373.8027343750 0.0008481923 - 0.7904197574 -24375.8945312500 0.0008491217 - 0.7912167311 -24377.4472656250 0.0008522244 - 0.7920123339 -24380.9121093750 0.0008538961 - 0.7928065658 -24384.0214843750 0.0008574058 - 0.7935994864 -24386.4531250000 0.0008587134 - 0.7943910360 -24389.0371093750 0.0008601174 - 0.7951812744 -24390.1152343750 0.0008621113 - 0.7959701419 -24393.3203125000 0.0008633141 - 0.7967576981 -24394.4804687500 0.0008661570 - 0.7975438237 -24397.3203125000 0.0008676359 - 0.7983286381 -24400.3925781250 0.0008703787 - 0.7991121411 -24402.4238281250 0.0008702870 - 0.7998942137 -24404.2500000000 0.0008736541 - 0.8006749749 -24406.3710937500 0.0008744099 - 0.8014543653 -24407.5253906250 0.0008770297 - 0.8022324443 -24410.9609375000 0.0008785604 - 0.8030090928 -24413.2128906250 0.0008811974 - 0.8037844300 -24415.2890625000 0.0008811755 - 0.8045583963 -24416.3906250000 0.0008837469 - 0.8053309917 -24419.1699218750 0.0008852612 - 0.8061022162 -24420.5312500000 0.0008871332 - 0.8068720698 -24424.3652343750 0.0008886692 - 0.8076405525 -24426.5234375000 0.0008889230 - 0.8084076643 -24428.9277343750 0.0008916301 - 0.8091734052 -24429.9277343750 0.0008913940 - 0.8099377751 -24431.6777343750 0.0008944778 - 0.8107007742 -24433.8261718750 0.0008942599 - 0.8114624619 -24436.0566406250 0.0008969021 - 0.8122226596 -24439.1601562500 0.0008979621 - 0.8129815459 -24440.5878906250 0.0009006059 - 0.8137390614 -24442.1464843750 0.0009001691 - 0.8144952059 -24442.6972656250 0.0009026318 - 0.8152499199 -24446.2617187500 0.0009030548 - 0.8160032630 -24448.2636718750 0.0009057170 - 0.8167552352 -24450.9453125000 0.0009051864 - 0.8175058365 -24453.4199218750 0.0009083331 - 0.8182550669 -24454.7558593750 0.0009080728 - 0.8190028667 -24456.8085937500 0.0009104693 - 0.8197492957 -24459.0527343750 0.0009115029 - 0.8204943538 -24461.0292968750 0.0009109317 - 0.8212379813 -24462.5332031250 0.0009126503 - 0.8219802380 -24464.6230468750 0.0009129473 - 0.8227210641 -24466.8613281250 0.0009151639 - 0.8234605789 -24469.4394531250 0.0009156966 - 0.8241986036 -24469.3906250000 0.0009178030 - 0.8249353170 -24472.9531250000 0.0009180759 - 0.8256705999 -24473.7773437500 0.0009204387 - 0.8264044523 -24476.4121093750 0.0009199458 - 0.8271369338 -24477.3847656250 0.0009216052 - 0.8278679848 -24480.7226562500 0.0009224720 - 0.8285976648 -24482.0175781250 0.0009240918 - 0.8293259144 -24482.9062500000 0.0009235507 - 0.8300527930 -24485.2031250000 0.0009263058 - 0.8307782412 -24487.8242187500 0.0009259721 - 0.8315022588 -24488.9296875000 0.0009254389 - 0.8322249055 -24489.7675781250 0.0009276783 - 0.8329461217 -24494.0449218750 0.0009277689 - 0.8336659074 -24495.0761718750 0.0009295852 - 0.8343843222 -24496.1601562500 0.0009293766 - 0.8351013064 -24498.2500000000 0.0009318858 - 0.8358168602 -24499.8691406250 0.0009321708 - 0.8365309834 -24501.6796875000 0.0009335114 - 0.8372437358 -24504.0839843750 0.0009326329 - 0.8379550576 -24504.9609375000 0.0009350607 - 0.8386649489 -24507.6074218750 0.0009350518 - 0.8393734097 -24508.6367187500 0.0009368060 - 0.8400804400 -24509.8613281250 0.0009361096 - 0.8407860398 -24512.3867187500 0.0009380772 - 0.8414902091 -24514.9316406250 0.0009376339 - 0.8421930075 -24514.7050781250 0.0009378029 - 0.8428943157 -24517.1914062500 0.0009392800 - 0.8435942531 -24519.5039062500 0.0009394442 - 0.8442927599 -24520.3652343750 0.0009404311 - 0.8449897766 -24523.0644531250 0.0009399806 - 0.8456854224 -24523.5039062500 0.0009430803 - 0.8463795781 -24524.9589843750 0.0009413771 - 0.8470723033 -24526.3515625000 0.0009437411 - 0.8477636576 -24528.3515625000 0.0009429555 - 0.8484535217 -24530.7753906250 0.0009449290 - 0.8491419554 -24531.1347656250 0.0009445050 - 0.8498289585 -24532.9707031250 0.0009465392 - 0.8505144715 -24535.2265625000 0.0009463469 - 0.8511986136 -24538.1582031250 0.0009456028 - 0.8518812656 -24538.2734375000 0.0009470023 - 0.8525624871 -24538.5410156250 0.0009461748 - 0.8532422781 -24541.2753906250 0.0009487639 - 0.8539205790 -24542.5195312500 0.0009480226 - 0.8545975089 -24544.9335937500 0.0009503153 - 0.8552729487 -24546.3925781250 0.0009489276 - 0.8559468985 -24546.7382812500 0.0009509022 - 0.8566194177 -24548.1640625000 0.0009494787 - 0.8572905064 -24549.9648437500 0.0009523740 - 0.8579601645 -24551.9765625000 0.0009512887 - 0.8586283326 -24551.6601562500 0.0009532021 - 0.8592950702 -24553.7363281250 0.0009520974 - 0.8599603176 -24556.2968750000 0.0009509854 - 0.8606241345 -24556.7968750000 0.0009538173 - 0.8612864614 -24558.8789062500 0.0009530147 - 0.8619473577 -24559.5097656250 0.0009544431 - 0.8626067638 -24560.9257812500 0.0009536317 - 0.8632647395 -24563.0390625000 0.0009559456 - 0.8639212251 -24563.2519531250 0.0009545234 - 0.8645762205 -24564.3417968750 0.0009564813 - 0.8652297854 -24566.8925781250 0.0009557121 - 0.8658819199 -24567.3281250000 0.0009570827 - 0.8665325642 -24569.5644531250 0.0009571768 - 0.8671817183 -24569.9570312500 0.0009582769 - 0.8678293824 -24571.1601562500 0.0009580075 - 0.8684756160 -24571.5234375000 0.0009594702 - 0.8691203594 -24573.9843750000 0.0009591922 - 0.8697636127 -24575.1699218750 0.0009586385 - 0.8704054356 -24574.9726562500 0.0009596359 - 0.8710457683 -24577.4179687500 0.0009590455 - 0.8716846108 -24578.5546875000 0.0009612532 - 0.8723219633 -24579.7792968750 0.0009600541 - 0.8729578853 -24581.1679687500 0.0009626758 - 0.8735922575 -24581.4550781250 0.0009611794 - 0.8742251992 -24582.5898437500 0.0009625251 - 0.8748566508 -24583.7500000000 0.0009625091 - 0.8754866123 -24585.9804687500 0.0009638348 - 0.8761150837 -24585.2890625000 0.0009633610 - 0.8767420650 -24587.4628906250 0.0009652080 - 0.8773676157 -24588.3867187500 0.0009641803 - 0.8779916167 -24588.0722656250 0.0009656791 - 0.8786141276 -24590.5625000000 0.0009659186 - 0.8792352080 -24593.0488281250 0.0009651233 - 0.8798547387 -24593.7265625000 0.0009675536 - 0.8804727793 -24594.0585937500 0.0009659079 - 0.8810893893 -24594.3261718750 0.0009684253 - 0.8817044497 -24595.6406250000 0.0009672658 - 0.8823180199 -24598.0410156250 0.0009700197 - 0.8829301000 -24597.6601562500 0.0009684330 - 0.8835406899 -24597.6347656250 0.0009699280 - 0.8841497898 -24599.6425781250 0.0009701336 - 0.8847573400 -24600.3417968750 0.0009719853 - 0.8853634596 -24601.7343750000 0.0009708824 - 0.8859680295 -24601.7089843750 0.0009732693 - 0.8865711093 -24602.6367187500 0.0009725774 - 0.8871726990 -24602.7792968750 0.0009744931 - 0.8877727985 -24604.7363281250 0.0009752952 - 0.8883713484 -24607.4023437500 0.0009746125 - 0.8889684081 -24606.6445312500 0.0009761308 - 0.8895639777 -24607.1210937500 0.0009756195 - 0.8901580572 -24608.3378906250 0.0009778526 - 0.8907505870 -24609.7656250000 0.0009783546 - 0.8913416266 -24609.8652343750 0.0009803965 - 0.8919311166 -24610.4707031250 0.0009797730 - 0.8925191164 -24612.1425781250 0.0009821272 - 0.8931056261 -24612.4628906250 0.0009813316 - 0.8936905861 -24612.4746093750 0.0009838417 - 0.8942740560 -24612.9414062500 0.0009843125 - 0.8948560357 -24614.0410156250 0.0009864194 - 0.8954364657 -24614.9277343750 0.0009864175 - 0.8960154057 -24615.9531250000 0.0009886115 - 0.8965927958 -24616.5488281250 0.0009892560 - 0.8971686363 -24617.7675781250 0.0009914937 - 0.8977429867 -24619.2011718750 0.0009925528 - 0.8983158469 -24619.2968750000 0.0009943894 - 0.8988871574 -24620.3574218750 0.0009952548 - 0.8994569182 -24620.0214843750 0.0009955259 - 0.9000251889 -24619.7675781250 0.0009974348 - 0.9005919099 -24620.8105468750 0.0009984733 - 0.9011571407 -24621.5234375000 0.0010014451 - 0.9017208219 -24623.0507812500 0.0010023278 - 0.9022829533 -24621.9746093750 0.0010048666 - 0.9028435946 -24623.0917968750 0.0010060847 - 0.9034026861 -24624.3632812500 0.0010091097 - 0.9039602280 -24623.5625000000 0.0010096366 - 0.9045162797 -24623.3925781250 0.0010128000 - 0.9050707221 -24626.4941406250 0.0010150818 - 0.9056237340 -24624.9902343750 0.0010176685 - 0.9061751366 -24626.3925781250 0.0010191693 - 0.9067249894 -24626.3945312500 0.0010226469 - 0.9072733521 -24628.5136718750 0.0010246946 - 0.9078201652 -24627.8300781250 0.0010279058 - 0.9083654284 -24629.1113281250 0.0010298293 - 0.9089092016 -24628.4589843750 0.0010336691 - 0.9094513655 -24629.9023437500 0.0010357625 - 0.9099920392 -24629.6308593750 0.0010398696 - 0.9105311036 -24630.8476562500 0.0010424061 - 0.9110686779 -24629.1601562500 0.0010464443 - 0.9116047025 -24629.7148437500 0.0010483721 - 0.9121391773 -24631.0234375000 0.0010514283 - 0.9126721025 -24632.0214843750 0.0010560232 - 0.9132034779 -24631.5878906250 0.0010584632 - 0.9137333035 -24633.1425781250 0.0010646766 - 0.9142615795 -24633.7656250000 0.0010673858 - 0.9147883058 -24632.4785156250 0.0010721681 - 0.9153134823 -24633.1816406250 0.0010759316 - 0.9158371091 -24631.9980468750 0.0010807577 - 0.9163591862 -24632.5859375000 0.0010853454 - 0.9168797135 -24635.1523437500 0.0010915119 - 0.9173986912 -24634.5625000000 0.0010955348 - 0.9179161191 -24634.0000000000 0.0011016757 - 0.9184319377 -24634.5937500000 0.0011059230 - 0.9189462662 -24634.1796875000 0.0011128513 - 0.9194589853 -24634.1074218750 0.0011174658 - 0.9199701548 -24635.1464843750 0.0011246058 - 0.9204797745 -24635.1347656250 0.0011297944 - 0.9209878445 -24634.3652343750 0.0011372142 - 0.9214943647 -24634.2500000000 0.0011433868 - 0.9219992757 -24635.6464843750 0.0011513715 - 0.9225026369 -24635.8906250000 0.0011576426 - 0.9230044484 -24635.3964843750 0.0011660943 - 0.9235047102 -24636.9667968750 0.0011727838 - 0.9240034223 -24635.5117187500 0.0011810963 - 0.9245005250 -24635.0507812500 0.0011886817 - 0.9249960780 -24635.7089843750 0.0011985973 - 0.9254900217 -24636.3027343750 0.0012066341 - 0.9259824157 -24635.7460937500 0.0012160821 - 0.9264732599 -24635.3046875000 0.0012245432 - 0.9269625545 -24635.0683593750 0.0012351966 - 0.9274502397 -24635.9277343750 0.0012451981 - 0.9279363751 -24633.9394531250 0.0012553534 - 0.9284209013 -24635.3710937500 0.0012658292 - 0.9289038777 -24636.5957031250 0.0012776130 - 0.9293853045 -24635.6015625000 0.0012887176 - 0.9298651218 -24636.2011718750 0.0013012623 - 0.9303433895 -24635.7890625000 0.0013125520 - 0.9308200479 -24635.3613281250 0.0013263007 - 0.9312951565 -24634.3730468750 0.0013382861 - 0.9317686558 -24634.7773437500 0.0013522068 - 0.9322406054 -24634.4921875000 0.0013651073 - 0.9327109456 -24635.4179687500 0.0013809106 - 0.9331797361 -24635.2382812500 0.0013939431 - 0.9336469173 -24634.0019531250 0.0014097546 - 0.9341124892 -24634.2636718750 0.0014259969 - 0.9345765114 -24633.4960937500 0.0014429216 - 0.9350389838 -24634.0644531250 0.0014574474 - 0.9354998469 -24632.9199218750 0.0014763880 - 0.9359591007 -24634.1757812500 0.0014937585 - 0.9364168048 -24631.8027343750 0.0015128090 - 0.9368728399 -24634.3847656250 0.0015311096 - 0.9373273849 -24632.4687500000 0.0015507967 - 0.9377803206 -24632.0156250000 0.0015700004 - 0.9382316470 -24630.7988281250 0.0015916676 - 0.9386813641 -24630.3906250000 0.0016116478 - 0.9391294718 -24629.9785156250 0.0016345072 - 0.9395760298 -24629.6308593750 0.0016568567 - 0.9400209785 -24630.2226562500 0.0016806544 - 0.9404643774 -24629.8496093750 0.0017037893 - 0.9409061670 -24630.4609375000 0.0017297928 - 0.9413463473 -24629.3164062500 0.0017546889 - 0.9417849183 -24628.6699218750 0.0017812642 - 0.9422218800 -24629.2031250000 0.0018084025 - 0.9426572919 -24628.6113281250 0.0018362938 - 0.9430910349 -24627.9453125000 0.0018648145 - 0.9435232282 -24626.1503906250 0.0018929241 - 0.9439538121 -24628.1914062500 0.0019239554 - 0.9443828464 -24625.4316406250 0.0019548510 - 0.9448102117 -24625.8769531250 0.0019867022 - 0.9452359676 -24625.2734375000 0.0020203916 - 0.9456601739 -24625.2558593750 0.0020540212 - 0.9460827708 -24623.9121093750 0.0020884657 - 0.9465036988 -24622.9902343750 0.0021241135 - 0.9469230771 -24624.0390625000 0.0021620148 - 0.9473408461 -24623.5000000000 0.0022000601 - 0.9477570057 -24620.9941406250 0.0022373949 - 0.9481715560 -24621.9492187500 0.0022789689 - 0.9485844970 -24622.0683593750 0.0023210128 - 0.9489958286 -24619.9433593750 0.0023616506 - 0.9494056106 -24619.8261718750 0.0024047270 - 0.9498137236 -24620.1953125000 0.0024498841 - 0.9502202272 -24618.3984375000 0.0024971319 - 0.9506251216 -24617.8515625000 0.0025416859 - 0.9510284066 -24617.6503906250 0.0025915254 - 0.9514300823 -24615.2343750000 0.0026408448 - 0.9518301487 -24615.9648437500 0.0026928904 - 0.9522285461 -24614.6035156250 0.0027448223 - 0.9526253939 -24615.5390625000 0.0027980355 - 0.9530206323 -24613.1367187500 0.0028530143 - 0.9534142017 -24613.1503906250 0.0029087148 - 0.9538062215 -24612.1757812500 0.0029686948 - 0.9541965723 -24612.3652343750 0.0030280121 - 0.9545853138 -24609.5039062500 0.0030876838 - 0.9549724460 -24610.9648437500 0.0031507951 - 0.9553579688 -24609.3203125000 0.0032158389 - 0.9557418227 -24607.7050781250 0.0032802681 - 0.9561241269 -24609.1386718750 0.0033494991 - 0.9565047622 -24606.6640625000 0.0034168903 - 0.9568837881 -24605.9296875000 0.0034873793 - 0.9572612047 -24605.3105468750 0.0035613663 - 0.9576370120 -24604.6425781250 0.0036364668 - 0.9580111504 -24603.6464843750 0.0037119677 - 0.9583836794 -24603.3164062500 0.0037923162 - 0.9587545991 -24602.2851562500 0.0038710972 - 0.9591238499 -24601.3847656250 0.0039510215 - 0.9594915509 -24599.4082031250 0.0040370189 - 0.9598575830 -24600.3242187500 0.0041237036 - 0.9602219462 -24599.3457031250 0.0042099063 - 0.9605847597 -24598.8847656250 0.0043019583 - 0.9609459043 -24597.0410156250 0.0043935501 - 0.9613054395 -24596.1503906250 0.0044874004 - 0.9616633058 -24594.4609375000 0.0045849662 - 0.9620195627 -24594.6171875000 0.0046821423 - 0.9623742104 -24592.9511718750 0.0047848769 - 0.9627271891 -24593.1054687500 0.0048887804 - 0.9630785584 -24591.4160156250 0.0049928003 - 0.9634282589 -24589.2871093750 0.0051002358 - 0.9637764096 -24588.2539062500 0.0052094087 - 0.9641228318 -24587.1738281250 0.0053235637 - 0.9644676447 -24586.8828125000 0.0054398570 - 0.9648108482 -24586.2753906250 0.0055570994 - 0.9651524425 -24584.3945312500 0.0056802509 - 0.9654923677 -24583.2617187500 0.0058020516 - 0.9658306241 -24583.7187500000 0.0059248172 - 0.9661672711 -24580.0136718750 0.0060567237 - 0.9665023088 -24581.3417968750 0.0061840955 - 0.9668356776 -24578.6171875000 0.0063196984 - 0.9671673775 -24578.6230468750 0.0064543202 - 0.9674974680 -24576.8105468750 0.0065964260 - 0.9678259492 -24574.9550781250 0.0067385384 - 0.9681527615 -24574.3007812500 0.0068816706 - 0.9684779048 -24573.3164062500 0.0070289634 - 0.9688014388 -24572.7167968750 0.0071789687 - 0.9691233039 -24571.4218750000 0.0073341699 - 0.9694435596 -24569.7734375000 0.0074913995 - 0.9697621465 -24568.9257812500 0.0076541584 - 0.9700791240 -24567.8750000000 0.0078179203 - 0.9703944325 -24565.5292968750 0.0079817483 - 0.9707080722 -24564.8046875000 0.0081517063 - 0.9710201025 -24562.8691406250 0.0083241323 - 0.9713304639 -24561.4355468750 0.0085008815 - 0.9716392159 -24561.0957031250 0.0086761862 - 0.9719462991 -24560.6035156250 0.0088599306 - 0.9722517133 -24558.8476562500 0.0090439469 - 0.9725555182 -24556.5722656250 0.0092327166 - 0.9728576541 -24556.2324218750 0.0094241165 - 0.9731581211 -24554.3964843750 0.0096236570 - 0.9734569192 -24553.0019531250 0.0098142000 - 0.9737541080 -24553.0253906250 0.0100195352 - 0.9740496874 -24549.8847656250 0.0102295792 - 0.9743435383 -24549.2402343750 0.0104289297 - 0.9746357799 -24547.9531250000 0.0106467642 - 0.9749263525 -24546.3554687500 0.0108614732 - 0.9752152562 -24544.6347656250 0.0110768108 - 0.9755025506 -24543.5800781250 0.0113031473 - 0.9757881761 -24542.4941406250 0.0115283187 - 0.9760721326 -24540.8066406250 0.0117589757 - 0.9763544202 -24540.7636718750 0.0119903767 - 0.9766350985 -24538.6464843750 0.0122236228 - 0.9769140482 -24536.9902343750 0.0124632884 - 0.9771913886 -24535.9472656250 0.0127041517 - 0.9774670601 -24534.4375000000 0.0129517019 - 0.9777411222 -24531.1894531250 0.0131982937 - 0.9780134559 -24531.1445312500 0.0134540210 - 0.9782841802 -24529.0800781250 0.0137120532 - 0.9785532355 -24527.1718750000 0.0139660733 - 0.9788206220 -24526.3417968750 0.0142326029 - 0.9790863395 -24526.4042968750 0.0145003311 - 0.9793504477 -24523.7714843750 0.0147718620 - 0.9796128273 -24521.9394531250 0.0150436712 - 0.9798735976 -24520.3066406250 0.0153234182 - 0.9801326990 -24518.8906250000 0.0155992061 - 0.9803901315 -24517.1679687500 0.0158833675 - 0.9806458950 -24516.4882812500 0.0161637310 - 0.9808999896 -24514.1289062500 0.0164546818 - 0.9811524153 -24514.3593750000 0.0167467557 - 0.9814032316 -24511.4472656250 0.0170449018 - 0.9816523194 -24508.9492187500 0.0173457619 - 0.9818997383 -24508.0488281250 0.0176456869 - 0.9821455479 -24507.0546875000 0.0179479104 - 0.9823896885 -24506.2265625000 0.0182564557 - 0.9826321006 -24503.4003906250 0.0185602400 - 0.9828729033 -24500.1035156250 0.0188732371 - 0.9831120372 -24499.4316406250 0.0191921238 - 0.9833495021 -24497.9531250000 0.0195073616 - 0.9835852981 -24496.3730468750 0.0198262148 - 0.9838193655 -24493.5175781250 0.0201486927 - 0.9840518236 -24495.0820312500 0.0204763487 - 0.9842826128 -24490.7324218750 0.0208055321 - 0.9845117331 -24490.6718750000 0.0211346969 - 0.9847391844 -24488.4882812500 0.0214714948 - 0.9849649668 -24486.2929687500 0.0217959881 - 0.9851890802 -24484.7851562500 0.0221368372 - 0.9854115248 -24484.3300781250 0.0224736165 - 0.9856322408 -24480.8320312500 0.0228156801 - 0.9858513474 -24480.3750000000 0.0231589116 - 0.9860687852 -24477.9492187500 0.0235026628 - 0.9862845540 -24477.0390625000 0.0238516387 - 0.9864985943 -24475.2988281250 0.0241946168 - 0.9867110252 -24474.0000000000 0.0245445557 - 0.9869217277 -24471.7050781250 0.0248853024 - 0.9871308208 -24469.5644531250 0.0252374280 - 0.9873381853 -24466.7988281250 0.0255967677 - 0.9875438809 -24465.4843750000 0.0259417742 - 0.9877479672 -24464.3710937500 0.0262968652 - 0.9879503250 -24462.2460937500 0.0266421307 - 0.9881510139 -24460.0488281250 0.0270121936 - 0.9883499742 -24458.9140625000 0.0273616016 - 0.9885473251 -24457.0410156250 0.0277155209 - 0.9887430072 -24454.0253906250 0.0280695539 - 0.9889369607 -24453.7089843750 0.0284253620 - 0.9891293049 -24450.7675781250 0.0287851952 - 0.9893199205 -24450.0566406250 0.0291357804 - 0.9895088673 -24446.9648437500 0.0294974986 - 0.9896961451 -24445.2871093750 0.0298547931 - 0.9898817539 -24443.8964843750 0.0302076805 - 0.9900656939 -24442.0097656250 0.0305551272 - 0.9902479053 -24439.9726562500 0.0309121888 - 0.9904284477 -24437.5722656250 0.0312676951 - 0.9906073809 -24436.8828125000 0.0316151157 - 0.9907845855 -24434.4179687500 0.0319709443 - 0.9909600616 -24433.6210937500 0.0323222131 - 0.9911339283 -24431.3769531250 0.0326647311 - 0.9913060665 -24428.4570312500 0.0330088325 - 0.9914765954 -24427.1503906250 0.0333555602 - 0.9916453958 -24424.6875000000 0.0337059312 - 0.9918124676 -24423.2539062500 0.0340411365 - 0.9919779301 -24420.6582031250 0.0343840905 - 0.9921416640 -24420.5566406250 0.0347229876 - 0.9923037887 -24416.9843750000 0.0350545943 - 0.9924641848 -24414.9746093750 0.0353875458 - 0.9926228523 -24413.0390625000 0.0357124470 - 0.9927799106 -24411.7363281250 0.0360534787 - 0.9929352403 -24410.7246093750 0.0363730825 - 0.9930889010 -24406.4042968750 0.0366948694 - 0.9932408929 -24406.2851562500 0.0370101929 - 0.9933911562 -24404.3125000000 0.0373333730 - 0.9935397506 -24400.7812500000 0.0376465097 - 0.9936866760 -24400.8789062500 0.0379529335 - 0.9938319325 -24396.7519531250 0.0382589325 - 0.9939755201 -24394.5937500000 0.0385580882 - 0.9941173792 -24394.7109375000 0.0388635173 - 0.9942575693 -24391.9765625000 0.0391603038 - 0.9943960309 -24389.9238281250 0.0394534506 - 0.9945328832 -24388.0332031250 0.0397445001 - 0.9946680069 -24384.4785156250 0.0400262699 - 0.9948014021 -24382.9121093750 0.0403128229 - 0.9949331880 -24381.4218750000 0.0405803882 - 0.9950632453 -24379.4492187500 0.0408548042 - 0.9951916337 -24377.4628906250 0.0411257520 - 0.9953182936 -24375.3222656250 0.0413902402 - 0.9954432845 -24371.8339843750 0.0416497141 - 0.9955666065 -24371.3574218750 0.0419064239 - 0.9956882596 -24369.1074218750 0.0421540998 - 0.9958081841 -24367.5410156250 0.0424014740 - 0.9959264398 -24365.6054687500 0.0426436029 - 0.9960430264 -24363.2011718750 0.0428809747 - 0.9961578846 -24360.5195312500 0.0431087948 - 0.9962710738 -24358.6972656250 0.0433351211 - 0.9963825941 -24354.6250000000 0.0435550474 - 0.9964923859 -24353.8730468750 0.0437722094 - 0.9966005087 -24352.4902343750 0.0439877883 - 0.9967069030 -24350.1738281250 0.0441957600 - 0.9968116879 -24348.1484375000 0.0443992838 - 0.9969147444 -24345.5585937500 0.0445952117 - 0.9970160723 -24344.1171875000 0.0447843224 - 0.9971157312 -24342.1015625000 0.0449717082 - 0.9972137213 -24339.4902343750 0.0451491363 - 0.9973099828 -24336.6894531250 0.0453294553 - 0.9974045753 -24334.6289062500 0.0454981923 - 0.9974974990 -24333.4511718750 0.0456643589 - 0.9975886941 -24332.4902343750 0.0458276793 - 0.9976782203 -24329.7128906250 0.0459834822 - 0.9977660775 -24327.3320312500 0.0461283475 - 0.9978522062 -24325.6503906250 0.0462760851 - 0.9979366660 -24322.9238281250 0.0464143008 - 0.9980193973 -24320.3261718750 0.0465434529 - 0.9981004596 -24318.5449218750 0.0466749780 - 0.9981798530 -24315.9511718750 0.0467945673 - 0.9982575178 -24313.8632812500 0.0469114184 - 0.9983335137 -24312.3574218750 0.0470246375 - 0.9984078407 -24308.7988281250 0.0471296646 - 0.9984804392 -24307.9257812500 0.0472304560 - 0.9985513091 -24306.3593750000 0.0473295003 - 0.9986205101 -24303.2812500000 0.0474187844 - 0.9986880422 -24301.8789062500 0.0475055575 - 0.9987539053 -24299.2988281250 0.0475839637 - 0.9988180399 -24296.2656250000 0.0476599783 - 0.9988804460 -24294.8066406250 0.0477287583 - 0.9989412427 -24291.9296875000 0.0477925688 - 0.9990002513 -24290.5468750000 0.0478516631 - 0.9990576506 -24288.3085937500 0.0479072779 - 0.9991133213 -24286.3652343750 0.0479566343 - 0.9991672635 -24283.7910156250 0.0479969643 - 0.9992195368 -24282.0644531250 0.0480390415 - 0.9992701411 -24279.6210937500 0.0480723605 - 0.9993190169 -24278.7597656250 0.0481008217 - 0.9993662238 -24275.1328125000 0.0481243320 - 0.9994117022 -24272.2929687500 0.0481430180 - 0.9994555116 -24269.5761718750 0.0481553823 - 0.9994976521 -24268.5195312500 0.0481671058 - 0.9995380640 -24266.2949218750 0.0481701382 - 0.9995768070 -24263.6171875000 0.0481693409 - 0.9996138215 -24260.3515625000 0.0481620580 - 0.9996491671 -24260.3691406250 0.0481560454 - 0.9996827841 -24256.3261718750 0.0481396243 - 0.9997147322 -24254.4804687500 0.0481193140 - 0.9997450113 -24254.5175781250 0.0481007174 - 0.9997735620 -24250.0820312500 0.0480700247 - 0.9998004436 -24248.4082031250 0.0480377264 - 0.9998255968 -24246.6621093750 0.0480026044 - 0.9998490810 -24243.8867187500 0.0479619876 - 0.9998708367 -24241.6992187500 0.0479138717 - 0.9998909235 -24239.2675781250 0.0478693321 - 0.9999092817 -24238.1308593750 0.0478135124 - 0.9999259710 -24235.4921875000 0.0477564633 - 0.9999409914 -24232.6054687500 0.0476977900 - 0.9999542832 -24232.4023437500 0.0476315431 - 0.9999659061 -24229.2382812500 0.0475597270 - 0.9999758005 -24226.4609375000 0.0474907309 - 0.9999840260 -24223.6523437500 0.0474119261 - 0.9999905229 -24222.1855468750 0.0473309122 - 0.9999953508 -24221.1562500000 0.0472499467 - 0.9999984503 -24218.9277343750 0.0471627899 - 0.9999998808 -24216.2382812500 0.0470690429 - 0.9999996424 -24214.5703125000 0.0469762906 - 0.9999976754 -24211.5644531250 0.0468791388 - 0.9999940395 -24209.0039062500 0.0467735976 - 0.9999886751 -24207.7871093750 0.0466704518 - 0.9999816418 -24205.1601562500 0.0465646274 - 0.9999728799 -24202.1933593750 0.0464494377 - 0.9999624491 -24199.9785156250 0.0463367328 - 0.9999502897 -24199.4082031250 0.0462219454 - 0.9999364614 -24196.1953125000 0.0460961387 - 0.9999209642 -24194.2617187500 0.0459745862 - 0.9999037385 -24191.9101562500 0.0458538383 - 0.9998848438 -24188.6230468750 0.0457202755 - 0.9998642206 -24187.7031250000 0.0455891378 - 0.9998419285 -24184.6582031250 0.0454511419 - 0.9998179078 -24183.4160156250 0.0453160554 - 0.9997922182 -24180.2011718750 0.0451737605 - 0.9997648597 -24179.4453125000 0.0450348631 - 0.9997357726 -24176.5019531250 0.0448912196 - 0.9997049570 -24174.9023437500 0.0447434820 - 0.9996725321 -24172.2890625000 0.0445890687 - 0.9996383190 -24170.0742187500 0.0444401987 - 0.9996024966 -24167.8476562500 0.0442899875 - 0.9995648861 -24166.4511718750 0.0441308022 - 0.9995256662 -24162.2832031250 0.0439636856 - 0.9994847178 -24162.0800781250 0.0438090414 - 0.9994421005 -24158.0078125000 0.0436455868 - 0.9993977547 -24157.4589843750 0.0434831865 - 0.9993516803 -24155.8964843750 0.0433203056 - 0.9993039966 -24153.0097656250 0.0431481153 - 0.9992545843 -24151.0820312500 0.0429755077 - 0.9992034435 -24147.6093750000 0.0427974351 - 0.9991506338 -24146.4980468750 0.0426318385 - 0.9990961552 -24144.2285156250 0.0424538739 - 0.9990399480 -24141.0371093750 0.0422670729 - 0.9989820719 -24140.7148437500 0.0420992002 - 0.9989224672 -24137.9941406250 0.0419189557 - 0.9988611937 -24135.4648437500 0.0417336375 - 0.9987982512 -24132.5332031250 0.0415424779 - 0.9987335801 -24132.3847656250 0.0413667634 - 0.9986671805 -24130.2011718750 0.0411788113 - 0.9985991716 -24126.0800781250 0.0409857407 - 0.9985294342 -24126.4687500000 0.0408044048 - 0.9984579682 -24122.9316406250 0.0406106412 - 0.9983848333 -24121.3476562500 0.0404196307 - 0.9983100295 -24117.3652343750 0.0402219407 - 0.9982334971 -24117.2089843750 0.0400339514 - 0.9981552958 -24115.1562500000 0.0398396291 - 0.9980754256 -24111.9082031250 0.0396387652 - 0.9979938269 -24112.0332031250 0.0394500382 - 0.9979105592 -24109.1289062500 0.0392501019 - 0.9978255630 -24106.8652343750 0.0390493572 - 0.9977388978 -24103.4082031250 0.0388432518 - 0.9976505041 -24101.3398437500 0.0386511981 - 0.9975605011 -24100.4648437500 0.0384461693 - 0.9974687696 -24097.3925781250 0.0382393375 - 0.9973753095 -24094.6406250000 0.0380377471 - 0.9972801805 -24094.2773437500 0.0378442071 - 0.9971833825 -24091.4882812500 0.0376363881 - 0.9970848560 -24089.7246093750 0.0374282859 - 0.9969846606 -24087.9707031250 0.0372302942 - 0.9968827963 -24086.3593750000 0.0370173790 - 0.9967792034 -24084.4257812500 0.0368126817 - 0.9966739416 -24081.8613281250 0.0365993716 - 0.9965670109 -24079.1210937500 0.0364082605 - 0.9964583516 -24077.4199218750 0.0361959822 - 0.9963480234 -24075.5820312500 0.0359859988 - 0.9962359667 -24074.1074218750 0.0357723385 - 0.9961223006 -24071.5605468750 0.0355733298 - 0.9960069060 -24069.8476562500 0.0353622735 - 0.9958897829 -24068.8632812500 0.0351482481 - 0.9957709908 -24064.7500000000 0.0349310748 - 0.9956505299 -24063.8906250000 0.0347355343 - 0.9955283999 -24061.5214843750 0.0345267840 - 0.9954045415 -24059.0976562500 0.0343120582 - 0.9952790141 -24056.5117187500 0.0340985693 - 0.9951518178 -24055.7871093750 0.0338949487 - 0.9950228930 -24054.4843750000 0.0336825475 - 0.9948922992 -24052.1992187500 0.0334689207 - 0.9947600365 -24048.6718750000 0.0332611501 - 0.9946260452 -24048.9218750000 0.0330593176 - 0.9944903851 -24045.6132812500 0.0328429043 - 0.9943530560 -24043.3886718750 0.0326276943 - 0.9942140579 -24041.1191406250 0.0324194208 - 0.9940733314 -24041.5976562500 0.0322143361 - 0.9939309359 -24038.7265625000 0.0319994390 - 0.9937868714 -24036.0136718750 0.0317983106 - 0.9936410785 -24034.4414062500 0.0315818377 - 0.9934936762 -24032.6972656250 0.0313810036 - 0.9933445454 -24031.2734375000 0.0311719887 - 0.9931936860 -24028.8496093750 0.0309624784 - 0.9930412173 -24027.0332031250 0.0307429954 - 0.9928870201 -24025.2949218750 0.0305470712 - 0.9927311540 -24022.7851562500 0.0303329546 - 0.9925736189 -24022.0351562500 0.0301294159 - 0.9924143553 -24018.6171875000 0.0299225952 - 0.9922534227 -24017.4316406250 0.0297239199 - 0.9920908213 -24016.7011718750 0.0295132417 - 0.9919265509 -24014.0117187500 0.0293045752 - 0.9917606115 -24012.5742187500 0.0290932711 - 0.9915929437 -24010.9667968750 0.0288995616 - 0.9914236069 -24009.3300781250 0.0286937896 - 0.9912526011 -24006.8808593750 0.0284832716 - 0.9910799265 -24005.9394531250 0.0282793418 - 0.9909055829 -24003.6640625000 0.0280723125 - 0.9907295108 -24002.2988281250 0.0278787054 - 0.9905518293 -23999.9824218750 0.0276734084 - 0.9903724194 -23997.7558593750 0.0274700429 - 0.9901912808 -23996.0546875000 0.0272651650 - 0.9900085330 -23995.1601562500 0.0270770807 - 0.9898241162 -23992.7949218750 0.0268707015 - 0.9896379709 -23991.5273437500 0.0266691167 - 0.9894501567 -23988.7929687500 0.0264633223 - 0.9892607331 -23988.0976562500 0.0262801554 - 0.9890695810 -23985.0039062500 0.0260775816 - 0.9888767004 -23984.5976562500 0.0258807093 - 0.9886822104 -23982.8750000000 0.0256784819 - 0.9884860516 -23981.6699218750 0.0254978631 - 0.9882881641 -23979.6757812500 0.0252957381 - 0.9880886674 -23977.4101562500 0.0251035020 - 0.9878874421 -23975.6640625000 0.0249074269 - 0.9876845479 -23973.3515625000 0.0247116107 - 0.9874799848 -23972.4511718750 0.0245331395 - 0.9872737527 -23970.7441406250 0.0243351571 - 0.9870658517 -23969.3925781250 0.0241411198 - 0.9868562818 -23966.8320312500 0.0239479486 - 0.9866449833 -23966.3417968750 0.0237723477 - 0.9864320755 -23963.3769531250 0.0235764794 - 0.9862174988 -23963.9941406250 0.0233865436 - 0.9860011935 -23961.7011718750 0.0231945328 - 0.9857832789 -23958.1367187500 0.0230008382 - 0.9855636358 -23958.6445312500 0.0228318293 - 0.9853423834 -23956.0292968750 0.0226425603 - 0.9851194024 -23954.8261718750 0.0224567279 - 0.9848948121 -23955.0000000000 0.0222721733 - 0.9846684933 -23951.7597656250 0.0220842939 - 0.9844405055 -23951.2558593750 0.0219151508 - 0.9842109084 -23949.6621093750 0.0217340998 - 0.9839795828 -23948.7597656250 0.0215488952 - 0.9837466478 -23946.6796875000 0.0213654693 - 0.9835119843 -23945.2031250000 0.0211846791 - 0.9832756519 -23943.7167968750 0.0210215971 - 0.9830377102 -23942.7656250000 0.0208388362 - 0.9827980399 -23939.4316406250 0.0206578597 - 0.9825567603 -23938.7285156250 0.0204844251 - 0.9823138118 -23938.2246093750 0.0203203037 - 0.9820691347 -23937.8867187500 0.0201430097 - 0.9818228483 -23935.5839843750 0.0199653991 - 0.9815748930 -23933.5156250000 0.0197960027 - 0.9813252687 -23930.9355468750 0.0196223054 - 0.9810739756 -23931.7050781250 0.0194649789 - 0.9808210135 -23929.7753906250 0.0192884095 - 0.9805663824 -23927.9628906250 0.0191182829 - 0.9803100824 -23927.3437500000 0.0189502835 - 0.9800521731 -23925.6250000000 0.0187811069 - 0.9797925353 -23924.4355468750 0.0186318122 - 0.9795312881 -23922.3964843750 0.0184607580 - 0.9792683125 -23921.1035156250 0.0182910971 - 0.9790037274 -23919.5117187500 0.0181200840 - 0.9787374735 -23919.3144531250 0.0179584306 - 0.9784696102 -23918.3710937500 0.0178136416 - 0.9782000184 -23916.6699218750 0.0176488515 - 0.9779288173 -23915.7675781250 0.0174827017 - 0.9776558876 -23913.9921875000 0.0173218660 - 0.9773813486 -23912.0332031250 0.0171612035 - 0.9771052003 -23911.4003906250 0.0170085616 - 0.9768273234 -23911.9238281250 0.0168617405 - 0.9765477777 -23909.1269531250 0.0167053305 - 0.9762666225 -23909.1679687500 0.0165505428 - 0.9759837985 -23906.5253906250 0.0163905639 - 0.9756993651 -23905.6328125000 0.0162309427 - 0.9754132032 -23904.4394531250 0.0160997175 - 0.9751254320 -23902.7968750000 0.0159438234 - 0.9748359919 -23902.1093750000 0.0157947969 - 0.9745448828 -23901.0781250000 0.0156311896 - 0.9742521644 -23899.9082031250 0.0154879466 - 0.9739577770 -23900.6347656250 0.0153596755 - 0.9736617208 -23898.4882812500 0.0152060930 - 0.9733639956 -23897.4316406250 0.0150585882 - 0.9730646610 -23896.1035156250 0.0149116386 - 0.9727636576 -23894.5800781250 0.0147658493 - 0.9724610448 -23895.6992187500 0.0146366861 - 0.9721567035 -23893.3750000000 0.0144956447 - 0.9718507528 -23892.8632812500 0.0143520441 - 0.9715431929 -23891.8105468750 0.0142020993 - 0.9712339640 -23889.5898437500 0.0140580554 - 0.9709230661 -23889.3203125000 0.0139189158 - 0.9706105590 -23888.5156250000 0.0137973987 - 0.9702963829 -23887.8085937500 0.0136609636 - 0.9699805379 -23886.5468750000 0.0135207381 - 0.9696630836 -23885.7050781250 0.0133830290 - 0.9693439603 -23884.3632812500 0.0132473484 - 0.9690232277 -23883.1777343750 0.0131140538 - 0.9687008262 -23884.7656250000 0.0129934270 - 0.9683767557 -23883.2148437500 0.0128578171 - 0.9680510759 -23882.1855468750 0.0127270594 - 0.9677237868 -23881.2968750000 0.0125921033 - 0.9673948288 -23879.3769531250 0.0124638658 - 0.9670642018 -23877.7460937500 0.0123345293 - 0.9667319655 -23878.5214843750 0.0122216567 - 0.9663980603 -23879.4882812500 0.0120920939 - 0.9660625458 -23876.0800781250 0.0119645158 - 0.9657254219 -23875.4882812500 0.0118344622 - 0.9653866291 -23875.4531250000 0.0117123695 - 0.9650461674 -23875.9257812500 0.0116046378 - 0.9647040963 -23874.5371093750 0.0114819575 - 0.9643604159 -23873.2304687500 0.0113628982 - 0.9640150666 -23873.5742187500 0.0112315267 - 0.9636681080 -23871.6289062500 0.0111063384 - 0.9633194804 -23871.0273437500 0.0109828906 - 0.9629692435 -23869.8886718750 0.0108887339 - 0.9626173973 -23869.2480468750 0.0107702762 - 0.9622638822 -23870.2988281250 0.0106496550 - 0.9619087577 -23870.0527343750 0.0105307773 - 0.9615519643 -23869.4160156250 0.0104106376 - 0.9611935616 -23867.1562500000 0.0102960551 - 0.9608335495 -23867.0781250000 0.0102052568 - 0.9604718685 -23866.9472656250 0.0100892065 - 0.9601085782 -23866.4355468750 0.0099780299 - 0.9597436786 -23867.1953125000 0.0098564755 - 0.9593771696 -23865.7851562500 0.0097454749 - 0.9590089917 -23865.4863281250 0.0096330410 - 0.9586392045 -23864.9082031250 0.0095242662 - 0.9582678080 -23863.9492187500 0.0094395475 - 0.9578947425 -23863.1464843750 0.0093294214 - 0.9575200677 -23863.4414062500 0.0092180902 - 0.9571437836 -23862.8085937500 0.0091096498 - 0.9567658901 -23861.3125000000 0.0090025552 - 0.9563863277 -23862.2949218750 0.0088965427 - 0.9560051560 -23860.4492187500 0.0087938337 - 0.9556224346 -23862.6796875000 0.0087045021 - 0.9552379847 -23861.8300781250 0.0086036231 - 0.9548519850 -23861.6152343750 0.0085012047 - 0.9544643760 -23860.9472656250 0.0083997659 - 0.9540750980 -23859.3554687500 0.0083003044 - 0.9536842108 -23858.6660156250 0.0081941439 - 0.9532917738 -23859.9550781250 0.0081198830 - 0.9528976679 -23860.7421875000 0.0080195135 - 0.9525019526 -23858.2949218750 0.0079250382 - 0.9521045685 -23858.8554687500 0.0078182966 - 0.9517056346 -23857.9042968750 0.0077245068 - 0.9513050914 -23857.6718750000 0.0076275533 - 0.9509028792 -23858.6367187500 0.0075576082 - 0.9504991174 -23859.4453125000 0.0074628973 - 0.9500937462 -23857.4316406250 0.0073630372 - 0.9496867061 -23857.8789062500 0.0072712395 - 0.9492781162 -23858.1230468750 0.0071816482 - 0.9488678575 -23857.9003906250 0.0070899818 - 0.9484560490 -23857.8632812500 0.0069957217 - 0.9480425715 -23857.8359375000 0.0069254972 - 0.9476275444 -23858.2910156250 0.0068382658 - 0.9472108483 -23858.2675781250 0.0067490721 - 0.9467926025 -23859.0097656250 0.0066575073 - 0.9463727474 -23858.1464843750 0.0065695625 - 0.9459512830 -23858.2812500000 0.0064824652 - 0.9455281496 -23857.7734375000 0.0063984729 - 0.9451035261 -23858.8457031250 0.0063086590 - 0.9446772337 -23859.6757812500 0.0062502148 - 0.9442493320 -23858.2480468750 0.0061620604 - 0.9438198209 -23857.8105468750 0.0060833106 - 0.9433887601 -23859.7207031250 0.0059955390 - 0.9429560900 -23859.2011718750 0.0059166430 - 0.9425218105 -23858.2734375000 0.0058322148 - 0.9420859218 -23857.8632812500 0.0057533402 - 0.9416484237 -23858.4550781250 0.0056682341 - 0.9412093163 -23860.9746093750 0.0056135282 - 0.9407686591 -23859.7695312500 0.0055352608 - 0.9403263927 -23860.5468750000 0.0054573314 - 0.9398825169 -23860.6796875000 0.0053769359 - 0.9394370914 -23860.9335937500 0.0053003896 - 0.9389900565 -23859.4218750000 0.0052238265 - 0.9385414124 -23860.4042968750 0.0051488094 - 0.9380911589 -23862.2519531250 0.0050935904 - 0.9376393557 -23862.0703125000 0.0050203893 - 0.9371859431 -23861.4101562500 0.0049455250 - 0.9367309213 -23861.8691406250 0.0048704427 - 0.9362743497 -23863.1347656250 0.0047976719 - 0.9358161688 -23863.1640625000 0.0047264947 - 0.9353563786 -23862.6132812500 0.0046554646 - 0.9348950386 -23865.7910156250 0.0046047429 - 0.9344321489 -23866.3671875000 0.0045365859 - 0.9339675903 -23866.6328125000 0.0044652959 - 0.9335014820 -23866.6289062500 0.0043932106 - 0.9330338240 -23867.2539062500 0.0043256870 - 0.9325645566 -23867.0800781250 0.0042560399 - 0.9320936799 -23866.9316406250 0.0041904561 - 0.9316212535 -23867.6718750000 0.0041203527 - 0.9311472774 -23867.6425781250 0.0040546991 - 0.9306716919 -23869.7187500000 0.0040140757 - 0.9301944971 -23871.2988281250 0.0039449697 - 0.9297158122 -23871.6679687500 0.0038821949 - 0.9292354584 -23870.3789062500 0.0038158465 - 0.9287535548 -23873.4921875000 0.0037506977 - 0.9282701015 -23872.5390625000 0.0036891447 - 0.9277850986 -23872.8945312500 0.0036249198 - 0.9272984862 -23873.8046875000 0.0035613952 - 0.9268102646 -23874.8085937500 0.0035010716 - 0.9263204932 -23874.9316406250 0.0034381626 - 0.9258291721 -23876.6621093750 0.0034004692 - 0.9253363013 -23878.0917968750 0.0033411710 - 0.9248418212 -23878.4179687500 0.0032808911 - 0.9243457913 -23877.8437500000 0.0032235421 - 0.9238482118 -23878.8652343750 0.0031617647 - 0.9233490229 -23879.2031250000 0.0031053140 - 0.9228482842 -23880.6699218750 0.0030476875 - 0.9223459959 -23883.1406250000 0.0030118884 - 0.9218421578 -23883.6074218750 0.0029581194 - 0.9213367105 -23883.9921875000 0.0029012794 - 0.9208297133 -23885.9199218750 0.0028427276 - 0.9203211665 -23886.6074218750 0.0027899831 - 0.9198110700 -23886.4824218750 0.0027338518 - 0.9192994237 -23888.5605468750 0.0026779706 - 0.9187861681 -23888.8066406250 0.0026257546 - 0.9182713628 -23890.4277343750 0.0025959797 - 0.9177550673 -23892.2753906250 0.0025410512 - 0.9172371626 -23892.6777343750 0.0024906364 - 0.9167177081 -23892.5742187500 0.0024379161 - 0.9161967039 -23894.9941406250 0.0023838226 - 0.9156741500 -23895.5546875000 0.0023344620 - 0.9151500463 -23897.3632812500 0.0022812583 - 0.9146243930 -23899.3398437500 0.0022309283 - 0.9140971303 -23899.9843750000 0.0021838192 - 0.9135683775 -23900.5507812500 0.0021306486 - 0.9130380750 -23902.4804687500 0.0020826664 - 0.9125062227 -23902.8535156250 0.0020341957 - 0.9119728208 -23904.2753906250 0.0019846866 - 0.9114378691 -23905.3496093750 0.0019367649 - 0.9109013677 -23905.3300781250 0.0019151582 - 0.9103633165 -23908.2578125000 0.0018664771 - 0.9098237157 -23908.7304687500 0.0018207817 - 0.9092826247 -23909.4433593750 0.0017743171 - 0.9087399244 -23912.0605468750 0.0017277263 - 0.9081957340 -23914.3261718750 0.0016836384 - 0.9076499343 -23914.8046875000 0.0016349815 - 0.9071026444 -23916.0644531250 0.0015928890 - 0.9065538645 -23918.1757812500 0.0015737973 - 0.9060034752 -23920.2382812500 0.0015272307 - 0.9054515958 -23920.5312500000 0.0014859438 - 0.9048981667 -23922.3339843750 0.0014429507 - 0.9043431878 -23923.7050781250 0.0013981783 - 0.9037866592 -23924.3476562500 0.0013576932 - 0.9032286406 -23927.6660156250 0.0013388908 - 0.9026690722 -23929.0566406250 0.0012970315 - 0.9021079540 -23930.7167968750 0.0012565013 - 0.9015453458 -23932.0761718750 0.0012153224 - 0.9009811878 -23933.4570312500 0.0011744243 - 0.9004154801 -23935.4511718750 0.0011346694 - 0.8998482823 -23937.0546875000 0.0010952880 - 0.8992795348 -23937.2441406250 0.0010544071 - 0.8987092972 -23940.0273437500 0.0010148673 - 0.8981375098 -23942.7734375000 0.0009761844 - 0.8975642323 -23943.5234375000 0.0009386609 - 0.8969894052 -23945.9355468750 0.0008999631 - 0.8964130282 -23947.0058593750 0.0008620163 - 0.8958351612 -23948.7187500000 0.0008238289 - 0.8952558041 -23949.6445312500 0.0007867618 - 0.8946748972 -23951.4218750000 0.0007496090 - 0.8940924406 -23953.5957031250 0.0007124231 - 0.8935084939 -23955.5097656250 0.0006779544 - 0.8929230571 -23957.3808593750 0.0006405846 - 0.8923360705 -23959.8808593750 0.0006054812 - 0.8917475939 -23961.5488281250 0.0005709562 - 0.8911576271 -23962.0605468750 0.0005352776 - 0.8905661106 -23964.8125000000 0.0005258969 - 0.8899731040 -23968.1894531250 0.0004909090 - 0.8893786073 -23969.2773437500 0.0004572985 - 0.8887825608 -23971.0078125000 0.0004241141 - 0.8881850243 -23974.8652343750 0.0004149680 - 0.8875859976 -23976.1894531250 0.0003815750 - 0.8869854212 -23979.3964843750 0.0003490611 - 0.8863833547 -23981.1484375000 0.0003418103 - 0.8857797980 -23982.3144531250 0.0003082259 - 0.8851747513 -23985.1718750000 0.0002766536 - 0.8845682144 -23986.2285156250 0.0002703760 - 0.8839601874 -23990.3320312500 0.0002385266 - 0.8833506107 -23993.0371093750 0.0002080542 - 0.8827395439 -23994.6914062500 0.0001770714 - 0.8821269870 -23996.2402343750 0.0001457194 - 0.8815129399 -23998.5195312500 0.0001159417 - 0.8808974028 -24000.7792968750 0.0000850661 - 0.8802803755 -24002.7519531250 0.0000553429 - 0.8796618581 -24004.9882812500 0.0000007623 - 0.8790418506 -24006.8457031250 -0.0000287266 - 0.8784203529 -24007.9062500000 -0.0000837841 - 0.8777973652 -24009.6562500000 -0.0001119506 - 0.8771728873 -24011.5683593750 -0.0001660599 - 0.8765469193 -24012.3847656250 -0.0002199649 - 0.8759194613 -24014.4980468750 -0.0002728659 - 0.8752905130 -24016.0429687500 -0.0003514523 - 0.8746600747 -24017.1679687500 -0.0004037749 - 0.8740281463 -24018.4453125000 -0.0004822300 - 0.8733947873 -24019.3359375000 -0.0005349917 - 0.8727598786 -24020.2500000000 -0.0006119329 - 0.8721235394 -24021.7226562500 -0.0006644791 - 0.8714857101 -24022.5136718750 -0.0007409789 - 0.8708463907 -24022.8085937500 -0.0008182735 - 0.8702056408 -24024.7792968750 -0.0008693342 - 0.8695633411 -24025.9062500000 -0.0009451215 - 0.8689196110 -24027.9121093750 -0.0009961268 - 0.8682744503 -24027.4628906250 -0.0010713632 - 0.8676277399 -24029.3867187500 -0.0011219406 - 0.8669795990 -24031.3945312500 -0.0011720797 - 0.8663299680 -24033.0996093750 -0.0012216172 - 0.8656789064 -24033.9042968750 -0.0012724190 - 0.8650263548 -24036.7558593750 -0.0012956597 - 0.8643723130 -24040.0410156250 -0.0013444023 - 0.8637168407 -24041.3515625000 -0.0013685003 - 0.8630598783 -26254.2714843750 -0.0000039469 - 0.8624014258 -26254.5957031250 -0.0000030380 - 0.8617416024 -26250.3125000000 -0.0000032000 - 0.8610802293 -26248.6875000000 -0.0000024056 - 0.8604174256 -26247.3593750000 -0.0000016913 - 0.8597531915 -26246.3535156250 -0.0000012619 - 0.8590874672 -26244.1347656250 -0.0000006361 - 0.8584203124 -26241.0371093750 -0.0000004726 - 0.8577516675 -26241.5058593750 0.0000006435 - 0.8570815921 -26239.5937500000 0.0000014110 - 0.8564100266 -26237.9511718750 0.0000015739 - 0.8557370901 -26233.7871093750 0.0000016894 - 0.8550626040 -26234.5449218750 0.0000031302 - 0.8543867469 -26231.5351562500 0.0000028354 - 0.8537093997 -26230.1074218750 0.0000035432 - 0.8530306220 -26227.7089843750 0.0000036145 - 0.8523504138 -26226.9257812500 0.0000044759 - 0.8516687155 -26224.3046875000 0.0000046287 - 0.8509855866 -26222.9667968750 0.0000048964 - 0.8503010273 -26220.8593750000 0.0000053057 - 0.8496150374 -26217.9140625000 0.0000053067 - 0.8489276171 -26216.3906250000 0.0000053174 - 0.8482387066 -26214.5390625000 0.0000062007 - 0.8475483656 -26214.1191406250 0.0000070860 - 0.8468566537 -26211.8144531250 0.0000070482 - 0.8461634517 -26210.4589843750 0.0000070082 - 0.8454688191 -26208.7753906250 0.0000074757 - 0.8447727561 -26206.1972656250 0.0000077588 - 0.8440752625 -26204.6347656250 0.0000076396 - 0.8433763385 -26203.2207031250 0.0000082450 - 0.8426759839 -26201.0488281250 0.0000083577 - 0.8419741988 -26201.2578125000 0.0000094627 - 0.8412709832 -26198.4921875000 0.0000093034 - 0.8405663371 -26195.0488281250 0.0000095144 - 0.8398602605 -26194.3085937500 0.0000092969 - 0.8391528130 -26192.4687500000 0.0000097463 - 0.8384438753 -26190.9296875000 0.0000098436 - 0.8377335668 -26190.8457031250 0.0000103861 - 0.8370218277 -26187.6386718750 0.0000101295 - 0.8363086581 -26186.4843750000 0.0000105239 - 0.8355940580 -26184.1113281250 0.0000102497 - 0.8348780274 -26182.1972656250 0.0000099563 - 0.8341606259 -26180.5253906250 0.0000103847 - 0.8334417939 -26178.3105468750 0.0000103540 - 0.8327215314 -26176.6796875000 0.0000104536 - 0.8319998980 -26175.7851562500 0.0000104895 - 0.8312768340 -26174.3144531250 0.0000108858 - 0.8305523396 -26172.3085937500 0.0000108285 - 0.8298264742 -26170.9335937500 0.0000112187 - 0.8290991783 -26167.7421875000 0.0000104965 - 0.8283704519 -26166.8964843750 0.0000109184 - 0.8276403546 -26164.8007812500 0.0000111395 - 0.8269088268 -26164.4824218750 0.0000115060 - 0.8261759281 -26161.7460937500 0.0000114385 - 0.8254415989 -26161.3105468750 0.0000114599 - 0.8247058988 -26160.1875000000 0.0000116560 - 0.8239688277 -26158.0214843750 0.0000116718 - 0.8232303262 -26155.0722656250 0.0000115316 - 0.8224903941 -26153.4628906250 0.0000115372 - 0.8217490911 -26152.2070312500 0.0000114380 - 0.8210064173 -26152.0078125000 0.0000119973 - 0.8202623129 -26149.6894531250 0.0000115656 - 0.8195168972 -26146.4511718750 0.0000109212 - 0.8187699914 -26145.1132812500 0.0000110986 - 0.8180217743 -26144.6015625000 0.0000113752 - 0.8172721267 -26142.0488281250 0.0000111959 - 0.8165211082 -26140.8242187500 0.0000114315 - 0.8157687187 -26139.3339843750 0.0000112858 - 0.8150148988 -26138.8144531250 0.0000118278 - 0.8142597675 -26136.8320312500 0.0000113114 - 0.8135032058 -26135.4238281250 0.0000113002 - 0.8127452731 -26132.3066406250 0.0000104350 - 0.8119859695 -26132.3496093750 0.0000113039 - 0.8112252951 -26130.1875000000 0.0000107810 - 0.8104631901 -26129.9238281250 0.0000113170 - 0.8096997738 -26126.2343750000 0.0000101835 - 0.8089349866 -26125.5429687500 0.0000110017 - 0.8081687689 -26122.8984375000 0.0000104131 - 0.8074012399 -26122.8320312500 0.0000109971 - 0.8066323400 -26120.0078125000 0.0000100802 - 0.8058620691 -26119.8222656250 0.0000103083 - 0.8050903678 -26118.3398437500 0.0000103787 - 0.8043173552 -26118.0058593750 0.0000106054 - 0.8035429716 -26115.0058593750 0.0000096853 - 0.8027672768 -26113.5488281250 0.0000098487 - 0.8019901514 -26112.2910156250 0.0000096373 - 0.8012117147 -26111.3906250000 0.0000101435 - 0.8004318476 -26108.8007812500 0.0000095242 - 0.7996506691 -26107.0546875000 0.0000093826 - 0.7988681793 -26106.3144531250 0.0000095428 - 0.7980842590 -26103.0820312500 0.0000089025 - 0.7972990274 -26103.3144531250 0.0000094445 - 0.7965124249 -26101.9199218750 0.0000091507 - 0.7957245111 -26100.0214843750 0.0000086934 - 0.7949352264 -26097.9609375000 0.0000086646 - 0.7941445708 -26098.2597656250 0.0000091302 - 0.7933526039 -26095.2363281250 0.0000086012 - 0.7925592661 -26094.8554687500 0.0000087786 - 0.7917645574 -26092.8261718750 0.0000080760 - 0.7909685373 -26091.8164062500 0.0000082627 - 0.7901712060 -26090.0859375000 0.0000079786 - 0.7893725038 -26088.3222656250 0.0000078380 - 0.7885724306 -26087.5878906250 0.0000078506 - 0.7877711058 -26085.3828125000 0.0000075707 - 0.7869683504 -26083.0000000000 0.0000072168 - 0.7861643434 -26081.9023437500 0.0000070883 - 0.7853589654 -26082.0703125000 0.0000071018 - 0.7845522165 -26080.0195312500 0.0000069835 - 0.7837442160 -26078.1640625000 0.0000066259 - 0.7829348445 -26077.3769531250 0.0000065444 - 0.7821241617 -26075.9628906250 0.0000061225 - 0.7813121080 -26074.1074218750 0.0000060061 - 0.7804988027 -26072.5761718750 0.0000056610 - 0.7796841264 -26071.4335937500 0.0000057747 - 0.7788681388 -26071.5097656250 0.0000060578 - 0.7780508399 -26068.2500000000 0.0000054673 - 0.7772321701 -26069.5917968750 0.0000063367 - 0.7764122486 -26067.1152343750 0.0000054203 - 0.7755909562 -26065.3144531250 0.0000048452 - 0.7747684121 -26063.5488281250 0.0000048229 - 0.7739444971 -26062.0351562500 0.0000049490 - 0.7731192708 -26061.3886718750 0.0000049504 - 0.7722927928 -26060.0957031250 0.0000045574 - 0.7714649439 -26058.6523437500 0.0000041984 - 0.7706358433 -26058.0722656250 0.0000047158 - 0.7698053718 -26056.6992187500 0.0000040503 - 0.7689736485 -26055.6542968750 0.0000041113 - 0.7681406140 -26053.7636718750 0.0000041206 - 0.7673062682 -26051.3808593750 0.0000036638 - 0.7664706111 -26050.1542968750 0.0000030217 - 0.7656336427 -26049.5859375000 0.0000037714 - 0.7647953629 -26046.7578125000 0.0000028275 - 0.7639558315 -26045.7343750000 0.0000028051 - 0.7631149888 -26047.3710937500 0.0000037923 - 0.7622728944 -26044.4394531250 0.0000030599 - 0.7614294291 -26043.1406250000 0.0000026585 - 0.7605847120 -26041.3652343750 0.0000026533 - 0.7597387433 -26041.4531250000 0.0000029551 - 0.7588914037 -26039.5781250000 0.0000022389 - 0.7580428123 -26039.6855468750 0.0000026748 - 0.7571929693 -26037.2148437500 0.0000019674 - 0.7563418150 -26035.9433593750 0.0000019423 - 0.7554894090 -26034.6054687500 0.0000020145 - 0.7546356916 -26033.6328125000 0.0000022058 - 0.7537806630 -26032.1503906250 0.0000013839 - 0.7529243827 -26031.3730468750 0.0000013998 - 0.7520668507 -26030.4179687500 0.0000013262 - 0.7512080073 -26028.1035156250 0.0000009388 - 0.7503479123 -26027.6074218750 0.0000012526 - 0.7494865656 -26027.9277343750 0.0000017798 - 0.7486239076 -26026.5156250000 0.0000017835 - 0.7477599978 -26024.3457031250 0.0000008726 - 0.7468948364 -26024.1777343750 0.0000011171 - 0.7460284233 -26022.7265625000 0.0000007795 - 0.7451606989 -26021.0449218750 0.0000009290 - 0.7442917228 -26019.8925781250 0.0000007749 - 0.7434214950 -26019.4550781250 0.0000009141 - 0.7425500154 -26017.4433593750 0.0000006366 - 0.7416772246 -26016.7500000000 0.0000006338 - 0.7408032417 -26014.8945312500 0.0000001057 - 0.7399279475 -26015.4765625000 0.0000005630 - 0.7390514612 -26012.8437500000 0.0000000261 - 0.7381736636 -26011.4042968750 0.0000000838 - 0.7372946739 -26011.8730468750 0.0000004573 - 0.7364143729 -26010.2363281250 0.0000004265 - 0.7355328202 -26008.5429687500 0.0000004712 - 0.7346500754 -26007.8769531250 0.0000002859 - 0.7337660789 -26007.6621093750 0.0000008289 - 0.7328808308 -26005.0351562500 0.0000003022 - 0.7319942713 -26006.6035156250 0.0000011558 - 0.7311065793 -26004.4179687500 0.0000007232 - 0.7302175760 -26003.2929687500 0.0000010002 - 0.7293273807 -26001.8105468750 0.0000002296 - 0.7284358740 -26002.2304687500 0.0000007064 - 0.7275431752 -26000.5273437500 0.0000004661 - 0.7266492844 -26000.0039062500 0.0000011227 - 0.7257541418 -25998.4453125000 0.0000006044 - 0.7248577476 -25997.6816406250 0.0000012214 - 0.7239601016 -25996.4902343750 0.0000005551 - 0.7230612636 -25994.6113281250 0.0000010352 - 0.7221611738 -25994.1601562500 0.0000014952 - 0.7212598920 -25993.6699218750 0.0000013579 - 0.7203573585 -25993.0175781250 0.0000021835 - 0.7194536328 -25991.5625000000 0.0000014789 - 0.7185486555 -25991.8183593750 0.0000019628 - 0.7176424861 -25990.9257812500 0.0000022631 - 0.7167351246 -25989.4355468750 0.0000020200 - 0.7158265114 -25989.2128906250 0.0000022566 - 0.7149167061 -25987.5898437500 0.0000028983 - 0.7140056491 -25985.7871093750 0.0000027413 - 0.7130934000 -25985.0312500000 0.0000029393 - 0.7121799588 -25983.6796875000 0.0000027581 - 0.7112652659 -25985.5410156250 0.0000036624 - 0.7103494406 -25984.1699218750 0.0000039935 - 0.7094323635 -25982.8066406250 0.0000040424 - 0.7085140944 -25980.7402343750 0.0000041178 - 0.7075945735 -25979.1953125000 0.0000041393 - 0.7066739202 -25980.5644531250 0.0000053374 - 0.7057520151 -25978.7636718750 0.0000046799 - 0.7048289776 -25978.2187500000 0.0000057523 - 0.7039046884 -25976.8964843750 0.0000053621 - 0.7029792666 -25976.6210937500 0.0000064257 - 0.7020525932 -25975.5917968750 0.0000060746 - 0.7011247277 -25975.2890625000 0.0000070380 - 0.7001957297 -25973.0664062500 0.0000066203 - 0.6992654800 -25972.8593750000 0.0000076909 - 0.6983340979 -25973.8691406250 0.0000082082 - 0.6974015236 -25971.7226562500 0.0000085118 - 0.6964677572 -25970.3300781250 0.0000089030 - 0.6955327988 -25970.4570312500 0.0000097626 - 0.6945966482 -25969.9589843750 0.0000102050 - 0.6936593652 -25970.5058593750 0.0000110255 - 0.6927208900 -25968.8183593750 0.0000114893 - 0.6917812228 -25968.1171875000 0.0000116178 - 0.6908404231 -25967.2109375000 0.0000127335 - 0.6898983717 -25965.2714843750 0.0000125985 - 0.6889552474 -25966.1269531250 0.0000141850 - 0.6880108714 -25964.3984375000 0.0000139661 - 0.6870653629 -25964.0175781250 0.0000149095 - 0.6861187220 -25962.3867187500 0.0000154329 - 0.6851708889 -25963.4433593750 0.0000163461 - 0.6842218637 -25961.2578125000 0.0000169203 - 0.6832717061 -25962.2324218750 0.0000182544 - 0.6823204160 -25962.0468750000 0.0000189957 - 0.6813679338 -25960.3847656250 0.0000192090 - 0.6804143190 -25960.0292968750 0.0000203410 - 0.6794595122 -25959.4667968750 0.0000213031 - 0.6785036325 -25958.6933593750 0.0000220235 - 0.6775465012 -25956.7539062500 0.0000223978 - 0.6765882969 -25956.1328125000 0.0000234852 - 0.6756289005 -25957.2851562500 0.0000246842 - 0.6746683717 -25955.6035156250 0.0000257231 - 0.6737067103 -25954.5546875000 0.0000261338 - 0.6727439165 -25955.4355468750 0.0000279467 - 0.6717799902 -25952.7246093750 0.0000280021 - 0.6708148718 -25952.8632812500 0.0000296133 - 0.6698486805 -25953.8925781250 0.0000315541 - 0.6688812971 -25953.2832031250 0.0000325339 - 0.6679127812 -25953.3515625000 0.0000340356 - 0.6669431925 -25951.0292968750 0.0000345143 - 0.6659724116 -25951.5781250000 0.0000359965 - 0.6650004983 -25950.6972656250 0.0000368762 - 0.6640275121 -25949.5859375000 0.0000383984 - 0.6630533934 -25949.5078125000 0.0000395244 - 0.6620780826 -25948.7949218750 0.0000410085 - 0.6611016989 -25947.7441406250 0.0000420935 - 0.6601241827 -25947.9707031250 0.0000443645 - 0.6591455936 -25947.3906250000 0.0000453768 - 0.6581658125 -25946.1113281250 0.0000470118 - 0.6571849585 -25946.1035156250 0.0000482956 - 0.6562029719 -25946.5703125000 0.0000503473 - 0.6552199125 -25946.4746093750 0.0000526872 - 0.6542357206 -25946.3847656250 0.0000539264 - 0.6532503963 -25945.7656250000 0.0000558258 - 0.6522639990 -25945.2558593750 0.0000575352 - 0.6512764692 -25944.4941406250 0.0000594892 - 0.6502878666 -25945.1542968750 0.0000615842 - 0.6492981315 -25942.0878906250 0.0000626985 - 0.6483072639 -25942.7675781250 0.0000646147 - 0.6473153830 -25943.1093750000 0.0000672792 - 0.6463223100 -25943.3593750000 0.0000688536 - 0.6453282237 -25942.3593750000 0.0000717365 - 0.6443330050 -25941.7734375000 0.0000735843 - 0.6433367133 -25940.8925781250 0.0000752714 - 0.6423392892 -25941.3320312500 0.0000772933 - 0.6413407922 -25940.8691406250 0.0000804579 - 0.6403412223 -25940.4746093750 0.0000824151 - 0.6393405795 -25941.3750000000 0.0000854386 - 0.6383388042 -25939.5156250000 0.0000869520 - 0.6373360157 -25939.9003906250 0.0000903364 - 0.6363320947 -25941.0781250000 0.0000935690 - 0.6353271008 -25938.4882812500 0.0000950163 - 0.6343210340 -25940.3066406250 0.0000985875 - 0.6333138943 -25938.0371093750 0.0001009284 - 0.6323056817 -25936.9902343750 0.0001036241 - 0.6312963963 -25937.7988281250 0.0001064595 - 0.6302860379 -25936.7441406250 0.0001096106 - 0.6292746067 -25937.3789062500 0.0001123152 - 0.6282621622 -25937.5136718750 0.0001159539 - 0.6272485852 -25935.5292968750 0.0001182277 - 0.6262339354 -25937.2636718750 0.0001225160 - 0.6252182722 -25935.9863281250 0.0001253309 - 0.6242015362 -25936.9433593750 0.0001291493 - 0.6231837273 -25935.8730468750 0.0001319908 - 0.6221649051 -25935.3046875000 0.0001358492 - 0.6211449504 -25936.1914062500 0.0001392104 - 0.6201239824 -25935.2851562500 0.0001428663 - 0.6191020012 -25936.0410156250 0.0001463681 - 0.6180789471 -25934.6523437500 0.0001500589 - 0.6170548201 -25935.0175781250 0.0001543225 - 0.6160296798 -25935.5781250000 0.0001583435 - 0.6150034666 -25934.5468750000 0.0001620515 - 0.6139762402 -25933.7363281250 0.0001665158 - 0.6129479408 -25934.4472656250 0.0001711072 - 0.6119186282 -25934.4453125000 0.0001749643 - 0.6108882427 -25935.0097656250 0.0001799325 - 0.6098568439 -25934.2968750000 0.0001840577 - 0.6088244319 -25934.6718750000 0.0001891698 - 0.6077909470 -25934.5390625000 0.0001930338 - 0.6067564487 -25934.3164062500 0.0001985403 - 0.6057209373 -25934.5312500000 0.0002030227 - 0.6046843529 -25934.4843750000 0.0002080845 - 0.6036468148 -25935.2968750000 0.0002133050 - 0.6026082039 -25935.0410156250 0.0002187616 - 0.6015685797 -25934.1367187500 0.0002231314 - 0.6005279422 -25933.5957031250 0.0002286788 - 0.5994862914 -25934.3574218750 0.0002347650 - 0.5984435678 -25934.9082031250 0.0002403841 - 0.5973998904 -25933.7070312500 0.0002455744 - 0.5963551998 -25934.3535156250 0.0002516541 - 0.5953094959 -25933.1523437500 0.0002569263 - 0.5942627788 -25933.3261718750 0.0002641343 - 0.5932150483 -25934.2285156250 0.0002697366 - 0.5921663046 -25933.3808593750 0.0002758210 - 0.5911165476 -25933.3046875000 0.0002820701 - 0.5900658369 -25933.8632812500 0.0002886592 - 0.5890140533 -25933.4785156250 0.0002949494 - 0.5879613161 -25934.4863281250 0.0003023036 - 0.5869075656 -25934.2148437500 0.0003093425 - 0.5858528614 -25934.9765625000 0.0003168117 - 0.5847971439 -25935.0917968750 0.0003240691 - 0.5837404132 -25934.3671875000 0.0003303881 - 0.5826826692 -25934.6953125000 0.0003376845 - 0.5816239715 -25933.9960937500 0.0003456012 - 0.5805643201 -25934.6953125000 0.0003531063 - 0.5795036554 -25934.1035156250 0.0003612090 - 0.5784419775 -25936.1757812500 0.0003694845 - 0.5773793459 -25935.4843750000 0.0003779770 - 0.5763157606 -25934.4550781250 0.0003851433 - 0.5752511621 -25935.8613281250 0.0003941352 - 0.5741856098 -25935.3613281250 0.0004023223 - 0.5731191039 -25936.0449218750 0.0004122409 - 0.5720515847 -25934.3085937500 0.0004196095 - 0.5709831119 -25935.8261718750 0.0004295290 - 0.5699136257 -25935.7187500000 0.0004381570 - 0.5688432455 -25936.3730468750 0.0004476283 - 0.5677718520 -25937.3320312500 0.0004575495 - 0.5666995049 -25937.0429687500 0.0004675721 - 0.5656262040 -25937.3437500000 0.0004775787 - 0.5645519495 -25938.2890625000 0.0004870999 - 0.5634767413 -25935.9511718750 0.0004970916 - 0.5624005795 -25937.0820312500 0.0005083273 - 0.5613234639 -25937.2363281250 0.0005187818 - 0.5602453947 -25939.1015625000 0.0005291661 - 0.5591663718 -25939.1894531250 0.0005399089 - 0.5580863953 -25938.9804687500 0.0005514997 - 0.5570054650 -25938.4941406250 0.0005626846 - 0.5559235811 -25938.5566406250 0.0005739676 - 0.5548408031 -25938.9941406250 0.0005858480 - 0.5537570715 -25939.9511718750 0.0005987433 - 0.5526723862 -25938.3964843750 0.0006090808 - 0.5515867472 -25939.4238281250 0.0006221822 - 0.5505002141 -25941.2558593750 0.0006346370 - 0.5494127274 -25940.2675781250 0.0006475069 - 0.5483242869 -25940.1718750000 0.0006596653 - 0.5472349524 -25941.8574218750 0.0006745183 - 0.5461446643 -25941.8183593750 0.0006871470 - 0.5450534225 -25942.9882812500 0.0007013429 - 0.5439612865 -25941.9921875000 0.0007143726 - 0.5428682566 -25944.3085937500 0.0007293615 - 0.5417742729 -25942.0820312500 0.0007423740 - 0.5406793952 -25942.4882812500 0.0007574422 - 0.5395835638 -25944.1621093750 0.0007720811 - 0.5384868383 -25943.8144531250 0.0007871762 - 0.5373892188 -25945.5058593750 0.0008024283 - 0.5362907052 -25945.2539062500 0.0008181222 - 0.5351912379 -25945.4257812500 0.0008330072 - 0.5340908766 -25946.4726562500 0.0008500963 - 0.5329895616 -25945.7363281250 0.0008649552 - 0.5318874121 -25947.0957031250 0.0008829032 - 0.5307843685 -25947.4296875000 0.0008990795 - 0.5296803713 -25948.1992187500 0.0009164771 - 0.5285754800 -25947.4003906250 0.0009318743 - 0.5274697542 -25949.3164062500 0.0009509347 - 0.5263630748 -25949.3398437500 0.0009690292 - 0.5252555013 -25949.9160156250 0.0009867069 - 0.5241470933 -25950.3125000000 0.0010043605 - 0.5230377316 -25950.3886718750 0.0010229718 - 0.5219275355 -25951.4199218750 0.0010423524 - 0.5208163857 -25952.1464843750 0.0010612876 - 0.5197044015 -25950.8496093750 0.0010796912 - 0.5185915232 -25952.8164062500 0.0010991772 - 0.5174778104 -25952.3730468750 0.0011190447 - 0.5163631439 -25953.8632812500 0.0011402551 - 0.5152476430 -25954.1035156250 0.0011612661 - 0.5141313076 -25953.4843750000 0.0011802695 - 0.5130140185 -25956.5722656250 0.0012028613 - 0.5118959546 -25956.4863281250 0.0012243210 - 0.5107769370 -25956.5156250000 0.0012459501 - 0.5096570849 -25957.5605468750 0.0012672597 - 0.5085363984 -25956.6660156250 0.0012891941 - 0.5074148178 -25957.0859375000 0.0013115525 - 0.5062923431 -25958.9804687500 0.0013355253 - 0.5051690340 -25959.5000000000 0.0013591065 - 0.5040448904 -25959.5312500000 0.0013823084 - 0.5029199123 -25959.8847656250 0.0014060908 - 0.5017940402 -25961.5468750000 0.0014297462 - 0.5006673336 -25961.7246093750 0.0014532956 - 0.4995397627 -25962.3085937500 0.0014786674 - 0.4984113574 -25962.8281250000 0.0015045847 - 0.4972821176 -25962.9433593750 0.0015286384 - 0.4961520135 -25964.6445312500 0.0015558745 - 0.4950210750 -25965.4238281250 0.0015813559 - 0.4938893020 -25966.1328125000 0.0016083359 - 0.4927566946 -25966.6171875000 0.0016354313 - 0.4916232526 -25967.9687500000 0.0016622329 - 0.4904889762 -25967.9843750000 0.0016897507 - 0.4893538654 -25968.6816406250 0.0017175884 - 0.4882179201 -25968.7734375000 0.0017447202 - 0.4870811403 -25968.1523437500 0.0017716559 - 0.4859435558 -25968.4628906250 0.0018006582 - 0.4848051369 -25969.6621093750 0.0018302039 - 0.4836658835 -25971.9687500000 0.0018602712 - 0.4825258255 -25972.4648437500 0.0018888833 - 0.4813849628 -25972.5683593750 0.0019211820 - 0.4802432656 -25973.0195312500 0.0019502398 - 0.4791007340 -25974.1386718750 0.0019797394 - 0.4779574275 -25973.9785156250 0.0020127352 - 0.4768132865 -25975.9570312500 0.0020429306 - 0.4756683409 -25976.0507812500 0.0020750817 - 0.4745225906 -25977.2167968750 0.0021063327 - 0.4733760357 -25977.9609375000 0.0021407278 - 0.4722287059 -25977.7617187500 0.0021722047 - 0.4710805416 -25979.5136718750 0.0022055111 - 0.4699315727 -25979.6582031250 0.0022377595 - 0.4687818289 -25980.4433593750 0.0022716234 - 0.4676312804 -25982.0097656250 0.0023062211 - 0.4664799571 -25981.8066406250 0.0023411717 - 0.4653278291 -25982.6640625000 0.0023761382 - 0.4641748965 -25983.5097656250 0.0024119047 - 0.4630211890 -25984.1562500000 0.0024464820 - 0.4618667066 -25985.6855468750 0.0024818443 - 0.4607114196 -25986.2968750000 0.0025185654 - 0.4595553875 -25987.8496093750 0.0025557624 - 0.4583985507 -25989.8847656250 0.0025916928 - 0.4572409391 -25989.1171875000 0.0026280591 - 0.4560825527 -25990.3886718750 0.0026654825 - 0.4549233913 -25991.7617187500 0.0027040066 - 0.4537634552 -25991.7773437500 0.0027407892 - 0.4526027739 -25992.4316406250 0.0027803779 - 0.4514412880 -25992.9394531250 0.0028151814 - 0.4502790570 -25994.3515625000 0.0028557107 - 0.4491160512 -25994.2832031250 0.0028959569 - 0.4479523003 -25995.8085937500 0.0029336000 - 0.4467878044 -25996.5761718750 0.0029744310 - 0.4456225038 -25998.0703125000 0.0030145543 - 0.4444564879 -25999.3300781250 0.0030539837 - 0.4432896972 -25999.8535156250 0.0030958569 - 0.4421221614 -26002.1894531250 0.0031368006 - 0.4409538805 -26000.6386718750 0.0031761825 - 0.4397848547 -26003.5117187500 0.0032177716 - 0.4386150837 -26003.6425781250 0.0032582730 - 0.4374445677 -26004.5449218750 0.0033002943 - 0.4362732768 -26005.7460937500 0.0033417121 - 0.4351013005 -26006.7402343750 0.0033834074 - 0.4339285493 -26006.3632812500 0.0034250580 - 0.4327550828 -26007.7968750000 0.0034672730 - 0.4315808713 -26010.1835937500 0.0035132319 - 0.4304059148 -26010.3242187500 0.0035532173 - 0.4292302430 -26011.4648437500 0.0035969522 - 0.4280538559 -26012.1035156250 0.0036388673 - 0.4268767238 -26012.9863281250 0.0036843251 - 0.4256988764 -26012.8437500000 0.0037268884 - 0.4245203137 -26014.4042968750 0.0037704483 - 0.4233410060 -26016.7207031250 0.0038145110 - 0.4221610129 -26016.7207031250 0.0038584676 - 0.4209802747 -26017.2832031250 0.0038997680 - 0.4197988510 -26019.1191406250 0.0039447546 - 0.4186167121 -26020.5019531250 0.0039880387 - 0.4174338281 -26021.0546875000 0.0040329788 - 0.4162502885 -26021.9375000000 0.0040791985 - 0.4150660038 -26022.3886718750 0.0041223653 - 0.4138810337 -26024.5058593750 0.0041662641 - 0.4126953483 -26025.0488281250 0.0042104125 - 0.4115089774 -26026.1328125000 0.0042531900 - 0.4103218913 -26026.4179687500 0.0042985342 - 0.4091341197 -26028.0800781250 0.0043442380 - 0.4079456627 -26029.2675781250 0.0043871291 - 0.4067565203 -26030.1816406250 0.0044305772 - 0.4055666625 -26030.0468750000 0.0044756941 - 0.4043761194 -26032.0429687500 0.0045185611 - 0.4031849205 -26033.4160156250 0.0045652241 - 0.4019930065 -26035.6054687500 0.0046089254 - 0.4008004367 -26036.3652343750 0.0046537109 - 0.3996071517 -26035.6699218750 0.0046935081 - 0.3984132111 -26037.2167968750 0.0047400706 - 0.3972186148 -26039.8789062500 0.0047822855 - 0.3960233331 -26040.2812500000 0.0048280433 - 0.3948273659 -26042.1347656250 0.0048704669 - 0.3936307132 -26042.4453125000 0.0049148686 - 0.3924334347 -26043.8593750000 0.0049586445 - 0.3912354708 -26044.0058593750 0.0049986281 - 0.3900368512 -26045.6484375000 0.0050408766 - 0.3888375461 -26046.1367187500 0.0050828867 - 0.3876376152 -26048.0449218750 0.0051248036 - 0.3864369988 -26049.0214843750 0.0051698685 - 0.3852357566 -26049.2519531250 0.0052087493 - 0.3840338290 -26051.1230468750 0.0052501149 - 0.3828312755 -26052.6796875000 0.0052891187 - 0.3816280663 -26053.1562500000 0.0053342171 - 0.3804242015 -26054.6328125000 0.0053736344 - 0.3792196810 -26056.2636718750 0.0054131672 - 0.3780145347 -26057.2500000000 0.0054530092 - 0.3768087626 -26058.1367187500 0.0054908209 - 0.3756023347 -26059.2226562500 0.0055317804 - 0.3743952513 -26060.3300781250 0.0055673383 - 0.3731875718 -26061.9121093750 0.0056105629 - 0.3719792366 -26062.3593750000 0.0056474581 - 0.3707702756 -26063.4921875000 0.0056826249 - 0.3695606887 -26064.8925781250 0.0057186186 - 0.3683504760 -26066.6875000000 0.0057578459 - 0.3671396077 -26067.9921875000 0.0057941787 - 0.3659281433 -26067.9492187500 0.0058265887 - 0.3647160828 -26068.9394531250 0.0058643632 - 0.3635033667 -26071.2304687500 0.0058986694 - 0.3622900546 -26072.6953125000 0.0059312582 - 0.3610761166 -26073.3691406250 0.0059661455 - 0.3598615825 -26074.2695312500 0.0059992000 - 0.3586464226 -26076.1445312500 0.0060331635 - 0.3574306369 -26076.1308593750 0.0060628615 - 0.3562142849 -26078.8769531250 0.0060975403 - 0.3549973071 -26078.4335937500 0.0061252862 - 0.3537797332 -26080.3867187500 0.0061576851 - 0.3525615633 -26081.8027343750 0.0061877109 - 0.3513427675 -26082.8066406250 0.0062150061 - 0.3501234055 -26082.8769531250 0.0062443651 - 0.3489034474 -26086.1855468750 0.0062734857 - 0.3476828933 -26086.2441406250 0.0063026324 - 0.3464617431 -26087.2148437500 0.0063251071 - 0.3452400267 -26089.4980468750 0.0063538663 - 0.3440177143 -26090.4589843750 0.0063828081 - 0.3427948058 -26093.4375000000 0.0064040162 - 0.3415713310 -26093.7402343750 0.0064306967 - 0.3403472602 -26093.5781250000 0.0064530633 - 0.3391226232 -26096.2109375000 0.0064765513 - 0.3378974199 -26096.1132812500 0.0064964928 - 0.3366716206 -26096.8144531250 0.0065188594 - 0.3354452848 -26099.3476562500 0.0065413490 - 0.3342183530 -26099.8671875000 0.0065650977 - 0.3329908550 -26101.7050781250 0.0065847151 - 0.3317627907 -26102.3984375000 0.0065991431 - 0.3305341899 -26103.6542968750 0.0066196062 - 0.3293049932 -26104.8925781250 0.0066379495 - 0.3280752599 -26107.3613281250 0.0066569969 - 0.3268449903 -26106.7832031250 0.0066737458 - 0.3256141245 -26108.1308593750 0.0066866428 - 0.3243827224 -26109.7324218750 0.0067026615 - 0.3231507838 -26111.5488281250 0.0067179725 - 0.3219182789 -26112.3535156250 0.0067312494 - 0.3206852376 -26114.7812500000 0.0067449212 - 0.3194516599 -26116.1562500000 0.0067591220 - 0.3182175159 -26117.0957031250 0.0067702234 - 0.3169828653 -26117.1269531250 0.0067819506 - 0.3157476485 -26118.4804687500 0.0067908093 - 0.3145119250 -26121.1679687500 0.0068005398 - 0.3132756352 -26122.8808593750 0.0068129599 - 0.3120388389 -26124.0566406250 0.0068215355 - 0.3108015060 -26125.0488281250 0.0068307966 - 0.3095636368 -26126.1953125000 0.0068357363 - 0.3083252609 -26127.1855468750 0.0068409070 - 0.3070863485 -26127.7812500000 0.0068458393 - 0.3058469296 -26130.4414062500 0.0068570822 - 0.3046069741 -26130.5625000000 0.0068587214 - 0.3033665121 -26133.9316406250 0.0068640038 - 0.3021255434 -26133.8828125000 0.0068655610 - 0.3008840382 -26134.9160156250 0.0068691447 - 0.2996420562 -26135.1171875000 0.0068705603 - 0.2983995378 -26138.1113281250 0.0068713203 - 0.2971565127 -26138.0996093750 0.0068736225 - 0.2959130108 -26138.7500000000 0.0068701357 - 0.2946689725 -26141.4492187500 0.0068753064 - 0.2934244573 -26142.2324218750 0.0068720430 - 0.2921794355 -26144.1367187500 0.0068716183 - 0.2909339368 -26145.5371093750 0.0068687722 - 0.2896879315 -26146.2519531250 0.0068666041 - 0.2884414196 -26148.0527343750 0.0068646371 - 0.2871944308 -26148.9648437500 0.0068593770 - 0.2859469652 -26149.1074218750 0.0068539158 - 0.2846990228 -26150.4843750000 0.0068477988 - 0.2834505737 -26152.5390625000 0.0068445876 - 0.2822016478 -26154.7656250000 0.0068440884 - 0.2809522450 -26155.5136718750 0.0068304017 - 0.2797023654 -26157.7890625000 0.0068276748 - 0.2784520388 -26157.4355468750 0.0068157911 - 0.2772012055 -26159.1542968750 0.0068086162 - 0.2759499252 -26161.5625000000 0.0068023875 - 0.2746981680 -26161.4003906250 0.0067922398 - 0.2734459341 -26164.4550781250 0.0067834035 - 0.2721932530 -26166.0000000000 0.0067747831 - 0.2709400952 -26166.5839843750 0.0067617595 - 0.2696864903 -26166.2558593750 0.0067492500 - 0.2684324086 -26168.2246093750 0.0067398548 - 0.2671778798 -26170.2382812500 0.0067290217 - 0.2659229040 -26171.0371093750 0.0067149922 - 0.2646674812 -26173.0039062500 0.0067025870 - 0.2634116113 -26175.1503906250 0.0066920072 - 0.2621552944 -26175.7460937500 0.0066800043 - 0.2608985305 -26177.6386718750 0.0066637173 - 0.2596413195 -26178.6132812500 0.0066507757 - 0.2583836615 -26179.8828125000 0.0066339746 - 0.2571255863 -26180.9589843750 0.0066152960 - 0.2558670640 -26180.7792968750 0.0065997094 - 0.2546080947 -26183.3867187500 0.0065865517 - 0.2533487082 -26185.2324218750 0.0065676719 - 0.2520889044 -26185.1660156250 0.0065504313 - 0.2508286536 -26187.7148437500 0.0065360367 - 0.2495679855 -26187.2871093750 0.0065153092 - 0.2483069003 -26190.6054687500 0.0064979941 - 0.2470453829 -26190.8671875000 0.0064781457 - 0.2457834482 -26191.5898437500 0.0064607635 - 0.2445210963 -26195.0117187500 0.0064406022 - 0.2432583272 -26194.5039062500 0.0064195022 - 0.2419951558 -26197.3359375000 0.0064064190 - 0.2407315671 -26198.0078125000 0.0063847452 - 0.2394675761 -26199.8320312500 0.0063633323 - 0.2382031679 -26201.4375000000 0.0063430220 - 0.2369383723 -26202.9433593750 0.0063209757 - 0.2356731594 -26203.7011718750 0.0063003600 - 0.2344075590 -26205.2617187500 0.0062771514 - 0.2331415564 -26206.5566406250 0.0062573701 - 0.2318751514 -26208.1718750000 0.0062366202 - 0.2306083590 -26209.6562500000 0.0062132031 - 0.2293411791 -26210.6308593750 0.0061896592 - 0.2280736119 -26212.3945312500 0.0061695799 - 0.2268056571 -26213.2539062500 0.0061461627 - 0.2255373001 -26213.3242187500 0.0061170906 - 0.2242685854 -26215.2421875000 0.0060961097 - 0.2229994684 -26217.7265625000 0.0060752705 - 0.2217299938 -26218.6093750000 0.0060494393 - 0.2204601318 -26218.0117187500 0.0060247332 - 0.2191898972 -26220.3750000000 0.0060020238 - 0.2179192901 -26221.0527343750 0.0059755594 - 0.2166483253 -26223.7148437500 0.0059531182 - 0.2153769732 -26223.4843750000 0.0059251711 - 0.2141052783 -26226.6875000000 0.0059001222 - 0.2128331959 -26226.2343750000 0.0058761239 - 0.2115607709 -26227.6367187500 0.0058490187 - 0.2102879882 -26230.0859375000 0.0058250725 - 0.2090148330 -26229.9121093750 0.0057960749 - 0.2077413350 -26232.5156250000 0.0057742074 - 0.2064674795 -26233.1640625000 0.0057451576 - 0.2051932812 -26234.8417968750 0.0057226941 - 0.2039187253 -26235.9433593750 0.0056907833 - 0.2026438266 -26237.4843750000 0.0056693256 - 0.2013686001 -26238.4296875000 0.0056408942 - 0.2000930160 -26240.5195312500 0.0056128427 - 0.1988170892 -26241.0585937500 0.0055875480 - 0.1975408345 -26242.3554687500 0.0055583268 - 0.1962642372 -26243.4355468750 0.0055352598 - 0.1949873120 -26244.0097656250 0.0055031180 - 0.1937100589 -26246.1914062500 0.0054773614 - 0.1924324781 -26247.2929687500 0.0054497272 - 0.1911545694 -26248.0703125000 0.0054183900 - 0.1898763329 -26250.8945312500 0.0053939223 - 0.1885977685 -26251.4316406250 0.0053673014 - 0.1873188913 -26252.7871093750 0.0053404048 - 0.1860397011 -26254.4707031250 0.0053092688 - 0.1847601980 -26256.0351562500 0.0052807108 - 0.1834803671 -26255.9863281250 0.0052546784 - 0.1822002381 -26258.2675781250 0.0052252635 - 0.1809197962 -26259.4023437500 0.0051975921 - 0.1796390414 -26259.9238281250 0.0051680580 - 0.1783579886 -26261.0839843750 0.0051430464 - 0.1770766377 -26262.9472656250 0.0051110610 - 0.1757949889 -26265.9179687500 0.0050853267 - 0.1745130271 -26264.8867187500 0.0050568432 - 0.1732307822 -26265.9453125000 0.0050223470 - 0.1719482392 -26268.9609375000 0.0049982220 - 0.1706653982 -26269.3281250000 0.0049691983 - 0.1693822742 -26268.9863281250 0.0049376749 - 0.1680988669 -26270.3632812500 0.0049090199 - 0.1668151617 -26273.3281250000 0.0048820339 - 0.1655311882 -26273.7949218750 0.0048547350 - 0.1642469168 -26275.5957031250 0.0048268102 - 0.1629623771 -26275.1367187500 0.0047944039 - 0.1616775692 -26276.6464843750 0.0047662370 - 0.1603924781 -26278.2636718750 0.0047368892 - 0.1591071188 -26279.9296875000 0.0047087148 - 0.1578214914 -26281.5820312500 0.0046786889 - 0.1565355957 -26282.3300781250 0.0046486706 - 0.1552494317 -26284.0468750000 0.0046209879 - 0.1539629996 -26284.0703125000 0.0045927241 - 0.1526763141 -26286.6718750000 0.0045652129 - 0.1513893604 -26287.5957031250 0.0045363419 - 0.1501021534 -26287.4335937500 0.0045050494 - 0.1488146931 -26289.0898437500 0.0044748932 - 0.1475269943 -26290.1367187500 0.0044463724 - 0.1462390274 -26292.9375000000 0.0044203512 - 0.1449508220 -26293.5761718750 0.0043924749 - 0.1436623633 -26294.1347656250 0.0043590218 - 0.1423736662 -26294.8886718750 0.0043326467 - 0.1410847306 -26296.3320312500 0.0043035373 - 0.1397955567 -26296.2167968750 0.0042747706 - 0.1385061294 -26299.3261718750 0.0042460673 - 0.1372164786 -26300.1582031250 0.0042160936 - 0.1359266043 -26302.7265625000 0.0041898154 - 0.1346364915 -26301.1562500000 0.0041602030 - 0.1333461404 -26304.4218750000 0.0041319169 - 0.1320555806 -26304.3925781250 0.0041035414 - 0.1307647824 -26303.6054687500 0.0040733702 - 0.1294737756 -26305.8691406250 0.0040464513 - 0.1281825453 -26308.3222656250 0.0040162727 - 0.1268910915 -26308.0800781250 0.0039865635 - 0.1255994290 -26309.3378906250 0.0039621592 - 0.1243075505 -26312.0234375000 0.0039344467 - 0.1230154559 -26312.0273437500 0.0039029494 - 0.1217231601 -26312.2871093750 0.0038734898 - 0.1204306558 -26314.7832031250 0.0038494915 - 0.1191379502 -26316.8125000000 0.0038206838 - 0.1178450361 -26317.5703125000 0.0037923940 - 0.1165519282 -26317.6523437500 0.0037638433 - 0.1152586192 -26317.8906250000 0.0037344582 - 0.1139651164 -26319.0019531250 0.0037104972 - 0.1126714200 -26320.2421875000 0.0036791340 - 0.1113775373 -26322.3339843750 0.0036527552 - 0.1100834608 -26322.8574218750 0.0036249794 - 0.1087891981 -26324.2558593750 0.0035988279 - 0.1074947491 -26324.9687500000 0.0035689883 - 0.1062001213 -26326.1425781250 0.0035413578 - 0.1049053073 -26327.0761718750 0.0035149455 - 0.1036103219 -26328.1835937500 0.0034886301 - 0.1023151577 -26329.1796875000 0.0034620240 - 0.1010198221 -26329.4199218750 0.0034322590 - 0.0997243151 -26329.4628906250 0.0034057535 - 0.0984286368 -26331.8710937500 0.0033808239 - 0.0971327946 -26332.3007812500 0.0033536069 - 0.0958367884 -26334.9375000000 0.0033275038 - 0.0945406184 -26334.9277343750 0.0032985657 - 0.0932442844 -26336.2324218750 0.0032742210 - 0.0919477940 -26338.0253906250 0.0032493547 - 0.0906511471 -26338.1289062500 0.0032200776 - 0.0893543512 -26338.2246093750 0.0031954907 - 0.0880573988 -26339.2207031250 0.0031671077 - 0.0867603049 -26341.9414062500 0.0031429157 - 0.0854630545 -26343.0566406250 0.0031168647 - 0.0841656625 -26343.3671875000 0.0030893236 - 0.0828681290 -26342.6718750000 0.0030640960 - 0.0815704539 -26344.9394531250 0.0030402541 - 0.0802726448 -26344.5605468750 0.0030151382 - 0.0789746940 -26346.9277343750 0.0029879324 - 0.0776766092 -26346.4082031250 0.0029619522 - 0.0763783976 -26347.7148437500 0.0029373504 - 0.0750800520 -26348.5625000000 0.0029132776 - 0.0737815797 -26351.2480468750 0.0028869882 - 0.0724829808 -26349.9316406250 0.0028625987 - 0.0711842626 -26350.4589843750 0.0028350241 - 0.0698854253 -26353.2109375000 0.0028128587 - 0.0685864612 -26352.4902343750 0.0027889460 - 0.0672873929 -26354.3671875000 0.0027622283 - 0.0659881979 -26356.2773437500 0.0027404763 - 0.0646888986 -26355.6250000000 0.0027147308 - 0.0633894876 -26357.0156250000 0.0026903339 - 0.0620899722 -26357.7207031250 0.0026673861 - 0.0607903488 -26358.0195312500 0.0026407801 - 0.0594906211 -26360.9316406250 0.0026204325 - 0.0581907928 -26360.5507812500 0.0025941506 - 0.0568908677 -26361.3886718750 0.0025709681 - 0.0555908456 -26362.6113281250 0.0025493875 - 0.0542907305 -26362.6230468750 0.0025236160 - 0.0529905185 -26364.0058593750 0.0025000311 - 0.0516902208 -26364.0859375000 0.0024783723 - 0.0503898375 -26365.6855468750 0.0024566390 - 0.0490893647 -26365.4394531250 0.0024299659 - 0.0477888100 -26366.1914062500 0.0024057031 - 0.0464881733 -26367.1621093750 0.0023847446 - 0.0451874584 -26368.6835937500 0.0023637377 - 0.0438866690 -26368.0039062500 0.0023422949 - 0.0425858013 -26369.5078125000 0.0023169331 - 0.0412848629 -26369.9453125000 0.0022943988 - 0.0399838574 -26370.7285156250 0.0022735223 - 0.0386827812 -26371.3984375000 0.0022523664 - 0.0373816378 -26373.0976562500 0.0022318177 - 0.0360804349 -26373.9218750000 0.0022082217 - 0.0347791687 -26373.4531250000 0.0021854974 - 0.0334778428 -26373.0488281250 0.0021640472 - 0.0321764648 -26374.9296875000 0.0021444671 - 0.0308750272 -26377.0527343750 0.0021243729 - 0.0295735393 -26377.2226562500 0.0021015257 - 0.0282720011 -26377.5507812500 0.0020800009 - 0.0269704144 -26378.0332031250 0.0020583719 - 0.0256687813 -26378.2890625000 0.0020393245 - 0.0243671052 -26379.3886718750 0.0020195730 - 0.0230653882 -26381.7968750000 0.0020007007 - 0.0217636321 -26380.2128906250 0.0019749478 - 0.0204618406 -26381.0390625000 0.0019565746 - 0.0191600118 -26382.0800781250 0.0019368418 - 0.0178581513 -26383.7597656250 0.0019185320 - 0.0165562611 -26383.8066406250 0.0018984303 - 0.0152543429 -26383.7890625000 0.0018765107 - 0.0139523987 -26383.3691406250 0.0018566605 - 0.0126504302 -26384.2128906250 0.0018386394 - 0.0113484412 -26385.7812500000 0.0018180963 - 0.0100464327 -26385.8125000000 0.0018008221 - 0.0087444065 -26387.6855468750 0.0017787945 - 0.0074423659 -26386.5351562500 0.0017593391 - 0.0061403126 -26388.3398437500 0.0017424263 - 0.0048382492 -26387.7226562500 0.0017239619 - 0.0035361773 -26389.7402343750 0.0017068870 - 0.0022340994 -26389.4062500000 0.0016829129 - 0.0009320178 -26389.4824218750 0.0016663652 - -0.0003700654 -26389.6718750000 0.0016477890 - -0.0016721479 -26390.9003906250 0.0016316120 - -0.0029742278 -26391.4375000000 0.0016140081 - -0.0042763022 -26392.7324218750 0.0015972611 - -0.0055783698 -26391.8378906250 0.0015750397 - -0.0068804277 -26392.2617187500 0.0015586577 - -0.0081824744 -26394.0371093750 0.0015421659 - -0.0094845062 -26393.7070312500 0.0015256088 - -0.0107865231 -26393.8046875000 0.0015084464 - -0.0120885214 -26394.9277343750 0.0014926940 - -0.0133904982 -26394.5683593750 0.0014709774 - -0.0146924537 -26395.5996093750 0.0014552698 - -0.0159943830 -26396.8359375000 0.0014399868 - -0.0172962863 -26395.7070312500 0.0014223941 - -0.0185981598 -26396.6660156250 0.0014081895 - -0.0199000016 -26397.3554687500 0.0013926197 - -0.0212018099 -26397.2597656250 0.0013712849 - -0.0225035828 -26398.4042968750 0.0013564974 - -0.0238053165 -26398.9765625000 0.0013426784 - -0.0251070093 -26398.0683593750 0.0013260674 - -0.0264086612 -26399.7929687500 0.0013114866 - -0.0277102683 -26398.9375000000 0.0012908839 - -0.0290118270 -26399.3457031250 0.0012771077 - -0.0303133372 -26399.5722656250 0.0012629796 - -0.0316147953 -26401.0507812500 0.0012474190 - -0.0329162031 -26401.3945312500 0.0012330376 - -0.0342175514 -26400.1699218750 0.0012175832 - -0.0355188437 -26400.1738281250 0.0012003202 - -0.0368200727 -26400.2187500000 0.0011867099 - -0.0381212421 -26400.7871093750 0.0011711642 - -0.0394223481 -26403.4824218750 0.0011583399 - -0.0407233834 -26402.4824218750 0.0011440329 - -0.0420243517 -26402.4941406250 0.0011306778 - -0.0433252491 -26401.5097656250 0.0011130013 - -0.0446260720 -26403.7324218750 0.0011002365 - -0.0459268205 -26402.2695312500 0.0010867771 - -0.0472274907 -26402.8300781250 0.0010717977 - -0.0485280827 -26402.8554687500 0.0010595564 - -0.0498285890 -26402.4628906250 0.0010454450 - -0.0511290133 -26404.4863281250 0.0010345243 - -0.0524293482 -26403.4101562500 0.0010176990 - -0.0537295975 -26403.7070312500 0.0010040160 - -0.0550297536 -26404.7382812500 0.0009922069 - -0.0563298166 -26403.6054687500 0.0009788461 - -0.0576297827 -26405.4121093750 0.0009683669 - -0.0589296557 -26404.2441406250 0.0009548385 - -0.0602294244 -26403.4257812500 0.0009429939 - -0.0615290925 -26404.9589843750 0.0009257700 - -0.0628286600 -26404.8652343750 0.0009142254 - -0.0641281158 -26405.3398437500 0.0009031165 - -0.0654274598 -26404.4570312500 0.0008911304 - -0.0667266995 -26404.7246093750 0.0008799732 - -0.0680258274 -26404.9570312500 0.0008691698 - -0.0693248361 -26404.8300781250 0.0008526407 - -0.0706237257 -26405.1367187500 0.0008412022 - -0.0719224960 -26405.3398437500 0.0008315705 - -0.0732211471 -26405.9609375000 0.0008204393 - -0.0745196715 -26404.4843750000 0.0008096267 - -0.0758180693 -26404.6152343750 0.0007987823 - -0.0771163404 -26405.2929687500 0.0007828772 - -0.0784144849 -26404.0351562500 0.0007714741 - -0.0797124878 -26404.4121093750 0.0007620119 - -0.0810103640 -26404.8281250000 0.0007518325 - -0.0823080987 -26405.5000000000 0.0007421635 - -0.0836056918 -26404.0742187500 0.0007313304 - -0.0849031433 -26405.9433593750 0.0007226020 - -0.0862004533 -26403.8046875000 0.0007062294 - -0.0874976143 -26404.6230468750 0.0006970372 - -0.0887946337 -26403.3457031250 0.0006867163 - -0.0900914967 -26405.3339843750 0.0006780047 - -0.0913882107 -26403.9765625000 0.0006687026 - -0.0926847681 -26404.0996093750 0.0006591044 - -0.0939811617 -26403.5039062500 0.0006502252 - -0.0952774063 -26404.3574218750 0.0006411541 - -0.0965734869 -26404.1699218750 0.0006262623 - -0.0978693962 -26403.0273437500 0.0006174091 - -0.0991651490 -26403.0996093750 0.0006094780 - -0.1004607305 -26405.0039062500 0.0006008688 - -0.1017561406 -26403.2402343750 0.0005923118 - -0.1030513793 -26402.0585937500 0.0005835481 - -0.1043464392 -26402.0937500000 0.0005756281 - -0.1056413278 -26401.7031250000 0.0005675126 - -0.1069360375 -26401.3847656250 0.0005520731 - -0.1082305610 -26401.9023437500 0.0005454700 - -0.1095249057 -26401.0429687500 0.0005367473 - -0.1108190566 -26402.2675781250 0.0005299300 - -0.1121130288 -26400.5742187500 0.0005214550 - -0.1134068072 -26400.5839843750 0.0005145371 - -0.1147003919 -26399.0585937500 0.0005059037 - -0.1159937903 -26401.0839843750 0.0004931595 - -0.1172869802 -26399.2109375000 0.0004854733 - -0.1185799763 -26398.8906250000 0.0004782295 - -0.1198727712 -26398.9101562500 0.0004715202 - -0.1211653650 -26399.0585937500 0.0004641172 - -0.1224577576 -26397.3261718750 0.0004569078 - -0.1237499341 -26397.5761718750 0.0004508952 - -0.1250419021 -26397.7578125000 0.0004368313 - -0.1263336539 -26397.6796875000 0.0004301248 - -0.1276251972 -26394.6367187500 0.0004225271 - -0.1289165318 -26397.3476562500 0.0004171943 - -0.1302076429 -26397.5625000000 0.0004113112 - -0.1314985305 -26395.2636718750 0.0004040636 - -0.1327891946 -26396.0429687500 0.0003984123 - -0.1340796351 -26394.5195312500 0.0003917469 - -0.1353698373 -26393.5644531250 0.0003858916 - -0.1366598308 -26392.9394531250 0.0003729556 - -0.1379495710 -26392.9960937500 0.0003672047 - -0.1392390877 -26393.0722656250 0.0003613764 - -0.1405283809 -26391.6757812500 0.0003555221 - -0.1418174207 -26391.7167968750 0.0003498150 - -0.1431062222 -26391.6308593750 0.0003449479 - -0.1443947852 -26389.4609375000 0.0003390247 - -0.1456830949 -26390.0742187500 0.0003340319 - -0.1469711661 -26390.2851562500 0.0003290540 - -0.1482589841 -26387.2636718750 0.0003231866 - -0.1495465487 -26388.8359375000 0.0003114427 - -0.1508338600 -26386.9472656250 0.0003054384 - -0.1521209180 -26386.6562500000 0.0003007920 - -0.1534077227 -26386.3339843750 0.0002960507 - -0.1546942592 -26385.7949218750 0.0002912208 - -0.1559805423 -26384.9960937500 0.0002869833 - -0.1572665572 -26383.2500000000 0.0002820548 - -0.1585523039 -26383.8984375000 0.0002699792 - -0.1598377824 -26383.2773437500 0.0002659634 - -0.1611229777 -26381.4589843750 0.0002609668 - -0.1624079198 -26381.4726562500 0.0002561035 - -0.1636925787 -26381.5468750000 0.0002529360 - -0.1649769545 -26379.1914062500 0.0002479646 - -0.1662610620 -26380.3925781250 0.0002442747 - -0.1675448716 -26379.3437500000 0.0002401499 - -0.1688284129 -26376.6406250000 0.0002278555 - -0.1701116562 -26376.9843750000 0.0002241302 - -0.1713946164 -26375.8144531250 0.0002204850 - -0.1726772934 -26375.3496093750 0.0002166638 - -0.1739596725 -26374.5039062500 0.0002128230 - -0.1752417535 -26373.4414062500 0.0002094246 - -0.1765235364 -26373.4238281250 0.0002058661 - -0.1778050214 -26372.7011718750 0.0002019694 - -0.1790862083 -26371.5820312500 0.0001988783 - -0.1803670824 -26371.0234375000 0.0001955153 - -0.1816476583 -26369.6250000000 0.0001919372 - -0.1829279363 -26368.4511718750 0.0001890622 - -0.1842078865 -26367.8496093750 0.0001859684 - -0.1854875386 -26366.2031250000 0.0001825858 - -0.1867668629 -26365.2382812500 0.0001720814 - -0.1880458742 -26364.9238281250 0.0001688199 - -0.1893245727 -26363.2949218750 0.0001656925 - -0.1906029433 -26363.2832031250 0.0001632478 - -0.1918810010 -26361.6718750000 0.0001602890 - -0.1931587160 -26362.2695312500 0.0001576142 - -0.1944361180 -26360.2968750000 0.0001551127 - -0.1957131922 -26359.8105468750 0.0001526680 - -0.1969899237 -26357.8320312500 0.0001409240 - -0.1982663274 -26357.5429687500 0.0001386590 - -0.1995423883 -26356.5917968750 0.0001369016 - -0.2008181214 -26354.6210937500 0.0001335414 - -0.2020935118 -26354.6308593750 0.0001322208 - -0.2033685446 -26353.8261718750 0.0001301505 - -0.2046432495 -26352.6250000000 0.0001188684 - -0.2059176117 -26350.2382812500 0.0001164097 - -0.2071916014 -26351.0605468750 0.0001144558 - -0.2084652632 -26348.1992187500 0.0001120921 - -0.2097385675 -26346.8339843750 0.0001103543 - -0.2110114992 -26346.8437500000 0.0001080912 - -0.2122840881 -26346.3613281250 0.0001074551 - -0.2135563195 -26343.0332031250 0.0001048828 - -0.2148281783 -26343.8125000000 0.0001033545 - -0.2160996795 -26342.3046875000 0.0001013540 - -0.2173708081 -26341.3417968750 0.0001002932 - -0.2186415792 -26339.4941406250 0.0000984678 - -0.2199119776 -26338.3496093750 0.0000968184 - -0.2211819887 -26337.4746093750 0.0000957660 - -0.2224516422 -26336.0683593750 0.0000945823 - -0.2237209082 -26333.7246093750 0.0000928184 - -0.2249898016 -26332.7558593750 0.0000913097 - -0.2262583077 -26333.1308593750 0.0000907546 - -0.2275264263 -26330.9375000000 0.0000894880 - -0.2287941724 -26330.6191406250 0.0000883341 - -0.2300615162 -26328.8378906250 0.0000872780 - -0.2313284874 -26327.0800781250 0.0000868700 - -0.2325950563 -26325.2050781250 0.0000755163 - -0.2338612229 -26325.9179687500 0.0000748532 - -0.2351270020 -26322.5273437500 0.0000738539 - -0.2363923788 -26322.4062500000 0.0000731936 - -0.2376573533 -26321.2167968750 0.0000621527 - -0.2389219403 -26318.0000000000 0.0000607930 - -0.2401861101 -26318.3710937500 0.0000605937 - -0.2414498627 -26316.1464843750 0.0000494542 - -0.2427132279 -26315.1796875000 0.0000492278 - -0.2439761609 -26313.8417968750 0.0000483943 - -0.2452386916 -26311.8164062500 0.0000377018 - -0.2465008050 -26309.8554687500 0.0000366224 - -0.2477625012 -26308.8398437500 0.0000359016 - -0.2490237802 -26308.8261718750 0.0000364315 - -0.2502846420 -26305.3496093750 0.0000354955 - -0.2515450716 -26303.5507812500 0.0000346480 - -0.2528050542 -26302.4335937500 0.0000344003 - -0.2540646493 -26300.9550781250 0.0000345614 - -0.2553237677 -26300.3964843750 0.0000448357 - -0.2565824986 -26297.3300781250 0.0000442537 - -0.2578407526 -26297.8457031250 0.0000551743 - -0.2590985894 -26296.5136718750 0.0000556698 - -0.2603560090 -26293.3203125000 0.0000657020 - -0.2616129518 -26291.9101562500 0.0000771973 - -0.2628694773 -26291.1425781250 0.0000879625 - -0.2641255260 -26290.4902343750 0.0001101410 - -0.2653811574 -26290.6171875000 0.0001221010 - -0.2666363120 -26288.8066406250 0.0001444202 - -0.2678910494 -26287.0546875000 0.0001562564 - -0.2691453099 -26287.4648437500 0.0001796857 - -0.2703991234 -26284.1640625000 0.0001913635 - -0.2716524601 -26284.0449218750 0.0002149111 - -0.2729053497 -26281.8281250000 0.0002385555 - -0.2741577923 -26281.1660156250 0.0002511600 - -0.2754097283 -26280.5820312500 0.0002753576 - -0.2766612470 -26278.4355468750 0.0002878923 - -0.2779122591 -26277.3554687500 0.0003127242 - -0.2791628242 -26276.5312500000 0.0003257482 - -0.2804128826 -26274.0312500000 0.0003389516 - -0.2816624939 -26273.8027343750 0.0003522942 - -0.2829116285 -26270.8183593750 0.0003655707 - -0.2841602862 -26271.0449218750 0.0003684885 - -0.2854084373 -26268.5761718750 0.0003814679 - -0.2866561115 -26266.2207031250 0.0003834926 - -0.2879033089 11748.6025390625 -0.0002514645 - -0.2891500294 11747.2080078125 -0.0002609361 - -0.2903962433 11747.2158203125 -0.0002706945 - -0.2916419804 11746.0351562500 -0.0002813479 - -0.2928872108 11745.3662109375 -0.0002908297 - -0.2941319346 11742.6611328125 -0.0003004353 - -0.2953761816 11742.3486328125 -0.0003097942 - -0.2966198921 11741.7490234375 -0.0003194129 - -0.2978631258 11740.1103515625 -0.0003277874 - -0.2991058528 11739.0517578125 -0.0003376901 - -0.3003480732 11737.6679687500 -0.0003459696 - -0.3015897870 11736.9902343750 -0.0003552148 - -0.3028309941 11736.9560546875 -0.0003638295 - -0.3040716648 11734.2070312500 -0.0003724601 - -0.3053118587 11734.3574218750 -0.0003806883 - -0.3065515161 11733.3339843750 -0.0003895573 - -0.3077906370 11732.5556640625 -0.0003981879 - -0.3090292513 11731.7324218750 -0.0004060930 - -0.3102673292 11728.1142578125 -0.0004146555 - -0.3115049005 11728.8496093750 -0.0004224675 - -0.3127419353 11727.5361328125 -0.0004309136 - -0.3139784336 11726.2207031250 -0.0004380532 - -0.3152143955 11726.3496093750 -0.0004463950 - -0.3164498508 11725.4580078125 -0.0004533390 - -0.3176847398 11722.8613281250 -0.0004614722 - -0.3189190924 11722.5888671875 -0.0004682075 - -0.3201529086 11720.8769531250 -0.0004756339 - -0.3213861883 11720.8369140625 -0.0004827641 - -0.3226189315 11719.8310546875 -0.0004906785 - -0.3238511086 11719.3544921875 -0.0004968839 - -0.3250827491 11718.2490234375 -0.0005048076 - -0.3263138235 11716.6777343750 -0.0005105240 - -0.3275443614 11715.4042968750 -0.0005181134 - -0.3287743330 11716.6591796875 -0.0005247146 - -0.3300037682 11714.0390625000 -0.0005310234 - -0.3312326372 11713.6679687500 -0.0005375408 - -0.3324609399 11712.0625000000 -0.0005443664 - -0.3336886466 11711.1386718750 -0.0005499069 - -0.3349158168 11710.3593750000 -0.0005571861 - -0.3361424208 11709.3583984375 -0.0005622515 - -0.3373684585 11708.8232421875 -0.0005694274 - -0.3385939300 11706.2685546875 -0.0005753054 - -0.3398188055 11707.8906250000 -0.0005806601 - -0.3410431147 11705.1748046875 -0.0005877996 - -0.3422668576 11703.8691406250 -0.0005923845 - -0.3434900045 11702.8544921875 -0.0005985973 - -0.3447125554 11703.3125000000 -0.0006036921 - -0.3459345400 11700.6787109375 -0.0006105965 - -0.3471559584 11701.2451171875 -0.0006155460 - -0.3483767509 11698.6767578125 -0.0006205067 - -0.3495969772 11698.2451171875 -0.0006251675 - -0.3508166075 11697.2705078125 -0.0006314274 - -0.3520356417 11696.1093750000 -0.0006360919 - -0.3532540500 11696.0068359375 -0.0006420454 - -0.3544718921 11694.6679687500 -0.0006459435 - -0.3556891382 11694.1572265625 -0.0006519710 - -0.3569057584 11692.7519531250 -0.0006557791 - -0.3581217825 11692.4345703125 -0.0006617163 - -0.3593372107 11690.7783203125 -0.0006653182 - -0.3605520129 11690.8486328125 -0.0006709695 - -0.3617662191 11689.9746093750 -0.0006754887 - -0.3629797995 11687.7978515625 -0.0006804052 - -0.3641927540 11686.7607421875 -0.0006844313 - -0.3654051125 11688.5791015625 -0.0006894264 - -0.3666168451 11685.0263671875 -0.0006929403 - -0.3678279519 11684.9628906250 -0.0006984710 - -0.3690384626 11685.0253906250 -0.0007024226 - -0.3702483177 11683.9472656250 -0.0007066019 - -0.3714575469 11681.6894531250 -0.0007107640 - -0.3726661503 11681.4716796875 -0.0007154439 - -0.3738741279 11681.2753906250 -0.0007189875 - -0.3750814497 11679.3779296875 -0.0007231692 - -0.3762881756 11678.3164062500 -0.0007265359 - -0.3774942160 11677.3701171875 -0.0007310100 - -0.3786996603 11677.4814453125 -0.0007341579 - -0.3799044192 11675.5810546875 -0.0007389854 - -0.3811085820 11675.7597656250 -0.0007423395 - -0.3823120594 11674.1181640625 -0.0007469109 - -0.3835149109 11673.4345703125 -0.0007496676 - -0.3847171068 11672.5927734375 -0.0007548528 - -0.3859186471 11671.2236328125 -0.0007570214 - -0.3871195316 11670.5576171875 -0.0007615690 - -0.3883197606 11669.9648437500 -0.0007636105 - -0.3895193338 11668.3066406250 -0.0007687546 - -0.3907182515 11668.2617187500 -0.0007709195 - -0.3919164836 11666.8212890625 -0.0007746182 - -0.3931140900 11666.8271484375 -0.0007771947 - -0.3943110108 11665.4511718750 -0.0007818220 - -0.3955072463 11664.6201171875 -0.0007841643 - -0.3967028260 11664.5234375000 -0.0007860772 - -0.3978977203 11664.9873046875 -0.0007909262 - -0.3990919590 11662.2333984375 -0.0007930207 - -0.4002855122 11661.8085937500 -0.0007966510 - -0.4014784098 11661.1806640625 -0.0007988396 - -0.4026705921 11661.4179687500 -0.0008031614 - -0.4038621187 11660.4433593750 -0.0008053002 - -0.4050529301 11658.7675781250 -0.0008087158 - -0.4062430859 11658.7626953125 -0.0008103661 - -0.4074325264 11657.0175781250 -0.0008148579 - -0.4086213112 11656.4453125000 -0.0008164700 - -0.4098093808 11655.8447265625 -0.0008199038 - -0.4109967351 11655.9091796875 -0.0008214428 - -0.4121834338 11653.2119140625 -0.0008253064 - -0.4133693874 11654.0996093750 -0.0008280533 - -0.4145546854 11653.4853515625 -0.0008316427 - -0.4157392681 11653.4824218750 -0.0008330438 - -0.4169231355 11651.1474609375 -0.0008368385 - -0.4181062877 11649.9892578125 -0.0008381987 - -0.4192887545 11650.1708984375 -0.0008417033 - -0.4204704762 11647.9921875000 -0.0008426835 - -0.4216515124 11648.5957031250 -0.0008463841 - -0.4228318334 11647.3896484375 -0.0008475948 - -0.4240114391 11646.4355468750 -0.0008510612 - -0.4251903296 11646.4394531250 -0.0008529155 - -0.4263684750 11645.3837890625 -0.0008564722 - -0.4275459051 11646.1582031250 -0.0008583157 - -0.4287226200 11644.1601562500 -0.0008595493 - -0.4298986197 11643.2460937500 -0.0008622054 - -0.4310738742 11643.2187500000 -0.0008639717 - -0.4322483838 11642.0820312500 -0.0008670138 - -0.4334221780 11641.7451171875 -0.0008686944 - -0.4345952570 11642.0195312500 -0.0008717007 - -0.4357675612 11640.6494140625 -0.0008720797 - -0.4369391501 11640.2333984375 -0.0008758917 - -0.4381099939 11638.6513671875 -0.0008766861 - -0.4392800927 11636.4833984375 -0.0008799084 - -0.4404494464 11637.5341796875 -0.0008817250 - -0.4416180551 11636.7392578125 -0.0008846396 - -0.4427859187 11636.9345703125 -0.0008851406 - -0.4439530075 11634.7050781250 -0.0008883397 - -0.4451193810 11634.9453125000 -0.0008898056 - -0.4462849796 11633.7587890625 -0.0008924683 - -0.4474498332 11635.1289062500 -0.0008943630 - -0.4486139119 11632.6669921875 -0.0008945041 - -0.4497772157 11633.7041015625 -0.0008979081 - -0.4509398043 11631.4921875000 -0.0008982271 - -0.4521015882 11631.1914062500 -0.0009016772 - -0.4532626271 11629.6835937500 -0.0009017088 - -0.4544228911 11629.9365234375 -0.0009050844 - -0.4555823803 11629.2343750000 -0.0009063478 - -0.4567410946 11628.9951171875 -0.0009097392 - -0.4578990340 11627.6005859375 -0.0009097606 - -0.4590561986 11625.9824218750 -0.0009125327 - -0.4602125883 11626.3046875000 -0.0009133662 - -0.4613682032 11626.2304687500 -0.0009168363 - -0.4625230432 11625.7998046875 -0.0009168126 - -0.4636770785 11625.9804687500 -0.0009204312 - -0.4648303390 11624.7656250000 -0.0009209104 - -0.4659828246 11624.3359375000 -0.0009235879 - -0.4671344757 11623.0156250000 -0.0009249253 - -0.4682853818 11622.9707031250 -0.0009248056 - -0.4694354832 11621.9208984375 -0.0009275344 - -0.4705847800 11621.4306640625 -0.0009282506 - -0.4717332721 11620.8027343750 -0.0009311810 - -0.4728809595 11621.7470703125 -0.0009322334 - -0.4740278721 11618.7255859375 -0.0009350302 - -0.4751739502 11619.9013671875 -0.0009358483 - -0.4763192534 11618.1796875000 -0.0009389310 - -0.4774637222 11618.7822265625 -0.0009390390 - -0.4786074162 11617.1689453125 -0.0009416277 - -0.4797502756 11617.7041015625 -0.0009429259 - -0.4808923304 11616.8066406250 -0.0009454591 - -0.4820335507 11615.8652343750 -0.0009455970 - -0.4831739664 11614.7617187500 -0.0009489097 - -0.4843135476 11615.6757812500 -0.0009493395 - -0.4854523242 11615.1181640625 -0.0009494293 - -0.4865902960 11612.9218750000 -0.0009525255 - -0.4877274036 11614.8642578125 -0.0009531002 - -0.4888637066 11614.0341796875 -0.0009560632 - -0.4899991751 11611.9746093750 -0.0009562275 - -0.4911338091 11611.8076171875 -0.0009597805 - -0.4922676384 11611.5849609375 -0.0009606597 - -0.4934006035 11610.8398437500 -0.0009633154 - -0.4945327342 11610.7001953125 -0.0009630737 - -0.4956640303 11610.2783203125 -0.0009665065 - -0.4967944920 11609.9628906250 -0.0009671273 - -0.4979241192 11609.4248046875 -0.0009700404 - -0.4990528822 11607.8388671875 -0.0009700260 - -0.5001807809 11608.6503906250 -0.0009732665 - -0.5013079047 11609.8281250000 -0.0009736405 - -0.5024341345 11606.9189453125 -0.0009746435 - -0.5035594702 11607.4130859375 -0.0009772498 - -0.5046840310 11606.9375000000 -0.0009781593 - -0.5058076978 11606.2890625000 -0.0009806161 - -0.5069304705 11606.6933593750 -0.0009809146 - -0.5080524087 11604.5009765625 -0.0009849821 - -0.5091735125 11604.5058593750 -0.0009846357 - -0.5102937222 11602.9902343750 -0.0009880764 - -0.5114130974 11603.8750000000 -0.0009883502 - -0.5125315785 11605.0468750000 -0.0009916211 - -0.5136492252 11602.7978515625 -0.0009924476 - -0.5147659779 11603.1923828125 -0.0009957026 - -0.5158818364 11602.5175781250 -0.0009963862 - -0.5169968605 11603.1728515625 -0.0009969636 - -0.5181109905 11601.8964843750 -0.0009997468 - -0.5192242265 11601.1308593750 -0.0010003857 - -0.5203366280 11601.7148437500 -0.0010044053 - -0.5214480758 11600.3291015625 -0.0010043839 - -0.5225586891 11601.6230468750 -0.0010085613 - -0.5236684084 11600.7714843750 -0.0010083043 - -0.5247772336 11599.8076171875 -0.0010121982 - -0.5258851647 11599.4433593750 -0.0010118550 - -0.5269922018 11598.9482421875 -0.0010165405 - -0.5280984044 11599.2128906250 -0.0010166345 - -0.5292036533 11598.0683593750 -0.0010204092 - -0.5303080082 11598.3818359375 -0.0010206508 - -0.5314114690 11597.7539062500 -0.0010211109 - -0.5325140357 11597.4375000000 -0.0010256586 - -0.5336157084 11598.3681640625 -0.0010265014 - -0.5347164273 11596.2626953125 -0.0010294383 - -0.5358163118 11596.1318359375 -0.0010303291 - -0.5369152427 11596.2246093750 -0.0010342957 - -0.5380132794 11595.4785156250 -0.0010347017 - -0.5391103625 11594.2939453125 -0.0010387301 - -0.5402065516 11595.5488281250 -0.0010395376 - -0.5413018465 11595.1904296875 -0.0010431102 - -0.5423962474 11595.3339843750 -0.0010446450 - -0.5434896946 11594.8730468750 -0.0010481467 - -0.5445821881 11593.7255859375 -0.0010498101 - -0.5456737876 11593.2167968750 -0.0010533337 - -0.5467644930 11593.5507812500 -0.0010548928 - -0.5478542447 11594.1591796875 -0.0010565054 - -0.5489430428 11591.9003906250 -0.0010594204 - -0.5500309467 11591.9912109375 -0.0010612360 - -0.5511178970 11592.3447265625 -0.0010659536 - -0.5522039533 11592.1806640625 -0.0010668258 - -0.5532890558 11592.3066406250 -0.0010715858 - -0.5543732047 11591.4345703125 -0.0010725255 - -0.5554563999 11591.9785156250 -0.0010765218 - -0.5565387011 11591.0791015625 -0.0010788916 - -0.5576199889 11591.3046875000 -0.0010826793 - -0.5587003827 11589.9443359375 -0.0010844856 - -0.5597798228 11590.8701171875 -0.0010889946 - -0.5608583093 11589.9521484375 -0.0010905652 - -0.5619358420 11589.4980468750 -0.0010951315 - -0.5630124211 11590.5292968750 -0.0010979190 - -0.5640880466 11591.1513671875 -0.0010991567 - -0.5651627183 11590.7519531250 -0.0011046268 - -0.5662364364 11588.8486328125 -0.0011058389 - -0.5673092008 11588.8720703125 -0.0011115684 - -0.5683809519 11588.6113281250 -0.0011132257 - -0.5694518089 11590.1230468750 -0.0011191689 - -0.5705216527 11588.6689453125 -0.0011203880 - -0.5715905428 11587.4082031250 -0.0011251220 - -0.5726584792 11588.4980468750 -0.0011284393 - -0.5737254620 11588.4541015625 -0.0011338005 - -0.5747914314 11588.5107421875 -0.0011356920 - -0.5758564472 11587.5468750000 -0.0011413698 - -0.5769204497 11587.5654296875 -0.0011439607 - -0.5779834986 11586.5341796875 -0.0011496278 - -0.5790455937 11587.1064453125 -0.0011538565 - -0.5801066756 11588.6689453125 -0.0011565746 - -0.5811668038 11586.8222656250 -0.0011616480 - -0.5822259188 11586.4716796875 -0.0011647581 - -0.5832840204 11586.5068359375 -0.0011707321 - -0.5843411684 11587.2001953125 -0.0011749673 - -0.5853973627 11585.9208984375 -0.0011809622 - -0.5864524841 11586.9169921875 -0.0011845301 - -0.5875066519 11587.2304687500 -0.0011909031 - -0.5885598660 11586.0361328125 -0.0011937330 - -0.5896120071 11584.9208984375 -0.0012006755 - -0.5906631947 11585.7060546875 -0.0012050415 - -0.5917133689 11586.0996093750 -0.0012114770 - -0.5927625299 11586.1064453125 -0.0012159371 - -0.5938106775 11585.9785156250 -0.0012227357 - -0.5948578715 11585.8593750000 -0.0012276275 - -0.5959039927 11586.3486328125 -0.0012343065 - -0.5969491601 11586.1220703125 -0.0012397026 - -0.5979932547 11586.2099609375 -0.0012467811 - -0.5990363955 11587.0517578125 -0.0012521343 - -0.6000785232 11584.9599609375 -0.0012568571 - -0.6011195779 11585.0898437500 -0.0012640464 - -0.6021596193 11584.4501953125 -0.0012697899 - -0.6031987071 11585.0781250000 -0.0012780395 - -0.6042367220 11587.1308593750 -0.0012841043 - -0.6052736640 11584.9023437500 -0.0012919772 - -0.6063096523 11585.4052734375 -0.0012979773 - -0.6073446274 11585.6337890625 -0.0013067676 - -0.6083785295 11584.0371093750 -0.0013126195 - -0.6094113588 11584.5605468750 -0.0013217875 - -0.6104432344 11586.1445312500 -0.0013294253 - -0.6114740372 11584.5615234375 -0.0013375925 - -0.6125038266 11584.4853515625 -0.0013447553 - -0.6135325432 11585.1601562500 -0.0013543805 - -0.6145602465 11586.9121093750 -0.0013624737 - -0.6155868769 11584.8251953125 -0.0013714689 - -0.6166124940 11586.7460937500 -0.0013795523 - -0.6176370978 11584.7841796875 -0.0013896981 - -0.6186605692 11586.3046875000 -0.0013979394 - -0.6196830869 11586.1240234375 -0.0014084890 - -0.6207044721 11586.1660156250 -0.0014170562 - -0.6217248440 11584.4296875000 -0.0014280300 - -0.6227441430 11585.2988281250 -0.0014363709 - -0.6237624288 11585.7792968750 -0.0014461968 - -0.6247795820 11586.7285156250 -0.0014572670 - -0.6257957220 11585.5654296875 -0.0014666836 - -0.6268108487 11586.6279296875 -0.0014801095 - -0.6278248429 11587.4472656250 -0.0014899387 - -0.6288377643 11585.4267578125 -0.0015019183 - -0.6298496723 11586.6376953125 -0.0015127077 - -0.6308605075 11584.5849609375 -0.0015251418 - -0.6318702102 11585.6230468750 -0.0015371721 - -0.6328788996 11587.0703125000 -0.0015506600 - -0.6338865161 11586.2548828125 -0.0015623290 - -0.6348930597 11586.2089843750 -0.0015765098 - -0.6358984709 11586.7402343750 -0.0015888736 - -0.6369028687 11586.0937500000 -0.0016034180 - -0.6379061341 11586.2792968750 -0.0016156067 - -0.6389083862 11587.2285156250 -0.0016314676 - -0.6399095058 11587.4638671875 -0.0016447613 - -0.6409095526 11586.6298828125 -0.0016610846 - -0.6419084668 11587.0156250000 -0.0016749403 - -0.6429063678 11587.3837890625 -0.0016914736 - -0.6439031363 11588.2353515625 -0.0017060037 - -0.6448988318 11588.3994140625 -0.0017235018 - -0.6458933949 11589.1503906250 -0.0017384859 - -0.6468869448 11588.5224609375 -0.0017565559 - -0.6478793025 11587.0595703125 -0.0017728191 - -0.6488706470 11588.1279296875 -0.0017916420 - -0.6498607993 11589.0537109375 -0.0018083509 - -0.6508499384 11587.9580078125 -0.0018275618 - -0.6518379450 11588.1757812500 -0.0018448117 - -0.6528248191 11588.5263671875 -0.0018651872 - -0.6538106203 11589.2666015625 -0.0018847291 - -0.6547952890 11587.3027343750 -0.0019042897 - -0.6557788253 11589.7949218750 -0.0019246149 - -0.6567612886 11590.4326171875 -0.0019464446 - -0.6577426791 11589.3710937500 -0.0019671475 - -0.6587228775 11591.2792968750 -0.0019895621 - -0.6597020030 11590.6298828125 -0.0020107829 - -0.6606799960 11590.8662109375 -0.0020349217 - -0.6616568565 11589.2275390625 -0.0020566199 - -0.6626325846 11591.3320312500 -0.0020816899 - -0.6636072397 11590.8037109375 -0.0021048971 - -0.6645807028 11592.2714843750 -0.0021310481 - -0.6655530930 11592.2841796875 -0.0021535854 - -0.6665243506 11591.5341796875 -0.0021803824 - -0.6674944758 11591.6835937500 -0.0022075716 - -0.6684634686 11591.3115234375 -0.0022352780 - -0.6694313288 11591.9921875000 -0.0022602866 - -0.6703979969 11592.9462890625 -0.0022905709 - -0.6713635921 11594.2451171875 -0.0023185727 - -0.6723280549 11592.3945312500 -0.0023490682 - -0.6732913256 11594.7070312500 -0.0023771054 - -0.6742535233 11593.3681640625 -0.0024086551 - -0.6752145290 11593.6484375000 -0.0024384046 - -0.6761744022 11593.7343750000 -0.0024719471 - -0.6771330833 11593.9599609375 -0.0025029648 - -0.6780906916 11594.0087890625 -0.0025373248 - -0.6790471077 11593.8974609375 -0.0025709269 - -0.6800023913 11595.9160156250 -0.0026062382 - -0.6809565425 11595.7714843750 -0.0026400157 - -0.6819095016 11596.2402343750 -0.0026778395 - -0.6828613281 11596.3007812500 -0.0027145774 - -0.6838119626 11596.4404296875 -0.0027524154 - -0.6847614646 11597.3886718750 -0.0027907500 - -0.6857097745 11597.5869140625 -0.0028306313 - -0.6866569519 11597.1562500000 -0.0028703928 - -0.6876029372 11597.3916015625 -0.0029099663 - -0.6885477901 11599.1601562500 -0.0029523822 - -0.6894915104 11598.2685546875 -0.0029951248 - -0.6904339790 11599.3652343750 -0.0030381226 - -0.6913753152 11598.8212890625 -0.0030839061 - -0.6923154593 11599.8339843750 -0.0031284653 - -0.6932544708 11599.3212890625 -0.0031745774 - -0.6941922903 11599.4033203125 -0.0032211300 - -0.6951289177 11601.2792968750 -0.0032712768 - -0.6960644126 11601.1562500000 -0.0033200998 - -0.6969986558 11600.6796875000 -0.0033684589 - -0.6979317665 11601.9345703125 -0.0034215483 - -0.6988636851 11602.8447265625 -0.0034753899 - -0.6997944117 11600.8574218750 -0.0035266359 - -0.7007239461 11602.8437500000 -0.0035801947 - -0.7016522884 11603.2958984375 -0.0036371092 - -0.7025794387 11602.4902343750 -0.0036952058 - -0.7035054564 11603.4326171875 -0.0037495801 - -0.7044302225 11604.0722656250 -0.0038110316 - -0.7053537965 11603.4062500000 -0.0038710695 - -0.7062761784 11604.7031250000 -0.0039334171 - -0.7071973681 11604.0585937500 -0.0039958404 - -0.7081173658 11606.9472656250 -0.0040592020 - -0.7090361714 11604.7099609375 -0.0041236333 - -0.7099537849 11606.7753906250 -0.0041889390 - -0.7108701468 11606.2080078125 -0.0042596064 - -0.7117853165 11608.1533203125 -0.0043286392 - -0.7126992941 11606.2392578125 -0.0043971697 - -0.7136120796 11608.1308593750 -0.0044688038 - -0.7145236731 11607.6894531250 -0.0045435275 - -0.7154340148 11607.9697265625 -0.0046163090 - -0.7163431048 11610.1005859375 -0.0046948260 - -0.7172510624 11609.4892578125 -0.0047699953 - -0.7181577682 11610.4980468750 -0.0048484067 - -0.7190632224 11610.2128906250 -0.0049301628 - -0.7199674845 11611.2666015625 -0.0050130379 - -0.7208705544 11611.0156250000 -0.0050957012 - -0.7217723727 11612.5068359375 -0.0051838113 - -0.7226729393 11612.6884765625 -0.0052687842 - -0.7235723138 11612.4970703125 -0.0053545320 - -0.7244704962 11612.2675781250 -0.0054473327 - -0.7253674269 11614.9687500000 -0.0055398499 - -0.7262631059 11615.4912109375 -0.0056309057 - -0.7271575332 11615.5556640625 -0.0057283705 - -0.7280507684 11615.4179687500 -0.0058244858 - -0.7289427519 11615.7636718750 -0.0059221485 - -0.7298335433 11615.9345703125 -0.0060239853 - -0.7307230234 11616.3271484375 -0.0061239144 - -0.7316113114 11616.7685546875 -0.0062303697 - -0.7324983478 11618.7138671875 -0.0063368995 - -0.7333841324 11618.6074218750 -0.0064425766 - -0.7342687249 11618.9111328125 -0.0065524415 - -0.7351520061 11619.3789062500 -0.0066622603 - -0.7360340953 11619.9003906250 -0.0067773610 - -0.7369148731 11619.4736328125 -0.0068936571 - -0.7377944589 11620.8164062500 -0.0070105526 - -0.7386727929 11620.5712890625 -0.0071330946 - -0.7395498157 11621.4345703125 -0.0072537609 - -0.7404256463 11623.0673828125 -0.0073737130 - -0.7413001657 11621.6708984375 -0.0075036767 - -0.7421734929 11623.7851562500 -0.0076266564 - -0.7430455089 11623.2675781250 -0.0077589322 - -0.7439162731 11624.4648437500 -0.0078889914 - -0.7447858453 11624.5771484375 -0.0080261296 - -0.7456540465 11624.5771484375 -0.0081627257 - -0.7465210557 11625.3876953125 -0.0082990984 - -0.7473867536 11626.8183593750 -0.0084391870 - -0.7482512593 11627.6416015625 -0.0085809510 - -0.7491144538 11627.9277343750 -0.0087275263 - -0.7499763370 11628.1826171875 -0.0088757277 - -0.7508369684 11629.2783203125 -0.0090288725 - -0.7516963482 11629.6542968750 -0.0091820676 - -0.7525544763 11628.8398437500 -0.0093338592 - -0.7534112930 11630.4707031250 -0.0094913077 - -0.7542668581 11630.0986328125 -0.0096505424 - -0.7551211119 11629.7998046875 -0.0098129865 - -0.7559740543 11630.9062500000 -0.0099730371 - -0.7568258047 11633.3486328125 -0.0101412237 - -0.7576761842 11632.8808593750 -0.0103084855 - -0.7585253716 11631.8583984375 -0.0104792034 - -0.7593731880 11634.6513671875 -0.0106526399 - -0.7602197528 11634.4218750000 -0.0108330585 - -0.7610650063 11634.7148437500 -0.0110030835 - -0.7619090080 11636.7001953125 -0.0111868707 - -0.7627516985 11636.0761718750 -0.0113756675 - -0.7635931373 11637.3515625000 -0.0115500540 - -0.7644332051 11637.6660156250 -0.0117446082 - -0.7652720213 11637.3369140625 -0.0119335270 - -0.7661095262 11637.6787109375 -0.0121222632 - -0.7669457197 11638.9179687500 -0.0123219099 - -0.7677806616 11639.4072265625 -0.0125182010 - -0.7686142921 11640.4560546875 -0.0127206258 - -0.7694465518 11641.7578125000 -0.0129207540 - -0.7702775598 11641.5986328125 -0.0131225716 - -0.7711072564 11642.2304687500 -0.0133298496 - -0.7719356418 11643.3359375000 -0.0135362828 - -0.7727627754 11643.4052734375 -0.0137496330 - -0.7735885382 11643.6279296875 -0.0139604174 - -0.7744129896 11644.9687500000 -0.0141796265 - -0.7752361298 11644.5263671875 -0.0143980402 - -0.7760579586 11645.3085937500 -0.0146132130 - -0.7768784761 11646.7041015625 -0.0148398029 - -0.7776976824 11648.5625000000 -0.0150668249 - -0.7785155773 11648.2968750000 -0.0152946468 - -0.7793321013 11649.3144531250 -0.0155230183 - -0.7801473737 11649.0673828125 -0.0157584064 - -0.7809612751 11649.3623046875 -0.0159873385 - -0.7817738652 11650.4472656250 -0.0162246116 - -0.7825851440 11652.3134765625 -0.0164568201 - -0.7833950520 11651.9130859375 -0.0166976247 - -0.7842036486 11654.3183593750 -0.0169392284 - -0.7850109339 11653.3232421875 -0.0171857830 - -0.7858169079 11652.6738281250 -0.0174331255 - -0.7866215110 11654.4101562500 -0.0176791679 - -0.7874248028 11655.2734375000 -0.0179261323 - -0.7882267833 11657.0537109375 -0.0181784891 - -0.7890273929 11656.5908203125 -0.0184246954 - -0.7898266315 11656.0351562500 -0.0186788235 - -0.7906246185 11657.4658203125 -0.0189375561 - -0.7914211750 11657.7373046875 -0.0191922635 - -0.7922164202 11658.6250000000 -0.0194492694 - -0.7930103540 11658.7373046875 -0.0197082814 - -0.7938029170 11662.2705078125 -0.0199725516 - -0.7945941687 11660.1953125000 -0.0202355031 - -0.7953839898 11661.4443359375 -0.0204982609 - -0.7961725593 11661.8320312500 -0.0207679681 - -0.7969596982 11663.5488281250 -0.0210247636 - -0.7977455258 11664.2568359375 -0.0212956220 - -0.7985300422 11664.9101562500 -0.0215620659 - -0.7993131280 11664.1826171875 -0.0218321010 - -0.8000949025 11665.8164062500 -0.0221033935 - -0.8008753061 11666.2109375000 -0.0223741736 - -0.8016543388 11667.6630859375 -0.0226486195 - -0.8024320602 11668.8349609375 -0.0229175892 - -0.8032083511 11669.7548828125 -0.0231916886 - -0.8039833307 11670.2685546875 -0.0234551206 - -0.8047569394 11670.2343750000 -0.0237297397 - -0.8055291772 11670.0175781250 -0.0240106322 - -0.8063000441 11671.6416015625 -0.0242767744 - -0.8070695400 11672.6718750000 -0.0245518386 - -0.8078377247 11672.2382812500 -0.0248167031 - -0.8086044788 11673.4814453125 -0.0251049809 - -0.8093698621 11674.0859375000 -0.0253725015 - -0.8101338744 11675.1181640625 -0.0256436504 - -0.8108965755 11674.6933593750 -0.0259139873 - -0.8116578460 11677.0380859375 -0.0261872672 - -0.8124177456 11676.6542968750 -0.0264620185 - -0.8131762743 11678.5058593750 -0.0267286822 - -0.8139334321 11677.7490234375 -0.0270035490 - -0.8146891594 11678.9511718750 -0.0272752494 - -0.8154435754 11680.1181640625 -0.0275439322 - -0.8161965609 11680.6689453125 -0.0278041698 - -0.8169481754 11680.8984375000 -0.0280728303 - -0.8176984191 11680.9843750000 -0.0283420943 - -0.8184472322 11683.4316406250 -0.0286028013 - -0.8191947341 11684.2363281250 -0.0288704149 - -0.8199408054 11684.8593750000 -0.0291336626 - -0.8206854463 11685.0507812500 -0.0293883868 - -0.8214287758 11685.5664062500 -0.0296436623 - -0.8221706748 11686.9628906250 -0.0299019106 - -0.8229111433 11686.7597656250 -0.0301648602 - -0.8236502409 11688.4707031250 -0.0304117538 - -0.8243879676 11687.7236328125 -0.0306653380 - -0.8251242638 11691.5996093750 -0.0309172012 - -0.8258591890 11690.2587890625 -0.0311602838 - -0.8265926838 11690.7304687500 -0.0314053297 - -0.8273248076 11691.4755859375 -0.0316421203 - -0.8280555010 11693.3203125000 -0.0318970121 - -0.8287848234 11693.9111328125 -0.0321273059 - -0.8295127153 11692.7285156250 -0.0323619619 - -0.8302392364 11695.3164062500 -0.0325917564 - -0.8309643269 11696.0703125000 -0.0328279994 - -0.8316879869 11695.2636718750 -0.0330540128 - -0.8324102759 11697.1386718750 -0.0332751758 - -0.8331311345 11696.0439453125 -0.0334957242 - -0.8338505626 11697.7402343750 -0.0337108076 - -0.8345686197 11699.7988281250 -0.0339315347 - -0.8352851868 11700.9423828125 -0.0341464952 - -0.8360003829 11701.7490234375 -0.0343570039 - -0.8367142081 11701.8574218750 -0.0345652178 - -0.8374265432 11701.2519531250 -0.0347633734 - -0.8381375074 11702.0185546875 -0.0349696018 - -0.8388470411 11703.9970703125 -0.0351586752 - -0.8395551443 11704.6357421875 -0.0353532732 - -0.8402618170 11705.2675781250 -0.0355444849 - -0.8409670591 11705.1748046875 -0.0357307829 - -0.8416708708 11705.7548828125 -0.0359131470 - -0.8423732519 11707.8583984375 -0.0360957086 - -0.8430742621 11708.0625000000 -0.0362677127 - -0.8437737823 11709.4492187500 -0.0364394374 - -0.8444718719 11710.3496093750 -0.0366090126 - -0.8451685905 11710.6025390625 -0.0367737524 - -0.8458638191 11710.5039062500 -0.0369298309 - -0.8465576172 11711.4638671875 -0.0370864682 - -0.8472499847 11711.1816406250 -0.0372364894 - -0.8479409814 11713.0253906250 -0.0373866409 - -0.8486304879 11714.1865234375 -0.0375343785 - -0.8493185043 11714.3007812500 -0.0376754180 - -0.8500051498 11715.5312500000 -0.0378141701 - -0.8506903052 11715.0517578125 -0.0379461795 - -0.8513740897 11716.8798828125 -0.0380735621 - -0.8520563841 11718.2119140625 -0.0382003523 - -0.8527372479 11718.5625000000 -0.0383177437 - -0.8534166217 11718.3300781250 -0.0384371094 - -0.8540945649 11720.0244140625 -0.0385496356 - -0.8547710776 11719.8466796875 -0.0386586599 - -0.8554461598 11722.7226562500 -0.0387680754 - -0.8561197519 11723.2734375000 -0.0388698168 - -0.8567919135 11724.6181640625 -0.0389616750 - -0.8574626446 11724.1123046875 -0.0390587673 - -0.8581318855 11725.2089843750 -0.0391470492 - -0.8587996960 11726.1230468750 -0.0392302051 - -0.8594660759 11726.8906250000 -0.0393120162 - -0.8601309061 11727.0751953125 -0.0393864140 - -0.8607943654 11727.3525390625 -0.0394580029 - -0.8614563346 11729.0087890625 -0.0395282768 - -0.8621168137 11728.2568359375 -0.0395902060 - -0.8627758622 11730.3583984375 -0.0396502726 - -0.8634334803 11731.5019531250 -0.0397101641 - -0.8640896082 11732.1816406250 -0.0397641025 - -0.8647442460 11733.9501953125 -0.0398144387 - -0.8653974533 11733.5439453125 -0.0398561917 - -0.8660491705 11733.2851562500 -0.0398967937 - -0.8666993976 11734.6083984375 -0.0399345420 - -0.8673481941 11734.4794921875 -0.0399671383 - -0.8679955006 11736.4003906250 -0.0399988517 - -0.8686413765 11737.7158203125 -0.0400234051 - -0.8692857027 11737.7685546875 -0.0400450379 - -0.8699285984 11739.0898437500 -0.0400612690 - -0.8705700636 11739.0527343750 -0.0400784984 - -0.8712099791 11739.7021484375 -0.0400872976 - -0.8718484640 11742.2304687500 -0.0400947891 - -0.8724854589 11742.5761718750 -0.0400991738 - -0.8731209636 11741.9306640625 -0.0400973298 - -0.8737549782 11742.0839843750 -0.0400914401 - -0.8743875027 11744.3037109375 -0.0400881357 - -0.8750185966 11744.2744140625 -0.0400747769 - -0.8756482005 11744.4052734375 -0.0400585644 - -0.8762762547 11744.5039062500 -0.0400388911 - -0.8769028783 11747.4472656250 -0.0400227942 - -0.8775280118 11746.5869140625 -0.0399960652 - -0.8781516552 11747.2539062500 -0.0399671271 - -0.8787738085 11750.4160156250 -0.0399412327 - -0.8793944716 11749.8789062500 -0.0399043933 - -0.8800136447 11750.6025390625 -0.0398642607 - -0.8806313276 11751.0898437500 -0.0398283117 - -0.8812474608 11752.6787109375 -0.0397834703 - -0.8818621635 11752.3925781250 -0.0397334769 - -0.8824753761 11753.7792968750 -0.0396879092 - -0.8830870986 11754.1777343750 -0.0396340713 - -0.8836972713 11755.0253906250 -0.0395774134 - -0.8843059540 11756.1103515625 -0.0395211577 - -0.8849132061 11757.3916015625 -0.0394597091 - -0.8855189085 11758.0664062500 -0.0393938422 - -0.8861230612 11757.5517578125 -0.0393274650 - -0.8867257833 11758.0205078125 -0.0392569415 - -0.8873269558 11758.7753906250 -0.0391837098 - -0.8879266381 11761.2949218750 -0.0391120687 - -0.8885248303 11761.9394531250 -0.0390340351 - -0.8891215324 11762.4746093750 -0.0389514901 - -0.8897166848 11763.6484375000 -0.0388729125 - -0.8903103471 11763.6035156250 -0.0387861766 - -0.8909025192 11763.3496093750 -0.0386951417 - -0.8914931417 11764.9980468750 -0.0386057198 - -0.8920822740 11765.4765625000 -0.0385169759 - -0.8926699162 11765.2363281250 -0.0384182595 - -0.8932560086 11766.1699218750 -0.0383213423 - -0.8938406110 11769.1171875000 -0.0382287242 - -0.8944237232 11768.5468750000 -0.0381227359 - -0.8950052261 11768.9843750000 -0.0380179249 - -0.8955852985 11769.7548828125 -0.0379182026 - -0.8961638212 11770.7792968750 -0.0378078297 - -0.8967408538 11772.2744140625 -0.0376970209 - -0.8973163366 11772.4355468750 -0.0375839509 - -0.8978902698 11772.7333984375 -0.0374727175 - -0.8984627128 11773.1425781250 -0.0373568907 - -0.8990336061 11774.3896484375 -0.0372407287 - -0.8996030092 11775.6552734375 -0.0371239297 - -0.9001709223 11776.8955078125 -0.0370032825 - -0.9007372260 11776.6308593750 -0.0368766971 - -0.9013020396 11777.2597656250 -0.0367579795 - -0.9018653631 11777.7714843750 -0.0366318114 - -0.9024270773 11779.5576171875 -0.0365037285 - -0.9029873013 11778.0830078125 -0.0363671370 - -0.9035460353 11781.3173828125 -0.0362453796 - -0.9041031599 11779.2509765625 -0.0361101180 - -0.9046587944 11782.2001953125 -0.0359781571 - -0.9052129388 11783.1171875000 -0.0358483605 - -0.9057654738 11783.1572265625 -0.0357089676 - -0.9063165188 11784.0751953125 -0.0355706401 - -0.9068660140 11784.0166015625 -0.0354256295 - -0.9074139595 11786.0751953125 -0.0352953970 - -0.9079603553 11785.9365234375 -0.0351515673 - -0.9085052609 11785.6650390625 -0.0350023769 - -0.9090485573 11788.1191406250 -0.0348696187 - -0.9095903635 11787.4970703125 -0.0347229242 - -0.9101306200 11788.5976562500 -0.0345737934 - -0.9106693268 11788.1474609375 -0.0344209336 - -0.9112064838 11790.6123046875 -0.0342824534 - -0.9117421508 11790.8027343750 -0.0341324471 - -0.9122762084 11790.5644531250 -0.0339773335 - -0.9128087163 11792.9707031250 -0.0338342078 - -0.9133397341 11792.2910156250 -0.0336790755 - -0.9138691425 11793.5390625000 -0.0335271209 - -0.9143970013 11792.8417968750 -0.0333677717 - -0.9149233699 11794.8701171875 -0.0332209915 - -0.9154481292 11795.2363281250 -0.0330644995 - -0.9159713387 11795.5263671875 -0.0329047181 - -0.9164930582 11798.5078125000 -0.0327584594 - -0.9170131683 11797.2216796875 -0.0325970985 - -0.9175317287 11798.5732421875 -0.0324371271 - -0.9180487394 11798.2968750000 -0.0322755165 - -0.9185642004 11798.5869140625 -0.0321239755 - -0.9190781116 11800.0908203125 -0.0319601707 - -0.9195904136 11799.7929687500 -0.0317947753 - -0.9201012254 11799.1835937500 -0.0316338092 - -0.9206104279 11803.2275390625 -0.0314831659 - -0.9211180806 11802.6972656250 -0.0313175507 - -0.9216241837 11803.1376953125 -0.0311523937 - -0.9221287370 11804.3251953125 -0.0309962519 - -0.9226316810 11804.8867187500 -0.0308283642 - -0.9231331348 11805.5400390625 -0.0306660943 - -0.9236329794 11805.8720703125 -0.0304961912 - -0.9241312146 11806.4765625000 -0.0303448997 - -0.9246279597 11806.4716796875 -0.0301755853 - -0.9251230955 11807.1005859375 -0.0300085694 - -0.9256166816 11809.0292968750 -0.0298410133 - -0.9261086583 11809.3691406250 -0.0296849981 - -0.9265990853 11810.0488281250 -0.0295169428 - -0.9270879626 11811.0458984375 -0.0293455683 - -0.9275752306 11809.4960937500 -0.0291730650 - -0.9280609488 11811.2285156250 -0.0290214568 - -0.9285451174 11811.7714843750 -0.0288541541 - -0.9290276766 11811.5078125000 -0.0286835507 - -0.9295086861 11813.0117187500 -0.0285142548 - -0.9299880862 11813.6464843750 -0.0283541717 - -0.9304659367 11815.1796875000 -0.0281856954 - -0.9309422374 11814.4931640625 -0.0280145109 - -0.9314169288 11814.9160156250 -0.0278502256 - -0.9318900108 11816.8300781250 -0.0276913121 - -0.9323615432 11816.3115234375 -0.0275189616 - -0.9328314662 11817.6386718750 -0.0273488127 - -0.9332998395 11817.0605468750 -0.0271819420 - -0.9337666631 11819.5478515625 -0.0270215012 - -0.9342318177 11819.9375000000 -0.0268513151 - -0.9346954823 11819.7714843750 -0.0266890526 - -0.9351574779 11819.6591796875 -0.0265164338 - -0.9356179237 11821.0302734375 -0.0263600461 - -0.9360768199 11821.8007812500 -0.0261939205 - -0.9365340471 11821.2978515625 -0.0260246582 - -0.9369897842 11821.2119140625 -0.0258504935 - -0.9374438524 11822.1962890625 -0.0256959721 - -0.9378963709 11822.7119140625 -0.0255256519 - -0.9383472800 11824.9072265625 -0.0253639817 - -0.9387965798 11824.0097656250 -0.0251968056 - -0.9392443299 11824.4726562500 -0.0250421613 - -0.9396904707 11825.7832031250 -0.0248731934 - -0.9401350617 11825.8613281250 -0.0247066580 - -0.9405779839 11826.7666015625 -0.0245369971 - -0.9410193563 11827.8154296875 -0.0243852735 - -0.9414591193 11827.7988281250 -0.0242206007 - -0.9418972731 11827.8808593750 -0.0240520313 - -0.9423338771 11829.3759765625 -0.0238880254 - -0.9427688122 11829.5839843750 -0.0237225965 - -0.9432021976 11830.2324218750 -0.0235706195 - -0.9436339736 11831.2021484375 -0.0234059431 - -0.9440641403 11830.7587890625 -0.0232417881 - -0.9444927573 11830.9482421875 -0.0230778940 - -0.9449197054 11831.7050781250 -0.0229283348 - -0.9453451037 11832.2236328125 -0.0227640234 - -0.9457688332 11832.7773437500 -0.0226008669 - -0.9461910129 11832.0546875000 -0.0224350430 - -0.9466115832 11833.3457031250 -0.0222908221 - -0.9470305443 11833.4160156250 -0.0221273527 - -0.9474478960 11835.3593750000 -0.0219698325 - -0.9478636384 11834.3564453125 -0.0218063556 - -0.9482777715 11835.7998046875 -0.0216628164 - -0.9486902952 11835.6298828125 -0.0215009525 - -0.9491012692 11836.8359375000 -0.0213462897 - -0.9495105743 11835.9716796875 -0.0211869441 - -0.9499182701 11836.9580078125 -0.0210289136 - -0.9503243566 11836.8632812500 -0.0208875500 - -0.9507288337 11838.4941406250 -0.0207281858 - -0.9511317015 11838.4218750000 -0.0205712318 - -0.9515329599 11838.5302734375 -0.0204143226 - -0.9519326091 11838.6523437500 -0.0202751830 - -0.9523306489 11838.5263671875 -0.0201166086 - -0.9527270794 11841.9208984375 -0.0199638121 - -0.9531218410 11840.1699218750 -0.0198071934 - -0.9535150528 11839.9433593750 -0.0196499676 - -0.9539065957 11841.7314453125 -0.0195159279 - -0.9542965889 11840.0087890625 -0.0193612091 - -0.9546849132 11842.0830078125 -0.0192112103 - -0.9550716281 11843.7177734375 -0.0190613568 - -0.9554567337 11842.2509765625 -0.0189082138 - -0.9558401704 11844.5292968750 -0.0187742785 - -0.9562220573 11843.2939453125 -0.0186251327 - -0.9566022754 11844.6347656250 -0.0184755847 - -0.9569808841 11845.0400390625 -0.0183261037 - -0.9573578835 11845.0234375000 -0.0181776397 - -0.9577332139 11845.5507812500 -0.0180481412 - -0.9581069946 11845.9560546875 -0.0178994164 - -0.9584791064 11844.5751953125 -0.0177510418 - -0.9588496089 11845.9306640625 -0.0176086016 - -0.9592184424 11847.5029296875 -0.0174784549 - -0.9595857263 11848.7607421875 -0.0173344072 - -0.9599513412 11847.9365234375 -0.0171883274 - -0.9603152871 11847.0664062500 -0.0170487314 - -0.9606776834 11846.7089843750 -0.0169061236 - -0.9610384107 11849.5019531250 -0.0167810600 - -0.9613974690 11849.2431640625 -0.0166363772 - -0.9617549777 11849.2451171875 -0.0164962821 - -0.9621108174 11850.1552734375 -0.0163579229 - -0.9624649882 11849.4697265625 -0.0162183903 - -0.9628176093 11849.7080078125 -0.0160989426 - -0.9631685615 11849.6904296875 -0.0159589238 - -0.9635178447 11850.6953125000 -0.0158192404 - -0.9638655186 11849.9833984375 -0.0156772230 - -0.9642115831 11850.5468750000 -0.0155434217 - -0.9645559788 11851.5810546875 -0.0154272504 - -0.9648987651 11851.4482421875 -0.0152915362 - -0.9652398825 11852.0312500000 -0.0151548665 - -0.9655793905 11852.1455078125 -0.0150212552 - -0.9659172297 11851.3427734375 -0.0148882158 - -0.9662534595 11851.2470703125 -0.0147611760 - -0.9665880799 11854.4804687500 -0.0146444719 - -0.9669210315 11852.9257812500 -0.0145141259 - -0.9672523141 11854.4023437500 -0.0143859331 - -0.9675819874 11852.5761718750 -0.0142524801 - -0.9679100513 11853.5546875000 -0.0141201206 - -0.9682364464 11853.0878906250 -0.0140147042 - -0.9685611725 11853.5068359375 -0.0138853751 - -0.9688842893 11854.2617187500 -0.0137609821 - -0.9692057371 11854.0214843750 -0.0136249512 - -0.9695255756 11854.6494140625 -0.0135047864 - -0.9698437452 11856.2841796875 -0.0134018362 - -0.9701602459 11855.3017578125 -0.0132739432 - -0.9704751372 11855.1552734375 -0.0131502058 - -0.9707883596 11855.8583984375 -0.0130275227 - -0.9710999727 11854.8212890625 -0.0129051991 - -0.9714099169 11856.9443359375 -0.0128021501 - -0.9717182517 11856.2783203125 -0.0126835480 - -0.9720249176 11857.3496093750 -0.0125637129 - -0.9723299146 11857.3779296875 -0.0124368463 - -0.9726332426 11855.3955078125 -0.0123160426 - -0.9729349613 11856.1464843750 -0.0121990610 - -0.9732350111 11857.3671875000 -0.0121015105 - -0.9735334516 11857.1845703125 -0.0119866244 - -0.9738301635 11856.6582031250 -0.0118684750 - -0.9741253257 11857.5263671875 -0.0117523223 - -0.9744187593 11856.8115234375 -0.0116383191 - -0.9747105837 11856.6191406250 -0.0115256961 - -0.9750006795 11859.0058593750 -0.0114282388 - -0.9752892256 11858.4570312500 -0.0113135222 - -0.9755760431 11858.3144531250 -0.0112027656 - -0.9758612514 11858.5351562500 -0.0110892951 - -0.9761447906 11857.6015625000 -0.0109800585 - -0.9764266610 11856.1884765625 -0.0108705927 - -0.9767068624 11858.4111328125 -0.0107798129 - -0.9769854546 11859.6113281250 -0.0106694531 - -0.9772623777 11857.3017578125 -0.0105604567 - -0.9775376320 11857.6015625000 -0.0104505457 - -0.9778112173 11858.0927734375 -0.0103467871 - -0.9780831933 11859.3984375000 -0.0102599785 - -0.9783534408 11859.3750000000 -0.0101551097 - -0.9786220789 11858.3564453125 -0.0100536458 - -0.9788890481 11859.2617187500 -0.0099416710 - -0.9791543484 11857.5214843750 -0.0098350793 - -0.9794179797 11858.9707031250 -0.0097301397 - -0.9796800017 11858.1582031250 -0.0096535496 - -0.9799402952 11858.0537109375 -0.0095521715 - -0.9801989794 11860.0029296875 -0.0094497129 - -0.9804559946 11858.7646484375 -0.0093473289 - -0.9807112813 11859.9824218750 -0.0092446450 - -0.9809649587 11857.9472656250 -0.0091463644 - -0.9812170267 11858.7900390625 -0.0090727247 - -0.9814673662 11858.6962890625 -0.0089728702 - -0.9817160368 11859.2919921875 -0.0088775735 - -0.9819630384 11859.9472656250 -0.0087737609 - -0.9822084308 11858.9101562500 -0.0086780172 - -0.9824520946 11859.8007812500 -0.0085817631 - -0.9826941490 11858.6064453125 -0.0084872972 - -0.9829344749 11858.4804687500 -0.0084185153 - -0.9831731915 11858.4892578125 -0.0083240103 - -0.9834101796 11858.5771484375 -0.0082274359 - -0.9836455584 11858.5068359375 -0.0081342328 - -0.9838792682 11856.4042968750 -0.0080410428 - -0.9841112494 11858.1572265625 -0.0079500545 - -0.9843416214 11857.7861328125 -0.0078611467 - -0.9845703244 11859.2509765625 -0.0077881459 - -0.9847973585 11858.6035156250 -0.0077006798 - -0.9850226641 11858.3056640625 -0.0076116696 - -0.9852463603 11858.1738281250 -0.0075240470 - -0.9854683876 11856.3330078125 -0.0074375803 - -0.9856886864 11856.5048828125 -0.0073446995 - -0.9859073758 11857.9140625000 -0.0072848918 - -0.9861243367 11858.5966796875 -0.0071976772 - -0.9863396883 11856.0703125000 -0.0071148667 - -0.9865533113 11856.3359375000 -0.0070216814 - -0.9867653251 11856.0605468750 -0.0069399970 - -0.9869756103 11855.7187500000 -0.0068554450 - -0.9871842265 11856.3037109375 -0.0067991111 - -0.9873911738 11857.6162109375 -0.0067167562 - -0.9875964522 11855.3222656250 -0.0066288514 - -0.9878000617 11855.4462890625 -0.0065485109 - -0.9880020022 11855.2324218750 -0.0064699771 - -0.9882022738 11855.5097656250 -0.0063899877 - -0.9884008169 11854.4150390625 -0.0063065393 - -0.9885977507 11855.1767578125 -0.0062500844 - -0.9887929559 11855.0253906250 -0.0061733415 - -0.9889865518 11855.3554687500 -0.0060952529 - -0.9891784191 11854.8916015625 -0.0060141468 - -0.9893686175 11854.5771484375 -0.0059367735 - -0.9895571470 11854.3408203125 -0.0058602104 - -0.9897440076 11853.7812500000 -0.0057860529 - -0.9899291396 11854.1025390625 -0.0057065645 - -0.9901126623 11854.6494140625 -0.0056599109 - -0.9902944565 11853.5566406250 -0.0055819936 - -0.9904745817 11851.7636718750 -0.0055121323 - -0.9906530380 11852.3417968750 -0.0054341946 - -0.9908298254 11852.3867187500 -0.0053644069 - -0.9910048842 11851.5361328125 -0.0052897781 - -0.9911783338 11850.6113281250 -0.0052196421 - -0.9913500547 11851.0546875000 -0.0051437831 - -0.9915201068 11852.2705078125 -0.0051006461 - -0.9916884303 11850.2636718750 -0.0050305668 - -0.9918551445 11851.0429687500 -0.0049615903 - -0.9920201302 11849.9970703125 -0.0048893467 - -0.9921835065 11850.6074218750 -0.0048214765 - -0.9923450947 11847.5341796875 -0.0047529759 - -0.9925050735 11848.7421875000 -0.0046865735 - -0.9926633835 11848.9511718750 -0.0046414835 - -0.9928199649 11849.1152343750 -0.0045763552 - -0.9929748774 11846.9619140625 -0.0045093596 - -0.9931281209 11846.8339843750 -0.0044417689 - -0.9932796359 11847.2587890625 -0.0043767728 - -0.9934294820 11846.5605468750 -0.0043131849 - -0.9935776591 11845.2480468750 -0.0042490754 - -0.9937241673 11847.5097656250 -0.0042086225 - -0.9938689470 11846.5097656250 -0.0041475231 - -0.9940121174 11847.4980468750 -0.0040839203 - -0.9941534996 11845.3173828125 -0.0040183235 - -0.9942932725 11844.1621093750 -0.0039573126 - -0.9944313169 11844.2910156250 -0.0038950080 - -0.9945676923 11842.8134765625 -0.0038356259 - -0.9947023988 11842.5234375000 -0.0037724078 - -0.9948354363 11842.0917968750 -0.0037131263 - -0.9949667454 11842.6689453125 -0.0036814595 - -0.9950963855 11843.3291015625 -0.0036187107 - -0.9952242970 11842.5917968750 -0.0035618944 - -0.9953505993 11840.1015625000 -0.0035018669 - -0.9954751730 11842.2275390625 -0.0034427168 - -0.9955980182 11839.4140625000 -0.0033865767 - -0.9957192540 11839.7792968750 -0.0033285003 - -0.9958387613 11838.4453125000 -0.0032704389 - -0.9959565401 11838.2949218750 -0.0032154722 - -0.9960727096 11837.8388671875 -0.0031584874 - -0.9961871505 11837.5937500000 -0.0031288285 - -0.9962998629 11837.8574218750 -0.0030752048 - -0.9964109659 11837.1826171875 -0.0030201403 - -0.9965203404 11834.6650390625 -0.0029676789 - -0.9966279864 11834.7460937500 -0.0029110927 - -0.9967339635 11833.3261718750 -0.0028593261 - -0.9968382716 11834.5146484375 -0.0028066952 - -0.9969409108 11834.4853515625 -0.0027788701 - -0.9970418215 11833.9707031250 -0.0027294010 - -0.9971410632 11832.9697265625 -0.0026775748 - -0.9972386360 11832.6367187500 -0.0026239054 - -0.9973344803 11831.9375000000 -0.0025749784 - -0.9974285960 11830.6181640625 -0.0025237128 - -0.9975211024 11830.7421875000 -0.0024720291 - -0.9976118803 11829.1269531250 -0.0024239523 - -0.9977009892 11829.7656250000 -0.0024019266 - -0.9977883697 11829.9902343750 -0.0023510568 - -0.9978740811 11828.5214843750 -0.0023044683 - -0.9979580641 11826.1894531250 -0.0022557871 - -0.9980403781 11827.5957031250 -0.0022057379 - -0.9981210232 11826.1699218750 -0.0021599857 - -0.9981999397 11825.4648437500 -0.0021106610 - -0.9982771873 11826.1865234375 -0.0020641917 - -0.9983527660 11824.9052734375 -0.0020203572 - -0.9984266162 11823.1455078125 -0.0019709244 - -0.9984987974 11823.1269531250 -0.0019264817 - -0.9985692501 11822.4726562500 -0.0018812679 - -0.9986380339 11821.5205078125 -0.0018350910 - -0.9987051487 11820.7958984375 -0.0017905729 - -0.9987705350 11818.5244140625 -0.0017752303 - -0.9988342524 11819.8183593750 -0.0017299075 - -0.9988962412 11818.4130859375 -0.0016873349 - -0.9989565611 11816.3544921875 -0.0016437406 - -0.9990151525 11817.0361328125 -0.0016002133 - -0.9990720749 11817.1445312500 -0.0015589679 - -0.9991273284 11815.8027343750 -0.0015132539 - -0.9991808534 11814.4248046875 -0.0014737435 - -0.9992327094 11814.6689453125 -0.0014613401 - -0.9992828369 11813.9501953125 -0.0014174562 - -0.9993312955 11812.7949218750 -0.0013783881 - -0.9993780851 11812.5625000000 -0.0013383925 - -0.9994231462 11811.0361328125 -0.0012957538 - -0.9994665384 11809.0517578125 -0.0012575416 - -0.9995082021 11809.9863281250 -0.0012451326 - -0.9995481968 11809.5302734375 -0.0012057954 - -0.9995864630 11807.7255859375 -0.0011674762 - -0.9996230602 11807.4101562500 -0.0011286801 - -0.9996579885 11807.3369140625 -0.0010899138 - -0.9996911883 11806.1835937500 -0.0010524327 - -0.9997226596 11804.9189453125 -0.0010145241 - -0.9997525215 11803.5517578125 -0.0009760838 - -0.9997805953 11802.7548828125 -0.0009384630 - -0.9998070598 11803.0410156250 -0.0009018378 - -0.9998317957 11801.0468750000 -0.0008659251 - -0.9998548031 11801.1113281250 -0.0008291965 - -0.9998761415 11799.4042968750 -0.0007930780 - -0.9998958111 11798.2656250000 -0.0007564640 - -0.9999137521 11796.5605468750 -0.0007209834 - -0.9999300241 11796.1220703125 -0.0006856835 - -0.9999445677 11795.4042968750 -0.0006502010 - -0.9999574423 11793.7158203125 -0.0006168988 - -0.9999685884 11793.2304687500 -0.0005811276 - -0.9999780655 11792.4570312500 -0.0005474798 - -0.9999858141 11791.5253906250 -0.0005143173 - -0.9999918938 11789.3984375000 -0.0004797522 - -0.9999963045 11789.5400390625 -0.0004763026 - -0.9999989867 11789.0625000000 -0.0004425021 - -1.0000000000 11788.2060546875 -0.0004101899 - -0.9999992847 11786.3720703125 -0.0003781049 - -0.9999969006 11787.2021484375 -0.0003747148 - -0.9999927878 11786.4267578125 -0.0003427546 - -0.9999870062 11785.8173828125 -0.0003111083 - -0.9999795556 11784.9511718750 -0.0003095726 - -0.9999703765 11782.8828125000 -0.0002768785 - -0.9999594688 11782.6552734375 -0.0002463972 - -0.9999469519 11780.9257812500 -0.0002456037 - -0.9999326468 11782.1884765625 -0.0002149744 - -0.9999167323 11781.5849609375 -0.0001854990 - -0.9998990297 11778.4707031250 -0.0001549236 - -0.9998797178 11777.8544921875 -0.0001246622 - -0.9998586774 11777.1162109375 -0.0000959253 - -0.9998359084 11776.0166015625 -0.0000657737 - -0.9998114705 11774.7714843750 -0.0000365730 - -0.9997853637 11773.3310546875 0.0000220258 - -0.9997575283 11772.6708984375 0.0000506854 - -0.9997280240 11769.5019531250 0.0001100944 - -0.9996967912 11766.9033203125 0.0001379782 - -0.9996638894 11766.3076171875 0.0001960769 - -0.9996292591 11763.7236328125 0.0002546804 - -0.9995929599 11762.1181640625 0.0003119577 - -0.9995549917 11759.8583984375 0.0004001018 - -0.9995152950 11756.7871093750 0.0004574033 - -0.9994739294 11753.7919921875 0.0005455380 - -0.9994308352 11751.3427734375 0.0006032456 - -0.9993860722 11747.8525390625 0.0006904257 - -0.9993395805 11746.6474609375 0.0007479060 - -0.9992914200 11743.2402343750 0.0008347267 - -0.9992415905 11739.3408203125 0.0009224340 - -0.9991900325 11737.3125000000 0.0009789104 - -0.9991368055 11734.3818359375 0.0010654014 - -0.9990818501 11733.0537109375 0.0011217967 - -0.9990252256 11727.7578125000 0.0012081303 - -0.9989669323 11725.6699218750 0.0012643291 - -0.9989069104 11724.4267578125 0.0013202336 - -0.9988451600 11721.7861328125 0.0013756128 - -0.9987818003 11718.5449218750 0.0014322717 - -0.9987166524 11716.7871093750 0.0014566211 - -0.9986498952 11716.7031250000 0.0015110606 - -0.9985814095 11714.5693359375 0.0015359251 - -0.9985111952 31941.0937500000 -0.0001198973 - -0.9984393716 31944.1347656250 -0.0001254419 - -0.9983657598 31942.2539062500 -0.0001300490 - -0.9982905388 31942.4628906250 -0.0001360346 - -0.9982135892 31944.1738281250 -0.0001413871 - -0.9981349707 31944.2675781250 -0.0001465115 - -0.9980546236 31944.2675781250 -0.0001516945 - -0.9979726076 31943.2597656250 -0.0001565360 - -0.9978888631 31946.2734375000 -0.0001617277 - -0.9978034496 31946.2109375000 -0.0001673263 - -0.9977163672 31946.2519531250 -0.0001715068 - -0.9976275563 31945.0820312500 -0.0001761063 - -0.9975370765 31948.1464843750 -0.0001817273 - -0.9974449277 31946.1679687500 -0.0001856131 - -0.9973510504 31948.0839843750 -0.0001903162 - -0.9972555041 31947.5234375000 -0.0001946695 - -0.9971582294 31948.6660156250 -0.0001997005 - -0.9970592856 31948.9101562500 -0.0002036884 - -0.9969586730 31948.1464843750 -0.0002081129 - -0.9968563318 31948.6816406250 -0.0002122712 - -0.9967523217 31947.3828125000 -0.0002163437 - -0.9966466427 31948.4648437500 -0.0002197870 - -0.9965392351 31948.9277343750 -0.0002247144 - -0.9964301586 31950.3593750000 -0.0002289482 - -0.9963194132 31950.0292968750 -0.0002328197 - -0.9962069392 31950.7734375000 -0.0002360097 - -0.9960927963 31950.5058593750 -0.0002400689 - -0.9959769845 31951.1191406250 -0.0002437634 - -0.9958594441 31951.2890625000 -0.0002474510 - -0.9957402349 31951.8515625000 -0.0002510143 - -0.9956193566 31952.3066406250 -0.0002549638 - -0.9954967499 31954.0019531250 -0.0002588092 - -0.9953724742 31952.8105468750 -0.0002622872 - -0.9952465296 31953.0878906250 -0.0002656367 - -0.9951188564 31953.2714843750 -0.0002684544 - -0.9949895144 31953.4550781250 -0.0002720291 - -0.9948585033 31954.2695312500 -0.0002753881 - -0.9947257638 31955.8847656250 -0.0002785614 - -0.9945913553 31954.4863281250 -0.0002817807 - -0.9944552779 31955.9472656250 -0.0002846047 - -0.9943175316 31955.4355468750 -0.0002877563 - -0.9941780567 31954.4277343750 -0.0002902553 - -0.9940369129 31956.6289062500 -0.0002932085 - -0.9938941002 31955.2265625000 -0.0002966027 - -0.9937495589 31955.0664062500 -0.0002988721 - -0.9936034083 31956.7304687500 -0.0003018524 - -0.9934555292 31957.5996093750 -0.0003046449 - -0.9933059216 31956.4140625000 -0.0003078890 - -0.9931547046 31958.3164062500 -0.0003105893 - -0.9930017591 31956.0234375000 -0.0003122145 - -0.9928471446 31957.0117187500 -0.0003148082 - -0.9926908612 31957.4453125000 -0.0003180192 - -0.9925328493 31958.5996093750 -0.0003205487 - -0.9923731685 31958.8535156250 -0.0003232893 - -0.9922118187 31959.7929687500 -0.0003251035 - -0.9920488000 31960.4257812500 -0.0003281711 - -0.9918841124 31960.6132812500 -0.0003299378 - -0.9917176962 31959.5000000000 -0.0003325974 - -0.9915496111 31959.0820312500 -0.0003342319 - -0.9913798571 31960.7851562500 -0.0003367786 - -0.9912084341 31962.2050781250 -0.0003394508 - -0.9910353422 31960.8125000000 -0.0003413060 - -0.9908605218 31959.9804687500 -0.0003424960 - -0.9906840324 31961.5136718750 -0.0003449980 - -0.9905058742 31961.2636718750 -0.0003468897 - -0.9903260469 31961.5468750000 -0.0003492807 - -0.9901445508 31962.2636718750 -0.0003513193 - -0.9899613261 31962.2578125000 -0.0003530970 - -0.9897764325 31963.5175781250 -0.0003555543 - -0.9895899296 31963.3144531250 -0.0003571874 - -0.9894016981 31963.7929687500 -0.0003587545 - -0.9892117977 31962.5976562500 -0.0003597974 - -0.9890201688 31963.9960937500 -0.0003622172 - -0.9888269305 31963.3515625000 -0.0003637397 - -0.9886319637 31965.9277343750 -0.0003656484 - -0.9884353876 31963.1816406250 -0.0003667029 - -0.9882370830 31964.4062500000 -0.0003690282 - -0.9880371094 31963.8593750000 -0.0003705153 - -0.9878354669 31965.2812500000 -0.0003722925 - -0.9876321554 31963.8671875000 -0.0003737463 - -0.9874271750 31965.8808593750 -0.0003748962 - -0.9872205257 31965.8769531250 -0.0003770164 - -0.9870121479 31967.0468750000 -0.0003780653 - -0.9868021607 31966.0878906250 -0.0003795058 - -0.9865905046 31966.3789062500 -0.0003805435 - -0.9863771200 31967.1347656250 -0.0003819484 - -0.9861621261 31968.0996093750 -0.0003835333 - -0.9859454036 31966.6054687500 -0.0003850020 - -0.9857270122 31967.1425781250 -0.0003857871 - -0.9855070114 31968.1972656250 -0.0003866900 - -0.9852852821 31966.8964843750 -0.0003881822 - -0.9850618839 31968.4765625000 -0.0003895732 - -0.9848368168 31968.7089843750 -0.0003908451 - -0.9846100807 31968.2031250000 -0.0003912179 - -0.9843817353 31968.8750000000 -0.0003931073 - -0.9841516614 31970.5136718750 -0.0003944263 - -0.9839199185 31968.3671875000 -0.0003953283 - -0.9836865067 31970.5800781250 -0.0003960636 - -0.9834514260 31969.5078125000 -0.0003973392 - -0.9832147360 31969.8730468750 -0.0003980638 - -0.9829763174 31970.4238281250 -0.0003991968 - -0.9827362299 31970.4472656250 -0.0003995621 - -0.9824945331 31970.0566406250 -0.0004012543 - -0.9822511077 31969.8808593750 -0.0004020189 - -0.9820060730 31969.8750000000 -0.0004031614 - -0.9817593098 31970.3652343750 -0.0004034094 - -0.9815109372 31971.1640625000 -0.0004050445 - -0.9812608361 31971.0625000000 -0.0004052781 - -0.9810091257 31970.8613281250 -0.0004063442 - -0.9807557464 31970.7500000000 -0.0004064981 - -0.9805006981 31972.1015625000 -0.0004075649 - -0.9802439809 31971.2207031250 -0.0004077158 - -0.9799855947 31970.9160156250 -0.0004087442 - -0.9797255993 31972.2265625000 -0.0004094299 - -0.9794638753 31973.4726562500 -0.0004111154 - -0.9792005420 31972.0820312500 -0.0004110504 - -0.9789355397 31974.9121093750 -0.0004121838 - -0.9786688685 31973.6464843750 -0.0004122183 - -0.9784005284 31973.3164062500 -0.0004120895 - -0.9781305194 31972.4843750000 -0.0004132472 - -0.9778588414 31973.3593750000 -0.0004138269 - -0.9775855541 31974.3007812500 -0.0004148972 - -0.9773105979 31973.9648437500 -0.0004142877 - -0.9770339727 31974.6953125000 -0.0004153852 - -0.9767556787 31974.7890625000 -0.0004158830 - -0.9764757752 31973.9785156250 -0.0004163135 - -0.9761941433 31975.7734375000 -0.0004168293 - -0.9759109020 31975.0761718750 -0.0004178223 - -0.9756259918 31974.1816406250 -0.0004171857 - -0.9753394723 31973.2910156250 -0.0004176279 - -0.9750512242 31975.3027343750 -0.0004186516 - -0.9747613668 31973.2871093750 -0.0004185073 - -0.9744698405 31974.4394531250 -0.0004188661 - -0.9741767049 31976.2773437500 -0.0004194358 - -0.9738819003 31976.2675781250 -0.0004198425 - -0.9735854268 31975.2636718750 -0.0004190879 - -0.9732872844 31974.6796875000 -0.0004202519 - -0.9729875326 31976.4687500000 -0.0004200072 - -0.9726861119 31976.0214843750 -0.0004203639 - -0.9723830223 31977.2773437500 -0.0004208097 - -0.9720783234 31975.9882812500 -0.0004211583 - -0.9717719555 31976.4414062500 -0.0004205271 - -0.9714639187 31975.6132812500 -0.0004214521 - -0.9711542726 31976.0625000000 -0.0004213522 - -0.9708429575 31975.9902343750 -0.0004215641 - -0.9705299735 31977.1679687500 -0.0004208651 - -0.9702153802 31977.7285156250 -0.0004219301 - -0.9698991776 31976.0781250000 -0.0004210116 - -0.9695812464 31976.7949218750 -0.0004219573 - -0.9692617655 31978.6132812500 -0.0004223813 - -0.9689405560 31978.5781250000 -0.0004216987 - -0.9686177373 31977.1171875000 -0.0004212975 - -0.9682933092 31978.1054687500 -0.0004211662 - -0.9679671526 31977.5371093750 -0.0004214256 - -0.9676394463 31978.5800781250 -0.0004212686 - -0.9673100710 31977.1660156250 -0.0004216221 - -0.9669790268 31978.4316406250 -0.0004212779 - -0.9666463733 31976.9648437500 -0.0004216768 - -0.9663120508 31978.5898437500 -0.0004209040 - -0.9659761190 31977.3046875000 -0.0004206889 - -0.9656385183 31979.2539062500 -0.0004208582 - -0.9652993083 31977.5175781250 -0.0004206176 - -0.9649584889 31976.7421875000 -0.0004197932 - -0.9646160007 31978.8925781250 -0.0004207254 - -0.9642718434 31978.7695312500 -0.0004198782 - -0.9639261365 31978.0937500000 -0.0004190826 - -0.9635787010 31977.4648437500 -0.0004193501 - -0.9632297158 31979.4394531250 -0.0004191175 - -0.9628790021 31978.3632812500 -0.0004187867 - -0.9625267386 31980.2207031250 -0.0004186842 - -0.9621728063 31978.9863281250 -0.0004187620 - -0.9618172646 31978.9960937500 -0.0004184907 - -0.9614600539 31978.1738281250 -0.0004177196 - -0.9611012340 31979.7597656250 -0.0004168686 - -0.9607408047 31979.9648437500 -0.0004170809 - -0.9603787661 31980.2812500000 -0.0004167198 - -0.9600150585 31979.6777343750 -0.0004163561 - -0.9596496820 31979.1328125000 -0.0004156779 - -0.9592827559 31979.5117187500 -0.0004152327 - -0.9589141607 31979.1445312500 -0.0004144961 - -0.9585439563 31979.3808593750 -0.0004140297 - -0.9581721425 31980.0605468750 -0.0004136751 - -0.9577986598 31980.3457031250 -0.0004134262 - -0.9574235678 31979.4960937500 -0.0004123494 - -0.9570468664 31981.0800781250 -0.0004116581 - -0.9566685557 31980.2910156250 -0.0004123778 - -0.9562885761 31979.6933593750 -0.0004103351 - -0.9559070468 31979.8769531250 -0.0004106350 - -0.9555238485 31980.4277343750 -0.0004095584 - -0.9551390409 31980.2792968750 -0.0004093281 - -0.9547525644 31979.3144531250 -0.0004081239 - -0.9543645382 31979.2421875000 -0.0004079766 - -0.9539748430 31981.8671875000 -0.0004074455 - -0.9535835981 31981.6308593750 -0.0004061090 - -0.9531906843 31980.7324218750 -0.0004055798 - -0.9527961612 31979.1171875000 -0.0004040047 - -0.9524000287 31978.8984375000 -0.0004039791 - -0.9520022869 31980.6582031250 -0.0004034822 - -0.9516029358 31980.2480468750 -0.0004027183 - -0.9512019157 31981.2050781250 -0.0004014939 - -0.9507993460 31980.1953125000 -0.0004006792 - -0.9503951669 31980.7558593750 -0.0003994971 - -0.9499893188 31980.5019531250 -0.0003992242 - -0.9495819211 31981.0585937500 -0.0003980880 - -0.9491728544 31979.2871093750 -0.0003972696 - -0.9487622380 31979.9453125000 -0.0003960365 - -0.9483500123 31981.6328125000 -0.0003943502 - -0.9479361176 31980.3066406250 -0.0003944149 - -0.9475206733 31980.0351562500 -0.0003927907 - -0.9471036196 31980.1250000000 -0.0003925606 - -0.9466848969 31980.5117187500 -0.0003909017 - -0.9462646246 31981.7675781250 -0.0003909338 - -0.9458427429 31980.6562500000 -0.0003889399 - -0.9454192519 31980.3144531250 -0.0003881997 - -0.9449941516 31980.6386718750 -0.0003869759 - -0.9445674419 31979.4316406250 -0.0003857438 - -0.9441391826 31981.2558593750 -0.0003851857 - -0.9437092543 31979.9160156250 -0.0003836923 - -0.9432777762 31979.8769531250 -0.0003823200 - -0.9428446889 31978.8789062500 -0.0003815496 - -0.9424099922 31980.6796875000 -0.0003802660 - -0.9419736862 31979.6367187500 -0.0003784297 - -0.9415357709 31980.4023437500 -0.0003778974 - -0.9410963058 31980.8085937500 -0.0003759337 - -0.9406552315 31980.1484375000 -0.0003750294 - -0.9402125478 31980.5429687500 -0.0003732431 - -0.9397682548 31980.5703125000 -0.0003731295 - -0.9393224120 31980.1953125000 -0.0003706960 - -0.9388749599 31979.3183593750 -0.0003693865 - -0.9384258986 31979.0683593750 -0.0003678722 - -0.9379752874 31980.8222656250 -0.0003669776 - -0.9375230670 31979.2792968750 -0.0003653637 - -0.9370692372 31978.5820312500 -0.0003642598 - -0.9366137981 31979.4980468750 -0.0003624279 - -0.9361568093 31977.3281250000 -0.0003607373 - -0.9356982112 31978.6972656250 -0.0003594665 - -0.9352380633 31980.7597656250 -0.0003581967 - -0.9347763062 31980.4003906250 -0.0003573589 - -0.9343129396 31980.2968750000 -0.0003549231 - -0.9338480234 31978.7089843750 -0.0003537741 - -0.9333815575 31979.8437500000 -0.0003515687 - -0.9329134226 31980.0664062500 -0.0003507268 - -0.9324437976 31978.1132812500 -0.0003483987 - -0.9319725037 31978.1269531250 -0.0003470345 - -0.9314996600 31978.6113281250 -0.0003452718 - -0.9310252666 31978.2070312500 -0.0003438552 - -0.9305492640 31978.8105468750 -0.0003418983 - -0.9300717115 31978.4335937500 -0.0003409355 - -0.9295925498 31976.9570312500 -0.0003386817 - -0.9291118383 31977.1132812500 -0.0003372240 - -0.9286295772 31978.1621093750 -0.0003357951 - -0.9281457067 31979.4277343750 -0.0003337818 - -0.9276602268 31979.0839843750 -0.0003323173 - -0.9271731973 31978.9082031250 -0.0003300398 - -0.9266846180 31978.1738281250 -0.0003289313 - -0.9261944890 31978.3398437500 -0.0003270882 - -0.9257027507 31978.6562500000 -0.0003259082 - -0.9252094626 31976.6347656250 -0.0003228546 - -0.9247145653 31978.0292968750 -0.0003217123 - -0.9242181182 31977.5351562500 -0.0003197060 - -0.9237201214 31977.8164062500 -0.0003181794 - -0.9232205749 31977.7402343750 -0.0003166602 - -0.9227194190 31977.5410156250 -0.0003151444 - -0.9222167134 31976.3535156250 -0.0003124883 - -0.9217124581 31977.2636718750 -0.0003108929 - -0.9212066531 31977.2539062500 -0.0003093164 - -0.9206992388 31977.6035156250 -0.0003078438 - -0.9201903343 31978.0644531250 -0.0003063635 - -0.9196798205 31976.7402343750 -0.0003039511 - -0.9191677570 31977.6640625000 -0.0003024684 - -0.9186540842 31977.5078125000 -0.0003006260 - -0.9181389213 31975.4492187500 -0.0002982665 - -0.9176222086 31977.4257812500 -0.0002967699 - -0.9171038866 31975.0761718750 -0.0002952514 - -0.9165840149 31975.4472656250 -0.0002930055 - -0.9160626531 31975.6445312500 -0.0002914967 - -0.9155396819 31974.4296875000 -0.0002898586 - -0.9150151610 31975.5996093750 -0.0002882294 - -0.9144890904 31975.4023437500 -0.0002861077 - -0.9139614701 31972.8925781250 -0.0002842387 - -0.9134323001 31975.7695312500 -0.0002832373 - -0.9129016399 31974.1425781250 -0.0002815821 - -0.9123693705 31974.6289062500 -0.0002798373 - -0.9118355513 31974.2500000000 -0.0002781909 - -0.9113001823 31974.8789062500 -0.0002764617 - -0.9107633233 31974.3242187500 -0.0002752442 - -0.9102248549 31974.6777343750 -0.0002733115 - -0.9096848965 31974.0371093750 -0.0002720978 - -0.9091433883 31973.7050781250 -0.0002702610 - -0.9086002707 31974.3222656250 -0.0002694624 - -0.9080556631 31974.4101562500 -0.0002681052 - -0.9075095654 31972.8769531250 -0.0002666591 - -0.9069618583 31971.9648437500 -0.0002649839 - -0.9064126611 31973.2070312500 -0.0002636411 - -0.9058618546 31973.1386718750 -0.0002629028 - -0.9053095579 31973.4414062500 -0.0002613121 - -0.9047557712 31972.6914062500 -0.0002608877 - -0.9042003751 31973.7265625000 -0.0002594388 - -0.9036434889 31972.0937500000 -0.0002583505 - -0.9030850530 31972.6953125000 -0.0002576215 - -0.9025251269 31971.3886718750 -0.0002565722 - -0.9019635916 31972.0742187500 -0.0002558192 - -0.9014005661 31972.9882812500 -0.0002558527 - -0.9008360505 31972.5761718750 -0.0002548560 - -0.9002699852 31971.0644531250 -0.0002541656 - -0.8997023702 31970.9804687500 -0.0002530115 - -0.8991332650 31970.8359375000 -0.0002537651 - -0.8985626101 31971.6738281250 -0.0002532501 - -0.8979904056 31970.3007812500 -0.0002528862 - -0.8974167109 31971.2382812500 -0.0002525288 - -0.8968414664 31969.0175781250 -0.0002523276 - -0.8962647319 31969.5390625000 -0.0002532094 - -0.8956865072 31970.3593750000 -0.0002536171 - -0.8951067328 31969.2695312500 -0.0002537200 - -0.8945254087 31969.4160156250 -0.0002544385 - -0.8939425945 31969.6640625000 -0.0002549288 - -0.8933582902 31969.1132812500 -0.0002550837 - -0.8927724361 31968.7519531250 -0.0002561704 - -0.8921850920 31968.3007812500 -0.0002580545 - -0.8915961981 31969.6093750000 -0.0002594549 - -0.8910058141 31968.5136718750 -0.0002606419 - -0.8904139400 31967.5917968750 -0.0002616332 - -0.8898205757 31968.1640625000 -0.0002635635 - -0.8892256618 31967.1054687500 -0.0002654825 - -0.8886291981 31966.1582031250 -0.0002675211 - -0.8880313039 31966.8027343750 -0.0002696917 - -0.8874318600 31968.4375000000 -0.0002723983 - -0.8868309259 31966.5000000000 -0.0002752207 - -0.8862285018 31966.8261718750 -0.0002779613 - -0.8856245875 31967.1699218750 -0.0002809062 - -0.8850191236 31966.0175781250 -0.0002844292 - -0.8844121695 31965.1679687500 -0.0002883318 - -0.8838037252 31964.4238281250 -0.0002910532 - -0.8831937909 31964.9082031250 -0.0002950855 - -0.8825823665 31965.1250000000 -0.0002998165 - -0.8819694519 31964.9960937500 -0.0003042619 - -0.8813549876 31965.5820312500 -0.0003092962 - -0.8807390928 31964.5507812500 -0.0003145426 - -0.8801216483 31963.8613281250 -0.0003203516 - -0.8795027733 31964.7343750000 -0.0003249220 - -0.8788823485 31962.7929687500 -0.0003313273 - -0.8782604933 31963.7109375000 -0.0003380141 - -0.8776370883 31962.1445312500 -0.0003447094 - -0.8770122528 31964.6855468750 -0.0003520329 - -0.8763858676 31963.2890625000 -0.0003589726 - -0.8757580519 31962.3535156250 -0.0003669026 - -0.8751286864 31961.8125000000 -0.0003749266 - -0.8744978905 31961.5449218750 -0.0003828483 - -0.8738656044 31961.1250000000 -0.0003920511 - -0.8732318282 31961.1503906250 -0.0004017561 - -0.8725966215 31959.6523437500 -0.0004107422 - -0.8719598651 31960.1562500000 -0.0004213611 - -0.8713216782 31961.3007812500 -0.0004322478 - -0.8706819415 31959.4257812500 -0.0004428581 - -0.8700408340 31958.9257812500 -0.0004543156 - -0.8693981767 31960.8945312500 -0.0004673410 - -0.8687540293 31960.0253906250 -0.0004793551 - -0.8681084514 31960.5019531250 -0.0004927509 - -0.8674614429 31958.6777343750 -0.0005054815 - -0.8668128848 31960.8710937500 -0.0005204081 - -0.8661628962 31957.7207031250 -0.0005342056 - -0.8655114174 31957.6796875000 -0.0005497887 - -0.8648585081 31958.1289062500 -0.0005655450 - -0.8642041087 31957.7382812500 -0.0005822572 - -0.8635482192 31958.2089843750 -0.0005990373 - -0.8628908992 31957.0136718750 -0.0006171066 - -0.8622320890 31957.5292968750 -0.0006349694 - -0.8615718484 31957.5214843750 -0.0006548826 - -0.8609101176 31955.5527343750 -0.0006734794 - -0.8602469563 31956.9492187500 -0.0006950728 - -0.8595823050 31956.7031250000 -0.0007160004 - -0.8589162230 31955.2207031250 -0.0007376835 - -0.8582487106 31954.3281250000 -0.0007595349 - -0.8575797081 31955.4160156250 -0.0007834410 - -0.8569092155 31954.4882812500 -0.0008085357 - -0.8562373519 31954.4628906250 -0.0008327729 - -0.8555639982 31954.5703125000 -0.0008584158 - -0.8548891544 31953.2714843750 -0.0008850573 - -0.8542128801 31954.3222656250 -0.0009133731 - -0.8535351753 31953.6718750000 -0.0009414460 - -0.8528560400 31951.9179687500 -0.0009701272 - -0.8521754742 31952.2207031250 -0.0010006747 - -0.8514934182 31951.6542968750 -0.0010316790 - -0.8508099318 31952.2617187500 -0.0010647045 - -0.8501249552 31952.3125000000 -0.0010979945 - -0.8494386077 31949.4218750000 -0.0011311315 - -0.8487507701 31952.2929687500 -0.0011677064 - -0.8480615616 31951.3613281250 -0.0012040520 - -0.8473708630 31950.3925781250 -0.0012410338 - -0.8466787338 31951.7890625000 -0.0012795706 - -0.8459851742 31948.7324218750 -0.0013187126 - -0.8452901840 31948.9726562500 -0.0013593144 - -0.8445937634 31949.5839843750 -0.0014023730 - -0.8438958526 31949.9335937500 -0.0014459561 - -0.8431965709 31947.9492187500 -0.0014899133 - -0.8424958587 31948.3300781250 -0.0015363242 - -0.8417937160 31948.9042968750 -0.0015827616 - -0.8410901427 31947.5761718750 -0.0016298912 - -0.8403851390 31947.3574218750 -0.0016803010 - -0.8396787047 31947.9628906250 -0.0017319305 - -0.8389708400 31946.8925781250 -0.0017830058 - -0.8382616043 31947.4199218750 -0.0018381740 - -0.8375508785 31947.4277343750 -0.0018927744 - -0.8368387818 31946.3652343750 -0.0019499265 - -0.8361252546 31946.2109375000 -0.0020084553 - -0.8354102969 31946.3046875000 -0.0020675180 - -0.8346939087 31945.2929687500 -0.0021290747 - -0.8339761496 31946.1738281250 -0.0021920661 - -0.8332569599 31944.7617187500 -0.0022553371 - -0.8325363398 31943.0390625000 -0.0023198833 - -0.8318142891 31942.1074218750 -0.0023872177 - -0.8310908675 31942.2890625000 -0.0024570930 - -0.8303660154 31942.9257812500 -0.0025287489 - -0.8296397924 31943.2949218750 -0.0026004084 - -0.8289121389 31941.2890625000 -0.0026769612 - -0.8281830549 31941.3828125000 -0.0027517008 - -0.8274526000 31941.7871093750 -0.0028279626 - -0.8267207146 31939.6718750000 -0.0029099269 - -0.8259874582 31941.1582031250 -0.0029896812 - -0.8252527714 31940.2246093750 -0.0030738246 - -0.8245167136 31939.9355468750 -0.0031579605 - -0.8237792850 31939.9414062500 -0.0032473125 - -0.8230404258 31938.2363281250 -0.0033355644 - -0.8223001361 31939.5664062500 -0.0034261392 - -0.8215584755 31938.3457031250 -0.0035183004 - -0.8208154440 31938.0019531250 -0.0036131369 - -0.8200709820 31938.8867187500 -0.0037110974 - -0.8193252087 31936.7617187500 -0.0038106516 - -0.8185779452 31937.3125000000 -0.0039130189 - -0.8178293705 31936.8027343750 -0.0040170467 - -0.8170793653 31935.5292968750 -0.0041211243 - -0.8163279891 31936.4628906250 -0.0042285649 - -0.8155752420 31935.3593750000 -0.0043387529 - -0.8148210645 31935.2265625000 -0.0044517051 - -0.8140655756 31936.9355468750 -0.0045640599 - -0.8133086562 31935.7734375000 -0.0046806955 - -0.8125503659 31934.7382812500 -0.0047989050 - -0.8117907047 31934.0781250000 -0.0049204109 - -0.8110296726 31934.5351562500 -0.0050421800 - -0.8102672696 31933.5214843750 -0.0051700156 - -0.8095034957 31932.6054687500 -0.0052921623 - -0.8087382913 31932.8417968750 -0.0054246569 - -0.8079717755 31931.6015625000 -0.0055593597 - -0.8072038889 31932.1542968750 -0.0056894086 - -0.8064346313 31931.4921875000 -0.0058288625 - -0.8056640029 31931.2578125000 -0.0059679649 - -0.8048920035 31931.0957031250 -0.0061078104 - -0.8041186333 31931.2929687500 -0.0062541720 - -0.8033438921 31931.7285156250 -0.0064004636 - -0.8025677800 31929.0781250000 -0.0065480103 - -0.8017903566 31930.9667968750 -0.0066989139 - -0.8010115027 31929.4296875000 -0.0068504857 - -0.8002313375 31929.0292968750 -0.0070064822 - -0.7994498610 31929.1503906250 -0.0071630562 - -0.7986669540 31928.5742187500 -0.0073235724 - -0.7978827357 31927.3613281250 -0.0074845469 - -0.7970971465 31927.8222656250 -0.0076500438 - -0.7963101864 31928.3886718750 -0.0078203883 - -0.7955219150 31927.2792968750 -0.0079856738 - -0.7947322726 31927.4570312500 -0.0081594372 - -0.7939412594 31926.7910156250 -0.0083326856 - -0.7931489348 31925.9160156250 -0.0085113915 - -0.7923552394 31924.6269531250 -0.0086889155 - -0.7915602326 31924.4375000000 -0.0088706324 - -0.7907638550 31925.2617187500 -0.0090527041 - -0.7899661660 31924.1347656250 -0.0092386836 - -0.7891671658 31923.9355468750 -0.0094214650 - -0.7883667350 31923.9472656250 -0.0096124718 - -0.7875650525 31924.8125000000 -0.0098030837 - -0.7867619991 31923.2519531250 -0.0099985832 - -0.7859575748 31921.5234375000 -0.0101971347 - -0.7851518989 31921.1386718750 -0.0103930989 - -0.7843448520 31922.0117187500 -0.0105919391 - -0.7835364342 31921.7304687500 -0.0107936636 - -0.7827267647 31921.5156250000 -0.0109937470 - -0.7819157243 31919.8789062500 -0.0112003023 - -0.7811033726 31920.5527343750 -0.0114097614 - -0.7802896500 31919.5488281250 -0.0116168298 - -0.7794746757 31919.2109375000 -0.0118258558 - -0.7786583304 31917.4628906250 -0.0120389955 - -0.7778406739 31919.4453125000 -0.0122525804 - -0.7770217061 31918.1679687500 -0.0124710994 - -0.7762014270 31918.6171875000 -0.0126873152 - -0.7753798366 31917.8828125000 -0.0129087549 - -0.7745569348 31916.3085937500 -0.0131212808 - -0.7737326622 31916.5058593750 -0.0133469813 - -0.7729071379 31917.7343750000 -0.0135678165 - -0.7720803022 31916.1054687500 -0.0137946475 - -0.7712520957 31917.0390625000 -0.0140192751 - -0.7704226375 31915.8496093750 -0.0142471418 - -0.7695918679 31915.5996093750 -0.0144764651 - -0.7687597871 31914.6054687500 -0.0147014018 - -0.7679263949 31915.5722656250 -0.0149308108 - -0.7670917511 31913.9648437500 -0.0151573811 - -0.7662557364 31914.1445312500 -0.0153883547 - -0.7654184699 31913.3203125000 -0.0156263933 - -0.7645798922 31911.9746093750 -0.0158529524 - -0.7637400031 31913.2187500000 -0.0160860177 - -0.7628988028 31912.2265625000 -0.0163142588 - -0.7620563507 31911.5742187500 -0.0165578462 - -0.7612125874 31910.9902343750 -0.0167888124 - -0.7603675723 31911.3847656250 -0.0170214139 - -0.7595212460 31911.0625000000 -0.0172545724 - -0.7586736083 31910.6972656250 -0.0174884815 - -0.7578246593 31909.8828125000 -0.0177254844 - -0.7569744587 31909.5097656250 -0.0179555137 - -0.7561230063 31909.6132812500 -0.0181959812 - -0.7552702427 31908.2773437500 -0.0184295084 - -0.7544161677 31908.2226562500 -0.0186609551 - -0.7535609007 31908.1484375000 -0.0188899450 - -0.7527042627 31907.6894531250 -0.0191256665 - -0.7518463731 31907.3027343750 -0.0193596985 - -0.7509872317 31906.0527343750 -0.0195861328 - -0.7501268387 31906.2988281250 -0.0198207926 - -0.7492651343 31906.5234375000 -0.0200503729 - -0.7484021783 31905.7207031250 -0.0202758256 - -0.7475379109 31905.5117187500 -0.0205033571 - -0.7466724515 31904.7109375000 -0.0207299683 - -0.7458056808 31904.7402343750 -0.0209600683 - -0.7449375987 31903.7949218750 -0.0211791284 - -0.7440683246 31903.8281250000 -0.0214057583 - -0.7431977987 31904.0878906250 -0.0216245167 - -0.7423259616 31903.0449218750 -0.0218450204 - -0.7414528728 31902.3183593750 -0.0220632982 - -0.7405785322 31901.9394531250 -0.0222753175 - -0.7397029400 31901.1210937500 -0.0224958230 - -0.7388260961 31902.9746093750 -0.0227066930 - -0.7379480004 31900.1113281250 -0.0229194406 - -0.7370686531 31899.9355468750 -0.0231225435 - -0.7361880541 31901.4472656250 -0.0233341362 - -0.7353062630 31899.6621093750 -0.0235411264 - -0.7344231606 31901.7871093750 -0.0237387028 - -0.7335388064 31899.2050781250 -0.0239412058 - -0.7326532006 31898.1152343750 -0.0241360888 - -0.7317664027 31899.3535156250 -0.0243337397 - -0.7308783531 31898.6640625000 -0.0245247539 - -0.7299890518 31897.3750000000 -0.0247156322 - -0.7290984988 31898.2402343750 -0.0249055550 - -0.7282067537 31896.1074218750 -0.0250923857 - -0.7273136973 31896.5820312500 -0.0252770651 - -0.7264194489 31895.8359375000 -0.0254490972 - -0.7255240083 31895.6699218750 -0.0256280228 - -0.7246273160 31894.8378906250 -0.0258029420 - -0.7237293720 31895.5468750000 -0.0259753633 - -0.7228302360 31892.8750000000 -0.0261435024 - -0.7219298482 31893.4941406250 -0.0263066720 - -0.7210282087 31892.8300781250 -0.0264679380 - -0.7201253772 31893.5722656250 -0.0266273785 - -0.7192213535 31892.4433593750 -0.0267826952 - -0.7183160782 31893.2812500000 -0.0269359108 - -0.7174095511 31892.8906250000 -0.0270857587 - -0.7165018320 31891.9179687500 -0.0272306688 - -0.7155929208 31890.1074218750 -0.0273729563 - -0.7146828175 31889.9609375000 -0.0275107473 - -0.7137714624 31891.4824218750 -0.0276473798 - -0.7128589153 31891.5507812500 -0.0277825072 - -0.7119451165 31890.9414062500 -0.0279123187 - -0.7110301852 31889.4257812500 -0.0280383341 - -0.7101140022 31889.0761718750 -0.0281577073 - -0.7091966271 31888.9902343750 -0.0282756500 - -0.7082780004 31888.0507812500 -0.0283884667 - -0.7073582411 31888.2363281250 -0.0285062343 - -0.7064372301 31887.4589843750 -0.0286110975 - -0.7055150867 31888.4843750000 -0.0287169665 - -0.7045916915 31887.4257812500 -0.0288163275 - -0.7036671042 31887.0292968750 -0.0289147124 - -0.7027413845 31886.1679687500 -0.0290062949 - -0.7018144131 31886.6796875000 -0.0290974975 - -0.7008862495 31884.8203125000 -0.0291846246 - -0.6999568939 31884.2207031250 -0.0292635635 - -0.6990264058 31885.5957031250 -0.0293488130 - -0.6980946660 31883.5468750000 -0.0294216722 - -0.6971617937 31883.9023437500 -0.0294946581 - -0.6962277293 31884.4062500000 -0.0295634679 - -0.6952924728 31882.5371093750 -0.0296288058 - -0.6943560243 31882.9667968750 -0.0296909474 - -0.6934184432 31882.1914062500 -0.0297482088 - -0.6924796700 31880.9824218750 -0.0298014544 - -0.6915397048 31881.5253906250 -0.0298525989 - -0.6905985475 31881.1660156250 -0.0299013071 - -0.6896562576 31880.9238281250 -0.0299496762 - -0.6887127757 31880.0800781250 -0.0299855061 - -0.6877681613 31880.6347656250 -0.0300259665 - -0.6868223548 31878.9746093750 -0.0300546288 - -0.6858753562 31879.6562500000 -0.0300877020 - -0.6849272251 31879.8925781250 -0.0301164016 - -0.6839779615 31878.0058593750 -0.0301383324 - -0.6830275059 31878.8496093750 -0.0301607475 - -0.6820758581 31879.0527343750 -0.0301776007 - -0.6811231375 31878.6386718750 -0.0301895030 - -0.6801692247 31876.8300781250 -0.0301997103 - -0.6792141199 31876.3144531250 -0.0302086212 - -0.6782578826 31876.7578125000 -0.0302127302 - -0.6773005128 31875.7343750000 -0.0302129537 - -0.6763420105 31875.5097656250 -0.0302109346 - -0.6753823161 31876.0820312500 -0.0302075110 - -0.6744214892 31874.5566406250 -0.0302000381 - -0.6734595299 31876.1992187500 -0.0301869735 - -0.6724964380 31874.6132812500 -0.0301736742 - -0.6715322137 31874.0449218750 -0.0301544294 - -0.6705667973 31874.4570312500 -0.0301328823 - -0.6696003079 31872.4042968750 -0.0301095322 - -0.6686326265 31873.2109375000 -0.0300862491 - -0.6676638722 31873.1445312500 -0.0300562195 - -0.6666939259 31872.2011718750 -0.0300236605 - -0.6657229066 31872.4902343750 -0.0299905874 - -0.6647506952 31870.5820312500 -0.0299542509 - -0.6637774110 31871.9648437500 -0.0299126133 - -0.6628029943 31870.4980468750 -0.0298702307 - -0.6618274450 31870.1328125000 -0.0298286118 - -0.6608507633 31872.0410156250 -0.0297779664 - -0.6598729491 31869.7421875000 -0.0297265872 - -0.6588940620 31870.2246093750 -0.0296810605 - -0.6579140425 31869.0117187500 -0.0296233706 - -0.6569328904 31869.0878906250 -0.0295653790 - -0.6559506059 31870.2929687500 -0.0295070708 - -0.6549672484 31870.0097656250 -0.0294453092 - -0.6539827585 31868.9257812500 -0.0293813497 - -0.6529971361 31868.9570312500 -0.0293135755 - -0.6520104408 31868.1464843750 -0.0292477757 - -0.6510226727 31867.5625000000 -0.0291766971 - -0.6500337124 31868.4687500000 -0.0291031152 - -0.6490437388 31867.5996093750 -0.0290293470 - -0.6480526328 31867.1855468750 -0.0289517678 - -0.6470603943 31866.4238281250 -0.0288744010 - -0.6460670829 31865.8164062500 -0.0287895463 - -0.6450726986 31865.4160156250 -0.0287065022 - -0.6440771818 31866.0566406250 -0.0286259428 - -0.6430805922 31865.2578125000 -0.0285408534 - -0.6420829296 31863.8242187500 -0.0284506008 - -0.6410841942 31864.8535156250 -0.0283615366 - -0.6400843263 31863.5761718750 -0.0282675661 - -0.6390833855 31863.8554687500 -0.0281762592 - -0.6380813718 31861.7929687500 -0.0280789435 - -0.6370782256 31864.2968750000 -0.0279840566 - -0.6360740662 31862.4199218750 -0.0278879739 - -0.6350687742 31862.3964843750 -0.0277870670 - -0.6340624690 31862.7128906250 -0.0276855826 - -0.6330550313 31860.3437500000 -0.0275815688 - -0.6320465803 31861.9375000000 -0.0274841934 - -0.6310369968 31861.4218750000 -0.0273749866 - -0.6300264001 31860.4160156250 -0.0272673070 - -0.6290146708 31861.0546875000 -0.0271579698 - -0.6280019283 31859.9062500000 -0.0270538852 - -0.6269880533 31860.2617187500 -0.0269430280 - -0.6259731650 31860.8046875000 -0.0268319435 - -0.6249572635 31858.9257812500 -0.0267195925 - -0.6239402294 31859.4375000000 -0.0266029648 - -0.6229221821 31858.5234375000 -0.0264889151 - -0.6219030023 31858.1113281250 -0.0263737142 - -0.6208828688 31858.5585937500 -0.0262579173 - -0.6198616028 31857.5859375000 -0.0261340104 - -0.6188393235 31857.1074218750 -0.0260183327 - -0.6178159714 31858.4589843750 -0.0259016268 - -0.6167916059 31857.5781250000 -0.0257799029 - -0.6157661676 31856.3300781250 -0.0256555565 - -0.6147397161 31858.0058593750 -0.0255355388 - -0.6137121916 31857.2753906250 -0.0254110098 - -0.6126836538 31855.2050781250 -0.0252865478 - -0.6116540432 31857.0058593750 -0.0251645222 - -0.6106234193 31855.9179687500 -0.0250375122 - -0.6095917821 31855.4277343750 -0.0249119103 - -0.6085590720 31854.3671875000 -0.0247847270 - -0.6075253487 31854.8437500000 -0.0246569477 - -0.6064905524 31856.8652343750 -0.0245325249 - -0.6054548025 31853.6347656250 -0.0244009476 - -0.6044179797 31854.9863281250 -0.0242711026 - -0.6033801436 31855.0742187500 -0.0241447035 - -0.6023412943 31854.9843750000 -0.0240131393 - -0.6013013721 31852.2011718750 -0.0238770600 - -0.6002604961 31852.1835937500 -0.0237511266 - -0.5992185473 31854.0058593750 -0.0236185845 - -0.5981756449 31852.0410156250 -0.0234849676 - -0.5971316695 31852.0468750000 -0.0233550686 - -0.5960867405 31851.6542968750 -0.0232244935 - -0.5950407386 31851.4140625000 -0.0230897479 - -0.5939937830 31850.9765625000 -0.0229539350 - -0.5929457545 31852.1562500000 -0.0228252467 - -0.5918967724 31851.8203125000 -0.0226869024 - -0.5908467770 31851.4023437500 -0.0225528684 - -0.5897957683 31852.2480468750 -0.0224155523 - -0.5887437463 31850.3320312500 -0.0222911611 - -0.5876907706 31851.4785156250 -0.0221547280 - -0.5866367817 31850.4843750000 -0.0220187176 - -0.5855817795 31849.7929687500 -0.0218792725 - -0.5845258236 31849.8378906250 -0.0217488538 - -0.5834688544 31849.7812500000 -0.0216126516 - -0.5824108720 31850.8593750000 -0.0214765854 - -0.5813519359 31849.3671875000 -0.0213381276 - -0.5802919865 31849.3437500000 -0.0212063156 - -0.5792310834 31848.1875000000 -0.0210743360 - -0.5781691670 31848.1230468750 -0.0209358223 - -0.5771062970 31846.9765625000 -0.0207989682 - -0.5760424137 31849.0214843750 -0.0206662640 - -0.5749775767 31849.2109375000 -0.0205285735 - -0.5739117861 31849.3183593750 -0.0203931108 - -0.5728449821 31846.6015625000 -0.0202601142 - -0.5717772245 31849.4375000000 -0.0201289281 - -0.5707085133 31847.0429687500 -0.0199904069 - -0.5696387887 31845.5625000000 -0.0198518801 - -0.5685681701 31846.2343750000 -0.0197192449 - -0.5674965382 31847.7714843750 -0.0195849501 - -0.5664239526 31846.4101562500 -0.0194470845 - -0.5653504133 31846.3046875000 -0.0193215869 - -0.5642759204 31846.8652343750 -0.0191837009 - -0.5632004142 31846.2382812500 -0.0190517418 - -0.5621240139 31845.1875000000 -0.0189169403 - -0.5610466599 31846.1933593750 -0.0187861845 - -0.5599683523 31846.1347656250 -0.0186466891 - -0.5588890910 31846.1113281250 -0.0185194146 - -0.5578088760 31845.2070312500 -0.0183833558 - -0.5567277074 31845.2480468750 -0.0182519797 - -0.5556455851 31843.9238281250 -0.0181238353 - -0.5545625687 31843.7734375000 -0.0179933980 - -0.5534785390 31845.2773437500 -0.0178603549 - -0.5523936152 31844.6406250000 -0.0177281350 - -0.5513077378 31844.4804687500 -0.0175950676 - -0.5502209663 31844.5136718750 -0.0174688771 - -0.5491332412 31844.1210937500 -0.0173379481 - -0.5480445623 31843.9277343750 -0.0172057804 - -0.5469549894 31844.5820312500 -0.0170769971 - -0.5458644629 31844.5312500000 -0.0169467274 - -0.5447730422 31842.7500000000 -0.0168201569 - -0.5436806679 31842.1250000000 -0.0166911744 - -0.5425873399 31843.1992187500 -0.0165638421 - -0.5414931774 31842.2207031250 -0.0164345410 - -0.5403980017 31844.1171875000 -0.0163141191 - -0.5393019915 31843.2558593750 -0.0161827095 - -0.5382050276 31842.5410156250 -0.0160570294 - -0.5371071696 31842.9179687500 -0.0159291793 - -0.5360083580 31842.1777343750 -0.0158091988 - -0.5349087119 31841.2480468750 -0.0156834237 - -0.5338081121 31842.1074218750 -0.0155574325 - -0.5327066183 31842.9335937500 -0.0154322088 - -0.5316041708 31843.6894531250 -0.0153162163 - -0.5305008888 31842.5273437500 -0.0151885971 - -0.5293966532 31841.3769531250 -0.0150681902 - -0.5282915831 31841.8613281250 -0.0149463806 - -0.5271855593 31840.9375000000 -0.0148242023 - -0.5260787010 31841.9121093750 -0.0147086885 - -0.5249708891 31841.1699218750 -0.0145846736 - -0.5238622427 31840.2812500000 -0.0144640040 - -0.5227526426 31840.2050781250 -0.0143437460 - -0.5216422081 31841.6308593750 -0.0142310765 - -0.5205308795 31838.9492187500 -0.0141096320 - -0.5194186568 31840.1308593750 -0.0139879733 - -0.5183055401 31840.7695312500 -0.0138704274 - -0.5171915889 31839.0175781250 -0.0137506891 - -0.5160767436 31840.4628906250 -0.0136409644 - -0.5149610043 31840.3027343750 -0.0135254227 - -0.5138444304 31839.7265625000 -0.0134086479 - -0.5127269626 31840.6425781250 -0.0132931210 - -0.5116086006 31839.4316406250 -0.0131774601 - -0.5104894042 31840.7578125000 -0.0130683426 - -0.5093693137 31841.8789062500 -0.0129580610 - -0.5082483888 31840.9277343750 -0.0128408168 - -0.5071265697 31841.1132812500 -0.0127275251 - -0.5060039163 31841.1464843750 -0.0126165003 - -0.5048804283 31840.2382812500 -0.0125114527 - -0.5037560463 31840.6562500000 -0.0123982895 - -0.5026308298 31838.9316406250 -0.0122876372 - -0.5015047193 31840.3691406250 -0.0121806115 - -0.5003778338 31839.7382812500 -0.0120738782 - -0.4992500246 31839.9628906250 -0.0119632781 - -0.4981214106 31839.4375000000 -0.0118551031 - -0.4969919324 31840.2910156250 -0.0117509607 - -0.4958616197 31838.3574218750 -0.0116445664 - -0.4947304726 31840.4199218750 -0.0115431510 - -0.4935984910 31839.6757812500 -0.0114339143 - -0.4924656749 31839.3984375000 -0.0113300048 - -0.4913319945 31839.4531250000 -0.0112265702 - -0.4901975095 31839.7910156250 -0.0111234505 - -0.4890621901 31840.5507812500 -0.0110278651 - -0.4879260361 31839.0566406250 -0.0109220687 - -0.4867890477 31838.1171875000 -0.0108175669 - -0.4856512249 31838.6757812500 -0.0107143745 - -0.4845125973 31840.0820312500 -0.0106153730 - -0.4833731651 31840.6054687500 -0.0105228629 - -0.4822328687 31839.9179687500 -0.0104210544 - -0.4810917974 31839.7187500000 -0.0103188790 - -0.4799498916 31839.0839843750 -0.0102216266 - -0.4788071811 31838.8789062500 -0.0101239160 - -0.4776636362 31841.1679687500 -0.0100307968 - -0.4765192866 31840.1953125000 -0.0099346302 - -0.4753741622 31839.3906250000 -0.0098403729 - -0.4742282033 31840.2460937500 -0.0097458493 - -0.4730814397 31841.0410156250 -0.0096497275 - -0.4719338715 31840.6757812500 -0.0095520187 - -0.4707854986 31839.2812500000 -0.0094676716 - -0.4696363509 31838.2089843750 -0.0093726125 - -0.4684863985 31839.4335937500 -0.0092825741 - -0.4673356414 31840.0703125000 -0.0091825677 - -0.4661841094 31839.5742187500 -0.0090959175 - -0.4650317729 31842.2753906250 -0.0090131452 - -0.4638786614 31839.5781250000 -0.0089193285 - -0.4627247453 31840.5332031250 -0.0088310614 - -0.4615700543 31840.3320312500 -0.0087419432 - -0.4604145885 31841.1054687500 -0.0086545283 - -0.4592583179 31840.7363281250 -0.0085694799 - -0.4581013024 31840.6191406250 -0.0084850090 - -0.4569434822 31840.5839843750 -0.0083975932 - -0.4557848871 31841.1113281250 -0.0083084004 - -0.4546255469 31840.5878906250 -0.0082216347 - -0.4534654021 31841.5449218750 -0.0081380559 - -0.4523045123 31840.5351562500 -0.0080584977 - -0.4511428475 31840.7890625000 -0.0079766791 - -0.4499804378 31841.6582031250 -0.0078927884 - -0.4488172233 31841.9550781250 -0.0078098597 - -0.4476532936 31840.7949218750 -0.0077278884 - -0.4464885592 31841.2011718750 -0.0076482575 - -0.4453231096 31841.9433593750 -0.0075696800 - -0.4441568851 31842.1054687500 -0.0074888961 - -0.4429899156 31843.5546875000 -0.0074109826 - -0.4418221712 31841.6738281250 -0.0073288530 - -0.4406537116 31841.6171875000 -0.0072531635 - -0.4394844770 31841.6894531250 -0.0071757985 - -0.4383144975 31842.0839843750 -0.0071016382 - -0.4371438026 31843.8671875000 -0.0070248498 - -0.4359723330 31842.8164062500 -0.0069498327 - -0.4348001480 31842.1523437500 -0.0068711219 - -0.4336272180 31843.5976562500 -0.0067983689 - -0.4324535429 31843.4824218750 -0.0067275343 - -0.4312791526 31843.3906250000 -0.0066551669 - -0.4301040173 31843.2851562500 -0.0065843873 - -0.4289281666 31844.7285156250 -0.0065059075 - -0.4277515709 31844.4257812500 -0.0064320108 - -0.4265742600 31843.4492187500 -0.0063577434 - -0.4253962338 31843.2656250000 -0.0062968759 - -0.4242174923 31842.5996093750 -0.0062268730 - -0.4230380058 31844.5664062500 -0.0061540278 - -0.4218578339 31846.0273437500 -0.0060844421 - -0.4206769168 31846.0976562500 -0.0060128206 - -0.4194952846 31844.5371093750 -0.0059451098 - -0.4183129668 31844.2304687500 -0.0058857240 - -0.4171299338 31846.0664062500 -0.0058174357 - -0.4159461856 31845.1796875000 -0.0057514142 - -0.4147617221 31845.4863281250 -0.0056788269 - -0.4135765731 31845.3554687500 -0.0056138393 - -0.4123907089 31845.9687500000 -0.0055464776 - -0.4112041593 31846.9003906250 -0.0054836757 - -0.4100168943 31846.1328125000 -0.0054281196 - -0.4088289440 31846.1699218750 -0.0053622890 - -0.4076403081 31847.6406250000 -0.0052975370 - -0.4064509869 31845.9980468750 -0.0052328240 - -0.4052609503 31847.2402343750 -0.0051714899 - -0.4040702283 31847.3300781250 -0.0051079318 - -0.4028788507 31846.1347656250 -0.0050476287 - -0.4016867578 31848.8183593750 -0.0049892003 - -0.4004940093 31848.9023437500 -0.0049300874 - -0.3993005753 31848.8359375000 -0.0048702620 - -0.3981064558 31848.3945312500 -0.0048107030 - -0.3969116807 31847.4257812500 -0.0047526313 - -0.3957162201 31848.4941406250 -0.0046912152 - -0.3945200741 31849.5781250000 -0.0046412656 - -0.3933232725 31849.8671875000 -0.0045823231 - -0.3921258152 31849.4492187500 -0.0045280065 - -0.3909276724 31850.7871093750 -0.0044662366 - -0.3897288740 31848.8808593750 -0.0044113575 - -0.3885294199 31849.4628906250 -0.0043546511 - -0.3873293102 31851.0468750000 -0.0043074312 - -0.3861285448 31851.0468750000 -0.0042514615 - -0.3849270940 31850.1035156250 -0.0041947225 - -0.3837250173 31851.2460937500 -0.0041412069 - -0.3825222850 31852.5000000000 -0.0040893555 - -0.3813189268 31850.9960937500 -0.0040354189 - -0.3801148832 31853.0546875000 -0.0039819479 - -0.3789102137 31852.0039062500 -0.0039342707 - -0.3777049184 31853.4824218750 -0.0038840193 - -0.3764989674 31852.2050781250 -0.0038317423 - -0.3752923608 31854.7460937500 -0.0037795287 - -0.3740851283 31854.0175781250 -0.0037290249 - -0.3728772700 31853.9140625000 -0.0036783963 - -0.3716687858 31853.8593750000 -0.0036300961 - -0.3704596460 31855.6835937500 -0.0035785129 - -0.3692499101 31856.5859375000 -0.0035379538 - -0.3680395186 31855.7773437500 -0.0034875590 - -0.3668285310 31854.7636718750 -0.0034426320 - -0.3656168878 31857.8144531250 -0.0033924570 - -0.3644046485 31856.9570312500 -0.0033470020 - -0.3631917834 31856.2792968750 -0.0032985657 - -0.3619783223 31855.8808593750 -0.0032536071 - -0.3607642353 31856.6269531250 -0.0032052286 - -0.3595495224 31857.6386718750 -0.0031659957 - -0.3583342135 31858.1699218750 -0.0031225113 - -0.3571182787 31858.6484375000 -0.0030772826 - -0.3559017777 31859.4492187500 -0.0030324413 - -0.3546846509 31859.0410156250 -0.0029881187 - -0.3534668982 31858.4355468750 -0.0029452452 - -0.3522485793 31858.5039062500 -0.0029015606 - -0.3510296643 31861.6718750000 -0.0028642090 - -0.3498101234 31860.9277343750 -0.0028224429 - -0.3485900164 31860.4863281250 -0.0027799415 - -0.3473693132 31860.6113281250 -0.0027378881 - -0.3461480141 31862.0507812500 -0.0026963134 - -0.3449261487 31860.9316406250 -0.0026559271 - -0.3437036574 31861.6835937500 -0.0026163310 - -0.3424806297 31864.0644531250 -0.0025802283 - -0.3412569761 31864.5058593750 -0.0025416357 - -0.3400327861 31863.0839843750 -0.0025007976 - -0.3388080001 31865.0312500000 -0.0024613165 - -0.3375826478 31865.7304687500 -0.0024235970 - -0.3363566995 31864.6972656250 -0.0023838556 - -0.3351302147 31866.0039062500 -0.0023473939 - -0.3339031339 31865.4179687500 -0.0023077838 - -0.3326754868 31865.5097656250 -0.0022712294 - -0.3314473033 31866.2597656250 -0.0022410904 - -0.3302185237 31867.9042968750 -0.0022026766 - -0.3289892077 31868.9238281250 -0.0021675145 - -0.3277593255 31867.5078125000 -0.0021305131 - -0.3265289068 31869.8671875000 -0.0020941440 - -0.3252979219 31868.7148437500 -0.0020603212 - -0.3240663707 31868.0605468750 -0.0020243437 - -0.3228342831 31869.2597656250 -0.0019894447 - -0.3216016293 31870.7714843750 -0.0019560545 - -0.3203684688 31868.7753906250 -0.0019207890 - -0.3191347420 31871.6328125000 -0.0018931208 - -0.3179004788 31871.1523437500 -0.0018594731 - -0.3166656494 31871.9667968750 -0.0018264446 - -0.3154303133 31871.7597656250 -0.0017948239 - -0.3141944408 31872.7226562500 -0.0017608535 - -0.3129580319 31872.5898437500 -0.0017301459 - -0.3117210865 31872.8867187500 -0.0016981605 - -0.3104836345 31874.8867187500 -0.0016711173 - -0.3092456162 31875.5351562500 -0.0016418407 - -0.3080070913 31874.6464843750 -0.0016102628 - -0.3067680597 31875.9140625000 -0.0015778923 - -0.3055284917 31877.2148437500 -0.0015497711 - -0.3042884171 31875.6835937500 -0.0015185890 - -0.3030478358 31878.5156250000 -0.0014884295 - -0.3018067181 31878.1875000000 -0.0014598556 - -0.3005650938 31877.2714843750 -0.0014357036 - -0.2993229628 31879.3457031250 -0.0014060163 - -0.2980803251 31879.0000000000 -0.0013786838 - -0.2968371809 31878.9746093750 -0.0013500899 - -0.2955935299 31880.4550781250 -0.0013207225 - -0.2943493724 31880.2890625000 -0.0012941146 - -0.2931047380 31881.5195312500 -0.0012654718 - -0.2918595970 31882.8496093750 -0.0012379452 - -0.2906139493 31882.7343750000 -0.0012126970 - -0.2893678248 31882.9726562500 -0.0011842200 - -0.2881211936 31883.2109375000 -0.0011581057 - -0.2868740857 31884.4316406250 -0.0011323979 - -0.2856265008 31885.0527343750 -0.0011058948 - -0.2843784094 31884.7539062500 -0.0010799682 - -0.2831298411 31884.4316406250 -0.0010612938 - -0.2818807960 31886.5390625000 -0.0010350659 - -0.2806312740 31885.9863281250 -0.0010104454 - -0.2793812752 31886.7558593750 -0.0009860569 - -0.2781307995 31887.2265625000 -0.0009611086 - -0.2768798769 31889.7539062500 -0.0009376155 - -0.2756284475 31888.9453125000 -0.0009120638 - -0.2743765712 31889.6171875000 -0.0008897725 - -0.2731242180 31889.5859375000 -0.0008712690 - -0.2718714178 31891.7402343750 -0.0008469224 - -0.2706181407 31892.1972656250 -0.0008255672 - -0.2693644166 31891.9921875000 -0.0008021020 - -0.2681102455 31893.1679687500 -0.0007793694 - -0.2668555975 31893.3320312500 -0.0007581697 - -0.2656005025 31894.4902343750 -0.0007401532 - -0.2643449605 31893.8242187500 -0.0007179878 - -0.2630889714 31895.7402343750 -0.0006968128 - -0.2618325353 31894.6953125000 -0.0006750380 - -0.2605756819 31896.3105468750 -0.0006538904 - -0.2593183517 31897.7695312500 -0.0006328709 - -0.2580605745 31898.7031250000 -0.0006133206 - -0.2568023801 31896.7617187500 -0.0005915472 - -0.2555437386 31899.2011718750 -0.0005711848 - -0.2542846799 31899.8867187500 -0.0005509006 - -0.2530251741 31901.0097656250 -0.0005319617 - -0.2517652512 31901.2792968750 -0.0005117902 - -0.2505049109 31901.4394531250 -0.0004921444 - -0.2492441237 31902.1425781250 -0.0004728776 - -0.2479829192 31902.0625000000 -0.0004540174 - -0.2467212975 31901.6601562500 -0.0004346878 - -0.2454592586 31902.5253906250 -0.0004155198 - -0.2441968024 31905.2324218750 -0.0003984277 - -0.2429339439 31905.0058593750 -0.0003793780 - -0.2416706532 31906.5390625000 -0.0003615068 - -0.2404069602 31906.5429687500 -0.0003440087 - -0.2391428649 31906.0214843750 -0.0003264481 - -0.2378783524 31907.4277343750 -0.0003130077 - -0.2366134524 31910.1875000000 -0.0002955664 - -0.2353481352 31908.6816406250 -0.0002785688 - -0.2340824306 31909.9980468750 -0.0002620248 - -0.2328163236 31911.5195312500 -0.0002489323 - -0.2315498292 31911.2226562500 -0.0002317508 - -0.2302829325 31913.6582031250 -0.0002158834 - -0.2290156484 31913.3867187500 -0.0002036518 - -0.2277479768 31913.8261718750 -0.0001872564 - -0.2264799178 31914.7734375000 -0.0001713638 - -0.2252114862 31915.3027343750 -0.0001599477 - -0.2239426523 31916.3632812500 -0.0001437287 - -0.2226734608 31917.5019531250 -0.0001284555 - -0.2214038819 31918.4335937500 -0.0001139054 - -0.2201339155 31918.1035156250 -0.0000980524 - -0.2188635916 31918.4414062500 -0.0000830116 - -0.2175928950 31919.3027343750 -0.0000679125 - -0.2163218260 31919.7578125000 -0.0000537015 - -0.2150503844 31921.0527343750 -0.0000354084 - -0.2137785852 31921.1796875000 -0.0000207303 - -0.2125064284 31922.7617187500 -0.0000027223 - -0.2112338990 31922.7578125000 0.0000104834 - -0.2099610120 31921.8808593750 0.0000287155 - -0.2086877823 31922.8261718750 0.0000457130 - -0.2074141949 31923.9199218750 0.0000627921 - -0.2061402500 31924.8398437500 0.0000833315 - -0.2048659474 31926.1757812500 0.0000991919 - -0.2035913169 31926.5683593750 0.0001195450 - -0.2023163289 31926.3437500000 0.0001357123 - -0.2010409981 31927.8125000000 0.0001544771 - -0.1997653395 31926.6562500000 0.0001706663 - -0.1984893233 31928.6289062500 0.0001891083 - -0.1972129792 31927.3046875000 0.0002078414 - -0.1959363073 31928.4511718750 0.0002226199 - -0.1946592927 31930.2285156250 0.0002402049 - -0.1933819503 31930.2402343750 0.0002549645 - -0.1921042800 31929.4667968750 0.0002717881 - -0.1908262968 31930.4746093750 0.0002860045 - -0.1895479709 31931.1972656250 0.0002998246 - -0.1882693321 31932.5742187500 0.0003132387 - -0.1869903803 31930.9238281250 0.0003273329 - -0.1857111007 31933.2031250000 0.0003362796 - -0.1844315082 31934.5546875000 0.0003496010 - -0.1831516176 31934.1054687500 0.0003596300 - -0.1818713993 2935.7939453125 0.0001987508 - -0.1805908829 2937.2641601562 0.0002057282 - -0.1793100536 2935.0175781250 0.0002134526 - -0.1780289114 2935.9191894531 0.0002214154 - -0.1767474860 2936.0422363281 0.0002285102 - -0.1754657477 2937.4519042969 0.0002358304 - -0.1741837263 2936.4213867188 0.0002428573 - -0.1729013920 2936.1713867188 0.0002503181 - -0.1716187745 2937.9003906250 0.0002563428 - -0.1703358591 2937.5905761719 0.0002637329 - -0.1690526605 2937.6704101562 0.0002701320 - -0.1677691787 2937.4328613281 0.0002773171 - -0.1664854139 2937.5947265625 0.0002833745 - -0.1652013510 2938.0832519531 0.0002902746 - -0.1639170200 2937.5097656250 0.0002963617 - -0.1626324207 2937.9326171875 0.0003032787 - -0.1613475233 2937.9270019531 0.0003096117 - -0.1600623727 2937.5688476562 0.0003157221 - -0.1587769389 2939.5129394531 0.0003222916 - -0.1574912369 2938.7053222656 0.0003282027 - -0.1562052667 2938.0957031250 0.0003348077 - -0.1549190432 2938.6406250000 0.0003403686 - -0.1536325514 2937.4201660156 0.0003464613 - -0.1523457915 2938.6484375000 0.0003514597 - -0.1510587782 2939.8200683594 0.0003578383 - -0.1497715116 2939.1435546875 0.0003631040 - -0.1484839916 2939.4665527344 0.0003686771 - -0.1471962184 2939.4655761719 0.0003741030 - -0.1459081918 2939.2949218750 0.0003803382 - -0.1446199119 2938.7490234375 0.0003848802 - -0.1433313936 2938.7819824219 0.0003910074 - -0.1420426369 2940.8674316406 0.0003949236 - -0.1407536417 2940.3007812500 0.0004009260 - -0.1394643933 2937.9379882812 0.0004059626 - -0.1381749213 2939.3701171875 0.0004109871 - -0.1368852109 2939.5139160156 0.0004158383 - -0.1355952621 2940.2766113281 0.0004211077 - -0.1343050897 2940.6928710938 0.0004251665 - -0.1330146939 2940.5578613281 0.0004309602 - -0.1317240745 2940.9780273438 0.0004346855 - -0.1304332167 2940.0673828125 0.0004404178 - -0.1291421503 2940.8867187500 0.0004451340 - -0.1278508604 2940.0036621094 0.0004490782 - -0.1265593618 2940.8623046875 0.0004546437 - -0.1252676398 2940.8422851562 0.0004581511 - -0.1239757016 2941.4492187500 0.0004629595 - -0.1226835623 2941.1147460938 0.0004667211 - -0.1213912070 2941.9443359375 0.0004721079 - -0.1200986505 2941.0954589844 0.0004757494 - -0.1188058928 2942.3032226562 0.0004799413 - -0.1175129339 2942.0290527344 0.0004833387 - -0.1162197739 2941.9746093750 0.0004880801 - -0.1149264127 2942.4511718750 0.0004915036 - -0.1136328578 2942.4650878906 0.0004961500 - -0.1123391166 2943.0249023438 0.0004991358 - -0.1110451818 2942.6828613281 0.0005037105 - -0.1097510532 2943.9101562500 0.0005066218 - -0.1084567457 2942.4865722656 0.0005112868 - -0.1071622521 2942.8103027344 0.0005140370 - -0.1058675721 2942.3273925781 0.0005184514 - -0.1045727208 2943.6909179688 0.0005216403 - -0.1032776833 2944.0068359375 0.0005256496 - -0.1019824818 2943.4501953125 0.0005290266 - -0.1006871015 2942.1835937500 0.0005327947 - -0.0993915498 2944.4194335938 0.0005353214 - -0.0980958268 2943.4216308594 0.0005396670 - -0.0967999399 2942.5881347656 0.0005425802 - -0.0955038890 2943.4226074219 0.0005458593 - -0.0942076817 2945.1752929688 0.0005487511 - -0.0929113030 2944.1164550781 0.0005525891 - -0.0916147754 2944.3000488281 0.0005552806 - -0.0903180912 2944.5488281250 0.0005588802 - -0.0890212581 2945.0969238281 0.0005610147 - -0.0877242684 2945.5061035156 0.0005646767 - -0.0864271298 2945.5341796875 0.0005667889 - -0.0851298422 2944.9758300781 0.0005710069 - -0.0838324130 2944.3071289062 0.0005731238 - -0.0825348422 2945.4721679688 0.0005768901 - -0.0812371373 2945.6655273438 0.0005786512 - -0.0799392834 2944.7900390625 0.0005830294 - -0.0786413029 2946.8945312500 0.0005845334 - -0.0773431882 2946.4079589844 0.0005879477 - -0.0760449395 2946.5083007812 0.0005893130 - -0.0747465640 2947.5109863281 0.0005936325 - -0.0734480545 2946.5529785156 0.0005951244 - -0.0721494257 2947.3205566406 0.0005979929 - -0.0708506778 2947.5688476562 0.0005996339 - -0.0695518032 2947.1081542969 0.0006034039 - -0.0682528168 2947.1735839844 0.0006051511 - -0.0669537112 2947.5764160156 0.0006064270 - -0.0656544939 2945.4941406250 0.0006103711 - -0.0643551648 2947.8679199219 0.0006115781 - -0.0630557314 2948.2167968750 0.0006144177 - -0.0617561825 2947.6105957031 0.0006161798 - -0.0604565330 2946.5751953125 0.0006194366 - -0.0591567792 2948.1452636719 0.0006207041 - -0.0578569286 2947.8278808594 0.0006234637 - -0.0565569773 2947.7690429688 0.0006244788 - -0.0552569292 2948.8417968750 0.0006281286 - -0.0539567880 2948.6110839844 0.0006291075 - -0.0526565574 2948.3769531250 0.0006317310 - -0.0513562374 2948.1635742188 0.0006328244 - -0.0500558279 2949.7172851562 0.0006356444 - -0.0487553366 2947.6591796875 0.0006377026 - -0.0474547595 2948.1157226562 0.0006404882 - -0.0461541042 2947.4047851562 0.0006414047 - -0.0448533669 2949.9645996094 0.0006441455 - -0.0435525589 2950.0004882812 0.0006450163 - -0.0422516726 2948.6508789062 0.0006477032 - -0.0409507193 2950.7736816406 0.0006482685 - -0.0396496914 2949.7358398438 0.0006511230 - -0.0383486003 2949.4653320312 0.0006518671 - -0.0370474420 2950.2856445312 0.0006544907 - -0.0357462205 2949.8405761719 0.0006555719 - -0.0344449393 2951.3513183594 0.0006579701 - -0.0331436023 2949.0166015625 0.0006593969 - -0.0318422057 2951.2963867188 0.0006596195 - -0.0305407550 2951.4919433594 0.0006618621 - -0.0292392541 2950.4702148438 0.0006631771 - -0.0279377028 2950.1752929688 0.0006653275 - -0.0266361050 2950.8085937500 0.0006662263 - -0.0253344607 2950.1003417969 0.0006682556 - -0.0240327735 2951.2036132812 0.0006684111 - -0.0227310471 2950.9289550781 0.0006711911 - -0.0214292817 2951.5332031250 0.0006712163 - -0.0201274790 2953.3781738281 0.0006736815 - -0.0188256428 2952.1467285156 0.0006746631 - -0.0175237749 2952.5166015625 0.0006765798 - -0.0162218772 2951.0524902344 0.0006768322 - -0.0149199516 2951.8515625000 0.0006792517 - -0.0136180008 2952.4689941406 0.0006796122 - -0.0123160267 2951.6999511719 0.0006817356 - -0.0110140322 2950.9577636719 0.0006827908 - -0.0097120190 2953.2834472656 0.0006819656 - -0.0084099891 2952.1608886719 0.0006845398 - -0.0071079452 2953.0800781250 0.0006845566 - -0.0058058891 2952.1145019531 0.0006867833 - -0.0045038229 2954.3903808594 0.0006861798 - -0.0032017494 2952.9433593750 0.0006886832 - -0.0018996703 2954.3488769531 0.0006889217 - -0.0005975882 2953.0014648438 0.0006914129 - 0.0007044951 2954.5441894531 0.0006909007 - 0.0020065771 2954.8049316406 0.0006925836 - 0.0033086557 2953.9042968750 0.0006925426 - 0.0046107289 2953.8906250000 0.0006951233 - 0.0059127938 2953.9108886719 0.0006944854 - 0.0072148493 2953.9436035156 0.0006967792 - 0.0085168919 2953.6118164062 0.0006966824 - 0.0098189209 2954.3327636719 0.0006980821 - 0.0111209322 2955.5590820312 0.0006981799 - 0.0124229258 2955.5480957031 0.0006975373 - 0.0137248980 2955.1557617188 0.0006994279 - 0.0150268460 2956.0751953125 0.0006991932 - 0.0163287688 2955.4953613281 0.0007009646 - 0.0176306646 2955.0104980469 0.0007010121 - 0.0189325307 2956.6342773438 0.0007025125 - 0.0202343650 2955.1257324219 0.0007023504 - 0.0215361640 2956.1298828125 0.0007041488 - 0.0228379257 2955.3701171875 0.0007035248 - 0.0241396502 2956.5644531250 0.0007050028 - 0.0254413337 2956.0310058594 0.0007049916 - 0.0267429724 2956.0954589844 0.0007064445 - 0.0280445684 2955.7614746094 0.0007057050 - 0.0293461140 2958.0769042969 0.0007071998 - 0.0306476112 2956.1979980469 0.0007066699 - 0.0319490582 2956.4384765625 0.0007059611 - 0.0332504474 2957.4372558594 0.0007075220 - 0.0345517844 2956.4248046875 0.0007068319 - 0.0358530581 2956.0744628906 0.0007083653 - 0.0371542759 2959.0124511719 0.0007071495 - 0.0384554267 2957.7126464844 0.0007091467 - 0.0397565141 2957.9523925781 0.0007088040 - 0.0410575345 2957.6523437500 0.0007101772 - 0.0423584841 2958.5512695312 0.0007087439 - 0.0436593629 2959.0935058594 0.0007104804 - 0.0449601673 2958.6855468750 0.0007095528 - 0.0462608971 2958.9621582031 0.0007110089 - 0.0475615449 2959.6552734375 0.0007095663 - 0.0488621145 2959.0500488281 0.0007113218 - 0.0501626022 2956.8391113281 0.0007101907 - 0.0514630005 2959.8933105469 0.0007095272 - 0.0527633168 2958.8676757812 0.0007104133 - 0.0540635400 2959.7487792969 0.0007093959 - 0.0553636737 2959.1513671875 0.0007103826 - 0.0566637106 2959.5393066406 0.0007092687 - 0.0579636544 2961.4077148438 0.0007109833 - 0.0592635013 2960.2805175781 0.0007094597 - 0.0605632439 2961.9350585938 0.0007106541 - 0.0618628860 2960.7189941406 0.0007090503 - 0.0631624237 2959.5375976562 0.0007103011 - 0.0644618496 2960.5090332031 0.0007093241 - 0.0657611713 2960.1381835938 0.0007106783 - 0.0670603812 2962.1113281250 0.0007092785 - 0.0683594719 2960.5312500000 0.0007079518 - 0.0696584508 2961.7033691406 0.0007085423 - 0.0709573179 2960.8964843750 0.0007073283 - 0.0722560585 2960.2856445312 0.0007088357 - 0.0735546723 2962.5754394531 0.0007068170 - 0.0748531669 2960.2875976562 0.0007086736 - 0.0761515349 2961.6733398438 0.0007061628 - 0.0774497688 2961.6252441406 0.0007074852 - 0.0787478760 2962.3395996094 0.0007049823 - 0.0800458491 2962.8051757812 0.0007070238 - 0.0813436881 2962.0158691406 0.0007048510 - 0.0826413855 2962.4196777344 0.0007061698 - 0.0839389488 2961.6379394531 0.0007038652 - 0.0852363631 2963.1591796875 0.0007020165 - 0.0865336359 2963.2204589844 0.0007034051 - 0.0878307596 2961.3947753906 0.0007019308 - 0.0891277343 2963.6501464844 0.0007017357 - 0.0904245600 2964.0705566406 0.0007001865 - 0.0917212367 2963.8066406250 0.0007006996 - 0.0930177495 2964.1459960938 0.0006986381 - 0.0943141058 2965.2873535156 0.0006994251 - 0.0956103057 2963.7036132812 0.0006973175 - 0.0969063416 2963.6184082031 0.0006979336 - 0.0982022211 2964.4594726562 0.0006960286 - 0.0994979218 2963.5485839844 0.0006964984 - 0.1007934585 2964.8066406250 0.0006948272 - 0.1020888314 2964.9782714844 0.0006949240 - 0.1033840179 2964.7583007812 0.0006933468 - 0.1046790406 2963.7983398438 0.0006918060 - 0.1059738770 2966.5529785156 0.0006907783 - 0.1072685421 2966.2192382812 0.0006890311 - 0.1085630208 2965.7006835938 0.0006899079 - 0.1098573133 2966.1958007812 0.0006874022 - 0.1111514270 2965.3693847656 0.0006879787 - 0.1124453470 2966.2189941406 0.0006855326 - 0.1137390733 2965.4147949219 0.0006856457 - 0.1150326133 2966.3527832031 0.0006839898 - 0.1163259521 2966.2517089844 0.0006833230 - 0.1176190972 2967.0463867188 0.0006814273 - 0.1189120412 2965.9577636719 0.0006818846 - 0.1202047840 2966.9128417969 0.0006787875 - 0.1214973256 2966.5175781250 0.0006792536 - 0.1227896586 2966.3012695312 0.0006773444 - 0.1240817830 2966.8242187500 0.0006744354 - 0.1253737062 2966.3750000000 0.0006747483 - 0.1266653985 2968.4089355469 0.0006714887 - 0.1279568970 2967.8166503906 0.0006722976 - 0.1292481571 2968.7951660156 0.0006694598 - 0.1305392087 2966.7238769531 0.0006701294 - 0.1318300515 2967.4440917969 0.0006669192 - 0.1331206560 2968.9045410156 0.0006663864 - 0.1344110370 2968.2358398438 0.0006645713 - 0.1357011795 2968.2856445312 0.0006643324 - 0.1369911134 2967.8620605469 0.0006608232 - 0.1382807940 2968.8459472656 0.0006611389 - 0.1395702511 2968.3381347656 0.0006584576 - 0.1408594847 2969.9624023438 0.0006581182 - 0.1421484649 2969.2485351562 0.0006562360 - 0.1434372067 2968.4924316406 0.0006529428 - 0.1447256953 2970.3894042969 0.0006523822 - 0.1460139453 2970.8745117188 0.0006496422 - 0.1473019570 2970.7099609375 0.0006491696 - 0.1485897005 2970.3132324219 0.0006471719 - 0.1498772055 2971.1230468750 0.0006462256 - 0.1511644572 2969.3994140625 0.0006440752 - 0.1524514556 2969.9719238281 0.0006435388 - 0.1537381858 2971.1623535156 0.0006399578 - 0.1550246626 2972.6428222656 0.0006398084 - 0.1563108712 2972.0522460938 0.0006369548 - 0.1575968117 2970.9631347656 0.0006363299 - 0.1588824838 2970.6386718750 0.0006341790 - 0.1601679027 2971.4357910156 0.0006334623 - 0.1614530385 2971.7966308594 0.0006304663 - 0.1627379060 2971.7180175781 0.0006298847 - 0.1640224904 2972.4067382812 0.0006273980 - 0.1653067917 2971.9511718750 0.0006268476 - 0.1665908247 2970.9628906250 0.0006239344 - 0.1678745747 2973.2314453125 0.0006206664 - 0.1691580266 2972.3952636719 0.0006202874 - 0.1704412103 2974.2255859375 0.0006173234 - 0.1717240959 2972.7519531250 0.0006169635 - 0.1730066836 2971.1413574219 0.0006146794 - 0.1742889881 2973.7280273438 0.0006135628 - 0.1755709946 2972.9255371094 0.0006112042 - 0.1768527031 2973.5178222656 0.0006105565 - 0.1781341136 2975.2932128906 0.0006072368 - 0.1794152260 2973.0407714844 0.0006071348 - 0.1806960255 2973.0898437500 0.0006046067 - 0.1819765270 2974.1904296875 0.0006036311 - 0.1832567006 2974.7795410156 0.0006009289 - 0.1845365912 2974.2116699219 0.0006006341 - 0.1858161539 2973.0422363281 0.0005983296 - 0.1870954037 2975.1613769531 0.0005974052 - 0.1883743256 2973.6992187500 0.0005952558 - 0.1896529496 2975.6540527344 0.0005947030 - 0.1909312308 2973.9099121094 0.0005926723 - 0.1922091991 2974.6772460938 0.0005916841 - 0.1934868395 2974.9821777344 0.0005897372 - 0.1947641522 2976.2966308594 0.0005892343 - 0.1960411370 2975.3063964844 0.0005864738 - 0.1973177940 2975.7194824219 0.0005844440 - 0.1985941082 2975.0458984375 0.0005843560 - 0.1998700798 2976.6643066406 0.0005815695 - 0.2011457235 2975.5654296875 0.0005825027 - 0.2024210244 2975.5488281250 0.0005798405 - 0.2036959827 2977.1220703125 0.0005799369 - 0.2049705982 2976.5158691406 0.0005778368 - 0.2062448561 2978.2770996094 0.0005774284 - 0.2075187713 2977.8847656250 0.0005764123 - 0.2087923288 2977.2033691406 0.0005764519 - 0.2100655437 2977.7722167969 0.0005746777 - 0.2113383859 2977.4375000000 0.0005755173 - 0.2126108855 2977.1984863281 0.0005739015 - 0.2138830125 2978.1196289062 0.0005739154 - 0.2151547819 2978.6635742188 0.0005725594 - 0.2164261937 2977.4121093750 0.0005735890 - 0.2176972330 2977.9641113281 0.0005723694 - 0.2189678997 2978.1013183594 0.0005735615 - 0.2202382088 2978.3073730469 0.0005721659 - 0.2215081304 2979.4799804688 0.0005735853 - 0.2227776796 2978.0664062500 0.0005732561 - 0.2240468413 2978.3273925781 0.0005746023 - 0.2253156453 2978.0510253906 0.0005742870 - 0.2265840471 2978.7778320312 0.0005755210 - 0.2278520763 2980.4323730469 0.0005752970 - 0.2291197181 2979.5163574219 0.0005772128 - 0.2303869724 2979.5686035156 0.0005773311 - 0.2316538244 2980.5173339844 0.0005787387 - 0.2329202890 2980.6259765625 0.0005802140 - 0.2341863662 2980.9189453125 0.0005826554 - 0.2354520410 2980.0502929688 0.0005839895 - 0.2367173135 2981.9489746094 0.0005859239 - 0.2379821986 2980.1313476562 0.0005876902 - 0.2392466664 2980.6479492188 0.0005903179 - 0.2405107319 2981.1826171875 0.0005922075 - 0.2417743951 2980.1823730469 0.0005964637 - 0.2430376410 2981.3786621094 0.0005982057 - 0.2443004698 2980.9897460938 0.0006026230 - 0.2455628961 2982.6188964844 0.0006041322 - 0.2468249053 2980.5603027344 0.0006095665 - 0.2480864972 2981.7109375000 0.0006119711 - 0.2493476570 2981.5280761719 0.0006177393 - 0.2506084144 2981.4272460938 0.0006206241 - 0.2518687248 2982.8544921875 0.0006255223 - 0.2531286180 2982.6242675781 0.0006306423 - 0.2543880641 2983.0795898438 0.0006363643 - 0.2556471229 2983.9965820312 0.0006405925 - 0.2569057047 2982.1093750000 0.0006480380 - 0.2581638694 2981.6506347656 0.0006531938 - 0.2594215870 2983.1796875000 0.0006604330 - 0.2606788874 2983.2534179688 0.0006670337 - 0.2619357109 2984.3544921875 0.0006746184 - 0.2631921172 2983.6215820312 0.0006811908 - 0.2644480765 2983.7014160156 0.0006900860 - 0.2657035887 2984.5412597656 0.0006975178 - 0.2669586241 2984.7221679688 0.0007068051 - 0.2682132423 2985.2719726562 0.0007149794 - 0.2694673836 2982.5390625000 0.0007263543 - 0.2707210779 2984.1198730469 0.0007349488 - 0.2719742954 2984.6230468750 0.0007464997 - 0.2732270658 2984.1174316406 0.0007568849 - 0.2744793892 2984.9462890625 0.0007691563 - 0.2757312059 2984.9174804688 0.0007797112 - 0.2769826055 2984.7492675781 0.0007928449 - 0.2782334983 2986.6088867188 0.0008050862 - 0.2794839442 2985.9577636719 0.0008181145 - 0.2807338834 2985.2250976562 0.0008318196 - 0.2819833755 2985.8410644531 0.0008471946 - 0.2832323611 2985.1738281250 0.0008615532 - 0.2844808996 2986.3833007812 0.0008779385 - 0.2857289314 2985.9458007812 0.0008937074 - 0.2869764864 2987.1359863281 0.0009102833 - 0.2882235646 2986.9462890625 0.0009273090 - 0.2894701660 2986.5329589844 0.0009470475 - 0.2907162309 2986.6518554688 0.0009649084 - 0.2919618487 2986.6660156250 0.0009842200 - 0.2932069600 2987.2880859375 0.0010043302 - 0.2944515646 2986.7265625000 0.0010264332 - 0.2956956625 2988.7761230469 0.0010462897 - 0.2969392538 2986.8386230469 0.0010698863 - 0.2981823683 2987.3723144531 0.0010922577 - 0.2994249761 2988.9660644531 0.0011169508 - 0.3006670475 2988.0187988281 0.0011398689 - 0.3019086421 2988.6567382812 0.0011672075 - 0.3031497002 2989.1950683594 0.0011934023 - 0.3043902516 2989.1452636719 0.0012209432 - 0.3056302965 2989.9636230469 0.0012489613 - 0.3068698049 2986.7343750000 0.0012785472 - 0.3081088066 2989.8684082031 0.0013084440 - 0.3093473017 2988.0270996094 0.0013387474 - 0.3105852306 2990.1105957031 0.0013715412 - 0.3118226826 2988.6818847656 0.0014039341 - 0.3130595684 2989.9880371094 0.0014381007 - 0.3142959177 2989.9414062500 0.0014721074 - 0.3155317605 2991.1811523438 0.0015088054 - 0.3167670667 2990.4606933594 0.0015447792 - 0.3180018365 2990.2248535156 0.0015848894 - 0.3192360401 2989.9006347656 0.0016231651 - 0.3204697371 2989.7558593750 0.0016634120 - 0.3217028677 2990.8354492188 0.0017051141 - 0.3229354620 2991.1838378906 0.0017481679 - 0.3241674900 2990.5207519531 0.0017917703 - 0.3253990114 2990.4492187500 0.0018388589 - 0.3266299367 2991.0512695312 0.0018847204 - 0.3278603256 2991.3669433594 0.0019314785 - 0.3290901780 2992.7373046875 0.0019818153 - 0.3303194344 2990.8356933594 0.0020321943 - 0.3315481544 2990.5607910156 0.0020835057 - 0.3327763081 2991.2666015625 0.0021371823 - 0.3340038955 2992.1538085938 0.0021916493 - 0.3352309167 2991.8281250000 0.0022467729 - 0.3364573717 2992.8344726562 0.0023048974 - 0.3376832604 2993.2287597656 0.0023626259 - 0.3389085829 2992.8420410156 0.0024246234 - 0.3401333094 2992.5598144531 0.0024870308 - 0.3413574696 2992.7456054688 0.0025499112 - 0.3425810635 2992.1613769531 0.0026159422 - 0.3438040614 2991.9997558594 0.0026813271 - 0.3450264633 2992.1000976562 0.0027504722 - 0.3462482989 2994.0800781250 0.0028205600 - 0.3474695683 2993.6511230469 0.0028926404 - 0.3486902118 2993.4941406250 0.0029665604 - 0.3499102890 2993.9306640625 0.0030419114 - 0.3511297405 2993.2246093750 0.0031173485 - 0.3523486257 2994.1733398438 0.0031975419 - 0.3535669148 2993.4970703125 0.0032758238 - 0.3547845781 2994.8310546875 0.0033594063 - 0.3560016751 2993.5275878906 0.0034428122 - 0.3572181463 2994.6738281250 0.0035294998 - 0.3584340215 2995.1306152344 0.0036184452 - 0.3596492708 2995.6828613281 0.0037067006 - 0.3608639240 2994.2304687500 0.0037988368 - 0.3620779812 2993.9824218750 0.0038917232 - 0.3632914126 2995.3710937500 0.0039881575 - 0.3645042181 2994.1479492188 0.0040858742 - 0.3657163978 2994.5708007812 0.0041878521 - 0.3669279814 2995.2197265625 0.0042899381 - 0.3681389391 2996.1677246094 0.0043925783 - 0.3693492413 2995.5380859375 0.0044991570 - 0.3705589473 2996.1210937500 0.0046068737 - 0.3717680275 2997.6215820312 0.0047173565 - 0.3729764819 2998.0463867188 0.0048276009 - 0.3741842806 2996.3190917969 0.0049439967 - 0.3753914535 2996.3315429688 0.0050597088 - 0.3765980005 2998.3076171875 0.0051779207 - 0.3778038919 2996.4575195312 0.0052997395 - 0.3790091574 2997.4760742188 0.0054254476 - 0.3802137673 2998.0148925781 0.0055476204 - 0.3814177513 2996.1801757812 0.0056766514 - 0.3826210797 2997.4826660156 0.0058099013 - 0.3838237524 2997.1884765625 0.0059357807 - 0.3850257695 2997.8298339844 0.0060742628 - 0.3862271309 2998.7712402344 0.0062100831 - 0.3874278665 2999.6176757812 0.0063465694 - 0.3886279166 2999.1914062500 0.0064902119 - 0.3898273408 2999.4890136719 0.0066330265 - 0.3910260797 2997.9116210938 0.0067816190 - 0.3922241628 2998.7653808594 0.0069282874 - 0.3934215605 2998.9152832031 0.0070772925 - 0.3946183026 2999.3674316406 0.0072300481 - 0.3958143890 2999.0314941406 0.0073836511 - 0.3970097899 2999.9597167969 0.0075422637 - 0.3982045352 2999.8774414062 0.0076999124 - 0.3993985951 2999.4616699219 0.0078637265 - 0.4005919695 3001.4384765625 0.0080259461 - 0.4017846584 3000.8439941406 0.0081898868 - 0.4029766917 3000.8005371094 0.0083605535 - 0.4041680396 2998.6628417969 0.0085333511 - 0.4053586721 2999.7885742188 0.0087055005 - 0.4065486491 2998.8669433594 0.0088802557 - 0.4077379107 3000.2968750000 0.0090602860 - 0.4089265168 3001.0900878906 0.0092356503 - 0.4101144075 3000.7507324219 0.0094181336 - 0.4113016129 2999.4870605469 0.0095992461 - 0.4124881029 3000.5917968750 0.0097851735 - 0.4136739075 2999.8630371094 0.0099733658 - 0.4148589969 3000.8227539062 0.0101646967 - 0.4160434008 3001.9296875000 0.0103560798 - 0.4172270894 3000.7055664062 0.0105494615 - 0.4184100628 3001.5244140625 0.0107437298 - 0.4195923209 3000.3039550781 0.0109424852 - 0.4207738936 3002.0185546875 0.0111379493 - 0.4219547510 3003.0727539062 0.0113384482 - 0.4231348634 3002.6442871094 0.0115422793 - 0.4243142903 3003.1711425781 0.0117456838 - 0.4254930019 3002.8129882812 0.0119512044 - 0.4266709685 3002.5617675781 0.0121577233 - 0.4278482199 3001.2272949219 0.0123700127 - 0.4290247262 3003.3876953125 0.0125790685 - 0.4302005470 3003.6186523438 0.0127909817 - 0.4313756227 3003.5661621094 0.0130075421 - 0.4325499535 3001.7897949219 0.0132181589 - 0.4337235391 3002.4428710938 0.0134356618 - 0.4348964095 3003.6894531250 0.0136523377 - 0.4360685647 3004.9218750000 0.0138706639 - 0.4372399449 3004.3994140625 0.0140923467 - 0.4384105802 3004.1137695312 0.0143128335 - 0.4395805001 3003.8159179688 0.0145362169 - 0.4407496750 3002.8471679688 0.0147583857 - 0.4419180751 3003.6933593750 0.0149838999 - 0.4430857599 3003.6901855469 0.0152017735 - 0.4442526698 3004.4738769531 0.0154285245 - 0.4454188347 3005.5673828125 0.0156575069 - 0.4465842247 3003.9743652344 0.0158802569 - 0.4477488697 3004.8295898438 0.0161086321 - 0.4489127696 3006.0625000000 0.0163305886 - 0.4500758946 3005.1738281250 0.0165665038 - 0.4512382746 3004.9528808594 0.0167906508 - 0.4523998499 3005.3679199219 0.0170181058 - 0.4535607100 3006.9282226562 0.0172449723 - 0.4547207654 3005.0651855469 0.0174739063 - 0.4558800459 3006.3298339844 0.0177038126 - 0.4570385814 3004.9545898438 0.0179302618 - 0.4581963122 3007.0397949219 0.0181584209 - 0.4593532979 3005.8535156250 0.0183885433 - 0.4605094790 3005.9221191406 0.0186168402 - 0.4616648853 3006.6013183594 0.0188391656 - 0.4628195167 3006.8073730469 0.0190650485 - 0.4639733732 3007.7976074219 0.0192933902 - 0.4651264250 3005.4018554688 0.0195178427 - 0.4662786722 3005.9716796875 0.0197436251 - 0.4674301744 3006.7126464844 0.0199689567 - 0.4685808420 3006.7814941406 0.0201883018 - 0.4697307348 3007.4208984375 0.0204063356 - 0.4708798230 3006.2758789062 0.0206283033 - 0.4720281363 3007.7497558594 0.0208525956 - 0.4731756151 3006.8398437500 0.0210677087 - 0.4743223190 3008.2292480469 0.0212839842 - 0.4754681885 3006.3374023438 0.0215032548 - 0.4766132832 3007.8178710938 0.0217130668 - 0.4777575433 3007.6279296875 0.0219247416 - 0.4789010286 3007.9323730469 0.0221325420 - 0.4800436795 3006.9531250000 0.0223521478 - 0.4811854959 3008.4597167969 0.0225526020 - 0.4823265374 3008.9147949219 0.0227564722 - 0.4834667444 3006.8569335938 0.0229602642 - 0.4846061170 3008.6660156250 0.0231641680 - 0.4857446849 3009.2451171875 0.0233611688 - 0.4868824184 3009.5827636719 0.0235571824 - 0.4880193472 3010.0715332031 0.0237499774 - 0.4891554415 3009.0644531250 0.0239411369 - 0.4902906716 3008.8342285156 0.0241341814 - 0.4914250970 3008.5664062500 0.0243254118 - 0.4925587177 3007.7551269531 0.0245116949 - 0.4936914742 3009.2458496094 0.0246946849 - 0.4948233962 3010.0908203125 0.0248697512 - 0.4959544539 3010.7358398438 0.0250514969 - 0.4970847070 3009.0000000000 0.0252241530 - 0.4982140958 3009.4667968750 0.0253970549 - 0.4993426502 3009.0341796875 0.0255669281 - 0.5004703403 3011.2829589844 0.0257332176 - 0.5015972257 3010.0334472656 0.0258961208 - 0.5027232170 3009.3945312500 0.0260616355 - 0.5038483739 3009.4572753906 0.0262173936 - 0.5049726963 3009.5903320312 0.0263713077 - 0.5060961246 3009.3889160156 0.0265251994 - 0.5072187185 3010.6882324219 0.0266735330 - 0.5083404779 3011.7587890625 0.0268152319 - 0.5094613433 3010.9179687500 0.0269587897 - 0.5105813146 3011.4958496094 0.0270953476 - 0.5117004514 3010.1525878906 0.0272338688 - 0.5128187537 3011.5161132812 0.0273681432 - 0.5139361024 3012.5695800781 0.0274966843 - 0.5150526762 3011.6135253906 0.0276236124 - 0.5161682963 3012.5175781250 0.0277456418 - 0.5172830820 3011.0847167969 0.0278661735 - 0.5183969736 3010.8403320312 0.0279837213 - 0.5195100307 3011.8366699219 0.0280953906 - 0.5206221342 3012.7133789062 0.0282028131 - 0.5217334032 3011.7741699219 0.0283108354 - 0.5228437781 3013.5517578125 0.0284124278 - 0.5239532590 3010.7204589844 0.0285172090 - 0.5250619054 3011.0947265625 0.0286126211 - 0.5261695981 3010.4511718750 0.0287029892 - 0.5272763968 3012.2976074219 0.0287949890 - 0.5283823609 3011.5393066406 0.0288800597 - 0.5294873714 3011.4418945312 0.0289638937 - 0.5305914879 3012.4147949219 0.0290402919 - 0.5316947103 3011.7990722656 0.0291161388 - 0.5327970386 3012.7775878906 0.0291861743 - 0.5338984728 3012.4372558594 0.0292573720 - 0.5349990129 3013.3918457031 0.0293199942 - 0.5360985994 3012.0175781250 0.0293813199 - 0.5371973515 3011.5842285156 0.0294431522 - 0.5382951498 3011.4052734375 0.0294998810 - 0.5393919945 3011.6406250000 0.0295531303 - 0.5404880047 3012.9418945312 0.0295989439 - 0.5415830016 3013.5991210938 0.0296398327 - 0.5426771641 3012.9379882812 0.0296874493 - 0.5437703729 3014.3813476562 0.0297221467 - 0.5448626876 3012.7326660156 0.0297621861 - 0.5459540486 3012.7802734375 0.0297934487 - 0.5470444560 3013.8823242188 0.0298198536 - 0.5481339693 3012.1721191406 0.0298452303 - 0.5492225885 3013.6437988281 0.0298687667 - 0.5503102541 3014.1218261719 0.0298874304 - 0.5513969660 3012.4304199219 0.0299044624 - 0.5524827242 3012.2578125000 0.0299200714 - 0.5535675883 3013.6826171875 0.0299270973 - 0.5546514988 3014.7529296875 0.0299324989 - 0.5557344556 3013.2338867188 0.0299401805 - 0.5568165183 3014.1728515625 0.0299400687 - 0.5578975677 3015.3227539062 0.0299343914 - 0.5589777231 3015.5083007812 0.0299261585 - 0.5600569248 3014.3432617188 0.0299242139 - 0.5611351728 3015.4570312500 0.0299102888 - 0.5622124672 3015.5122070312 0.0298975632 - 0.5632888079 3013.5363769531 0.0298870727 - 0.5643641353 3014.0957031250 0.0298668444 - 0.5654385686 3014.7338867188 0.0298411846 - 0.5665120482 3015.1923828125 0.0298199728 - 0.5675845742 3014.1435546875 0.0297938585 - 0.5686560869 3015.5344238281 0.0297592059 - 0.5697267056 3014.2192382812 0.0297333002 - 0.5707963109 3015.4353027344 0.0296963900 - 0.5718649626 3014.8603515625 0.0296606049 - 0.5729326010 3014.5590820312 0.0296215415 - 0.5739993453 3015.1303710938 0.0295790881 - 0.5750650764 3014.3261718750 0.0295350403 - 0.5761297941 3016.0136718750 0.0294846892 - 0.5771936178 3015.9184570312 0.0294354185 - 0.5782563686 3016.1384277344 0.0293846726 - 0.5793182254 3015.1191406250 0.0293334052 - 0.5803790689 3015.2741699219 0.0292789564 - 0.5814388990 3015.1601562500 0.0292180181 - 0.5824977756 3014.2023925781 0.0291613415 - 0.5835556388 3014.7866210938 0.0290981382 - 0.5846125484 3015.6813964844 0.0290294662 - 0.5856684446 3015.8759765625 0.0289643109 - 0.5867233276 3015.8933105469 0.0288999155 - 0.5877772570 3016.8449707031 0.0288246349 - 0.5888301730 3016.4523925781 0.0287540406 - 0.5898820758 3014.1193847656 0.0286873281 - 0.5909330249 3015.3933105469 0.0286052376 - 0.5919829607 3016.1459960938 0.0285265371 - 0.5930318236 3015.8864746094 0.0284529552 - 0.5940797329 3015.5622558594 0.0283687189 - 0.5951266289 3015.4291992188 0.0282857269 - 0.5961725712 3015.5390625000 0.0282001123 - 0.5972174406 3016.2443847656 0.0281142667 - 0.5982612967 3015.7280273438 0.0280284137 - 0.5993041396 3016.2749023438 0.0279407576 - 0.6003459692 3014.9829101562 0.0278500393 - 0.6013867855 3014.5842285156 0.0277603939 - 0.6024265885 3015.8457031250 0.0276617333 - 0.6034653783 3014.9484863281 0.0275723115 - 0.6045031548 3016.5061035156 0.0274754241 - 0.6055398583 3015.3188476562 0.0273784548 - 0.6065755486 3017.1535644531 0.0272702351 - 0.6076102257 3015.0468750000 0.0271796286 - 0.6086438894 3017.8771972656 0.0270742923 - 0.6096764803 3015.1706542969 0.0269741118 - 0.6107080579 3015.3283691406 0.0268747583 - 0.6117386222 3015.2163085938 0.0267670900 - 0.6127681136 3015.8161621094 0.0266614929 - 0.6137965918 3016.2524414062 0.0265466049 - 0.6148240566 3014.8020019531 0.0264505036 - 0.6158504486 3016.4123535156 0.0263381787 - 0.6168757677 3017.0209960938 0.0262218453 - 0.6179000735 3014.3781738281 0.0261223130 - 0.6189233065 3016.8837890625 0.0260081999 - 0.6199455261 3016.1503906250 0.0258922130 - 0.6209666729 3016.7836914062 0.0257722773 - 0.6219867468 3016.3417968750 0.0256675221 - 0.6230058074 3016.5781250000 0.0255529545 - 0.6240237951 3015.8474121094 0.0254310444 - 0.6250407100 3015.5024414062 0.0253213495 - 0.6260565519 3016.4245605469 0.0252009332 - 0.6270713806 3016.1508789062 0.0250849016 - 0.6280850768 3017.0942382812 0.0249597095 - 0.6290977597 3016.0302734375 0.0248479545 - 0.6301093698 3017.0417480469 0.0247253813 - 0.6311199069 3015.9653320312 0.0246024281 - 0.6321294308 3014.7954101562 0.0244925618 - 0.6331378222 3016.8454589844 0.0243649818 - 0.6341451406 3016.6184082031 0.0242414996 - 0.6351513863 3016.3029785156 0.0241184346 - 0.6361565590 3016.3925781250 0.0240011290 - 0.6371606588 3016.4499511719 0.0238732956 - 0.6381636858 3016.5258789062 0.0237444602 - 0.6391655803 3018.2770996094 0.0236193761 - 0.6401664615 3014.7409667969 0.0235063061 - 0.6411662102 3015.5163574219 0.0233777538 - 0.6421648860 3015.5561523438 0.0232501216 - 0.6431624889 3016.0366210938 0.0231289305 - 0.6441589594 3015.9919433594 0.0229993090 - 0.6451543570 3015.4741210938 0.0228759646 - 0.6461486816 3016.6396484375 0.0227436312 - 0.6471419334 3015.7885742188 0.0226273909 - 0.6481340528 3017.4228515625 0.0224956982 - 0.6491250396 3016.9768066406 0.0223668776 - 0.6501149535 3015.0241699219 0.0222393908 - 0.6511037946 3015.3432617188 0.0221197270 - 0.6520915031 3015.7036132812 0.0219900534 - 0.6530781388 3015.8505859375 0.0218562074 - 0.6540636420 3016.9677734375 0.0217224509 - 0.6550480127 3016.2739257812 0.0216097571 - 0.6560313106 3015.8039550781 0.0214796662 - 0.6570134759 3017.0737304688 0.0213481709 - 0.6579945087 3014.8571777344 0.0212178230 - 0.6589744687 3016.2102050781 0.0210948437 - 0.6599532962 3015.7817382812 0.0209659263 - 0.6609309912 3017.1188964844 0.0208330527 - 0.6619075537 3015.6376953125 0.0207082629 - 0.6628830433 3016.0539550781 0.0205863342 - 0.6638573408 3016.0295410156 0.0204535797 - 0.6648305655 3014.2045898438 0.0203235969 - 0.6658026576 3016.0817871094 0.0201951861 - 0.6667736173 3014.8842773438 0.0200728849 - 0.6677434444 3014.8256835938 0.0199428611 - 0.6687121391 3015.1142578125 0.0198181197 - 0.6696797013 3016.0429687500 0.0196850672 - 0.6706461310 3015.3303222656 0.0195673704 - 0.6716114283 3014.2199707031 0.0194409788 - 0.6725755334 3016.1325683594 0.0193095990 - 0.6735385656 3016.7260742188 0.0191760883 - 0.6745004654 3015.8640136719 0.0190586969 - 0.6754611731 3015.8439941406 0.0189286917 - 0.6764207482 3014.5861816406 0.0188072249 - 0.6773791909 3015.3745117188 0.0186775923 - 0.6783364415 3014.9438476562 0.0185616463 - 0.6792925596 3015.2397460938 0.0184318721 - 0.6802475452 3015.7575683594 0.0183050595 - 0.6812013984 3014.4665527344 0.0181747526 - 0.6821540594 3014.3120117188 0.0180610940 - 0.6831055880 3015.0180664062 0.0179359280 - 0.6840559244 3014.9091796875 0.0178068355 - 0.6850051284 3014.5844726562 0.0176818557 - 0.6859531403 3015.2077636719 0.0175564215 - 0.6869000196 3013.3796386719 0.0174425989 - 0.6878457665 3012.9572753906 0.0173172466 - 0.6887903214 3014.7434082031 0.0171916261 - 0.6897336841 3014.1142578125 0.0170673281 - 0.6906758547 3015.0739746094 0.0169542842 - 0.6916168928 3014.9672851562 0.0168304928 - 0.6925567985 3013.7028808594 0.0167057104 - 0.6934954524 3015.4074707031 0.0165788867 - 0.6944329739 3013.7573242188 0.0164720491 - 0.6953693032 3014.0432128906 0.0163472891 - 0.6963044405 3013.2890625000 0.0162293166 - 0.6972384453 3014.6484375000 0.0161045045 - 0.6981712580 3014.3354492188 0.0159968548 - 0.6991028190 3014.7255859375 0.0158749633 - 0.7000332475 3012.9238281250 0.0157589428 - 0.7009624839 3014.7683105469 0.0156377219 - 0.7018905282 3013.2795410156 0.0155181885 - 0.7028174400 3014.5734863281 0.0154131278 - 0.7037431002 3013.3293457031 0.0152929202 - 0.7046675682 3012.5288085938 0.0151742734 - 0.7055908442 3013.1115722656 0.0150554143 - 0.7065129280 3013.5541992188 0.0149520487 - 0.7074338198 3013.1286621094 0.0148319975 - 0.7083534598 3010.9965820312 0.0147187226 - 0.7092719674 3012.9201660156 0.0145994201 - 0.7101892829 3013.0170898438 0.0144805275 - 0.7111053467 3011.7685546875 0.0143818185 - 0.7120202184 3014.0937500000 0.0142642036 - 0.7129338980 3012.4221191406 0.0141523480 - 0.7138463259 3011.0563964844 0.0140399374 - 0.7147575617 3012.6140136719 0.0139242969 - 0.7156676054 3011.1289062500 0.0138258114 - 0.7165764570 3013.5354003906 0.0137124285 - 0.7174840569 3012.3881835938 0.0136017352 - 0.7183904052 3011.8691406250 0.0134894811 - 0.7192956209 3012.5295410156 0.0133773014 - 0.7201995254 3011.3596191406 0.0132824332 - 0.7211022973 3011.7646484375 0.0131709948 - 0.7220038176 3012.1083984375 0.0130591132 - 0.7229040861 3012.0290527344 0.0129522420 - 0.7238031626 3009.9169921875 0.0128576867 - 0.7247009873 3009.3525390625 0.0127507001 - 0.7255975604 3010.5119628906 0.0126405247 - 0.7264929414 3011.8500976562 0.0125359558 - 0.7273870707 3011.8647460938 0.0124289691 - 0.7282800078 3009.7663574219 0.0123379342 - 0.7291716933 3010.2248535156 0.0122301280 - 0.7300621271 3009.8002929688 0.0121251754 - 0.7309513092 3009.4560546875 0.0120217353 - 0.7318392396 3009.9968261719 0.0119171739 - 0.7327259779 3010.9633789062 0.0118301921 - 0.7336114645 3009.9550781250 0.0117262416 - 0.7344956994 3009.0253906250 0.0116223469 - 0.7353786826 3010.5058593750 0.0115149580 - 0.7362604141 3010.2607421875 0.0114151500 - 0.7371408939 3010.2863769531 0.0113306418 - 0.7380201817 3009.7314453125 0.0112302490 - 0.7388981581 3009.5354003906 0.0111287870 - 0.7397748828 3008.7485351562 0.0110287853 - 0.7406503558 3009.9238281250 0.0109295473 - 0.7415246367 3011.0185546875 0.0108349137 - 0.7423976064 3007.7812500000 0.0107517540 - 0.7432693243 3008.5549316406 0.0106543005 - 0.7441397309 3007.9196777344 0.0105592161 - 0.7450089455 3010.0063476562 0.0104591362 - 0.7458768487 3009.2851562500 0.0103611238 - 0.7467435598 3008.6604003906 0.0102854334 - 0.7476089597 3008.1518554688 0.0101895966 - 0.7484730482 3007.8232421875 0.0100969952 - 0.7493359447 3008.7587890625 0.0099959224 - 0.7501975298 3007.4384765625 0.0099065043 - 0.7510578632 3007.7583007812 0.0098330472 - 0.7519168854 3006.9912109375 0.0097385924 - 0.7527746558 3007.9584960938 0.0096461959 - 0.7536311746 3006.9621582031 0.0095553678 - 0.7544863820 3007.8610839844 0.0094642639 - 0.7553402781 3005.9125976562 0.0093920417 - 0.7561929822 3006.2963867188 0.0093037598 - 0.7570443153 3005.5502929688 0.0092153698 - 0.7578943968 3005.2399902344 0.0091201458 - 0.7587432265 3007.5837402344 0.0090306699 - 0.7595907450 3006.7365722656 0.0089439359 - 0.7604370117 3005.3522949219 0.0088754743 - 0.7612819076 3005.3715820312 0.0087903459 - 0.7621256113 3006.6052246094 0.0087026041 - 0.7629679441 3005.5769042969 0.0086167976 - 0.7638090253 3006.0295410156 0.0085327886 - 0.7646487951 3005.8212890625 0.0084493160 - 0.7654872537 3003.4592285156 0.0083805211 - 0.7663244605 3004.3466796875 0.0082953162 - 0.7671602964 3004.8281250000 0.0082132146 - 0.7679948807 3003.9697265625 0.0081302300 - 0.7688281536 3004.2482910156 0.0080489293 - 0.7696601152 3006.1965332031 0.0079680346 - 0.7704908252 3003.5170898438 0.0079048723 - 0.7713201642 3003.6406250000 0.0078226980 - 0.7721481919 3004.7966308594 0.0077414811 - 0.7729749680 3003.7778320312 0.0076610912 - 0.7738003731 3004.1684570312 0.0075844228 - 0.7746245265 3002.3837890625 0.0075243004 - 0.7754473090 3002.5512695312 0.0074464940 - 0.7762688398 3003.0803222656 0.0073716566 - 0.7770889997 3003.0244140625 0.0072888285 - 0.7779078484 3004.1660156250 0.0072100013 - 0.7787253857 3001.5307617188 0.0071332045 - 0.7795416117 3002.6635742188 0.0070796870 - 0.7803565264 3001.7141113281 0.0070047602 - 0.7811700702 3001.0781250000 0.0069300383 - 0.7819823623 3002.2526855469 0.0068536587 - 0.7827932835 3000.5566406250 0.0067782141 - 0.7836028934 3001.9704589844 0.0067057908 - 0.7844111323 3000.4538574219 0.0066549461 - 0.7852180600 3001.5095214844 0.0065810699 - 0.7860236764 2999.9550781250 0.0065111518 - 0.7868279815 2998.6408691406 0.0064349007 - 0.7876309156 2999.9367675781 0.0063640364 - 0.7884325385 2998.7590332031 0.0062938537 - 0.7892327905 3000.4562988281 0.0062234458 - 0.7900317311 2999.6308593750 0.0061761905 - 0.7908293009 2998.8032226562 0.0061072279 - 0.7916255593 2999.6823730469 0.0060353279 - 0.7924205065 2998.1269531250 0.0059672762 - 0.7932140231 3001.0769042969 0.0058977772 - 0.7940062881 2998.7287597656 0.0058316030 - 0.7947971225 2997.6582031250 0.0057662614 - 0.7955866456 2997.6955566406 0.0057157781 - 0.7963748574 2997.7153320312 0.0056514516 - 0.7971616983 2997.0820312500 0.0055857860 - 0.7979471684 2997.2177734375 0.0055215545 - 0.7987312675 2997.6857910156 0.0054578558 - 0.7995140553 2997.3188476562 0.0053888019 - 0.8002954721 2996.6000976562 0.0053487774 - 0.8010755181 2995.1152343750 0.0052847657 - 0.8018542528 2997.6164550781 0.0052233785 - 0.8026315570 2997.2407226562 0.0051542800 - 0.8034075499 2995.6601562500 0.0050943289 - 0.8041821718 2996.4179687500 0.0050322767 - 0.8049554229 2995.8134765625 0.0049947836 - 0.8057273030 2993.7270507812 0.0049347412 - 0.8064978123 2995.4829101562 0.0048690345 - 0.8072670102 2995.1047363281 0.0048100520 - 0.8080347776 2995.1069335938 0.0047521517 - 0.8088011742 2994.0078125000 0.0046937782 - 0.8095662594 2995.2529296875 0.0046313442 - 0.8103299141 2993.1679687500 0.0045942217 - 0.8110921979 2994.0805664062 0.0045375843 - 0.8118531108 2992.1008300781 0.0044804867 - 0.8126127124 2993.8100585938 0.0044200998 - 0.8133708835 2992.9182128906 0.0043630749 - 0.8141276240 2992.0322265625 0.0043068975 - 0.8148830533 2992.5905761719 0.0042522438 - 0.8156371117 2992.2358398438 0.0041933693 - 0.8163897395 2991.2104492188 0.0041632187 - 0.8171409965 2991.9189453125 0.0041057132 - 0.8178908825 2992.1235351562 0.0040540826 - 0.8186393380 2992.0532226562 0.0039962307 - 0.8193864822 2991.5778808594 0.0039449725 - 0.8201321959 2991.1628417969 0.0038900115 - 0.8208764791 2990.7561035156 0.0038381722 - 0.8216194510 2989.7011718750 0.0037818495 - 0.8223609924 2988.8974609375 0.0037549511 - 0.8231011033 2990.1728515625 0.0037025474 - 0.8238398433 2988.6242675781 0.0036521349 - 0.8245772123 2989.7768554688 0.0035980120 - 0.8253131509 2987.9663085938 0.0035483520 - 0.8260477185 2989.7351074219 0.0034974050 - 0.8267808557 2988.4448242188 0.0034489911 - 0.8275126219 2988.6889648438 0.0034191906 - 0.8282429576 2987.1247558594 0.0033713095 - 0.8289719224 2988.9294433594 0.0033218358 - 0.8296994567 2987.8811035156 0.0032713935 - 0.8304256201 2987.0563964844 0.0032235626 - 0.8311502934 2987.0659179688 0.0031766929 - 0.8318736553 2987.6381835938 0.0031289570 - 0.8325955272 2985.3940429688 0.0031034704 - 0.8333160281 2985.4882812500 0.0030583534 - 0.8340350986 2983.6320800781 0.0030117575 - 0.8347527981 2985.4350585938 0.0029623285 - 0.8354690671 2985.7792968750 0.0029170178 - 0.8361838460 2984.9414062500 0.0028712861 - 0.8368973136 2985.8757324219 0.0028270856 - 0.8376092911 2984.7241210938 0.0027802605 - 0.8383198380 2984.9436035156 0.0027362369 - 0.8390290141 2983.5366210938 0.0027173571 - 0.8397367597 2982.4531250000 0.0026705004 - 0.8404430747 2982.4697265625 0.0026284251 - 0.8411479592 2984.0043945312 0.0025839023 - 0.8418514132 2981.7663574219 0.0025398992 - 0.8425534368 2982.6569824219 0.0024979282 - 0.8432540298 2981.6728515625 0.0024549961 - 0.8439532518 2982.3215332031 0.0024114605 - 0.8446509838 2981.9250488281 0.0023705456 - 0.8453472853 2980.1762695312 0.0023284573 - 0.8460421562 2981.4196777344 0.0023104725 - 0.8467355967 2979.6408691406 0.0022711158 - 0.8474276066 2979.4038085938 0.0022299662 - 0.8481181860 2981.4526367188 0.0021908795 - 0.8488073349 2980.5087890625 0.0021485332 - 0.8494949937 2980.5456542969 0.0021097800 - 0.8501812816 2978.1650390625 0.0020706952 - 0.8508660793 2978.7258300781 0.0020544147 - 0.8515494466 2978.1989746094 0.0020173742 - 0.8522313833 2977.4165039062 0.0019789916 - 0.8529118896 2976.9809570312 0.0019390136 - 0.8535909057 2977.8469238281 0.0019019786 - 0.8542684913 2977.0588378906 0.0018640477 - 0.8549446464 2976.8752441406 0.0018250663 - 0.8556193113 2977.8635253906 0.0017891843 - 0.8562925458 2975.3776855469 0.0017776880 - 0.8569643497 2974.7070312500 0.0017394051 - 0.8576346636 2974.5808105469 0.0017044637 - 0.8583035469 2976.3981933594 0.0016680174 - 0.8589709997 2974.2380371094 0.0016304478 - 0.8596369624 2974.1259765625 0.0015960913 - 0.8603014946 2973.9404296875 0.0015589474 - 0.8609645367 2973.3034667969 0.0015243059 - 0.8616261482 2973.0437011719 0.0014913194 - 0.8622862697 2973.4199218750 0.0014540246 - 0.8629449010 2972.0449218750 0.0014208285 - 0.8636021614 2972.8085937500 0.0013866480 - 0.8642578721 2972.5278320312 0.0013518035 - 0.8649121523 2971.5793457031 0.0013184389 - 0.8655649424 2972.1523437500 0.0013113618 - 0.8662163019 2971.2456054688 0.0012772633 - 0.8668661714 2970.8286132812 0.0012453329 - 0.8675146103 2971.6774902344 0.0012122532 - 0.8681615591 2970.5847167969 0.0011794446 - 0.8688070178 2970.0766601562 0.0011483412 - 0.8694509864 2969.4404296875 0.0011136057 - 0.8700935245 2969.5310058594 0.0010837354 - 0.8707345724 2968.5983886719 0.0010795761 - 0.8713741302 2968.8010253906 0.0010461677 - 0.8720121980 2968.5363769531 0.0010163421 - 0.8726488352 2967.0297851562 0.0009865621 - 0.8732839227 2968.4033203125 0.0009537106 - 0.8739175797 2968.8044433594 0.0009246860 - 0.8745497465 2966.7446289062 0.0009202566 - 0.8751804233 2965.2067871094 0.0008905744 - 0.8758096695 2967.1755371094 0.0008614575 - 0.8764373660 2965.3037109375 0.0008321060 - 0.8770635724 2964.5083007812 0.0008025281 - 0.8776883483 2964.6337890625 0.0007742187 - 0.8783115745 2965.5634765625 0.0007447544 - 0.8789333701 2964.2824707031 0.0007158350 - 0.8795536160 2964.4858398438 0.0006870339 - 0.8801724315 2962.7687988281 0.0006592693 - 0.8807896972 2963.6035156250 0.0006316286 - 0.8814055324 2962.8471679688 0.0006036637 - 0.8820198178 2962.8488769531 0.0005761432 - 0.8826326132 2962.5302734375 0.0005479092 - 0.8832439184 2962.4033203125 0.0005206689 - 0.8838537335 2961.7998046875 0.0004938394 - 0.8844620585 2961.1083984375 0.0004667286 - 0.8850688934 2962.3132324219 0.0004408909 - 0.8856741786 2960.8566894531 0.0004134383 - 0.8862780333 2961.4628906250 0.0003876276 - 0.8868803382 2960.5451660156 0.0003621401 - 0.8874811530 2960.5654296875 0.0003352370 - 0.8880804777 2959.2736816406 0.0003379174 - 0.8886782527 2960.1274414062 0.0003117360 - 0.8892745376 2958.3872070312 0.0002868902 - 0.8898693323 2958.9460449219 0.0002620742 - 0.8904625773 2956.9233398438 0.0002646437 - 0.8910543919 2956.6577148438 0.0002402542 - 0.8916445971 2956.4873046875 0.0002155472 - 0.8922333717 2955.2917480469 0.0002196245 - 0.8928205967 2955.6259765625 0.0001941156 - 0.8934063315 2955.3085937500 0.0001706397 - 0.8939905167 2955.3723144531 0.0001750924 - 0.8945732117 2952.6389160156 0.0001516053 - 0.8951543570 2951.8007812500 0.0001288559 - 0.8957340121 2953.3671875000 0.0001046583 - 0.8963121772 2952.8344726562 0.0000814060 - 0.8968887925 2951.7243652344 0.0000593085 - 0.8974638581 2951.2175292969 0.0000358075 - 0.8980374336 2950.6542968750 0.0000128699 - 0.8986095190 2951.6337890625 -0.0000378927 - 0.8991799951 2950.3493652344 -0.0000600573 - 0.8997490406 2952.2133789062 -0.0001117541 - 0.9003164768 2952.7517089844 -0.0001338152 - 0.9008824229 2951.8283691406 -0.0001840675 - 0.9014468789 2952.8115234375 -0.0002353927 - 0.9020097852 2952.8486328125 -0.0002853507 - 0.9025711417 2953.4472656250 -0.0003648652 - 0.9031309485 2956.0083007812 -0.0004153997 - 0.9036892653 2957.1005859375 -0.0004949737 - 0.9042460322 2957.3239746094 -0.0005457625 - 0.9048013091 2959.3740234375 -0.0006251018 - 0.9053549767 2958.8662109375 -0.0006756363 - 0.9059071541 2961.0717773438 -0.0007547727 - 0.9064577818 2962.1909179688 -0.0008346271 - 0.9070068598 2962.5947265625 -0.0008848011 - 0.9075544477 2964.2001953125 -0.0009639543 - 0.9081004858 2964.3222656250 -0.0010140529 - 0.9086449146 2967.0617675781 -0.0010933820 - 0.9091878533 2967.4252929688 -0.0011435272 - 0.9097293019 2966.8049316406 -0.0011935504 - 0.9102691412 2968.8481445312 -0.0012432020 - 0.9108074307 2969.0852050781 -0.0012938455 - 0.9113442302 2969.6806640625 -0.0013142275 - 0.9118794203 2968.1604003906 -0.0013630027 - 0.9124131203 2968.8027343750 -0.0013833866 - 0.9129452705 -30203.1718750000 0.0002143707 - 0.9134758115 -30204.6171875000 0.0015252721 - 0.9140048623 -30203.8613281250 0.0028355746 - 0.9145323634 -30202.7460937500 0.0041473745 - 0.9150583148 -30204.4726562500 0.0054581184 - 0.9155826569 -30203.0136718750 0.0067687379 - 0.9161055088 -30203.5839843750 0.0080792690 - 0.9166267514 -30202.7734375000 0.0093896436 - 0.9171465039 -30204.0996093750 0.0106996810 - 0.9176646471 -30204.2812500000 0.0120107615 - 0.9181813002 -30203.4238281250 0.0133199282 - 0.9186963439 -30202.4628906250 0.0146298753 - 0.9192098379 -30204.6035156250 0.0159402844 - 0.9197217822 -30202.5195312500 0.0172493309 - 0.9202321768 -30204.8203125000 0.0185587946 - 0.9207409620 -30203.2343750000 0.0198682528 - 0.9212482572 -30204.4941406250 0.0211781040 - 0.9217539430 -30204.0878906250 0.0224867649 - 0.9222580791 -30202.5429687500 0.0237960517 - 0.9227606058 -30202.6523437500 0.0251047127 - 0.9232616425 -30201.7734375000 0.0264135934 - 0.9237610698 -30201.7773437500 0.0277212989 - 0.9242589474 -30202.9511718750 0.0290307030 - 0.9247552752 -30203.9296875000 0.0303388461 - 0.9252499938 -30202.2324218750 0.0316472314 - 0.9257431626 -30203.4160156250 0.0329543576 - 0.9262347817 -30202.1855468750 0.0342624560 - 0.9267247915 -30202.9257812500 0.0355700366 - 0.9272132516 -30202.3378906250 0.0368779749 - 0.9277001619 -30203.2792968750 0.0381848924 - 0.9281854630 -30203.8496093750 0.0394929200 - 0.9286692142 -30203.7207031250 0.0407997072 - 0.9291513562 -30202.9277343750 0.0421070606 - 0.9296319485 -30203.4824218750 0.0434137583 - 0.9301109910 -30203.0761718750 0.0447198339 - 0.9305884242 -30203.3242187500 0.0460265167 - 0.9310643077 -30202.9453125000 0.0473331250 - 0.9315385818 -30204.4433593750 0.0486388691 - 0.9320112467 -30202.2871093750 0.0499454178 - 0.9324824214 -30203.6718750000 0.0512505211 - 0.9329519272 -30202.7128906250 0.0525567830 - 0.9334198833 -30201.4492187500 0.0538618639 - 0.9338862896 -30204.1992187500 0.0551669225 - 0.9343510866 -30201.5664062500 0.0564731210 - 0.9348142743 -30201.4921875000 0.0577771030 - 0.9352759123 -30202.0429687500 0.0590823442 - 0.9357359409 -30203.2031250000 0.0603867881 - 0.9361944199 -30201.7636718750 0.0616923571 - 0.9366512895 -30203.2402343750 0.0629964620 - 0.9371065497 -30200.5136718750 0.0642996505 - 0.9375602007 -30200.8183593750 0.0656033158 - 0.9380123019 -30201.4101562500 0.0669081658 - 0.9384628534 -30202.4785156250 0.0682115555 - 0.9389117360 -30201.9082031250 0.0695156530 - 0.9393590689 -30202.7285156250 0.0708179101 - 0.9398047924 -30202.7070312500 0.0721220523 - 0.9402489662 -30202.4550781250 0.0734240115 - 0.9406915307 -30202.1582031250 0.0747275427 - 0.9411324263 -30200.7792968750 0.0760290548 - 0.9415718317 -30202.8535156250 0.0773321167 - 0.9420095682 -30202.8203125000 0.0786346197 - 0.9424457550 -30201.4296875000 0.0799365491 - 0.9428802729 -30201.0019531250 0.0812373832 - 0.9433132410 -30202.3281250000 0.0825395957 - 0.9437445998 -30201.1738281250 0.0838404670 - 0.9441744089 -30202.0742187500 0.0851425827 - 0.9446025491 -30202.2929687500 0.0864434838 - 0.9450291395 -30202.0449218750 0.0877441913 - 0.9454540610 -30201.6796875000 0.0890452266 - 0.9458774328 -30202.1308593750 0.0903457925 - 0.9462991953 -30202.6640625000 0.0916455686 - 0.9467193484 -30200.5625000000 0.0929451063 - 0.9471378922 -30201.7675781250 0.0942451283 - 0.9475548267 -30201.0722656250 0.0955448821 - 0.9479701519 -30202.8457031250 0.0968441293 - 0.9483839273 -30200.5175781250 0.0981433392 - 0.9487960339 -30201.2636718750 0.0994427055 - 0.9492065310 -30200.3242187500 0.1007418409 - 0.9496154189 -30201.8066406250 0.1020401344 - 0.9500226974 -30200.0214843750 0.1033391804 - 0.9504284263 -30201.0976562500 0.1046363488 - 0.9508324862 -30201.4804687500 0.1059353128 - 0.9512349367 -30201.8203125000 0.1072319895 - 0.9516357780 -30200.5488281250 0.1085303500 - 0.9520350099 -30201.4511718750 0.1098267511 - 0.9524326324 -30201.0644531250 0.1111240163 - 0.9528285861 -30202.0781250000 0.1124207005 - 0.9532229900 -30200.9589843750 0.1137180850 - 0.9536157846 -30200.6875000000 0.1150136515 - 0.9540069103 -30201.7089843750 0.1163088977 - 0.9543964863 -30200.6171875000 0.1176058725 - 0.9547843933 -30201.2500000000 0.1189012155 - 0.9551706910 -30201.4785156250 0.1201970428 - 0.9555553794 -30200.4902343750 0.1214912534 - 0.9559383988 -30201.6953125000 0.1227874309 - 0.9563198686 -30202.7617187500 0.1240819618 - 0.9566996694 -30199.9941406250 0.1253765672 - 0.9570778608 -30202.4023437500 0.1266700178 - 0.9574544430 -30201.0019531250 0.1279650331 - 0.9578294158 -30200.7031250000 0.1292580217 - 0.9582027197 -30201.5390625000 0.1305520236 - 0.9585744143 -30201.8359375000 0.1318442225 - 0.9589444995 -30199.8183593750 0.1331383884 - 0.9593129158 -30200.7832031250 0.1344311237 - 0.9596797824 -30200.7402343750 0.1357243061 - 0.9600449800 -30200.8066406250 0.1370155364 - 0.9604085088 -30200.5683593750 0.1383087635 - 0.9607704878 -30200.6328125000 0.1395995170 - 0.9611307979 -30201.2382812500 0.1408916861 - 0.9614894390 -30199.2343750000 0.1421816945 - 0.9618465304 -30201.2480468750 0.1434735656 - 0.9622019529 -30200.6738281250 0.1447632313 - 0.9625557065 -30199.2304687500 0.1460544765 - 0.9629079103 -30200.9316406250 0.1473444104 - 0.9632583857 -30201.6445312500 0.1486356705 - 0.9636073112 -30200.6054687500 0.1499245763 - 0.9639545679 -30202.5449218750 0.1512138695 - 0.9643001556 -30201.3671875000 0.1525027007 - 0.9646441936 -30200.7773437500 0.1537907571 - 0.9649865031 -30200.1210937500 0.1550801098 - 0.9653272629 -30200.8730468750 0.1563681662 - 0.9656662941 -30201.4082031250 0.1576569825 - 0.9660037756 -30200.7421875000 0.1589429677 - 0.9663395882 -30201.7832031250 0.1602317542 - 0.9666737318 -30201.7832031250 0.1615182906 - 0.9670062661 -30199.3691406250 0.1628057063 - 0.9673371315 -30201.9257812500 0.1640922278 - 0.9676663876 -30201.2441406250 0.1653794199 - 0.9679940343 -30200.1425781250 0.1666638255 - 0.9683200121 -30199.0664062500 0.1679501832 - 0.9686443210 -30200.9746093750 0.1692358404 - 0.9689670205 -30199.5136718750 0.1705209464 - 0.9692880511 -30200.2910156250 0.1718057245 - 0.9696074128 -30201.2207031250 0.1730896384 - 0.9699251652 -30201.9355468750 0.1743746698 - 0.9702413082 -30199.6074218750 0.1756569743 - 0.9705557823 -30199.6640625000 0.1769420505 - 0.9708685875 -30200.5742187500 0.1782241017 - 0.9711797237 -30201.0058593750 0.1795079559 - 0.9714892507 -30200.8808593750 0.1807905734 - 0.9717971683 -30200.4199218750 0.1820738614 - 0.9721033573 -30200.3476562500 0.1833544672 - 0.9724079967 -30199.4121093750 0.1846372336 - 0.9727109075 -30199.5644531250 0.1859180927 - 0.9730122089 -30199.7011718750 0.1872000694 - 0.9733118415 -30201.0664062500 0.1884794235 - 0.9736098051 -30201.8105468750 0.1897615790 - 0.9739061594 -30199.6074218750 0.1910404414 - 0.9742008448 -30200.1894531250 0.1923214346 - 0.9744938612 -30201.6328125000 0.1936010420 - 0.9747852087 -30201.6171875000 0.1948786974 - 0.9750749469 -30199.6269531250 0.1961578578 - 0.9753630161 -30200.3847656250 0.1974357963 - 0.9756494761 -30200.2968750000 0.1987148523 - 0.9759342074 -30201.7695312500 0.1999923438 - 0.9762173295 -30198.8925781250 0.2012708336 - 0.9764987826 -30201.0761718750 0.2025473863 - 0.9767785668 -30199.3398437500 0.2038253695 - 0.9770567417 -30201.3281250000 0.2051005661 - 0.9773332477 -30198.7871093750 0.2063772082 - 0.9776080847 -30201.1953125000 0.2076531053 - 0.9778812528 -30199.6386718750 0.2089290023 - 0.9781527519 -30199.2246093750 0.2102029026 - 0.9784225821 -30199.5957031250 0.2114794999 - 0.9786908031 -30200.5722656250 0.2127529234 - 0.9789573550 -30199.7851562500 0.2140256912 - 0.9792222381 -30198.8945312500 0.2153006047 - 0.9794854522 -30201.5566406250 0.2165734768 - 0.9797469974 -30199.9628906250 0.2178472877 - 0.9800068736 -30200.6523437500 0.2191193700 - 0.9802651405 -30200.2441406250 0.2203930318 - 0.9805217385 -30200.1367187500 0.2216645181 - 0.9807766080 -30198.7773437500 0.2229363769 - 0.9810298681 -30200.1523437500 0.2242063582 - 0.9812814593 -30200.3222656250 0.2254785746 - 0.9815313816 -30201.0507812500 0.2267486304 - 0.9817796350 -30200.5292968750 0.2280194461 - 0.9820262194 -30198.7578125000 0.2292882800 - 0.9822711349 -30199.6425781250 0.2305584252 - 0.9825144410 -30200.5292968750 0.2318266332 - 0.9827560186 -30199.5566406250 0.2330950201 - 0.9829959273 -30200.9355468750 0.2343638986 - 0.9832342267 -30200.1328125000 0.2356317490 - 0.9834707975 -30199.7890625000 0.2368993163 - 0.9837057590 -30201.1796875000 0.2381655127 - 0.9839389920 -30199.7363281250 0.2394344360 - 0.9841706157 -30199.8906250000 0.2406987399 - 0.9844005108 -30199.5175781250 0.2419663072 - 0.9846287966 -30199.9843750000 0.2432311028 - 0.9848553538 -30200.6132812500 0.2444973588 - 0.9850803018 -30199.4199218750 0.2457614243 - 0.9853035212 -30199.4980468750 0.2470268011 - 0.9855251312 -30201.4257812500 0.2482904792 - 0.9857450128 -30202.1621093750 0.2495532036 - 0.9859632254 -30200.0605468750 0.2508171797 - 0.9861798286 -30199.0429687500 0.2520789504 - 0.9863947034 -30199.3437500000 0.2533431053 - 0.9866079092 -30200.0097656250 0.2546042800 - 0.9868194461 -30200.9042968750 0.2558671534 - 0.9870293736 -30201.4375000000 0.2571272850 - 0.9872375727 -30199.8046875000 0.2583893836 - 0.9874440432 -30200.2636718750 0.2596484721 - 0.9876489043 -30200.0214843750 0.2609103322 - 0.9878520966 -30200.9218750000 0.2621689141 - 0.9880536199 -30199.1894531250 0.2634291053 - 0.9882534146 -30200.4550781250 0.2646869719 - 0.9884516001 -30201.6562500000 0.2659440935 - 0.9886480570 -30199.6601562500 0.2672042549 - 0.9888428450 -30200.2246093750 0.2684607804 - 0.9890359640 -30199.4863281250 0.2697190046 - 0.9892274141 -30199.9082031250 0.2709746659 - 0.9894171953 -30201.5214843750 0.2722329497 - 0.9896053076 -30200.4960937500 0.2734873295 - 0.9897916913 -30199.8554687500 0.2747441828 - 0.9899764657 -30200.0175781250 0.2759985030 - 0.9901595116 -30199.0917968750 0.2772537470 - 0.9903408885 -30200.7636718750 0.2785081267 - 0.9905205965 -30200.0839843750 0.2797624469 - 0.9906985760 -30199.7011718750 0.2810155451 - 0.9908749461 -30198.8632812500 0.2822694182 - 0.9910495877 -30200.7246093750 0.2835214436 - 0.9912225604 -30200.3710937500 0.2847726941 - 0.9913938642 -30200.0898437500 0.2860253751 - 0.9915634990 -30200.0312500000 0.2872759998 - 0.9917314053 -30199.8574218750 0.2885283828 - 0.9918977022 -30200.2675781250 0.2897774875 - 0.9920622706 -30200.6386718750 0.2910294831 - 0.9922251701 -30200.1113281250 0.2922774851 - 0.9923863411 -30199.8515625000 0.2935273051 - 0.9925459027 -30199.4160156250 0.2947757840 - 0.9927037358 -30201.4570312500 0.2960252166 - 0.9928599000 -30199.4902343750 0.2972721756 - 0.9930143952 -30199.5527343750 0.2985204458 - 0.9931671619 -30199.4121093750 0.2997669280 - 0.9933182597 -30197.6796875000 0.3010140061 - 0.9934676886 -30199.3984375000 0.3022602797 - 0.9936154485 -30201.1640625000 0.3035049736 - 0.9937615395 -30201.2636718750 0.3047519624 - 0.9939059019 -30200.4550781250 0.3059953749 - 0.9940485954 -30199.3906250000 0.3072412610 - 0.9941895604 -30200.3242187500 0.3084837794 - 0.9943289161 -30201.4628906250 0.3097291887 - 0.9944665432 -30199.4199218750 0.3109703958 - 0.9946025014 -30199.0019531250 0.3122138977 - 0.9947367311 -30200.0546875000 0.3134558201 - 0.9948692918 -30199.8828125000 0.3146987855 - 0.9950001836 -30200.9375000000 0.3159390092 - 0.9951294065 -30200.0371093750 0.3171810210 - 0.9952569008 -30199.0585937500 0.3184204400 - 0.9953827262 -30197.8554687500 0.3196616173 - 0.9955068827 -30199.4980468750 0.3209015727 - 0.9956293106 -30201.3730468750 0.3221400082 - 0.9957500696 -30200.0781250000 0.3233788908 - 0.9958691597 -30199.9277343750 0.3246161342 - 0.9959865212 -30199.5312500000 0.3258551657 - 0.9961022139 -30200.1367187500 0.3270922303 - 0.9962162375 -30200.3339843750 0.3283305764 - 0.9963285327 -30199.0527343750 0.3295653462 - 0.9964392185 -30200.4414062500 0.3308027685 - 0.9965481162 -30199.6425781250 0.3320369124 - 0.9966554046 -30199.4902343750 0.3332733512 - 0.9967609644 -30199.9472656250 0.3345079422 - 0.9968647957 -30200.1894531250 0.3357430100 - 0.9969670177 -30199.4179687500 0.3369756639 - 0.9970675111 -30200.2089843750 0.3382099569 - 0.9971662760 -30200.3046875000 0.3394430280 - 0.9972633719 -30200.6113281250 0.3406760097 - 0.9973587990 -30201.0039062500 0.3419080675 - 0.9974525571 -30200.1621093750 0.3431398869 - 0.9975445867 -30201.8144531250 0.3443710804 - 0.9976349473 -30200.8554687500 0.3456011117 - 0.9977235794 -30199.1054687500 0.3468312323 - 0.9978105426 -30200.4902343750 0.3480612338 - 0.9978957772 -30199.1015625000 0.3492917120 - 0.9979794025 -30200.4941406250 0.3505199850 - 0.9980612397 -30199.7402343750 0.3517493606 - 0.9981414676 -30198.8203125000 0.3529767394 - 0.9982199669 -30199.9746093750 0.3542056382 - 0.9982967973 -30199.2089843750 0.3554320037 - 0.9983718991 -30198.0234375000 0.3566595614 - 0.9984453321 -30201.1484375000 0.3578868210 - 0.9985170364 -30198.9179687500 0.3591127992 - 0.9985870719 -30199.3945312500 0.3603379428 - 0.9986554384 -30199.5507812500 0.3615639508 - 0.9987220764 -30200.9980468750 0.3627886474 - 0.9987870455 -30199.3593750000 0.3640133142 - 0.9988502860 -30200.6679687500 0.3652366102 - 0.9989118576 -30199.3789062500 0.3664609194 - 0.9989717603 -30200.9570312500 0.3676831424 - 0.9990299344 -30201.4804687500 0.3689072132 - 0.9990864396 -30201.3300781250 0.3701287508 - 0.9991412163 -30199.4492187500 0.3713513315 - 0.9991943240 -30199.2753906250 0.3725717068 - 0.9992457628 -30200.5996093750 0.3737927079 - 0.9992954731 -30200.7421875000 0.3750137389 - 0.9993435144 -30200.5566406250 0.3762333691 - 0.9993898273 -30200.5996093750 0.3774550855 - 0.9994344711 -30201.9121093750 0.3786739409 - 0.9994773865 -30199.4394531250 0.3798930347 - 0.9995186329 -30200.5996093750 0.3811115921 - 0.9995581508 -30198.7324218750 0.3823302388 - 0.9995960593 -30199.8769531250 0.3835480809 - 0.9996321797 -30201.0078125000 0.3847669065 - 0.9996666312 -30201.4101562500 0.3859834969 - 0.9996994138 -30200.3261718750 0.3872007132 - 0.9997305274 -30200.6347656250 0.3884165883 - 0.9997598529 -30200.3300781250 0.3896341324 - 0.9997875690 -30200.7988281250 0.3908485770 - 0.9998135567 -30200.2890625000 0.3920651078 - 0.9998378754 -30201.2519531250 0.3932794034 - 0.9998604655 -30199.2441406250 0.3944950104 - 0.9998813272 -30199.5449218750 0.3957093656 - 0.9999005795 -30200.0976562500 0.3969238997 - 0.9999181032 -30200.7441406250 0.3981366158 - 0.9999338984 -30201.0468750000 0.3993511796 - 0.9999480247 -30201.3046875000 0.4005630910 - 0.9999604225 -30200.6933593750 0.4017767608 - 0.9999712110 -30199.8339843750 0.4029887915 - 0.9999802113 -30200.0917968750 0.4042022526 - 0.9999875426 -30201.2480468750 0.4054134488 - 0.9999932051 -30199.9863281250 0.4066259265 - 0.9999971390 -30200.0839843750 0.4078352153 - 0.9999994040 -30200.8027343750 0.4090471864 - 1.0000000000 -30200.0234375000 0.4102582633 - 0.9999988675 -30198.4609375000 0.4114682972 - 0.9999960065 -30200.2382812500 0.4126785696 - 0.9999914765 -30201.9101562500 0.4138894975 - 0.9999852777 -30199.5937500000 0.4150991142 - 0.9999773502 -30201.4589843750 0.4163082838 - 0.9999677539 -30201.5195312500 0.4175169766 - 0.9999564290 -30200.8320312500 0.4187269211 - 0.9999434352 -30199.0761718750 0.4199354053 - 0.9999287128 -30199.5839843750 0.4211439192 - 0.9999123216 -30199.8144531250 0.4223519266 - 0.9998942614 -30200.3964843750 0.4235608876 - 0.9998744726 -30200.9570312500 0.4247667193 - 0.9998529553 -30201.1523437500 0.4259755909 - 0.9998298287 -30200.5136718750 0.4271839559 - 0.9998049140 -30199.8945312500 0.4283921719 - 0.9997783899 -30200.1894531250 0.4295969605 - 0.9997501373 -30200.2011718750 0.4308058619 - 0.9997201562 -30201.6132812500 0.4320127070 - 0.9996885061 -30199.6171875000 0.4332204461 - 0.9996551871 -30201.9687500000 0.4344252944 - 0.9996201396 -30200.3417968750 0.4356325865 - 0.9995833635 -30200.8105468750 0.4368382692 - 0.9995449781 -30200.5156250000 0.4380457997 - 0.9995048642 -30199.7031250000 0.4392507374 - 0.9994630218 -30199.4804687500 0.4404580295 - 0.9994195104 -30199.5253906250 0.4416646063 - 0.9993743300 -30199.9277343750 0.4428701103 - 0.9993274212 -30199.9707031250 0.4440754056 - 0.9992787838 -30201.1679687500 0.4452828467 - 0.9992285371 -30199.8183593750 0.4464887083 - 0.9991765022 -30198.7695312500 0.4476945102 - 0.9991228580 -30201.8046875000 0.4489016831 - 0.9990674853 -30201.2910156250 0.4501076341 - 0.9990104437 -30201.1875000000 0.4513139129 - 0.9989516735 -30199.4960937500 0.4525185823 - 0.9988911748 -30203.0898437500 0.4537259340 - 0.9988290668 -30199.9316406250 0.4549314380 - 0.9987652302 -30200.0371093750 0.4561380148 - 0.9986996651 -30200.2089843750 0.4573453665 - 0.9986324310 -30201.0625000000 0.4585515261 - 0.9985635281 -30201.2617187500 0.4597581029 - 0.9984928966 -30199.9804687500 0.4609647095 - 0.9984205961 -30200.9785156250 0.4621728361 - 0.9983466268 -30201.9550781250 0.4633804858 - 0.9982709289 -30199.8046875000 0.4645856023 - 0.9981935620 -30201.1972656250 0.4657958150 - 0.9981144667 -30201.4960937500 0.4670045674 - 0.9980337024 -30200.0898437500 0.4682113826 - 0.9979512691 -30199.9335937500 0.4694178998 - 0.9978671074 -30201.0546875000 0.4706285894 - 0.9977812767 -30199.6601562500 0.4718391895 - 0.9976937175 -30200.6445312500 0.4730454385 - 0.9976044893 -30200.7441406250 0.4742565453 - 0.9975135922 -30199.4785156250 0.4754666388 - 0.9974209666 -30201.5781250000 0.4766781330 - 0.9973266721 -30200.3574218750 0.4778886139 - 0.9972306490 -30200.4062500000 0.4790984690 - 0.9971329570 -30200.2656250000 0.4803095162 - 0.9970335960 -30200.3750000000 0.4815205634 - 0.9969325662 -30200.2851562500 0.4827360809 - 0.9968298078 -30201.2949218750 0.4839492142 - 0.9967253804 -30198.8183593750 0.4851599932 - 0.9966192245 -30201.5117187500 0.4863748848 - 0.9965113997 -30200.2871093750 0.4875906706 - 0.9964019060 -30200.6777343750 0.4888040423 - 0.9962906837 -30201.9882812500 0.4900212884 - 0.9961777925 -30199.3750000000 0.4912353158 - 0.9960632324 -30200.7050781250 0.4924516380 - 0.9959469438 -30200.6035156250 0.4936707914 - 0.9958289862 -30201.0703125000 0.4948899150 - 0.9957093596 -30200.4199218750 0.4961076081 - 0.9955880046 -30201.1171875000 0.4973295927 - 0.9954649806 -30201.2031250000 0.4985480905 - 0.9953402877 -30200.7421875000 0.4997661710 - 0.9952138662 -30200.1640625000 0.5009906292 - 0.9950857759 -30201.4492187500 0.5022143126 - 0.9949560165 -30201.5234375000 0.5034348965 - 0.9948245883 -30202.0078125000 0.5046618581 - 0.9946914315 -30202.0996093750 0.5058860183 - 0.9945566058 -30201.4746093750 0.5071116686 - 0.9944200516 -30201.1347656250 0.5083397031 - 0.9942818880 -30202.0468750000 0.5095654130 - 0.9941419959 -30201.0019531250 0.5107961893 - 0.9940003753 -30202.3007812500 0.5120261312 - 0.9938571453 -30201.8027343750 0.5132544637 - 0.9937121868 -30200.1367187500 0.5144852996 - 0.9935655594 -30200.2773437500 0.5157164931 - 0.9934172630 -30200.6953125000 0.5169517398 - 0.9932672381 -30200.1777343750 0.5181875825 - 0.9931156039 -30201.7460937500 0.5194221139 - 0.9929621816 -30200.0976562500 0.5206630230 - 0.9928071499 -30199.7558593750 0.5218994021 - 0.9926504493 -30201.4824218750 0.5231348276 - 0.9924920201 -30199.2070312500 0.5243799686 - 0.9923319221 -30201.4882812500 0.5256168842 - 0.9921701550 -30200.2109375000 0.5268617868 - 0.9920066595 -30201.5253906250 0.5281035304 - 0.9918414950 -30200.7460937500 0.5293528438 - 0.9916747212 -30199.1093750000 0.5305985808 - 0.9915062189 -30201.1699218750 0.5318445563 - 0.9913359880 -30200.3925781250 0.5330924988 - 0.9911641479 -30201.1503906250 0.5343419909 - 0.9909905791 -30201.6640625000 0.5355951786 - 0.9908153415 -30200.5664062500 0.5368492603 - 0.9906384349 -30201.1992187500 0.5381066799 - 0.9904598594 -30200.6660156250 0.5393637419 - 0.9902795553 -30199.9277343750 0.5406185389 - 0.9900976419 -30200.9042968750 0.5418774486 - 0.9899140000 -30200.5039062500 0.5431380868 - 0.9897286892 -30199.9492187500 0.5444011688 - 0.9895417094 -30201.8964843750 0.5456606150 - 0.9893530607 -30201.8242187500 0.5469265580 - 0.9891627431 -30201.7558593750 0.5481913686 - 0.9889706969 -30199.9042968750 0.5494596362 - 0.9887770414 -30202.2031250000 0.5507274270 - 0.9885816574 -30200.9902343750 0.5520027876 - 0.9883846045 -30199.5585937500 0.5532657504 - 0.9881858826 -30201.6269531250 0.5545430183 - 0.9879854918 -30200.0449218750 0.5558236837 - 0.9877834320 -30201.1582031250 0.5570899844 - 0.9875797033 -30200.4707031250 0.5583743453 - 0.9873742461 -30200.7578125000 0.5596526861 - 0.9871671796 -30199.9218750000 0.5609303713 - 0.9869583845 -30201.2832031250 0.5622174740 - 0.9867479801 -30201.2988281250 0.5635011196 - 0.9865358472 -30200.3515625000 0.5647875071 - 0.9863220453 -30202.1113281250 0.5660729408 - 0.9861065745 -30200.9023437500 0.5673590302 - 0.9858894944 -30200.5664062500 0.5686492920 - 0.9856706858 -30201.7988281250 0.5699381828 - 0.9854502082 -30200.5000000000 0.5712319613 - 0.9852280617 -30200.2812500000 0.5725234747 - 0.9850042462 -30201.8789062500 0.5738214850 - 0.9847787619 -30201.2285156250 0.5751208067 - 0.9845516086 -30201.3476562500 0.5764130354 - 0.9843227863 -30201.8164062500 0.5777160525 - 0.9840922952 -30202.5332031250 0.5790178180 - 0.9838601351 -30201.3984375000 0.5803220272 - 0.9836263061 -30201.4902343750 0.5816245079 - 0.9833908081 -30200.3281250000 0.5829325914 - 0.9831536412 -30201.7148437500 0.5842347145 - 0.9829148054 -30201.0214843750 0.5855438113 - 0.9826743007 -30201.7753906250 0.5868452787 - 0.9824321270 -30202.2031250000 0.5881568789 - 0.9821883440 -30203.1074218750 0.5894662738 - 0.9819428325 -30202.0175781250 0.5907812119 - 0.9816956520 -30200.0371093750 0.5920973420 - 0.9814468622 -30200.5839843750 0.5934085846 - 0.9811963439 -30201.3378906250 0.5947214961 - 0.9809442163 -30202.5566406250 0.5960373878 - 0.9806904197 -30201.8828125000 0.5973478556 - 0.9804349542 -30200.0175781250 0.5986658931 - 0.9801778197 -30201.8085937500 0.5999866128 - 0.9799190164 -30200.2363281250 0.6013021469 - 0.9796585441 -30200.9902343750 0.6026184559 - 0.9793964028 -30199.6855468750 0.6039381623 - 0.9791326523 -30202.5644531250 0.6052588224 - 0.9788671732 -30201.1835937500 0.6065818071 - 0.9786000848 -30201.1992187500 0.6079015136 - 0.9783313274 -30201.3984375000 0.6092267632 - 0.9780609012 -30201.5703125000 0.6105372310 - 0.9777888060 -30201.1328125000 0.6118636131 - 0.9775151014 -30202.6757812500 0.6131825447 - 0.9772397280 -30200.7304687500 0.6145073771 - 0.9769626260 -30202.2187500000 0.6158286929 - 0.9766839147 -30202.0566406250 0.6171517968 - 0.9764035940 -30201.6191406250 0.6184755564 - 0.9761215448 -30201.9746093750 0.6197925210 - 0.9758378863 -30203.4472656250 0.6211144924 - 0.9755525589 -30201.4941406250 0.6224262118 - 0.9752655625 -30202.1972656250 0.6237470508 - 0.9749769568 -30201.1191406250 0.6250743866 - 0.9746866822 -30200.8066406250 0.6263846755 - 0.9743947387 -30202.5410156250 0.6277035475 - 0.9741011262 -30200.6191406250 0.6290110350 - 0.9738059044 -30201.2714843750 0.6303423643 - 0.9735090137 -30201.6777343750 0.6316511631 - 0.9732104540 -30201.5214843750 0.6329626441 - 0.9729102254 -30201.3437500000 0.6342731118 - 0.9726083875 -30202.1289062500 0.6355832815 - 0.9723049402 -30200.9648437500 0.6368968487 - 0.9719997644 -30202.1210937500 0.6381984353 - 0.9716929793 -30201.5058593750 0.6395123601 - 0.9713845253 -30201.5996093750 0.6408183575 - 0.9710744619 -30201.7636718750 0.6421189308 - 0.9707627296 -30201.6210937500 0.6434133053 - 0.9704493284 -30201.9316406250 0.6447150111 - 0.9701343179 -30200.7128906250 0.6460159421 - 0.9698176384 -30201.4531250000 0.6473056078 - 0.9694993496 -30202.2929687500 0.6486028433 - 0.9691793919 -30201.7929687500 0.6498943567 - 0.9688578248 -30201.8164062500 0.6511760950 - 0.9685345888 -30201.5507812500 0.6524597406 - 0.9682096839 -30202.1406250000 0.6537438035 - 0.9678831697 -30201.7226562500 0.6550310254 - 0.9675549865 -30201.4296875000 0.6563013196 - 0.9672251940 -30201.6562500000 0.6575799584 - 0.9668937325 -30202.4179687500 0.6588498950 - 0.9665606618 -30201.5332031250 0.6601172686 - 0.9662259221 -30201.7402343750 0.6613811851 - 0.9658895731 -30201.4316406250 0.6626368165 - 0.9655515552 -30201.3066406250 0.6639080644 - 0.9652119279 -30202.6679687500 0.6651563048 - 0.9648706913 -30200.4277343750 0.6664096117 - 0.9645277858 -30202.0566406250 0.6676505208 - 0.9641832113 -30202.3183593750 0.6689019799 - 0.9638370275 -30201.0898437500 0.6701440811 - 0.9634892344 -30203.2539062500 0.6713734865 - 0.9631397724 -30201.2734375000 0.6726081967 - 0.9627887011 -30201.4863281250 0.6738332510 - 0.9624359608 -30202.4257812500 0.6750610471 - 0.9620816708 -30202.6855468750 0.6762819886 - 0.9617256522 -30201.9550781250 0.6774986386 - 0.9613680840 -30202.9433593750 0.6787134409 - 0.9610088468 -30200.6425781250 0.6799206138 - 0.9606480002 -30200.9843750000 0.6811280251 - 0.9602854848 -30201.8750000000 0.6823174357 - 0.9599213600 -30201.6562500000 0.6835151911 - 0.9595556259 -30201.8378906250 0.6847054958 - 0.9591882229 -30201.7109375000 0.6858928800 - 0.9588192105 -30199.7890625000 0.6870737672 - 0.9584485888 -30201.5136718750 0.6882495284 - 0.9580763578 -30200.9746093750 0.6894190311 - 0.9577024579 -30202.4648437500 0.6905847788 - 0.9573270082 -30200.9843750000 0.6917476058 - 0.9569498301 -30202.0136718750 0.6929052472 - 0.9565711021 -30201.9160156250 0.6940546036 - 0.9561907649 -30201.4804687500 0.6952013969 - 0.9558087587 -30200.1914062500 0.6963413954 - 0.9554251432 -30200.8105468750 0.6974769235 - 0.9550399184 -30201.9140625000 0.6986109018 - 0.9546530843 -30202.2675781250 0.6997402310 - 0.9542645812 -30202.2304687500 0.7008618116 - 0.9538745284 -30201.0761718750 0.7019785643 - 0.9534828067 -30201.5195312500 0.7030854821 - 0.9530895352 -30202.3261718750 0.7041916847 - 0.9526945949 -30200.4667968750 0.7052890062 - 0.9522980452 -30201.0136718750 0.7063894868 - 0.9518998861 -30201.4589843750 0.7074773908 - 0.9515000582 -30201.7500000000 0.7085633278 - 0.9510986805 -30202.7949218750 0.7096433043 - 0.9506956935 -30202.3164062500 0.7107189298 - 0.9502910972 -30202.5234375000 0.7117839456 - 0.9498848319 -30202.2558593750 0.7128490210 - 0.9494770169 -30200.9648437500 0.7139085531 - 0.9490675926 -30201.1640625000 0.7149580121 - 0.9486564994 -30202.1660156250 0.7160096765 - 0.9482438564 -30201.1660156250 0.7170489430 - 0.9478296041 -30201.1445312500 0.7180862427 - 0.9474136829 -30202.5585937500 0.7191178203 - 0.9469962120 -30200.3066406250 0.7201428413 - 0.9465771317 -30202.1386718750 0.7211652398 - 0.9461564422 -30202.3085937500 0.7221805453 - 0.9457341433 -30201.2480468750 0.7231918573 - 0.9453102350 -30201.8691406250 0.7241964340 - 0.9448847175 -30200.9589843750 0.7251964808 - 0.9444575906 -30201.1425781250 0.7261954546 - 0.9440289140 -30200.6621093750 0.7271800637 - 0.9435985684 -30201.2734375000 0.7281673551 - 0.9431666732 -30200.4355468750 0.7291451693 - 0.9427331686 -30201.8242187500 0.7301185131 - 0.9422980547 -30202.2675781250 0.7310895920 - 0.9418613911 -30201.2207031250 0.7320521474 - 0.9414230585 -30202.0996093750 0.7330129743 - 0.9409831762 -30202.1035156250 0.7339665294 - 0.9405416846 -30203.2109375000 0.7349143028 - 0.9400985837 -30201.5039062500 0.7358573675 - 0.9396539330 -30201.0253906250 0.7367970943 - 0.9392076135 -30200.9843750000 0.7377310991 - 0.9387598038 -30200.8574218750 0.7386605144 - 0.9383103251 -30200.9023437500 0.7395840883 - 0.9378592968 -30200.9414062500 0.7405044436 - 0.9374066591 -30200.0332031250 0.7414194345 - 0.9369524121 -30202.2285156250 0.7423300743 - 0.9364966154 -30200.8203125000 0.7432353497 - 0.9360392094 -30200.2187500000 0.7441343665 - 0.9355801940 -30202.2558593750 0.7450302839 - 0.9351196289 -30199.9296875000 0.7459207177 - 0.9346574545 -30201.1230468750 0.7468081117 - 0.9341937304 -30201.5312500000 0.7476910949 - 0.9337283969 -30201.0683593750 0.7485681772 - 0.9332614541 -30201.3867187500 0.7494411469 - 0.9327929616 -30200.0703125000 0.7503111959 - 0.9323228598 -30201.5605468750 0.7511746883 - 0.9318512082 -30200.3359375000 0.7520344257 - 0.9313780069 -30200.7871093750 0.7528923154 - 0.9309031963 -30202.3867187500 0.7537423968 - 0.9304267764 -30201.1367187500 0.7545884848 - 0.9299488068 -30200.7851562500 0.7554364204 - 0.9294692278 -30200.2832031250 0.7562733293 - 0.9289880991 -30200.2031250000 0.7571081519 - 0.9285054207 -30202.5449218750 0.7579405904 - 0.9280211329 -30202.8535156250 0.7587679029 - 0.9275352955 -30201.7636718750 0.7595901489 - 0.9270479083 -30203.4042968750 0.7604097128 - 0.9265589118 -30202.2539062500 0.7612266541 - 0.9260683060 -30201.8964843750 0.7620368600 - 0.9255762100 -30202.6425781250 0.7628443837 - 0.9250825047 -30202.4082031250 0.7636503577 - 0.9245871902 -30201.4707031250 0.7644490004 - 0.9240903854 -30201.5312500000 0.7652469873 - 0.9235919714 -30201.9355468750 0.7660391331 - 0.9230920076 -30201.5722656250 0.7668271065 - 0.9225904346 -30201.7656250000 0.7676158547 - 0.9220873713 -30201.7246093750 0.7684004903 - 0.9215826988 -30201.0742187500 0.7691773772 - 0.9210764766 -30202.0683593750 0.7699538469 - 0.9205687046 -30201.3593750000 0.7707240582 - 0.9200593233 -30201.1953125000 0.7714951038 - 0.9195484519 -30199.9980468750 0.7722594142 - 0.9190359712 -30202.6132812500 0.7730231285 - 0.9185219407 -30201.9628906250 0.7737846375 - 0.9180063605 -30202.0078125000 0.7745404840 - 0.9174892306 -30202.3378906250 0.7752920389 - 0.9169704914 -30200.2617187500 0.7760425806 - 0.9164502621 -30201.7265625000 0.7767943144 - 0.9159284830 -30201.6406250000 0.7775355577 - 0.9154050946 -30200.3691406250 0.7782731652 - 0.9148802161 -30201.8515625000 0.7790133953 - 0.9143537283 -30199.9765625000 0.7797514796 - 0.9138257504 -30201.9257812500 0.7804843187 - 0.9132961631 -30202.9921875000 0.7812159061 - 0.9127650857 -30201.0097656250 0.7819427252 - 0.9122323990 -30201.8183593750 0.7826647162 - 0.9116982222 -30201.2890625000 0.7833849192 - 0.9111624360 -30201.3945312500 0.7841080427 - 0.9106251597 -30201.6640625000 0.7848245502 - 0.9100863338 -30200.2363281250 0.7855316401 - 0.9095459580 -30202.0449218750 0.7862489223 - 0.9090040326 -30202.0351562500 0.7869599462 - 0.9084605575 -30202.0703125000 0.7876644731 - 0.9079155922 -30200.3359375000 0.7883643508 - 0.9073690176 -30202.7871093750 0.7890708447 - 0.9068209529 -30201.7539062500 0.7897692323 - 0.9062713385 -30201.0429687500 0.7904639840 - 0.9057201743 -30202.8085937500 0.7911632657 - 0.9051674604 -30201.8398437500 0.7918531299 - 0.9046132565 -30201.2773437500 0.7925443649 - 0.9040575027 -30200.3222656250 0.7932297587 - 0.9035001993 -30201.0878906250 0.7939177155 - 0.9029414058 -30203.6250000000 0.7946034074 - 0.9023810029 -30200.6875000000 0.7952819467 - 0.9018191695 -30203.1230468750 0.7959644794 - 0.9012557268 -30202.0253906250 0.7966427803 - 0.9006907940 -30202.5761718750 0.7973161340 - 0.9001243114 -30199.7089843750 0.7979850769 - 0.8995563388 -30200.6210937500 0.7986627817 - 0.8989868164 -30202.1757812500 0.7993301153 - 0.8984157443 -30200.7011718750 0.7999943495 - 0.8978431821 -30199.6367187500 0.8006617427 - 0.8972691298 -30201.4296875000 0.8013315797 - 0.8966935277 -30201.0078125000 0.8019905686 - 0.8961163759 -30201.0703125000 0.8026480675 - 0.8955377340 -30201.7617187500 0.8033124208 - 0.8949575424 -30201.9550781250 0.8039639592 - 0.8943758607 -30201.9492187500 0.8046198487 - 0.8937926888 -30202.7500000000 0.8052685857 - 0.8932079673 -30200.9511718750 0.8059324026 - 0.8926217556 -30201.8339843750 0.8065790534 - 0.8920339942 -30200.7656250000 0.8072255850 - 0.8914447427 -30201.9179687500 0.8078686595 - 0.8908539414 -30201.5214843750 0.8085206151 - 0.8902617097 -30201.7812500000 0.8091620803 - 0.8896678686 -30202.5019531250 0.8098014593 - 0.8890725970 -30201.3847656250 0.8104368448 - 0.8884757757 -30201.3906250000 0.8110845089 - 0.8878774643 -30200.9257812500 0.8117241263 - 0.8872776628 -30199.9570312500 0.8123561144 - 0.8866763711 -30200.7460937500 0.8129885197 - 0.8860735297 -30201.8339843750 0.8136258721 - 0.8854691982 -30202.6972656250 0.8142551780 - 0.8848633766 -30201.8554687500 0.8148835897 - 0.8842560649 -30200.7109375000 0.8155156970 - 0.8836472034 -30203.0175781250 0.8161491752 - 0.8830369115 -30201.0957031250 0.8167706728 - 0.8824250698 -30200.5390625000 0.8173914552 - 0.8818117380 -30200.7832031250 0.8180168271 - 0.8811969757 -30202.5390625000 0.8186417222 - 0.8805806637 -30201.6484375000 0.8192588091 - 0.8799628615 -30201.4628906250 0.8198875189 - 0.8793435693 -30202.0214843750 0.8205008507 - 0.8787227869 -30201.3789062500 0.8211236596 - 0.8781005144 -30201.6855468750 0.8217389584 - 0.8774767518 -30201.4218750000 0.8223548532 - 0.8768514991 -30201.5136718750 0.8229603767 - 0.8762247562 -30201.9238281250 0.8235820532 - 0.8755965233 -30201.4492187500 0.8241889477 - 0.8749668598 -30201.7089843750 0.8248022199 - 0.8743356466 -30200.4257812500 0.8254137635 - 0.8737030029 -30200.4882812500 0.8260270953 - 0.8730688095 -30202.2597656250 0.8266314864 - 0.8724331856 -30200.9902343750 0.8272358775 - 0.8717960715 -30202.2304687500 0.8278369904 - 0.8711575270 -30201.9316406250 0.8284490705 - 0.8705174327 -30201.6093750000 0.8290508986 - 0.8698759079 -30201.4453125000 0.8296487331 - 0.8692328930 -30202.6503906250 0.8302497268 - 0.8685883880 -30201.8906250000 0.8308480978 - 0.8679423928 -30201.7460937500 0.8314527869 - 0.8672949672 -30200.8925781250 0.8320490122 - 0.8666460514 -30201.5136718750 0.8326452971 - 0.8659957051 -30200.7812500000 0.8332387805 - 0.8653438687 -30202.5996093750 0.8338434696 - 0.8646905422 -30201.3535156250 0.8344322443 - 0.8640357852 -30201.9804687500 0.8350245357 - 0.8633795381 -30201.1152343750 0.8356126547 - 0.8627218604 -30201.8925781250 0.8362141848 - 0.8620626926 -30200.3710937500 0.8368020058 - 0.8614020348 -30201.1347656250 0.8373906612 - 0.8607399464 -30202.0488281250 0.8379758000 - 0.8600764275 -30202.4921875000 0.8385750651 - 0.8594114184 -30201.4941406250 0.8391563296 - 0.8587449193 -30201.0898437500 0.8397451043 - 0.8580769897 -30201.0507812500 0.8403289318 - 0.8574076295 -30200.7187500000 0.8409118056 - 0.8567367792 -30201.4199218750 0.8415050507 - 0.8560644984 -30200.7773437500 0.8420829773 - 0.8553907871 -30200.9667968750 0.8426629901 - 0.8547155857 -30200.1230468750 0.8432419300 - 0.8540389538 -30202.0273437500 0.8438326716 - 0.8533608913 -30199.0449218750 0.8444071412 - 0.8526813984 -30201.5507812500 0.8449824452 - 0.8520004153 -30201.1347656250 0.8455576897 - 0.8513180017 -30199.6523437500 0.8461295962 - 0.8506341577 -30201.5253906250 0.8467177153 - 0.8499488235 -30200.5859375000 0.8472908735 - 0.8492620587 -30200.2675781250 0.8478638530 - 0.8485739231 -30202.4843750000 0.8484364152 - 0.8478842974 -30200.0117187500 0.8490059376 - 0.8471932411 -30202.6855468750 0.8495873809 - 0.8465007544 -30202.1367187500 0.8501600027 - 0.8458067775 -30201.1875000000 0.8507255316 - 0.8451114297 -30202.2500000000 0.8512924314 - 0.8444146514 -30201.4238281250 0.8518603444 - 0.8437163830 -30201.6933593750 0.8524397016 - 0.8430167437 -30201.3632812500 0.8530027866 - 0.8423156738 -30200.0976562500 0.8535667658 - 0.8416131139 -30201.0097656250 0.8541344404 - 0.8409091830 -30201.9765625000 0.8547062278 - 0.8402038217 -30201.8984375000 0.8552676439 - 0.8394970298 -30201.0937500000 0.8558285236 - 0.8387888074 -30201.0722656250 0.8563939333 - 0.8380791545 -30199.3906250000 0.8569546342 - 0.8373681307 -30202.1953125000 0.8575256467 - 0.8366556168 -30201.4785156250 0.8580805063 - 0.8359417319 -30201.1406250000 0.8586398363 - 0.8352264166 -30201.6035156250 0.8591990471 - 0.8345096707 -30201.4179687500 0.8597564697 - 0.8337915540 -30201.9609375000 0.8603271246 - 0.8330720067 -30200.6542968750 0.8608791828 - 0.8323510289 -30199.5468750000 0.8614311218 - 0.8316286206 -30199.6386718750 0.8619811535 - 0.8309048414 -30200.8613281250 0.8625368476 - 0.8301796317 -30201.6074218750 0.8631040454 - 0.8294530511 -30200.8593750000 0.8636537790 - 0.8287249804 -30200.9765625000 0.8642014861 - 0.8279955983 -30200.3984375000 0.8647527695 - 0.8272647858 -30199.8515625000 0.8653025031 - 0.8265325427 -30201.2988281250 0.8658570647 - 0.8257989287 -30202.0546875000 0.8664124608 - 0.8250638843 -30200.5507812500 0.8669614196 - 0.8243274689 -30201.9023437500 0.8675098419 - 0.8235896230 -30201.3671875000 0.8680533171 - 0.8228504062 -30201.5390625000 0.8685945272 - 0.8221097589 -30200.0800781250 0.8691567183 - 0.8213678002 -30198.5859375000 0.8696981072 - 0.8206243515 -30200.4472656250 0.8702446818 - 0.8198795915 -30199.9628906250 0.8707758784 - 0.8191334009 -30200.5820312500 0.8713238835 - 0.8183858395 -30202.4472656250 0.8718806505 - 0.8176368475 -30200.5800781250 0.8724166155 - 0.8168864846 -30200.3867187500 0.8729569912 - 0.8161348104 -30201.1210937500 0.8734958768 - 0.8153816462 -30201.0644531250 0.8740348220 - 0.8146271706 -30201.7695312500 0.8745824695 - 0.8138712645 -30201.0585937500 0.8751223087 - 0.8131140471 -30201.5351562500 0.8756579161 - 0.8123553991 -30201.7832031250 0.8761870265 - 0.8115953803 -30200.3066406250 0.8767196536 - 0.8108339906 -30201.2246093750 0.8772548437 - 0.8100712299 -30200.1464843750 0.8778004646 - 0.8093070984 -30200.8105468750 0.8783349395 - 0.8085415959 -30200.3691406250 0.8788650036 - 0.8077746630 -30201.5644531250 0.8793951869 - 0.8070064187 -30199.4570312500 0.8799256682 - 0.8062368035 -30200.3593750000 0.8804569244 - 0.8054658175 -30201.7441406250 0.8809940815 - 0.8046934605 -30201.6132812500 0.8815206289 - 0.8039197922 -30202.3515625000 0.8820497394 - 0.8031446934 -30200.9902343750 0.8825725913 - 0.8023682237 -30200.3144531250 0.8831009865 - 0.8015904427 -30199.5761718750 0.8836265802 - 0.8008112907 -30200.7324218750 0.8841614723 - 0.8000307679 -30202.5566406250 0.8846840262 - 0.7992488742 -30200.4589843750 0.8852069974 - 0.7984656692 -30199.7539062500 0.8857253194 - 0.7976810932 -30201.1113281250 0.8862496018 - 0.7968951464 -30201.3027343750 0.8867813349 - 0.7961078286 -30201.2265625000 0.8873023987 - 0.7953191996 -30200.3359375000 0.8878246546 - 0.7945292592 -30201.8847656250 0.8883343339 - 0.7937378883 -30200.5000000000 0.8888490200 - 0.7929452062 -30201.0898437500 0.8893622756 - 0.7921512127 -30199.5664062500 0.8898975849 - 0.7913558483 -30199.6601562500 0.8904129267 - 0.7905591130 -30201.1113281250 0.8909240961 - 0.7897610664 -30202.3359375000 0.8914361596 - 0.7889617085 -30202.6269531250 0.8919450641 - 0.7881609797 -30199.5683593750 0.8924576640 - 0.7873589396 -30200.2734375000 0.8929861188 - 0.7865555286 -30200.7714843750 0.8934946656 - 0.7857508063 -30200.9121093750 0.8940052986 - 0.7849447131 -30201.2324218750 0.8945053816 - 0.7841373086 -30200.5292968750 0.8950133920 - 0.7833285928 -30201.0859375000 0.8955180049 - 0.7825185657 -30201.2558593750 0.8960255384 - 0.7817071676 -30200.2539062500 0.8965488672 - 0.7808945179 -30200.9433593750 0.8970511556 - 0.7800804377 -30201.1289062500 0.8975512981 - 0.7792651057 -30200.4726562500 0.8980519772 - 0.7784484625 -30199.4472656250 0.8985532522 - 0.7776304483 -30200.0039062500 0.8990527391 - 0.7768111229 -30199.5410156250 0.8995539546 - 0.7759905457 -30201.3242187500 0.9000624418 - 0.7751685977 -30201.6250000000 0.9005622268 - 0.7743453383 -30201.1914062500 0.9010592103 - 0.7735207677 -30200.6855468750 0.9015556574 - 0.7726948857 -30198.8164062500 0.9020522237 - 0.7718676925 -30200.2714843750 0.9025415778 - 0.7710391879 -30200.7812500000 0.9030537009 - 0.7702093720 -30201.9726562500 0.9035445452 - 0.7693783045 -30199.4628906250 0.9040396214 - 0.7685458660 -30201.1757812500 0.9045223594 - 0.7677121758 -30199.3066406250 0.9050143361 - 0.7668771148 -30199.4980468750 0.9055020213 - 0.7660408020 -30200.6464843750 0.9060088396 - 0.7652031779 -30200.9082031250 0.9064951539 - 0.7643643022 -30199.0957031250 0.9069767594 - 0.7635240555 -30199.6816406250 0.9074625969 - 0.7626825571 -30201.0957031250 0.9079492688 - 0.7618397474 -30199.1621093750 0.9084321260 - 0.7609956861 -30200.7832031250 0.9089120626 - 0.7601503134 -30199.9628906250 0.9094074965 - 0.7593036294 -30200.9531250000 0.9098900557 - 0.7584556937 -30199.8437500000 0.9103690982 - 0.7576064467 -30201.5136718750 0.9108448625 - 0.7567558885 -30200.4335937500 0.9113222957 - 0.7559040785 -30200.8671875000 0.9117985964 - 0.7550510168 -30199.5722656250 0.9122761488 - 0.7541966438 -30201.6796875000 0.9127470255 - 0.7533409595 -30202.2636718750 0.9132402539 - 0.7524840832 -30200.1250000000 0.9137098789 - 0.7516258359 -30199.1210937500 0.9141858220 - 0.7507663965 -30201.3964843750 0.9146525264 - 0.7499056458 -30200.6679687500 0.9151249528 - 0.7490435839 -30199.3613281250 0.9155913591 - 0.7481803298 -30199.2402343750 0.9160612226 - 0.7473157644 -30199.6562500000 0.9165237546 - 0.7464499474 -30200.9375000000 0.9170076251 - 0.7455828190 -30200.0273437500 0.9174736738 - 0.7447144985 -30201.2968750000 0.9179373980 - 0.7438448668 -30200.5253906250 0.9183982611 - 0.7429739833 -30201.0253906250 0.9188601971 - 0.7421018481 -30198.7324218750 0.9193212986 - 0.7412284613 -30199.2773437500 0.9197813869 - 0.7403537631 -30201.4570312500 0.9202545881 - 0.7394778728 -30201.4882812500 0.9207134247 - 0.7386007309 -30199.1445312500 0.9211693406 - 0.7377222776 -30198.8730468750 0.9216237068 - 0.7368426323 -30200.7285156250 0.9220784307 - 0.7359616756 -30198.5390625000 0.9225327969 - 0.7350795269 -30199.0410156250 0.9229861498 - 0.7341961265 -30201.5683593750 0.9234516621 - 0.7333114743 -30201.9707031250 0.9239039421 - 0.7324255705 -30200.3417968750 0.9243518114 - 0.7315384150 -30201.4375000000 0.9247983694 - 0.7306500673 -30201.0468750000 0.9252466559 - 0.7297604084 -30200.2402343750 0.9256913662 - 0.7288695574 -30200.1660156250 0.9261382818 - 0.7279775143 -30200.1035156250 0.9265795946 - 0.7270841599 -30198.9882812500 0.9270231724 - 0.7261896133 -30200.3750000000 0.9274834394 - 0.7252938151 -30201.5644531250 0.9279211760 - 0.7243967652 -30202.5410156250 0.9283623695 - 0.7234985232 -30199.2812500000 0.9287993908 - 0.7225990891 -30201.7207031250 0.9292354584 - 0.7216983438 -30200.0937500000 0.9296734333 - 0.7207964659 -30198.7734375000 0.9301072359 - 0.7198932767 -30199.6035156250 0.9305404425 - 0.7189889550 -30200.3085937500 0.9309744835 - 0.7180833220 -30199.0703125000 0.9314047098 - 0.7171765566 -30200.1914062500 0.9318521619 - 0.7162685394 -30200.4667968750 0.9322819114 - 0.7153592706 -30200.3789062500 0.9327100515 - 0.7144488692 -30198.9824218750 0.9331389070 - 0.7135372162 -30199.3671875000 0.9335623384 - 0.7126243114 -30199.1171875000 0.9339889884 - 0.7117102742 -30199.5039062500 0.9344128370 - 0.7107949853 -30200.9941406250 0.9348503947 - 0.7098785043 -30200.8515625000 0.9352746606 - 0.7089607716 -30200.2109375000 0.9356942773 - 0.7080419064 -30200.6289062500 0.9361107945 - 0.7071217895 -30201.2656250000 0.9365313649 - 0.7062005401 -30199.0390625000 0.9369469881 - 0.7052780390 -30201.8281250000 0.9373614192 - 0.7043543458 -30199.8359375000 0.9377773404 - 0.7034294605 -30199.9433593750 0.9382071495 - 0.7025033832 -30201.2500000000 0.9386176467 - 0.7015761137 -30200.8105468750 0.9390304685 - 0.7006476521 -30198.7167968750 0.9394397736 - 0.6997180581 -30201.0527343750 0.9398460388 - 0.6987872124 -30199.8300781250 0.9402549863 - 0.6978551745 -30200.0410156250 0.9406590462 - 0.6969220042 -30201.3750000000 0.9410637617 - 0.6959876418 -30200.2656250000 0.9414698482 - 0.6950520873 -30200.1406250000 0.9418692589 - 0.6941153407 -30199.8925781250 0.9422711730 - 0.6931774020 -30200.4531250000 0.9426714182 - 0.6922383308 -30200.0644531250 0.9430691004 - 0.6912980676 -30200.0097656250 0.9434664249 - 0.6903566718 -30198.2636718750 0.9438816309 - 0.6894140244 -30200.4863281250 0.9442750216 - 0.6884703040 -30198.9707031250 0.9446693063 - 0.6875253320 -30199.1171875000 0.9450619221 - 0.6865792274 -30198.8300781250 0.9454524517 - 0.6856319904 -30201.3691406250 0.9458436370 - 0.6846835613 -30199.6796875000 0.9462293386 - 0.6837339401 -30200.0703125000 0.9466192126 - 0.6827831864 -30199.1855468750 0.9470230341 - 0.6818313003 -30201.0019531250 0.9474058151 - 0.6808782220 -30200.3828125000 0.9477915764 - 0.6799240112 -30200.6230468750 0.9481737018 - 0.6789686084 -30199.8554687500 0.9485535026 - 0.6780121326 -30199.5625000000 0.9489350319 - 0.6770544648 -30200.4746093750 0.9493296742 - 0.6760956049 -30200.2519531250 0.9497067332 - 0.6751356721 -30199.9296875000 0.9500832558 - 0.6741745472 -30199.4785156250 0.9504576921 - 0.6732122898 -30200.2265625000 0.9508308768 - 0.6722488999 -30201.3320312500 0.9512032270 - 0.6712843776 -30200.5000000000 0.9515748024 - 0.6703186631 -30198.8535156250 0.9519429207 - 0.6693518758 -30199.9375000000 0.9523108602 - 0.6683839560 -30201.1191406250 0.9526779652 - 0.6674148440 -30200.5800781250 0.9530444145 - 0.6664446592 -30200.8066406250 0.9534081221 - 0.6654732823 -30199.6835937500 0.9537709951 - 0.6645008326 -30200.2089843750 0.9541320205 - 0.6635272503 -30198.8984375000 0.9544925690 - 0.6625525355 -30198.3769531250 0.9548511505 - 0.6615766883 -30198.2656250000 0.9552081227 - 0.6605997086 -30200.0566406250 0.9555662274 - 0.6596216559 -30199.2031250000 0.9559197426 - 0.6586424112 -30200.0292968750 0.9562737346 - 0.6576620936 -30199.1484375000 0.9566267133 - 0.6566807032 -30198.2460937500 0.9569771290 - 0.6556981206 -30198.9277343750 0.9573440552 - 0.6547144651 -30200.8554687500 0.9576917887 - 0.6537297368 -30198.8261718750 0.9580390453 - 0.6527438164 -30199.4980468750 0.9583850503 - 0.6517568231 -30201.5761718750 0.9587457180 - 0.6507687569 -30200.0058593750 0.9590880275 - 0.6497795582 -30202.1191406250 0.9594300389 - 0.6487892866 -30201.0488281250 0.9597874284 - 0.6477978826 -30200.9218750000 0.9601253271 - 0.6468054056 -30200.5937500000 0.9604625106 - 0.6458117962 -30200.6816406250 0.9608161449 - 0.6448171139 -30201.6445312500 0.9611501694 - 0.6438213587 -30202.7460937500 0.9614837766 - 0.6428244710 -30201.5507812500 0.9618158340 - 0.6418265104 -30200.9921875000 0.9621452093 - 0.6408274770 -30200.4492187500 0.9624747634 - 0.6398273110 -30201.1113281250 0.9628015161 - 0.6388261318 -30200.4140625000 0.9631279111 - 0.6378238201 -30200.7558593750 0.9634354711 - 0.6368204355 -30200.0703125000 0.9637585282 - 0.6358159781 -30200.3125000000 0.9640628099 - 0.6348104477 -30198.6250000000 0.9643841386 - 0.6338038445 -30197.6757812500 0.9646853805 - 0.6327961087 -30196.7226562500 0.9649857283 - 0.6317873597 -30197.3144531250 0.9652851820 - 0.6307775378 -30196.5058593750 0.9655655026 - 0.6297666430 -30196.1191406250 0.9658625126 - 0.6287546754 -30195.5019531250 0.9661396146 - 0.6277416348 -30193.7128906250 0.9664328694 - 0.6267275214 -30193.7109375000 0.9667084217 - 0.6257123351 -30191.2988281250 0.9669984579 - 0.6246961355 -30191.7226562500 0.9672712088 - 0.6236788630 -30188.3847656250 0.9675415158 - 0.6226605177 -30188.8203125000 0.9678283930 - 0.6216410995 -30188.3457031250 0.9680969715 - 0.6206206679 -30187.7617187500 0.9683804512 - 0.6195991635 -30184.1972656250 0.9686462283 - 0.6185765862 -30184.4921875000 0.9689270258 - 0.6175529957 -30183.9902343750 0.9692065120 - 0.6165283322 -30183.8554687500 0.9694849253 - 0.6155026555 -30181.5371093750 0.9697605968 - 0.6144759059 -30182.0117187500 0.9700540304 - 0.6134481430 -30183.5214843750 0.9703279734 - 0.6124193072 -30181.2285156250 0.9706171751 - 0.6113894582 -17110.6484375000 0.9718367457 - 0.6103585362 -17112.8085937500 0.9721395373 - 0.6093266010 -17111.1875000000 0.9724397659 - 0.6082936525 -17111.5742187500 0.9727385640 - 0.6072596908 -17113.4921875000 0.9730361700 - 0.6062246561 -17115.1953125000 0.9733319283 - 0.6051886082 -17115.4140625000 0.9736263156 - 0.6041514874 -17115.7636718750 0.9739183784 - 0.6031134129 -17120.0664062500 0.9742103219 - 0.6020742655 -17120.8183593750 0.9744996428 - 0.6010341644 -17122.4414062500 0.9747874737 - 0.5999929905 -17122.7304687500 0.9750731587 - 0.5989508033 -17125.8437500000 0.9753584862 - 0.5979076028 -17127.2910156250 0.9756407142 - 0.5968633890 -17128.7773437500 0.9759224057 - 0.5958181620 -17130.3925781250 0.9762014151 - 0.5947719216 -17131.9550781250 0.9764796495 - 0.5937246680 -17133.3437500000 0.9767558575 - 0.5926764607 -17135.5351562500 0.9770303965 - 0.5916271806 -17136.7128906250 0.9773035049 - 0.5905769467 -17136.6601562500 0.9775744081 - 0.5895256996 -17138.1718750000 0.9778441787 - 0.5884734392 -17138.4765625000 0.9781124592 - 0.5874201655 -17140.1640625000 0.9783797264 - 0.5863659382 -17141.5097656250 0.9786439538 - 0.5853106380 -17141.3906250000 0.9789072275 - 0.5842544436 -17142.1015625000 0.9791688323 - 0.5831971765 -17142.4492187500 0.9794287086 - 0.5821389556 -17142.0019531250 0.9796867371 - 0.5810797811 -17141.9082031250 0.9799435735 - 0.5800195932 -17142.2070312500 0.9801985025 - 0.5789583921 -17144.2363281250 0.9804529548 - 0.5778962970 -17143.2968750000 0.9807042480 - 0.5768331289 -17141.1992187500 0.9809543490 - 0.5757690072 -17141.4824218750 0.9812024236 - 0.5747039318 -17141.7480468750 0.9814494252 - 0.5736379027 -17142.3320312500 0.9816945195 - 0.5725708604 -17142.4980468750 0.9819387197 - 0.5715028644 -17141.3515625000 0.9821798801 - 0.5704338551 -17142.4296875000 0.9824206829 - 0.5693638921 -17140.1113281250 0.9826586843 - 0.5682930350 -17140.3359375000 0.9828950763 - 0.5672211647 -17140.7500000000 0.9831310511 - 0.5661483407 -17140.3769531250 0.9833642244 - 0.5650745034 -17139.3671875000 0.9835965037 - 0.5639997721 -17140.2402343750 0.9838266969 - 0.5629240870 -17140.4550781250 0.9840559959 - 0.5618473887 -17140.6093750000 0.9842824340 - 0.5607697964 -17140.4589843750 0.9845083952 - 0.5596912503 -17140.3906250000 0.9847316742 - 0.5586116910 -17140.2617187500 0.9849541187 - 0.5575312376 -17140.4941406250 0.9851745963 - 0.5564498305 -17141.4746093750 0.9853937626 - 0.5553675294 -17141.2246093750 0.9856106639 - 0.5542842150 -17142.1738281250 0.9858264327 - 0.5532000065 -17141.8261718750 0.9860401154 - 0.5521148443 -17142.9433593750 0.9862528443 - 0.5510287285 -17141.3789062500 0.9864628315 - 0.5499416590 -17141.0585937500 0.9866721630 - 0.5488536954 -17141.5566406250 0.9868788719 - 0.5477648377 -17142.9101562500 0.9870851040 - 0.5466749668 -17142.5742187500 0.9872884154 - 0.5455842018 -17141.8261718750 0.9874904156 - 0.5444925427 -17141.1835937500 0.9876909256 - 0.5433999300 -17142.8808593750 0.9878904223 - 0.5423064232 -17142.3105468750 0.9880872369 - 0.5412119627 -17140.6406250000 0.9882832766 - 0.5401166081 -17141.3593750000 0.9884772301 - 0.5390202999 -17142.9492187500 0.9886701107 - 0.5379231572 -17142.1054687500 0.9888601303 - 0.5368250608 -17142.5449218750 0.9890492558 - 0.5357260108 -17141.8125000000 0.9892358780 - 0.5346260667 -17141.9843750000 0.9894225597 - 0.5335252881 -17142.0703125000 0.9896060228 - 0.5324235559 -17142.9394531250 0.9897891879 - 0.5313208699 -17141.2929687500 0.9899684191 - 0.5302173495 -17140.9804687500 0.9901484251 - 0.5291129351 -17141.7089843750 0.9903247952 - 0.5280075669 -17142.6035156250 0.9905014038 - 0.5269013643 -17140.8964843750 0.9906742573 - 0.5257942677 -17142.5703125000 0.9908472300 - 0.5246862173 -17142.2714843750 0.9910177588 - 0.5235773325 -17142.5390625000 0.9911874533 - 0.5224675536 -17142.9472656250 0.9913535714 - 0.5213568807 -17142.4179687500 0.9915199280 - 0.5202453136 -17143.0097656250 0.9916836023 - 0.5191328526 -17143.7421875000 0.9918466806 - 0.5180195570 -17142.7597656250 0.9920063019 - 0.5169053674 -17142.7031250000 0.9921655655 - 0.5157902837 -17143.5957031250 0.9923234582 - 0.5146743059 -17141.0058593750 0.9924779534 - 0.5135574937 -17143.6816406250 0.9926327467 - 0.5124397874 -17144.1445312500 0.9927847385 - 0.5113212466 -17143.0820312500 0.9929352403 - 0.5102018118 -17141.6835937500 0.9930838346 - 0.5090814829 -17143.7617187500 0.9932319522 - 0.5079603195 -17142.1503906250 0.9933767319 - 0.5068383217 -17143.2265625000 0.9935213327 - 0.5057154298 -17143.6503906250 0.9936626554 - 0.5045917034 -17143.2871093750 0.9938037395 - 0.5034671426 -17143.4531250000 0.9939422011 - 0.5023416877 -17143.3828125000 0.9940795898 - 0.5012153983 -17143.0644531250 0.9942148328 - 0.5000882149 -17141.4726562500 0.9943485856 - 0.4989602268 -17141.9101562500 0.9944800735 - 0.4978314042 -17141.2382812500 0.9946110249 - 0.4967017174 -17143.6953125000 0.9947392344 - 0.4955711961 -17143.7675781250 0.9948667884 - 0.4944398105 -17142.7128906250 0.9949914813 - 0.4933076203 -17142.9726562500 0.9951159954 - 0.4921745658 -17142.8886718750 0.9952372313 - 0.4910407066 -17142.3593750000 0.9953581095 - 0.4899059832 -17142.5058593750 0.9954760671 - 0.4887704551 -17142.8691406250 0.9955934286 - 0.4876340926 -17144.7265625000 0.9957084060 - 0.4864968956 -17141.9101562500 0.9958217144 - 0.4853588641 -17145.1093750000 0.9959347844 - 0.4842200279 -17144.7597656250 0.9960441589 - 0.4830803573 -17143.4687500000 0.9961525798 - 0.4819398820 -17141.9453125000 0.9962592721 - 0.4807985723 -17142.9472656250 0.9963646531 - 0.4796564579 -17142.4980468750 0.9964679480 - 0.4785135388 -17143.2968750000 0.9965701103 - 0.4773697853 -17143.5195312500 0.9966693521 - 0.4762252569 -17144.1328125000 0.9967684746 - 0.4750798941 -17144.8554687500 0.9968642592 - 0.4739337265 -17144.8339843750 0.9969597459 - 0.4727867544 -17144.8945312500 0.9970525503 - 0.4716390073 -17142.0000000000 0.9971446395 - 0.4704904258 -17142.3027343750 0.9972335696 - 0.4693410695 -17143.8300781250 0.9973228574 - 0.4681909084 -17142.3808593750 0.9974081516 - 0.4670399725 -17142.0117187500 0.9974930286 - 0.4658882022 -17144.7890625000 0.9975776672 - 0.4647356868 -17144.0097656250 0.9976580739 - 0.4635823667 -17142.9277343750 0.9977381825 - 0.4624282420 -17141.9980468750 0.9978156090 - 0.4612733722 -17144.7167968750 0.9978930950 - 0.4601176977 -17143.4785156250 0.9979665875 - 0.4589612186 -17144.8359375000 0.9980399609 - 0.4578039944 -17143.2832031250 0.9981101155 - 0.4566459954 -17144.8027343750 0.9981802702 - 0.4554871917 -17143.7265625000 0.9982480407 - 0.4543276429 -17142.9062500000 0.9983147979 - 0.4531673193 -17142.9667968750 0.9983777404 - 0.4520062208 -17143.6406250000 0.9984411001 - 0.4508443773 -17144.0371093750 0.9985014796 - 0.4496817291 -17142.6777343750 0.9985609055 - 0.4485183656 -17143.6835937500 0.9986184835 - 0.4473541975 -17145.6015625000 0.9986748695 - 0.4461893141 -17144.6835937500 0.9987301230 - 0.4450236261 -17143.3691406250 0.9987814426 - 0.4438572228 -17144.6582031250 0.9988327622 - 0.4426900446 -17144.0527343750 0.9988809824 - 0.4415221214 -17144.2675781250 0.9989287257 - 0.4403534532 -17144.5488281250 0.9989738464 - 0.4391840398 -17144.0820312500 0.9990181327 - 0.4380138814 -17144.2812500000 0.9990596175 - 0.4368429780 -17143.5644531250 0.9991009831 - 0.4356713295 -17143.5761718750 0.9991390109 - 0.4344989657 -17144.1914062500 0.9991763234 - 0.4333258569 -17143.5351562500 0.9992111325 - 0.4321520030 -17143.0214843750 0.9992454648 - 0.4309774041 -17145.5214843750 0.9992768764 - 0.4298020899 -17144.1132812500 0.9993075132 - 0.4286260307 -17143.1015625000 0.9993370175 - 0.4274492562 -17143.6914062500 0.9993631244 - 0.4262717664 -17143.9453125000 0.9993890524 - 0.4250935614 -17142.8593750000 0.9994112849 - 0.4239146113 -17146.1367187500 0.9994342327 - 0.4227349460 -17144.6601562500 0.9994529486 - 0.4215545952 -17143.9687500000 0.9994720817 - 0.4203734994 -17143.0429687500 0.9994875193 - 0.4191916883 -17144.5996093750 0.9995033741 - 0.4180091619 -17145.2402343750 0.9995154142 - 0.4168259501 -17145.1875000000 0.9995277524 - 0.4156420231 -17145.2343750000 0.9995363951 - 0.4144573808 -17144.2167968750 0.9995456338 - 0.4132720530 -17144.0429687500 0.9995505810 - 0.4120860100 -17142.2636718750 0.9995557666 - 0.4108992815 -17144.8750000000 0.9995589852 - 0.4097118378 -17144.5136718750 0.9995594025 - 0.4085237086 -17145.0332031250 0.9995597005 - 0.4073348939 -17144.2890625000 0.9995561242 - 0.4061453938 -17144.4628906250 0.9995533824 - 0.4049551785 -17145.6660156250 0.9995466471 - 0.4037643075 -17144.6250000000 0.9995394349 - 0.4025727510 -17146.1171875000 0.9995297194 - 0.4013804793 -17145.1406250000 0.9995193481 - 0.4001875520 -17144.2734375000 0.9995058179 - 0.3989939392 -17144.6972656250 0.9994915724 - 0.3977996409 -17143.4960937500 0.9994749427 - 0.3966046870 -17146.3906250000 0.9994581342 - 0.3954090476 -17145.1757812500 0.9994388223 - 0.3942127526 -17145.3750000000 0.9994168282 - 0.3930157721 -17144.1093750000 0.9993941188 - 0.3918181360 -17143.6542968750 0.9993683100 - 0.3906198442 -17145.3945312500 0.9993438125 - 0.3894208670 -17143.5468750000 0.9993135333 - 0.3882212341 -17145.2031250000 0.9992849827 - 0.3870209455 -17144.4042968750 0.9992516041 - 0.3858200014 -17145.3515625000 0.9992197752 - 0.3846184313 -17145.7246093750 0.9991829395 - 0.3834161758 -17144.4960937500 0.9991475344 - 0.3822132647 -17144.1074218750 0.9991076589 - 0.3810097277 -17143.9394531250 0.9990683198 - 0.3798055351 -17146.0449218750 0.9990268946 - 0.3786007166 -17145.1835937500 0.9989818931 - 0.3773952425 -17142.7675781250 0.9989373088 - 0.3761891127 -17144.6972656250 0.9988899231 - 0.3749823570 -17145.3339843750 0.9988412857 - 0.3737749755 -17145.8515625000 0.9987899065 - 0.3725669384 -17145.7285156250 0.9987381101 - 0.3713582754 -17146.5839843750 0.9986827970 - 0.3701489866 -17144.2304687500 0.9986282587 - 0.3689391017 -17143.7304687500 0.9985693097 - 0.3677285612 -17145.3750000000 0.9985108972 - 0.3665173948 -17144.1699218750 0.9984486103 - 0.3653056026 -17145.2656250000 0.9983860254 - 0.3640932143 -17145.0644531250 0.9983208179 - 0.3628801703 -17144.8769531250 0.9982554317 - 0.3616665602 -17143.7714843750 0.9981875420 - 0.3604522943 -17146.4140625000 0.9981178045 - 0.3592374325 -17146.0742187500 0.9980462193 - 0.3580219746 -17145.4980468750 0.9979715943 - 0.3568058908 -17146.2050781250 0.9978975654 - 0.3555892110 -17144.7109375000 0.9978203773 - 0.3543719351 -17145.3359375000 0.9977423549 - 0.3531540334 -17144.4355468750 0.9976608753 - 0.3519355655 -17145.1875000000 0.9975792170 - 0.3507164717 -17146.0722656250 0.9974949360 - 0.3494968116 -17145.1093750000 0.9974107146 - 0.3482765555 -17144.0683593750 0.9973223209 - 0.3470556736 -17144.9785156250 0.9972341657 - 0.3458342552 -17143.7910156250 0.9971420169 - 0.3446122110 -17144.4101562500 0.9970498085 - 0.3433896005 -17144.9316406250 0.9969577789 - 0.3421663940 -17144.5527343750 0.9968604445 - 0.3409426212 -17146.2285156250 0.9967635274 - 0.3397182524 -17145.1660156250 0.9966625571 - 0.3384933174 -17146.6074218750 0.9965621233 - 0.3372678161 -17144.2460937500 0.9964581728 - 0.3360417485 -17144.0273437500 0.9963546395 - 0.3348150849 -17145.3183593750 0.9962473512 - 0.3335878849 -17145.1660156250 0.9961392879 - 0.3323600888 -17145.1621093750 0.9960281253 - 0.3311317563 -17145.2617187500 0.9959176183 - 0.3299028575 -17145.0000000000 0.9958037138 - 0.3286733925 -17144.0546875000 0.9956892729 - 0.3274433613 -17145.1367187500 0.9955710173 - 0.3262127936 -17145.2285156250 0.9954523444 - 0.3249816597 -17145.3769531250 0.9953328371 - 0.3237499595 -17145.8476562500 0.9952105284 - 0.3225177526 -17146.2910156250 0.9950870275 - 0.3212849498 -17145.9628906250 0.9949604869 - 0.3200516403 -17145.8828125000 0.9948330522 - 0.3188177645 -17146.8125000000 0.9947031140 - 0.3175833821 -17143.6718750000 0.9945723414 - 0.3163484335 -17144.9238281250 0.9944389462 - 0.3151129484 -17145.7695312500 0.9943057299 - 0.3138769269 -17147.2050781250 0.9941679835 - 0.3126403689 -17146.8593750000 0.9940307736 - 0.3114033043 -17145.0761718750 0.9938906431 - 0.3101657033 -17144.4199218750 0.9937492013 - 0.3089275658 -17145.6191406250 0.9936048388 - 0.3076889217 -17146.0507812500 0.9934604764 - 0.3064497411 -17145.3125000000 0.9933134913 - 0.3052100539 -17146.2167968750 0.9931653142 - 0.3039698303 -17145.3925781250 0.9930135608 - 0.3027291000 -17145.2148437500 0.9928619862 - 0.3014878631 -17147.0625000000 0.9927092195 - 0.3002461195 -17144.6015625000 0.9925528765 - 0.2990038395 -17147.1152343750 0.9923964143 - 0.2977610826 -17145.0214843750 0.9922357798 - 0.2965178192 -17144.0917968750 0.9920747280 - 0.2952740192 -17146.3613281250 0.9919114709 - 0.2940297425 -17144.3242187500 0.9917482734 - 0.2927849889 -17145.4941406250 0.9915809035 - 0.2915396988 -17146.9433593750 0.9914134741 - 0.2902939320 -17144.1660156250 0.9912421703 - 0.2890476882 -17145.7187500000 0.9910710454 - 0.2878009379 -17144.9765625000 0.9908978939 - 0.2865537107 -17145.8222656250 0.9907231927 - 0.2853059769 -17145.3632812500 0.9905452132 - 0.2840577662 -17144.9062500000 0.9903665185 - 0.2828090787 -17145.4648437500 0.9901865125 - 0.2815599144 -17144.6582031250 0.9900043607 - 0.2803102732 -17146.0371093750 0.9898194075 - 0.2790601552 -17145.0722656250 0.9896339774 - 0.2778095603 -17146.1230468750 0.9894459248 - 0.2765584886 -17145.5722656250 0.9892578721 - 0.2753069699 -17146.0371093750 0.9890656471 - 0.2740549743 -17144.9980468750 0.9888735414 - 0.2728025019 -17146.0683593750 0.9886791706 - 0.2715495825 -17144.6875000000 0.9884830713 - 0.2702961862 -17146.2519531250 0.9882852435 - 0.2690423429 -17145.2070312500 0.9880836606 - 0.2677880526 -17145.8496093750 0.9878824353 - 0.2665332854 -17145.4824218750 0.9876789451 - 0.2652780712 -17145.4609375000 0.9874743223 - 0.2640224099 -17146.3828125000 0.9872665405 - 0.2627663314 -17146.5683593750 0.9870576262 - 0.2615097761 -17145.6464843750 0.9868473411 - 0.2602527738 -17146.4414062500 0.9866350889 - 0.2589953542 -17145.6367187500 0.9864195585 - 0.2577374578 -17145.5820312500 0.9862036705 - 0.2564791441 -17146.4003906250 0.9859857559 - 0.2552204132 -17146.3964843750 0.9857679605 - 0.2539612353 -17144.9453125000 0.9855449796 - 0.2527016401 -17145.9882812500 0.9853224158 - 0.2514415979 -17145.2207031250 0.9850959182 - 0.2501811385 -17144.8085937500 0.9848715067 - 0.2489202321 -17146.2832031250 0.9846419096 - 0.2476589233 -17145.2128906250 0.9844122529 - 0.2463971972 -17145.6562500000 0.9841790795 - 0.2451350540 -17144.7460937500 0.9839470387 - 0.2438724935 -17145.2246093750 0.9837096930 - 0.2426095158 -17146.5175781250 0.9834728837 - 0.2413461208 -17145.7656250000 0.9832333326 - 0.2400823236 -17145.6093750000 0.9829941988 - 0.2388181239 -17146.0097656250 0.9827502966 - 0.2375535220 -17146.2031250000 0.9825060368 - 0.2362885028 -17146.8789062500 0.9822589755 - 0.2350230962 -17144.8945312500 0.9820116758 - 0.2337572873 -17146.0996093750 0.9817618132 - 0.2324910760 -17145.1640625000 0.9815100431 - 0.2312244773 -17146.5117187500 0.9812556505 - 0.2299574763 -17145.2148437500 0.9810019135 - 0.2286901027 -17145.1328125000 0.9807439446 - 0.2274223268 -17146.4062500000 0.9804855585 - 0.2261541635 -17145.7382812500 0.9802237749 - 0.2248856276 -17145.8007812500 0.9799638391 - 0.2236167043 -17144.0292968750 0.9796973467 - 0.2223474085 -17145.3300781250 0.9794320464 - 0.2210777253 -17145.4726562500 0.9791634083 - 0.2198076844 -17144.9003906250 0.9788963795 - 0.2185372561 -17146.4648437500 0.9786245227 - 0.2172664553 -17145.9785156250 0.9783507586 - 0.2159952968 -17146.1933593750 0.9780753851 - 0.2147237659 -17146.5175781250 0.9778003693 - 0.2134518772 -17144.6835937500 0.9775202870 - 0.2121796161 -17144.9375000000 0.9772407413 - 0.2109069973 -17145.5742187500 0.9769575596 - 0.2096340358 -17146.0312500000 0.9766760468 - 0.2083607018 -17146.4160156250 0.9763892889 - 0.2070870250 -17145.9492187500 0.9761028290 - 0.2058129907 -17145.9394531250 0.9758121371 - 0.2045386136 -17145.6757812500 0.9755227566 - 0.2032638788 -17145.8007812500 0.9752292633 - 0.2019888014 -17146.4257812500 0.9749351144 - 0.2007133961 -17143.1601562500 0.9746382833 - 0.1994376332 -17144.8183593750 0.9743416905 - 0.1981615424 -17145.9335937500 0.9740405679 - 0.1968851089 -17144.8476562500 0.9737384915 - 0.1956083477 -17144.4648437500 0.9734355211 - 0.1943312585 -17145.9179687500 0.9731310606 - 0.1930538267 -17145.5625000000 0.9728230238 - 0.1917760670 -17147.4238281250 0.9725146890 - 0.1904979944 -17145.2695312500 0.9722051024 - 0.1892195940 -17146.2792968750 0.9718927145 - 0.1879408807 -17145.4667968750 0.9715775251 - 0.1866618395 -17144.1406250000 0.9712633491 - 0.1853824854 -17145.4863281250 0.9709442854 - 0.1841028035 -17145.5078125000 0.9706254601 - 0.1828228235 -17146.8437500000 0.9703037739 - 0.1815425307 -17145.3515625000 0.9699823260 - 0.1802619398 -17145.4628906250 0.9696556330 - 0.1789810359 -17146.0976562500 0.9693298340 - 0.1776998192 -17144.4062500000 0.9690026641 - 0.1764183044 -17145.7363281250 0.9686719179 - 0.1751365066 -17145.3730468750 0.9683385491 - 0.1738543957 -17146.8203125000 0.9680059552 - 0.1725719869 -17144.1171875000 0.9676710367 - 0.1712892950 -17145.2382812500 0.9673332572 - 0.1700063199 -17146.2324218750 0.9669938684 - 0.1687230468 -17145.0605468750 0.9666554928 - 0.1674394757 -17145.8027343750 0.9663106203 - 0.1661556363 -17145.8066406250 0.9659662843 - 0.1648715138 -17146.8066406250 0.9656195641 - 0.1635871083 -17146.3613281250 0.9652724862 - 0.1623024344 -17143.2187500000 0.9649222493 - 0.1610174775 -17146.3476562500 0.9645709991 - 0.1597322375 -17143.8750000000 0.9642192721 - 0.1584467441 -17145.9804687500 0.9638625383 - 0.1571609825 -17145.0917968750 0.9635058045 - 0.1558749378 -17145.2910156250 0.9631469846 - 0.1545886397 -17145.8359375000 0.9627887607 - 0.1533020735 -17146.5644531250 0.9624252915 - 0.1520152539 -17146.0898437500 0.9620620012 - 0.1507281810 -17145.7988281250 0.9616953135 - 0.1494408399 -17144.3066406250 0.9613288641 - 0.1481532604 -17144.8496093750 0.9609594345 - 0.1468654126 -17145.2148437500 0.9605894685 - 0.1455773264 -17145.8515625000 0.9602161646 - 0.1442889869 -17144.9453125000 0.9598413706 - 0.1430004090 -17145.2695312500 0.9594632387 - 0.1417115927 -17145.2500000000 0.9590870142 - 0.1404225230 -17145.4140625000 0.9587075114 - 0.1391332299 -17146.5800781250 0.9583244324 - 0.1378436983 -17144.6230468750 0.9579421282 - 0.1365539283 -17144.4511718750 0.9575572610 - 0.1352639198 -17145.4511718750 0.9571694732 - 0.1339736879 -17145.7285156250 0.9567815065 - 0.1326832324 -17145.1796875000 0.9563922882 - 0.1313925534 -17146.0937500000 0.9559989572 - 0.1301016361 -17146.9863281250 0.9556058049 - 0.1288105100 -17145.4570312500 0.9552094936 - 0.1275191754 -17145.8535156250 0.9548114538 - 0.1262276024 -17145.8769531250 0.9544124007 - 0.1249358356 -17143.8613281250 0.9540112019 - 0.1236438453 -17143.8378906250 0.9536089897 - 0.1223516539 -17144.2050781250 0.9532039165 - 0.1210592464 -17145.2988281250 0.9527986646 - 0.1197666377 -17145.6796875000 0.9523897171 - 0.1184738278 -17144.8222656250 0.9519795179 - 0.1171808094 -17144.4550781250 0.9515681267 - 0.1158876047 -17144.6367187500 0.9511559010 - 0.1145941913 -17144.5917968750 0.9507393241 - 0.1133005917 -17144.3535156250 0.9503251314 - 0.1120067984 -17145.1582031250 0.9499053359 - 0.1107128114 -17144.5507812500 0.9494848847 - 0.1094186381 -17144.7011718750 0.9490635991 - 0.1081242785 -17144.4628906250 0.9486384392 - 0.1068297401 -17146.0585937500 0.9482136965 - 0.1055350155 -17143.6132812500 0.9477868676 - 0.1042401195 -17143.8027343750 0.9473581314 - 0.1029450372 -17145.5078125000 0.9469266534 - 0.1016497836 -17143.1464843750 0.9464947581 - 0.1003543660 -17143.9453125000 0.9460585117 - 0.0990587696 -17144.4218750000 0.9456220865 - 0.0977630019 -17145.1015625000 0.9451845288 - 0.0964670777 -17144.3125000000 0.9447454214 - 0.0951709822 -17144.7871093750 0.9443038702 - 0.0938747302 -17146.1074218750 0.9438605309 - 0.0925783217 -17146.8339843750 0.9434177279 - 0.0912817493 -17145.1562500000 0.9429695606 - 0.0899850279 -17145.2187500000 0.9425215721 - 0.0886881500 -17145.7109375000 0.9420732856 - 0.0873911232 -17145.0273437500 0.9416196942 - 0.0860939473 -17145.5546875000 0.9411644936 - 0.0847966224 -17144.8144531250 0.9407113194 - 0.0834991559 -17144.0371093750 0.9402537346 - 0.0822015554 -17144.6796875000 0.9397925138 - 0.0809038058 -17144.3066406250 0.9393370152 - 0.0796059221 -17144.7128906250 0.9388716817 - 0.0783079043 -17145.8691406250 0.9384081364 - 0.0770097524 -17145.7285156250 0.9379450679 - 0.0757114738 -17146.0332031250 0.9374757409 - 0.0744130611 -17145.7421875000 0.9370083809 - 0.0731145293 -17143.8046875000 0.9365343451 - 0.0718158633 -17145.5722656250 0.9360628128 - 0.0705170855 -17144.5644531250 0.9355898499 - 0.0692181811 -17144.9472656250 0.9351134300 - 0.0679191649 -17145.2792968750 0.9346359372 - 0.0666200295 -17145.0097656250 0.9341561794 - 0.0653207824 -17144.9140625000 0.9336755872 - 0.0640214235 -17145.3417968750 0.9331906438 - 0.0627219602 -17146.4296875000 0.9327095151 - 0.0614223890 -17145.9824218750 0.9322233200 - 0.0601227097 -17146.2480468750 0.9317338467 - 0.0588229336 -17143.8710937500 0.9312425852 - 0.0575230531 -17144.5585937500 0.9307523966 - 0.0562230796 -17143.7695312500 0.9302586317 - 0.0549230091 -17144.0800781250 0.9297624230 - 0.0536228456 -17145.6210937500 0.9292683601 - 0.0523225889 -17145.0468750000 0.9287693501 - 0.0510222465 -17143.5722656250 0.9282703996 - 0.0497218147 -17144.9726562500 0.9277687669 - 0.0484213009 -17144.1015625000 0.9272652268 - 0.0471207052 -17144.6464843750 0.9267590642 - 0.0458200276 -17144.9160156250 0.9262535572 - 0.0445192717 -17143.3886718750 0.9257451892 - 0.0432184413 -17144.6601562500 0.9252358079 - 0.0419175401 -17144.1113281250 0.9247221947 - 0.0406165645 -17144.9472656250 0.9242113829 - 0.0393155217 -17145.2265625000 0.9236968756 - 0.0380144119 -17145.7382812500 0.9231798649 - 0.0367132388 -17144.9746093750 0.9226623774 - 0.0354120024 -17145.0703125000 0.9221416712 - 0.0341107063 -17143.6562500000 0.9216220975 - 0.0328093544 -17143.7753906250 0.9210957289 - 0.0315079428 -17145.3867187500 0.9205731750 - 0.0302064791 -17145.0820312500 0.9200472832 - 0.0289049651 -17145.2226562500 0.9195176363 - 0.0276034027 -17143.6308593750 0.9189879894 - 0.0263017919 -17143.5351562500 0.9184581041 - 0.0250001363 -17145.6113281250 0.9179246426 - 0.0236984398 -17146.0332031250 0.9173914790 - 0.0223967023 -17145.6738281250 0.9168543220 - 0.0210949276 -17145.4199218750 0.9163171053 - 0.0197931156 -17144.3828125000 0.9157781005 - 0.0184912719 -17143.6875000000 0.9152361155 - 0.0171893947 -17145.3300781250 0.9146918654 - 0.0158874895 -17143.8769531250 0.9141523838 - 0.0145855583 -17145.1054687500 0.9136051536 - 0.0132836010 -17145.7968750000 0.9130578041 - 0.0119816214 -17143.5273437500 0.9125103951 - 0.0106796222 -17145.3144531250 0.9119588733 - 0.0093776044 -17145.1191406250 0.9114100337 - 0.0080755707 -17144.6484375000 0.9108538628 - 0.0067735235 -17144.7265625000 0.9103006124 - 0.0054714647 -17144.5507812500 0.9097449780 - 0.0041693966 -17146.1425781250 0.9091874957 - 0.0028673213 -17144.1328125000 0.9086278677 - 0.0015652411 -17144.9609375000 0.9080667496 - 0.0002631585 -17144.2441406250 0.9075036049 - -0.0010389247 -17145.5292968750 0.9069429636 - -0.0023410060 -17144.5039062500 0.9063754082 - -0.0036430834 -17144.7636718750 0.9058066607 - -0.0049451548 -17144.8691406250 0.9052411318 - -0.0062472178 -17145.3378906250 0.9046728015 - -0.0075492701 -17145.2519531250 0.9041012526 - -0.0088513093 -17143.3242187500 0.9035270214 - -0.0101533337 -17144.4062500000 0.9029530287 - -0.0114553412 -17144.4160156250 0.9023770094 - -0.0127573293 -17144.6132812500 0.9018009305 - -0.0140592949 -17144.6289062500 0.9012263417 - -0.0153612373 -17143.8828125000 0.9006453753 - -0.0166631546 -17145.2812500000 0.9000619054 - -0.0179650411 -17143.7402343750 0.8994804621 - -0.0192668997 -17145.3632812500 0.8988986015 - -0.0205687247 -17143.3398437500 0.8983094096 - -0.0218705144 -17144.5273437500 0.8977266550 - -0.0231722668 -17144.5546875000 0.8971388340 - -0.0244739801 -17144.2304687500 0.8965510130 - -0.0257756524 -17143.3222656250 0.8959539533 - -0.0270772818 -17144.9863281250 0.8953669667 - -0.0283788648 -17144.5136718750 0.8947756886 - -0.0296803992 -17143.3457031250 0.8941780925 - -0.0309818834 -17144.8046875000 0.8935829401 - -0.0322833136 -17144.9355468750 0.8929886222 - -0.0335846916 -17145.8183593750 0.8923893571 - -0.0348860100 -17145.5039062500 0.8917923570 - -0.0361872725 -17144.7226562500 0.8911916018 - -0.0374884717 -17144.4667968750 0.8905884027 - -0.0387896076 -17144.4550781250 0.8899813294 - -0.0400906764 -17142.8378906250 0.8893764019 - -0.0413916782 -17144.9218750000 0.8887713552 - -0.0426926129 -17144.8125000000 0.8881693482 - -0.0439934731 -17145.1621093750 0.8875586390 - -0.0452942550 -17143.9785156250 0.8869481087 - -0.0465949662 -17143.8847656250 0.8863382936 - -0.0478955954 -17143.6718750000 0.8857260346 - -0.0491961427 -17145.9941406250 0.8851138949 - -0.0504966080 -17143.3925781250 0.8845009804 - -0.0517969839 -17143.6992187500 0.8838805556 - -0.0530972779 -17143.0605468750 0.8832660913 - -0.0543974787 -17144.0312500000 0.8826489449 - -0.0556975864 -17142.6894531250 0.8820285797 - -0.0569976009 -17144.6113281250 0.8814091682 - -0.0582975186 -17145.7773437500 0.8807911873 - -0.0595973395 -17144.2851562500 0.8801683187 - -0.0608970560 -17144.3984375000 0.8795469403 - -0.0621966720 -17142.9121093750 0.8789198995 - -0.0634961799 -17144.9277343750 0.8782932162 - -0.0647955835 -17146.2910156250 0.8776680827 - -0.0660948753 -17144.8925781250 0.8770401478 - -0.0673940554 -17145.3964843750 0.8764117956 - -0.0686931163 -17143.7382812500 0.8757801652 - -0.0699920654 -17144.0175781250 0.8751475215 - -0.0712908953 -17143.7148437500 0.8745161295 - -0.0725896060 -17144.9941406250 0.8738861680 - -0.0738881975 -17144.4101562500 0.8732491732 - -0.0751866549 -17145.9023437500 0.8726153970 - -0.0764849856 -17143.7070312500 0.8719729781 - -0.0777831897 -17143.4433593750 0.8713364601 - -0.0790812671 -17143.0468750000 0.8706990480 - -0.0803792030 -17144.3515625000 0.8700569868 - -0.0816770047 -17143.1347656250 0.8694165945 - -0.0829746649 -17143.2773437500 0.8687719107 - -0.0842721909 -17144.3183593750 0.8681331873 - -0.0855695680 -17143.3847656250 0.8674877882 - -0.0868668035 -17143.9433593750 0.8668449521 - -0.0881638899 -17144.4218750000 0.8661962748 - -0.0894608274 -17143.9140625000 0.8655519485 - -0.0907576159 -17143.5585937500 0.8649041653 - -0.0920542479 -17143.3593750000 0.8642516732 - -0.0933507234 -17142.2832031250 0.8635991812 - -0.0946470425 -17142.9648437500 0.8629465699 - -0.0959431976 -17143.4453125000 0.8622972965 - -0.0972391963 -17144.3417968750 0.8616484404 - -0.0985350236 -17143.0683593750 0.8609884977 - -0.0998306870 -17144.9550781250 0.8603368402 - -0.1011261791 -17142.5214843750 0.8596740961 - -0.1024215072 -17143.3847656250 0.8590193391 - -0.1037166566 -17144.8535156250 0.8583629131 - -0.1050116271 -17142.2714843750 0.8577032089 - -0.1063064188 -17144.3183593750 0.8570423126 - -0.1076010317 -17144.4199218750 0.8563815355 - -0.1088954657 -17143.4082031250 0.8557176590 - -0.1101897135 -17142.0585937500 0.8550521731 - -0.1114837751 -17143.4257812500 0.8543908596 - -0.1127776504 -17144.1054687500 0.8537266254 - -0.1140713245 -17142.6875000000 0.8530563712 - -0.1153648123 -17143.8125000000 0.8523899913 - -0.1166581064 -17144.6152343750 0.8517254591 - -0.1179511994 -17144.5390625000 0.8510585427 - -0.1192440912 -17144.0449218750 0.8503819704 - -0.1205367818 -17144.6621093750 0.8497135043 - -0.1218292713 -17144.0781250000 0.8490397930 - -0.1231215522 -17143.2304687500 0.8483608961 - -0.1244136244 -17142.3359375000 0.8476876020 - -0.1257054806 -17143.7089843750 0.8470167518 - -0.1269971281 -17144.5292968750 0.8463357687 - -0.1282885671 -17142.9140625000 0.8456577659 - -0.1295797825 -17144.6250000000 0.8449829817 - -0.1308707744 -17142.3437500000 0.8442993760 - -0.1321615428 -17144.4355468750 0.8436186910 - -0.1334521025 -17142.9394531250 0.8429368138 - -0.1347424239 -17143.0214843750 0.8422548175 - -0.1360325217 -17144.0097656250 0.8415693641 - -0.1373223811 -17142.7890625000 0.8408839703 - -0.1386120170 -17143.9765625000 0.8402034044 - -0.1399013996 -17143.8261718750 0.8395152092 - -0.1411905587 -17143.6777343750 0.8388267756 - -0.1424794793 -17143.9375000000 0.8381361365 - -0.1437681615 -17144.4160156250 0.8374458551 - -0.1450565904 -17143.4648437500 0.8367573619 - -0.1463447809 -17143.4570312500 0.8360611200 - -0.1476327330 -17143.1757812500 0.8353705406 - -0.1489204168 -17144.0820312500 0.8346796632 - -0.1502078474 -17144.3105468750 0.8339835405 - -0.1514950395 -17144.3984375000 0.8332846761 - -0.1527819633 -17144.5937500000 0.8325906396 - -0.1540686339 -17144.4121093750 0.8318927288 - -0.1553550363 -17141.9570312500 0.8311851025 - -0.1566411704 -17143.2441406250 0.8304888010 - -0.1579270512 -17143.7832031250 0.8297911882 - -0.1592126638 -17143.6894531250 0.8290848136 - -0.1604980081 -17143.2421875000 0.8283824325 - -0.1617830694 -17143.2734375000 0.8276789188 - -0.1630678624 -17143.2421875000 0.8269730806 - -0.1643523723 -17143.5722656250 0.8262662888 - -0.1656366140 -17142.6816406250 0.8255563974 - -0.1669205725 -17144.1601562500 0.8248479962 - -0.1682042480 -17142.7519531250 0.8241383433 - -0.1694876403 -17142.0820312500 0.8234254718 - -0.1707707345 -17143.6933593750 0.8227168322 - -0.1720535457 -17141.5273437500 0.8219981790 - -0.1733360738 -17143.9726562500 0.8212887049 - -0.1746182889 -17142.4570312500 0.8205711246 - -0.1759002209 -17143.8886718750 0.8198605776 - -0.1771818548 -17142.2031250000 0.8191350102 - -0.1784631908 -17144.3417968750 0.8184223175 - -0.1797442138 -17142.2773437500 0.8177011609 - -0.1810249388 -17143.1328125000 0.8169766665 - -0.1823053509 -17141.8144531250 0.8162574768 - -0.1835854650 -17142.9941406250 0.8155329823 - -0.1848652661 -17143.3847656250 0.8148152232 - -0.1861447394 -17141.7148437500 0.8140814900 - -0.1874239147 -17143.6523437500 0.8133583069 - -0.1887027621 -17143.3222656250 0.8126322627 - -0.1899812967 -17141.7343750000 0.8118968606 - -0.1912595034 -17143.9707031250 0.8111708164 - -0.1925373822 -17143.4609375000 0.8104422688 - -0.1938149482 -17143.0234375000 0.8097134233 - -0.1950921714 -17143.9394531250 0.8089743257 - -0.1963690668 -17143.4335937500 0.8082392812 - -0.1976456344 -17142.5742187500 0.8075081706 - -0.1989218593 -17142.8105468750 0.8067675829 - -0.2001977563 -17143.4863281250 0.8060315251 - -0.2014733106 -17142.6972656250 0.8052919507 - -0.2027485222 -17143.4042968750 0.8045567870 - -0.2040233910 -17142.4589843750 0.8038094044 - -0.2052979171 -17144.8750000000 0.8030712605 - -0.2065720856 -17142.1777343750 0.8023282886 - -0.2078459114 -17142.3652343750 0.8015745878 - -0.2091193795 -17143.6640625000 0.8008351922 - -0.2103924900 -17143.9082031250 0.8000888824 - -0.2116652578 -17142.0097656250 0.7993386984 - -0.2129376531 -17142.7441406250 0.7985872626 - -0.2142096907 -17143.3066406250 0.7978398204 - -0.2154813707 -17142.9121093750 0.7970911264 - -0.2167526931 -17143.9335937500 0.7963404655 - -0.2180236280 -17141.4609375000 0.7955785990 - -0.2192942053 -17141.8144531250 0.7948253155 - -0.2205644101 -17142.1074218750 0.7940696478 - -0.2218342423 -17142.6953125000 0.7933108211 - -0.2231036872 -17142.9628906250 0.7925524712 - -0.2243727595 -17142.2285156250 0.7917909622 - -0.2256414592 -17143.9960937500 0.7910329103 - -0.2269097716 -17142.0917968750 0.7902680039 - -0.2281776965 -17144.3632812500 0.7895070314 - -0.2294452339 -17143.2109375000 0.7887433767 - -0.2307123840 -17142.0273437500 0.7879754305 - -0.2319791466 -17141.9531250000 0.7872046232 - -0.2332455069 -17142.6679687500 0.7864375114 - -0.2345114797 -17142.9589843750 0.7856721878 - -0.2357770652 -17143.7812500000 0.7849045992 - -0.2370422333 -17142.8886718750 0.7841227055 - -0.2383069992 -17142.4316406250 0.7833533287 - -0.2395713776 -17143.0566406250 0.7825800776 - -0.2408353388 -17141.4453125000 0.7818056941 - -0.2420988828 -17143.1230468750 0.7810258269 - -0.2433620244 -17143.3300781250 0.7802473307 - -0.2446247637 -17144.0878906250 0.7794717550 - -0.2458870709 -17142.3046875000 0.7786903977 - -0.2471489757 -17143.6289062500 0.7779054642 - -0.2484104484 -17142.9375000000 0.7771245241 - -0.2496715039 -17140.6738281250 0.7763401866 - -0.2509321570 -17142.9082031250 0.7755568027 - -0.2521923482 -17142.3593750000 0.7747653723 - -0.2534521520 -17142.1250000000 0.7739776969 - -0.2547114789 -17142.1601562500 0.7731915712 - -0.2559704185 -17143.5917968750 0.7724034190 - -0.2572289109 -17142.4121093750 0.7716051936 - -0.2584869564 -17141.6914062500 0.7708113790 - -0.2597445548 -17143.3222656250 0.7700222731 - -0.2610017359 -17144.2031250000 0.7692286968 - -0.2622584701 -17143.3730468750 0.7684277296 - -0.2635147572 -17143.3750000000 0.7676309347 - -0.2647705972 -17142.0898437500 0.7668290138 - -0.2660259604 -17142.5195312500 0.7660337090 - -0.2672809064 -17141.9726562500 0.7652249932 - -0.2685354054 -17143.3476562500 0.7644245625 - -0.2697894275 -17143.1250000000 0.7636213303 - -0.2710430026 -17142.6679687500 0.7628188729 - -0.2722961009 -17142.2343750000 0.7620056868 - -0.2735487521 -17143.0351562500 0.7611981630 - -0.2748009562 -17142.7148437500 0.7603915334 - -0.2760526836 -17143.2070312500 0.7595825195 - -0.2773039341 -17143.3437500000 0.7587717175 - -0.2785547078 -17141.6992187500 0.7579522729 - -0.2798050046 -17140.7460937500 0.7571398616 - -0.2810548544 -17143.0839843750 0.7563268542 - -0.2823042274 -17141.9843750000 0.7555108070 - -0.2835530937 -17144.0605468750 0.7546889782 - -0.2848014832 -17143.2421875000 0.7538691163 - -0.2860494256 -17142.5332031250 0.7530515194 - -0.2872968316 -17143.7148437500 0.7522332072 - -0.2885437906 -17142.6894531250 0.7514020205 - -0.2897902429 -17142.1484375000 0.7505807877 - -0.2910362184 -17141.6445312500 0.7497531176 - -0.2922816873 -17143.6933593750 0.7489298582 - -0.2935266495 -17143.4804687500 0.7480962873 - -0.2947711349 -17143.6679687500 0.7472670078 - -0.2960151136 -17141.5742187500 0.7464358211 - -0.2972585857 -17143.6640625000 0.7456066608 - -0.2985015810 -17141.9199218750 0.7447748184 - -0.2997440398 -17143.8085937500 0.7439334393 - -0.3009859920 -17142.1738281250 0.7430986166 - -0.3022274375 -17141.7265625000 0.7422633171 - -0.3034683764 -17141.8222656250 0.7414269447 - -0.3047088087 -17143.4335937500 0.7405809760 - -0.3059487045 -17141.5156250000 0.7397424579 - -0.3071880937 -17140.8339843750 0.7388975620 - -0.3084269464 -17142.4785156250 0.7380581498 - -0.3096652925 -17142.1503906250 0.7372159958 - -0.3109031022 -17141.7050781250 0.7363618612 - -0.3121404052 -17143.8632812500 0.7355185151 - -0.3133771718 -17141.9707031250 0.7346689701 - -0.3146134019 -17141.9238281250 0.7338191867 - -0.3158490956 -17142.2421875000 0.7329707146 - -0.3170842528 -17142.2910156250 0.7321106791 - -0.3183188736 -17144.3769531250 0.7312608361 - -0.3195529580 -17142.7148437500 0.7304040790 - -0.3207865059 -17142.9765625000 0.7295494676 - -0.3220194876 -17143.1894531250 0.7286945581 - -0.3232519627 -17142.4296875000 0.7278279066 - -0.3244838715 -17142.6210937500 0.7269689441 - -0.3257152140 -17142.6523437500 0.7261103988 - -0.3269460201 -17142.9472656250 0.7252488136 - -0.3281762600 -17141.5761718750 0.7243761420 - -0.3294059634 -17140.9218750000 0.7235103846 - -0.3306350708 -17141.9921875000 0.7226470709 - -0.3318636417 -17143.2792968750 0.7217804193 - -0.3330916762 -17142.7890625000 0.7209129930 - -0.3343191147 -17141.9667968750 0.7200345397 - -0.3355459869 -17142.3808593750 0.7191640735 - -0.3367722929 -17141.7578125000 0.7182928920 - -0.3379980326 -17141.9238281250 0.7174196243 - -0.3392232060 -17142.3457031250 0.7165461779 - -0.3404477835 -17143.8554687500 0.7156614661 - -0.3416717947 -17142.2089843750 0.7147839069 - -0.3428952396 -17140.7265625000 0.7139058113 - -0.3441180885 -17142.5468750000 0.7130298018 - -0.3453403413 -17142.8554687500 0.7121490240 - -0.3465620279 -17143.5273437500 0.7112579346 - -0.3477831185 -17142.6054687500 0.7103735209 - -0.3490036428 -17142.7617187500 0.7094888687 - -0.3502235413 -17141.6835937500 0.7086043358 - -0.3514428735 -17142.9023437500 0.7077178359 - -0.3526615798 -17144.6699218750 0.7068287134 - -0.3538797200 -17142.0917968750 0.7059277892 - -0.3550972342 -17142.1503906250 0.7050379515 - -0.3563141823 -17142.4511718750 0.7041451335 - -0.3575305045 -17144.2792968750 0.7032541037 - -0.3587462008 -17143.9511718750 0.7023594975 - -0.3599613011 -17142.6406250000 0.7014528513 - -0.3611758053 -17141.4277343750 0.7005555034 - -0.3623896837 -17142.2851562500 0.6996571422 - -0.3636029661 -17143.0000000000 0.6987592578 - -0.3648156226 -17142.2792968750 0.6978576183 - -0.3660276532 -17143.4863281250 0.6969442368 - -0.3672390580 -17142.1523437500 0.6960407495 - -0.3684498370 -17143.0468750000 0.6951370835 - -0.3696600199 -17142.7050781250 0.6942307949 - -0.3708695471 -17143.5976562500 0.6933243871 - -0.3720784783 -17142.2949218750 0.6924031973 - -0.3732867539 -17142.3691406250 0.6914936304 - -0.3744944036 -17142.1601562500 0.6905818582 - -0.3757013977 -17141.9941406250 0.6896730661 - -0.3769077659 -17143.9570312500 0.6887598634 - -0.3781135082 -17143.5742187500 0.6878451705 - -0.3793185949 -17141.7207031250 0.6869166493 - -0.3805230558 -17142.3671875000 0.6859991550 - -0.3817268610 -17143.4335937500 0.6850816607 - -0.3829300404 -17143.2890625000 0.6841617823 - -0.3841325343 -17142.7929687500 0.6832401156 - -0.3853344023 -17143.3320312500 0.6823176742 - -0.3865356147 -17141.6660156250 0.6813833117 - -0.3877361417 -17142.8164062500 0.6804593801 - -0.3889360428 -17143.6953125000 0.6795335412 - -0.3901352882 -17142.5195312500 0.6786052585 - -0.3913338482 -17142.5351562500 0.6776774526 - -0.3925317526 -17144.4609375000 0.6767475009 - -0.3937290013 -17142.3867187500 0.6758038998 - -0.3949255645 -17143.6953125000 0.6748729944 - -0.3961214721 -17143.9277343750 0.6739410758 - -0.3973167241 -17142.6425781250 0.6730056405 - -0.3985112906 -17144.0019531250 0.6720688939 - -0.3997051716 -17142.3769531250 0.6711190343 - -0.4008983672 -17142.8378906250 0.6701812744 - -0.4020909071 -17143.0214843750 0.6692407131 - -0.4032827318 -17144.0273437500 0.6683016419 - -0.4044739008 -17144.5937500000 0.6673605442 - -0.4056643844 -17142.5722656250 0.6664164662 - -0.4068541825 -17143.0683593750 0.6654596329 - -0.4080432653 -17142.5019531250 0.6645139456 - -0.4092316628 -17142.6328125000 0.6635658145 - -0.4104194045 -17144.7187500000 0.6626192927 - -0.4116064012 -17143.2539062500 0.6616698503 - -0.4127927423 -17143.3183593750 0.6607189775 - -0.4139783382 -17142.4726562500 0.6597541571 - -0.4151632786 -17143.8574218750 0.6588019133 - -0.4163474739 -17142.7148437500 0.6578465104 - -0.4175309837 -17141.6503906250 0.6568917632 - -0.4187137783 -17142.9570312500 0.6559354663 - -0.4198958874 -17142.1445312500 0.6549765468 - -0.4210772514 -17144.2656250000 0.6540186405 - -0.4222579300 -17143.0820312500 0.6530451775 - -0.4234378636 -17142.9238281250 0.6520826221 - -0.4246171117 -17144.0000000000 0.6511216164 - -0.4257956147 -17142.4843750000 0.6501567364 - -0.4269734025 -17145.0703125000 0.6491935253 - -0.4281504750 -17143.0996093750 0.6482254267 - -0.4293268025 -17142.1660156250 0.6472571492 - -0.4305024147 -17143.1640625000 0.6462771893 - -0.4316773117 -17143.6796875000 0.6453066468 - -0.4328514338 -17142.9707031250 0.6443357468 - -0.4340248704 -17143.2167968750 0.6433626413 - -0.4351975322 -17142.9375000000 0.6423887610 - -0.4363694787 -17143.6093750000 0.6414164901 - -0.4375406802 -17143.2656250000 0.6404258609 - -0.4387111366 -17142.6972656250 0.6394487023 - -0.4398808777 -17144.1582031250 0.6384705901 - -0.4410498440 -17144.9453125000 0.6374936104 - -0.4422180653 -17142.6289062500 0.6365122199 - -0.4433855414 -17143.8378906250 0.6355300546 - -0.4445522428 -17143.9199218750 0.6345322728 - -0.4457182288 -17142.1035156250 0.6335471272 - -0.4468834400 -17143.3710937500 0.6325647831 - -0.4480478764 -17143.4238281250 0.6315777302 - -0.4492115676 -17144.4570312500 0.6305894852 - -0.4503745139 -17142.6054687500 0.6295995712 - -0.4515366852 -17144.9824218750 0.6286119223 - -0.4526980817 -17142.6660156250 0.6276063919 - -0.4538587332 -17144.4101562500 0.6266137362 - -0.4550185800 -17142.0742187500 0.6256194115 - -0.4561776817 -17144.9375000000 0.6246265173 - -0.4573360085 -17143.7070312500 0.6236310601 - -0.4584935606 -17143.3984375000 0.6226335168 - -0.4596503377 -17143.5175781250 0.6216350794 - -0.4608063102 -17144.5234375000 0.6206372380 - -0.4619615376 -17143.9550781250 0.6196211576 - -0.4631159604 -17143.8417968750 0.6186206937 - -0.4642695785 -17143.9433593750 0.6176171899 - -0.4654224515 -17145.1269531250 0.6166149974 - -0.4665745199 -17144.6875000000 0.6156089902 - -0.4677257836 -17143.8476562500 0.6146033406 - -0.4688762724 -17143.7617187500 0.6135959029 - -0.4700259566 -17143.0898437500 0.6125892401 - -0.4711748362 -17143.2714843750 0.6115629673 - -0.4723229110 -17144.3125000000 0.6105535030 - -0.4734702110 -17143.7460937500 0.6095406413 - -0.4746167064 -17144.7304687500 0.6085299850 - -0.4757623672 -17143.5390625000 0.6075149179 - -0.4769072533 -17144.4316406250 0.6065006852 - -0.4780513346 -17143.7812500000 0.6054827571 - -0.4791945815 -17145.2617187500 0.6044525504 - -0.4803370237 -17144.0976562500 0.6034332514 - -0.4814786613 -17145.0097656250 0.6024137735 - -0.4826194644 -17144.0507812500 0.6013941765 - -0.4837594628 -17144.4824218750 0.6003720164 - -0.4848986268 -17143.6835937500 0.5993485451 - -0.4860369861 -17144.8789062500 0.5983250737 - -0.4871745110 -17144.0507812500 0.5972849131 - -0.4883112013 -17144.7187500000 0.5962578058 - -0.4894470870 -17142.3281250000 0.5952299833 - -0.4905821383 -17145.0371093750 0.5942037106 - -0.4917163551 -17145.4257812500 0.5931744576 - -0.4928497374 -17144.6054687500 0.5921431184 - -0.4939822555 -17145.7402343750 0.5911116004 - -0.4951139688 -17144.9550781250 0.5900791287 - -0.4962448478 -17144.8867187500 0.5890452266 - -0.4973748624 -17144.5273437500 0.5879936814 - -0.4985040426 -17144.2500000000 0.5869592428 - -0.4996323884 -17145.1230468750 0.5859214067 - -0.5007598996 -17145.3730468750 0.5848836899 - -0.5018864870 -17144.5292968750 0.5838449001 - -0.5030122995 -17145.0546875000 0.5828046799 - -0.5041372180 -17143.7050781250 0.5817632079 - -0.5052613020 -17145.1445312500 0.5807217956 - -0.5063845515 -17145.3378906250 0.5796780586 - -0.5075069070 -17143.4101562500 0.5786333680 - -0.5086284280 -17145.4433593750 0.5775725842 - -0.5097490549 -17144.1992187500 0.5765244365 - -0.5108688474 -17144.1855468750 0.5754770637 - -0.5119877458 -17145.9882812500 0.5744279027 - -0.5131058097 -17145.4902343750 0.5733790994 - -0.5142229795 -17145.8183593750 0.5723281503 - -0.5153393149 -17143.8945312500 0.5712757707 - -0.5164546967 -17145.5644531250 0.5702071190 - -0.5175692439 -17145.2480468750 0.5691525936 - -0.5186829567 -17144.5761718750 0.5680971146 - -0.5197957754 -17144.6191406250 0.5670413375 - -0.5209076405 -17146.1953125000 0.5659843683 - -0.5220186710 -17144.6484375000 0.5649259090 - -0.5231288671 -17146.1894531250 0.5638676286 - -0.5242381096 -17146.5292968750 0.5628067255 - -0.5253464580 -17144.5097656250 0.5617279410 - -0.5264539719 -17144.7460937500 0.5606666803 - -0.5275605321 -17144.8339843750 0.5596027374 - -0.5286662579 -17145.9609375000 0.5585385561 - -0.5297710299 -17145.3183593750 0.5574738979 - -0.5308749676 -17144.9355468750 0.5564070344 - -0.5319779515 -17145.1503906250 0.5553404093 - -0.5330800414 -17145.5644531250 0.5542716384 - -0.5341812372 -17145.0898437500 0.5532016158 - -0.5352815390 -17145.8261718750 0.5521324277 - -0.5363808870 -17144.6503906250 0.5510602593 - -0.5374794006 -17146.0976562500 0.5499882102 - -0.5385769606 -17145.9550781250 0.5489151478 - -0.5396735668 -17145.4042968750 0.5478404164 - -0.5407693386 -17145.4785156250 0.5467477441 - -0.5418641567 -17146.0449218750 0.5456714630 - -0.5429580212 -17145.2382812500 0.5445936322 - -0.5440509915 -17146.5781250000 0.5435155630 - -0.5451430678 -17145.6855468750 0.5424361825 - -0.5462341905 -17146.7949218750 0.5413554311 - -0.5473244190 -17145.6992187500 0.5402753353 - -0.5484136939 -17146.4023437500 0.5391922593 - -0.5495020151 -17145.3925781250 0.5380900502 - -0.5505894423 -17146.8847656250 0.5370068550 - -0.5516759157 -17146.6621093750 0.5359213352 - -0.5527614355 -17145.7070312500 0.5348339677 - -0.5538460612 -17147.0625000000 0.5337484479 - -0.5549297333 -17147.7597656250 0.5326597095 - -0.5560124516 -17146.4765625000 0.5315524936 - -0.5570942760 -17145.2734375000 0.5304620862 - -0.5581750870 -17147.4375000000 0.5293707252 - -0.5592550039 -17145.7949218750 0.5282783508 - -0.5603339672 -17145.7089843750 0.5271856785 - -0.5614119172 -17146.7910156250 0.5260909796 - -0.5624889731 -17147.6914062500 0.5249971747 - -0.5635650754 -17146.0742187500 0.5239009857 - -0.5646402240 -17147.1562500000 0.5228044391 - -0.5657144189 -17146.4335937500 0.5217061639 - -0.5667876005 -17147.3808593750 0.5206076503 - -0.5678598881 -17147.1777343750 0.5195080042 - -0.5689311624 -17147.0214843750 0.5184072852 - -0.5700014830 -17147.3964843750 0.5173063278 - -0.5710708499 -17147.0312500000 0.5162040591 - -0.5721392632 -17146.6230468750 0.5151002407 - -0.5732066631 -17146.2636718750 0.5139958858 - -0.5742731094 -17148.7558593750 0.5128906965 - -0.5753386021 -17147.2812500000 0.5117849112 - -0.5764031410 -17148.7246093750 0.5106776357 - -0.5774666667 -17147.7832031250 0.5095693469 - -0.5785291791 -17147.8281250000 0.5084612966 - -0.5795907974 -17147.2500000000 0.5073313117 - -0.5806513429 -17149.4609375000 0.5062210560 - -0.5817109346 -17147.1621093750 0.5051090121 - -0.5827695727 -17148.4921875000 0.5039963722 - -0.5838271976 -17147.8945312500 0.5028631687 - -0.5848838687 -17147.2988281250 0.5017481446 - -0.5859394670 -17148.5722656250 0.5006332994 - -0.5869941115 -17147.2812500000 0.4994967282 - -0.5880478024 -17148.0097656250 0.4983804822 - -0.5891004801 -17147.9453125000 0.4972619116 - -0.5901521444 -17148.5078125000 0.4961230159 - -0.5912027955 -17146.6406250000 0.4950027764 - -0.5922524333 -17146.7773437500 0.4938814640 - -0.5933011174 -17148.1992187500 0.4927608967 - -0.5943487287 -17147.8652343750 0.4916380346 - -0.5953953862 -17146.9199218750 0.4905138910 - -0.5964410305 -17147.1875000000 0.4893899262 - -0.5974856615 -17146.7207031250 0.4882650971 - -0.5985292196 -17148.3242187500 0.4871592522 - -0.5995718241 -17147.1464843750 0.4860320389 - -0.6006134152 -17149.5859375000 0.4849253595 - -0.6016539931 -17149.7636718750 0.4837969840 - -0.6026934981 -17148.8593750000 0.4826875031 - -0.6037320495 -17149.8300781250 0.4815786183 - -0.6047695279 -17150.6113281250 0.4804677069 - -0.6058059931 -17151.2714843750 0.4793775082 - -0.6068414450 -17154.1191406250 0.4782659709 - -0.6078758240 -17155.3867187500 0.4771741927 - -0.6089091897 -17155.2109375000 0.4760611653 - -0.6099415421 -17157.7343750000 0.4749683738 - -0.6109728813 -17156.5429687500 0.4738534689 - -0.6120031476 -17159.4140625000 0.4727590382 - -0.6130324006 -17159.4199218750 0.4716641307 - -0.6140605807 -17160.5000000000 0.4705472589 - -0.6150877476 -17162.3398437500 0.4694508314 - -0.6161138415 -17162.6601562500 0.4683322608 - -0.6171389222 -17164.1816406250 0.4672347903 - -0.6181629896 -17165.1621093750 0.4661149979 - -0.6191859245 -17164.7734375000 0.4649944305 - -0.6202078462 -17167.2285156250 0.4638730884 - -0.6212287545 -17166.8476562500 0.4627513587 - -0.6222485900 -17168.1367187500 0.4616077542 - -0.6232673526 -17167.8027343750 0.4604833126 - -0.6242850423 -17167.8417968750 0.4593377411 - -0.6253017187 22153.0390625000 0.4569940269 - -0.6263173223 22153.4687500000 0.4558257759 - -0.6273318529 22153.4765625000 0.4546573162 - -0.6283453107 22152.1718750000 0.4534863234 - -0.6293576956 22153.0019531250 0.4523162842 - -0.6303690672 22150.7363281250 0.4511453211 - -0.6313793063 22151.2031250000 0.4499739408 - -0.6323885322 22150.2285156250 0.4488016665 - -0.6333966255 22149.5390625000 0.4476298690 - -0.6344037056 22149.3574218750 0.4464555383 - -0.6354096532 22147.7402343750 0.4452826977 - -0.6364145279 22146.6484375000 0.4441078007 - -0.6374183893 22147.3183593750 0.4429325759 - -0.6384211183 22144.5566406250 0.4417573810 - -0.6394227743 22146.1542968750 0.4405809939 - -0.6404233575 22143.8085937500 0.4394038618 - -0.6414228082 22144.3339843750 0.4382255971 - -0.6424212456 22143.2753906250 0.4370479882 - -0.6434185505 22140.7011718750 0.4358685315 - -0.6444147229 22140.2539062500 0.4346893430 - -0.6454098821 22139.4023437500 0.4335086644 - -0.6464039087 22138.6894531250 0.4323286116 - -0.6473968625 22139.7285156250 0.4311460257 - -0.6483886838 22139.9101562500 0.4299640357 - -0.6493794322 22137.5820312500 0.4287807941 - -0.6503690481 22138.8183593750 0.4275979400 - -0.6513575912 22137.2558593750 0.4264137149 - -0.6523450017 22137.8261718750 0.4252288938 - -0.6533313394 22137.4492187500 0.4240426123 - -0.6543165445 22138.4394531250 0.4228571951 - -0.6553006768 22138.8671875000 0.4216694832 - -0.6562836766 22137.7851562500 0.4204828739 - -0.6572655439 22137.4316406250 0.4192941189 - -0.6582463384 22138.9765625000 0.4181055725 - -0.6592259407 22138.4375000000 0.4169163406 - -0.6602045298 22138.5605468750 0.4157263935 - -0.6611819267 22137.9042968750 0.4145356119 - -0.6621581912 22139.3261718750 0.4133449197 - -0.6631333828 22137.7050781250 0.4121522605 - -0.6641074419 22138.5878906250 0.4109610915 - -0.6650803685 22138.7167968750 0.4097669423 - -0.6660521626 22137.3417968750 0.4085736573 - -0.6670228243 22139.9003906250 0.4073800445 - -0.6679923534 22137.4453125000 0.4061841369 - -0.6689607501 22137.8437500000 0.4049897194 - -0.6699280143 22137.9863281250 0.4037933052 - -0.6708941460 22139.0468750000 0.4025973380 - -0.6718591452 22137.5332031250 0.4013989270 - -0.6728230119 22139.0800781250 0.4002016187 - -0.6737857461 22136.3906250000 0.3990041614 - -0.6747472882 22136.7500000000 0.3978058696 - -0.6757077575 22137.2324218750 0.3966052830 - -0.6766670346 22137.8378906250 0.3954056799 - -0.6776251197 22137.3886718750 0.3942042291 - -0.6785821319 22137.7636718750 0.3930042684 - -0.6795379519 22137.9042968750 0.3918013275 - -0.6804926395 22137.1308593750 0.3906000853 - -0.6814461946 22137.5625000000 0.3893959820 - -0.6823985577 22136.3359375000 0.3881937563 - -0.6833497882 22138.1777343750 0.3869887292 - -0.6842998266 22137.5078125000 0.3857838809 - -0.6852487326 22136.2714843750 0.3845784366 - -0.6861965060 22136.1992187500 0.3833733797 - -0.6871430278 22137.8300781250 0.3821663558 - -0.6880884767 22135.8710937500 0.3809601367 - -0.6890327334 22137.0390625000 0.3797513843 - -0.6899757981 22138.0507812500 0.3785431981 - -0.6909176707 22137.4589843750 0.3773345351 - -0.6918584108 22136.3535156250 0.3761250675 - -0.6927979589 22137.1953125000 0.3749147356 - -0.6937363744 22137.5253906250 0.3737048209 - -0.6946735978 22135.7656250000 0.3724940121 - -0.6956096292 22136.8906250000 0.3712823391 - -0.6965444684 22136.1523437500 0.3700697124 - -0.6974781156 22137.5175781250 0.3688576221 - -0.6984106302 22135.9648437500 0.3676437140 - -0.6993419528 22136.8574218750 0.3664300740 - -0.7002720237 22135.5761718750 0.3652148545 - -0.7012009621 22136.6386718750 0.3640006781 - -0.7021287084 22135.6562500000 0.3627839386 - -0.7030552626 22135.9472656250 0.3615687788 - -0.7039806247 22136.4667968750 0.3603509963 - -0.7049047947 22136.6835937500 0.3591352999 - -0.7058277726 22135.2167968750 0.3579161167 - -0.7067495584 22136.3691406250 0.3566990495 - -0.7076701522 22135.7031250000 0.3554799557 - -0.7085894942 22136.3730468750 0.3542611003 - -0.7095077038 22135.7167968750 0.3530400097 - -0.7104246616 22135.4726562500 0.3518206179 - -0.7113404274 22136.0742187500 0.3506008983 - -0.7122550011 22136.2011718750 0.3493778706 - -0.7131683230 22135.5742187500 0.3481566608 - -0.7140805125 22135.5859375000 0.3469334543 - -0.7149914503 22135.0976562500 0.3457114398 - -0.7159011364 22136.9550781250 0.3444861174 - -0.7168096304 22137.0468750000 0.3432624042 - -0.7177169323 22135.0410156250 0.3420374990 - -0.7186230421 22136.9414062500 0.3408133984 - -0.7195279002 22135.3378906250 0.3395861089 - -0.7204315066 22135.2148437500 0.3383610845 - -0.7213339210 22135.9707031250 0.3371335864 - -0.7222351432 22136.2968750000 0.3359075487 - -0.7231351137 22134.4296875000 0.3346781731 - -0.7240338326 22136.1484375000 0.3334498405 - -0.7249313593 22135.8964843750 0.3322200179 - -0.7258276343 22136.2773437500 0.3309919834 - -0.7267227173 22134.8828125000 0.3297607303 - -0.7276165485 22134.9140625000 0.3285315633 - -0.7285091281 22136.0195312500 0.3272995949 - -0.7294005156 22133.8964843750 0.3260695338 - -0.7302905917 22135.9453125000 0.3248364031 - -0.7311794758 22135.6210937500 0.3236052096 - -0.7320671082 22134.1054687500 0.3223713934 - -0.7329535484 22135.6367187500 0.3211384714 - -0.7338386774 22135.4765625000 0.3199031353 - -0.7347226143 22135.7636718750 0.3186694980 - -0.7356052995 22136.1953125000 0.3174353540 - -0.7364866734 22135.1835937500 0.3161997497 - -0.7373668551 22135.2011718750 0.3149648011 - -0.7382457852 22135.2578125000 0.3137271106 - -0.7391234636 22135.5429687500 0.3124905527 - -0.7399998903 22136.2910156250 0.3112525940 - -0.7408750653 22135.2441406250 0.3100166917 - -0.7417489290 22136.1796875000 0.3087766171 - -0.7426216006 22135.8906250000 0.3075389266 - -0.7434929609 22133.1445312500 0.3062989116 - -0.7443631291 22135.7089843750 0.3050594330 - -0.7452319860 22134.9980468750 0.3038182259 - -0.7460995913 22135.2578125000 0.3025790453 - -0.7469659448 22134.0429687500 0.3013369739 - -0.7478309870 22135.2343750000 0.3000954390 - -0.7486947775 22134.4531250000 0.2988529205 - -0.7495573163 22135.4003906250 0.2976106703 - -0.7504186034 22135.0273437500 0.2963691354 - -0.7512785792 22136.1054687500 0.2951242924 - -0.7521373034 22134.2832031250 0.2938820124 - -0.7529947758 22134.7773437500 0.2926359177 - -0.7538509369 22134.4140625000 0.2913929224 - -0.7547057867 22135.4238281250 0.2901462317 - -0.7555594444 22134.6582031250 0.2889012098 - -0.7564117312 22134.9296875000 0.2876536548 - -0.7572628260 22134.1425781250 0.2864088118 - -0.7581125498 22133.7187500000 0.2851603031 - -0.7589610219 22134.2578125000 0.2839139998 - -0.7598082423 22134.3632812500 0.2826645374 - -0.7606541514 22135.4101562500 0.2814181149 - -0.7614987493 22135.9667968750 0.2801672816 - -0.7623420358 22134.4042968750 0.2789197862 - -0.7631840706 22134.5097656250 0.2776688933 - -0.7640247941 22135.0527343750 0.2764191031 - -0.7648642659 22135.4667968750 0.2751699686 - -0.7657024264 22134.0957031250 0.2739187181 - -0.7665392756 22134.2480468750 0.2726681232 - -0.7673748136 22134.4472656250 0.2714151740 - -0.7682090402 22135.8164062500 0.2701636255 - -0.7690419555 22132.8046875000 0.2689102590 - -0.7698736191 22135.2148437500 0.2676582038 - -0.7707039714 22133.3808593750 0.2664031088 - -0.7715329528 22135.7050781250 0.2651505768 - -0.7723606825 22133.1601562500 0.2638959289 - -0.7731871009 22135.2773437500 0.2626414597 - -0.7740122080 22134.0332031250 0.2613856792 - -0.7748360038 22133.8632812500 0.2601316869 - -0.7756584287 22133.0527343750 0.2588744760 - -0.7764796019 22134.6914062500 0.2576195598 - -0.7772994637 22134.3828125000 0.2563640177 - -0.7781179547 22133.2128906250 0.2551055551 - -0.7789351940 22135.7539062500 0.2538489699 - -0.7797510624 22134.6738281250 0.2525906563 - -0.7805656195 22133.8222656250 0.2513335049 - -0.7813788652 22134.1093750000 0.2500732541 - -0.7821907401 22134.3261718750 0.2488144338 - -0.7830013633 22133.4003906250 0.2475548685 - -0.7838106155 22134.0429687500 0.2462969571 - -0.7846185565 22133.9160156250 0.2450350374 - -0.7854251266 22134.6679687500 0.2437755913 - -0.7862303853 22134.1210937500 0.2425135076 - -0.7870343328 22132.8281250000 0.2412540913 - -0.7878369093 22133.7949218750 0.2399911284 - -0.7886381745 22135.5214843750 0.2387304902 - -0.7894381285 22133.3164062500 0.2374688685 - -0.7902367115 22134.8652343750 0.2362054139 - -0.7910339832 22133.8222656250 0.2349434048 - -0.7918298841 22133.8261718750 0.2336798459 - -0.7926244140 22135.1386718750 0.2324168235 - -0.7934176326 22133.1269531250 0.2311502993 - -0.7942095399 22133.7695312500 0.2298883051 - -0.7950000763 22132.6933593750 0.2286217660 - -0.7957892418 22133.6210937500 0.2273588479 - -0.7965770960 22134.6621093750 0.2260918617 - -0.7973635793 22133.2695312500 0.2248273194 - -0.7981486917 22133.9140625000 0.2235592902 - -0.7989324331 22134.4726562500 0.2222937196 - -0.7997148633 22135.7812500000 0.2210284024 - -0.8004959226 22133.5859375000 0.2197607756 - -0.8012756705 22133.1699218750 0.2184948623 - -0.8020539880 22133.6796875000 0.2172250450 - -0.8028309941 22133.5234375000 0.2159579396 - -0.8036066294 22135.2910156250 0.2146877199 - -0.8043808937 22135.0449218750 0.2134212404 - -0.8051537871 22133.7871093750 0.2121513039 - -0.8059253693 22133.8007812500 0.2108839452 - -0.8066955209 22133.3828125000 0.2096117139 - -0.8074643016 22134.8593750000 0.2083433121 - -0.8082317710 22133.3164062500 0.2070713192 - -0.8089978099 22134.6601562500 0.2058026642 - -0.8097625375 22134.8710937500 0.2045335025 - -0.8105258346 22133.2792968750 0.2032601982 - -0.8112877607 22134.9765625000 0.2019900084 - -0.8120483756 22133.3339843750 0.2007172853 - -0.8128075600 22133.4589843750 0.1994464695 - -0.8135653734 22134.8281250000 0.1981724203 - -0.8143218160 22133.8574218750 0.1969014853 - -0.8150768280 22132.8125000000 0.1956271976 - -0.8158305287 22134.0781250000 0.1943555772 - -0.8165827990 22133.3945312500 0.1930809766 - -0.8173337579 22134.2871093750 0.1918076873 - -0.8180832267 22134.1816406250 0.1905328482 - -0.8188313842 22133.2792968750 0.1892594099 - -0.8195781112 22132.5371093750 0.1879836470 - -0.8203234673 22134.4863281250 0.1867093146 - -0.8210674524 22134.6562500000 0.1854352206 - -0.8218100071 22133.1269531250 0.1841592640 - -0.8225511909 22133.2304687500 0.1828853488 - -0.8232910037 22133.3300781250 0.1816075593 - -0.8240293860 22133.4042968750 0.1803329289 - -0.8247663975 22134.4765625000 0.1790541559 - -0.8255019784 22133.6542968750 0.1777792871 - -0.8262361884 22133.8261718750 0.1765012592 - -0.8269689679 22133.0273437500 0.1752245724 - -0.8277003765 22134.6562500000 0.1739463061 - -0.8284303546 22133.1445312500 0.1726692170 - -0.8291589022 22133.6953125000 0.1713894308 - -0.8298860788 22133.1230468750 0.1701136827 - -0.8306118846 22131.9492187500 0.1688337326 - -0.8313362598 22133.3789062500 0.1675555557 - -0.8320592046 22134.9023437500 0.1662774980 - -0.8327807188 22135.1777343750 0.1649964005 - -0.8335008621 22133.5781250000 0.1637193710 - -0.8342195749 22133.0195312500 0.1624373943 - -0.8349368572 22133.2695312500 0.1611591727 - -0.8356527686 22135.5234375000 0.1598765552 - -0.8363672495 22133.5839843750 0.1585980356 - -0.8370802999 22132.5566406250 0.1573164016 - -0.8377919197 22133.6757812500 0.1560359001 - -0.8385021687 22133.5078125000 0.1547535956 - -0.8392109275 22134.5195312500 0.1534740031 - -0.8399183154 22133.7421875000 0.1521902978 - -0.8406242728 22133.2070312500 0.1509097070 - -0.8413287997 22131.4902343750 0.1496269852 - -0.8420318365 22133.0937500000 0.1483446658 - -0.8427335024 22134.9003906250 0.1470637619 - -0.8434337378 22133.3789062500 0.1457798928 - -0.8441326022 22133.0234375000 0.1444981992 - -0.8448299766 22132.7773437500 0.1432134807 - -0.8455259204 22133.4238281250 0.1419302523 - -0.8462204337 22133.1855468750 0.1406454742 - -0.8469134569 22133.3789062500 0.1393629462 - -0.8476051092 22134.1816406250 0.1380773336 - -0.8482953310 22132.9843750000 0.1367945820 - -0.8489840627 22132.1542968750 0.1355084181 - -0.8496714234 22132.7753906250 0.1342243403 - -0.8503572941 22133.8593750000 0.1329381317 - -0.8510417342 22133.3964843750 0.1316537559 - -0.8517247438 22133.6269531250 0.1303673089 - -0.8524063230 22133.5117187500 0.1290823221 - -0.8530864120 22134.1660156250 0.1277950704 - -0.8537650704 22134.1367187500 0.1265093088 - -0.8544422984 22133.6816406250 0.1252223104 - -0.8551180363 22135.4218750000 0.1239363328 - -0.8557923436 22133.5839843750 0.1226505861 - -0.8564652205 22132.9980468750 0.1213629320 - -0.8571366668 22133.2011718750 0.1200762466 - -0.8578066230 22132.7949218750 0.1187873036 - -0.8584751487 22134.6250000000 0.1175001562 - -0.8591421843 22132.8066406250 0.1162114963 - -0.8598077893 22132.8417968750 0.1149237007 - -0.8604719043 22133.4472656250 0.1136342511 - -0.8611345887 22131.9980468750 0.1123472080 - -0.8617957830 22132.1230468750 0.1110568717 - -0.8624555469 22134.5156250000 0.1097678766 - -0.8631138802 22132.6328125000 0.1084778011 - -0.8637707233 22132.7109375000 0.1071892008 - -0.8644260764 22133.0859375000 0.1058980450 - -0.8650799394 22134.7480468750 0.1046086177 - -0.8657323718 22132.8417968750 0.1033174768 - -0.8663833737 22134.5371093750 0.1020275727 - -0.8670328856 22132.5957031250 0.1007355973 - -0.8676809072 22134.6269531250 0.0994443521 - -0.8683274388 22134.6562500000 0.0981520116 - -0.8689725399 22134.7656250000 0.0968608558 - -0.8696161509 22132.6640625000 0.0955681279 - -0.8702582717 22132.9824218750 0.0942774117 - -0.8708989620 22133.7929687500 0.0929855481 - -0.8715381622 22134.5937500000 0.0916915312 - -0.8721758723 22133.6718750000 0.0904002488 - -0.8728120923 22134.2011718750 0.0891045928 - -0.8734468222 22135.2167968750 0.0878126025 - -0.8740801215 22132.9121093750 0.0865181088 - -0.8747118711 22134.0859375000 0.0852246061 - -0.8753421903 22131.7851562500 0.0839298144 - -0.8759710193 22132.8437500000 0.0826352090 - -0.8765983582 22134.4082031250 0.0813389942 - -0.8772242069 22134.4355468750 0.0800440907 - -0.8778485656 22133.7343750000 0.0787472725 - -0.8784714341 22134.0625000000 0.0774526373 - -0.8790928125 22133.3828125000 0.0761550441 - -0.8797127008 22133.8457031250 0.0748595744 - -0.8803310990 22134.0214843750 0.0735617131 - -0.8809480071 22134.4882812500 0.0722653717 - -0.8815634251 22132.8417968750 0.0709668398 - -0.8821773529 22133.3398437500 0.0696696416 - -0.8827897906 22133.1972656250 0.0683700740 - -0.8834007382 22134.3437500000 0.0670711100 - -0.8840101361 22134.4414062500 0.0657710209 - -0.8846180439 22135.1289062500 0.0644726232 - -0.8852245212 22134.2890625000 0.0631727725 - -0.8858294487 22132.8222656250 0.0618731864 - -0.8864328861 22133.4355468750 0.0605709031 - -0.8870347738 22134.6640625000 0.0592708439 - -0.8876352310 22133.2148437500 0.0579693131 - -0.8882341385 22133.2226562500 0.0566668734 - -0.8888315558 22133.6230468750 0.0553635210 - -0.8894274235 22133.7753906250 0.0540613681 - -0.8900218606 22131.6484375000 0.0527579784 - -0.8906147480 22133.8632812500 0.0514546484 - -0.8912061453 22134.9023437500 0.0501498803 - -0.8917959929 22133.1992187500 0.0488460027 - -0.8923843503 22135.0957031250 0.0475387089 - -0.8929711580 22134.5644531250 0.0462342054 - -0.8935565352 22134.1894531250 0.0449265838 - -0.8941403031 22132.4023437500 0.0436215289 - -0.8947226405 22133.7480468750 0.0423134491 - -0.8953034282 22133.3632812500 0.0410068221 - -0.8958826661 22133.8847656250 0.0396967642 - -0.8964604139 22134.7089843750 0.0383886695 - -0.8970366120 22134.1699218750 0.0370786265 - -0.8976113200 22133.7519531250 0.0357681736 - -0.8981845379 22133.0371093750 0.0344564319 - -0.8987562060 22133.1855468750 0.0331476629 - -0.8993263245 22134.0527343750 0.0318328850 - -0.8998948932 22135.3496093750 0.0305206142 - -0.9004620314 22133.0488281250 0.0292065851 - -0.9010275602 22135.1875000000 0.0278931297 - -0.9015915990 22133.3789062500 0.0265781507 - -0.9021540880 22134.0644531250 0.0252624340 - -0.9027150869 22133.7773437500 0.0239451751 - -0.9032745361 22133.0839843750 0.0226301029 - -0.9038324356 22132.8027343750 0.0213113427 - -0.9043887854 22132.5566406250 0.0199932251 - -0.9049436450 22134.4980468750 0.0186723191 - -0.9054969549 22133.7617187500 0.0173530485 - -0.9060487151 22134.4316406250 0.0160306729 - -0.9065989852 22133.5898437500 0.0147095369 - -0.9071476460 22132.7246093750 0.0133865578 - -0.9076948166 22135.0722656250 0.0120619452 - -0.9082404375 22134.7304687500 0.0107369712 - -0.9087845683 22133.7441406250 0.0094116293 - -0.9093270898 22133.0742187500 0.0080866059 - -0.9098680615 22136.1894531250 0.0067575146 - -0.9104075432 22133.4160156250 0.0054287808 - -0.9109454751 22134.1425781250 0.0041001011 - -0.9114818573 22133.6835937500 0.0027687557 - -0.9120166898 22134.5273437500 0.0014362547 - -0.9125499129 22134.0976562500 0.0001037508 - -0.9130816460 22133.5156250000 -0.0012296480 - -0.9136118889 22134.4628906250 -0.0025657006 - -0.9141405225 22135.1386718750 -0.0039031468 - -0.9146676064 22133.7910156250 -0.0052389465 - -0.9151931405 22134.5507812500 -0.0065785162 - -0.9157171249 22135.0234375000 -0.0079196002 - -0.9162395597 22132.9375000000 -0.0092602195 - -0.9167603850 22134.0527343750 -0.0106024090 - -0.9172797203 22134.6503906250 -0.0119463252 - -0.9177975059 22132.7890625000 -0.0132929664 - -0.9183137417 22134.3222656250 -0.0146377468 - -0.9188283682 22134.0683593750 -0.0159872137 - -0.9193414450 22132.8027343750 -0.0173366945 - -0.9198530316 22134.4375000000 -0.0186895523 - -0.9203630090 22133.4179687500 -0.0200410783 - -0.9208713770 22134.9472656250 -0.0213949960 - -0.9213782549 22133.3359375000 -0.0227516424 - -0.9218835831 22134.6054687500 -0.0241073705 - -0.9223873019 22133.5292968750 -0.0254677255 - -0.9228894711 22134.9589843750 -0.0268279910 - -0.9233900905 22132.3867187500 -0.0281902850 - -0.9238891006 22134.8222656250 -0.0295537412 - -0.9243865609 22133.2558593750 -0.0309199952 - -0.9248824716 22133.8710937500 -0.0322872996 - -0.9253768325 22135.3144531250 -0.0336574763 - -0.9258695841 22133.4023437500 -0.0350271501 - -0.9263607860 22134.4765625000 -0.0364009216 - -0.9268504381 22134.2050781250 -0.0377760343 - -0.9273384809 22134.3769531250 -0.0391534679 - -0.9278249741 22134.1445312500 -0.0405325107 - -0.9283098578 22134.6933593750 -0.0419156663 - -0.9287931919 22134.7910156250 -0.0432968847 - -0.9292749763 22134.2500000000 -0.0446809493 - -0.9297551513 22133.1230468750 -0.0460698530 - -0.9302337766 22135.3300781250 -0.0474590547 - -0.9307107925 22135.4824218750 -0.0488500446 - -0.9311862588 22135.4980468750 -0.0502454713 - -0.9316601157 22135.4628906250 -0.0516412519 - -0.9321324229 22135.0996093750 -0.0530391596 - -0.9326031208 22134.3242187500 -0.0544406697 - -0.9330722690 22134.8183593750 -0.0558431223 - -0.9335398078 22134.4902343750 -0.0572496280 - -0.9340057969 22135.6035156250 -0.0586578846 - -0.9344701767 22135.0937500000 -0.0600678325 - -0.9349330068 22134.3730468750 -0.0614797026 - -0.9353942275 22134.5292968750 -0.0628947988 - -0.9358538389 22134.7734375000 -0.0643141568 - -0.9363119006 22133.7402343750 -0.0657345578 - -0.9367683530 22135.1289062500 -0.0671585128 - -0.9372231960 22133.8867187500 -0.0685868487 - -0.9376764894 22133.7128906250 -0.0700137541 - -0.9381281734 22135.3554687500 -0.0714434236 - -0.9385783076 22133.1035156250 -0.0728811622 - -0.9390267730 22135.4980468750 -0.0743148178 - -0.9394736886 22133.8378906250 -0.0757564530 - -0.9399190545 22135.4414062500 -0.0771987066 - -0.9403627515 22134.5898437500 -0.0786462501 - -0.9408048987 22133.0683593750 -0.0800948441 - -0.9412454367 22134.3750000000 -0.0815457627 - -0.9416844249 22134.7480468750 -0.0829990357 - -0.9421217442 22135.4140625000 -0.0844567269 - -0.9425575137 22135.1289062500 -0.0859189257 - -0.9429916739 22135.1425781250 -0.0873834565 - -0.9434242249 22135.3945312500 -0.0888531953 - -0.9438551664 22134.6425781250 -0.0903240666 - -0.9442844987 22133.5859375000 -0.0917963833 - -0.9447122812 22134.9316406250 -0.0932723880 - -0.9451384544 22134.3066406250 -0.0947532728 - -0.9455629587 22133.1347656250 -0.0962372795 - -0.9459859133 22134.7363281250 -0.0977204069 - -0.9464072585 22135.4550781250 -0.0992117077 - -0.9468269944 22135.3574218750 -0.1007045060 - -0.9472451210 22133.2714843750 -0.1021998972 - -0.9476616383 22135.8945312500 -0.1036999449 - -0.9480766058 22134.4355468750 -0.1052069291 - -0.9484899044 22133.3496093750 -0.1067045853 - -0.9489015937 22135.7812500000 -0.1082186028 - -0.9493116736 22133.8984375000 -0.1097365543 - -0.9497202039 22135.1875000000 -0.1112433895 - -0.9501270652 22134.3085937500 -0.1127688661 - -0.9505323172 22134.0488281250 -0.1142919660 - -0.9509359598 22133.2871093750 -0.1158138588 - -0.9513380527 22134.5078125000 -0.1173488870 - -0.9517384768 22134.6542968750 -0.1188806668 - -0.9521372914 22134.6210937500 -0.1204200685 - -0.9525344968 22135.5488281250 -0.1219582111 - -0.9529300928 22134.8144531250 -0.1234994233 - -0.9533240199 22134.2949218750 -0.1250461340 - -0.9537163973 22135.3691406250 -0.1265947223 - -0.9541071057 22134.1972656250 -0.1281483620 - -0.9544962645 22134.0234375000 -0.1297032386 - -0.9548837543 22135.4218750000 -0.1312665641 - -0.9552696347 22134.2578125000 -0.1328296214 - -0.9556539059 22134.5898437500 -0.1343915313 - -0.9560365677 22134.9316406250 -0.1359642297 - -0.9564175606 22136.7636718750 -0.1375386715 - -0.9567969441 22135.3105468750 -0.1391154677 - -0.9571747184 22135.7675781250 -0.1406943798 - -0.9575508833 22134.4628906250 -0.1422790736 - -0.9579254389 22135.1250000000 -0.1438603848 - -0.9582983255 22134.6992187500 -0.1454501003 - -0.9586696029 22136.1542968750 -0.1470350623 - -0.9590392709 22135.9218750000 -0.1486314386 - -0.9594073296 22137.2343750000 -0.1502267420 - -0.9597737193 22135.8945312500 -0.1518302709 - -0.9601384997 22133.7832031250 -0.1534346938 - -0.9605016708 22135.0449218750 -0.1550378948 - -0.9608631730 22135.2050781250 -0.1566436291 - -0.9612230659 22136.6796875000 -0.1582556963 - -0.9615813494 22135.6093750000 -0.1598622501 - -0.9619379640 22133.6132812500 -0.1614777148 - -0.9622929692 22135.1640625000 -0.1630984694 - -0.9626463056 22133.9550781250 -0.1647146046 - -0.9629980922 22134.6621093750 -0.1663350761 - -0.9633481503 22134.0234375000 -0.1679586768 - -0.9636966586 22136.8457031250 -0.1695862561 - -0.9640434980 22134.7050781250 -0.1712159514 - -0.9643886685 22134.8652343750 -0.1728435010 - -0.9647322297 22134.9960937500 -0.1744803488 - -0.9650741816 22135.9160156250 -0.1761042178 - -0.9654144645 22135.5253906250 -0.1777420640 - -0.9657531381 22136.0917968750 -0.1793766320 - -0.9660901427 22133.9492187500 -0.1810160726 - -0.9664255381 22135.6035156250 -0.1826555282 - -0.9667593241 22135.5664062500 -0.1842973232 - -0.9670914412 22135.6152343750 -0.1859397441 - -0.9674218893 22136.2949218750 -0.1875793338 - -0.9677507281 22136.9941406250 -0.1892246157 - -0.9680778980 22135.7265625000 -0.1908580214 - -0.9684034586 22135.8535156250 -0.1925044656 - -0.9687273502 22134.4453125000 -0.1941563636 - -0.9690496325 22135.1992187500 -0.1957937032 - -0.9693702459 22136.0976562500 -0.1974411458 - -0.9696891904 22134.2675781250 -0.1990763247 - -0.9700065255 22135.1406250000 -0.2007377446 - -0.9703221917 22135.5058593750 -0.2023776174 - -0.9706362486 22135.4355468750 -0.2040198296 - -0.9709486365 22134.5117187500 -0.2056630552 - -0.9712594151 22136.2382812500 -0.2073067725 - -0.9715685248 22134.6875000000 -0.2089537233 - -0.9718759656 22136.1757812500 -0.2105915546 - -0.9721817970 22134.9589843750 -0.2122389078 - -0.9724859595 22135.5371093750 -0.2138823122 - -0.9727884531 22135.5761718750 -0.2155205011 - -0.9730892777 22135.3847656250 -0.2171516567 - -0.9733884931 22135.4785156250 -0.2187908292 - -0.9736860991 22134.3007812500 -0.2204295695 - -0.9739819765 22135.9472656250 -0.2220596671 - -0.9742762446 22136.2753906250 -0.2236963660 - -0.9745688438 22135.7734375000 -0.2253273576 - -0.9748598337 22135.7050781250 -0.2269500345 - -0.9751490951 22135.4277343750 -0.2285726964 - -0.9754367471 22136.3671875000 -0.2301985323 - -0.9757227302 22135.2949218750 -0.2318270802 - -0.9760071039 22135.7246093750 -0.2334391177 - -0.9762898088 22135.1914062500 -0.2350585461 - -0.9765708447 22136.9042968750 -0.2366716862 - -0.9768502116 22135.4570312500 -0.2382796854 - -0.9771279097 22135.6523437500 -0.2398862243 - -0.9774039984 22135.4960937500 -0.2414841950 - -0.9776783586 22135.8046875000 -0.2430988997 - -0.9779511094 22136.3730468750 -0.2446881235 - -0.9782221913 22134.3613281250 -0.2462827861 - -0.9784916639 22136.5390625000 -0.2478685081 - -0.9787594080 22136.1132812500 -0.2494605482 - -0.9790255427 22134.8242187500 -0.2510434985 - -0.9792900085 22136.5742187500 -0.2526162565 - -0.9795528054 22134.7460937500 -0.2541915476 - -0.9798139334 22135.3203125000 -0.2557587922 - -0.9800733924 22136.3769531250 -0.2573278248 - -0.9803311825 22136.6503906250 -0.2588914931 - -0.9805873632 22136.6835937500 -0.2604492903 - -0.9808418155 22136.6835937500 -0.2620043457 - -0.9810946584 22134.4316406250 -0.2635494769 - -0.9813458323 22134.6093750000 -0.2650975287 - -0.9815952778 22136.0585937500 -0.2666284144 - -0.9818431139 22135.8828125000 -0.2681646645 - -0.9820892811 22136.1640625000 -0.2696944475 - -0.9823337793 22134.9453125000 -0.2712193131 - -0.9825766087 22134.2480468750 -0.2727376521 - -0.9828178287 22135.8320312500 -0.2742535770 - -0.9830573201 22135.5898437500 -0.2757598162 - -0.9832951427 22136.6230468750 -0.2772623599 - -0.9835312963 22135.7792968750 -0.2787615061 - -0.9837658405 22135.9003906250 -0.2802547812 - -0.9839986563 22135.2558593750 -0.2817386687 - -0.9842298031 22135.5214843750 -0.2832205892 - -0.9844593406 22134.1835937500 -0.2846943736 - -0.9846871495 22135.4960937500 -0.2861650884 - -0.9849132895 22135.6484375000 -0.2876318693 - -0.9851377606 22135.3613281250 -0.2890927494 - -0.9853606224 22135.9863281250 -0.2905467451 - -0.9855817556 22134.5996093750 -0.2919947803 - -0.9858012199 22135.8144531250 -0.2934343219 - -0.9860190153 22136.4941406250 -0.2948716879 - -0.9862351418 22134.7753906250 -0.2962988317 - -0.9864496589 22134.7207031250 -0.2977263927 - -0.9866624475 22135.4375000000 -0.2991445959 - -0.9868735075 22135.0292968750 -0.3005578816 - -0.9870829582 22137.1015625000 -0.3019679487 - -0.9872907400 22136.7480468750 -0.3033698201 - -0.9874968529 22137.1503906250 -0.3047618270 - -0.9877012372 22136.2675781250 -0.3061536252 - -0.9879040122 22135.5429687500 -0.3075375557 - -0.9881050587 22135.6777343750 -0.3089137673 - -0.9883044958 22136.1914062500 -0.3102873862 - -0.9885022044 22135.6347656250 -0.3116516471 - -0.9886982441 22135.3437500000 -0.3130109608 - -0.9888926148 22136.5312500000 -0.3143669963 - -0.9890853167 22134.5234375000 -0.3157134056 - -0.9892763495 22136.5253906250 -0.3170567155 - -0.9894656539 22136.7851562500 -0.3183951974 - -0.9896533489 22136.2304687500 -0.3197270930 - -0.9898393154 22136.5332031250 -0.3210528493 - -0.9900236130 22135.3925781250 -0.3223713934 - -0.9902062416 22135.1582031250 -0.3236860335 - -0.9903872013 22135.2753906250 -0.3249942064 - -0.9905664325 22135.0000000000 -0.3262970150 - -0.9907440543 22135.3066406250 -0.3275946081 - -0.9909199476 22136.2890625000 -0.3288863599 - -0.9910941720 22136.0429687500 -0.3301723897 - -0.9912667274 22136.2089843750 -0.3314517140 - -0.9914376140 22136.1250000000 -0.3327288926 - -0.9916067719 22136.0839843750 -0.3339979649 - -0.9917743206 22137.6601562500 -0.3352620006 - -0.9919401407 22136.5878906250 -0.3365219235 - -0.9921042323 22135.4707031250 -0.3377748430 - -0.9922667146 22135.1132812500 -0.3390223384 - -0.9924275279 22135.6464843750 -0.3402674198 - -0.9925866127 22135.1640625000 -0.3415049016 - -0.9927440286 22134.8242187500 -0.3427364230 - -0.9928997159 22133.9511718750 -0.3439627886 - -0.9930537939 22136.3828125000 -0.3451888561 - -0.9932061434 22134.6816406250 -0.3464051187 - -0.9933568239 22134.3574218750 -0.3476176560 - -0.9935058355 22136.7949218750 -0.3488289416 - -0.9936531186 22134.8847656250 -0.3500311673 - -0.9937987328 22135.4375000000 -0.3512289524 - -0.9939426780 22135.4609375000 -0.3524245620 - -0.9940849543 22135.7597656250 -0.3536139727 - -0.9942255020 22135.2675781250 -0.3547961116 - -0.9943643808 22135.0253906250 -0.3559809923 - -0.9945015907 22135.5332031250 -0.3571541905 - -0.9946371317 22135.0078125000 -0.3583266139 - -0.9947709441 22135.4218750000 -0.3594961166 - -0.9949030876 22136.5546875000 -0.3606568277 - -0.9950335622 22135.8769531250 -0.3618148267 - -0.9951623082 22134.9667968750 -0.3629709482 - -0.9952893853 22134.5410156250 -0.3641192913 - -0.9954147935 22134.5292968750 -0.3652656674 - -0.9955384731 22136.7519531250 -0.3664102554 - -0.9956604838 22136.8339843750 -0.3675498366 - -0.9957808256 22136.1933593750 -0.3686820865 - -0.9958994389 22137.8320312500 -0.3698143363 - -0.9960164428 22136.8144531250 -0.3709422946 - -0.9961316586 22136.0312500000 -0.3720619678 - -0.9962452650 22136.6718750000 -0.3731817603 - -0.9963571429 22136.3964843750 -0.3743010759 - -0.9964673519 22135.3632812500 -0.3754090369 - -0.9965758324 22135.5097656250 -0.3765201867 - -0.9966826439 22137.0722656250 -0.3776279390 - -0.9967877865 22136.1015625000 -0.3787252605 - -0.9968912005 22136.0410156250 -0.3798259795 - -0.9969929457 22136.0429687500 -0.3809262216 - -0.9970930219 22135.6015625000 -0.3820148110 - -0.9971913695 22136.5800781250 -0.3831043541 - -0.9972880483 22135.8886718750 -0.3841879368 - -0.9973830581 22135.5703125000 -0.3852720559 - -0.9974763393 22134.7910156250 -0.3863517344 - -0.9975679517 22136.7148437500 -0.3874310255 - -0.9976578355 22136.7226562500 -0.3885064423 - -0.9977460504 22137.0800781250 -0.3895787597 - -0.9978325963 22136.6562500000 -0.3906432092 - -0.9979174137 22135.5957031250 -0.3917117417 - -0.9980005622 22135.9140625000 -0.3927792609 - -0.9980820417 22136.5390625000 -0.3938374221 - -0.9981617928 22134.5957031250 -0.3948875666 - -0.9982398748 22136.8750000000 -0.3959490359 - -0.9983162284 22133.9882812500 -0.3970026672 - -0.9983909130 22136.9140625000 -0.3980549276 - -0.9984639287 22137.5703125000 -0.3991065025 - -0.9985352159 22136.2109375000 -0.4001507759 - -0.9986047745 22136.4667968750 -0.4011927247 - -0.9986727238 22135.7558593750 -0.4022288918 - -0.9987389445 22136.6484375000 -0.4032776952 - -0.9988034368 22136.0019531250 -0.4043130875 - -0.9988662601 22134.7304687500 -0.4053390324 - -0.9989274144 22137.2832031250 -0.4063828588 - -0.9989868402 22136.2187500000 -0.4074145257 - -0.9990445971 22136.4941406250 -0.4084404111 - -0.9991006851 22134.9667968750 -0.4094607830 - -0.9991550446 22136.9882812500 -0.4104951918 - -0.9992077351 22136.1972656250 -0.4115182459 - -0.9992586970 22135.8906250000 -0.4125350714 - -0.9993079901 22137.5429687500 -0.4135620594 - -0.9993555546 22136.2558593750 -0.4145769775 - -0.9994014502 22136.0605468750 -0.4155954719 - -0.9994456172 22134.7734375000 -0.4166051745 - -0.9994881153 22135.9863281250 -0.4176239371 - -0.9995289445 22137.3867187500 -0.4186363816 - -0.9995680451 22135.7148437500 -0.4196429253 - -0.9996054769 22138.0644531250 -0.4206597805 - -0.9996411800 22136.3535156250 -0.4216648936 - -0.9996752143 22136.7890625000 -0.4226687551 - -0.9997075796 22134.8203125000 -0.4236692786 - -0.9997382164 22135.3847656250 -0.4246808589 - -0.9997671247 22136.6757812500 -0.4256786108 - -0.9997944236 22135.3867187500 -0.4266743064 - -0.9998199344 22133.8398437500 -0.4276748598 - -0.9998438358 22136.8007812500 -0.4286835790 - -0.9998660088 22136.2109375000 -0.4296766520 - -0.9998864532 22136.1367187500 -0.4306690097 - -0.9999052286 22136.5468750000 -0.4316707253 - -0.9999222755 22136.6191406250 -0.4326583743 - -0.9999377131 22136.9550781250 -0.4336533844 - -0.9999513626 22136.9257812500 -0.4346383810 - -0.9999633431 22136.0253906250 -0.4356443286 - -0.9999736547 22135.8320312500 -0.4366289079 - -0.9999822378 22135.3105468750 -0.4376155734 - -0.9999891520 22137.0234375000 -0.4386002123 - -0.9999943972 22136.6582031250 -0.4395963550 - -0.9999979138 22136.5859375000 -0.4405799508 - -0.9999997020 22137.1660156250 -0.4415598214 - -0.9999998212 22135.6660156250 -0.4425371587 - -0.9999982715 22136.0859375000 -0.4435352981 - -0.9999949932 22135.8378906250 -0.4445189834 - -0.9999900460 22134.5761718750 -0.4454960525 - -0.9999833703 22136.1269531250 -0.4464745224 - -0.9999750257 22136.4277343750 -0.4474608898 - -0.9999650121 22137.1875000000 -0.4484385252 - -0.9999532700 22135.9863281250 -0.4494138658 - -0.9999397993 22135.6835937500 -0.4503968060 - -0.9999246597 22137.3632812500 -0.4513823688 - -0.9999078512 22135.7675781250 -0.4523534477 - -0.9998893142 22136.2753906250 -0.4533260763 - -0.9998691082 22135.4707031250 -0.4543034434 - -0.9998471737 22137.4824218750 -0.4552834928 - -0.9998235703 22136.7070312500 -0.4562544227 - -0.9997982979 22136.5039062500 -0.4572378099 - -0.9997712970 22136.3886718750 -0.4582049251 - -0.9997425675 22136.3007812500 -0.4591873884 - -0.9997121692 22136.9472656250 -0.4601603746 - -0.9996801019 22135.9179687500 -0.4611316621 - -0.9996463060 22135.5917968750 -0.4620940983 - -0.9996108413 22136.3945312500 -0.4630774558 - -0.9995737076 22135.9179687500 -0.4640436471 - -0.9995348454 22136.7832031250 -0.4650195539 - -0.9994942546 22135.2988281250 -0.4659904540 - -0.9994519949 22135.6152343750 -0.4669696689 - -0.9994080663 22136.7421875000 -0.4679355025 - -0.9993624091 22135.5781250000 -0.4689032137 - -0.9993150830 22137.0332031250 -0.4698669016 - -0.9992660284 22136.9375000000 -0.4708479047 - -0.9992153049 22136.2363281250 -0.4718158245 - -0.9991629124 22136.2285156250 -0.4727788270 - -0.9991087914 22137.2011718750 -0.4737468362 - -0.9990530014 22136.3750000000 -0.4747126698 - -0.9989954829 22137.0039062500 -0.4756897092 - -0.9989362955 22136.5976562500 -0.4766549468 - -0.9988753796 22136.1210937500 -0.4776204824 - -0.9988127947 22135.9003906250 -0.4785847068 - -0.9987485409 22136.7460937500 -0.4795638025 - -0.9986825585 22135.8828125000 -0.4805252850 - -0.9986149073 22136.8457031250 -0.4814895988 - -0.9985455871 22135.4238281250 -0.4824498892 - -0.9984745383 22136.6835937500 -0.4834309816 - -0.9984017611 22135.4199218750 -0.4843928516 - -0.9983273149 22136.4160156250 -0.4853591323 - -0.9982511997 22136.3671875000 -0.4863196611 - -0.9981734157 22136.9101562500 -0.4872999191 - -0.9980939031 22135.8261718750 -0.4882596433 - -0.9980126619 22136.4062500000 -0.4892283678 - -0.9979298115 22135.3828125000 -0.4901911616 - -0.9978452325 22135.8710937500 -0.4911541939 - -0.9977589250 22135.6835937500 -0.4921330214 - -0.9976709485 22135.8125000000 -0.4930925369 - -0.9975813031 22136.2089843750 -0.4940549433 - -0.9974899292 22135.3242187500 -0.4950167239 - -0.9973968863 22136.4687500000 -0.4959956706 - -0.9973021746 22134.3867187500 -0.4969538748 - -0.9972057343 22137.2187500000 -0.4979166985 - -0.9971076250 22136.0195312500 -0.4988767505 - -0.9970077872 22134.6972656250 -0.4998348653 - -0.9969063401 22136.7753906250 -0.5008156896 - -0.9968031049 22134.8222656250 -0.5017760992 - -0.9966982603 22135.4003906250 -0.5027393103 - -0.9965916872 22137.6367187500 -0.5037025809 - -0.9964834452 22135.0117187500 -0.5046619773 - -0.9963734746 22137.6601562500 -0.5056392550 - -0.9962618351 22136.1347656250 -0.5066028237 - -0.9961485267 22135.9648437500 -0.5075626373 - -0.9960334897 22136.9062500000 -0.5085230470 - -0.9959167838 22135.9824218750 -0.5094846487 - -0.9957984090 22136.6054687500 -0.5104637146 - -0.9956783652 22136.1894531250 -0.5114225149 - -0.9955565929 22134.9062500000 -0.5123819113 - -0.9954330921 22135.6777343750 -0.5133473873 - -0.9953079820 22137.2910156250 -0.5143221021 - -0.9951811433 22137.5175781250 -0.5152827501 - -0.9950526357 22136.2109375000 -0.5162420273 - -0.9949223995 22135.5859375000 -0.5172079206 - -0.9947905540 22134.1347656250 -0.5181694031 - -0.9946569204 22137.3222656250 -0.5191465616 - -0.9945216775 22136.4199218750 -0.5201033950 - -0.9943847060 22136.3671875000 -0.5210657120 - -0.9942461252 22136.7500000000 -0.5220289230 - -0.9941057563 22136.3750000000 -0.5229902864 - -0.9939637780 22136.1972656250 -0.5239707232 - -0.9938200712 22135.6738281250 -0.5249289870 - -0.9936746955 22135.2597656250 -0.5258871913 - -0.9935276508 22134.4960937500 -0.5268428326 - -0.9933788776 22135.5722656250 -0.5278067589 - -0.9932284355 22136.0039062500 -0.5287871361 - -0.9930763245 22135.6933593750 -0.5297468305 - -0.9929225445 22135.7343750000 -0.5307045579 - -0.9927670360 22135.6582031250 -0.5316658020 - -0.9926099181 22134.5410156250 -0.5326271057 - -0.9924510717 22135.1582031250 -0.5335941315 - -0.9922904968 22137.1269531250 -0.5345676541 - -0.9921283126 22135.5957031250 -0.5355299711 - -0.9919643998 22136.8066406250 -0.5364932418 - -0.9917988181 22135.4062500000 -0.5374501348 - -0.9916315675 22135.7402343750 -0.5384066701 - -0.9914626479 22134.8945312500 -0.5393906832 - -0.9912919998 22133.9667968750 -0.5403490067 - -0.9911197424 22135.4277343750 -0.5413132310 - -0.9909457564 22134.6054687500 -0.5422617197 - -0.9907701015 22135.5605468750 -0.5432290435 - -0.9905927181 22136.8613281250 -0.5442113280 - -0.9904137254 22135.6210937500 -0.5451673865 - -0.9902330041 22135.0097656250 -0.5461283922 - -0.9900506139 22135.9023437500 -0.5470891595 - -0.9898665547 22135.4277343750 -0.5480499268 - -0.9896808267 22136.7480468750 -0.5490269661 - -0.9894934297 22136.0019531250 -0.5499902964 - -0.9893043637 22136.5761718750 -0.5509506464 - -0.9891135693 22136.8984375000 -0.5519028902 - -0.9889211059 22134.5000000000 -0.5528609157 - -0.9887269735 22135.5976562500 -0.5538224578 - -0.9885311723 22135.3945312500 -0.5548011065 - -0.9883337021 22135.7558593750 -0.5557636023 - -0.9881345630 22134.8085937500 -0.5567215085 - -0.9879337549 22136.0722656250 -0.5576806068 - -0.9877312779 22134.1972656250 -0.5586409569 - -0.9875270724 22134.8496093750 -0.5596026778 - -0.9873211980 22137.0156250000 -0.5605762005 - -0.9871137142 22136.3437500000 -0.5615337491 - -0.9869045019 22136.6679687500 -0.5624949932 - -0.9866936207 22135.8632812500 -0.5634514093 - -0.9864810705 22135.1777343750 -0.5644129515 - -0.9862668514 22133.5332031250 -0.5653729439 - -0.9860509634 22135.6679687500 -0.5663486719 - -0.9858334064 22136.8789062500 -0.5673060417 - -0.9856141806 22134.6679687500 -0.5682642460 - -0.9853932858 22134.5703125000 -0.5692197680 - -0.9851707220 22135.2871093750 -0.5701815486 - -0.9849464893 22136.2460937500 -0.5711576343 - -0.9847205877 22135.9472656250 -0.5721170306 - -0.9844930172 22134.9707031250 -0.5730792284 - -0.9842637181 22136.0468750000 -0.5740280151 - -0.9840328097 22134.3925781250 -0.5749823451 - -0.9838002324 22135.9335937500 -0.5759372711 - -0.9835659862 22134.1777343750 -0.5769203901 - -0.9833300710 22134.5410156250 -0.5778781772 - -0.9830924869 22135.9296875000 -0.5788329840 - -0.9828531742 22136.1679687500 -0.5797877312 - -0.9826122522 22137.1542968750 -0.5807407498 - -0.9823696613 22134.0644531250 -0.5816984773 - -0.9821254611 22135.1679687500 -0.5826792121 - -0.9818795323 22135.0156250000 -0.5836330652 - -0.9816319346 22135.6914062500 -0.5845912695 - -0.9813826680 22136.5097656250 -0.5855378509 - -0.9811317921 22135.1914062500 -0.5864938498 - -0.9808791876 22136.1328125000 -0.5874475837 - -0.9806249738 22135.3027343750 -0.5884037018 - -0.9803690314 22134.8613281250 -0.5893833041 - -0.9801114798 22135.6250000000 -0.5903363228 - -0.9798522592 22135.3027343750 -0.5912865996 - -0.9795913696 22135.3574218750 -0.5922392607 - -0.9793288112 22133.1230468750 -0.5931920409 - -0.9790645838 22134.5996093750 -0.5941449404 - -0.9787987471 22134.5800781250 -0.5951001048 - -0.9785312414 22135.8945312500 -0.5960678458 - -0.9782620072 22135.9531250000 -0.5970227718 - -0.9779911637 22135.8535156250 -0.5979748964 - -0.9777186513 22135.2246093750 -0.5989276171 - -0.9774445295 22133.4921875000 -0.5998803973 - -0.9771686792 22134.6328125000 -0.6008257270 - -0.9768912196 22135.3007812500 -0.6018025875 - -0.9766120911 22136.7578125000 -0.6027517319 - -0.9763312936 22133.5644531250 -0.6037054658 - -0.9760488868 22134.9023437500 -0.6046462059 - -0.9757647514 22134.1269531250 -0.6055986881 - -0.9754790068 22133.7500000000 -0.6065471768 - -0.9751915932 22134.8574218750 -0.6075220108 - -0.9749025702 22135.9726562500 -0.6084706187 - -0.9746118188 22133.5644531250 -0.6094127893 - -0.9743194580 22134.1269531250 -0.6103619933 - -0.9740254283 22135.0566406250 -0.6113123894 - -0.9737297893 22133.9960937500 -0.6122598052 - -0.9734324813 22134.5019531250 -0.6132028699 - -0.9731335044 22134.7617187500 -0.6141707897 - -0.9728328586 22134.9335937500 -0.6151190996 - -0.9725306034 22134.9218750000 -0.6160644889 - -0.9722266793 22135.2402343750 -0.6170063615 - -0.9719211459 22134.7421875000 -0.6179511547 - -0.9716139436 22135.3261718750 -0.6188957095 - -0.9713050723 22133.9707031250 -0.6198420525 - -0.9709945321 22135.5996093750 -0.6207811236 - -0.9706823826 22136.4570312500 -0.6217518449 - -0.9703686237 22134.3750000000 -0.6226911545 - -0.9700531363 22133.3222656250 -0.6236383915 - -0.9697360396 22135.0371093750 -0.6245754361 - -0.9694173336 22134.5175781250 -0.6255204082 - -0.9690969586 22133.6113281250 -0.6264591217 - -0.9687749147 22133.5292968750 -0.6274019480 - -0.9684512615 22134.2578125000 -0.6283372045 - -0.9681259990 22135.4550781250 -0.6293030977 - -0.9677990079 22134.0527343750 -0.6302434802 - -0.9674704671 22135.5976562500 -0.6311829686 - -0.9671401978 22134.3535156250 -0.6321187019 - -0.9668083787 22135.4160156250 -0.6330573559 - -0.9664748311 22132.7011718750 -0.6339949369 - -0.9661396742 22133.5507812500 -0.6349331737 - -0.9658029079 22135.0390625000 -0.6358904839 - -0.9654644728 22135.6191406250 -0.6368283033 - -0.9651244283 22132.8398437500 -0.6377632022 - -0.9647827744 22133.0273437500 -0.6386964917 - -0.9644394517 22134.6699218750 -0.6396313310 - -0.9640944600 22132.8593750000 -0.6405668259 - -0.9637478590 22132.8007812500 -0.6415010095 - -0.9633996487 22135.7187500000 -0.6424552202 - -0.9630497694 22135.8066406250 -0.6433903575 - -0.9626982808 22135.3007812500 -0.6443211436 - -0.9623451233 22135.1210937500 -0.6452498436 - -0.9619903564 22134.5468750000 -0.6461820006 - -0.9616339803 22134.1328125000 -0.6471113563 - -0.9612759352 22133.5234375000 -0.6480432153 - -0.9609162807 22133.8281250000 -0.6489694715 - -0.9605550170 22132.7460937500 -0.6498992443 - -0.9601920843 22134.2988281250 -0.6508538723 - -0.9598276019 22135.6230468750 -0.6517777443 - -0.9594613910 22136.1875000000 -0.6527069807 - -0.9590936303 22132.8105468750 -0.6536314487 - -0.9587242007 22135.6445312500 -0.6545561552 - -0.9583531618 22133.7714843750 -0.6554828882 - -0.9579805136 22133.0859375000 -0.6564062834 - -0.9576061964 22133.2402343750 -0.6573290229 - -0.9572302699 22133.8535156250 -0.6582539678 - -0.9568527341 22133.5195312500 -0.6591752172 - -0.9564735889 22133.6875000000 -0.6601212621 - -0.9560927749 22134.5449218750 -0.6610440612 - -0.9557104111 22134.4628906250 -0.6619644165 - -0.9553263783 22132.2265625000 -0.6628866196 - -0.9549407363 22132.8339843750 -0.6638032198 - -0.9545534253 22132.4355468750 -0.6647239327 - -0.9541645646 22133.7265625000 -0.6656424403 - -0.9537740946 22134.4335937500 -0.6665828228 - -0.9533819556 22134.4375000000 -0.6675027013 - -0.9529882073 22134.1113281250 -0.6684189439 - -0.9525928497 22134.5097656250 -0.6693316698 - -0.9521958828 22134.4082031250 -0.6702493429 - -0.9517973065 22132.9101562500 -0.6711625457 - -0.9513971210 22134.9746093750 -0.6720746160 - -0.9509953260 22132.8222656250 -0.6729894280 - -0.9505919218 22133.8769531250 -0.6739268303 - -0.9501869082 22135.0703125000 -0.6748363376 - -0.9497802258 22134.5917968750 -0.6757494807 - -0.9493719935 22131.9648437500 -0.6766592860 - -0.9489621520 22134.6074218750 -0.6775661111 - -0.9485507011 22133.5664062500 -0.6784766912 - -0.9481375813 22133.6718750000 -0.6793824434 - -0.9477229118 22134.8125000000 -0.6802897453 - -0.9473066330 22133.9257812500 -0.6811990738 - -0.9468887448 22133.4550781250 -0.6821014285 - -0.9464692473 22133.7636718750 -0.6830075979 - -0.9460481405 22133.6406250000 -0.6839121580 - -0.9456254244 22133.3222656250 -0.6848144531 - -0.9452010989 22133.5273437500 -0.6857171655 - -0.9447751641 22131.7421875000 -0.6866463423 - -0.9443476796 22133.7011718750 -0.6875459552 - -0.9439185262 22132.5644531250 -0.6884473562 - -0.9434878230 22132.0781250000 -0.6893469691 - -0.9430555105 22132.2148437500 -0.6902452111 - -0.9426215887 22134.2226562500 -0.6911447048 - -0.9421860576 22133.0566406250 -0.6920384765 - -0.9417489767 22133.1152343750 -0.6929376125 - -0.9413102269 22132.7089843750 -0.6938599944 - -0.9408699274 22133.8222656250 -0.6947523355 - -0.9404280186 22133.2988281250 -0.6956486106 - -0.9399845600 22133.9960937500 -0.6965425014 - -0.9395394325 22132.5917968750 -0.6974326968 - -0.9390927553 22131.9687500000 -0.6983263493 - -0.9386444688 22133.4804687500 -0.6992419362 - -0.9381946325 22133.8281250000 -0.7001318336 - -0.9377431870 22132.4843750000 -0.7010220289 - -0.9372901320 22132.8085937500 -0.7019102573 - -0.9368354678 22133.5976562500 -0.7027974725 - -0.9363792539 22134.1933593750 -0.7036845088 - -0.9359214306 22132.9355468750 -0.7045707107 - -0.9354620576 22132.0527343750 -0.7054547668 - -0.9350010753 22132.6328125000 -0.7063383460 - -0.9345384836 22134.1484375000 -0.7072218060 - -0.9340743423 22133.1601562500 -0.7081053853 - -0.9336085916 22133.4902343750 -0.7089864016 - -0.9331412911 22132.4414062500 -0.7098670602 - -0.9326723814 22132.7851562500 -0.7107460499 - -0.9322019219 22131.6542968750 -0.7116250396 - -0.9317298532 22131.3125000000 -0.7125028968 - -0.9312561750 22131.3730468750 -0.7133795023 - -0.9307809472 22131.9941406250 -0.7142572999 - -0.9303041697 22131.8339843750 -0.7151311636 - -0.9298257828 22131.9785156250 -0.7160063386 - -0.9293458462 22131.5429687500 -0.7168803811 - -0.9288643003 22130.6210937500 -0.7177522779 - -0.9283812046 22131.5742187500 -0.7186508775 - -0.9278964996 22132.4609375000 -0.7195211053 - -0.9274102449 22131.5156250000 -0.7203912735 - -0.9269224405 22131.5585937500 -0.7212610245 - -0.9264330268 22133.9179687500 -0.7221547961 - -0.9259420633 22132.6308593750 -0.7230216861 - -0.9254495502 22134.1445312500 -0.7238882184 - -0.9249554276 22133.6796875000 -0.7247802019 - -0.9244597554 22133.2109375000 -0.7256432772 - -0.9239625335 22132.9101562500 -0.7265070081 - -0.9234637022 22132.7324218750 -0.7273964286 - -0.9229633212 22134.5761718750 -0.7282575369 - -0.9224613905 22135.6132812500 -0.7291185856 - -0.9219579101 22133.7480468750 -0.7299779058 - -0.9214528203 22133.3496093750 -0.7308357954 - -0.9209461808 22133.2500000000 -0.7316939831 - -0.9204379916 22133.7832031250 -0.7325497866 - -0.9199282527 22133.3085937500 -0.7334052324 - -0.9194169641 22132.8945312500 -0.7342334390 - -0.9189040661 22132.7617187500 -0.7350867391 - -0.9183896780 22131.8593750000 -0.7359116077 - -0.9178736806 22130.0859375000 -0.7367636561 - -0.9173561335 22129.5644531250 -0.7375872731 - -0.9168370366 22128.1503906250 -0.7384095192 - -0.9163163900 22128.3808593750 -0.7392314672 - -0.9157941937 22127.2558593750 -0.7400248051 - -0.9152704477 22125.5292968750 -0.7408447862 - -0.9147451520 22124.3203125000 -0.7416356802 - -0.9142182469 22122.6054687500 -0.7424526811 - -0.9136898518 22121.4238281250 -0.7432424426 - -0.9131599069 22119.5742187500 -0.7440572381 - -0.9126284122 22118.6406250000 -0.7448447347 - -0.9120953679 22115.3027343750 -0.7456303239 - -0.9115607738 22115.2304687500 -0.7464427352 - -0.9110246301 22113.8945312500 -0.7472272515 - -0.9104869366 22113.1562500000 -0.7480369806 - -0.9099476933 22108.8710937500 -0.7488194704 - -0.9094069004 22108.7128906250 -0.7496269941 - -0.9088646173 22108.3925781250 -0.7504338622 - -0.9083207250 22107.0996093750 -0.7512400150 - -0.9077753425 22104.9648437500 -0.7520434856 - -0.9072284102 22104.8320312500 -0.7528750300 - -0.9066799283 22106.4921875000 -0.7536782622 - -0.9061298966 22104.1855468750 -0.7545064092 - -0.9055783749 27533.1015625000 -0.7568119764 - -0.9050253034 27535.4609375000 -0.7576646805 - -0.9044706821 27533.8476562500 -0.7585153580 - -0.9039145112 27533.6210937500 -0.7593654990 - -0.9033568501 27535.9277343750 -0.7602145076 - -0.9027975798 27536.5703125000 -0.7610616684 - -0.9022368789 27537.0019531250 -0.7619078755 - -0.9016745687 27536.8945312500 -0.7627524734 - -0.9011107683 27540.8730468750 -0.7635965347 - -0.9005454183 27541.5429687500 -0.7644391060 - -0.8999785781 27542.3984375000 -0.7652797699 - -0.8994101882 27542.1757812500 -0.7661189437 - -0.8988403082 27545.6035156250 -0.7669584155 - -0.8982688785 27545.7597656250 -0.7677946687 - -0.8976958990 27547.9941406250 -0.7686303854 - -0.8971214294 27548.5039062500 -0.7694646716 - -0.8965454102 27550.3183593750 -0.7702981234 - -0.8959679008 27551.2070312500 -0.7711294889 - -0.8953888416 27552.1816406250 -0.7719599009 - -0.8948082924 27553.1503906250 -0.7727890015 - -0.8942262530 27552.6992187500 -0.7736163735 - -0.8936426640 27553.8789062500 -0.7744421363 - -0.8930575252 27554.6679687500 -0.7752677202 - -0.8924708962 27556.4394531250 -0.7760916352 - -0.8918827772 27556.6914062500 -0.7769137025 - -0.8912931681 27557.1542968750 -0.7777339816 - -0.8907020092 27557.1328125000 -0.7785537839 - -0.8901093006 27557.7500000000 -0.7793719172 - -0.8895151615 27557.1250000000 -0.7801882029 - -0.8889194727 27557.4902343750 -0.7810038328 - -0.8883222938 27557.9941406250 -0.7818181515 - -0.8877235651 27559.5156250000 -0.7826315761 - -0.8871233463 27558.4062500000 -0.7834426761 - -0.8865216374 27557.0332031250 -0.7842526436 - -0.8859184384 27557.0644531250 -0.7850606441 - -0.8853137493 27557.3886718750 -0.7858684063 - -0.8847075105 27557.6660156250 -0.7866743207 - -0.8840998411 27558.5000000000 -0.7874790430 - -0.8834906220 27556.5917968750 -0.7882820368 - -0.8828799129 27558.0839843750 -0.7890841961 - -0.8822677135 27555.8261718750 -0.7898844481 - -0.8816540241 27555.4062500000 -0.7906832099 - -0.8810387850 27557.0214843750 -0.7914814353 - -0.8804221153 27555.4921875000 -0.7922779322 - -0.8798039556 27554.6757812500 -0.7930728197 - -0.8791842461 27555.6132812500 -0.7938666940 - -0.8785631061 27556.3261718750 -0.7946594954 - -0.8779404163 27555.7714843750 -0.7954506874 - -0.8773162961 27556.3476562500 -0.7962409258 - -0.8766906857 27555.0097656250 -0.7970284224 - -0.8760635257 27555.0527343750 -0.7978157401 - -0.8754349351 27555.5097656250 -0.7986018062 - -0.8748048544 27556.7792968750 -0.7993865609 - -0.8741732836 27556.3203125000 -0.8001695275 - -0.8735402226 27557.4394531250 -0.8009509444 - -0.8729057312 27557.1582031250 -0.8017315865 - -0.8722696900 27557.9101562500 -0.8025105000 - -0.8716322184 27556.5527343750 -0.8032878637 - -0.8709932566 27555.6562500000 -0.8040640950 - -0.8703528047 27557.0156250000 -0.8048389554 - -0.8697108626 27558.0546875000 -0.8056131005 - -0.8690674901 27557.1425781250 -0.8063848019 - -0.8684226274 27556.3574218750 -0.8071546555 - -0.8677762747 27556.4843750000 -0.8079244494 - -0.8671284318 27557.2558593750 -0.8086924553 - -0.8664791584 27557.2343750000 -0.8094592690 - -0.8658284545 27556.0410156250 -0.8102245927 - -0.8651762009 27556.4882812500 -0.8109883666 - -0.8645225167 27557.5507812500 -0.8117517233 - -0.8638673425 27557.1074218750 -0.8125123382 - -0.8632107377 27557.6992187500 -0.8132719398 - -0.8625526428 27556.1386718750 -0.8140296340 - -0.8618931174 27556.8398437500 -0.8147873878 - -0.8612321019 27556.5839843750 -0.8155423999 - -0.8605696559 27558.0898437500 -0.8162972927 - -0.8599057198 27555.7109375000 -0.8170493841 - -0.8592403531 27555.8222656250 -0.8178017139 - -0.8585734963 27555.9433593750 -0.8185513616 - -0.8579052091 27557.3417968750 -0.8193006516 - -0.8572354913 27555.1757812500 -0.8200473785 - -0.8565642834 27556.9863281250 -0.8207932711 - -0.8558916450 27556.9296875000 -0.8215383887 - -0.8552175164 27557.2949218750 -0.8222817183 - -0.8545419574 27557.0175781250 -0.8230227828 - -0.8538649678 27557.0332031250 -0.8237633705 - -0.8531864882 27557.3105468750 -0.8245025873 - -0.8525066376 27558.3554687500 -0.8252404928 - -0.8518252969 27557.0625000000 -0.8259765506 - -0.8511424661 27556.8925781250 -0.8267111778 - -0.8504582644 27558.0703125000 -0.8274447918 - -0.8497725725 27555.5371093750 -0.8281765580 - -0.8490854502 27557.9179687500 -0.8289080858 - -0.8483968973 27558.3886718750 -0.8296369910 - -0.8477069139 27557.0937500000 -0.8303645849 - -0.8470155001 27556.5703125000 -0.8310911059 - -0.8463226557 27558.6914062500 -0.8318167925 - -0.8456283212 27556.1386718750 -0.8325401545 - -0.8449326158 27558.1132812500 -0.8332628012 - -0.8442354202 27557.7773437500 -0.8339831829 - -0.8435368538 27557.3535156250 -0.8347030282 - -0.8428367972 27557.8789062500 -0.8354210258 - -0.8421353698 27557.9628906250 -0.8361374140 - -0.8414324522 27556.7636718750 -0.8368531466 - -0.8407281637 27555.9785156250 -0.8375668526 - -0.8400224447 27556.2988281250 -0.8382792473 - -0.8393152952 27555.8085937500 -0.8389902711 - -0.8386067152 27557.6113281250 -0.8397000432 - -0.8378967047 27557.6972656250 -0.8404083252 - -0.8371852636 27557.1640625000 -0.8411151171 - -0.8364723921 27556.4218750000 -0.8418202400 - -0.8357581496 27557.3027343750 -0.8425242901 - -0.8350424767 27556.6152343750 -0.8432267904 - -0.8343253732 27556.0566406250 -0.8439278603 - -0.8336068392 27557.1386718750 -0.8446279764 - -0.8328869343 27558.9160156250 -0.8453269005 - -0.8321655989 27556.2402343750 -0.8460235000 - -0.8314428926 27559.6406250000 -0.8467201591 - -0.8307186961 27558.8144531250 -0.8474133015 - -0.8299931288 27557.5312500000 -0.8481058478 - -0.8292661905 27556.0312500000 -0.8487973213 - -0.8285378218 27557.1679687500 -0.8494873047 - -0.8278080225 27557.0703125000 -0.8501762152 - -0.8270768523 27557.3789062500 -0.8508626819 - -0.8263442516 27558.0410156250 -0.8515482545 - -0.8256102800 27558.5214843750 -0.8522332311 - -0.8248748779 27557.9492187500 -0.8529155254 - -0.8241381049 27559.1347656250 -0.8535974026 - -0.8233999014 27558.8574218750 -0.8542773724 - -0.8226603270 27556.0859375000 -0.8549554348 - -0.8219193220 27555.8222656250 -0.8556321859 - -0.8211769462 27557.9042968750 -0.8563086987 - -0.8204331994 27556.0898437500 -0.8569822907 - -0.8196880817 27556.1699218750 -0.8576551080 - -0.8189415336 27558.7695312500 -0.8583276272 - -0.8181936145 27558.5000000000 -0.8589971662 - -0.8174442649 27556.5566406250 -0.8596652746 - -0.8166935444 27555.8593750000 -0.8603328466 - -0.8159414530 27558.4082031250 -0.8609986901 - -0.8151879907 27557.6464843750 -0.8616627455 - -0.8144331574 27558.6445312500 -0.8623259664 - -0.8136769533 27557.2226562500 -0.8629871011 - -0.8129193187 27558.3671875000 -0.8636468053 - -0.8121603131 27557.0878906250 -0.8643055558 - -0.8113999367 27556.5253906250 -0.8649631143 - -0.8106381893 27556.6308593750 -0.8656181097 - -0.8098750710 27557.8007812500 -0.8662724495 - -0.8091105819 27558.4609375000 -0.8669252992 - -0.8083447218 27556.3632812500 -0.8675765395 - -0.8075774908 27557.4199218750 -0.8682267666 - -0.8068088889 27559.5937500000 -0.8688761592 - -0.8060389161 27558.8730468750 -0.8695228100 - -0.8052675724 27556.9160156250 -0.8701677918 - -0.8044948578 27558.2714843750 -0.8708121777 - -0.8037208319 27557.7578125000 -0.8714550138 - -0.8029453754 27558.6210937500 -0.8720963597 - -0.8021686077 27557.4863281250 -0.8727365136 - -0.8013904691 27558.1503906250 -0.8733751178 - -0.8006109595 27557.4882812500 -0.8740120530 - -0.7998300791 27557.8671875000 -0.8746474385 - -0.7990478277 27556.6757812500 -0.8752812147 - -0.7982642651 27558.2871093750 -0.8759143353 - -0.7974793315 27557.0468750000 -0.8765450120 - -0.7966930866 27556.4550781250 -0.8771749735 - -0.7959054112 27558.5761718750 -0.8778039813 - -0.7951164246 27557.9394531250 -0.8784306049 - -0.7943261266 27556.7753906250 -0.8790557384 - -0.7935344577 27556.8183593750 -0.8796799779 - -0.7927414179 27558.2695312500 -0.8803028464 - -0.7919470668 27556.6738281250 -0.8809239268 - -0.7911513448 27559.5507812500 -0.8815439343 - -0.7903543115 27558.2089843750 -0.8821623325 - -0.7895559072 27557.6152343750 -0.8827789426 - -0.7887561917 27556.2558593750 -0.8833937645 - -0.7879551053 27558.1171875000 -0.8840076327 - -0.7871527076 27558.6933593750 -0.8846198320 - -0.7863489389 27558.9960937500 -0.8852314353 - -0.7855438590 27558.7890625000 -0.8858404160 - -0.7847374678 27557.1621093750 -0.8864490390 - -0.7839297652 27557.4394531250 -0.8870549798 - -0.7831206918 27556.4765625000 -0.8876606226 - -0.7823103070 27558.0488281250 -0.8882643580 - -0.7814985514 27558.4179687500 -0.8888666630 - -0.7806855440 27558.4433593750 -0.8894681931 - -0.7798711658 27557.7011718750 -0.8900669813 - -0.7790554762 27558.4902343750 -0.8906646967 - -0.7782384753 27558.7500000000 -0.8912615180 - -0.7774201632 27558.0117187500 -0.8918560743 - -0.7766004801 27559.0039062500 -0.8924497962 - -0.7757795453 27558.4589843750 -0.8930423856 - -0.7749572396 27558.0820312500 -0.8936327100 - -0.7741336823 27557.8496093750 -0.8942219019 - -0.7733087540 27556.9550781250 -0.8948091269 - -0.7724825740 27560.1152343750 -0.8953958154 - -0.7716550231 27559.5117187500 -0.8959807754 - -0.7708262205 27558.6777343750 -0.8965638876 - -0.7699960470 27557.2167968750 -0.8971456885 - -0.7691646218 27556.9980468750 -0.8977260590 - -0.7683318853 27558.6679687500 -0.8983054161 - -0.7674978375 27557.6503906250 -0.8988824487 - -0.7666624784 27559.1914062500 -0.8994589448 - -0.7658258080 27557.7988281250 -0.9000333548 - -0.7649878860 27558.7539062500 -0.9006067514 - -0.7641485929 27558.9296875000 -0.9011777043 - -0.7633080482 27558.3984375000 -0.9017485976 - -0.7624662519 27557.2832031250 -0.9023163915 - -0.7616230845 27557.7421875000 -0.9028846622 - -0.7607786655 27559.9492187500 -0.9034500718 - -0.7599329948 27558.3398437500 -0.9040143490 - -0.7590859532 27556.7246093750 -0.9045772552 - -0.7582376599 27557.8769531250 -0.9051392078 - -0.7573881149 27558.5742187500 -0.9056987166 - -0.7565372586 27559.7402343750 -0.9062579870 - -0.7556850910 27559.1562500000 -0.9068145156 - -0.7548316717 27559.5253906250 -0.9073698521 - -0.7539770007 27557.7656250000 -0.9079247117 - -0.7531210184 27556.9394531250 -0.9084764719 - -0.7522637844 27559.0078125000 -0.9090284109 - -0.7514052391 27557.7500000000 -0.9095775485 - -0.7505454421 27558.4257812500 -0.9101259708 - -0.7496843338 27557.8730468750 -0.9106724858 - -0.7488219738 27558.6015625000 -0.9112181067 - -0.7479583621 27557.5781250000 -0.9117614031 - -0.7470934987 27559.4980468750 -0.9123045206 - -0.7462273240 27559.2109375000 -0.9128456116 - -0.7453598976 27558.6757812500 -0.9133846760 - -0.7444912195 27559.4277343750 -0.9139224887 - -0.7436212897 27558.4335937500 -0.9144595861 - -0.7427501082 27558.6757812500 -0.9149941802 - -0.7418776155 27557.8496093750 -0.9155271649 - -0.7410039306 27558.2265625000 -0.9160593748 - -0.7401289344 27559.8710937500 -0.9165905714 - -0.7392526865 27558.1992187500 -0.9171195030 - -0.7383751869 27557.4218750000 -0.9176464081 - -0.7374964952 27558.0664062500 -0.9181739092 - -0.7366164923 27556.3281250000 -0.9186975360 - -0.7357352376 27557.6171875000 -0.9192212820 - -0.7348527908 27558.8515625000 -0.9197434187 - -0.7339690328 27558.6035156250 -0.9202641249 - -0.7330840826 27559.5273437500 -0.9207831621 - -0.7321978211 27558.2031250000 -0.9212998152 - -0.7313103676 27559.7597656250 -0.9218153954 - -0.7304216623 27558.4550781250 -0.9223305583 - -0.7295317650 27557.3281250000 -0.9228429794 - -0.7286405563 27558.1347656250 -0.9233542681 - -0.7277481556 27558.5117187500 -0.9238639474 - -0.7268545032 27558.4238281250 -0.9243723750 - -0.7259596586 27559.0039062500 -0.9248805642 - -0.7250635624 27558.3769531250 -0.9253855944 - -0.7241662145 27557.1796875000 -0.9258897305 - -0.7232676148 27557.4550781250 -0.9263918400 - -0.7223678231 27558.3007812500 -0.9268939495 - -0.7214668393 27559.3007812500 -0.9273942709 - -0.7205646038 27559.0546875000 -0.9278919697 - -0.7196611166 27559.3281250000 -0.9283885956 - -0.7187564373 27558.8847656250 -0.9288837314 - -0.7178505659 27559.1113281250 -0.9293773174 - -0.7169434428 27559.9238281250 -0.9298706651 - -0.7160351276 27556.8750000000 -0.9303605556 - -0.7151255608 27558.5058593750 -0.9308498502 - -0.7142148018 27558.7890625000 -0.9313377738 - -0.7133028507 27559.8339843750 -0.9318240285 - -0.7123896480 27559.7792968750 -0.9323093891 - -0.7114752531 27558.5078125000 -0.9327934980 - -0.7105596662 27557.6328125000 -0.9332745671 - -0.7096428871 27558.9394531250 -0.9337546825 - -0.7087249160 27559.3183593750 -0.9342346191 - -0.7078056931 27558.8886718750 -0.9347118139 - -0.7068852782 27559.7792968750 -0.9351883531 - -0.7059636712 27558.7382812500 -0.9356619120 - -0.7050408721 27559.3789062500 -0.9361362457 - -0.7041168809 27560.3632812500 -0.9366080761 - -0.7031916976 27557.6269531250 -0.9370772839 - -0.7022653222 27560.2324218750 -0.9375467300 - -0.7013377547 27557.9492187500 -0.9380135536 - -0.7004089952 27557.8867187500 -0.9384788871 - -0.6994790435 27559.2949218750 -0.9389429688 - -0.6985479593 27557.2773437500 -0.9394058585 - -0.6976156235 27558.7304687500 -0.9398667812 - -0.6966821551 27559.5000000000 -0.9403269291 - -0.6957474351 27556.7812500000 -0.9407849312 - -0.6948115826 27559.4550781250 -0.9412431121 - -0.6938745379 27557.8261718750 -0.9416978955 - -0.6929363608 27558.7089843750 -0.9421521425 - -0.6919969320 27558.4296875000 -0.9426037669 - -0.6910563707 27558.7558593750 -0.9430549145 - -0.6901146770 27558.4160156250 -0.9435044527 - -0.6891717315 27558.4042968750 -0.9439520836 - -0.6882277131 27558.8710937500 -0.9443983436 - -0.6872824430 27558.8652343750 -0.9448428154 - -0.6863360405 27559.9238281250 -0.9452867508 - -0.6853885055 27559.4277343750 -0.9457287192 - -0.6844397783 27558.9042968750 -0.9461690784 - -0.6834898591 27558.0156250000 -0.9466081858 - -0.6825388074 27559.4687500000 -0.9470456839 - -0.6815866232 27558.4609375000 -0.9474816918 - -0.6806332469 27559.5937500000 -0.9479167461 - -0.6796787381 27558.7988281250 -0.9483495355 - -0.6787230968 27559.9218750000 -0.9487814903 - -0.6777662635 27558.4687500000 -0.9492111206 - -0.6768082976 27558.9980468750 -0.9496402144 - -0.6758491397 27558.8398437500 -0.9500669837 - -0.6748889089 27559.5195312500 -0.9504923820 - -0.6739274859 27559.3359375000 -0.9509172440 - -0.6729649305 27560.1425781250 -0.9513404369 - -0.6720012426 27559.0078125000 -0.9517607689 - -0.6710364223 27559.1074218750 -0.9521805048 - -0.6700704694 27559.6035156250 -0.9525991678 - -0.6691033840 27559.8222656250 -0.9530160427 - -0.6681351662 27558.4550781250 -0.9534310102 - -0.6671657562 27559.7167968750 -0.9538446665 - -0.6661952734 27558.1718750000 -0.9542565942 - -0.6652236581 27557.9941406250 -0.9546687603 - -0.6642509103 27559.4023437500 -0.9550766945 - -0.6632770300 27558.8750000000 -0.9554842114 - -0.6623020172 27559.3613281250 -0.9558904767 - -0.6613258719 27558.7753906250 -0.9562956691 - -0.6603485942 27558.8613281250 -0.9566990733 - -0.6593702435 27559.4609375000 -0.9571012259 - -0.6583907604 27558.9921875000 -0.9575017691 - -0.6574101448 27559.4199218750 -0.9579013586 - -0.6564284563 27559.1386718750 -0.9582991004 - -0.6554455757 27559.3339843750 -0.9586927891 - -0.6544616818 27560.1972656250 -0.9590870142 - -0.6534765959 27558.2851562500 -0.9594812393 - -0.6524904370 27558.4902343750 -0.9598723054 - -0.6515031457 27558.5957031250 -0.9602621794 - -0.6505147815 27560.4316406250 -0.9606512785 - -0.6495253444 27558.3320312500 -0.9610393643 - -0.6485347748 27559.1464843750 -0.9614226818 - -0.6475430727 27560.1679687500 -0.9618071318 - -0.6465502977 27559.3242187500 -0.9621894360 - -0.6455564499 27558.5468750000 -0.9625722766 - -0.6445614696 27557.4062500000 -0.9629502892 - -0.6435654163 27558.5292968750 -0.9633291960 - -0.6425682902 27558.9140625000 -0.9637040496 - -0.6415700316 27558.7285156250 -0.9640799165 - -0.6405707002 27560.0390625000 -0.9644538760 - -0.6395702958 27559.3613281250 -0.9648265839 - -0.6385688186 27559.2363281250 -0.9651973844 - -0.6375662088 27559.6289062500 -0.9655652642 - -0.6365625262 27558.2031250000 -0.9659334421 - -0.6355578303 27559.0664062500 -0.9663002491 - -0.6345520020 27558.6250000000 -0.9666649699 - -0.6335451007 27560.0839843750 -0.9670268893 - -0.6325371265 27559.6210937500 -0.9673886299 - -0.6315280795 27559.4785156250 -0.9677492976 - -0.6305180192 27559.3339843750 -0.9681081176 - -0.6295068264 27558.7421875000 -0.9684647322 - -0.6284945607 27558.7402343750 -0.9688209891 - -0.6274812818 27559.2460937500 -0.9691760540 - -0.6264668703 27556.8945312500 -0.9695283771 - -0.6254514456 27558.2011718750 -0.9698790312 - -0.6244349480 27559.6367187500 -0.9702289104 - -0.6234173775 27558.1542968750 -0.9705774784 - -0.6223987937 27557.3613281250 -0.9709233642 - -0.6213791370 27559.9238281250 -0.9712709785 - -0.6203584075 27559.4042968750 -0.9716141224 - -0.6193366051 27560.8007812500 -0.9719560146 - -0.6183137894 27558.3320312500 -0.9722968936 - -0.6172899008 27560.8066406250 -0.9726381302 - -0.6162649989 27558.6914062500 -0.9729735851 - -0.6152390242 27557.7109375000 -0.9733116627 - -0.6142120361 27558.8339843750 -0.9736467004 - -0.6131839752 27559.2500000000 -0.9739796519 - -0.6121549010 27560.3867187500 -0.9743120074 - -0.6111247540 27558.6191406250 -0.9746438861 - -0.6100935936 27559.1757812500 -0.9749712348 - -0.6090614200 27560.1328125000 -0.9753006101 - -0.6080281734 27557.8007812500 -0.9756262302 - -0.6069939137 27559.4960937500 -0.9759519696 - -0.6059586406 27559.3515625000 -0.9762747884 - -0.6049222946 27559.8164062500 -0.9765965343 - -0.6038849950 27557.6367187500 -0.9769155979 - -0.6028466225 27559.0371093750 -0.9772367477 - -0.6018072367 27559.1582031250 -0.9775535464 - -0.6007668376 27558.7089843750 -0.9778704643 - -0.5997253656 27559.3339843750 -0.9781838059 - -0.5986829400 27558.7421875000 -0.9784969687 - -0.5976395011 27560.5078125000 -0.9788088799 - -0.5965950489 27559.5898437500 -0.9791201353 - -0.5955495238 27557.1601562500 -0.9794276357 - -0.5945030451 27559.5292968750 -0.9797343016 - -0.5934555531 27557.6582031250 -0.9800411463 - -0.5924070477 27559.2578125000 -0.9803462029 - -0.5913575292 27559.0371093750 -0.9806495309 - -0.5903069973 27558.0292968750 -0.9809486866 - -0.5892555118 27559.7207031250 -0.9812515974 - -0.5882030129 27559.7128906250 -0.9815493822 - -0.5871495008 27559.5253906250 -0.9818471670 - -0.5860949755 27559.9140625000 -0.9821426272 - -0.5850394964 27557.5234375000 -0.9824364185 - -0.5839830041 27558.5742187500 -0.9827287197 - -0.5829254985 27558.8085937500 -0.9830228090 - -0.5818670392 27559.5253906250 -0.9833123684 - -0.5808075666 27558.5117187500 -0.9836014509 - -0.5797471404 27559.0937500000 -0.9838882089 - -0.5786857009 27559.1171875000 -0.9841746092 - -0.5776233077 27559.0273437500 -0.9844574928 - -0.5765599012 27559.6640625000 -0.9847404957 - -0.5754955411 27558.7460937500 -0.9850245714 - -0.5744302273 27558.6445312500 -0.9853029251 - -0.5733639002 27559.6523437500 -0.9855836630 - -0.5722966194 27559.9160156250 -0.9858614206 - -0.5712283850 27559.1914062500 -0.9861383438 - -0.5701591372 27559.7402343750 -0.9864127040 - -0.5690889359 27560.8671875000 -0.9866851568 - -0.5680177808 27559.1816406250 -0.9869588614 - -0.5669456720 27560.1035156250 -0.9872285128 - -0.5658726096 27559.8886718750 -0.9874964952 - -0.5647985935 27557.5312500000 -0.9877642989 - -0.5637235641 27557.5839843750 -0.9880308509 - -0.5626476407 27558.0644531250 -0.9882967472 - -0.5615707040 27558.6718750000 -0.9885615110 - -0.5604928732 27559.7089843750 -0.9888225794 - -0.5594140291 27558.2675781250 -0.9890866280 - -0.5583342910 27557.8164062500 -0.9893453121 - -0.5572535992 27558.7714843750 -0.9896018505 - -0.5561719537 27557.6679687500 -0.9898616672 - -0.5550893545 27558.5546875000 -0.9901166558 - -0.5540058017 27558.5781250000 -0.9903706312 - -0.5529213548 27558.7246093750 -0.9906238317 - -0.5518359542 27558.4726562500 -0.9908782840 - -0.5507495999 27557.5214843750 -0.9911265373 - -0.5496623516 27559.7324218750 -0.9913755655 - -0.5485741496 27557.4628906250 -0.9916238785 - -0.5474849939 27557.9628906250 -0.9918702245 - -0.5463949442 27559.5351562500 -0.9921151400 - -0.5453039408 27557.1816406250 -0.9923620820 - -0.5442119837 27558.0976562500 -0.9926044345 - -0.5431191921 27558.2207031250 -0.9928455949 - -0.5420253873 27558.4042968750 -0.9930848479 - -0.5409307480 27558.2460937500 -0.9933248758 - -0.5398350954 27558.4335937500 -0.9935629368 - -0.5387386084 27559.1972656250 -0.9937993884 - -0.5376411676 27560.6796875000 -0.9940342307 - -0.5365428329 27559.3359375000 -0.9942671061 - -0.5354436040 27559.3535156250 -0.9945005178 - -0.5343434215 27558.8671875000 -0.9947331548 - -0.5332424045 27559.4160156250 -0.9949615598 - -0.5321404338 27559.2578125000 -0.9951914549 - -0.5310375690 27558.0058593750 -0.9954149127 - -0.5299338102 27558.3691406250 -0.9956442118 - -0.5288290977 27558.1328125000 -0.9958701134 - -0.5277235508 27558.3593750000 -0.9960922003 - -0.5266171098 27558.3574218750 -0.9963154197 - -0.5255097151 27559.3906250000 -0.9965364933 - -0.5244014859 27558.8886718750 -0.9967564344 - -0.5232923627 27559.7636718750 -0.9969770312 - -0.5221823454 27559.5410156250 -0.9971963763 - -0.5210714340 27557.5878906250 -0.9974111915 - -0.5199596882 27559.8007812500 -0.9976255894 - -0.5188469887 27558.4472656250 -0.9978395700 - -0.5177334547 27558.5820312500 -0.9980517626 - -0.5166190267 27559.4160156250 -0.9982622862 - -0.5155037045 27558.5996093750 -0.9984724522 - -0.5143875480 27558.4238281250 -0.9986804128 - -0.5132704973 27559.5039062500 -0.9988884926 - -0.5121525526 27560.0468750000 -0.9990983009 - -0.5110337734 27559.7519531250 -0.9993004799 - -0.5099141598 27560.1875000000 -0.9995043278 - -0.5087936521 27558.6699218750 -0.9997082949 - -0.5076722503 27558.6718750000 -0.9999107718 - -0.5065500140 27558.0957031250 -1.0001099110 - -0.5054268837 27557.7949218750 -1.0003097057 - -0.5043029785 27559.6445312500 -1.0005074739 - -0.5031781197 27558.8750000000 -1.0007035732 - -0.5020524859 27558.0820312500 -1.0008959770 - -0.5009259582 27559.3730468750 -1.0010912418 - -0.4997985959 27559.1191406250 -1.0012825727 - -0.4986703694 27559.0351562500 -1.0014752150 - -0.4975413382 27558.3125000000 -1.0016672611 - -0.4964114130 27557.3750000000 -1.0018552542 - -0.4952806830 27558.7187500000 -1.0020413399 - -0.4941490889 27558.8691406250 -1.0022268295 - -0.4930166900 27559.2050781250 -1.0024096966 - -0.4918834269 27558.5371093750 -1.0025937557 - -0.4907493293 27559.7812500000 -1.0027770996 - -0.4896143973 27558.4492187500 -1.0029568672 - -0.4884786606 27558.8789062500 -1.0031344891 - -0.4873420894 27557.1621093750 -1.0033147335 - -0.4862046838 27558.6074218750 -1.0034886599 - -0.4850664437 27559.2167968750 -1.0036673546 - -0.4839273989 27558.9824218750 -1.0038409233 - -0.4827875197 27559.1894531250 -1.0040144920 - -0.4816468358 27558.0273437500 -1.0041805506 - -0.4805053174 27557.7480468750 -1.0043532848 - -0.4793629944 27560.0957031250 -1.0045191050 - -0.4782198668 27559.5078125000 -1.0046877861 - -0.4770759046 27559.9238281250 -1.0048524141 - -0.4759311378 27559.6523437500 -1.0050181150 - -0.4747855961 27558.6386718750 -1.0051815510 - -0.4736392200 27558.2636718750 -1.0053395033 - -0.4724920392 27560.2324218750 -1.0054975748 - -0.4713440835 27558.1894531250 -1.0056540966 - -0.4701953232 27559.4746093750 -1.0058101416 - -0.4690457284 27559.5039062500 -1.0059679747 - -0.4678953886 27557.5898437500 -1.0061186552 - -0.4667442143 27559.7949218750 -1.0062689781 - -0.4655922651 27558.7421875000 -1.0064157248 - -0.4644395411 27558.6816406250 -1.0065701008 - -0.4632860124 27558.9335937500 -1.0067147017 - -0.4621317089 27558.7226562500 -1.0068588257 - -0.4609766006 27559.8769531250 -1.0070004463 - -0.4598207176 27558.6855468750 -1.0071419477 - -0.4586640894 27558.7832031250 -1.0072827339 - -0.4575066566 27558.7636718750 -1.0074168444 - -0.4563484490 27559.4804687500 -1.0075584650 - -0.4551894665 27558.7226562500 -1.0076920986 - -0.4540297091 27559.0000000000 -1.0078210831 - -0.4528691769 27559.0195312500 -1.0079499483 - -0.4517078996 27559.5312500000 -1.0080810785 - -0.4505458176 27558.8886718750 -1.0082089901 - -0.4493830204 27557.7343750000 -1.0083302259 - -0.4482194185 27558.9746093750 -1.0084552765 - -0.4470550716 27558.7480468750 -1.0085761547 - -0.4458899796 27558.9121093750 -1.0086927414 - -0.4447241127 27558.7988281250 -1.0088111162 - -0.4435575306 27558.4941406250 -1.0089259148 - -0.4423901439 27559.3867187500 -1.0090404749 - -0.4412220418 27558.0507812500 -1.0091480017 - -0.4400531948 27559.4160156250 -1.0092610121 - -0.4388835728 27558.1992187500 -1.0093629360 - -0.4377132356 27558.7109375000 -1.0094698668 - -0.4365421236 27558.8320312500 -1.0095720291 - -0.4353702962 27558.4277343750 -1.0096697807 - -0.4341977239 27557.6660156250 -1.0097692013 - -0.4330244064 27559.6015625000 -1.0098650455 - -0.4318503737 27558.1816406250 -1.0099611282 - -0.4306755960 27558.0390625000 -1.0100467205 - -0.4295001030 27559.2949218750 -1.0101391077 - -0.4283238649 27558.8203125000 -1.0102291107 - -0.4271469116 27560.5273437500 -1.0103089809 - -0.4259692132 27559.3515625000 -1.0103944540 - -0.4247908294 27558.8457031250 -1.0104719400 - -0.4236117005 27559.0878906250 -1.0105499029 - -0.4224318564 27559.1953125000 -1.0106217861 - -0.4212512970 27557.5937500000 -1.0106948614 - -0.4200700223 27559.6835937500 -1.0107666254 - -0.4188880324 27558.5136718750 -1.0108377934 - -0.4177053273 27558.9492187500 -1.0109033585 - -0.4165219367 27558.4433593750 -1.0109604597 - -0.4153378308 27558.2695312500 -1.0110229254 - -0.4141530097 27558.1875000000 -1.0110813379 - -0.4129675031 27559.9394531250 -1.0111374855 - -0.4117812812 27557.0039062500 -1.0111919641 - -0.4105943739 27558.0566406250 -1.0112377405 - -0.4094067514 27557.3046875000 -1.0112864971 - -0.4082184434 27558.7597656250 -1.0113315582 - -0.4070294499 27557.0234375000 -1.0113738775 - -0.4058397710 27558.9980468750 -1.0114144087 - -0.4046493769 27559.8613281250 -1.0114527941 - -0.4034583271 27558.4980468750 -1.0114871264 - -0.4022665918 27557.9843750000 -1.0115197897 - -0.4010741413 27557.1113281250 -1.0115470886 - -0.3998810351 27559.2050781250 -1.0115739107 - -0.3986872733 27560.4316406250 -1.0116009712 - -0.3974927962 27559.3222656250 -1.0116223097 - -0.3962976635 27559.1738281250 -1.0116423368 - -0.3951018453 27558.0917968750 -1.0116547346 - -0.3939053714 27558.6894531250 -1.0116673708 - -0.3927082419 27557.5781250000 -1.0116761923 - -0.3915104270 27558.8281250000 -1.0116900206 - -0.3903119564 27558.5820312500 -1.0116920471 - -0.3891128302 27559.8847656250 -1.0116963387 - -0.3879130185 27558.6640625000 -1.0116922855 - -0.3867125809 27558.2382812500 -1.0116906166 - -0.3855114579 27558.0253906250 -1.0116837025 - -0.3843097091 27558.9140625000 -1.0116740465 - -0.3831072748 27557.3554687500 -1.0116639137 - -0.3819042146 27557.5664062500 -1.0116455555 - -0.3807004988 27558.8457031250 -1.0116339922 - -0.3794961572 27557.6484375000 -1.0116118193 - -0.3782911599 27558.0703125000 -1.0115910769 - -0.3770855069 27559.1093750000 -1.0115638971 - -0.3758792281 27557.6582031250 -1.0115370750 - -0.3746722937 27558.2402343750 -1.0115075111 - -0.3734647632 27558.1640625000 -1.0114709139 - -0.3722565770 27556.8281250000 -1.0114337206 - -0.3710477650 27557.6523437500 -1.0113925934 - -0.3698382974 27557.5996093750 -1.0113530159 - -0.3686282337 27558.3847656250 -1.0113147497 - -0.3674175441 27557.1640625000 -1.0112593174 - -0.3662061989 27558.9218750000 -1.0112142563 - -0.3649942577 27556.6347656250 -1.0111559629 - -0.3637817204 27557.9609375000 -1.0111006498 - -0.3625685275 27559.3164062500 -1.0110449791 - -0.3613547385 27556.8085937500 -1.0109833479 - -0.3601403236 27558.8125000000 -1.0109199286 - -0.3589253128 27558.8964843750 -1.0108535290 - -0.3577096760 27558.6308593750 -1.0107823610 - -0.3564934433 27556.7773437500 -1.0107079744 - -0.3552766144 27557.6152343750 -1.0106358528 - -0.3540591896 27558.1210937500 -1.0105594397 - -0.3528411388 27556.9589843750 -1.0104758739 - -0.3516225219 27557.8574218750 -1.0103935003 - -0.3504032791 27558.4980468750 -1.0103112459 - -0.3491834402 27558.0117187500 -1.0102255344 - -0.3479630351 27558.6601562500 -1.0101302862 - -0.3467420340 27558.4785156250 -1.0100389719 - -0.3455204368 27557.7421875000 -1.0099407434 - -0.3442982435 27558.0410156250 -1.0098371506 - -0.3430754840 27556.2460937500 -1.0097358227 - -0.3418521285 27557.8808593750 -1.0096349716 - -0.3406282067 27558.7148437500 -1.0095255375 - -0.3394036889 27557.2382812500 -1.0094147921 - -0.3381786346 27558.7148437500 -1.0093058348 - -0.3369529545 27556.3203125000 -1.0091875792 - -0.3357267380 27558.6523437500 -1.0090702772 - -0.3344999552 27556.9101562500 -1.0089492798 - -0.3332725763 27557.1894531250 -1.0088276863 - -0.3320446610 27558.7089843750 -1.0087010860 - -0.3308161795 27557.1738281250 -1.0085719824 - -0.3295871317 27557.9277343750 -1.0084478855 - -0.3283575177 27557.5742187500 -1.0083130598 - -0.3271273375 27557.4199218750 -1.0081770420 - -0.3258966208 27558.7285156250 -1.0080384016 - -0.3246653676 27559.2421875000 -1.0078971386 - -0.3234335184 27557.9882812500 -1.0077556372 - -0.3222011626 27558.7539062500 -1.0076075792 - -0.3209682405 27557.9980468750 -1.0074621439 - -0.3197347820 27558.5351562500 -1.0073140860 - -0.3185007870 27559.0644531250 -1.0071597099 - -0.3172662258 27559.0234375000 -1.0070033073 - -0.3160311580 27558.7304687500 -1.0068477392 - -0.3147955239 27558.6230468750 -1.0066878796 - -0.3135593832 27556.9003906250 -1.0065189600 - -0.3123227060 27557.7324218750 -1.0063571930 - -0.3110854924 27558.2382812500 -1.0061933994 - -0.3098477423 27558.1464843750 -1.0060212612 - -0.3086094856 27557.4941406250 -1.0058494806 - -0.3073706925 27557.9843750000 -1.0056762695 - -0.3061313927 27557.6289062500 -1.0054985285 - -0.3048915565 27557.8066406250 -1.0053210258 - -0.3036512136 27556.5507812500 -1.0051374435 - -0.3024103642 27558.9335937500 -1.0049543381 - -0.3011689782 27557.5312500000 -1.0047699213 - -0.2999270856 27557.0292968750 -1.0045797825 - -0.2986847162 27558.4375000000 -1.0043919086 - -0.2974418104 27555.7792968750 -1.0041954517 - -0.2961983979 27558.3710937500 -1.0040056705 - -0.2949545085 27557.1484375000 -1.0038058758 - -0.2937100828 27557.6660156250 -1.0036103725 - -0.2924651802 27557.0507812500 -1.0034033060 - -0.2912198007 27557.8359375000 -1.0032052994 - -0.2899738848 27557.1464843750 -1.0029984713 - -0.2887275219 27558.3105468750 -1.0027884245 - -0.2874806523 27556.3496093750 -1.0025804043 - -0.2862332761 27557.6542968750 -1.0023660660 - -0.2849854231 27557.7031250000 -1.0021560192 - -0.2837370932 27556.4531250000 -1.0019346476 - -0.2824882865 27558.0917968750 -1.0017186403 - -0.2812390029 27557.1621093750 -1.0014967918 - -0.2799892426 27556.7792968750 -1.0012711287 - -0.2787390053 27558.5136718750 -1.0010496378 - -0.2774882913 27558.1289062500 -1.0008239746 - -0.2762371004 27556.9746093750 -1.0005962849 - -0.2749854326 27558.8378906250 -1.0003623962 - -0.2737333179 27557.9628906250 -1.0001286268 - -0.2724807560 27556.9609375000 -0.9998962283 - -0.2712276876 27557.9746093750 -0.9996578097 - -0.2699742019 27558.0429687500 -0.9994192719 - -0.2687202394 27557.1660156250 -0.9991779327 - -0.2674658000 27557.2656250000 -0.9989380836 - -0.2662109435 27556.8886718750 -0.9986891747 - -0.2649556100 27559.9648437500 -0.9984464645 - -0.2636998594 27556.4824218750 -0.9981968403 - -0.2624436319 27557.7734375000 -0.9979401231 - -0.2611869574 27558.2656250000 -0.9976931214 - -0.2599298656 27558.7207031250 -0.9974378943 - -0.2586722970 27555.8964843750 -0.9971780181 - -0.2574143112 27556.8964843750 -0.9969207048 - -0.2561559081 27558.0625000000 -0.9966619611 - -0.2548970580 27557.0605468750 -0.9964009523 - -0.2536377609 27557.3535156250 -0.9961390495 - -0.2523780465 27556.2734375000 -0.9958695769 - -0.2511178851 27556.3515625000 -0.9956024885 - -0.2498573214 27556.6054687500 -0.9953319430 - -0.2485963255 27557.3886718750 -0.9950624108 - -0.2473348975 27557.6933593750 -0.9947874546 - -0.2460730672 27557.1191406250 -0.9945117235 - -0.2448108047 27558.8691406250 -0.9942351580 - -0.2435481399 27556.5410156250 -0.9939593673 - -0.2422850579 27558.7285156250 -0.9936798215 - -0.2410215735 27557.3242187500 -0.9933977127 - -0.2397576720 27556.9414062500 -0.9931108952 - -0.2384933531 27556.7031250000 -0.9928250313 - -0.2372286469 27557.3847656250 -0.9925377369 - -0.2359635383 27557.9414062500 -0.9922508597 - -0.2346980125 27558.0566406250 -0.9919601083 - -0.2334320992 27557.3671875000 -0.9916634560 - -0.2321657985 27556.7929687500 -0.9913727641 - -0.2308990955 27556.8261718750 -0.9910760522 - -0.2296320051 27555.9394531250 -0.9907779694 - -0.2283645123 27557.7636718750 -0.9904782772 - -0.2270966470 27558.3300781250 -0.9901757240 - -0.2258283943 27558.5214843750 -0.9898748994 - -0.2245597541 27556.5957031250 -0.9895708561 - -0.2232907414 27558.7109375000 -0.9892646074 - -0.2220213413 27557.2656250000 -0.9889564514 - -0.2207515687 27555.2460937500 -0.9886450768 - -0.2194814235 27557.0957031250 -0.9883357882 - -0.2182108909 27557.4941406250 -0.9880205393 - -0.2169400007 27556.8945312500 -0.9877045155 - -0.2156687528 27556.8339843750 -0.9873942733 - -0.2143971324 27558.2109375000 -0.9870759249 - -0.2131251395 27556.9921875000 -0.9867538810 - -0.2118527889 27556.5742187500 -0.9864316583 - -0.2105800807 27557.7187500000 -0.9861133099 - -0.2093070149 27558.4511718750 -0.9857870936 - -0.2080336064 27557.9980468750 -0.9854617119 - -0.2067598253 27557.7773437500 -0.9851331711 - -0.2054857016 27556.8964843750 -0.9848030806 - -0.2042112350 27556.6250000000 -0.9844773412 - -0.2029364258 27556.2285156250 -0.9841420054 - -0.2016612589 27558.1367187500 -0.9838092327 - -0.2003857493 27557.3632812500 -0.9834737778 - -0.1991099119 27557.5898437500 -0.9831375480 - -0.1978337318 27557.1093750000 -0.9827975631 - -0.1965572089 27557.5839843750 -0.9824576974 - -0.1952803731 27557.2597656250 -0.9821164012 - -0.1940031797 27558.2070312500 -0.9817746282 - -0.1927256733 27557.9589843750 -0.9814300537 - -0.1914478391 27556.6074218750 -0.9810816646 - -0.1901696771 27555.4687500000 -0.9807344079 - -0.1888912022 27557.5742187500 -0.9803869724 - -0.1876123995 27556.3769531250 -0.9800363183 - -0.1863332689 27558.8417968750 -0.9796851873 - -0.1850538403 27557.6250000000 -0.9793288708 - -0.1837740839 27557.3671875000 -0.9789757729 - -0.1824940294 27557.8789062500 -0.9786199331 - -0.1812136471 27557.4492187500 -0.9782604575 - -0.1799329668 27556.3105468750 -0.9779020548 - -0.1786519885 27556.2734375000 -0.9775387645 - -0.1773706973 27558.3046875000 -0.9771777391 - -0.1760891080 27558.3496093750 -0.9768147469 - -0.1748072356 27558.0234375000 -0.9764469266 - -0.1735250503 27556.2031250000 -0.9760808945 - -0.1722425669 27557.8125000000 -0.9757141471 - -0.1709598005 27556.2949218750 -0.9753447771 - -0.1696767360 27558.0976562500 -0.9749724269 - -0.1683933884 27556.5175781250 -0.9745984674 - -0.1671097577 27556.2636718750 -0.9742248654 - -0.1658258438 27555.9433593750 -0.9738498926 - -0.1645416468 27558.0859375000 -0.9734726548 - -0.1632571816 27555.1953125000 -0.9730938077 - -0.1619724184 27555.8437500000 -0.9727103710 - -0.1606874019 27556.9277343750 -0.9723310471 - -0.1594021022 27555.9785156250 -0.9719479680 - -0.1581165344 27556.5117187500 -0.9715629220 - -0.1568306983 27557.7460937500 -0.9711793661 - -0.1555445939 27556.1250000000 -0.9707908630 - -0.1542582214 27557.1289062500 -0.9704021215 - -0.1529715955 27556.2187500000 -0.9700125456 - -0.1516847014 27557.5117187500 -0.9696193933 - -0.1503975540 27558.8769531250 -0.9692301154 - -0.1491101682 27557.1386718750 -0.9688324928 - -0.1478225142 27557.8417968750 -0.9684368372 - -0.1465346068 27557.6171875000 -0.9680411816 - -0.1452464461 27557.1484375000 -0.9676417112 - -0.1439580470 27557.1464843750 -0.9672406912 - -0.1426694095 27556.5722656250 -0.9668405652 - -0.1413805336 27557.2343750000 -0.9664394259 - -0.1400914043 27556.6210937500 -0.9660316706 - -0.1388020366 27556.0800781250 -0.9656242728 - -0.1375124454 27556.5292968750 -0.9652187228 - -0.1362226158 27557.5214843750 -0.9648122191 - -0.1349325627 27556.3496093750 -0.9644033313 - -0.1336422712 27557.0273437500 -0.9639904499 - -0.1323517561 27557.0156250000 -0.9635762572 - -0.1310610026 27556.3691406250 -0.9631636143 - -0.1297700405 27556.7148437500 -0.9627491236 - -0.1284788698 27556.9589843750 -0.9623333812 - -0.1271874607 27558.3886718750 -0.9619151354 - -0.1258958429 27556.4921875000 -0.9614940286 - -0.1246040165 27554.8144531250 -0.9610723257 - -0.1233119741 27556.2753906250 -0.9606510401 - -0.1220197305 27557.0917968750 -0.9602285624 - -0.1207272708 27557.9667968750 -0.9598035812 - -0.1194346100 27556.9003906250 -0.9593759179 - -0.1181417480 27557.0742187500 -0.9589468837 - -0.1168486774 27555.9609375000 -0.9585192800 - -0.1155554205 27556.6582031250 -0.9580894709 - -0.1142619625 27558.7128906250 -0.9576600194 - -0.1129683107 27557.0566406250 -0.9572216272 - -0.1116744652 27556.3925781250 -0.9567889571 - -0.1103804335 27557.2675781250 -0.9563534260 - -0.1090862080 27558.4414062500 -0.9559169412 - -0.1077918038 27558.2656250000 -0.9554769993 - -0.1064972207 27556.5546875000 -0.9550369382 - -0.1052024513 27554.9160156250 -0.9545949101 - -0.1039075032 27556.4511718750 -0.9541539550 - -0.1026123837 27556.7851562500 -0.9537066221 - -0.1013170853 27556.5117187500 -0.9532637000 - -0.1000216156 27558.3359375000 -0.9528157711 - -0.0987259746 27556.4101562500 -0.9523659945 - -0.0974301696 27557.0156250000 -0.9519181252 - -0.0961342007 27557.0957031250 -0.9514676332 - -0.0948380679 27557.7675781250 -0.9510167241 - -0.0935417712 27557.0839843750 -0.9505583644 - -0.0922453180 27556.8046875000 -0.9501054883 - -0.0909487084 27556.8710937500 -0.9496486783 - -0.0896519497 27556.8535156250 -0.9491914511 - -0.0883550271 27557.6914062500 -0.9487323165 - -0.0870579630 27557.8242187500 -0.9482730627 - -0.0857607499 27555.8710937500 -0.9478080869 - -0.0844633952 27556.6914062500 -0.9473464489 - -0.0831658915 27557.3125000000 -0.9468823671 - -0.0818682462 27557.7597656250 -0.9464166760 - -0.0805704668 27556.3808593750 -0.9459497929 - -0.0792725533 27557.2285156250 -0.9454826117 - -0.0779744983 27556.5820312500 -0.9450086951 - -0.0766763091 27557.4160156250 -0.9445382953 - -0.0753780007 27558.4492187500 -0.9440672398 - -0.0740795583 27556.8945312500 -0.9435915351 - -0.0727809891 27556.5859375000 -0.9431187510 - -0.0714822933 27557.7402343750 -0.9426428676 - -0.0701834857 27556.6679687500 -0.9421608448 - -0.0688845515 27558.5449218750 -0.9416824579 - -0.0675855055 27557.7382812500 -0.9412040114 - -0.0662863404 27556.4082031250 -0.9407202005 - -0.0649870634 27558.1035156250 -0.9402382374 - -0.0636876822 27556.9277343750 -0.9397498369 - -0.0623881854 27557.2539062500 -0.9392656088 - -0.0610885844 27556.9765625000 -0.9387797713 - -0.0597888827 27558.4902343750 -0.9382891655 - -0.0584890805 27558.2734375000 -0.9377992749 - -0.0571891740 27556.9765625000 -0.9373067021 - -0.0558891743 27556.6503906250 -0.9368139505 - -0.0545890816 27556.2519531250 -0.9363208413 - -0.0532888919 27557.0351562500 -0.9358236194 - -0.0519886129 27559.2363281250 -0.9353283644 - -0.0506882481 27558.2324218750 -0.9348293543 - -0.0493877977 27556.8476562500 -0.9343308210 - -0.0480872616 27556.5175781250 -0.9338288307 - -0.0467866436 27557.8320312500 -0.9333270788 - -0.0454859473 27557.0058593750 -0.9328241348 - -0.0441851728 27556.3281250000 -0.9323166013 - -0.0428843237 27557.0156250000 -0.9318116903 - -0.0415834002 27556.6464843750 -0.9313029051 - -0.0402824096 27558.3769531250 -0.9307962656 - -0.0389813483 27556.9824218750 -0.9302851558 - -0.0376802236 27557.1835937500 -0.9297723770 - -0.0363790318 27558.1113281250 -0.9292600155 - -0.0350777805 27556.6191406250 -0.9287446737 - -0.0337764695 27558.1542968750 -0.9282311797 - -0.0324751027 27556.8808593750 -0.9277130365 - -0.0311736781 27555.9335937500 -0.9271953702 - -0.0298722014 27557.5527343750 -0.9266718626 - -0.0285706744 27558.0957031250 -0.9261518121 - -0.0272690989 27557.3378906250 -0.9256299734 - -0.0259674769 27557.2890625000 -0.9251064062 - -0.0246658102 27556.1953125000 -0.9245821238 - -0.0233641025 27557.4042968750 -0.9240555763 - -0.0220623557 27557.3750000000 -0.9235256314 - -0.0207605697 27557.4960937500 -0.9229961634 - -0.0194587503 27557.4511718750 -0.9224678278 - -0.0181568973 27558.8671875000 -0.9219347239 - -0.0168550145 27556.1835937500 -0.9214022160 - -0.0155531019 27557.2167968750 -0.9208675027 - -0.0142511632 27557.8164062500 -0.9203293920 - -0.0129492003 27556.5312500000 -0.9197914600 - -0.0116472151 27556.6640625000 -0.9192531705 - -0.0103452113 27556.9785156250 -0.9187136889 - -0.0090431888 27558.4472656250 -0.9181734920 - -0.0077411514 27556.0957031250 -0.9176301956 - -0.0064391010 27558.7128906250 -0.9170874357 - -0.0051370393 27556.5234375000 -0.9165377617 - -0.0038349694 27558.3476562500 -0.9159922600 - -0.0025328926 27556.0058593750 -0.9154436588 - -0.0012308117 27559.0214843750 -0.9148945212 - 0.0000712713 27557.5527343750 -0.9143443108 - 0.0013733542 27557.5175781250 -0.9137920141 - 0.0026754348 27557.0039062500 -0.9132394195 - 0.0039775106 27558.7753906250 -0.9126842618 - 0.0052795801 27558.6093750000 -0.9121254086 - 0.0065816403 27557.5117187500 -0.9115676880 - 0.0078836894 27557.1250000000 -0.9110105634 - 0.0091857258 27559.1113281250 -0.9104499221 - 0.0104877455 27558.4296875000 -0.9098890424 - 0.0117897484 27557.1621093750 -0.9093255997 - 0.0130917309 27557.0371093750 -0.9087624550 - 0.0143936910 27556.7109375000 -0.9081965089 - 0.0156956259 27557.4492187500 -0.9076251984 - 0.0169975366 27557.8300781250 -0.9070585966 - 0.0182994157 27557.9960937500 -0.9064882994 - 0.0196012650 27558.3945312500 -0.9059184790 - 0.0209030826 27557.7011718750 -0.9053455591 - 0.0222048629 27557.3203125000 -0.9047729373 - 0.0235066060 27557.0722656250 -0.9041970968 - 0.0248083100 27559.2421875000 -0.9036175013 - 0.0261099711 27558.3535156250 -0.9030398130 - 0.0274115875 27557.9628906250 -0.9024609923 - 0.0287131574 27557.0859375000 -0.9018808603 - 0.0300146788 27558.2968750000 -0.9012989998 - 0.0313161500 27556.6445312500 -0.9007159472 - 0.0326175690 27557.8085937500 -0.9001324773 - 0.0339189321 27558.3554687500 -0.8995416164 - 0.0352202356 27559.0703125000 -0.8989549279 - 0.0365214795 27556.4355468750 -0.8983654380 - 0.0378226638 27559.0605468750 -0.8977764845 - 0.0391237848 27559.1855468750 -0.8971861005 - 0.0404248349 27558.1601562500 -0.8965923786 - 0.0417258218 27559.0117187500 -0.8959995508 - 0.0430267341 27558.3730468750 -0.8954034448 - 0.0443275757 27557.7949218750 -0.8948072195 - 0.0456283391 27558.1660156250 -0.8942050934 - 0.0469290279 27558.5078125000 -0.8936055899 - 0.0482296385 27559.6464843750 -0.8930051923 - 0.0495301634 27558.3105468750 -0.8924028873 - 0.0508306064 27558.7968750000 -0.8917992711 - 0.0521309637 27558.4472656250 -0.8911954165 - 0.0534312315 27556.7734375000 -0.8905888200 - 0.0547314100 27558.2851562500 -0.8899817467 - 0.0560314953 27558.7656250000 -0.8893733621 - 0.0573314838 27556.6796875000 -0.8887623549 - 0.0586313754 27558.7968750000 -0.8881468773 - 0.0599311702 27557.9550781250 -0.8875330091 - 0.0612308607 27557.9023437500 -0.8869192600 - 0.0625304505 27558.6445312500 -0.8863041401 - 0.0638299286 27558.4414062500 -0.8856865764 - 0.0651293024 27558.5800781250 -0.8850691319 - 0.0664285719 27557.2597656250 -0.8844491839 - 0.0677277222 27559.2656250000 -0.8838229775 - 0.0690267533 27558.9492187500 -0.8832015395 - 0.0703256726 27558.1250000000 -0.8825771213 - 0.0716244727 27558.3554687500 -0.8819512129 - 0.0729231536 27559.8867187500 -0.8813261390 - 0.0742217079 27557.6289062500 -0.8806973696 - 0.0755201355 27560.1425781250 -0.8800684810 - 0.0768184364 27559.4707031250 -0.8794381022 - 0.0781166032 27557.9472656250 -0.8788004518 - 0.0794146433 27558.7480468750 -0.8781672120 - 0.0807125494 27558.6093750000 -0.8775332570 - 0.0820103139 27558.5019531250 -0.8768969178 - 0.0833079368 27559.1015625000 -0.8762591481 - 0.0846054256 27558.2226562500 -0.8756209612 - 0.0859027654 27558.4941406250 -0.8749806881 - 0.0871999636 27559.4433593750 -0.8743387461 - 0.0884970129 27558.5488281250 -0.8736966848 - 0.0897939131 27559.0703125000 -0.8730521202 - 0.0910906643 27558.0390625000 -0.8724064231 - 0.0923872516 27559.4277343750 -0.8717600703 - 0.0936836898 27559.1308593750 -0.8711117506 - 0.0949799642 27558.6796875000 -0.8704617023 - 0.0962760821 27557.9140625000 -0.8698061109 - 0.0975720361 27559.4003906250 -0.8691534400 - 0.0988678187 27558.0566406250 -0.8684995174 - 0.1001634449 27559.1718750000 -0.8678449988 - 0.1014588922 27558.3417968750 -0.8671883345 - 0.1027541682 27560.3984375000 -0.8665308356 - 0.1040492728 27558.7500000000 -0.8658713698 - 0.1053441986 27559.4824218750 -0.8652113080 - 0.1066389456 27558.2832031250 -0.8645430207 - 0.1079335138 27560.2929687500 -0.8638797402 - 0.1092279032 27559.8339843750 -0.8632161021 - 0.1105220988 27559.1972656250 -0.8625491858 - 0.1118161157 27559.8964843750 -0.8618826866 - 0.1131099388 27560.3027343750 -0.8612145185 - 0.1144035682 27559.7304687500 -0.8605378270 - 0.1156970039 27558.6875000000 -0.8598661423 - 0.1169902459 27560.2226562500 -0.8591936827 - 0.1182832867 27558.7304687500 -0.8585191965 - 0.1195761263 27559.0156250000 -0.8578439951 - 0.1208687723 27560.3808593750 -0.8571668267 - 0.1221612021 27560.6875000000 -0.8564900160 - 0.1234534308 27558.6582031250 -0.8558093905 - 0.1247454509 27560.0039062500 -0.8551288247 - 0.1260372549 27560.0000000000 -0.8544462919 - 0.1273288429 27560.4882812500 -0.8537634015 - 0.1286202222 27560.4355468750 -0.8530781865 - 0.1299113780 27559.7851562500 -0.8523917198 - 0.1312023252 27560.3203125000 -0.8517044783 - 0.1324930340 27559.4218750000 -0.8510157466 - 0.1337835342 27558.8593750000 -0.8503249288 - 0.1350737959 27558.5214843750 -0.8496329188 - 0.1363638341 27561.3105468750 -0.8489408493 - 0.1376536340 27559.7578125000 -0.8482462764 - 0.1389432102 27561.2734375000 -0.8475503922 - 0.1402325332 27560.1230468750 -0.8468535542 - 0.1415216327 27559.7363281250 -0.8461558223 - 0.1428104937 27559.6035156250 -0.8454484940 - 0.1440991163 27562.2343750000 -0.8447473645 - 0.1453874856 27559.4941406250 -0.8440448046 - 0.1466756016 27560.8398437500 -0.8433413506 - 0.1479634792 27561.3554687500 -0.8426286578 - 0.1492511034 27560.1464843750 -0.8419215083 - 0.1505384743 27562.1347656250 -0.8412141800 - 0.1518255919 27560.6210937500 -0.8404973149 - 0.1531124562 27561.1308593750 -0.8397869468 - 0.1543990523 27560.9375000000 -0.8390747905 - 0.1556853950 27561.4101562500 -0.8383542299 - 0.1569714695 27560.4140625000 -0.8376389742 - 0.1582572758 27561.0351562500 -0.8369228244 - 0.1595428139 27561.5781250000 -0.8362064362 - 0.1608280838 27561.0566406250 -0.8354869485 - 0.1621130854 27560.0664062500 -0.8347666860 - 0.1633978039 27560.5781250000 -0.8340452909 - 0.1646822542 27559.8925781250 -0.8333228827 - 0.1659664214 27561.3007812500 -0.8326064944 - 0.1672503054 27560.0625000000 -0.8318806887 - 0.1685339063 27562.0781250000 -0.8311620951 - 0.1698172092 27561.4160156250 -0.8304344416 - 0.1711002439 27560.2675781250 -0.8297122717 - 0.1723829806 27560.5761718750 -0.8289900422 - 0.1736654192 27561.4667968750 -0.8282659650 - 0.1749475747 27561.5976562500 -0.8275488615 - 0.1762294322 27563.6308593750 -0.8268230557 - 0.1775109768 27564.3320312500 -0.8261032104 - 0.1787922382 27563.3535156250 -0.8253744245 - 0.1800731868 27565.3164062500 -0.8246530294 - 0.1813538373 27563.2539062500 -0.8239213824 - 0.1826341748 27565.6855468750 -0.8231973648 - 0.1839141995 27564.1250000000 -0.8224719763 - 0.1851939112 27565.1660156250 -0.8217371106 - 0.1864733249 27566.3750000000 -0.8210096359 - 0.1877524108 27566.3515625000 -0.8202721477 - 0.1890311688 27565.8613281250 -0.8195423484 - 0.1903096139 27566.7597656250 -0.8188024759 - 0.1915877461 27566.2207031250 -0.8180614710 - 0.1928655505 27568.0683593750 -0.8173189759 - 0.1941430122 27566.6855468750 -0.8165752292 - 0.1954201609 27567.9121093750 -0.8158226013 - 0.1966969818 27568.3574218750 -0.8150759339 - 0.1979734600 27567.3144531250 -0.8143197298 - 0.1992495954 -9199.3984375000 -0.8130683899 - 0.2005254030 -9198.7177734375 -0.8123010993 - 0.2018008679 -9199.4833984375 -0.8115323186 - 0.2030759901 -9198.2890625000 -0.8107610345 - 0.2043507695 -9198.0302734375 -0.8099900484 - 0.2056252062 -9195.4667968750 -0.8092172146 - 0.2068992853 -9195.7285156250 -0.8084434867 - 0.2081730217 -9194.8056640625 -0.8076680303 - 0.2094464004 -9192.2402343750 -0.8068927526 - 0.2107194215 -9191.7490234375 -0.8061143756 - 0.2119920999 -9189.7236328125 -0.8053364754 - 0.2132644057 -9188.7343750000 -0.8045559525 - 0.2145363539 -9187.7968750000 -0.8037748933 - 0.2158079296 -9184.9599609375 -0.8029921651 - 0.2170791477 -9185.5087890625 -0.8022085428 - 0.2183500081 -9182.9208984375 -0.8014230728 - 0.2196204811 -9182.5986328125 -0.8006364703 - 0.2208905965 -9181.1191406250 -0.7998491526 - 0.2221603245 -9178.0830078125 -0.7990596294 - 0.2234296799 -9177.1816406250 -0.7982696295 - 0.2246986479 -9176.5419921875 -0.7974775434 - 0.2259672433 -9175.2753906250 -0.7966852188 - 0.2272354662 -9175.9394531250 -0.7958905101 - 0.2285032868 -9175.2871093750 -0.7950954437 - 0.2297707349 -9172.8437500000 -0.7942982316 - 0.2310377806 -9173.8623046875 -0.7935007215 - 0.2323044389 -9172.3095703125 -0.7927013636 - 0.2335707098 -9172.5917968750 -0.7919009328 - 0.2348365784 -9172.5078125000 -0.7910980582 - 0.2361020446 -9173.3242187500 -0.7902956605 - 0.2373671234 -9173.5146484375 -0.7894902825 - 0.2386317849 -9171.7177734375 -0.7886859179 - 0.2398960441 -9171.8837890625 -0.7878780961 - 0.2411599010 -9174.0732421875 -0.7870699167 - 0.2424233556 -9173.5205078125 -0.7862604260 - 0.2436863929 -9173.4931640625 -0.7854497433 - 0.2449490130 -9172.7070312500 -0.7846372128 - 0.2462112159 -9173.7373046875 -0.7838247418 - 0.2474730164 -9173.0156250000 -0.7830092907 - 0.2487343848 -9173.1943359375 -0.7821947336 - 0.2499953359 -9174.3857421875 -0.7813763022 - 0.2512558699 -9173.2109375000 -0.7805581689 - 0.2525159717 -9175.0048828125 -0.7797391415 - 0.2537756264 -9173.2714843750 -0.7789172530 - 0.2550348639 -9174.0576171875 -0.7780960798 - 0.2562936842 -9173.7568359375 -0.7772722840 - 0.2575520575 -9174.4804687500 -0.7764484882 - 0.2588099837 -9173.2265625000 -0.7756212950 - 0.2600674927 -9174.5048828125 -0.7747949362 - 0.2613245547 -9172.4404296875 -0.7739669085 - 0.2625811696 -9172.7832031250 -0.7731380463 - 0.2638373375 -9173.0507812500 -0.7723064423 - 0.2650930583 -9173.0625000000 -0.7714747787 - 0.2663483322 -9172.8251953125 -0.7706407905 - 0.2676031590 -9172.6699218750 -0.7698072791 - 0.2688575387 -9172.9453125000 -0.7689705491 - 0.2701114416 -9171.8183593750 -0.7681346536 - 0.2713648975 -9172.8886718750 -0.7672951818 - 0.2726178765 -9172.0849609375 -0.7664569020 - 0.2738704085 -9173.2822265625 -0.7656151056 - 0.2751224935 -9172.1259765625 -0.7647734880 - 0.2763741016 -9171.3212890625 -0.7639299035 - 0.2776252329 -9171.6201171875 -0.7630856633 - 0.2788758874 -9173.1865234375 -0.7622395158 - 0.2801260650 -9170.8642578125 -0.7613934278 - 0.2813757956 -9172.0439453125 -0.7605439425 - 0.2826250196 -9173.6171875000 -0.7596946955 - 0.2838737965 -9172.8183593750 -0.7588440180 - 0.2851220667 -9171.2080078125 -0.7579921484 - 0.2863698602 -9172.2617187500 -0.7571383119 - 0.2876171470 -9172.3115234375 -0.7562844753 - 0.2888639867 -9171.2880859375 -0.7554284334 - 0.2901103199 -9172.0820312500 -0.7545720935 - 0.2913561463 -9171.4667968750 -0.7537133098 - 0.2926014960 -9172.1210937500 -0.7528546453 - 0.2938463390 -9171.6855468750 -0.7519927621 - 0.2950907052 -9172.5302734375 -0.7511314750 - 0.2963345349 -9171.1875000000 -0.7502673864 - 0.2975778878 -9171.5917968750 -0.7494040728 - 0.2988207340 -9171.6347656250 -0.7485367656 - 0.3000630736 -9171.0712890625 -0.7476712465 - 0.3013049066 -9171.6210937500 -0.7468021512 - 0.3025462031 -9171.6601562500 -0.7459343076 - 0.3037870228 -9170.3281250000 -0.7450619340 - 0.3050273061 -9171.4707031250 -0.7441911697 - 0.3062670827 -9170.6748046875 -0.7433178425 - 0.3075063229 -9170.8505859375 -0.7424445152 - 0.3087450564 -9170.8007812500 -0.7415674925 - 0.3099832833 -9170.6357421875 -0.7406916618 - 0.3112209439 -9170.6894531250 -0.7398149371 - 0.3124580979 -9172.0048828125 -0.7389341593 - 0.3136947453 -9170.2568359375 -0.7380547523 - 0.3149308264 -9170.0458984375 -0.7371723652 - 0.3161663711 -9170.1689453125 -0.7362903953 - 0.3174014091 -9172.2763671875 -0.7354047894 - 0.3186358809 -9171.3681640625 -0.7345203161 - 0.3198698461 -9170.5625000000 -0.7336333394 - 0.3211032450 -9171.5351562500 -0.7327465415 - 0.3223361075 -9170.0898437500 -0.7318557501 - 0.3235684037 -9170.1621093750 -0.7309669852 - 0.3248001635 -9170.6748046875 -0.7300745249 - 0.3260313869 -9170.9609375000 -0.7291830182 - 0.3272620440 -9169.6591796875 -0.7282882333 - 0.3284921348 -9171.7451171875 -0.7273927927 - 0.3297216892 -9171.3388671875 -0.7264953256 - 0.3309506774 -9171.9550781250 -0.7255992293 - 0.3321790993 -9169.7148437500 -0.7246990800 - 0.3334069848 -9169.7031250000 -0.7238002419 - 0.3346342742 -9171.0605468750 -0.7228979468 - 0.3358609974 -9169.2822265625 -0.7219971418 - 0.3370871842 -9170.9189453125 -0.7210920453 - 0.3383127749 -9170.9179687500 -0.7201882601 - 0.3395377696 -9169.6699218750 -0.7192813158 - 0.3407622278 -9170.6884765625 -0.7183742523 - 0.3419860899 -9169.6933593750 -0.7174645662 - 0.3432093561 -9171.2373046875 -0.7165554166 - 0.3444320560 -9170.0703125000 -0.7156454325 - 0.3456541896 -9169.4492187500 -0.7147327662 - 0.3468757272 -9170.0693359375 -0.7138198018 - 0.3480966687 -9170.8261718750 -0.7129046917 - 0.3493170142 -9170.5810546875 -0.7119892240 - 0.3505367935 -9171.3710937500 -0.7110713720 - 0.3517559469 -9170.1826171875 -0.7101548314 - 0.3529745042 -9170.8056640625 -0.7092336416 - 0.3541924953 -9170.2949218750 -0.7083144188 - 0.3554098606 -9167.8144531250 -0.7073915005 - 0.3566266298 -9169.8193359375 -0.7064685822 - 0.3578428030 -9169.2392578125 -0.7055433393 - 0.3590583503 -9170.8027343750 -0.7046196461 - 0.3602733016 -9169.7138671875 -0.7036917806 - 0.3614876270 -9169.9238281250 -0.7027642727 - 0.3627013564 -9169.9951171875 -0.7018343806 - 0.3639144897 -9170.9062500000 -0.7009044886 - 0.3651269674 -9169.3115234375 -0.6999747157 - 0.3663388491 -9170.5156250000 -0.6990404129 - 0.3675501049 -9169.6103515625 -0.6981083751 - 0.3687607348 -9170.4306640625 -0.6971716881 - 0.3699707389 -9168.8671875000 -0.6962372065 - 0.3711801171 -9170.2343750000 -0.6952980757 - 0.3723888695 -9169.0029296875 -0.6943602562 - 0.3735969663 -9169.9453125000 -0.6934189200 - 0.3748044670 -9168.6152343750 -0.6924793124 - 0.3760113120 -9168.7929687500 -0.6915363073 - 0.3772175312 -9169.5966796875 -0.6905940175 - 0.3784230947 -9169.6503906250 -0.6896475554 - 0.3796280324 -9170.1494140625 -0.6887035370 - 0.3808323145 -9170.3994140625 -0.6877546310 - 0.3820359409 -9169.8173828125 -0.6868078113 - 0.3832389414 -9169.4296875000 -0.6858575344 - 0.3844412863 -9168.9492187500 -0.6849071980 - 0.3856429756 -9169.7021484375 -0.6839573979 - 0.3868440092 -9169.2558593750 -0.6830037236 - 0.3880443871 -9168.7656250000 -0.6820504665 - 0.3892441094 -9169.2080078125 -0.6810938716 - 0.3904431760 -9170.1708984375 -0.6801379323 - 0.3916415870 -9167.6953125000 -0.6791792512 - 0.3928393126 -9169.7871093750 -0.6782211661 - 0.3940363824 -9168.2685546875 -0.6772598028 - 0.3952327967 -9170.4160156250 -0.6763001084 - 0.3964285254 -9168.4257812500 -0.6753369570 - 0.3976235986 -9169.7910156250 -0.6743739247 - 0.3988179862 -9169.1250000000 -0.6734081507 - 0.4000116885 -9169.2373046875 -0.6724437475 - 0.4012047350 -9167.4277343750 -0.6714749336 - 0.4023970664 -9169.3642578125 -0.6705080271 - 0.4035887420 -9169.6025390625 -0.6695403457 - 0.4047797322 -9168.4130859375 -0.6685683131 - 0.4059700370 -9170.2744140625 -0.6675975919 - 0.4071596563 -9169.9414062500 -0.6666231751 - 0.4083485603 -9167.7402343750 -0.6656505466 - 0.4095368087 -9168.6552734375 -0.6646732688 - 0.4107243419 -9169.1523437500 -0.6636980176 - 0.4119111598 -9168.8671875000 -0.6627194881 - 0.4130973220 -9168.6328125000 -0.6617425680 - 0.4142827392 -9168.2333984375 -0.6607605219 - 0.4154675007 -9168.8447265625 -0.6597805023 - 0.4166515172 -9168.3984375000 -0.6587969065 - 0.4178348482 -9167.8720703125 -0.6578156352 - 0.4190174639 -9168.7041015625 -0.6568294168 - 0.4201993644 -9170.8867187500 -0.6558449268 - 0.4213805795 -9167.9394531250 -0.6548585296 - 0.4225610495 -9169.3173828125 -0.6538694501 - 0.4237408042 -9168.2587890625 -0.6528812051 - 0.4249198735 -9168.6132812500 -0.6518899798 - 0.4260981977 -9169.5537109375 -0.6509002447 - 0.4272757769 -9167.4189453125 -0.6499052048 - 0.4284526706 -9168.4091796875 -0.6489135027 - 0.4296288192 -9166.8671875000 -0.6479167938 - 0.4308042526 -9168.0507812500 -0.6469217539 - 0.4319789410 -9169.2685546875 -0.6459229589 - 0.4331529140 -9167.9814453125 -0.6449254155 - 0.4343261123 -9169.0488281250 -0.6439247131 - 0.4354986250 -9168.1230468750 -0.6429249644 - 0.4366703629 -9169.7158203125 -0.6419242620 - 0.4378413856 -9167.9121093750 -0.6409203410 - 0.4390116632 -9168.1835937500 -0.6399175525 - 0.4401811659 -9168.7958984375 -0.6389098167 - 0.4413499534 -9167.8535156250 -0.6379057765 - 0.4425179958 -9170.1005859375 -0.6368957758 - 0.4436852634 -9169.1318359375 -0.6358886957 - 0.4448517859 -9168.5283203125 -0.6348768473 - 0.4460175633 -9168.0898437500 -0.6338682175 - 0.4471825957 -9167.5937500000 -0.6328530908 - 0.4483468533 -9169.3203125000 -0.6318421960 - 0.4495103359 -9168.3017578125 -0.6308259368 - 0.4506730735 -9169.4238281250 -0.6298119426 - 0.4518350661 -9168.6005859375 -0.6287968755 - 0.4529962540 -9167.7636718750 -0.6277767420 - 0.4541566968 -9170.2236328125 -0.6267592907 - 0.4553163648 -9168.0332031250 -0.6257382631 - 0.4564752579 -9167.8330078125 -0.6247181892 - 0.4576333761 -9168.6552734375 -0.6236939430 - 0.4587907493 -9167.9599609375 -0.6226720214 - 0.4599473178 -9166.7392578125 -0.6216455102 - 0.4611030817 -9168.8369140625 -0.6206218600 - 0.4622581005 -9168.5380859375 -0.6195935607 - 0.4634123147 -9168.4609375000 -0.6185660958 - 0.4645657539 -9168.9443359375 -0.6175360084 - 0.4657184184 -9167.7246093750 -0.6165060997 - 0.4668702781 -9167.2431640625 -0.6154735684 - 0.4680213630 -9168.8496093750 -0.6144424677 - 0.4691716135 -9169.4990234375 -0.6134094000 - 0.4703211188 -9167.0683593750 -0.6123740077 - 0.4714697897 -9167.3076171875 -0.6113391519 - 0.4726176858 -9167.6562500000 -0.6102997661 - 0.4737647474 -9167.3789062500 -0.6092634797 - 0.4749110341 -9168.9179687500 -0.6082226038 - 0.4760565162 -9167.9843750000 -0.6071835756 - 0.4772011638 -9168.5410156250 -0.6061408520 - 0.4783450365 -9167.5693359375 -0.6050984263 - 0.4794880748 -9168.4199218750 -0.6040536165 - 0.4806303084 -9167.6962890625 -0.6030102372 - 0.4817717373 -9168.6132812500 -0.6019633412 - 0.4829123318 -9167.7402343750 -0.6009176970 - 0.4840521216 -9167.3837890625 -0.5998679399 - 0.4851910770 -9168.2060546875 -0.5988186598 - 0.4863292277 -9169.1445312500 -0.5977708101 - 0.4874665439 -9169.5390625000 -0.5967167616 - 0.4886030257 -9167.5048828125 -0.5956659317 - 0.4897387028 -9167.5722656250 -0.5946095586 - 0.4908735156 -9167.0878906250 -0.5935562849 - 0.4920075238 -9169.9550781250 -0.5924979448 - 0.4931406975 -9168.5429687500 -0.5914439559 - 0.4942730069 -9167.1376953125 -0.5903843641 - 0.4954045117 -9168.0810546875 -0.5893251300 - 0.4965351522 -9167.9521484375 -0.5882627964 - 0.4976649582 -9168.6943359375 -0.5872030258 - 0.4987939298 -9168.2128906250 -0.5861390233 - 0.4999220371 -9168.2382812500 -0.5850771070 - 0.5010493398 -9166.3925781250 -0.5840107799 - 0.5021757483 -9167.6025390625 -0.5829445720 - 0.5033013225 -9168.9326171875 -0.5818784833 - 0.5044260621 -9167.5302734375 -0.5808099508 - 0.5055499077 -9167.0449218750 -0.5797417760 - 0.5066729188 -9167.0048828125 -0.5786703229 - 0.5077950358 -9167.5498046875 -0.5775987506 - 0.5089163184 -9166.9238281250 -0.5765247345 - 0.5100367665 -9168.5537109375 -0.5754524469 - 0.5111563206 -9168.5849609375 -0.5743757486 - 0.5122749805 -9167.2587890625 -0.5733024478 - 0.5133928061 -9165.9355468750 -0.5722232461 - 0.5145097971 -9166.5849609375 -0.5711455345 - 0.5156258345 -9168.2666015625 -0.5700656772 - 0.5167410374 -9168.2167968750 -0.5689865947 - 0.5178554058 -9167.8281250000 -0.5679033995 - 0.5189688206 -9167.5400390625 -0.5668212175 - 0.5200814009 -9168.3955078125 -0.5657366514 - 0.5211930871 -9167.9492187500 -0.5646529794 - 0.5223039389 -9167.9765625000 -0.5635654330 - 0.5234138370 -9169.4150390625 -0.5624791384 - 0.5245228410 -9167.1220703125 -0.5613931417 - 0.5256310105 -9167.8203125000 -0.5603030920 - 0.5267382860 -9166.7968750000 -0.5592134595 - 0.5278446078 -9167.4658203125 -0.5581206083 - 0.5289500952 -9169.3232421875 -0.5570282936 - 0.5300546288 -9166.8417968750 -0.5559335351 - 0.5311583281 -9167.8271484375 -0.5548411012 - 0.5322610736 -9167.7500000000 -0.5537431240 - 0.5333629847 -9165.9394531250 -0.5526472926 - 0.5344639421 -9167.3417968750 -0.5515481234 - 0.5355640054 -9168.4775390625 -0.5504487157 - 0.5366631150 -9167.3583984375 -0.5493483543 - 0.5377613902 -9167.0195312500 -0.5482481122 - 0.5388587117 -9167.5292968750 -0.5471438766 - 0.5399550796 -9169.0371093750 -0.5460401773 - 0.5410506129 -9167.2900390625 -0.5449360013 - 0.5421451926 -9168.9902343750 -0.5438304543 - 0.5432388186 -9166.8310546875 -0.5427227020 - 0.5443316102 -9168.8652343750 -0.5416145325 - 0.5454233885 -9168.3994140625 -0.5405036807 - 0.5465142727 -9168.7412109375 -0.5393952727 - 0.5476042628 -9166.8857421875 -0.5382822752 - 0.5486932993 -9167.6201171875 -0.5371718407 - 0.5497813821 -9167.7509765625 -0.5360581279 - 0.5508685708 -9169.0234375000 -0.5349436998 - 0.5519548059 -9167.5654296875 -0.5338286161 - 0.5530401468 -9168.4736328125 -0.5327093601 - 0.5541244745 -9168.9599609375 -0.5315918922 - 0.5552079082 -9167.3388671875 -0.5304730535 - 0.5562903881 -9168.2617187500 -0.5293529630 - 0.5573719740 -9166.0380859375 -0.5282313824 - 0.5584525466 -9166.7753906250 -0.5271084905 - 0.5595322251 -9168.4238281250 -0.5259842277 - 0.5606108904 -9168.0751953125 -0.5248590708 - 0.5616886616 -9167.9033203125 -0.5237321258 - 0.5627654791 -9168.1875000000 -0.5226053596 - 0.5638412833 -9167.2724609375 -0.5214761496 - 0.5649161935 -9167.6328125000 -0.5203487277 - 0.5659901500 -9168.4541015625 -0.5192164779 - 0.5670630932 -9168.3261718750 -0.5180853009 - 0.5681351423 -9167.4082031250 -0.5169508457 - 0.5692061782 -9167.9873046875 -0.5158182383 - 0.5702762604 -9167.1865234375 -0.5146819353 - 0.5713453889 -9168.5839843750 -0.5135464668 - 0.5724135041 -9168.4482421875 -0.5124066472 - 0.5734806657 -9169.4121093750 -0.5112705827 - 0.5745468736 -9168.5322265625 -0.5101282597 - 0.5756121278 -9166.7802734375 -0.5089887381 - 0.5766763687 -9167.6123046875 -0.5078454614 - 0.5777396560 -9168.6406250000 -0.5067035556 - 0.5788019300 -9167.3261718750 -0.5055579543 - 0.5798632503 -9167.2402343750 -0.5044131279 - 0.5809236169 -9167.2363281250 -0.5032641888 - 0.5819829702 -9168.2861328125 -0.5021167397 - 0.5830413103 -9166.0625000000 -0.5009682178 - 0.5840986967 -9168.2285156250 -0.4998172224 - 0.5851550698 -9168.4042968750 -0.4986642897 - 0.5862104893 -9167.6894531250 -0.4975129664 - 0.5872648358 -9169.2011718750 -0.4963561893 - 0.5883182883 -9168.1894531250 -0.4952020347 - 0.5893706679 -9168.2158203125 -0.4940440953 - 0.5904220939 -9166.7939453125 -0.4928887486 - 0.5914724469 -9168.6708984375 -0.4917275906 - 0.5925218463 -9167.7597656250 -0.4905683994 - 0.5935702920 -9168.0996093750 -0.4894051254 - 0.5946176648 -9169.0107421875 -0.4882454276 - 0.5956640244 -9167.8535156250 -0.4870792627 - 0.5967094302 -9167.7597656250 -0.4859134555 - 0.5977537632 -9167.1035156250 -0.4847461283 - 0.5987971425 -9167.0634765625 -0.4835812151 - 0.5998394489 -9168.6035156250 -0.4824080765 - 0.6008807421 -9169.4902343750 -0.4812384546 - 0.6019210815 -9167.4003906250 -0.4800656736 - 0.6029603481 -9168.8525390625 -0.4788953662 - 0.6039986014 -9167.2666015625 -0.4777198732 - 0.6050358415 -9168.0166015625 -0.4765450358 - 0.6060720086 -9167.7949218750 -0.4753653407 - 0.6071072221 -9167.3798828125 -0.4741889834 - 0.6081413627 -9167.1025390625 -0.4730082750 - 0.6091744900 -9166.6181640625 -0.4718278050 - 0.6102065444 -9169.6630859375 -0.4706445634 - 0.6112375855 -9168.3134765625 -0.4694624245 - 0.6122676134 -9168.3095703125 -0.4682756662 - 0.6132965684 -9168.1679687500 -0.4670893550 - 0.6143245101 -9167.6689453125 -0.4659015834 - 0.6153513789 -9168.8164062500 -0.4647105336 - 0.6163772345 -9168.7167968750 -0.4635192752 - 0.6174020767 -9167.0742187500 -0.4623272419 - 0.6184257865 -9167.5605468750 -0.4611356258 - 0.6194485426 -9169.5136718750 -0.4599390030 - 0.6204701662 -9167.7402343750 -0.4587420225 - 0.6214907765 -9168.9248046875 -0.4575456679 - 0.6225103140 -9167.9355468750 -0.4563448429 - 0.6235288382 -9168.5830078125 -0.4551434219 - 0.6245462894 -9167.6210937500 -0.4539410472 - 0.6255626678 -9167.8701171875 -0.4527389109 - 0.6265779734 -9168.5537109375 -0.4515307844 - 0.6275922656 -9168.7851562500 -0.4503231943 - 0.6286054254 -9168.5292968750 -0.4491174519 - 0.6296175718 -9168.4941406250 -0.4479048252 - 0.6306286454 -9169.0322265625 -0.4466915131 - 0.6316385865 -9166.7265625000 -0.4454798102 - 0.6326475143 -9168.8662109375 -0.4442667365 - 0.6336553693 -9168.8056640625 -0.4430488646 - 0.6346621513 -9166.8876953125 -0.4418286681 - 0.6356678605 -9168.6347656250 -0.4406120479 - 0.6366724968 -9168.0859375000 -0.4393872917 - 0.6376760006 -9167.1005859375 -0.4381641150 - 0.6386784911 -9167.9003906250 -0.4369365275 - 0.6396798491 -9167.3183593750 -0.4357109964 - 0.6406801343 -9169.9882812500 -0.4344841838 - 0.6416793466 -9167.2626953125 -0.4332531691 - 0.6426774859 -9169.4130859375 -0.4320232868 - 0.6436744928 -9167.5839843750 -0.4307857156 - 0.6446704268 -9169.1171875000 -0.4295504093 - 0.6456652880 -9167.0166015625 -0.4283144772 - 0.6466590166 -9168.6591796875 -0.4270763397 - 0.6476516724 -9167.0976562500 -0.4258329570 - 0.6486432552 -9167.8007812500 -0.4245909154 - 0.6496337056 -9169.0625000000 -0.4233436882 - 0.6506230831 -9168.2734375000 -0.4221005738 - 0.6516113281 -9168.8525390625 -0.4208504260 - 0.6525984406 -9168.4687500000 -0.4195996225 - 0.6535844803 -9168.3046875000 -0.4183455110 - 0.6545694470 -9168.5507812500 -0.4170920849 - 0.6555532217 -9168.8251953125 -0.4158317149 - 0.6565359831 -9168.9091796875 -0.4145757854 - 0.6575175524 -9168.4121093750 -0.4133172929 - 0.6584980488 -9166.9873046875 -0.4120509923 - 0.6594774127 -9169.6279296875 -0.4107863009 - 0.6604556441 -9169.8271484375 -0.4095209837 - 0.6614328027 -9169.3662109375 -0.4082498848 - 0.6624087691 -9169.2099609375 -0.4069782495 - 0.6633836627 -9169.1835937500 -0.4057072699 - 0.6643574238 -9168.1494140625 -0.4044293463 - 0.6653300524 -9168.1162109375 -0.4031534195 - 0.6663015485 -9168.5810546875 -0.4018717706 - 0.6672719717 -9169.2568359375 -0.4005881846 - 0.6682412028 -9168.8525390625 -0.3993049860 - 0.6692093015 -9169.2392578125 -0.3980187774 - 0.6701762676 -9169.3710937500 -0.3967306316 - 0.6711421013 -9169.3886718750 -0.3954378366 - 0.6721068025 -9168.0703125000 -0.3941448629 - 0.6730703712 -9168.9716796875 -0.3928470910 - 0.6740328074 -9168.4072265625 -0.3915469348 - 0.6749941111 -9168.4433593750 -0.3902468085 - 0.6759542227 -9169.6386718750 -0.3889462054 - 0.6769132018 -9167.9052734375 -0.3876362741 - 0.6778710485 -9169.8837890625 -0.3863326013 - 0.6788277626 -9168.2119140625 -0.3850186169 - 0.6797832847 -9169.7451171875 -0.3837070763 - 0.6807376742 -9169.0156250000 -0.3823885322 - 0.6816909313 -9167.9404296875 -0.3810700178 - 0.6826429963 -9168.2050781250 -0.3797490895 - 0.6835939288 -9169.6474609375 -0.3784281313 - 0.6845436692 -9170.0810546875 -0.3771022558 - 0.6854922771 -9169.0507812500 -0.3757711649 - 0.6864396930 -9170.1699218750 -0.3744398057 - 0.6873859763 -9169.9960937500 -0.3731013238 - 0.6883310676 -9169.1835937500 -0.3717638850 - 0.6892750263 -9168.0410156250 -0.3704257905 - 0.6902177930 -9169.4599609375 -0.3690837026 - 0.6911594272 -9168.7509765625 -0.3677375913 - 0.6920998693 -9167.2138671875 -0.3663890958 - 0.6930391192 -9168.1220703125 -0.3650410473 - 0.6939771771 -9169.4707031250 -0.3636856675 - 0.6949141026 -9169.3662109375 -0.3623307645 - 0.6958498359 -9167.5126953125 -0.3609732389 - 0.6967843771 -9169.8759765625 -0.3596089780 - 0.6977177262 -9168.4863281250 -0.3582400084 - 0.6986499429 -9167.9902343750 -0.3568813801 - 0.6995809078 -9170.2519531250 -0.3555078208 - 0.7005107403 -9168.4833984375 -0.3541280627 - 0.7014393806 -9169.6621093750 -0.3527626991 - 0.7023668289 -9168.7880859375 -0.3513772786 - 0.7032930851 -9168.0410156250 -0.3499958813 - 0.7042180896 -9167.5136718750 -0.3486163020 - 0.7051419616 -9168.3222656250 -0.3472223282 - 0.7060646415 -9168.5732421875 -0.3458348811 - 0.7069861293 -9169.4580078125 -0.3444377780 - 0.7079063654 -9169.3447265625 -0.3430441022 - 0.7088254690 -9169.2490234375 -0.3416474760 - 0.7097433209 -9168.6669921875 -0.3402454257 - 0.7106599808 -9169.3476562500 -0.3388420641 - 0.7115754485 -9168.5644531250 -0.3374341726 - 0.7124896646 -9168.4697265625 -0.3360245228 - 0.7134027481 -9169.3613281250 -0.3346072435 - 0.7143145800 -9167.9423828125 -0.3331929147 - 0.7152252197 -9168.4072265625 -0.3317779601 - 0.7161346078 -9168.5488281250 -0.3303530216 - 0.7170428038 -9171.0976562500 -0.3289272189 - 0.7179498076 -9169.6425781250 -0.3275001943 - 0.7188555598 -9170.3681640625 -0.3260701299 - 0.7197601199 -9169.2070312500 -0.3246347606 - 0.7206634283 -9168.9960937500 -0.3232035637 - 0.7215655446 -9168.9365234375 -0.3217639625 - 0.7224664092 -9170.7617187500 -0.3203287721 - 0.7233660817 -9169.9189453125 -0.3188832998 - 0.7242645025 -9171.3515625000 -0.3174387217 - 0.7251616716 -9170.0498046875 -0.3159863949 - 0.7260576487 -9168.2812500000 -0.3145352900 - 0.7269524336 -9169.9853515625 -0.3130832314 - 0.7278459072 -9169.5087890625 -0.3116292357 - 0.7287381887 -9170.9169921875 -0.3101686835 - 0.7296292186 -9169.6923828125 -0.3087128997 - 0.7305190563 -9168.0048828125 -0.3072499335 - 0.7314075828 -9168.9716796875 -0.3057816625 - 0.7322949171 -9168.3896484375 -0.3043183684 - 0.7331809998 -9168.8935546875 -0.3028494716 - 0.7340658307 -9169.0634765625 -0.3013783693 - 0.7349494100 -9171.2031250000 -0.2999019623 - 0.7358317971 -9168.7783203125 -0.2984254658 - 0.7367128730 -9169.0458984375 -0.2969503999 - 0.7375927567 -9169.0820312500 -0.2954653800 - 0.7384713292 -9170.5478515625 -0.2939910889 - 0.7393486500 -9170.2880859375 -0.2925055325 - 0.7402247787 -9169.7539062500 -0.2910215557 - 0.7410995960 -9167.8837890625 -0.2895336151 - 0.7419732213 -9169.3437500000 -0.2880437076 - 0.7428455353 -9169.4326171875 -0.2865523696 - 0.7437165976 -9169.9580078125 -0.2850603461 - 0.7445864081 -9170.8183593750 -0.2835687101 - 0.7454549670 -9170.5878906250 -0.2820707262 - 0.7463222146 -9170.2841796875 -0.2805862427 - 0.7471882105 -9169.8066406250 -0.2790869176 - 0.7480529547 -9168.3847656250 -0.2775827348 - 0.7489164472 -9170.0371093750 -0.2760913372 - 0.7497786880 -9169.8955078125 -0.2745879889 - 0.7506396174 -9168.5644531250 -0.2730976641 - 0.7514992952 -9169.4677734375 -0.2715813220 - 0.7523576617 -9169.7148437500 -0.2700849473 - 0.7532147765 -9169.7412109375 -0.2685845792 - 0.7540706396 -9168.2744140625 -0.2670815587 - 0.7549251914 -9170.5654296875 -0.2655783892 - 0.7557784319 -9168.9638671875 -0.2640710473 - 0.7566304803 -9170.4648437500 -0.2625708282 - 0.7574811578 -9168.9121093750 -0.2610618472 - 0.7583305836 -9169.8427734375 -0.2595545053 - 0.7591787577 -9169.7529296875 -0.2580497861 - 0.7600256205 -9169.5498046875 -0.2565520406 - 0.7608711720 -9169.4023437500 -0.2550465763 - 0.7617154717 -9168.5263671875 -0.2535389066 - 0.7625584602 -9170.7177734375 -0.2520377040 - 0.7634001374 -9170.4658203125 -0.2505291998 - 0.7642405629 -9170.0703125000 -0.2490254492 - 0.7650796771 -9169.9228515625 -0.2475281805 - 0.7659174800 -9169.6982421875 -0.2460291982 - 0.7667539716 -9170.7822265625 -0.2445262372 - 0.7675892115 -9169.2880859375 -0.2430185378 - 0.7684230804 -9170.3496093750 -0.2415246665 - 0.7692556977 -9169.1699218750 -0.2400247306 - 0.7700870037 -9171.4521484375 -0.2385247946 - 0.7709169984 -9169.7695312500 -0.2370324731 - 0.7717456818 -9169.9091796875 -0.2355386764 - 0.7725730538 -9169.9394531250 -0.2340505719 - 0.7733991146 -9170.6054687500 -0.2325436473 - 0.7742239237 -9170.2656250000 -0.2310619950 - 0.7750473619 -9168.9218750000 -0.2295737267 - 0.7758694887 -9171.1669921875 -0.2280894518 - 0.7766903043 -9170.1484375000 -0.2265986949 - 0.7775098085 -9169.0839843750 -0.2251164615 - 0.7783280015 -9170.0332031250 -0.2236392200 - 0.7791448236 -9168.7529296875 -0.2221607268 - 0.7799603939 -9169.5693359375 -0.2206857353 - 0.7807745934 -9170.5146484375 -0.2192078978 - 0.7815874815 -9170.7294921875 -0.2177308202 - 0.7823990583 -9171.5175781250 -0.2162600160 - 0.7832093239 -9170.5371093750 -0.2147897631 - 0.7840182185 -9168.8359375000 -0.2133293152 - 0.7848258018 -9168.8125000000 -0.2118607461 - 0.7856320739 -9170.4970703125 -0.2104063332 - 0.7864370346 -9170.4052734375 -0.2089461684 - 0.7872406244 -9170.7246093750 -0.2074902654 - 0.7880428433 -9168.6806640625 -0.2060369253 - 0.7888437510 -9169.3613281250 -0.2045880854 - 0.7896433473 -9170.4472656250 -0.2031366527 - 0.7904416323 -9170.5625000000 -0.2016955763 - 0.7912384868 -9170.9101562500 -0.2002550960 - 0.7920340896 -9170.8828125000 -0.1988153160 - 0.7928282619 -9170.0771484375 -0.1973794699 - 0.7936211824 -9169.0253906250 -0.1959517300 - 0.7944126725 -9169.9326171875 -0.1945220828 - 0.7952029109 -9168.8349609375 -0.1930989623 - 0.7959917188 -9170.5615234375 -0.1916754544 - 0.7967792153 -9169.7304687500 -0.1902535260 - 0.7975653410 -9168.8632812500 -0.1888365746 - 0.7983500957 -9170.0097656250 -0.1874237508 - 0.7991335392 -9168.6923828125 -0.1860146672 - 0.7999156117 -9170.4208984375 -0.1846104562 - 0.8006963134 -9170.8134765625 -0.1832059920 - 0.8014757037 -9169.6201171875 -0.1818099022 - 0.8022537231 -9168.9755859375 -0.1804134548 - 0.8030303717 -9169.8105468750 -0.1790200621 - 0.8038056493 -9168.7880859375 -0.1776319742 - 0.8045795560 -9171.4355468750 -0.1762418747 - 0.8053520918 -9171.2880859375 -0.1748594195 - 0.8061232567 -9171.7812500000 -0.1734847724 - 0.8068931103 -9170.4804687500 -0.1721072197 - 0.8076615334 -9170.4902343750 -0.1707358956 - 0.8084286451 -9170.5263671875 -0.1693680882 - 0.8091943264 -9170.4404296875 -0.1680043489 - 0.8099586964 -9170.4423828125 -0.1666451395 - 0.8107216358 -9169.9570312500 -0.1652895510 - 0.8114832640 -9170.6542968750 -0.1639338434 - 0.8122434616 -9169.3271484375 -0.1625872403 - 0.8130022883 -9171.0556640625 -0.1612404883 - 0.8137598038 -9171.3564453125 -0.1598951966 - 0.8145158887 -9171.4277343750 -0.1585534662 - 0.8152705431 -9171.3408203125 -0.1572170854 - 0.8160238862 -9170.2314453125 -0.1558875144 - 0.8167757988 -9169.6210937500 -0.1545597911 - 0.8175263405 -9170.3164062500 -0.1532333642 - 0.8182755113 -9169.2099609375 -0.1519124508 - 0.8190233111 -9170.5908203125 -0.1505904794 - 0.8197696805 -9170.9521484375 -0.1492776573 - 0.8205146790 -9170.0673828125 -0.1479666829 - 0.8212583065 -9171.4160156250 -0.1466597021 - 0.8220005035 -9170.3876953125 -0.1453532577 - 0.8227413297 -9170.3056640625 -0.1440528333 - 0.8234807849 -9172.0117187500 -0.1427543163 - 0.8242188096 -9171.8125000000 -0.1414583325 - 0.8249554634 -9170.2988281250 -0.1401690692 - 0.8256906867 -9169.6982421875 -0.1388824284 - 0.8264245391 -9170.7812500000 -0.1375945956 - 0.8271569610 -9169.8769531250 -0.1363145709 - 0.8278879523 -9169.2392578125 -0.1350386441 - 0.8286176324 -9168.5927734375 -0.1337659061 - 0.8293458223 -9170.7158203125 -0.1324882209 - 0.8300726414 -9169.1005859375 -0.1312217861 - 0.8307980299 -9169.1240234375 -0.1299562156 - 0.8315220475 -9171.4189453125 -0.1286888123 - 0.8322446346 -9170.3544921875 -0.1274305284 - 0.8329658508 -9170.1406250000 -0.1261768043 - 0.8336855769 -9169.7695312500 -0.1249191687 - 0.8344039321 -9170.7626953125 -0.1236678511 - 0.8351209164 -9169.5751953125 -0.1224234775 - 0.8358364105 -9170.4609375000 -0.1211735830 - 0.8365505338 -9169.8701171875 -0.1199321970 - 0.8372632265 -9170.1679687500 -0.1186923459 - 0.8379744887 -9170.4472656250 -0.1174538508 - 0.8386843204 -9170.8681640625 -0.1162195504 - 0.8393927813 -9170.9140625000 -0.1149880886 - 0.8400997519 -9169.6464843750 -0.1137600765 - 0.8408053517 -9169.3857421875 -0.1125340611 - 0.8415094614 -9169.4453125000 -0.1113098338 - 0.8422122002 -9171.0527343750 -0.1100855768 - 0.8429135084 -9170.8906250000 -0.1088655442 - 0.8436133862 -9170.8437500000 -0.1076515540 - 0.8443118334 -9172.1259765625 -0.1064335406 - 0.8450088501 -9171.4628906250 -0.1052222699 - 0.8457044363 -9170.4248046875 -0.1040163636 - 0.8463985324 -9170.8183593750 -0.1028079614 - 0.8470912576 -9170.5595703125 -0.1015988961 - 0.8477825522 -9169.6660156250 -0.1004002020 - 0.8484723568 -9169.8632812500 -0.0991981328 - 0.8491607308 -9172.2353515625 -0.0979931653 - 0.8498477340 -9170.8750000000 -0.0968015790 - 0.8505332470 -9170.5732421875 -0.0956074446 - 0.8512172699 -9170.6201171875 -0.0944093242 - 0.8518999219 -9170.4863281250 -0.0932213962 - 0.8525810838 -9171.2324218750 -0.0920326114 - 0.8532608747 -9170.7099609375 -0.0908470675 - 0.8539391160 -9170.3066406250 -0.0896607786 - 0.8546159863 -9170.1201171875 -0.0884766355 - 0.8552913666 -9170.9199218750 -0.0872936100 - 0.8559653163 -9171.5878906250 -0.0861124918 - 0.8566378355 -9172.1865234375 -0.0849325955 - 0.8573088646 -9171.0937500000 -0.0837605521 - 0.8579784632 -9171.2880859375 -0.0825806111 - 0.8586465716 -9170.3867187500 -0.0814065710 - 0.8593132496 -9171.5849609375 -0.0802350044 - 0.8599784970 -9169.3984375000 -0.0790726542 - 0.8606422544 -9171.9677734375 -0.0778952464 - 0.8613045812 -9168.7109375000 -0.0767300799 - 0.8619654179 -9171.9619140625 -0.0755622089 - 0.8626247644 -9172.0722656250 -0.0743926764 - 0.8632826805 -9171.6308593750 -0.0732315406 - 0.8639391661 -9171.2744140625 -0.0720696598 - 0.8645941615 -9170.5371093750 -0.0709151626 - 0.8652476668 -9172.0195312500 -0.0697443336 - 0.8658997416 -9170.6044921875 -0.0685882568 - 0.8665503263 -9169.7685546875 -0.0674374625 - 0.8671994209 -9172.5029296875 -0.0662699565 - 0.8678470850 -9170.6230468750 -0.0651156977 - 0.8684932590 -9171.0810546875 -0.0639644340 - 0.8691380024 -9170.1005859375 -0.0628174916 - 0.8697811961 -9171.2392578125 -0.0616553798 - 0.8704229593 -9170.8603515625 -0.0605036989 - 0.8710632920 -9171.0234375000 -0.0593585894 - 0.8717020750 -9172.2011718750 -0.0582014546 - 0.8723394275 -9170.8818359375 -0.0570557714 - 0.8729752302 -9171.1005859375 -0.0559059307 - 0.8736096025 -9169.7675781250 -0.0547645688 - 0.8742424846 -9171.1562500000 -0.0536107644 - 0.8748739362 -9171.1093750000 -0.0524665266 - 0.8755038381 -9171.0761718750 -0.0513242930 - 0.8761322498 -9172.8193359375 -0.0501693860 - 0.8767592311 -9170.8720703125 -0.0490302891 - 0.8773847222 -9171.0957031250 -0.0478887409 - 0.8780086637 -9170.4531250000 -0.0467478931 - 0.8786311746 -9170.5507812500 -0.0455987677 - 0.8792521954 -9171.2919921875 -0.0444615409 - 0.8798716664 -9170.4755859375 -0.0433255360 - 0.8804897070 -9168.7880859375 -0.0421852916 - 0.8811061978 -9172.2558593750 -0.0410334989 - 0.8817212582 -9171.6298828125 -0.0398976579 - 0.8823347688 -9171.4375000000 -0.0387610868 - 0.8829468489 -9171.4794921875 -0.0376163945 - 0.8835573792 -9171.4062500000 -0.0364825204 - 0.8841664195 -9172.0156250000 -0.0353417993 - 0.8847739697 -9171.1630859375 -0.0342100561 - 0.8853800297 -9171.3554687500 -0.0330601335 - 0.8859845400 -9170.1416015625 -0.0319276229 - 0.8865876198 -9170.2773437500 -0.0307927877 - 0.8871891499 -9172.1640625000 -0.0296571553 - 0.8877891898 -9171.9111328125 -0.0285118148 - 0.8883877397 -9171.5224609375 -0.0273777172 - 0.8889847398 -9171.8408203125 -0.0262473449 - 0.8895802498 -9170.2832031250 -0.0251178071 - 0.8901742697 -9171.0292968750 -0.0239662752 - 0.8907667994 -9171.0517578125 -0.0228316188 - 0.8913577795 -9169.7753906250 -0.0217001066 - 0.8919472694 -9171.7392578125 -0.0205670074 - 0.8925352097 -9171.1826171875 -0.0194253400 - 0.8931216598 -9171.6777343750 -0.0182913244 - 0.8937066197 -9170.3867187500 -0.0171603337 - 0.8942900300 -9170.9892578125 -0.0160212144 - 0.8948719501 -9171.6767578125 -0.0148782842 - 0.8954523206 -9170.7597656250 -0.0137481987 - 0.8960312009 -9172.2187500000 -0.0126156844 - 0.8966085315 -9170.5429687500 -0.0114800110 - 0.8971843719 -9172.3642578125 -0.0103384331 - 0.8977587223 -9171.8710937500 -0.0092059188 - 0.8983314633 -9171.6962890625 -0.0080649033 - 0.8989027739 -9170.9345703125 -0.0069351196 - 0.8994724751 -9171.4189453125 -0.0057889707 - 0.9000407457 -9172.2666015625 -0.0046521053 - 0.9006074071 -9170.6953125000 -0.0035191849 - 0.9011725783 -9170.0302734375 -0.0023906156 - 0.9017361999 -9171.0400390625 -0.0012428202 - 0.9022983313 -9170.6689453125 -0.0001101643 - 0.9028589129 -9171.9492187500 0.0010319315 - 0.9034179449 -9170.5869140625 0.0021671318 - 0.9039754868 -9171.0966796875 0.0033150762 - 0.9045314789 -9171.3232421875 0.0044487938 - 0.9050859213 -9170.5234375000 0.0055852458 - 0.9056388140 -9171.8720703125 0.0067181177 - 0.9061902165 -9172.0029296875 0.0078691021 - 0.9067400694 -9171.0761718750 0.0090073831 - 0.9072883725 -9171.2216796875 0.0101415217 - 0.9078351259 -9171.7451171875 0.0112804584 - 0.9083803296 -9171.0390625000 0.0124185868 - 0.9089240432 -9172.3027343750 0.0135692619 - 0.9094662070 -9172.4335937500 0.0147074647 - 0.9100067616 -9170.9648437500 0.0158459544 - 0.9105458260 -9171.3125000000 0.0169849619 - 0.9110834002 -9170.9951171875 0.0181380101 - 0.9116193652 -9170.7060546875 0.0192766227 - 0.9121537805 -9171.7880859375 0.0204161815 - 0.9126866460 -9170.1259765625 0.0215529166 - 0.9132180214 -9171.5898437500 0.0227116421 - 0.9137477875 -9170.8593750000 0.0238508284 - 0.9142760038 -9171.8769531250 0.0249963067 - 0.9148027301 -9170.8710937500 0.0261355564 - 0.9153278470 -9171.3916015625 0.0272944458 - 0.9158514142 -9170.4609375000 0.0284354575 - 0.9163734913 -9171.8984375000 0.0295843519 - 0.9168939590 -9170.1162109375 0.0307275802 - 0.9174128771 -9171.3183593750 0.0318723172 - 0.9179302454 -9170.2802734375 0.0330334678 - 0.9184460640 -9171.1552734375 0.0341767333 - 0.9189603329 -9171.6718750000 0.0353223458 - 0.9194729924 -9170.9355468750 0.0364679508 - 0.9199841619 -9171.0732421875 0.0376312174 - 0.9204937220 -9170.3535156250 0.0387750044 - 0.9210017323 -9172.8769531250 0.0399252400 - 0.9215081930 -9171.1728515625 0.0410708264 - 0.9220131040 -9170.2949218750 0.0422160141 - 0.9225164056 -9172.1250000000 0.0433842577 - 0.9230181575 -9169.5898437500 0.0445316955 - 0.9235183597 -9170.9287109375 0.0456841849 - 0.9240170121 -9172.6953125000 0.0468366630 - 0.9245141149 -9170.4980468750 0.0479856506 - 0.9250096083 -9172.5380859375 0.0491539314 - 0.9255035520 -9170.3691406250 0.0503065102 - 0.9259958863 -9171.0146484375 0.0514594764 - 0.9264866710 -9171.6269531250 0.0526119806 - 0.9269759059 -9170.8056640625 0.0537652783 - 0.9274635911 -9171.6523437500 0.0549376830 - 0.9279496670 -9171.2324218750 0.0560907610 - 0.9284341335 -9170.2226562500 0.0572440848 - 0.9289171100 -9170.6835937500 0.0584033430 - 0.9293984175 -9172.5849609375 0.0595750324 - 0.9298782349 -9173.0683593750 0.0607326701 - 0.9303564429 -9171.5488281250 0.0618879907 - 0.9308330417 -9170.4589843750 0.0630498007 - 0.9313080907 -9169.5576171875 0.0642085373 - 0.9317815900 -9172.4267578125 0.0653847456 - 0.9322534800 -9171.5273437500 0.0665413216 - 0.9327237606 -9171.7812500000 0.0677023530 - 0.9331924915 -9172.0039062500 0.0688650608 - 0.9336596727 -9171.5097656250 0.0700264871 - 0.9341252446 -9170.6640625000 0.0712078810 - 0.9345892072 -9171.0312500000 0.0723686665 - 0.9350516200 -9171.4033203125 0.0735298395 - 0.9355124235 -9169.9511718750 0.0746878088 - 0.9359716177 -9170.6455078125 0.0758545548 - 0.9364292622 -9170.6640625000 0.0770387948 - 0.9368853569 -9170.8564453125 0.0782035068 - 0.9373397827 -9170.8154296875 0.0793671012 - 0.9377926588 -9171.2617187500 0.0805334821 - 0.9382439256 -9169.8183593750 0.0817005038 - 0.9386936426 -9169.4677734375 0.0828733221 - 0.9391417503 -9172.2158203125 0.0840566903 - 0.9395882487 -9170.9960937500 0.0852259994 - 0.9400331378 -9171.7949218750 0.0863974765 - 0.9404764771 -9169.8447265625 0.0875633061 - 0.9409182072 -9170.2626953125 0.0887304470 - 0.9413583279 -9170.2207031250 0.0899242163 - 0.9417968988 -9170.0664062500 0.0910940021 - 0.9422338009 -9170.8007812500 0.0922686011 - 0.9426691532 -9169.8242187500 0.0934310406 - 0.9431028962 -9170.9091796875 0.0946096405 - 0.9435350299 -9171.3515625000 0.0958053842 - 0.9439656138 -9171.0136718750 0.0969760641 - 0.9443945289 -9170.1171875000 0.0981504619 - 0.9448218942 -9170.9716796875 0.0993261263 - 0.9452476501 -9170.1845703125 0.1005017534 - 0.9456717372 -9171.8212890625 0.1016968936 - 0.9460942745 -9171.2080078125 0.1028759852 - 0.9465152025 -9171.7539062500 0.1040539145 - 0.9469345808 -9172.0849609375 0.1052240431 - 0.9473522902 -9169.2900390625 0.1064005643 - 0.9477683902 -9170.3271484375 0.1075807065 - 0.9481828809 -9171.0400390625 0.1087803543 - 0.9485958219 -9171.0146484375 0.1099622995 - 0.9490070939 -9169.7783203125 0.1111408249 - 0.9494167566 -9170.8310546875 0.1123213172 - 0.9498248696 -9169.6064453125 0.1135036200 - 0.9502313137 -9169.8603515625 0.1146871895 - 0.9506361485 -9172.3281250000 0.1158857346 - 0.9510393739 -9171.2666015625 0.1170667186 - 0.9514410496 -9171.1064453125 0.1182516068 - 0.9518410563 -9171.0283203125 0.1194338500 - 0.9522394538 -9170.4902343750 0.1206198409 - 0.9526362419 -9168.3017578125 0.1218054667 - 0.9530314207 -9170.9404296875 0.1230099276 - 0.9534249902 -9171.2656250000 0.1241939664 - 0.9538168907 -9169.4384765625 0.1253794134 - 0.9542072415 -9169.9658203125 0.1265640706 - 0.9545959234 -9169.8818359375 0.1277545989 - 0.9549829960 -9171.3925781250 0.1289619803 - 0.9553684592 -9170.9462890625 0.1301509440 - 0.9557523131 -9170.0986328125 0.1313430965 - 0.9561345577 -9170.4619140625 0.1325243264 - 0.9565151334 -9168.9101562500 0.1337108910 - 0.9568941593 -9171.0634765625 0.1348990798 - 0.9572715163 -9169.4599609375 0.1361153275 - 0.9576472640 -9170.0097656250 0.1373064667 - 0.9580213428 -9171.0283203125 0.1384966522 - 0.9583938718 -9170.2333984375 0.1396860033 - 0.9587647319 -9171.6894531250 0.1408753395 - 0.9591339827 -9169.2529296875 0.1420687437 - 0.9595015645 -9170.5107421875 0.1432867795 - 0.9598675370 -9169.7382812500 0.1444780827 - 0.9602319002 -9170.8056640625 0.1456740350 - 0.9605946541 -9171.9433593750 0.1468608081 - 0.9609557390 -9170.3027343750 0.1480555981 - 0.9613152146 -9171.4130859375 0.1492498815 - 0.9616730809 -9169.7705078125 0.1504453272 - 0.9620292783 -9169.9853515625 0.1516665816 - 0.9623838663 -9170.6552734375 0.1528619528 - 0.9627368450 -9169.8945312500 0.1540543735 - 0.9630881548 -9170.6533203125 0.1552504152 - 0.9634378552 -9167.6953125000 0.1564460248 - 0.9637858868 -9169.7714843750 0.1576438099 - 0.9641323090 -9170.1992187500 0.1588432789 - 0.9644770622 -9170.7500000000 0.1600584537 - 0.9648202658 -9170.5546875000 0.1612588912 - 0.9651617408 -9170.8125000000 0.1624573767 - 0.9655016065 -9170.2031250000 0.1636573225 - 0.9658398628 -9168.9863281250 0.1648578346 - 0.9661764503 -9169.5566406250 0.1660516560 - 0.9665114284 -9170.2382812500 0.1672785133 - 0.9668447375 -9171.6425781250 0.1684776545 - 0.9671764374 -9168.4667968750 0.1696807891 - 0.9675064683 -9169.1396484375 0.1708731800 - 0.9678348899 -9169.6240234375 0.1720770001 - 0.9681616426 -9168.7626953125 0.1732776612 - 0.9684867859 -9169.5888671875 0.1745064408 - 0.9688102603 -9171.3066406250 0.1757088602 - 0.9691321254 -9168.8388671875 0.1769050062 - 0.9694523215 -9169.2529296875 0.1781086624 - 0.9697708488 -9169.4912109375 0.1793139130 - 0.9700877666 -9169.5341796875 0.1805174500 - 0.9704030156 -9168.8115234375 0.1817168891 - 0.9707166553 -9170.1025390625 0.1829436421 - 0.9710286260 -9169.4121093750 0.1841494590 - 0.9713389277 -9170.5058593750 0.1853536218 - 0.9716476202 -9169.4111328125 0.1865543276 - 0.9719546437 -9169.5957031250 0.1877586246 - 0.9722600579 -9170.1992187500 0.1889634579 - 0.9725638032 -9169.0859375000 0.1901702732 - 0.9728658795 -9169.8818359375 0.1913714111 - 0.9731662869 -9170.8193359375 0.1926052570 - 0.9734650850 -9169.2519531250 0.1938074678 - 0.9737622142 -9168.3798828125 0.1950172633 - 0.9740577340 -9169.1601562500 0.1962185800 - 0.9743515849 -9168.9628906250 0.1974280477 - 0.9746437669 -9168.6523437500 0.1986321658 - 0.9749342799 -9168.6279296875 0.1998404711 - 0.9752231240 -9169.5087890625 0.2010425478 - 0.9755103588 -9170.3593750000 0.2022775710 - 0.9757959247 -9168.7763671875 0.2034848183 - 0.9760798812 -9170.2460937500 0.2046930194 - 0.9763621092 -9168.8144531250 0.2058972120 - 0.9766427279 -9170.2031250000 0.2071059644 - 0.9769216776 -9167.6660156250 0.2083134055 - 0.9771989584 -9168.6357421875 0.2095228881 - 0.9774746299 -9169.0976562500 0.2107532024 - 0.9777485728 -9170.0966796875 0.2119630575 - 0.9780209064 -9167.5058593750 0.2131707221 - 0.9782915711 -9168.0996093750 0.2143773139 - 0.9785605669 -9169.1787109375 0.2155862600 - 0.9788279533 -9168.1455078125 0.2167963535 - 0.9790936112 -9167.5322265625 0.2180053592 - 0.9793576598 -9170.1972656250 0.2192379236 - 0.9796199799 -9169.9482421875 0.2204492986 - 0.9798806906 -9170.6826171875 0.2216579318 - 0.9801397324 -9169.2675781250 0.2228638828 - 0.9803971648 -9168.6376953125 0.2240740806 - 0.9806528687 -9168.6982421875 0.2252829820 - 0.9809069037 -9167.6914062500 0.2264941633 - 0.9811593294 -9168.3007812500 0.2277010679 - 0.9814100266 -9167.4863281250 0.2289115489 - 0.9816591144 -9168.8662109375 0.2301497012 - 0.9819065332 -9170.0283203125 0.2313558012 - 0.9821522832 -9170.0576171875 0.2325677574 - 0.9823963046 -9167.3125000000 0.2337760180 - 0.9826387167 -9169.9140625000 0.2349846810 - 0.9828794599 -9168.2089843750 0.2361958623 - 0.9831185341 -9168.3115234375 0.2374049872 - 0.9833559394 -9167.7519531250 0.2386134714 - 0.9835916758 -9168.1396484375 0.2398246825 - 0.9838258028 -9168.7871093750 0.2410337329 - 0.9840582013 -9167.9599609375 0.2422696948 - 0.9842889309 -9169.2158203125 0.2434811890 - 0.9845179915 -9169.1582031250 0.2446907014 - 0.9847453833 -9166.5654296875 0.2459025383 - 0.9849711061 -9167.2763671875 0.2471096367 - 0.9851951599 -9166.8085937500 0.2483212203 - 0.9854175448 -9168.7207031250 0.2495315671 - 0.9856382608 -9168.4853515625 0.2507665157 - 0.9858573079 -9168.6357421875 0.2519791424 - 0.9860746861 -9168.7001953125 0.2531889975 - 0.9862903953 -9168.9902343750 0.2543965876 - 0.9865044355 -9168.1669921875 0.2556084394 - 0.9867168069 -9167.7285156250 0.2568175793 - 0.9869275093 -9168.6103515625 0.2580257952 - 0.9871364832 -9166.7724609375 0.2592371702 - 0.9873438478 -9168.5478515625 0.2604746222 - 0.9875494838 -9169.3642578125 0.2616823018 - 0.9877535105 -9168.9541015625 0.2628938854 - 0.9879558086 -9166.3769531250 0.2641029358 - 0.9881564379 -9168.7353515625 0.2653101683 - 0.9883553982 -9168.1044921875 0.2665212750 - 0.9885526896 -9168.0869140625 0.2677281201 - 0.9887483120 -9168.7802734375 0.2689376473 - 0.9889422655 -9168.3134765625 0.2701491714 - 0.9891345501 -9167.5966796875 0.2713547945 - 0.9893251061 -9168.3906250000 0.2725649178 - 0.9895140529 -9167.6152343750 0.2737738192 - 0.9897012711 -9167.4355468750 0.2749810517 - 0.9898868203 -9167.8525390625 0.2761898637 - 0.9900707006 -9166.4306640625 0.2774273455 - 0.9902528524 -9167.6875000000 0.2786343098 - 0.9904333949 -9167.1835937500 0.2798433900 - 0.9906122088 -9166.1708984375 0.2810510099 - 0.9907894135 -9166.7001953125 0.2822583020 - 0.9909648895 -9167.7412109375 0.2834673226 - 0.9911386371 -9167.3466796875 0.2846713364 - 0.9913107753 -9167.0625000000 0.2858811319 - 0.9914811850 -9167.2207031250 0.2871179283 - 0.9916499853 -9167.3876953125 0.2883223593 - 0.9918170571 -9167.0849609375 0.2895310521 - 0.9919824600 -9168.0791015625 0.2907385528 - 0.9921461344 -9166.3457031250 0.2919425964 - 0.9923081994 -9165.5312500000 0.2931507230 - 0.9924685359 -9167.3134765625 0.2943845093 - 0.9926272035 -9168.1503906250 0.2955905199 - 0.9927841425 -9166.0839843750 0.2967970371 - 0.9929394722 -9167.1093750000 0.2980026603 - 0.9930930734 -9167.7646484375 0.2992076874 - 0.9932450056 -9167.7187500000 0.3004135489 - 0.9933952689 -9166.3193359375 0.3016182780 - 0.9935438037 -9166.3896484375 0.3028222322 - 0.9936906695 -9166.3320312500 0.3040262759 - 0.9938358665 -9167.8535156250 0.3052309453 - 0.9939793944 -9166.6376953125 0.3064356744 - 0.9941211939 -9166.9882812500 0.3076391518 - 0.9942613840 -9166.2441406250 0.3088427484 - 0.9943997860 -9166.3388671875 0.3100452125 - 0.9945365787 -9165.6259765625 0.3112483025 - 0.9946716428 -9165.5566406250 0.3124511540 - 0.9948050380 -9165.7744140625 0.3136532009 - 0.9949367642 -9165.0830078125 0.3148568869 - 0.9950667620 -9165.6513671875 0.3160575032 - 0.9951950908 -9165.0859375000 0.3172598183 - 0.9953217506 -9165.1894531250 0.3184619844 - 0.9954466820 -9164.4501953125 0.3196621835 - 0.9955700040 -9165.4648437500 0.3208935559 - 0.9956915379 -9165.1132812500 0.3220934868 - 0.9958114624 -9165.4589843750 0.3232943118 - 0.9959296584 -9164.8701171875 0.3244949281 - 0.9960461855 -9166.9824218750 0.3257240653 - 0.9961609840 -9166.2656250000 0.3269237280 - 0.9962741733 -9166.8417968750 0.3281230330 - 0.9963855743 -9167.0898437500 0.3293522894 - 0.9964953661 -9166.3808593750 0.3305494487 - 0.9966034293 -9166.1796875000 0.3317481875 - 0.9967098236 -9165.7753906250 0.3329766691 - 0.9968144894 -9168.0869140625 0.3341741860 - 0.9969174862 -9168.8310546875 0.3353722990 - 0.9970188141 -9166.7109375000 0.3365685940 - 0.9971184731 -9166.5585937500 0.3377647996 - 0.9972164035 -9166.9238281250 0.3389619291 - 0.9973126054 -9167.2158203125 0.3401570618 - 0.9974071383 -9167.0634765625 0.3413524926 - 0.9975000024 -9165.9892578125 0.3425174356 - 0.9975911975 -9166.4433593750 0.3437123299 - 0.9976806641 -9164.5878906250 0.3448753059 - 0.9977684617 -9163.1220703125 0.3460696340 - 0.9978545308 -9163.1416015625 0.3472327590 - 0.9979389310 -9161.5849609375 0.3483947217 - 0.9980216622 -9161.3935546875 0.3495575190 - 0.9981026649 -9160.2099609375 0.3506881893 - 0.9981819987 -9157.5283203125 0.3518495262 - 0.9982596040 -9155.9873046875 0.3529790938 - 0.9983355999 -9154.7363281250 0.3541388810 - 0.9984098077 -9152.6279296875 0.3552679420 - 0.9984823465 -9151.7490234375 0.3564268351 - 0.9985532165 -9149.6718750000 0.3575550318 - 0.9986224174 -9147.0703125000 0.3586817980 - 0.9986898899 -9146.5058593750 0.3598397970 - 0.9987556934 -9144.5966796875 0.3609663844 - 0.9988197684 -9143.8750000000 0.3621232808 - 0.9988821745 -9139.8222656250 0.3632487655 - 0.9989428520 -9139.2343750000 0.3644044995 - 0.9990018606 -9139.1708984375 0.3655597866 - 0.9990592003 -9137.0117187500 0.3667151034 - 0.9991148114 -9135.5234375000 0.3678683937 - 0.9991687536 -9134.8125000000 0.3690539598 - 0.9992209673 -9136.2666015625 0.3702082038 - 0.9992715120 -9134.4482421875 0.3713920712 - 0.9993203282 -31861.1894531250 0.3742847145 - 0.9993674755 -31863.2324218750 0.3754984140 - 0.9994129539 -31861.9726562500 0.3767108321 - 0.9994567037 -31861.1894531250 0.3779238164 - 0.9994987845 -31863.3710937500 0.3791355193 - 0.9995391369 -31862.8066406250 0.3803463280 - 0.9995778203 -31863.3671875000 0.3815565407 - 0.9996148348 -31862.8222656250 0.3827657998 - 0.9996501207 -31865.5957031250 0.3839747310 - 0.9996836782 -31866.0273437500 0.3851834536 - 0.9997156262 -31865.9375000000 0.3863899708 - 0.9997457862 -31865.2480468750 0.3875962794 - 0.9997743368 -31868.2343750000 0.3888029754 - 0.9998010993 -31867.0546875000 0.3900072277 - 0.9998262525 -31869.5449218750 0.3912115395 - 0.9998496771 -31868.8437500000 0.3924149275 - 0.9998713732 -31870.4960937500 0.3936183453 - 0.9998914599 -31870.6933593750 0.3948198855 - 0.9999097586 -31870.2421875000 0.3960212171 - 0.9999263883 -31870.7851562500 0.3972216249 - 0.9999413490 -31870.0312500000 0.3984211981 - 0.9999546409 -31870.6152343750 0.3996194601 - 0.9999662042 -31871.7207031250 0.4008184373 - 0.9999760389 -31873.1855468750 0.4020159841 - 0.9999842048 -31872.2832031250 0.4032126665 - 0.9999907017 -31873.2285156250 0.4044077992 - 0.9999954700 -31872.4746093750 0.4056030810 - 0.9999985099 -31873.2246093750 0.4067974985 - 0.9999999404 -31872.5605468750 0.4079910517 - 0.9999995828 -31873.3105468750 0.4091837406 - 0.9999976158 -31873.9042968750 0.4103762209 - 0.9999939203 -31874.5800781250 0.4115676582 - 0.9999884963 -31873.5546875000 0.4127583504 - 0.9999814034 -31873.2109375000 0.4139478803 - 0.9999726415 -31872.9804687500 0.4151363373 - 0.9999621511 -31873.2851562500 0.4163247943 - 0.9999499321 -31873.1953125000 0.4175123572 - 0.9999361038 -31874.5175781250 0.4186989665 - 0.9999204874 -31872.2675781250 0.4198850095 - 0.9999032617 -31873.8417968750 0.4210696220 - 0.9998843074 -31872.1445312500 0.4222542644 - 0.9998636246 -31871.1777343750 0.4234372377 - 0.9998412728 -31873.6347656250 0.4246199131 - 0.9998172522 -31871.2910156250 0.4258024991 - 0.9997915030 -31870.8378906250 0.4269830287 - 0.9997640848 -31871.6367187500 0.4281636178 - 0.9997349381 -31872.6914062500 0.4293433130 - 0.9997041225 -31871.5468750000 0.4305225909 - 0.9996715784 -31872.7226562500 0.4317006767 - 0.9996373653 -31870.4199218750 0.4328768849 - 0.9996014833 -31870.6191406250 0.4340531826 - 0.9995638728 -31871.2050781250 0.4352296293 - 0.9995245934 -31872.4765625000 0.4364044666 - 0.9994835854 -31871.9023437500 0.4375787973 - 0.9994409084 -31872.9550781250 0.4387512505 - 0.9993965030 -31872.8046875000 0.4399245083 - 0.9993504286 -31873.0234375000 0.4410954416 - 0.9993026257 -31872.1738281250 0.4422667623 - 0.9992532134 -31870.8925781250 0.4434360862 - 0.9992020130 -31872.8203125000 0.4446056187 - 0.9991491437 -31873.3125000000 0.4457744658 - 0.9990946054 -31872.0214843750 0.4469418228 - 0.9990383983 -31871.3769531250 0.4481076300 - 0.9989804626 -31872.2363281250 0.4492740035 - 0.9989207983 -31871.9199218750 0.4504389167 - 0.9988594651 -31872.4531250000 0.4516038001 - 0.9987964630 -31872.0000000000 0.4527673423 - 0.9987317920 -31872.0664062500 0.4539299607 - 0.9986653328 -31872.3750000000 0.4550922811 - 0.9985972643 -31872.4257812500 0.4562531710 - 0.9985274673 -31873.0449218750 0.4574130774 - 0.9984560013 -31871.0019531250 0.4585716724 - 0.9983828068 -31872.0722656250 0.4597309828 - 0.9983079433 -31871.5292968750 0.4608885646 - 0.9982314110 -31873.3437500000 0.4620455205 - 0.9981531501 -31870.7617187500 0.4632010460 - 0.9980732203 -31871.2695312500 0.4643568397 - 0.9979915619 -31870.7636718750 0.4655110836 - 0.9979082346 -31872.3476562500 0.4666648209 - 0.9978231788 -31870.1972656250 0.4678175747 - 0.9977365136 -31871.7402343750 0.4689690173 - 0.9976480603 -31871.9453125000 0.4701207578 - 0.9975579977 -31872.3339843750 0.4712703228 - 0.9974662066 -31871.4238281250 0.4724196792 - 0.9973727465 -31871.9804687500 0.4735678136 - 0.9972775578 -31871.8828125000 0.4747153223 - 0.9971807003 -31873.0078125000 0.4758622646 - 0.9970821738 -31871.6953125000 0.4770084321 - 0.9969819188 -31871.4492187500 0.4781528413 - 0.9968799949 -31872.6523437500 0.4792965055 - 0.9967763424 -31870.7382812500 0.4804401696 - 0.9966710210 -31872.2949218750 0.4815826416 - 0.9965640306 -31872.6660156250 0.4827243090 - 0.9964553714 -31871.4316406250 0.4838640988 - 0.9963449836 -31871.9003906250 0.4850049913 - 0.9962329268 -31873.5937500000 0.4861440361 - 0.9961191416 -31870.6621093750 0.4872819483 - 0.9960036874 -31873.0878906250 0.4884188473 - 0.9958865643 -31872.0703125000 0.4895553887 - 0.9957677126 -31871.6875000000 0.4906904697 - 0.9956472516 -31872.4472656250 0.4918252230 - 0.9955250025 -31872.6718750000 0.4929582477 - 0.9954011440 -31870.8613281250 0.4940919876 - 0.9952755570 -31871.0605468750 0.4952237606 - 0.9951483011 -31871.1855468750 0.4963550568 - 0.9950193167 -31870.9843750000 0.4974843562 - 0.9948887229 -31871.7363281250 0.4986145794 - 0.9947564006 -31871.8164062500 0.4997422099 - 0.9946223497 -31871.9179687500 0.5008700490 - 0.9944866896 -31870.3378906250 0.5019959211 - 0.9943493009 -31871.9902343750 0.5031220317 - 0.9942102432 -31871.3046875000 0.5042461157 - 0.9940694571 -31870.1582031250 0.5053703785 - 0.9939270020 -31871.7187500000 0.5064931512 - 0.9937828779 -31873.0292968750 0.5076161623 - 0.9936370850 -31871.0781250000 0.5087364912 - 0.9934896231 -31873.9316406250 0.5098569989 - 0.9933404326 -31872.8125000000 0.5109758377 - 0.9931895733 -31871.8203125000 0.5120931268 - 0.9930369854 -31870.6835937500 0.5132116675 - 0.9928827882 -31871.6953125000 0.5143280625 - 0.9927268624 -31871.9746093750 0.5154443979 - 0.9925692677 -31871.7226562500 0.5165575743 - 0.9924100041 -31872.6777343750 0.5176721215 - 0.9922490120 -31872.9179687500 0.5187849402 - 0.9920863509 -31871.1757812500 0.5198965669 - 0.9919220209 -31873.3066406250 0.5210077167 - 0.9917560220 -31872.7597656250 0.5221182704 - 0.9915883541 -31870.7207031250 0.5232264996 - 0.9914189577 -31869.9433593750 0.5243347287 - 0.9912479520 -31872.1250000000 0.5254427195 - 0.9910752177 -31870.3437500000 0.5265484452 - 0.9909007549 -31870.8496093750 0.5276535749 - 0.9907246828 -31872.6972656250 0.5287579894 - 0.9905469418 -31873.0019531250 0.5298617482 - 0.9903674722 -31870.6289062500 0.5309630632 - 0.9901863337 -31870.3203125000 0.5320659876 - 0.9900035262 -31872.1308593750 0.5331655741 - 0.9898190498 -31872.0136718750 0.5342657566 - 0.9896328449 -31872.4335937500 0.5353641510 - 0.9894450307 -31871.4511718750 0.5364623666 - 0.9892554879 -31871.9746093750 0.5375579000 - 0.9890642762 -31870.7753906250 0.5386551619 - 0.9888713956 -31870.5898437500 0.5397493243 - 0.9886768460 -31870.7265625000 0.5408434868 - 0.9884806275 -31872.1308593750 0.5419352651 - 0.9882827401 -31872.9062500000 0.5430284142 - 0.9880831838 -31870.5390625000 0.5441179276 - 0.9878818989 -31871.4101562500 0.5452087522 - 0.9876789451 -31873.3593750000 0.5462980270 - 0.9874743819 -31872.9882812500 0.5473855734 - 0.9872680902 -31870.8183593750 0.5484720469 - 0.9870601296 -31871.9531250000 0.5495578647 - 0.9868505001 -31871.6406250000 0.5506431460 - 0.9866392016 -31872.9570312500 0.5517269969 - 0.9864262342 -31870.6582031250 0.5528103709 - 0.9862115979 -31872.3085937500 0.5538921952 - 0.9859952927 -31870.9316406250 0.5549736619 - 0.9857772589 -31872.3144531250 0.5560534596 - 0.9855576158 -31870.1933593750 0.5571321249 - 0.9853363037 -31872.4453125000 0.5582104921 - 0.9851132631 -31870.8945312500 0.5592873693 - 0.9848886132 -31870.3515625000 0.5603627563 - 0.9846622944 -31871.6210937500 0.5614386797 - 0.9844342470 -31871.8925781250 0.5625119805 - 0.9842045903 -31870.8496093750 0.5635849237 - 0.9839732647 -31870.3320312500 0.5646573901 - 0.9837402105 -31872.6523437500 0.5657283664 - 0.9835055470 -31870.9003906250 0.5667979717 - 0.9832692146 -31872.7460937500 0.5678668618 - 0.9830311537 -31871.8339843750 0.5689353347 - 0.9827914834 -31871.4765625000 0.5700027943 - 0.9825501442 -31869.9824218750 0.5710679293 - 0.9823071361 -31871.7324218750 0.5721320510 - 0.9820624590 -31872.1210937500 0.5731965899 - 0.9818160534 -31872.7070312500 0.5742592216 - 0.9815680981 -31872.2910156250 0.5753211975 - 0.9813184142 -31870.4179687500 0.5763815641 - 0.9810670614 -31871.0917968750 0.5774413347 - 0.9808140397 -31871.1484375000 0.5784998536 - 0.9805594087 -31871.3378906250 0.5795568824 - 0.9803030491 -31872.3554687500 0.5806139708 - 0.9800450802 -31871.8808593750 0.5816690326 - 0.9797853827 -31871.3066406250 0.5827231407 - 0.9795240760 -31872.5390625000 0.5837767124 - 0.9792611003 -31871.7929687500 0.5848301649 - 0.9789964557 -31871.5214843750 0.5858800411 - 0.9787302017 -31871.7832031250 0.5869311094 - 0.9784622192 -31871.8027343750 0.5879793167 - 0.9781926274 -31871.9941406250 0.5890281200 - 0.9779213667 -31871.1601562500 0.5900744200 - 0.9776484370 -31870.7617187500 0.5911215544 - 0.9773738384 -31873.4843750000 0.5921665430 - 0.9770975709 -31873.6308593750 0.5932094455 - 0.9768196940 -31871.9531250000 0.5942520499 - 0.9765401483 -31870.6191406250 0.5952931046 - 0.9762589335 -31870.6914062500 0.5963343382 - 0.9759760499 -31871.9179687500 0.5973745584 - 0.9756915569 -31871.9511718750 0.5984134078 - 0.9754053354 -31873.0410156250 0.5994497538 - 0.9751175046 -31871.3652343750 0.6004859805 - 0.9748280644 -31872.1132812500 0.6015207171 - 0.9745368958 -31872.0546875000 0.6025553942 - 0.9742441177 -31872.3359375000 0.6035887003 - 0.9739496708 -31870.7402343750 0.6046210527 - 0.9736535549 -31871.7304687500 0.6056514978 - 0.9733558297 -31873.5507812500 0.6066799760 - 0.9730564356 -31871.5488281250 0.6077097654 - 0.9727554321 -31871.0878906250 0.6087371707 - 0.9724527001 -31871.2089843750 0.6097640395 - 0.9721483588 -31871.8105468750 0.6107887626 - 0.9718424082 -31873.3652343750 0.6118144393 - 0.9715347290 -31872.4492187500 0.6128365993 - 0.9712254405 -31872.2480468750 0.6138586402 - 0.9709145427 -31871.4746093750 0.6148797274 - 0.9706019759 -31870.5078125000 0.6158993840 - 0.9702877402 -31872.5390625000 0.6169186831 - 0.9699718952 -31871.5078125000 0.6179366112 - 0.9696543813 -31871.6093750000 0.6189521551 - 0.9693351984 -31870.8320312500 0.6199681163 - 0.9690144062 -31872.3183593750 0.6209831238 - 0.9686919451 -31871.6035156250 0.6219956875 - 0.9683678746 -31872.3750000000 0.6230083108 - 0.9680421352 -31872.2031250000 0.6240177155 - 0.9677147865 -31871.8339843750 0.6250281930 - 0.9673857689 -31872.4472656250 0.6260362864 - 0.9670551419 -31872.1757812500 0.6270461082 - 0.9667228460 -31871.9785156250 0.6280512214 - 0.9663889408 -31871.4179687500 0.6290568113 - 0.9660533667 -31871.3359375000 0.6300601363 - 0.9657161832 -31873.3906250000 0.6310639977 - 0.9653773308 -31871.3769531250 0.6320663095 - 0.9650368094 -31871.0273437500 0.6330676079 - 0.9646947384 -31871.2636718750 0.6340663433 - 0.9643509984 -31869.3515625000 0.6350650191 - 0.9640055895 -31871.0312500000 0.6360624433 - 0.9636585712 -31872.7031250000 0.6370594501 - 0.9633099437 -31872.6464843750 0.6380557418 - 0.9629596472 -31872.6093750000 0.6390478611 - 0.9626077414 -31871.3164062500 0.6400413513 - 0.9622541666 -31872.6425781250 0.6410322189 - 0.9618989825 -31872.6914062500 0.6420245171 - 0.9615421891 -31870.9023437500 0.6430131793 - 0.9611837268 -31871.0429687500 0.6440017223 - 0.9608236551 -31871.8652343750 0.6449888349 - 0.9604619741 -31871.7207031250 0.6459749341 - 0.9600986242 -31872.6464843750 0.6469595432 - 0.9597336650 -31871.7910156250 0.6479448676 - 0.9593670964 -31870.6074218750 0.6489266157 - 0.9589989185 -31870.0136718750 0.6499078870 - 0.9586290717 -31871.4257812500 0.6508888602 - 0.9582576156 -31873.0527343750 0.6518674493 - 0.9578844905 -31872.1464843750 0.6528463960 - 0.9575098157 -31872.1933593750 0.6538226604 - 0.9571334720 -31871.7324218750 0.6547989845 - 0.9567555189 -31872.2148437500 0.6557733417 - 0.9563759565 -31872.7382812500 0.6567477584 - 0.9559947252 -31870.4511718750 0.6577192545 - 0.9556118846 -31872.1015625000 0.6586911678 - 0.9552274942 -31871.7558593750 0.6596606374 - 0.9548414350 -31872.1855468750 0.6606298685 - 0.9544537067 -31872.4335937500 0.6615983248 - 0.9540644288 -31871.9472656250 0.6625661850 - 0.9536735415 -31871.0468750000 0.6635307074 - 0.9532809854 -31872.1757812500 0.6644952893 - 0.9528868198 -31872.4179687500 0.6654583216 - 0.9524910450 -31872.3886718750 0.6664214134 - 0.9520937204 -31873.0742187500 0.6673822403 - 0.9516947269 -31872.0429687500 0.6683414578 - 0.9512941241 -31873.3593750000 0.6693012714 - 0.9508918524 -31873.2714843750 0.6702583432 - 0.9504880309 -31870.8593750000 0.6712150574 - 0.9500826001 -31872.9804687500 0.6721701622 - 0.9496755600 -31871.0136718750 0.6731242537 - 0.9492669106 -31871.8242187500 0.6740774512 - 0.9488565922 -31872.0664062500 0.6750294566 - 0.9484447241 -31870.5136718750 0.6759807467 - 0.9480312467 -31871.9316406250 0.6769303083 - 0.9476161599 -31871.8398437500 0.6778777838 - 0.9471994638 -31869.7851562500 0.6788263917 - 0.9467811584 -31872.9902343750 0.6797727942 - 0.9463612437 -31870.8437500000 0.6807186007 - 0.9459397197 -31871.5664062500 0.6816620231 - 0.9455165863 -31871.5234375000 0.6826055646 - 0.9450918436 -31872.5585937500 0.6835468411 - 0.9446655512 -31871.4003906250 0.6844882369 - 0.9442375898 -31872.1835937500 0.6854279637 - 0.9438080788 -31871.6406250000 0.6863664389 - 0.9433769584 -31872.5898437500 0.6873039603 - 0.9429442286 -31873.4277343750 0.6882413626 - 0.9425098896 -31873.0937500000 0.6891767979 - 0.9420739412 -31871.6933593750 0.6901104450 - 0.9416364431 -31871.1542968750 0.6910434365 - 0.9411972761 -31872.6679687500 0.6919750571 - 0.9407565594 -31872.2578125000 0.6929073930 - 0.9403142929 -31872.7089843750 0.6938362122 - 0.9398703575 -31872.3378906250 0.6947653890 - 0.9394248724 -31873.6855468750 0.6956927776 - 0.9389777780 -31871.4765625000 0.6966195107 - 0.9385290742 -31872.4375000000 0.6975457072 - 0.9380788207 -31871.2304687500 0.6984695792 - 0.9376269579 -31872.2636718750 0.6993933916 - 0.9371734858 -31872.8535156250 0.7003167272 - 0.9367184639 -31873.4980468750 0.7012376785 - 0.9362618327 -31872.2792968750 0.7021582127 - 0.9358035922 -31872.5117187500 0.7030762434 - 0.9353438020 -31872.5781250000 0.7039961219 - 0.9348824024 -31872.9667968750 0.7049140930 - 0.9344194531 -31871.9882812500 0.7058295012 - 0.9339548945 -31873.1855468750 0.7067447901 - 0.9334887266 -31871.2070312500 0.7076582313 - 0.9330210090 -31871.3066406250 0.7085730433 - 0.9325516820 -31872.3359375000 0.7094841003 - 0.9320808053 -31872.4667968750 0.7103958726 - 0.9316083193 -31872.8925781250 0.7113068700 - 0.9311342835 -31872.7558593750 0.7122157812 - 0.9306586385 -31872.4238281250 0.7131235600 - 0.9301814437 -31872.2050781250 0.7140302658 - 0.9297026396 -31872.1289062500 0.7149380445 - 0.9292222857 -31873.0351562500 0.7158444524 - 0.9287403822 -31872.1347656250 0.7167478800 - 0.9282568693 -31872.2929687500 0.7176510096 - 0.9277717471 -31873.1542968750 0.7185545564 - 0.9272851348 -31871.7363281250 0.7194557190 - 0.9267969131 -31870.8945312500 0.7203569412 - 0.9263070822 -31872.0214843750 0.7212570906 - 0.9258157015 -31873.9414062500 0.7221562862 - 0.9253227711 -31871.5019531250 0.7230541706 - 0.9248282909 -31873.0253906250 0.7239518762 - 0.9243322015 -31873.5722656250 0.7248479128 - 0.9238345623 -31872.7421875000 0.7257437706 - 0.9233353138 -31871.2968750000 0.7266384363 - 0.9228345752 -31871.0390625000 0.7275319695 - 0.9223322272 -31871.7324218750 0.7284246087 - 0.9218283296 -31872.2773437500 0.7293167114 - 0.9213228822 -31872.5175781250 0.7302093506 - 0.9208158255 -31873.2890625000 0.7311004996 - 0.9203072190 -31872.5664062500 0.7319894433 - 0.9197970629 -31872.1308593750 0.7328789830 - 0.9192853570 -31872.5078125000 0.7337656021 - 0.9187721014 -31871.8046875000 0.7346550226 - 0.9182572961 -31873.0839843750 0.7355421185 - 0.9177408814 -31871.6582031250 0.7364282012 - 0.9172229767 -31873.8066406250 0.7373137474 - 0.9167034626 -31872.5937500000 0.7381977439 - 0.9161823988 -31872.8046875000 0.7390828133 - 0.9156598449 -31872.5527343750 0.7399666905 - 0.9151356816 -31871.7656250000 0.7408480644 - 0.9146099687 -31871.6328125000 0.7417304516 - 0.9140827060 -31871.9101562500 0.7426121235 - 0.9135538936 -31870.9902343750 0.7434937358 - 0.9130235314 -31871.6660156250 0.7443734407 - 0.9124916196 -31873.0996093750 0.7452532053 - 0.9119581580 -31871.5468750000 0.7461317182 - 0.9114232063 -31870.5234375000 0.7470095754 - 0.9108866453 -31873.6230468750 0.7478895187 - 0.9103485942 -31873.0566406250 0.7487666011 - 0.9098089337 -31873.6796875000 0.7496427298 - 0.9092677832 -31871.4453125000 0.7505198717 - 0.9087250233 -31874.8359375000 0.7513972521 - 0.9081807733 -31871.8828125000 0.7522709370 - 0.9076350331 -31871.4609375000 0.7531467676 - 0.9070876837 -31872.1250000000 0.7540212274 - 0.9065387845 -31872.8457031250 0.7548956871 - 0.9059883952 -31873.5214843750 0.7557699084 - 0.9054364562 -31871.8769531250 0.7566443086 - 0.9048829675 -31872.7558593750 0.7575160265 - 0.9043279886 -31873.8144531250 0.7583903670 - 0.9037714005 -31871.3632812500 0.7592634559 - 0.9032133222 -31873.0429687500 0.7601355314 - 0.9026537538 -31873.1523437500 0.7610073090 - 0.9020925760 -31872.5371093750 0.7618775964 - 0.9015299082 -31871.3613281250 0.7627502084 - 0.9009657502 -31872.7324218750 0.7636213899 - 0.9003999829 -31871.9472656250 0.7644925714 - 0.8998327255 -31872.3242187500 0.7653648853 - 0.8992639780 -31872.6914062500 0.7662343383 - 0.8986936808 -31871.6308593750 0.7671061158 - 0.8981218338 -31873.7792968750 0.7679770589 - 0.8975484967 -31872.5820312500 0.7688473463 - 0.8969736099 -31871.4121093750 0.7697176337 - 0.8963972330 -31872.5000000000 0.7705879211 - 0.8958193064 -31871.6425781250 0.7714596391 - 0.8952398896 -31872.3750000000 0.7723293900 - 0.8946589231 -31872.8769531250 0.7732009292 - 0.8940764666 -31870.8808593750 0.7740693092 - 0.8934925199 -31873.3417968750 0.7749423981 - 0.8929070234 -31872.6015625000 0.7758117914 - 0.8923199773 -31872.7500000000 0.7766839266 - 0.8917315006 -31873.7304687500 0.7775542140 - 0.8911414742 -31870.9726562500 0.7784249783 - 0.8905498981 -31872.2929687500 0.7792966962 - 0.8899568319 -31872.3437500000 0.7801697254 - 0.8893622756 -31872.9804687500 0.7810417414 - 0.8887662292 -31872.0859375000 0.7819133401 - 0.8881686330 -31872.7949218750 0.7827865481 - 0.8875695467 -31872.8613281250 0.7836599946 - 0.8869689703 -31872.5371093750 0.7845306396 - 0.8863669038 -31872.5039062500 0.7854048610 - 0.8857632875 -31872.8261718750 0.7862806916 - 0.8851581812 -31872.8242187500 0.7871538997 - 0.8845515847 -31873.6113281250 0.7880296111 - 0.8839434981 -31873.7988281250 0.7889055014 - 0.8833339214 -31873.0605468750 0.7897818089 - 0.8827227950 -31873.1308593750 0.7906582952 - 0.8821102381 -31874.2382812500 0.7915330529 - 0.8814961314 -31872.7675781250 0.7924125791 - 0.8808805346 -31874.0136718750 0.7932903767 - 0.8802635074 -31873.6054687500 0.7941679358 - 0.8796449304 -31871.4296875000 0.7950472832 - 0.8790248632 -31871.5410156250 0.7959268093 - 0.8784033060 -31872.0351562500 0.7968091369 - 0.8777802587 -31872.0214843750 0.7976893783 - 0.8771557808 -31873.4785156250 0.7985712290 - 0.8765297532 -31871.7714843750 0.7994565964 - 0.8759022355 -31871.3437500000 0.8003389835 - 0.8752732873 -31872.8632812500 0.8012214899 - 0.8746427894 -31870.9375000000 0.8021103740 - 0.8740108609 -31872.7558593750 0.8029944897 - 0.8733774424 -31871.9941406250 0.8038821220 - 0.8727424741 -31872.8593750000 0.8047696948 - 0.8721061349 -31872.2675781250 0.8056613207 - 0.8714682460 -31870.8105468750 0.8065491319 - 0.8708288670 -31873.1464843750 0.8074395657 - 0.8701880574 -31871.5546875000 0.8083320260 - 0.8695457578 -31872.2578125000 0.8092241287 - 0.8689019680 -31873.3457031250 0.8101186156 - 0.8682567477 -31871.5234375000 0.8110152483 - 0.8676100373 -31872.3554687500 0.8119121790 - 0.8669618368 -31872.0917968750 0.8128084540 - 0.8663122058 -31871.7382812500 0.8137047291 - 0.8656610250 -31872.2519531250 0.8146063089 - 0.8650084734 -31872.1015625000 0.8155064583 - 0.8643543720 -31872.1445312500 0.8164077401 - 0.8636988401 -31874.0546875000 0.8173089027 - 0.8630418777 -31873.3437500000 0.8182129860 - 0.8623834252 -31873.3125000000 0.8191180229 - 0.8617234826 -31871.9531250000 0.8200238943 - 0.8610621095 -31873.6132812500 0.8209312558 - 0.8603993058 -31872.8007812500 0.8218412399 - 0.8597349524 -31871.3183593750 0.8227435946 - 0.8590692282 -31872.7460937500 0.8236592412 - 0.8584020138 -31871.6738281250 0.8245736361 - 0.8577333689 -31872.4589843750 0.8254822493 - 0.8570632339 -31872.0449218750 0.8263983130 - 0.8563916683 -31872.7265625000 0.8273127675 - 0.8557186127 -31871.9746093750 0.8282274604 - 0.8550441265 -31873.2324218750 0.8291483521 - 0.8543682098 -31873.1308593750 0.8300687671 - 0.8536908627 -31871.5917968750 0.8309877515 - 0.8530120254 -31873.7500000000 0.8319083452 - 0.8523317575 -31872.3476562500 0.8328288198 - 0.8516500592 -31872.2148437500 0.8337522149 - 0.8509668708 -31873.3730468750 0.8346757889 - 0.8502822518 -31872.1855468750 0.8356005549 - 0.8495962620 -31871.9589843750 0.8365270495 - 0.8489087820 -31873.4609375000 0.8374551535 - 0.8482198119 -31873.3378906250 0.8383868337 - 0.8475294709 -31873.2636718750 0.8393127322 - 0.8468376994 -31873.7597656250 0.8402452469 - 0.8461444378 -31873.4414062500 0.8411773443 - 0.8454498053 -31872.7597656250 0.8421118855 - 0.8447536826 -31872.5253906250 0.8430448174 - 0.8440561295 -31871.6816406250 0.8439795375 - 0.8433572054 -31873.4277343750 0.8449134231 - 0.8426567912 -31872.6289062500 0.8458504081 - 0.8419549465 -31872.7011718750 0.8467825651 - 0.8412517309 -31873.5859375000 0.8477223516 - 0.8405470252 -31874.0156250000 0.8486590981 - 0.8398409486 -31873.3183593750 0.8495997190 - 0.8391334414 -31871.7597656250 0.8505408764 - 0.8384244442 -31871.6289062500 0.8514794111 - 0.8377140760 -31872.7480468750 0.8524184227 - 0.8370022774 -31873.5546875000 0.8533596396 - 0.8362891078 -31873.3164062500 0.8542966843 - 0.8355744481 -31871.8593750000 0.8552391529 - 0.8348584175 -31873.5566406250 0.8561835289 - 0.8341409564 -31871.9492187500 0.8571226597 - 0.8334221244 -31872.6132812500 0.8580629826 - 0.8327018023 -31870.9765625000 0.8590069413 - 0.8319801092 -31873.4296875000 0.8599480987 - 0.8312569857 -31872.8925781250 0.8608939648 - 0.8305324912 -31872.7910156250 0.8618342280 - 0.8298065662 -31873.0156250000 0.8627794981 - 0.8290792108 -31872.5449218750 0.8637145758 - 0.8283504844 -31872.1406250000 0.8646599650 - 0.8276203275 -31874.2363281250 0.8655977249 - 0.8268887997 -31872.7734375000 0.8665409684 - 0.8261558414 -31873.8730468750 0.8674809933 - 0.8254215121 -31873.6445312500 0.8684225678 - 0.8246857524 -31872.8769531250 0.8693630695 - 0.8239486217 -31872.9023437500 0.8702982068 - 0.8232100606 -31874.7675781250 0.8712353706 - 0.8224701285 -31872.5781250000 0.8721668720 - 0.8217288256 -31873.6425781250 0.8731029630 - 0.8209860921 -31872.9980468750 0.8740429878 - 0.8202419877 -31871.8691406250 0.8749709129 - 0.8194964528 -31874.0039062500 0.8759025931 - 0.8187495470 -31872.3242187500 0.8768256307 - 0.8180012703 -31872.6855468750 0.8777670264 - 0.8172515631 -31873.0546875000 0.8786900640 - 0.8165005445 -31872.8593750000 0.8796149492 - 0.8157480955 -31873.3281250000 0.8805371523 - 0.8149942756 -31873.2109375000 0.8814589381 - 0.8142390847 -31872.5546875000 0.8823819160 - 0.8134824634 -31873.2363281250 0.8832952976 - 0.8127245307 -31873.2246093750 0.8842178583 - 0.8119651675 -31872.9023437500 0.8851324320 - 0.8112044334 -31873.1464843750 0.8860409856 - 0.8104423285 -31873.0683593750 0.8869457245 - 0.8096788526 -31873.5078125000 0.8878556490 - 0.8089140058 -31872.4550781250 0.8887619972 - 0.8081477880 -31872.3242187500 0.8896593451 - 0.8073801994 -31873.4492187500 0.8905622959 - 0.8066112399 -31873.0351562500 0.8914576769 - 0.8058409691 -31873.1328125000 0.8923469782 - 0.8050692677 -31872.9101562500 0.8932372332 - 0.8042961955 -31873.1191406250 0.8941249251 - 0.8035218120 -31873.3105468750 0.8950129747 - 0.8027459979 -31872.4785156250 0.8958879709 - 0.8019688725 -31873.2871093750 0.8967698812 - 0.8011903763 -31873.1425781250 0.8976404071 - 0.8004105091 -31872.8574218750 0.8985114694 - 0.7996292710 -31873.0449218750 0.8993775845 - 0.7988467216 -31872.6621093750 0.9002357125 - 0.7980628014 -31872.2050781250 0.9011015892 - 0.7972775102 -31873.9843750000 0.9019530416 - 0.7964909077 -31871.9335937500 0.9028065801 - 0.7957029343 -31872.8437500000 0.9036475420 - 0.7949135900 -31873.6210937500 0.9044957161 - 0.7941229343 -31872.6464843750 0.9053373337 - 0.7933309078 -31874.8027343750 0.9061657786 - 0.7925375104 -31873.0214843750 0.9069988132 - 0.7917428017 -31872.8945312500 0.9078223705 - 0.7909467220 -31873.5859375000 0.9086454511 - 0.7901493311 -31873.7949218750 0.9094614387 - 0.7893506289 -31872.5664062500 0.9102740884 - 0.7885505557 -31874.1933593750 0.9110839367 - 0.7877491117 -31872.2265625000 0.9118884206 - 0.7869463563 -31872.6445312500 0.9126886129 - 0.7861422896 -31872.9335937500 0.9134755135 - 0.7853369117 -31872.7167968750 0.9142666459 - 0.7845301628 -31872.7910156250 0.9150509834 - 0.7837221026 -31873.5761718750 0.9158309102 - 0.7829126716 -31870.9628906250 0.9166061282 - 0.7821019292 -31872.5253906250 0.9173727632 - 0.7812898755 -31871.8222656250 0.9181364775 - 0.7804765105 -31873.4492187500 0.9188953638 - 0.7796617746 -31871.6933593750 0.9196491241 - 0.7788457870 -31873.2929687500 0.9203990698 - 0.7780284286 -31873.6660156250 0.9211418629 - 0.7772097588 -31872.7246093750 0.9218797684 - 0.7763897777 -31871.6933593750 0.9226123691 - 0.7755684853 -31871.6347656250 0.9233385921 - 0.7747458816 -31873.3359375000 0.9240615368 - 0.7739219069 -31874.1523437500 0.9247812629 - 0.7730966806 -31873.5820312500 0.9254936576 - 0.7722701430 -31872.8105468750 0.9262000322 - 0.7714422941 -31872.5468750000 0.9268980622 - 0.7706131339 -31873.3281250000 0.9275934696 - 0.7697826624 -31871.6582031250 0.9282807708 - 0.7689508796 -31872.6074218750 0.9289711714 - 0.7681177855 -31872.7460937500 0.9296478629 - 0.7672833800 -31873.5722656250 0.9303228259 - 0.7664477229 -31873.5976562500 0.9309898615 - 0.7656106949 -31873.0996093750 0.9316542149 - 0.7647724152 -31873.1191406250 0.9323098063 - 0.7639328241 -31873.4003906250 0.9329620004 - 0.7630919814 -31871.8437500000 0.9336095452 - 0.7622498274 -31872.0664062500 0.9342473745 - 0.7614063621 -31873.3085937500 0.9348881841 - 0.7605615854 -31872.1132812500 0.9355159998 - 0.7597155571 -31872.3105468750 0.9361419678 - 0.7588682175 -31873.6757812500 0.9367612004 - 0.7580195665 -31871.6015625000 0.9373756647 - 0.7571696639 -31872.9921875000 0.9379858971 - 0.7563185096 -31873.0625000000 0.9385880232 - 0.7554660439 -31871.7558593750 0.9391857982 - 0.7546122670 -31872.5429687500 0.9397779107 - 0.7537572384 -31871.9648437500 0.9403670430 - 0.7529009581 -31872.4609375000 0.9409545064 - 0.7520433664 -31871.5683593750 0.9415265918 - 0.7511845231 -31872.8085937500 0.9421021938 - 0.7503243685 -31871.1757812500 0.9426649809 - 0.7494629622 -31872.6660156250 0.9432287216 - 0.7486003041 -31873.5976562500 0.9437872171 - 0.7477363348 -31871.7304687500 0.9443382025 - 0.7468711734 -31873.2558593750 0.9448862076 - 0.7460046411 -31873.2988281250 0.9454280734 - 0.7451369166 -31873.8339843750 0.9459633231 - 0.7442679405 -31871.8906250000 0.9464945793 - 0.7433976531 -31872.0097656250 0.9470229149 - 0.7425261140 -31872.2363281250 0.9475455880 - 0.7416533232 -31871.5839843750 0.9480614662 - 0.7407792807 -31872.0566406250 0.9485741854 - 0.7399039865 -31872.3945312500 0.9490839243 - 0.7390274405 -31871.6093750000 0.9495877624 - 0.7381496429 -31873.2558593750 0.9500841498 - 0.7372705936 -31872.3183593750 0.9505788684 - 0.7363902926 -31871.5859375000 0.9510664344 - 0.7355086803 -31872.9648437500 0.9515492320 - 0.7346258759 -31870.6777343750 0.9520292282 - 0.7337418795 -31872.2031250000 0.9525073767 - 0.7328565717 -31872.8593750000 0.9529765248 - 0.7319700122 -31871.8535156250 0.9534425139 - 0.7310822606 -31872.7714843750 0.9539060593 - 0.7301931977 -31870.7929687500 0.9543643594 - 0.7293029428 -31872.8457031250 0.9548161626 - 0.7284114957 -31871.2441406250 0.9552657008 - 0.7275187373 -31871.6582031250 0.9557135105 - 0.7266247869 -31873.3750000000 0.9561515450 - 0.7257295847 -31871.8613281250 0.9565876126 - 0.7248331904 -31872.0175781250 0.9570262432 - 0.7239355445 -31871.5429687500 0.9574524164 - 0.7230366468 -31871.4179687500 0.9578769803 - 0.7221365571 -31873.4863281250 0.9582988024 - 0.7212352157 -31873.9218750000 0.9587161541 - 0.7203326821 -31872.6425781250 0.9591295719 - 0.7194288969 -31874.0117187500 0.9595372677 - 0.7185239196 -31872.9433593750 0.9599457979 - 0.7176176906 -31872.9921875000 0.9603472352 - 0.7167102695 -31873.7089843750 0.9607446194 - 0.7158015966 -31873.5449218750 0.9611399770 - 0.7148917913 -31872.8300781250 0.9615300894 - 0.7139806747 -31872.8144531250 0.9619192481 - 0.7130684257 -31872.2109375000 0.9622989893 - 0.7121549249 -31872.4003906250 0.9626788497 - 0.7112402320 -31872.7675781250 0.9630600810 - 0.7103243470 -31872.6972656250 0.9634343386 - 0.7094072104 -31871.9785156250 0.9638026357 - 0.7084889412 -31872.8203125000 0.9641706347 - 0.7075694203 -31872.2167968750 0.9645323157 - 0.7066487074 -31872.2109375000 0.9648938775 - 0.7057268023 -31870.8632812500 0.9652491808 - 0.7048037052 -31873.6210937500 0.9656049609 - 0.7038794160 -31872.5351562500 0.9659575224 - 0.7029538751 -31872.3164062500 0.9663043022 - 0.7020272017 -31873.2109375000 0.9666486979 - 0.7010993361 -31870.6445312500 0.9669885635 - 0.7001702785 -31872.8085937500 0.9673340321 - 0.6992400289 -31872.1484375000 0.9676662087 - 0.6983085871 -31871.6425781250 0.9679977298 - 0.6973759532 -31872.2343750000 0.9683265686 - 0.6964421868 -31871.4843750000 0.9686586261 - 0.6955071688 -31872.3222656250 0.9689834118 - 0.6945710182 -31873.5468750000 0.9693051577 - 0.6936336756 -31871.3769531250 0.9696248770 - 0.6926952004 -31872.5117187500 0.9699386954 - 0.6917554736 -31872.2167968750 0.9702530503 - 0.6908146143 -31871.6621093750 0.9705650210 - 0.6898726225 -31872.6328125000 0.9708746076 - 0.6889293790 -31871.3105468750 0.9711745381 - 0.6879850030 -31872.2089843750 0.9714811444 - 0.6870394945 -31873.0625000000 0.9717857242 - 0.6860927939 -31872.8984375000 0.9720831513 - 0.6851449013 -31871.2792968750 0.9723764062 - 0.6841958761 -31873.6816406250 0.9726724029 - 0.6832457185 -31872.6250000000 0.9729626179 - 0.6822943687 -31871.7031250000 0.9732514024 - 0.6813418865 -31873.2695312500 0.9735403061 - 0.6803882122 -31872.7187500000 0.9738234282 - 0.6794334054 -31871.9453125000 0.9741061330 - 0.6784774065 -31871.4121093750 0.9743855596 - 0.6775203347 -31871.6894531250 0.9746627212 - 0.6765620708 -31874.7421875000 0.9749417901 - 0.6756026149 -31871.2441406250 0.9752125740 - 0.6746420860 -31873.3554687500 0.9754831791 - 0.6736803651 -31872.9335937500 0.9757555723 - 0.6727175713 -31873.4921875000 0.9760211706 - 0.6717535853 -31870.3671875000 0.9762812257 - 0.6707884669 -31871.4121093750 0.9765490890 - 0.6698222160 -31872.9277343750 0.9768091440 - 0.6688547730 -31871.5429687500 0.9770662785 - 0.6678862572 -31871.0410156250 0.9773257971 - 0.6669166088 -31871.5917968750 0.9775832891 - 0.6659458280 -31871.3789062500 0.9778347015 - 0.6649739146 -31871.5371093750 0.9780834913 - 0.6640008688 -31872.3476562500 0.9783378839 - 0.6630266905 -31872.6093750000 0.9785809517 - 0.6620513797 -31872.3242187500 0.9788271189 - 0.6610749960 -31873.6718750000 0.9790678620 - 0.6600974202 -31871.4335937500 0.9793204665 - 0.6591187716 -31873.0488281250 0.9795589447 - 0.6581389904 -31871.7089843750 0.9797964692 - 0.6571581364 -31872.2167968750 0.9800292850 - 0.6561760902 -31871.8593750000 0.9802693129 - 0.6551929712 -31872.3535156250 0.9805017114 - 0.6542087793 -31873.0683593750 0.9807326198 - 0.6532233953 -31872.4492187500 0.9809595942 - 0.6522369981 -31872.1113281250 0.9811922312 - 0.6512494087 -31871.5488281250 0.9814226627 - 0.6502607465 -31870.9746093750 0.9816449285 - 0.6492710114 -31871.0156250000 0.9818673134 - 0.6482801437 -31872.5742187500 0.9820920229 - 0.6472882032 -31873.3769531250 0.9823102355 - 0.6462951303 -31872.9609375000 0.9825289249 - 0.6453009844 -31871.3144531250 0.9827493429 - 0.6443057656 -31873.7519531250 0.9829691648 - 0.6433094144 -31871.8828125000 0.9831800461 - 0.6423119903 -31870.5468750000 0.9833897948 - 0.6413134336 -31871.6074218750 0.9836034775 - 0.6403138638 -31872.8691406250 0.9838138819 - 0.6393131614 -31872.0312500000 0.9840191603 - 0.6383113861 -31871.8867187500 0.9842352271 - 0.6373085380 -31872.9101562500 0.9844374657 - 0.6363046169 -31871.9121093750 0.9846438766 - 0.6352995634 -31871.8984375000 0.9848457575 - 0.6342934966 -31872.3027343750 0.9850500822 - 0.6332862973 -31872.7187500000 0.9852437377 - 0.6322780848 -31872.7402343750 0.9854485989 - 0.6312687397 -31872.3457031250 0.9856427908 - 0.6302583814 -31872.0664062500 0.9858403206 - 0.6292469501 -31871.1640625000 0.9860391021 - 0.6282343864 -31871.0039062500 0.9862344265 - 0.6272208095 -31873.0175781250 0.9864249825 - 0.6262061596 -31871.8671875000 0.9866150618 - 0.6251904368 -31872.7285156250 0.9868023396 - 0.6241737008 -31872.3085937500 0.9869955182 - 0.6231558919 -31872.3515625000 0.9871817231 - 0.6221370101 -31872.0898437500 0.9873650670 - 0.6211170554 -31873.2890625000 0.9875504375 - 0.6200960279 -31872.7031250000 0.9877328873 - 0.6190739870 -31871.9511718750 0.9879171848 - 0.6180509329 -31870.8710937500 0.9880973697 - 0.6170267463 -31872.2851562500 0.9882777333 - 0.6160016060 -31871.2500000000 0.9884543419 - 0.6149753332 -31873.5664062500 0.9886384606 - 0.6139481068 -31872.2128906250 0.9888095856 - 0.6129197478 -31872.4667968750 0.9889850020 - 0.6118904352 -31872.1972656250 0.9891561866 - 0.6108600497 -31872.4531250000 0.9893344045 - 0.6098285913 -31870.9687500000 0.9895049334 - 0.6087961197 -31871.4140625000 0.9896736741 - 0.6077626348 -31872.9726562500 0.9898409843 - 0.6067281365 -31873.2617187500 0.9900166392 - 0.6056925654 -31872.4980468750 0.9901786447 - 0.6046559811 -31871.3515625000 0.9903466105 - 0.6036183834 -31872.1250000000 0.9905112386 - 0.6025797725 -31871.1738281250 0.9906737208 - 0.6015400887 -31872.4902343750 0.9908416867 - 0.6004994512 -31871.3203125000 0.9909992218 - 0.5994577408 -31871.3085937500 0.9911581874 - 0.5984150171 -31870.6406250000 0.9913160205 - 0.5973713398 -31872.8515625000 0.9914804101 - 0.5963265896 -31869.6152343750 0.9916336536 - 0.5952808261 -31871.4511718750 0.9917854667 - 0.5942341089 -31871.7324218750 0.9919395447 - 0.5931863189 -31870.3710937500 0.9920893908 - 0.5921375751 -31871.7656250000 0.9922489524 - 0.5910878181 -31871.8066406250 0.9923996329 - 0.5900370479 -31870.8203125000 0.9925482869 - 0.5889852643 -31872.6523437500 0.9926961064 - 0.5879325271 -31870.7089843750 0.9928422570 - 0.5868787169 -31872.9628906250 0.9929939508 - 0.5858239532 -31873.3066406250 0.9931417704 - 0.5847682357 -31871.8750000000 0.9932816029 - 0.5837114453 -31872.8613281250 0.9934233427 - 0.5826537609 -31872.2558593750 0.9935658574 - 0.5815950036 -31872.1835937500 0.9937134981 - 0.5805352926 -31871.9843750000 0.9938507676 - 0.5794746280 -31870.9375000000 0.9939882755 - 0.5784129500 -31871.8105468750 0.9941285849 - 0.5773502588 -31872.0957031250 0.9942679405 - 0.5762866139 -31871.7832031250 0.9944009185 - 0.5752220154 -31871.5175781250 0.9945345521 - 0.5741564631 -31871.9921875000 0.9946709871 - 0.5730898976 -31870.4003906250 0.9948032498 - 0.5720223188 -31872.4238281250 0.9949398041 - 0.5709538460 -31871.9882812500 0.9950659871 - 0.5698843598 -31871.4667968750 0.9951958656 - 0.5688139200 -31871.9179687500 0.9953246117 - 0.5677425265 -31871.9218750000 0.9954518676 - 0.5666701794 -31872.9589843750 0.9955862761 - 0.5655968189 -31871.2343750000 0.9957076311 - 0.5645225644 -31869.7324218750 0.9958283305 - 0.5634472966 -31870.5117187500 0.9959487915 - 0.5623711348 -31871.6562500000 0.9960722327 - 0.5612939596 -31872.5371093750 0.9962010384 - 0.5602158904 -31871.5605468750 0.9963184595 - 0.5591368079 -31871.7148437500 0.9964334965 - 0.5580568314 -31870.8164062500 0.9965518117 - 0.5569759011 -31870.8320312500 0.9966680408 - 0.5558939576 -31872.7187500000 0.9967874289 - 0.5548111796 -31872.3574218750 0.9969030023 - 0.5537273884 -31871.1230468750 0.9970175624 - 0.5526426435 -31872.3671875000 0.9971306324 - 0.5515570045 -31872.6289062500 0.9972403646 - 0.5504704118 -31872.6445312500 0.9973464012 - 0.5493829250 -31870.9179687500 0.9974657893 - 0.5482944846 -31869.2011718750 0.9975714087 - 0.5472050905 -31871.0859375000 0.9976808429 - 0.5461148024 -31870.9589843750 0.9977779388 - 0.5450235605 -31871.1914062500 0.9978871346 - 0.5439314246 -31873.2207031250 0.9979996681 - 0.5428383350 -31871.1445312500 0.9980983138 - 0.5417443514 -31871.3300781250 0.9982009530 - 0.5406494141 -31871.8085937500 0.9983009100 - 0.5395535827 -31872.1093750000 0.9984010458 - 0.5384568572 -31872.1933593750 0.9985032082 - 0.5373591781 -31871.6367187500 0.9986031055 - 0.5362606049 -31871.9550781250 0.9986981750 - 0.5351611376 -31872.0937500000 0.9987896681 - 0.5340607166 -31871.6093750000 0.9988819957 - 0.5329594612 -31872.2343750000 0.9989761710 - 0.5318572521 -31870.6171875000 0.9990738034 - 0.5307541490 -31871.4257812500 0.9991665483 - 0.5296501517 -31871.4667968750 0.9992551804 - 0.5285452604 -31872.4082031250 0.9993431568 - 0.5274394751 -31870.4492187500 0.9994306564 - 0.5263327360 -31871.4160156250 0.9995188713 - 0.5252251625 -31871.9335937500 0.9996072650 - 0.5241166949 -31872.2695312500 0.9996907115 - 0.5230073333 -31873.2246093750 0.9997758269 - 0.5218971372 -31871.6347656250 0.9998545051 - 0.5207859874 -31871.0761718750 0.9999382496 - 0.5196739435 -31871.1953125000 1.0000188351 - 0.5185610652 -31871.3671875000 1.0001020432 - 0.5174472928 -31873.3984375000 1.0001795292 - 0.5163326263 -31871.7285156250 1.0002571344 - 0.5152171254 -31870.6464843750 1.0003296137 - 0.5141007304 -31872.3046875000 1.0004065037 - 0.5129834414 -31871.8437500000 1.0004849434 - 0.5118653178 -31871.9550781250 1.0005584955 - 0.5107463002 -31871.2773437500 1.0006325245 - 0.5096264482 -31872.9628906250 1.0006961823 - 0.5085057020 -31872.0214843750 1.0007635355 - 0.5073840618 -31871.7343750000 1.0008287430 - 0.5062616467 -31870.6582031250 1.0009073019 - 0.5051383376 -31870.5136718750 1.0009735823 - 0.5040141344 -31871.7753906250 1.0010353327 - 0.5028890967 -31873.6054687500 1.0010983944 - 0.5017632246 -31873.2851562500 1.0011577606 - 0.5006364584 -31870.7480468750 1.0012198687 - 0.4995089173 -31871.0156250000 1.0012900829 - 0.4983804822 -31871.9707031250 1.0013480186 - 0.4972512126 -31871.6406250000 1.0014066696 - 0.4961210787 -31871.4980468750 1.0014566183 - 0.4949901104 -31871.4160156250 1.0015127659 - 0.4938583374 -31871.5683593750 1.0015650988 - 0.4927257001 -31872.5273437500 1.0016201735 - 0.4915922284 -31871.2304687500 1.0016826391 - 0.4904579222 -31871.7460937500 1.0017315149 - 0.4893227816 -31872.3203125000 1.0017793179 - 0.4881868064 -31871.1894531250 1.0018260479 - 0.4870500267 -31871.3281250000 1.0018740892 - 0.4859124124 -31871.0292968750 1.0019185543 - 0.4847739637 -31870.2851562500 1.0019648075 - 0.4836347103 -31872.1601562500 1.0020122528 - 0.4824946225 -31872.6171875000 1.0020563602 - 0.4813537002 -31871.9746093750 1.0020978451 - 0.4802120030 -31871.6464843750 1.0021380186 - 0.4790694714 -31869.9746093750 1.0021781921 - 0.4779261053 -31871.4531250000 1.0022122860 - 0.4767819643 -31871.7441406250 1.0022591352 - 0.4756369889 -31872.5234375000 1.0022931099 - 0.4744912386 -31870.9843750000 1.0023301840 - 0.4733446538 -31872.7187500000 1.0023576021 - 0.4721972942 -31870.2636718750 1.0023908615 - 0.4710491002 -31870.8925781250 1.0024203062 - 0.4699001312 -31871.8808593750 1.0024600029 - 0.4687503576 -31871.4042968750 1.0024870634 - 0.4675997794 -31870.3691406250 1.0025111437 - 0.4664484262 -31870.8886718750 1.0025374889 - 0.4652962685 -31872.4628906250 1.0025639534 - 0.4641433358 -31870.1367187500 1.0025862455 - 0.4629895985 -31872.4082031250 1.0026071072 - 0.4618350863 -31870.8261718750 1.0026344061 - 0.4606797993 -31872.3281250000 1.0026555061 - 0.4595237374 -31870.4980468750 1.0026730299 - 0.4583668709 -31873.0000000000 1.0026886463 - 0.4572092295 -31871.6171875000 1.0027043819 - 0.4560508430 -31871.8730468750 1.0027184486 - 0.4548916519 -31870.8320312500 1.0027332306 - 0.4537317157 -31872.9746093750 1.0027428865 - 0.4525709748 -31873.2539062500 1.0027643442 - 0.4514094889 -31871.4218750000 1.0027717352 - 0.4502472281 -31870.6171875000 1.0027832985 - 0.4490842223 -31872.9765625000 1.0027875900 - 0.4479204416 -31872.1972656250 1.0027954578 - 0.4467559159 -31870.7812500000 1.0027981997 - 0.4455906153 -31870.6445312500 1.0028032064 - 0.4444245696 -31870.7382812500 1.0028023720 - 0.4432577491 -31871.8750000000 1.0028116703 - 0.4420902133 -31871.5136718750 1.0028127432 - 0.4409219027 -31872.3671875000 1.0028109550 - 0.4397528470 -31872.0937500000 1.0028071404 - 0.4385830462 -31872.0585937500 1.0028028488 - 0.4374125004 -31870.4746093750 1.0027976036 - 0.4362412393 -31870.6816406250 1.0027904510 - 0.4350692034 -31873.0761718750 1.0027898550 - 0.4338964522 -31872.6562500000 1.0027810335 - 0.4327229559 -31871.0449218750 1.0027698278 - 0.4315487146 -31870.4531250000 1.0027574301 - 0.4303737581 -31872.1679687500 1.0027438402 - 0.4291980565 -31870.0273437500 1.0027297735 - 0.4280216396 -31870.9062500000 1.0027148724 - 0.4268445075 -31872.7011718750 1.0027039051 - 0.4256666303 -31873.3027343750 1.0026868582 - 0.4244880378 -31871.0156250000 1.0026655197 - 0.4233087301 -31872.9746093750 1.0026437044 - 0.4221287072 -31872.8027343750 1.0026226044 - 0.4209479690 -31871.8046875000 1.0025973320 - 0.4197665155 -31872.1796875000 1.0025742054 - 0.4185843468 -31871.8261718750 1.0025455952 - 0.4174014628 -31870.8671875000 1.0025190115 - 0.4162178636 -31871.8867187500 1.0024988651 - 0.4150335789 -31872.7792968750 1.0024667978 - 0.4138485789 -31873.9296875000 1.0024363995 - 0.4126628935 -31871.2988281250 1.0024021864 - 0.4114764929 -31873.0156250000 1.0023670197 - 0.4102894068 -31871.8554687500 1.0023330450 - 0.4091016054 -31870.2324218750 1.0022947788 - 0.4079131186 -31871.4863281250 1.0022563934 - 0.4067239463 -31872.1484375000 1.0022175312 - 0.4055340886 -31870.3671875000 1.0021750927 - 0.4043435454 -31872.0937500000 1.0021408796 - 0.4031523168 -31871.8437500000 1.0020971298 - 0.4019603729 -31871.7617187500 1.0020520687 - 0.4007677734 -31871.2871093750 1.0020068884 - 0.3995744884 -31871.4179687500 1.0019574165 - 0.3983805478 -31871.3378906250 1.0019096136 - 0.3971858919 -31870.9121093750 1.0018588305 - 0.3959906101 -31872.8105468750 1.0018134117 - 0.3947946131 -31872.5644531250 1.0017623901 - 0.3935979605 -31871.7714843750 1.0017071962 - 0.3924006522 -31872.1386718750 1.0016492605 - 0.3912026584 -31873.2773437500 1.0015940666 - 0.3900040388 -31870.8164062500 1.0015342236 - 0.3888047338 -31873.7460937500 1.0014734268 - 0.3876047432 -31872.2070312500 1.0014129877 - 0.3864041269 -31871.5234375000 1.0013574362 - 0.3852028549 -31872.7011718750 1.0012921095 - 0.3840009272 -31872.3750000000 1.0012278557 - 0.3827983439 -31871.0546875000 1.0011601448 - 0.3815951049 -31872.7597656250 1.0010904074 - 0.3803912401 -31871.5917968750 1.0010217428 - 0.3791867197 -31871.8496093750 1.0009492636 - 0.3779815435 -31873.1269531250 1.0008765459 - 0.3767757416 -31872.0175781250 1.0008038282 - 0.3755693138 -31872.1953125000 1.0007264614 - 0.3743622303 -31871.5390625000 1.0006500483 - 0.3731544912 -31872.5644531250 1.0005722046 - 0.3719461560 -31872.1835937500 1.0004916191 - 0.3707371652 -31871.9218750000 1.0004104376 - 0.3695275784 -31870.4941406250 1.0003370047 - 0.3683173358 -31872.5722656250 1.0002516508 - 0.3671064675 -31870.9863281250 1.0001668930 - 0.3658950031 -31871.6289062500 1.0000801086 - 0.3646828830 -31871.0449218750 0.9999913573 - 0.3634701669 -31873.5917968750 0.9999024868 - 0.3622568250 -31871.7597656250 0.9998093247 - 0.3610428870 -31872.3554687500 0.9997184277 - 0.3598283231 -31871.2304687500 0.9996319413 - 0.3586131334 -31873.3203125000 0.9995352030 - 0.3573973775 -31872.7187500000 0.9994400740 - 0.3561809659 -31872.5527343750 0.9993412495 - 0.3549639881 -31872.4316406250 0.9992409348 - 0.3537463844 -31872.4570312500 0.9991409779 - 0.3525282145 -31872.7246093750 0.9990450144 - 0.3513094187 -31872.0742187500 0.9989406466 - 0.3500900269 -31872.6386718750 0.9988355041 - 0.3488700390 -31871.6289062500 0.9987279773 - 0.3476494849 -31872.2207031250 0.9986196756 - 0.3464283347 -31873.5605468750 0.9985098839 - 0.3452065885 -31873.2109375000 0.9983995557 - 0.3439842463 -31871.2128906250 0.9982855320 - 0.3427613378 -31872.5371093750 0.9981709719 - 0.3415378332 -31873.2500000000 0.9980552197 - 0.3403137624 -31873.1582031250 0.9979391694 - 0.3390890956 -31873.2753906250 0.9978199601 - 0.3378638625 -31872.2734375000 0.9977000952 - 0.3366380632 -31872.8535156250 0.9975781441 - 0.3354116976 -31871.6210937500 0.9974552393 - 0.3341847658 -31871.0253906250 0.9973301888 - 0.3329572678 -31870.7910156250 0.9972037077 - 0.3317291737 -31873.2558593750 0.9970777631 - 0.3305005431 -31871.9707031250 0.9969478846 - 0.3292713463 -31873.2167968750 0.9968179464 - 0.3280416131 -31872.1171875000 0.9966863394 - 0.3268113136 -31871.3789062500 0.9965531230 - 0.3255804479 -31871.7304687500 0.9964251518 - 0.3243490160 -31874.1914062500 0.9962885380 - 0.3231170475 -31871.6132812500 0.9961508512 - 0.3218845427 -31872.6816406250 0.9960119724 - 0.3206515014 -31874.1933593750 0.9958778024 - 0.3194178939 -31872.6464843750 0.9957345724 - 0.3181837499 -31874.9082031250 0.9955915213 - 0.3169490695 -31873.5156250000 0.9954530001 - 0.3157138526 -31873.6875000000 0.9953058362 - 0.3144780993 -31873.3906250000 0.9951575398 - 0.3132418096 -31873.6757812500 0.9950149059 - 0.3120049834 -31873.7636718750 0.9948629141 - 0.3107676208 -31874.7402343750 0.9947105050 - 0.3095297515 -31874.2871093750 0.9945567250 - 0.3082913458 -31873.6953125000 0.9944000840 - 0.3070524335 -31872.8750000000 0.9942427874 - 0.3058129847 -31873.5234375000 0.9940835238 - 0.3045730293 -31872.7695312500 0.9939236641 - 0.3033325672 -31873.6718750000 0.9937551022 - 0.3020915687 -31872.6445312500 0.9935913682 - 0.3008500636 -31873.7910156250 0.9934198260 - 0.2996080518 -31872.4394531250 0.9932543039 - 0.2983655334 -31871.2968750000 0.9930793047 - 0.2971225083 -31870.8750000000 0.9929037094 - 0.2958789468 -31871.6757812500 0.9927265644 - 0.2946349382 -31871.2480468750 0.9925412536 - 0.2933903933 -31872.0214843750 0.9923618436 - 0.2921453714 -31871.9941406250 0.9921734333 - 0.2908998430 -31870.4257812500 0.9919902086 - 0.2896538079 -31871.4003906250 0.9918001294 - 0.2884072959 -31868.9199218750 0.9916135073 - 0.2871603072 -31870.3769531250 0.9914203882 - 0.2859128118 -31867.5917968750 0.9912250042 - 0.2846648395 -31868.3691406250 0.9910351038 - 0.2834163904 -31868.6816406250 0.9908376932 - 0.2821674645 -31868.3164062500 0.9906441569 - 0.2809180617 -31865.9140625000 0.9904441833 - 0.2796681523 -31866.5468750000 0.9902477860 - 0.2784177959 -31865.9746093750 0.9900504351 - 0.2771669626 -31866.8066406250 0.9898515940 - 0.2759156525 -31864.7226562500 0.9896504283 - 0.2746638954 -31865.6152343750 0.9894555807 - 0.2734116614 -31866.7460937500 0.9892519712 - 0.2721589506 -31864.8437500000 0.9890528321 - 0.2709057927 -5790.4990234375 0.9891722798 - 0.2696521580 -5792.1420898438 0.9889754653 - 0.2683980763 -5790.7846679688 0.9887764454 - 0.2671435475 -5791.6074218750 0.9885755181 - 0.2658885717 -5792.8950195312 0.9883739948 - 0.2646331191 -5795.1904296875 0.9881704450 - 0.2633772492 -5795.1928710938 0.9879654050 - 0.2621209025 -5795.8608398438 0.9877585173 - 0.2608641386 -5799.7294921875 0.9875513911 - 0.2596068978 -5800.4257812500 0.9873412251 - 0.2583492398 -5802.4082031250 0.9871304631 - 0.2570911348 -5803.0708007812 0.9869170785 - 0.2558326125 -5805.4160156250 0.9867035151 - 0.2545736432 -5807.6953125000 0.9864871502 - 0.2533142567 -5808.3198242188 0.9862699509 - 0.2520544231 -5810.5776367188 0.9860504270 - 0.2507941723 -5811.6791992188 0.9858297110 - 0.2495334744 -5813.2509765625 0.9856076241 - 0.2482723743 -5816.0732421875 0.9853830934 - 0.2470108569 -5817.2319335938 0.9851579666 - 0.2457489073 -5817.5156250000 0.9849301577 - 0.2444865406 -5819.0566406250 0.9847018719 - 0.2432237715 -5818.9106445312 0.9844714403 - 0.2419605851 -5820.2553710938 0.9842399955 - 0.2406969815 -5822.2744140625 0.9840058684 - 0.2394329756 -5821.6992187500 0.9837709069 - 0.2381685674 -5822.8955078125 0.9835342765 - 0.2369037420 -5822.9667968750 0.9832959175 - 0.2356385291 -5822.7412109375 0.9830551744 - 0.2343729138 -5822.2758789062 0.9828141332 - 0.2331068963 -5822.3662109375 0.9825701118 - 0.2318404913 -5824.4790039062 0.9823267460 - 0.2305736840 -5823.8286132812 0.9820795655 - 0.2293064892 -5821.4799804688 0.9818315506 - 0.2280389071 -5821.9243164062 0.9815815687 - 0.2267709374 -5822.0976562500 0.9813306332 - 0.2255025953 -5822.8398437500 0.9810776114 - 0.2242338508 -5822.4316406250 0.9808236361 - 0.2229647338 -5822.0947265625 0.9805666804 - 0.2216952443 -5822.6562500000 0.9803100824 - 0.2204253674 -5820.6660156250 0.9800497293 - 0.2191551328 -5821.3852539062 0.9797887802 - 0.2178845108 -5820.7480468750 0.9795272350 - 0.2166135311 -5821.3793945312 0.9792622328 - 0.2153421789 -5820.3823242188 0.9789971709 - 0.2140704542 -5821.0571289062 0.9787298441 - 0.2127983868 -5820.8281250000 0.9784616232 - 0.2115259469 -5821.5424804688 0.9781903028 - 0.2102531493 -5820.8203125000 0.9779192209 - 0.2089799792 -5821.7983398438 0.9776455164 - 0.2077064812 -5821.5512695312 0.9773710966 - 0.2064326108 -5821.5571289062 0.9770940542 - 0.2051583976 -5822.1464843750 0.9768163562 - 0.2038838416 -5822.1123046875 0.9765360355 - 0.2026089430 -5822.7626953125 0.9762552977 - 0.2013336867 -5822.4174804688 0.9759717584 - 0.2000581026 -5823.6474609375 0.9756880403 - 0.1987821609 -5822.1738281250 0.9754009843 - 0.1975059062 -5822.3793945312 0.9751140475 - 0.1962292939 -5822.0869140625 0.9748241901 - 0.1949523687 -5823.4755859375 0.9745337963 - 0.1936751008 -5823.6713867188 0.9742408395 - 0.1923975050 -5823.0693359375 0.9739466906 - 0.1911195815 -5821.9101562500 0.9736508727 - 0.1898413450 -5824.0805664062 0.9733546376 - 0.1885627806 -5823.1547851562 0.9730549455 - 0.1872838885 -5821.3666992188 0.9727545381 - 0.1860046983 -5822.1987304688 0.9724525213 - 0.1847251803 -5823.9536132812 0.9721493721 - 0.1834453493 -5822.9218750000 0.9718434215 - 0.1821652055 -5823.1645507812 0.9715372324 - 0.1808847487 -5823.2255859375 0.9712283611 - 0.1796039939 -5822.9389648438 0.9709188938 - 0.1783229262 -5823.2958984375 0.9706070423 - 0.1770415604 -5823.4965820312 0.9702950120 - 0.1757598966 -5822.7153320312 0.9699788094 - 0.1744779348 -5822.1103515625 0.9696635604 - 0.1731956750 -5823.2143554688 0.9693448544 - 0.1719131321 -5823.5561523438 0.9690267444 - 0.1706302911 -5822.5019531250 0.9687041044 - 0.1693471521 -5823.7924804688 0.9683822989 - 0.1680637300 -5823.3393554688 0.9680576324 - 0.1667800248 -5823.4799804688 0.9677332640 - 0.1654960364 -5824.3872070312 0.9674041867 - 0.1642117649 -5823.5029296875 0.9670763016 - 0.1629272252 -5824.2539062500 0.9667457938 - 0.1616424024 -5824.6074218750 0.9664145708 - 0.1603573114 -5824.0405273438 0.9660798311 - 0.1590719372 -5824.0883789062 0.9657453895 - 0.1577862948 -5824.6005859375 0.9654097557 - 0.1565003991 -5822.3847656250 0.9650701284 - 0.1552142203 -5824.8671875000 0.9647313356 - 0.1539277881 -5825.2504882812 0.9643895626 - 0.1526410878 -5824.5468750000 0.9640469551 - 0.1513541341 -5822.6606445312 0.9637011290 - 0.1500669271 -5824.3652343750 0.9633558393 - 0.1487794667 -5823.7895507812 0.9630075693 - 0.1474917382 -5823.9628906250 0.9626594782 - 0.1462037712 -5824.9301757812 0.9623070955 - 0.1449155658 -5824.6748046875 0.9619560242 - 0.1436271071 -5824.5214843750 0.9616013169 - 0.1423383951 -5824.3393554688 0.9612465501 - 0.1410494447 -5824.7895507812 0.9608884454 - 0.1397602707 -5822.7934570312 0.9605296254 - 0.1384708434 -5823.2622070312 0.9601683617 - 0.1371811926 -5822.5522460938 0.9598078728 - 0.1358913034 -5825.1425781250 0.9594436884 - 0.1346011758 -5825.1933593750 0.9590795040 - 0.1333108246 -5823.8842773438 0.9587122202 - 0.1320202500 -5824.9189453125 0.9583449364 - 0.1307294518 -5824.0610351562 0.9579744339 - 0.1294384450 -5823.7387695312 0.9576041102 - 0.1281471997 -5824.4472656250 0.9572305679 - 0.1268557459 -5824.1635742188 0.9568569064 - 0.1255640686 -5825.7768554688 0.9564804435 - 0.1242721900 -5823.3105468750 0.9561033249 - 0.1229800954 -5825.8208007812 0.9557257891 - 0.1216877922 -5825.9184570312 0.9553444982 - 0.1203952804 -5824.8320312500 0.9549627900 - 0.1191025674 -5823.5375976562 0.9545781612 - 0.1178096533 -5824.2622070312 0.9541935325 - 0.1165165380 -5823.6005859375 0.9538065791 - 0.1152232215 -5824.6704101562 0.9534192085 - 0.1139297113 -5824.4960937500 0.9530280828 - 0.1126360148 -5825.1220703125 0.9526379704 - 0.1113421172 -5826.7832031250 0.9522441626 - 0.1100480407 -5825.7788085938 0.9518502951 - 0.1087537706 -5826.0996093750 0.9514537454 - 0.1074593216 -5823.5800781250 0.9510568380 - 0.1061646864 -5824.3032226562 0.9506566525 - 0.1048698723 -5825.1201171875 0.9502568245 - 0.1035748795 -5824.2094726562 0.9498537779 - 0.1022797078 -5823.5375976562 0.9494501352 - 0.1009843722 -5826.0029296875 0.9490471482 - 0.0996888578 -5824.9370117188 0.9486386776 - 0.0983931720 -5824.7309570312 0.9482311606 - 0.0970973298 -5823.7651367188 0.9478204250 - 0.0958013162 -5826.1772460938 0.9474104643 - 0.0945051387 -5824.7563476562 0.9469960332 - 0.0932088047 -5826.1840820312 0.9465824366 - 0.0919123143 -5824.7812500000 0.9461652040 - 0.0906156600 -5826.3564453125 0.9457487464 - 0.0893188566 -5825.6162109375 0.9453284740 - 0.0880219042 -5824.7250976562 0.9449093342 - 0.0867248029 -5824.7353515625 0.9444854259 - 0.0854275525 -5824.8950195312 0.9440631270 - 0.0841301531 -5825.0102539062 0.9436365366 - 0.0828326195 -5824.4775390625 0.9432110786 - 0.0815349370 -5825.2773437500 0.9427820444 - 0.0802371204 -5826.6723632812 0.9423529506 - 0.0789391696 -5825.7475585938 0.9419221878 - 0.0776410848 -5825.1728515625 0.9414888024 - 0.0763428658 -5826.1928710938 0.9410552382 - 0.0750445127 -5825.6069335938 0.9406183958 - 0.0737460405 -5825.2641601562 0.9401816130 - 0.0724474415 -5826.6596679688 0.9397420883 - 0.0711487159 -5825.3413085938 0.9393024445 - 0.0698498711 -5826.2114257812 0.9388594627 - 0.0685509145 -5824.7182617188 0.9384164810 - 0.0672518313 -5825.7080078125 0.9379708767 - 0.0659526438 -5825.4057617188 0.9375249147 - 0.0646533370 -5825.3378906250 0.9370759130 - 0.0633539259 -5824.9721679688 0.9366276264 - 0.0620544031 -5827.3769531250 0.9361759424 - 0.0607547760 -5825.5693359375 0.9357243776 - 0.0594550483 -5824.8383789062 0.9352706075 - 0.0581552200 -5825.7851562500 0.9348142147 - 0.0568552911 -5825.0185546875 0.9343580604 - 0.0555552654 -5824.5249023438 0.9338987470 - 0.0542551465 -5827.5947265625 0.9334398508 - 0.0529549345 -5826.2485351562 0.9329768419 - 0.0516546331 -5825.5844726562 0.9325136542 - 0.0503542461 -5825.1650390625 0.9320482612 - 0.0490537733 -5826.2241210938 0.9315837622 - 0.0477532148 -5826.8076171875 0.9311142564 - 0.0464525782 -5826.4750976562 0.9306463003 - 0.0451518595 -5826.7226562500 0.9301744103 - 0.0438510664 -5826.3681640625 0.9297040105 - 0.0425501987 -5825.8510742188 0.9292287230 - 0.0412492603 -5823.6987304688 0.9287551045 - 0.0399482511 -5826.7329101562 0.9282786846 - 0.0386471711 -5825.8325195312 0.9278001785 - 0.0373460278 -5826.6713867188 0.9273220301 - 0.0360448211 -5826.0454101562 0.9268401265 - 0.0347435549 -5825.6845703125 0.9263575673 - 0.0334422290 -5827.4672851562 0.9258717895 - 0.0321408473 -5826.3491210938 0.9253877401 - 0.0308394078 -5828.0161132812 0.9248994589 - 0.0295379180 -5826.8378906250 0.9244127274 - 0.0282363780 -5825.7114257812 0.9239211679 - 0.0269347914 -5826.6040039062 0.9234307408 - 0.0256331582 -5825.3520507812 0.9229354858 - 0.0243314803 -5827.5585937500 0.9224420786 - 0.0230297633 -5826.0361328125 0.9219473600 - 0.0217280053 -5827.0493164062 0.9214492440 - 0.0204262119 -5826.1499023438 0.9209516048 - 0.0191243831 -5825.5737304688 0.9204494357 - 0.0178225227 -5827.0883789062 0.9199482799 - 0.0165206306 -5824.8623046875 0.9194430709 - 0.0152187115 -5826.3413085938 0.9189398885 - 0.0139167663 -5826.1567382812 0.9184328318 - 0.0126147978 -5826.9458007812 0.9179266691 - 0.0113128079 -5827.4160156250 0.9174144268 - 0.0100107985 -5825.8227539062 0.9169054031 - 0.0087087722 -5826.0908203125 0.9163911343 - 0.0074067311 -5825.4311523438 0.9158795476 - 0.0061046779 -5827.1132812500 0.9153650403 - 0.0048026140 -5827.0068359375 0.9148469567 - 0.0035005419 -5824.3325195312 0.9143295884 - 0.0021984638 -5826.5791015625 0.9138096571 - 0.0008963822 -5827.0654296875 0.9132887721 - -0.0004057010 -5826.9697265625 0.9127655625 - -0.0017077836 -5827.2387695312 0.9122426510 - -0.0030098632 -5828.3588867188 0.9117158055 - -0.0043119378 -5825.8984375000 0.9111902714 - -0.0056140050 -5825.7456054688 0.9106602073 - -0.0069160624 -5826.7792968750 0.9101314545 - -0.0082181087 -5825.8105468750 0.9095987082 - -0.0095201405 -5827.0756835938 0.9090666771 - -0.0108221564 -5827.1918945312 0.9085312486 - -0.0121241538 -5826.2836914062 0.9079958200 - -0.0134261306 -5825.2949218750 0.9074589610 - -0.0147280851 -5828.0942382812 0.9069207907 - -0.0160300136 -5827.7719726562 0.9063813686 - -0.0173319168 -5827.2485351562 0.9058380723 - -0.0186337885 -5827.8144531250 0.9052956700 - -0.0199356303 -5826.1508789062 0.9047499895 - -0.0212374367 -5826.9902343750 0.9042052031 - -0.0225392096 -5826.1699218750 0.9036561847 - -0.0238409415 -5827.1059570312 0.9031075239 - -0.0251426343 -5827.2192382812 0.9025569558 - -0.0264442842 -5826.9921875000 0.9020053744 - -0.0277458895 -5825.9130859375 0.9014500976 - -0.0290474482 -5826.8959960938 0.9008982182 - -0.0303489566 -5826.3535156250 0.9003395438 - -0.0316504128 -5826.3212890625 0.8997825980 - -0.0329518169 -5826.1713867188 0.8992240429 - -0.0342531651 -5825.7490234375 0.8986626267 - -0.0355544575 -5827.7675781250 0.8981019258 - -0.0368556865 -5827.0903320312 0.8975362182 - -0.0381568521 -5828.1992187500 0.8969718814 - -0.0394579545 -5825.3554687500 0.8964040875 - -0.0407589898 -5825.9223632812 0.8958373666 - -0.0420599580 -5827.3945312500 0.8952670693 - -0.0433608517 -5826.8388671875 0.8946959972 - -0.0446616746 -5826.8984375000 0.8941227794 - -0.0459624194 -5826.5937500000 0.8935506344 - -0.0472630858 -5826.6743164062 0.8929730058 - -0.0485636741 -5826.0908203125 0.8923975229 - -0.0498641804 -5827.6577148438 0.8918183446 - -0.0511646010 -5827.1123046875 0.8912389278 - -0.0524649359 -5826.5463867188 0.8906595707 - -0.0537651815 -5827.5229492188 0.8900752664 - -0.0550653338 -5828.0297851562 0.8894916773 - -0.0563653968 -5827.8525390625 0.8889055252 - -0.0576653592 -5827.5341796875 0.8883181810 - -0.0589652285 -5828.4052734375 0.8877291679 - -0.0602649972 -5825.7021484375 0.8871396184 - -0.0615646616 -5826.4448242188 0.8865463734 - -0.0628642216 -5827.6088867188 0.8859550357 - -0.0641636774 -5829.1313476562 0.8853586316 - -0.0654630214 -5828.6030273438 0.8847643733 - -0.0667622536 -5826.6933593750 0.8841658831 - -0.0680613741 -5826.3212890625 0.8835670352 - -0.0693603829 -5827.2363281250 0.8829653263 - -0.0706592724 -5827.6416015625 0.8823648691 - -0.0719580427 -5826.7714843750 0.8817598224 - -0.0732566863 -5827.5395507812 0.8811559677 - -0.0745552108 -5827.0268554688 0.8805478811 - -0.0758536011 -5826.2084960938 0.8799412847 - -0.0771518722 -5828.4570312500 0.8793333769 - -0.0784500092 -5826.6274414062 0.8787209392 - -0.0797480121 -5828.6528320312 0.8781092763 - -0.0810458809 -5827.0532226562 0.8774947524 - -0.0823436081 -5825.5756835938 0.8768795729 - -0.0836412013 -5828.1718750000 0.8762617111 - -0.0849386528 -5826.4584960938 0.8756440878 - -0.0862359554 -5827.2021484375 0.8750229478 - -0.0875331163 -5828.9702148438 0.8744027615 - -0.0888301283 -5826.6005859375 0.8737790585 - -0.0901269913 -5826.9765625000 0.8731552362 - -0.0914236978 -5827.0825195312 0.8725281954 - -0.0927202478 -5827.7602539062 0.8719019890 - -0.0940166414 -5827.2294921875 0.8712714911 - -0.0953128785 -5826.2084960938 0.8706414104 - -0.0966089517 -5827.4116210938 0.8700090051 - -0.0979048610 -5826.0820312500 0.8693757057 - -0.0992006063 -5827.9848632812 0.8687391877 - -0.1004961878 -5826.3935546875 0.8681018353 - -0.1017915905 -5827.2578125000 0.8674633503 - -0.1030868217 -5826.7563476562 0.8668243885 - -0.1043818817 -5827.9555664062 0.8661820292 - -0.1056767628 -5826.9667968750 0.8655408025 - -0.1069714651 -5827.5483398438 0.8648966551 - -0.1082659885 -5826.0830078125 0.8642495871 - -0.1095603257 -5827.7504882812 0.8636034131 - -0.1108544767 -5826.6723632812 0.8629524708 - -0.1121484414 -5826.8164062500 0.8623033762 - -0.1134422123 -5827.3974609375 0.8616498113 - -0.1147357970 -5826.9272460938 0.8609968424 - -0.1160291806 -5828.5834960938 0.8603414297 - -0.1173223704 -5828.3305664062 0.8596835732 - -0.1186153665 -5826.9584960938 0.8590249419 - -0.1199081540 -5827.6132812500 0.8583650589 - -0.1212007403 -5827.2114257812 0.8577016592 - -0.1224931180 -5827.0371093750 0.8570389748 - -0.1237852946 -5827.9848632812 0.8563739657 - -0.1250772625 -5827.8041992188 0.8557077050 - -0.1263690144 -5826.5244140625 0.8550389409 - -0.1276605427 -5827.2148437500 0.8543690443 - -0.1289518625 -5827.2041015625 0.8536967039 - -0.1302429736 -5826.6699218750 0.8530254960 - -0.1315338463 -5827.9555664062 0.8523481488 - -0.1328245103 -5826.6201171875 0.8516724706 - -0.1341149509 -5826.9555664062 0.8509926200 - -0.1354051530 -5825.9277343750 0.8503136039 - -0.1366951317 -5826.6528320312 0.8496320844 - -0.1379848719 -5828.2983398438 0.8489492536 - -0.1392743886 -5827.4335937500 0.8482641578 - -0.1405636519 -5826.8291015625 0.8475784063 - -0.1418526918 -5827.7202148438 0.8468908668 - -0.1431414932 -5827.8823242188 0.8461990952 - -0.1444300413 -5828.2919921875 0.8455055952 - -0.1457183510 -5826.5742187500 0.8448143005 - -0.1470064074 -5828.4023437500 0.8441190124 - -0.1482942253 -5826.7651367188 0.8434216976 - -0.1495817900 -5827.4921875000 0.8427230120 - -0.1508690864 -5827.0615234375 0.8420246243 - -0.1521561444 -5826.2646484375 0.8413186669 - -0.1534429342 -5827.5351562500 0.8406161070 - -0.1547294706 -5827.1201171875 0.8399091363 - -0.1560157388 -5827.8608398438 0.8392053246 - -0.1573017389 -5825.8588867188 0.8384932280 - -0.1585874856 -5827.0991210938 0.8377839327 - -0.1598729491 -5827.0161132812 0.8370686769 - -0.1611581594 -5826.2158203125 0.8363556266 - -0.1624430865 -5827.7358398438 0.8356382847 - -0.1637277305 -5827.4892578125 0.8349195123 - -0.1650121063 -5827.9423828125 0.8341991305 - -0.1662961990 -5828.1596679688 0.8334783316 - -0.1675800085 -5826.2880859375 0.8327527046 - -0.1688635349 -5826.0043945312 0.8320280313 - -0.1701467782 -5827.4238281250 0.8312999010 - -0.1714297384 -5826.9780273438 0.8305693865 - -0.1727124006 -5827.9970703125 0.8298377991 - -0.1739947647 -5827.3442382812 0.8291049004 - -0.1752768308 -5827.4472656250 0.8283679485 - -0.1765586138 -5827.4936523438 0.8276318908 - -0.1778400987 -5827.7080078125 0.8268922567 - -0.1791212708 -5828.3232421875 0.8261523843 - -0.1804021448 -5824.8476562500 0.8254078627 - -0.1816827059 -5826.5126953125 0.8246631622 - -0.1829629689 -5827.1899414062 0.8239140511 - -0.1842429191 -5826.6015625000 0.8231655955 - -0.1855225563 -5826.6201171875 0.8224137425 - -0.1868018657 -5826.9301757812 0.8216603994 - -0.1880808771 -5826.7631835938 0.8209034204 - -0.1893595606 -5828.7011718750 0.8201460242 - -0.1906379312 -5827.1596679688 0.8193884492 - -0.1919159740 -5826.8037109375 0.8186258078 - -0.1931936890 -5827.1894531250 0.8178603649 - -0.1944710761 -5825.8037109375 0.8170964122 - -0.1957481354 -5827.1049804688 0.8163267970 - -0.1970248669 -5826.7973632812 0.8155559301 - -0.1983012557 -5828.0820312500 0.8147836328 - -0.1995773166 -5827.0541992188 0.8140109777 - -0.2008530349 -5826.7827148438 0.8132309914 - -0.2021284103 -5827.0546875000 0.8124526143 - -0.2034034431 -5826.1562500000 0.8116720915 - -0.2046781331 -5826.9790039062 0.8108884692 - -0.2059524804 -5826.4936523438 0.8101007938 - -0.2072264701 -5828.5073242188 0.8093144298 - -0.2085001171 -5825.8164062500 0.8085234761 - -0.2097734064 -5826.5234375000 0.8077309728 - -0.2110463381 -5828.0737304688 0.8069347739 - -0.2123189121 -5826.5019531250 0.8061397076 - -0.2135911286 -5827.2202148438 0.8053365350 - -0.2148629874 -5827.7104492188 0.8045344353 - -0.2161344737 -5827.9179687500 0.8037287593 - -0.2174056023 -5827.9404296875 0.8029223680 - -0.2186763436 -5824.7192382812 0.8021134138 - -0.2199467421 -5827.9584960938 0.8012995124 - -0.2212167382 -5825.4003906250 0.8004879951 - -0.2224863768 -5827.5786132812 0.7996690869 - -0.2237556428 -5826.2788085938 0.7988500595 - -0.2250245214 -5827.4409179688 0.7980266809 - -0.2262930125 -5826.9594726562 0.7972046733 - -0.2275611311 -5828.1699218750 0.7963754535 - -0.2288288623 -5827.5375976562 0.7955463529 - -0.2300962061 -5826.7343750000 0.7947120070 - -0.2313631475 -5826.2255859375 0.7938790917 - -0.2326297015 -5826.2680664062 0.7930405140 - -0.2338958681 -5826.6772460938 0.7922012210 - -0.2351616323 -5827.1425781250 0.7913572788 - -0.2364270091 -5826.4746093750 0.7905122042 - -0.2376919687 -5826.5317382812 0.7896613479 - -0.2389565408 -5826.4790039062 0.7888111472 - -0.2402206957 -5826.8247070312 0.7879574895 - -0.2414844483 -5828.2329101562 0.7870991230 - -0.2427477986 -5825.7485351562 0.7862416506 - -0.2440107316 -5825.5429687500 0.7853795886 - -0.2452732474 -5826.3745117188 0.7845126390 - -0.2465353459 -5826.6210937500 0.7836451530 - -0.2477970272 -5826.3002929688 0.7827768326 - -0.2490582913 -5827.3642578125 0.7819008231 - -0.2503191233 -5827.9218750000 0.7810248733 - -0.2515795529 -5826.7666015625 0.7801455855 - -0.2528395355 -5826.6752929688 0.7792610526 - -0.2540991008 -5826.8886718750 0.7783764005 - -0.2553582191 -5825.4775390625 0.7774878740 - -0.2566169202 -5825.3989257812 0.7765979767 - -0.2578752041 -5825.6118164062 0.7757021189 - -0.2591330111 -5826.9238281250 0.7748063207 - -0.2603904009 -5826.7094726562 0.7739031315 - -0.2616473436 -5826.4702148438 0.7730009556 - -0.2629038393 -5826.2304687500 0.7720941305 - -0.2641599178 -5825.7500000000 0.7711846828 - -0.2654155195 -5826.5776367188 0.7702711225 - -0.2666706741 -5825.4565429688 0.7693578601 - -0.2679253817 -5826.7695312500 0.7684361935 - -0.2691796422 -5825.6440429688 0.7675146461 - -0.2704334259 -5826.0942382812 0.7665902376 - -0.2716867626 -5826.4838867188 0.7656601071 - -0.2729396224 -5827.3173828125 0.7647279501 - -0.2741920352 -5825.1269531250 0.7637955546 - -0.2754440010 -5825.0244140625 0.7628573775 - -0.2766954899 -5826.5673828125 0.7619137764 - -0.2779465020 -5824.5844726562 0.7609724998 - -0.2791970372 -5825.1533203125 0.7600212097 - -0.2804470956 -5825.8452148438 0.7590695620 - -0.2816966772 -5826.8188476562 0.7581154704 - -0.2829458117 -5825.6425781250 0.7571593523 - -0.2841944396 -5826.2812500000 0.7561980486 - -0.2854425907 -5827.8374023438 0.7552334666 - -0.2866902649 -5827.8256835938 0.7542663217 - -0.2879374325 -5826.1445312500 0.7532944679 - -0.2891841233 -5826.2329101562 0.7523217201 - -0.2904303372 -5827.4501953125 0.7513463497 - -0.2916760445 -5825.8706054688 0.7503639460 - -0.2929212749 -5826.8745117188 0.7493774295 - -0.2941659987 -5826.6708984375 0.7483932972 - -0.2954102159 -5825.0815429688 0.7474029064 - -0.2966539264 -5826.3466796875 0.7464047074 - -0.2978971601 -5825.5390625000 0.7454138994 - -0.2991398573 -5826.2153320312 0.7444095016 - -0.3003820777 -5827.2851562500 0.7434063554 - -0.3016237617 -5827.4594726562 0.7424027324 - -0.3028649688 -5827.2431640625 0.7413883209 - -0.3041056395 -5826.9423828125 0.7403778434 - -0.3053457737 -5825.3339843750 0.7393578291 - -0.3065854311 -5826.4604492188 0.7383385897 - -0.3078245521 -5825.8974609375 0.7373177409 - -0.3090631366 -5826.4165039062 0.7362906933 - -0.3103012145 -5826.2822265625 0.7352614403 - -0.3115387559 -5826.5058593750 0.7342287302 - -0.3127757907 -5826.4951171875 0.7331923246 - -0.3140122592 -5826.3120117188 0.7321498394 - -0.3152482212 -5827.6708984375 0.7311115265 - -0.3164836466 -5827.1694335938 0.7300674319 - -0.3177185357 -5827.2646484375 0.7290163040 - -0.3189528883 -5824.5649414062 0.7279636860 - -0.3201866746 -5825.7006835938 0.7269106507 - -0.3214199543 -5824.8632812500 0.7258524895 - -0.3226526678 -5825.6264648438 0.7247895002 - -0.3238848448 -5826.6601562500 0.7237290740 - -0.3251164556 -5826.3432617188 0.7226612568 - -0.3263475299 -5824.5507812500 0.7215945721 - -0.3275780380 -5825.8115234375 0.7205218673 - -0.3288080096 -5824.5786132812 0.7194471955 - -0.3300374150 -5825.5517578125 0.7183665037 - -0.3312662542 -5826.5883789062 0.7172873020 - -0.3324945271 -5824.8232421875 0.7162048817 - -0.3337222636 -5825.8251953125 0.7151187658 - -0.3349494040 -5824.7993164062 0.7140281796 - -0.3361759782 -5825.9101562500 0.7129403949 - -0.3374020159 -5826.9106445312 0.7118469477 - -0.3386274576 -5826.7456054688 0.7107496262 - -0.3398523331 -5826.5693359375 0.7096530199 - -0.3410766125 -5826.3784179688 0.7085521221 - -0.3423003256 -5825.4409179688 0.7074509859 - -0.3435234725 -5824.4555664062 0.7063411474 - -0.3447460234 -5826.6274414062 0.7052350044 - -0.3459679782 -5826.3085937500 0.7041264772 - -0.3471893668 -5826.3774414062 0.7030116320 - -0.3484101593 -5824.6928710938 0.7019004226 - -0.3496303558 -5824.7636718750 0.7007847428 - -0.3508499563 -5826.2827148438 0.6996662617 - -0.3520689905 -5827.4614257812 0.6985469460 - -0.3532873988 -5826.5214843750 0.6974233985 - -0.3545052111 -5826.3227539062 0.6962994337 - -0.3557224274 -5825.4370117188 0.6951757669 - -0.3569390476 -5824.5908203125 0.6940481067 - -0.3581550717 -5825.6982421875 0.6929159760 - -0.3593704700 -5824.9726562500 0.6917953491 - -0.3605852425 -5825.9487304688 0.6906611919 - -0.3617994487 -5827.0717773438 0.6895254254 - -0.3630129993 -5824.8823242188 0.6883965731 - -0.3642259538 -5826.0297851562 0.6872578859 - -0.3654382825 -5826.5693359375 0.6861275434 - -0.3666500151 -5825.8398437500 0.6849831343 - -0.3678610921 -5825.7670898438 0.6838479042 - -0.3690715730 -5825.6474609375 0.6827104092 - -0.3702814281 -5827.3325195312 0.6815698147 - -0.3714906275 -5824.9873046875 0.6804299355 - -0.3726992309 -5826.2792968750 0.6792864203 - -0.3739071786 -5825.1030273438 0.6781458855 - -0.3751145005 -5826.6484375000 0.6770028472 - -0.3763211668 -5825.5659179688 0.6758580208 - -0.3775272369 -5825.7700195312 0.6747113466 - -0.3787326217 -5825.9331054688 0.6735725403 - -0.3799374104 -5826.2895507812 0.6724291444 - -0.3811415136 -5826.6694335938 0.6712820530 - -0.3823449910 -5824.4213867188 0.6701380014 - -0.3835478127 -5825.2006835938 0.6689914465 - -0.3847500086 -5825.4003906250 0.6678452492 - -0.3859515190 -5825.5966796875 0.6667037010 - -0.3871523738 -5825.7153320312 0.6655621529 - -0.3883526027 -5824.7299804688 0.6644167304 - -0.3895521462 -5826.3120117188 0.6632669568 - -0.3907510340 -5824.8574218750 0.6621264219 - -0.3919492662 -5826.4189453125 0.6609838605 - -0.3931468427 -5824.0698242188 0.6598371863 - -0.3943437338 -5825.6171875000 0.6586986780 - -0.3955399692 -5825.5688476562 0.6575573087 - -0.3967355490 -5825.3564453125 0.6564187407 - -0.3979304135 -5824.4770507812 0.6552682519 - -0.3991246521 -5825.6499023438 0.6541348696 - -0.4003181756 -5826.0292968750 0.6529976726 - -0.4015110433 -5824.2158203125 0.6518585086 - -0.4027032256 -5825.5961914062 0.6507194638 - -0.4038947225 -5826.2016601562 0.6495860815 - -0.4050855339 -5826.2690429688 0.6484518051 - -0.4062756300 -5826.7109375000 0.6473201513 - -0.4074650705 -5825.8383789062 0.6461888552 - -0.4086538255 -5825.2148437500 0.6450558305 - -0.4098418653 -5825.1000976562 0.6439211369 - -0.4110292196 -5823.7324218750 0.6427922845 - -0.4122158885 -5825.4765625000 0.6416646838 - -0.4134018421 -5826.2553710938 0.6405439973 - -0.4145871103 -5826.4746093750 0.6394160390 - -0.4157716632 -5824.9252929688 0.6382942200 - -0.4169555306 -5824.9184570312 0.6371724606 - -0.4181386530 -5824.6303710938 0.6360521317 - -0.4193210900 -5827.0449218750 0.6349332929 - -0.4205028117 -5825.1347656250 0.6338186264 - -0.4216838479 -5824.7827148438 0.6326981783 - -0.4228641391 -5824.3398437500 0.6315869689 - -0.4240437150 -5824.7529296875 0.6304756999 - -0.4252225757 -5823.9584960938 0.6293642521 - -0.4264007211 -5825.5156250000 0.6282560825 - -0.4275781214 -5826.7382812500 0.6271525025 - -0.4287548363 -5825.3935546875 0.6260471344 - -0.4299307764 -5826.0029296875 0.6249468923 - -0.4311060309 -5824.2500000000 0.6238434315 - -0.4322805405 -5825.8808593750 0.6227424741 - -0.4334543049 -5827.1342773438 0.6216457486 - -0.4346273541 -5825.7172851562 0.6205505729 - -0.4357996285 -5826.6767578125 0.6194574237 - -0.4369712174 -5824.8212890625 0.6183651686 - -0.4381420314 -5824.7954101562 0.6172737479 - -0.4393121004 -5825.2016601562 0.6161866784 - -0.4404814243 -5826.2939453125 0.6151034236 - -0.4416500330 -5825.5258789062 0.6140169501 - -0.4428178668 -5826.9360351562 0.6129363775 - -0.4439849555 -5824.3002929688 0.6118508577 - -0.4451512992 -5824.2104492188 0.6107734442 - -0.4463168681 -5823.7290039062 0.6096985340 - -0.4474816918 -5825.1606445312 0.6086216569 - -0.4486457407 -5824.4199218750 0.6075497866 - -0.4498090446 -5824.4907226562 0.6064767838 - -0.4509716034 -5825.1606445312 0.6054111719 - -0.4521333873 -5824.5922851562 0.6043437719 - -0.4532943964 -5825.1733398438 0.6032806635 - -0.4544546306 -5825.1157226562 0.6022144556 - -0.4556140900 -5825.4682617188 0.6011563540 - -0.4567728043 -5824.3959960938 0.6000972390 - -0.4579307139 -5824.1259765625 0.5990362167 - -0.4590878785 -5823.4399414062 0.5979788303 - -0.4602442384 -5823.8979492188 0.5969231129 - -0.4613998234 -5824.7348632812 0.5958736539 - -0.4625546336 -5825.5805664062 0.5948280692 - -0.4637086689 -5824.4658203125 0.5937729478 - -0.4648618996 -5826.1538085938 0.5927299261 - -0.4660143256 -5824.0029296875 0.5916798115 - -0.4671660066 -5824.3432617188 0.5906368494 - -0.4683168530 -5825.6679687500 0.5895974636 - -0.4694669247 -5823.4418945312 0.5885573030 - -0.4706162214 -5825.1850585938 0.5875173807 - -0.4717646837 -5825.2856445312 0.5864808559 - -0.4729123712 -5823.8339843750 0.5854446292 - -0.4740592539 -5823.1186523438 0.5844078064 - -0.4752053320 -5824.6899414062 0.5833783150 - -0.4763505757 -5825.3969726562 0.5823489428 - -0.4774950445 -5824.0068359375 0.5813156366 - -0.4786387086 -5825.1323242188 0.5802882314 - -0.4797815382 -5825.9331054688 0.5792654157 - -0.4809235632 -5826.2070312500 0.5782435536 - -0.4820647836 -5824.8579101562 0.5772133470 - -0.4832051694 -5826.0292968750 0.5761941075 - -0.4843447506 -5825.6655273438 0.5751717091 - -0.4854834974 -5824.0175781250 0.5741457939 - -0.4866214097 -5824.0053710938 0.5731279850 - -0.4877585173 -5824.9428710938 0.5721143484 - -0.4888947904 -5825.6220703125 0.5710942745 - -0.4900302589 -5824.1518554688 0.5700778365 - -0.4911648631 -5825.7739257812 0.5690683722 - -0.4922986627 -5823.9575195312 0.5680491924 - -0.4934315979 -5825.5102539062 0.5670387149 - -0.4945636988 -5824.4609375000 0.5660262704 - -0.4956949949 -5824.3764648438 0.5650154352 - -0.4968254268 -5824.7617187500 0.5640060902 - -0.4979550242 -5824.0034179688 0.5629971027 - -0.4990837574 -5825.3491210938 0.5619937778 - -0.5002116561 -5825.3847656250 0.5609869361 - -0.5013387203 -5825.2646484375 0.5599802732 - -0.5024649501 -5824.6264648438 0.5589725971 - -0.5035902858 -5824.9951171875 0.5579668880 - -0.5047147870 -5824.4428710938 0.5569663644 - -0.5058383942 -5823.8046875000 0.5559598804 - -0.5069612265 -5823.9648437500 0.5549589992 - -0.5080831051 -5825.0258789062 0.5539615750 - -0.5092042089 -5824.9687500000 0.5529593229 - -0.5103243589 -5825.1523437500 0.5519550443 - -0.5114437342 -5825.7084960938 0.5509603024 - -0.5125622153 -5825.5039062500 0.5499597192 - -0.5136798024 -5822.8471679688 0.5489532351 - -0.5147964954 -5824.2954101562 0.5479610562 - -0.5159123540 -5824.7675781250 0.5469645858 - -0.5170273781 -5824.6894531250 0.5459614992 - -0.5181414485 -5824.4892578125 0.5449672937 - -0.5192546844 -5824.1362304688 0.5439709425 - -0.5203670263 -5824.3764648438 0.5429753661 - -0.5214784741 -5824.7734375000 0.5419791937 - -0.5225890875 -5824.3310546875 0.5409812927 - -0.5236987472 -5824.8276367188 0.5399844646 - -0.5248075724 -5823.6484375000 0.5389890671 - -0.5259155035 -5822.9472656250 0.5379915237 - -0.5270224810 -5824.4589843750 0.5370013118 - -0.5281286240 -5823.0556640625 0.5360007286 - -0.5292338729 -5824.9785156250 0.5350073576 - -0.5303382277 -5823.4692382812 0.5340115428 - -0.5314416289 -5825.4184570312 0.5330256820 - -0.5325441957 -5823.1259765625 0.5320214033 - -0.5336458087 -5826.0312500000 0.5310311317 - -0.5347465277 -5823.1762695312 0.5300343037 - -0.5358463526 -5823.6376953125 0.5290349722 - -0.5369452834 -5823.0590820312 0.5280430317 - -0.5380433202 -5823.9487304688 0.5270473361 - -0.5391404033 -5824.5498046875 0.5260598063 - -0.5402365923 -5822.8046875000 0.5250530243 - -0.5413318276 -5824.6777343750 0.5240612030 - -0.5424261689 -5824.8920898438 0.5230709910 - -0.5435196161 -5822.5781250000 0.5220645070 - -0.5446121097 -5824.8598632812 0.5210710168 - -0.5457036495 -5824.3242187500 0.5200777650 - -0.5467943549 -5824.5439453125 0.5190871954 - -0.5478840470 -5824.5346679688 0.5180808902 - -0.5489728451 -5824.4174804688 0.5170832872 - -0.5500607491 -5823.8183593750 0.5160914063 - -0.5511476398 -5823.3798828125 0.5150868893 - -0.5522336364 -5824.4379882812 0.5140914321 - -0.5533187389 -5823.8564453125 0.5130910277 - -0.5544028282 -5824.9414062500 0.5120981932 - -0.5554860234 -5823.6831054688 0.5110910535 - -0.5565682650 -5825.1660156250 0.5100941062 - -0.5576496124 -5823.5522460938 0.5090957284 - -0.5587299466 -5822.8051757812 0.5080836415 - -0.5598093271 -5824.5507812500 0.5070883036 - -0.5608878136 -5824.5903320312 0.5060875416 - -0.5619653463 -5823.7602539062 0.5050849915 - -0.5630418658 -5824.1572265625 0.5040768385 - -0.5641174912 -5824.1289062500 0.5030772686 - -0.5651921034 -5824.2919921875 0.5020775199 - -0.5662658215 -5825.7441406250 0.5010740161 - -0.5673385262 -5822.5371093750 0.5000573993 - -0.5684102774 -5823.0615234375 0.4990546703 - -0.5694810748 -5823.3300781250 0.4980498552 - -0.5705509186 -5823.6655273438 0.4970384538 - -0.5716198087 -5823.8642578125 0.4960335195 - -0.5726876855 -5823.1196289062 0.4950219691 - -0.5737546086 -5824.6074218750 0.4940178394 - -0.5748205781 -5823.3613281250 0.4929987490 - -0.5758855343 -5825.3359375000 0.4919922352 - -0.5769495368 -5824.5712890625 0.4909823537 - -0.5780125856 -5822.9213867188 0.4899695516 - -0.5790746212 -5823.0068359375 0.4889493883 - -0.5801357031 -5823.6293945312 0.4879374206 - -0.5811957717 -5823.6435546875 0.4869285524 - -0.5822548866 -5824.9121093750 0.4859185517 - -0.5833129883 -5824.0048828125 0.4848879278 - -0.5843700767 -5823.7207031250 0.4838734865 - -0.5854262114 -5824.7270507812 0.4828585684 - -0.5864813924 -5822.7822265625 0.4818417728 - -0.5875355005 -5824.0698242188 0.4808174372 - -0.5885886550 -5823.9531250000 0.4797975421 - -0.5896407962 -5825.0488281250 0.4787808657 - -0.5906919241 -5823.6733398438 0.4777559042 - -0.5917420983 -5824.1328125000 0.4767271876 - -0.5927912593 -5824.1669921875 0.4757073522 - -0.5938394070 -5822.0791015625 0.4746842980 - -0.5948864818 -5824.2568359375 0.4736591578 - -0.5959326029 -5823.0268554688 0.4726270437 - -0.5969777703 -5823.1284179688 0.4716013074 - -0.5980218649 -5823.2343750000 0.4705712497 - -0.5990649462 -5824.4785156250 0.4695466757 - -0.6001070142 -5823.5234375000 0.4685071409 - -0.6011480689 -5822.6704101562 0.4674749672 - -0.6021881104 -5824.4326171875 0.4664472342 - -0.6032270789 -5825.2919921875 0.4654196203 - -0.6042650938 -5824.2929687500 0.4643768072 - -0.6053020358 -5824.4799804688 0.4633446634 - -0.6063380241 -5823.0668945312 0.4623039961 - -0.6073728800 -5824.0000000000 0.4612708986 - -0.6084067822 -5823.4189453125 0.4602229893 - -0.6094396114 -5824.1376953125 0.4591875672 - -0.6104714870 -5824.3999023438 0.4581487775 - -0.6115022302 -5823.4545898438 0.4571122527 - -0.6125319600 -5823.1274414062 0.4560597241 - -0.6135606766 -5824.0698242188 0.4550170302 - -0.6145883799 -5823.8071289062 0.4539770484 - -0.6156150103 -5823.8461914062 0.4529327750 - -0.6166405678 -5824.2758789062 0.4518878758 - -0.6176651120 -5822.6591796875 0.4508313537 - -0.6186885834 -5822.0185546875 0.4497851431 - -0.6197110415 -5824.1542968750 0.4487383664 - -0.6207324266 -5823.3198242188 0.4476894438 - -0.6217527390 -5824.7290039062 0.4466296434 - -0.6227720380 -5824.3789062500 0.4455784261 - -0.6237902641 -5823.4135742188 0.4445280135 - -0.6248074174 -5824.9497070312 0.4434785247 - -0.6258235574 -5823.6064453125 0.4424097240 - -0.6268385649 -5823.6411132812 0.4413570166 - -0.6278525591 -5822.8334960938 0.4402969480 - -0.6288654804 -5824.5708007812 0.4392426610 - -0.6298773289 -5824.1840820312 0.4381720126 - -0.6308881044 -5824.7563476562 0.4371132255 - -0.6318978667 -5822.7797851562 0.4360489547 - -0.6329064965 -5824.9257812500 0.4349886775 - -0.6339140534 -5823.2783203125 0.4339259267 - -0.6349205971 -5824.9321289062 0.4328490794 - -0.6359260082 -5823.5083007812 0.4317852259 - -0.6369303465 -5822.9858398438 0.4307196140 - -0.6379336119 -5823.4077148438 0.4296534657 - -0.6389358044 -5824.3105468750 0.4285722673 - -0.6399368644 -5823.5092773438 0.4275057614 - -0.6409369111 -5821.8515625000 0.4264318049 - -0.6419358253 -5823.6860351562 0.4253634512 - -0.6429336667 -5823.9218750000 0.4242936969 - -0.6439304352 -5822.7470703125 0.4232047200 - -0.6449260712 -5825.3061523438 0.4221327603 - -0.6459206343 -5823.4990234375 0.4210543633 - -0.6469141245 -5822.5991210938 0.4199759662 - -0.6479064822 -5823.8779296875 0.4189000130 - -0.6488977671 -5822.9003906250 0.4178071022 - -0.6498879194 -5825.2294921875 0.4167280495 - -0.6508769989 -5823.9072265625 0.4156448543 - -0.6518649459 -5823.7636718750 0.4145630896 - -0.6528518200 -5824.2973632812 0.4134805501 - -0.6538375616 -5823.4189453125 0.4123812318 - -0.6548222303 -5823.7421875000 0.4112964272 - -0.6558057666 -5824.2617187500 0.4102116227 - -0.6567881703 -5824.2124023438 0.4091216326 - -0.6577695012 -5822.4428710938 0.4080190063 - -0.6587496996 -5821.8120117188 0.4069274366 - -0.6597287655 -5823.2070312500 0.4058383703 - -0.6607067585 -5824.5224609375 0.4047438502 - -0.6616835594 -5824.6718750000 0.4036505520 - -0.6626592875 -5822.7558593750 0.4025416076 - -0.6636338830 -5823.4516601562 0.4014474452 - -0.6646073461 -5822.9511718750 0.4003504515 - -0.6655796766 -5822.9404296875 0.3992514014 - -0.6665509343 -5823.4404296875 0.3981527388 - -0.6675209999 -5824.7714843750 0.3970372081 - -0.6684899330 -5823.5927734375 0.3959362507 - -0.6694577932 -5822.5146484375 0.3948348463 - -0.6704244614 -5824.3310546875 0.3937361836 - -0.6713899970 -5824.1748046875 0.3926301003 - -0.6723544002 -5824.5737304688 0.3915089369 - -0.6733176708 -5823.9189453125 0.3904017806 - -0.6742798090 -5824.0336914062 0.3892948329 - -0.6752408147 -5823.1640625000 0.3881864250 - -0.6762006283 -5824.6147460938 0.3870765865 - -0.6771593094 -5825.8535156250 0.3859619796 - -0.6781168580 -5822.9345703125 0.3848352730 - -0.6790732741 -5823.5732421875 0.3837220967 - -0.6800284982 -5823.3642578125 0.3826059699 - -0.6809825897 -5825.4340820312 0.3814937472 - -0.6819355488 -5825.0258789062 0.3803787827 - -0.6828873158 -5824.2534179688 0.3792428672 - -0.6838379502 -5823.5996093750 0.3781247735 - -0.6847873926 -5823.7524414062 0.3770035505 - -0.6857357025 -5824.6684570312 0.3758886456 - -0.6866828799 -5823.6948242188 0.3747633398 - -0.6876288652 -5824.2089843750 0.3736222684 - -0.6885736585 -5823.5664062500 0.3724998236 - -0.6895173192 -5824.5507812500 0.3713752925 - -0.6904597878 -5823.9233398438 0.3702485263 - -0.6914010644 -5824.8525390625 0.3691216409 - -0.6923412085 -5823.2539062500 0.3679760098 - -0.6932801604 -5823.6035156250 0.3668453693 - -0.6942179203 -5823.2075195312 0.3657138944 - -0.6951545477 -5822.9418945312 0.3645883799 - -0.6960899830 -5825.5107421875 0.3634568453 - -0.6970242262 -5824.7670898438 0.3623224199 - -0.6979572773 -5823.2924804688 0.3611698449 - -0.6988891363 -5823.6987304688 0.3600329161 - -0.6998198628 -5824.9526367188 0.3588974774 - -0.7007493973 -5824.3437500000 0.3577597737 - -0.7016776800 -5824.6508789062 0.3566198349 - -0.7026048303 -5824.8491210938 0.3554790318 - -0.7035307884 -5822.6235351562 0.3543233275 - -0.7044554949 -5823.8437500000 0.3531828225 - -0.7053790689 -5824.4541015625 0.3520390987 - -0.7063014507 -5823.7836914062 0.3508951068 - -0.7072225809 -5824.0590820312 0.3497495949 - -0.7081425190 -5826.3041992188 0.3486029506 - -0.7090613246 -5823.7446289062 0.3474385738 - -0.7099788785 -5824.3759765625 0.3462921679 - -0.7108952403 -5825.4199218750 0.3451442719 - -0.7118103504 -5824.3813476562 0.3439947069 - -0.7127243280 -5825.2456054688 0.3428412974 - -0.7136370540 -5823.5141601562 0.3416716158 - -0.7145485878 -5824.0170898438 0.3405184150 - -0.7154588699 -5824.5439453125 0.3393619359 - -0.7163679600 -5824.9746093750 0.3382117152 - -0.7172758579 -5826.0849609375 0.3370576501 - -0.7181825638 -5823.7983398438 0.3359009624 - -0.7190880179 -5824.8906250000 0.3347223699 - -0.7199922204 -5824.2753906250 0.3335632384 - -0.7208952308 -5823.8520507812 0.3324030042 - -0.7217970490 -5825.5058593750 0.3312440515 - -0.7226976156 -5823.8994140625 0.3300834596 - -0.7235969305 -5825.1435546875 0.3289198875 - -0.7244950533 -5824.0112304688 0.3277356029 - -0.7253919244 -5825.2319335938 0.3265722096 - -0.7262876034 -5824.0102539062 0.3254046440 - -0.7271820307 -5822.8051757812 0.3242420256 - -0.7280752063 -5824.4072265625 0.3230744004 - -0.7289671898 -5823.3662109375 0.3219053447 - -0.7298578620 -5825.4609375000 0.3207364678 - -0.7307473421 -5824.6362304688 0.3195451498 - -0.7316356301 -5824.2109375000 0.3183734417 - -0.7325226068 -5825.2407226562 0.3172041476 - -0.7334083915 -5823.9467773438 0.3160306215 - -0.7342929244 -5826.9721679688 0.3148582280 - -0.7351761460 -5824.7539062500 0.3136818707 - -0.7360581756 -5823.9794921875 0.3125046194 - -0.7369389534 -5824.3105468750 0.3113123477 - -0.7378185391 -5824.7172851562 0.3101331592 - -0.7386968136 -5824.1611328125 0.3089546561 - -0.7395738363 -5824.6108398438 0.3077742457 - -0.7404496074 -5825.0449218750 0.3065928817 - -0.7413241267 -5825.1694335938 0.3054158986 - -0.7421973944 -5824.6250000000 0.3042113185 - -0.7430693507 -5823.5878906250 0.3030286729 - -0.7439401150 -5826.0395507812 0.3018434048 - -0.7448095679 -5826.1831054688 0.3006644249 - -0.7456778288 -5824.5410156250 0.2994767427 - -0.7465447783 -5825.6987304688 0.2982903421 - -0.7474104762 -5825.3403320312 0.2970805466 - -0.7482748628 -5823.3955078125 0.2958912849 - -0.7491380572 -5825.3793945312 0.2947070301 - -0.7499999404 -5825.2065429688 0.2935159504 - -0.7508605123 -5825.7109375000 0.2923235595 - -0.7517198920 -5824.5717773438 0.2911309600 - -0.7525779009 -5826.3662109375 0.2899416983 - -0.7534347177 -5824.3281250000 0.2887281477 - -0.7542902231 -5825.7250976562 0.2875326574 - -0.7551444769 -5823.7729492188 0.2863369882 - -0.7559974194 -5826.0449218750 0.2851440609 - -0.7568490505 -5825.2075195312 0.2839475572 - -0.7576994896 -5824.7231445312 0.2827496827 - -0.7585485578 -5825.3457031250 0.2815501094 - -0.7593963742 -5825.5610351562 0.2803538740 - -0.7602429390 -5824.7543945312 0.2791302204 - -0.7610881329 -5825.4584960938 0.2779318094 - -0.7619320750 -5825.9541015625 0.2767278254 - -0.7627747655 -5826.2827148438 0.2755287588 - -0.7636161447 -5826.1137695312 0.2743234038 - -0.7644562125 -5825.7592773438 0.2731207609 - -0.7652949691 -5825.7207031250 0.2719150782 - -0.7661324143 -5824.8798828125 0.2707129717 - -0.7669686079 -5824.5659179688 0.2694826424 - -0.7678034902 -5825.9790039062 0.2682762444 - -0.7686370611 -5824.9101562500 0.2670671940 - -0.7694693208 -5826.2143554688 0.2658615708 - -0.7703003287 -5824.8071289062 0.2646510601 - -0.7711299658 -5826.6000976562 0.2634414732 - -0.7719582915 -5825.7290039062 0.2622289956 - -0.7727853656 -5826.3930664062 0.2609985173 - -0.7736111283 -5825.1953125000 0.2597847283 - -0.7744355202 -5827.0292968750 0.2585720420 - -0.7752586603 -5826.1538085938 0.2573599219 - -0.7760804296 -5825.8828125000 0.2561448216 - -0.7769008875 -5825.9125976562 0.2549284697 - -0.7777200937 -5826.9365234375 0.2537126541 - -0.7785379291 -5825.1171875000 0.2524750233 - -0.7793544531 -5825.6469726562 0.2512558997 - -0.7801696658 -5823.8374023438 0.2500375211 - -0.7809835076 -5826.1733398438 0.2488216460 - -0.7817960978 -5826.7236328125 0.2476015389 - -0.7826073170 -5826.1943359375 0.2463811934 - -0.7834172249 -5827.3789062500 0.2451592684 - -0.7842257619 -5826.6010742188 0.2439391315 - -0.7850330472 -5826.9648437500 0.2427162081 - -0.7858389616 -5826.0659179688 0.2414690256 - -0.7866435051 -5825.3217773438 0.2402478606 - -0.7874467969 -5825.8339843750 0.2390218675 - -0.7882487178 -5827.3422851562 0.2377977967 - -0.7890492678 -5825.5483398438 0.2365728319 - -0.7898485065 -5826.7104492188 0.2353457659 - -0.7906464338 -5825.8427734375 0.2341190130 - -0.7914429903 -5826.9902343750 0.2328925431 - -0.7922381759 -5826.9155273438 0.2316633016 - -0.7930320501 -5825.4282226562 0.2304346263 - -0.7938246131 -5827.0678710938 0.2291827351 - -0.7946158051 -5825.6938476562 0.2279508263 - -0.7954056263 -5825.7133789062 0.2267202437 - -0.7961940765 -5828.0825195312 0.2254874110 - -0.7969812155 -5827.4331054688 0.2242571861 - -0.7977670431 -5827.8623046875 0.2230233699 - -0.7985514402 -5825.7534179688 0.2217894346 - -0.7993345261 -5826.8823242188 0.2205333412 - -0.8001163006 -5826.6137695312 0.2192969173 - -0.8008966446 -5826.1757812500 0.2180611938 - -0.8016756773 -5826.0590820312 0.2168265879 - -0.8024532795 -5827.4204101562 0.2155891061 - -0.8032296300 -5826.6992187500 0.2143518776 - -0.8040045500 -5827.1967773438 0.2131153792 - -0.8047780991 -5828.3090820312 0.2118756771 - -0.8055502772 -5826.2109375000 0.2106123418 - -0.8063211441 -5825.9501953125 0.2093741596 - -0.8070905805 -5826.2050781250 0.2081325501 - -0.8078587055 -5828.1611328125 0.2068919986 - -0.8086254597 -5826.6074218750 0.2056520879 - -0.8093907833 -5826.6860351562 0.2044090033 - -0.8101547956 -5826.8266601562 0.2031680346 - -0.8109173775 -5826.7324218750 0.2019244134 - -0.8116786480 -5826.6782226562 0.2006790936 - -0.8124384880 -5827.4790039062 0.1994373053 - -0.8131970167 -5826.3745117188 0.1981914043 - -0.8139541149 -5827.6352539062 0.1969461739 - -0.8147098422 -5827.6357421875 0.1957011670 - -0.8154641986 -5827.0966796875 0.1944544762 - -0.8162171245 -5827.8427734375 0.1931825280 - -0.8169687390 -5827.5615234375 0.1919357926 - -0.8177189231 -5827.3251953125 0.1906869113 - -0.8184677362 -5828.6381835938 0.1894387305 - -0.8192151785 -5827.8339843750 0.1881899685 - -0.8199611902 -5827.9916992188 0.1869393736 - -0.8207058311 -5827.5239257812 0.1856917590 - -0.8214491010 -5828.0903320312 0.1844394207 - -0.8221909404 -5827.4003906250 0.1831621379 - -0.8229314089 -5828.2177734375 0.1819123775 - -0.8236704469 -5828.2368164062 0.1806591749 - -0.8244081140 -5827.1655273438 0.1794054359 - -0.8251444101 -5828.8437500000 0.1781544089 - -0.8258792758 -5829.6665039062 0.1768994927 - -0.8266127706 -5828.0107421875 0.1756206453 - -0.8273448348 -5826.8671875000 0.1743657738 - -0.8280755281 -5829.2001953125 0.1731100678 - -0.8288047910 -5827.6982421875 0.1718542576 - -0.8295326233 -5827.3227539062 0.1705984324 - -0.8302590847 -5828.0000000000 0.1693411022 - -0.8309841156 -5829.2353515625 0.1680847704 - -0.8317077756 -5828.2250976562 0.1668274105 - -0.8324300051 -5828.9062500000 0.1655696929 - -0.8331508040 -5827.7172851562 0.1643108279 - -0.8338702321 -5828.8911132812 0.1630516350 - -0.8345882297 -5828.5947265625 0.1617923379 - -0.8353047967 -5828.8701171875 0.1605324000 - -0.8360199332 -5829.0458984375 0.1592729539 - -0.8367336988 -5829.1777343750 0.1580123007 - -0.8374460340 -5828.9677734375 0.1567509323 - -0.8381569386 -5828.6411132812 0.1554895788 - -0.8388664126 -5830.4902343750 0.1542269289 - -0.8395744562 -5829.3198242188 0.1529653668 - -0.8402811289 -5830.4702148438 0.1517021060 - -0.8409863114 -5829.8486328125 0.1504383087 - -0.8416901231 -5830.2421875000 0.1491755992 - -0.8423925042 -5829.3911132812 0.1478842348 - -0.8430933952 -5830.9008789062 0.1466203183 - -0.8437929153 -5829.3437500000 0.1453549266 - -0.8444910049 -5830.4355468750 0.1440892816 - -0.8451876044 -5829.0312500000 0.1427970678 - -0.8458828330 -5829.0229492188 0.1415304840 - -0.8465766311 -5829.5097656250 0.1402640641 - -0.8472689390 -5828.6044921875 0.1389697790 - -0.8479598165 -5829.3974609375 0.1377036273 - -0.8486493230 -5829.4594726562 0.1364353448 - -0.8493373394 -5829.9985351562 0.1351400018 - -0.8500239253 -5827.7270507812 0.1338712275 - -0.8507090807 -5827.4448242188 0.1326015592 - -0.8513927460 -5829.3510742188 0.1313332021 - -0.8520750403 -5829.2236328125 0.1300635487 - -0.8527558446 -5828.4726562500 0.1287926137 - -0.8534352183 -5828.4863281250 0.1275228411 - -0.8541131020 -5828.2822265625 0.1262523681 - -0.8547896147 -5829.7807617188 0.1250083894 - -0.8554646373 -5828.8461914062 0.1237366796 - -0.8561381698 -5831.2377929688 0.1224932075 - -0.8568103313 -5832.0683593750 0.1212211400 - -0.8574810028 -5831.5112304688 0.1199758723 - -0.8581501842 -5832.8686523438 0.1187315136 - -0.8588179350 -5833.4375000000 0.1174855977 - -0.8594842553 -5834.4184570312 0.1162679717 - -0.8601490855 -5837.4648437500 0.1150223464 - -0.8608124852 -5838.9951171875 0.1138043925 - -0.8614744544 -5839.5087890625 0.1125586033 - -0.8621348739 -5842.0717773438 0.1113401949 - -0.8627939224 -5841.7875976562 0.1100937575 - -0.8634514213 -5844.5502929688 0.1088747904 - -0.8641075492 -5845.8388671875 0.1076563224 - -0.8647621274 -5846.7705078125 0.1064091399 - -0.8654152751 -5848.8266601562 0.1051896960 - -0.8660669923 -5849.3764648438 0.1039420813 - -0.8667171597 -5852.3002929688 0.1027225479 - -0.8673659563 -5853.1821289062 0.1014746428 - -0.8680132031 -5852.9775390625 0.1002265289 - -0.8686590195 -5855.5283203125 0.0989778712 - -0.8693033457 -5856.0356445312 0.0977299958 - -0.8699461818 -5857.1665039062 0.0964529440 - -0.8705875874 -5856.2446289062 0.0952029526 - -0.8712275028 -5857.1679687500 0.0939254835 - -0.8718659282 29136.9062500000 0.0910728723 - -0.8725028634 29138.1718750000 0.0897677019 - -0.8731383085 29137.5546875000 0.0884630606 - -0.8737723231 29136.3808593750 0.0871564150 - -0.8744048476 29137.9589843750 0.0858511180 - -0.8750358224 29136.3105468750 0.0845456049 - -0.8756653666 29136.8730468750 0.0832400769 - -0.8762934208 29136.0156250000 0.0819344297 - -0.8769200444 29136.9667968750 0.0806292817 - -0.8775451183 29137.0722656250 0.0793225840 - -0.8781687021 29136.0468750000 0.0780178234 - -0.8787907958 29135.0468750000 0.0767118409 - -0.8794113994 29136.9316406250 0.0754055306 - -0.8800305724 29134.6777343750 0.0741002262 - -0.8806481957 29136.8789062500 0.0727942660 - -0.8812643290 29135.1093750000 0.0714881197 - -0.8818789721 29136.2500000000 0.0701813772 - -0.8824921250 29135.7050781250 0.0688757002 - -0.8831037879 29133.9238281250 0.0675690323 - -0.8837139606 29133.9218750000 0.0662629902 - -0.8843225837 29133.0371093750 0.0649563223 - -0.8849297762 29132.8945312500 0.0636507198 - -0.8855354190 29134.0664062500 0.0623431988 - -0.8861395717 29134.9003906250 0.0610367656 - -0.8867422342 29133.0488281250 0.0597298220 - -0.8873434067 29134.2636718750 0.0584239513 - -0.8879430294 29132.9472656250 0.0571170039 - -0.8885412216 29133.6621093750 0.0558102950 - -0.8891378641 29133.1074218750 0.0545030124 - -0.8897329569 29134.0761718750 0.0531966686 - -0.8903266191 29134.6230468750 0.0518889427 - -0.8909187317 29134.3066406250 0.0505824648 - -0.8915092945 29133.5878906250 0.0492750667 - -0.8920984268 29134.3476562500 0.0479681641 - -0.8926860094 29133.9101562500 0.0466616936 - -0.8932720423 29134.1367187500 0.0453545079 - -0.8938565850 29133.6953125000 0.0440471619 - -0.8944396377 29135.2070312500 0.0427406058 - -0.8950211406 29133.1152343750 0.0414329283 - -0.8956011534 29134.4296875000 0.0401266403 - -0.8961796165 29133.6679687500 0.0388188735 - -0.8967565894 29132.3574218750 0.0375121720 - -0.8973320127 29135.1191406250 0.0362054035 - -0.8979059458 29132.4765625000 0.0348972082 - -0.8984783888 29132.4960937500 0.0335911550 - -0.8990492225 29132.9707031250 0.0322835892 - -0.8996185660 29134.1328125000 0.0309767500 - -0.9001864195 29132.6562500000 0.0296684094 - -0.9007527232 29134.1718750000 0.0283614844 - -0.9013174772 29131.4082031250 0.0270553082 - -0.9018807411 29131.7207031250 0.0257484689 - -0.9024424553 29132.3027343750 0.0244401693 - -0.9030026197 29133.3007812500 0.0231332537 - -0.9035612941 29132.7460937500 0.0218253415 - -0.9041184187 29133.4882812500 0.0205192119 - -0.9046739936 29133.5000000000 0.0192108713 - -0.9052280784 29133.1406250000 0.0179047231 - -0.9057805538 29132.9804687500 0.0165966097 - -0.9063315392 29131.6074218750 0.0152904997 - -0.9068810344 29133.6757812500 0.0139824338 - -0.9074289203 29133.5117187500 0.0126750283 - -0.9079753160 29132.1289062500 0.0113678118 - -0.9085201621 29131.7636718750 0.0100615351 - -0.9090633988 29133.1738281250 0.0087536974 - -0.9096052051 29131.8339843750 0.0074471310 - -0.9101454020 29132.8046875000 0.0061389497 - -0.9106840491 29133.1894531250 0.0048320689 - -0.9112212062 29132.8671875000 0.0035250853 - -0.9117567539 29132.3496093750 0.0022175447 - -0.9122908115 29132.8847656250 0.0009101777 - -0.9128232598 29133.3886718750 -0.0003963643 - -0.9133542180 29131.3203125000 -0.0017030946 - -0.9138836265 29132.5273437500 -0.0030101293 - -0.9144114256 29131.8125000000 -0.0043173204 - -0.9149377346 29133.5351562500 -0.0056242049 - -0.9154624939 29131.3203125000 -0.0069313506 - -0.9159856439 29132.1132812500 -0.0082386071 - -0.9165073037 29131.0839843750 -0.0095460452 - -0.9170273542 29132.5097656250 -0.0108526265 - -0.9175459146 29130.8554687500 -0.0121604307 - -0.9180628657 29131.7949218750 -0.0134659819 - -0.9185782671 29132.2109375000 -0.0147739528 - -0.9190921187 29132.5312500000 -0.0160797108 - -0.9196044207 29131.1972656250 -0.0173875242 - -0.9201151729 29132.1660156250 -0.0186933819 - -0.9206243753 29131.7167968750 -0.0200004838 - -0.9211319685 29132.6777343750 -0.0213068612 - -0.9216380119 29131.6289062500 -0.0226145033 - -0.9221425056 29131.3593750000 -0.0239203703 - -0.9226454496 29132.3261718750 -0.0252259392 - -0.9231467843 29131.4531250000 -0.0265337452 - -0.9236466289 29131.8398437500 -0.0278399047 - -0.9241448641 29132.0332031250 -0.0291467402 - -0.9246414900 29131.1250000000 -0.0304521490 - -0.9251366258 29132.4804687500 -0.0317596830 - -0.9256301522 29133.3730468750 -0.0330656841 - -0.9261221290 29130.7128906250 -0.0343720987 - -0.9266124964 29133.0625000000 -0.0356776454 - -0.9271013141 29131.5917968750 -0.0369847678 - -0.9275885820 29131.3242187500 -0.0382902026 - -0.9280742407 29132.1601562500 -0.0395969115 - -0.9285583496 29132.4628906250 -0.0409017205 - -0.9290408492 29130.4414062500 -0.0422086120 - -0.9295217991 29131.5781250000 -0.0435145274 - -0.9300011992 29131.4863281250 -0.0448210649 - -0.9304789901 29131.6191406250 -0.0461258106 - -0.9309552312 29131.1464843750 -0.0474328399 - -0.9314298630 29131.2070312500 -0.0487374403 - -0.9319029450 29131.9277343750 -0.0500438921 - -0.9323744178 29129.8593750000 -0.0513477065 - -0.9328443408 29131.9179687500 -0.0526543781 - -0.9333126545 29131.3808593750 -0.0539585575 - -0.9337794185 29129.8984375000 -0.0552647822 - -0.9342445731 29131.5976562500 -0.0565699376 - -0.9347081184 29132.1425781250 -0.0578764416 - -0.9351701140 29131.3554687500 -0.0591807514 - -0.9356305003 29133.0253906250 -0.0604857653 - -0.9360893369 29131.8613281250 -0.0617905334 - -0.9365465641 29131.3808593750 -0.0630947500 - -0.9370021820 29130.8476562500 -0.0643999651 - -0.9374562502 29131.5292968750 -0.0657044053 - -0.9379087090 29132.1113281250 -0.0670100823 - -0.9383596182 29131.3613281250 -0.0683127344 - -0.9388088584 29132.4003906250 -0.0696188882 - -0.9392565489 29132.3417968750 -0.0709223747 - -0.9397026896 29129.8203125000 -0.0722272694 - -0.9401471615 29132.4218750000 -0.0735317320 - -0.9405900836 29131.7207031250 -0.0748366192 - -0.9410313964 29130.8750000000 -0.0761387497 - -0.9414711595 29129.7519531250 -0.0774432421 - -0.9419092536 29131.5527343750 -0.0787473246 - -0.9423457980 29130.1992187500 -0.0800511688 - -0.9427807331 29131.0253906250 -0.0813547522 - -0.9432140589 29131.7128906250 -0.0826575831 - -0.9436457753 29132.5058593750 -0.0839620307 - -0.9440759420 29130.2382812500 -0.0852630883 - -0.9445044398 29130.3847656250 -0.0865680054 - -0.9449313879 29131.0585937500 -0.0878697485 - -0.9453567266 29131.6093750000 -0.0891738534 - -0.9457804561 29131.3574218750 -0.0904764831 - -0.9462025762 29131.0371093750 -0.0917803869 - -0.9466230869 29130.8144531250 -0.0930812806 - -0.9470419884 29129.9687500000 -0.0943844840 - -0.9474592805 29130.2031250000 -0.0956863388 - -0.9478750229 29130.3339843750 -0.0969896019 - -0.9482890964 29131.6640625000 -0.0982905030 - -0.9487015605 29132.3828125000 -0.0995942280 - -0.9491124749 29130.2675781250 -0.1008948684 - -0.9495217204 29130.7617187500 -0.1021974832 - -0.9499294162 29132.0507812500 -0.1034995317 - -0.9503354430 29132.1191406250 -0.1047988907 - -0.9507398605 29130.2187500000 -0.1061006859 - -0.9511427283 29130.8671875000 -0.1074012592 - -0.9515439272 29130.8398437500 -0.1087034047 - -0.9519435167 29132.3125000000 -0.1100041866 - -0.9523414969 29129.3593750000 -0.1113057733 - -0.9527378678 29131.6308593750 -0.1126060337 - -0.9531326294 29129.8398437500 -0.1139076203 - -0.9535257816 29131.9355468750 -0.1152065620 - -0.9539173245 29129.3476562500 -0.1165072396 - -0.9543071985 29131.7402343750 -0.1178075746 - -0.9546955228 29130.2187500000 -0.1191078052 - -0.9550821781 29129.8476562500 -0.1204061955 - -0.9554672241 29129.9824218750 -0.1217078269 - -0.9558506608 29131.1113281250 -0.1230064705 - -0.9562324882 29130.4042968750 -0.1243038550 - -0.9566126466 29129.4453125000 -0.1256043911 - -0.9569911957 29132.1269531250 -0.1269027889 - -0.9573681951 29130.6113281250 -0.1282028407 - -0.9577434659 29131.0058593750 -0.1295004338 - -0.9581171870 29130.7265625000 -0.1308005601 - -0.9584892392 29130.6855468750 -0.1320978403 - -0.9588596821 29129.3867187500 -0.1333964467 - -0.9592285156 29130.6406250000 -0.1346930861 - -0.9595957398 29130.7558593750 -0.1359925717 - -0.9599612951 29131.5000000000 -0.1372894198 - -0.9603252411 29130.9628906250 -0.1385876685 - -0.9606875777 29129.2558593750 -0.1398834884 - -0.9610482454 29130.1718750000 -0.1411815286 - -0.9614073038 29131.2402343750 -0.1424778849 - -0.9617646933 29130.0039062500 -0.1437740326 - -0.9621205330 29131.4414062500 -0.1450716108 - -0.9624747038 29130.5761718750 -0.1463675648 - -0.9628272057 29130.2988281250 -0.1476641893 - -0.9631780982 29131.6972656250 -0.1489585638 - -0.9635273814 29130.1152343750 -0.1502560824 - -0.9638749957 29130.3691406250 -0.1515498906 - -0.9642210007 29129.8496093750 -0.1528467238 - -0.9645653963 29130.4140625000 -0.1541415453 - -0.9649081230 29131.1425781250 -0.1554376185 - -0.9652491808 29129.8847656250 -0.1567313224 - -0.9655886292 29130.0820312500 -0.1580264717 - -0.9659264684 29131.7656250000 -0.1593203843 - -0.9662626386 29132.6250000000 -0.1606136858 - -0.9665971994 29130.4707031250 -0.1619078666 - -0.9669300914 29129.5605468750 -0.1632008255 - -0.9672613740 29129.9023437500 -0.1644959301 - -0.9675909877 29130.4140625000 -0.1657871902 - -0.9679189920 29131.5019531250 -0.1670820266 - -0.9682453275 29131.8906250000 -0.1683737189 - -0.9685700536 29130.3046875000 -0.1696680337 - -0.9688931108 29130.6796875000 -0.1709583700 - -0.9692144990 29130.3964843750 -0.1722522825 - -0.9695342779 29131.4277343750 -0.1735429466 - -0.9698523879 29129.7109375000 -0.1748351753 - -0.9701688886 29131.0078125000 -0.1761260182 - -0.9704837203 29132.0390625000 -0.1774155945 - -0.9707969427 29130.0859375000 -0.1787081808 - -0.9711084962 29130.8808593750 -0.1799978316 - -0.9714183807 29129.9531250000 -0.1812891215 - -0.9717266560 29130.3242187500 -0.1825776845 - -0.9720332623 29131.9218750000 -0.1838700771 - -0.9723381996 29130.8847656250 -0.1851577163 - -0.9726415277 29130.1523437500 -0.1864484400 - -0.9729431868 29130.5371093750 -0.1877366751 - -0.9732432365 29129.6406250000 -0.1890258342 - -0.9735415578 29131.1875000000 -0.1903146058 - -0.9738382697 29130.6132812500 -0.1916034222 - -0.9741333723 29130.1152343750 -0.1928910762 - -0.9744267464 29129.2851562500 -0.1941794157 - -0.9747185111 29131.1972656250 -0.1954664588 - -0.9750086069 29130.9453125000 -0.1967524588 - -0.9752970934 29130.4003906250 -0.1980407238 - -0.9755838513 29130.3808593750 -0.1993263066 - -0.9758690000 29130.2558593750 -0.2006144673 - -0.9761525393 29130.6054687500 -0.2018989027 - -0.9764343500 29131.1210937500 -0.2031870335 - -0.9767145514 29130.5292968750 -0.2044705600 - -0.9769930840 29130.3496093750 -0.2057570070 - -0.9772699475 29129.8300781250 -0.2070410401 - -0.9775451422 29131.8300781250 -0.2083275914 - -0.9778186679 29129.9179687500 -0.2096102387 - -0.9780905843 29130.0800781250 -0.2108945251 - -0.9783608317 29129.8496093750 -0.2121782750 - -0.9786294103 29128.1933593750 -0.2134621292 - -0.9788963199 29129.8906250000 -0.2147457749 - -0.9791615605 29131.6386718750 -0.2160266638 - -0.9794251919 29131.7773437500 -0.2173114866 - -0.9796871543 29130.7929687500 -0.2185922414 - -0.9799473882 29129.8125000000 -0.2198754996 - -0.9802060127 29130.6230468750 -0.2211554646 - -0.9804629683 29132.0078125000 -0.2224392891 - -0.9807182550 29129.9492187500 -0.2237175554 - -0.9809719324 29129.4003906250 -0.2249988317 - -0.9812238812 29130.4843750000 -0.2262787670 - -0.9814741611 29130.3105468750 -0.2275606245 - -0.9817228317 29131.3750000000 -0.2288393229 - -0.9819697738 29130.4863281250 -0.2301194072 - -0.9822151065 29129.5761718750 -0.2313965410 - -0.9824587703 29128.2460937500 -0.2326761782 - -0.9827007055 29129.9121093750 -0.2339551747 - -0.9829410315 29131.8085937500 -0.2352328598 - -0.9831796885 29130.4453125000 -0.2365104705 - -0.9834166765 29130.2519531250 -0.2377865016 - -0.9836519957 29129.8750000000 -0.2390642613 - -0.9838856459 29130.5019531250 -0.2403405011 - -0.9841176271 29130.6152343750 -0.2416186631 - -0.9843479395 29129.6035156250 -0.2428924739 - -0.9845765233 29130.9042968750 -0.2441693693 - -0.9848034978 29130.0117187500 -0.2454423904 - -0.9850288033 29129.7207031250 -0.2467186600 - -0.9852524400 29130.2207031250 -0.2479934543 - -0.9854744077 29130.6308593750 -0.2492685914 - -0.9856947064 29129.9101562500 -0.2505404949 - -0.9859133363 29130.6054687500 -0.2518149614 - -0.9861302972 29130.6562500000 -0.2530879378 - -0.9863455296 29131.0429687500 -0.2543608844 - -0.9865591526 29131.3613281250 -0.2556327581 - -0.9867710471 29130.5761718750 -0.2569050789 - -0.9869813323 29132.2734375000 -0.2581775784 - -0.9871898890 29131.1191406250 -0.2594467103 - -0.9873968363 29129.5781250000 -0.2607172132 - -0.9876020551 29130.7500000000 -0.2619875371 - -0.9878056049 29129.5292968750 -0.2632582784 - -0.9880074859 29131.0332031250 -0.2645277381 - -0.9882076979 29130.0546875000 -0.2657972574 - -0.9884062409 29129.3085937500 -0.2670645118 - -0.9886031151 29130.3750000000 -0.2683344781 - -0.9887983203 29129.4589843750 -0.2696010172 - -0.9889917970 29128.5156250000 -0.2708702683 - -0.9891836643 29131.5488281250 -0.2721385360 - -0.9893738031 29129.3417968750 -0.2734045386 - -0.9895622730 29129.7519531250 -0.2746702433 - -0.9897490740 29129.9589843750 -0.2759372592 - -0.9899342060 29131.4726562500 -0.2772032619 - -0.9901176095 29129.7480468750 -0.2784683406 - -0.9902994037 29131.1601562500 -0.2797325850 - -0.9904794693 29129.7167968750 -0.2809980810 - -0.9906578660 29131.4140625000 -0.2822611630 - -0.9908345938 29131.8496093750 -0.2835273445 - -0.9910096526 29131.7500000000 -0.2847885191 - -0.9911830425 29129.7871093750 -0.2860518694 - -0.9913547039 29129.7089843750 -0.2873135209 - -0.9915246964 29130.9531250000 -0.2885751128 - -0.9916930199 29131.2304687500 -0.2898375690 - -0.9918596745 29130.8945312500 -0.2910977900 - -0.9920246601 29131.0351562500 -0.2923596799 - -0.9921879172 29132.3164062500 -0.2936205268 - -0.9923495054 29129.8300781250 -0.2948798835 - -0.9925094247 29131.0156250000 -0.2961395085 - -0.9926676750 29129.0253906250 -0.2973980308 - -0.9928241968 29130.1777343750 -0.2986574471 - -0.9929791093 29131.4140625000 -0.2999168932 - -0.9931322336 29131.7460937500 -0.3011747003 - -0.9932837486 29130.7207031250 -0.3024329841 - -0.9934335947 29131.0390625000 -0.3036892414 - -0.9935817122 29130.6542968750 -0.3049472272 - -0.9937281609 29131.1308593750 -0.3062028587 - -0.9938728809 29130.7500000000 -0.3074593842 - -0.9940159917 29131.6250000000 -0.3087148964 - -0.9941573739 29129.6523437500 -0.3099704385 - -0.9942970872 29130.0019531250 -0.3112254441 - -0.9944350719 29130.4296875000 -0.3124795556 - -0.9945714474 29131.1855468750 -0.3137330711 - -0.9947060943 29131.4531250000 -0.3149890304 - -0.9948390126 29131.8007812500 -0.3162404001 - -0.9949703217 29131.1308593750 -0.3174951375 - -0.9950999022 29130.1367187500 -0.3187457621 - -0.9952278137 29130.4628906250 -0.3199992180 - -0.9953539968 29131.6582031250 -0.3212511539 - -0.9954785109 29130.3378906250 -0.3225030005 - -0.9956013560 29130.4199218750 -0.3237515986 - -0.9957225323 29131.0898437500 -0.3250043988 - -0.9958419800 29130.4765625000 -0.3262545466 - -0.9959597588 29128.7773437500 -0.3275034428 - -0.9960758090 29130.6738281250 -0.3287543058 - -0.9961902499 29132.2500000000 -0.3300053477 - -0.9963029623 29130.0175781250 -0.3312523067 - -0.9964139462 29131.9160156250 -0.3325024843 - -0.9965232611 29131.8632812500 -0.3337497413 - -0.9966309071 29131.2246093750 -0.3349993229 - -0.9967368841 29129.4316406250 -0.3362449408 - -0.9968411326 29130.1191406250 -0.3374925256 - -0.9969437122 29130.2265625000 -0.3387398422 - -0.9970445633 29130.8105468750 -0.3399865627 - -0.9971437454 29131.4316406250 -0.3412323594 - -0.9972412586 29131.4843750000 -0.3424799442 - -0.9973370433 29130.8808593750 -0.3437255025 - -0.9974311590 29130.2285156250 -0.3449715674 - -0.9975236058 29130.5019531250 -0.3462143838 - -0.9976143241 29130.6835937500 -0.3474624157 - -0.9977033734 29132.0937500000 -0.3487069011 - -0.9977907538 29130.0000000000 -0.3499521017 - -0.9978764057 29132.3574218750 -0.3511939645 - -0.9979603291 29130.6640625000 -0.3524385393 - -0.9980426431 29131.1816406250 -0.3536822498 - -0.9981232285 29130.8828125000 -0.3549277186 - -0.9982020855 29130.0820312500 -0.3561691642 - -0.9982792735 29129.8398437500 -0.3574132621 - -0.9983547926 29129.8300781250 -0.3586562574 - -0.9984286427 29130.5468750000 -0.3598996103 - -0.9985007644 29130.4355468750 -0.3611407280 - -0.9985711575 29131.5468750000 -0.3623849750 - -0.9986398816 29130.2734375000 -0.3636260629 - -0.9987069368 29129.2460937500 -0.3648674786 - -0.9987722635 29132.1972656250 -0.3661124706 - -0.9988359213 29131.7070312500 -0.3673549592 - -0.9988979101 29131.4238281250 -0.3685953021 - -0.9989581704 29129.9082031250 -0.3698367178 - -0.9990167618 29133.4667968750 -0.3710813224 - -0.9990736246 29130.3320312500 -0.3723206222 - -0.9991288185 29130.5625000000 -0.3735623360 - -0.9991822839 29130.6074218750 -0.3748044968 - -0.9992340803 29131.4804687500 -0.3760462999 - -0.9992842078 29131.5566406250 -0.3772883415 - -0.9993326068 29130.3925781250 -0.3785286844 - -0.9993793368 29131.4003906250 -0.3797716796 - -0.9994243383 29132.3339843750 -0.3810140789 - -0.9994676709 29130.3027343750 -0.3822542429 - -0.9995093346 29131.5957031250 -0.3834983706 - -0.9995492697 29131.9335937500 -0.3847409785 - -0.9995874763 29130.3691406250 -0.3859806061 - -0.9996240735 29130.4589843750 -0.3872219026 - -0.9996588826 29131.4960937500 -0.3884671032 - -0.9996920824 29129.9882812500 -0.3897098601 - -0.9997234941 29131.0996093750 -0.3909517825 - -0.9997532964 29131.1289062500 -0.3921958506 - -0.9997813702 29129.8378906250 -0.3934400380 - -0.9998077154 29131.8847656250 -0.3946847022 - -0.9998324513 29130.6835937500 -0.3959282637 - -0.9998553991 29131.0292968750 -0.3971713781 - -0.9998767376 29130.5898437500 -0.3984147310 - -0.9998962879 29130.9316406250 -0.3996588886 - -0.9999142289 29130.6484375000 -0.4009066820 - -0.9999304414 29131.7558593750 -0.4021535218 - -0.9999449253 29129.2148437500 -0.4033955634 - -0.9999577403 29131.9101562500 -0.4046441019 - -0.9999688864 29130.5917968750 -0.4058918953 - -0.9999783039 29131.0390625000 -0.4071389437 - -0.9999860525 29132.3964843750 -0.4083881378 - -0.9999920726 29129.8750000000 -0.4096334577 - -0.9999964237 29131.1777343750 -0.4108841717 - -0.9999990463 29131.0371093750 -0.4121343493 - -1.0000000000 29131.4570312500 -0.4133864045 - -0.9999992251 29130.8769531250 -0.4146356285 - -0.9999967813 29131.5585937500 -0.4158904850 - -0.9999926686 29131.6503906250 -0.4171419740 - -0.9999868274 29131.1621093750 -0.4183911085 - -0.9999793172 29130.4667968750 -0.4196472466 - -0.9999700785 29131.9589843750 -0.4209044278 - -0.9999591708 29132.0488281250 -0.4221573770 - -0.9999465346 29132.4472656250 -0.4234160185 - -0.9999322295 29132.5195312500 -0.4246735871 - -0.9999162555 29131.9316406250 -0.4259303808 - -0.9998985529 29131.5000000000 -0.4271915555 - -0.9998791218 29132.3476562500 -0.4284483790 - -0.9998580813 29131.4218750000 -0.4297116399 - -0.9998352528 29132.7070312500 -0.4309747815 - -0.9998108149 29132.2031250000 -0.4322360456 - -0.9997845888 29130.6894531250 -0.4334993958 - -0.9997567534 29130.8398437500 -0.4347636700 - -0.9997271895 29131.2285156250 -0.4360328019 - -0.9996958971 29130.5937500000 -0.4372977614 - -0.9996629953 29132.1601562500 -0.4385676980 - -0.9996283054 29130.5625000000 -0.4398409724 - -0.9995919466 29130.2460937500 -0.4411104918 - -0.9995539188 29131.9882812500 -0.4423804283 - -0.9995142221 29129.6777343750 -0.4436584115 - -0.9994727969 29132.0234375000 -0.4449304044 - -0.9994296432 29130.6464843750 -0.4462090433 - -0.9993848205 29132.0410156250 -0.4474854469 - -0.9993383288 29131.2324218750 -0.4487691522 - -0.9992901087 29129.5937500000 -0.4500483871 - -0.9992402196 29131.5410156250 -0.4513304234 - -0.9991886020 29130.9746093750 -0.4526138306 - -0.9991353154 29131.7285156250 -0.4538999498 - -0.9990803599 29132.0937500000 -0.4551886916 - -0.9990236759 29131.1972656250 -0.4564785063 - -0.9989652634 29131.7656250000 -0.4577721357 - -0.9989052415 29131.1796875000 -0.4590643346 - -0.9988434911 29130.3632812500 -0.4603561759 - -0.9987800121 29131.4316406250 -0.4616527855 - -0.9987148643 29130.9785156250 -0.4629512429 - -0.9986480474 29130.2871093750 -0.4642510116 - -0.9985795021 29132.2070312500 -0.4655508101 - -0.9985092878 29132.2851562500 -0.4668558538 - -0.9984373450 29132.2148437500 -0.4681591690 - -0.9983637333 29130.2792968750 -0.4694657326 - -0.9982884526 29132.6855468750 -0.4707750380 - -0.9982114434 29131.4042968750 -0.4720897675 - -0.9981327653 29130.0156250000 -0.4733920991 - -0.9980523586 29132.1914062500 -0.4747126997 - -0.9979703426 29130.5253906250 -0.4760341346 - -0.9978865385 29131.6875000000 -0.4773450196 - -0.9978011250 29130.9550781250 -0.4786701202 - -0.9977139235 29131.1328125000 -0.4799910188 - -0.9976251125 29130.3027343750 -0.4813123345 - -0.9975345731 29131.6601562500 -0.4826454222 - -0.9974423647 29131.7011718750 -0.4839743376 - -0.9973484278 29130.9140625000 -0.4853060842 - -0.9972528219 29132.5429687500 -0.4866374135 - -0.9971555471 29131.4082031250 -0.4879695475 - -0.9970565438 29131.0312500000 -0.4893071353 - -0.9969558716 29132.2519531250 -0.4906455576 - -0.9968535304 29130.9570312500 -0.4919848144 - -0.9967494607 29130.7421875000 -0.4933281243 - -0.9966437221 29132.3242187500 -0.4946766496 - -0.9965363145 29131.5625000000 -0.4960254729 - -0.9964271784 29131.7246093750 -0.4973693192 - -0.9963163733 29132.1757812500 -0.4987246394 - -0.9962038398 29133.1289062500 -0.5000801086 - -0.9960896373 29131.9121093750 -0.5014357567 - -0.9959737659 29132.0742187500 -0.5027940869 - -0.9958562255 29130.8652343750 -0.5041549802 - -0.9957369566 29132.1328125000 -0.5055130720 - -0.9956160188 29131.4785156250 -0.5068789124 - -0.9954933524 29132.3925781250 -0.5082377791 - -0.9953690171 29132.6914062500 -0.5096079111 - -0.9952430129 29133.6933593750 -0.5109751821 - -0.9951153398 29132.5390625000 -0.5123493671 - -0.9949859381 29130.4941406250 -0.5137250423 - -0.9948548675 29131.1914062500 -0.5150980353 - -0.9947221279 29131.8417968750 -0.5164727569 - -0.9945876598 29133.1308593750 -0.5178524256 - -0.9944515228 29132.3691406250 -0.5192254186 - -0.9943137169 29130.4414062500 -0.5206072330 - -0.9941742420 29132.2207031250 -0.5219939351 - -0.9940330386 29130.6953125000 -0.5233745575 - -0.9938901663 29131.4511718750 -0.5247573853 - -0.9937456250 29130.2539062500 -0.5261459351 - -0.9935993552 29133.1757812500 -0.5275356770 - -0.9934514165 29131.6132812500 -0.5289276838 - -0.9933018088 29131.6601562500 -0.5303169489 - -0.9931505322 29131.8457031250 -0.5317136645 - -0.9929975271 29132.1777343750 -0.5330975056 - -0.9928429127 29131.7343750000 -0.5344963670 - -0.9926865697 29133.1152343750 -0.5358884931 - -0.9925284982 29131.0976562500 -0.5372865200 - -0.9923688173 29132.6386718750 -0.5386840701 - -0.9922074080 29132.5019531250 -0.5400855541 - -0.9920443296 29132.1542968750 -0.5414850712 - -0.9918795824 29132.5781250000 -0.5428809524 - -0.9917131066 29133.9218750000 -0.5442824960 - -0.9915450215 29132.0742187500 -0.5456721187 - -0.9913752079 29132.6777343750 -0.5470735431 - -0.9912037253 29131.5097656250 -0.5484823585 - -0.9910305738 29131.4042968750 -0.5498752594 - -0.9908556938 29133.0058593750 -0.5512779355 - -0.9906792045 29131.0683593750 -0.5526663065 - -0.9905009866 29131.7753906250 -0.5540854931 - -0.9903210998 29132.1816406250 -0.5554792881 - -0.9901395440 29132.0351562500 -0.5568765998 - -0.9899563193 29131.7089843750 -0.5582736135 - -0.9897713661 29132.6933593750 -0.5596726537 - -0.9895848036 29131.4335937500 -0.5610740185 - -0.9893965125 29132.6699218750 -0.5624647141 - -0.9892065525 29131.9316406250 -0.5638697743 - -0.9890149236 29132.1191406250 -0.5652669072 - -0.9888216257 29132.2636718750 -0.5666587353 - -0.9886266589 29132.1074218750 -0.5680446625 - -0.9884299636 29132.3828125000 -0.5694391727 - -0.9882316589 29131.1484375000 -0.5708339214 - -0.9880316257 29132.0859375000 -0.5722178817 - -0.9878299236 29132.8320312500 -0.5736111999 - -0.9876265526 29132.3300781250 -0.5749974847 - -0.9874215722 29132.3378906250 -0.5763741732 - -0.9872148633 29132.0605468750 -0.5777557492 - -0.9870064259 29132.7285156250 -0.5791374445 - -0.9867963791 29132.1718750000 -0.5805224180 - -0.9865846634 29132.0234375000 -0.5818907022 - -0.9863712788 29132.0976562500 -0.5832686424 - -0.9861561656 29133.0644531250 -0.5846381783 - -0.9859394431 29132.0507812500 -0.5860053301 - -0.9857210517 29132.2578125000 -0.5873697996 - -0.9855009317 29131.9765625000 -0.5887259841 - -0.9852792025 29131.9355468750 -0.5900996923 - -0.9850557446 29133.1621093750 -0.5914488435 - -0.9848306179 29130.9296875000 -0.5928043127 - -0.9846038818 29132.6953125000 -0.5941479802 - -0.9843754172 29132.8222656250 -0.5955026150 - -0.9841453433 29131.5644531250 -0.5968483090 - -0.9839135408 29133.6855468750 -0.5981802940 - -0.9836801291 29131.6972656250 -0.5995190144 - -0.9834449887 29131.9882812500 -0.6008490324 - -0.9832082391 29132.9628906250 -0.6021810174 - -0.9829697609 29133.2343750000 -0.6035073996 - -0.9827296734 29132.6445312500 -0.6048292518 - -0.9824878573 29133.4511718750 -0.6061493158 - -0.9822444320 29131.1152343750 -0.6074609756 - -0.9819993377 29131.4335937500 -0.6087741256 - -0.9817525148 29132.4492187500 -0.6100696921 - -0.9815040827 29132.2402343750 -0.6113737226 - -0.9812539816 29132.4472656250 -0.6126698852 - -0.9810022116 29132.0957031250 -0.6139629483 - -0.9807487726 29130.3789062500 -0.6152504683 - -0.9804937243 29132.1093750000 -0.6165326834 - -0.9802369475 29131.6210937500 -0.6178086996 - -0.9799785018 29133.0429687500 -0.6190807223 - -0.9797184467 29131.6699218750 -0.6203501225 - -0.9794567227 29132.5312500000 -0.6216145754 - -0.9791933298 29132.3261718750 -0.6228692532 - -0.9789282680 29132.0214843750 -0.6241228580 - -0.9786615372 29130.7031250000 -0.6253690124 - -0.9783931375 29131.4707031250 -0.6266114116 - -0.9781231284 29132.4003906250 -0.6278514266 - -0.9778513908 29132.6328125000 -0.6290875673 - -0.9775780439 29132.7285156250 -0.6303148866 - -0.9773030281 29131.5058593750 -0.6315376759 - -0.9770263433 29132.1113281250 -0.6327502728 - -0.9767480493 29132.9082031250 -0.6339628100 - -0.9764680862 29131.0449218750 -0.6351647973 - -0.9761864543 29131.4785156250 -0.6363708377 - -0.9759031534 29131.9843750000 -0.6375644803 - -0.9756181836 29132.1425781250 -0.6387549639 - -0.9753316045 29133.4082031250 -0.6399407983 - -0.9750433564 29132.9511718750 -0.6411214471 - -0.9747534394 29133.1992187500 -0.6422904730 - -0.9744618535 29132.8027343750 -0.6434593797 - -0.9741686583 29131.6015625000 -0.6446228623 - -0.9738737941 29131.7929687500 -0.6457763910 - -0.9735772610 29132.7148437500 -0.6469312310 - -0.9732791185 29131.7871093750 -0.6480732560 - -0.9729793072 29131.7128906250 -0.6492136717 - -0.9726778269 29133.0996093750 -0.6503481269 - -0.9723746777 29130.8613281250 -0.6514745951 - -0.9720699191 29132.7558593750 -0.6525995731 - -0.9717635512 29132.9550781250 -0.6537165046 - -0.9714554548 29131.9707031250 -0.6548301578 - -0.9711457491 29132.5429687500 -0.6559352279 - -0.9708344340 29131.5664062500 -0.6570357084 - -0.9705213904 29131.6699218750 -0.6581351757 - -0.9702067971 29131.3046875000 -0.6592192650 - -0.9698904753 29131.7421875000 -0.6603068113 - -0.9695725441 29131.1250000000 -0.6613845229 - -0.9692529440 29132.4531250000 -0.6624566317 - -0.9689317346 29132.7675781250 -0.6635265946 - -0.9686088562 29131.9492187500 -0.6645877361 - -0.9682843685 29132.6503906250 -0.6656463146 - -0.9679582119 29132.6445312500 -0.6666975617 - -0.9676304460 29133.8691406250 -0.6677429676 - -0.9673010111 29132.2539062500 -0.6687831283 - -0.9669699669 29131.6406250000 -0.6698189974 - -0.9666372538 29131.5332031250 -0.6708492637 - -0.9663028717 29131.5312500000 -0.6718744636 - -0.9659668803 29131.4746093750 -0.6728936434 - -0.9656292796 29131.4394531250 -0.6739090085 - -0.9652900100 29130.5234375000 -0.6749185920 - -0.9649491310 29132.8046875000 -0.6759244204 - -0.9646065831 29131.3144531250 -0.6769233942 - -0.9642624259 29130.7558593750 -0.6779164672 - -0.9639165998 29132.9101562500 -0.6789060831 - -0.9635691643 29130.6230468750 -0.6798893213 - -0.9632201195 29131.7167968750 -0.6808692813 - -0.9628694057 29132.0527343750 -0.6818447709 - -0.9625170827 29131.7363281250 -0.6828136444 - -0.9621630907 29131.8925781250 -0.6837785244 - -0.9618074894 29130.7695312500 -0.6847397685 - -0.9614502788 29132.0898437500 -0.6856942773 - -0.9610913992 29130.9824218750 -0.6866446733 - -0.9607309103 29131.4296875000 -0.6875931621 - -0.9603688121 29132.9707031250 -0.6885334253 - -0.9600050449 29131.8085937500 -0.6894692183 - -0.9596396685 29131.3378906250 -0.6904060245 - -0.9592726827 29130.8476562500 -0.6913321018 - -0.9589040279 29130.7773437500 -0.6922553778 - -0.9585338235 29133.1425781250 -0.6931767464 - -0.9581619501 29133.4082031250 -0.6940922141 - -0.9577884078 29132.3867187500 -0.6950021386 - -0.9574133158 29134.0566406250 -0.6959097981 - -0.9570365548 29132.9140625000 -0.6968139410 - -0.9566581845 29132.4628906250 -0.6977106333 - -0.9562781453 29133.2070312500 -0.6986048818 - -0.9558965564 29132.9570312500 -0.6994975209 - -0.9555132985 29131.9804687500 -0.7003821135 - -0.9551284909 29132.0625000000 -0.7012659907 - -0.9547420144 29132.7011718750 -0.7021443248 - -0.9543538690 29132.2089843750 -0.7030170560 - -0.9539641738 29132.3613281250 -0.7038906813 - -0.9535728693 29132.3222656250 -0.7047607303 - -0.9531798959 29131.7050781250 -0.7056223154 - -0.9527853131 29132.7070312500 -0.7064831257 - -0.9523891807 29131.9980468750 -0.7073373795 - -0.9519913793 29131.7968750000 -0.7081921697 - -0.9515919685 29130.6621093750 -0.7090405226 - -0.9511909485 29133.1855468750 -0.7098882198 - -0.9507883191 29132.6542968750 -0.7107328773 - -0.9503840804 29132.7617187500 -0.7115721703 - -0.9499782324 29132.9472656250 -0.7124060392 - -0.9495707154 29131.0390625000 -0.7132397294 - -0.9491616488 29132.3027343750 -0.7140742540 - -0.9487509727 29132.3535156250 -0.7148978710 - -0.9483386874 29130.9296875000 -0.7157168388 - -0.9479247928 29132.5957031250 -0.7165398002 - -0.9475092888 29130.4824218750 -0.7173596621 - -0.9470921755 29132.6621093750 -0.7181744576 - -0.9466734529 29133.6621093750 -0.7189880610 - -0.9462531209 29131.7714843750 -0.7197959423 - -0.9458311796 29132.4882812500 -0.7205994725 - -0.9454076290 29131.9121093750 -0.7214000225 - -0.9449825287 29132.1796875000 -0.7222052813 - -0.9445557594 29132.2675781250 -0.7230024338 - -0.9441274405 29130.8437500000 -0.7237899899 - -0.9436975121 29132.8339843750 -0.7245891094 - -0.9432659149 29132.6132812500 -0.7253804803 - -0.9428328276 29132.6972656250 -0.7261652946 - -0.9423980713 29130.9746093750 -0.7269449234 - -0.9419617057 29133.3808593750 -0.7277325988 - -0.9415237904 29132.3769531250 -0.7285111547 - -0.9410842657 29131.7402343750 -0.7292857170 - -0.9406431317 29133.5136718750 -0.7300655246 - -0.9402003884 29132.4609375000 -0.7308352590 - -0.9397560954 29131.9628906250 -0.7316067219 - -0.9393101931 29130.9218750000 -0.7323715687 - -0.9388626814 29131.7910156250 -0.7331399918 - -0.9384136200 29134.1484375000 -0.7339053750 - -0.9379628897 29131.4062500000 -0.7346634865 - -0.9375106692 29133.8750000000 -0.7354266644 - -0.9370567799 29132.6308593750 -0.7361840606 - -0.9366013408 29133.1640625000 -0.7369372845 - -0.9361442924 29130.4316406250 -0.7376855612 - -0.9356856346 29131.2890625000 -0.7384434938 - -0.9352254272 29132.8203125000 -0.7391898036 - -0.9347636700 29131.3593750000 -0.7399334311 - -0.9343002439 29130.1738281250 -0.7406801581 - -0.9338352680 29132.2343750000 -0.7414306402 - -0.9333687425 29131.7734375000 -0.7421690226 - -0.9329006076 29131.8066406250 -0.7429057360 - -0.9324309230 29132.4550781250 -0.7436500192 - -0.9319596291 29132.6289062500 -0.7443808317 - -0.9314867258 29132.6875000000 -0.7451167107 - -0.9310122728 29133.3417968750 -0.7458444834 - -0.9305362105 29131.6914062500 -0.7465885878 - -0.9300585985 29132.3750000000 -0.7473146915 - -0.9295794368 29131.3906250000 -0.7480407953 - -0.9290986657 29132.6777343750 -0.7487635016 - -0.9286163449 29132.2792968750 -0.7494958639 - -0.9281324148 29132.4824218750 -0.7502171397 - -0.9276469350 29133.1816406250 -0.7509356737 - -0.9271598458 29131.9726562500 -0.7516505122 - -0.9266712666 29132.0585937500 -0.7523794770 - -0.9261810184 29131.6328125000 -0.7530987859 - -0.9256892800 29130.5878906250 -0.7538105249 - -0.9251959324 29131.5449218750 -0.7545229197 - -0.9247010350 29132.4941406250 -0.7552406192 - -0.9242045283 29133.3515625000 -0.7559503317 - -0.9237064719 29132.4218750000 -0.7566584945 - -0.9232068658 29131.4199218750 -0.7573714256 - -0.9227057099 29133.6484375000 -0.7580858469 - -0.9222029448 29131.7539062500 -0.7587872148 - -0.9216986299 29131.4023437500 -0.7594885230 - -0.9211927652 29131.4453125000 -0.7601944208 - -0.9206853509 29133.2773437500 -0.7609004974 - -0.9201763272 29132.3925781250 -0.7615981698 - -0.9196658134 29132.2031250000 -0.7623081207 - -0.9191536903 29132.6347656250 -0.7630017996 - -0.9186400175 29132.0898437500 -0.7637064457 - -0.9181247950 29132.4726562500 -0.7644032240 - -0.9176080227 29132.0527343750 -0.7650997043 - -0.9170897007 29132.0625000000 -0.7657862306 - -0.9165697694 29132.5605468750 -0.7664898634 - -0.9160483479 29132.0761718750 -0.7671781778 - -0.9155253172 29132.4589843750 -0.7678735256 - -0.9150007963 29131.1132812500 -0.7685663700 - -0.9144746661 29131.2304687500 -0.7692625523 - -0.9139470458 29132.9042968750 -0.7699483633 - -0.9134178162 29131.6308593750 -0.7706345916 - -0.9128870964 29132.9394531250 -0.7713174820 - -0.9123547673 29132.6757812500 -0.7720127702 - -0.9118209481 29132.2714843750 -0.7726971507 - -0.9112855196 29132.1347656250 -0.7733770013 - -0.9107486010 29133.3125000000 -0.7740606666 - -0.9102101326 29132.5273437500 -0.7747413516 - -0.9096701145 29132.5292968750 -0.7754299045 - -0.9091285467 29131.7539062500 -0.7761088014 - -0.9085854292 29132.1679687500 -0.7767879963 - -0.9080407619 29131.5234375000 -0.7774646282 - -0.9074945450 29133.1796875000 -0.7781533599 - -0.9069468379 29131.9863281250 -0.7788254023 - -0.9063975811 29132.6953125000 -0.7795009017 - -0.9058467746 29131.7031250000 -0.7801721692 - -0.9052944183 29132.5898437500 -0.7808587551 - -0.9047405720 29131.0957031250 -0.7815300226 - -0.9041851759 29131.9179687500 -0.7822028995 - -0.9036282301 29132.6582031250 -0.7828720808 - -0.9030697346 29133.1250000000 -0.7835563421 - -0.9025097489 29132.0957031250 -0.7842220068 - -0.9019482136 29131.8808593750 -0.7848955989 - -0.9013851881 29131.6445312500 -0.7855639458 - -0.9008205533 29131.4687500000 -0.7862314582 - -0.9002544284 29132.0000000000 -0.7869107127 - -0.8996868134 29131.5058593750 -0.7875733972 - -0.8991176486 29131.7363281250 -0.7882387042 - -0.8985469341 29130.8730468750 -0.7889024615 - -0.8979747295 29132.6562500000 -0.7895799279 - -0.8974009752 29129.7988281250 -0.7902395725 - -0.8968257308 29132.4160156250 -0.7909009457 - -0.8962489367 29131.8378906250 -0.7915616632 - -0.8956706524 29130.3613281250 -0.7922191620 - -0.8950908184 29132.3085937500 -0.7928947210 - -0.8945094943 29131.1464843750 -0.7935538888 - -0.8939266205 29131.0058593750 -0.7942133546 - -0.8933422565 29133.2656250000 -0.7948727608 - -0.8927564025 29130.7207031250 -0.7955285907 - -0.8921689987 29133.4335937500 -0.7961980104 - -0.8915801048 29132.6796875000 -0.7968571782 - -0.8909896612 29131.8730468750 -0.7975099683 - -0.8903977275 29132.9277343750 -0.7981643081 - -0.8898043036 29132.0683593750 -0.7988191843 - -0.8892093301 29132.4121093750 -0.7994873524 - -0.8886128664 29132.0585937500 -0.8001379371 - -0.8880149126 29130.7656250000 -0.8007894158 - -0.8874154687 29131.6640625000 -0.8014452457 - -0.8868144751 29132.7792968750 -0.8021063805 - -0.8862119913 29132.7617187500 -0.8027558923 - -0.8856080174 29131.8398437500 -0.8034048676 - -0.8850025535 29131.7011718750 -0.8040587902 - -0.8843955398 29130.0312500000 -0.8047082424 - -0.8837870955 29132.9628906250 -0.8053691387 - -0.8831771016 29132.2011718750 -0.8060125709 - -0.8825656176 29131.9140625000 -0.8066610694 - -0.8819526434 29132.3691406250 -0.8073096871 - -0.8813381791 29132.1367187500 -0.8079560995 - -0.8807222247 29132.5429687500 -0.8086177707 - -0.8801047802 29131.3789062500 -0.8092591166 - -0.8794857860 29130.3886718750 -0.8099008203 - -0.8788653612 29130.3046875000 -0.8105402589 - -0.8782434464 29131.5234375000 -0.8111861348 - -0.8776200414 29132.2187500000 -0.8118447661 - -0.8769950867 29131.5507812500 -0.8124848008 - -0.8763687015 29131.6484375000 -0.8131228685 - -0.8757408261 29131.1601562500 -0.8137648106 - -0.8751114607 29130.4921875000 -0.8144050837 - -0.8744806051 29131.8027343750 -0.8150506020 - -0.8738483191 29132.8125000000 -0.8156982660 - -0.8732144833 29131.2734375000 -0.8163383603 - -0.8725792170 29132.6210937500 -0.8169783950 - -0.8719424009 29131.9042968750 -0.8176129460 - -0.8713041544 29132.1113281250 -0.8182454109 - -0.8706644177 29130.7460937500 -0.8189007044 - -0.8700232506 29129.3398437500 -0.8195340633 - -0.8693805337 29131.1562500000 -0.8201725483 - -0.8687363863 29130.5957031250 -0.8207955360 - -0.8680908084 29131.2910156250 -0.8214360476 - -0.8674436808 29133.0800781250 -0.8220867515 - -0.8667951226 29131.3007812500 -0.8227151036 - -0.8661450744 29131.0214843750 -0.8233479857 - -0.8654935956 29131.8046875000 -0.8239798546 - -0.8648406267 29131.6640625000 -0.8246114254 - -0.8641861677 29132.5000000000 -0.8252537847 - -0.8635302782 29131.7734375000 -0.8258867860 - -0.8628728986 29132.2773437500 -0.8265156746 - -0.8622140288 29132.5410156250 -0.8271378279 - -0.8615537882 29130.8554687500 -0.8277639747 - -0.8608919978 29131.8281250000 -0.8283929229 - -0.8602287769 29130.9023437500 -0.8290337324 - -0.8595641255 29131.5195312500 -0.8296626210 - -0.8588979840 29130.9707031250 -0.8302865624 - -0.8582304120 29132.1972656250 -0.8309112191 - -0.8575613499 29130.0996093750 -0.8315359354 - -0.8568908572 29130.9726562500 -0.8321617842 - -0.8562189341 29132.5351562500 -0.8327949643 - -0.8555455208 29132.2949218750 -0.8334161043 - -0.8548706770 29132.9628906250 -0.8340400457 - -0.8541944027 29131.6855468750 -0.8346582651 - -0.8535166383 29131.0019531250 -0.8352817297 - -0.8528374434 29130.0664062500 -0.8359027505 - -0.8521568179 29131.4414062500 -0.8365343809 - -0.8514747024 29133.1738281250 -0.8371523023 - -0.8507911563 29131.0136718750 -0.8377708793 - -0.8501062393 29130.4199218750 -0.8383848667 - -0.8494197726 29131.6718750000 -0.8390052915 - -0.8487319350 29132.0214843750 -0.8396345973 - -0.8480426669 29131.8964843750 -0.8402519822 - -0.8473519087 29130.9726562500 -0.8408706784 - -0.8466597795 29132.4589843750 -0.8414765596 - -0.8459661603 29130.9882812500 -0.8420874476 - -0.8452711105 29131.7812500000 -0.8426976800 - -0.8445746303 29130.1855468750 -0.8433312774 - -0.8438767791 29130.3398437500 -0.8439437151 - -0.8431774378 29131.8007812500 -0.8445519209 - -0.8424766660 29132.8496093750 -0.8451610804 - -0.8417744637 29133.2871093750 -0.8457670212 - -0.8410708308 29130.1679687500 -0.8463770151 - -0.8403658271 29130.9609375000 -0.8470051289 - -0.8396593332 29131.3398437500 -0.8476108313 - -0.8389514685 29131.5898437500 -0.8482195735 - -0.8382421732 29132.0175781250 -0.8488172889 - -0.8375313878 29131.1757812500 -0.8494234085 - -0.8368192315 29131.8183593750 -0.8500261903 - -0.8361057043 29131.7929687500 -0.8506320119 - -0.8353906870 29130.8828125000 -0.8512554169 - -0.8346742988 29131.6015625000 -0.8518560529 - -0.8339564800 29131.6914062500 -0.8524546623 - -0.8332372308 29131.1621093750 -0.8530538678 - -0.8325166106 29129.8789062500 -0.8536539674 - -0.8317945004 29130.6250000000 -0.8542525768 - -0.8310710788 29130.2480468750 -0.8548529744 - -0.8303461671 29131.9648437500 -0.8554620147 - -0.8296198845 29132.2265625000 -0.8560612798 - -0.8288921714 29131.8535156250 -0.8566576242 - -0.8281630874 29131.3105468750 -0.8572539687 - -0.8274325728 29129.4335937500 -0.8578499556 - -0.8267006874 29130.8574218750 -0.8584386706 - -0.8259673715 29131.4042968750 -0.8590526581 - -0.8252326846 29132.6718750000 -0.8596435785 - -0.8244965672 29129.9824218750 -0.8602386713 - -0.8237590790 29131.6445312500 -0.8608214259 - -0.8230201602 29129.9570312500 -0.8614138365 - -0.8222798705 29130.0468750000 -0.8620020747 - -0.8215381503 29131.2070312500 -0.8626111150 - -0.8207950592 29131.6406250000 -0.8631982207 - -0.8200505972 29129.6757812500 -0.8637799025 - -0.8193047643 29130.2734375000 -0.8643667698 - -0.8185575008 29131.6113281250 -0.8649547100 - -0.8178088665 29129.8164062500 -0.8655385971 - -0.8170588017 29131.2500000000 -0.8661193252 - -0.8163074255 29130.6250000000 -0.8667180538 - -0.8155546188 29131.4726562500 -0.8673021793 - -0.8148004413 29130.5605468750 -0.8678826094 - -0.8140448928 29131.9921875000 -0.8684599400 - -0.8132879138 29131.0039062500 -0.8690390587 - -0.8125296235 29131.4785156250 -0.8696169257 - -0.8117699027 29130.1503906250 -0.8701965809 - -0.8110088110 29132.1953125000 -0.8707694411 - -0.8102463484 29132.8476562500 -0.8713666797 - -0.8094825745 29130.6855468750 -0.8719382286 - -0.8087173700 29129.6503906250 -0.8725168705 - -0.8079507947 29131.8535156250 -0.8730856180 - -0.8071828485 29131.1562500000 -0.8736608624 - -0.8064135313 29129.9023437500 -0.8742297292 - -0.8056429029 29129.7851562500 -0.8748023510 - -0.8048708439 29130.2734375000 -0.8753675222 - -0.8040974140 29131.5605468750 -0.8759562373 - -0.8033226728 29130.5371093750 -0.8765254021 - -0.8025465608 29131.8886718750 -0.8770923018 - -0.8017690182 29131.0058593750 -0.8776562810 - -0.8009902239 29131.6250000000 -0.8782216907 - -0.8002099991 29129.2031250000 -0.8787862659 - -0.7994284034 29129.8242187500 -0.8793500066 - -0.7986454964 29131.9062500000 -0.8799282908 - -0.7978612185 29132.0449218750 -0.8804910779 - -0.7970756292 29129.5722656250 -0.8810509443 - -0.7962886095 29129.3906250000 -0.8816089630 - -0.7955002785 29131.2363281250 -0.8821675777 - -0.7947106361 29129.0820312500 -0.8827262521 - -0.7939196229 29129.4785156250 -0.8832837939 - -0.7931272388 29132.1308593750 -0.8838552833 - -0.7923335433 29132.4765625000 -0.8844121695 - -0.7915384769 29131.0429687500 -0.8849644661 - -0.7907420993 29131.9042968750 -0.8855153322 - -0.7899443507 29131.4746093750 -0.8860682845 - -0.7891452312 29130.7265625000 -0.8866178393 - -0.7883448601 29130.5449218750 -0.8871696591 - -0.7875430584 29130.5527343750 -0.8877156377 - -0.7867400050 29129.4238281250 -0.8882645369 - -0.7859355807 29130.8691406250 -0.8888319731 - -0.7851297855 29132.1093750000 -0.8893744349 - -0.7843227386 29133.0214843750 -0.8899212480 - -0.7835143209 29129.6796875000 -0.8904635906 - -0.7827045918 29132.2421875000 -0.8910050392 - -0.7818934917 29130.5390625000 -0.8915486932 - -0.7810810804 29129.3183593750 -0.8920881748 - -0.7802673578 29130.0292968750 -0.8926268816 - -0.7794523239 29130.7324218750 -0.8931668997 - -0.7786359787 29129.6503906250 -0.8937032223 - -0.7778182626 29130.6035156250 -0.8942580223 - -0.7769992948 29130.9960937500 -0.8947944045 - -0.7761789560 29130.9121093750 -0.8953285217 - -0.7753573060 29129.3183593750 -0.8958637714 - -0.7745343447 29129.7539062500 -0.8963934779 - -0.7737100720 29129.4687500000 -0.8969266415 - -0.7728845477 29130.0429687500 -0.8974570036 - -0.7720576525 29131.4062500000 -0.8980030417 - -0.7712294459 29131.2910156250 -0.8985340595 - -0.7703999281 29130.7011718750 -0.8990606666 - -0.7695690989 29131.1210937500 -0.8995838165 - -0.7687370181 29131.6230468750 -0.9001114368 - -0.7679035664 29129.5019531250 -0.9006339312 - -0.7670688629 29132.1992187500 -0.9011552930 - -0.7662328482 29130.1328125000 -0.9016785026 - -0.7653955221 29130.4335937500 -0.9022178650 - -0.7645568848 29131.7421875000 -0.9027354717 - -0.7637169957 29131.2890625000 -0.9032558203 - -0.7628757954 29129.0488281250 -0.9037724137 - -0.7620332837 29131.4902343750 -0.9042863250 - -0.7611895204 29130.2812500000 -0.9048029184 - -0.7603443861 29130.4746093750 -0.9053146243 - -0.7594980597 29131.7929687500 -0.9058272243 - -0.7586503625 29130.7109375000 -0.9063411951 - -0.7578014135 29130.5175781250 -0.9068485498 - -0.7569512129 29130.3710937500 -0.9073585272 - -0.7560997009 29130.8027343750 -0.9078671932 - -0.7552468777 29130.4238281250 -0.9083728194 - -0.7543928027 29130.4199218750 -0.9088784456 - -0.7535374165 29128.6367187500 -0.9094039798 - -0.7526808381 29130.8476562500 -0.9099057913 - -0.7518228889 29129.3769531250 -0.9104088545 - -0.7509636879 29129.4003906250 -0.9109100699 - -0.7501032352 29129.1933593750 -0.9114089608 - -0.7492415309 29131.6679687500 -0.9119090438 - -0.7483785152 29130.0527343750 -0.9124034047 - -0.7475142479 29130.3867187500 -0.9129021764 - -0.7466487288 29129.5839843750 -0.9134170413 - -0.7457818985 29131.2929687500 -0.9139088392 - -0.7449138761 29130.6738281250 -0.9144039154 - -0.7440445423 29131.0136718750 -0.9148952365 - -0.7431739569 29130.1035156250 -0.9153841138 - -0.7423020601 29129.7441406250 -0.9158750176 - -0.7414289713 29130.7871093750 -0.9163811207 - -0.7405545712 29130.6738281250 -0.9168675542 - -0.7396789789 29130.1445312500 -0.9173538089 - -0.7388020754 29129.8417968750 -0.9178377390 - -0.7379239798 29130.6074218750 -0.9183207154 - -0.7370445728 29131.6328125000 -0.9188028574 - -0.7361639738 29130.7011718750 -0.9192842245 - -0.7352820635 29129.1796875000 -0.9197621942 - -0.7343989611 29130.1835937500 -0.9202398062 - -0.7335146070 29131.4511718750 -0.9207171202 - -0.7326290011 29130.8105468750 -0.9211937189 - -0.7317421436 29131.0664062500 -0.9216675162 - -0.7308540344 29129.9375000000 -0.9221404195 - -0.7299646735 29130.4335937500 -0.9226119518 - -0.7290741205 29129.1347656250 -0.9230825901 - -0.7281823158 29128.6406250000 -0.9235516787 - -0.7272892594 29128.5605468750 -0.9240192175 - -0.7263950109 29130.1523437500 -0.9244877100 - -0.7254994512 29129.4199218750 -0.9249519706 - -0.7246027589 29130.1250000000 -0.9254165888 - -0.7237047553 29129.3183593750 -0.9258802533 - -0.7228055596 29128.3964843750 -0.9263414741 - -0.7219051719 29129.1464843750 -0.9268215299 - -0.7210035324 29130.8984375000 -0.9272801280 - -0.7201006413 29129.0527343750 -0.9277381897 - -0.7191965580 29129.6093750000 -0.9281954765 - -0.7182912827 29131.7734375000 -0.9286694527 - -0.7173847556 29130.2363281250 -0.9291231036 - -0.7164769769 29132.2675781250 -0.9295761585 - -0.7155680656 29131.2988281250 -0.9300470352 - -0.7146579027 29131.1074218750 -0.9304960370 - -0.7137464881 29130.7812500000 -0.9309448600 - -0.7128338814 29130.8066406250 -0.9314123988 - -0.7119200826 29131.9648437500 -0.9318578243 - -0.7110050917 29133.0761718750 -0.9323029518 - -0.7100889087 29131.7226562500 -0.9327464700 - -0.7091714740 29131.1894531250 -0.9331878424 - -0.7082528472 29130.7246093750 -0.9336289763 - -0.7073330283 29131.3691406250 -0.9340677857 - -0.7064120173 29130.7070312500 -0.9345059395 - -0.7054898143 29130.9042968750 -0.9349232912 - -0.7045664191 29130.3164062500 -0.9353581667 - -0.7036417723 29130.3339843750 -0.9357720613 - -0.7027159929 29128.5937500000 -0.9362054467 - -0.7017890215 29127.7167968750 -0.9366168380 - -0.7008608580 29126.6562500000 -0.9370270967 - -0.6999314427 29127.1894531250 -0.9374364614 - -0.6990008950 29126.3027343750 -0.9378246665 - -0.6980691552 29125.6347656250 -0.9382316470 - -0.6971362233 29124.8964843750 -0.9386166334 - -0.6962021589 29123.0820312500 -0.9390200377 - -0.6952668428 29122.8496093750 -0.9394034147 - -0.6943303943 29120.5019531250 -0.9398037791 - -0.6933927536 29120.6640625000 -0.9401843548 - -0.6924539208 29117.2714843750 -0.9405627251 - -0.6915139556 29117.6093750000 -0.9409599304 - -0.6905727983 29116.9570312500 -0.9413365126 - -0.6896304488 29116.3339843750 -0.9417303801 - -0.6886869669 29112.5546875000 -0.9421046376 - -0.6877422929 29112.7636718750 -0.9424957037 - -0.6867964268 29112.2949218750 -0.9428856373 - -0.6858494282 29111.9238281250 -0.9432747364 - -0.6849012971 29109.6035156250 -0.9436609149 - -0.6839519739 29109.9628906250 -0.9440672994 - -0.6830014586 29111.5253906250 -0.9444520473 - -0.6820498109 29109.1933593750 -0.9448541403 - -0.6810970306 19498.6875000000 -0.9462957978 - -0.6801430583 19500.9257812500 -0.9467130899 - -0.6791879535 19499.2792968750 -0.9471282959 - -0.6782317162 19499.5507812500 -0.9475422502 - -0.6772742867 19501.5781250000 -0.9479553103 - -0.6763157248 19503.1015625000 -0.9483664632 - -0.6753560305 19503.3671875000 -0.9487763643 - -0.6743952036 19503.6328125000 -0.9491842389 - -0.6734331846 19507.9492187500 -0.9495921731 - -0.6724700928 19508.6953125000 -0.9499976039 - -0.6715058088 19510.1972656250 -0.9504017830 - -0.6705403924 19510.3847656250 -0.9508035183 - -0.6695738435 19513.6191406250 -0.9512058496 - -0.6686061621 19514.8378906250 -0.9516050816 - -0.6676373482 19516.4960937500 -0.9520031214 - -0.6666674018 19517.9199218750 -0.9523994923 - -0.6656963229 19519.5605468750 -0.9527945518 - -0.6647241116 19520.8710937500 -0.9531881213 - -0.6637507677 19522.8613281250 -0.9535796642 - -0.6627762914 19524.0175781250 -0.9539707899 - -0.6618007421 19523.8867187500 -0.9543587565 - -0.6608240008 19525.3574218750 -0.9547457695 - -0.6598461866 19525.7656250000 -0.9551315904 - -0.6588672400 19527.5019531250 -0.9555155635 - -0.6578871608 19528.6523437500 -0.9558975697 - -0.6569060087 19528.6464843750 -0.9562776089 - -0.6559237242 19529.2246093750 -0.9566572309 - -0.6549403071 19529.6308593750 -0.9570343494 - -0.6539558172 19529.1425781250 -0.9574092627 - -0.6529701948 19529.1347656250 -0.9577835798 - -0.6519834399 19529.4804687500 -0.9581556916 - -0.6509956121 19531.4472656250 -0.9585273266 - -0.6500066519 19530.4609375000 -0.9588962197 - -0.6490166187 19528.4687500000 -0.9592638016 - -0.6480254531 19528.7050781250 -0.9596286416 - -0.6470332146 19528.9843750000 -0.9599933624 - -0.6460399032 19529.5195312500 -0.9603561163 - -0.6450454593 19529.8261718750 -0.9607168436 - -0.6440499425 19528.5019531250 -0.9610762596 - -0.6430533528 19529.6796875000 -0.9614347816 - -0.6420556307 19527.3320312500 -0.9617899060 - -0.6410568357 19527.4375000000 -0.9621444941 - -0.6400569081 19528.0976562500 -0.9624985456 - -0.6390559673 19527.4863281250 -0.9628498554 - -0.6380538940 19526.4980468750 -0.9631994963 - -0.6370508075 19527.3964843750 -0.9635481834 - -0.6360465884 19527.7148437500 -0.9638958573 - -0.6350412965 19527.7324218750 -0.9642409086 - -0.6340349317 19527.7226562500 -0.9645854235 - -0.6330274343 19527.4003906250 -0.9649273157 - -0.6320189238 19527.3027343750 -0.9652690291 - -0.6310093403 19527.5800781250 -0.9656082392 - -0.6299986839 19528.6406250000 -0.9659465551 - -0.6289869547 19528.3437500000 -0.9662825465 - -0.6279741526 19529.3457031250 -0.9666175842 - -0.6269603372 19529.0078125000 -0.9669506550 - -0.6259453893 19530.0683593750 -0.9672824740 - -0.6249294281 19528.5195312500 -0.9676120877 - -0.6239123940 19528.0781250000 -0.9679410458 - -0.6228942871 19528.7558593750 -0.9682676196 - -0.6218751073 19530.0703125000 -0.9685933590 - -0.6208549142 19529.6132812500 -0.9689167142 - -0.6198336482 19528.8398437500 -0.9692384005 - -0.6188113093 19528.3437500000 -0.9695590734 - -0.6177879572 19529.8847656250 -0.9698788524 - -0.6167635918 19529.4179687500 -0.9701958895 - -0.6157380939 19527.8125000000 -0.9705104828 - -0.6147115827 19528.4863281250 -0.9708248973 - -0.6136840582 19529.9960937500 -0.9711381793 - -0.6126554608 19529.2226562500 -0.9714488983 - -0.6116258502 19529.7011718750 -0.9717584252 - -0.6105952263 19528.7890625000 -0.9720660448 - -0.6095635295 19529.0683593750 -0.9723720551 - -0.6085307598 19529.0898437500 -0.9726762772 - -0.6074970365 19530.1015625000 -0.9729806185 - -0.6064622402 19528.2753906250 -0.9732813239 - -0.6054264307 19528.0449218750 -0.9735825062 - -0.6043896079 19528.6660156250 -0.9738804698 - -0.6033517122 19529.6777343750 -0.9741783738 - -0.6023128033 19527.8476562500 -0.9744729400 - -0.6012729406 19529.5781250000 -0.9747657180 - -0.6002320051 19529.3183593750 -0.9750580788 - -0.5991900563 19529.6132812500 -0.9753499031 - -0.5981470942 19529.8945312500 -0.9756378531 - -0.5971031189 19529.4628906250 -0.9759262204 - -0.5960581303 19530.0039062500 -0.9762123823 - -0.5950121284 19530.8085937500 -0.9764978290 - -0.5939651132 19529.7519531250 -0.9767799377 - -0.5929170847 19529.6699218750 -0.9770619273 - -0.5918680429 19530.6347656250 -0.9773422480 - -0.5908180475 19528.0097656250 -0.9776200056 - -0.5897669792 19530.6757812500 -0.9778978229 - -0.5887149572 19531.1484375000 -0.9781725407 - -0.5876619220 19530.0175781250 -0.9784463644 - -0.5866079330 19528.7656250000 -0.9787164330 - -0.5855529308 19530.8925781250 -0.9789876342 - -0.5844969153 19529.0644531250 -0.9792563915 - -0.5834398866 19530.3437500000 -0.9795245528 - -0.5823819041 19530.6171875000 -0.9797894955 - -0.5813229084 19530.2382812500 -0.9800546765 - -0.5802629590 19530.4785156250 -0.9803171158 - -0.5792019963 19530.4394531250 -0.9805787206 - -0.5781400800 19529.9414062500 -0.9808364511 - -0.5770772099 19528.4746093750 -0.9810944796 - -0.5760132670 19528.9023437500 -0.9813504219 - -0.5749484301 19528.2539062500 -0.9816061258 - -0.5738825798 19530.6250000000 -0.9818593264 - -0.5728157759 19530.7031250000 -0.9821115732 - -0.5717480183 19529.7324218750 -0.9823614955 - -0.5706792474 19529.7949218750 -0.9826089740 - -0.5696095228 19529.9023437500 -0.9828555584 - -0.5685388446 19529.3300781250 -0.9831018448 - -0.5674672127 19529.3417968750 -0.9833455086 - -0.5663945675 19529.8554687500 -0.9835887551 - -0.5653210282 19531.7265625000 -0.9838295579 - -0.5642464757 19528.8886718750 -0.9840693474 - -0.5631709695 19532.1875000000 -0.9843087196 - -0.5620945692 19531.7382812500 -0.9845439792 - -0.5610171556 19530.4218750000 -0.9847791195 - -0.5599387884 19528.8808593750 -0.9850104451 - -0.5588595271 19529.9257812500 -0.9852423072 - -0.5577792525 19529.5371093750 -0.9854729176 - -0.5566980839 19530.2519531250 -0.9857018590 - -0.5556159616 19530.5664062500 -0.9859285355 - -0.5545328856 19531.1640625000 -0.9861550927 - -0.5534488559 19531.6386718750 -0.9863785505 - -0.5523639321 19531.8593750000 -0.9866014719 - -0.5512780547 19531.8496093750 -0.9868224263 - -0.5501912236 19528.9296875000 -0.9870404005 - -0.5491034389 19529.1269531250 -0.9872574806 - -0.5480147600 19530.7929687500 -0.9874747396 - -0.5469251275 19529.2441406250 -0.9876888990 - -0.5458346009 19528.9589843750 -0.9879025221 - -0.5447431207 19531.7480468750 -0.9881159663 - -0.5436507463 19531.0566406250 -0.9883254170 - -0.5425574183 19529.7851562500 -0.9885326028 - -0.5414631963 19528.8847656250 -0.9887396097 - -0.5403680205 19531.6191406250 -0.9889460206 - -0.5392719507 19530.4570312500 -0.9891494513 - -0.5381749868 19531.7617187500 -0.9893530011 - -0.5370771289 19530.2109375000 -0.9895533323 - -0.5359783173 19531.6835937500 -0.9897533059 - -0.5348785520 19530.5390625000 -0.9899490476 - -0.5337779522 19529.7597656250 -0.9901468158 - -0.5326764584 19529.8339843750 -0.9903405905 - -0.5315740108 19530.6191406250 -0.9905349612 - -0.5304706693 19531.0742187500 -0.9907261729 - -0.5293664336 19529.5449218750 -0.9909176826 - -0.5282613039 19530.5742187500 -0.9911064506 - -0.5271552801 19532.5781250000 -0.9912948012 - -0.5260483623 19531.6855468750 -0.9914786220 - -0.5249405503 19530.2167968750 -0.9916629195 - -0.5238318443 19531.5410156250 -0.9918460846 - -0.5227223039 19530.9414062500 -0.9920274019 - -0.5216118097 19531.2929687500 -0.9922074080 - -0.5205004811 19531.2968750000 -0.9923861623 - -0.5193881989 19531.0468750000 -0.9925636649 - -0.5182750821 19531.0781250000 -0.9927384257 - -0.5171610713 19530.5703125000 -0.9929105043 - -0.5160462260 19530.3417968750 -0.9930828214 - -0.5149304867 19531.1660156250 -0.9932544231 - -0.5138138533 19530.3828125000 -0.9934229851 - -0.5126963258 19529.8417968750 -0.9935915470 - -0.5115779638 19532.3085937500 -0.9937583804 - -0.5104587674 19531.0332031250 -0.9939240813 - -0.5093386769 19529.9707031250 -0.9940852523 - -0.5082176924 19530.4628906250 -0.9942470193 - -0.5070958734 19530.9628906250 -0.9944079518 - -0.5059732199 19529.7539062500 -0.9945672750 - -0.5048496723 19533.0078125000 -0.9947253466 - -0.5037252307 19531.5312500000 -0.9948807955 - -0.5026000142 19530.8476562500 -0.9950330853 - -0.5014739037 19529.8164062500 -0.9951859713 - -0.5003469586 19531.4687500000 -0.9953381419 - -0.4992191494 19532.0996093750 -0.9954873323 - -0.4980905056 19532.1191406250 -0.9956371784 - -0.4969610274 19532.1191406250 -0.9957830310 - -0.4958306849 19530.9609375000 -0.9959283471 - -0.4946995080 19530.8730468750 -0.9960713387 - -0.4935674965 19529.2246093750 -0.9962150455 - -0.4924346507 19531.6777343750 -0.9963566065 - -0.4913009703 19531.4511718750 -0.9964963794 - -0.4901664555 19531.8847656250 -0.9966362119 - -0.4890311062 19531.1289062500 -0.9967726469 - -0.4878949225 19531.4218750000 -0.9969053864 - -0.4867579043 19532.4628906250 -0.9970384836 - -0.4856200814 19531.4628906250 -0.9971716404 - -0.4844814241 19532.8847656250 -0.9973020554 - -0.4833419621 19531.9765625000 -0.9974340796 - -0.4822016656 19531.1875000000 -0.9975612164 - -0.4810605645 19531.4902343750 -0.9976886511 - -0.4799186289 19530.3300781250 -0.9978097081 - -0.4787758887 19533.3320312500 -0.9979342222 - -0.4776323140 19532.2128906250 -0.9980576634 - -0.4764879644 19532.2109375000 -0.9981784225 - -0.4753428102 19530.8808593750 -0.9982987046 - -0.4741968215 19530.4667968750 -0.9984157681 - -0.4730500281 19532.2246093750 -0.9985305071 - -0.4719024599 19530.5058593750 -0.9986445904 - -0.4707540870 19532.1699218750 -0.9987595081 - -0.4696048796 19531.2402343750 -0.9988721013 - -0.4684549272 19532.2050781250 -0.9989839792 - -0.4673041403 19532.5429687500 -0.9990913868 - -0.4661525786 19531.4335937500 -0.9991984963 - -0.4650002420 19530.8945312500 -0.9993034601 - -0.4638471007 19530.8476562500 -0.9994105697 - -0.4626931548 19533.0117187500 -0.9995142221 - -0.4615384340 19531.9843750000 -0.9996160865 - -0.4603829384 19529.6875000000 -0.9997155666 - -0.4592266679 19531.4980468750 -0.9998152256 - -0.4580696225 19532.1562500000 -0.9999125600 - -0.4569118023 19532.8125000000 -1.0000097752 - -0.4557531774 19532.5957031250 -1.0001053810 - -0.4545938075 19533.3710937500 -1.0001981258 - -0.4534336627 19531.0917968750 -1.0002903938 - -0.4522727430 19530.5195312500 -1.0003800392 - -0.4511110485 19532.2773437500 -1.0004707575 - -0.4499486089 19531.0371093750 -1.0005578995 - -0.4487853944 19532.0683593750 -1.0006452799 - -0.4476214051 19531.7949218750 -1.0007299185 - -0.4464566708 19531.7871093750 -1.0008120537 - -0.4452911913 19530.6796875000 -1.0008946657 - -0.4441249371 19533.2246093750 -1.0009765625 - -0.4429579675 19532.8906250000 -1.0010573864 - -0.4417901933 19532.3085937500 -1.0011348724 - -0.4406217039 19533.0390625000 -1.0012121201 - -0.4394524693 19531.6210937500 -1.0012860298 - -0.4382824898 19532.1796875000 -1.0013602972 - -0.4371117353 19531.2753906250 -1.0014319420 - -0.4359402657 19531.9648437500 -1.0015038252 - -0.4347680509 19533.0195312500 -1.0015742779 - -0.4335951209 19531.8925781250 -1.0016409159 - -0.4324214160 19530.8906250000 -1.0017064810 - -0.4312469959 19531.7636718750 -1.0017758608 - -0.4300718606 19530.4472656250 -1.0018385649 - -0.4288959801 19531.2089843750 -1.0019025803 - -0.4277193844 19531.8867187500 -1.0019626617 - -0.4265420437 19531.5234375000 -1.0020233393 - -0.4253639877 19533.0800781250 -1.0020831823 - -0.4241852164 19531.9433593750 -1.0021396875 - -0.4230057299 19533.4355468750 -1.0021961927 - -0.4218254983 19531.2421875000 -1.0022491217 - -0.4206445813 19530.8398437500 -1.0023030043 - -0.4194629490 19532.0527343750 -1.0023549795 - -0.4182806015 19532.0097656250 -1.0024055243 - -0.4170975387 19531.9843750000 -1.0024551153 - -0.4159137607 19532.1816406250 -1.0025053024 - -0.4147292972 19531.8437500000 -1.0025484562 - -0.4135441184 19530.8320312500 -1.0025944710 - -0.4123582542 19531.7734375000 -1.0026385784 - -0.4111716747 19532.0117187500 -1.0026824474 - -0.4099843800 19532.3378906250 -1.0027256012 - -0.4087964296 19532.6718750000 -1.0027624369 - -0.4076077640 19533.0898437500 -1.0028011799 - -0.4064184129 19532.7363281250 -1.0028387308 - -0.4052283764 19532.7148437500 -1.0028744936 - -0.4040376544 19533.6347656250 -1.0029100180 - -0.4028462470 19530.4570312500 -1.0029412508 - -0.4016541243 19531.8125000000 -1.0029728413 - -0.4004613459 19532.5566406250 -1.0030041933 - -0.3992679119 19533.9414062500 -1.0030323267 - -0.3980737627 19533.6445312500 -1.0030620098 - -0.3968789577 19531.9316406250 -1.0030869246 - -0.3956834972 19531.2207031250 -1.0031117201 - -0.3944873214 19532.4628906250 -1.0031348467 - -0.3932905197 19532.8925781250 -1.0031596422 - -0.3920930326 19532.2011718750 -1.0031778812 - -0.3908948600 19533.1191406250 -1.0031983852 - -0.3896960616 19532.2382812500 -1.0032162666 - -0.3884965777 19532.2207031250 -1.0032360554 - -0.3872964382 19533.9277343750 -1.0032525063 - -0.3860956430 19531.3710937500 -1.0032637119 - -0.3848942220 19533.9453125000 -1.0032782555 - -0.3836921155 19531.7714843750 -1.0032906532 - -0.3824893534 19531.0058593750 -1.0033018589 - -0.3812859654 19533.1406250000 -1.0033104420 - -0.3800819218 19531.0742187500 -1.0033172369 - -0.3788772523 19532.3222656250 -1.0033235550 - -0.3776718974 19533.6582031250 -1.0033293962 - -0.3764659464 19530.8417968750 -1.0033341646 - -0.3752593398 19532.6484375000 -1.0033382177 - -0.3740520775 19531.7128906250 -1.0033372641 - -0.3728442192 19532.5839843750 -1.0033383369 - -0.3716357052 19532.1484375000 -1.0033359528 - -0.3704265654 19531.8437500000 -1.0033347607 - -0.3692167997 19532.2324218750 -1.0033291578 - -0.3680063784 19531.5683593750 -1.0033242702 - -0.3667953610 19532.7929687500 -1.0033167601 - -0.3655837178 19532.0000000000 -1.0033082962 - -0.3643714786 19533.0703125000 -1.0032999516 - -0.3631585836 19532.5214843750 -1.0032879114 - -0.3619450927 19532.7968750000 -1.0032756329 - -0.3607309759 19531.7734375000 -1.0032644272 - -0.3595162630 19532.9375000000 -1.0032508373 - -0.3583009541 19531.6054687500 -1.0032323599 - -0.3570850194 19533.1152343750 -1.0032166243 - -0.3558684587 19532.1015625000 -1.0031971931 - -0.3546513319 19532.8476562500 -1.0031795502 - -0.3534335792 19532.2617187500 -1.0031549931 - -0.3522152305 19532.3457031250 -1.0031342506 - -0.3509962857 19533.0664062500 -1.0031102896 - -0.3497767448 19533.3535156250 -1.0030851364 - -0.3485566080 19532.5625000000 -1.0030580759 - -0.3473359048 19533.3789062500 -1.0030305386 - -0.3461145759 19532.4902343750 -1.0030000210 - -0.3448926806 19532.4648437500 -1.0029709339 - -0.3436701894 19533.2343750000 -1.0029401779 - -0.3424471319 19533.2773437500 -1.0029059649 - -0.3412234783 19531.8164062500 -1.0028713942 - -0.3399992585 19532.9238281250 -1.0028363466 - -0.3387744725 19531.9863281250 -1.0027991533 - -0.3375490904 19531.6132812500 -1.0027617216 - -0.3363231421 19533.0976562500 -1.0027194023 - -0.3350966275 19532.1191406250 -1.0026783943 - -0.3338695467 19532.5800781250 -1.0026358366 - -0.3326418996 19531.7148437500 -1.0025908947 - -0.3314136863 19532.1230468750 -1.0025463104 - -0.3301849067 19533.3027343750 -1.0024996996 - -0.3289555609 19532.5957031250 -1.0024529696 - -0.3277256787 19532.5507812500 -1.0024033785 - -0.3264952302 19532.8203125000 -1.0023540258 - -0.3252642155 19533.0234375000 -1.0022981167 - -0.3240326643 19533.7460937500 -1.0022448301 - -0.3228005469 19531.7402343750 -1.0021905899 - -0.3215678930 19532.7675781250 -1.0021340847 - -0.3203347027 19532.0234375000 -1.0020774603 - -0.3191009462 19533.4941406250 -1.0020188093 - -0.3178666830 19532.0097656250 -1.0019587278 - -0.3166318536 19532.1054687500 -1.0018938780 - -0.3153964877 19533.3535156250 -1.0018310547 - -0.3141606152 19532.6386718750 -1.0017666817 - -0.3129241765 19532.5351562500 -1.0017020702 - -0.3116872311 19530.8554687500 -1.0016331673 - -0.3104497492 19532.1484375000 -1.0015658140 - -0.3092117310 19532.3398437500 -1.0014932156 - -0.3079732060 19531.8281250000 -1.0014213324 - -0.3067341447 19533.3769531250 -1.0013482571 - -0.3054945767 19532.8398437500 -1.0012737513 - -0.3042544723 19532.9902343750 -1.0011980534 - -0.3030138612 19533.3398437500 -1.0011187792 - -0.3017727435 19531.5507812500 -1.0010399818 - -0.3005311191 19531.9277343750 -1.0009610653 - -0.2992889583 19532.3671875000 -1.0008788109 - -0.2980463207 19533.0273437500 -1.0007919073 - -0.2968031466 19533.2519531250 -1.0007069111 - -0.2955594957 19532.8398437500 -1.0006211996 - -0.2943153381 19532.8046875000 -1.0005334616 - -0.2930706739 19532.4707031250 -1.0004419088 - -0.2918255031 19532.5722656250 -1.0003515482 - -0.2905798554 19533.1835937500 -1.0002601147 - -0.2893337011 19530.0449218750 -1.0001634359 - -0.2880870700 19531.6562500000 -1.0000685453 - -0.2868399620 19532.8613281250 -0.9999698400 - -0.2855923474 19531.6718750000 -0.9998714924 - -0.2843442559 19531.2011718750 -0.9997684360 - -0.2830956578 19532.9042968750 -0.9996683598 - -0.2818466127 19532.5097656250 -0.9995636940 - -0.2805970609 19534.3125000000 -0.9994574785 - -0.2793470621 19532.0585937500 -0.9993510842 - -0.2780965865 19533.3750000000 -0.9992420077 - -0.2768456340 19532.2890625000 -0.9991294742 - -0.2755942047 19531.0097656250 -0.9990190864 - -0.2743422985 19532.3339843750 -0.9989038110 - -0.2730899453 19532.4375000000 -0.9987880588 - -0.2718371451 19533.7558593750 -0.9986706376 - -0.2705838382 19532.1757812500 -0.9985525012 - -0.2693301141 19532.3847656250 -0.9984290600 - -0.2680759132 19533.0957031250 -0.9983080029 - -0.2668212652 19531.2460937500 -0.9981831312 - -0.2655661702 19532.6699218750 -0.9980576634 - -0.2643105984 19532.3457031250 -0.9979288578 - -0.2630546093 19533.6230468750 -0.9977989197 - -0.2617981434 19530.9726562500 -0.9976662397 - -0.2605412602 19532.1699218750 -0.9975341558 - -0.2592839301 19533.0097656250 -0.9973987937 - -0.2580261528 19531.9609375000 -0.9972623587 - -0.2567679584 19532.6914062500 -0.9971200824 - -0.2555092871 19532.5781250000 -0.9969803691 - -0.2542502284 19533.7500000000 -0.9968364239 - -0.2529907227 19533.2011718750 -0.9966917634 - -0.2517307699 19530.1425781250 -0.9965456724 - -0.2504703999 19533.1796875000 -0.9963938594 - -0.2492096126 19530.7812500000 -0.9962457418 - -0.2479484081 19532.8222656250 -0.9960911274 - -0.2466867715 19532.0488281250 -0.9959382415 - -0.2454247177 19532.0175781250 -0.9957782030 - -0.2441622466 19532.7968750000 -0.9956213832 - -0.2428993732 19533.3906250000 -0.9954590797 - -0.2416360825 19532.9648437500 -0.9952965379 - -0.2403723747 19532.8066406250 -0.9951283932 - -0.2391082644 19531.1054687500 -0.9949626327 - -0.2378437519 19531.7656250000 -0.9947926402 - -0.2365788221 19532.1074218750 -0.9946206808 - -0.2353135049 19532.7695312500 -0.9944468141 - -0.2340477854 19531.8261718750 -0.9942708015 - -0.2327816635 19532.2031250000 -0.9940909743 - -0.2315151542 19532.1953125000 -0.9939101338 - -0.2302482575 19532.3125000000 -0.9937258959 - -0.2289809585 19533.3945312500 -0.9935386777 - -0.2277132869 19531.6093750000 -0.9933534861 - -0.2264452130 19531.4492187500 -0.9931628704 - -0.2251767665 19532.4687500000 -0.9929696321 - -0.2239079326 19532.7441406250 -0.9927731156 - -0.2226387113 19532.1523437500 -0.9925787449 - -0.2213691175 19533.0117187500 -0.9923768640 - -0.2200991511 19533.9648437500 -0.9921743870 - -0.2188288122 19532.3750000000 -0.9919695854 - -0.2175581008 19532.8886718750 -0.9917606115 - -0.2162870318 19532.8613281250 -0.9915508628 - -0.2150155902 19530.7402343750 -0.9913366437 - -0.2137437761 19530.7324218750 -0.9911224842 - -0.2124716043 19531.1328125000 -0.9909051061 - -0.2111990601 19532.1445312500 -0.9906833768 - -0.2099261731 19532.6660156250 -0.9904581308 - -0.2086529285 19531.6757812500 -0.9902349114 - -0.2073793262 19531.2871093750 -0.9900041223 - -0.2061053813 19531.6269531250 -0.9897724390 - -0.2048310786 19531.3691406250 -0.9895392060 - -0.2035564184 19531.3476562500 -0.9893030524 - -0.2022814304 19532.0156250000 -0.9890607595 - -0.2010060996 19531.5468750000 -0.9888182878 - -0.1997304112 19531.6171875000 -0.9885742068 - -0.1984543949 19531.2343750000 -0.9883231521 - -0.1971780509 19532.9824218750 -0.9880712628 - -0.1959013641 19530.5253906250 -0.9878181219 - -0.1946243346 19530.7792968750 -0.9875611067 - -0.1933469921 19532.4941406250 -0.9872991443 - -0.1920693070 19530.0878906250 -0.9870378971 - -0.1907913089 19530.9277343750 -0.9867689610 - -0.1895129830 19531.3378906250 -0.9864981771 - -0.1882343441 19531.9335937500 -0.9862251282 - -0.1869553775 19531.2558593750 -0.9859495759 - -0.1856760830 19531.6835937500 -0.9856695533 - -0.1843964905 19532.9179687500 -0.9853870273 - -0.1831165701 19533.8046875000 -0.9851006866 - -0.1818363518 19532.1640625000 -0.9848117828 - -0.1805558205 19532.2148437500 -0.9845203161 - -0.1792749912 19532.5214843750 -0.9842258096 - -0.1779938489 19532.0742187500 -0.9839249849 - -0.1767124087 19532.4746093750 -0.9836210608 - -0.1754306704 19531.6191406250 -0.9833160043 - -0.1741486341 19531.0527343750 -0.9830092788 - -0.1728662997 19531.5332031250 -0.9826931953 - -0.1715836674 19531.2753906250 -0.9823827147 - -0.1703007519 19531.6054687500 -0.9820593596 - -0.1690175384 19532.7597656250 -0.9817366600 - -0.1677340567 19532.5429687500 -0.9814121723 - -0.1664502770 19532.9628906250 -0.9810810685 - -0.1651662141 19532.6835937500 -0.9807497263 - -0.1638818681 19530.7089843750 -0.9804101586 - -0.1625972539 19532.5976562500 -0.9800701141 - -0.1613123566 19531.5019531250 -0.9797279835 - -0.1600271910 19531.8398437500 -0.9793792963 - -0.1587417573 19532.2812500000 -0.9790291190 - -0.1574560553 19531.8945312500 -0.9786723256 - -0.1561700702 19531.7812500000 -0.9783149958 - -0.1548838317 19532.3457031250 -0.9779497981 - -0.1535973400 19533.3476562500 -0.9775881767 - -0.1523105651 19532.9218750000 -0.9772191048 - -0.1510235518 19533.2285156250 -0.9768440127 - -0.1497362703 19530.9765625000 -0.9764667749 - -0.1484487504 19531.5410156250 -0.9760883451 - -0.1471609622 19530.7792968750 -0.9757045507 - -0.1458729357 19530.9746093750 -0.9753125906 - -0.1445846558 19532.6054687500 -0.9749239087 - -0.1432961226 19531.9804687500 -0.9745286107 - -0.1420073658 19530.6152343750 -0.9741306305 - -0.1407183558 19532.0195312500 -0.9737271667 - -0.1394291073 19531.2597656250 -0.9733206034 - -0.1381396204 19531.6875000000 -0.9729079008 - -0.1368499100 19531.7597656250 -0.9724956751 - -0.1355599612 19530.3242187500 -0.9720783830 - -0.1342697889 19531.6328125000 -0.9716571569 - -0.1329793781 19531.2109375000 -0.9712304473 - -0.1316887438 19531.9667968750 -0.9708029628 - -0.1303978860 19532.0605468750 -0.9703713655 - -0.1291068196 19532.7285156250 -0.9699346423 - -0.1278155148 19531.8378906250 -0.9694952369 - -0.1265240014 19531.9980468750 -0.9690517187 - -0.1252322793 19530.5019531250 -0.9686073065 - -0.1239403412 19530.8867187500 -0.9681532979 - -0.1226481944 19532.3281250000 -0.9677004814 - -0.1213558391 19532.0292968750 -0.9672430754 - -0.1200632751 19532.1875000000 -0.9667791724 - -0.1187705100 19530.6542968750 -0.9663165808 - -0.1174775437 19530.5195312500 -0.9658494592 - -0.1161843762 19532.6855468750 -0.9653750658 - -0.1148910150 19532.9179687500 -0.9649009705 - -0.1135974526 19532.7050781250 -0.9644196033 - -0.1123037040 19532.4433593750 -0.9639379978 - -0.1110097617 19531.3906250000 -0.9634528160 - -0.1097156331 19530.7441406250 -0.9629631042 - -0.1084213182 19532.4843750000 -0.9624662399 - -0.1071268171 19530.8867187500 -0.9619788527 - -0.1058321372 19532.1484375000 -0.9614762068 - -0.1045372784 19532.7207031250 -0.9609714746 - -0.1032422408 19530.4843750000 -0.9604696631 - -0.1019470319 19532.3828125000 -0.9599573612 - -0.1006516442 19532.0136718750 -0.9594500065 - -0.0993560851 19531.6152343750 -0.9589287043 - -0.0980603620 19531.7343750000 -0.9584142566 - -0.0967644751 19531.5468750000 -0.9578933716 - -0.0954684168 19533.0742187500 -0.9573682547 - -0.0941722021 19531.1972656250 -0.9568421245 - -0.0928758234 19531.8964843750 -0.9563100338 - -0.0915792882 19531.3027343750 -0.9557787776 - -0.0902826041 19532.4960937500 -0.9552427530 - -0.0889857635 19531.5019531250 -0.9547021985 - -0.0876887664 19531.7734375000 -0.9541580081 - -0.0863916278 19531.8652343750 -0.9536180496 - -0.0850943401 19532.3496093750 -0.9530725479 - -0.0837969035 19532.1523437500 -0.9525204301 - -0.0824993327 19530.3437500000 -0.9519695640 - -0.0812016204 19531.4746093750 -0.9514132142 - -0.0799037665 19531.4394531250 -0.9508543611 - -0.0786057785 19531.6367187500 -0.9502980709 - -0.0773076564 19531.6269531250 -0.9497393966 - -0.0760094076 19530.9550781250 -0.9491745234 - -0.0747110248 19532.2734375000 -0.9486024380 - -0.0734125152 19530.7519531250 -0.9480367303 - -0.0721138865 19532.3476562500 -0.9474662542 - -0.0708151311 19530.4511718750 -0.9468899369 - -0.0695162565 19531.5234375000 -0.9463186264 - -0.0682172626 19531.5703125000 -0.9457424879 - -0.0669181570 19531.2265625000 -0.9451653361 - -0.0656189397 19530.3281250000 -0.9445738196 - -0.0643196031 19532.0761718750 -0.9439980388 - -0.0630201623 19531.4101562500 -0.9434149265 - -0.0617206134 19530.4277343750 -0.9428282380 - -0.0604209639 19531.8671875000 -0.9422369003 - -0.0591212064 19531.8789062500 -0.9416495562 - -0.0578213520 19532.9453125000 -0.9410589933 - -0.0565213971 19532.4511718750 -0.9404685497 - -0.0552213490 19531.7128906250 -0.9398749471 - -0.0539212041 19531.5527343750 -0.9392775297 - -0.0526209697 19531.5605468750 -0.9386749864 - -0.0513206460 19529.9160156250 -0.9380763769 - -0.0500202365 19532.0410156250 -0.9374752045 - -0.0487197414 19531.7226562500 -0.9368804693 - -0.0474191643 19532.0917968750 -0.9362732172 - -0.0461185053 19531.0214843750 -0.9356715083 - -0.0448177680 19530.9082031250 -0.9350653887 - -0.0435169563 19530.7207031250 -0.9344597459 - -0.0422160700 19532.9707031250 -0.9338514209 - -0.0409151129 19530.2519531250 -0.9332449436 - -0.0396140851 19530.7148437500 -0.9326301217 - -0.0383129902 19530.0449218750 -0.9320225120 - -0.0370118320 19531.1250000000 -0.9314129949 - -0.0357106067 19529.6835937500 -0.9307982922 - -0.0344093256 19531.6484375000 -0.9301844835 - -0.0331079848 19532.7753906250 -0.9295760989 - -0.0318065882 19531.2851562500 -0.9289602637 - -0.0305051357 19531.2753906250 -0.9283474088 - -0.0292036328 19529.8808593750 -0.9277299047 - -0.0279020816 19531.9511718750 -0.9271101952 - -0.0266004819 19533.3105468750 -0.9264929295 - -0.0252988357 19531.9414062500 -0.9258759022 - -0.0239971485 19532.3261718750 -0.9252570868 - -0.0226954203 19530.7578125000 -0.9246390462 - -0.0213936530 19531.1054687500 -0.9240164161 - -0.0200918503 19530.6347656250 -0.9233978391 - -0.0187900141 19531.9335937500 -0.9227800369 - -0.0174881443 19531.4003906250 -0.9221558571 - -0.0161862448 19532.8828125000 -0.9215349555 - -0.0148843192 19530.8457031250 -0.9209073186 - -0.0135823684 19530.5449218750 -0.9202842116 - -0.0122803943 19530.1738281250 -0.9196643829 - -0.0109783988 19531.4179687500 -0.9190376401 - -0.0096763847 19530.1152343750 -0.9184142947 - -0.0083743548 19530.2734375000 -0.9177869558 - -0.0070723104 19531.3808593750 -0.9171667695 - -0.0057702539 19530.3769531250 -0.9165418148 - -0.0044681877 19530.9199218750 -0.9159179330 - -0.0031661140 19531.5175781250 -0.9152910113 - -0.0018640348 19530.8164062500 -0.9146685004 - -0.0005619525 19530.6328125000 -0.9140431881 - 0.0007401307 19530.4550781250 -0.9134135246 - 0.0020422128 19529.3105468750 -0.9127829075 - 0.0033442911 19530.0351562500 -0.9121562243 - 0.0046463641 19530.4140625000 -0.9115324020 - 0.0059484290 19531.3085937500 -0.9109081030 - 0.0072504841 19530.0214843750 -0.9102779031 - 0.0085525261 19531.9121093750 -0.9096519947 - 0.0098545542 19529.4707031250 -0.9090166092 - 0.0111565664 19530.4375000000 -0.9083940387 - 0.0124585582 19531.9121093750 -0.9077660441 - 0.0137605295 19529.3007812500 -0.9071380496 - 0.0150624774 19531.3710937500 -0.9065085649 - 0.0163644012 19531.4746093750 -0.9058805704 - 0.0176662952 19530.5898437500 -0.9052498937 - 0.0189681593 19529.1210937500 -0.9046197534 - 0.0202699918 19530.4023437500 -0.9039924741 - 0.0215717908 19531.0566406250 -0.9033640027 - 0.0228735525 19529.6679687500 -0.9027309418 - 0.0241752751 19530.7656250000 -0.9021025896 - 0.0254769567 19531.5527343750 -0.9014754295 - 0.0267785955 19531.3906250000 -0.9008467793 - 0.0280801896 19531.1210937500 -0.9002099633 - 0.0293817353 19531.5898437500 -0.8995814323 - 0.0306832306 19530.9609375000 -0.8989492059 - 0.0319846757 19530.3242187500 -0.8983131647 - 0.0332860649 19529.2441406250 -0.8976832032 - 0.0345873982 19530.6914062500 -0.8970558047 - 0.0358886719 19531.5253906250 -0.8964180946 - 0.0371898860 19529.9101562500 -0.8957858682 - 0.0384910367 19531.6035156250 -0.8951561451 - 0.0397921205 19529.2597656250 -0.8945212364 - 0.0410931408 19531.4355468750 -0.8938857913 - 0.0423940867 19529.8632812500 -0.8932532668 - 0.0436949655 19529.9902343750 -0.8926206231 - 0.0449957661 19531.0996093750 -0.8919829130 - 0.0462964922 19529.7949218750 -0.8913477659 - 0.0475971401 19530.9179687500 -0.8907186389 - 0.0488977060 19530.7207031250 -0.8900810480 - 0.0501981899 19530.5703125000 -0.8894450665 - 0.0514985919 19531.0449218750 -0.8888074160 - 0.0527989008 19531.5371093750 -0.8881710172 - 0.0540991239 19530.5097656250 -0.8875365257 - 0.0553992540 19530.6542968750 -0.8868942261 - 0.0566992909 19530.2753906250 -0.8862597346 - 0.0579992309 19531.1269531250 -0.8856238127 - 0.0592990741 19531.4199218750 -0.8849838376 - 0.0605988130 19531.4824218750 -0.8843423724 - 0.0618984513 19531.5800781250 -0.8837053776 - 0.0631979853 19531.4160156250 -0.8830663562 - 0.0644974113 19529.0605468750 -0.8824173808 - 0.0657967329 19530.2773437500 -0.8817794919 - 0.0670959353 19530.8183593750 -0.8811423779 - 0.0683950260 19530.7265625000 -0.8804970980 - 0.0696940050 19530.2304687500 -0.8798545003 - 0.0709928647 19530.3535156250 -0.8792127371 - 0.0722915977 19530.2558593750 -0.8785679936 - 0.0735902116 19530.5566406250 -0.8779237270 - 0.0748887062 19529.5820312500 -0.8772765994 - 0.0761870667 19531.2675781250 -0.8766312599 - 0.0774853006 19529.8378906250 -0.8759855628 - 0.0787834004 19529.1875000000 -0.8753371835 - 0.0800813735 19530.7851562500 -0.8746926785 - 0.0813792050 19528.4882812500 -0.8740389347 - 0.0826769024 19530.9980468750 -0.8733956218 - 0.0839744583 19529.5195312500 -0.8727436066 - 0.0852718651 19530.7910156250 -0.8720982671 - 0.0865691379 19529.2929687500 -0.8714400530 - 0.0878662616 19531.1972656250 -0.8707942963 - 0.0891632289 19529.3710937500 -0.8701408505 - 0.0904600546 19530.3046875000 -0.8694844246 - 0.0917567164 19528.8339843750 -0.8688331246 - 0.0930532292 19530.0605468750 -0.8681763411 - 0.0943495855 19530.3867187500 -0.8675270081 - 0.0956457779 19528.7714843750 -0.8668634892 - 0.0969418138 19530.6816406250 -0.8662093282 - 0.0982376784 19530.2324218750 -0.8655521274 - 0.0995333791 19528.8535156250 -0.8648877144 - 0.1008289158 19531.0312500000 -0.8642322421 - 0.1021242738 19530.5351562500 -0.8635737896 - 0.1034194678 19529.9433593750 -0.8629153967 - 0.1047144756 19531.0664062500 -0.8622481227 - 0.1060093120 19530.4785156250 -0.8615844250 - 0.1073039696 19529.5761718750 -0.8609245420 - 0.1085984483 19529.9726562500 -0.8602563143 - 0.1098927334 19530.5390625000 -0.8595922589 - 0.1111868396 19529.7207031250 -0.8589252830 - 0.1124807522 19530.3183593750 -0.8582623601 - 0.1137744784 19529.4667968750 -0.8575882316 - 0.1150680110 19532.0625000000 -0.8569229841 - 0.1163613498 19529.1562500000 -0.8562532663 - 0.1176544875 19529.5703125000 -0.8555734754 - 0.1189474240 19530.7285156250 -0.8549079895 - 0.1202401668 19531.0175781250 -0.8542351127 - 0.1215327010 19528.9062500000 -0.8535585403 - 0.1228250265 19529.7070312500 -0.8528817892 - 0.1241171435 19530.3984375000 -0.8522086143 - 0.1254090518 19529.8730468750 -0.8515341878 - 0.1267007589 19530.7675781250 -0.8508585095 - 0.1279922277 19528.5273437500 -0.8501724005 - 0.1292835027 19528.8378906250 -0.8494936228 - 0.1305745393 19529.1230468750 -0.8488126993 - 0.1318653673 19529.7617187500 -0.8481299877 - 0.1331559718 19530.0410156250 -0.8474465609 - 0.1344463527 19529.3242187500 -0.8467606902 - 0.1357364953 19531.1230468750 -0.8460774422 - 0.1370264143 19529.0957031250 -0.8453899622 - 0.1383160949 19531.3906250000 -0.8447043300 - 0.1396055520 19530.1699218750 -0.8440166712 - 0.1408947557 19529.1250000000 -0.8433243632 - 0.1421837360 19529.0195312500 -0.8426308632 - 0.1434724629 19529.7382812500 -0.8419395685 - 0.1447609514 19530.0839843750 -0.8412507176 - 0.1460492015 19530.7792968750 -0.8405586481 - 0.1473371983 19529.9179687500 -0.8398545980 - 0.1486249417 19529.4257812500 -0.8391617537 - 0.1499124467 19529.9453125000 -0.8384650350 - 0.1511996835 19528.4472656250 -0.8377673030 - 0.1524866670 19530.1835937500 -0.8370648623 - 0.1537733972 19530.4707031250 -0.8363628387 - 0.1550598592 19531.1308593750 -0.8356642127 - 0.1563460678 19529.2832031250 -0.8349600434 - 0.1576320082 19530.7910156250 -0.8342529535 - 0.1589176655 19529.9335937500 -0.8335485458 - 0.1602030694 19527.6796875000 -0.8328410983 - 0.1614882052 19529.8750000000 -0.8321348429 - 0.1627730578 19529.5097656250 -0.8314213157 - 0.1640576422 19529.1972656250 -0.8307104707 - 0.1653419435 19529.2128906250 -0.8300024867 - 0.1666259617 19530.6601562500 -0.8292911649 - 0.1679096967 19529.4492187500 -0.8285713196 - 0.1691931486 19528.7734375000 -0.8278544545 - 0.1704763174 19530.3359375000 -0.8271428347 - 0.1717592031 19531.2031250000 -0.8264261484 - 0.1730417907 19530.4355468750 -0.8257035017 - 0.1743240803 19530.3964843750 -0.8249836564 - 0.1756060869 19529.1640625000 -0.8242599964 - 0.1768877804 19529.4628906250 -0.8235423565 - 0.1781691760 19528.9394531250 -0.8228118420 - 0.1794502735 19530.4453125000 -0.8220883608 - 0.1807310730 19530.1093750000 -0.8213627338 - 0.1820115596 19529.7792968750 -0.8206375241 - 0.1832917333 19529.3261718750 -0.8199031949 - 0.1845716089 19530.0820312500 -0.8191726804 - 0.1858511567 19529.7519531250 -0.8184434175 - 0.1871304065 19530.3457031250 -0.8177118301 - 0.1884093285 19530.4062500000 -0.8169788122 - 0.1896879375 19528.7910156250 -0.8162374496 - 0.1909662187 19527.7832031250 -0.8155022860 - 0.1922441721 19530.1132812500 -0.8147671819 - 0.1935217977 19528.9785156250 -0.8140284419 - 0.1947991103 19531.1679687500 -0.8132850528 - 0.1960760802 19530.2539062500 -0.8125423789 - 0.1973527223 19529.6250000000 -0.8118020296 - 0.1986290365 19530.6914062500 -0.8110611439 - 0.1999050081 19529.7636718750 -0.8103082776 - 0.2011806369 19529.0996093750 -0.8095645308 - 0.2024559230 19528.6757812500 -0.8088145852 - 0.2037308663 19530.7636718750 -0.8080679774 - 0.2050054669 19530.5976562500 -0.8073132038 - 0.2062797248 19530.6816406250 -0.8065606356 - 0.2075536251 19528.6054687500 -0.8058074117 - 0.2088271827 19530.6367187500 -0.8050552011 - 0.2101003826 19528.9101562500 -0.8043007851 - 0.2113732249 19530.8125000000 -0.8035374880 - 0.2126457095 19529.1562500000 -0.8027799129 - 0.2139178365 19528.7441406250 -0.8020215034 - 0.2151895911 19528.7578125000 -0.8012623787 - 0.2164609879 19530.5019531250 -0.8004946709 - 0.2177320123 19528.3574218750 -0.7997330427 - 0.2190026790 19527.9316406250 -0.7989649177 - 0.2202729583 19529.4902343750 -0.7982024550 - 0.2215428799 19529.0351562500 -0.7974367738 - 0.2228124142 19528.7773437500 -0.7966611385 - 0.2240815759 19530.7890625000 -0.7958945632 - 0.2253503650 19528.9140625000 -0.7951222658 - 0.2266187519 19529.0761718750 -0.7943491340 - 0.2278867811 19529.1562500000 -0.7935771942 - 0.2291544080 19529.4570312500 -0.7927948236 - 0.2304216474 19531.4355468750 -0.7920220494 - 0.2316884995 19529.7285156250 -0.7912420034 - 0.2329549491 19530.0820312500 -0.7904638052 - 0.2342210114 19530.2128906250 -0.7896856070 - 0.2354866713 19529.4941406250 -0.7888966203 - 0.2367519438 19529.6484375000 -0.7881141901 - 0.2380168140 19529.5644531250 -0.7873319387 - 0.2392812669 19529.9394531250 -0.7865471840 - 0.2405453175 19528.6914062500 -0.7857517600 - 0.2418089658 19528.0507812500 -0.7849623561 - 0.2430722117 19529.0175781250 -0.7841749787 - 0.2443350255 19530.2636718750 -0.7833851576 - 0.2455974370 19529.6308593750 -0.7825938463 - 0.2468594313 19529.0917968750 -0.7817931175 - 0.2481210083 19529.4277343750 -0.7809982300 - 0.2493821681 19528.7929687500 -0.7802034616 - 0.2506428957 19528.9941406250 -0.7794061899 - 0.2519032061 19529.3886718750 -0.7786091566 - 0.2531630993 19530.9121093750 -0.7778013349 - 0.2544225454 19529.1816406250 -0.7769998312 - 0.2556815743 19527.6367187500 -0.7761975527 - 0.2569401562 19529.4140625000 -0.7753967047 - 0.2581982911 19529.8320312500 -0.7745921612 - 0.2594560087 19530.5585937500 -0.7737779021 - 0.2607132792 19529.5917968750 -0.7729696035 - 0.2619701028 19529.7480468750 -0.7721599936 - 0.2632265091 19528.6523437500 -0.7713514566 - 0.2644824386 19529.7851562500 -0.7705400586 - 0.2657379210 19531.6406250000 -0.7697272301 - 0.2669929862 19529.1992187500 -0.7689025998 - 0.2682475746 19529.1132812500 -0.7680888176 - 0.2695016861 19529.5371093750 -0.7672709227 - 0.2707553804 19531.2714843750 -0.7664552331 - 0.2720085979 19530.9589843750 -0.7656354904 - 0.2732613385 19529.5468750000 -0.7648061514 - 0.2745136321 19528.2304687500 -0.7639839649 - 0.2757654786 19529.2363281250 -0.7631607056 - 0.2770168483 19529.8925781250 -0.7623371482 - 0.2782677114 19529.2441406250 -0.7615110874 - 0.2795181572 19530.5976562500 -0.7606742978 - 0.2807680964 19529.1191406250 -0.7598454356 - 0.2820175588 19529.9726562500 -0.7590169311 - 0.2832665443 19529.7109375000 -0.7581852078 - 0.2845150530 19530.5761718750 -0.7573540807 - 0.2857630849 19529.3710937500 -0.7565085292 - 0.2870106399 19529.3750000000 -0.7556742430 - 0.2882576883 19529.2207031250 -0.7548367381 - 0.2895042598 19529.0781250000 -0.7540022731 - 0.2907503545 19530.8554687500 -0.7531632185 - 0.2919959128 19530.5683593750 -0.7523233294 - 0.2932410240 19528.6562500000 -0.7514712811 - 0.2944855988 19529.3574218750 -0.7506279349 - 0.2957296968 19530.3515625000 -0.7497847080 - 0.2969732881 19530.3183593750 -0.7489391565 - 0.2982163727 19529.6347656250 -0.7480917573 - 0.2994589806 19530.2460937500 -0.7472437024 - 0.3007010520 19528.7578125000 -0.7463845015 - 0.3019426167 19529.8652343750 -0.7455345988 - 0.3031836748 19530.7910156250 -0.7446831465 - 0.3044241965 19529.5234375000 -0.7438281775 - 0.3056642115 19529.4707031250 -0.7429749966 - 0.3069037199 19531.2753906250 -0.7421185970 - 0.3081427217 19529.3632812500 -0.7412506342 - 0.3093811870 19530.8085937500 -0.7403928638 - 0.3106191158 19530.8378906250 -0.7395350933 - 0.3118565381 19529.5234375000 -0.7386732101 - 0.3130934238 19530.9726562500 -0.7378101945 - 0.3143297732 19529.4062500000 -0.7369354963 - 0.3155655861 19529.8515625000 -0.7360710502 - 0.3168008626 19529.9453125000 -0.7352046967 - 0.3180356026 19531.0761718750 -0.7343378067 - 0.3192698061 19531.4941406250 -0.7334701419 - 0.3205034733 19529.5761718750 -0.7325990796 - 0.3217366040 19529.9179687500 -0.7317175269 - 0.3229691982 19529.3769531250 -0.7308451533 - 0.3242012262 19529.6367187500 -0.7299699783 - 0.3254326880 19531.7832031250 -0.7290962338 - 0.3266636133 19530.3886718750 -0.7282198071 - 0.3278940022 19530.1621093750 -0.7273422480 - 0.3291238248 19529.4082031250 -0.7264518738 - 0.3303530812 19530.8066406250 -0.7255725265 - 0.3315817714 19529.7011718750 -0.7246900201 - 0.3328099251 19528.6933593750 -0.7238074541 - 0.3340374827 19529.9042968750 -0.7229235172 - 0.3352645040 19529.1601562500 -0.7220372558 - 0.3364909291 19531.2441406250 -0.7211518288 - 0.3377168179 19529.9902343750 -0.7202531099 - 0.3389421105 19529.9082031250 -0.7193628550 - 0.3401668370 19530.9746093750 -0.7184739113 - 0.3413909674 19529.4335937500 -0.7175810933 - 0.3426145315 19531.8613281250 -0.7166900635 - 0.3438375294 19529.9902343750 -0.7157943249 - 0.3450599313 19529.0371093750 -0.7148984075 - 0.3462817371 19530.1777343750 -0.7139917016 - 0.3475029767 19530.7070312500 -0.7130932212 - 0.3487236202 19529.9726562500 -0.7121943831 - 0.3499436677 19530.1679687500 -0.7112929821 - 0.3511631191 19529.7207031250 -0.7103914022 - 0.3523819745 19530.5136718750 -0.7094901800 - 0.3536002338 19530.2246093750 -0.7085734010 - 0.3548178971 19529.7832031250 -0.7076673508 - 0.3560349643 19530.9687500000 -0.7067613006 - 0.3572514355 19531.8964843750 -0.7058550715 - 0.3584672809 19529.4628906250 -0.7049454451 - 0.3596825302 19530.6621093750 -0.7040342093 - 0.3608971536 19530.8457031250 -0.7031101584 - 0.3621111810 19529.1074218750 -0.7021962404 - 0.3633246124 19530.1718750000 -0.7012844086 - 0.3645373881 19530.2753906250 -0.7003687024 - 0.3657495677 19531.4101562500 -0.6994516253 - 0.3669611216 19529.4238281250 -0.6985328794 - 0.3681720495 19531.8945312500 -0.6976156235 - 0.3693823814 19529.5644531250 -0.6966826916 - 0.3705920577 19531.3593750000 -0.6957606673 - 0.3718011081 19528.9785156250 -0.6948372722 - 0.3730095327 19531.9238281250 -0.6939145327 - 0.3742173314 19530.6210937500 -0.6929897070 - 0.3754244745 19530.3632812500 -0.6920625567 - 0.3766309917 19530.3574218750 -0.6911346912 - 0.3778368831 19531.5371093750 -0.6902065873 - 0.3790421188 19531.0332031250 -0.6892633438 - 0.3802467287 19530.7207031250 -0.6883328557 - 0.3814506829 19530.7285156250 -0.6873996258 - 0.3826539814 19532.0937500000 -0.6864673495 - 0.3838566542 19531.5976562500 -0.6855313778 - 0.3850586712 19530.6582031250 -0.6845955849 - 0.3862600029 19530.5644531250 -0.6836580634 - 0.3874607086 19529.9511718750 -0.6827208400 - 0.3886607587 19530.2441406250 -0.6817663908 - 0.3898601532 19531.1738281250 -0.6808267236 - 0.3910588622 19530.7402343750 -0.6798833609 - 0.3922569156 19531.6289062500 -0.6789418459 - 0.3934543133 19530.5117187500 -0.6779960990 - 0.3946510553 19531.1660156250 -0.6770512462 - 0.3958471119 19530.5878906250 -0.6761025190 - 0.3970425129 19532.2285156250 -0.6751433611 - 0.3982372284 19531.0996093750 -0.6741930842 - 0.3994312584 19531.7675781250 -0.6732426882 - 0.4006246328 19530.8046875000 -0.6722922921 - 0.4018172920 19531.4042968750 -0.6713386774 - 0.4030092955 19530.4179687500 -0.6703841686 - 0.4042006135 19531.6328125000 -0.6694294214 - 0.4053912461 19531.0605468750 -0.6684597135 - 0.4065811932 19531.7578125000 -0.6675012708 - 0.4077704549 19529.2695312500 -0.6665418148 - 0.4089590311 19532.0117187500 -0.6655837893 - 0.4101468921 19532.3593750000 -0.6646228433 - 0.4113340676 19531.4765625000 -0.6636598706 - 0.4125205576 19532.5781250000 -0.6626966000 - 0.4137063324 19531.8046875000 -0.6617321372 - 0.4148914218 19531.6347656250 -0.6607662439 - 0.4160757959 19531.4160156250 -0.6597847342 - 0.4172594547 19531.2558593750 -0.6588177681 - 0.4184424281 19532.1972656250 -0.6578479409 - 0.4196246862 19532.1328125000 -0.6568778753 - 0.4208062291 19531.5429687500 -0.6559066772 - 0.4219870567 19531.9042968750 -0.6549339890 - 0.4231671691 19530.4667968750 -0.6539600492 - 0.4243465662 19531.9453125000 -0.6529856324 - 0.4255252481 19532.1972656250 -0.6520093679 - 0.4267031848 19530.2011718750 -0.6510317922 - 0.4278804362 19532.2929687500 -0.6500400305 - 0.4290569425 19531.1054687500 -0.6490589976 - 0.4302327037 19531.0839843750 -0.6480786800 - 0.4314077497 19532.7031250000 -0.6470963955 - 0.4325820804 19532.2597656250 -0.6461141109 - 0.4337556660 19532.5527343750 -0.6451300383 - 0.4349285066 19530.7167968750 -0.6441445351 - 0.4361006320 19532.4843750000 -0.6431438327 - 0.4372719824 19532.1621093750 -0.6421561837 - 0.4384426177 19531.4433593750 -0.6411669850 - 0.4396125078 19531.5273437500 -0.6401773691 - 0.4407816529 19533.1210937500 -0.6391866207 - 0.4419500530 19531.4062500000 -0.6381942034 - 0.4431176782 19533.1699218750 -0.6372017860 - 0.4442845881 19533.3164062500 -0.6362070441 - 0.4454507232 19531.3574218750 -0.6351960301 - 0.4466161132 19531.7089843750 -0.6342002749 - 0.4477807283 19531.7519531250 -0.6332023740 - 0.4489445984 19532.6562500000 -0.6322035193 - 0.4501077235 19532.2500000000 -0.6312041283 - 0.4512700737 19531.7597656250 -0.6302030087 - 0.4524316490 19531.9902343750 -0.6292014718 - 0.4535924494 19532.5156250000 -0.6281978488 - 0.4547525048 19531.9550781250 -0.6271930933 - 0.4559117854 19532.6601562500 -0.6261884570 - 0.4570702612 19531.4902343750 -0.6251815557 - 0.4582279921 19532.9531250000 -0.6241740584 - 0.4593849480 19532.7734375000 -0.6231659651 - 0.4605411291 19532.2343750000 -0.6221557260 - 0.4616965055 19532.1445312500 -0.6211299300 - 0.4628511071 19532.9003906250 -0.6201181412 - 0.4640049338 19531.9765625000 -0.6191045642 - 0.4651579559 19533.2968750000 -0.6180906892 - 0.4663102031 19532.3964843750 -0.6170756817 - 0.4674616754 19533.7167968750 -0.6160589457 - 0.4686123133 19532.4941406250 -0.6150427461 - 0.4697622061 19533.2128906250 -0.6140236259 - 0.4709112644 19532.1464843750 -0.6129873395 - 0.4720595479 19533.7656250000 -0.6119676828 - 0.4732070267 19533.4941406250 -0.6109459996 - 0.4743536711 19532.5839843750 -0.6099222898 - 0.4754995406 19533.8320312500 -0.6088999510 - 0.4766446054 19534.4882812500 -0.6078746319 - 0.4777888656 19533.3222656250 -0.6068326831 - 0.4789322913 19532.1269531250 -0.6058053374 - 0.4800749421 19534.2070312500 -0.6047770381 - 0.4812167585 19532.5664062500 -0.6037477851 - 0.4823577404 19532.5527343750 -0.6027179360 - 0.4834979177 19533.7070312500 -0.6016860604 - 0.4846372902 19534.5039062500 -0.6006550193 - 0.4857758284 19532.7812500000 -0.5996210575 - 0.4869135618 19533.9316406250 -0.5985871553 - 0.4880504310 19533.3417968750 -0.5975513458 - 0.4891864955 19534.2167968750 -0.5965151191 - 0.4903217554 19534.0371093750 -0.5954773426 - 0.4914561510 19533.7773437500 -0.5944387913 - 0.4925897121 19534.1933593750 -0.5933998823 - 0.4937224388 19533.7148437500 -0.5923595428 - 0.4948543608 19533.2675781250 -0.5913174152 - 0.4959854186 19532.9082031250 -0.5902748108 - 0.4971156418 19535.5000000000 -0.5892313123 - 0.4982450008 19533.9882812500 -0.5881869793 - 0.4993735254 19535.4707031250 -0.5871410370 - 0.5005012155 19534.4687500000 -0.5860941410 - 0.5016280413 19534.4296875000 -0.5850471854 - 0.5027540326 19533.9296875000 -0.5839805007 - 0.5038791895 19536.2656250000 -0.5829310417 - 0.5050034523 19533.8398437500 -0.5818799734 - 0.5061268806 19535.1914062500 -0.5808283687 - 0.5072494149 19534.8066406250 -0.5797577500 - 0.5083711147 19534.0742187500 -0.5787035823 - 0.5094919801 19535.5175781250 -0.5776489973 - 0.5106119514 19534.1562500000 -0.5765751600 - 0.5117310882 19534.8554687500 -0.5755190253 - 0.5128493309 19534.7695312500 -0.5744606256 - 0.5139666796 19535.3183593750 -0.5733840466 - 0.5150831938 19533.5917968750 -0.5723237991 - 0.5161988139 19533.8339843750 -0.5712623000 - 0.5173135996 19535.1035156250 -0.5702016950 - 0.5184274912 19534.7246093750 -0.5691384077 - 0.5195404887 19533.7500000000 -0.5680738688 - 0.5206525922 19534.0703125000 -0.5670096278 - 0.5217638016 19533.5546875000 -0.5659440756 - 0.5228741765 19535.1484375000 -0.5648953915 - 0.5239836574 19533.9375000000 -0.5638273358 - 0.5250922441 19536.3378906250 -0.5627775788 - 0.5261998773 19536.3496093750 -0.5617082715 - 0.5273066759 19535.3808593750 -0.5606555343 - 0.5284125805 19536.2324218750 -0.5596031547 - 0.5295175910 19537.0527343750 -0.5585487485 - 0.5306217074 19537.6191406250 -0.5575129390 - 0.5317249298 19540.3574218750 -0.5564578176 - 0.5328271985 19541.5351562500 -0.5554198623 - 0.5339286327 19541.1933593750 -0.5543629527 - 0.5350291133 19543.6484375000 -0.5533241630 - 0.5361286998 19542.2597656250 -0.5522652864 - 0.5372273922 19545.0996093750 -0.5512244105 - 0.5383251309 19544.7890625000 -0.5501831770 - 0.5394220352 19545.8789062500 -0.5491220951 - 0.5405179858 19547.6269531250 -0.5480789542 - 0.5416129827 19547.8867187500 -0.5470157862 - 0.5427070856 19549.0312500000 -0.5459714532 - 0.5438002944 19550.0156250000 -0.5449070334 - 0.5448925495 19549.5878906250 -0.5438416004 - 0.5459839106 19551.9648437500 -0.5427752733 - 0.5470743179 19551.3808593750 -0.5417083502 - 0.5481637716 19552.6777343750 -0.5406218767 - 0.5492523313 19552.4980468750 -0.5395522714 - 0.5503399968 19552.3183593750 -0.5384634137 - 0.5514267087 -19963.2539062500 -0.5346789360 - 0.5525124669 -19963.4707031250 -0.5335992575 - 0.5535972714 -19963.6269531250 -0.5325490832 - 0.5546811223 -19962.3261718750 -0.5314670205 - 0.5557640791 -19962.9492187500 -0.5304160714 - 0.5568460822 -19960.5898437500 -0.5293645263 - 0.5579271317 -19961.0234375000 -0.5283117890 - 0.5590072870 -19960.0410156250 -0.5272596478 - 0.5600864291 -19958.9628906250 -0.5262358785 - 0.5611646771 -19958.7167968750 -0.5251812935 - 0.5622419119 -19956.9882812500 -0.5241574049 - 0.5633182526 -19955.8964843750 -0.5231017470 - 0.5643935800 -19956.2597656250 -0.5220764875 - 0.5654679537 -19953.4316406250 -0.5210505724 - 0.5665414333 -19954.8515625000 -0.5199936628 - 0.5676138997 -19952.4101562500 -0.5189663768 - 0.5686854124 -19952.7792968750 -0.5179084539 - 0.5697559714 -19951.6171875000 -0.5168810487 - 0.5708255768 -19948.9042968750 -0.5158212781 - 0.5718941689 -19948.3554687500 -0.5147928596 - 0.5729618073 -19947.5351562500 -0.5137320757 - 0.5740284920 -19946.6972656250 -0.5126724839 - 0.5750942230 -19947.6816406250 -0.5116109252 - 0.5761589408 -19947.6953125000 -0.5105190873 - 0.5772227049 -19945.3066406250 -0.5094578862 - 0.5782854557 -19946.5175781250 -0.5083658695 - 0.5793472528 -19944.9335937500 -0.5073033571 - 0.5804080963 -19945.4550781250 -0.5062099099 - 0.5814679265 -19945.1289062500 -0.5051161647 - 0.5825267434 -19946.1035156250 -0.5040225387 - 0.5835846066 -19946.4863281250 -0.5029269457 - 0.5846414566 -19945.2480468750 -0.5018334985 - 0.5856973529 -19944.9902343750 -0.5007365346 - 0.5867522359 -19946.6914062500 -0.4996409714 - 0.5878061056 -19946.1367187500 -0.4985148907 - 0.5888589621 -19946.2363281250 -0.4974174798 - 0.5899108648 -19945.5429687500 -0.4963216484 - 0.5909617543 -19946.9101562500 -0.4951942265 - 0.5920116305 -19945.4414062500 -0.4940959811 - 0.5930605531 -19946.1992187500 -0.4929980040 - 0.5941084027 -19946.5410156250 -0.4918699861 - 0.5951552987 -19945.1855468750 -0.4907698929 - 0.5962011814 -19947.6347656250 -0.4896696508 - 0.5972459912 -19945.2812500000 -0.4885699451 - 0.5982898474 -19945.7617187500 -0.4874407649 - 0.5993326902 -19945.8183593750 -0.4863400459 - 0.6003744602 -19946.8281250000 -0.4852382541 - 0.6014152765 -19945.3398437500 -0.4841348529 - 0.6024550200 -19946.8613281250 -0.4830348492 - 0.6034938097 -19944.2500000000 -0.4819309711 - 0.6045315266 -19944.6113281250 -0.4808298349 - 0.6055682302 -19945.0644531250 -0.4797251821 - 0.6066039205 -19945.5664062500 -0.4786221683 - 0.6076385379 -19945.1406250000 -0.4775181413 - 0.6086721420 -19945.4160156250 -0.4764145911 - 0.6097047329 -19945.5878906250 -0.4753097296 - 0.6107363105 -19944.7304687500 -0.4742046893 - 0.6117668152 -19945.2988281250 -0.4730976224 - 0.6127963066 -19944.1367187500 -0.4719945490 - 0.6138247252 -19945.8808593750 -0.4708879590 - 0.6148521304 -19945.1015625000 -0.4697814882 - 0.6158785224 -19943.9296875000 -0.4686736763 - 0.6169037819 -19943.9316406250 -0.4675675631 - 0.6179280877 -19945.5742187500 -0.4664598405 - 0.6189513206 -19943.5117187500 -0.4653524458 - 0.6199734807 -19944.7050781250 -0.4642425179 - 0.6209945679 -19945.8417968750 -0.4631082416 - 0.6220146418 -19945.1992187500 -0.4619971812 - 0.6230336428 -19943.9687500000 -0.4608902931 - 0.6240516305 -19944.8691406250 -0.4597797394 - 0.6250684857 -19945.1523437500 -0.4586684108 - 0.6260843277 -19943.5097656250 -0.4575617015 - 0.6270990968 -19944.5859375000 -0.4564225972 - 0.6281128526 -19943.8613281250 -0.4553084970 - 0.6291254759 -19945.1074218750 -0.4542026520 - 0.6301370859 -19943.7500000000 -0.4530896246 - 0.6311475635 -19944.6523437500 -0.4519798160 - 0.6321570277 -19943.3320312500 -0.4508672357 - 0.6331653595 -19944.2812500000 -0.4497547150 - 0.6341726780 -19943.4863281250 -0.4486438632 - 0.6351789236 -19943.6113281250 -0.4475016892 - 0.6361840367 -19944.1503906250 -0.4463880062 - 0.6371881366 -19944.3300781250 -0.4452785850 - 0.6381911039 -19942.8691406250 -0.4441630840 - 0.6391929984 -19944.0371093750 -0.4430493116 - 0.6401938200 -19943.3359375000 -0.4419396222 - 0.6411935687 -19943.9199218750 -0.4408230186 - 0.6421921849 -19943.3671875000 -0.4397075772 - 0.6431897879 -19943.1386718750 -0.4385969341 - 0.6441862583 -19943.6445312500 -0.4374815226 - 0.6451815963 -19944.0097656250 -0.4363687038 - 0.6461759210 -19943.1464843750 -0.4352544248 - 0.6471690536 -19943.1152343750 -0.4341362417 - 0.6481611729 -19942.7402343750 -0.4330248237 - 0.6491521597 -19944.6796875000 -0.4318799675 - 0.6501420736 -19944.5722656250 -0.4307624102 - 0.6511308551 -19942.7695312500 -0.4296489954 - 0.6521185040 -19944.5175781250 -0.4285342395 - 0.6531050801 -19942.9199218750 -0.4274139702 - 0.6540905833 -19942.8320312500 -0.4263021946 - 0.6550749540 -19943.5507812500 -0.4251848757 - 0.6560581923 -19943.8769531250 -0.4240657091 - 0.6570403576 -19942.0917968750 -0.4229240417 - 0.6580213308 -19943.9140625000 -0.4218069315 - 0.6590012908 -19943.6250000000 -0.4206857681 - 0.6599800587 -19944.0585937500 -0.4195742011 - 0.6609577537 -19942.4726562500 -0.4184528291 - 0.6619342566 -19942.4980468750 -0.4173367321 - 0.6629096866 -19943.6718750000 -0.4162164927 - 0.6638840437 -19941.5761718750 -0.4150749743 - 0.6648572087 -19943.5820312500 -0.4139565229 - 0.6658292413 -19943.3183593750 -0.4128385782 - 0.6668002009 -19941.8320312500 -0.4117210209 - 0.6677699685 -19943.2832031250 -0.4106042683 - 0.6687386632 -19942.9511718750 -0.4094826877 - 0.6697061658 -19943.4980468750 -0.4083670676 - 0.6706725359 -19943.6210937500 -0.4072508812 - 0.6716378331 -19942.6621093750 -0.4061291814 - 0.6726019382 -19942.8027343750 -0.4050164223 - 0.6735649109 -19943.0019531250 -0.4038677216 - 0.6745267510 -19943.1855468750 -0.4027477503 - 0.6754874587 -19943.9531250000 -0.4016317427 - 0.6764469743 -19942.8652343750 -0.4005125165 - 0.6774053574 -19943.7539062500 -0.3993922472 - 0.6783626080 -19943.4160156250 -0.3982734084 - 0.6793187261 -19940.6679687500 -0.3971575797 - 0.6802737117 -19943.1679687500 -0.3960390389 - 0.6812275052 -19942.4726562500 -0.3949170113 - 0.6821801066 -19942.9960937500 -0.3937771618 - 0.6831315756 -19941.7832031250 -0.3926567137 - 0.6840819120 -19942.8007812500 -0.3915353417 - 0.6850311160 -19942.1757812500 -0.3904156387 - 0.6859791279 -19943.1308593750 -0.3892989159 - 0.6869259477 -19942.5117187500 -0.3881825209 - 0.6878716350 -19943.6308593750 -0.3870589733 - 0.6888161302 -19941.9609375000 -0.3859206736 - 0.6897594929 -19942.5312500000 -0.3847984970 - 0.6907016635 -19941.9160156250 -0.3836805820 - 0.6916426420 -19943.0175781250 -0.3825590014 - 0.6925824881 -19942.1503906250 -0.3814446330 - 0.6935211420 -19942.5546875000 -0.3803234100 - 0.6944586039 -19941.6484375000 -0.3792051971 - 0.6953949332 -19941.3339843750 -0.3780568540 - 0.6963300109 -19941.9375000000 -0.3769456446 - 0.6972639561 -19942.0332031250 -0.3758226633 - 0.6981967688 -19942.9941406250 -0.3747083843 - 0.6991283298 -19943.4980468750 -0.3735837042 - 0.7000586987 -19942.0996093750 -0.3724734187 - 0.7009879351 -19942.1113281250 -0.3713483512 - 0.7019159198 -19942.4570312500 -0.3702341914 - 0.7028427720 -19942.9453125000 -0.3690876663 - 0.7037683725 -19941.7421875000 -0.3679749668 - 0.7046928406 -19941.7675781250 -0.3668549955 - 0.7056160569 -19942.0175781250 -0.3657363355 - 0.7065381408 -19943.3281250000 -0.3646182120 - 0.7074589729 -19940.3710937500 -0.3635047972 - 0.7083786130 -19942.7539062500 -0.3623880744 - 0.7092971206 -19940.9570312500 -0.3612665534 - 0.7102143168 -19943.2871093750 -0.3601272702 - 0.7111303806 -19940.8066406250 -0.3590142727 - 0.7120452523 -19942.8125000000 -0.3578972220 - 0.7129588723 -19941.6601562500 -0.3567762673 - 0.7138713002 -19941.5410156250 -0.3556598127 - 0.7147824764 -19940.5175781250 -0.3545484543 - 0.7156925201 -19942.2460937500 -0.3534331918 - 0.7166013122 -19942.0390625000 -0.3522900641 - 0.7175088525 -19940.8457031250 -0.3511736989 - 0.7184152007 -19943.2988281250 -0.3500549793 - 0.7193203568 -19942.3457031250 -0.3489491343 - 0.7202242613 -19941.2109375000 -0.3478307426 - 0.7211269736 -19941.6289062500 -0.3467154205 - 0.7220284343 -19941.9023437500 -0.3455723822 - 0.7229287028 -19941.0898437500 -0.3444639146 - 0.7238277197 -19941.5703125000 -0.3433486819 - 0.7247255445 -19941.3847656250 -0.3422303200 - 0.7256221175 -19942.1230468750 -0.3411173522 - 0.7265174389 -19941.5898437500 -0.3399987817 - 0.7274115682 -19940.4277343750 -0.3388718069 - 0.7283044457 -19941.3789062500 -0.3377538323 - 0.7291960716 -19943.2265625000 -0.3366416395 - 0.7300864458 -19940.8378906250 -0.3355292678 - 0.7309756279 -19942.3769531250 -0.3344164789 - 0.7318635583 -19941.3105468750 -0.3333094716 - 0.7327502370 -19941.3925781250 -0.3321976662 - 0.7336356640 -19942.6484375000 -0.3310582042 - 0.7345198989 -19940.5781250000 -0.3299424946 - 0.7354028225 -19941.3007812500 -0.3288342655 - 0.7362845540 -19940.1132812500 -0.3277199268 - 0.7371649742 -19941.1074218750 -0.3266200721 - 0.7380442023 -19942.2050781250 -0.3255044818 - 0.7389221787 -19940.8046875000 -0.3243974447 - 0.7397988439 -19941.5468750000 -0.3232576847 - 0.7406743169 -19941.8183593750 -0.3221465349 - 0.7415485382 -19943.2050781250 -0.3210422099 - 0.7424214482 -19941.0488281250 -0.3199344873 - 0.7432931066 -19940.7636718750 -0.3188289404 - 0.7441635728 -19941.3007812500 -0.3177169561 - 0.7450327277 -19940.9882812500 -0.3165807724 - 0.7459006310 -19942.8808593750 -0.3154731691 - 0.7467672229 -19942.4921875000 -0.3143700063 - 0.7476326227 -19941.3417968750 -0.3132717013 - 0.7484967113 -19941.2597656250 -0.3121615350 - 0.7493595481 -19940.8222656250 -0.3110493720 - 0.7502210736 -19942.3750000000 -0.3099254072 - 0.7510813475 -19940.9082031250 -0.3088131547 - 0.7519403696 -19942.2304687500 -0.3077122569 - 0.7527980804 -19942.2421875000 -0.3066075444 - 0.7536545992 -19940.7675781250 -0.3055020571 - 0.7545097470 -19942.6503906250 -0.3043804169 - 0.7553636432 -19940.8652343750 -0.3032738566 - 0.7562162876 -19940.9296875000 -0.3021669090 - 0.7570676208 -19942.2167968750 -0.3010641932 - 0.7579177022 -19941.2812500000 -0.2999602854 - 0.7587664723 -19940.1855468750 -0.2988575101 - 0.7596139312 -19941.6425781250 -0.2977415323 - 0.7604601383 -19941.0175781250 -0.2966354787 - 0.7613050342 -19941.7363281250 -0.2955325842 - 0.7621486783 -19941.7421875000 -0.2944300175 - 0.7629909515 -19940.7656250000 -0.2933318019 - 0.7638320327 -19940.0605468750 -0.2922268808 - 0.7646717429 -19941.9746093750 -0.2911062241 - 0.7655102015 -19942.2421875000 -0.2900051177 - 0.7663473487 -19940.5039062500 -0.2889069915 - 0.7671831846 -19940.6406250000 -0.2878181636 - 0.7680177093 -19940.7910156250 -0.2867167592 - 0.7688509822 -19940.7968750000 -0.2856152058 - 0.7696828842 -19941.9804687500 -0.2844971418 - 0.7705135345 -19941.1230468750 -0.2834010422 - 0.7713428736 -19941.3710937500 -0.2823008001 - 0.7721708417 -19940.5253906250 -0.2812042534 - 0.7729975581 -19942.0253906250 -0.2801106572 - 0.7738229632 -19940.6484375000 -0.2789925039 - 0.7746470571 -19941.2792968750 -0.2778871357 - 0.7754698396 -19940.6386718750 -0.2768078744 - 0.7762913108 -19939.6074218750 -0.2757066190 - 0.7771114111 -19940.9433593750 -0.2746144533 - 0.7779302597 -19942.3710937500 -0.2734960020 - 0.7787477374 -19942.6777343750 -0.2724052370 - 0.7795639634 -19940.9648437500 -0.2713172734 - 0.7803788185 -19940.5195312500 -0.2702193856 - 0.7811923623 -19940.6269531250 -0.2691258490 - 0.7820045352 -19943.0468750000 -0.2680183947 - 0.7828154564 -19941.1738281250 -0.2669213116 - 0.7836250067 -19940.0566406250 -0.2658287585 - 0.7844332457 -19941.1601562500 -0.2647362649 - 0.7852401733 -19940.9960937500 -0.2636474371 - 0.7860457301 -19941.9746093750 -0.2625597715 - 0.7868499756 -19941.2382812500 -0.2614463866 - 0.7876528502 -19940.8066406250 -0.2603558004 - 0.7884544134 -19939.0332031250 -0.2592713535 - 0.7892546654 -19940.5878906250 -0.2581849098 - 0.7900535464 -19942.3300781250 -0.2571005225 - 0.7908511162 -19940.8046875000 -0.2559900582 - 0.7916473150 -19940.4199218750 -0.2549023628 - 0.7924422026 -19940.2070312500 -0.2538120449 - 0.7932357192 -19940.8457031250 -0.2527230680 - 0.7940279245 -19940.5234375000 -0.2516390383 - 0.7948187590 -19941.0136718750 -0.2505376339 - 0.7956082821 -19941.6718750000 -0.2494485378 - 0.7963964343 -19940.4296875000 -0.2483595312 - 0.7971832156 -19939.4843750000 -0.2472736239 - 0.7979686260 -19940.1230468750 -0.2461892813 - 0.7987527251 -19941.3457031250 -0.2450890839 - 0.7995354533 -19940.9570312500 -0.2440011054 - 0.8003168106 -19941.0683593750 -0.2429168522 - 0.8010968566 -19940.9179687500 -0.2418365628 - 0.8018755317 -19941.6269531250 -0.2407324463 - 0.8026528358 -19941.5136718750 -0.2396495193 - 0.8034287691 -19941.1406250000 -0.2385655046 - 0.8042033315 -19942.8554687500 -0.2374841422 - 0.8049765825 -19940.8964843750 -0.2364014983 - 0.8057484031 -19940.5546875000 -0.2353011966 - 0.8065189123 -19940.5117187500 -0.2342213839 - 0.8072879910 -19940.3164062500 -0.2331375629 - 0.8080557585 -19942.1835937500 -0.2320532054 - 0.8088221550 -19940.2011718750 -0.2309722900 - 0.8095871806 -19940.4238281250 -0.2298720032 - 0.8103507757 -19940.9023437500 -0.2287932336 - 0.8111130595 -19939.3593750000 -0.2277157456 - 0.8118739128 -19939.7402343750 -0.2266328931 - 0.8126334548 -19941.9218750000 -0.2255557626 - 0.8133915663 -19940.1582031250 -0.2244572192 - 0.8141483665 -19940.1562500000 -0.2233787626 - 0.8149037361 -19940.5664062500 -0.2222966850 - 0.8156576753 -19942.2265625000 -0.2212193906 - 0.8164103031 -19940.3164062500 -0.2201225907 - 0.8171615601 -19942.0371093750 -0.2190424949 - 0.8179113865 -19940.0234375000 -0.2179607451 - 0.8186598420 -19942.0937500000 -0.2168738544 - 0.8194068670 -19942.0253906250 -0.2157958150 - 0.8201525807 -19942.1796875000 -0.2147002518 - 0.8208968639 -19940.0937500000 -0.2136225551 - 0.8216397762 -19940.4980468750 -0.2125411332 - 0.8223812580 -19941.1894531250 -0.2114638537 - 0.8231213689 -19942.0976562500 -0.2103644013 - 0.8238600492 -19941.0507812500 -0.2092900872 - 0.8245973587 -19941.6660156250 -0.2082088143 - 0.8253332973 -19942.5957031250 -0.2071324140 - 0.8260678053 -19940.3906250000 -0.2060372233 - 0.8268009424 -19941.5312500000 -0.2049579322 - 0.8275326490 -19939.2011718750 -0.2038779855 - 0.8282629251 -19940.2167968750 -0.2027961612 - 0.8289918303 -19941.8300781250 -0.2017035037 - 0.8297193646 -19941.7792968750 -0.2006224841 - 0.8304454684 -19941.1699218750 -0.1995378882 - 0.8311701417 -19941.4960937500 -0.1984613985 - 0.8318934441 -19940.7578125000 -0.1973782033 - 0.8326152563 -19941.2089843750 -0.1962819993 - 0.8333357573 -19941.5136718750 -0.1952038109 - 0.8340547681 -19941.8730468750 -0.1941206455 - 0.8347724080 -19940.3417968750 -0.1930404752 - 0.8354886174 -19940.8652343750 -0.1919471920 - 0.8362033963 -19940.5878906250 -0.1908599287 - 0.8369168043 -19941.8125000000 -0.1897691935 - 0.8376287818 -19941.8613281250 -0.1886855811 - 0.8383392692 -19942.6132812500 -0.1875885725 - 0.8390483856 -19941.7500000000 -0.1865110695 - 0.8397561312 -19940.2050781250 -0.1854263246 - 0.8404623866 -19940.8671875000 -0.1843373626 - 0.8411672115 -19942.0781250000 -0.1832392961 - 0.8418706656 -19940.6308593750 -0.1821583360 - 0.8425726295 -19940.6191406250 -0.1810584366 - 0.8432732224 -19940.9453125000 -0.1799694151 - 0.8439723253 -19941.2812500000 -0.1788757890 - 0.8446700573 -19939.0957031250 -0.1777830124 - 0.8453662992 -19941.3417968750 -0.1766931415 - 0.8460611701 -19942.2285156250 -0.1756052673 - 0.8467545509 -19940.6914062500 -0.1745066494 - 0.8474465609 -19942.5449218750 -0.1734020561 - 0.8481370807 -19941.9062500000 -0.1723117977 - 0.8488261700 -19941.6054687500 -0.1712154895 - 0.8495138288 -19939.8574218750 -0.1701162010 - 0.8502000570 -19941.3359375000 -0.1690182090 - 0.8508847952 -19940.8378906250 -0.1679243594 - 0.8515681624 -19941.3300781250 -0.1668210775 - 0.8522500396 -19942.1875000000 -0.1657050252 - 0.8529304862 -19941.5156250000 -0.1646077335 - 0.8536094427 -19941.1582031250 -0.1635093391 - 0.8542870283 -19940.4433593750 -0.1624061167 - 0.8549631238 -19940.5527343750 -0.1612922996 - 0.8556377888 -19941.5742187500 -0.1601846516 - 0.8563109636 -19942.8046875000 -0.1590787172 - 0.8569827080 -19940.5078125000 -0.1579729021 - 0.8576530218 -19942.5527343750 -0.1568455249 - 0.8583218455 -19940.7558593750 -0.1557392627 - 0.8589892387 -19941.4667968750 -0.1546217352 - 0.8596551418 -19941.1835937500 -0.1535092592 - 0.8603196144 -19940.5312500000 -0.1523867697 - 0.8609826565 -19940.2500000000 -0.1512700319 - 0.8616442084 -19939.9511718750 -0.1501539499 - 0.8623042703 -19942.1464843750 -0.1490190923 - 0.8629629016 -19941.2753906250 -0.1478940845 - 0.8636201024 -19941.8222656250 -0.1467703134 - 0.8642758131 -19941.1113281250 -0.1456478983 - 0.8649300337 -19940.2949218750 -0.1445095837 - 0.8655828238 -19942.4492187500 -0.1433787644 - 0.8662341237 -19942.1503906250 -0.1422449201 - 0.8668839335 -19941.0156250000 -0.1411117762 - 0.8675323129 -19940.5605468750 -0.1399669200 - 0.8681792021 -19943.5000000000 -0.1388267726 - 0.8688246608 -19940.8808593750 -0.1376837641 - 0.8694685698 -19941.7070312500 -0.1365342140 - 0.8701110482 -19941.1328125000 -0.1353908181 - 0.8707520962 -19941.9589843750 -0.1342370510 - 0.8713915944 -19941.4101562500 -0.1330876201 - 0.8720296621 -19940.9843750000 -0.1319276094 - 0.8726662397 -19941.9003906250 -0.1307714581 - 0.8733013272 -19942.5000000000 -0.1296108514 - 0.8739349246 -19941.3417968750 -0.1284402907 - 0.8745670319 -19941.9570312500 -0.1272792518 - 0.8751977086 -19942.4492187500 -0.1261117756 - 0.8758268356 -19940.2851562500 -0.1249417886 - 0.8764545321 -19941.6230468750 -0.1237562671 - 0.8770807385 -19942.0976562500 -0.1225854903 - 0.8777053952 -19940.1953125000 -0.1214047745 - 0.8783286214 -19941.7988281250 -0.1202122942 - 0.8789503574 -19941.4824218750 -0.1190271229 - 0.8795706034 -19940.2460937500 -0.1178369150 - 0.8801893592 -19941.7460937500 -0.1166420951 - 0.8808065653 -19940.7968750000 -0.1154412702 - 0.8814223409 -19942.5781250000 -0.1142392084 - 0.8820366263 -19940.7128906250 -0.1130318940 - 0.8826493621 -19942.1875000000 -0.1118191928 - 0.8832606673 -19940.9394531250 -0.1106110588 - 0.8838704228 -19942.4140625000 -0.1093956158 - 0.8844786882 -19939.8886718750 -0.1081718653 - 0.8850854635 -19942.2148437500 -0.1069443002 - 0.8856907487 -19940.6152343750 -0.1057170480 - 0.8862945437 -19941.2636718750 -0.1044827923 - 0.8868967891 -19942.6972656250 -0.1032421440 - 0.8874975443 -19940.9746093750 -0.1020015404 - 0.8880968094 -19941.9667968750 -0.1007525548 - 0.8886945844 -19941.6679687500 -0.0995009169 - 0.8892908692 -19941.7753906250 -0.0982454121 - 0.8898856044 -19941.6367187500 -0.0969858915 - 0.8904787898 -19942.1367187500 -0.0957204401 - 0.8910705447 -19942.2363281250 -0.0944466963 - 0.8916607499 -19941.6953125000 -0.0931719989 - 0.8922494650 -19940.4921875000 -0.0918941572 - 0.8928366303 -19942.8203125000 -0.0906058550 - 0.8934223056 -19942.9882812500 -0.0893148854 - 0.8940064907 -19942.9062500000 -0.0880200267 - 0.8945891261 -19942.8457031250 -0.0867156386 - 0.8951702714 -19942.5449218750 -0.0854110792 - 0.8957498670 -19941.7031250000 -0.0840990692 - 0.8963279724 -19942.0996093750 -0.0827819780 - 0.8969045281 -19941.9257812500 -0.0814563185 - 0.8974795938 -19942.9687500000 -0.0801262408 - 0.8980531096 -19942.4726562500 -0.0787914470 - 0.8986251354 -19941.9609375000 -0.0774490312 - 0.8991956115 -19942.1113281250 -0.0761029422 - 0.8997645974 -19942.3183593750 -0.0747483820 - 0.9003320336 -19941.2089843750 -0.0733902603 - 0.9008979201 -19942.5273437500 -0.0720218718 - 0.9014623165 -19941.3906250000 -0.0706505030 - 0.9020251632 -19941.2636718750 -0.0692707300 - 0.9025864601 -19942.8457031250 -0.0678860918 - 0.9031462669 -19940.6542968750 -0.0664936230 - 0.9037045240 -19943.0097656250 -0.0650942922 - 0.9042612314 -19941.3164062500 -0.0636882111 - 0.9048164487 -19942.9316406250 -0.0622776262 - 0.9053701162 -19942.0917968750 -0.0608545169 - 0.9059222341 -19940.6347656250 -0.0594298281 - 0.9064728618 -19941.7539062500 -0.0579969287 - 0.9070218801 -19942.3496093750 -0.0565566644 - 0.9075694084 -19942.9824218750 -0.0551088937 - 0.9081153870 -19942.5390625000 -0.0536525846 - 0.9086598158 -19942.7792968750 -0.0521891750 - 0.9092026949 -19942.9492187500 -0.0507163964 - 0.9097440839 -19942.1679687500 -0.0492397919 - 0.9102838635 -19941.0742187500 -0.0477570705 - 0.9108221531 -19942.4628906250 -0.0462637283 - 0.9113588929 -19941.8105468750 -0.0447632894 - 0.9118940830 -19940.5410156250 -0.0432553366 - 0.9124277234 -19942.0351562500 -0.0417394042 - 0.9129598141 -19942.8906250000 -0.0402142517 - 0.9134903550 -19942.7929687500 -0.0386852399 - 0.9140193462 -19940.7167968750 -0.0371454172 - 0.9145467877 -19943.3300781250 -0.0355975032 - 0.9150726795 -19941.8574218750 -0.0340373665 - 0.9155970216 -19940.8710937500 -0.0324833579 - 0.9161198139 -19943.3183593750 -0.0309068635 - 0.9166409969 -19941.4199218750 -0.0293206684 - 0.9171606898 -19942.7089843750 -0.0277422424 - 0.9176788330 -19941.8164062500 -0.0261400566 - 0.9181953669 -19941.4550781250 -0.0245376900 - 0.9187104106 -19940.7246093750 -0.0229295418 - 0.9192238450 -19941.8847656250 -0.0212998204 - 0.9197357893 -19942.0585937500 -0.0196718685 - 0.9202461243 -19942.2050781250 -0.0180311352 - 0.9207548499 -19942.9433593750 -0.0163889751 - 0.9212620854 -19942.3222656250 -0.0147372708 - 0.9217677712 -19941.7812500000 -0.0130750174 - 0.9222718477 -19942.7968750000 -0.0114070093 - 0.9227743745 -19941.6796875000 -0.0097286189 - 0.9232753515 -19941.5214843750 -0.0080423830 - 0.9237747192 -19942.8437500000 -0.0063419510 - 0.9242725372 -19941.6074218750 -0.0046377182 - 0.9247688055 -19941.9707031250 -0.0029346496 - 0.9252635241 -19942.2792968750 -0.0012099873 - 0.9257566333 -19944.2851562500 0.0005221292 - 0.9262481928 -19942.8085937500 0.0022575185 - 0.9267382026 -19943.3261718750 0.0040016808 - 0.9272266030 -19942.0273437500 0.0057580378 - 0.9277134538 -19942.5292968750 0.0075107869 - 0.9281987548 -19942.1679687500 0.0092817042 - 0.9286824465 -19943.7187500000 0.0110475887 - 0.9291645288 -19943.3593750000 0.0128328875 - 0.9296451211 -19944.7226562500 0.0146216452 - 0.9301240444 -19943.3652343750 0.0164256841 - 0.9306014776 -19941.2851562500 0.0182347056 - 0.9310773015 -19942.6621093750 0.0200453680 - 0.9315515161 -19942.6894531250 0.0218622051 - 0.9320241809 -19944.1816406250 0.0236919206 - 0.9324952364 -19943.0644531250 0.0255153552 - 0.9329647422 -19941.0898437500 0.0273572225 - 0.9334326982 -19942.5527343750 0.0292105898 - 0.9338989854 -19941.4472656250 0.0310594775 - 0.9343637824 -19942.1289062500 0.0329159796 - 0.9348269105 -19941.6367187500 0.0347845182 - 0.9352884889 -19944.3769531250 0.0366611034 - 0.9357485175 -19942.1406250000 0.0385428257 - 0.9362069368 -19942.3261718750 0.0404258296 - 0.9366637468 -19942.4355468750 0.0423246026 - 0.9371190071 -19943.4863281250 0.0442045256 - 0.9375725985 -19943.1113281250 0.0461144373 - 0.9380246997 -19943.4687500000 0.0480172560 - 0.9384751320 -19941.3417968750 0.0499333814 - 0.9389240146 -19942.9882812500 0.0518525019 - 0.9393712878 -19942.9746093750 0.0537801422 - 0.9398170114 -19943.1210937500 0.0557093099 - 0.9402610660 -19943.8515625000 0.0576355010 - 0.9407035708 -19944.3750000000 0.0595757365 - 0.9411445260 -19943.2792968750 0.0614959411 - 0.9415838122 -19943.2871093750 0.0634417757 - 0.9420215487 -19941.8496093750 0.0654035434 - 0.9424576163 -19942.7968750000 0.0673395544 - 0.9428921938 -19943.5019531250 0.0692973882 - 0.9433251023 -19941.7441406250 0.0712327585 - 0.9437564015 -19942.6328125000 0.0732239187 - 0.9441861510 -19942.9824218750 0.0751732290 - 0.9446142316 -19942.9277343750 0.0771323740 - 0.9450407624 -19941.8789062500 0.0790949166 - 0.9454656839 -19943.7519531250 0.0810618103 - 0.9458889961 -19942.1601562500 0.0830378830 - 0.9463106990 -19943.6796875000 0.0849953443 - 0.9467308521 -19942.3769531250 0.0869814456 - 0.9471493363 -19943.0312500000 0.0889570117 - 0.9475662112 -19943.0468750000 0.0909272730 - 0.9479815364 -19942.8476562500 0.0928858444 - 0.9483951926 -19942.8925781250 0.0948621780 - 0.9488072991 -19941.7578125000 0.0968443826 - 0.9492177367 -19943.5429687500 0.0988085568 - 0.9496266246 -19943.7617187500 0.1007911265 - 0.9500338435 -19943.2753906250 0.1027653068 - 0.9504394531 -19943.1855468750 0.1047215015 - 0.9508435130 -19942.9140625000 0.1066882387 - 0.9512459040 -19943.8964843750 0.1086596251 - 0.9516466856 -19942.7246093750 0.1106406450 - 0.9520459175 -19943.2910156250 0.1125919372 - 0.9524434805 -19942.6171875000 0.1145608947 - 0.9528394341 -19944.4726562500 0.1165214330 - 0.9532337785 -19942.9531250000 0.1184736118 - 0.9536265135 -19943.1386718750 0.1204253286 - 0.9540175796 -19943.0156250000 0.1223640293 - 0.9544070959 -19943.4023437500 0.1243434697 - 0.9547949433 -19943.8027343750 0.1262695789 - 0.9551812410 -19941.8847656250 0.1282126904 - 0.9555658698 -19944.1171875000 0.1301371455 - 0.9559488893 -19943.5644531250 0.1320842057 - 0.9563302994 -19942.2988281250 0.1340142787 - 0.9567100406 -19943.9238281250 0.1359222531 - 0.9570881724 -19942.1660156250 0.1378436834 - 0.9574646950 -19942.7988281250 0.1397515088 - 0.9578396082 -19943.8535156250 0.1416652650 - 0.9582129121 -19944.1171875000 0.1435735971 - 0.9585845470 -19944.3066406250 0.1454723477 - 0.9589545727 -19944.1093750000 0.1473693997 - 0.9593229890 -19941.9277343750 0.1492502838 - 0.9596897960 -19942.0722656250 0.1511395872 - 0.9600549340 -19943.5878906250 0.1529962122 - 0.9604184628 -19943.4316406250 0.1548716426 - 0.9607803226 -19943.7246093750 0.1567327976 - 0.9611406326 -19942.3183593750 0.1585911363 - 0.9614992738 -19941.8828125000 0.1604396999 - 0.9618562460 -19943.3925781250 0.1622840315 - 0.9622116089 -19943.2226562500 0.1641138345 - 0.9625653625 -19944.1347656250 0.1659380794 - 0.9629175067 -19943.4394531250 0.1677623391 - 0.9632679820 -19943.3769531250 0.1695770472 - 0.9636168480 -19942.6425781250 0.1713730991 - 0.9639640450 -19943.0371093750 0.1731726378 - 0.9643096328 -19941.7226562500 0.1749583036 - 0.9646535516 -19943.1425781250 0.1767391264 - 0.9649958611 -19943.1035156250 0.1785190254 - 0.9653365612 -19942.6933593750 0.1802919954 - 0.9656755924 -19943.4394531250 0.1820489019 - 0.9660129547 -19942.0332031250 0.1838018894 - 0.9663487673 -19943.3769531250 0.1855345964 - 0.9666828513 -19944.0097656250 0.1872724742 - 0.9670153260 -19942.3632812500 0.1889905632 - 0.9673461914 -19942.1933593750 0.1907144487 - 0.9676753879 -19942.9492187500 0.1924229115 - 0.9680029750 -19942.4042968750 0.1941247284 - 0.9683288932 -19944.6328125000 0.1958221793 - 0.9686531425 -19944.3144531250 0.1975102574 - 0.9689757824 -19944.7402343750 0.1991768628 - 0.9692968130 -19943.7578125000 0.2008467764 - 0.9696161747 -19943.1660156250 0.2025081813 - 0.9699338675 -19943.2812500000 0.2041545361 - 0.9702498913 -19943.6894531250 0.2057985663 - 0.9705643654 -19943.2285156250 0.2074261308 - 0.9708771110 -19942.8984375000 0.2090506852 - 0.9711882472 -19944.0058593750 0.2106656581 - 0.9714977145 -19942.0996093750 0.2122675180 - 0.9718055725 -19944.0820312500 0.2138692886 - 0.9721117616 -19944.3593750000 0.2154597193 - 0.9724162817 -19943.9160156250 0.2170475274 - 0.9727191925 -19944.1445312500 0.2186170816 - 0.9730204344 -19942.9941406250 0.2201784998 - 0.9733200073 -19942.6777343750 0.2217416018 - 0.9736179113 -19942.9140625000 0.2232774198 - 0.9739142060 -19942.4667968750 0.2248235047 - 0.9742088914 -19942.9921875000 0.2263585478 - 0.9745018482 -19943.8691406250 0.2278722525 - 0.9747931957 -19943.4882812500 0.2293917686 - 0.9750828743 -19943.8984375000 0.2308958471 - 0.9753708839 -19943.6210937500 0.2323961705 - 0.9756572843 -19943.5722656250 0.2338841259 - 0.9759420156 -19945.2050781250 0.2353669703 - 0.9762250781 -19944.2871093750 0.2368381321 - 0.9765064716 -19943.0703125000 0.2383042723 - 0.9767862558 -19942.6562500000 0.2397616208 - 0.9770643115 -19943.3105468750 0.2412132919 - 0.9773407578 -19942.7324218750 0.2426529825 - 0.9776155353 -19942.3320312500 0.2440872192 - 0.9778887033 -19941.4863281250 0.2455156744 - 0.9781601429 -19943.9003906250 0.2469398081 - 0.9784299731 -19942.1875000000 0.2483511716 - 0.9786981344 -19941.9218750000 0.2497541904 - 0.9789646268 -19944.3789062500 0.2511538863 - 0.9792294502 -19942.6035156250 0.2525406778 - 0.9794926047 -19943.0097656250 0.2539223433 - 0.9797541499 -19942.9550781250 0.2553038001 - 0.9800139666 -19943.3964843750 0.2566701770 - 0.9802721739 -19942.7578125000 0.2580322921 - 0.9805287123 -19942.7382812500 0.2593865693 - 0.9807835817 -19943.0312500000 0.2607376575 - 0.9810367823 -19942.6621093750 0.2620759904 - 0.9812883139 -19943.0585937500 0.2634124160 - 0.9815381765 -19944.0722656250 0.2647425830 - 0.9817864299 -19943.5273437500 0.2660636902 - 0.9820329547 -19942.5253906250 0.2673809528 - 0.9822778106 -19942.1230468750 0.2686905861 - 0.9825210571 -19942.1328125000 0.2699927390 - 0.9827626348 -19944.2695312500 0.2712929249 - 0.9830024838 -19944.2988281250 0.2725836039 - 0.9832407236 -19943.7675781250 0.2738670707 - 0.9834772944 -19945.3691406250 0.2751512527 - 0.9837121367 -19944.4042968750 0.2764235139 - 0.9839453697 -19943.5546875000 0.2776905298 - 0.9841769338 -19944.1542968750 0.2789533138 - 0.9844067693 -19943.8789062500 0.2802137434 - 0.9846349955 -19942.8613281250 0.2814632654 - 0.9848615527 -19943.0175781250 0.2827098072 - 0.9850864410 -19944.7695312500 0.2839550078 - 0.9853096008 -19943.6992187500 0.2851892114 - 0.9855311513 -19943.5917968750 0.2864192724 - 0.9857510328 -19943.6035156250 0.2876489460 - 0.9859691858 -19943.2167968750 0.2888701558 - 0.9861857295 -19944.1601562500 0.2900862098 - 0.9864005446 -19943.4921875000 0.2912966907 - 0.9866137505 -19943.1542968750 0.2925063372 - 0.9868252277 -19942.4804687500 0.2937086821 - 0.9870350361 -19944.2128906250 0.2949075401 - 0.9872432351 -19944.3515625000 0.2961046696 - 0.9874497056 -19944.7656250000 0.2972933948 - 0.9876545072 -19944.1972656250 0.2984764874 - 0.9878576398 -19943.3691406250 0.2996605635 - 0.9880591035 -19943.4492187500 0.3008398712 - 0.9882588983 -19944.2011718750 0.3020111620 - 0.9884569645 -19942.1738281250 0.3031753898 - 0.9886534214 -19944.5527343750 0.3043457270 - 0.9888481498 -19941.5390625000 0.3055079281 - 0.9890412688 -19944.5820312500 0.3066664040 - 0.9892326593 -19945.1425781250 0.3078246415 - 0.9894223809 -19943.9414062500 0.3089739680 - 0.9896104336 -19944.0781250000 0.3101207614 - 0.9897967577 -19943.3476562500 0.3112612367 - 0.9899814725 -19944.3710937500 0.3124082983 - 0.9901644588 -19943.5625000000 0.3135458231 - 0.9903458357 -19942.3554687500 0.3146725595 - 0.9905254841 -19944.9921875000 0.3158136904 - 0.9907034636 -19943.7480468750 0.3169407248 - 0.9908797145 -19944.0644531250 0.3180637360 - 0.9910543561 -19942.6210937500 0.3191801608 - 0.9912272692 -19944.5000000000 0.3203081191 - 0.9913985133 -19943.7753906250 0.3214235008 - 0.9915680885 -19943.5585937500 0.3225338161 - 0.9917359948 -19945.1464843750 0.3236518204 - 0.9919022322 -19943.8281250000 0.3247570097 - 0.9920667410 -19943.7109375000 0.3258644938 - 0.9922295809 -19942.3945312500 0.3269633055 - 0.9923907518 -19943.6640625000 0.3280693889 - 0.9925502539 -19944.8007812500 0.3291688561 - 0.9927080274 -19943.4296875000 0.3302615583 - 0.9928641319 -19945.6972656250 0.3313640654 - 0.9930185676 -19943.9082031250 0.3324524760 - 0.9931713343 -19944.3105468750 0.3335411549 - 0.9933223724 -19942.5683593750 0.3346245885 - 0.9934718013 -19943.0507812500 0.3357187808 - 0.9936195016 -19944.2519531250 0.3367974162 - 0.9937654734 -19943.0351562500 0.3378752172 - 0.9939098358 -19941.4335937500 0.3389546573 - 0.9940524697 -19944.5468750000 0.3400434256 - 0.9941934347 -19943.9433593750 0.3411152959 - 0.9943326712 -19943.8417968750 0.3421869278 - 0.9944702983 -19944.1855468750 0.3432650268 - 0.9946061969 -19944.2304687500 0.3443315327 - 0.9947403669 -19944.6269531250 0.3454020321 - 0.9948729277 -19944.4316406250 0.3464642763 - 0.9950037599 -19943.7363281250 0.3475426733 - 0.9951329231 -19943.3359375000 0.3486039042 - 0.9952603579 -19942.9316406250 0.3496636450 - 0.9953861237 -19944.7109375000 0.3507249355 - 0.9955102205 -19944.3632812500 0.3517915905 - 0.9956326485 -19944.2304687500 0.3528493643 - 0.9957533479 -19944.7636718750 0.3539013565 - 0.9958723783 -19943.2246093750 0.3549521565 - 0.9959897399 -19943.7207031250 0.3560200930 - 0.9961053729 -19943.5214843750 0.3570751548 - 0.9962193370 -19942.2343750000 0.3581223786 - 0.9963316321 -19943.8925781250 0.3591717184 - 0.9964421988 -19944.0292968750 0.3602269888 - 0.9965510964 -19944.7500000000 0.3612757623 - 0.9966582656 -19943.5117187500 0.3623186648 - 0.9967638254 -19943.3808593750 0.3633710444 - 0.9968676567 -19944.8945312500 0.3644244075 - 0.9969697595 -19943.4062500000 0.3654645085 - 0.9970701933 -19944.1152343750 0.3665044904 - 0.9971689582 -19943.1230468750 0.3675492704 - 0.9972660542 -19945.1308593750 0.3685961962 - 0.9973614216 -19944.3964843750 0.3696352839 - 0.9974550605 -19944.1953125000 0.3706830144 - 0.9975470901 -19943.9472656250 0.3717170358 - 0.9976373911 -19943.9726562500 0.3727646172 - 0.9977259636 -19944.6738281250 0.3738048673 - 0.9978128672 -19943.5156250000 0.3748401701 - 0.9978981018 -19943.1171875000 0.3758687973 - 0.9979816675 -19943.9726562500 0.3769158721 - 0.9980635047 -19943.5078125000 0.3779481947 - 0.9981436133 -19944.4726562500 0.3789874017 - 0.9982221127 -19942.9843750000 0.3800227046 - 0.9982988834 -19943.3496093750 0.3810649812 - 0.9983739257 -19944.3183593750 0.3820963204 - 0.9984472990 -19943.2031250000 0.3831264377 - 0.9985190034 -19944.6621093750 0.3841544688 - 0.9985889792 -19944.6093750000 0.3851971626 - 0.9986572862 -19943.8535156250 0.3862296641 - 0.9987238646 -19943.8730468750 0.3872543871 - 0.9987887740 -19944.7734375000 0.3882865012 - 0.9988520145 -19943.9570312500 0.3893136680 - 0.9989135265 -19944.7265625000 0.3903543055 - 0.9989733696 -19944.4140625000 0.3913808763 - 0.9990315437 -19943.7343750000 0.3924092054 - 0.9990879893 -19943.6250000000 0.3934344947 - 0.9991427064 -19944.2558593750 0.3944762945 - 0.9991957545 -19943.4882812500 0.3954983652 - 0.9992471337 -19944.4921875000 0.3965258300 - 0.9992967844 -19942.9980468750 0.3975459933 - 0.9993447661 -19944.3222656250 0.3985897899 - 0.9993910789 -19943.1386718750 0.3996118307 - 0.9994356632 -19944.1601562500 0.4006376863 - 0.9994785190 -19943.9199218750 0.4016608298 - 0.9995197058 -19944.4687500000 0.4027008414 - 0.9995592237 -19943.3945312500 0.4037231505 - 0.9995970726 -19944.1562500000 0.4047511816 - 0.9996331334 -19942.9609375000 0.4057762623 - 0.9996675849 -19943.5996093750 0.4067986310 - 0.9997003078 -19943.2382812500 0.4078392386 - 0.9997313023 -19943.5214843750 0.4088585377 - 0.9997606874 -19943.9472656250 0.4098824561 - 0.9997882843 -19943.0742187500 0.4109032452 - 0.9998142719 -19944.0410156250 0.4119435549 - 0.9998384714 -19942.1953125000 0.4129618108 - 0.9998610616 -19945.0117187500 0.4139867723 - 0.9998819232 -19943.6972656250 0.4150052965 - 0.9999010563 -19942.4355468750 0.4160248637 - 0.9999185205 -19944.5058593750 0.4170646966 - 0.9999343157 -19942.3964843750 0.4180866778 - 0.9999483824 -19943.1386718750 0.4191090763 - 0.9999607801 -19945.3203125000 0.4201340377 - 0.9999714494 -19942.7382812500 0.4211525321 - 0.9999804497 -19945.3066406250 0.4221916199 - 0.9999877214 -19943.6308593750 0.4232137203 - 0.9999933243 -19943.6191406250 0.4242329597 - 0.9999972582 -19944.5078125000 0.4252542853 - 0.9999994636 -19943.5878906250 0.4262751043 - 0.9999999404 -19944.2695312500 0.4273156524 - 0.9999988079 -19943.8437500000 0.4283337593 - 0.9999958873 -19942.5917968750 0.4293544888 - 0.9999913573 -19943.3144531250 0.4303784072 - 0.9999850392 -19945.0117187500 0.4314149320 - 0.9999771118 -19945.2968750000 0.4324350953 - 0.9999674559 -19943.9238281250 0.4334565401 - 0.9999560714 -19943.1953125000 0.4344805777 - 0.9999430180 -19941.8300781250 0.4355039299 - 0.9999282956 -19945.0078125000 0.4365398884 - 0.9999118447 -19944.0898437500 0.4375588596 - 0.9998937249 -19944.0996093750 0.4385800362 - 0.9998738766 -19944.4589843750 0.4396051764 - 0.9998523593 -19944.0488281250 0.4406253994 - 0.9998291731 -19943.7421875000 0.4416682720 - 0.9998042583 -19943.3828125000 0.4426851571 - 0.9997776151 -19943.1191406250 0.4437036216 - 0.9997493029 -19942.2011718750 0.4447213411 - 0.9997193217 -19943.2226562500 0.4457440376 - 0.9996876121 -19943.5761718750 0.4467878938 - 0.9996542335 -19943.3613281250 0.4478059113 - 0.9996191263 -19943.3886718750 0.4488263130 - 0.9995823503 -19943.4160156250 0.4498473406 - 0.9995439053 -19942.2148437500 0.4508705139 - 0.9995037317 -19942.6503906250 0.4518964589 - 0.9994618297 -19944.8105468750 0.4529340565 - 0.9994183183 -19943.3125000000 0.4539550543 - 0.9993730187 -19944.4609375000 0.4549815953 - 0.9993261099 -19942.9296875000 0.4559977651 - 0.9992774725 -19943.2832031250 0.4570177197 - 0.9992271066 -19942.5820312500 0.4580613971 - 0.9991750717 -19941.7929687500 0.4590803981 - 0.9991213679 -19943.1347656250 0.4601075947 - 0.9990659356 -19942.2675781250 0.4611162543 - 0.9990088344 -19943.2656250000 0.4621461928 - 0.9989500046 -19944.4179687500 0.4631896615 - 0.9988895059 -19943.3378906250 0.4642089307 - 0.9988273382 -19942.6582031250 0.4652304947 - 0.9987634420 -19943.5585937500 0.4662546515 - 0.9986978769 -19943.0136718750 0.4672750235 - 0.9986305833 -19944.4199218750 0.4683173001 - 0.9985616207 -19943.6835937500 0.4693408310 - 0.9984909892 -19944.2636718750 0.4703654051 - 0.9984186292 -19944.5957031250 0.4713781774 - 0.9983446002 -19942.0722656250 0.4724003673 - 0.9982688427 -19943.1777343750 0.4734227657 - 0.9981914163 -19943.1601562500 0.4744631648 - 0.9981122613 -19943.4433593750 0.4754902422 - 0.9980314970 -19942.4238281250 0.4765092731 - 0.9979489446 -19943.6660156250 0.4775327444 - 0.9978647828 -19941.8886718750 0.4785551429 - 0.9977788925 -19942.4726562500 0.4795807302 - 0.9976912737 -19944.7382812500 0.4806167483 - 0.9976020455 -19943.9804687500 0.4816391766 - 0.9975110292 -19944.2089843750 0.4826615155 - 0.9974184036 -19943.5332031250 0.4836838543 - 0.9973240495 -19942.8671875000 0.4847066700 - 0.9972280264 -19941.0839843750 0.4857319891 - 0.9971302748 -19943.3593750000 0.4867700338 - 0.9970308542 -19944.4140625000 0.4877942801 - 0.9969297647 -19942.2402343750 0.4888139963 - 0.9968269467 -19942.2656250000 0.4898317754 - 0.9967224598 -19942.8359375000 0.4908596575 - 0.9966163039 -19943.9199218750 0.4918988347 - 0.9965084195 -19943.5878906250 0.4929248393 - 0.9963988662 -19942.6210937500 0.4939491451 - 0.9962875843 -19943.5742187500 0.4949643314 - 0.9961746931 -19941.9101562500 0.4959814250 - 0.9960600734 -19943.6035156250 0.4970025718 - 0.9959437251 -19941.8457031250 0.4980497956 - 0.9958257079 -19942.2500000000 0.4990743697 - 0.9957060218 -19943.5878906250 0.5000932217 - 0.9955846667 -19943.6308593750 0.5011140704 - 0.9954615831 -19944.7285156250 0.5021307468 - 0.9953368306 -19941.7089843750 0.5031524897 - 0.9952104092 -19942.8632812500 0.5042011142 - 0.9950822592 -19942.5839843750 0.5052191615 - 0.9949524403 -19943.3554687500 0.5062446594 - 0.9948209524 -19944.2500000000 0.5072553754 - 0.9946877360 -19942.8417968750 0.5082798004 - 0.9945528507 -19943.8359375000 0.5092973113 - 0.9944162965 -19942.8242187500 0.5103219151 - 0.9942780733 -19942.5078125000 0.5113668442 - 0.9941381216 -19943.2675781250 0.5123865604 - 0.9939965010 -19942.8515625000 0.5134028792 - 0.9938532114 -19943.0507812500 0.5144230723 - 0.9937081933 -19940.6269531250 0.5154420137 - 0.9935615063 -19942.2500000000 0.5164605379 - 0.9934131503 -19942.3242187500 0.5174834132 - 0.9932631254 -19943.5039062500 0.5185179710 - 0.9931113720 -19943.5175781250 0.5195414424 - 0.9929580092 -19943.4863281250 0.5205592513 - 0.9928029180 -19942.8515625000 0.5215817690 - 0.9926460981 -19941.1875000000 0.5226001143 - 0.9924876690 -19942.2343750000 0.5236136913 - 0.9923275113 -19942.9218750000 0.5246585011 - 0.9921656847 -19944.3886718750 0.5256772637 - 0.9920021892 -19941.1445312500 0.5266977549 - 0.9918369651 -19942.3730468750 0.5277084112 - 0.9916701317 -19941.8339843750 0.5287274718 - 0.9915015697 -19941.3535156250 0.5297464132 - 0.9913313389 -19942.4277343750 0.5307887793 - 0.9911593795 -19943.6835937500 0.5318048000 - 0.9909858108 -19941.2207031250 0.5328174829 - 0.9908105135 -19941.7597656250 0.5338338614 - 0.9906335473 -19942.5683593750 0.5348545313 - 0.9904549122 -19941.7070312500 0.5358705521 - 0.9902746081 -19941.9804687500 0.5368841290 - 0.9900926352 -19942.4511718750 0.5379201174 - 0.9899089336 -19942.4550781250 0.5389405489 - 0.9897236228 -19942.6601562500 0.5399541259 - 0.9895365834 -19942.7070312500 0.5409673452 - 0.9893478751 -19942.3320312500 0.5419811010 - 0.9891574979 -19942.9296875000 0.5429965854 - 0.9889654517 -19941.6035156250 0.5440123677 - 0.9887716770 -19943.0937500000 0.5450232625 - 0.9885762930 -19943.9824218750 0.5460628867 - 0.9883791804 -19941.9667968750 0.5470723510 - 0.9881803989 -19940.9277343750 0.5480915904 - 0.9879800081 -19942.4882812500 0.5490978956 - 0.9877778888 -19942.0234375000 0.5501163602 - 0.9875741005 -19941.2187500000 0.5511240959 - 0.9873685837 -19941.1464843750 0.5521396399 - 0.9871614575 -19941.9199218750 0.5531449318 - 0.9869526625 -19943.0664062500 0.5541855693 - 0.9867421985 -19941.6054687500 0.5551952124 - 0.9865300059 -19943.1601562500 0.5562082529 - 0.9863162041 -19941.8613281250 0.5572148561 - 0.9861006737 -19943.0058593750 0.5582271218 - 0.9858834743 -19940.2773437500 0.5592355132 - 0.9856646657 -19941.1679687500 0.5602481961 - 0.9854441285 -19942.4765625000 0.5612767935 - 0.9852219224 -19943.1523437500 0.5622888803 - 0.9849981070 -19940.3613281250 0.5632953644 - 0.9847725630 -19940.6308593750 0.5643005967 - 0.9845453501 -19942.1933593750 0.5653092861 - 0.9843164682 -19940.5078125000 0.5663179755 - 0.9840859771 -19940.3281250000 0.5673267841 - 0.9838537574 -19943.2519531250 0.5683535337 - 0.9836198688 -19943.2714843750 0.5693636537 - 0.9833843112 -19943.0078125000 0.5703681111 - 0.9831471443 -19942.5800781250 0.5713714361 - 0.9829082489 -19941.9824218750 0.5723763704 - 0.9826676846 -19941.6523437500 0.5733821988 - 0.9824255109 -19940.9511718750 0.5743862391 - 0.9821816087 -19941.3261718750 0.5753884315 - 0.9819360971 -19940.2792968750 0.5763924718 - 0.9816889167 -19941.8222656250 0.5774239898 - 0.9814400077 -19943.1406250000 0.5784217119 - 0.9811894894 -19943.6054687500 0.5794264674 - 0.9809373021 -19940.2988281250 0.5804257989 - 0.9806834459 -19943.1367187500 0.5814245343 - 0.9804279208 -19941.2617187500 0.5824282169 - 0.9801707268 -19940.7207031250 0.5834268928 - 0.9799118638 -19940.7343750000 0.5844269991 - 0.9796513915 -19941.3144531250 0.5854260325 - 0.9793891907 -19941.1679687500 0.5864252448 - 0.9791253805 -19941.1425781250 0.5874472857 - 0.9788599014 -19942.0976562500 0.5884477496 - 0.9785927534 -19942.0195312500 0.5894430280 - 0.9783239365 -19939.6679687500 0.5904445052 - 0.9780535102 -19940.3125000000 0.5914359093 - 0.9777813554 -19939.8886718750 0.5924354196 - 0.9775075912 -19941.3261718750 0.5934305191 - 0.9772321582 -19941.8593750000 0.5944512486 - 0.9769550562 -19941.8906250000 0.5954470038 - 0.9766762853 -19941.6386718750 0.5964419246 - 0.9763959050 -19942.0273437500 0.5974315405 - 0.9761137962 -19941.7714843750 0.5984292626 - 0.9758300781 -19940.4628906250 0.5994195938 - 0.9755447507 -19942.3261718750 0.6004102826 - 0.9752576947 -19940.1933593750 0.6014034152 - 0.9749690294 -19941.4140625000 0.6024219990 - 0.9746786952 -19942.5527343750 0.6034089327 - 0.9743866920 -19942.0800781250 0.6044020653 - 0.9740930796 -19939.4199218750 0.6053904295 - 0.9737977982 -19942.0527343750 0.6063783169 - 0.9735008478 -19941.0742187500 0.6073671579 - 0.9732022285 -19941.1562500000 0.6083514094 - 0.9729020000 -19942.2304687500 0.6093405485 - 0.9726001024 -19941.4121093750 0.6103290319 - 0.9722965956 -19940.8828125000 0.6113122106 - 0.9719914198 -19941.2890625000 0.6122976542 - 0.9716845751 -19941.0332031250 0.6132851243 - 0.9713760614 -19940.7421875000 0.6142665744 - 0.9710659385 -19940.9882812500 0.6152516603 - 0.9707541466 -19939.2539062500 0.6162611246 - 0.9704407454 -19941.1015625000 0.6172440052 - 0.9701256752 -19940.0683593750 0.6182259321 - 0.9698089957 -19939.4707031250 0.6192082763 - 0.9694906473 -19939.6855468750 0.6201882362 - 0.9691706300 -19941.5390625000 0.6211704612 - 0.9688490033 -19940.5058593750 0.6221455932 - 0.9685257077 -19940.4960937500 0.6231278777 - 0.9682007432 -19940.1914062500 0.6241337657 - 0.9678741693 -19941.1367187500 0.6251096129 - 0.9675459862 -19940.6484375000 0.6260873079 - 0.9672161341 -19941.4199218750 0.6270651221 - 0.9668846726 -19939.9199218750 0.6280391216 - 0.9665515423 -19939.2519531250 0.6290163994 - 0.9662167430 -19940.8457031250 0.6300159693 - 0.9658803344 -19941.2968750000 0.6309912801 - 0.9655423164 -19939.7832031250 0.6319649220 - 0.9652026296 -19940.2539062500 0.6329381466 - 0.9648613334 -19941.0312500000 0.6339088678 - 0.9645183682 -19941.5078125000 0.6348812580 - 0.9641737342 -19940.1992187500 0.6358523965 - 0.9638275504 -19939.4921875000 0.6368224025 - 0.9634796977 -19939.9511718750 0.6377901435 - 0.9631301761 -19941.4980468750 0.6387603879 - 0.9627790451 -19940.4492187500 0.6397282481 - 0.9624263048 -19940.7890625000 0.6406969428 - 0.9620719552 -19939.7773437500 0.6416623592 - 0.9617159367 -19940.0820312500 0.6426285505 - 0.9613582492 -19939.0097656250 0.6435933113 - 0.9609989524 -19938.7226562500 0.6445593238 - 0.9606380463 -19938.8144531250 0.6455217600 - 0.9602755308 -19939.1816406250 0.6464869380 - 0.9599113464 -19939.1660156250 0.6474472880 - 0.9595455527 -19939.1718750000 0.6484117508 - 0.9591781497 -19938.8359375000 0.6493730545 - 0.9588091373 -19937.9335937500 0.6503332257 - 0.9584384561 -19938.9179687500 0.6513199806 - 0.9580661654 -19939.5683593750 0.6522805095 - 0.9576922059 -19938.8671875000 0.6532385349 - 0.9573166966 -19938.7851562500 0.6541967988 - 0.9569395185 -19941.1347656250 0.6551820636 - 0.9565607309 -19939.9394531250 0.6561378837 - 0.9561803341 -19941.2890625000 0.6570948958 - 0.9557982683 -19940.9628906250 0.6580767035 - 0.9554146528 -19940.4394531250 0.6590299606 - 0.9550293684 -19940.1582031250 0.6599839330 - 0.9546424747 -19939.9257812500 0.6609652042 - 0.9542539716 -19941.8925781250 0.6619165540 - 0.9538637996 -19942.8906250000 0.6628692746 - 0.9534720778 -19940.9414062500 0.6638188362 - 0.9530787468 -19940.5878906250 0.6647698879 - 0.9526837468 -19940.5781250000 0.6657186151 - 0.9522871375 -19941.0742187500 0.6666667461 - 0.9518889189 -19940.6542968750 0.6676139235 - 0.9514890909 -19940.0996093750 0.6685335636 - 0.9510877132 -19940.0820312500 0.6694788337 - 0.9506846666 -19938.9746093750 0.6703958511 - 0.9502799511 -19937.2324218750 0.6713405848 - 0.9498736858 -19936.8066406250 0.6722573638 - 0.9494658113 -19935.3417968750 0.6731709242 - 0.9490563273 -19935.4902343750 0.6740861535 - 0.9486452341 -19934.3378906250 0.6749703288 - 0.9482325315 -19932.3906250000 0.6758841276 - 0.9478182197 -19931.0878906250 0.6767676473 - 0.9474022985 -19929.4375000000 0.6776780486 - 0.9469847679 -19928.0468750000 0.6785605550 - 0.9465656281 -19926.3574218750 0.6794692874 - 0.9461448789 -19925.1835937500 0.6803500056 - 0.9457225204 -19921.9296875000 0.6812288761 - 0.9452986121 -19921.7578125000 0.6821361184 - 0.9448730350 -19920.2792968750 0.6830136776 - 0.9444459081 -19919.5351562500 0.6839199066 - 0.9440171719 -19915.2187500000 0.6847960353 - 0.9435868263 -19914.9726562500 0.6856995821 - 0.9431548715 -19914.6972656250 0.6866022348 - 0.9427213073 -19913.2089843750 0.6875050664 - 0.9422861338 -19911.1640625000 0.6884055734 - 0.9418494105 -19910.9140625000 0.6893358231 - 0.9414110780 -19912.5644531250 0.6902357936 - 0.9409711361 -19910.3105468750 0.6911624670 - 0.9405295849 -28890.9023437500 0.6944046021 - 0.9400864244 -28893.2460937500 0.6953427792 - 0.9396417141 -28891.6718750000 0.6962655187 - 0.9391953945 -28891.3281250000 0.6972015500 - 0.9387475252 -28893.6523437500 0.6981228590 - 0.9382979870 -28894.0625000000 0.6990418434 - 0.9378468990 -28894.5292968750 0.6999602318 - 0.9373942018 -28894.3339843750 0.7008785009 - 0.9369399548 -28898.1445312500 0.7017812729 - 0.9364840984 -28898.7753906250 0.7026970983 - 0.9360266328 -28899.4609375000 0.7035976052 - 0.9355676174 -28899.1406250000 0.7045111656 - 0.9351069927 -28902.5429687500 0.7054101825 - 0.9346447587 -28902.4296875000 0.7063075900 - 0.9341809750 -28904.7597656250 0.7072181106 - 0.9337156415 -28905.0351562500 0.7081134915 - 0.9332486391 -28906.8476562500 0.7090222239 - 0.9327801466 -28907.6152343750 0.7099158168 - 0.9323099852 -28908.3242187500 0.7108216882 - 0.9318382740 -28909.2246093750 0.7117134929 - 0.9313650131 -28908.7070312500 0.7126169801 - 0.9308901429 -28909.7851562500 0.7135192156 - 0.9304137230 -28910.6503906250 0.7144220471 - 0.9299356937 -28912.3964843750 0.7153357267 - 0.9294561148 -28912.4199218750 0.7162350416 - 0.9289749265 -28912.9902343750 0.7171458602 - 0.9284921885 -28912.8203125000 0.7180437446 - 0.9280079007 -28913.4726562500 0.7189523578 - 0.9275220037 -28912.8300781250 0.7198592424 - 0.9270344973 -28913.2812500000 0.7207667232 - 0.9265455008 -28913.8125000000 0.7216725349 - 0.9260548949 -28915.1894531250 0.7225769162 - 0.9255626798 -28914.0800781250 0.7234794497 - 0.9250689745 -28912.8867187500 0.7243815660 - 0.9245736599 -28912.8652343750 0.7252939343 - 0.9240767360 -28913.1914062500 0.7261939645 - 0.9235783219 -28913.4003906250 0.7270919681 - 0.9230782986 -28914.3535156250 0.7280010581 - 0.9225767255 -28912.3359375000 0.7288966775 - 0.9220735431 -28913.8710937500 0.7297916412 - 0.9215688705 -28911.6894531250 0.7306963801 - 0.9210625887 -28911.1523437500 0.7315877676 - 0.9205547571 -28912.9667968750 0.7324794531 - 0.9200453758 -28911.2441406250 0.7333691120 - 0.9195344448 -28910.4843750000 0.7342690825 - 0.9190219045 -28911.4042968750 0.7351562977 - 0.9185078144 -28912.2031250000 0.7360424995 - 0.9179922342 -28911.5195312500 0.7369275689 - 0.9174750447 -28912.2304687500 0.7378112674 - 0.9169563055 -28910.6738281250 0.7386928201 - 0.9164360166 -28910.7460937500 0.7395738363 - 0.9159141779 -28911.2382812500 0.7404543161 - 0.9153907299 -28912.5332031250 0.7413331866 - 0.9148657918 -28912.0390625000 0.7422108054 - 0.9143393040 -28913.1699218750 0.7430871725 - 0.9138112664 -28912.9121093750 0.7439624071 - 0.9132816792 -28913.5664062500 0.7448366284 - 0.9127504826 -28912.2851562500 0.7457089424 - 0.9122177958 -28911.2949218750 0.7465803623 - 0.9116835594 -28912.7949218750 0.7474513054 - 0.9111477733 -28913.7441406250 0.7483204007 - 0.9106104374 -28912.7363281250 0.7491877675 - 0.9100715518 -28911.9648437500 0.7500537038 - 0.9095311165 -28912.2421875000 0.7509200573 - 0.9089891911 -28912.8105468750 0.7517843843 - 0.9084456563 -28912.9003906250 0.7526473999 - 0.9079006314 -28911.8339843750 0.7535206676 - 0.9073540568 -28912.2089843750 0.7543809414 - 0.9068059325 -28913.1406250000 0.7552405000 - 0.9062562585 -28912.7851562500 0.7560984492 - 0.9057050347 -28913.4003906250 0.7569553256 - 0.9051523209 -28911.7089843750 0.7578096986 - 0.9045980573 -28912.5019531250 0.7586764097 - 0.9040422440 -28912.1816406250 0.7595289350 - 0.9034849405 -28913.7792968750 0.7603817582 - 0.9029260874 -28911.3164062500 0.7612318993 - 0.9023656845 -28911.5097656250 0.7620819211 - 0.9018037319 -28911.5058593750 0.7629305720 - 0.9012402892 -28912.9648437500 0.7637777925 - 0.9006752968 -28910.7617187500 0.7646237016 - 0.9001088142 -28912.5527343750 0.7654778361 - 0.8995407820 -28912.5468750000 0.7663219571 - 0.8989712000 -28912.9238281250 0.7671638131 - 0.8984001279 -28912.5156250000 0.7680047750 - 0.8978275061 -28912.6386718750 0.7688443065 - 0.8972533941 -28912.8457031250 0.7696832418 - 0.8966777325 -28913.9257812500 0.7705207467 - 0.8961005807 -28912.6113281250 0.7713571787 - 0.8955218792 -28912.4199218750 0.7721917033 - 0.8949416876 -28913.6250000000 0.7730256319 - 0.8943599463 -28911.1660156250 0.7738583088 - 0.8937767148 -28913.4296875000 0.7746897936 - 0.8931919336 -28913.8886718750 0.7755200267 - 0.8926056623 -28912.5820312500 0.7763475776 - 0.8920179009 -28912.2441406250 0.7771857977 - 0.8914285898 -28914.3203125000 0.7780122757 - 0.8908377886 -28911.6406250000 0.7788370848 - 0.8902454376 -28913.7441406250 0.7796613574 - 0.8896515965 -28913.2656250000 0.7804831862 - 0.8890562654 -28912.8457031250 0.7813047171 - 0.8884594440 -28913.4238281250 0.7821257710 - 0.8878610730 -28913.5390625000 0.7829436660 - 0.8872612119 -28912.1992187500 0.7837711573 - 0.8866598606 -28911.5917968750 0.7845878601 - 0.8860570192 -28911.8828125000 0.7854027152 - 0.8854526281 -28911.4394531250 0.7862167954 - 0.8848468065 -28913.0625000000 0.7870293856 - 0.8842394352 -28913.1484375000 0.7878409028 - 0.8836305737 -28912.7324218750 0.7886512876 - 0.8830201626 -28911.8066406250 0.7894692421 - 0.8824083209 -28912.8632812500 0.7902771235 - 0.8817949891 -28912.1660156250 0.7910832763 - 0.8811801076 -28911.4746093750 0.7918881178 - 0.8805637360 -28912.6718750000 0.7926932573 - 0.8799459338 -28914.3925781250 0.7934966683 - 0.8793265820 -28911.8085937500 0.7942973971 - 0.8787057400 -28915.1660156250 0.7950991988 - 0.8780834675 -28914.2656250000 0.7958972454 - 0.8774596453 -28913.0156250000 0.7966949344 - 0.8768343925 -28911.5625000000 0.7974998355 - 0.8762075901 -28912.6972656250 0.7982958555 - 0.8755793571 -28912.6718750000 0.7990905046 - 0.8749495745 -28912.8730468750 0.7998827100 - 0.8743183613 -28913.6035156250 0.8006750345 - 0.8736856580 -28914.0449218750 0.8014654517 - 0.8730514646 -28913.2304687500 0.8022541404 - 0.8724157810 -28914.6269531250 0.8030428886 - 0.8717786074 -28914.2890625000 0.8038304448 - 0.8711400032 -28911.6171875000 0.8046237230 - 0.8704999089 -28911.2382812500 0.8054071665 - 0.8698583245 -28913.3808593750 0.8061910272 - 0.8692152500 -28911.5410156250 0.8069726825 - 0.8685707450 -28911.7109375000 0.8077526093 - 0.8679247499 -28914.2031250000 0.8085330725 - 0.8672772646 -28914.0410156250 0.8093108535 - 0.8666282892 -28911.9785156250 0.8100943565 - 0.8659778833 -28911.3476562500 0.8108706474 - 0.8653259873 -28913.7910156250 0.8116451502 - 0.8646726608 -28913.1464843750 0.8124178052 - 0.8640178442 -28914.0488281250 0.8131899238 - 0.8633615375 -28912.6855468750 0.8139603734 - 0.8627038002 -28913.7324218750 0.8147287965 - 0.8620446324 -28912.4433593750 0.8155052662 - 0.8613839149 -28911.9472656250 0.8162727356 - 0.8607218266 -28912.0644531250 0.8170369864 - 0.8600582480 -28913.2988281250 0.8178018928 - 0.8593931794 -28913.9921875000 0.8185649514 - 0.8587266803 -28911.8046875000 0.8193268776 - 0.8580586910 -28912.8417968750 0.8200867176 - 0.8573892713 -28915.0117187500 0.8208470941 - 0.8567184210 -28914.3476562500 0.8216118217 - 0.8560460806 -28912.3105468750 0.8223686218 - 0.8553723097 -28913.6484375000 0.8231236935 - 0.8546971083 -28913.1640625000 0.8238785863 - 0.8540204167 -28914.1347656250 0.8246315718 - 0.8533422947 -28912.7460937500 0.8253834248 - 0.8526627421 -28913.6210937500 0.8261340261 - 0.8519817591 -28912.8046875000 0.8268834949 - 0.8512992859 -28913.3886718750 0.8276386857 - 0.8506153822 -28911.9921875000 0.8283851147 - 0.8499300480 -28913.7636718750 0.8291310072 - 0.8492432833 -28912.4335937500 0.8298751712 - 0.8485550284 -28911.8417968750 0.8306173086 - 0.8478654027 -28913.8300781250 0.8313603401 - 0.8471742868 -28913.3632812500 0.8321007490 - 0.8464817405 -28912.2031250000 0.8328459263 - 0.8457877636 -28912.1386718750 0.8335845470 - 0.8450923562 -28913.7871093750 0.8343212605 - 0.8443955183 -28912.1347656250 0.8350577950 - 0.8436972499 -28914.8496093750 0.8357906938 - 0.8429975510 -28913.5742187500 0.8365241885 - 0.8422964215 -28913.0195312500 0.8372621536 - 0.8415939212 -28911.6093750000 0.8379922509 - 0.8408899307 -28913.4804687500 0.8387208581 - 0.8401845098 -28914.0292968750 0.8394489884 - 0.8394776583 -28914.3906250000 0.8401759267 - 0.8387694359 -28914.1386718750 0.8409000635 - 0.8380597234 -28912.4335937500 0.8416318893 - 0.8373486400 -28912.7968750000 0.8423537612 - 0.8366361260 -28912.0195312500 0.8430762887 - 0.8359221816 -28913.3437500000 0.8437957764 - 0.8352068067 -28913.8457031250 0.8445152640 - 0.8344900608 -28913.7753906250 0.8452342749 - 0.8337718844 -28913.0546875000 0.8459504843 - 0.8330522776 -28913.9433593750 0.8466703892 - 0.8323312402 -28914.0097656250 0.8473837972 - 0.8316088319 -28913.3496093750 0.8480961919 - 0.8308849931 -28914.2089843750 0.8488079309 - 0.8301597834 -28913.7695312500 0.8495203853 - 0.8294331431 -28913.5000000000 0.8502289653 - 0.8287050724 -28913.1425781250 0.8509364128 - 0.8279756308 -28912.3320312500 0.8516472578 - 0.8272447586 -28915.4589843750 0.8523519635 - 0.8265124559 -28914.9960937500 0.8530568480 - 0.8257787824 -28913.9785156250 0.8537582755 - 0.8250437379 -28912.5156250000 0.8544602990 - 0.8243072629 -28912.3535156250 0.8551607728 - 0.8235694170 -28913.9667968750 0.8558633924 - 0.8228301406 -28913.1406250000 0.8565608859 - 0.8220894933 -28914.6171875000 0.8572581410 - 0.8213474751 -28913.1464843750 0.8579537272 - 0.8206040263 -28914.0742187500 0.8586466908 - 0.8198591471 -28914.2050781250 0.8593381643 - 0.8191129565 -28913.8281250000 0.8600355983 - 0.8183653355 -28912.5957031250 0.8607241511 - 0.8176163435 -28913.1699218750 0.8614138961 - 0.8168659806 -28915.3398437500 0.8620999455 - 0.8161141872 -28913.6230468750 0.8627857566 - 0.8153610229 -28912.2109375000 0.8634760976 - 0.8146064878 -28913.1796875000 0.8641609550 - 0.8138505816 -28913.8691406250 0.8648406267 - 0.8130933046 -28915.1328125000 0.8655232191 - 0.8123345971 -28914.4746093750 0.8662011027 - 0.8115745783 -28914.7324218750 0.8668796420 - 0.8108131289 -28913.1406250000 0.8675631285 - 0.8100503087 -28912.2734375000 0.8682373762 - 0.8092861772 -28914.3691406250 0.8689128160 - 0.8085206151 -28913.1347656250 0.8695843816 - 0.8077536821 -28913.7050781250 0.8702570200 - 0.8069853783 -28913.0957031250 0.8709266186 - 0.8062157631 -28913.9882812500 0.8716014028 - 0.8054447174 -28913.0097656250 0.8722680807 - 0.8046723008 -28914.7363281250 0.8729355931 - 0.8038985729 -28914.4648437500 0.8736006021 - 0.8031234741 -28913.9550781250 0.8742653131 - 0.8023469448 -28914.6875000000 0.8749264479 - 0.8015691638 -28913.8261718750 0.8755949140 - 0.8007899523 -28913.9824218750 0.8762534261 - 0.8000093699 -28913.1953125000 0.8769121766 - 0.7992274761 -28913.4921875000 0.8775692582 - 0.7984442115 -28915.2460937500 0.8782266974 - 0.7976595759 -28913.4765625000 0.8788856864 - 0.7968736291 -28912.7656250000 0.8795369267 - 0.7960863113 -28913.3417968750 0.8801921606 - 0.7952976227 -28911.5371093750 0.8808411956 - 0.7945075631 -28912.9277343750 0.8814921975 - 0.7937162519 -28914.2753906250 0.8821442723 - 0.7929235101 -28914.0566406250 0.8827922940 - 0.7921294570 -28914.8085937500 0.8834380507 - 0.7913340330 -28913.4589843750 0.8840825558 - 0.7905372977 -28915.0039062500 0.8847237825 - 0.7897391915 -28913.9472656250 0.8853724599 - 0.7889397740 -28912.6640625000 0.8860113025 - 0.7881390452 -28913.3535156250 0.8866501451 - 0.7873369455 -28913.8281250000 0.8872866631 - 0.7865335345 -28913.7246093750 0.8879248500 - 0.7857287526 -28914.3847656250 0.8885614276 - 0.7849226594 -28913.6992187500 0.8891981840 - 0.7841151953 -28912.4863281250 0.8898299336 - 0.7833064795 -28912.5937500000 0.8904605508 - 0.7824963927 -28913.5644531250 0.8910912871 - 0.7816849351 -28914.7089843750 0.8917222619 - 0.7808722258 -28914.3261718750 0.8923523426 - 0.7800581455 -28914.5625000000 0.8929773569 - 0.7792427540 -28914.1074218750 0.8936021328 - 0.7784260511 -28914.3847656250 0.8942245245 - 0.7776080370 -28915.1562500000 0.8948481679 - 0.7767887115 -28912.2070312500 0.8954721093 - 0.7759680748 -28913.8710937500 0.8960913420 - 0.7751460671 -28914.0312500000 0.8967083097 - 0.7743228078 -28914.9726562500 0.8973237872 - 0.7734981775 -28914.9765625000 0.8979407549 - 0.7726722956 -28913.8359375000 0.8985598087 - 0.7718450427 -28912.9433593750 0.8991707563 - 0.7710165381 -28914.2382812500 0.8997812271 - 0.7701866627 -28914.5996093750 0.9003930688 - 0.7693555355 -28914.2382812500 0.9010050893 - 0.7685230970 -28915.1035156250 0.9016115665 - 0.7676893473 -28914.0507812500 0.9022172689 - 0.7668542862 -28914.8359375000 0.9028242826 - 0.7660179138 -28915.6230468750 0.9034246206 - 0.7651802897 -28912.9042968750 0.9040297270 - 0.7643412948 -28915.4589843750 0.9046306014 - 0.7635010481 -28913.2011718750 0.9052306414 - 0.7626595497 -28913.3066406250 0.9058290124 - 0.7618166804 -28914.5058593750 0.9064237475 - 0.7609725595 -28912.5468750000 0.9070222974 - 0.7601271272 -28914.0214843750 0.9076162577 - 0.7592804432 -28914.6308593750 0.9082071185 - 0.7584324479 -28911.9960937500 0.9087994695 - 0.7575832009 -28914.8261718750 0.9093905687 - 0.7567325830 -28913.0625000000 0.9099811316 - 0.7558807731 -28913.9316406250 0.9105680585 - 0.7550276518 -28913.6914062500 0.9111518264 - 0.7541732192 -28914.1640625000 0.9117380977 - 0.7533175349 -28913.6601562500 0.9123239517 - 0.7524605989 -28913.8046875000 0.9129040837 - 0.7516023517 -28914.0781250000 0.9134831429 - 0.7507428527 -28914.2578125000 0.9140608907 - 0.7498820424 -28915.2949218750 0.9146401882 - 0.7490199804 -28914.8222656250 0.9152174592 - 0.7481566668 -28914.1191406250 0.9157908559 - 0.7472920418 -28913.2812500000 0.9163658619 - 0.7464262247 -28914.7734375000 0.9169368744 - 0.7455590963 -28913.8652343750 0.9175101519 - 0.7446907163 -28914.8789062500 0.9180788994 - 0.7438210249 -28914.1562500000 0.9186452031 - 0.7429501414 -28915.3417968750 0.9192137122 - 0.7420779467 -28913.7128906250 0.9197786450 - 0.7412045002 -28914.3398437500 0.9203426838 - 0.7403298020 -28913.9687500000 0.9209035635 - 0.7394538522 -28914.7304687500 0.9214630127 - 0.7385766506 -28914.7011718750 0.9220271111 - 0.7376982570 -28915.4882812500 0.9225848913 - 0.7368185520 -28914.3125000000 0.9231392145 - 0.7359375954 -28914.4453125000 0.9236944318 - 0.7350553870 -28914.8613281250 0.9242488742 - 0.7341719270 -28915.1210937500 0.9248027802 - 0.7332872152 -28913.8027343750 0.9253534675 - 0.7324013114 -28915.0761718750 0.9259023666 - 0.7315141559 -28913.4179687500 0.9264500737 - 0.7306257486 -28913.2949218750 0.9270012975 - 0.7297360897 -28914.6523437500 0.9275435209 - 0.7288451791 -28914.2460937500 0.9280867577 - 0.7279530764 -28914.7285156250 0.9286295772 - 0.7270597219 -28914.2187500000 0.9291722775 - 0.7261651158 -28914.2226562500 0.9297120571 - 0.7252692580 -28914.6738281250 0.9302474856 - 0.7243722081 -28914.2734375000 0.9307854176 - 0.7234739661 -28914.8046875000 0.9313239455 - 0.7225744128 -28914.3925781250 0.9318591952 - 0.7216737270 -28914.5839843750 0.9323844910 - 0.7207717299 -28915.4648437500 0.9329162836 - 0.7198685408 -28913.6152343750 0.9334502220 - 0.7189641595 -28913.6152343750 0.9339758754 - 0.7180585265 -28913.9277343750 0.9345035553 - 0.7171517015 -28915.8164062500 0.9350287914 - 0.7162436843 -28913.6074218750 0.9355545044 - 0.7153344154 -28914.5800781250 0.9360751510 - 0.7144238949 -28915.5234375000 0.9365937710 - 0.7135122418 -28914.6679687500 0.9371137023 - 0.7125993371 -28913.7441406250 0.9376347661 - 0.7116852403 -28912.7597656250 0.9381492138 - 0.7107698917 -28913.8164062500 0.9386649728 - 0.7098533511 -28914.2402343750 0.9391754866 - 0.7089356780 -28914.1347656250 0.9396908879 - 0.7080167532 -28915.3632812500 0.9402005672 - 0.7070965767 -28914.6640625000 0.9407086968 - 0.7061752677 -28914.4726562500 0.9412161708 - 0.7052527666 -28914.8730468750 0.9417230487 - 0.7043290138 -28913.5664062500 0.9422292113 - 0.7034041286 -28914.5253906250 0.9427329302 - 0.7024780512 -28913.8769531250 0.9432330132 - 0.7015507221 -28915.5019531250 0.9437318444 - 0.7006222606 -28914.8808593750 0.9442294836 - 0.6996925473 -28914.8066406250 0.9447270036 - 0.6987617016 -28914.6386718750 0.9452237487 - 0.6978296638 -28913.9980468750 0.9457174540 - 0.6968964338 -28913.9667968750 0.9462110400 - 0.6959620118 -28914.4355468750 0.9467024207 - 0.6950264573 -28912.3300781250 0.9471939802 - 0.6940897107 -28913.5332031250 0.9476819038 - 0.6931517124 -28914.9921875000 0.9481674433 - 0.6922126412 -28913.4648437500 0.9486511350 - 0.6912723184 -28912.6171875000 0.9491348863 - 0.6903308630 -28915.3281250000 0.9496207833 - 0.6893882155 -28914.7949218750 0.9501012564 - 0.6884444356 -28916.0644531250 0.9505767226 - 0.6874994636 -28913.5976562500 0.9510585666 - 0.6865532994 -28916.2968750000 0.9515353441 - 0.6856060028 -28913.9746093750 0.9520062804 - 0.6846575737 -28913.0878906250 0.9524845481 - 0.6837079525 -28914.1406250000 0.9529533386 - 0.6827571392 -28914.6289062500 0.9534243345 - 0.6818051934 -28915.6953125000 0.9538910389 - 0.6808521152 -28913.9160156250 0.9543604851 - 0.6798978448 -28914.5507812500 0.9548243284 - 0.6789424419 -28915.5449218750 0.9552896023 - 0.6779859066 -28913.1445312500 0.9557530880 - 0.6770282388 -28914.8671875000 0.9562159181 - 0.6760693789 -28914.7734375000 0.9566746950 - 0.6751093864 -28915.0312500000 0.9571300745 - 0.6741482019 -28913.0097656250 0.9575874805 - 0.6731859446 -28914.4316406250 0.9580453634 - 0.6722224951 -28914.3769531250 0.9584989548 - 0.6712579727 -28914.0800781250 0.9589533806 - 0.6702922583 -28914.6621093750 0.9594007134 - 0.6693254113 -28913.9648437500 0.9598510265 - 0.6683574319 -28915.8437500000 0.9602979422 - 0.6673883200 -28914.8515625000 0.9607464075 - 0.6664180756 -28912.6328125000 0.9611906409 - 0.6654466987 -28914.7890625000 0.9616286159 - 0.6644741893 -28913.0859375000 0.9620748758 - 0.6635006070 -28914.5390625000 0.9625141621 - 0.6625258327 -28914.4589843750 0.9629551768 - 0.6615499854 -28913.2343750000 0.9633866549 - 0.6605729461 -28915.1113281250 0.9638266563 - 0.6595948339 -28914.9550781250 0.9642607570 - 0.6586156487 -28914.8359375000 0.9646927118 - 0.6576352715 -28915.3457031250 0.9651241302 - 0.6566538215 -28912.8398437500 0.9655523300 - 0.6556712389 -28913.9628906250 0.9659818411 - 0.6546875238 -28914.1660156250 0.9664092660 - 0.6537027359 -28914.8808593750 0.9668364525 - 0.6527168155 -28913.8730468750 0.9672586918 - 0.6517298222 -28914.4882812500 0.9676815867 - 0.6507416964 -28914.5234375000 0.9681032300 - 0.6497524977 -28914.3847656250 0.9685190916 - 0.6487621665 -28914.8984375000 0.9689350724 - 0.6477707624 -28914.2148437500 0.9693583250 - 0.6467782259 -28914.1289062500 0.9697709680 - 0.6457846165 -28915.1093750000 0.9701849222 - 0.6447898746 -28915.3593750000 0.9705967307 - 0.6437940598 -28914.6210937500 0.9710087776 - 0.6427971721 -28915.0859375000 0.9714167118 - 0.6417992115 -28916.2265625000 0.9718230367 - 0.6408001184 -28914.5566406250 0.9722312689 - 0.6397999525 -28915.5605468750 0.9726350307 - 0.6387987137 -28915.2988281250 0.9730377793 - 0.6377964020 -28912.9394531250 0.9734380245 - 0.6367929578 -28913.0039062500 0.9738390446 - 0.6357884407 -28913.4960937500 0.9742398262 - 0.6347829103 -28913.9902343750 0.9746344686 - 0.6337762475 -28915.1269531250 0.9750298262 - 0.6327685118 -28913.6074218750 0.9754286408 - 0.6317597628 -28913.1542968750 0.9758194089 - 0.6307498813 -28914.2382812500 0.9762100577 - 0.6297389269 -28912.9511718750 0.9766023159 - 0.6287269592 -28914.0410156250 0.9769924283 - 0.6277138591 -28913.9062500000 0.9773778319 - 0.6266997457 -28914.2011718750 0.9777624607 - 0.6256845593 -28913.8769531250 0.9781527519 - 0.6246683002 -28912.8046875000 0.9785322547 - 0.6236509681 -28915.0800781250 0.9789127707 - 0.6226326227 -28912.9082031250 0.9792944193 - 0.6216132045 -28913.4589843750 0.9796750546 - 0.6205927134 -28914.9648437500 0.9800517559 - 0.6195711493 -28912.6718750000 0.9804314375 - 0.6185485721 -28913.5878906250 0.9808053374 - 0.6175249815 -28913.6347656250 0.9811777472 - 0.6165002584 -28913.7128906250 0.9815480709 - 0.6154745817 -28913.6894531250 0.9819188714 - 0.6144477725 -28913.8046875000 0.9822877645 - 0.6134200096 -28914.4453125000 0.9826557040 - 0.6123911142 -28916.0351562500 0.9830220342 - 0.6113612652 -28914.7949218750 0.9833887219 - 0.6103303432 -28914.8027343750 0.9837509990 - 0.6092983484 -28914.1328125000 0.9841150045 - 0.6082653999 -28914.9140625000 0.9844733477 - 0.6072313786 -28914.6250000000 0.9848340750 - 0.6061962843 -28913.3066406250 0.9851877689 - 0.6051602364 -28913.8886718750 0.9855496883 - 0.6041231155 -28913.4746093750 0.9859036207 - 0.6030849814 -28913.8261718750 0.9862604141 - 0.6020458341 -28913.7382812500 0.9866111279 - 0.6010056734 -28914.7167968750 0.9869606495 - 0.5999644399 -28914.1562500000 0.9873110056 - 0.5989222527 -28915.1250000000 0.9876628518 - 0.5978790522 -28914.9257812500 0.9880115390 - 0.5968347788 -28913.0195312500 0.9883559346 - 0.5957895517 -28915.2578125000 0.9886991978 - 0.5947432518 -28913.8652343750 0.9890432954 - 0.5936959982 -28913.9550781250 0.9893837571 - 0.5926477313 -28914.8691406250 0.9897242785 - 0.5915984511 -28913.9609375000 0.9900597334 - 0.5905481577 -28913.7734375000 0.9903983474 - 0.5894969106 -28914.9609375000 0.9907344580 - 0.5884445906 -28915.3789062500 0.9910735488 - 0.5873913169 -28915.1171875000 0.9914032221 - 0.5863370299 -28915.5781250000 0.9917353392 - 0.5852817893 -28914.2714843750 0.9920681119 - 0.5842255354 -28914.1367187500 0.9923981428 - 0.5831682682 -28913.6230468750 0.9927271605 - 0.5821099877 -28913.2050781250 0.9930499792 - 0.5810507536 -28915.0703125000 0.9933748841 - 0.5799905658 -28914.2734375000 0.9937004447 - 0.5789293647 -28913.6425781250 0.9940203428 - 0.5778672099 -28914.8691406250 0.9943404198 - 0.5768040419 -28914.7558593750 0.9946583509 - 0.5757398605 -28914.5410156250 0.9949755669 - 0.5746747851 -28913.6425781250 0.9952958226 - 0.5736086965 -28912.8496093750 0.9956100583 - 0.5725415945 -28914.1777343750 0.9959220290 - 0.5714735985 -28914.4550781250 0.9962334633 - 0.5704045892 -28914.6835937500 0.9965395927 - 0.5693346262 -28913.8496093750 0.9968491197 - 0.5682637095 -28915.2070312500 0.9971578717 - 0.5671917796 -28913.7929687500 0.9974625707 - 0.5661189556 -28914.2734375000 0.9977632761 - 0.5650451183 -28912.5449218750 0.9980698228 - 0.5639703274 -28914.2207031250 0.9983690977 - 0.5628946424 -28914.6113281250 0.9986692071 - 0.5618179440 -28914.3984375000 0.9989672303 - 0.5607402921 -28914.6093750000 0.9992622733 - 0.5596616864 -28913.5683593750 0.9995529056 - 0.5585821867 -28913.2597656250 0.9998500943 - 0.5575016737 -28915.5937500000 1.0001369715 - 0.5564202666 -28914.8242187500 1.0004281998 - 0.5553378463 -28915.3867187500 1.0007138252 - 0.5542545319 -28915.1210937500 1.0010038614 - 0.5531703234 -28914.1328125000 1.0012888908 - 0.5520851016 -28913.8320312500 1.0015689135 - 0.5509989858 -28915.8183593750 1.0018469095 - 0.5499119163 -28913.7031250000 1.0021275282 - 0.5488238931 -28914.9707031250 1.0024005175 - 0.5477349758 -28914.8632812500 1.0026782751 - 0.5466451645 -28913.0761718750 1.0029511452 - 0.5455543399 -28915.3085937500 1.0032209158 - 0.5444626808 -28914.1035156250 1.0034865141 - 0.5433700085 -28914.1328125000 1.0037599802 - 0.5422765017 -28914.4140625000 1.0040252209 - 0.5411819816 -28914.1992187500 1.0042870045 - 0.5400866270 -28915.2343750000 1.0045458078 - 0.5389903188 -28914.2363281250 1.0048073530 - 0.5378931165 -28914.1894531250 1.0050643682 - 0.5367949605 -28914.3105468750 1.0053169727 - 0.5356959105 -28914.8925781250 1.0055760145 - 0.5345959663 -28914.2070312500 1.0058262348 - 0.5334951282 -28914.4863281250 1.0060713291 - 0.5323933959 -28914.4843750000 1.0063173771 - 0.5312907100 -28914.9882812500 1.0065647364 - 0.5301871300 -28914.2539062500 1.0068067312 - 0.5290827155 -28913.2851562500 1.0070456266 - 0.5279773474 -28914.5195312500 1.0072854757 - 0.5268710852 -28914.2539062500 1.0075200796 - 0.5257639289 -28914.4101562500 1.0077505112 - 0.5246558785 -28914.2695312500 1.0079845190 - 0.5235469937 -28914.0585937500 1.0082134008 - 0.5224371552 -28914.8300781250 1.0084384680 - 0.5213264227 -28913.5742187500 1.0086615086 - 0.5202148557 -28914.8535156250 1.0088851452 - 0.5191023946 -28913.8300781250 1.0091018677 - 0.5179890394 -28914.1875000000 1.0093200207 - 0.5168748498 -28914.3261718750 1.0095340014 - 0.5157597065 -28913.9238281250 1.0097430944 - 0.5146437287 -28913.2031250000 1.0099524260 - 0.5135269165 -28915.1406250000 1.0101599693 - 0.5124092102 -28913.5664062500 1.0103662014 - 0.5112906098 -28913.6328125000 1.0105631351 - 0.5101711750 -28914.8203125000 1.0107636452 - 0.5090508461 -28914.2343750000 1.0109628439 - 0.5079296231 -28916.0625000000 1.0111513138 - 0.5068076253 -28914.7441406250 1.0113452673 - 0.5056847334 -28914.3066406250 1.0115333796 - 0.5045609474 -28914.6386718750 1.0117193460 - 0.5034363270 -28914.7714843750 1.0118976831 - 0.5023108721 -28913.2207031250 1.0120782852 - 0.5011845231 -28915.2480468750 1.0122556686 - 0.5000573993 -28913.9023437500 1.0124348402 - 0.4989293516 -28914.3359375000 1.0126048326 - 0.4978004992 -28913.9804687500 1.0127698183 - 0.4966707826 -28913.7949218750 1.0129377842 - 0.4955402315 -28913.7460937500 1.0131009817 - 0.4944088459 -28915.3378906250 1.0132616758 - 0.4932766259 -28912.4121093750 1.0134207010 - 0.4921435416 -28913.5898437500 1.0135709047 - 0.4910096526 -28912.8339843750 1.0137238503 - 0.4898749292 -28914.3476562500 1.0138731003 - 0.4887393713 -28912.5781250000 1.0140184164 - 0.4876029789 -28914.5136718750 1.0141608715 - 0.4864657521 -28915.2929687500 1.0143027306 - 0.4853277206 -28913.9882812500 1.0144398212 - 0.4841888547 -28913.3593750000 1.0145744085 - 0.4830491543 -28912.6328125000 1.0147037506 - 0.4819086492 -28914.6894531250 1.0148310661 - 0.4807673395 -28915.8515625000 1.0149590969 - 0.4796251953 -28914.8320312500 1.0150814056 - 0.4784822464 -28914.5546875000 1.0152016878 - 0.4773384929 -28913.6132812500 1.0153156519 - 0.4761939049 -28914.2636718750 1.0154277086 - 0.4750485420 -28913.0234375000 1.0155366659 - 0.4739023447 -28914.2363281250 1.0156491995 - 0.4727553725 -28914.0605468750 1.0157505274 - 0.4716075659 -28915.2910156250 1.0158528090 - 0.4704589844 -28914.2988281250 1.0159479380 - 0.4693095982 -28913.8476562500 1.0160440207 - 0.4681594372 -28913.6777343750 1.0161366463 - 0.4670084417 -28914.4609375000 1.0162227154 - 0.4658566713 -28912.8789062500 1.0163103342 - 0.4647041261 -28913.0937500000 1.0163896084 - 0.4635507762 -28914.3867187500 1.0164749622 - 0.4623966515 -28913.1699218750 1.0165497065 - 0.4612417519 -28913.5566406250 1.0166252851 - 0.4600860476 -28914.6738281250 1.0166946650 - 0.4589295685 -28913.0722656250 1.0167636871 - 0.4577723145 -28913.8261718750 1.0168310404 - 0.4566142857 -28913.7832031250 1.0168902874 - 0.4554554820 -28912.4296875000 1.0169472694 - 0.4542959034 -28913.2597656250 1.0170021057 - 0.4531355500 -28913.0996093750 1.0170574188 - 0.4519744515 -28913.8398437500 1.0171123743 - 0.4508125484 -28912.6660156250 1.0171525478 - 0.4496499002 -28914.3476562500 1.0172009468 - 0.4484865069 -28912.1542968750 1.0172356367 - 0.4473223388 -28913.5332031250 1.0172768831 - 0.4461573958 -28914.8281250000 1.0173146725 - 0.4449917376 -28912.4062500000 1.0173465014 - 0.4438252747 -28914.3535156250 1.0173759460 - 0.4426580966 -28914.4257812500 1.0174024105 - 0.4414901733 -28914.3183593750 1.0174251795 - 0.4403214753 -28912.4101562500 1.0174440145 - 0.4391520321 -28913.1171875000 1.0174639225 - 0.4379818439 -28913.5839843750 1.0174791813 - 0.4368109405 -28912.5019531250 1.0174893141 - 0.4356392622 -28913.3300781250 1.0175002813 - 0.4344668686 -28913.9238281250 1.0175091028 - 0.4332937300 -28913.3671875000 1.0175150633 - 0.4321198463 -28914.2285156250 1.0175113678 - 0.4309452474 -28913.8906250000 1.0175113678 - 0.4297699034 -28913.1386718750 1.0175052881 - 0.4285938442 -28913.6601562500 1.0174947977 - 0.4274170399 -28911.7382812500 1.0174838305 - 0.4262395501 -28913.3808593750 1.0174758434 - 0.4250612855 -28914.1894531250 1.0174566507 - 0.4238823354 -28912.7812500000 1.0174371004 - 0.4227026701 -28914.1738281250 1.0174189806 - 0.4215222597 -28911.8222656250 1.0173929930 - 0.4203411639 -28914.1386718750 1.0173652172 - 0.4191593230 -28912.3945312500 1.0173361301 - 0.4179767966 -28912.7031250000 1.0173063278 - 0.4167935550 -28914.2871093750 1.0172683001 - 0.4156095982 -28912.7304687500 1.0172309875 - 0.4144249558 -28913.3828125000 1.0171970129 - 0.4132395983 -28912.9960937500 1.0171524286 - 0.4120535553 -28912.8515625000 1.0171066523 - 0.4108667970 -28914.3261718750 1.0170595646 - 0.4096793532 -28914.8359375000 1.0170094967 - 0.4084911942 -28913.5585937500 1.0169581175 - 0.4073023498 -28914.4531250000 1.0169001818 - 0.4061128199 -28913.6230468750 1.0168452263 - 0.4049226046 -28914.0722656250 1.0167865753 - 0.4037317038 -28914.6484375000 1.0167226791 - 0.4025401175 -28914.5820312500 1.0166568756 - 0.4013478458 -28914.2031250000 1.0165899992 - 0.4001548886 -28914.1093750000 1.0165218115 - 0.3989612758 -28912.5742187500 1.0164424181 - 0.3977669477 -28913.2929687500 1.0163699389 - 0.3965719640 -28913.7832031250 1.0162971020 - 0.3953763247 -28913.6933593750 1.0162160397 - 0.3941799998 -28913.0195312500 1.0161341429 - 0.3929830194 -28913.5820312500 1.0160514116 - 0.3917853534 -28913.1738281250 1.0159634352 - 0.3905870318 -28913.3203125000 1.0158756971 - 0.3893880546 -28912.0214843750 1.0157821178 - 0.3881883919 -28914.5273437500 1.0156891346 - 0.3869881034 -28913.1562500000 1.0155955553 - 0.3857871294 -28912.7050781250 1.0154958963 - 0.3845855296 -28914.0351562500 1.0153977871 - 0.3833832741 -28911.3457031250 1.0152908564 - 0.3821803331 -28913.9003906250 1.0151933432 - 0.3809767962 -28912.7675781250 1.0150828362 - 0.3797725737 -28913.0917968750 1.0149762630 - 0.3785677254 -28912.7070312500 1.0148599148 - 0.3773622215 -28913.1972656250 1.0147531033 - 0.3761560917 -28912.7988281250 1.0146367550 - 0.3749493062 -28913.9980468750 1.0145177841 - 0.3737419248 -28911.9628906250 1.0143997669 - 0.3725338578 -28913.2558593750 1.0142757893 - 0.3713251948 -28913.2421875000 1.0141566992 - 0.3701159060 -28912.1054687500 1.0140267611 - 0.3689059615 -28913.6328125000 1.0139014721 - 0.3676954210 -28912.6113281250 1.0137680769 - 0.3664842248 -28912.4765625000 1.0136355162 - 0.3652724326 -28914.0683593750 1.0135046244 - 0.3640600145 -28913.7226562500 1.0133695602 - 0.3628469706 -28912.4511718750 1.0132313967 - 0.3616333306 -28914.4550781250 1.0130903721 - 0.3604190648 -28913.5312500000 1.0129470825 - 0.3592041731 -28912.5253906250 1.0128053427 - 0.3579886854 -28913.6699218750 1.0126591921 - 0.3567726016 -28913.6132812500 1.0125112534 - 0.3555559218 -28912.7441406250 1.0123616457 - 0.3543386161 -28912.7148437500 1.0122127533 - 0.3531207144 -28912.4667968750 1.0120556355 - 0.3519022167 -28915.5937500000 1.0119047165 - 0.3506831229 -28912.0410156250 1.0117460489 - 0.3494634330 -28913.5214843750 1.0115827322 - 0.3482431471 -28913.8398437500 1.0114266872 - 0.3470222652 -28914.3203125000 1.0112642050 - 0.3458008170 -28911.3867187500 1.0110944510 - 0.3445787430 -28912.4179687500 1.0109302998 - 0.3433561325 -28913.6738281250 1.0107628107 - 0.3421328962 -28912.5781250000 1.0105940104 - 0.3409091234 -28912.7167968750 1.0104241371 - 0.3396847546 -28911.9433593750 1.0102496147 - 0.3384597898 -28911.9667968750 1.0100730658 - 0.3372342587 -28912.2031250000 1.0098952055 - 0.3360081911 -28913.0058593750 1.0097185373 - 0.3347815275 -28913.3066406250 1.0095367432 - 0.3335542977 -28912.7773437500 1.0093526840 - 0.3323265016 -28914.4843750000 1.0091687441 - 0.3310981393 -28912.1269531250 1.0089877844 - 0.3298692107 -28914.2363281250 1.0088013411 - 0.3286397159 -28912.8222656250 1.0086116791 - 0.3274096847 -28912.6132812500 1.0084174871 - 0.3261790872 -28912.3476562500 1.0082262754 - 0.3249479532 -28913.0019531250 1.0080324411 - 0.3237162530 -28913.5976562500 1.0078382492 - 0.3224840164 -28913.5742187500 1.0076398849 - 0.3212512136 -28912.9394531250 1.0074384212 - 0.3200178742 -28912.3554687500 1.0072423220 - 0.3187839985 -28912.2714843750 1.0070383549 - 0.3175495863 -28911.5546875000 1.0068347454 - 0.3163146079 -28913.3535156250 1.0066287518 - 0.3150791228 -28913.9785156250 1.0064206123 - 0.3138431013 -28914.0527343750 1.0062134266 - 0.3126065433 -28912.1484375000 1.0060046911 - 0.3113694489 -28914.3671875000 1.0057934523 - 0.3101318181 -28912.8085937500 1.0055792332 - 0.3088936806 -28910.8945312500 1.0053610802 - 0.3076550066 -28912.6191406250 1.0051469803 - 0.3064158261 -28913.1953125000 1.0049270391 - 0.3051761091 -28912.5371093750 1.0047059059 - 0.3039358854 -28912.4609375000 1.0044915676 - 0.3026951551 -28913.7929687500 1.0042682886 - 0.3014538884 -28912.5898437500 1.0040417910 - 0.3002121150 -28912.2480468750 1.0038145781 - 0.2989698350 -28913.2656250000 1.0035908222 - 0.2977270484 -28913.9453125000 1.0033601522 - 0.2964837849 -28913.5800781250 1.0031306744 - 0.2952399850 -28913.3203125000 1.0028976202 - 0.2939956784 -28912.5410156250 1.0026639700 - 0.2927508950 -28912.1445312500 1.0024348497 - 0.2915056050 -28911.7851562500 1.0021950006 - 0.2902598381 -28913.7500000000 1.0019583702 - 0.2890135646 -28912.8886718750 1.0017188787 - 0.2877668142 -28913.2480468750 1.0014785528 - 0.2865195572 -28912.7695312500 1.0012360811 - 0.2852718234 -28913.1679687500 1.0009921789 - 0.2840236127 -28912.8496093750 1.0007462502 - 0.2827748954 -28913.8671875000 1.0005018711 - 0.2815257311 -28913.5429687500 1.0002536774 - 0.2802760601 -28912.2871093750 1.0000029802 - 0.2790259421 -28911.1367187500 0.9997524619 - 0.2777753174 -28913.1445312500 0.9995024204 - 0.2765242457 -28911.9589843750 0.9992470145 - 0.2752726972 -28914.4414062500 0.9989952445 - 0.2740207016 -28913.1679687500 0.9987352490 - 0.2727682292 -28913.0097656250 0.9984796643 - 0.2715152800 -28913.3750000000 0.9982202053 - 0.2702618837 -28913.0742187500 0.9979598522 - 0.2690080106 -28911.8476562500 0.9976984859 - 0.2677537203 -28911.9062500000 0.9974326491 - 0.2664989531 -28913.8769531250 0.9971688390 - 0.2652437091 -28913.9726562500 0.9969050884 - 0.2639880478 -28913.5507812500 0.9966349602 - 0.2627319396 -28911.8359375000 0.9963665009 - 0.2614753842 -28913.3046875000 0.9960982800 - 0.2602183819 -28911.8789062500 0.9958260655 - 0.2589609325 -28913.6152343750 0.9955543280 - 0.2577030361 -28912.0878906250 0.9952778816 - 0.2564447224 -28911.8769531250 0.9950031638 - 0.2551859617 -28911.4824218750 0.9947260618 - 0.2539267540 -28913.6777343750 0.9944489002 - 0.2526671588 -28910.6660156250 0.9941678643 - 0.2514070868 -28911.5625000000 0.9938837886 - 0.2501466274 -28912.5058593750 0.9936021566 - 0.2488857210 -28911.4550781250 0.9933176637 - 0.2476243973 -28912.1738281250 0.9930326939 - 0.2463626564 -28913.1894531250 0.9927485585 - 0.2451004982 -28911.6679687500 0.9924593568 - 0.2438379228 -28912.8515625000 0.9921698570 - 0.2425749451 -28911.7187500000 0.9918788671 - 0.2413115352 -28913.2265625000 0.9915866256 - 0.2400477380 -28914.4179687500 0.9912964702 - 0.2387835234 -28912.7070312500 0.9909974933 - 0.2375189066 -28913.4765625000 0.9907015562 - 0.2362538725 -28913.1718750000 0.9904052615 - 0.2349884510 -28912.7812500000 0.9901069999 - 0.2337226272 -28912.7343750000 0.9898052216 - 0.2324564159 -28912.0566406250 0.9895044565 - 0.2311898023 -28912.7714843750 0.9892041087 - 0.2299228013 -28912.3242187500 0.9888976216 - 0.2286554128 -28911.8222656250 0.9885897636 - 0.2273876220 -28912.1347656250 0.9882848263 - 0.2261194587 -28913.0429687500 0.9879777431 - 0.2248509079 -28911.7656250000 0.9876692295 - 0.2235819697 -28912.7226562500 0.9873582125 - 0.2223126590 -28912.6269531250 0.9870442748 - 0.2210429758 -28911.9941406250 0.9867314696 - 0.2197729200 -28912.3691406250 0.9864181876 - 0.2185024768 -28912.5664062500 0.9861027598 - 0.2172316760 -28913.9453125000 0.9857870340 - 0.2159605026 -28912.0468750000 0.9854654074 - 0.2146889567 -28910.3769531250 0.9851440191 - 0.2134170532 -28911.7285156250 0.9848238230 - 0.2121447921 -28912.6230468750 0.9845023155 - 0.2108721733 -28913.5156250000 0.9841803312 - 0.2095991820 -28912.4433593750 0.9838523269 - 0.2083258480 -28912.6230468750 0.9835247993 - 0.2070521563 -28911.5312500000 0.9831979275 - 0.2057781219 -28912.1015625000 0.9828697443 - 0.2045037299 -28914.1621093750 0.9825411439 - 0.2032289803 -28912.7324218750 0.9822059870 - 0.2019539028 -28911.9472656250 0.9818744659 - 0.2006784827 -28912.9121093750 0.9815414548 - 0.1994027197 -28913.9218750000 0.9812052250 - 0.1981266141 -28913.7792968750 0.9808669090 - 0.1968501657 -28912.0371093750 0.9805297852 - 0.1955734044 -28910.3496093750 0.9801890850 - 0.1942963004 -28911.9882812500 0.9798502922 - 0.1930188537 -28912.2324218750 0.9795032144 - 0.1917410940 -28912.0546875000 0.9791629910 - 0.1904630214 -28913.9492187500 0.9788191319 - 0.1891846061 -28911.9609375000 0.9784705639 - 0.1879058778 -28912.4960937500 0.9781249166 - 0.1866268218 -28912.6601562500 0.9777758718 - 0.1853474677 -28913.2656250000 0.9774270058 - 0.1840677857 -28912.7246093750 0.9770730138 - 0.1827877909 -28912.3828125000 0.9767215252 - 0.1815074980 -28912.5019531250 0.9763678312 - 0.1802268773 -28912.5175781250 0.9760116935 - 0.1789459735 -28913.1054687500 0.9756546021 - 0.1776647568 -28913.3359375000 0.9752976894 - 0.1763832271 -28911.4160156250 0.9749371409 - 0.1751014143 -28912.2500000000 0.9745777249 - 0.1738193035 -28912.7636718750 0.9742162228 - 0.1725368947 -28913.3203125000 0.9738531113 - 0.1712541878 -28911.7968750000 0.9734885693 - 0.1699711978 -28912.6855468750 0.9731246233 - 0.1686879098 -28912.2617187500 0.9727537036 - 0.1674043536 -28913.0136718750 0.9723865390 - 0.1661204994 -28914.0488281250 0.9720178246 - 0.1648363620 -28912.4531250000 0.9716449976 - 0.1635519564 -28912.0937500000 0.9712750316 - 0.1622672677 -28913.0625000000 0.9709017277 - 0.1609822959 -28912.2187500000 0.9705239534 - 0.1596970707 -28914.1621093750 0.9701490402 - 0.1584115624 -28913.1621093750 0.9697729349 - 0.1571257859 -28911.8613281250 0.9693911076 - 0.1558397412 -28913.5800781250 0.9690135121 - 0.1545534283 -28912.5234375000 0.9686288834 - 0.1532668620 -28912.8125000000 0.9682489634 - 0.1519800425 -28912.4511718750 0.9678656459 - 0.1506929547 -28914.0253906250 0.9674782753 - 0.1494056135 -28913.6640625000 0.9670900106 - 0.1481180191 -28912.5468750000 0.9667012095 - 0.1468301713 -28912.0625000000 0.9663136005 - 0.1455420703 -28911.7089843750 0.9659240842 - 0.1442537308 -28912.6015625000 0.9655302763 - 0.1429651380 -28914.7695312500 0.9651380777 - 0.1416763216 -28913.8828125000 0.9647415280 - 0.1403872520 -28912.2421875000 0.9643465281 - 0.1390979439 -28912.0273437500 0.9639501572 - 0.1378083974 -28913.2949218750 0.9635520577 - 0.1365186125 -28912.5507812500 0.9631527662 - 0.1352286041 -28911.9707031250 0.9627476931 - 0.1339383721 -28912.5156250000 0.9623462558 - 0.1326479167 -28912.2402343750 0.9619407058 - 0.1313572228 -28913.8496093750 0.9615383148 - 0.1300663054 -28912.4492187500 0.9611323476 - 0.1287751794 -28912.7128906250 0.9607235193 - 0.1274838299 -28913.5937500000 0.9603139162 - 0.1261922568 -28912.1445312500 0.9599022865 - 0.1249004751 -28913.4277343750 0.9594924450 - 0.1236084849 -28912.3242187500 0.9590770006 - 0.1223162860 -28911.4042968750 0.9586637020 - 0.1210238710 -28913.0996093750 0.9582452774 - 0.1197312623 -28913.6367187500 0.9578291774 - 0.1184384376 -28912.8886718750 0.9574107528 - 0.1171454191 -28912.7812500000 0.9569911957 - 0.1158522069 -28911.5585937500 0.9565706253 - 0.1145587936 -28912.8359375000 0.9561472535 - 0.1132651865 -28912.8710937500 0.9557236433 - 0.1119713858 -28913.1230468750 0.9552980661 - 0.1106773913 -28912.7812500000 0.9548733830 - 0.1093832180 -28914.2871093750 0.9544432759 - 0.1080888510 -28911.6015625000 0.9540145397 - 0.1067943051 -28912.5742187500 0.9535836577 - 0.1054995805 -28913.2617187500 0.9531514645 - 0.1042046770 -28912.1191406250 0.9527170062 - 0.1029095948 -28912.0156250000 0.9522824287 - 0.1016143337 -28912.3789062500 0.9518464208 - 0.1003189087 -28913.8925781250 0.9514102936 - 0.0990233049 -28911.5019531250 0.9509712458 - 0.0977275372 -28914.1015625000 0.9505318403 - 0.0964316055 -28911.9902343750 0.9500878453 - 0.0951355100 -28913.7832031250 0.9496463537 - 0.0938392505 -28911.5039062500 0.9492017627 - 0.0925428346 -28914.4707031250 0.9487563968 - 0.0912462622 -28912.9960937500 0.9483095407 - 0.0899495333 -28913.0175781250 0.9478611946 - 0.0886526555 -28912.3847656250 0.9474128485 - 0.0873556212 -28914.2656250000 0.9469612241 - 0.0860584453 -28914.1835937500 0.9465085268 - 0.0847611129 -28912.9199218750 0.9460539222 - 0.0834636465 -28912.4414062500 0.9456009865 - 0.0821660385 -28914.5390625000 0.9451437593 - 0.0808682889 -28913.8222656250 0.9446870685 - 0.0795703977 -28912.5039062500 0.9442269802 - 0.0782723799 -28912.3730468750 0.9437685013 - 0.0769742206 -28912.1269531250 0.9433053732 - 0.0756759420 -28912.9609375000 0.9428403378 - 0.0743775219 -28913.2011718750 0.9423772693 - 0.0730789825 -28913.5000000000 0.9419113398 - 0.0717803240 -28913.7792968750 0.9414449930 - 0.0704815388 -28913.2050781250 0.9409759641 - 0.0691826344 -28912.5703125000 0.9405068755 - 0.0678836107 -28912.4042968750 0.9400346279 - 0.0665844753 -28914.6679687500 0.9395609498 - 0.0652852207 -28913.8574218750 0.9390873909 - 0.0639858618 -28913.2109375000 0.9386113882 - 0.0626863912 -28912.3828125000 0.9381353259 - 0.0613868199 -28913.7148437500 0.9376573563 - 0.0600871406 -28911.9316406250 0.9371778965 - 0.0587873608 -28913.0605468750 0.9366979599 - 0.0574874766 -28913.8691406250 0.9362132549 - 0.0561874993 -28914.5664062500 0.9357299209 - 0.0548874252 -28911.9609375000 0.9352440238 - 0.0535872579 -28914.4980468750 0.9347589612 - 0.0522870012 -28914.5625000000 0.9342716932 - 0.0509866551 -28913.5312500000 0.9337818623 - 0.0496862233 -28914.2988281250 0.9332927465 - 0.0483857058 -28913.7011718750 0.9327993989 - 0.0470851064 -28913.0390625000 0.9323070645 - 0.0457844287 -28913.5449218750 0.9318106174 - 0.0444836728 -28914.0058593750 0.9313143492 - 0.0431828424 -28915.1679687500 0.9308178425 - 0.0418819338 -28913.5468750000 0.9303185344 - 0.0405809581 -28914.2949218750 0.9298183918 - 0.0392799154 -28913.7714843750 0.9293180704 - 0.0379788019 -28912.0800781250 0.9288147688 - 0.0366776288 -28913.5644531250 0.9283108115 - 0.0353763886 -28914.0917968750 0.9278056622 - 0.0340750925 -28912.0292968750 0.9272978902 - 0.0327737369 -28914.1015625000 0.9267882705 - 0.0314723253 -28913.3632812500 0.9262779355 - 0.0301708598 -28913.3085937500 0.9257668853 - 0.0288693439 -28913.8203125000 0.9252551198 - 0.0275677796 -28913.6835937500 0.9247404933 - 0.0262661688 -28913.7753906250 0.9242262244 - 0.0249645133 -28912.6132812500 0.9237095118 - 0.0236628149 -28914.6308593750 0.9231886268 - 0.0223610755 -28914.3261718750 0.9226703644 - 0.0210592989 -28913.4902343750 0.9221488237 - 0.0197574869 -28913.7539062500 0.9216254354 - 0.0184556413 -28915.2324218750 0.9211041927 - 0.0171537641 -28912.8964843750 0.9205779433 - 0.0158518590 -28915.5390625000 0.9200515747 - 0.0145499259 -28914.6796875000 0.9195243120 - 0.0132479686 -28913.2988281250 0.9189916253 - 0.0119459890 -28914.1875000000 0.9184612036 - 0.0106439888 -28914.0039062500 0.9179299474 - 0.0093419701 -28913.6582031250 0.9173963070 - 0.0080399364 -28914.4863281250 0.9168611169 - 0.0067378883 -28913.5390625000 0.9163254499 - 0.0054358295 -28913.8105468750 0.9157878160 - 0.0041337609 -28914.8359375000 0.9152489901 - 0.0028316856 -28913.8906250000 0.9147090316 - 0.0015296056 -28914.3535156250 0.9141665101 - 0.0002275228 -28913.3710937500 0.9136233330 - -0.0010745603 -28914.7187500000 0.9130795002 - -0.0023766416 -28914.3984375000 0.9125330448 - -0.0036787188 -28913.9785156250 0.9119850993 - -0.0049807900 -28913.0605468750 0.9114342928 - -0.0062828525 -28914.6972656250 0.9108844399 - -0.0075849043 -28913.2812500000 0.9103323817 - -0.0088869436 -28914.3222656250 0.9097799659 - -0.0101889679 -28913.5253906250 0.9092251658 - -0.0114909746 -28915.7128906250 0.9086703062 - -0.0127929617 -28914.0039062500 0.9081121087 - -0.0140949273 -28914.7246093750 0.9075544477 - -0.0153968688 -28913.5117187500 0.9069904685 - -0.0166987851 -28915.5781250000 0.9064285755 - -0.0180006716 -28915.0761718750 0.9058668613 - -0.0193025284 -28914.5273437500 0.9053018689 - -0.0206043515 -28915.0703125000 0.9047370553 - -0.0219061412 -28915.4121093750 0.9041703343 - -0.0232078936 -28914.9960937500 0.9035978913 - -0.0245096050 -28914.0136718750 0.9030275941 - -0.0258112773 -28915.3828125000 0.9024568200 - -0.0271129049 -28913.9609375000 0.9018833637 - -0.0284144860 -28914.3085937500 0.9013095498 - -0.0297160186 -28915.6933593750 0.9007338881 - -0.0310175009 -28915.8769531250 0.9001584649 - -0.0323189311 -28913.8183593750 0.8995789886 - -0.0336203054 -28915.1855468750 0.8989994526 - -0.0349216238 -28915.3203125000 0.8984181881 - -0.0362228863 -28915.6992187500 0.8978360295 - -0.0375240818 -28915.6777343750 0.8972516060 - -0.0388252176 -28914.9492187500 0.8966662288 - -0.0401262864 -28915.5039062500 0.8960795999 - -0.0414272845 -28914.5234375000 0.8954916000 - -0.0427282155 -28913.9433593750 0.8949016333 - -0.0440290719 -28913.6230468750 0.8943099976 - -0.0453298539 -28916.3906250000 0.8937186003 - -0.0466305614 -28914.8671875000 0.8931241035 - -0.0479311869 -28916.3574218750 0.8925293684 - -0.0492317341 -28915.1972656250 0.8919327259 - -0.0505321957 -28914.7324218750 0.8913349509 - -0.0518325716 -28914.6953125000 0.8907302022 - -0.0531328619 -28917.3378906250 0.8901298642 - -0.0544330589 -28914.5781250000 0.8895273805 - -0.0557331666 -28915.8984375000 0.8889241219 - -0.0570331775 -28916.6191406250 0.8883142471 - -0.0583330952 -28915.3203125000 0.8877067566 - -0.0596329123 -28917.3984375000 0.8870995641 - -0.0609326251 -28915.8828125000 0.8864849806 - -0.0622322373 -28916.3378906250 0.8858741522 - -0.0635317415 -28916.1152343750 0.8852621317 - -0.0648311451 -28916.5585937500 0.8846434355 - -0.0661304295 -28915.7597656250 0.8840281367 - -0.0674296096 -28916.4667968750 0.8834114075 - -0.0687286705 -28916.8203125000 0.8827937841 - -0.0700276196 -28916.2734375000 0.8821732998 - -0.0713264421 -28915.3007812500 0.8815521598 - -0.0726251528 -28915.8515625000 0.8809298873 - -0.0739237294 -28915.1367187500 0.8803069592 - -0.0752221867 -28916.4707031250 0.8796866536 - -0.0765205175 -28915.2480468750 0.8790597320 - -0.0778187215 -28917.1289062500 0.8784372807 - -0.0791167915 -28916.3164062500 0.8778082132 - -0.0804147199 -28915.1503906250 0.8771816492 - -0.0817125216 -28915.3164062500 0.8765552640 - -0.0830101818 -28916.2050781250 0.8759269714 - -0.0843077004 -28916.2285156250 0.8753029704 - -0.0856050774 -28918.0488281250 0.8746728897 - -0.0869023055 -28918.6191406250 0.8740451932 - -0.0881993920 -28917.5000000000 0.8734116554 - -0.0894963220 -28919.2988281250 0.8727830648 - -0.0907931030 -28917.1191406250 0.8721468449 - -0.0920897350 -28919.4042968750 0.8715148568 - -0.0933862031 -28917.5644531250 0.8708813190 - -0.0946825221 -28918.5781250000 0.8702415228 - -0.0959786698 -28919.6269531250 0.8696059585 - -0.0972746611 -28919.5312500000 0.8689630628 - -0.0985704884 -28918.6503906250 0.8683250546 - -0.0998661444 -28919.5156250000 0.8676795363 - -0.1011616364 -28918.9609375000 0.8670325279 - -0.1024569497 -28920.6386718750 0.8663849831 - -0.1037520990 -28919.0878906250 0.8657349348 - -0.1050470620 -28920.2695312500 0.8650794625 - -0.1063418537 -28920.8632812500 0.8644266725 - -0.1076364666 -28919.6230468750 0.8637675643 - -0.1089308932 6370.8041992188 0.8614951968 - -0.1102251336 6369.9165039062 0.8608496189 - -0.1115191877 6370.8154296875 0.8602260351 - -0.1128130555 6369.6743164062 0.8595765233 - -0.1141067296 6369.2041015625 0.8589516878 - -0.1154002100 6366.6499023438 0.8583248854 - -0.1166934967 6366.8632812500 0.8576967716 - -0.1179865897 6365.9741210938 0.8570679426 - -0.1192794740 6363.1035156250 0.8564614654 - -0.1205721572 6362.5610351562 0.8558297157 - -0.1218646392 6360.5092773438 0.8552214503 - -0.1231569201 6359.5678710938 0.8545868397 - -0.1244489849 6358.3315429688 0.8539770842 - -0.1257408410 6355.5546875000 0.8533644080 - -0.1270324737 6355.8798828125 0.8527274728 - -0.1283239126 6353.3115234375 0.8521128893 - -0.1296151131 6352.8256835938 0.8514737487 - -0.1309061050 6351.3027343750 0.8508574963 - -0.1321968734 6348.2553710938 0.8502147794 - -0.1334874183 6347.2861328125 0.8495968580 - -0.1347777247 6346.7065429688 0.8489520550 - -0.1360678226 6345.3618164062 0.8483075500 - -0.1373576820 6345.9355468750 0.8476610184 - -0.1386473030 6345.1313476562 0.8469902277 - -0.1399366856 6342.7304687500 0.8463418484 - -0.1412258446 6343.6777343750 0.8456691504 - -0.1425147504 6342.1694335938 0.8450185657 - -0.1438034326 6342.3867187500 0.8443427086 - -0.1450918615 6342.3613281250 0.8436663151 - -0.1463800371 6343.1230468750 0.8429886103 - -0.1476679742 6343.2602539062 0.8423089385 - -0.1489556581 6341.3696289062 0.8416309357 - -0.1502430886 6341.6342773438 0.8409482837 - -0.1515302658 6343.8945312500 0.8402662873 - -0.1528171748 6343.3540039062 0.8395593166 - -0.1541038454 6343.2968750000 0.8388750553 - -0.1553902328 6342.5048828125 0.8381899595 - -0.1566763669 6343.4291992188 0.8374804258 - -0.1579622477 6342.9062500000 0.8367924690 - -0.1592478454 6342.9409179688 0.8361042738 - -0.1605331749 6344.3129882812 0.8353909850 - -0.1618182361 6343.2075195312 0.8346995711 - -0.1631030142 6344.8032226562 0.8340075016 - -0.1643875241 6343.2578125000 0.8333143592 - -0.1656717509 6344.0991210938 0.8325976729 - -0.1669557095 6343.7192382812 0.8319025636 - -0.1682393700 6344.3574218750 0.8312065601 - -0.1695227474 6343.1894531250 0.8305076957 - -0.1708058417 6344.3779296875 0.8298109770 - -0.1720886528 6342.4941406250 0.8291104436 - -0.1733711660 6342.8237304688 0.8284120560 - -0.1746533811 6343.0434570312 0.8277092576 - -0.1759352982 6342.9335937500 0.8270072341 - -0.1772169322 6342.7480468750 0.8263036013 - -0.1784982532 6342.4907226562 0.8256002069 - -0.1797792763 6342.7836914062 0.8248946667 - -0.1810599864 6341.6166992188 0.8241878152 - -0.1823403984 6342.7875976562 0.8234789371 - -0.1836204976 6342.0869140625 0.8227722049 - -0.1849002838 6343.1264648438 0.8220621943 - -0.1861797571 6341.9033203125 0.8213520050 - -0.1874589175 6341.2070312500 0.8206397891 - -0.1887377501 6341.5698242188 0.8199267387 - -0.1900162846 6343.0830078125 0.8192135692 - -0.1912944764 6340.7504882812 0.8184991479 - -0.1925723553 6341.8999023438 0.8177815080 - -0.1938499063 6343.5434570312 0.8170440197 - -0.1951271147 6342.7241210938 0.8163248897 - -0.1964040101 6341.0571289062 0.8156076670 - -0.1976805627 6342.1250000000 0.8148874044 - -0.1989567876 6342.1157226562 0.8141652346 - -0.2002326697 6341.2680664062 0.8134454489 - -0.2015082091 6341.9716796875 0.8126999140 - -0.2027834207 6341.3984375000 0.8119736314 - -0.2040582746 6341.8945312500 0.8112528324 - -0.2053327858 6341.6958007812 0.8105246425 - -0.2066069543 6342.5068359375 0.8097999096 - -0.2078807652 6341.1870117188 0.8090710640 - -0.2091542333 6341.4497070312 0.8083427548 - -0.2104273289 6341.6953125000 0.8076139688 - -0.2117000818 6340.9750976562 0.8068600893 - -0.2129724771 6341.5151367188 0.8061277866 - -0.2142444998 6341.5214843750 0.8053985834 - -0.2155161798 6340.2495117188 0.8046627641 - -0.2167874724 6341.3613281250 0.8039287925 - -0.2180584073 6340.5605468750 0.8031963110 - -0.2193289697 6340.6313476562 0.8024588227 - -0.2205991596 6340.7045898438 0.8017200232 - -0.2218689770 6340.5620117188 0.8009851575 - -0.2231384218 6340.5019531250 0.8002458215 - -0.2244074941 6342.0214843750 0.7995071411 - -0.2256761789 6340.0961914062 0.7987671494 - -0.2269444764 6339.8471679688 0.7980232239 - -0.2282123864 6340.0874023438 0.7972838283 - -0.2294799238 6342.1875000000 0.7965160608 - -0.2307470590 6341.1044921875 0.7957713604 - -0.2320138067 6340.5620117188 0.7950275540 - -0.2332801670 6341.3208007812 0.7942829132 - -0.2345461249 6339.9467773438 0.7935320139 - -0.2358116955 6340.0561523438 0.7927884459 - -0.2370768487 6340.5053710938 0.7920386791 - -0.2383416146 6340.7768554688 0.7912875414 - -0.2396059632 6339.6210937500 0.7905164957 - -0.2408699244 6341.7280273438 0.7897648811 - -0.2421334684 6341.3022460938 0.7890093327 - -0.2433965951 6341.9467773438 0.7882609367 - -0.2446593046 6339.5947265625 0.7875044942 - -0.2459216118 6339.5781250000 0.7867501974 - -0.2471835017 6340.9497070312 0.7859927416 - -0.2484449744 6339.2880859375 0.7852170467 - -0.2497060150 6340.7998046875 0.7844591141 - -0.2509666383 6340.8618164062 0.7837005854 - -0.2522268295 6339.6967773438 0.7829425931 - -0.2534866035 6340.5898437500 0.7821836472 - -0.2547459602 6339.4526367188 0.7814202905 - -0.2560048699 6341.2109375000 0.7806612849 - -0.2572633326 6339.7509765625 0.7799010277 - -0.2585213780 6339.2236328125 0.7791355848 - -0.2597789764 6339.9482421875 0.7783759832 - -0.2610361278 6340.8266601562 0.7775867581 - -0.2622928619 6340.4809570312 0.7768201828 - -0.2635491192 6341.2612304688 0.7760565877 - -0.2648049593 6340.0747070312 0.7752894163 - -0.2660603225 6340.6176757812 0.7745202780 - -0.2673152387 6340.0747070312 0.7737517357 - -0.2685697079 6337.7138671875 0.7729844451 - -0.2698237300 6339.5556640625 0.7722147107 - -0.2710773051 6339.0180664062 0.7714408636 - -0.2723304033 6340.7993164062 0.7706522942 - -0.2735830247 6339.7622070312 0.7698781490 - -0.2748351991 6339.7709960938 0.7691036463 - -0.2760869265 6340.0122070312 0.7683286667 - -0.2773381472 6340.8925781250 0.7675564885 - -0.2785889208 6339.0947265625 0.7667835355 - -0.2798392177 6340.2934570312 0.7660037279 - -0.2810890675 6339.5927734375 0.7652101517 - -0.2823384106 6340.4580078125 0.7644302249 - -0.2835872769 6338.6987304688 0.7636528611 - -0.2848356664 6340.0996093750 0.7628716826 - -0.2860835493 6338.8076171875 0.7620956898 - -0.2873309851 6339.8554687500 0.7613133788 - -0.2885779142 6338.4560546875 0.7605320215 - -0.2898243666 6338.7480468750 0.7597261667 - -0.2910703123 6339.5849609375 0.7589497566 - -0.2923157513 6339.6250000000 0.7581627965 - -0.2935607135 6340.0024414062 0.7573820949 - -0.2948051989 6340.1835937500 0.7565928102 - -0.2960491478 6339.8134765625 0.7558137178 - -0.2972926199 6339.3349609375 0.7550226450 - -0.2985355854 6338.6660156250 0.7542389035 - -0.2997780442 6339.4653320312 0.7534289956 - -0.3010199666 6339.2143554688 0.7526446581 - -0.3022614121 6338.6113281250 0.7518549562 - -0.3035023212 6339.0893554688 0.7510645986 - -0.3047427535 6339.9458007812 0.7502747178 - -0.3059826195 6337.6411132812 0.7494866848 - -0.3072220087 6339.6162109375 0.7486964464 - -0.3084608614 6338.1987304688 0.7479010224 - -0.3096991777 6340.2553710938 0.7470903397 - -0.3109369874 6338.4296875000 0.7462999225 - -0.3121742606 6339.6059570312 0.7455065250 - -0.3134109974 6339.0761718750 0.7447087169 - -0.3146472275 6339.2382812500 0.7439140081 - -0.3158828914 6337.2802734375 0.7431220412 - -0.3171180487 6339.2255859375 0.7423271537 - -0.3183526695 6339.5664062500 0.7415085435 - -0.3195867240 6338.4038085938 0.7407105565 - -0.3208202422 6340.0776367188 0.7399111986 - -0.3220532238 6339.9077148438 0.7391192317 - -0.3232856691 6337.4902343750 0.7383181453 - -0.3245175779 6338.5112304688 0.7375177145 - -0.3257488906 6339.0493164062 0.7366949916 - -0.3269796968 6338.9003906250 0.7358991504 - -0.3282099068 6338.4960937500 0.7350979447 - -0.3294396102 6338.0512695312 0.7342925072 - -0.3306687176 6338.6176757812 0.7334907055 - -0.3318972588 6338.2050781250 0.7326841950 - -0.3331252635 6337.8437500000 0.7318692207 - -0.3343527019 6338.6284179688 0.7310613394 - -0.3355795443 6340.8413085938 0.7302581668 - -0.3368058503 6337.8266601562 0.7294528484 - -0.3380315602 6339.1323242188 0.7286471128 - -0.3392567337 6338.0991210938 0.7278454304 - -0.3404812813 6338.5146484375 0.7270386815 - -0.3417052925 6339.3559570312 0.7262101769 - -0.3429287076 6337.2548828125 0.7253983617 - -0.3441515565 6338.2880859375 0.7245928645 - -0.3453738093 6336.6928710938 0.7237815261 - -0.3465954661 6337.8969726562 0.7229811549 - -0.3478165269 6339.1201171875 0.7221674919 - -0.3490370214 6337.8876953125 0.7213591933 - -0.3502569199 6339.0092773438 0.7205246687 - -0.3514762223 6337.8125000000 0.7197131515 - -0.3526949286 6339.4189453125 0.7189052701 - -0.3539130390 6337.7412109375 0.7180940509 - -0.3551305532 6338.1435546875 0.7172842026 - -0.3563474715 6338.7573242188 0.7164675593 - -0.3575637639 6337.6865234375 0.7156324387 - -0.3587794602 6339.9682617188 0.7148180008 - -0.3599945605 6338.8803710938 0.7140070796 - -0.3612090349 6338.4233398438 0.7131986618 - -0.3624229133 6337.9077148438 0.7123814225 - -0.3636361659 6337.4067382812 0.7115608454 - -0.3648487926 6339.1381835938 0.7107305527 - -0.3660607934 6338.2500000000 0.7099080682 - -0.3672721982 6339.3012695312 0.7090954185 - -0.3684829772 6338.2910156250 0.7082788348 - -0.3696931303 6337.6274414062 0.7074598670 - -0.3709026575 6340.1743164062 0.7066273689 - -0.3721115291 6337.9360351562 0.7058067322 - -0.3733198047 6337.6713867188 0.7049854994 - -0.3745274246 6338.3652343750 0.7041667104 - -0.3757344186 6337.7421875000 0.7033458352 - -0.3769407868 6336.5209960938 0.7025247216 - -0.3781464994 6338.7280273438 0.7016936541 - -0.3793515861 6338.5136718750 0.7008684278 - -0.3805560172 6338.2426757812 0.7000467777 - -0.3817597926 6338.8315429688 0.6992233396 - -0.3829629421 6337.5834960938 0.6984031200 - -0.3841654360 6337.1650390625 0.6975761056 - -0.3853672743 6338.6621093750 0.6967372894 - -0.3865684569 6339.3901367188 0.6959123015 - -0.3877690136 6336.8417968750 0.6950895190 - -0.3889688849 6337.1020507812 0.6942731738 - -0.3901681006 6337.4926757812 0.6934457421 - -0.3913666308 6337.1538085938 0.6926190853 - -0.3925645351 6338.7431640625 0.6917769313 - -0.3937617540 6337.8134765625 0.6909518838 - -0.3949583173 6338.4296875000 0.6901235580 - -0.3961541951 6337.4487304688 0.6892965436 - -0.3973494172 6338.1215820312 0.6884722114 - -0.3985439539 6337.5766601562 0.6876264811 - -0.3997378349 6338.5419921875 0.6867914796 - -0.4009310305 6337.6303710938 0.6859768033 - -0.4021235108 6337.4467773438 0.6851431131 - -0.4033153653 6338.1289062500 0.6843163371 - -0.4045065045 6338.9252929688 0.6834681630 - -0.4056969583 6339.3320312500 0.6826399565 - -0.4068867266 6337.2636718750 0.6818150282 - -0.4080758095 6337.4545898438 0.6809798479 - -0.4092642069 6336.8383789062 0.6801489592 - -0.4104518890 6339.7509765625 0.6793045998 - -0.4116388857 6338.4833984375 0.6784704328 - -0.4128251970 6337.0395507812 0.6776371598 - -0.4140107930 6337.9223632812 0.6768042445 - -0.4151956737 6337.8046875000 0.6759730577 - -0.4163798690 6338.4721679688 0.6751432419 - -0.4175633788 6338.0600585938 0.6742906570 - -0.4187461436 6338.1977539062 0.6734565496 - -0.4199282229 6336.3764648438 0.6726261973 - -0.4211095870 6337.4741210938 0.6717942357 - -0.4222902358 6338.6782226562 0.6709635854 - -0.4234701395 6337.3349609375 0.6701101661 - -0.4246493578 6336.8374023438 0.6692751646 - -0.4258278608 6336.8398437500 0.6684371233 - -0.4270056188 6337.3471679688 0.6675997972 - -0.4281826615 6336.6621093750 0.6667653918 - -0.4293589890 6338.5361328125 0.6659153104 - -0.4305345714 6338.4125976562 0.6650760174 - -0.4317094386 6337.0952148438 0.6642369628 - -0.4328835607 6335.7089843750 0.6633982062 - -0.4340569675 6336.3452148438 0.6625608206 - -0.4352296293 6338.1015625000 0.6617093086 - -0.4364015460 6338.1342773438 0.6608680487 - -0.4375727177 6337.6367187500 0.6600281000 - -0.4387431741 6337.3164062500 0.6591910124 - -0.4399128556 6338.1933593750 0.6583337784 - -0.4410818219 6337.6723632812 0.6574940681 - -0.4422500134 6337.8012695312 0.6566518545 - -0.4434174597 6339.1396484375 0.6558128595 - -0.4445841610 6336.8134765625 0.6549707055 - -0.4457501173 6337.7509765625 0.6541131139 - -0.4469152987 6336.5083007812 0.6532723308 - -0.4480797350 6337.3750000000 0.6524272561 - -0.4492434263 6339.1909179688 0.6515823603 - -0.4504063427 6336.6416015625 0.6507375240 - -0.4515684843 6337.7890625000 0.6498782039 - -0.4527298510 6337.5761718750 0.6490345001 - -0.4538904727 6335.7441406250 0.6481910944 - -0.4550503194 6337.3652343750 0.6473440528 - -0.4562093914 6338.2177734375 0.6465005875 - -0.4573676884 6337.2802734375 0.6456379294 - -0.4585252106 6336.8715820312 0.6447924376 - -0.4596819878 6337.3940429688 0.6439422965 - -0.4608379304 6338.8295898438 0.6430961490 - -0.4619931281 6337.1611328125 0.6422335505 - -0.4631475210 6338.8178710938 0.6413834691 - -0.4643011391 6336.6674804688 0.6405327320 - -0.4654539824 6338.6538085938 0.6396758556 - -0.4666060209 6338.0966796875 0.6388261914 - -0.4677572846 6338.4765625000 0.6379610896 - -0.4689077437 6336.7197265625 0.6371088624 - -0.4700573981 6337.5175781250 0.6362559199 - -0.4712062776 6337.5097656250 0.6354035139 - -0.4723543227 6338.8427734375 0.6345346570 - -0.4735015929 6337.3173828125 0.6336834431 - -0.4746480584 6338.2749023438 0.6328256726 - -0.4757937193 6338.6459960938 0.6319732666 - -0.4769385755 6337.2016601562 0.6311037540 - -0.4780826271 6338.0512695312 0.6302468181 - -0.4792258441 6335.9018554688 0.6293879151 - -0.4803682864 6336.5551757812 0.6285281777 - -0.4815098941 6338.1796875000 0.6276590824 - -0.4826506674 6337.7612304688 0.6267974973 - -0.4837906361 6337.7026367188 0.6259336472 - -0.4849298000 6337.9702148438 0.6250746250 - -0.4860681295 6337.0292968750 0.6242104769 - -0.4872056246 6337.3627929688 0.6233358979 - -0.4883423150 6338.2890625000 0.6224734187 - -0.4894781709 6338.0488281250 0.6216084361 - -0.4906131923 6337.2973632812 0.6207430959 - -0.4917473793 6337.8793945312 0.6198678017 - -0.4928807318 6336.9648437500 0.6189965010 - -0.4940132499 6338.3769531250 0.6181225777 - -0.4951449335 6338.1967773438 0.6172534823 - -0.4962757826 6339.1909179688 0.6163732409 - -0.4974057674 6338.3266601562 0.6155066490 - -0.4985349476 6336.5683593750 0.6146342754 - -0.4996632636 6337.4189453125 0.6137583852 - -0.5007907152 6338.3833007812 0.6128753424 - -0.5019173622 6337.1284179688 0.6120040417 - -0.5030431151 6337.0244140625 0.6111171246 - -0.5041680336 6336.9394531250 0.6102390885 - -0.5052920580 6338.1430664062 0.6093558669 - -0.5064152479 6335.9555664062 0.6084734201 - -0.5075376034 6338.0576171875 0.6075932384 - -0.5086591244 6338.0551757812 0.6067140698 - -0.5097797513 6337.5561523438 0.6058235168 - -0.5108994842 6338.9541015625 0.6049295068 - -0.5120183825 6337.8706054688 0.6040459871 - -0.5131363869 6337.9746093750 0.6031577587 - -0.5142535567 6336.6640625000 0.6022647619 - -0.5153698325 6338.6005859375 0.6013723016 - -0.5164852142 6337.6054687500 0.6004848480 - -0.5175997615 6337.9003906250 0.5995872617 - -0.5187134147 6338.8076171875 0.5986813903 - -0.5198261738 6337.5571289062 0.5977872610 - -0.5209380984 6337.5307617188 0.5968919992 - -0.5220490694 6336.9003906250 0.5959926248 - -0.5231592059 6336.8242187500 0.5950850248 - -0.5242684484 6338.4589843750 0.5941795707 - -0.5253767967 6339.2402343750 0.5932766795 - -0.5264842510 6337.2475585938 0.5923726559 - -0.5275908113 6338.5273437500 0.5914521217 - -0.5286964774 6337.0244140625 0.5905462503 - -0.5298012495 6337.7690429688 0.5896320939 - -0.5309051275 6337.5649414062 0.5887201428 - -0.5320081115 6337.2182617188 0.5877994299 - -0.5331102014 6336.9472656250 0.5868834853 - -0.5342113376 6336.4287109375 0.5859674811 - -0.5353116393 6339.6142578125 0.5850351453 - -0.5364109874 6338.1762695312 0.5841110349 - -0.5375094414 6338.0400390625 0.5831875205 - -0.5386069417 6338.0400390625 0.5822625160 - -0.5397036076 6337.6289062500 0.5813248158 - -0.5407993197 6338.5043945312 0.5803936720 - -0.5418940783 6338.4565429688 0.5794596672 - -0.5429879427 6336.7270507812 0.5785234571 - -0.5440809131 6337.4321289062 0.5775794983 - -0.5451729298 6339.1010742188 0.5766391158 - -0.5462640524 6337.5722656250 0.5756925344 - -0.5473542213 6338.8203125000 0.5747428536 - -0.5484434962 6337.7475585938 0.5737958550 - -0.5495318174 6338.3432617188 0.5728408694 - -0.5506191850 6337.2958984375 0.5718887448 - -0.5517056584 6337.7080078125 0.5709267259 - -0.5527911782 6338.3203125000 0.5699676275 - -0.5538757443 6338.4536132812 0.5690039992 - -0.5549593568 6338.4238281250 0.5680326223 - -0.5560420752 6338.2333984375 0.5670678020 - -0.5571238399 6338.7690429688 0.5660964251 - -0.5582046509 6336.4804687500 0.5651221275 - -0.5592845082 6338.7680664062 0.5641360879 - -0.5603634715 6338.5761718750 0.5631617904 - -0.5614414215 6336.6997070312 0.5621764064 - -0.5625184178 6338.4418945312 0.5611836314 - -0.5635945201 6337.8515625000 0.5601934195 - -0.5646696091 6336.9458007812 0.5592004061 - -0.5657437444 6337.5585937500 0.5582005978 - -0.5668169856 6337.0771484375 0.5571971536 - -0.5678892136 6339.9062500000 0.5561925173 - -0.5689604878 6337.0268554688 0.5551803112 - -0.5700307488 6339.2993164062 0.5541652441 - -0.5711001158 6337.3681640625 0.5531517863 - -0.5721684694 6338.8813476562 0.5521336794 - -0.5732358694 6336.9321289062 0.5511058569 - -0.5743023157 6338.3706054688 0.5500767827 - -0.5753677487 6336.8505859375 0.5490454435 - -0.5764322281 6337.5498046875 0.5480082035 - -0.5774957538 6338.7456054688 0.5469639897 - -0.5785582662 6338.2021484375 0.5459204316 - -0.5796198249 6338.6674804688 0.5448698401 - -0.5806803703 6338.2729492188 0.5438144207 - -0.5817399621 6338.0429687500 0.5427567363 - -0.5827985406 6338.3784179688 0.5416939855 - -0.5838561058 6338.5908203125 0.5406259298 - -0.5849127173 6338.6738281250 0.5395518541 - -0.5859683752 6338.1953125000 0.5384741426 - -0.5870229602 6336.7490234375 0.5373923182 - -0.5880765915 6339.4028320312 0.5363043547 - -0.5891292691 6339.6079101562 0.5352117419 - -0.5901808739 6339.0664062500 0.5341154337 - -0.5912315249 6338.8876953125 0.5330097675 - -0.5922811627 6338.9291992188 0.5319043398 - -0.5933297873 6337.8730468750 0.5307915807 - -0.5943773985 6337.7333984375 0.5296733379 - -0.5954239964 6338.3457031250 0.5285469294 - -0.5964696407 6338.9179687500 0.5274174213 - -0.5975142121 6338.5434570312 0.5262827873 - -0.5985577703 6339.1411132812 0.5251400471 - -0.5996003747 6339.2631835938 0.5239946246 - -0.6006419063 6339.2353515625 0.5228421688 - -0.6016824245 6337.8950195312 0.5216826200 - -0.6027219296 6338.6762695312 0.5205166936 - -0.6037604213 6338.2617187500 0.5193473101 - -0.6047978997 6338.3413085938 0.5181688070 - -0.6058343053 6339.4135742188 0.5169879198 - -0.6068697572 6337.8295898438 0.5157964230 - -0.6079041362 6339.6718750000 0.5146021843 - -0.6089375019 6338.0439453125 0.5133984685 - -0.6099697948 6339.5219726562 0.5121912956 - -0.6110010743 6338.8330078125 0.5109729171 - -0.6120313406 6337.8764648438 0.5097512603 - -0.6130605340 6337.9272460938 0.5085229278 - -0.6140887141 6339.5458984375 0.5072882771 - -0.6151158214 6339.9199218750 0.5060471296 - -0.6161419153 6338.7690429688 0.5047962070 - -0.6171669960 6340.0830078125 0.5035385489 - -0.6181910038 6339.8251953125 0.5022714138 - -0.6192139387 6339.0214843750 0.5010009408 - -0.6202358007 6337.8911132812 0.4997248054 - -0.6212566495 6339.2880859375 0.4984384179 - -0.6222764850 6338.5820312500 0.4971457124 - -0.6232951880 6337.0136718750 0.4958457649 - -0.6243128777 6337.7607421875 0.4945399165 - -0.6253294945 6339.1967773438 0.4932239354 - -0.6263450980 6339.0947265625 0.4919027686 - -0.6273595691 6337.3334960938 0.4905731082 - -0.6283730268 6339.5815429688 0.4892334044 - -0.6293854117 6338.2456054688 0.4878838956 - -0.6303967237 6337.8833007812 0.4865393043 - -0.6314069629 6340.0493164062 0.4851756990 - -0.6324161291 6338.3500976562 0.4837993979 - -0.6334242225 6339.4746093750 0.4824348688 - -0.6344312429 6338.6259765625 0.4810431600 - -0.6354371905 6337.8002929688 0.4796516299 - -0.6364420652 6337.3315429688 0.4782566428 - -0.6374458075 6338.0380859375 0.4768409133 - -0.6384485364 6338.3046875000 0.4754275084 - -0.6394501328 6339.3466796875 0.4739986658 - -0.6404507160 6339.0322265625 0.4725707471 - -0.6414501667 6339.0664062500 0.4711323082 - -0.6424485445 6338.4853515625 0.4696846008 - -0.6434457898 6339.0698242188 0.4682317078 - -0.6444420218 6338.3833007812 0.4667651355 - -0.6454370618 6338.3085937500 0.4652951956 - -0.6464310884 6339.0737304688 0.4638103247 - -0.6474239826 6337.6420898438 0.4623226821 - -0.6484158039 6338.1235351562 0.4608333409 - -0.6494064927 6338.2177734375 0.4593256414 - -0.6503961086 6340.8422851562 0.4578105807 - -0.6513846517 6339.4248046875 0.4562902451 - -0.6523720026 6340.1860351562 0.4547632933 - -0.6533583403 6339.0844726562 0.4532222450 - -0.6543434858 6338.7055664062 0.4516855180 - -0.6553275585 6338.7197265625 0.4501326978 - -0.6563105583 6340.5688476562 0.4485816658 - -0.6572924256 6339.6303710938 0.4470130503 - -0.6582731605 6341.0498046875 0.4454401731 - -0.6592527628 6339.7895507812 0.4438527822 - -0.6602312922 6338.1352539062 0.4422626495 - -0.6612086296 6339.8828125000 0.4406679273 - -0.6621848941 6339.2939453125 0.4390681684 - -0.6631600857 6340.6489257812 0.4374545813 - -0.6641340852 6339.4257812500 0.4358445108 - -0.6651069522 6337.8457031250 0.4342190623 - -0.6660787463 6338.6689453125 0.4325824082 - -0.6670493484 6338.2290039062 0.4309496880 - -0.6680188775 6338.6796875000 0.4293064475 - -0.6689872742 6339.0043945312 0.4276543558 - -0.6699544787 6340.9511718750 0.4259932339 - -0.6709206104 6338.5351562500 0.4243264496 - -0.6718855500 6338.8193359375 0.4226585925 - -0.6728493571 6338.8330078125 0.4209734201 - -0.6738120317 6340.3696289062 0.4193047881 - -0.6747735739 6340.1411132812 0.4176100492 - -0.6757339835 6339.4013671875 0.4159183204 - -0.6766932607 6337.6347656250 0.4142148495 - -0.6776513457 6339.0190429688 0.4125069976 - -0.6786082983 6339.1313476562 0.4107932746 - -0.6795641184 6339.7392578125 0.4090743661 - -0.6805187464 6340.6113281250 0.4073570967 - -0.6814722419 6340.2011718750 0.4056257904 - -0.6824246049 6340.0976562500 0.4039124846 - -0.6833757758 6339.5107421875 0.4021733105 - -0.6843258142 6338.1225585938 0.4004214704 - -0.6852747202 6339.9135742188 0.3986907303 - -0.6862223744 6339.5688476562 0.3969381750 - -0.6871689558 6338.3730468750 0.3952044547 - -0.6881143451 6339.2553710938 0.3934217989 - -0.6890585423 6339.4726562500 0.3916746676 - -0.6900015473 6339.5170898438 0.3899163604 - -0.6909434199 6337.9814453125 0.3881532252 - -0.6918841600 6340.3247070312 0.3863866925 - -0.6928236485 6338.7553710938 0.3846099377 - -0.6937620044 6340.2163085938 0.3828473687 - -0.6946992278 6338.6386718750 0.3810615540 - -0.6956351995 6339.6176757812 0.3792805374 - -0.6965700388 6339.5009765625 0.3775037229 - -0.6975036860 6339.3061523438 0.3757360876 - -0.6984361410 6339.1132812500 0.3739521801 - -0.6993674040 6338.3198242188 0.3721620142 - -0.7002974749 6340.5600585938 0.3703845739 - -0.7012264132 6340.1987304688 0.3685907722 - -0.7021540999 6339.8369140625 0.3668032885 - -0.7030805945 6339.6757812500 0.3650288284 - -0.7040059566 6339.4692382812 0.3632470667 - -0.7049300671 6340.5507812500 0.3614571691 - -0.7058530450 6339.0131835938 0.3596577048 - -0.7067747712 6340.1723632812 0.3578828275 - -0.7076953053 6338.8959960938 0.3560925424 - -0.7086146474 6341.2343750000 0.3543056250 - -0.7095327973 6339.5463867188 0.3525280356 - -0.7104497552 6339.6699218750 0.3507481813 - -0.7113654613 6339.7363281250 0.3489778638 - -0.7122799754 6340.4575195312 0.3471691906 - -0.7131932974 6339.9482421875 0.3454091251 - -0.7141054273 6338.7700195312 0.3436324894 - -0.7150163651 6340.9687500000 0.3418684006 - -0.7159260511 6339.8623046875 0.3400848210 - -0.7168344855 6338.8710937500 0.3383159637 - -0.7177417874 6339.6303710938 0.3365619183 - -0.7186478376 6338.4980468750 0.3347980976 - -0.7195526361 6339.3378906250 0.3330428898 - -0.7204562426 6340.2343750000 0.3312817216 - -0.7213585973 6340.4355468750 0.3295215368 - -0.7222597599 6341.3535156250 0.3277710676 - -0.7231597304 6340.2031250000 0.3260201812 - -0.7240584493 6338.6547851562 0.3242851198 - -0.7249559164 6338.5917968750 0.3225370347 - -0.7258521914 6340.2778320312 0.3208174706 - -0.7267472148 6340.2055664062 0.3190810382 - -0.7276409864 6340.5253906250 0.3173552752 - -0.7285335660 6338.3691406250 0.3156314492 - -0.7294248939 6339.3095703125 0.3139145672 - -0.7303149700 6340.2709960938 0.3121972084 - -0.7312037945 6340.4511718750 0.3104954362 - -0.7320914268 6340.6513671875 0.3087956309 - -0.7329777479 6340.7900390625 0.3070946932 - -0.7338628769 6339.8164062500 0.3054006696 - -0.7347467542 6338.7163085938 0.3037231863 - -0.7356294394 6339.7246093750 0.3020405173 - -0.7365108132 6338.7060546875 0.3003683388 - -0.7373909354 6340.4687500000 0.2986989021 - -0.7382698059 6339.4619140625 0.2970288694 - -0.7391474843 6338.5029296875 0.2953655720 - -0.7400238514 6339.7246093750 0.2937132418 - -0.7408989668 6338.4526367188 0.2920643091 - -0.7417728305 6340.2373046875 0.2904309332 - -0.7426454425 6340.5654296875 0.2887914777 - -0.7435168028 6339.5068359375 0.2871692181 - -0.7443869114 6338.7631835938 0.2855425775 - -0.7452557683 6339.5991210938 0.2839247286 - -0.7461233139 6338.4799804688 0.2823135853 - -0.7469896078 6341.1738281250 0.2807026207 - -0.7478546500 6341.0703125000 0.2791008949 - -0.7487184405 6341.5712890625 0.2775171101 - -0.7495809197 6340.2197265625 0.2759273052 - -0.7504421473 6340.3754882812 0.2743458152 - -0.7513021231 6340.3916015625 0.2727745771 - -0.7521607876 6340.1870117188 0.2712078094 - -0.7530182004 6340.3037109375 0.2696511149 - -0.7538743615 6339.7880859375 0.2680985928 - -0.7547292113 6340.3740234375 0.2665508687 - -0.7555827498 6339.2153320312 0.2650149465 - -0.7564350367 6340.8427734375 0.2634787560 - -0.7572860718 6341.1430664062 0.2619481385 - -0.7581357956 6341.3403320312 0.2604201436 - -0.7589842081 6341.1757812500 0.2589071989 - -0.7598313689 6340.1000976562 0.2574023008 - -0.7606772780 6339.4335937500 0.2558955848 - -0.7615218163 6340.2241210938 0.2544070184 - -0.7623651028 6338.9833984375 0.2529131472 - -0.7632071376 6340.5415039062 0.2514226139 - -0.7640478015 6340.7680664062 0.2499545217 - -0.7648872137 6339.7812500000 0.2484797835 - -0.7657253146 6341.3286132812 0.2470170856 - -0.7665621042 6340.1386718750 0.2455560863 - -0.7673976421 6340.0517578125 0.2441057563 - -0.7682318687 6341.7387695312 0.2426567376 - -0.7690647840 6341.7167968750 0.2412183583 - -0.7698963284 6340.1669921875 0.2397846729 - -0.7707266808 6339.5336914062 0.2383574843 - -0.7715556622 6340.6987304688 0.2369318902 - -0.7723833323 6339.7314453125 0.2355186939 - -0.7732096910 6339.0473632812 0.2341098487 - -0.7740347385 6338.4663085938 0.2327041626 - -0.7748585343 6340.4726562500 0.2312987149 - -0.7756809592 6338.9179687500 0.2299061716 - -0.7765020728 6339.0053710938 0.2285192609 - -0.7773218751 6341.2163085938 0.2271321118 - -0.7781403661 6340.3471679688 0.2257583588 - -0.7789574862 6339.9829101562 0.2243896723 - -0.7797733545 6339.5444335938 0.2230161428 - -0.7805879116 6340.6508789062 0.2216567546 - -0.7814010978 6339.3549804688 0.2203024477 - -0.7822129726 6340.4438476562 0.2189506739 - -0.7830235362 6339.6503906250 0.2176020890 - -0.7838327289 6340.1044921875 0.2162642628 - -0.7846406102 6340.3500976562 0.2149277180 - -0.7854471803 6340.6171875000 0.2135942280 - -0.7862524390 6340.8056640625 0.2122684717 - -0.7870563269 6339.4990234375 0.2109478414 - -0.7878589034 6339.2778320312 0.2096295953 - -0.7886601090 6339.3540039062 0.2083185613 - -0.7894600034 6340.7949218750 0.2070079744 - -0.7902585268 6340.5898437500 0.2057048380 - -0.7910557389 6340.6611328125 0.2044082582 - -0.7918516397 6341.8349609375 0.2031073868 - -0.7926461697 6341.2631835938 0.2018196881 - -0.7934393287 6340.2026367188 0.2005355656 - -0.7942311764 6340.5322265625 0.1992524117 - -0.7950216532 6340.2851562500 0.1979703009 - -0.7958108187 6339.4443359375 0.1966986358 - -0.7965986133 6339.6474609375 0.1954284012 - -0.7973850369 6342.1171875000 0.1941546202 - -0.7981701493 6340.7148437500 0.1928943098 - -0.7989538908 6340.3759765625 0.1916382313 - -0.7997362614 6340.4277343750 0.1903777122 - -0.8005173206 6340.3588867188 0.1891249418 - -0.8012970090 6341.0390625000 0.1878774166 - -0.8020752668 6340.5644531250 0.1866320968 - -0.8028522730 6340.1572265625 0.1853881180 - -0.8036278486 6340.0898437500 0.1841479242 - -0.8044020534 6340.6450195312 0.1829122305 - -0.8051749468 6341.4282226562 0.1816763580 - -0.8059464097 6342.0576171875 0.1804465950 - -0.8067165613 6340.8618164062 0.1792230904 - -0.8074853420 6341.3007812500 0.1779939532 - -0.8082527518 6340.1777343750 0.1767732203 - -0.8090187907 6341.4604492188 0.1755554974 - -0.8097833991 6339.2827148438 0.1743456423 - -0.8105466962 6341.8437500000 0.1731249541 - -0.8113086224 6338.5996093750 0.1719168723 - -0.8120691776 6341.8266601562 0.1707078516 - -0.8128283024 6341.8251953125 0.1694976687 - -0.8135860562 6341.5810546875 0.1682965457 - -0.8143424988 6341.1113281250 0.1670951992 - -0.8150975108 6340.3906250000 0.1659016609 - -0.8158511519 6341.9492187500 0.1646969020 - -0.8166033626 6340.4179687500 0.1635034382 - -0.8173542619 6339.6909179688 0.1623174995 - -0.8181037307 6342.3901367188 0.1611166596 - -0.8188518286 6340.3959960938 0.1599312425 - -0.8195985556 6340.8764648438 0.1587468982 - -0.8203438520 6340.0312500000 0.1575677395 - -0.8210877776 6340.9672851562 0.1563763618 - -0.8218303323 6340.6782226562 0.1551954746 - -0.8225714564 6340.9316406250 0.1540206075 - -0.8233112097 6341.9833984375 0.1528358459 - -0.8240495920 6340.6918945312 0.1516632140 - -0.8247865438 6340.9863281250 0.1504873335 - -0.8255220652 6339.6816406250 0.1493194103 - -0.8262562156 6341.0664062500 0.1481412053 - -0.8269889951 6340.7324218750 0.1469725370 - -0.8277203441 6341.0288085938 0.1458064318 - -0.8284503222 6342.6020507812 0.1446285993 - -0.8291788697 6340.6645507812 0.1434681416 - -0.8299059868 6340.8378906250 0.1423040479 - -0.8306317329 6340.4780273438 0.1411418915 - -0.8313560486 6340.4760742188 0.1399714649 - -0.8320789337 6341.0883789062 0.1388150156 - -0.8328004479 6340.3906250000 0.1376581788 - -0.8335205317 6338.7182617188 0.1364999413 - -0.8342392445 6342.1953125000 0.1353289038 - -0.8349564672 6341.5795898438 0.1341753155 - -0.8356723189 6341.3666992188 0.1330200434 - -0.8363867998 6341.3359375000 0.1318597347 - -0.8370997906 6341.2377929688 0.1307078600 - -0.8378114104 6341.8828125000 0.1295517981 - -0.8385215402 6340.8891601562 0.1284030974 - -0.8392302990 6341.2968750000 0.1272394657 - -0.8399376273 6339.9057617188 0.1260906309 - -0.8406435251 6340.1689453125 0.1249417663 - -0.8413480520 6342.0434570312 0.1237893701 - -0.8420510888 6341.8208007812 0.1226328835 - -0.8427526951 6341.3789062500 0.1214837059 - -0.8434529305 6341.6347656250 0.1203401834 - -0.8441516757 6340.1088867188 0.1191962510 - -0.8448489904 6340.8994140625 0.1180339083 - -0.8455449343 6340.9765625000 0.1168854907 - -0.8462393880 6339.7294921875 0.1157425269 - -0.8469324112 6341.7260742188 0.1145970151 - -0.8476240039 6341.0117187500 0.1134449020 - -0.8483141661 6341.4409179688 0.1122975126 - -0.8490028977 6340.1655273438 0.1111569330 - -0.8496901989 6340.9331054688 0.1100058854 - -0.8503760695 6341.4047851562 0.1088527516 - -0.8510604501 6340.6464843750 0.1077111885 - -0.8517434001 6342.2583007812 0.1065685898 - -0.8524249196 6340.4531250000 0.1054225191 - -0.8531050086 6342.1879882812 0.1042715311 - -0.8537836075 6341.7641601562 0.1031274498 - -0.8544607759 6341.6005859375 0.1019788161 - -0.8551365137 6340.7280273438 0.1008388475 - -0.8558108211 6341.3134765625 0.0996841788 - -0.8564836383 6342.1767578125 0.0985364169 - -0.8571550250 6340.5419921875 0.0973952860 - -0.8578249216 6339.8251953125 0.0962571055 - -0.8584933877 6340.8510742188 0.0951020122 - -0.8591604233 6340.5102539062 0.0939589515 - -0.8598259687 6341.8388671875 0.0928093642 - -0.8604900837 6340.5410156250 0.0916650295 - -0.8611527085 6341.0717773438 0.0905093700 - -0.8618139029 6341.1147460938 0.0893658996 - -0.8624736071 6340.4052734375 0.0882223099 - -0.8631318808 6341.6977539062 0.0870802104 - -0.8637886643 6341.8715820312 0.0859226286 - -0.8644439578 6340.9267578125 0.0847745985 - -0.8650978208 6341.0957031250 0.0836337954 - -0.8657502532 6341.5166015625 0.0824857727 - -0.8664011359 6340.8535156250 0.0813409537 - -0.8670506477 6342.2109375000 0.0801814049 - -0.8676986098 6342.4448242188 0.0790357590 - -0.8683451414 6340.8159179688 0.0778887272 - -0.8689901829 6341.2670898438 0.0767429173 - -0.8696337342 6340.7270507812 0.0755816177 - -0.8702758551 6340.5610351562 0.0744364709 - -0.8709164858 6341.6401367188 0.0732874647 - -0.8715556264 6339.9721679688 0.0721444339 - -0.8721932769 6341.4384765625 0.0709772632 - -0.8728294969 6340.8344726562 0.0698310733 - -0.8734641671 6341.8281250000 0.0686793327 - -0.8740974069 6340.6582031250 0.0675316527 - -0.8747291565 6341.1611328125 0.0663664043 - -0.8753594160 6340.2856445312 0.0652159005 - -0.8759881854 6341.8564453125 0.0640607923 - -0.8766154647 6339.9697265625 0.0629085377 - -0.8772413135 6341.2792968750 0.0617572516 - -0.8778656125 6340.1040039062 0.0605878420 - -0.8784884810 6341.1020507812 0.0594371445 - -0.8791097999 6341.6303710938 0.0582830124 - -0.8797296286 6340.9428710938 0.0571306273 - -0.8803480268 6340.8740234375 0.0559593551 - -0.8809648752 6340.4462890625 0.0548075885 - -0.8815802336 6342.8403320312 0.0536477119 - -0.8821941614 6341.0805664062 0.0524962023 - -0.8828065395 6340.3154296875 0.0513414219 - -0.8834174275 6342.0478515625 0.0501667112 - -0.8840268254 6339.4604492188 0.0490099862 - -0.8846346736 6340.9184570312 0.0478503481 - -0.8852410913 6342.5405273438 0.0466882065 - -0.8858459592 6340.4916992188 0.0455317646 - -0.8864493370 6342.3554687500 0.0443545207 - -0.8870512247 6340.1157226562 0.0431951955 - -0.8876516223 6340.9082031250 0.0420342870 - -0.8882505298 6341.4355468750 0.0408725441 - -0.8888478875 6340.6582031250 0.0397113450 - -0.8894437551 6341.5273437500 0.0385295153 - -0.8900380731 6341.1201171875 0.0373684131 - -0.8906309605 6340.1884765625 0.0362052098 - -0.8912222981 6340.5747070312 0.0350386836 - -0.8918120861 6342.4843750000 0.0338570699 - -0.8924004436 6343.0068359375 0.0326910242 - -0.8929871917 6341.4829101562 0.0315248407 - -0.8935725093 6340.3281250000 0.0303559229 - -0.8941562772 6339.5620117188 0.0291863233 - -0.8947385550 6342.2929687500 0.0280031152 - -0.8953192830 6341.4169921875 0.0268351957 - -0.8958985209 6341.7265625000 0.0256657489 - -0.8964762092 6341.9106445312 0.0244918279 - -0.8970524073 6341.4033203125 0.0233227313 - -0.8976270556 6340.4472656250 0.0221305415 - -0.8982001543 6340.9819335938 0.0209615640 - -0.8987718225 6341.5024414062 0.0197904967 - -0.8993418813 6339.9521484375 0.0186209492 - -0.8999104500 6340.5512695312 0.0174462795 - -0.9004775286 6340.4863281250 0.0162498578 - -0.9010429978 6340.7753906250 0.0150768943 - -0.9016070366 6340.7177734375 0.0139010809 - -0.9021694660 6341.2587890625 0.0127253085 - -0.9027304053 6339.7880859375 0.0115466304 - -0.9032897949 6339.2543945312 0.0103657432 - -0.9038476944 6342.0859375000 0.0091690086 - -0.9044039845 6340.9599609375 0.0079912581 - -0.9049587846 6341.6552734375 0.0068066493 - -0.9055120945 6339.6450195312 0.0056320503 - -0.9060637951 6340.0678710938 0.0044512600 - -0.9066140056 6340.1879882812 0.0032486543 - -0.9071626663 6340.1928710938 0.0020678677 - -0.9077097774 6340.7641601562 0.0008806586 - -0.9082553387 6339.7812500000 -0.0002922714 - -0.9087994099 6340.8632812500 -0.0014834739 - -0.9093419313 6341.1220703125 -0.0026897006 - -0.9098828435 6340.9760742188 -0.0038733743 - -0.9104222655 6340.0439453125 -0.0050589759 - -0.9109601378 6340.8701171875 -0.0062479228 - -0.9114965200 6340.0390625000 -0.0074331276 - -0.9120312929 6341.6982421875 -0.0086430255 - -0.9125645161 6341.1250000000 -0.0098324977 - -0.9130961895 6341.6523437500 -0.0110249594 - -0.9136263728 6341.9765625000 -0.0122062489 - -0.9141549468 6339.1772460938 -0.0133969095 - -0.9146819711 6340.1728515625 -0.0145882294 - -0.9152075052 6341.0522460938 -0.0157996826 - -0.9157314301 6340.9492187500 -0.0169959478 - -0.9162538052 6339.6870117188 -0.0181866754 - -0.9167746305 6340.6684570312 -0.0193814728 - -0.9172939062 6339.6059570312 -0.0205767117 - -0.9178116322 6339.7753906250 -0.0217744671 - -0.9183278084 6342.2387695312 -0.0229850598 - -0.9188424349 6341.1259765625 -0.0241817161 - -0.9193555117 6340.8725585938 -0.0253782049 - -0.9198669791 6340.9423828125 -0.0265768357 - -0.9203768969 6340.4467773438 -0.0277748145 - -0.9208853245 6338.2089843750 -0.0289762896 - -0.9213921428 6340.8798828125 -0.0301930644 - -0.9218973517 6341.0190429688 -0.0313945711 - -0.9224010706 6339.3149414062 -0.0325922593 - -0.9229031801 6339.9545898438 -0.0337900296 - -0.9234037399 6339.7133789062 -0.0349967070 - -0.9239027500 6341.2963867188 -0.0362171270 - -0.9244001508 6340.8286132812 -0.0374235921 - -0.9248960614 6340.0307617188 -0.0386285149 - -0.9253903031 6340.2426757812 -0.0398271494 - -0.9258830547 6338.7504882812 -0.0410271063 - -0.9263741970 6340.9677734375 -0.0422327071 - -0.9268637896 6339.4379882812 -0.0434627458 - -0.9273518324 6340.0117187500 -0.0446715727 - -0.9278382659 6340.9291992188 -0.0458765104 - -0.9283230901 6339.9487304688 -0.0470825508 - -0.9288064241 6341.4624023438 -0.0482865348 - -0.9292881489 6339.2182617188 -0.0494952276 - -0.9297682643 6340.4721679688 -0.0507307760 - -0.9302468300 6339.5976562500 -0.0519374087 - -0.9307238460 6340.7163085938 -0.0531512983 - -0.9311992526 6341.8881835938 -0.0543533564 - -0.9316730499 6340.2246093750 -0.0555672869 - -0.9321453571 6341.3417968750 -0.0567759946 - -0.9326159954 6339.5795898438 -0.0579911955 - -0.9330850840 6339.9189453125 -0.0592276901 - -0.9335526228 6340.5512695312 -0.0604407266 - -0.9340185523 6339.7250976562 -0.0616503507 - -0.9344828725 6340.6044921875 -0.0628648177 - -0.9349456429 6337.5795898438 -0.0640776232 - -0.9354068041 6339.7207031250 -0.0652919710 - -0.9358664155 6340.2260742188 -0.0665105134 - -0.9363244176 6340.6098632812 -0.0677423403 - -0.9367808104 6340.3686523438 -0.0689620748 - -0.9372356534 6340.6909179688 -0.0701776594 - -0.9376888871 6340.1035156250 -0.0713981837 - -0.9381405115 6339.0195312500 -0.0726151168 - -0.9385905862 6339.4619140625 -0.0738285035 - -0.9390390515 6340.1293945312 -0.0750734210 - -0.9394859076 6341.4853515625 -0.0762931854 - -0.9399312139 6338.3974609375 -0.0775143802 - -0.9403749108 6338.9179687500 -0.0787275434 - -0.9408169985 6339.6430664062 -0.0799492076 - -0.9412574768 6338.7080078125 -0.0811714828 - -0.9416964054 6339.4541015625 -0.0824177861 - -0.9421336651 6341.2504882812 -0.0836384147 - -0.9425693750 6338.8330078125 -0.0848568678 - -0.9430035353 6339.2060546875 -0.0860788152 - -0.9434360266 6339.2993164062 -0.0873049200 - -0.9438669086 6339.5639648438 -0.0885285810 - -0.9442962408 6338.6132812500 -0.0897493213 - -0.9447239637 6340.0786132812 -0.0909945965 - -0.9451500773 6339.2343750000 -0.0922229514 - -0.9455745816 6340.5175781250 -0.0934468284 - -0.9459974766 6339.1669921875 -0.0946702510 - -0.9464187622 6339.4873046875 -0.0958947539 - -0.9468384981 6340.0766601562 -0.0971219242 - -0.9472565651 6339.0415039062 -0.0983493924 - -0.9476730227 6339.6499023438 -0.0995729044 - -0.9480879307 6340.5771484375 -0.1008260250 - -0.9485011697 6339.1552734375 -0.1020502597 - -0.9489128590 6338.3427734375 -0.1032828838 - -0.9493228793 6338.9140625000 -0.1045047194 - -0.9497313499 6338.7871093750 -0.1057387292 - -0.9501381516 6338.6035156250 -0.1069633588 - -0.9505434036 6338.5913085938 -0.1081952378 - -0.9509469867 6339.4814453125 -0.1094189063 - -0.9513490200 6340.2387695312 -0.1106783003 - -0.9517493844 6338.6621093750 -0.1119062304 - -0.9521481395 6340.0771484375 -0.1131389961 - -0.9525453448 6338.6464843750 -0.1143660843 - -0.9529408813 6340.0644531250 -0.1155994534 - -0.9533348083 6337.6303710938 -0.1168284193 - -0.9537271261 6338.5971679688 -0.1180638745 - -0.9541177750 6338.8432617188 -0.1193156838 - -0.9545068741 6339.8989257812 -0.1205507815 - -0.9548943043 6337.4130859375 -0.1217815727 - -0.9552801847 6338.0737304688 -0.1230117232 - -0.9556643963 6339.0107421875 -0.1242455095 - -0.9560469985 6338.1601562500 -0.1254802048 - -0.9564279914 6337.4531250000 -0.1267148554 - -0.9568073153 6339.9975585938 -0.1279700994 - -0.9571850300 6339.6865234375 -0.1292074621 - -0.9575611949 6340.6499023438 -0.1304413229 - -0.9579356313 6339.0253906250 -0.1316732019 - -0.9583085179 6338.3989257812 -0.1329076290 - -0.9586797357 6338.5556640625 -0.1341442764 - -0.9590493441 6337.4951171875 -0.1353788078 - -0.9594173431 6338.1494140625 -0.1366127431 - -0.9597837329 6337.4101562500 -0.1378490776 - -0.9601484537 6338.7182617188 -0.1391140670 - -0.9605115652 6339.8173828125 -0.1403456181 - -0.9608730078 6339.7397460938 -0.1415839493 - -0.9612329006 6337.1909179688 -0.1428186148 - -0.9615911245 6339.6787109375 -0.1440530121 - -0.9619476795 6338.0517578125 -0.1452924609 - -0.9623026252 6338.3081054688 -0.1465284824 - -0.9626559615 6337.6220703125 -0.1477653235 - -0.9630076885 6337.9536132812 -0.1490023732 - -0.9633577466 6338.7812500000 -0.1502402127 - -0.9637061357 6337.7768554688 -0.1515022665 - -0.9640529752 6339.0781250000 -0.1527427137 - -0.9643980861 6339.0273437500 -0.1539787948 - -0.9647416472 6336.4340820312 -0.1552206129 - -0.9650835395 6337.1440429688 -0.1564546525 - -0.9654237628 6336.6762695312 -0.1576955318 - -0.9657623768 6338.6606445312 -0.1589342803 - -0.9660993814 6338.2426757812 -0.1601998657 - -0.9664347172 6338.4199218750 -0.1614397019 - -0.9667684436 6338.5595703125 -0.1626795232 - -0.9671005011 6338.8198242188 -0.1639152169 - -0.9674308896 6337.8750000000 -0.1651583165 - -0.9677596688 6337.6606445312 -0.1663957983 - -0.9680868387 6338.2832031250 -0.1676341891 - -0.9684123397 6336.5571289062 -0.1688752472 - -0.9687361717 6338.4272460938 -0.1701441705 - -0.9690583944 6339.1489257812 -0.1713807881 - -0.9693789482 6338.7622070312 -0.1726233512 - -0.9696978927 6336.2622070312 -0.1738626063 - -0.9700151682 6338.5024414062 -0.1751022637 - -0.9703308344 6337.9711914062 -0.1763427109 - -0.9706448317 6337.9287109375 -0.1775797307 - -0.9709571600 6338.5156250000 -0.1788222939 - -0.9712678790 6338.1430664062 -0.1800645292 - -0.9715769291 6337.3984375000 -0.1813022494 - -0.9718843699 6338.2680664062 -0.1825427562 - -0.9721901417 6337.3803710938 -0.1837856919 - -0.9724942446 6337.2338867188 -0.1850236803 - -0.9727966785 6337.6821289062 -0.1862659752 - -0.9730975032 6336.3720703125 -0.1875341535 - -0.9733966589 6337.4570312500 -0.1887755096 - -0.9736942053 6337.0893554688 -0.1900167763 - -0.9739900827 6335.9990234375 -0.1912580878 - -0.9742842913 6336.5922851562 -0.1924988627 - -0.9745768309 6337.4140625000 -0.1937416941 - -0.9748677611 6337.1831054688 -0.1949787885 - -0.9751570225 6336.8378906250 -0.1962226629 - -0.9754446149 6337.1040039062 -0.1974934340 - -0.9757305384 6337.0786132812 -0.1987320781 - -0.9760148525 6336.8266601562 -0.1999740601 - -0.9762974977 6337.8525390625 -0.2012165636 - -0.9765784740 6336.1000976562 -0.2024558783 - -0.9768578410 6335.2709960938 -0.2036986947 - -0.9771354795 6337.0590820312 -0.2049669921 - -0.9774115086 6337.9726562500 -0.2062094510 - -0.9776858687 6335.8154296875 -0.2074508965 - -0.9779585600 6336.9555664062 -0.2086927593 - -0.9782296419 6337.5654296875 -0.2099325657 - -0.9784989953 6337.3935546875 -0.2111746371 - -0.9787667394 6336.0014648438 -0.2124159336 - -0.9790328145 6336.2602539062 -0.2136573195 - -0.9792972207 6336.0776367188 -0.2148964554 - -0.9795599580 6337.5590820312 -0.2161390185 - -0.9798210263 6336.3305664062 -0.2173793465 - -0.9800804853 6336.6772460938 -0.2186218351 - -0.9803382158 6336.0117187500 -0.2198613584 - -0.9805943370 6336.0561523438 -0.2211022079 - -0.9808487892 6335.4467773438 -0.2223423570 - -0.9811015725 6335.4321289062 -0.2235849947 - -0.9813526273 6335.6738281250 -0.2248244882 - -0.9816021323 6334.7392578125 -0.2260656655 - -0.9818499088 6335.4384765625 -0.2273043543 - -0.9820960164 6334.7460937500 -0.2285473198 - -0.9823404551 6334.9545898438 -0.2297878265 - -0.9825832844 6334.2709960938 -0.2310277224 - -0.9828243852 6335.2709960938 -0.2322970182 - -0.9830638170 6334.6821289062 -0.2335383892 - -0.9833016396 6335.2763671875 -0.2347784042 - -0.9835377336 6334.5771484375 -0.2360185981 - -0.9837722182 6336.5849609375 -0.2372888029 - -0.9840049744 6335.9995117188 -0.2385284305 - -0.9842361212 6336.3725585938 -0.2397691458 - -0.9844655395 6336.7573242188 -0.2410383672 - -0.9846933484 6336.0195312500 -0.2422770113 - -0.9849194884 6335.8422851562 -0.2435175776 - -0.9851438999 6335.4038085938 -0.2447870523 - -0.9853667021 6337.7495117188 -0.2460259497 - -0.9855877757 6338.4130859375 -0.2472666502 - -0.9858072400 6336.2973632812 -0.2485042214 - -0.9860249758 6336.1982421875 -0.2497445643 - -0.9862410426 6336.6484375000 -0.2509833276 - -0.9864555001 6336.8847656250 -0.2522219419 - -0.9866682291 6336.8012695312 -0.2534599900 - -0.9868792892 6335.6230468750 -0.2546691597 - -0.9870886803 6336.1791992188 -0.2559066117 - -0.9872964025 6334.1840820312 -0.2571138144 - -0.9875024557 6332.8203125000 -0.2583513856 - -0.9877068400 6332.9472656250 -0.2595605552 - -0.9879095554 6331.4023437500 -0.2607658505 - -0.9881105423 6331.1318359375 -0.2619736493 - -0.9883099198 6329.9687500000 -0.2631488144 - -0.9885075688 6327.1650390625 -0.2643563449 - -0.9887036085 6325.5981445312 -0.2655310929 - -0.9888979197 6324.4716796875 -0.2667367458 - -0.9890905619 6322.2358398438 -0.2679118812 - -0.9892815351 6321.5722656250 -0.2691171169 - -0.9894708395 6319.3212890625 -0.2702912688 - -0.9896584153 6316.9365234375 -0.2714647055 - -0.9898443818 6316.2885742188 -0.2726696432 - -0.9900286198 6314.3154296875 -0.2738421857 - -0.9902111888 6313.6142578125 -0.2750479281 - -0.9903920889 6309.7138671875 -0.2762200832 - -0.9905713201 6309.0576171875 -0.2774236202 - -0.9907488823 6309.0468750000 -0.2786265910 - -0.9909247160 6306.7695312500 -0.2798307538 - -0.9910989404 6305.4506835938 -0.2810324728 - -0.9912714362 6304.6440429688 -0.2822672725 - -0.9914422631 6306.0175781250 -0.2834700048 - -0.9916114211 6304.3476562500 -0.2847029865 - -0.9917788506 31888.2070312500 -0.2890063822 - -0.9919446111 31890.1308593750 -0.2902436554 - -0.9921087027 31888.9804687500 -0.2914558649 - -0.9922711253 31888.1015625000 -0.2926931083 - -0.9924318790 31890.2050781250 -0.2939036489 - -0.9925909042 31889.4082031250 -0.2951136827 - -0.9927483201 31889.9824218750 -0.2963234484 - -0.9929039478 31889.3691406250 -0.2975330651 - -0.9930579662 31891.8242187500 -0.2987163365 - -0.9932103157 31892.2011718750 -0.2999252975 - -0.9933609366 31891.9257812500 -0.3011070192 - -0.9935098886 31891.1562500000 -0.3023144007 - -0.9936571121 31893.9804687500 -0.3034962118 - -0.9938027263 31892.5566406250 -0.3046767712 - -0.9939466119 31895.0410156250 -0.3058818579 - -0.9940888286 31894.1093750000 -0.3070621490 - -0.9942293763 31895.6933593750 -0.3082664609 - -0.9943681955 31895.7500000000 -0.3094446957 - -0.9945053458 31895.0214843750 -0.3106474280 - -0.9946408272 31895.4648437500 -0.3118255734 - -0.9947745800 31894.6718750000 -0.3130276799 - -0.9949066639 31895.1230468750 -0.3142269254 - -0.9950370789 31896.2558593750 -0.3154288530 - -0.9951658249 31897.6250000000 -0.3166534603 - -0.9952928424 31896.5136718750 -0.3178516924 - -0.9954181910 31897.5292968750 -0.3190736771 - -0.9955418706 31896.6503906250 -0.3202716410 - -0.9956638217 31897.4082031250 -0.3214929998 - -0.9957841039 31896.7539062500 -0.3227127492 - -0.9959027171 31897.5605468750 -0.3239329457 - -0.9960196018 31898.1601562500 -0.3251525462 - -0.9961348176 31898.6484375000 -0.3263701499 - -0.9962483644 31897.6621093750 -0.3275883794 - -0.9963601828 31897.5332031250 -0.3288050890 - -0.9964703321 31897.2578125000 -0.3300440013 - -0.9965788126 31897.5527343750 -0.3312607110 - -0.9966855645 31897.3886718750 -0.3324739039 - -0.9967906475 31898.7753906250 -0.3337112665 - -0.9968940020 31896.5156250000 -0.3349245787 - -0.9969957471 31898.0644531250 -0.3361367583 - -0.9970957637 31896.5292968750 -0.3373712599 - -0.9971940517 31895.4687500000 -0.3385815918 - -0.9972906709 31898.0351562500 -0.3397925198 - -0.9973856211 31895.5898437500 -0.3410014808 - -0.9974788427 31895.2246093750 -0.3422328532 - -0.9975703955 31895.9707031250 -0.3434394300 - -0.9976602793 31897.0644531250 -0.3446473181 - -0.9977484345 31895.8300781250 -0.3458545208 - -0.9978349209 31897.0996093750 -0.3470588326 - -0.9979197383 31894.6621093750 -0.3482633233 - -0.9980028272 31894.8906250000 -0.3494666517 - -0.9980842471 31895.4843750000 -0.3506706655 - -0.9981639385 31896.7246093750 -0.3518728018 - -0.9982419610 31896.1464843750 -0.3530743420 - -0.9983183146 31897.1542968750 -0.3542743623 - -0.9983929396 31897.0312500000 -0.3554748595 - -0.9984658957 31897.1406250000 -0.3566739857 - -0.9985371232 31896.4101562500 -0.3578732312 - -0.9986066818 31895.0917968750 -0.3590693772 - -0.9986745715 31897.0800781250 -0.3602666855 - -0.9987407327 31897.4531250000 -0.3614626229 - -0.9988052249 31896.1191406250 -0.3626582325 - -0.9988679886 31895.5175781250 -0.3638512790 - -0.9989290833 31896.5019531250 -0.3650460243 - -0.9989884496 31895.9746093750 -0.3662388027 - -0.9990461469 31896.6054687500 -0.3674316406 - -0.9991021752 31896.3125000000 -0.3686437905 - -0.9991564751 31896.3027343750 -0.3698356152 - -0.9992091060 31896.4511718750 -0.3710232973 - -0.9992600679 31896.6015625000 -0.3722129762 - -0.9993093014 31897.2089843750 -0.3734018803 - -0.9993568063 31895.1230468750 -0.3745862544 - -0.9994026423 31896.2421875000 -0.3757955134 - -0.9994468093 31895.6523437500 -0.3769829273 - -0.9994893074 31897.4863281250 -0.3781650364 - -0.9995300174 31894.9257812500 -0.3793490827 - -0.9995691180 31895.5000000000 -0.3805320859 - -0.9996064901 31894.8789062500 -0.3817144036 - -0.9996421337 31896.4628906250 -0.3828964233 - -0.9996761680 31894.3750000000 -0.3840761781 - -0.9997084141 31895.8242187500 -0.3852769136 - -0.9997390509 31896.0722656250 -0.3864566982 - -0.9997678995 31896.4550781250 -0.3876327276 - -0.9997951388 31895.4472656250 -0.3888106644 - -0.9998206496 31896.0917968750 -0.3899871707 - -0.9998444319 31895.9238281250 -0.3911602199 - -0.9998665452 31897.0351562500 -0.3923366964 - -0.9998869896 31895.7539062500 -0.3935110867 - -0.9999057055 31895.4980468750 -0.3946814835 - -0.9999227524 31896.6738281250 -0.3958543241 - -0.9999380708 31894.9335937500 -0.3970243335 - -0.9999517202 31896.2832031250 -0.3981941938 - -0.9999637008 31896.6250000000 -0.3993652463 - -0.9999739528 31895.4335937500 -0.4005311728 - -0.9999824762 31896.0878906250 -0.4017203748 - -0.9999893308 31897.6503906250 -0.4028887153 - -0.9999945164 31894.7226562500 -0.4040527046 - -0.9999979734 31897.1777343750 -0.4052171111 - -0.9999997616 31896.0546875000 -0.4063825607 - -0.9999998212 31895.6816406250 -0.4075437188 - -0.9999982119 31896.4746093750 -0.4087064266 - -0.9999948740 31896.7148437500 -0.4098686874 - -0.9999898672 31894.8320312500 -0.4110482335 - -0.9999831915 31895.2226562500 -0.4122077525 - -0.9999747872 31895.3066406250 -0.4133678377 - -0.9999647141 31895.1640625000 -0.4145226479 - -0.9999529123 31895.6875000000 -0.4156818986 - -0.9999394417 31895.7656250000 -0.4168362617 - -0.9999242425 31895.9921875000 -0.4179929197 - -0.9999073744 31894.2871093750 -0.4191648662 - -0.9998887777 31896.0507812500 -0.4203181267 - -0.9998685122 31895.3847656250 -0.4214698970 - -0.9998465776 31894.1503906250 -0.4226208627 - -0.9998229146 31895.7636718750 -0.4237705469 - -0.9997975826 31896.9453125000 -0.4249220490 - -0.9997705221 31895.1894531250 -0.4260684848 - -0.9997417927 31897.8613281250 -0.4272152483 - -0.9997113347 31896.7128906250 -0.4283631742 - -0.9996792078 31895.8027343750 -0.4295053184 - -0.9996453524 31894.7636718750 -0.4306707680 - -0.9996098280 31895.7324218750 -0.4318152666 - -0.9995726347 31896.0761718750 -0.4329570532 - -0.9995337129 31895.7207031250 -0.4340985715 - -0.9994931221 31896.7109375000 -0.4352402687 - -0.9994508028 31896.8925781250 -0.4363799393 - -0.9994068146 31894.9648437500 -0.4375165701 - -0.9993611574 31897.2265625000 -0.4386546612 - -0.9993137717 31896.6367187500 -0.4397941828 - -0.9992646575 31894.8046875000 -0.4409461319 - -0.9992139339 31893.9414062500 -0.4420808554 - -0.9991614223 31896.0878906250 -0.4432168007 - -0.9991073012 31894.3613281250 -0.4443497062 - -0.9990514517 31894.9394531250 -0.4454806149 - -0.9989938736 31896.5917968750 -0.4466109574 - -0.9989346266 31896.9941406250 -0.4477431476 - -0.9988737106 31894.6015625000 -0.4488861561 - -0.9988110662 31894.3769531250 -0.4500166476 - -0.9987467527 31895.9941406250 -0.4511428475 - -0.9986807704 31896.0078125000 -0.4522701502 - -0.9986130595 31896.3007812500 -0.4533930719 - -0.9985436201 31895.4316406250 -0.4545184076 - -0.9984725714 31895.8164062500 -0.4556399584 - -0.9983997345 31894.6640625000 -0.4567829072 - -0.9983252883 31894.5644531250 -0.4579002261 - -0.9982491136 31894.6953125000 -0.4590218663 - -0.9981712699 31896.1132812500 -0.4601384103 - -0.9980916977 31896.8906250000 -0.4612599909 - -0.9980104566 31894.5312500000 -0.4623724520 - -0.9979274869 31895.3417968750 -0.4634917378 - -0.9978428483 31897.1953125000 -0.4646045268 - -0.9977565408 31896.9082031250 -0.4657375813 - -0.9976685047 31894.7558593750 -0.4668473303 - -0.9975787997 31895.8046875000 -0.4679600894 - -0.9974874258 31895.5488281250 -0.4690713584 - -0.9973943233 31896.9160156250 -0.4701810777 - -0.9972995520 31894.4531250000 -0.4712871909 - -0.9972030520 31896.2539062500 -0.4723946154 - -0.9971048832 31894.7695312500 -0.4735032320 - -0.9970050454 31896.3164062500 -0.4746243954 - -0.9969035387 31894.0683593750 -0.4757261276 - -0.9968003035 31896.3886718750 -0.4768302739 - -0.9966953397 31894.8144531250 -0.4779341817 - -0.9965887666 31894.2949218750 -0.4790349007 - -0.9964804649 31895.3632812500 -0.4801324606 - -0.9963704348 31895.8105468750 -0.4812312126 - -0.9962587953 31894.8085937500 -0.4823472798 - -0.9961453676 31894.1992187500 -0.4834444523 - -0.9960303307 31896.6347656250 -0.4845421612 - -0.9959135652 31894.9003906250 -0.4856317043 - -0.9957951307 31896.4843750000 -0.4867265224 - -0.9956750274 31895.6855468750 -0.4878189564 - -0.9955531955 31895.3867187500 -0.4889291823 - -0.9954296947 31893.9023437500 -0.4900150895 - -0.9953045249 31895.5859375000 -0.4911045730 - -0.9951776266 31895.9238281250 -0.4921948612 - -0.9950490594 31896.5546875000 -0.4932811260 - -0.9949188232 31896.1054687500 -0.4943689108 - -0.9947869182 31894.2304687500 -0.4954653382 - -0.9946532845 31894.9667968750 -0.4965507984 - -0.9945179820 31895.2265625000 -0.4976339340 - -0.9943809509 31895.1367187500 -0.4987137318 - -0.9942422509 31896.2539062500 -0.4997945428 - -0.9941019416 31895.6914062500 -0.5008715987 - -0.9939598441 31895.1640625000 -0.5019493699 - -0.9938161373 31896.4570312500 -0.5030432343 - -0.9936707020 31895.5292968750 -0.5041202903 - -0.9935235977 31895.3554687500 -0.5051933527 - -0.9933748245 31895.4746093750 -0.5062683821 - -0.9932243228 31895.5917968750 -0.5073367357 - -0.9930721521 31895.8964843750 -0.5084106326 - -0.9929183125 31894.9648437500 -0.5094782710 - -0.9927628040 31894.6777343750 -0.5105651617 - -0.9926055670 31897.2460937500 -0.5116339922 - -0.9924466610 31897.5332031250 -0.5126982927 - -0.9922860861 31895.7343750000 -0.5137627125 - -0.9921238422 31894.4550781250 -0.5148262382 - -0.9919599295 31894.5839843750 -0.5158910155 - -0.9917942882 31895.6894531250 -0.5169696808 - -0.9916269779 31895.9394531250 -0.5180305243 - -0.9914579988 31896.9023437500 -0.5190883279 - -0.9912873507 31895.2128906250 -0.5201429725 - -0.9911149740 31895.9003906250 -0.5212018490 - -0.9909409285 31895.7988281250 -0.5222595334 - -0.9907652140 31896.2343750000 -0.5233281851 - -0.9905878305 31894.5878906250 -0.5243846178 - -0.9904087782 31895.6562500000 -0.5254361033 - -0.9902280569 31897.3476562500 -0.5264857411 - -0.9900456071 31895.3203125000 -0.5275363326 - -0.9898614883 31895.1035156250 -0.5285984874 - -0.9896757603 31895.0214843750 -0.5296481848 - -0.9894882441 31895.5878906250 -0.5306947231 - -0.9892991185 31897.1757812500 -0.5317415595 - -0.9891083241 31896.2226562500 -0.5327854753 - -0.9889158010 31895.9042968750 -0.5338285565 - -0.9887216687 31895.3574218750 -0.5348816514 - -0.9885258079 31894.3828125000 -0.5359236598 - -0.9883282781 31896.3515625000 -0.5369653702 - -0.9881290793 31895.4003906250 -0.5380027890 - -0.9879282117 31895.3867187500 -0.5390390158 - -0.9877256751 31894.5742187500 -0.5400769711 - -0.9875214696 31896.1718750000 -0.5411255956 - -0.9873155951 31895.5371093750 -0.5421594977 - -0.9871079922 31896.0605468750 -0.5431923270 - -0.9868987799 31895.9121093750 -0.5442169309 - -0.9866878390 31895.5898437500 -0.5452492237 - -0.9864752293 31896.1562500000 -0.5462782383 - -0.9862610102 31896.0449218750 -0.5473212600 - -0.9860450625 31895.7695312500 -0.5483461618 - -0.9858274460 31895.2695312500 -0.5493726730 - -0.9856081605 31895.0996093750 -0.5503960252 - -0.9853872061 31897.1777343750 -0.5514177084 - -0.9851646423 31895.1445312500 -0.5524536967 - -0.9849403501 31894.8925781250 -0.5534772873 - -0.9847143888 31895.0429687500 -0.5544907451 - -0.9844867587 31893.1464843750 -0.5555102825 - -0.9842574596 31894.8593750000 -0.5565271378 - -0.9840264916 31896.5800781250 -0.5575571656 - -0.9837938547 31896.5566406250 -0.5585709214 - -0.9835595489 31896.3300781250 -0.5595803261 - -0.9833235741 31895.0800781250 -0.5605949759 - -0.9830859303 31896.3281250000 -0.5616044402 - -0.9828466177 31896.6406250000 -0.5626267195 - -0.9826056361 31894.7675781250 -0.5636364222 - -0.9823630452 31894.7734375000 -0.5646440983 - -0.9821187258 31895.6640625000 -0.5656493902 - -0.9818727374 31895.5097656250 -0.5666546226 - -0.9816251397 31896.4804687500 -0.5676572919 - -0.9813758135 31895.6015625000 -0.5686727166 - -0.9811248779 31894.4492187500 -0.5696744323 - -0.9808722734 31893.7031250000 -0.5706707835 - -0.9806179404 31895.1875000000 -0.5716683269 - -0.9803619981 31896.8984375000 -0.5726655722 - -0.9801043868 31895.8847656250 -0.5736746192 - -0.9798451662 31895.8847656250 -0.5746685266 - -0.9795842171 31895.4335937500 -0.5756644011 - -0.9793215990 31895.9492187500 -0.5766569972 - -0.9790573716 31896.3984375000 -0.5776473880 - -0.9787914157 31894.3339843750 -0.5786476135 - -0.9785238504 31895.9335937500 -0.5796374679 - -0.9782546163 31895.4765625000 -0.5806263089 - -0.9779837728 31895.7656250000 -0.5816116929 - -0.9777112007 31896.0683593750 -0.5825991631 - -0.9774370193 31895.7578125000 -0.5835938454 - -0.9771611094 31894.8828125000 -0.5845774412 - -0.9768835902 31895.9414062500 -0.5855581164 - -0.9766044021 31896.1503906250 -0.5865387321 - -0.9763236046 31896.2011718750 -0.5875303149 - -0.9760411382 31896.8183593750 -0.5885077715 - -0.9757569432 31895.8300781250 -0.5894842148 - -0.9754711986 31897.2460937500 -0.5904614925 - -0.9751837254 31896.9335937500 -0.5914345384 - -0.9748946428 31894.6542968750 -0.5924186110 - -0.9746038318 31896.6289062500 -0.5933895707 - -0.9743114710 31894.7773437500 -0.5943630338 - -0.9740173817 31895.7382812500 -0.5953352451 - -0.9737216830 31895.7382812500 -0.5963020325 - -0.9734243155 31894.3183593750 -0.5972817540 - -0.9731252789 31895.6914062500 -0.5982468128 - -0.9728246331 31895.4414062500 -0.5992087722 - -0.9725223184 31893.5703125000 -0.6001759171 - -0.9722183347 31896.8046875000 -0.6011378169 - -0.9719127417 31894.5937500000 -0.6021099091 - -0.9716054797 31895.2714843750 -0.6030697823 - -0.9712966084 31895.2792968750 -0.6040295959 - -0.9709860086 31896.4257812500 -0.6049879193 - -0.9706738591 31895.1367187500 -0.6059560180 - -0.9703599811 31896.0605468750 -0.6069120169 - -0.9700444937 31895.3222656250 -0.6078667045 - -0.9697273374 31896.4375000000 -0.6088235378 - -0.9694085717 31897.2109375000 -0.6097777486 - -0.9690881968 31896.9179687500 -0.6107385755 - -0.9687660933 31895.3867187500 -0.6116868854 - -0.9684423804 31894.9277343750 -0.6126401424 - -0.9681170583 31896.4082031250 -0.6135866046 - -0.9677900672 31896.1328125000 -0.6145462990 - -0.9674614072 31896.4296875000 -0.6154896021 - -0.9671311378 31896.1621093750 -0.6164348125 - -0.9667992592 31897.5136718750 -0.6173799038 - -0.9664657116 31895.2109375000 -0.6183302402 - -0.9661304951 31896.2324218750 -0.6192731857 - -0.9657936692 31894.8515625000 -0.6202135086 - -0.9654552341 31895.9238281250 -0.6211535335 - -0.9651151299 31896.6503906250 -0.6221025586 - -0.9647733569 31897.2519531250 -0.6230409145 - -0.9644299746 31896.0488281250 -0.6239786148 - -0.9640849829 31896.2988281250 -0.6249122620 - -0.9637383819 31896.2773437500 -0.6258502007 - -0.9633900523 31896.6953125000 -0.6267932057 - -0.9630401731 31895.8105468750 -0.6277245879 - -0.9626886249 31896.9726562500 -0.6286569834 - -0.9623354673 31894.9609375000 -0.6295870543 - -0.9619806409 31895.1093750000 -0.6305271387 - -0.9616242051 31896.0371093750 -0.6314560175 - -0.9612661600 31896.2968750000 -0.6323896646 - -0.9609064460 31896.6894531250 -0.6333174109 - -0.9605451226 31896.6503906250 -0.6342511177 - -0.9601821303 31896.2460937500 -0.6351745129 - -0.9598175883 31895.8671875000 -0.6360964179 - -0.9594513774 31895.8789062500 -0.6370244026 - -0.9590835571 31896.8554687500 -0.6379562616 - -0.9587140679 31895.8535156250 -0.6388769746 - -0.9583429694 31896.0019531250 -0.6398005486 - -0.9579702616 31896.8359375000 -0.6407225728 - -0.9575959444 31895.5566406250 -0.6416485310 - -0.9572199583 31894.5253906250 -0.6425679922 - -0.9568423629 31895.8281250000 -0.6434873939 - -0.9564631581 31897.7128906250 -0.6444041729 - -0.9560823441 31895.2714843750 -0.6453264356 - -0.9556999207 31896.8984375000 -0.6462480426 - -0.9553158283 31897.3300781250 -0.6471608281 - -0.9549301267 31896.5253906250 -0.6480777860 - -0.9545428157 31894.9882812500 -0.6489965916 - -0.9541538954 31894.9140625000 -0.6499094367 - -0.9537633657 31895.5019531250 -0.6508217454 - -0.9533712268 31896.0644531250 -0.6517350674 - -0.9529774189 31896.3847656250 -0.6526586413 - -0.9525820613 31897.0292968750 -0.6535676122 - -0.9521850348 31896.3164062500 -0.6544747949 - -0.9517863989 31895.8261718750 -0.6553853154 - -0.9513861537 31896.1894531250 -0.6563010812 - -0.9509842992 31895.6503906250 -0.6572135687 - -0.9505808353 31896.9765625000 -0.6581224203 - -0.9501757622 31895.3964843750 -0.6590285301 - -0.9497690797 31897.6191406250 -0.6599439383 - -0.9493607879 31896.2910156250 -0.6608484387 - -0.9489508867 31896.5683593750 -0.6617584825 - -0.9485393763 31896.3066406250 -0.6626647711 - -0.9481262565 31895.5019531250 -0.6635745764 - -0.9477115273 31895.3476562500 -0.6644809246 - -0.9472951889 31895.5722656250 -0.6653853655 - -0.9468772411 31894.9609375000 -0.6662994027 - -0.9464577436 31895.4902343750 -0.6672058105 - -0.9460365772 31896.8808593750 -0.6681084633 - -0.9456138015 31895.3554687500 -0.6690100431 - -0.9451894760 31894.3144531250 -0.6699196100 - -0.9447634816 31897.4375000000 -0.6708269119 - -0.9443359375 31896.8828125000 -0.6717305183 - -0.9439067841 31897.3320312500 -0.6726312637 - -0.9434760213 31895.1992187500 -0.6735439301 - -0.9430436492 31898.6914062500 -0.6744480729 - -0.9426096678 31895.6464843750 -0.6753501892 - -0.9421741366 31895.3457031250 -0.6762607098 - -0.9417369366 31895.8945312500 -0.6771600246 - -0.9412981868 31896.6582031250 -0.6780675054 - -0.9408578873 31897.2343750000 -0.6789696217 - -0.9404159188 31895.6523437500 -0.6798787117 - -0.9399724007 31896.5742187500 -0.6807805300 - -0.9395272136 31897.6308593750 -0.6816869378 - -0.9390805364 31895.2167968750 -0.6825969219 - -0.9386321902 31896.8457031250 -0.6835013628 - -0.9381822944 31897.0058593750 -0.6844044924 - -0.9377307892 31896.1894531250 -0.6853083372 - -0.9372776747 31895.2460937500 -0.6862210035 - -0.9368230104 31896.5742187500 -0.6871251464 - -0.9363667369 31895.6289062500 -0.6880318522 - -0.9359089136 31896.1601562500 -0.6889462471 - -0.9354494810 31896.4687500000 -0.6898493171 - -0.9349884391 31895.3398437500 -0.6907587647 - -0.9345257878 31897.5058593750 -0.6916673779 - -0.9340615869 31896.2890625000 -0.6925790906 - -0.9335958362 31895.4042968750 -0.6934900880 - -0.9331284761 31896.1953125000 -0.6943970919 - -0.9326595068 31895.5664062500 -0.6953155398 - -0.9321889877 31896.1113281250 -0.6962234378 - -0.9317168593 31896.7421875000 -0.6971379519 - -0.9312431812 31894.6054687500 -0.6980482340 - -0.9307679534 31897.1601562500 -0.6989680529 - -0.9302911162 31896.2871093750 -0.6998814940 - -0.9298126698 31896.4921875000 -0.7007985115 - -0.9293326735 31897.5703125000 -0.7017164826 - -0.9288510680 31894.8066406250 -0.7026337385 - -0.9283679724 31896.1503906250 -0.7035560608 - -0.9278832078 31896.1621093750 -0.7044759393 - -0.9273969531 31896.7714843750 -0.7053993344 - -0.9269090891 31895.9199218750 -0.7063196898 - -0.9264196157 31896.6367187500 -0.7072446346 - -0.9259285927 31896.7089843750 -0.7081717849 - -0.9254360199 31896.3457031250 -0.7090948820 - -0.9249418974 31896.1816406250 -0.7100203633 - -0.9244461656 31896.7460937500 -0.7109566927 - -0.9239488840 31896.7539062500 -0.7118868828 - -0.9234500527 31897.4824218750 -0.7128160000 - -0.9229496121 31897.6464843750 -0.7137519717 - -0.9224476218 31896.9296875000 -0.7146874666 - -0.9219440818 31896.8984375000 -0.7156226039 - -0.9214389920 31897.9746093750 -0.7165585756 - -0.9209322929 31896.5878906250 -0.7175015211 - -0.9204241037 31897.8613281250 -0.7184420228 - -0.9199143052 31897.4257812500 -0.7193856239 - -0.9194029570 31895.3476562500 -0.7203294039 - -0.9188899994 31895.4667968750 -0.7212771177 - -0.9183755517 31895.9492187500 -0.7222270966 - -0.9178595543 31895.8085937500 -0.7231738567 - -0.9173419476 31897.3183593750 -0.7241267562 - -0.9168227911 31895.6015625000 -0.7250845432 - -0.9163021445 31895.1894531250 -0.7260392904 - -0.9157798886 31896.7792968750 -0.7269968987 - -0.9152560830 31894.7421875000 -0.7279592752 - -0.9147307277 31896.6933593750 -0.7289237380 - -0.9142038226 31895.8007812500 -0.7298867702 - -0.9136753678 31896.7910156250 -0.7308518887 - -0.9131453633 31896.1445312500 -0.7318283319 - -0.9126138091 31894.6191406250 -0.7327961326 - -0.9120807648 31896.9199218750 -0.7337688208 - -0.9115461111 31895.5058593750 -0.7347477078 - -0.9110099077 31896.2304687500 -0.7357279062 - -0.9104721546 31897.1972656250 -0.7367085218 - -0.9099329114 31895.5214843750 -0.7376964092 - -0.9093920588 31896.3183593750 -0.7386830449 - -0.9088497162 31895.9843750000 -0.7396702766 - -0.9083058238 31895.5351562500 -0.7406594157 - -0.9077603817 31896.1679687500 -0.7416552901 - -0.9072133899 31895.9550781250 -0.7426518798 - -0.9066649079 31895.8496093750 -0.7436508536 - -0.9061148167 31897.7910156250 -0.7446519732 - -0.9055632353 31897.2304687500 -0.7456602454 - -0.9050101042 31897.1914062500 -0.7466650605 - -0.9044554830 31895.6914062500 -0.7476770878 - -0.9038992524 31897.5351562500 -0.7486897111 - -0.9033415318 31896.6093750000 -0.7497082949 - -0.9027822614 31895.1171875000 -0.7507181168 - -0.9022215009 31896.7207031250 -0.7517474294 - -0.9016591907 31895.5175781250 -0.7527733445 - -0.9010953307 31896.3847656250 -0.7537989616 - -0.9005299807 31895.9023437500 -0.7548303604 - -0.8999630809 31896.4941406250 -0.7558609247 - -0.8993946314 31895.7187500000 -0.7568957806 - -0.8988246918 31897.0136718750 -0.7579411268 - -0.8982532024 31896.9414062500 -0.7589842081 - -0.8976802230 31895.5214843750 -0.7600291371 - -0.8971056938 31897.6132812500 -0.7610748410 - -0.8965296149 31896.2441406250 -0.7621251941 - -0.8959520459 31896.0527343750 -0.7631784678 - -0.8953729868 31897.2441406250 -0.7642346025 - -0.8947923779 31896.0136718750 -0.7652909756 - -0.8942102790 31895.7871093750 -0.7663541436 - -0.8936266303 31897.3359375000 -0.7674206495 - -0.8930414915 31897.0800781250 -0.7684940100 - -0.8924548626 31897.0507812500 -0.7695584297 - -0.8918666840 31897.5507812500 -0.7706351280 - -0.8912769556 31897.4785156250 -0.7717146277 - -0.8906857967 31896.6777343750 -0.7727956176 - -0.8900930882 31896.5214843750 -0.7738793492 - -0.8894988894 31895.5859375000 -0.7749627829 - -0.8889031410 31897.2753906250 -0.7760473490 - -0.8883059025 31896.4863281250 -0.7771413922 - -0.8877071738 31896.7226562500 -0.7782285810 - -0.8871068954 31897.5117187500 -0.7793248892 - -0.8865051866 31898.0605468750 -0.7804217935 - -0.8859019279 31897.2558593750 -0.7815233469 - -0.8852971792 31895.5781250000 -0.7826316357 - -0.8846909404 31895.6074218750 -0.7837361097 - -0.8840831518 31896.6542968750 -0.7848407030 - -0.8834739327 31897.5722656250 -0.7859517932 - -0.8828631639 31897.2226562500 -0.7870561481 - -0.8822509050 31895.6503906250 -0.7881715298 - -0.8816371560 31897.3906250000 -0.7892921567 - -0.8810219169 31895.7734375000 -0.7904065847 - -0.8804051876 31896.4726562500 -0.7915222645 - -0.8797869682 31894.8906250000 -0.7926484346 - -0.8791672587 31897.4804687500 -0.7937715650 - -0.8785460591 31896.7304687500 -0.7948992252 - -0.8779233694 31896.6523437500 -0.7960247397 - -0.8772991896 31896.8710937500 -0.7971565723 - -0.8766735196 31896.5566406250 -0.7982766032 - -0.8760463595 31896.1347656250 -0.7994151115 - -0.8754177094 31898.1289062500 -0.8005414009 - -0.8747876287 31896.5234375000 -0.8016784191 - -0.8741559982 31897.7343750000 -0.8028116226 - -0.8735228777 31897.5175781250 -0.8039524555 - -0.8728883266 31896.8164062500 -0.8050922751 - -0.8722522855 31896.9296875000 -0.8062246442 - -0.8716147542 31898.7226562500 -0.8073619008 - -0.8709757328 31896.5644531250 -0.8084939718 - -0.8703352213 31897.5527343750 -0.8096301556 - -0.8696932793 31896.7968750000 -0.8107780218 - -0.8690498471 31895.8457031250 -0.8119107485 - -0.8684049249 31897.9160156250 -0.8130499721 - -0.8677585721 31896.1542968750 -0.8141756058 - -0.8671107292 31896.5917968750 -0.8153353333 - -0.8664613962 31896.9765625000 -0.8164671063 - -0.8658105731 31896.7851562500 -0.8176024556 - -0.8651583195 31897.1015625000 -0.8187355995 - -0.8645046353 31897.2031250000 -0.8198743463 - -0.8638494015 31896.4140625000 -0.8210124373 - -0.8631927371 31897.2246093750 -0.8221396208 - -0.8625346422 31897.0625000000 -0.8232840896 - -0.8618750572 31896.8398437500 -0.8244179487 - -0.8612140417 31897.0625000000 -0.8255436420 - -0.8605515361 31896.9667968750 -0.8266658187 - -0.8598875403 31897.3867187500 -0.8277975917 - -0.8592221141 31896.2753906250 -0.8289267421 - -0.8585552573 31896.3613281250 -0.8300459981 - -0.8578869104 31897.4277343750 -0.8311753273 - -0.8572171330 31896.9863281250 -0.8322943449 - -0.8565458655 31897.0703125000 -0.8334034085 - -0.8558731675 31896.8339843750 -0.8345194459 - -0.8551990390 31897.1347656250 -0.8356350660 - -0.8545234799 31897.1777343750 -0.8367497921 - -0.8538464308 31896.4667968750 -0.8378506303 - -0.8531678915 31897.1464843750 -0.8389596939 - -0.8524879813 31897.2265625000 -0.8400598168 - -0.8518065810 31896.7832031250 -0.8411568403 - -0.8511237502 31896.9785156250 -0.8422501087 - -0.8504394889 31896.6074218750 -0.8433333635 - -0.8497537971 31896.2343750000 -0.8444356918 - -0.8490666151 31897.9296875000 -0.8455114961 - -0.8483780622 31895.8027343750 -0.8465947509 - -0.8476880193 31896.9023437500 -0.8476617336 - -0.8469965458 31897.5664062500 -0.8487420678 - -0.8463036418 31896.5175781250 -0.8498134613 - -0.8456093073 31898.7011718750 -0.8508656025 - -0.8449135423 31896.8476562500 -0.8519285917 - -0.8442163467 31896.8066406250 -0.8529812694 - -0.8435177207 31897.5644531250 -0.8540347219 - -0.8428176641 31897.7871093750 -0.8550792336 - -0.8421161175 31896.6699218750 -0.8561209440 - -0.8414131999 31898.1542968750 -0.8571590781 - -0.8407088518 31896.0800781250 -0.8581913114 - -0.8400030732 31896.4882812500 -0.8592199087 - -0.8392959237 31896.9238281250 -0.8602299094 - -0.8385872841 31896.7070312500 -0.8612502813 - -0.8378772140 31896.8066406250 -0.8622606397 - -0.8371657729 31897.3847656250 -0.8632664084 - -0.8364529014 31894.9023437500 -0.8642680645 - -0.8357385993 31896.5292968750 -0.8652594686 - -0.8350228667 31895.8574218750 -0.8662459850 - -0.8343057036 31897.4687500000 -0.8672282696 - -0.8335871696 31895.7578125000 -0.8682062030 - -0.8328672051 31897.2363281250 -0.8691781759 - -0.8321458697 31897.5000000000 -0.8701403737 - -0.8314230442 31896.6679687500 -0.8710995913 - -0.8306988478 31895.5605468750 -0.8720518351 - -0.8299732804 31895.6718750000 -0.8729966283 - -0.8292462826 31897.2441406250 -0.8739398718 - -0.8285178542 31897.9628906250 -0.8748795390 - -0.8277879953 31897.5097656250 -0.8758082986 - -0.8270568252 31896.6406250000 -0.8767320514 - -0.8263241649 31896.5410156250 -0.8776426315 - -0.8255901337 31897.3457031250 -0.8785538077 - -0.8248547316 31895.5996093750 -0.8794523478 - -0.8241178989 31896.4648437500 -0.8803574443 - -0.8233796954 31896.6816406250 -0.8812460303 - -0.8226400614 31897.3906250000 -0.8821311593 - -0.8218990564 31897.6601562500 -0.8830100298 - -0.8211566210 31897.1621093750 -0.8838849664 - -0.8204128146 31897.2304687500 -0.8847465515 - -0.8196676373 31897.3750000000 -0.8856039643 - -0.8189210892 31895.8691406250 -0.8864597082 - -0.8181731105 31896.0878906250 -0.8873008490 - -0.8174237609 31897.2871093750 -0.8881465197 - -0.8166729808 31896.1230468750 -0.8889754415 - -0.8159208894 31896.2675781250 -0.8898028135 - -0.8151673675 31897.6640625000 -0.8906216621 - -0.8144124746 31895.5195312500 -0.8914337158 - -0.8136562109 31897.0351562500 -0.8922446966 - -0.8128985763 31897.1328125000 -0.8930437565 - -0.8121395111 31895.8730468750 -0.8938395381 - -0.8113791347 31896.6230468750 -0.8946256638 - -0.8106173277 31895.9589843750 -0.8954073191 - -0.8098542094 31896.3847656250 -0.8961902857 - -0.8090896606 31895.5800781250 -0.8969480395 - -0.8083237410 31896.6835937500 -0.8977171779 - -0.8075565100 31895.2207031250 -0.8984705210 - -0.8067878485 31896.7089843750 -0.8992193341 - -0.8060178161 31897.5351562500 -0.8999670148 - -0.8052464724 31895.8437500000 -0.9007037282 - -0.8044736981 31897.2304687500 -0.9014362693 - -0.8036996126 31897.2636718750 -0.9021605849 - -0.8029241562 31897.9453125000 -0.9028800726 - -0.8021473289 31896.0312500000 -0.9035905600 - -0.8013691306 31896.0097656250 -0.9042992592 - -0.8005895615 31896.1738281250 -0.9050000310 - -0.7998086810 31895.6425781250 -0.9056951404 - -0.7990264297 31896.0156250000 -0.9063835740 - -0.7982428074 31896.2910156250 -0.9070685506 - -0.7974578142 31895.4589843750 -0.9077487588 - -0.7966715097 31897.2617187500 -0.9084192514 - -0.7958838344 31896.1972656250 -0.9090866446 - -0.7950948477 31895.4863281250 -0.9097443819 - -0.7943044901 31897.0449218750 -0.9103979468 - -0.7935127616 31894.7109375000 -0.9110451341 - -0.7927196622 31896.1835937500 -0.9116916060 - -0.7919253111 31896.7871093750 -0.9123288989 - -0.7911295295 31895.9003906250 -0.9129598141 - -0.7903324366 31896.6855468750 -0.9135890603 - -0.7895340323 31894.8417968750 -0.9142086506 - -0.7887342572 31896.7851562500 -0.9148247838 - -0.7879331708 31895.2539062500 -0.9154344797 - -0.7871307135 31895.6816406250 -0.9160429835 - -0.7863269448 31897.3925781250 -0.9166415930 - -0.7855218053 31895.9218750000 -0.9172362685 - -0.7847154140 31895.9570312500 -0.9178321362 - -0.7839076519 31895.4687500000 -0.9184157252 - -0.7830985188 31895.3593750000 -0.9189944863 - -0.7822880745 31897.5156250000 -0.9195724130 - -0.7814763188 31897.9277343750 -0.9201427102 - -0.7806632519 31896.6816406250 -0.9207087755 - -0.7798488736 31898.1308593750 -0.9212699533 - -0.7790331244 31897.0292968750 -0.9218276739 - -0.7782161236 31896.9804687500 -0.9223797321 - -0.7773977518 31897.7109375000 -0.9229258895 - -0.7765780687 31897.5292968750 -0.9234694839 - -0.7757570744 31896.7558593750 -0.9240072370 - -0.7749347687 31896.7519531250 -0.9245425463 - -0.7741110921 31896.3906250000 -0.9250686765 - -0.7732861638 31896.4453125000 -0.9255945086 - -0.7724599242 31896.7734375000 -0.9261183143 - -0.7716323733 31896.7089843750 -0.9266353846 - -0.7708035111 31895.9980468750 -0.9271479845 - -0.7699733377 31896.8847656250 -0.9276572466 - -0.7691418529 31896.2539062500 -0.9281597733 - -0.7683090568 31896.2031250000 -0.9286615252 - -0.7674749494 31894.8750000000 -0.9291560054 - -0.7666395903 31897.6445312500 -0.9296488762 - -0.7658029199 31896.6445312500 -0.9301413298 - -0.7649648786 31896.4843750000 -0.9306243062 - -0.7641256452 31897.2558593750 -0.9311056137 - -0.7632850409 31894.7695312500 -0.9315807819 - -0.7624431849 31896.7929687500 -0.9320608974 - -0.7616000175 31896.2695312500 -0.9325271845 - -0.7607555389 31895.5644531250 -0.9329933524 - -0.7599098086 31896.3828125000 -0.9334552288 - -0.7590627670 31895.3496093750 -0.9339190722 - -0.7582144737 31896.4746093750 -0.9343751669 - -0.7573648095 31897.6718750000 -0.9348286390 - -0.7565139532 31895.5195312500 -0.9352786541 - -0.7556617856 31896.5917968750 -0.9357225299 - -0.7548083067 31896.2363281250 -0.9361677766 - -0.7539535761 31895.8339843750 -0.9366071224 - -0.7530975938 31896.6464843750 -0.9370455742 - -0.7522403002 31895.2792968750 -0.9374730587 - -0.7513816953 31896.4082031250 -0.9379072785 - -0.7505218983 31897.0664062500 -0.9383366704 - -0.7496607304 31896.9472656250 -0.9387612343 - -0.7487983704 31895.2753906250 -0.9391797781 - -0.7479346991 31897.7226562500 -0.9396014214 - -0.7470697761 31896.6582031250 -0.9400151968 - -0.7462036014 31895.7734375000 -0.9404287338 - -0.7453361750 31897.4140625000 -0.9408413768 - -0.7444674373 31896.7539062500 -0.9412471056 - -0.7435974479 31896.0175781250 -0.9416524172 - -0.7427262068 31895.3789062500 -0.9420542121 - -0.7418537140 31895.7792968750 -0.9424530268 - -0.7409799695 31898.7500000000 -0.9428535700 - -0.7401049733 31895.3359375000 -0.9432449937 - -0.7392287254 31897.5585937500 -0.9436370134 - -0.7383511662 31896.9667968750 -0.9440281391 - -0.7374724150 31897.5312500000 -0.9444144368 - -0.7365923524 31894.4257812500 -0.9447928667 - -0.7357110977 31895.4550781250 -0.9451803565 - -0.7348285913 31897.0000000000 -0.9455584288 - -0.7339448333 31895.5703125000 -0.9459348321 - -0.7330598235 31894.9277343750 -0.9463105798 - -0.7321735620 31895.7832031250 -0.9466880560 - -0.7312860489 31895.5195312500 -0.9470553398 - -0.7303973436 31895.6582031250 -0.9474216104 - -0.7295073867 31896.4492187500 -0.9477921724 - -0.7286161780 31896.7011718750 -0.9481523037 - -0.7277237177 31896.4726562500 -0.9485133886 - -0.7268300653 31897.7109375000 -0.9488705397 - -0.7259351611 31895.5507812500 -0.9492376447 - -0.7250390053 31897.0058593750 -0.9495921731 - -0.7241415977 31895.7148437500 -0.9499435425 - -0.7232429981 31896.3886718750 -0.9502921104 - -0.7223432064 31896.0156250000 -0.9506458640 - -0.7214421630 31896.4628906250 -0.9509927034 - -0.7205398679 31897.1816406250 -0.9513376951 - -0.7196363807 31896.4355468750 -0.9516776204 - -0.7187317014 31896.1796875000 -0.9520233870 - -0.7178257704 31895.6308593750 -0.9523677826 - -0.7169185877 31894.9511718750 -0.9527017474 - -0.7160102129 31895.1777343750 -0.9530377388 - -0.7151006460 31896.6425781250 -0.9533741474 - -0.7141898870 31897.4687500000 -0.9537059069 - -0.7132778764 31896.9472656250 -0.9540355206 - -0.7123646736 31895.4003906250 -0.9543686509 - -0.7114502192 31897.8417968750 -0.9547003508 - -0.7105346322 31895.9257812500 -0.9550231695 - -0.7096177936 31894.7656250000 -0.9553432465 - -0.7086997628 31895.6425781250 -0.9556679726 - -0.7077805400 31897.0371093750 -0.9559901357 - -0.7068600655 31896.1796875000 -0.9563069344 - -0.7059384584 31896.0234375000 -0.9566334486 - -0.7050155997 31896.9472656250 -0.9569461346 - -0.7040916085 31896.0253906250 -0.9572631717 - -0.7031663656 31896.0859375000 -0.9575760365 - -0.7022399902 31896.3300781250 -0.9578890800 - -0.7013123631 31896.6718750000 -0.9581934810 - -0.7003836036 31896.7949218750 -0.9585077763 - -0.6994535923 31896.3750000000 -0.9588123560 - -0.6985224485 31896.2207031250 -0.9591198564 - -0.6975901127 31895.2109375000 -0.9594288468 - -0.6966565847 31895.1035156250 -0.9597327113 - -0.6957218647 31897.0878906250 -0.9600338936 - -0.6947859526 31895.8945312500 -0.9603322744 - -0.6938489079 31896.8554687500 -0.9606293440 - -0.6929106712 31896.4648437500 -0.9609315991 - -0.6919712424 31896.4199218750 -0.9612272382 - -0.6910306215 31896.1796875000 -0.9615183473 - -0.6900888681 31897.3906250000 -0.9618138671 - -0.6891459227 31896.7558593750 -0.9621040821 - -0.6882018447 31896.1406250000 -0.9623985887 - -0.6872565746 31895.1015625000 -0.9626872540 - -0.6863101125 31896.3437500000 -0.9629763365 - -0.6853625178 31895.3710937500 -0.9632601738 - -0.6844137907 31897.5957031250 -0.9635543823 - -0.6834638715 31896.2460937500 -0.9638331532 - -0.6825127602 31896.5976562500 -0.9641177058 - -0.6815605164 31896.1757812500 -0.9643961787 - -0.6806071401 31896.5625000000 -0.9646843672 - -0.6796525717 31895.0527343750 -0.9649619460 - -0.6786968708 31895.5781250000 -0.9652383327 - -0.6777400374 31897.0019531250 -0.9655142426 - -0.6767820716 31897.3261718750 -0.9657986164 - -0.6758229136 31896.5000000000 -0.9660688639 - -0.6748626232 31895.5195312500 -0.9663444161 - -0.6739012003 31896.1074218750 -0.9666175246 - -0.6729385853 31895.2910156250 -0.9668873549 - -0.6719748974 31896.4765625000 -0.9671649337 - -0.6710100174 31895.4199218750 -0.9674298763 - -0.6700440049 31895.4589843750 -0.9676975608 - -0.6690769196 31894.7363281250 -0.9679624438 - -0.6681086421 31896.9042968750 -0.9682361484 - -0.6671392322 31893.6816406250 -0.9684965014 - -0.6661686897 31895.7128906250 -0.9687577486 - -0.6651970148 31895.8242187500 -0.9690178037 - -0.6642242670 31894.4140625000 -0.9692767859 - -0.6632503271 31895.9433593750 -0.9695442319 - -0.6622753143 31895.7441406250 -0.9698033333 - -0.6612991095 31894.9121093750 -0.9700598717 - -0.6603218317 31896.8613281250 -0.9703164101 - -0.6593434811 31894.7617187500 -0.9705693126 - -0.6583639383 31897.1484375000 -0.9708310366 - -0.6573833227 31897.2812500000 -0.9710859656 - -0.6564015746 31895.9453125000 -0.9713327885 - -0.6554186940 31896.9648437500 -0.9715833068 - -0.6544347405 31896.2968750000 -0.9718331099 - -0.6534496546 31896.3066406250 -0.9720904231 - -0.6524634361 31896.0722656250 -0.9723345637 - -0.6514761448 31894.9570312500 -0.9725807905 - -0.6504877210 31895.8574218750 -0.9728291631 - -0.6494982243 31896.3027343750 -0.9730782509 - -0.6485075951 31896.0468750000 -0.9733188748 - -0.6475158930 31895.6464843750 -0.9735618234 - -0.6465231180 31896.0117187500 -0.9738045335 - -0.6455292106 31894.3710937500 -0.9740460515 - -0.6445342302 31896.6132812500 -0.9742916226 - -0.6435381174 31896.1093750000 -0.9745264053 - -0.6425409317 31895.6210937500 -0.9747640491 - -0.6415426731 31896.0781250000 -0.9750022292 - -0.6405433416 31896.0390625000 -0.9752367139 - -0.6395428777 31896.9687500000 -0.9754816294 - -0.6385413408 31895.3222656250 -0.9757098556 - -0.6375387311 31893.8964843750 -0.9759391546 - -0.6365350485 31894.5214843750 -0.9761685729 - -0.6355302930 31895.6914062500 -0.9763994217 - -0.6345244646 31896.5566406250 -0.9766399264 - -0.6335175037 31895.6230468750 -0.9768639803 - -0.6325095296 31895.7714843750 -0.9770886302 - -0.6315004826 31894.9355468750 -0.9773151278 - -0.6304903030 31894.8144531250 -0.9775410295 - -0.6294791102 31896.6230468750 -0.9777680039 - -0.6284668446 31896.5292968750 -0.9779951572 - -0.6274535060 31895.2109375000 -0.9782176614 - -0.6264390945 31896.5000000000 -0.9784414172 - -0.6254236102 31896.5703125000 -0.9786583185 - -0.6244071126 31896.6250000000 -0.9788746238 - -0.6233895421 31894.9375000000 -0.9791031480 - -0.6223708987 31893.2500000000 -0.9793174863 - -0.6213511825 31895.1601562500 -0.9795370698 - -0.6203304529 31894.9414062500 -0.9797415733 - -0.6193086505 31895.2753906250 -0.9799615145 - -0.6182857752 31897.2910156250 -0.9801847935 - -0.6172618866 31895.2363281250 -0.9803926945 - -0.6162369251 31895.3320312500 -0.9806045294 - -0.6152109504 31895.8828125000 -0.9808146358 - -0.6141839027 31896.0976562500 -0.9810235500 - -0.6131558418 31896.3359375000 -0.9812380075 - -0.6121267080 31895.7285156250 -0.9814465046 - -0.6110965610 31896.0878906250 -0.9816532135 - -0.6100654006 31896.2617187500 -0.9818530083 - -0.6090331674 31895.5273437500 -0.9820548892 - -0.6079999208 31896.2304687500 -0.9822585583 - -0.6069656014 31894.7226562500 -0.9824675322 - -0.6059302688 31895.5078125000 -0.9826707840 - -0.6048939228 31895.4296875000 -0.9828692079 - -0.6038565636 31896.4453125000 -0.9830682278 - -0.6028181911 31894.4296875000 -0.9832651615 - -0.6017787457 31895.3945312500 -0.9834644198 - -0.6007383466 31896.1289062500 -0.9836634994 - -0.5996968746 31896.3496093750 -0.9838587046 - -0.5986543894 31897.2734375000 -0.9840530753 - -0.5976109505 31895.7128906250 -0.9842432737 - -0.5965664387 31895.1171875000 -0.9844370484 - -0.5955209136 31895.0292968750 -0.9846280813 - -0.5944743752 31895.4453125000 -0.9848231673 - -0.5934268832 31897.4531250000 -0.9850125909 - -0.5923783183 31895.6523437500 -0.9852001667 - -0.5913287997 31894.6523437500 -0.9853817821 - -0.5902782679 31896.2558593750 -0.9855715632 - -0.5892267227 31895.9453125000 -0.9857612848 - -0.5881741643 31896.0136718750 -0.9859481454 - -0.5871206522 31895.2773437500 -0.9861316085 - -0.5860661268 31896.9511718750 -0.9863077402 - -0.5850105882 31895.8906250000 -0.9864842296 - -0.5839540362 31895.8164062500 -0.9866623282 - -0.5828965306 31894.6113281250 -0.9868533015 - -0.5818380713 31894.5273437500 -0.9870319366 - -0.5807785392 31895.8535156250 -0.9872047901 - -0.5797181129 31897.5566406250 -0.9873796701 - -0.5786566734 31897.3847656250 -0.9875499010 - -0.5775942206 31894.6875000000 -0.9877229333 - -0.5765308142 31895.0605468750 -0.9879078269 - -0.5754663944 31895.9160156250 -0.9880772233 - -0.5744010210 31895.7011718750 -0.9882487059 - -0.5733346939 31895.6679687500 -0.9884090424 - -0.5722674131 31895.4296875000 -0.9885782003 - -0.5711991191 31895.6816406250 -0.9887418151 - -0.5701298714 31896.4667968750 -0.9889103174 - -0.5690596700 31895.2207031250 -0.9890860319 - -0.5679884553 31895.7890625000 -0.9892478585 - -0.5669163465 31896.2773437500 -0.9894071817 - -0.5658432245 31895.2363281250 -0.9895666838 - -0.5647691488 31895.0996093750 -0.9897267818 - -0.5636941195 31895.0078125000 -0.9898830056 - -0.5626181364 31894.3242187500 -0.9900428653 - -0.5615412593 31896.1992187500 -0.9902035594 - -0.5604633689 31896.6230468750 -0.9903613329 - -0.5593845248 31896.0253906250 -0.9905143976 - -0.5583047271 31895.6445312500 -0.9906688333 - -0.5572240353 31893.9062500000 -0.9908207059 - -0.5561423302 31895.3984375000 -0.9909683466 - -0.5550597310 31895.7480468750 -0.9911299944 - -0.5539761782 31896.6367187500 -0.9912781119 - -0.5528916717 31894.8457031250 -0.9914274216 - -0.5518062115 31896.5878906250 -0.9915683270 - -0.5507198572 31894.2402343750 -0.9917142391 - -0.5496325493 31894.7812500000 -0.9918580055 - -0.5485443473 31895.8183593750 -0.9920123219 - -0.5474551916 31895.5136718750 -0.9921525121 - -0.5463650823 31894.2812500000 -0.9922901392 - -0.5452740788 31894.8164062500 -0.9924294353 - -0.5441821218 31896.3789062500 -0.9925700426 - -0.5430892706 31894.1093750000 -0.9927061796 - -0.5419954658 31896.2558593750 -0.9928409457 - -0.5409007668 31894.8398437500 -0.9929831028 - -0.5398051143 31896.2402343750 -0.9931192994 - -0.5387085676 31894.5625000000 -0.9932501912 - -0.5376111269 31896.8906250000 -0.9933802485 - -0.5365127921 31895.5605468750 -0.9935098290 - -0.5354135036 31895.8652343750 -0.9936386347 - -0.5343133211 31894.7480468750 -0.9937674403 - -0.5332122445 31896.9121093750 -0.9938915372 - -0.5321102738 31897.2695312500 -0.9940288663 - -0.5310073495 31895.3339843750 -0.9941500425 - -0.5299035311 31894.4707031250 -0.9942761660 - -0.5287988782 31896.8457031250 -0.9943941832 - -0.5276932716 31896.0644531250 -0.9945176840 - -0.5265867710 31894.6640625000 -0.9946340919 - -0.5254794359 31894.5253906250 -0.9947547913 - -0.5243711472 31894.6933593750 -0.9948679209 - -0.5232620239 31895.8828125000 -0.9949947596 - -0.5221519470 31895.3867187500 -0.9951097965 - -0.5210410357 31896.3554687500 -0.9952238202 - -0.5199292302 31895.9550781250 -0.9953343272 - -0.5188165307 31896.0410156250 -0.9954459667 - -0.5177029371 31894.2714843750 -0.9955547452 - -0.5165885091 31894.5625000000 -0.9956637025 - -0.5154731870 31896.9394531250 -0.9957794547 - -0.5143569708 31896.6210937500 -0.9958869815 - -0.5132399201 31894.8105468750 -0.9959896803 - -0.5121219754 31894.2871093750 -0.9960924983 - -0.5110031366 31896.0625000000 -0.9961949587 - -0.5098834634 31893.8789062500 -0.9962962270 - -0.5087629557 31894.6757812500 -0.9963973761 - -0.5076415539 31896.6777343750 -0.9965032935 - -0.5065192580 31897.2304687500 -0.9966027141 - -0.5053961277 31895.0781250000 -0.9966969490 - -0.5042721629 31896.8535156250 -0.9967914224 - -0.5031473637 31896.6250000000 -0.9968848825 - -0.5020216703 31895.6621093750 -0.9969766736 - -0.5008951426 31895.9296875000 -0.9970688820 - -0.4997677207 31895.6445312500 -0.9971563220 - -0.4986394942 31894.6308593750 -0.9972453713 - -0.4975104034 31895.7578125000 -0.9973441958 - -0.4963804781 31896.7343750000 -0.9974278808 - -0.4952497184 31897.8593750000 -0.9975144267 - -0.4941181242 31895.0371093750 -0.9975954890 - -0.4929856658 31896.9550781250 -0.9976766109 - -0.4918524027 31895.6660156250 -0.9977592826 - -0.4907182753 31894.0937500000 -0.9978374243 - -0.4895833433 31895.2558593750 -0.9979155660 - -0.4884475768 31895.9394531250 -0.9979928136 - -0.4873109758 31894.2675781250 -0.9980676174 - -0.4861735404 31895.8710937500 -0.9981519580 - -0.4850352705 31895.7441406250 -0.9982253909 - -0.4838961959 31895.6621093750 -0.9982963204 - -0.4827563167 31894.9550781250 -0.9983683825 - -0.4816156030 31895.1464843750 -0.9984351397 - -0.4804740548 31895.0234375000 -0.9985049963 - -0.4793317020 31894.7949218750 -0.9985712767 - -0.4781885445 31896.6171875000 -0.9986457229 - -0.4770445824 31896.3945312500 -0.9987114668 - -0.4758998156 31895.6250000000 -0.9987736344 - -0.4747542143 31896.0117187500 -0.9988318086 - -0.4736078382 31897.0468750000 -0.9988955855 - -0.4724606574 31894.6113281250 -0.9989520907 - -0.4713126421 31897.5488281250 -0.9990086555 - -0.4701638520 31895.8710937500 -0.9990651608 - -0.4690142572 31895.3710937500 -0.9991300702 - -0.4678638875 31896.5976562500 -0.9991818666 - -0.4667127132 31896.2363281250 -0.9992357492 - -0.4655607343 31894.7109375000 -0.9992849827 - -0.4644079804 31896.5937500000 -0.9993336201 - -0.4632544219 31895.3945312500 -0.9993821979 - -0.4621000886 31895.6464843750 -0.9994270205 - -0.4609449804 31896.9531250000 -0.9994727373 - -0.4597890973 31895.8320312500 -0.9995180964 - -0.4586324096 31895.9375000000 -0.9995581508 - -0.4574749470 31895.3710937500 -0.9995991588 - -0.4563167393 31896.2968750000 -0.9996407032 - -0.4551577270 31895.9101562500 -0.9996775389 - -0.4539979398 31895.6972656250 -0.9997143149 - -0.4528374076 31894.1679687500 -0.9997611046 - -0.4516761005 31896.3105468750 -0.9997951984 - -0.4505140185 31894.7207031250 -0.9998276830 - -0.4493511617 31895.2519531250 -0.9998601675 - -0.4481875598 31894.7343750000 -0.9998891354 - -0.4470232129 31897.3125000000 -0.9999198914 - -0.4458580911 31895.4882812500 -0.9999443889 - -0.4446921945 31896.0488281250 -0.9999725223 - -0.4435255826 31894.9609375000 -1.0000066757 - -0.4423581958 31897.0175781250 -1.0000286102 - -0.4411900640 31896.3964843750 -1.0000523329 - -0.4400211871 31896.3300781250 -1.0000727177 - -0.4388515651 31896.0507812500 -1.0000910759 - -0.4376811683 31895.9960937500 -1.0001097918 - -0.4365100563 31896.4218750000 -1.0001350641 - -0.4353382289 31895.8710937500 -1.0001499653 - -0.4341656268 31896.2265625000 -1.0001639128 - -0.4329923093 31895.3417968750 -1.0001753569 - -0.4318182468 31895.9785156250 -1.0001865625 - -0.4306434393 31897.2792968750 -1.0001958609 - -0.4294679165 31896.8085937500 -1.0002049208 - -0.4282916784 31894.8632812500 -1.0002104044 - -0.4271146953 31896.1542968750 -1.0002149343 - -0.4259369969 31896.9863281250 -1.0002192259 - -0.4247585535 31896.7851562500 -1.0002219677 - -0.4235794246 31896.9316406250 -1.0002225637 - -0.4223995507 31895.8867187500 -1.0002214909 - -0.4212189615 31896.4589843750 -1.0002195835 - -0.4200376868 31895.1914062500 -1.0002162457 - -0.4188556671 31894.6035156250 -1.0002114773 - -0.4176729620 31894.3964843750 -1.0002042055 - -0.4164895415 31896.7304687500 -1.0001982450 - -0.4153054059 31895.5351562500 -1.0001878738 - -0.4141205847 31896.6972656250 -1.0001785755 - -0.4129350483 31895.6328125000 -1.0001666546 - -0.4117487967 31894.8457031250 -1.0001535416 - -0.4105618596 31895.2792968750 -1.0001478195 - -0.4093742371 31897.6484375000 -1.0001322031 - -0.4081859291 31895.1738281250 -1.0001145601 - -0.4069969058 31896.1503906250 -1.0000958443 - -0.4058071971 31897.8261718750 -1.0000849962 - -0.4046168029 31896.2480468750 -1.0000623465 - -0.4034257233 31898.5058593750 -1.0000399351 - -0.4022339582 31897.1718750000 -1.0000243187 - -0.4010415077 31897.2753906250 -0.9999973774 - -0.3998483717 31896.9687500000 -0.9999697208 - -0.3986545801 31897.2109375000 -0.9999505281 - -0.3974601030 31897.5117187500 -0.9999195337 - -0.3962649405 31898.5312500000 -0.9998882413 - -0.3950691223 31897.8886718750 -0.9998545051 - -0.3938726187 31897.2968750000 -0.9998193979 - -0.3926754594 31896.5351562500 -0.9997825623 - -0.3914776444 31897.1953125000 -0.9997445941 - -0.3902791440 31896.4453125000 -0.9997061491 - -0.3890799880 31897.2207031250 -0.9996559024 - -0.3878801763 31896.2675781250 -0.9996134043 - -0.3866797090 31897.2050781250 -0.9995607734 - -0.3854785860 31895.7558593750 -0.9995159507 - -0.3842768073 31894.6445312500 -0.9994593859 - -0.3830743730 31894.0859375000 -0.9994026423 - -0.3818712831 31894.8457031250 -0.9993445873 - -0.3806675673 31894.3203125000 -0.9992756844 - -0.3794631660 31894.8222656250 -0.9992150068 - -0.3782581687 31894.6484375000 -0.9991424084 - -0.3770525157 31893.0058593750 -0.9990784526 - -0.3758462071 31893.7539062500 -0.9990046620 - -0.3746392727 31891.2617187500 -0.9989371896 - -0.3734316826 31892.4882812500 -0.9988604188 - -0.3722234964 31889.5273437500 -0.9987811446 - -0.3710146546 31890.2304687500 -0.9987106323 - -0.3698051870 31890.3535156250 -0.9986296296 - -0.3685950935 31889.9296875000 -0.9985557795 - -0.3673843741 31887.2148437500 -0.9984716177 - -0.3661730587 31887.7695312500 -0.9983950853 - -0.3649610877 31887.2109375000 -0.9983171821 - -0.3637485206 31887.8164062500 -0.9982379079 - -0.3625353277 31885.6425781250 -0.9981555939 - -0.3613215089 31886.4531250000 -0.9980840683 - -0.3601070940 31887.6855468750 -0.9980003238 - -0.3588920534 31885.6640625000 -0.9979235530 - -0.3576764166 8631.8056640625 -0.9976788759 - -0.3564601541 8633.5966796875 -0.9976186156 - -0.3552433252 8632.1562500000 -0.9975672364 - -0.3540258706 8632.8867187500 -0.9975018501 - -0.3528077900 8634.3437500000 -0.9974492788 - -0.3515891433 8636.5244140625 -0.9973943233 - -0.3503699005 8636.5810546875 -0.9973378181 - -0.3491500616 8637.1796875000 -0.9972795844 - -0.3479296267 8641.2089843750 -0.9972331524 - -0.3467085958 8641.9267578125 -0.9971722960 - -0.3454869986 8643.8476562500 -0.9971228838 - -0.3442647755 8644.4296875000 -0.9970586896 - -0.3430420160 8646.9931640625 -0.9970076084 - -0.3418186307 8649.1015625000 -0.9969528317 - -0.3405947089 8649.9433593750 -0.9968858957 - -0.3393701911 8652.0761718750 -0.9968290329 - -0.3381450772 8653.3056640625 -0.9967586398 - -0.3369194269 8654.8525390625 -0.9967004657 - -0.3356931806 8657.5585937500 -0.9966262579 - -0.3344663680 8658.7392578125 -0.9965651035 - -0.3332389891 8658.9443359375 -0.9964882135 - -0.3320110440 8660.4980468750 -0.9964117408 - -0.3307825327 8660.4619140625 -0.9963335395 - -0.3295534849 8661.9082031250 -0.9962409139 - -0.3283238411 8663.7900390625 -0.9961597323 - -0.3270936608 8663.3173828125 -0.9960649610 - -0.3258629441 8664.4130859375 -0.9959812164 - -0.3246316612 8664.5507812500 -0.9958826303 - -0.3233998120 8664.2685546875 -0.9957835078 - -0.3221674263 8663.8867187500 -0.9956827164 - -0.3209345043 8664.0302734375 -0.9955803752 - -0.3197010159 8666.1523437500 -0.9954779148 - -0.3184669912 8665.4228515625 -0.9953714609 - -0.3172324300 8663.1015625000 -0.9952659011 - -0.3159973323 8663.5136718750 -0.9951446652 - -0.3147616982 8663.7099609375 -0.9950349927 - -0.3135255575 8664.4257812500 -0.9949251413 - -0.3122888505 8664.1513671875 -0.9948007464 - -0.3110516071 8663.6113281250 -0.9946862459 - -0.3098138571 8664.3056640625 -0.9945721626 - -0.3085756004 8662.2099609375 -0.9944432974 - -0.3073367774 8662.8183593750 -0.9943246245 - -0.3060974479 8662.4316406250 -0.9942054152 - -0.3048576117 8662.8242187500 -0.9940847754 - -0.3036172688 8661.8115234375 -0.9939505458 - -0.3023763895 8662.5419921875 -0.9938275814 - -0.3011350036 8662.4189453125 -0.9937025905 - -0.2998931110 8663.0078125000 -0.9935747385 - -0.2986506820 8662.4150390625 -0.9934493899 - -0.2974077761 8663.1503906250 -0.9933184385 - -0.2961643636 8662.9287109375 -0.9931898117 - -0.2949204445 8662.9882812500 -0.9930579066 - -0.2936760187 8663.6826171875 -0.9929248095 - -0.2924311161 8663.5966796875 -0.9927905798 - -0.2911857069 8664.3261718750 -0.9926555157 - -0.2899397910 8663.9765625000 -0.9925187230 - -0.2886933982 8665.1953125000 -0.9923796058 - -0.2874464989 8663.6796875000 -0.9922389388 - -0.2861991227 8663.7607421875 -0.9920989275 - -0.2849512696 8663.6562500000 -0.9919569492 - -0.2837029397 8665.0566406250 -0.9918126464 - -0.2824541032 8665.1250000000 -0.9916667342 - -0.2812047899 8664.4765625000 -0.9915198088 - -0.2799550295 8663.4296875000 -0.9913722873 - -0.2787047625 8665.5126953125 -0.9912228584 - -0.2774540484 8664.6611328125 -0.9910712838 - -0.2762028575 8662.8779296875 -0.9909084439 - -0.2749511898 8663.6943359375 -0.9907531142 - -0.2736990452 8665.4335937500 -0.9906004667 - -0.2724464536 8664.4326171875 -0.9904437065 - -0.2711933851 8664.7275390625 -0.9902844429 - -0.2699398696 8664.5937500000 -0.9901273251 - -0.2686859071 8664.4160156250 -0.9899547100 - -0.2674314678 8664.7119140625 -0.9897906780 - -0.2661765814 8665.0781250000 -0.9896315336 - -0.2649212480 8664.0761718750 -0.9894649386 - -0.2636654675 8663.5332031250 -0.9893016219 - -0.2624092400 8664.5595703125 -0.9891337156 - -0.2611525655 8665.0429687500 -0.9889656901 - -0.2598954439 8663.8144531250 -0.9887967706 - -0.2586378753 8665.2158203125 -0.9886122942 - -0.2573798895 8664.7939453125 -0.9884396791 - -0.2561214566 8664.9677734375 -0.9882690310 - -0.2548625767 8665.7656250000 -0.9880920053 - -0.2536032796 8664.9570312500 -0.9879164100 - -0.2523435652 8665.6787109375 -0.9877418280 - -0.2510834038 8666.1298828125 -0.9875616431 - -0.2498228103 8665.4550781250 -0.9873806238 - -0.2485617995 8665.4755859375 -0.9872023463 - -0.2473003715 8666.0888671875 -0.9870192409 - -0.2460385263 8663.7529296875 -0.9868364930 - -0.2447762638 8666.3144531250 -0.9866527915 - -0.2435135841 8666.7226562500 -0.9864640832 - -0.2422504872 8665.9208984375 -0.9862787724 - -0.2409869879 8664.1289062500 -0.9860763550 - -0.2397230715 8665.9472656250 -0.9858855605 - -0.2384587526 8665.1113281250 -0.9856952429 - -0.2371940315 8665.5087890625 -0.9855044484 - -0.2359289080 8666.3554687500 -0.9853063822 - -0.2346633822 8666.0703125000 -0.9851152301 - -0.2333974540 8665.9941406250 -0.9849186540 - -0.2321311384 8665.8349609375 -0.9847190976 - -0.2308644205 8666.1035156250 -0.9845087528 - -0.2295973152 8664.1796875000 -0.9843084812 - -0.2283298224 8664.6484375000 -0.9841042161 - -0.2270619422 8663.9345703125 -0.9839051962 - -0.2257936746 8666.5312500000 -0.9836990833 - -0.2245250344 8666.5869140625 -0.9834946990 - -0.2232560068 8665.3212890625 -0.9832870364 - -0.2219865918 8666.1816406250 -0.9830681086 - -0.2207168043 8665.5000000000 -0.9828596115 - -0.2194466442 8665.1240234375 -0.9826490283 - -0.2181761265 8665.7060546875 -0.9824382067 - -0.2169052213 8665.5751953125 -0.9822271466 - -0.2156339586 8667.2695312500 -0.9820110798 - -0.2143623233 8664.6855468750 -0.9817978144 - -0.2130903155 8667.3974609375 -0.9815843105 - -0.2118179649 8667.3876953125 -0.9813644290 - -0.2105452418 8666.2343750000 -0.9811491370 - -0.2092721760 8664.8671875000 -0.9809144139 - -0.2079987377 8665.6689453125 -0.9806926250 - -0.2067249566 8665.0517578125 -0.9804732800 - -0.2054508328 8666.0683593750 -0.9802488685 - -0.2041763514 8665.9892578125 -0.9800243974 - -0.2029015273 8666.6201171875 -0.9797985554 - -0.2016263604 8668.0751953125 -0.9795725346 - -0.2003508359 8667.2968750000 -0.9793461561 - -0.1990749836 8667.5576171875 -0.9791144729 - -0.1977988034 8664.9121093750 -0.9788749814 - -0.1965222806 8665.5449218750 -0.9786412716 - -0.1952454150 8666.5458984375 -0.9784083366 - -0.1939682215 8665.4921875000 -0.9781734943 - -0.1926907152 8664.8837890625 -0.9779399633 - -0.1914128661 8667.4570312500 -0.9777061343 - -0.1901346892 8666.4472656250 -0.9774664044 - -0.1888561994 8666.0244140625 -0.9772180319 - -0.1875773966 8665.0546875000 -0.9769771695 - -0.1862982661 8667.5751953125 -0.9767372608 - -0.1850188226 8666.1806640625 -0.9764937758 - -0.1837390512 8667.6103515625 -0.9762533903 - -0.1824589819 8666.1513671875 -0.9760080576 - -0.1811785996 8667.7333984375 -0.9757620096 - -0.1798979193 8666.9003906250 -0.9755011201 - -0.1786169261 8666.0156250000 -0.9752587080 - -0.1773356348 8666.0380859375 -0.9750065804 - -0.1760540307 8666.3281250000 -0.9747600555 - -0.1747721434 8666.5117187500 -0.9745053053 - -0.1734899580 8665.7685546875 -0.9742584229 - -0.1722074598 8666.6298828125 -0.9740007520 - -0.1709246933 8668.1718750000 -0.9737497568 - -0.1696416289 8667.2373046875 -0.9734796286 - -0.1683582664 8666.4746093750 -0.9732261300 - -0.1670746356 8667.5722656250 -0.9729676247 - -0.1657907069 8666.9726562500 -0.9727081656 - -0.1645064950 8666.7626953125 -0.9724488854 - -0.1632220149 8667.9042968750 -0.9721903801 - -0.1619372666 8666.7783203125 -0.9719297290 - -0.1606522202 8667.4960937500 -0.9716634154 - -0.1593669206 8666.1708984375 -0.9713892937 - -0.1580813378 8666.9355468750 -0.9711260796 - -0.1567955017 8666.8525390625 -0.9708606601 - -0.1555093825 8666.6406250000 -0.9705902338 - -0.1542230099 8666.2343750000 -0.9703220129 - -0.1529363841 8668.6962890625 -0.9700563550 - -0.1516494751 8666.9609375000 -0.9697872996 - -0.1503623277 8666.1494140625 -0.9695017934 - -0.1490749270 8667.0224609375 -0.9692289233 - -0.1477872580 8666.4951171875 -0.9689539671 - -0.1464993507 8665.8515625000 -0.9686859250 - -0.1452111900 8669.0126953125 -0.9684083462 - -0.1439227909 8667.6152343750 -0.9681313038 - -0.1426341385 8666.9355468750 -0.9678389430 - -0.1413452476 8666.3886718750 -0.9675641060 - -0.1400561184 8667.5830078125 -0.9672841430 - -0.1387667507 8668.1884765625 -0.9670014381 - -0.1374771446 8667.9179687500 -0.9667202234 - -0.1361873150 8668.1210937500 -0.9664340019 - -0.1348972470 8667.6005859375 -0.9661452770 - -0.1336069554 8667.1611328125 -0.9658572674 - -0.1323164254 8665.0712890625 -0.9655733705 - -0.1310256869 8668.0400390625 -0.9652862549 - -0.1297347099 8667.2597656250 -0.9649991393 - -0.1284435242 8668.0322265625 -0.9647142291 - -0.1271521151 8667.3701171875 -0.9644249082 - -0.1258604974 8667.1318359375 -0.9641195536 - -0.1245686635 8668.7988281250 -0.9638238549 - -0.1232766137 8667.6855468750 -0.9635336995 - -0.1219843552 8669.3320312500 -0.9632374048 - -0.1206918955 8668.1884765625 -0.9629526734 - -0.1193992272 8667.1074218750 -0.9626535177 - -0.1181063578 8667.8984375000 -0.9623585343 - -0.1168132871 8666.6435546875 -0.9620441794 - -0.1155200228 8669.0478515625 -0.9617451429 - -0.1142265573 8667.5781250000 -0.9614490867 - -0.1129328981 8668.4072265625 -0.9611492157 - -0.1116390526 8667.4062500000 -0.9608508945 - -0.1103450134 8666.8515625000 -0.9605457187 - -0.1090507880 8668.4423828125 -0.9602270722 - -0.1077563763 8666.2773437500 -0.9599227905 - -0.1064617857 8667.8212890625 -0.9596214294 - -0.1051670089 8667.4833984375 -0.9593215585 - -0.1038720608 8668.3212890625 -0.9590125084 - -0.1025769338 8668.7734375000 -0.9587001204 - -0.1012816280 8667.2480468750 -0.9583836198 - -0.0999861583 8667.3583984375 -0.9580684900 - -0.0986905172 8666.8105468750 -0.9577623010 - -0.0973947048 8668.6191406250 -0.9574503303 - -0.0960987285 8668.3271484375 -0.9571372271 - -0.0948025957 8665.6806640625 -0.9568157792 - -0.0935062915 8667.8789062500 -0.9564998150 - -0.0922098383 8668.4101562500 -0.9561817646 - -0.0909132212 8668.4628906250 -0.9558675289 - -0.0896164551 8668.6367187500 -0.9555487633 - -0.0883195326 8669.7109375000 -0.9552299976 - -0.0870224684 8667.2412109375 -0.9549067020 - -0.0857252479 8667.0019531250 -0.9545828700 - -0.0844278857 8668.1992187500 -0.9542624354 - -0.0831303820 8667.1601562500 -0.9539395571 - -0.0818327367 8668.4003906250 -0.9536185265 - -0.0805349499 8668.4414062500 -0.9532914162 - -0.0792370290 8667.6943359375 -0.9529575109 - -0.0779389665 8666.6669921875 -0.9526307583 - -0.0766407847 8669.4638671875 -0.9523058534 - -0.0753424615 8669.1337890625 -0.9519851804 - -0.0740440190 8668.5908203125 -0.9516556263 - -0.0727454498 8669.1982421875 -0.9513244629 - -0.0714467540 8667.5546875000 -0.9509851933 - -0.0701479390 8668.3515625000 -0.9506543875 - -0.0688489974 8667.5019531250 -0.9503214359 - -0.0675499514 8668.4052734375 -0.9499877095 - -0.0662507862 8668.7080078125 -0.9496580362 - -0.0649515018 8668.2968750000 -0.9493108392 - -0.0636521131 8667.2138671875 -0.9489679933 - -0.0623526201 8668.1923828125 -0.9486446977 - -0.0610530153 8667.4863281250 -0.9483026266 - -0.0597533099 8667.6103515625 -0.9479672313 - -0.0584535040 8667.6230468750 -0.9476149678 - -0.0571535975 8667.2060546875 -0.9472777247 - -0.0558535941 8669.1679687500 -0.9469404221 - -0.0545534976 8668.3876953125 -0.9465953708 - -0.0532533079 8669.5917968750 -0.9462519884 - -0.0519530252 8666.8271484375 -0.9459021688 - -0.0506526567 8667.2109375000 -0.9455542564 - -0.0493522026 8668.6582031250 -0.9452076554 - -0.0480516665 8668.1943359375 -0.9448606968 - -0.0467510447 8668.2382812500 -0.9445159435 - -0.0454503484 8668.0283203125 -0.9441717863 - -0.0441495702 8668.0253906250 -0.9438092709 - -0.0428487211 8667.3476562500 -0.9434580803 - -0.0415477976 8668.8193359375 -0.9431106448 - -0.0402468033 8668.4189453125 -0.9427621961 - -0.0389457420 8668.0185546875 -0.9424144030 - -0.0376446135 8668.8876953125 -0.9420481324 - -0.0363434218 8669.3857421875 -0.9416943192 - -0.0350421667 8669.1689453125 -0.9413366914 - -0.0337408558 8668.9062500000 -0.9409798384 - -0.0324394852 8669.8007812500 -0.9406264424 - -0.0311380588 8666.9541015625 -0.9402598143 - -0.0298365820 8667.8300781250 -0.9398998022 - -0.0285350531 8668.9326171875 -0.9395378232 - -0.0272334758 8670.4560546875 -0.9391766787 - -0.0259318519 8669.9648437500 -0.9388177991 - -0.0246301852 8668.0615234375 -0.9384481907 - -0.0233284775 8667.6132812500 -0.9380816221 - -0.0220267288 8668.6093750000 -0.9377172589 - -0.0207249429 8669.0253906250 -0.9373556972 - -0.0194231216 8668.1777343750 -0.9369781017 - -0.0181212686 8668.9892578125 -0.9366108775 - -0.0168193839 8668.3925781250 -0.9362422824 - -0.0155174704 8667.7216796875 -0.9358779192 - -0.0142155308 8669.9013671875 -0.9355061650 - -0.0129135670 8667.8935546875 -0.9351249933 - -0.0116115818 8670.0644531250 -0.9347553253 - -0.0103095770 8668.3251953125 -0.9343807697 - -0.0090075545 8666.9609375000 -0.9340073466 - -0.0077055166 8669.5107421875 -0.9336317778 - -0.0064034658 8667.6953125000 -0.9332453609 - -0.0051014042 8668.5546875000 -0.9328701496 - -0.0037993339 8670.2685546875 -0.9324936271 - -0.0024972572 8667.7666015625 -0.9321153164 - -0.0011951762 8668.4355468750 -0.9317390919 - 0.0001069069 8668.3359375000 -0.9313473105 - 0.0014089898 8669.0615234375 -0.9309664965 - 0.0027110702 8668.5449218750 -0.9305821061 - 0.0040131463 8667.6474609375 -0.9302017093 - 0.0053152153 8668.7080078125 -0.9298066497 - 0.0066172751 8667.4863281250 -0.9294207692 - 0.0079193246 8669.2890625000 -0.9290321469 - 0.0092213592 8667.8271484375 -0.9286388159 - 0.0105233798 8668.7480468750 -0.9282529354 - 0.0118253808 8668.2294921875 -0.9278518558 - 0.0131273633 8669.2646484375 -0.9274605513 - 0.0144293224 8668.2519531250 -0.9270690084 - 0.0157312583 8668.9599609375 -0.9266765714 - 0.0170331672 8667.4941406250 -0.9262711406 - 0.0183350462 8669.1601562500 -0.9258787036 - 0.0196368955 8668.0761718750 -0.9254784584 - 0.0209387094 8668.3427734375 -0.9250853658 - 0.0222404897 8668.7001953125 -0.9246752262 - 0.0235422309 8668.3339843750 -0.9242764711 - 0.0248439331 8669.8330078125 -0.9238727689 - 0.0261455942 8669.6845703125 -0.9234701991 - 0.0274472088 8668.4033203125 -0.9230596423 - 0.0287487786 8669.1005859375 -0.9226535559 - 0.0300502982 8668.5947265625 -0.9222437739 - 0.0313517675 8668.4482421875 -0.9218385816 - 0.0326531865 8669.3769531250 -0.9214286208 - 0.0339545459 8669.2373046875 -0.9210113287 - 0.0352558494 8667.8984375000 -0.9206002355 - 0.0365570933 8668.6835937500 -0.9201878905 - 0.0378582738 8668.4882812500 -0.9197731614 - 0.0391593911 8667.9785156250 -0.9193542600 - 0.0404604413 8669.3261718750 -0.9189315438 - 0.0417614244 8668.0351562500 -0.9185084105 - 0.0430623367 8668.4033203125 -0.9180906415 - 0.0443631746 8667.3906250000 -0.9176613092 - 0.0456639379 8668.0654296875 -0.9172438979 - 0.0469646268 8669.6474609375 -0.9168178439 - 0.0482652299 8668.7978515625 -0.9163910747 - 0.0495657548 8668.2939453125 -0.9159597754 - 0.0508661978 8669.0781250000 -0.9155344367 - 0.0521665514 8669.2500000000 -0.9150920510 - 0.0534668155 8669.7285156250 -0.9146620631 - 0.0547669902 8667.9228515625 -0.9142264724 - 0.0560670756 8669.6259765625 -0.9137885571 - 0.0573670603 8668.1357421875 -0.9133551717 - 0.0586669520 8669.0263671875 -0.9129198194 - 0.0599667430 8668.3769531250 -0.9124745131 - 0.0612664297 8667.7441406250 -0.9120256901 - 0.0625660121 8669.0312500000 -0.9115837812 - 0.0638654977 8668.5498046875 -0.9111390710 - 0.0651648641 8669.1347656250 -0.9106895924 - 0.0664641261 8667.1630859375 -0.9102401733 - 0.0677632764 8668.4335937500 -0.9097936749 - 0.0690623075 8668.4033203125 -0.9093365073 - 0.0703612193 8667.6484375000 -0.9088748693 - 0.0716600195 8669.2001953125 -0.9084221125 - 0.0729586929 8668.8925781250 -0.9079651237 - 0.0742572397 8669.2929687500 -0.9075055122 - 0.0755556673 8669.5410156250 -0.9070384502 - 0.0768539682 8667.6513671875 -0.9065746069 - 0.0781521350 8667.4951171875 -0.9061106443 - 0.0794501677 8668.7431640625 -0.9056438208 - 0.0807480663 8668.5126953125 -0.9051628709 - 0.0820458308 8669.3896484375 -0.9046936035 - 0.0833434537 8668.7744140625 -0.9042172432 - 0.0846409351 8668.8515625000 -0.9037441611 - 0.0859382749 8668.8212890625 -0.9032607079 - 0.0872354656 8669.0185546875 -0.9027816653 - 0.0885325074 8669.6425781250 -0.9023013711 - 0.0898294076 8666.1718750000 -0.9018077254 - 0.0911261514 8667.8583984375 -0.9013192058 - 0.0924227387 8668.6513671875 -0.9008302689 - 0.0937191695 8667.9316406250 -0.9003394246 - 0.0950154439 8667.8544921875 -0.8998379111 - 0.0963115543 8668.4482421875 -0.8993444443 - 0.0976075009 8668.2343750000 -0.8988450170 - 0.0989032835 8670.1767578125 -0.8983410001 - 0.1001988947 8668.4658203125 -0.8978350163 - 0.1014943421 8668.4375000000 -0.8973283768 - 0.1027896181 8668.5361328125 -0.8968141079 - 0.1040847152 8667.1484375000 -0.8963009119 - 0.1053796411 8668.4785156250 -0.8957859278 - 0.1066743806 8668.2431640625 -0.8952648640 - 0.1079689413 8669.5595703125 -0.8947454095 - 0.1092633232 8668.4042968750 -0.8942184448 - 0.1105575189 8668.2226562500 -0.8936911225 - 0.1118515283 8668.5878906250 -0.8931607008 - 0.1131453440 8667.4833984375 -0.8926246166 - 0.1144389659 8668.4394531250 -0.8920921087 - 0.1157324016 8667.9804687500 -0.8915531635 - 0.1170256361 8669.8828125000 -0.8910079002 - 0.1183186769 8667.1494140625 -0.8904573917 - 0.1196115091 8667.9687500000 -0.8899154663 - 0.1209041402 8669.4042968750 -0.8893624544 - 0.1221965700 8667.9082031250 -0.8888050318 - 0.1234887913 8668.6425781250 -0.8882454634 - 0.1247808039 8669.0205078125 -0.8876861334 - 0.1260726005 8669.4257812500 -0.8871185780 - 0.1273641884 8669.3339843750 -0.8865492344 - 0.1286555678 8666.0859375000 -0.8859764934 - 0.1299467236 8669.3417968750 -0.8853949904 - 0.1312376559 8666.7714843750 -0.8848162889 - 0.1325283647 8668.9609375000 -0.8842344284 - 0.1338188499 8667.7460937500 -0.8836511970 - 0.1351090968 8668.6865234375 -0.8830525875 - 0.1363991350 8668.4501953125 -0.8824599981 - 0.1376889348 8669.5605468750 -0.8818619251 - 0.1389784962 8668.9560546875 -0.8812592030 - 0.1402678192 8668.2666015625 -0.8806493878 - 0.1415569186 8667.5107421875 -0.8800384402 - 0.1428457648 8667.6777343750 -0.8794236779 - 0.1441343725 8668.0810546875 -0.8788033128 - 0.1454227418 8668.5957031250 -0.8781820536 - 0.1467108577 8667.8603515625 -0.8775520921 - 0.1479987204 8667.9843750000 -0.8769207597 - 0.1492863446 8667.9375000000 -0.8762841225 - 0.1505737156 8668.2441406250 -0.8756390810 - 0.1518608183 8669.6113281250 -0.8749936223 - 0.1531476676 8667.2207031250 -0.8743467927 - 0.1544342637 8667.0224609375 -0.8736894131 - 0.1557205915 8667.9062500000 -0.8730310202 - 0.1570066661 8668.1630859375 -0.8723644018 - 0.1582924575 8667.7841796875 -0.8716968894 - 0.1595779955 8668.8232421875 -0.8710237741 - 0.1608632654 8669.4716796875 -0.8703420758 - 0.1621482521 8668.2089843750 -0.8696580529 - 0.1634329557 8668.2353515625 -0.8689695597 - 0.1647174060 8668.4052734375 -0.8682742119 - 0.1660015583 8666.8281250000 -0.8675735593 - 0.1672854275 8666.7617187500 -0.8668690920 - 0.1685690284 8667.0146484375 -0.8661614656 - 0.1698523313 8668.2919921875 -0.8654419184 - 0.1711353511 8668.2207031250 -0.8647204638 - 0.1724180877 8667.8251953125 -0.8639965653 - 0.1737005115 8667.5507812500 -0.8632634282 - 0.1749826670 8667.2275390625 -0.8625261188 - 0.1762645096 8667.8535156250 -0.8617835045 - 0.1775460541 8666.9316406250 -0.8610354662 - 0.1788273007 8668.1386718750 -0.8602797985 - 0.1801082343 8667.1240234375 -0.8595193624 - 0.1813888848 8667.5078125000 -0.8587544560 - 0.1826692075 8667.7500000000 -0.8579803109 - 0.1839492321 8668.7822265625 -0.8572026491 - 0.1852289289 8666.4980468750 -0.8564203382 - 0.1865083277 8666.4648437500 -0.8556310534 - 0.1877874136 8668.0683593750 -0.8548343182 - 0.1890661716 8665.9658203125 -0.8540316820 - 0.1903446019 8666.5996093750 -0.8532208800 - 0.1916227192 8667.2470703125 -0.8524048924 - 0.1929005086 8668.1650390625 -0.8515833616 - 0.1941779703 8667.0654296875 -0.8507569432 - 0.1954551041 8667.6738281250 -0.8499215245 - 0.1967319101 8669.1923828125 -0.8490803242 - 0.1980083883 8669.3603515625 -0.8482351303 - 0.1992845237 8667.6562500000 -0.8473817706 - 0.2005603164 8667.7402343750 -0.8465213180 - 0.2018357664 8668.7968750000 -0.8456547260 - 0.2031108886 8667.4140625000 -0.8447802663 - 0.2043856531 8668.3164062500 -0.8438966870 - 0.2056600749 8667.9775390625 -0.8430135250 - 0.2069341540 8666.5664062500 -0.8421205282 - 0.2082078755 8667.6972656250 -0.8412144184 - 0.2094812542 8666.9843750000 -0.8403178453 - 0.2107542604 8667.6044921875 -0.8393964171 - 0.2120269239 8668.7089843750 -0.8384744525 - 0.2132992148 8668.8095703125 -0.8375511169 - 0.2145711631 8668.7138671875 -0.8366131186 - 0.2158427387 8668.4111328125 -0.8356746435 - 0.2171139419 8666.7031250000 -0.8347209096 - 0.2183847725 8668.0039062500 -0.8337683082 - 0.2196552455 8667.3222656250 -0.8328068256 - 0.2209253460 8667.8173828125 -0.8318375945 - 0.2221950591 8667.7929687500 -0.8308644295 - 0.2234644145 8667.9003906250 -0.8298767209 - 0.2247333825 8667.8671875000 -0.8288905621 - 0.2260019630 8667.8320312500 -0.8278892040 - 0.2272701710 8669.1425781250 -0.8268877268 - 0.2285379767 8668.6464843750 -0.8258805871 - 0.2298054099 8668.7861328125 -0.8248599172 - 0.2310724556 8666.1279296875 -0.8238332272 - 0.2323390990 8667.1708984375 -0.8228018880 - 0.2336053550 8666.3330078125 -0.8217649460 - 0.2348712087 8666.9960937500 -0.8207132816 - 0.2361366749 8668.1669921875 -0.8196663857 - 0.2374017388 8667.7841796875 -0.8186073899 - 0.2386663854 8666.0429687500 -0.8175471425 - 0.2399306446 8667.3564453125 -0.8164730072 - 0.2411944866 8666.1933593750 -0.8153949380 - 0.2424579263 8667.0781250000 -0.8143041134 - 0.2437209487 8667.9423828125 -0.8132115602 - 0.2449835688 8666.2080078125 -0.8121144772 - 0.2462457567 8667.2900390625 -0.8110123277 - 0.2475075424 8666.3652343750 -0.8098987937 - 0.2487688959 8667.4267578125 -0.8087857366 - 0.2500298321 8668.2626953125 -0.8076622486 - 0.2512903512 8668.2636718750 -0.8065298200 - 0.2525504529 8667.9375000000 -0.8053964376 - 0.2538101077 8667.8144531250 -0.8042547703 - 0.2550693452 8666.7480468750 -0.8031089902 - 0.2563281357 8666.0195312500 -0.8019526005 - 0.2575864792 8668.0839843750 -0.8007920980 - 0.2588444054 8667.7636718750 -0.7996283770 - 0.2601019144 8667.8535156250 -0.7984511852 - 0.2613589466 8666.1679687500 -0.7972857952 - 0.2626155615 8666.1972656250 -0.7961019278 - 0.2638716996 8667.8740234375 -0.7949141264 - 0.2651274204 8668.8847656250 -0.7937209606 - 0.2663826942 8668.0732421875 -0.7925214171 - 0.2676374912 8667.8603515625 -0.7913193107 - 0.2688918412 8666.9218750000 -0.7901101112 - 0.2701457441 8666.1044921875 -0.7889005542 - 0.2713992000 8667.3554687500 -0.7876793742 - 0.2726521790 8666.4414062500 -0.7864723206 - 0.2739046812 8667.4941406250 -0.7852425575 - 0.2751567364 8668.5273437500 -0.7840046883 - 0.2764083445 8666.2929687500 -0.7827806473 - 0.2776594460 8667.6083984375 -0.7815387249 - 0.2789101005 8667.9775390625 -0.7803081274 - 0.2801602781 8667.2968750000 -0.7790448666 - 0.2814099789 8667.2607421875 -0.7778038383 - 0.2826592028 8667.1279296875 -0.7765541077 - 0.2839079499 8668.8115234375 -0.7752988935 - 0.2851562202 8666.5156250000 -0.7740412354 - 0.2864039838 8667.7128906250 -0.7727743983 - 0.2876513004 8666.6328125000 -0.7715156674 - 0.2888981104 8668.1347656250 -0.7702426910 - 0.2901444137 8667.0537109375 -0.7689685225 - 0.2913902402 8667.2734375000 -0.7676960826 - 0.2926355600 8667.4238281250 -0.7664303780 - 0.2938804030 8667.8115234375 -0.7651523352 - 0.2951247394 8668.0849609375 -0.7638679743 - 0.2963685691 8665.8837890625 -0.7625912428 - 0.2976119220 8666.7470703125 -0.7613036036 - 0.2988547385 8666.9003906250 -0.7600163221 - 0.3000970781 8667.1025390625 -0.7587382793 - 0.3013388813 8667.2001953125 -0.7574570775 - 0.3025801778 8666.2578125000 -0.7561663389 - 0.3038209677 8667.8144531250 -0.7548663020 - 0.3050612509 8666.3232421875 -0.7535845637 - 0.3063009977 8667.9189453125 -0.7522906065 - 0.3075402379 8665.6181640625 -0.7509974837 - 0.3087789714 8667.0966796875 -0.7497107387 - 0.3100171387 8667.0673828125 -0.7484205365 - 0.3112548292 8666.8261718750 -0.7471361756 - 0.3124919534 8665.9248046875 -0.7458212972 - 0.3137285709 8667.2363281250 -0.7445440292 - 0.3149646521 8667.4121093750 -0.7432526350 - 0.3162001967 8665.7324218750 -0.7419668436 - 0.3174352050 8667.1503906250 -0.7406684756 - 0.3186696768 8667.6474609375 -0.7393799424 - 0.3199036121 8667.9130859375 -0.7380984426 - 0.3211369812 8668.1767578125 -0.7368115187 - 0.3223698437 8667.3173828125 -0.7355291247 - 0.3236021399 8666.7734375000 -0.7342402935 - 0.3248338699 8666.6806640625 -0.7329503298 - 0.3260650635 8665.2363281250 -0.7316675186 - 0.3272957206 8667.0859375000 -0.7303829193 - 0.3285258114 8667.6601562500 -0.7291117907 - 0.3297553360 8667.9111328125 -0.7278258801 - 0.3309843242 8666.4335937500 -0.7265604734 - 0.3322127163 8666.4023437500 -0.7252833247 - 0.3334405720 8666.1308593750 -0.7240120173 - 0.3346678615 8668.5546875000 -0.7227406502 - 0.3358945847 8666.4492187500 -0.7214746475 - 0.3371207118 8666.2539062500 -0.7202039361 - 0.3383463025 8665.7558593750 -0.7189462185 - 0.3395712972 8666.3144531250 -0.7176893353 - 0.3407957256 8665.3710937500 -0.7164286375 - 0.3420195580 8667.0400390625 -0.7151730657 - 0.3432428241 8668.2666015625 -0.7139298916 - 0.3444655240 8666.8662109375 -0.7126798630 - 0.3456876278 8667.3642578125 -0.7114374638 - 0.3469091356 8665.6503906250 -0.7101945877 - 0.3481300771 8667.3994140625 -0.7089502215 - 0.3493504226 8668.6953125000 -0.7077115178 - 0.3505701423 8667.2636718750 -0.7064786553 - 0.3517892957 8668.1240234375 -0.7052468061 - 0.3530078530 8666.2929687500 -0.7040252686 - 0.3542258143 8666.3388671875 -0.7027980685 - 0.3554431796 8666.5800781250 -0.7015824318 - 0.3566599190 8667.7333984375 -0.7003652453 - 0.3578760624 8666.9960937500 -0.6991498470 - 0.3590916097 8668.4472656250 -0.6979393959 - 0.3603065312 8665.8857421875 -0.6967262626 - 0.3615208566 8665.7519531250 -0.6955211163 - 0.3627345860 8665.2832031250 -0.6943285465 - 0.3639476597 8666.7021484375 -0.6931273937 - 0.3651601374 8665.8398437500 -0.6919336915 - 0.3663720191 8665.9287109375 -0.6907445192 - 0.3675832450 8666.6943359375 -0.6895619035 - 0.3687938452 8666.0302734375 -0.6883809566 - 0.3700038493 8666.6132812500 -0.6872047782 - 0.3712131977 8666.6875000000 -0.6860295534 - 0.3724219203 8666.8330078125 -0.6848626733 - 0.3736300468 8665.9218750000 -0.6836950779 - 0.3748374879 8665.6650390625 -0.6825278997 - 0.3760443330 8664.8769531250 -0.6813622713 - 0.3772505224 8665.3906250000 -0.6802074313 - 0.3784560859 8666.1533203125 -0.6790583134 - 0.3796609938 8667.0244140625 -0.6779081821 - 0.3808652461 8665.8554687500 -0.6767651439 - 0.3820688725 8667.6132812500 -0.6756220460 - 0.3832718730 8665.3671875000 -0.6744750738 - 0.3844741881 8665.8388671875 -0.6733490229 - 0.3856758475 8667.2177734375 -0.6722152829 - 0.3868768811 8664.8720703125 -0.6710890532 - 0.3880772293 8666.7138671875 -0.6699626446 - 0.3892769516 8666.8183593750 -0.6688435078 - 0.3904759884 8665.4521484375 -0.6677234173 - 0.3916743696 8664.5722656250 -0.6666101813 - 0.3928720951 8666.1162109375 -0.6655004621 - 0.3940691352 8666.8242187500 -0.6643943787 - 0.3952655196 8665.4072265625 -0.6632861495 - 0.3964612484 8666.5488281250 -0.6621882915 - 0.3976562917 8667.3613281250 -0.6610935330 - 0.3988506496 8667.5527343750 -0.6599996090 - 0.4000443518 8666.3955078125 -0.6589015722 - 0.4012373686 8667.4501953125 -0.6578149796 - 0.4024296999 8667.0263671875 -0.6567297578 - 0.4036213458 8665.5498046875 -0.6556425691 - 0.4048123360 8665.3212890625 -0.6545662284 - 0.4060026109 8666.3798828125 -0.6534947157 - 0.4071922004 8667.1005859375 -0.6524136662 - 0.4083811045 8665.5771484375 -0.6513445377 - 0.4095693231 8667.2382812500 -0.6502794027 - 0.4107568264 8665.2871093750 -0.6492127180 - 0.4119436443 8666.9941406250 -0.6481475234 - 0.4131297767 8665.8212890625 -0.6470902562 - 0.4143151939 8665.7744140625 -0.6460342407 - 0.4154998958 8666.3144531250 -0.6449759603 - 0.4166839123 8665.4316406250 -0.6439242363 - 0.4178672135 8666.7568359375 -0.6428783536 - 0.4190498292 8666.7480468750 -0.6418290138 - 0.4202316999 8666.6191406250 -0.6407847404 - 0.4214128852 8666.1923828125 -0.6397409439 - 0.4225933552 8666.5908203125 -0.6387010813 - 0.4237730801 8665.9335937500 -0.6376657486 - 0.4249521196 8665.4414062500 -0.6366239786 - 0.4261304140 8665.4980468750 -0.6355938911 - 0.4273080230 8666.5351562500 -0.6345647573 - 0.4284848571 8666.5458984375 -0.6335343719 - 0.4296610057 8666.7089843750 -0.6325036883 - 0.4308364093 8667.1845703125 -0.6314804554 - 0.4320110679 8666.9824218750 -0.6304578781 - 0.4331850111 8664.3408203125 -0.6294271946 - 0.4343582392 8665.7695312500 -0.6284102201 - 0.4355306923 8666.2617187500 -0.6273965836 - 0.4367024302 8666.1787109375 -0.6263757944 - 0.4378734231 8665.9150390625 -0.6253609657 - 0.4390436709 8665.6523437500 -0.6243491769 - 0.4402131736 8665.8291015625 -0.6233369112 - 0.4413819313 8666.2158203125 -0.6223251820 - 0.4425499439 8665.6562500000 -0.6213142872 - 0.4437172115 8666.4042968750 -0.6203075647 - 0.4448837042 8665.1494140625 -0.6193003058 - 0.4460494518 8664.4453125000 -0.6182945371 - 0.4472144544 8666.0019531250 -0.6172945499 - 0.4483786821 8664.3964843750 -0.6162855029 - 0.4495421648 8666.4677734375 -0.6152884960 - 0.4507049024 8664.9404296875 -0.6142871380 - 0.4518668354 8666.7900390625 -0.6132939458 - 0.4530280232 8664.6132812500 -0.6122876406 - 0.4541884363 8667.3720703125 -0.6112956405 - 0.4553481042 8664.6708984375 -0.6102985740 - 0.4565069675 8665.2343750000 -0.6092992425 - 0.4576650858 8664.4648437500 -0.6083071828 - 0.4588223994 8665.4404296875 -0.6073127985 - 0.4599789381 8665.9960937500 -0.6063266397 - 0.4611347318 8664.2480468750 -0.6053264141 - 0.4622896910 8666.1601562500 -0.6043372154 - 0.4634439051 8666.2470703125 -0.6033499837 - 0.4645973146 8664.0800781250 -0.6023515463 - 0.4657499492 8666.3808593750 -0.6013664007 - 0.4669017792 8665.8417968750 -0.6003800035 - 0.4680528343 8665.9033203125 -0.5993954539 - 0.4692030847 8666.1210937500 -0.5984009504 - 0.4703525603 8665.9082031250 -0.5974128246 - 0.4715012014 8665.2363281250 -0.5964307785 - 0.4726490676 8664.9589843750 -0.5954387188 - 0.4737961292 8665.9384765625 -0.5944551826 - 0.4749423862 8665.2978515625 -0.5934686065 - 0.4760878384 8666.3017578125 -0.5924881697 - 0.4772324860 8665.1054687500 -0.5914958715 - 0.4783763289 8666.8378906250 -0.5905147195 - 0.4795193672 8664.9335937500 -0.5895308256 - 0.4806615710 8664.4062500000 -0.5885365605 - 0.4818029702 8666.0654296875 -0.5875585675 - 0.4829435349 8666.1562500000 -0.5865752697 - 0.4840832949 8665.0566406250 -0.5855895281 - 0.4852222502 8665.5390625000 -0.5846005082 - 0.4863603711 8665.6572265625 -0.5836206675 - 0.4874976575 8665.6845703125 -0.5826394558 - 0.4886341393 8667.0498046875 -0.5816569924 - 0.4897697568 8663.9794921875 -0.5806626081 - 0.4909045696 8664.4697265625 -0.5796807408 - 0.4920385480 8664.7480468750 -0.5786966681 - 0.4931716919 8665.1484375000 -0.5777097940 - 0.4943040013 8665.3671875000 -0.5767263174 - 0.4954354763 8664.6162109375 -0.5757392049 - 0.4965660870 8666.1914062500 -0.5747579932 - 0.4976958632 8664.7675781250 -0.5737658739 - 0.4988248050 8666.8427734375 -0.5727832317 - 0.4999529123 8665.9716796875 -0.5717983842 - 0.5010801554 8664.4150390625 -0.5708094835 - 0.5022065639 8664.4609375000 -0.5698183775 - 0.5033321381 8665.1142578125 -0.5688319206 - 0.5044568181 8665.1972656250 -0.5678493977 - 0.5055806637 8666.3720703125 -0.5668651462 - 0.5067036152 8665.4589843750 -0.5658646226 - 0.5078257322 8665.1259765625 -0.5648775697 - 0.5089470148 8666.0556640625 -0.5638909936 - 0.5100674033 8664.1621093750 -0.5629030466 - 0.5111869574 8665.5664062500 -0.5619084239 - 0.5123056173 8665.5263671875 -0.5609168410 - 0.5134233832 8666.5537109375 -0.5599302649 - 0.5145403147 8665.0585937500 -0.5589355826 - 0.5156564116 8665.7373046875 -0.5579380989 - 0.5167715549 8665.5937500000 -0.5569475293 - 0.5178858638 8663.4365234375 -0.5559550524 - 0.5189992785 8665.6542968750 -0.5549616218 - 0.5201118588 8664.5781250000 -0.5539611578 - 0.5212235451 8664.5957031250 -0.5529658198 - 0.5223342776 8664.6875000000 -0.5519704223 - 0.5234441757 8665.9921875000 -0.5509769320 - 0.5245531797 8664.9707031250 -0.5499709845 - 0.5256613493 8664.1386718750 -0.5489700437 - 0.5267685652 8665.8886718750 -0.5479757786 - 0.5278748870 8666.7685546875 -0.5469802022 - 0.5289803147 8665.7978515625 -0.5459725857 - 0.5300848484 8665.9414062500 -0.5449727774 - 0.5311885476 8664.5390625000 -0.5439671874 - 0.5322912931 8665.3642578125 -0.5429679751 - 0.5333930850 8664.7812500000 -0.5419546366 - 0.5344940424 8665.6738281250 -0.5409526229 - 0.5355940461 8665.8164062500 -0.5399492383 - 0.5366932154 8664.9794921875 -0.5389463902 - 0.5377914310 8664.6220703125 -0.5379306078 - 0.5388886929 8665.5449218750 -0.5369214416 - 0.5399851203 8665.2636718750 -0.5359172225 - 0.5410805941 8665.4150390625 -0.5349081755 - 0.5421751142 8665.7763671875 -0.5338996649 - 0.5432687402 8664.1289062500 -0.5328780413 - 0.5443614721 8663.4082031250 -0.5318677425 - 0.5454532504 8665.6191406250 -0.5308567882 - 0.5465441346 8664.7070312500 -0.5298439860 - 0.5476340652 8666.2998046875 -0.5288211703 - 0.5487231016 8665.8300781250 -0.5278067589 - 0.5498111844 8664.9150390625 -0.5267911553 - 0.5508983135 8666.3876953125 -0.5257788301 - 0.5519845486 8665.1005859375 -0.5247469544 - 0.5530698299 8664.9960937500 -0.5237312913 - 0.5541541576 8664.2509765625 -0.5227092505 - 0.5552375317 8666.0888671875 -0.5216910243 - 0.5563200116 8665.7402343750 -0.5206593275 - 0.5574015379 8666.2246093750 -0.5196360350 - 0.5584821105 8664.1923828125 -0.5186101794 - 0.5595617294 8666.3544921875 -0.5175864100 - 0.5606403947 8664.6630859375 -0.5165618062 - 0.5617181659 8666.3955078125 -0.5155228376 - 0.5627949238 8664.9013671875 -0.5144965053 - 0.5638707280 8664.3867187500 -0.5134678483 - 0.5649455786 8664.7373046875 -0.5124398470 - 0.5660195351 8665.8261718750 -0.5113972425 - 0.5670924783 8664.7421875000 -0.5103675723 - 0.5681644678 8663.2968750000 -0.5093307495 - 0.5692354441 8665.1123046875 -0.5083011389 - 0.5703055263 8665.2148437500 -0.5072681308 - 0.5713745952 8664.1992187500 -0.5062187910 - 0.5724427104 8666.6972656250 -0.5051841736 - 0.5735098720 8664.8437500000 -0.5041447878 - 0.5745760798 8664.1376953125 -0.5031034946 - 0.5756412745 8665.2031250000 -0.5020655990 - 0.5767055154 8664.4589843750 -0.5010119081 - 0.5777687430 8666.7607421875 -0.4999720752 - 0.5788310170 8665.3427734375 -0.4989269674 - 0.5798922777 8665.2919921875 -0.4978831410 - 0.5809525847 8665.7558593750 -0.4968390167 - 0.5820119381 8664.8935546875 -0.4957783818 - 0.5830702782 8665.1894531250 -0.4947316647 - 0.5841276050 8665.5966796875 -0.4936842322 - 0.5851839781 8665.6337890625 -0.4926342070 - 0.5862393379 8663.9345703125 -0.4915698469 - 0.5872936845 8663.2900390625 -0.4905166030 - 0.5883470774 8664.6240234375 -0.4894647002 - 0.5893994570 8665.9531250000 -0.4884100556 - 0.5904508233 8665.9482421875 -0.4873538911 - 0.5915011764 8664.2705078125 -0.4862859547 - 0.5925505757 8664.9082031250 -0.4852286875 - 0.5935989618 8664.3701171875 -0.4841705263 - 0.5946463346 8664.4023437500 -0.4831087291 - 0.5956926346 8664.8896484375 -0.4820494950 - 0.5967379808 8666.2851562500 -0.4809729457 - 0.5977823138 8664.9716796875 -0.4799109399 - 0.5988256335 8663.7832031250 -0.4788474143 - 0.5998679399 8665.6259765625 -0.4777857363 - 0.6009092331 8665.5810546875 -0.4767193198 - 0.6019495130 8666.0517578125 -0.4756365716 - 0.6029887795 8665.3232421875 -0.4745683670 - 0.6040269732 8665.4482421875 -0.4734984636 - 0.6050642133 8664.5166015625 -0.4724287689 - 0.6061003804 8665.9287109375 -0.4713564217 - 0.6071355343 8667.3125000000 -0.4702821374 - 0.6081696153 8664.4394531250 -0.4691924453 - 0.6092027426 8664.9462890625 -0.4681188762 - 0.6102347970 8664.8535156250 -0.4670397639 - 0.6112657785 8666.8984375000 -0.4659668207 - 0.6122958064 8666.5000000000 -0.4648880064 - 0.6133247018 8665.5898437500 -0.4637922049 - 0.6143526435 8664.7900390625 -0.4627119899 - 0.6153795123 8665.1162109375 -0.4616284668 - 0.6164053082 8665.9960937500 -0.4605513811 - 0.6174300909 8665.0712890625 -0.4594635367 - 0.6184538007 8665.7607421875 -0.4583624899 - 0.6194764972 8664.9423828125 -0.4572763443 - 0.6204981208 8665.9160156250 -0.4561901391 - 0.6215187311 8665.3486328125 -0.4551004767 - 0.6225382090 8666.2841796875 -0.4540129900 - 0.6235566735 8664.7343750000 -0.4529038966 - 0.6245741248 8665.0224609375 -0.4518123269 - 0.6255904436 8664.6660156250 -0.4507172108 - 0.6266057491 8664.4208984375 -0.4496294856 - 0.6276199818 8666.8769531250 -0.4485341907 - 0.6286331415 8666.2119140625 -0.4474381804 - 0.6296452284 8664.6240234375 -0.4463246465 - 0.6306563020 8665.0957031250 -0.4452242553 - 0.6316662431 8666.3193359375 -0.4441264868 - 0.6326751113 8665.8154296875 -0.4430255890 - 0.6336829662 8665.9306640625 -0.4419227242 - 0.6346896887 8666.2148437500 -0.4408186078 - 0.6356953382 8664.0957031250 -0.4397013187 - 0.6366999745 8665.3154296875 -0.4385965466 - 0.6377034783 8665.9980468750 -0.4374913871 - 0.6387059093 8665.1962890625 -0.4363822341 - 0.6397072673 8665.4130859375 -0.4352749288 - 0.6407074928 8667.6103515625 -0.4341638386 - 0.6417067051 8665.1328125000 -0.4330382049 - 0.6427047849 8665.9394531250 -0.4319262505 - 0.6437017918 8666.7978515625 -0.4308162630 - 0.6446976662 8665.6865234375 -0.4297036529 - 0.6456924677 8666.6835937500 -0.4285862744 - 0.6466861963 8664.9541015625 -0.4274547398 - 0.6476788521 8665.4541015625 -0.4263363779 - 0.6486703753 8665.9062500000 -0.4252174497 - 0.6496607661 8666.4804687500 -0.4241017997 - 0.6506501436 8667.4726562500 -0.4229845405 - 0.6516383290 8665.2187500000 -0.4218626916 - 0.6526254416 8666.1835937500 -0.4207223356 - 0.6536114812 8665.5722656250 -0.4195974171 - 0.6545963883 8665.2773437500 -0.4184739292 - 0.6555801630 8667.0595703125 -0.4173499644 - 0.6565628648 8665.4628906250 -0.4162257314 - 0.6575444341 8666.4375000000 -0.4150980115 - 0.6585248709 8665.3623046875 -0.4139495790 - 0.6595041752 8666.6396484375 -0.4128223360 - 0.6604824066 8665.4189453125 -0.4116891623 - 0.6614595056 8664.2304687500 -0.4105619490 - 0.6624354720 8665.7832031250 -0.4094279706 - 0.6634103656 8664.7861328125 -0.4082958102 - 0.6643840671 8666.9140625000 -0.4071600437 - 0.6653566957 8665.9902343750 -0.4060058892 - 0.6663281322 8665.6240234375 -0.4048687816 - 0.6672984958 8666.6787109375 -0.4037340581 - 0.6682677269 8665.3144531250 -0.4025943577 - 0.6692357659 8668.2734375000 -0.4014568925 - 0.6702027321 8666.0878906250 -0.4003155529 - 0.6711685658 8665.2587890625 -0.3991721570 - 0.6721332073 8665.7597656250 -0.3980157971 - 0.6730967164 8666.1992187500 -0.3968702853 - 0.6740591526 8665.5957031250 -0.3957262635 - 0.6750203967 8666.0039062500 -0.3945786357 - 0.6759805083 8666.2705078125 -0.3934324384 - 0.6769394279 8666.5283203125 -0.3922886252 - 0.6778972745 8666.0273437500 -0.3911197484 - 0.6788539290 8665.0888671875 -0.3899694085 - 0.6798093915 8667.3330078125 -0.3888184130 - 0.6807637811 8667.6357421875 -0.3876715302 - 0.6817169785 8665.8076171875 -0.3865176737 - 0.6826690435 8666.9921875000 -0.3853634298 - 0.6836199164 8666.7363281250 -0.3841894567 - 0.6845696568 8664.7968750000 -0.3830342293 - 0.6855182052 8666.6337890625 -0.3818807006 - 0.6864656210 8666.5126953125 -0.3807238340 - 0.6874118447 8667.1533203125 -0.3795638978 - 0.6883569360 8665.8232421875 -0.3784039021 - 0.6893008351 8667.7832031250 -0.3772466481 - 0.6902436018 8665.6503906250 -0.3760676980 - 0.6911851764 8667.1533203125 -0.3749037683 - 0.6921255589 8665.0800781250 -0.3737408519 - 0.6930648088 8667.5283203125 -0.3725789189 - 0.6940028667 8666.5820312500 -0.3714147806 - 0.6949397326 8666.1357421875 -0.3702478707 - 0.6958754063 8666.6435546875 -0.3690808713 - 0.6968099475 8667.0556640625 -0.3679158390 - 0.6977432966 8666.2939453125 -0.3667268157 - 0.6986754537 8666.8076171875 -0.3655594587 - 0.6996064186 8667.2128906250 -0.3643859625 - 0.7005361915 8667.7568359375 -0.3632191718 - 0.7014647722 8667.5185546875 -0.3620435894 - 0.7023921609 8667.0429687500 -0.3608731329 - 0.7033184171 8666.9902343750 -0.3596977890 - 0.7042434216 8666.1806640625 -0.3585267365 - 0.7051672339 8665.9824218750 -0.3573273718 - 0.7060898542 8667.3251953125 -0.3561530411 - 0.7070112824 8666.3632812500 -0.3549737930 - 0.7079315186 8667.6074218750 -0.3537983894 - 0.7088505626 8666.2314453125 -0.3526174128 - 0.7097684145 8667.8310546875 -0.3514390886 - 0.7106850743 8667.0019531250 -0.3502551019 - 0.7116004825 8667.8740234375 -0.3490573168 - 0.7125146985 8666.6679687500 -0.3478727043 - 0.7134277225 8668.3027343750 -0.3466899991 - 0.7143394947 8667.3955078125 -0.3455074131 - 0.7152500749 8667.2910156250 -0.3443217576 - 0.7161594629 8667.1171875000 -0.3431345224 - 0.7170676589 8668.1992187500 -0.3419473767 - 0.7179746032 8666.5976562500 -0.3407413661 - 0.7188802958 8667.1699218750 -0.3395504355 - 0.7197848558 8665.1923828125 -0.3383609056 - 0.7206881046 8667.6503906250 -0.3371730149 - 0.7215902209 8668.1699218750 -0.3359820843 - 0.7224910259 8667.5605468750 -0.3347888291 - 0.7233906388 8668.7490234375 -0.3335970044 - 0.7242890596 8667.9589843750 -0.3324039280 - 0.7251862288 8668.2216796875 -0.3312093616 - 0.7260821462 8667.4433593750 -0.3299907446 - 0.7269768715 8666.8027343750 -0.3287979364 - 0.7278703451 8667.4101562500 -0.3276000917 - 0.7287625670 8668.6308593750 -0.3264032900 - 0.7296535969 8667.0449218750 -0.3252065778 - 0.7305433750 8668.0683593750 -0.3240054250 - 0.7314319015 8667.0683593750 -0.3228059709 - 0.7323191762 8668.3037109375 -0.3216056526 - 0.7332052588 8668.2939453125 -0.3204043508 - 0.7340900302 8666.6796875000 -0.3192014396 - 0.7349736094 8668.4384765625 -0.3179787099 - 0.7358559370 8667.0761718750 -0.3167724907 - 0.7367369533 8667.0908203125 -0.3155691624 - 0.7376167774 8669.3505859375 -0.3143615127 - 0.7384953499 8668.7304687500 -0.3131580353 - 0.7393726707 8669.1416015625 -0.3119496703 - 0.7402487397 8667.0488281250 -0.3107416332 - 0.7411235571 8668.3251953125 -0.3095112443 - 0.7419970632 8668.0400390625 -0.3083014488 - 0.7428693771 8667.5400390625 -0.3070904911 - 0.7437404394 8667.4599609375 -0.3058815002 - 0.7446101904 8668.8935546875 -0.3046684563 - 0.7454786897 8667.9609375000 -0.3034567535 - 0.7463459373 8668.7197265625 -0.3022448123 - 0.7472119331 8669.6572265625 -0.3010299504 - 0.7480766177 8667.5498046875 -0.2997910976 - 0.7489400506 8667.4082031250 -0.2985781431 - 0.7498022318 8667.6240234375 -0.2973604798 - 0.7506631613 8669.4042968750 -0.2961440682 - 0.7515227795 8668.0537109375 -0.2949270010 - 0.7523811460 8668.0195312500 -0.2937084734 - 0.7532382011 8668.1806640625 -0.2924916744 - 0.7540940046 8668.2089843750 -0.2912707627 - 0.7549485564 8668.0517578125 -0.2900490165 - 0.7558017969 8668.8486328125 -0.2888297141 - 0.7566537857 8667.7119140625 -0.2876076102 - 0.7575044632 8669.0332031250 -0.2863844931 - 0.7583538294 8668.9980468750 -0.2851628959 - 0.7592019439 8668.4511718750 -0.2839375436 - 0.7600487471 8669.0419921875 -0.2826902568 - 0.7608942986 8668.9648437500 -0.2814650536 - 0.7617385387 8668.5849609375 -0.2802382410 - 0.7625815272 8669.9238281250 -0.2790116668 - 0.7634231448 8669.0859375000 -0.2777840197 - 0.7642635107 8669.4775390625 -0.2765551209 - 0.7651026249 8668.8515625000 -0.2753285766 - 0.7659403682 8669.4599609375 -0.2740975022 - 0.7667768598 8668.6816406250 -0.2728421986 - 0.7676120400 8669.6728515625 -0.2716136575 - 0.7684459090 8669.6357421875 -0.2703817189 - 0.7692784667 8668.5771484375 -0.2691482604 - 0.7701097131 8670.1992187500 -0.2679170072 - 0.7709397078 8671.0029296875 -0.2666824460 - 0.7717683315 8669.4160156250 -0.2654249072 - 0.7725957036 8668.2412109375 -0.2641888559 - 0.7734217048 8670.5654296875 -0.2629533112 - 0.7742464542 8669.0068359375 -0.2617162764 - 0.7750698924 8668.7001953125 -0.2604807019 - 0.7758919597 8669.4824218750 -0.2592425048 - 0.7767127156 8670.6533203125 -0.2580048144 - 0.7775322199 8669.4824218750 -0.2567653358 - 0.7783503532 8670.2685546875 -0.2555271685 - 0.7791671753 8669.1787109375 -0.2542858422 - 0.7799826860 8670.3144531250 -0.2530458272 - 0.7807968855 8670.0361328125 -0.2518034577 - 0.7816097140 8670.2109375000 -0.2505622506 - 0.7824212909 8670.4365234375 -0.2493197322 - 0.7832314968 8670.4482421875 -0.2480767518 - 0.7840403318 8670.1875000000 -0.2468315959 - 0.7848479152 8669.8486328125 -0.2455874383 - 0.7856541276 8671.8798828125 -0.2443427593 - 0.7864590287 8670.6181640625 -0.2430979759 - 0.7872625589 8671.8574218750 -0.2418501824 - 0.7880647779 8671.1474609375 -0.2406029403 - 0.7888656855 8671.4648437500 -0.2393559068 - 0.7896652222 8670.6679687500 -0.2380827665 - 0.7904634476 8672.3681640625 -0.2368335724 - 0.7912603021 8670.6093750000 -0.2355839610 - 0.7920558453 8671.7714843750 -0.2343340963 - 0.7928500175 8670.5488281250 -0.2330577672 - 0.7936428189 8670.3935546875 -0.2318066657 - 0.7944343686 8671.0810546875 -0.2305545956 - 0.7952244878 8670.0693359375 -0.2292764038 - 0.7960132957 8670.8564453125 -0.2280242294 - 0.7968007326 8670.8886718750 -0.2267697901 - 0.7975868583 8671.4414062500 -0.2254903018 - 0.7983715534 8669.2363281250 -0.2242352366 - 0.7991549969 8669.0537109375 -0.2229787558 - 0.7999370098 8670.8662109375 -0.2217237949 - 0.8007177114 8670.6875000000 -0.2204663903 - 0.8014970422 8669.8779296875 -0.2192087024 - 0.8022750020 8669.9531250000 -0.2179511786 - 0.8030515909 8669.6835937500 -0.2166932821 - 0.8038268089 8671.2285156250 -0.2154598236 - 0.8046007156 8670.2216796875 -0.2142009288 - 0.8053731918 8672.6582031250 -0.2129676640 - 0.8061443567 8673.3398437500 -0.2117072344 - 0.8069141507 8672.6923828125 -0.2104707807 - 0.8076825738 8673.9716796875 -0.2092370987 - 0.8084496260 8674.5976562500 -0.2080007046 - 0.8092153072 8675.5166015625 -0.2067911774 - 0.8099796176 8678.5556640625 -0.2055544108 - 0.8107424974 8680.0429687500 -0.2043443918 - 0.8115040660 8680.3955078125 -0.2031066567 - 0.8122642636 8682.9824218750 -0.2018953562 - 0.8130230904 8682.4736328125 -0.2006571293 - 0.8137804866 8685.3007812500 -0.1994455159 - 0.8145365119 8686.2949218750 -0.1982327104 - 0.8152912259 8687.2724609375 -0.1969931126 - 0.8160445094 8689.3027343750 -0.1957805306 - 0.8167963624 8689.8046875000 -0.1945390999 - 0.8175469041 8692.4277343750 -0.1933252513 - 0.8182960153 8693.3437500000 -0.1920840740 - 0.8190437555 8693.0937500000 -0.1908423305 - 0.8197901249 8695.6533203125 -0.1895999163 - 0.8205350637 8695.9511718750 -0.1883578300 - 0.8212786317 8697.1367187500 -0.1870870590 - 0.8220208287 8696.3466796875 -0.1858433187 - 0.8227615952 8697.0644531250 -0.1845724881 - 0.8235009909 -27827.1582031250 -0.1801547855 - 0.8242389560 -27828.2382812500 -0.1788875610 - 0.8249756098 -27827.7656250000 -0.1776499301 - 0.8257107735 -27826.5468750000 -0.1763807982 - 0.8264445662 -27827.9648437500 -0.1751443297 - 0.8271769881 -27826.1406250000 -0.1739064753 - 0.8279079795 -27826.6835937500 -0.1726688892 - 0.8286375403 -27825.7910156250 -0.1714313030 - 0.8293657303 -27826.3515625000 -0.1702240705 - 0.8300924897 -27826.3867187500 -0.1689852029 - 0.8308178782 -27825.2070312500 -0.1677781343 - 0.8315418363 -27824.1660156250 -0.1665398329 - 0.8322644234 -27825.7851562500 -0.1653319448 - 0.8329855204 -27823.3730468750 -0.1641240418 - 0.8337052464 -27825.4589843750 -0.1628861129 - 0.8344236016 -27823.5234375000 -0.1616775244 - 0.8351404667 -27824.5292968750 -0.1604387909 - 0.8358559608 -27823.8515625000 -0.1592310071 - 0.8365700245 -27821.8535156250 -0.1579918563 - 0.8372827172 -27821.7441406250 -0.1567834318 - 0.8379939198 -27820.8535156250 -0.1555436552 - 0.8387037516 -27820.5683593750 -0.1543062925 - 0.8394120932 -27821.7265625000 -0.1530659944 - 0.8401190639 -27822.4121093750 -0.1517972797 - 0.8408246040 -27820.4218750000 -0.1505587548 - 0.8415287137 -27821.6582031250 -0.1492906809 - 0.8422314525 -27820.2597656250 -0.1480510384 - 0.8429327011 -27820.9550781250 -0.1467826217 - 0.8436325192 -27820.4335937500 -0.1455141455 - 0.8443309069 -27821.4160156250 -0.1442451775 - 0.8450278640 -27821.9492187500 -0.1429759264 - 0.8457234502 -27821.4394531250 -0.1417086273 - 0.8464175463 -27820.7968750000 -0.1404387951 - 0.8471102118 -27821.7597656250 -0.1391703784 - 0.8478014469 -27821.2910156250 -0.1378729641 - 0.8484912515 -27821.4960937500 -0.1366039515 - 0.8491795659 -27820.9960937500 -0.1353367716 - 0.8498665094 -27822.5097656250 -0.1340394914 - 0.8505519629 -27820.5019531250 -0.1327707469 - 0.8512359858 -27821.7285156250 -0.1315033138 - 0.8519185781 -27821.1738281250 -0.1302060485 - 0.8525997400 -27819.8339843750 -0.1289382279 - 0.8532794118 -27822.5761718750 -0.1276703179 - 0.8539577127 -27819.9433593750 -0.1264022589 - 0.8546344638 -27820.0605468750 -0.1251062900 - 0.8553098440 -27820.4609375000 -0.1238394231 - 0.8559837341 -27821.6113281250 -0.1225716770 - 0.8566561937 -27820.1035156250 -0.1213026568 - 0.8573272228 -27821.6503906250 -0.1200369820 - 0.8579967618 -27818.8632812500 -0.1187697276 - 0.8586648703 -27819.1972656250 -0.1175035909 - 0.8593314886 -27819.7656250000 -0.1162355468 - 0.8599966764 -27820.6777343750 -0.1149690673 - 0.8606603742 -27820.1386718750 -0.1137025505 - 0.8613226414 -27820.8007812500 -0.1124370843 - 0.8619834781 -27820.8457031250 -0.1111698002 - 0.8626428246 -27820.3828125000 -0.1099040508 - 0.8633006811 -27820.3652343750 -0.1086365208 - 0.8639571071 -27819.0058593750 -0.1073720604 - 0.8646120429 -27821.0468750000 -0.1061058715 - 0.8652655482 -27820.7597656250 -0.1048403308 - 0.8659175634 -27819.3925781250 -0.1035739258 - 0.8665680885 -27819.0957031250 -0.1023096964 - 0.8672171831 -27820.5742187500 -0.1010437310 - 0.8678647876 -27819.0703125000 -0.0997784957 - 0.8685109615 -27820.1015625000 -0.0985123366 - 0.8691555858 -27820.6425781250 -0.0972209051 - 0.8697987795 -27820.2519531250 -0.0959547758 - 0.8704405427 -27819.5820312500 -0.0946922898 - 0.8710807562 -27820.2011718750 -0.0934267566 - 0.8717195392 -27820.6679687500 -0.0921615437 - 0.8723568320 -27818.6445312500 -0.0909003392 - 0.8729926348 -27819.8476562500 -0.0896079242 - 0.8736269474 -27819.1191406250 -0.0883418396 - 0.8742598295 -27820.7792968750 -0.0870818794 - 0.8748911619 -27818.6953125000 -0.0858170763 - 0.8755210638 -27819.5234375000 -0.0845543146 - 0.8761494756 -27818.4199218750 -0.0832913145 - 0.8767763972 -27819.7734375000 -0.0820280463 - 0.8774017692 -27818.2636718750 -0.0807657465 - 0.8780257106 -27819.0546875000 -0.0794768035 - 0.8786481619 -27819.5000000000 -0.0782134160 - 0.8792691231 -27819.8027343750 -0.0769538581 - 0.8798885942 -27818.4179687500 -0.0756910816 - 0.8805065751 -27819.4433593750 -0.0744293556 - 0.8811230659 -27818.9394531250 -0.0731709972 - 0.8817380667 -27819.8378906250 -0.0719080493 - 0.8823515773 -27818.8730468750 -0.0706458986 - 0.8829635382 -27818.6074218750 -0.0693882853 - 0.8835740685 -27819.4941406250 -0.0681274980 - 0.8841830492 -27818.8515625000 -0.0668681636 - 0.8847905993 -27819.0000000000 -0.0656092688 - 0.8853965998 -27819.1484375000 -0.0643474758 - 0.8860011101 -27818.3339843750 -0.0630910471 - 0.8866040707 -27819.8320312500 -0.0618040822 - 0.8872056007 -27820.5410156250 -0.0605441406 - 0.8878055811 -27818.0000000000 -0.0592869893 - 0.8884040713 -27820.2714843750 -0.0580301359 - 0.8890010715 -27818.7480468750 -0.0567695163 - 0.8895965219 -27818.5136718750 -0.0555147976 - 0.8901904821 -27819.3417968750 -0.0542567484 - 0.8907829523 -27819.6542968750 -0.0529985428 - 0.8913739324 -27817.6445312500 -0.0517166778 - 0.8919633627 -27818.9375000000 -0.0504597984 - 0.8925513029 -27818.8046875000 -0.0492015667 - 0.8931376934 -27818.9980468750 -0.0479494669 - 0.8937225938 -27818.2949218750 -0.0466910116 - 0.8943059444 -27818.3496093750 -0.0454373583 - 0.8948878646 -27819.1738281250 -0.0441800058 - 0.8954681754 -27817.0664062500 -0.0429022610 - 0.8960469961 -27819.1503906250 -0.0416477472 - 0.8966243267 -27818.6582031250 -0.0403937623 - 0.8972001076 -27817.1503906250 -0.0391406305 - 0.8977743983 -27818.8261718750 -0.0378883332 - 0.8983471394 -27819.2128906250 -0.0366328619 - 0.8989183903 -27818.6699218750 -0.0353820249 - 0.8994880915 -27820.0644531250 -0.0341314226 - 0.9000562429 -27818.9238281250 -0.0328777097 - 0.9006229043 -27818.5546875000 -0.0316301137 - 0.9011880159 -27818.1582031250 -0.0303511526 - 0.9017516375 -27818.7500000000 -0.0290997885 - 0.9023137093 -27819.3867187500 -0.0278506242 - 0.9028742313 -27818.5527343750 -0.0266009308 - 0.9034332037 -27819.5742187500 -0.0253499728 - 0.9039906859 -27819.4628906250 -0.0241006557 - 0.9045466185 -27816.8515625000 -0.0228542034 - 0.9051010609 -27819.4765625000 -0.0216059219 - 0.9056539536 -27818.7675781250 -0.0203546248 - 0.9062052369 -27818.1777343750 -0.0190858897 - 0.9067550898 -27817.0175781250 -0.0178376511 - 0.9073033333 -27818.6933593750 -0.0165892914 - 0.9078500867 -27817.4628906250 -0.0153420903 - 0.9083952308 -27818.3281250000 -0.0140978293 - 0.9089388847 -27818.7714843750 -0.0128536113 - 0.9094809890 -27819.6445312500 -0.0116055906 - 0.9100215435 -27817.4511718750 -0.0103415502 - 0.9105606079 -27817.6816406250 -0.0090938602 - 0.9110980630 -27818.1152343750 -0.0078516575 - 0.9116339684 -27818.7890625000 -0.0066059306 - 0.9121683836 -27818.4062500000 -0.0053660683 - 0.9127012491 -27818.2265625000 -0.0041212277 - 0.9132325053 -27817.8632812500 -0.0028808929 - 0.9137622714 -27817.1074218750 -0.0016114074 - 0.9142904282 -27817.4179687500 -0.0003750934 - 0.9148170948 -27817.5449218750 0.0008683398 - 0.9153422117 -27818.8203125000 0.0021052454 - 0.9158657193 -27819.5117187500 0.0033498171 - 0.9163877368 -27817.5019531250 0.0045835432 - 0.9169081450 -27817.9082031250 0.0058271568 - 0.9174270630 -27819.0351562500 0.0070625953 - 0.9179443717 -27819.1855468750 0.0083255731 - 0.9184601307 -27817.3906250000 0.0095597450 - 0.9189743400 -27817.9296875000 0.0107976831 - 0.9194869995 -27817.9531250000 0.0120353876 - 0.9199981093 -27819.4257812500 0.0132706054 - 0.9205076694 -27816.4140625000 0.0145036224 - 0.9210156202 -27818.7480468750 0.0157383457 - 0.9215220213 -27816.9277343750 0.0169757139 - 0.9220268726 -27819.1054687500 0.0182301160 - 0.9225301743 -27816.4921875000 0.0194602851 - 0.9230319262 -27818.8496093750 0.0206937771 - 0.9235320687 -27817.3769531250 0.0219287835 - 0.9240306616 -27817.0507812500 0.0231603142 - 0.9245277047 -27816.9570312500 0.0243876223 - 0.9250231385 -27818.2226562500 0.0256177727 - 0.9255170226 -27817.6035156250 0.0268716738 - 0.9260093570 -27816.5761718750 0.0281020328 - 0.9265000820 -27819.2656250000 0.0293327980 - 0.9269892573 -27817.8359375000 0.0305545535 - 0.9274768829 -27817.9296875000 0.0317837000 - 0.9279629588 -27817.7851562500 0.0330116823 - 0.9284473658 -27817.8027343750 0.0342630707 - 0.9289302826 -27816.5800781250 0.0354842246 - 0.9294115901 -27817.7011718750 0.0367094278 - 0.9298913479 -27817.7578125000 0.0379368700 - 0.9303694963 -27818.5156250000 0.0391604789 - 0.9308460951 -27817.9746093750 0.0403870493 - 0.9313210845 -27816.3417968750 0.0416251384 - 0.9317945242 -27817.2832031250 0.0428504534 - 0.9322663546 -27818.5253906250 0.0440723002 - 0.9327366352 -27817.0351562500 0.0452916622 - 0.9332053065 -27818.5214843750 0.0465130061 - 0.9336724281 -27817.5996093750 0.0477292277 - 0.9341379404 -27817.3847656250 0.0489487611 - 0.9346019030 -27818.7871093750 0.0501902029 - 0.9350642562 -27817.0742187500 0.0514107756 - 0.9355250001 -27817.4257812500 0.0526260622 - 0.9359841943 -27816.7636718750 0.0538449101 - 0.9364417791 -27817.4296875000 0.0550540760 - 0.9368978143 -27818.2382812500 0.0562731251 - 0.9373521805 -27816.9296875000 0.0574855246 - 0.9378050566 -27817.2402343750 0.0587242804 - 0.9382562637 -27818.6718750000 0.0599383004 - 0.9387059212 -27819.6542968750 0.0611479729 - 0.9391539693 -27817.4589843750 0.0623589642 - 0.9396004677 -27816.6562500000 0.0635688603 - 0.9400452971 -27817.0468750000 0.0647821128 - 0.9404885769 -27817.4003906250 0.0660149604 - 0.9409303069 -27818.6699218750 0.0672249347 - 0.9413703680 -27818.9082031250 0.0684297606 - 0.9418088794 -27817.3828125000 0.0696325600 - 0.9422457814 -27817.6757812500 0.0708416626 - 0.9426810741 -27817.3554687500 0.0720512345 - 0.9431147575 -27818.5117187500 0.0732746050 - 0.9435468316 -27816.8085937500 0.0744842291 - 0.9439773560 -27818.1347656250 0.0756862536 - 0.9444062710 -27818.9804687500 0.0768878013 - 0.9448335767 -27817.0898437500 0.0780916959 - 0.9452592731 -27818.1171875000 0.0793110058 - 0.9456833601 -27817.0000000000 0.0805147141 - 0.9461058378 -27817.3164062500 0.0817158595 - 0.9465267062 -27818.8769531250 0.0829171687 - 0.9469460249 -27817.8437500000 0.0841163471 - 0.9473636746 -27817.0253906250 0.0853150487 - 0.9477797747 -27817.6308593750 0.0865272582 - 0.9481942058 -27816.7734375000 0.0877269059 - 0.9486070871 -27818.1816406250 0.0889246091 - 0.9490182996 -27817.7167968750 0.0901208594 - 0.9494279623 -27817.1152343750 0.0913137719 - 0.9498360157 -27816.2910156250 0.0925111175 - 0.9502424002 -27818.2402343750 0.0937231407 - 0.9506472349 -27818.0839843750 0.0949163735 - 0.9510504007 -27817.2968750000 0.0961077362 - 0.9514520168 -27817.3007812500 0.0972911417 - 0.9518519640 -27817.2343750000 0.0984843075 - 0.9522503018 -27817.5214843750 0.0996746942 - 0.9526470900 -27818.1777343750 0.1008838415 - 0.9530422091 -27817.5214843750 0.1020702422 - 0.9534357190 -27817.4277343750 0.1032592580 - 0.9538276196 -27816.8300781250 0.1044453755 - 0.9542179108 -27818.7656250000 0.1056297794 - 0.9546065331 -27816.9296875000 0.1068343744 - 0.9549936056 -27817.1855468750 0.1080249175 - 0.9553790092 -27816.8730468750 0.1091989949 - 0.9557628036 -27815.3125000000 0.1103850901 - 0.9561449885 -27816.9648437500 0.1115661040 - 0.9565255642 -27818.6796875000 0.1127671599 - 0.9569044709 -27818.8496093750 0.1139471978 - 0.9572818279 -27817.7070312500 0.1151215211 - 0.9576575160 -27816.8144531250 0.1163046286 - 0.9580315948 -27817.5000000000 0.1174818054 - 0.9584040046 -27819.1132812500 0.1186758801 - 0.9587748647 -27817.0546875000 0.1198554710 - 0.9591440558 -27816.3886718750 0.1210323796 - 0.9595116377 -27817.4921875000 0.1222071201 - 0.9598775506 -27817.3183593750 0.1233812124 - 0.9602418542 -27818.3886718750 0.1245533302 - 0.9606045485 -27817.5097656250 0.1257452071 - 0.9609656334 -27816.6816406250 0.1269183457 - 0.9613250494 -27815.2382812500 0.1280854940 - 0.9616828561 -27816.9101562500 0.1292548478 - 0.9620389938 -27818.8105468750 0.1304225028 - 0.9623935819 -27817.3886718750 0.1316095293 - 0.9627464414 -27817.1562500000 0.1327765137 - 0.9630977511 -27816.8066406250 0.1339471638 - 0.9634473920 -27817.4453125000 0.1351142228 - 0.9637953639 -27817.4746093750 0.1362790912 - 0.9641417861 -27816.7480468750 0.1374579519 - 0.9644864798 -27817.9375000000 0.1386239678 - 0.9648296237 -27816.9609375000 0.1397894770 - 0.9651710987 -27816.5312500000 0.1409516335 - 0.9655109048 -27817.0664062500 0.1421146095 - 0.9658491015 -27817.6503906250 0.1432908475 - 0.9661856294 -27816.9843750000 0.1444534361 - 0.9665206075 -27817.5722656250 0.1456124485 - 0.9668538570 -27817.5859375000 0.1467700601 - 0.9671854973 -27818.0410156250 0.1479455233 - 0.9675155282 -27818.2792968750 0.1491026878 - 0.9678438902 -27817.5605468750 0.1502595097 - 0.9681705832 -27819.2968750000 0.1514165699 - 0.9684956670 -27817.9609375000 0.1525712162 - 0.9688190818 -27816.6308593750 0.1537410319 - 0.9691408873 -27817.5820312500 0.1548928618 - 0.9694610238 -27816.5410156250 0.1560495943 - 0.9697795510 -27818.1484375000 0.1572043002 - 0.9700964093 -27816.9511718750 0.1583548635 - 0.9704116583 -27816.3828125000 0.1595226228 - 0.9707252383 -27817.3515625000 0.1606713831 - 0.9710371494 -27816.2968750000 0.1618176103 - 0.9713474512 -27815.5996093750 0.1629711837 - 0.9716560841 -27818.5195312500 0.1641173661 - 0.9719630480 -27816.3613281250 0.1652802080 - 0.9722684026 -27816.6933593750 0.1664264351 - 0.9725720882 -27816.9453125000 0.1675742716 - 0.9728741050 -27818.5156250000 0.1687187552 - 0.9731745124 -27816.7207031250 0.1698791236 - 0.9734732509 -27818.2207031250 0.1710238159 - 0.9737703204 -27816.6386718750 0.1721684635 - 0.9740657806 -27818.4414062500 0.1733164489 - 0.9743595719 -27818.7812500000 0.1744595170 - 0.9746516943 -27818.7304687500 0.1756155193 - 0.9749422073 -27816.7128906250 0.1767552942 - 0.9752310514 -27816.7285156250 0.1778996736 - 0.9755182266 -27817.8847656250 0.1790381521 - 0.9758037329 -27818.2910156250 0.1801950485 - 0.9760876298 -27817.8066406250 0.1813303381 - 0.9763697982 -27818.0449218750 0.1824708879 - 0.9766503572 -27819.2753906250 0.1836083829 - 0.9769293070 -27816.8027343750 0.1847582608 - 0.9772065282 -27817.9980468750 0.1858960539 - 0.9774821401 -27815.9082031250 0.1870333105 - 0.9777560830 -27817.0527343750 0.1881701946 - 0.9780283570 -27818.3906250000 0.1893190145 - 0.9782989621 -27818.6523437500 0.1904547513 - 0.9785678983 -27817.6894531250 0.1915924698 - 0.9788352251 -27818.0117187500 0.1927241236 - 0.9791008830 -27817.5527343750 0.1938620061 - 0.9793648720 -27818.0292968750 0.1950079352 - 0.9796271920 -27817.7773437500 0.1961400658 - 0.9798878431 -27818.5683593750 0.1972734928 - 0.9801468253 -27816.6484375000 0.1984059811 - 0.9804041386 -27817.0390625000 0.1995499432 - 0.9806598425 -27817.3300781250 0.2006830126 - 0.9809138775 -27818.1953125000 0.2018218040 - 0.9811661839 -27818.4238281250 0.2029534429 - 0.9814168811 -27818.8593750000 0.2040955424 - 0.9816659093 -27818.1386718750 0.2052226663 - 0.9819132686 -27817.0175781250 0.2063522190 - 0.9821589589 -27817.4218750000 0.2074879408 - 0.9824029803 -27818.6386718750 0.2086292207 - 0.9826453328 -27817.2656250000 0.2097573280 - 0.9828860164 -27817.3320312500 0.2108930945 - 0.9831250906 -27817.9453125000 0.2120245546 - 0.9833624363 -27817.5117187500 0.2131619602 - 0.9835981131 -27815.6816406250 0.2142944485 - 0.9838321805 -27817.6855468750 0.2154247910 - 0.9840645194 -27819.1503906250 0.2165535390 - 0.9842951894 -27817.0156250000 0.2176915258 - 0.9845242500 -27818.9375000000 0.2188283354 - 0.9847515821 -27818.7656250000 0.2199560255 - 0.9849772453 -27818.1875000000 0.2210890502 - 0.9852012992 -27816.3710937500 0.2222256660 - 0.9854236245 -27817.2265625000 0.2233569771 - 0.9856442809 -27817.2207031250 0.2244860083 - 0.9858633280 -27817.7929687500 0.2256192267 - 0.9860806465 -27818.4707031250 0.2267653644 - 0.9862962961 -27818.3828125000 0.2278940976 - 0.9865102768 -27817.8125000000 0.2290232033 - 0.9867225885 -27817.1406250000 0.2301564664 - 0.9869332314 -27817.3847656250 0.2312960178 - 0.9871422052 -27817.7363281250 0.2324326336 - 0.9873495102 -27819.1386718750 0.2335662395 - 0.9875550866 -27816.9667968750 0.2346984446 - 0.9877590537 -27819.3046875000 0.2358440608 - 0.9879613519 -27817.5566406250 0.2369756103 - 0.9881619215 -27818.1230468750 0.2381153256 - 0.9883608222 -27817.8242187500 0.2392505556 - 0.9885581136 -27817.0332031250 0.2403916568 - 0.9887536764 -27816.7871093750 0.2415296435 - 0.9889475703 -27816.7148437500 0.2426661849 - 0.9891397953 -27817.7441406250 0.2438170910 - 0.9893302917 -27817.4726562500 0.2449575216 - 0.9895191789 -27818.4941406250 0.2460961789 - 0.9897063375 -27817.3105468750 0.2472346723 - 0.9898918867 -27816.3046875000 0.2483837157 - 0.9900757074 -27819.1484375000 0.2495282143 - 0.9902578592 -27818.6953125000 0.2506726086 - 0.9904382825 -27818.2324218750 0.2518141568 - 0.9906170964 -27816.9023437500 0.2529700398 - 0.9907941818 -27820.4023437500 0.2541173398 - 0.9909696579 -27817.3144531250 0.2552648485 - 0.9911434054 -27817.6679687500 0.2564218938 - 0.9913154840 -27817.5917968750 0.2575689554 - 0.9914858341 -27818.4707031250 0.2587242126 - 0.9916545749 -27818.4199218750 0.2598758340 - 0.9918215871 -27817.3847656250 0.2610376775 - 0.9919869304 -27818.3867187500 0.2621907890 - 0.9921506047 -27819.2714843750 0.2633506656 - 0.9923126101 -27817.3769531250 0.2645174265 - 0.9924728870 -27818.5625000000 0.2656754255 - 0.9926314950 -27818.9375000000 0.2668369710 - 0.9927884340 -27817.2246093750 0.2679993808 - 0.9929437041 -27817.5644531250 0.2691750228 - 0.9930972457 -27818.5117187500 0.2703387439 - 0.9932491183 -27816.8945312500 0.2715080678 - 0.9933993220 -27818.1250000000 0.2726877928 - 0.9935478568 -27818.0839843750 0.2738566995 - 0.9936946630 -27816.7832031250 0.2750331759 - 0.9938398600 -27818.7558593750 0.2762104571 - 0.9939833283 -27817.5859375000 0.2773936093 - 0.9941250682 -27818.2187500000 0.2785779238 - 0.9942651987 -27817.4921875000 0.2797593772 - 0.9944036007 -27818.0664062500 0.2809533477 - 0.9945402741 -27817.5820312500 0.2821367681 - 0.9946753383 -27818.7851562500 0.2833292782 - 0.9948086739 -27816.2070312500 0.2845216393 - 0.9949403405 -27818.8671875000 0.2857231498 - 0.9950703382 -27817.4746093750 0.2869192064 - 0.9951986074 -27817.9648437500 0.2881222367 - 0.9953252077 -27819.3652343750 0.2893276811 - 0.9954500794 -27816.9570312500 0.2905350924 - 0.9955733418 -27818.2226562500 0.2917467654 - 0.9956948757 -27818.0468750000 0.2929606438 - 0.9958147407 -27818.4140625000 0.2941769063 - 0.9959328771 -27817.9082031250 0.2953954041 - 0.9960493445 -27818.5683593750 0.2966177464 - 0.9961641431 -27818.6562500000 0.2978459299 - 0.9962772131 -27818.1542968750 0.2990718782 - 0.9963886142 -27817.3417968750 0.3003011048 - 0.9964983463 -27819.0312500000 0.3015429080 - 0.9966063499 -27819.1386718750 0.3027815223 - 0.9967126846 -27819.4472656250 0.3040220439 - 0.9968173504 -27819.4941406250 0.3052698672 - 0.9969202876 -27818.9531250000 0.3065206110 - 0.9970215559 -27818.4335937500 0.3077718019 - 0.9971211553 -27819.2031250000 0.3090266585 - 0.9972190261 -27818.4160156250 0.3102917969 - 0.9973152280 -27819.6718750000 0.3115550578 - 0.9974097013 -27819.1582031250 0.3128237128 - 0.9975025654 -27817.8222656250 0.3140972555 - 0.9975936413 -27817.9726562500 0.3153740466 - 0.9976831079 -27818.3320312500 0.3166571558 - 0.9977708459 -27817.5937500000 0.3179399669 - 0.9978568554 -27819.1347656250 0.3192295730 - 0.9979412556 -27817.6035156250 0.3205276430 - 0.9980239272 -27817.3183593750 0.3218246400 - 0.9981048703 -27819.0605468750 0.3231259286 - 0.9981841445 -27816.7363281250 0.3244370222 - 0.9982617497 -27819.1210937500 0.3257496059 - 0.9983376265 -27817.6562500000 0.3270651102 - 0.9984118342 -27819.1210937500 0.3283861876 - 0.9984843135 -27818.2949218750 0.3297188580 - 0.9985551834 -27816.6601562500 0.3310474157 - 0.9986242652 -27818.4726562500 0.3323817253 - 0.9986916780 -27818.1347656250 0.3337264359 - 0.9987574220 -27818.8789062500 0.3350735605 - 0.9988214970 -27819.0839843750 0.3364248574 - 0.9988838434 -27818.4003906250 0.3377874196 - 0.9989445210 -27818.8984375000 0.3391509354 - 0.9990034699 -27818.2617187500 0.3405174613 - 0.9990607500 -27817.3789062500 0.3418878019 - 0.9991163015 -27818.5273437500 0.3432693779 - 0.9991701841 -27818.0292968750 0.3446532190 - 0.9992223382 -27817.2109375000 0.3460426927 - 0.9992728829 -27819.0742187500 0.3474354446 - 0.9993216395 -27819.3125000000 0.3488394916 - 0.9993687868 -27819.2343750000 0.3502451479 - 0.9994141459 -27817.2382812500 0.3516583741 - 0.9994578958 -27819.7285156250 0.3530759811 - 0.9994999170 -27818.3828125000 0.3545040786 - 0.9995402098 -27817.0527343750 0.3559228182 - 0.9995788932 -27819.3183593750 0.3573672771 - 0.9996157885 -27817.5761718750 0.3588124812 - 0.9996510744 -27818.7890625000 0.3602526784 - 0.9996845722 -27818.0117187500 0.3617103994 - 0.9997164607 -27818.0859375000 0.3631670177 - 0.9997466207 -27817.2539062500 0.3646288514 - 0.9997750521 -27818.5996093750 0.3661075234 - 0.9998018146 -27818.6660156250 0.3675862253 - 0.9998269081 -27818.0527343750 0.3690715730 - 0.9998502731 -27819.5332031250 0.3705574274 - 0.9998719692 -27818.4824218750 0.3720514774 - 0.9998919368 -27818.0605468750 0.3735523522 - 0.9999102354 -27819.2656250000 0.3750578165 - 0.9999268651 -27817.9843750000 0.3765698373 - 0.9999417663 -27817.7734375000 0.3780878186 - 0.9999549389 -27819.3359375000 0.3796161711 - 0.9999664426 -27818.4628906250 0.3811514676 - 0.9999762774 -27818.6699218750 0.3826804459 - 0.9999843836 -27819.1015625000 0.3842276633 - 0.9999908209 -27820.2812500000 0.3857819736 - 0.9999955297 -27818.9902343750 0.3873385191 - 0.9999985695 -27819.2265625000 0.3889001012 - 0.9999999404 -27817.9804687500 0.3904681206 - 0.9999995828 -27819.1132812500 0.3920349181 - 0.9999974966 -27818.5097656250 0.3936167657 - 0.9999938011 -27819.5625000000 0.3951922953 - 0.9999883175 -27819.7363281250 0.3967833519 - 0.9999811649 -27820.8320312500 0.3983766437 - 0.9999723434 -27819.6152343750 0.3999804854 - 0.9999618530 -27817.5253906250 0.4015915692 - 0.9999495745 -27818.3710937500 0.4032009840 - 0.9999356866 -27818.9121093750 0.4048130214 - 0.9999200702 -27820.2617187500 0.4064364433 - 0.9999027848 -27819.4121093750 0.4080512524 - 0.9998837709 -27817.4394531250 0.4096838832 - 0.9998630285 -27819.1894531250 0.4113254547 - 0.9998406768 -27817.7207031250 0.4129613042 - 0.9998165369 -27818.4746093750 0.4146021605 - 0.9997907877 -27817.3984375000 0.4162554741 - 0.9997633100 -27820.3339843750 0.4179106355 - 0.9997341037 -27818.6132812500 0.4195716977 - 0.9997032285 -27818.6855468750 0.4212327003 - 0.9996706843 -27818.8632812500 0.4229057133 - 0.9996364117 -27819.3378906250 0.4245620370 - 0.9996004701 -27818.9140625000 0.4262447059 - 0.9995627999 -27820.1054687500 0.4279159009 - 0.9995234609 -27818.0312500000 0.4296015203 - 0.9994824529 -27819.6210937500 0.4312862456 - 0.9994397163 -27819.5097656250 0.4329797029 - 0.9993952513 -27819.2480468750 0.4346756637 - 0.9993491173 -27819.7460937500 0.4363642037 - 0.9993013144 -27820.9492187500 0.4380615950 - 0.9992517829 -27819.2226562500 0.4397486150 - 0.9992005825 -27819.7109375000 0.4414506853 - 0.9991477132 -27818.4687500000 0.4431671500 - 0.9990931153 -27818.5722656250 0.4448631704 - 0.9990367889 -27820.0214843750 0.4465721846 - 0.9989788532 -27818.0859375000 0.4482637048 - 0.9989191294 -27818.8398437500 0.4500040412 - 0.9988577962 -27819.2441406250 0.4517069161 - 0.9987947345 -27819.1171875000 0.4534167349 - 0.9987299442 -27818.6386718750 0.4551259279 - 0.9986635447 -27819.8203125000 0.4568430781 - 0.9985953569 -27818.4687500000 0.4585639536 - 0.9985255599 -27819.7890625000 0.4602701068 - 0.9984540343 -27818.9199218750 0.4619989097 - 0.9983807802 -27819.2070312500 0.4637190104 - 0.9983058572 -27819.3242187500 0.4654300511 - 0.9982292652 -27819.1582031250 0.4671337008 - 0.9981509447 -27819.3925781250 0.4688533843 - 0.9980709553 -27818.1562500000 0.4705734551 - 0.9979892969 -27819.2773437500 0.4722805619 - 0.9979059100 -27819.9375000000 0.4740009606 - 0.9978208542 -27819.4238281250 0.4757125378 - 0.9977340698 -27819.4101562500 0.4774102271 - 0.9976456165 -27819.1328125000 0.4791150689 - 0.9975554943 -27819.8769531250 0.4808247685 - 0.9974636436 -27819.1855468750 0.4825378954 - 0.9973701239 -27819.1777343750 0.4842281044 - 0.9972749352 -27819.1054687500 0.4859330952 - 0.9971780181 -27820.2617187500 0.4876278043 - 0.9970794320 -27819.1308593750 0.4893175364 - 0.9969791174 -27819.3398437500 0.4910051227 - 0.9968771338 -27819.0859375000 0.4926797450 - 0.9967734814 -27819.1308593750 0.4943872690 - 0.9966681600 -27820.2089843750 0.4960512519 - 0.9965611100 -27818.0000000000 0.4977295995 - 0.9964523315 -27819.8925781250 0.4993894100 - 0.9963419437 -27819.8847656250 0.5010673404 - 0.9962298274 -27818.6035156250 0.5027328730 - 0.9961159825 -27820.6621093750 0.5043753386 - 0.9960005283 -27818.6875000000 0.5060319304 - 0.9958833456 -27819.0507812500 0.5076753497 - 0.9957644343 -27820.0605468750 0.5093231201 - 0.9956439137 -27820.3339843750 0.5109621882 - 0.9955216646 -27819.8847656250 0.5125960708 - 0.9953977466 -27820.5058593750 0.5142261982 - 0.9952721000 -27818.1621093750 0.5158450007 - 0.9951447845 -27818.4511718750 0.5174664259 - 0.9950158000 -27819.5878906250 0.5190609694 - 0.9948850870 -27819.3769531250 0.5206705332 - 0.9947527051 -27819.6093750000 0.5222684145 - 0.9946186543 -27819.0410156250 0.5238602161 - 0.9944829345 -27817.5527343750 0.5254472494 - 0.9943454862 -27819.2734375000 0.5270252228 - 0.9942063689 -27818.8359375000 0.5285933614 - 0.9940655828 -27820.1835937500 0.5301560163 - 0.9939231277 -27818.9160156250 0.5317166448 - 0.9937789440 -27819.6132812500 0.5332685113 - 0.9936330914 -27819.2968750000 0.5348049998 - 0.9934855103 -27819.1250000000 0.5363428593 - 0.9933363199 -27817.7832031250 0.5378692150 - 0.9931854010 -27818.6953125000 0.5393896103 - 0.9930328131 -27819.4492187500 0.5409075022 - 0.9928785563 -27819.5546875000 0.5424198508 - 0.9927225709 -27819.7832031250 0.5439199209 - 0.9925649166 -27818.5019531250 0.5454132557 - 0.9924055934 -27819.2675781250 0.5468901396 - 0.9922446012 -27820.0429687500 0.5483692288 - 0.9920818806 -27818.1894531250 0.5498301983 - 0.9919175506 -27818.5136718750 0.5512992740 - 0.9917514920 -27819.0800781250 0.5527507663 - 0.9915837049 -27819.0976562500 0.5541965365 - 0.9914143085 -27820.5820312500 0.5556380153 - 0.9912432432 -27820.1406250000 0.5570713878 - 0.9910704494 -27820.4316406250 0.5584857464 - 0.9908959866 -27819.9101562500 0.5598999858 - 0.9907198548 -27818.8066406250 0.5613093972 - 0.9905419946 -27818.9882812500 0.5627019405 - 0.9903625250 -27819.8261718750 0.5640959740 - 0.9901813269 -27818.9746093750 0.5654733181 - 0.9899985194 -27818.8437500000 0.5668466091 - 0.9898139834 -27820.2050781250 0.5682108998 - 0.9896277189 -27817.9863281250 0.5695645213 - 0.9894398451 -27819.9335937500 0.5709180236 - 0.9892503023 -27820.1542968750 0.5722590685 - 0.9890590310 -27819.2636718750 0.5735962391 - 0.9888660908 -27819.7714843750 0.5749183297 - 0.9886715412 -27818.7441406250 0.5762339234 - 0.9884752631 -27818.7656250000 0.5775517225 - 0.9882773161 -27818.5156250000 0.5788412690 - 0.9880776405 -27818.7871093750 0.5801412463 - 0.9878763556 -27818.3808593750 0.5814284682 - 0.9876734018 -27819.6445312500 0.5827006698 - 0.9874687195 -27819.8300781250 0.5839756727 - 0.9872624278 -27819.2363281250 0.5852370262 - 0.9870544076 -27819.7539062500 0.5864934921 - 0.9868447185 -27819.7421875000 0.5877388120 - 0.9866334200 -27821.0664062500 0.5889797807 - 0.9864203930 -27819.5644531250 0.5902084112 - 0.9862056971 -27818.8203125000 0.5914334655 - 0.9859893322 -27818.6503906250 0.5926496983 - 0.9857712984 -27818.7792968750 0.5938607454 - 0.9855515957 -27818.6191406250 0.5950607061 - 0.9853302240 -27818.5097656250 0.5962559581 - 0.9851071835 -27817.5917968750 0.5974460244 - 0.9848824739 -27819.9394531250 0.5986280441 - 0.9846560359 -27818.3750000000 0.5998018980 - 0.9844279885 -27817.8652343750 0.6009658575 - 0.9841982722 -27820.1171875000 0.6021262407 - 0.9839668870 -27817.8945312500 0.6032754183 - 0.9837338328 -27818.8730468750 0.6044220328 - 0.9834991097 -27819.1328125000 0.6055635810 - 0.9832627177 -27818.9628906250 0.6066936255 - 0.9830246568 -27818.9628906250 0.6078196168 - 0.9827849269 -27818.0410156250 0.6089375019 - 0.9825435281 -27819.1816406250 0.6100509167 - 0.9823004603 -27818.1992187500 0.6111541986 - 0.9820557237 -27818.6464843750 0.6122556329 - 0.9818093181 -27820.1074218750 0.6133486032 - 0.9815612435 -27819.0507812500 0.6144343615 - 0.9813115597 -27818.4628906250 0.6155190468 - 0.9810601473 -27817.9804687500 0.6165931225 - 0.9808071256 -27817.9296875000 0.6176598668 - 0.9805523753 -27820.2851562500 0.6187254190 - 0.9802960157 -27820.5136718750 0.6197819114 - 0.9800379872 -27819.5761718750 0.6208320260 - 0.9797782898 -27821.2558593750 0.6218804717 - 0.9795169234 -27820.1289062500 0.6229202747 - 0.9792538881 -27819.5878906250 0.6239533424 - 0.9789892435 -27820.3164062500 0.6249812841 - 0.9787228703 -27820.0585937500 0.6260070205 - 0.9784548879 -27819.0527343750 0.6270235777 - 0.9781852365 -27819.1523437500 0.6280371547 - 0.9779139161 -27820.0292968750 0.6290453076 - 0.9776409268 -27819.4121093750 0.6300472021 - 0.9773662686 -27819.5117187500 0.6310455799 - 0.9770900011 -27819.4863281250 0.6320405602 - 0.9768120646 -27818.8984375000 0.6330279708 - 0.9765324593 -27819.9121093750 0.6340108514 - 0.9762511849 -27819.1914062500 0.6349875927 - 0.9759683013 -27818.9687500000 0.6359632611 - 0.9756837487 -27817.9042968750 0.6369310617 - 0.9753974676 -27820.3125000000 0.6378955245 - 0.9751096368 -27819.9042968750 0.6388598084 - 0.9748200774 -27820.0761718750 0.6398140192 - 0.9745289087 -27820.1171875000 0.6407639384 - 0.9742360711 -27818.3886718750 0.6417117715 - 0.9739415646 -27819.4335937500 0.6426591873 - 0.9736454487 -27819.6308593750 0.6435946226 - 0.9733476639 -27818.0566406250 0.6445263028 - 0.9730482101 -27819.9023437500 0.6454595923 - 0.9727471471 -27817.5703125000 0.6463885307 - 0.9724444151 -27819.9589843750 0.6473122835 - 0.9721400142 -27820.8906250000 0.6482341886 - 0.9718340039 -27819.1015625000 0.6491495371 - 0.9715263247 -27819.7187500000 0.6500595212 - 0.9712169766 -27819.0996093750 0.6509671807 - 0.9709060192 -27819.5214843750 0.6518757939 - 0.9705933928 -27819.4296875000 0.6527778506 - 0.9702790976 -27818.0273437500 0.6536682248 - 0.9699631929 -27820.1796875000 0.6545715332 - 0.9696456194 -27819.7500000000 0.6554626822 - 0.9693264365 -27819.8808593750 0.6563500166 - 0.9690055847 -27818.1855468750 0.6572304964 - 0.9686831236 -27820.5312500000 0.6581183672 - 0.9683589935 -27819.5683593750 0.6589959264 - 0.9680331945 -27818.9980468750 0.6598705649 - 0.9677057862 -27820.7675781250 0.6607486606 - 0.9673767686 -27819.6425781250 0.6616157889 - 0.9670460820 -27819.2128906250 0.6624841094 - 0.9667137265 -27818.0996093750 0.6633461118 - 0.9663797617 -27819.0644531250 0.6642107964 - 0.9660441279 -27821.2207031250 0.6650721431 - 0.9657068849 -27818.7031250000 0.6659252644 - 0.9653680325 -27821.1738281250 0.6667838693 - 0.9650275111 -27819.7968750000 0.6676343679 - 0.9646853209 -27820.3183593750 0.6684819460 - 0.9643415213 -27817.7324218750 0.6693232656 - 0.9639961123 -27818.5312500000 0.6701753139 - 0.9636490345 -27820.0234375000 0.6710136533 - 0.9633003473 -27818.5820312500 0.6718506217 - 0.9629500508 -27817.2949218750 0.6726876497 - 0.9625980854 -27819.6015625000 0.6735321879 - 0.9622444510 -27819.0996093750 0.6743606925 - 0.9618892670 -27819.1132812500 0.6751891375 - 0.9615324140 -27819.7109375000 0.6760229468 - 0.9611738920 -27819.8613281250 0.6768453121 - 0.9608138204 -27819.9902343750 0.6776700020 - 0.9604520202 -27820.4843750000 0.6784877777 - 0.9600886703 -27818.9941406250 0.6793212295 - 0.9597236514 -27819.4726562500 0.6801370978 - 0.9593570232 -27818.5859375000 0.6809508204 - 0.9589887857 -27819.9980468750 0.6817643642 - 0.9586188793 -27819.5996093750 0.6825836301 - 0.9582474232 -27819.7421875000 0.6833940148 - 0.9578742981 -27820.4238281250 0.6842001677 - 0.9574995041 -27819.1210937500 0.6850030422 - 0.9571231604 -27819.2968750000 0.6858187318 - 0.9567451477 -27818.9023437500 0.6866268516 - 0.9563655257 -27817.7910156250 0.6874242425 - 0.9559842944 -27818.9062500000 0.6882252097 - 0.9556013942 -27819.7109375000 0.6890286207 - 0.9552169442 -27820.5546875000 0.6898262501 - 0.9548308253 -27819.5468750000 0.6906193495 - 0.9544430971 -27818.7031250000 0.6914199591 - 0.9540537596 -27820.8242187500 0.6922204494 - 0.9536628127 -27818.9804687500 0.6930084825 - 0.9532701969 -27818.8339843750 0.6937955022 - 0.9528760314 -27818.6660156250 0.6945871115 - 0.9524801970 -27820.5683593750 0.6953791976 - 0.9520828128 -27819.7070312500 0.6961634755 - 0.9516837597 -27819.5058593750 0.6969584227 - 0.9512830973 -27819.8125000000 0.6977378130 - 0.9508808255 -27819.3691406250 0.6985274553 - 0.9504769444 -27819.8222656250 0.6993110180 - 0.9500715137 -27819.2480468750 0.7000913024 - 0.9496644139 -27819.1777343750 0.7008636594 - 0.9492557049 -27819.7539062500 0.7016519904 - 0.9488453865 -27819.2636718750 0.7024263740 - 0.9484334588 -27819.7695312500 0.7032060623 - 0.9480199218 -27818.3710937500 0.7039849758 - 0.9476047754 -27818.5371093750 0.7047653794 - 0.9471880198 -27820.1015625000 0.7055372596 - 0.9467696548 -27818.8398437500 0.7063072920 - 0.9463496804 -27820.1992187500 0.7070761919 - 0.9459281564 -27819.9765625000 0.7078557611 - 0.9455049634 -27819.4960937500 0.7086256742 - 0.9450802207 -27819.3847656250 0.7093890905 - 0.9446538091 -27820.5332031250 0.7101588249 - 0.9442258477 -27819.7226562500 0.7109232545 - 0.9437962770 -27819.8828125000 0.7116980553 - 0.9433650970 -27819.1816406250 0.7124615312 - 0.9429323077 -27819.3808593750 0.7132259011 - 0.9424979687 -27818.8378906250 0.7139860988 - 0.9420620203 -27820.3203125000 0.7147609591 - 0.9416244030 -27819.1894531250 0.7155165672 - 0.9411852360 -27819.9667968750 0.7162790895 - 0.9407445192 -27818.8554687500 0.7170332074 - 0.9403021336 -27819.8496093750 0.7178067565 - 0.9398581982 -27818.3867187500 0.7185619473 - 0.9394126534 -27819.2636718750 0.7193185091 - 0.9389654994 -27819.8222656250 0.7200732827 - 0.9385167956 -27820.3125000000 0.7208425999 - 0.9380664825 -27819.2539062500 0.7215940356 - 0.9376145601 -27819.2343750000 0.7223521471 - 0.9371610880 -27818.8007812500 0.7231064439 - 0.9367060065 -27818.7832031250 0.7238582969 - 0.9362493157 -27819.1503906250 0.7246242166 - 0.9357910156 -27818.8007812500 0.7253715396 - 0.9353311658 -27819.0742187500 0.7261231542 - 0.9348697662 -27818.1953125000 0.7268714309 - 0.9344067574 -27819.8476562500 0.7276353836 - 0.9339421391 -27817.1406250000 0.7283796668 - 0.9334759712 -27819.8496093750 0.7291284204 - 0.9330081940 -27819.1074218750 0.7298730612 - 0.9325388074 -27817.6484375000 0.7306172848 - 0.9320678711 -27819.6562500000 0.7313785553 - 0.9315953851 -27818.2812500000 0.7321239114 - 0.9311212897 -27818.3203125000 0.7328688502 - 0.9306455851 -27820.6015625000 0.7336155176 - 0.9301683903 -27818.0000000000 0.7343563437 - 0.9296895266 -27820.7363281250 0.7351137996 - 0.9292091131 -27819.7851562500 0.7358571291 - 0.9287271500 -27819.1171875000 0.7365955710 - 0.9282435775 -27820.1621093750 0.7373371124 - 0.9277584553 -27819.2753906250 0.7380775809 - 0.9272717834 -27819.6894531250 0.7388342023 - 0.9267835021 -27819.3144531250 0.7395702004 - 0.9262936711 -27818.0117187500 0.7403090596 - 0.9258022308 -27818.8886718750 0.7410508394 - 0.9253092408 -27820.1406250000 0.7418009043 - 0.9248147011 -27820.1796875000 0.7425364852 - 0.9243186116 -27819.1562500000 0.7432738543 - 0.9238209128 -27818.8925781250 0.7440129519 - 0.9233216643 -27817.2578125000 0.7447506189 - 0.9228208661 -27820.2871093750 0.7454989552 - 0.9223184586 -27819.4824218750 0.7462307215 - 0.9218145013 -27819.2500000000 0.7469661236 - 0.9213089943 -27819.6933593750 0.7477035522 - 0.9208019376 -27819.4238281250 0.7484360337 - 0.9202932715 -27819.6933593750 0.7491871119 - 0.9197831154 -27818.6699218750 0.7499151826 - 0.9192713499 -27817.8027343750 0.7506442070 - 0.9187580347 -27817.5566406250 0.7513726950 - 0.9182431698 -27818.7558593750 0.7521052957 - 0.9177267551 -27819.3964843750 0.7528548241 - 0.9172087908 -27818.8027343750 0.7535814047 - 0.9166892171 -27818.8925781250 0.7543091178 - 0.9161681533 -27818.4941406250 0.7550387979 - 0.9156454802 -27817.7089843750 0.7557687163 - 0.9151213169 -27818.8671875000 0.7565011382 - 0.9145955443 -27820.1250000000 0.7572408319 - 0.9140682220 -27818.5683593750 0.7579681277 - 0.9135394096 -27819.9003906250 0.7586994171 - 0.9130089879 -27819.0078125000 0.7594205737 - 0.9124770761 -27819.2519531250 0.7601442337 - 0.9119435549 -27817.9941406250 0.7608880401 - 0.9114085436 -27816.6835937500 0.7616102099 - 0.9108719230 -27818.4394531250 0.7623399496 - 0.9103338122 -27817.8046875000 0.7630504966 - 0.9097941518 -27818.5722656250 0.7637824416 - 0.9092529416 -27820.2656250000 0.7645233274 - 0.9087101817 -27818.5957031250 0.7652420402 - 0.9081658721 -27818.2343750000 0.7659643292 - 0.9076200724 -27819.0507812500 0.7666875720 - 0.9070726633 -27818.8242187500 0.7674077749 - 0.9065237641 -27819.7949218750 0.7681435347 - 0.9059733152 -27819.0507812500 0.7688655257 - 0.9054213166 -27819.5781250000 0.7695870996 - 0.9048678279 -27819.8632812500 0.7702986002 - 0.9043127298 -27817.9804687500 0.7710156441 - 0.9037561417 -27818.9921875000 0.7717347145 - 0.9031980634 -27818.2343750000 0.7724670172 - 0.9026383758 -27818.7949218750 0.7731879354 - 0.9020771980 -27818.1425781250 0.7739023566 - 0.9015145302 -27819.3984375000 0.7746194005 - 0.9009502530 -27817.3222656250 0.7753347754 - 0.9003844857 -27818.1562500000 0.7760536671 - 0.8998172283 -27819.8867187500 0.7767781019 - 0.8992483616 -27819.5371093750 0.7774926424 - 0.8986780643 -27820.1328125000 0.7782067657 - 0.8981061578 -27818.9511718750 0.7789184451 - 0.8975327611 -27818.2539062500 0.7796331644 - 0.8969578743 -27817.1328125000 0.7803469300 - 0.8963814378 -27818.7167968750 0.7810712457 - 0.8958035111 -27820.3437500000 0.7817835808 - 0.8952240348 -27818.1445312500 0.7824931741 - 0.8946430087 -27817.6582031250 0.7831981182 - 0.8940605521 -27818.7988281250 0.7839131951 - 0.8934764862 -27819.3007812500 0.7846350074 - 0.8928909898 -27819.1328125000 0.7853477597 - 0.8923039436 -27818.1796875000 0.7860574722 - 0.8917153478 -27819.5878906250 0.7867583632 - 0.8911252618 -27818.0605468750 0.7874600291 - 0.8905336857 -27819.0449218750 0.7881661057 - 0.8899406195 -27817.3847656250 0.7888929248 - 0.8893460035 -27817.5917968750 0.7896011472 - 0.8887498975 -27819.0546875000 0.7903019786 - 0.8881522417 -27819.9218750000 0.7910057902 - 0.8875531554 -27820.4980468750 0.7917046547 - 0.8869525194 -27817.3437500000 0.7924077511 - 0.8863503933 -27818.2265625000 0.7931329012 - 0.8857467175 -27818.4785156250 0.7938320041 - 0.8851416111 -27818.8339843750 0.7945366502 - 0.8845349550 -27819.3632812500 0.7952272296 - 0.8839268088 -27818.3964843750 0.7959295511 - 0.8833171725 -27819.1171875000 0.7966254950 - 0.8827060461 -27818.8945312500 0.7973281145 - 0.8820934296 -27818.0898437500 0.7980467081 - 0.8814793229 -27818.8261718750 0.7987435460 - 0.8808636665 -27818.8183593750 0.7994362116 - 0.8802465796 -27818.4218750000 0.8001317978 - 0.8796279430 -27816.8906250000 0.8008266091 - 0.8790078759 -27817.8281250000 0.8015195131 - 0.8783862591 -27817.5312500000 0.8022174239 - 0.8777632117 -27819.1757812500 0.8029214740 - 0.8771386147 -27819.3886718750 0.8036181331 - 0.8765125871 -27819.0781250000 0.8043095469 - 0.8758850694 -27818.5078125000 0.8050036430 - 0.8752560019 -27816.6406250000 0.8056942225 - 0.8746255040 -27818.0097656250 0.8063802719 - 0.8739935160 -27818.5957031250 0.8070913553 - 0.8733600378 -27819.9277343750 0.8077806830 - 0.8727251291 -27817.0761718750 0.8084710240 - 0.8720886707 -27818.6855468750 0.8091512322 - 0.8714507818 -27817.1992187500 0.8098396659 - 0.8708113432 -27817.1738281250 0.8105263710 - 0.8701705337 -27818.3359375000 0.8112328053 - 0.8695281744 -27818.9472656250 0.8119161129 - 0.8688843250 -27816.8476562500 0.8125962615 - 0.8682390451 -27817.4414062500 0.8132795095 - 0.8675923347 -27818.6953125000 0.8139658570 - 0.8669440746 -27817.0585937500 0.8146471381 - 0.8662943840 -27818.2792968750 0.8153265715 - 0.8656432033 -27817.8652343750 0.8160229921 - 0.8649905920 -27818.5605468750 0.8167065978 - 0.8643364906 -27817.8554687500 0.8173844218 - 0.8636808991 -27819.0371093750 0.8180606961 - 0.8630238771 -27818.1503906250 0.8187375665 - 0.8623653650 -27818.6621093750 0.8194151521 - 0.8617054224 -27817.3046875000 0.8200926185 - 0.8610439897 -27819.2792968750 0.8207649589 - 0.8603811264 -27819.9902343750 0.8214611411 - 0.8597167730 -27817.8183593750 0.8221310377 - 0.8590509892 -27816.7656250000 0.8228095174 - 0.8583837152 -27818.8769531250 0.8234759569 - 0.8577150106 -27818.2167968750 0.8241524100 - 0.8570448756 -27817.0371093750 0.8248189092 - 0.8563732505 -27816.9218750000 0.8254926205 - 0.8557001948 -27817.4746093750 0.8261563778 - 0.8550256491 -27818.7578125000 0.8268473148 - 0.8543496728 -27817.6269531250 0.8275146484 - 0.8536722660 -27819.0390625000 0.8281831741 - 0.8529934287 -27818.0585937500 0.8288462162 - 0.8523131013 -27818.8027343750 0.8295133114 - 0.8516313434 -27816.2695312500 0.8301762342 - 0.8509481549 -27816.9511718750 0.8308419585 - 0.8502635360 -27818.9160156250 0.8315209150 - 0.8495774269 -27819.1718750000 0.8321857452 - 0.8488899469 -27816.5859375000 0.8328442574 - 0.8482009768 -27816.4921875000 0.8335030675 - 0.8475105762 -27818.3125000000 0.8341634274 - 0.8468187451 -27816.2148437500 0.8348224163 - 0.8461254239 -27816.5078125000 0.8354822993 - 0.8454307318 -27819.2597656250 0.8361552954 - 0.8447346091 -27819.5449218750 0.8368144631 - 0.8440370560 -27818.3203125000 0.8374679685 - 0.8433380127 -27818.9375000000 0.8381213546 - 0.8426375985 -27818.4648437500 0.8387749195 - 0.8419357538 -27817.7910156250 0.8394277692 - 0.8412324190 -27817.5019531250 0.8400800824 - 0.8405277133 -27817.5859375000 0.8407286406 - 0.8398215771 -27816.4511718750 0.8413792253 - 0.8391140103 -27817.9414062500 0.8420513868 - 0.8384050131 -27819.2187500000 0.8426959515 - 0.8376946449 -27820.0566406250 0.8433458805 - 0.8369827867 -27816.6601562500 0.8439893723 - 0.8362695575 -27819.3261718750 0.8446332216 - 0.8355548978 -27817.5585937500 0.8452808261 - 0.8348388076 -27816.4531250000 0.8459225893 - 0.8341212869 -27817.0390625000 0.8465652466 - 0.8334023952 -27817.7285156250 0.8472075462 - 0.8326820731 -27816.8085937500 0.8478482366 - 0.8319603205 -27817.5878906250 0.8485069275 - 0.8312371969 -27818.1015625000 0.8491476774 - 0.8305126429 -27818.0136718750 0.8497845531 - 0.8297866583 -27816.2402343750 0.8504244089 - 0.8290593028 -27816.7226562500 0.8510566950 - 0.8283305168 -27816.4121093750 0.8516948223 - 0.8276003599 -27817.1601562500 0.8523294926 - 0.8268687725 -27818.3867187500 0.8529823422 - 0.8261357546 -27818.3007812500 0.8536167145 - 0.8254013658 -27817.7636718750 0.8542484641 - 0.8246656060 -27818.1855468750 0.8548750281 - 0.8239284158 -27818.5449218750 0.8555088639 - 0.8231898546 -27816.5507812500 0.8561350703 - 0.8224498630 -27819.1289062500 0.8567619920 - 0.8217085004 -27817.0117187500 0.8573892117 - 0.8209657073 -27817.5058593750 0.8580366373 - 0.8202216029 -27818.8007812500 0.8586589098 - 0.8194760084 -27818.3339843750 0.8592853546 - 0.8187291026 -27815.9746093750 0.8599062562 - 0.8179807663 -27818.4960937500 0.8605272770 - 0.8172310591 -27817.3085937500 0.8611486554 - 0.8164799809 -27817.4843750000 0.8617652655 - 0.8157274723 -27818.7753906250 0.8623851538 - 0.8149735928 -27817.7265625000 0.8630047441 - 0.8142183423 -27817.4609375000 0.8636183739 - 0.8134617209 -27817.4296875000 0.8642335534 - 0.8127037287 -27817.7304687500 0.8648502231 - 0.8119443655 -27817.3593750000 0.8654611707 - 0.8111835718 -27817.4082031250 0.8660743237 - 0.8104214668 -27815.5976562500 0.8667071462 - 0.8096579313 -27817.7773437500 0.8673175573 - 0.8088930845 -27816.3730468750 0.8679267168 - 0.8081268072 -27816.2695312500 0.8685359359 - 0.8073592186 -27816.1425781250 0.8691416383 - 0.8065901995 -27818.5371093750 0.8697503209 - 0.8058198690 -27817.0117187500 0.8703513145 - 0.8050481081 -27817.2792968750 0.8709585071 - 0.8042750359 -27816.5605468750 0.8715823293 - 0.8035005927 -27818.1484375000 0.8721822500 - 0.8027247787 -27817.5488281250 0.8727845550 - 0.8019475937 -27817.9804687500 0.8733850718 - 0.8011690378 -27816.9335937500 0.8739818335 - 0.8003891706 -27816.5078125000 0.8745813966 - 0.7996078730 -27817.6796875000 0.8751973510 - 0.7988252640 -27817.6777343750 0.8757936358 - 0.7980413437 -27816.9414062500 0.8763878942 - 0.7972559929 -27816.7851562500 0.8769811988 - 0.7964693308 -27817.5683593750 0.8775728941 - 0.7956812978 -27818.5019531250 0.8781646490 - 0.7948919535 -27817.4765625000 0.8787550926 - 0.7941012383 -27816.0917968750 0.8793433309 - 0.7933092117 -27817.0058593750 0.8799297214 - 0.7925157547 -27818.3496093750 0.8805175424 - 0.7917210460 -27817.6210937500 0.8811030388 - 0.7909249663 -27817.8964843750 0.8816877604 - 0.7901275158 -27816.7656250000 0.8822700381 - 0.7893287539 -27817.2363281250 0.8828522563 - 0.7885286212 -27815.9648437500 0.8834328651 - 0.7877271771 -27815.4960937500 0.8840132356 - 0.7869244218 -27815.4511718750 0.8845906258 - 0.7861202955 -27816.8281250000 0.8851699233 - 0.7853148580 -27816.2226562500 0.8857443333 - 0.7845080495 -27816.8027343750 0.8863214850 - 0.7836999297 -27816.0742187500 0.8868958950 - 0.7828904986 -27815.1425781250 0.8874688745 - 0.7820797563 -27815.9492187500 0.8880613446 - 0.7812676430 -27817.5156250000 0.8886326551 - 0.7804542184 -27815.8632812500 0.8892021179 - 0.7796394825 -27816.3027343750 0.8897712827 - 0.7788234353 -27818.5429687500 0.8903602362 - 0.7780060172 -27817.0449218750 0.8909251690 - 0.7771873474 -27818.9785156250 0.8914915919 - 0.7763673067 -27818.1171875000 0.8920761943 - 0.7755459547 -27817.8535156250 0.8926382661 - 0.7747233510 -27817.5332031250 0.8931998610 - 0.7738993764 -27817.5117187500 0.8937818408 - 0.7730740905 -27818.8515625000 0.8943405151 - 0.7722474933 -27819.9609375000 0.8948998451 - 0.7714195848 -27818.4648437500 0.8954554200 - 0.7705904245 -27817.9570312500 0.8960111141 - 0.7697598934 -27817.5742187500 0.8965651393 - 0.7689280510 -27818.2011718750 0.8971184492 - 0.7680949569 -27817.5742187500 0.8976704478 - 0.7672605515 -27817.6269531250 0.8981999755 - 0.7664248347 -27817.1425781250 0.8987487555 - 0.7655878067 -27816.9355468750 0.8992756605 - 0.7647494674 -27815.1640625000 0.8998226523 - 0.7639098763 -27814.3593750000 0.9003472924 - 0.7630689144 -27813.1953125000 0.9008699059 - 0.7622267604 -27813.6621093750 0.9013929963 - 0.7613832355 -27812.7050781250 0.9018917680 - 0.7605384588 -27811.7773437500 0.9024121761 - 0.7596923709 -27810.9082031250 0.9029086232 - 0.7588450313 -27809.1015625000 0.9034253955 - 0.7579963803 -27808.6250000000 0.9039210677 - 0.7571464181 -27806.3710937500 0.9044348001 - 0.7562952042 -27806.2636718750 0.9049275517 - 0.7554426789 -27802.8437500000 0.9054176807 - 0.7545889020 -27803.0820312500 0.9059294462 - 0.7537338138 -27802.2539062500 0.9064179063 - 0.7528774738 -27801.5937500000 0.9069270492 - 0.7520198822 -27797.6425781250 0.9074127078 - 0.7511609793 -27797.7675781250 0.9079191089 - 0.7503008246 -27797.3242187500 0.9084242582 - 0.7494393587 -27796.7246093750 0.9089287519 - 0.7485767007 -27794.4160156250 0.9094300866 - 0.7477126718 -27794.6640625000 0.9099549651 - 0.7468474507 -27796.2695312500 0.9104554057 - 0.7459809184 -27793.9101562500 0.9109751582 - 0.7451131344 -21723.7910156250 0.9128136039 - 0.7442440987 -21726.0917968750 0.9133486748 - 0.7433738112 -21724.4277343750 0.9138790965 - 0.7425022721 -21724.5820312500 0.9144099355 - 0.7416294217 -21726.7070312500 0.9149384499 - 0.7407553792 -21728.0351562500 0.9154646993 - 0.7398800254 -21728.3457031250 0.9159899950 - 0.7390034199 -21728.5234375000 0.9165135622 - 0.7381255627 -21732.8125000000 0.9170337319 - 0.7372465134 -21733.5488281250 0.9175550938 - 0.7363661528 -21734.9179687500 0.9180720448 - 0.7354845405 -21735.0097656250 0.9185898900 - 0.7346017361 -21738.3320312500 0.9191057086 - 0.7337176204 -21739.3085937500 0.9196182489 - 0.7328323126 -21741.1308593750 0.9201333523 - 0.7319457531 -21742.3535156250 0.9206431508 - 0.7310579419 -21744.0527343750 0.9211553335 - 0.7301688790 -21745.2851562500 0.9216637611 - 0.7292785645 -21747.0527343750 0.9221720099 - 0.7283870578 -21748.1777343750 0.9226777554 - 0.7274942994 -21747.9648437500 0.9231836200 - 0.7266002893 -21749.3847656250 0.9236880541 - 0.7257050872 -21749.8925781250 0.9241927266 - 0.7248086333 -21751.6601562500 0.9246968031 - 0.7239109278 -21752.6015625000 0.9251970053 - 0.7230120301 -21752.7148437500 0.9256984591 - 0.7221118808 -21753.1542968750 0.9261966944 - 0.7212105393 -21753.6191406250 0.9266944528 - 0.7203079462 -21753.0937500000 0.9271911383 - 0.7194041610 -21753.1757812500 0.9276871085 - 0.7184991241 -21753.5664062500 0.9281814694 - 0.7175928950 -21755.4453125000 0.9286743402 - 0.7166854143 -21754.4160156250 0.9291650653 - 0.7157767415 -21752.5507812500 0.9296551347 - 0.7148668170 -21752.7402343750 0.9301443100 - 0.7139557600 -21753.0292968750 0.9306313992 - 0.7130434513 -21753.5117187500 0.9311164618 - 0.7121298909 -21753.9531250000 0.9316024184 - 0.7112151980 -21752.4667968750 0.9320837855 - 0.7102992535 -21753.7402343750 0.9325656891 - 0.7093821168 -21751.3847656250 0.9330464005 - 0.7084637880 -21751.3574218750 0.9335236549 - 0.7075442076 -21752.2578125000 0.9340007901 - 0.7066234946 -21751.4160156250 0.9344754815 - 0.7057015300 -21750.4570312500 0.9349510074 - 0.7047784328 -21751.3750000000 0.9354226589 - 0.7038540840 -21751.7949218750 0.9358937740 - 0.7029285431 -21751.6757812500 0.9363628030 - 0.7020018101 -21751.8105468750 0.9368317723 - 0.7010739446 -21751.2343750000 0.9372965097 - 0.7001448274 -21751.1679687500 0.9377623796 - 0.6992145777 -21751.4941406250 0.9382264614 - 0.6982830763 -21752.6171875000 0.9386889935 - 0.6973504424 -21752.2773437500 0.9391494393 - 0.6964166164 -21753.3222656250 0.9396092296 - 0.6954815984 -21752.9941406250 0.9400674105 - 0.6945453882 -21753.9941406250 0.9405234456 - 0.6936080456 -21752.4687500000 0.9409785271 - 0.6926694512 -21751.9121093750 0.9414322972 - 0.6917297840 -21752.7656250000 0.9418855309 - 0.6907888651 -21754.0332031250 0.9423354864 - 0.6898468137 -21753.4550781250 0.9427847862 - 0.6889035702 -21752.6699218750 0.9432319403 - 0.6879591346 -21752.3203125000 0.9436790347 - 0.6870135665 -21753.6933593750 0.9441242814 - 0.6860668659 -21753.3300781250 0.9445679188 - 0.6851189733 -21751.8007812500 0.9450114965 - 0.6841698885 -21752.4296875000 0.9454514384 - 0.6832196712 -21753.8515625000 0.9458913207 - 0.6822683215 -21753.1445312500 0.9463295937 - 0.6813157797 -21753.6582031250 0.9467649460 - 0.6803621054 -21752.5761718750 0.9472000003 - 0.6794072390 -21752.9667968750 0.9476351738 - 0.6784512401 -21752.9140625000 0.9480659366 - 0.6774941087 -21754.0664062500 0.9484985471 - 0.6765357852 -21752.0800781250 0.9489262104 - 0.6755763888 -21751.9277343750 0.9493556023 - 0.6746158004 -21752.4335937500 0.9497811794 - 0.6736540794 -21753.5585937500 0.9502071142 - 0.6726911664 -21751.6171875000 0.9506306052 - 0.6717271805 -21753.3906250000 0.9510522485 - 0.6707620025 -21753.1777343750 0.9514734149 - 0.6697957516 -21753.4941406250 0.9518937469 - 0.6688283086 -21753.6406250000 0.9523103833 - 0.6678597331 -21753.3164062500 0.9527275562 - 0.6668900847 -21753.7968750000 0.9531436563 - 0.6659192443 -21754.6718750000 0.9535570145 - 0.6649472713 -21753.5468750000 0.9539690018 - 0.6639742255 -21753.4394531250 0.9543809891 - 0.6629999876 -21754.4687500000 0.9547902942 - 0.6620246768 -21751.8320312500 0.9551985264 - 0.6610482335 -21754.4628906250 0.9556062222 - 0.6600706577 -21754.9394531250 0.9560105801 - 0.6590919495 -21753.7558593750 0.9564147592 - 0.6581121683 -21752.6679687500 0.9568173289 - 0.6571312547 -21754.8183593750 0.9572187066 - 0.6561492085 -21752.7890625000 0.9576181173 - 0.6551660895 -21754.2539062500 0.9580181241 - 0.6541817784 -21754.3847656250 0.9584123492 - 0.6531964540 -21753.9882812500 0.9588097930 - 0.6522099376 -21754.3066406250 0.9592043757 - 0.6512224078 -21754.2949218750 0.9595957994 - 0.6502336860 -21753.6132812500 0.9599874020 - 0.6492438912 -21752.2988281250 0.9603774548 - 0.6482530236 -21752.7011718750 0.9607644081 - 0.6472610235 -21752.0859375000 0.9611529708 - 0.6462679505 -21754.3457031250 0.9615378380 - 0.6452737451 -21754.4296875000 0.9619224072 - 0.6442784667 -21753.5527343750 0.9623056650 - 0.6432821155 -21753.4179687500 0.9626863599 - 0.6422846913 -21753.7167968750 0.9630671740 - 0.6412861347 -21753.1093750000 0.9634456038 - 0.6402865052 -21752.9824218750 0.9638226628 - 0.6392857432 -21753.6406250000 0.9641998410 - 0.6382839680 -21755.5195312500 0.9645733833 - 0.6372810602 -21752.6777343750 0.9649470448 - 0.6362770796 -21756.0449218750 0.9653208256 - 0.6352720857 -21755.5000000000 0.9656897783 - 0.6342659593 -21754.1738281250 0.9660596848 - 0.6332587600 -21752.6191406250 0.9664258957 - 0.6322504878 -21753.7011718750 0.9667922854 - 0.6312411427 -21753.3789062500 0.9671584964 - 0.6302307248 -21754.0019531250 0.9675211310 - 0.6292192340 -21754.4101562500 0.9678842425 - 0.6282066703 -21754.9863281250 0.9682450294 - 0.6271930933 -21755.2109375000 0.9686036706 - 0.6261783838 -21755.6718750000 0.9689633250 - 0.6251626611 -21755.5976562500 0.9693192244 - 0.6241458654 -21752.6777343750 0.9696753621 - 0.6231279969 -21752.7578125000 0.9700276256 - 0.6221090555 -21754.5449218750 0.9703810215 - 0.6210891008 -21752.9140625000 0.9707317948 - 0.6200680733 -21752.7167968750 0.9710819721 - 0.6190460324 -21755.4941406250 0.9714323282 - 0.6180229187 -21754.8984375000 0.9717781544 - 0.6169987321 -21753.4453125000 0.9721230865 - 0.6159735322 -21752.5839843750 0.9724681973 - 0.6149472594 -21755.3066406250 0.9728114605 - 0.6139199734 -21754.2285156250 0.9731528163 - 0.6128916144 -21755.4785156250 0.9734938741 - 0.6118622422 -21753.9335937500 0.9738328457 - 0.6108317971 -21755.3476562500 0.9741693139 - 0.6098003387 -21754.1582031250 0.9745047092 - 0.6087678671 -21753.4179687500 0.9748417735 - 0.6077343225 -21753.5039062500 0.9751734138 - 0.6066997647 -21754.3906250000 0.9755076170 - 0.6056641936 -21754.8984375000 0.9758371115 - 0.6046276093 -21753.2089843750 0.9761685133 - 0.6035899520 -21754.2636718750 0.9764946699 - 0.6025513411 -21756.3378906250 0.9768235087 - 0.6015116572 -21755.4746093750 0.9771468043 - 0.6004709601 -21753.8632812500 0.9774716496 - 0.5994292498 -21755.2187500000 0.9777940512 - 0.5983864665 -21754.6308593750 0.9781159759 - 0.5973427296 -21755.1093750000 0.9784362316 - 0.5962979794 -21754.8378906250 0.9787555337 - 0.5952522159 -21754.8085937500 0.9790742993 - 0.5942054391 -21754.6699218750 0.9793888330 - 0.5931576490 -21754.3710937500 0.9797043800 - 0.5921088457 -21753.9003906250 0.9800173044 - 0.5910590887 -21754.9296875000 0.9803309441 - 0.5900082588 -21754.0253906250 0.9806399941 - 0.5889564753 -21753.4628906250 0.9809497595 - 0.5879036784 -21755.8808593750 0.9812589288 - 0.5868498683 -21754.7441406250 0.9815675020 - 0.5857951045 -21753.6425781250 0.9818703532 - 0.5847393274 -21754.0312500000 0.9821751714 - 0.5836825371 -21754.7714843750 0.9824778438 - 0.5826247931 -21753.4531250000 0.9827821255 - 0.5815660357 -21756.6562500000 0.9830811024 - 0.5805062652 -21755.1914062500 0.9833802581 - 0.5794455409 -21754.5234375000 0.9836757183 - 0.5783838630 -21753.4003906250 0.9839726686 - 0.5773211718 -21755.1230468750 0.9842677116 - 0.5762575269 -21755.7500000000 0.9845609069 - 0.5751928687 -21755.8378906250 0.9848538637 - 0.5741272569 -21755.7832031250 0.9851430655 - 0.5730606914 -21754.4960937500 0.9854347706 - 0.5719931126 -21754.4980468750 0.9857213497 - 0.5709245801 -21752.9980468750 0.9860107303 - 0.5698550940 -21755.2675781250 0.9862957597 - 0.5687845945 -21755.1816406250 0.9865814447 - 0.5677132010 -21755.5234375000 0.9868661165 - 0.5666407943 -21754.7578125000 0.9871487617 - 0.5655674338 -21755.1777343750 0.9874262214 - 0.5644931197 -21756.0449218750 0.9877033234 - 0.5634178519 -21755.0957031250 0.9879831076 - 0.5623416305 -21756.4277343750 0.9882587194 - 0.5612644553 -21755.5917968750 0.9885395765 - 0.5601863265 -21754.9003906250 0.9888124466 - 0.5591073036 -21755.0722656250 0.9890859723 - 0.5580272675 -21753.9609375000 0.9893532991 - 0.5569462776 -21757.0410156250 0.9896238446 - 0.5558643937 -21756.0371093750 0.9898949862 - 0.5547814965 -21755.8320312500 0.9901618958 - 0.5536977053 -21754.4492187500 0.9904309511 - 0.5526129603 -21754.0820312500 0.9906946421 - 0.5515273213 -21755.8398437500 0.9909547567 - 0.5504406691 -21754.2695312500 0.9912182093 - 0.5493531227 -21755.9277343750 0.9914814830 - 0.5482646823 -21754.8691406250 0.9917445183 - 0.5471752882 -21755.8457031250 0.9920023084 - 0.5460849404 -21756.1503906250 0.9922572374 - 0.5449936986 -21755.1660156250 0.9925146103 - 0.5439015031 -21754.4746093750 0.9927670360 - 0.5428084135 -21754.5546875000 0.9930241108 - 0.5417143703 -21756.7578125000 0.9932755828 - 0.5406194329 -21755.5722656250 0.9935258031 - 0.5395236015 -21753.4121093750 0.9937765002 - 0.5384268165 -21755.0878906250 0.9940250516 - 0.5373291373 -21755.7675781250 0.9942699671 - 0.5362305045 -21756.5527343750 0.9945189953 - 0.5351310372 -21756.2421875000 0.9947625995 - 0.5340306163 -21756.9316406250 0.9950055480 - 0.5329293013 -21754.7460937500 0.9952498674 - 0.5318270326 -21754.1054687500 0.9954884052 - 0.5307239294 -21755.9628906250 0.9957296252 - 0.5296199322 -21754.6992187500 0.9959672689 - 0.5285149813 -21755.6601562500 0.9962051511 - 0.5274091959 -21755.3144531250 0.9964393377 - 0.5263024569 -21755.4843750000 0.9966741800 - 0.5251948833 -21754.3847656250 0.9969065785 - 0.5240863562 -21756.8085937500 0.9971399903 - 0.5229769945 -21756.4843750000 0.9973727465 - 0.5218667388 -21755.9062500000 0.9976022243 - 0.5207555890 -21756.6484375000 0.9978290796 - 0.5196435452 -21755.3164062500 0.9980573654 - 0.5185306072 -21755.8046875000 0.9982824922 - 0.5174168348 -21754.9101562500 0.9985064268 - 0.5163021088 -21755.5332031250 0.9987288117 - 0.5151866078 -21756.7421875000 0.9989538193 - 0.5140701532 -21755.4707031250 0.9991715550 - 0.5129528642 -21754.5078125000 0.9993869066 - 0.5118346810 -21755.3378906250 0.9996120334 - 0.5107156634 -21753.8964843750 0.9998258948 - 0.5095957518 -21754.8046875000 1.0000439882 - 0.5084750056 -21755.6210937500 1.0002553463 - 0.5073533654 -21755.2851562500 1.0004706383 - 0.5062308908 -21756.7050781250 1.0006835461 - 0.5051075816 -21755.5078125000 1.0008925200 - 0.5039833784 -21757.0332031250 1.0011010170 - 0.5028582811 -21755.0292968750 1.0013110638 - 0.5017324090 -21754.4433593750 1.0015157461 - 0.5006056428 -21755.5781250000 1.0017205477 - 0.4994780421 -21755.6308593750 1.0019239187 - 0.4983495772 -21755.5957031250 1.0021289587 - 0.4972202778 -21755.8886718750 1.0023338795 - 0.4960901439 -21755.4726562500 1.0025303364 - 0.4949591458 -21754.4023437500 1.0027285814 - 0.4938273430 -21755.1972656250 1.0029268265 - 0.4926946759 -21755.5839843750 1.0031259060 - 0.4915611744 -21756.0800781250 1.0033248663 - 0.4904268682 -21756.2773437500 1.0035154819 - 0.4892916977 -21756.6640625000 1.0037081242 - 0.4881557226 -21756.2832031250 1.0038986206 - 0.4870189130 -21756.3203125000 1.0040884018 - 0.4858812690 -21757.2304687500 1.0042804480 - 0.4847427905 -21754.0410156250 1.0044664145 - 0.4836035073 -21755.4785156250 1.0046526194 - 0.4824633896 -21756.1230468750 1.0048365593 - 0.4813224673 -21757.4414062500 1.0050195456 - 0.4801807404 -21757.2031250000 1.0052052736 - 0.4790381789 -21755.5742187500 1.0053870678 - 0.4778948128 -21754.8125000000 1.0055651665 - 0.4767506421 -21756.0859375000 1.0057433844 - 0.4756056666 -21756.5058593750 1.0059236288 - 0.4744598567 -21755.8730468750 1.0060973167 - 0.4733132720 -21756.7988281250 1.0062719584 - 0.4721658528 -21755.8652343750 1.0064449310 - 0.4710176587 -21756.0058593750 1.0066221952 - 0.4698686600 -21757.5605468750 1.0067909956 - 0.4687188864 -21754.9277343750 1.0069586039 - 0.4675682783 -21757.5449218750 1.0071283579 - 0.4664168954 -21755.3144531250 1.0072951317 - 0.4652647376 -21754.7070312500 1.0074622631 - 0.4641117752 -21756.6953125000 1.0076252222 - 0.4629580379 -21754.6152343750 1.0077862740 - 0.4618034959 -21755.9277343750 1.0079488754 - 0.4606481791 -21757.1445312500 1.0081092119 - 0.4594920874 -21754.3144531250 1.0082708597 - 0.4583351910 -21756.3574218750 1.0084310770 - 0.4571775496 -21755.2382812500 1.0085840225 - 0.4560191333 -21756.1250000000 1.0087400675 - 0.4548599124 -21755.7246093750 1.0088930130 - 0.4536999464 -21755.5664062500 1.0090481043 - 0.4525392056 -21755.7851562500 1.0091971159 - 0.4513776898 -21755.2714843750 1.0093472004 - 0.4502154291 -21756.3242187500 1.0094941854 - 0.4490523934 -21755.7148437500 1.0096397400 - 0.4478885829 -21756.7929687500 1.0097892284 - 0.4467240274 -21756.2500000000 1.0099297762 - 0.4455586970 -21756.3359375000 1.0100719929 - 0.4443926513 -21755.3320312500 1.0102159977 - 0.4432258308 -21756.5839843750 1.0103565454 - 0.4420582354 -21755.3105468750 1.0104933977 - 0.4408899248 -21756.7480468750 1.0106321573 - 0.4397208393 -21755.7753906250 1.0107661486 - 0.4385510385 -21756.6230468750 1.0109053850 - 0.4373804629 -21755.8164062500 1.0110338926 - 0.4362091720 -21756.0117187500 1.0111678839 - 0.4350371063 -21756.5273437500 1.0112965107 - 0.4338643253 -21756.9160156250 1.0114259720 - 0.4326908290 -21756.2617187500 1.0115537643 - 0.4315165579 -21757.0859375000 1.0116808414 - 0.4303416014 -21756.1269531250 1.0118035078 - 0.4291658700 -21756.1289062500 1.0119282007 - 0.4279894233 -21756.8437500000 1.0120505095 - 0.4268122613 -21756.9296875000 1.0121704340 - 0.4256343842 -21755.4726562500 1.0122890472 - 0.4244557619 -21756.6289062500 1.0124074221 - 0.4232764542 -21755.5312500000 1.0125228167 - 0.4220964015 -21755.2050781250 1.0126397610 - 0.4209156334 -21756.6855468750 1.0127476454 - 0.4197341502 -21755.8066406250 1.0128592253 - 0.4185519814 -21756.2832031250 1.0129708052 - 0.4173690677 -21755.4707031250 1.0130769014 - 0.4161854684 -21755.8066406250 1.0131871700 - 0.4150011539 -21756.8613281250 1.0132896900 - 0.4138161540 -21756.2050781250 1.0133942366 - 0.4126304388 -21756.2773437500 1.0134980679 - 0.4114440084 -21756.4101562500 1.0136007071 - 0.4102568924 -21756.6171875000 1.0136917830 - 0.4090690911 -21757.3828125000 1.0137914419 - 0.4078806043 -21755.3691406250 1.0138889551 - 0.4066914022 -21756.2109375000 1.0139811039 - 0.4055015147 -21755.6640625000 1.0140765905 - 0.4043109417 -21757.2441406250 1.0141695738 - 0.4031196833 -21755.5917968750 1.0142577887 - 0.4019277394 -21755.8671875000 1.0143430233 - 0.4007351398 -21757.0703125000 1.0144288540 - 0.3995418251 -21756.3144531250 1.0145143270 - 0.3983478546 -21756.0449218750 1.0145981312 - 0.3971531987 -21754.4785156250 1.0146778822 - 0.3959578872 -21755.7441406250 1.0147601366 - 0.3947618902 -21755.9843750000 1.0148335695 - 0.3935652077 -21755.5488281250 1.0149109364 - 0.3923678696 -21757.0605468750 1.0149865150 - 0.3911698759 -21756.4824218750 1.0150581598 - 0.3899712265 -21756.5664062500 1.0151293278 - 0.3887718916 -21756.9277343750 1.0151964426 - 0.3875719011 -21755.2050781250 1.0152664185 - 0.3863712549 -21755.7109375000 1.0153330564 - 0.3851699829 -21755.9375000000 1.0153965950 - 0.3839680254 -21756.8027343750 1.0154527426 - 0.3827654123 -21756.8593750000 1.0155133009 - 0.3815621734 -21756.5117187500 1.0155725479 - 0.3803582788 -21756.4472656250 1.0156309605 - 0.3791537285 -21756.0449218750 1.0156828165 - 0.3779485524 -21756.1269531250 1.0157365799 - 0.3767427206 -21756.7167968750 1.0157884359 - 0.3755362630 -21753.7324218750 1.0158367157 - 0.3743291795 -21755.2890625000 1.0158821344 - 0.3731214404 -21756.5664062500 1.0159263611 - 0.3719130754 -21755.2851562500 1.0159687996 - 0.3707040846 -21754.7363281250 1.0160062313 - 0.3694944382 -21756.6660156250 1.0160506964 - 0.3682841957 -21756.2382812500 1.0160872936 - 0.3670733273 -21757.9648437500 1.0161184072 - 0.3658618331 -21755.6269531250 1.0161542892 - 0.3646497130 -21757.2480468750 1.0161871910 - 0.3634369671 -21755.8945312500 1.0162104368 - 0.3622236252 -21754.6699218750 1.0162402391 - 0.3610096574 -21755.9628906250 1.0162625313 - 0.3597950637 -21756.1425781250 1.0162848234 - 0.3585798740 -21757.4355468750 1.0163053274 - 0.3573640883 -21755.7910156250 1.0163233280 - 0.3561476767 -21756.0859375000 1.0163365602 - 0.3549306691 -21756.8652343750 1.0163518190 - 0.3537130654 -21754.8691406250 1.0163630247 - 0.3524948657 -21756.3789062500 1.0163733959 - 0.3512760401 -21756.0976562500 1.0163788795 - 0.3500566483 -21757.1953125000 1.0163803101 - 0.3488366604 -21754.6250000000 1.0163817406 - 0.3476160765 -21755.8847656250 1.0163854361 - 0.3463948965 -21756.5644531250 1.0163807869 - 0.3451731205 -21755.6464843750 1.0163791180 - 0.3439507782 -21756.3613281250 1.0163674355 - 0.3427278399 -21756.1269531250 1.0163598061 - 0.3415043354 -21757.4609375000 1.0163464546 - 0.3402802348 -21756.8144531250 1.0163327456 - 0.3390555680 -21753.8691406250 1.0163153410 - 0.3378303349 -21756.7792968750 1.0162903070 - 0.3366045058 -21754.4804687500 1.0162720680 - 0.3353781402 -21756.4414062500 1.0162454844 - 0.3341511786 -21755.7910156250 1.0162215233 - 0.3329236507 -21755.5175781250 1.0161848068 - 0.3316955566 -21756.5332031250 1.0161567926 - 0.3304669261 -21756.9882812500 1.0161195993 - 0.3292376995 -21756.6210937500 1.0160833597 - 0.3280079365 -21756.5878906250 1.0160400867 - 0.3267776072 -21754.6972656250 1.0159956217 - 0.3255467415 -21755.4628906250 1.0159518719 - 0.3243153095 -21755.7812500000 1.0159016848 - 0.3230833411 -21756.4687500000 1.0158514977 - 0.3218508065 -21755.4941406250 1.0157957077 - 0.3206177354 -21755.9257812500 1.0157382488 - 0.3193841279 -21755.9238281250 1.0156788826 - 0.3181499541 -21755.9941406250 1.0156115294 - 0.3169152737 -21756.9804687500 1.0155434608 - 0.3156800270 -21755.3847656250 1.0154806376 - 0.3144442737 -21755.2363281250 1.0154068470 - 0.3132079542 -21756.2656250000 1.0153311491 - 0.3119711280 -21756.5429687500 1.0152534246 - 0.3107337654 -21755.9101562500 1.0151737928 - 0.3094958663 -21756.7070312500 1.0150883198 - 0.3082574606 -21757.7128906250 1.0149983168 - 0.3070185184 -21756.0800781250 1.0149095058 - 0.3057790697 -21756.7011718750 1.0148146152 - 0.3045390844 -21756.6308593750 1.0147175789 - 0.3032985926 -21754.4199218750 1.0146160126 - 0.3020575941 -21754.4257812500 1.0145140886 - 0.3008160591 -21754.8476562500 1.0144096613 - 0.2995740473 -21755.7773437500 1.0142933130 - 0.2983314991 -21756.4316406250 1.0141806602 - 0.2970884740 -21755.3203125000 1.0140670538 - 0.2958449125 -21754.9101562500 1.0139442682 - 0.2946008742 -21755.4062500000 1.0138211250 - 0.2933563292 -21754.9355468750 1.0136953592 - 0.2921112776 -21755.1367187500 1.0135672092 - 0.2908657491 -21755.6542968750 1.0134305954 - 0.2896197140 -21755.3300781250 1.0132937431 - 0.2883732021 -21755.3242187500 1.0131560564 - 0.2871261835 -21754.7929687500 1.0130072832 - 0.2858786881 -21756.6796875000 1.0128597021 - 0.2846306860 -21754.2343750000 1.0127105713 - 0.2833822370 -21754.5546875000 1.0125576258 - 0.2821332812 -21756.2578125000 1.0123969316 - 0.2808838487 -21753.8339843750 1.0122380257 - 0.2796339393 -21754.6992187500 1.0120693445 - 0.2783835828 -21755.0488281250 1.0118969679 - 0.2771327198 -21755.5507812500 1.0117226839 - 0.2758814096 -21754.9902343750 1.0115473270 - 0.2746296227 -21755.3613281250 1.0113658905 - 0.2733773887 -21756.4980468750 1.0111788511 - 0.2721246481 -21757.5429687500 1.0109922886 - 0.2708714902 -21755.9511718750 1.0108003616 - 0.2696178555 -21755.9980468750 1.0106040239 - 0.2683637440 -21756.1171875000 1.0104036331 - 0.2671092153 -21755.9042968750 1.0101994276 - 0.2658542097 -21756.1757812500 1.0099887848 - 0.2645987570 -21755.2109375000 1.0097745657 - 0.2633428574 -21754.8652343750 1.0095645189 - 0.2620865107 -21755.1738281250 1.0093396902 - 0.2608297169 -21755.0312500000 1.0091243982 - 0.2595725060 -21755.2851562500 1.0088899136 - 0.2583148181 -21756.4238281250 1.0086566210 - 0.2570567131 -21756.1367187500 1.0084229708 - 0.2557981610 -21756.6738281250 1.0081840754 - 0.2545391917 -21756.4062500000 1.0079433918 - 0.2532797754 -21754.4082031250 1.0076919794 - 0.2520199418 -21756.3984375000 1.0074400902 - 0.2507596612 -21755.2265625000 1.0071856976 - 0.2494989783 -21755.5214843750 1.0069243908 - 0.2482378483 -21756.0644531250 1.0066633224 - 0.2469763160 -21755.5703125000 1.0063891411 - 0.2457143664 -21755.4394531250 1.0061212778 - 0.2444519848 -21756.1367187500 1.0058429241 - 0.2431892008 -21757.0371093750 1.0055660009 - 0.2419259995 -21756.6386718750 1.0052822828 - 0.2406623960 -21756.9843750000 1.0049921274 - 0.2393983752 -21754.8769531250 1.0047011375 - 0.2381339520 -21755.3144531250 1.0044041872 - 0.2368691266 -21754.5839843750 1.0041062832 - 0.2356038988 -21754.6621093750 1.0037949085 - 0.2343382686 -21756.3671875000 1.0034898520 - 0.2330722511 -21755.6972656250 1.0031776428 - 0.2318058312 -21754.4550781250 1.0028629303 - 0.2305390090 -21755.8476562500 1.0025421381 - 0.2292718142 -21755.2031250000 1.0022162199 - 0.2280042171 -21755.5156250000 1.0018846989 - 0.2267362326 -21755.3964843750 1.0015527010 - 0.2254678756 -21754.0585937500 1.0012177229 - 0.2241991311 -21755.4003906250 1.0008769035 - 0.2229299992 -21755.1093750000 1.0005320311 - 0.2216604948 -21755.7695312500 1.0001835823 - 0.2203906178 -21755.6777343750 0.9998311400 - 0.2191203535 -21756.4980468750 0.9994758368 - 0.2178497314 -21755.4882812500 0.9991154671 - 0.2165787369 -21755.7167968750 0.9987507463 - 0.2153073847 -21754.1425781250 0.9983874559 - 0.2140356451 -21754.7949218750 0.9980131388 - 0.2127635628 -21756.0488281250 0.9976394176 - 0.2114911079 -21755.7656250000 0.9972604513 - 0.2102182955 -21755.9375000000 0.9968752265 - 0.2089451402 -21754.4746093750 0.9964943528 - 0.2076716125 -21754.3046875000 0.9961053729 - 0.2063977420 -21756.5449218750 0.9957090616 - 0.2051235288 -21756.5742187500 0.9953123331 - 0.2038489580 -21756.5175781250 0.9949106574 - 0.2025740445 -21756.2421875000 0.9945104718 - 0.2012987882 -21755.1894531250 0.9941028357 - 0.2000231743 -21754.6054687500 0.9936928749 - 0.1987472475 -21756.4179687500 0.9932754636 - 0.1974709630 -21754.6953125000 0.9928656220 - 0.1961943507 -21755.9765625000 0.9924417138 - 0.1949174106 -21756.4257812500 0.9920154810 - 0.1936401427 -21754.2382812500 0.9915941954 - 0.1923625320 -21756.2363281250 0.9911616445 - 0.1910846084 -21755.6953125000 0.9907305837 - 0.1898063570 -21755.3730468750 0.9902917147 - 0.1885277778 -21755.5214843750 0.9898568392 - 0.1872488856 -21755.3320312500 0.9894152284 - 0.1859696805 -21756.7910156250 0.9889693856 - 0.1846901476 -21755.0507812500 0.9885247946 - 0.1834103167 -21755.6113281250 0.9880715609 - 0.1821301579 -21755.1542968750 0.9876210093 - 0.1808497012 -21756.2480468750 0.9871663451 - 0.1795689315 -21755.2949218750 0.9867066741 - 0.1782878637 -21755.5761718750 0.9862430692 - 0.1770064980 -21755.6464843750 0.9857837558 - 0.1757248193 -21756.1484375000 0.9853202701 - 0.1744428426 -21755.8378906250 0.9848490953 - 0.1731605828 -21754.1640625000 0.9843807817 - 0.1718780249 -21755.3378906250 0.9839074612 - 0.1705951691 -21755.2500000000 0.9834293723 - 0.1693120301 -21755.4472656250 0.9829548001 - 0.1680286080 -21755.4062500000 0.9824810624 - 0.1667448878 -21754.8164062500 0.9819995165 - 0.1654608995 -21756.0507812500 0.9815094471 - 0.1641766131 -21754.5527343750 0.9810276628 - 0.1628920585 -21756.1191406250 0.9805410504 - 0.1616072357 -21754.3613281250 0.9800485969 - 0.1603221297 -21755.3066406250 0.9795619249 - 0.1590367556 -21755.3789062500 0.9790707231 - 0.1577511132 -21755.0156250000 0.9785786271 - 0.1564652026 -21754.1347656250 0.9780715108 - 0.1551790237 -21755.9531250000 0.9775812626 - 0.1538925767 -21755.0878906250 0.9770845175 - 0.1526058763 -21754.3007812500 0.9765844345 - 0.1513189077 -21755.7167968750 0.9760788679 - 0.1500317007 -21755.6093750000 0.9755788445 - 0.1487442255 -21756.8476562500 0.9750743508 - 0.1474564970 -21756.1816406250 0.9745714068 - 0.1461685300 -21755.4882812500 0.9740669727 - 0.1448802948 -21755.4218750000 0.9735565186 - 0.1435918361 -21755.4570312500 0.9730423689 - 0.1423031241 -21753.8027343750 0.9725324512 - 0.1410141736 -21755.9433593750 0.9720194340 - 0.1397249848 -21755.4160156250 0.9715132713 - 0.1384355575 -21755.7988281250 0.9709946513 - 0.1371458918 -21754.8554687500 0.9704834819 - 0.1358559877 -21754.7304687500 0.9699675441 - 0.1345658600 -21754.5605468750 0.9694521427 - 0.1332755089 -21756.7246093750 0.9689332247 - 0.1319849342 -21753.9140625000 0.9684176445 - 0.1306941211 -21754.5273437500 0.9678935409 - 0.1294030994 -21753.8281250000 0.9673774838 - 0.1281118542 -21755.0136718750 0.9668596983 - 0.1268204004 -21753.4804687500 0.9663363099 - 0.1255287230 -21755.4765625000 0.9658145308 - 0.1242368296 -21756.5546875000 0.9652980566 - 0.1229447275 -21755.0722656250 0.9647751451 - 0.1216524169 -21754.9394531250 0.9642547965 - 0.1203599051 -21753.6562500000 0.9637304544 - 0.1190671846 -21755.7597656250 0.9632031918 - 0.1177742630 -21757.1035156250 0.9626799822 - 0.1164811403 -21755.7812500000 0.9621561170 - 0.1151878238 -21756.0371093750 0.9616304636 - 0.1138943136 -21754.5644531250 0.9611067176 - 0.1126006022 -21754.9785156250 0.9605790377 - 0.1113067046 -21754.3476562500 0.9600530863 - 0.1100126207 -21755.6542968750 0.9595304728 - 0.1087183431 -21755.1816406250 0.9590014219 - 0.1074238867 -21756.6445312500 0.9584740400 - 0.1061292514 -21754.7773437500 0.9579424858 - 0.1048344299 -21754.4394531250 0.9574145675 - 0.1035394371 -21754.1015625000 0.9568905830 - 0.1022442654 -21755.2812500000 0.9563571215 - 0.1009489149 -21753.8964843750 0.9558294415 - 0.0996534005 -21754.0703125000 0.9552983046 - 0.0983577147 -21755.2304687500 0.9547742605 - 0.0970618576 -21754.1679687500 0.9542441368 - 0.0957658440 -21754.6855468750 0.9537165165 - 0.0944696665 -21755.4023437500 0.9531859159 - 0.0931733251 -21754.5058593750 0.9526583552 - 0.0918768272 -21754.5097656250 0.9521303773 - 0.0905801728 -21754.3574218750 0.9515968561 - 0.0892833620 -21753.1464843750 0.9510625601 - 0.0879864097 -21753.9042968750 0.9505317807 - 0.0866893008 -21754.1875000000 0.9500038028 - 0.0853920430 -21755.0605468750 0.9494762421 - 0.0840946436 -21753.7773437500 0.9489418864 - 0.0827971026 -21755.6621093750 0.9484128952 - 0.0814994201 -21753.2265625000 0.9478733540 - 0.0802016035 -21754.2910156250 0.9473481774 - 0.0789036453 -21755.7558593750 0.9468170404 - 0.0776055530 -21753.1308593750 0.9462859631 - 0.0763073340 -21755.2187500000 0.9457529187 - 0.0750089809 -21755.3144531250 0.9452214837 - 0.0737105012 -21754.5722656250 0.9446872473 - 0.0724118948 -21752.9843750000 0.9441537857 - 0.0711131692 -21754.1816406250 0.9436228871 - 0.0698143244 -21754.8105468750 0.9430902600 - 0.0685153604 -21753.4531250000 0.9425535798 - 0.0672162771 -21754.5175781250 0.9420222044 - 0.0659170821 -21755.2812500000 0.9414916039 - 0.0646177754 -21755.0390625000 0.9409590960 - 0.0633183643 -21754.9863281250 0.9404189587 - 0.0620188378 -21755.3046875000 0.9398865700 - 0.0607192069 -21754.6367187500 0.9393502474 - 0.0594194755 -21754.2265625000 0.9388107657 - 0.0581196435 -21752.9511718750 0.9382765293 - 0.0568197109 -21754.4628906250 0.9377460480 - 0.0555196851 -21755.3144531250 0.9372037649 - 0.0542195626 -21753.7089843750 0.9366675615 - 0.0529193506 -21755.3691406250 0.9361338615 - 0.0516190454 -21752.9843750000 0.9355941415 - 0.0503186546 -21755.2285156250 0.9350541830 - 0.0490181781 -21753.5957031250 0.9345170856 - 0.0477176197 -21753.7617187500 0.9339810014 - 0.0464169793 -21754.9804687500 0.9334378242 - 0.0451162606 -21753.6074218750 0.9328984022 - 0.0438154638 -21754.6503906250 0.9323639274 - 0.0425145961 -21754.4179687500 0.9318214655 - 0.0412136540 -21754.2597656250 0.9312797785 - 0.0399126410 -21754.9433593750 0.9307386875 - 0.0386115611 -21755.4511718750 0.9301971793 - 0.0373104177 -21754.3476562500 0.9296566844 - 0.0360092111 -21754.6503906250 0.9291099310 - 0.0347079411 -21754.1738281250 0.9285696149 - 0.0334066115 -21754.9609375000 0.9280281067 - 0.0321052298 -21755.3144531250 0.9274819493 - 0.0308037903 -21755.3554687500 0.9269350767 - 0.0295022987 -21755.3574218750 0.9263907671 - 0.0282007568 -21755.2011718750 0.9258460999 - 0.0268991683 -21752.9746093750 0.9252904654 - 0.0255975332 -21754.1113281250 0.9247460365 - 0.0242958553 -21754.6523437500 0.9242025018 - 0.0229941364 -21754.5566406250 0.9236509800 - 0.0216923784 -21754.0175781250 0.9231016040 - 0.0203905832 -21754.2285156250 0.9225528836 - 0.0190887544 -21754.0703125000 0.9220011234 - 0.0177868921 -21754.3496093750 0.9214487672 - 0.0164850000 -21753.2871093750 0.9208943844 - 0.0151830800 -21755.1660156250 0.9203421474 - 0.0138811339 -21753.7265625000 0.9197896123 - 0.0125791645 -21753.1015625000 0.9192331433 - 0.0112771746 -21754.6757812500 0.9186809063 - 0.0099751642 -21752.2578125000 0.9181183577 - 0.0086731380 -21754.8242187500 0.9175677299 - 0.0073710964 -21753.3808593750 0.9170071483 - 0.0060690427 -21754.4941406250 0.9164527655 - 0.0047669788 -21753.1835937500 0.9158861041 - 0.0034649065 -21754.8457031250 0.9153317809 - 0.0021628283 -21753.2714843750 0.9147701859 - 0.0008607465 -21754.2753906250 0.9142053127 - -0.0004413367 -21752.6640625000 0.9136440754 - -0.0017434191 -21753.9257812500 0.9130786657 - -0.0030454986 -21754.1894531250 0.9125200510 - -0.0043475730 -21752.6425781250 0.9119476676 - -0.0056496398 -21754.5136718750 0.9113835096 - -0.0069516972 -21753.9355468750 0.9108155370 - -0.0082537429 -21752.7812500000 0.9102427959 - -0.0095557747 -21754.8828125000 0.9096772671 - -0.0108577898 -21754.4101562500 0.9091090560 - -0.0121597871 -21753.6699218750 0.9085388184 - -0.0134617630 -21754.9902343750 0.9079628587 - -0.0147637166 -21754.3222656250 0.9073875546 - -0.0160656460 -21753.3847656250 0.9068178535 - -0.0173675474 -21753.9335937500 0.9062390327 - -0.0186694190 -21754.3847656250 0.9056642652 - -0.0199712589 -21753.5468750000 0.9050861001 - -0.0212730654 -21754.0253906250 0.9045120478 - -0.0225748345 -21753.2812500000 0.9039266109 - -0.0238765683 -21756.0273437500 0.9033515453 - -0.0251782592 -21752.9394531250 0.9027692080 - -0.0264799073 -21753.5761718750 0.9021795988 - -0.0277815126 -21754.5898437500 0.9016014338 - -0.0290830694 -21754.9238281250 0.9010174870 - -0.0303845759 -21752.6093750000 0.9004278183 - -0.0316860303 -21753.4687500000 0.8998403549 - -0.0329874344 -21754.2851562500 0.8992549181 - -0.0342887826 -21753.6367187500 0.8986678720 - -0.0355900675 -21754.3984375000 0.8980792165 - -0.0368912965 -21752.4101562500 0.8974825144 - -0.0381924622 -21752.6660156250 0.8968909979 - -0.0394935645 -21752.9511718750 0.8962969780 - -0.0407945961 -21753.6328125000 0.8957024217 - -0.0420955606 -21753.9199218750 0.8951063752 - -0.0433964543 -21753.2304687500 0.8945073485 - -0.0446972735 -21755.0390625000 0.8939114809 - -0.0459980182 -21752.9160156250 0.8933113813 - -0.0472986847 -21755.2109375000 0.8927128911 - -0.0485992692 -21753.9277343750 0.8921111226 - -0.0498997718 -21753.0312500000 0.8915055394 - -0.0512001887 -21752.8925781250 0.8908998370 - -0.0525005236 -21753.6132812500 0.8902951479 - -0.0538007654 -21754.0136718750 0.8896917105 - -0.0551009178 -21754.5761718750 0.8890855908 - -0.0564009733 -21753.7441406250 0.8884689808 - -0.0577009358 -21753.2285156250 0.8878624439 - -0.0590008013 -21753.6328125000 0.8872510791 - -0.0603005663 -21752.2675781250 0.8866403699 - -0.0616002269 -21754.0488281250 0.8860237002 - -0.0628997833 -21754.4062500000 0.8854077458 - -0.0641992390 -21754.9609375000 0.8847943544 - -0.0654985830 -21753.0664062500 0.8841769099 - -0.0667978153 -21754.7421875000 0.8835558295 - -0.0680969283 -21753.7343750000 0.8829365373 - -0.0693959296 -21751.5078125000 0.8823140860 - -0.0706948191 -21753.6464843750 0.8816935420 - -0.0719935820 -21753.4648437500 0.8810657263 - -0.0732922256 -21753.0742187500 0.8804399967 - -0.0745907426 -21753.0722656250 0.8798183203 - -0.0758891404 -21754.5214843750 0.8791919947 - -0.0771874040 -21753.2949218750 0.8785575032 - -0.0784855336 -21752.6718750000 0.8779253960 - -0.0797835365 -21754.1562500000 0.8772982359 - -0.0810813978 -21755.0039062500 0.8766663671 - -0.0823791251 -21754.2968750000 0.8760297894 - -0.0836767107 -21754.2128906250 0.8753944635 - -0.0849741623 -21753.0507812500 0.8747559786 - -0.0862714574 -21753.2187500000 0.8741230369 - -0.0875686184 -21752.7089843750 0.8734771609 - -0.0888656229 -21754.3398437500 0.8728386164 - -0.0901624784 -21753.8886718750 0.8721974492 - -0.0914591849 -21753.6953125000 0.8715567589 - -0.0927557275 -21753.2265625000 0.8709074855 - -0.0940521210 -21753.9238281250 0.8702610731 - -0.0953483507 -21753.5937500000 0.8696159720 - -0.0966444239 -21754.2792968750 0.8689692020 - -0.0979403257 -21754.2675781250 0.8683202863 - -0.0992360711 -21752.6953125000 0.8676635623 - -0.1005316377 -21751.6425781250 0.8670122623 - -0.1018270403 -21753.9492187500 0.8663614392 - -0.1031222716 -21752.7792968750 0.8657063246 - -0.1044173241 -21755.0683593750 0.8650484085 - -0.1057121977 -21754.0644531250 0.8643892407 - -0.1070069000 -21753.5214843750 0.8637327552 - -0.1083014160 -21754.4667968750 0.8630750179 - -0.1095957458 -21753.6484375000 0.8624073863 - -0.1108898893 -21752.8574218750 0.8617471457 - -0.1121838540 -21752.5234375000 0.8610807657 - -0.1134776175 -21754.6230468750 0.8604182005 - -0.1147711948 -21754.5078125000 0.8597481251 - -0.1160645783 -21754.4960937500 0.8590785861 - -0.1173577607 -21752.4492187500 0.8584094048 - -0.1186507493 -21754.4121093750 0.8577407598 - -0.1199435294 -21752.7089843750 0.8570698500 - -0.1212361157 -21754.6113281250 0.8563913703 - -0.1225284860 -21752.9531250000 0.8557167053 - -0.1238206550 -21752.5722656250 0.8550421000 - -0.1251126081 -21752.5039062500 0.8543658257 - -0.1264043599 -21754.3710937500 0.8536831141 - -0.1276958883 -21752.0156250000 0.8530033827 - -0.1289872080 -21751.8457031250 0.8523193598 - -0.1302783042 -21753.3105468750 0.8516397476 - -0.1315691769 -21752.7246093750 0.8509572148 - -0.1328598261 -21752.6542968750 0.8502660394 - -0.1341502517 -21754.5058593750 0.8495823741 - -0.1354404539 -21752.6699218750 0.8488932848 - -0.1367304325 -21753.0390625000 0.8482037187 - -0.1380201727 -21752.8808593750 0.8475141525 - -0.1393096745 -21753.4277343750 0.8468171954 - -0.1405989379 -21755.2792968750 0.8461270332 - -0.1418879628 -21753.5449218750 0.8454290032 - -0.1431767642 -21753.9863281250 0.8447344303 - -0.1444652975 -21754.0351562500 0.8440386653 - -0.1457536072 -21753.3671875000 0.8433341980 - -0.1470416635 -21753.4882812500 0.8426335454 - -0.1483294666 -21753.2773437500 0.8419341445 - -0.1496170163 -21753.7304687500 0.8412332535 - -0.1509043127 -21752.6191406250 0.8405216932 - -0.1521913558 -21752.0000000000 0.8398144245 - -0.1534781456 -21752.8476562500 0.8391098976 - -0.1547646672 -21754.0527343750 0.8384027481 - -0.1560509354 -21753.2734375000 0.8376939893 - -0.1573369354 -21753.0234375000 0.8369779587 - -0.1586226672 -21753.2851562500 0.8362652063 - -0.1599081308 -21752.6347656250 0.8355531096 - -0.1611933261 -21752.8808593750 0.8348382711 - -0.1624782383 -21753.2382812500 0.8341237903 - -0.1637628824 -21754.7597656250 0.8334009051 - -0.1650472581 -21752.9628906250 0.8326811790 - -0.1663313359 -21751.3691406250 0.8319605589 - -0.1676151454 -21753.0957031250 0.8312417269 - -0.1688986570 -21753.6152343750 0.8305200934 - -0.1701819003 -21754.3828125000 0.8297901750 - -0.1714648455 -21753.3789062500 0.8290638328 - -0.1727474928 -21753.5449218750 0.8283362985 - -0.1740298569 -21752.4277343750 0.8276100159 - -0.1753119230 -21753.4726562500 0.8268812299 - -0.1765936911 -21755.4003906250 0.8261514306 - -0.1778751612 -21753.1171875000 0.8254100680 - -0.1791563332 -21752.8906250000 0.8246785998 - -0.1804371923 -21753.4296875000 0.8239436746 - -0.1817177534 -21755.0507812500 0.8232101798 - -0.1829980016 -21754.7656250000 0.8224719167 - -0.1842779368 -21753.2617187500 0.8217260838 - -0.1855575740 -21751.8476562500 0.8209854960 - -0.1868368834 -21752.9980468750 0.8202455640 - -0.1881158799 -21753.5820312500 0.8195027113 - -0.1893945485 -21753.0175781250 0.8187594414 - -0.1906729043 -21754.5058593750 0.8180067539 - -0.1919509470 -21752.9023437500 0.8172591925 - -0.1932286471 -21753.7050781250 0.8165125847 - -0.1945060343 -21753.5214843750 0.8157634735 - -0.1957830787 -21754.3496093750 0.8150147796 - -0.1970597953 -21753.2597656250 0.8142521977 - -0.1983361840 -21753.1933593750 0.8134999871 - -0.1996122301 -21753.0859375000 0.8127446771 - -0.2008879334 -21752.9765625000 0.8119914532 - -0.2021633089 -21754.5429687500 0.8112339377 - -0.2034383267 -21754.3554687500 0.8104761839 - -0.2047130167 -21752.4101562500 0.8097071052 - -0.2059873492 -21753.1503906250 0.8089462519 - -0.2072613388 -21754.0664062500 0.8081843853 - -0.2085349709 -21754.1503906250 0.8074210882 - -0.2098082453 -21753.2871093750 0.8066545725 - -0.2110811770 -21753.9648437500 0.8058889508 - -0.2123537362 -21752.6601562500 0.8051124811 - -0.2136259377 -21753.7128906250 0.8043441772 - -0.2148977816 -21754.6796875000 0.8035749197 - -0.2161692679 -21753.3203125000 0.8028009534 - -0.2174403816 -21753.2109375000 0.8020296693 - -0.2187111229 -21754.8769531250 0.8012545705 - -0.2199814916 -21753.1484375000 0.8004696369 - -0.2212515026 -21754.7187500000 0.7996931076 - -0.2225211263 -21754.5410156250 0.7989169359 - -0.2237903774 -21753.2050781250 0.7981359363 - -0.2250592411 -21754.7324218750 0.7973552346 - -0.2263277322 -21753.2441406250 0.7965631485 - -0.2275958359 -21753.6640625000 0.7957804203 - -0.2288635522 -21753.6699218750 0.7949954867 - -0.2301308811 -21754.9062500000 0.7942097783 - -0.2313978225 -21755.1816406250 0.7934226394 - -0.2326643616 -21753.3886718750 0.7926329970 - -0.2339305133 -21753.5742187500 0.7918342948 - -0.2351962775 -21753.0546875000 0.7910430431 - -0.2364616394 -21753.4531250000 0.7902491093 - -0.2377265841 -21755.6425781250 0.7894564271 - -0.2389911413 -21754.3144531250 0.7886612415 - -0.2402552962 -21753.8085937500 0.7878640890 - -0.2415190339 -21753.1425781250 0.7870571613 - -0.2427823693 -21754.5429687500 0.7862587571 - -0.2440452874 -21753.4882812500 0.7854573131 - -0.2453077883 -21752.5488281250 0.7846547961 - -0.2465698868 -21753.6464843750 0.7838516831 - -0.2478315532 -21752.9882812500 0.7830467820 - -0.2490928024 -21755.0136718750 0.7822417021 - -0.2503536344 -21753.7109375000 0.7814254761 - -0.2516140342 -21753.6894531250 0.7806168199 - -0.2528740168 -21754.7421875000 0.7798076868 - -0.2541335523 -21753.1894531250 0.7789954543 - -0.2553927004 -21755.4316406250 0.7781849504 - -0.2566513717 -21753.6835937500 0.7773694992 - -0.2579096258 -21752.7187500000 0.7765547633 - -0.2591674328 -21753.9882812500 0.7757295966 - -0.2604248226 -21754.5292968750 0.7749119997 - -0.2616817355 -21753.7792968750 0.7740931511 - -0.2629382312 -21753.9218750000 0.7732721567 - -0.2641942799 -21753.3105468750 0.7724509835 - -0.2654498816 -21754.2148437500 0.7716302276 - -0.2667050064 -21753.9843750000 0.7707957029 - -0.2679597139 -21753.6757812500 0.7699698806 - -0.2692139447 -21754.5742187500 0.7691437006 - -0.2704677284 -21755.6367187500 0.7683171034 - -0.2717210650 -21753.1074218750 0.7674872279 - -0.2729739249 -21754.2792968750 0.7666562796 - -0.2742263079 -21754.5683593750 0.7658144832 - -0.2754782438 -21752.9179687500 0.7649807334 - -0.2767297328 -21753.7636718750 0.7641476393 - -0.2779807150 -21753.9277343750 0.7633118629 - -0.2792312503 -21755.1601562500 0.7624751925 - -0.2804813087 -21753.0566406250 0.7616355419 - -0.2817308903 -21755.5937500000 0.7607982755 - -0.2829799950 -21753.2675781250 0.7599470615 - -0.2842285931 -21755.0937500000 0.7591049075 - -0.2854767442 -21752.6875000000 0.7582607865 - -0.2867243886 -21755.6914062500 0.7574173212 - -0.2879715562 -21754.3339843750 0.7565715313 - -0.2892182469 -21754.1250000000 0.7557238936 - -0.2904644310 -21753.9960937500 0.7548754811 - -0.2917101383 -21755.3359375000 0.7540270090 - -0.2929553390 -21754.9042968750 0.7531653047 - -0.2942000628 -21754.4023437500 0.7523131371 - -0.2954442501 -21754.3125000000 0.7514589429 - -0.2966879606 -21755.8496093750 0.7506058216 - -0.2979311645 -21755.2988281250 0.7497487664 - -0.2991738617 -21754.2617187500 0.7488919497 - -0.3004160523 -21754.1640625000 0.7480338812 - -0.3016577363 -21753.6093750000 0.7471749187 - -0.3028989136 -21754.0136718750 0.7463008761 - -0.3041395843 -21754.8261718750 0.7454404831 - -0.3053797185 -21754.5312500000 0.7445760369 - -0.3066193461 -21755.3105468750 0.7437124848 - -0.3078584373 -21754.2851562500 0.7428455949 - -0.3090970218 -21754.6953125000 0.7419791222 - -0.3103350997 -21754.1855468750 0.7411087751 - -0.3115726113 -21755.9824218750 0.7402302623 - -0.3128096163 -21754.8945312500 0.7393586636 - -0.3140460849 -21755.3183593750 0.7384858131 - -0.3152820468 -21754.3632812500 0.7376129627 - -0.3165174425 -21755.1152343750 0.7367383838 - -0.3177523315 -21753.9550781250 0.7358611226 - -0.3189866543 -21755.1738281250 0.7349846363 - -0.3202204406 -21754.8691406250 0.7340953946 - -0.3214536905 -21755.5742187500 0.7332149148 - -0.3226864040 -21753.0175781250 0.7323327661 - -0.3239185512 -21755.7695312500 0.7314524055 - -0.3251501620 -21756.0644531250 0.7305690050 - -0.3263812065 -21755.1406250000 0.7296830416 - -0.3276117146 -21756.1933593750 0.7287982702 - -0.3288416564 -21755.4414062500 0.7279105783 - -0.3300710320 -21755.1738281250 0.7270219922 - -0.3312998712 -21755.0937500000 0.7261198759 - -0.3325281441 -21755.0546875000 0.7252302170 - -0.3337558508 -21756.0566406250 0.7243384719 - -0.3349829912 -21755.6796875000 0.7234445214 - -0.3362095654 -21755.3457031250 0.7225504518 - -0.3374355435 -21755.5371093750 0.7216544747 - -0.3386609852 -21754.0175781250 0.7207570076 - -0.3398858309 -21755.5292968750 0.7198593020 - -0.3411101103 -21755.8437500000 0.7189600468 - -0.3423338234 -21753.7968750000 0.7180587649 - -0.3435569406 -21755.9199218750 0.7171458602 - -0.3447794616 -21754.8007812500 0.7162415385 - -0.3460014164 -21754.7734375000 0.7153377533 - -0.3472227752 -21756.2031250000 0.7144314647 - -0.3484435678 -21755.8085937500 0.7135255933 - -0.3496637344 -21756.0683593750 0.7126176357 - -0.3508833349 -21754.3359375000 0.7117082477 - -0.3521023393 -21756.1835937500 0.7107851505 - -0.3533207476 -21755.8613281250 0.7098739743 - -0.3545385301 -21755.1054687500 0.7089602351 - -0.3557557464 -21755.2246093750 0.7080461979 - -0.3569723368 -21756.8281250000 0.7071316838 - -0.3581883311 -21754.9550781250 0.7062147260 - -0.3594037294 -21756.9277343750 0.7052978277 - -0.3606185019 -21756.8730468750 0.7043783665 - -0.3618326485 -21754.9960937500 0.7034441829 - -0.3630461991 -21755.4628906250 0.7025240064 - -0.3642591536 -21755.4570312500 0.7016013265 - -0.3654714525 -21756.1308593750 0.7006772161 - -0.3666831553 -21755.9628906250 0.6997525096 - -0.3678942323 -21755.3750000000 0.6988264322 - -0.3691046834 -21755.6152343750 0.6978997588 - -0.3703145087 -21756.2558593750 0.6969708204 - -0.3715237081 -21755.6015625000 0.6960406303 - -0.3727322817 -21756.2714843750 0.6951101422 - -0.3739402294 -21755.1191406250 0.6941776276 - -0.3751475215 -21756.5839843750 0.6932447553 - -0.3763541877 -21756.3769531250 0.6923106313 - -0.3775602281 -21755.8496093750 0.6913742423 - -0.3787656128 -21755.5898437500 0.6904247999 - -0.3799703717 -21756.5390625000 0.6894869208 - -0.3811744750 -21755.4941406250 0.6885470152 - -0.3823779225 -21756.7851562500 0.6876071095 - -0.3835807145 -21755.8886718750 0.6866647601 - -0.3847828805 -21757.4082031250 0.6857222319 - -0.3859843910 -21756.0664062500 0.6847788692 - -0.3871852458 -21756.7988281250 0.6838335991 - -0.3883854449 -21755.6835937500 0.6828718185 - -0.3895849884 -21757.4199218750 0.6819257140 - -0.3907838464 -21757.0996093750 0.6809774041 - -0.3919820487 -21756.2441406250 0.6800267100 - -0.3931796253 -21757.3789062500 0.6790761948 - -0.3943764865 -21757.9746093750 0.6781241298 - -0.3955727220 -21756.9433593750 0.6771565676 - -0.3967682421 -21755.7675781250 0.6762013435 - -0.3979631066 -21757.7421875000 0.6752454042 - -0.3991573155 -21756.1132812500 0.6742878556 - -0.4003508389 -21756.1738281250 0.6733308434 - -0.4015436769 -21757.3964843750 0.6723712087 - -0.4027358294 -21758.0839843750 0.6714114547 - -0.4039272964 -21756.2656250000 0.6704491973 - -0.4051181078 -21757.4804687500 0.6694869399 - -0.4063082039 -21757.0234375000 0.6685224771 - -0.4074976146 -21757.8164062500 0.6675582528 - -0.4086863399 -21757.6640625000 0.6665911674 - -0.4098743796 -21757.3085937500 0.6656238437 - -0.4110617042 -21757.7539062500 0.6646558642 - -0.4122483432 -21757.1660156250 0.6636860371 - -0.4134342968 -21756.6894531250 0.6627142429 - -0.4146195352 -21756.3261718750 0.6617420912 - -0.4158040881 -21759.0039062500 0.6607700586 - -0.4169878960 -21757.4609375000 0.6597958207 - -0.4181710184 -21758.9707031250 0.6588198543 - -0.4193534553 -21757.9179687500 0.6578430533 - -0.4205351472 -21757.7968750000 0.6568658948 - -0.4217161536 -21757.3808593750 0.6558716893 - -0.4228964150 -21759.8203125000 0.6548916698 - -0.4240759909 -21757.2812500000 0.6539102197 - -0.4252548218 -21758.6523437500 0.6529283524 - -0.4264329374 -21758.4804687500 0.6519294381 - -0.4276103377 -21757.6250000000 0.6509444118 - -0.4287870228 -21759.2187500000 0.6499590278 - -0.4299629629 -21757.8007812500 0.6489561796 - -0.4311381876 -21758.4667968750 0.6479687691 - -0.4323126674 -21758.3476562500 0.6469790339 - -0.4334864318 -21758.8867187500 0.6459735036 - -0.4346594214 -21757.3125000000 0.6449815631 - -0.4358317256 -21757.6542968750 0.6439886093 - -0.4370032549 -21758.7675781250 0.6429952979 - -0.4381740689 -21758.3417968750 0.6419996023 - -0.4393441081 -21757.3535156250 0.6410028338 - -0.4405134320 -21757.7265625000 0.6400060654 - -0.4416820109 -21757.1621093750 0.6390081644 - -0.4428498149 -21758.7304687500 0.6380243301 - -0.4440168738 -21757.4960937500 0.6370238066 - -0.4451831877 -21759.8320312500 0.6360390186 - -0.4463487566 -21759.6835937500 0.6350360513 - -0.4475135505 -21758.6562500000 0.6340469122 - -0.4486775994 -21759.3925781250 0.6330591440 - -0.4498408735 -21760.2363281250 0.6320693493 - -0.4510034025 -21760.7031250000 0.6310949326 - -0.4521651566 -21763.3066406250 0.6301035285 - -0.4533261359 -21764.3828125000 0.6291273236 - -0.4544863701 -21763.8828125000 0.6281329989 - -0.4556458294 -21766.2500000000 0.6271553636 - -0.4568044841 -21764.6777343750 0.6261590719 - -0.4579623938 -21767.4570312500 0.6251797676 - -0.4591195285 -21766.8359375000 0.6241978407 - -0.4602758586 -21767.9335937500 0.6231994629 - -0.4614314437 -21769.5761718750 0.6222171783 - -0.4625862241 -21769.7656250000 0.6212156415 - -0.4637402296 -21770.5273437500 0.6202307343 - -0.4648934305 -21771.5019531250 0.6192283630 - -0.4660458565 -21771.0429687500 0.6182245612 - -0.4671975076 -21773.3242187500 0.6172200441 - -0.4683483541 -21772.5351562500 0.6162142158 - -0.4694983959 -21773.8359375000 0.6151906848 - -0.4706476629 -21773.8007812500 0.6141830683 - -0.4717961252 -21773.4062500000 0.6131570935 - -0.4729437828 17606.6542968750 0.6095992327 - -0.4740906358 17606.6542968750 0.6085837483 - -0.4752366841 17606.9628906250 0.6075959802 - -0.4763819277 17605.6679687500 0.6065765619 - -0.4775263667 17606.0820312500 0.6055891514 - -0.4786699712 17603.6406250000 0.6045990586 - -0.4798128009 17604.0371093750 0.6036089063 - -0.4809547961 17603.0585937500 0.6026179194 - -0.4820959866 17601.6054687500 0.6016560197 - -0.4832363725 17601.2949218750 0.6006627679 - -0.4843759239 17599.4648437500 0.5996996164 - -0.4855146408 17598.3886718750 0.5987052321 - -0.4866525531 17598.4394531250 0.5977406502 - -0.4877896309 17595.5683593750 0.5967745781 - -0.4889258742 17596.7988281250 0.5957793593 - -0.4900613129 17594.2871093750 0.5948112011 - -0.4911959171 17594.4941406250 0.5938137174 - -0.4923296571 17593.2363281250 0.5928457975 - -0.4934625924 17590.4101562500 0.5918460488 - -0.4945946932 17589.7675781250 0.5908762813 - -0.4957259297 17588.9765625000 0.5898749232 - -0.4968563616 17588.0253906250 0.5888749361 - -0.4979859293 17588.9394531250 0.5878726244 - -0.4991146326 17588.7929687500 0.5868409872 - -0.5002425313 17586.3593750000 0.5858382583 - -0.5013695359 17587.5429687500 0.5848059654 - -0.5024957061 17585.9394531250 0.5838011503 - -0.5036210418 17586.4160156250 0.5827668905 - -0.5047455430 17586.1445312500 0.5817319751 - -0.5058691502 17587.0917968750 0.5806964040 - -0.5069919229 17587.4335937500 0.5796597004 - -0.5081138015 17586.0429687500 0.5786243081 - -0.5092348456 17585.8847656250 0.5775854588 - -0.5103550553 17587.7265625000 0.5765475631 - -0.5114743710 17587.1699218750 0.5754798651 - -0.5125927925 17587.2324218750 0.5744400024 - -0.5137103796 17586.5097656250 0.5734009743 - -0.5148270726 17587.8125000000 0.5723321438 - -0.5159428716 17586.5039062500 0.5712895989 - -0.5170578361 17587.1308593750 0.5702489614 - -0.5181719661 17587.6875000000 0.5691775680 - -0.5192851424 17586.3574218750 0.5681342483 - -0.5203974843 17588.6796875000 0.5670907497 - -0.5215088725 17586.4453125000 0.5660459995 - -0.5226194263 17587.0078125000 0.5649733543 - -0.5237291455 17586.9804687500 0.5639284253 - -0.5248379111 17587.9335937500 0.5628823638 - -0.5259457827 17586.4804687500 0.5618339181 - -0.5270528197 17587.9609375000 0.5607887506 - -0.5281589031 17585.4492187500 0.5597401857 - -0.5292640924 17585.8105468750 0.5586932898 - -0.5303684473 17586.2246093750 0.5576435328 - -0.5314718485 17586.6113281250 0.5565946698 - -0.5325743556 17586.2304687500 0.5555447340 - -0.5336759686 17586.4042968750 0.5544956326 - -0.5347766876 17586.6015625000 0.5534439683 - -0.5358764529 17585.6679687500 0.5523927808 - -0.5369753242 17586.3652343750 0.5513392687 - -0.5380733609 17585.2734375000 0.5502882600 - -0.5391703844 17586.9082031250 0.5492351651 - -0.5402665734 17586.0273437500 0.5481813550 - -0.5413618088 17584.9335937500 0.5471263528 - -0.5424560905 17585.0039062500 0.5460724831 - -0.5435494781 17586.6523437500 0.5450168252 - -0.5446419716 17584.4960937500 0.5439610481 - -0.5457335114 17585.7011718750 0.5429037213 - -0.5468241572 17586.9628906250 0.5418204665 - -0.5479138494 17586.2714843750 0.5407612324 - -0.5490026474 17584.9335937500 0.5397054553 - -0.5500904918 17585.8867187500 0.5386462808 - -0.5511773825 17586.1132812500 0.5375859737 - -0.5522633791 17584.5976562500 0.5365293026 - -0.5533484221 17585.6210937500 0.5354413390 - -0.5544325113 17584.9101562500 0.5343779325 - -0.5555156469 17586.0312500000 0.5333213806 - -0.5565978885 17584.8808593750 0.5322577953 - -0.5576791763 17585.7812500000 0.5311970115 - -0.5587595105 17584.4394531250 0.5301343799 - -0.5598388910 17585.2656250000 0.5290712714 - -0.5609173179 17584.6699218750 0.5280082226 - -0.5619947910 17584.6269531250 0.5269171596 - -0.5630713105 17585.1718750000 0.5258517861 - -0.5641468763 17585.3242187500 0.5247901678 - -0.5652214885 17583.8730468750 0.5237233639 - -0.5662951469 17585.0468750000 0.5226578116 - -0.5673678517 17584.3144531250 0.5215952396 - -0.5684396029 17584.8046875000 0.5205266476 - -0.5695104003 17584.3691406250 0.5194584727 - -0.5705801845 17584.1523437500 0.5183945298 - -0.5716490149 17584.5546875000 0.5173262954 - -0.5727168918 17585.1542968750 0.5162588954 - -0.5737838149 17584.0664062500 0.5151919127 - -0.5748497248 17583.9902343750 0.5141203403 - -0.5759146810 17583.7324218750 0.5130540133 - -0.5769786835 17585.7402343750 0.5119558573 - -0.5780416727 17585.4375000000 0.5108847022 - -0.5791037083 17583.8535156250 0.5098155141 - -0.5801647305 17585.4335937500 0.5087468624 - -0.5812247992 17583.8535156250 0.5076715350 - -0.5822838545 17583.8027343750 0.5066038370 - -0.5833419561 17584.4824218750 0.5055313110 - -0.5843990445 17584.7988281250 0.5044573545 - -0.5854551196 17583.1113281250 0.5033591986 - -0.5865102410 17585.0195312500 0.5022857189 - -0.5875643492 17584.7011718750 0.5012096167 - -0.5886174440 17585.1875000000 0.5001401305 - -0.5896695852 17583.4179687500 0.4990628064 - -0.5907207131 17583.4296875000 0.4979901016 - -0.5917708278 17584.6699218750 0.4969130158 - -0.5928199291 17582.6210937500 0.4958138764 - -0.5938680768 17584.5644531250 0.4947384000 - -0.5949151516 17584.3593750000 0.4936624467 - -0.5959612727 17582.9121093750 0.4925866425 - -0.5970063210 17584.2792968750 0.4915117919 - -0.5980504155 17583.7832031250 0.4904319942 - -0.5990934372 17584.5800781250 0.4893568456 - -0.6001355052 17584.3847656250 0.4882821143 - -0.6011765599 17583.5019531250 0.4872019887 - -0.6022165418 17583.7558593750 0.4861283004 - -0.6032555103 17584.0917968750 0.4850211143 - -0.6042934656 17584.1757812500 0.4839420319 - -0.6053304076 17584.9609375000 0.4828650951 - -0.6063663363 17583.8300781250 0.4817859530 - -0.6074011922 17584.6679687500 0.4807058275 - -0.6084350944 17584.2812500000 0.4796261787 - -0.6094678640 17581.5644531250 0.4785483479 - -0.6104996800 17583.9765625000 0.4774693549 - -0.6115304232 17583.3027343750 0.4763853848 - -0.6125601530 17584.0839843750 0.4752834439 - -0.6135888100 17582.8867187500 0.4742010534 - -0.6146164536 17583.7207031250 0.4731188715 - -0.6156430840 17583.2539062500 0.4720366299 - -0.6166686416 17584.2167968750 0.4709569216 - -0.6176931262 17583.3496093750 0.4698775113 - -0.6187165976 17584.5039062500 0.4687922299 - -0.6197389960 17582.9941406250 0.4676898420 - -0.6207603812 17583.6347656250 0.4666043818 - -0.6217806339 17582.7851562500 0.4655237496 - -0.6227999330 17583.9628906250 0.4644385278 - -0.6238180995 17582.9941406250 0.4633589089 - -0.6248352528 17583.5351562500 0.4622735679 - -0.6258513331 17582.5097656250 0.4611915648 - -0.6268663406 17582.3125000000 0.4600791037 - -0.6278803349 17582.9707031250 0.4590013325 - -0.6288931966 17583.0625000000 0.4579139352 - -0.6299050450 17583.9218750000 0.4568341970 - -0.6309157610 17584.3710937500 0.4557445943 - -0.6319254637 17583.1562500000 0.4546666443 - -0.6329340935 17583.0664062500 0.4535762966 - -0.6339416504 17583.2207031250 0.4524956346 - -0.6349480748 17583.7812500000 0.4513840973 - -0.6359534860 17582.7402343750 0.4503025413 - -0.6369578242 17582.6425781250 0.4492163062 - -0.6379610300 17582.9375000000 0.4481298625 - -0.6389631629 17584.1855468750 0.4470453858 - -0.6399642825 17581.3046875000 0.4459623992 - -0.6409642696 17583.6542968750 0.4448777139 - -0.6419631243 17581.8945312500 0.4437882304 - -0.6429609656 17584.2148437500 0.4426814020 - -0.6439576745 17581.8183593750 0.4415984750 - -0.6449533105 17583.6953125000 0.4405124485 - -0.6459478140 17582.6484375000 0.4394227564 - -0.6469412446 17582.5839843750 0.4383368790 - -0.6479336023 17581.3554687500 0.4372549355 - -0.6489248276 17583.1562500000 0.4361698329 - -0.6499149799 17583.0566406250 0.4350578189 - -0.6509040594 17581.8437500000 0.4339706302 - -0.6518919468 17584.1875000000 0.4328822494 - -0.6528788209 17583.3750000000 0.4318034947 - -0.6538645625 17581.9589843750 0.4307148755 - -0.6548491716 17582.5097656250 0.4296275973 - -0.6558326483 17582.8398437500 0.4285144210 - -0.6568150520 17582.1484375000 0.4274328649 - -0.6577963233 17582.4550781250 0.4263464808 - -0.6587765217 17582.2167968750 0.4252566993 - -0.6597555280 17582.9335937500 0.4241708517 - -0.6607334614 17582.4140625000 0.4230804145 - -0.6617102623 17581.3945312500 0.4219786525 - -0.6626859903 17582.3320312500 0.4208880961 - -0.6636605263 17584.2851562500 0.4198022187 - -0.6646339893 17581.7265625000 0.4187168181 - -0.6656063199 17583.2460937500 0.4176298380 - -0.6665774584 17582.1660156250 0.4165474176 - -0.6675475240 17582.3125000000 0.4154607356 - -0.6685164571 17583.5117187500 0.4143489599 - -0.6694842577 17581.3984375000 0.4132586122 - -0.6704509258 17582.1972656250 0.4121748209 - -0.6714164019 17580.9082031250 0.4110854566 - -0.6723808050 17581.9589843750 0.4100085199 - -0.6733440161 17583.0996093750 0.4089176059 - -0.6743061543 17581.7109375000 0.4078336954 - -0.6752671003 17582.5390625000 0.4067198932 - -0.6762269139 17582.5234375000 0.4056330621 - -0.6771855354 17583.9824218750 0.4045507908 - -0.6781430840 17581.8847656250 0.4034652412 - -0.6790994406 17581.7246093750 0.4023816884 - -0.6800546646 17582.2929687500 0.4012924135 - -0.6810086966 17581.8222656250 0.4001811147 - -0.6819615960 17583.8261718750 0.3990947306 - -0.6829133630 17583.2851562500 0.3980137408 - -0.6838639379 17582.2558593750 0.3969345689 - -0.6848133802 17582.0898437500 0.3958467543 - -0.6857616305 17581.6308593750 0.3947568238 - -0.6867087483 17583.2480468750 0.3936536014 - -0.6876547337 17581.8671875000 0.3925625682 - -0.6885994673 17583.1582031250 0.3914815187 - -0.6895431280 17582.9648437500 0.3903979659 - -0.6904855371 17581.6328125000 0.3893117011 - -0.6914268136 17583.6777343750 0.3882093430 - -0.6923668981 17581.7714843750 0.3871224523 - -0.6933058500 17581.7675781250 0.3860363364 - -0.6942436099 17582.9609375000 0.3849520087 - -0.6951801777 17582.0722656250 0.3838673234 - -0.6961155534 17580.9355468750 0.3827826977 - -0.6970497966 17582.5605468750 0.3816843927 - -0.6979827881 17582.0078125000 0.3805969059 - -0.6989146471 17582.5429687500 0.3795123696 - -0.6998453140 17582.6679687500 0.3784278035 - -0.7007747889 17581.6132812500 0.3773466647 - -0.7017030716 17580.9589843750 0.3762594163 - -0.7026301622 17582.8222656250 0.3751567304 - -0.7035561204 17583.1894531250 0.3740727305 - -0.7044808269 17581.2578125000 0.3729910254 - -0.7054043412 17581.4199218750 0.3719168305 - -0.7063266635 17581.6191406250 0.3708315194 - -0.7072477937 17581.5605468750 0.3697476089 - -0.7081677318 17582.8437500000 0.3686448038 - -0.7090864182 17581.9589843750 0.3675640225 - -0.7100039721 17582.2832031250 0.3664802909 - -0.7109202743 17581.3945312500 0.3653984666 - -0.7118353844 17582.7578125000 0.3643198311 - -0.7127493024 17581.5195312500 0.3632166088 - -0.7136620283 17582.2304687500 0.3621271849 - -0.7145735025 17581.5253906250 0.3610587418 - -0.7154837847 17580.6425781250 0.3599731922 - -0.7163928747 17581.8691406250 0.3588944376 - -0.7173007131 17583.2011718750 0.3577917218 - -0.7182073593 17583.5332031250 0.3567126095 - -0.7191127539 17581.7128906250 0.3556383252 - -0.7200169563 17581.3906250000 0.3545534313 - -0.7209199071 17581.3574218750 0.3534741104 - -0.7218216658 17583.9160156250 0.3523775041 - -0.7227222323 17582.1328125000 0.3512941003 - -0.7236215472 17580.9277343750 0.3502132595 - -0.7245196104 17582.0078125000 0.3491341174 - -0.7254164815 17581.8515625000 0.3480561674 - -0.7263121009 17582.7851562500 0.3469801247 - -0.7272064686 17582.0996093750 0.3458795547 - -0.7280996442 17581.7714843750 0.3447993994 - -0.7289915681 17579.9589843750 0.3437251747 - -0.7298822403 17581.4492187500 0.3426492810 - -0.7307717204 17583.1132812500 0.3415751159 - -0.7316598892 17581.5996093750 0.3404762745 - -0.7325468659 17581.1875000000 0.3393998146 - -0.7334325910 17581.0136718750 0.3383187056 - -0.7343170643 17581.6367187500 0.3372406363 - -0.7352003455 17581.2363281250 0.3361657262 - -0.7360823154 17582.0078125000 0.3350730836 - -0.7369630933 17582.5253906250 0.3339944184 - -0.7378425598 17581.2460937500 0.3329151869 - -0.7387208343 17580.1992187500 0.3318389654 - -0.7395977974 17580.8437500000 0.3307629526 - -0.7404735684 17582.1953125000 0.3296708763 - -0.7413480282 17581.8828125000 0.3285918534 - -0.7422212362 17581.8750000000 0.3275164366 - -0.7430931926 17581.6875000000 0.3264435232 - -0.7439639568 17582.4414062500 0.3253481090 - -0.7448333502 17582.2480468750 0.3242727816 - -0.7457015514 17581.9687500000 0.3231971860 - -0.7465685010 17583.6347656250 0.3221233487 - -0.7474341393 17581.5683593750 0.3210479021 - -0.7482985258 17581.4746093750 0.3199552596 - -0.7491616607 17581.1972656250 0.3188829422 - -0.7500234842 17581.2070312500 0.3178044856 - -0.7508840561 17583.0976562500 0.3167282939 - -0.7517433763 17580.9667968750 0.3156540990 - -0.7526013851 17581.3808593750 0.3145604134 - -0.7534581423 17581.7304687500 0.3134880066 - -0.7543136477 17580.0976562500 0.3124167919 - -0.7551678419 17580.7324218750 0.3113389909 - -0.7560207248 17582.6953125000 0.3102680445 - -0.7568723559 17581.0605468750 0.3091756105 - -0.7577227354 17580.9785156250 0.3081023693 - -0.7585718036 17581.4160156250 0.3070261776 - -0.7594195604 17583.0585937500 0.3059544861 - -0.7602660656 17581.1640625000 0.3048624694 - -0.7611112595 17582.9062500000 0.3037882149 - -0.7619552016 17580.8300781250 0.3027124405 - -0.7627977729 17582.9199218750 0.3016327620 - -0.7636391521 17582.7500000000 0.3005594909 - -0.7644791603 17582.9531250000 0.2994680703 - -0.7653179169 17580.8945312500 0.2983948588 - -0.7661553621 17581.3867187500 0.2973180413 - -0.7669914961 17581.9492187500 0.2962452173 - -0.7678263187 17582.9570312500 0.2951511145 - -0.7686598897 17581.7949218750 0.2940808535 - -0.7694920897 17582.4902343750 0.2930027544 - -0.7703230381 17583.3300781250 0.2919305563 - -0.7711526752 17581.2324218750 0.2908394933 - -0.7719810009 17582.3359375000 0.2897643149 - -0.7728079557 17580.0019531250 0.2886873186 - -0.7736336589 17580.9648437500 0.2876109183 - -0.7744580507 17582.6015625000 0.2865203917 - -0.7752811313 17582.4804687500 0.2854443192 - -0.7761029005 17581.9707031250 0.2843638957 - -0.7769233584 17582.2929687500 0.2832905352 - -0.7777424455 17581.4980468750 0.2822099924 - -0.7785602808 17581.9375000000 0.2811186314 - -0.7793767452 17582.3730468750 0.2800419927 - -0.7801919580 17582.6152343750 0.2789639533 - -0.7810057998 17581.2148437500 0.2778854072 - -0.7818182707 17581.7558593750 0.2767945528 - -0.7826294899 17581.3496093750 0.2757119536 - -0.7834393382 17582.6308593750 0.2746252716 - -0.7842478752 17582.6328125000 0.2735458612 - -0.7850551009 17583.4492187500 0.2724517882 - -0.7858609557 17582.5722656250 0.2713759243 - -0.7866655588 17580.9550781250 0.2702945173 - -0.7874687314 17581.6679687500 0.2692078054 - -0.7882705927 17582.8515625000 0.2681133151 - -0.7890711427 17581.4160156250 0.2670330703 - -0.7898703814 17581.3847656250 0.2659399509 - -0.7906682491 17581.6406250000 0.2648550570 - -0.7914647460 17582.1503906250 0.2637614608 - -0.7922599316 17579.9257812500 0.2626720667 - -0.7930537462 17582.1816406250 0.2615863085 - -0.7938462496 17582.9062500000 0.2605010271 - -0.7946374416 17581.5468750000 0.2594024539 - -0.7954272032 17583.3496093750 0.2583053708 - -0.7962156534 17582.6074218750 0.2572178841 - -0.7970027924 17582.3828125000 0.2561246455 - -0.7977885008 17580.6933593750 0.2550253272 - -0.7985728979 17582.2851562500 0.2539313734 - -0.7993559837 17581.6816406250 0.2528406084 - -0.8001376390 17582.1464843750 0.2517415583 - -0.8009179831 17583.0292968750 0.2506298125 - -0.8016969562 17582.2285156250 0.2495363802 - -0.8024745584 17581.9316406250 0.2484404743 - -0.8032508492 17581.2187500000 0.2473402768 - -0.8040257096 17581.2929687500 0.2462304533 - -0.8047992587 17582.4550781250 0.2451263517 - -0.8055714369 17583.6191406250 0.2440237701 - -0.8063422441 17581.3398437500 0.2429211289 - -0.8071116209 17583.2656250000 0.2417999506 - -0.8078796864 17581.4960937500 0.2406964302 - -0.8086463809 17582.2265625000 0.2395842671 - -0.8094117045 17581.9550781250 0.2384762019 - -0.8101756573 17581.3554687500 0.2373573035 - -0.8109382391 17581.0722656250 0.2362442315 - -0.8116994500 17580.7246093750 0.2351318002 - -0.8124592900 17583.1523437500 0.2340014279 - -0.8132177591 17582.1523437500 0.2328821123 - -0.8139747977 17582.5761718750 0.2317640930 - -0.8147305250 17581.9921875000 0.2306450605 - -0.8154848218 17581.2421875000 0.2295115292 - -0.8162377477 17583.1835937500 0.2283876687 - -0.8169893026 17582.9257812500 0.2272602618 - -0.8177394271 17581.6523437500 0.2261327952 - -0.8184881806 17581.4179687500 0.2249918729 - -0.8192355633 17584.1582031250 0.2238595635 - -0.8199815750 17581.7089843750 0.2227227986 - -0.8207261562 17582.6367187500 0.2215776145 - -0.8214693666 17581.9492187500 0.2204407901 - -0.8222112060 17582.7421875000 0.2192956507 - -0.8229516149 17582.0878906250 0.2181532234 - -0.8236906528 17581.8242187500 0.2169977725 - -0.8244283199 17582.6914062500 0.2158506364 - -0.8251645565 17583.2109375000 0.2146975100 - -0.8258993626 17582.2578125000 0.2135340869 - -0.8266327977 17582.7226562500 0.2123804539 - -0.8273648620 17583.2324218750 0.2112212926 - -0.8280954957 17581.0058593750 0.2100594342 - -0.8288246989 17582.5546875000 0.2088821828 - -0.8295525312 17582.9082031250 0.2077199072 - -0.8302789330 17580.9707031250 0.2065480053 - -0.8310039639 17582.6347656250 0.2053654492 - -0.8317275643 17582.2578125000 0.2041907161 - -0.8324497342 17581.0664062500 0.2030105293 - -0.8331705332 17582.4121093750 0.2018267661 - -0.8338899016 17581.5429687500 0.2006347030 - -0.8346078396 17583.5664062500 0.1994421333 - -0.8353244066 17581.4667968750 0.1982486397 - -0.8360395432 17583.1250000000 0.1970439404 - -0.8367531896 17581.7167968750 0.1958476305 - -0.8374655247 17583.2265625000 0.1946439147 - -0.8381763697 17580.7714843750 0.1934338659 - -0.8388858438 17582.9609375000 0.1922167987 - -0.8395938277 17581.3496093750 0.1910032630 - -0.8403004408 17582.0175781250 0.1897829920 - -0.8410056233 17583.4296875000 0.1885550469 - -0.8417093754 17581.9121093750 0.1873265505 - -0.8424116969 17582.8203125000 0.1860941350 - -0.8431125879 17582.4941406250 0.1848545969 - -0.8438120484 17582.5371093750 0.1836144775 - -0.8445100784 17582.4902343750 0.1823695153 - -0.8452066779 17582.9414062500 0.1811199635 - -0.8459018469 17583.0390625000 0.1798617691 - -0.8465955853 17582.5019531250 0.1786041409 - -0.8472878933 17581.2226562500 0.1773426682 - -0.8479787111 17583.6621093750 0.1760690659 - -0.8486681581 17583.8398437500 0.1747959107 - -0.8493561149 17583.6679687500 0.1735197008 - -0.8500427008 17583.5781250000 0.1722329557 - -0.8507277966 17583.3417968750 0.1709446907 - -0.8514114618 17582.4433593750 0.1696534604 - -0.8520936966 17582.7402343750 0.1683560014 - -0.8527744412 17582.7187500000 0.1670469791 - -0.8534537554 17583.6855468750 0.1657391787 - -0.8541316390 17583.2070312500 0.1644247323 - -0.8548080921 17582.9082031250 0.1631015539 - -0.8554830551 17583.0566406250 0.1617766321 - -0.8561565876 17583.2167968750 0.1604444981 - -0.8568286896 17582.0429687500 0.1591051221 - -0.8574993014 17583.2753906250 0.1577624083 - -0.8581684828 17582.2695312500 0.1564110219 - -0.8588362336 17582.1757812500 0.1550542414 - -0.8595024943 17583.6835937500 0.1536951810 - -0.8601672649 17581.5761718750 0.1523249894 - -0.8608306646 17583.8691406250 0.1509501636 - -0.8614925146 17582.1621093750 0.1495705247 - -0.8621529341 17583.7792968750 0.1481852382 - -0.8628119230 17582.9570312500 0.1467860341 - -0.8634694219 17581.5664062500 0.1453874260 - -0.8641254902 17582.4980468750 0.1439839602 - -0.8647800684 17583.3046875000 0.1425671726 - -0.8654331565 17583.8984375000 0.1411483139 - -0.8660848141 17583.3066406250 0.1397216916 - -0.8667349815 17583.7656250000 0.1382825226 - -0.8673836589 17583.8496093750 0.1368400007 - -0.8680309057 17583.0527343750 0.1353923827 - -0.8686766624 17581.9316406250 0.1339404583 - -0.8693209291 17583.3437500000 0.1324746013 - -0.8699637651 17582.6699218750 0.1310056150 - -0.8706051111 17581.3183593750 0.1295286715 - -0.8712449670 17582.6933593750 0.1280464083 - -0.8718833327 17583.6796875000 0.1265523732 - -0.8725202680 17583.5781250000 0.1250546724 - -0.8731557131 17581.5253906250 0.1235455498 - -0.8737896681 17584.1152343750 0.1220322549 - -0.8744221330 17582.6445312500 0.1205055416 - -0.8750531077 17581.7675781250 0.1189846024 - -0.8756825924 17584.1953125000 0.1174415126 - -0.8763105869 17582.3085937500 0.1158910543 - -0.8769371510 17583.5839843750 0.1143481284 - -0.8775621653 17582.6855468750 0.1127807125 - -0.8781857491 17582.2265625000 0.1112148464 - -0.8788078427 17581.5371093750 0.1096415818 - -0.8794283867 17582.6269531250 0.1080510765 - -0.8800475001 17582.8183593750 0.1064577326 - -0.8806650639 17583.1484375000 0.1048547849 - -0.8812811971 17583.6855468750 0.1032510921 - -0.8818957806 17583.1855468750 0.1016359776 - -0.8825088739 17582.6328125000 0.1000128388 - -0.8831205368 17583.5781250000 0.0983851999 - -0.8837306499 17582.5273437500 0.0967430770 - -0.8843392730 17582.3808593750 0.0950995237 - -0.8849463463 17583.6152343750 0.0934409872 - -0.8855519891 17582.3183593750 0.0917744190 - -0.8861560822 17582.7070312500 0.0901126266 - -0.8867587447 17582.9824218750 0.0884295702 - -0.8873598576 17585.1523437500 0.0867373124 - -0.8879594207 17583.6542968750 0.0850420445 - -0.8885575533 17584.2324218750 0.0833410546 - -0.8891541362 17582.9492187500 0.0816255957 - -0.8897492290 17583.2832031250 0.0799160153 - -0.8903428316 17582.9902343750 0.0781881511 - -0.8909348845 17584.6328125000 0.0764638260 - -0.8915254474 17584.1503906250 0.0747227147 - -0.8921145201 17585.5488281250 0.0729754120 - -0.8927020431 17584.1855468750 0.0712164789 - -0.8932880759 17582.1542968750 0.0694502220 - -0.8938725591 17583.6269531250 0.0676823109 - -0.8944555521 17583.5351562500 0.0659111366 - -0.8950370550 17585.0273437500 0.0641262457 - -0.8956170082 17583.8632812500 0.0623468235 - -0.8961954713 17581.9355468750 0.0605497286 - -0.8967723846 17583.2968750000 0.0587419569 - -0.8973477483 17582.3046875000 0.0569359139 - -0.8979216218 17582.9511718750 0.0551243089 - -0.8984940052 17582.6152343750 0.0532999747 - -0.8990648389 17585.2421875000 0.0514696836 - -0.8996341228 17582.9335937500 0.0496338643 - -0.9002019167 17583.1386718750 0.0477941111 - -0.9007682204 17583.2363281250 0.0459412932 - -0.9013329148 17584.4003906250 0.0441067554 - -0.9018961191 17584.0449218750 0.0422408804 - -0.9024577737 17584.1972656250 0.0403843820 - -0.9030179381 17582.0976562500 0.0385135636 - -0.9035765529 17583.7207031250 0.0366394743 - -0.9041336179 17583.7343750000 0.0347592160 - -0.9046891928 17583.9746093750 0.0328710079 - -0.9052432179 17584.7441406250 0.0309909396 - -0.9057956934 17585.0898437500 0.0290985331 - -0.9063466191 17584.1738281250 0.0272183679 - -0.9068960547 17584.0644531250 0.0253185444 - -0.9074438810 17582.6132812500 0.0234027617 - -0.9079902172 17583.7441406250 0.0215086043 - -0.9085350037 17584.2558593750 0.0195975490 - -0.9090783000 17582.5722656250 0.0177029669 - -0.9096199870 17583.4824218750 0.0157577507 - -0.9101601243 17583.8105468750 0.0138517879 - -0.9106987715 17583.7734375000 0.0119341873 - -0.9112358689 17582.6093750000 0.0100166574 - -0.9117714167 17584.6074218750 0.0080904849 - -0.9123054147 17582.9960937500 0.0061578713 - -0.9128378034 17584.5273437500 0.0042410493 - -0.9133687019 17583.1464843750 0.0022985600 - -0.9138980508 17583.8808593750 0.0003637783 - -0.9144258499 17583.8671875000 -0.0015638657 - -0.9149520993 17583.6679687500 -0.0034831874 - -0.9154767990 17583.6660156250 -0.0054195859 - -0.9159999490 17582.5761718750 -0.0073610544 - -0.9165215492 17584.4843750000 -0.0092870593 - -0.9170415998 17584.5937500000 -0.0112284869 - -0.9175600410 17584.1171875000 -0.0131647103 - -0.9180769920 17584.0156250000 -0.0150839984 - -0.9185923934 17583.7519531250 -0.0170115419 - -0.9191061854 17584.7734375000 -0.0189461559 - -0.9196184278 17583.5039062500 -0.0208883248 - -0.9201291203 17584.2031250000 -0.0228047669 - -0.9206382632 17583.3945312500 -0.0247371569 - -0.9211458564 17585.3808593750 -0.0266630314 - -0.9216518402 17583.7988281250 -0.0285800621 - -0.9221562743 17583.9765625000 -0.0304972678 - -0.9226591587 17583.8906250000 -0.0324027091 - -0.9231604934 17584.3496093750 -0.0343475826 - -0.9236602783 17584.5781250000 -0.0362416059 - -0.9241584539 17582.7714843750 -0.0381520092 - -0.9246550798 17585.0351562500 -0.0400456376 - -0.9251501560 17584.3632812500 -0.0419606157 - -0.9256436229 17583.1308593750 -0.0438599735 - -0.9261355400 17584.6054687500 -0.0457392782 - -0.9266259074 17582.9472656250 -0.0476309471 - -0.9271146655 17583.6328125000 -0.0495101698 - -0.9276018739 17584.6738281250 -0.0513973534 - -0.9280875325 17584.9335937500 -0.0532767549 - -0.9285715818 17585.2656250000 -0.0551500097 - -0.9290540814 17584.8769531250 -0.0570198931 - -0.9295349717 17582.7832031250 -0.0588753149 - -0.9300143123 17582.8886718750 -0.0607402995 - -0.9304920435 17584.4687500000 -0.0625734329 - -0.9309682250 17584.3222656250 -0.0644255057 - -0.9314428568 17584.6250000000 -0.0662639216 - -0.9319158792 17583.0429687500 -0.0680986494 - -0.9323872924 17582.8769531250 -0.0699275881 - -0.9328571558 17584.3066406250 -0.0717506334 - -0.9333254695 17584.1992187500 -0.0735607892 - -0.9337921143 17584.9882812500 -0.0753655806 - -0.9342572689 17584.4453125000 -0.0771718770 - -0.9347208142 17584.2011718750 -0.0789675564 - -0.9351827502 17583.3808593750 -0.0807456970 - -0.9356430769 17583.9062500000 -0.0825288743 - -0.9361018538 17582.6250000000 -0.0842986330 - -0.9365590811 17584.1367187500 -0.0860650092 - -0.9370146394 17583.9042968750 -0.0878295451 - -0.9374686480 17583.3828125000 -0.0895868242 - -0.9379211068 17584.2285156250 -0.0913325697 - -0.9383718967 17582.8300781250 -0.0930719227 - -0.9388211370 17584.2832031250 -0.0947945267 - -0.9392688274 17584.8671875000 -0.0965205133 - -0.9397148490 17583.3125000000 -0.0982281417 - -0.9401593208 17583.0234375000 -0.0999418497 - -0.9406021833 17583.8046875000 -0.1016410142 - -0.9410434365 17583.1386718750 -0.1033342481 - -0.9414831400 17585.4960937500 -0.1050244570 - -0.9419212341 17585.2187500000 -0.1067054123 - -0.9423577189 17585.6660156250 -0.1083652675 - -0.9427925944 17584.5937500000 -0.1100297868 - -0.9432258606 17584.1406250000 -0.1116861179 - -0.9436575770 17584.2402343750 -0.1133273542 - -0.9440876842 17584.5273437500 -0.1149673909 - -0.9445161819 17584.1796875000 -0.1165927500 - -0.9449430704 17583.8027343750 -0.1182136089 - -0.9453683496 17584.8261718750 -0.1198263392 - -0.9457920194 17583.0371093750 -0.1214277819 - -0.9462140799 17584.9785156250 -0.1230285093 - -0.9466345906 17585.2695312500 -0.1246193871 - -0.9470534325 17584.9453125000 -0.1262072623 - -0.9474707246 17585.1015625000 -0.1277779639 - -0.9478863478 17583.9453125000 -0.1293413788 - -0.9483004212 17583.5488281250 -0.1309062988 - -0.9487128258 17583.9003906250 -0.1324465573 - -0.9491236806 17583.2890625000 -0.1339945793 - -0.9495329261 17584.0312500000 -0.1355348229 - -0.9499405026 17584.7910156250 -0.1370531321 - -0.9503465295 17584.2851562500 -0.1385770440 - -0.9507509470 17584.9257812500 -0.1400876939 - -0.9511536956 17584.4667968750 -0.1415939778 - -0.9515548944 17584.4062500000 -0.1430887431 - -0.9519544244 17586.0800781250 -0.1445799619 - -0.9523524046 17585.3222656250 -0.1460591257 - -0.9527487159 17584.0195312500 -0.1475333273 - -0.9531434178 17583.5527343750 -0.1489994526 - -0.9535365105 17584.3203125000 -0.1504621059 - -0.9539279938 17583.6582031250 -0.1519110948 - -0.9543178678 17583.1894531250 -0.1533556432 - -0.9547061324 17582.3867187500 -0.1547950804 - -0.9550927281 17584.7578125000 -0.1562310159 - -0.9554777145 17583.0429687500 -0.1576545388 - -0.9558611512 17582.8476562500 -0.1590701938 - -0.9562429190 17585.2968750000 -0.1604837775 - -0.9566230178 17583.6699218750 -0.1618838459 - -0.9570015669 17583.9335937500 -0.1632790267 - -0.9573784471 17583.8007812500 -0.1646749973 - -0.9577537179 17584.3828125000 -0.1660568118 - -0.9581273794 17583.6035156250 -0.1674332917 - -0.9584994316 17583.8007812500 -0.1688045263 - -0.9588698149 17583.8867187500 -0.1701711565 - -0.9592385888 17583.6757812500 -0.1715267599 - -0.9596057534 17584.0449218750 -0.1728801429 - -0.9599713087 17584.9277343750 -0.1742278934 - -0.9603351951 17584.5214843750 -0.1755669564 - -0.9606974721 17583.4414062500 -0.1769027114 - -0.9610580802 17583.0683593750 -0.1782311946 - -0.9614170790 17583.0878906250 -0.1795524359 - -0.9617744684 17585.1250000000 -0.1808720082 - -0.9621302485 17585.1132812500 -0.1821824610 - -0.9624843597 17584.6894531250 -0.1834864914 - -0.9628368616 17586.2343750000 -0.1847918183 - -0.9631876945 17585.3281250000 -0.1860852391 - -0.9635369182 17584.4238281250 -0.1873727143 - -0.9638845325 17584.9824218750 -0.1886571050 - -0.9642304778 17584.7011718750 -0.1899398267 - -0.9645747542 17583.7031250000 -0.1912122071 - -0.9649174809 17583.8691406250 -0.1924813092 - -0.9652585387 17585.7968750000 -0.1937508583 - -0.9655979276 17584.6464843750 -0.1950080991 - -0.9659357071 17584.4882812500 -0.1962617636 - -0.9662718177 17584.5097656250 -0.1975158900 - -0.9666063190 17584.1757812500 -0.1987612545 - -0.9669392109 17585.0859375000 -0.2000019103 - -0.9672704339 17584.4492187500 -0.2012377679 - -0.9675999880 17584.0878906250 -0.2024730444 - -0.9679279327 17583.5195312500 -0.2037012577 - -0.9682542086 17585.0488281250 -0.2049253881 - -0.9685788751 17585.3203125000 -0.2061492205 - -0.9689019322 17585.7851562500 -0.2073649466 - -0.9692232609 17585.0800781250 -0.2085742354 - -0.9695430398 17584.4941406250 -0.2097865045 - -0.9698610902 17584.3300781250 -0.2109923661 - -0.9701775312 17585.2031250000 -0.2121916115 - -0.9704923630 17583.1093750000 -0.2133834362 - -0.9708054662 17585.5683593750 -0.2145832181 - -0.9711170197 17582.4531250000 -0.2157725394 - -0.9714268446 17585.5878906250 -0.2169606388 - -0.9717350602 17586.0507812500 -0.2181477398 - -0.9720416069 17585.0136718750 -0.2193268985 - -0.9723465443 17585.0351562500 -0.2205024660 - -0.9726498127 17584.2910156250 -0.2216724753 - -0.9729514122 17585.4414062500 -0.2228501737 - -0.9732514024 17584.4726562500 -0.2240174413 - -0.9735497236 17583.3398437500 -0.2251748443 - -0.9738463759 17586.0351562500 -0.2263472080 - -0.9741414189 17584.6191406250 -0.2275043428 - -0.9744347930 17584.9765625000 -0.2286587209 - -0.9747264981 17583.6250000000 -0.2298073173 - -0.9750165343 17585.3476562500 -0.2309659123 - -0.9753049612 17584.6953125000 -0.2321138978 - -0.9755917192 17584.5703125000 -0.2332563102 - -0.9758768082 17586.0800781250 -0.2344065905 - -0.9761602283 17584.7460937500 -0.2355439067 - -0.9764420390 17584.7109375000 -0.2366839051 - -0.9767221808 17583.3710937500 -0.2378158271 - -0.9770006537 17584.6855468750 -0.2389558405 - -0.9772774577 17585.5449218750 -0.2400875390 - -0.9775526524 17584.4824218750 -0.2412146628 - -0.9778261781 17586.6523437500 -0.2423503548 - -0.9780980349 17584.8046875000 -0.2434726357 - -0.9783682227 17585.1660156250 -0.2445949018 - -0.9786367416 17583.6718750000 -0.2457134426 - -0.9789035916 17584.0605468750 -0.2468415797 - -0.9791688323 17585.1718750000 -0.2479551882 - -0.9794324040 17584.0390625000 -0.2490678877 - -0.9796942472 17582.3925781250 -0.2501819730 - -0.9799544811 17585.6347656250 -0.2513068914 - -0.9802131057 17585.0156250000 -0.2524139583 - -0.9804700017 17584.8925781250 -0.2535214126 - -0.9807252288 17585.1679687500 -0.2546348572 - -0.9809788465 17585.1816406250 -0.2557373941 - -0.9812307358 17585.6406250000 -0.2568439841 - -0.9814810157 17585.2773437500 -0.2579417527 - -0.9817296267 17584.7871093750 -0.2590575814 - -0.9819765091 17584.1875000000 -0.2601546943 - -0.9822217822 17583.9042968750 -0.2612515688 - -0.9824653864 17585.7363281250 -0.2623498440 - -0.9827073216 17585.4062500000 -0.2634541392 - -0.9829475880 17585.2089843750 -0.2645487785 - -0.9831861854 17585.6992187500 -0.2656386495 - -0.9834231138 17584.1347656250 -0.2667263746 - -0.9836583734 17584.6992187500 -0.2678321898 - -0.9838920236 17584.5468750000 -0.2689255476 - -0.9841239452 17583.2480468750 -0.2700104117 - -0.9843541980 17585.0039062500 -0.2710984945 - -0.9845827818 17584.9687500000 -0.2721920609 - -0.9848096967 17585.6484375000 -0.2732792795 - -0.9850349426 17584.3769531250 -0.2743610442 - -0.9852585793 17584.4257812500 -0.2754520476 - -0.9854804873 17585.7617187500 -0.2765445113 - -0.9857007265 17584.3906250000 -0.2776239216 - -0.9859192967 17585.2890625000 -0.2787035704 - -0.9861361980 17584.1152343750 -0.2797870040 - -0.9863514304 17586.1054687500 -0.2808744609 - -0.9865649939 17585.4199218750 -0.2819531560 - -0.9867768288 17585.2246093750 -0.2830402553 - -0.9869870543 17584.8496093750 -0.2841143012 - -0.9871956110 17584.9824218750 -0.2852025628 - -0.9874024391 17585.7324218750 -0.2862831652 - -0.9876076579 17584.4570312500 -0.2873584628 - -0.9878111482 17583.9902343750 -0.2884278595 - -0.9880130291 17584.8945312500 -0.2895157039 - -0.9882131815 17584.4472656250 -0.2905887961 - -0.9884116650 17585.5000000000 -0.2916691601 - -0.9886084795 17584.0253906250 -0.2927454710 - -0.9888036251 17584.4296875000 -0.2938298285 - -0.9889971018 17585.2265625000 -0.2949020565 - -0.9891888499 17584.1757812500 -0.2959737182 - -0.9893789887 17585.6269531250 -0.2970438600 - -0.9895673990 17585.6191406250 -0.2981287539 - -0.9897541404 17584.8125000000 -0.2992027998 - -0.9899392128 17584.8593750000 -0.3002697229 - -0.9901226163 17585.6816406250 -0.3013434708 - -0.9903043509 17584.8847656250 -0.3024132252 - -0.9904844165 17585.7792968750 -0.3034971356 - -0.9906627536 17585.5761718750 -0.3045665920 - -0.9908394217 17584.6914062500 -0.3056373298 - -0.9910144210 17584.6914062500 -0.3067056239 - -0.9911877513 17585.1015625000 -0.3077901006 - -0.9913594127 17584.4375000000 -0.3088555634 - -0.9915293455 17585.4804687500 -0.3099268377 - -0.9916976094 17583.9199218750 -0.3109904826 - -0.9918642044 17585.2968750000 -0.3120778799 - -0.9920291305 17584.2089843750 -0.3131437302 - -0.9921923876 17585.2421875000 -0.3142137527 - -0.9923539162 17584.8085937500 -0.3152801991 - -0.9925137758 17585.3593750000 -0.3163647652 - -0.9926719666 17584.3105468750 -0.3174310625 - -0.9928284883 17585.2441406250 -0.3185039163 - -0.9929832816 17583.8925781250 -0.3195728064 - -0.9931364059 17584.6738281250 -0.3206401467 - -0.9932878613 17584.1464843750 -0.3217251301 - -0.9934376478 17584.5761718750 -0.3227899075 - -0.9935857058 17585.0312500000 -0.3238589466 - -0.9937321544 17584.1796875000 -0.3249251842 - -0.9938768744 17584.9570312500 -0.3260104954 - -0.9940198660 17583.3574218750 -0.3270744383 - -0.9941612482 17586.1425781250 -0.3281450570 - -0.9943009019 17584.7148437500 -0.3292091489 - -0.9944388270 17583.5292968750 -0.3302744627 - -0.9945751429 17585.5683593750 -0.3313608468 - -0.9947097301 17583.3281250000 -0.3324278593 - -0.9948426485 17584.2246093750 -0.3334970176 - -0.9949738979 17586.3339843750 -0.3345681429 - -0.9951034188 17583.8125000000 -0.3356332779 - -0.9952312708 17586.2871093750 -0.3367184401 - -0.9953574538 17584.4667968750 -0.3377866745 - -0.9954819083 17584.6171875000 -0.3388531804 - -0.9956046939 17585.4492187500 -0.3399215341 - -0.9957258105 17584.5429687500 -0.3409893215 - -0.9958451986 17585.2734375000 -0.3420772254 - -0.9959629774 17584.8417968750 -0.3431428671 - -0.9960789680 17583.6328125000 -0.3442107737 - -0.9961933494 17584.3007812500 -0.3452824056 - -0.9963060021 17586.0703125000 -0.3463669121 - -0.9964169860 17586.4082031250 -0.3474352956 - -0.9965262413 17584.9824218750 -0.3485040963 - -0.9966338277 17584.1542968750 -0.3495757282 - -0.9967397451 17582.8828125000 -0.3506469727 - -0.9968439341 17586.0312500000 -0.3517318666 - -0.9969464540 17585.1015625000 -0.3527990878 - -0.9970473051 17585.1738281250 -0.3538694978 - -0.9971464276 17585.5058593750 -0.3549429774 - -0.9972438812 17585.0644531250 -0.3560119569 - -0.9973396659 17584.6250000000 -0.3571031094 - -0.9974337220 17584.4375000000 -0.3581694663 - -0.9975261092 17584.3242187500 -0.3592376113 - -0.9976167679 17583.2636718750 -0.3603040576 - -0.9977058172 17584.2207031250 -0.3613763452 - -0.9977930784 17584.4960937500 -0.3624691367 - -0.9978787303 17584.3789062500 -0.3635374010 - -0.9979626536 17584.3886718750 -0.3646072745 - -0.9980448484 17584.5195312500 -0.3656787872 - -0.9981253743 17583.2402343750 -0.3667516112 - -0.9982042313 17583.4921875000 -0.3678272069 - -0.9982813597 17585.8281250000 -0.3689156473 - -0.9983568192 17584.3750000000 -0.3699871004 - -0.9984306097 17585.4550781250 -0.3710639775 - -0.9985026717 17583.7968750000 -0.3721303642 - -0.9985730648 17584.1738281250 -0.3732012212 - -0.9986417294 17583.6230468750 -0.3742958903 - -0.9987087250 17582.9804687500 -0.3753664196 - -0.9987740517 17584.1914062500 -0.3764441013 - -0.9988376498 17583.2910156250 -0.3775041997 - -0.9988995790 17584.3183593750 -0.3785856068 - -0.9989597797 17585.3105468750 -0.3796806037 - -0.9990183115 17584.3984375000 -0.3807512224 - -0.9990751743 17583.6562500000 -0.3818247616 - -0.9991303086 17584.5605468750 -0.3829002380 - -0.9991837740 17583.9472656250 -0.3839727044 - -0.9992355108 17585.4277343750 -0.3850673139 - -0.9992855787 17584.7148437500 -0.3861428499 - -0.9993339181 17585.2929687500 -0.3872197568 - -0.9993805885 17585.6269531250 -0.3882856071 - -0.9994255900 17583.0058593750 -0.3893588781 - -0.9994688630 17584.1093750000 -0.3904345930 - -0.9995104074 17584.2675781250 -0.3915289342 - -0.9995503426 17584.4804687500 -0.3926076293 - -0.9995884895 17583.3964843750 -0.3936803341 - -0.9996250272 17584.6113281250 -0.3947564363 - -0.9996598363 17582.9394531250 -0.3958324194 - -0.9996929169 17583.4550781250 -0.3969113231 - -0.9997243285 17585.7988281250 -0.3980011046 - -0.9997540712 17584.9550781250 -0.3990771174 - -0.9997820854 17585.0957031250 -0.4001530707 - -0.9998084307 17584.5546875000 -0.4012289941 - -0.9998331070 17583.9101562500 -0.4023063779 - -0.9998559952 17582.0078125000 -0.4033848345 - -0.9998772740 17584.3984375000 -0.4044783711 - -0.9998968244 17585.2871093750 -0.4055560529 - -0.9999147058 17583.1679687500 -0.4066308141 - -0.9999308586 17583.3183593750 -0.4077031910 - -0.9999452829 17583.7343750000 -0.4087854922 - -0.9999580979 17584.9414062500 -0.4098797739 - -0.9999691248 17584.5742187500 -0.4109607935 - -0.9999785423 17583.6250000000 -0.4120399654 - -0.9999862313 17584.4492187500 -0.4131102264 - -0.9999921918 17582.7871093750 -0.4141823947 - -0.9999964833 17584.6132812500 -0.4152598679 - -0.9999991059 17582.8691406250 -0.4163622260 - -1.0000000000 17583.3183593750 -0.4174425006 - -0.9999992251 17584.5976562500 -0.4185170829 - -0.9999967217 17584.4316406250 -0.4195937216 - -0.9999925494 17585.6308593750 -0.4206669331 - -0.9999866486 17582.7128906250 -0.4217447639 - -0.9999790788 17583.9121093750 -0.4228495359 - -0.9999698400 17583.5058593750 -0.4239243269 - -0.9999588728 17584.3593750000 -0.4250061214 - -0.9999461770 17585.3300781250 -0.4260738790 - -0.9999318123 17583.8476562500 -0.4271541238 - -0.9999157786 17584.8789062500 -0.4282288551 - -0.9998980165 17583.7031250000 -0.4293099046 - -0.9998785853 17583.5097656250 -0.4304125309 - -0.9998574853 17584.2539062500 -0.4314899743 - -0.9998346567 17583.7539062500 -0.4325630665 - -0.9998100996 17584.0917968750 -0.4336408377 - -0.9997838736 17581.5039062500 -0.4347168505 - -0.9997559786 17583.2597656250 -0.4357933998 - -0.9997263551 17583.4199218750 -0.4368746877 - -0.9996950626 17584.4628906250 -0.4379669130 - -0.9996620417 17584.4257812500 -0.4390482008 - -0.9996273518 17584.4628906250 -0.4401246607 - -0.9995909333 17583.8261718750 -0.4412049055 - -0.9995528460 17582.2500000000 -0.4422819018 - -0.9995130897 17583.1933593750 -0.4433540106 - -0.9994716048 17583.8867187500 -0.4444577694 - -0.9994284511 17585.3652343750 -0.4455353618 - -0.9993835688 17582.0898437500 -0.4466145039 - -0.9993370175 17583.2011718750 -0.4476836026 - -0.9992887378 17582.9003906250 -0.4487625360 - -0.9992387891 17582.3261718750 -0.4498399794 - -0.9991871715 17583.3496093750 -0.4509424269 - -0.9991338253 17584.7382812500 -0.4520179331 - -0.9990788102 17582.2382812500 -0.4530901313 - -0.9990220666 17582.7578125000 -0.4541662931 - -0.9989636540 17583.4375000000 -0.4552463293 - -0.9989035726 17582.7812500000 -0.4563225806 - -0.9988417625 17582.8164062500 -0.4573958814 - -0.9987782836 17583.4941406250 -0.4584928155 - -0.9987130761 17583.3300781250 -0.4595726132 - -0.9986461997 17583.7578125000 -0.4606473446 - -0.9985775948 17583.5214843750 -0.4617204964 - -0.9985073209 17583.2812500000 -0.4627951980 - -0.9984353781 17583.8847656250 -0.4638716280 - -0.9983617067 17582.5917968750 -0.4649482667 - -0.9982863665 17583.9355468750 -0.4660196602 - -0.9982092977 17584.8457031250 -0.4671211839 - -0.9981305599 17582.9140625000 -0.4681920409 - -0.9980501533 17581.9023437500 -0.4692721367 - -0.9979680181 17583.2929687500 -0.4703401327 - -0.9978842139 17582.8847656250 -0.4714196622 - -0.9977987409 17582.1933593750 -0.4724893272 - -0.9977115393 17582.1289062500 -0.4735667408 - -0.9976226687 17582.9394531250 -0.4746345282 - -0.9975320697 17584.0332031250 -0.4757364392 - -0.9974398017 17582.5214843750 -0.4768085480 - -0.9973458648 17584.0742187500 -0.4778838158 - -0.9972501993 17582.7246093750 -0.4789531827 - -0.9971528649 17583.9472656250 -0.4800280035 - -0.9970538020 17581.2226562500 -0.4810986221 - -0.9969531298 17582.1503906250 -0.4821736515 - -0.9968506694 17583.2675781250 -0.4832659066 - -0.9967465997 17584.0292968750 -0.4843408167 - -0.9966408014 17581.2539062500 -0.4854098558 - -0.9965333343 17581.6054687500 -0.4864792228 - -0.9964241385 17583.0703125000 -0.4875510931 - -0.9963132739 17581.5175781250 -0.4886228740 - -0.9962007403 17581.2363281250 -0.4896948338 - -0.9960864782 17584.1347656250 -0.4907862544 - -0.9959705472 17584.0878906250 -0.4918597043 - -0.9958529472 17584.0664062500 -0.4929282367 - -0.9957336783 17583.3906250000 -0.4939956963 - -0.9956126809 17582.7792968750 -0.4950646758 - -0.9954899549 17582.5351562500 -0.4961343110 - -0.9953656197 17581.7539062500 -0.4972029030 - -0.9952395558 17582.1894531250 -0.4982691407 - -0.9951118231 17581.1796875000 -0.4993377328 - -0.9949823618 17582.7128906250 -0.5004341602 - -0.9948512912 17584.0078125000 -0.5014972091 - -0.9947184920 17584.3710937500 -0.5025665760 - -0.9945839643 17581.1523437500 -0.5036308169 - -0.9944477677 17583.9765625000 -0.5046951771 - -0.9943099618 17582.1191406250 -0.5057641864 - -0.9941703677 17581.7285156250 -0.5068281889 - -0.9940291643 17581.6015625000 -0.5078932643 - -0.9938862324 17582.1425781250 -0.5089583993 - -0.9937416315 17582.1875000000 -0.5100228786 - -0.9935953617 17581.9667968750 -0.5111111403 - -0.9934473634 17583.0078125000 -0.5121774077 - -0.9932976961 17582.9335937500 -0.5132392645 - -0.9931463599 17580.4921875000 -0.5143057704 - -0.9929933548 17581.1621093750 -0.5153642297 - -0.9928386211 17580.7187500000 -0.5164294243 - -0.9926822186 17582.2929687500 -0.5174918175 - -0.9925241470 17582.6445312500 -0.5185790062 - -0.9923644066 17582.7050781250 -0.5196419358 - -0.9922029376 17582.5253906250 -0.5207034349 - -0.9920398593 17582.8925781250 -0.5217601061 - -0.9918750525 17582.5000000000 -0.5228241086 - -0.9917085767 17581.3828125000 -0.5238818526 - -0.9915403724 17583.0312500000 -0.5249398351 - -0.9913705587 17580.9492187500 -0.5259997845 - -0.9911990166 17582.3164062500 -0.5270866156 - -0.9910258055 17583.3964843750 -0.5281416178 - -0.9908509254 17582.9316406250 -0.5292020440 - -0.9906743169 17580.2558593750 -0.5302579403 - -0.9904960990 17582.8515625000 -0.5313139558 - -0.9903161526 17581.9472656250 -0.5323708653 - -0.9901345372 17582.0078125000 -0.5334234238 - -0.9899512529 17583.0000000000 -0.5344805121 - -0.9897662997 17582.2597656250 -0.5355375409 - -0.9895796180 17581.6777343750 -0.5365888476 - -0.9893913269 17582.1875000000 -0.5376427770 - -0.9892013073 17581.8007812500 -0.5386982560 - -0.9890096784 17581.5273437500 -0.5397487283 - -0.9888163209 17581.8203125000 -0.5408024192 - -0.9886212945 17580.1347656250 -0.5418820381 - -0.9884245396 17581.8652343750 -0.5429334641 - -0.9882261753 17580.9492187500 -0.5439847708 - -0.9880261421 17580.2382812500 -0.5450360775 - -0.9878243804 17580.5351562500 -0.5460852385 - -0.9876210093 17582.2128906250 -0.5471371412 - -0.9874159098 17581.3222656250 -0.5481821299 - -0.9872091413 17581.2480468750 -0.5492339730 - -0.9870007038 17581.0527343750 -0.5503100157 - -0.9867905974 17581.8222656250 -0.5513550043 - -0.9865788221 17581.3769531250 -0.5524036288 - -0.9863653779 17582.2050781250 -0.5534514189 - -0.9861502647 17580.6328125000 -0.5544951558 - -0.9859334826 17579.9179687500 -0.5555427074 - -0.9857150316 17581.5781250000 -0.5566138625 - -0.9854949117 17582.1308593750 -0.5576595664 - -0.9852730632 17580.4628906250 -0.5587033629 - -0.9850496054 17581.0761718750 -0.5597472191 - -0.9848244786 17581.8320312500 -0.5607891679 - -0.9845976233 17582.1855468750 -0.5618323088 - -0.9843691587 17580.8378906250 -0.5628740788 - -0.9841390252 17580.3105468750 -0.5639152527 - -0.9839071631 17580.6523437500 -0.5649541616 - -0.9836736917 17582.2109375000 -0.5659957528 - -0.9834385514 17581.1093750000 -0.5670349598 - -0.9832016826 17581.4550781250 -0.5680747032 - -0.9829632044 17580.4941406250 -0.5691117644 - -0.9827230573 17580.7539062500 -0.5701496005 - -0.9824812412 17579.7539062500 -0.5711863637 - -0.9822377563 17579.5156250000 -0.5722239017 - -0.9819926023 17579.6386718750 -0.5732585788 - -0.9817457795 17579.7539062500 -0.5742951035 - -0.9814972878 17579.8789062500 -0.5753281116 - -0.9812471271 17579.7500000000 -0.5763641596 - -0.9809952974 17579.5156250000 -0.5773981214 - -0.9807418585 17578.6406250000 -0.5784307122 - -0.9804866910 17579.6425781250 -0.5794910192 - -0.9802299142 17580.0605468750 -0.5805234313 - -0.9799714088 17579.6054687500 -0.5815546513 - -0.9797112942 17579.3984375000 -0.5825855732 - -0.9794495106 17581.7207031250 -0.5836445689 - -0.9791860580 17580.6250000000 -0.5846727490 - -0.9789209962 17581.8046875000 -0.5857026577 - -0.9786542058 17581.6152343750 -0.5867591500 - -0.9783858061 17581.0390625000 -0.5877857804 - -0.9781156778 17580.7714843750 -0.5888131261 - -0.9778439403 17580.4980468750 -0.5898680687 - -0.9775705338 17582.5761718750 -0.5908932686 - -0.9772955179 17583.5234375000 -0.5919197798 - -0.9770187736 17581.5078125000 -0.5929427147 - -0.9767404199 17581.1972656250 -0.5939667225 - -0.9764603972 17581.2792968750 -0.5949897170 - -0.9761787057 17581.7304687500 -0.5960119963 - -0.9758953452 17581.3691406250 -0.5970333815 - -0.9756103754 17580.6875000000 -0.5980256796 - -0.9753237367 17580.7832031250 -0.5990452170 - -0.9750354290 17579.4746093750 -0.6000356078 - -0.9747454524 17577.7734375000 -0.6010546088 - -0.9744538665 17577.4511718750 -0.6020443439 - -0.9741606116 17575.9453125000 -0.6030315757 - -0.9738656878 17576.0136718750 -0.6040202975 - -0.9735691547 17574.8339843750 -0.6049776673 - -0.9732708931 17572.6816406250 -0.6059647799 - -0.9729710817 17571.3027343750 -0.6069200039 - -0.9726695418 17569.7304687500 -0.6079047918 - -0.9723663926 17568.1484375000 -0.6088602543 - -0.9720615745 17566.6289062500 -0.6098427773 - -0.9717551470 17565.2187500000 -0.6107963324 - -0.9714469910 17562.0839843750 -0.6117481589 - -0.9711372852 17561.8144531250 -0.6127296090 - -0.9708258510 17560.2109375000 -0.6136802435 - -0.9705128074 17559.4609375000 -0.6146606207 - -0.9701981544 17555.1503906250 -0.6156097651 - -0.9698817730 17554.8164062500 -0.6165878177 - -0.9695638418 17554.5898437500 -0.6175649762 - -0.9692441821 17552.9179687500 -0.6185420752 - -0.9689229131 17550.9804687500 -0.6195166707 - -0.9686000347 17550.6132812500 -0.6205230951 - -0.9682754874 17552.2382812500 -0.6214976907 - -0.9679492712 17550.0625000000 -0.6225000024 diff --git a/RTCP/CNProc/test/filterTestResult.ps b/RTCP/CNProc/test/filterTestResult.ps deleted file mode 100644 index 74a592993a68165f592bb184142f7b2f95178931..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/filterTestResult.ps +++ /dev/null @@ -1,47873 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: gnuplot 4.2 patchlevel 6 -%%CreationDate: Wed Aug 25 16:41:46 2010 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -%%BeginProlog -/gnudict 256 dict def -gnudict begin -% -% The following 6 true/false flags may be edited by hand if required -% The unit line width may also be changed -% -/Color false def -/Blacktext false def -/Solid false def -/Dashlength 1 def -/Landscape true def -/Level1 false def -/Rounded false def -/TransparentPatterns false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -% -/vshift -46 def -/dl1 { - 10.0 Dashlength mul mul - Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if -} def -/dl2 { - 10.0 Dashlength mul mul - Rounded { currentlinewidth 0.75 mul add } if -} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -Level1 {} { -/SDict 10 dict def -systemdict /pdfmark known not { - userdict /pdfmark systemdict /cleartomark get put -} if -SDict begin [ - /Title () - /Subject (gnuplot plot) - /Creator (gnuplot 4.2 patchlevel 6 ) - /Author (Rob van Nieuwpoort,,,) -% /Producer (gnuplot) -% /Keywords () - /CreationDate (Wed Aug 25 16:41:46 2010) - /DOCINFO pdfmark -end -} ifelse -% -% Gnuplot Prolog Version 4.2 (August 2006) -% -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/N {newpath moveto} bind def -/Z {closepath} bind def -/C {setrgbcolor} bind def -/f {rlineto fill} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow {currentpoint stroke M 0 vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def -/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} - {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def -/BL {stroke userlinewidth 2 mul setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -/AL {stroke userlinewidth 2 div setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -/UL {dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def} def -/PL {stroke userlinewidth setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -% Default Line colors -/LCw {1 1 1} def -/LCb {0 0 0} def -/LCa {0 0 0} def -/LC0 {1 0 0} def -/LC1 {0 1 0} def -/LC2 {0 0 1} def -/LC3 {1 0 1} def -/LC4 {0 1 1} def -/LC5 {1 1 0} def -/LC6 {0 0 0} def -/LC7 {1 0.3 0} def -/LC8 {0.5 0.5 0.5} def -% Default Line Types -/LTw {PL [] 1 setgray} def -/LTb {BL [] LCb DL} def -/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def -/LT0 {PL [] LC0 DL} def -/LT1 {PL [4 dl1 2 dl2] LC1 DL} def -/LT2 {PL [2 dl1 3 dl2] LC2 DL} def -/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def -/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def -/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def -/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def -/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def -/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def -/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def -/Dia {stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt} def -/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt} def -/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke} def -/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt} def -/Star {2 copy Pls Crs} def -/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill} def -/TriUF {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill} def -/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt} def -/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill} def -/Pent {stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt} def -/PentF {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore} def -/Circle {stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt} def -/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def -/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def -/C1 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath} bind def -/C2 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C3 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C4 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C5 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc} bind def -/C6 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C7 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C8 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C9 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath} bind def -/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C11 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C12 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C13 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C14 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc} bind def -/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath} bind def -/Square {dup Rec} bind def -/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def -/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def -/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def -/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def -/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def -/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def -/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def -/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def -/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill Bsquare} bind def -/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def -/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def -/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare} bind def -/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare} bind def -/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def -/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare} bind def -/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def -/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def -/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def -/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def -/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def -/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def -/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def -/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def -/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def -/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def -/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def -/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def -/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def -/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def -/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def -/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def -/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def -/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def -/DiaE {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke} def -/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke} def -/TriUE {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke} def -/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke} def -/PentE {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore} def -/CircE {stroke [] 0 setdash - hpt 0 360 arc stroke} def -/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def -/DiaW {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke} def -/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke} def -/TriUW {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke} def -/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke} def -/PentW {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore} def -/CircW {stroke [] 0 setdash - hpt 0 360 arc Opaque stroke} def -/BoxFill {gsave Rec 1 setgray fill grestore} def -/Density { - /Fillden exch def - currentrgbcolor - /ColB exch def /ColG exch def /ColR exch def - /ColR ColR Fillden mul Fillden sub 1 add def - /ColG ColG Fillden mul Fillden sub 1 add def - /ColB ColB Fillden mul Fillden sub 1 add def - ColR ColG ColB setrgbcolor} def -/BoxColFill {gsave Rec PolyFill} def -/PolyFill {gsave Density fill grestore grestore} def -/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def -% -% PostScript Level 1 Pattern Fill routine for rectangles -% Usage: x y w h s a XX PatternFill -% x,y = lower left corner of box to be filled -% w,h = width and height of box -% a = angle in degrees between lines and x-axis -% XX = 0/1 for no/yes cross-hatch -% -/PatternFill {gsave /PFa [ 9 2 roll ] def - PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate - PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec - gsave 1 setgray fill grestore clip - currentlinewidth 0.5 mul setlinewidth - /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def - 0 0 M PFa 5 get rotate PFs -2 div dup translate - 0 1 PFs PFa 4 get div 1 add floor cvi - {PFa 4 get mul 0 M 0 PFs V} for - 0 PFa 6 get ne { - 0 1 PFs PFa 4 get div 1 add floor cvi - {PFa 4 get mul 0 2 1 roll M PFs 0 V} for - } if - stroke grestore} def -% -/languagelevel where - {pop languagelevel} {1} ifelse - 2 lt - {/InterpretLevel1 true def} - {/InterpretLevel1 Level1 def} - ifelse -% -% PostScript level 2 pattern fill definitions -% -/Level2PatternFill { -/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} - bind def -/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} ->> matrix makepattern -/Pat1 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke - 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} ->> matrix makepattern -/Pat2 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L - 8 8 L 8 0 L 0 0 L fill} ->> matrix makepattern -/Pat3 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L - 0 12 M 12 0 L stroke} ->> matrix makepattern -/Pat4 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L - 0 -4 M 12 8 L stroke} ->> matrix makepattern -/Pat5 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L - 0 12 M 8 -4 L 4 12 M 10 0 L stroke} ->> matrix makepattern -/Pat6 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L - 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} ->> matrix makepattern -/Pat7 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L - 12 0 M -4 8 L 12 4 M 0 10 L stroke} ->> matrix makepattern -/Pat8 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L - -4 0 M 12 8 L -4 4 M 8 10 L stroke} ->> matrix makepattern -/Pat9 exch def -/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def -/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def -/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def -/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def -/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def -/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def -/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def -} def -% -% -%End of PostScript Level 2 code -% -/PatternBgnd { - TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse -} def -% -% Substitute for Level 2 pattern fill codes with -% grayscale if Level 2 support is not selected. -% -/Level1PatternFill { -/Pattern1 {0.250 Density} bind def -/Pattern2 {0.500 Density} bind def -/Pattern3 {0.750 Density} bind def -/Pattern4 {0.125 Density} bind def -/Pattern5 {0.375 Density} bind def -/Pattern6 {0.625 Density} bind def -/Pattern7 {0.875 Density} bind def -} def -% -% Now test for support of Level 2 code -% -Level1 {Level1PatternFill} {Level2PatternFill} ifelse -% -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -/Helvetica findfont 140 scalefont setfont -/Helvetica findfont 140 scalefont setfont -1.000 UL -LTb -714 280 M -63 0 V -6143 0 R --63 0 V -630 280 M -(-1.5) Rshow -1.000 UL -LTb -714 1045 M -63 0 V -6143 0 R --63 0 V --6227 0 R -(-1) Rshow -1.000 UL -LTb -714 1811 M -63 0 V -6143 0 R --63 0 V --6227 0 R -(-0.5) Rshow -1.000 UL -LTb -714 2576 M -63 0 V -6143 0 R --63 0 V --6227 0 R -( 0) Rshow -1.000 UL -LTb -714 3341 M -63 0 V -6143 0 R --63 0 V --6227 0 R -( 0.5) Rshow -1.000 UL -LTb -714 4107 M -63 0 V -6143 0 R --63 0 V --6227 0 R -( 1) Rshow -1.000 UL -LTb -714 4872 M -63 0 V -6143 0 R --63 0 V --6227 0 R -( 1.5) Rshow -1.000 UL -LTb -714 280 M -0 63 V -0 4529 R -0 -63 V -714 140 M -( 0) Cshow -1.000 UL -LTb -1601 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 5000) Cshow -1.000 UL -LTb -2487 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 10000) Cshow -1.000 UL -LTb -3374 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 15000) Cshow -1.000 UL -LTb -4260 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 20000) Cshow -1.000 UL -LTb -5147 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 25000) Cshow -1.000 UL -LTb -6033 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 30000) Cshow -1.000 UL -LTb -6920 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 35000) Cshow -1.000 UL -LTb -1.000 UL -LTb -714 4872 N -714 280 L -6206 0 V -0 4592 V --6206 0 V -Z stroke -LCb setrgbcolor -280 2576 M -currentpoint gsave translate 90 rotate 0 0 M -() Cshow -grestore -LTb -LCb setrgbcolor -7059 2576 M -currentpoint gsave translate 90 rotate 0 0 M -() Cshow -grestore -LTb -LCb setrgbcolor -3817 -42 M -() Cshow -LTb -3817 4802 M -() Cshow -LCb setrgbcolor -3817 4801 M -() Cshow -LTb -210 70 M -() Lshow -1.000 UP -1.000 UL -LTb -1.000 UL -LT0 -/Helvetica findfont 140 scalefont setfont -LTb -6269 4739 M -("./filterTestOutput.dat" using 1) Rshow -LT0 -6353 4739 M -399 0 V -714 2576 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 732 2779 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 751 2982 M -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -stroke 769 3177 M -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -stroke 787 3362 M -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -stroke 806 3532 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -stroke 824 3685 M -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -stroke 843 3817 M -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 861 3927 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 883 4025 M -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -stroke 922 4105 M -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 969 4037 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 993 3937 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 1011 3829 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -stroke 1030 3699 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 1048 3549 M -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -stroke 1067 3380 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 1085 3197 M -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 1103 3002 M -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 1122 2800 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 1140 2593 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 1159 2387 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 1177 2183 M -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 1196 1987 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 1214 1802 M -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 1232 1631 M -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -stroke 1251 1477 M -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -stroke 1269 1343 M -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 1288 1231 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 1310 1130 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 1348 1048 M -1 -1 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 1395 1108 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 1419 1207 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 1438 1315 M -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -stroke 1456 1444 M -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -stroke 1475 1593 M -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -stroke 1493 1761 M -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -stroke 1512 1943 M -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 1530 2137 M -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 1548 2339 M -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 1567 2545 M -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 1585 2752 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 1604 2956 M -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -stroke 1622 3152 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -stroke 1641 3339 M -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -stroke 1659 3511 M -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -stroke 1678 3666 M -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -stroke 1696 3801 M -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 1714 3914 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 1736 4015 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -stroke 1771 4100 M -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 1821 4050 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 1845 3956 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 1864 3850 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -stroke 1882 3724 M -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 1900 3577 M -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -stroke 1919 3411 M -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 1937 3230 M -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -stroke 1956 3038 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 1974 2836 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 1993 2630 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 2011 2423 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 2029 2219 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 2048 2021 M -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 2066 1834 M -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -stroke 2085 1660 M -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 2103 1503 M -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -stroke 2122 1365 M -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2140 1250 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 2161 1148 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 2190 1063 M -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 2246 1096 M -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2270 1187 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 2290 1291 M -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -stroke 2308 1415 M -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -stroke 2326 1561 M -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -stroke 2345 1725 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 2363 1904 M -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 2382 2096 M -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 2400 2297 M -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 2419 2502 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 2437 2709 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 2456 2914 M -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 2474 3113 M -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 2492 3301 M -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -stroke 2511 3476 M -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -stroke 2529 3635 M -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -stroke 2548 3775 M -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2566 3892 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 2587 3995 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -stroke 2616 4085 M -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 2670 4069 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 2696 3977 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -stroke 2715 3874 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -stroke 2734 3753 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 2752 3610 M -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 2770 3448 M -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -stroke 2789 3271 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 2807 3080 M -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 2826 2880 M -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 2844 2675 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 2863 2468 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 2881 2263 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 2900 2063 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -stroke 2918 1873 M -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 2936 1696 M -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -stroke 2955 1535 M -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 2973 1393 M -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 2992 1273 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 3012 1169 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 3038 1079 M -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -stroke 3092 1070 M -0 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 3120 1159 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 3140 1258 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3158 1375 M -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -stroke 3177 1515 M -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -stroke 3195 1673 M -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -stroke 3213 1848 M -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 3232 2037 M -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 3250 2235 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 3269 2440 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 3287 2647 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 3306 2853 M -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -stroke 3324 3053 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -stroke 3343 3245 M -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -stroke 3361 3425 M -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -stroke 3379 3589 M -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -stroke 3398 3735 M -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3416 3859 M -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3435 3962 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 3460 4058 M -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 3514 4091 M -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 3546 4001 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3566 3901 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -stroke 3585 3785 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 3603 3647 M -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -stroke 3622 3490 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -stroke 3640 3315 M -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 3658 3128 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 3677 2930 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 3695 2726 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 3714 2519 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 3732 2313 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 3751 2111 M -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 3769 1919 M -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -stroke 3788 1738 M -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -stroke 3806 1573 M -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 3824 1426 M -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -stroke 3843 1300 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3862 1194 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 3887 1098 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -1 -1 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -stroke 3940 1058 M -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 3972 1145 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 3993 1243 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -stroke 4011 1357 M -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -stroke 4029 1493 M -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -stroke 4048 1648 M -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -stroke 4066 1821 M -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -stroke 4085 2008 M -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 4103 2205 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 4122 2409 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 4140 2616 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 4159 2822 M -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 4177 3024 M -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -stroke 4195 3217 M -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -stroke 4214 3399 M -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -stroke 4232 3566 M -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -stroke 4251 3714 M -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 4269 3842 M -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 4288 3949 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 4312 4046 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 4360 4103 M -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 4397 4019 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4418 3920 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -stroke 4437 3808 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 4455 3674 M -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -stroke 4474 3520 M -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 4492 3349 M -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -stroke 4511 3164 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 4529 2968 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 4548 2764 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 4566 2557 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 4584 2351 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 4603 2149 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -stroke 4621 1954 M -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -stroke 4640 1771 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 4658 1603 M -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -stroke 4677 1452 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -stroke 4695 1322 M -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 4714 1213 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4737 1115 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -stroke 4783 1046 M -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 4823 1127 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4845 1228 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 4864 1339 M -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -stroke 4882 1472 M -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -stroke 4901 1626 M -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -stroke 4919 1796 M -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -stroke 4938 1981 M -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -stroke 4956 2177 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 4975 2380 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 4993 2587 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 5012 2794 M -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -stroke 5030 2996 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -stroke 5048 3191 M -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -stroke 5067 3375 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5085 3544 M -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -stroke 5104 3695 M -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -stroke 5122 3826 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 5141 3935 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 5165 4036 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -stroke 5208 4106 M -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 5248 4034 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5271 3935 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -stroke 5290 3825 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -stroke 5308 3694 M -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -stroke 5327 3543 M -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 5345 3374 M -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 5364 3190 M -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 5382 2995 M -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 5401 2793 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 5419 2586 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -stroke 5437 2380 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 5456 2176 M -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -stroke 5474 1981 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -stroke 5493 1796 M -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 5511 1625 M -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -stroke 5530 1472 M -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -stroke 5548 1339 M -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5567 1228 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 5588 1131 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 5623 1051 M -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -stroke 5673 1107 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 5696 1203 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 5715 1310 M -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -stroke 5734 1438 M -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -stroke 5752 1586 M -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5770 1753 M -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -stroke 5789 1935 M -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5807 2128 M -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 5826 2330 M -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 5844 2536 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 5863 2743 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 5881 2947 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -stroke 5900 3144 M -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -stroke 5918 3331 M -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5936 3504 M -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -stroke 5955 3660 M -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -stroke 5973 3796 M -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 5992 3909 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 6013 4008 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -stroke 6047 4097 M -0 1 V -1 1 V -1 1 V -1 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -stroke 6099 4051 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 6123 3955 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 6142 3851 M -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -stroke 6160 3724 M -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 6178 3577 M -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 6197 3412 M -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -stroke 6215 3231 M -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 6234 3038 M -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 6252 2837 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 6271 2631 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 6289 2424 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 6308 2220 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 6326 2022 M -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -stroke 6344 1835 M -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -stroke 6363 1661 M -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 6381 1503 M -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -stroke 6400 1366 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 6418 1250 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 6439 1147 M -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -stroke 6472 1058 M -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke -LT1 -/Helvetica findfont 140 scalefont setfont -LTb -6269 4599 M -("./filterTestOutput.dat" using 3) Rshow -LT1 -6353 4599 M -399 0 V -714 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 816 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 920 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1023 2575 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1126 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1226 2577 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1329 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1428 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1532 2578 M -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1629 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -stroke 1726 2566 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1822 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1915 2594 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 2002 2575 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -stroke 2078 2542 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -stroke 2135 2565 M -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 -2 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -stroke 2226 2573 M -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -stroke 2278 2521 M -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 2337 2574 M -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -stroke 2431 2585 M -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -stroke 2513 2577 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 2 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -stroke 2603 2585 M -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -stroke 2649 2635 M -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -1 -1 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -stroke 2708 2576 M -0 -1 V -1 0 V -1 -1 V -1 0 V -0 2 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -stroke 2802 2585 M -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -stroke 2894 2576 M -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -stroke 2976 2550 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -stroke 3025 2546 M -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -1 1 V -1 1 V -1 1 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 -2 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 3104 2575 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -stroke 3174 2532 M -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -1 1 V -1 1 V -1 1 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -stroke 3241 2574 M -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -stroke 3334 2585 M -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 3388 2599 M -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -stroke 3444 2644 M -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 3462 2851 M -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -stroke 3480 3052 M -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -stroke 3499 3247 M -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -stroke 3517 3442 M -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -stroke 3536 3645 M -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3554 3786 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 3574 3889 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3596 3989 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -stroke 3627 4081 M -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -stroke 3681 4069 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 3708 3970 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3727 3865 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -stroke 3746 3747 M -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -stroke 3764 3609 M -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 3782 3450 M -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -stroke 3801 3274 M -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 3819 3083 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 3838 2883 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 3856 2679 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -stroke 3875 2464 M -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -stroke 3893 2214 M -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -stroke 3912 1998 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -stroke 3930 1838 M -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 3948 1684 M -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -stroke 3967 1535 M -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -3 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -stroke 3985 1396 M -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4004 1275 M -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 4023 1173 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 4049 1077 M -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -stroke 4096 1040 M -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4126 1132 M -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 4147 1230 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -stroke 4165 1342 M -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -stroke 4184 1476 M -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 4202 1631 M -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -stroke 4221 1804 M -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 4239 1999 M -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -stroke 4258 2229 M -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 4276 2441 M -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -stroke 4295 2623 M -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -stroke 4313 2810 M -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -stroke 4331 3002 M -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 5 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -stroke 4350 3195 M -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -stroke 4368 3379 M -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -stroke 4387 3547 M -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -stroke 4405 3696 M -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -stroke 4424 3837 M -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -stroke 4442 3980 M -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -stroke 4467 4077 M -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -stroke 4524 4094 M -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4557 4005 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4578 3903 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -stroke 4597 3786 M -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 4615 3626 M -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -stroke 4634 3452 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 4652 3292 M -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -stroke 4671 3118 M -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 4689 2929 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 4707 2729 M -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -5 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -stroke 4726 2519 M -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 4744 2312 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -stroke 4763 2109 M -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -stroke 4781 1911 M -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 4800 1696 M -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 4818 1511 M -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 4837 1389 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4855 1284 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 4876 1183 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 4902 1089 M -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -stroke 4955 1048 M -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 4985 1140 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 5004 1243 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5023 1355 M -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -stroke 5041 1489 M -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -stroke 5059 1642 M -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 6 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -stroke 5078 1815 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5096 1992 M -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -stroke 5115 2169 M -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -stroke 5133 2343 M -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 3 V -0 2 V -0 3 V -1 2 V -0 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 2 V -stroke 5152 2553 M -0 3 V -0 3 V -0 2 V -0 3 V -1 2 V -0 3 V -0 3 V -0 2 V -0 3 V -0 2 V -1 3 V -0 3 V -0 2 V -0 3 V -0 3 V -0 3 V -1 2 V -0 3 V -0 3 V -0 3 V -0 2 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 2 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 2 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 2 V -0 3 V -0 3 V -1 3 V -0 3 V -0 3 V -0 3 V -0 2 V -0 3 V -1 3 V -0 3 V -0 3 V -0 2 V -0 3 V -1 3 V -0 3 V -0 2 V -0 3 V -stroke 5170 2852 M -0 3 V -0 2 V -1 3 V -0 3 V -0 2 V -0 3 V -0 3 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 2 V -0 3 V -0 3 V -0 2 V -0 2 V -0 3 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -stroke 5189 3071 M -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -stroke 5207 3238 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -stroke 5225 3401 M -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -stroke 5244 3560 M -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 5 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -stroke 5262 3709 M -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 5281 3839 M -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 5299 3949 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 5321 4047 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -stroke 5357 4133 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 5399 4058 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5423 3957 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -3 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -stroke 5443 3850 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5461 3732 M -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -stroke 5479 3602 M -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -stroke 5498 3463 M -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -stroke 5516 3277 M -1 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -3 V -0 -2 V -0 -3 V -1 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -stroke 5535 3006 M -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 5553 2794 M -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -stroke 5572 2610 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -stroke 5590 2418 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -stroke 5609 2220 M -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -6 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 5627 2023 M -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 5645 1839 M -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -stroke 5664 1674 M -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -stroke 5682 1526 M -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -stroke 5701 1368 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 5719 1204 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -stroke 5744 1105 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -stroke 5798 1049 M -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -stroke 5840 1125 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5866 1221 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -stroke 5884 1359 M -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -stroke 5903 1556 M -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -stroke 5921 1717 M -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -stroke 5939 1883 M -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -stroke 5958 2065 M -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -stroke 5976 2261 M -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 7 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -stroke 5995 2466 M -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -stroke 6013 2664 M -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -stroke 6032 2852 M -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -stroke 6050 3036 M -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -1 2 V -0 2 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 2 V -0 3 V -0 2 V -0 2 V -0 2 V -1 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -0 2 V -1 3 V -0 2 V -0 2 V -0 3 V -0 2 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 2 V -0 3 V -0 3 V -0 2 V -0 3 V -0 2 V -1 3 V -0 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 3 V -stroke 6069 3273 M -0 2 V -0 3 V -0 3 V -0 2 V -0 3 V -1 2 V -0 3 V -0 3 V -0 2 V -0 3 V -0 3 V -1 2 V -0 3 V -0 2 V -0 3 V -0 3 V -1 2 V -0 3 V -0 2 V -0 3 V -0 3 V -0 2 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 3 V -0 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -1 2 V -0 3 V -0 2 V -0 3 V -0 2 V -0 2 V -1 3 V -0 2 V -0 2 V -0 3 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 3 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 2 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -stroke 6087 3508 M -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -stroke 6105 3651 M -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 6124 3769 M -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6142 3878 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 3 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 6163 3981 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 6189 4075 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -stroke 6237 4125 M -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 6263 4034 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 6284 3931 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -stroke 6303 3821 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -stroke 6321 3690 M -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -stroke 6340 3539 M -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -6 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -stroke 6358 3371 M -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -stroke 6377 3199 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -stroke 6395 3026 M -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -stroke 6413 2846 M -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -3 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -2 V -0 -3 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -stroke 6432 2588 M -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -3 V -1 -2 V -0 -3 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -3 V -0 -2 V -0 -3 V -0 -3 V -0 -2 V -1 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -0 -3 V -1 -2 V -0 -3 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -3 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -1 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -3 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -stroke 6450 2316 M -0 -3 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -stroke 6469 2130 M -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 6487 1959 M -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -stroke 6506 1787 M -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 6524 1623 M -stroke -LTb -714 4872 N -714 280 L -6206 0 V -0 4592 V --6206 0 V -Z stroke -1.000 UP -1.000 UL -LTb -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/RTCP/CNProc/test/inversePPFTestOutput.dat b/RTCP/CNProc/test/inversePPFTestOutput.dat deleted file mode 100644 index af0a0787b576f434c902732cb40ea584f71b4993..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/inversePPFTestOutput.dat +++ /dev/null @@ -1,65536 +0,0 @@ - -0.0001066805 - 0.0000212282 - 0.0000249795 - -0.0000285491 - -0.0000432116 - -0.0000188532 - -0.0000163225 - -0.0000461456 - -0.0000630335 - -0.0000528177 - -0.0000509830 - -0.0000743441 - -0.0000933491 - -0.0000902674 - -0.0000892636 - -0.0001094210 - -0.0001302808 - -0.0001324226 - -0.0001327879 - -0.0001506537 - -0.0001732087 - -0.0001792859 - -0.0001807003 - -0.0001968543 - -0.0002206113 - -0.0002304037 - -0.0002332160 - -0.0002479118 - -0.0002723553 - -0.0002854849 - -0.0002900236 - -0.0003033867 - -0.0003282586 - -0.0003443832 - -0.0003502554 - -0.0003631434 - -0.0003878745 - -0.0004066032 - -0.0004146710 - -0.0004265131 - -0.0004514817 - -0.0004736272 - -0.0004827749 - -0.0004954140 - -0.0005181776 - -0.0005421292 - -0.0005534088 - -0.0005660302 - -0.0005880449 - -0.0006132034 - -0.0006268468 - -0.0006393308 - -0.0006603774 - -0.0006872226 - -0.0007028193 - -0.0007157191 - -0.0007354100 - -0.0007630569 - -0.0007807715 - -0.0007937445 - -0.0008132272 - -0.0008415723 - -0.0008610045 - -0.0008744095 - -0.0008931133 - -0.0009215795 - -0.0009431879 - -0.0009577335 - -0.0009755164 - -0.0010038173 - -0.0010269118 - -0.0010425362 - -0.0010592769 - -0.0010872375 - -0.0011115088 - -0.0011294996 - -0.0011453808 - -0.0011727883 - -0.0011984925 - -0.0012191060 - -0.0012333841 - -0.0012599513 - -0.0012861129 - -0.0013083154 - -0.0013219988 - -0.0013476524 - -0.0013748117 - -0.0013986180 - -0.0014120124 - -0.0014315838 - -0.0014619600 - -0.0014845921 - -0.0015026199 - -0.0015222498 - -0.0015528891 - -0.0015765588 - -0.0015953208 - -0.0016138001 - -0.0016456780 - -0.0016692302 - -0.0016890782 - -0.0017061610 - -0.0017381829 - -0.0017628405 - -0.0017837660 - -0.0018000256 - -0.0018316723 - -0.0018566925 - -0.0018790133 - -0.0018964267 - -0.0019249434 - -0.0019504926 - -0.0019746108 - -0.0019918128 - -0.0020201125 - -0.0020447818 - -0.0020642460 - -0.0020841067 - -0.0021060049 - -0.0021382202 - -0.0021602707 - -0.0021806778 - -0.0022005688 - -0.0022351311 - -0.0022562472 - -0.0022784518 - -0.0022993109 - -0.0023314834 - -0.0023532845 - -0.0023756500 - -0.0023959137 - -0.0024271598 - -0.0024493961 - -0.0024644120 - -0.0024876331 - -0.0025120592 - -0.0025460313 - -0.0025616831 - -0.0025848583 - -0.0026106930 - -0.0026436350 - -0.0026597173 - -0.0026850479 - -0.0027067442 - -0.0027405180 - -0.0027574783 - -0.0027826279 - -0.0028039257 - -0.0028370430 - -0.0028563647 - -0.0028672989 - -0.0028944681 - -0.0029218879 - -0.0029519773 - -0.0029653891 - -0.0029944992 - -0.0030193212 - -0.0030525001 - -0.0030656981 - -0.0030911949 - -0.0031180084 - -0.0031498328 - -0.0031642786 - -0.0031918650 - -0.0032115944 - -0.0032312886 - -0.0032580630 - -0.0032727441 - -0.0033056173 - -0.0033304486 - -0.0033567885 - -0.0033731495 - -0.0034045826 - -0.0034275986 - -0.0034573413 - -0.0034700516 - -0.0035015091 - -0.0035274362 - -0.0035553023 - -0.0035638446 - -0.0035823022 - -0.0036158345 - -0.0036370228 - -0.0036619243 - -0.0036775230 - -0.0037163345 - -0.0037343302 - -0.0037618354 - -0.0037770267 - -0.0038112719 - -0.0038352655 - -0.0038595018 - -0.0038735298 - -0.0038898191 - -0.0039225365 - -0.0039393282 - -0.0039670854 - -0.0039883433 - -0.0040229950 - -0.0040359288 - -0.0040661227 - -0.0040831105 - -0.0041228510 - -0.0041366820 - -0.0041657547 - -0.0041786246 - -0.0041952003 - -0.0042269565 - -0.0042392192 - -0.0042741862 - -0.0042943531 - -0.0043276264 - -0.0043380018 - -0.0043730410 - -0.0043925135 - -0.0044237194 - -0.0044383099 - -0.0044682035 - -0.0044933087 - -0.0045241341 - -0.0045348485 - -0.0045441240 - -0.0045800610 - -0.0045989039 - -0.0046317652 - -0.0046423511 - -0.0046809926 - -0.0046993960 - -0.0047280784 - -0.0047436585 - -0.0047767176 - -0.0047990880 - -0.0048294733 - -0.0048446674 - -0.0048772637 - -0.0048958310 - -0.0049035260 - -0.0049336120 - -0.0049496298 - -0.0049928101 - -0.0050061606 - -0.0050369268 - -0.0050508953 - -0.0050929212 - -0.0051089227 - -0.0051400834 - -0.0051527452 - -0.0051955772 - -0.0052128835 - -0.0052440753 - -0.0052562724 - -0.0052694362 - -0.0053068097 - -0.0053193462 - -0.0053546038 - -0.0053742211 - -0.0054147975 - -0.0054263407 - -0.0054612458 - -0.0054786005 - -0.0055211913 - -0.0055376133 - -0.0055695409 - -0.0055910400 - -0.0056303996 - -0.0056477315 - -0.0056802626 - -0.0057025924 - -0.0057421410 - -0.0057555730 - -0.0057636308 - -0.0057981461 - -0.0058251009 - -0.0058647837 - -0.0058790846 - -0.0059187752 - -0.0059414515 - -0.0059852456 - -0.0059979139 - -0.0060387612 - -0.0060643391 - -0.0061072055 - -0.0061243223 - -0.0061618444 - -0.0061875209 - -0.0062362421 - -0.0062515386 - -0.0062930989 - -0.0063145668 - -0.0063664438 - -0.0063877683 - -0.0064258096 - -0.0064445692 - -0.0064662942 - -0.0065056132 - -0.0065273116 - -0.0065771374 - -0.0066068019 - -0.0066537159 - -0.0066723363 - -0.0067240489 - -0.0067573069 - -0.0068042208 - -0.0068272897 - -0.0068799146 - -0.0069108736 - -0.0069653708 - -0.0069894847 - -0.0070401579 - -0.0070765442 - -0.0071350518 - -0.0071595856 - -0.0072140340 - -0.0072515402 - -0.0073138727 - -0.0073392442 - -0.0073974808 - -0.0074377321 - -0.0075007654 - -0.0075336839 - -0.0075931954 - -0.0076314420 - -0.0077021252 - -0.0077404301 - -0.0078011723 - -0.0078434842 - -0.0079169655 - -0.0079593323 - -0.0080207223 - -0.0080679338 - -0.0081480667 - -0.0081940098 - -0.0082598282 - -0.0083104344 - -0.0083934749 - -0.0084434459 - -0.0085149137 - -0.0085705966 - -0.0086587826 - -0.0087143583 - -0.0087925047 - -0.0088485572 - -0.0089440998 - -0.0090054274 - -0.0090909190 - -0.0091482839 - -0.0092496024 - -0.0093193753 - -0.0094117746 - -0.0094760275 - -0.0095787011 - -0.0096571911 - -0.0097574089 - -0.0098291822 - -0.0099361353 - -0.0100247031 - -0.0101320297 - -0.0102099897 - -0.0103238951 - -0.0104204658 - -0.0105345491 - -0.0106191365 - -0.0107437130 - -0.0108480752 - -0.0109740393 - -0.0110660540 - -0.0111955600 - -0.0113107041 - -0.0114454245 - -0.0115503762 - -0.0116894506 - -0.0118121989 - -0.0119579686 - -0.0120715369 - -0.0122184483 - -0.0123510007 - -0.0125328647 - -0.0127046676 - -0.0128412368 - -0.0130098267 - -0.0131485490 - -0.0133160064 - -0.0134569183 - -0.0136459311 - -0.0138038108 - -0.0139812371 - -0.0141345384 - -0.0143349906 - -0.0145045826 - -0.0147008533 - -0.0148632638 - -0.0150733571 - -0.0152621353 - -0.0154704191 - -0.0156532768 - -0.0159038398 - -0.0161605068 - -0.0163628347 - -0.0165854692 - -0.0167891178 - -0.0170406252 - -0.0172675438 - -0.0175021701 - -0.0177204236 - -0.0179985818 - -0.0182309058 - -0.0184841286 - -0.0187250786 - -0.0190380421 - -0.0193616599 - -0.0196144544 - -0.0198897086 - -0.0201596618 - -0.0204785205 - -0.0207581464 - -0.0210469179 - -0.0213283524 - -0.0216827821 - -0.0219604392 - -0.0222715717 - -0.0225792713 - -0.0229836944 - -0.0233731810 - -0.0236821603 - -0.0240217187 - -0.0243648496 - -0.0247530024 - -0.0250800140 - -0.0254448615 - -0.0258227512 - -0.0262636114 - -0.0266953297 - -0.0270671640 - -0.0274749734 - -0.0278555043 - -0.0282787215 - -0.0286534633 - -0.0290790536 - -0.0295011569 - -0.0299971867 - -0.0304669775 - -0.0309147201 - -0.0313842036 - -0.0317789502 - -0.0322586447 - -0.0327029712 - -0.0331758335 - -0.0336410888 - -0.0341681018 - -0.0347382165 - -0.0352427326 - -0.0357219428 - -0.0361602120 - -0.0366753526 - -0.0372118875 - -0.0377819464 - -0.0383563936 - -0.0388993807 - -0.0394417085 - -0.0399286821 - -0.0404470079 - -0.0410049446 - -0.0416511185 - -0.0422845036 - -0.0428147018 - -0.0433834083 - -0.0439056158 - -0.0444738157 - -0.0450223908 - -0.0456925705 - -0.0463967137 - -0.0469750576 - -0.0475074686 - -0.0480636731 - -0.0487608239 - -0.0494858660 - -0.0500740260 - -0.0506287105 - -0.0511836633 - -0.0518148653 - -0.0524082147 - -0.0530827753 - -0.0538090542 - -0.0544657223 - -0.0550036840 - -0.0555449948 - -0.0562741272 - -0.0570842475 - -0.0576886348 - -0.0581857152 - -0.0587590300 - -0.0595575757 - -0.0603390858 - -0.0608561784 - -0.0613674633 - -0.0620141178 - -0.0627824664 - -0.0634964406 - -0.0640197247 - -0.0646152347 - -0.0652033165 - -0.0659075081 - -0.0666183680 - -0.0672154278 - -0.0677574798 - -0.0682516843 - -0.0689634904 - -0.0697454736 - -0.0703226402 - -0.0707312375 - -0.0712082088 - -0.0719802231 - -0.0727391019 - -0.0732117519 - -0.0735911354 - -0.0741169453 - -0.0748555958 - -0.0754767284 - -0.0759394616 - -0.0765298158 - -0.0772603974 - -0.0777604803 - -0.0780554786 - -0.0784354880 - -0.0791370347 - -0.0798489228 - -0.0801616311 - -0.0804354325 - -0.0808844417 - -0.0815314502 - -0.0820240378 - -0.0823631510 - -0.0828971118 - -0.0834852904 - -0.0838345438 - -0.0840341076 - -0.0843253881 - -0.0848697945 - -0.0853754431 - -0.0856886134 - -0.0860102102 - -0.0864664540 - -0.0868706852 - -0.0872182474 - -0.0875496343 - -0.0878448859 - -0.0880600587 - -0.0881481841 - -0.0884214789 - -0.0888769552 - -0.0892159715 - -0.0893801823 - -0.0895335004 - -0.0898540914 - -0.0902530700 - -0.0904370397 - -0.0904184282 - -0.0905092806 - -0.0906433761 - -0.0907951519 - -0.0909368545 - -0.0911293030 - -0.0913451612 - -0.0914295837 - -0.0914470032 - -0.0916223079 - -0.0918227807 - -0.0918423235 - -0.0918186530 - -0.0919239670 - -0.0920805559 - -0.0921081826 - -0.0920033231 - -0.0919972062 - -0.0921870396 - -0.0922350660 - -0.0919642299 - -0.0917162597 - -0.0916208401 - -0.0916442275 - -0.0915719345 - -0.0914350823 - -0.0914198309 - -0.0913818777 - -0.0911878049 - -0.0910457820 - -0.0910136700 - -0.0909117237 - -0.0907007828 - -0.0904946327 - -0.0904108062 - -0.0903345197 - -0.0900515765 - -0.0897217318 - -0.0897077397 - -0.0898372754 - -0.0897448659 - -0.0893736109 - -0.0890930220 - -0.0889698341 - -0.0887424350 - -0.0884086043 - -0.0881163031 - -0.0879136100 - -0.0876889601 - -0.0873187780 - -0.0869673938 - -0.0867653489 - -0.0865220428 - -0.0860920399 - -0.0857233629 - -0.0855046287 - -0.0852102712 - -0.0847812071 - -0.0843762755 - -0.0841027573 - -0.0838479996 - -0.0833712667 - -0.0828523785 - -0.0826620162 - -0.0826179758 - -0.0823638290 - -0.0818242133 - -0.0813523233 - -0.0810656697 - -0.0807108432 - -0.0802258253 - -0.0797357485 - -0.0793400034 - -0.0790702552 - -0.0788145289 - -0.0785198212 - -0.0781029835 - -0.0776017308 - -0.0770939514 - -0.0766818672 - -0.0763379410 - -0.0758304149 - -0.0752324462 - -0.0748896599 - -0.0747449696 - -0.0744664147 - -0.0738840327 - -0.0732939392 - -0.0728666484 - -0.0724674538 - -0.0720415339 - -0.0716613755 - -0.0713998824 - -0.0710228831 - -0.0704018399 - -0.0697372034 - -0.0693178847 - -0.0690870360 - -0.0687303469 - -0.0682488382 - -0.0677942038 - -0.0673649758 - -0.0667825267 - -0.0661597475 - -0.0658036470 - -0.0656246990 - -0.0652597249 - -0.0646319985 - -0.0640537068 - -0.0636130050 - -0.0631436408 - -0.0626660883 - -0.0623059720 - -0.0620214008 - -0.0615441874 - -0.0609376356 - -0.0605263077 - -0.0603589602 - -0.0599863492 - -0.0592409223 - -0.0585160367 - -0.0581732877 - -0.0579928458 - -0.0575460158 - -0.0569139011 - -0.0564975850 - -0.0562662631 - -0.0558583923 - -0.0552709624 - -0.0548139736 - -0.0545606129 - -0.0541778691 - -0.0536055416 - -0.0531340651 - -0.0528705455 - -0.0525175519 - -0.0519683361 - -0.0514579974 - -0.0511777513 - -0.0508517548 - -0.0503364727 - -0.0498080030 - -0.0495126583 - -0.0492147803 - -0.0487078540 - -0.0481546968 - -0.0478471667 - -0.0476024561 - -0.0471095145 - -0.0465419814 - -0.0462210141 - -0.0459878594 - -0.0455243886 - -0.0449363329 - -0.0445821136 - -0.0444004610 - -0.0439933017 - -0.0433700196 - -0.0429760478 - -0.0428295471 - -0.0424817614 - -0.0418141112 - -0.0413315594 - -0.0412752293 - -0.0412133262 - -0.0407241285 - -0.0400666855 - -0.0397536606 - -0.0396214873 - -0.0392250530 - -0.0386147238 - -0.0382447764 - -0.0380984619 - -0.0377566926 - -0.0371657200 - -0.0367523246 - -0.0366191454 - -0.0363471992 - -0.0357444137 - -0.0352438763 - -0.0351789854 - -0.0351691768 - -0.0347579382 - -0.0341082029 - -0.0337524936 - -0.0336792655 - -0.0334050022 - -0.0327930264 - -0.0323166363 - -0.0322558470 - -0.0322592556 - -0.0318750329 - -0.0312276259 - -0.0308376178 - -0.0308281295 - -0.0307867359 - -0.0303709153 - -0.0297679380 - -0.0294360220 - -0.0294090938 - -0.0293199066 - -0.0289115831 - -0.0283847116 - -0.0280965399 - -0.0279907268 - -0.0277233515 - -0.0271954704 - -0.0267903656 - -0.0267233383 - -0.0267218761 - -0.0263894852 - -0.0258143004 - -0.0254624393 - -0.0254542250 - -0.0254145227 - -0.0250438862 - -0.0245246310 - -0.0242330544 - -0.0241859369 - -0.0240856744 - -0.0237702876 - -0.0233250707 - -0.0229908805 - -0.0228630491 - -0.0228573922 - -0.0227634106 - -0.0224446189 - -0.0219775252 - -0.0216777809 - -0.0216309857 - -0.0215919111 - -0.0212907735 - -0.0208198354 - -0.0205216072 - -0.0204993747 - -0.0204442292 - -0.0201490354 - -0.0197004471 - -0.0194251947 - -0.0193863679 - -0.0193366278 - -0.0190702416 - -0.0186554547 - -0.0183614884 - -0.0182812382 - -0.0182790179 - -0.0181767177 - -0.0178888012 - -0.0175184067 - -0.0172641799 - -0.0171750877 - -0.0171611905 - -0.0170691162 - -0.0168212503 - -0.0164589211 - -0.0161828101 - -0.0160888471 - -0.0161070321 - -0.0160443131 - -0.0157712903 - -0.0153980739 - -0.0151685495 - -0.0151368733 - -0.0150942411 - -0.0148718283 - -0.0145178065 - -0.0142695755 - -0.0142121809 - -0.0142116090 - -0.0141277472 - -0.0138888657 - -0.0135808242 - -0.0133535322 - -0.0132792611 - -0.0132826772 - -0.0132114384 - -0.0129858451 - -0.0126877623 - -0.0124758156 - -0.0124025717 - -0.0123759191 - -0.0123444581 - -0.0122436844 - -0.0120565770 - -0.0118026696 - -0.0115808677 - -0.0114742983 - -0.0114809293 - -0.0114754895 - -0.0113693690 - -0.0111731524 - -0.0109212147 - -0.0107286302 - -0.0106384698 - -0.0106495507 - -0.0106309932 - -0.0104357246 - -0.0101400455 - -0.0099355038 - -0.0099208886 - -0.0099420883 - -0.0098622367 - -0.0096560074 - -0.0094389021 - -0.0092840064 - -0.0091851158 - -0.0091648120 - -0.0091802515 - -0.0091257719 - -0.0089290701 - -0.0086881928 - -0.0085430061 - -0.0085001504 - -0.0084641259 - -0.0084233675 - -0.0083981222 - -0.0083596343 - -0.0082061347 - -0.0079786805 - -0.0078070890 - -0.0077708783 - -0.0077675409 - -0.0077375816 - -0.0076850159 - -0.0076430901 - -0.0075283465 - -0.0073227729 - -0.0071298867 - -0.0070762560 - -0.0071171517 - -0.0071217278 - -0.0070213326 - -0.0068758144 - -0.0067219133 - -0.0065868683 - -0.0064901672 - -0.0064823972 - -0.0065299170 - -0.0064906529 - -0.0063152038 - -0.0061078607 - -0.0060123485 - -0.0059930566 - -0.0059587276 - -0.0059148055 - -0.0059001348 - -0.0059103654 - -0.0058603473 - -0.0057304301 - -0.0055595818 - -0.0054288097 - -0.0053908676 - -0.0053968434 - -0.0053805988 - -0.0053404178 - -0.0053054010 - -0.0052994140 - -0.0052854046 - -0.0051805847 - -0.0049939924 - -0.0048567331 - -0.0048303348 - -0.0048681865 - -0.0048622228 - -0.0047982750 - -0.0046895584 - -0.0045548407 - -0.0044439980 - -0.0043849698 - -0.0043836515 - -0.0044089709 - -0.0043958630 - -0.0043304265 - -0.0042421445 - -0.0041210740 - -0.0039942991 - -0.0039405930 - -0.0039647729 - -0.0039821127 - -0.0039449255 - -0.0038847653 - -0.0038874377 - -0.0039123017 - -0.0038754260 - -0.0038263178 - -0.0038345046 - -0.0038480002 - -0.0037602137 - -0.0035799355 - -0.0034600485 - -0.0034777150 - -0.0035103452 - -0.0034660050 - -0.0034278755 - -0.0034318424 - -0.0033944724 - -0.0032323548 - -0.0030709519 - -0.0030772148 - -0.0031683459 - -0.0031409001 - -0.0029874209 - -0.0028493216 - -0.0028184464 - -0.0028088542 - -0.0027653454 - -0.0027530601 - -0.0027845267 - -0.0027806356 - -0.0027301155 - -0.0027014785 - -0.0027370416 - -0.0027509674 - -0.0026952897 - -0.0026608952 - -0.0026881371 - -0.0027145909 - -0.0026714099 - -0.0026184074 - -0.0026412075 - -0.0026754283 - -0.0026539883 - -0.0025932963 - -0.0025392708 - -0.0024769946 - -0.0023685971 - -0.0022906575 - -0.0022799100 - -0.0022403379 - -0.0021033073 - -0.0019508421 - -0.0019121213 - -0.0019043055 - -0.0017899845 - -0.0016158798 - -0.0015586613 - -0.0016257865 - -0.0016340789 - -0.0015520038 - -0.0015249642 - -0.0016032596 - -0.0016728599 - -0.0016881764 - -0.0017854768 - -0.0019788628 - -0.0021171139 - -0.0021638004 - -0.0023281928 - -0.0027189697 - -0.0031015980 - -0.0033262791 - -0.0035566876 - -0.0039815223 - -0.0043923385 - -0.0046105282 - -0.0048358655 - -0.0053102374 - -0.0058253882 - -0.0059905583 - -0.0060599754 - -0.0064808587 - -0.0070771179 - -0.0071621649 - -0.0068454542 - -0.0071273092 - -0.0080278739 - -0.0079751229 - -0.0055834055 - -0.0062969537 - -0.0039519868 - -0.0040858355 - -0.0052328766 - -0.0056485832 - -0.0054235575 - -0.0055457386 - -0.0061635543 - -0.0065561468 - -0.0065654498 - -0.0066768457 - -0.0071363542 - -0.0075116963 - -0.0076041054 - -0.0077154231 - -0.0080886744 - -0.0084491726 - -0.0085939132 - -0.0087308269 - -0.0090309335 - -0.0093869139 - -0.0095398333 - -0.0096676601 - -0.0099212527 - -0.0102625489 - -0.0104360608 - -0.0105648078 - -0.0107806046 - -0.0111009609 - -0.0112890424 - -0.0114241801 - -0.0116068637 - -0.0119095622 - -0.0121080270 - -0.0122338776 - -0.0124068148 - -0.0126850503 - -0.0128881391 - -0.0130247939 - -0.0131711736 - -0.0134438975 - -0.0136872381 - -0.0137981400 - -0.0139655927 - -0.0141696502 - -0.0144070787 - -0.0145231942 - -0.0146819688 - -0.0148681197 - -0.0150965704 - -0.0152212605 - -0.0153667424 - -0.0155344550 - -0.0157671254 - -0.0158928540 - -0.0160324201 - -0.0161782317 - -0.0164047759 - -0.0165356118 - -0.0166641809 - -0.0168055966 - -0.0170268379 - -0.0171573460 - -0.0172782205 - -0.0174080562 - -0.0176201798 - -0.0177576784 - -0.0178796016 - -0.0179964192 - -0.0181982610 - -0.0183345415 - -0.0184564013 - -0.0185580887 - -0.0187505018 - -0.0188849568 - -0.0190196093 - -0.0191087071 - -0.0192915909 - -0.0194275267 - -0.0195740722 - -0.0196439922 - -0.0198169146 - -0.0199468080 - -0.0200958475 - -0.0201552697 - -0.0203180462 - -0.0204513073 - -0.0206005853 - -0.0206478443 - -0.0207225680 - -0.0208988152 - -0.0210059173 - -0.0211203936 - -0.0212013647 - -0.0213763025 - -0.0214806423 - -0.0215944983 - -0.0216649808 - -0.0218426939 - -0.0219391696 - -0.0220572017 - -0.0221165270 - -0.0222925395 - -0.0223890655 - -0.0225095078 - -0.0225627199 - -0.0227330178 - -0.0228241347 - -0.0229472406 - -0.0230054352 - -0.0231528543 - -0.0232433397 - -0.0233752634 - -0.0234316401 - -0.0235737041 - -0.0236453023 - -0.0236950405 - -0.0237963144 - -0.0238704700 - -0.0240324847 - -0.0241009966 - -0.0242041051 - -0.0242618248 - -0.0244312454 - -0.0244924165 - -0.0246039815 - -0.0246647969 - -0.0248195790 - -0.0248813257 - -0.0249940213 - -0.0250533484 - -0.0251968820 - -0.0252472125 - -0.0252635479 - -0.0253722109 - -0.0254450515 - -0.0256044865 - -0.0256337970 - -0.0257432330 - -0.0258172657 - -0.0259704795 - -0.0259993356 - -0.0261171684 - -0.0261737332 - -0.0263281614 - -0.0263609439 - -0.0264764279 - -0.0265309997 - -0.0266760923 - -0.0267062634 - -0.0266997758 - -0.0268170927 - -0.0268935673 - -0.0270318948 - -0.0270487182 - -0.0271719247 - -0.0272327978 - -0.0273783579 - -0.0273929294 - -0.0275054239 - -0.0275708195 - -0.0277138706 - -0.0277362503 - -0.0278490465 - -0.0278773420 - -0.0279060472 - -0.0280156378 - -0.0280370209 - -0.0281845648 - -0.0282378606 - -0.0283484757 - -0.0283693504 - -0.0285076723 - -0.0285599027 - -0.0286825374 - -0.0286903530 - -0.0288296025 - -0.0288919769 - -0.0290068518 - -0.0289887115 - -0.0290038772 - -0.0291381925 - -0.0291787200 - -0.0292878486 - -0.0293110423 - -0.0294669718 - -0.0294944178 - -0.0296049491 - -0.0296250507 - -0.0297748819 - -0.0298222005 - -0.0299221873 - -0.0299130324 - -0.0299255326 - -0.0300613679 - -0.0300829038 - -0.0302007534 - -0.0302330405 - -0.0303779803 - -0.0303943679 - -0.0305131301 - -0.0305356719 - -0.0306891501 - -0.0307063051 - -0.0308175497 - -0.0308179911 - -0.0308274832 - -0.0309499912 - -0.0309602320 - -0.0310995542 - -0.0311332159 - -0.0312576555 - -0.0312600620 - -0.0313972160 - -0.0314373113 - -0.0315678418 - -0.0315755904 - -0.0317048915 - -0.0317503624 - -0.0318769552 - -0.0318554379 - -0.0318391286 - -0.0319715105 - -0.0320058018 - -0.0321351141 - -0.0321381539 - -0.0322824679 - -0.0323159881 - -0.0324492455 - -0.0324613117 - -0.0325936750 - -0.0326271802 - -0.0327597857 - -0.0327719226 - -0.0329054520 - -0.0329096057 - -0.0328904726 - -0.0330022834 - -0.0330315530 - -0.0331948772 - -0.0332076885 - -0.0333242752 - -0.0333451293 - -0.0335020795 - -0.0335274972 - -0.0336452909 - -0.0336585604 - -0.0338243917 - -0.0338555276 - -0.0339665227 - -0.0339465961 - -0.0339444764 - -0.0340832993 - -0.0341047570 - -0.0342419446 - -0.0342780575 - -0.0344265550 - -0.0344416797 - -0.0345786437 - -0.0346103273 - -0.0347604826 - -0.0347712561 - -0.0349119678 - -0.0349437520 - -0.0351043865 - -0.0351215005 - -0.0352675952 - -0.0353073664 - -0.0354655087 - -0.0354516879 - -0.0354189500 - -0.0355639905 - -0.0356202312 - -0.0357923806 - -0.0357937962 - -0.0359327868 - -0.0359865539 - -0.0361571573 - -0.0361807384 - -0.0363253616 - -0.0363622159 - -0.0365448594 - -0.0365712382 - -0.0367285162 - -0.0367651060 - -0.0369412974 - -0.0369776934 - -0.0371393189 - -0.0371864513 - -0.0373758487 - -0.0374110043 - -0.0375721641 - -0.0375774167 - -0.0375914723 - -0.0377605259 - -0.0378054008 - -0.0380117446 - -0.0380651169 - -0.0382367782 - -0.0382847264 - -0.0384760052 - -0.0385454074 - -0.0387365818 - -0.0387792401 - -0.0389750935 - -0.0390568376 - -0.0392581336 - -0.0393052101 - -0.0395125635 - -0.0395927280 - -0.0398082882 - -0.0398822986 - -0.0400800072 - -0.0401572511 - -0.0403792039 - -0.0404561013 - -0.0406751931 - -0.0407710262 - -0.0410196856 - -0.0411002189 - -0.0413263142 - -0.0414402336 - -0.0416901968 - -0.0417800061 - -0.0420071967 - -0.0421360061 - -0.0423999615 - -0.0425178669 - -0.0427780375 - -0.0428932607 - -0.0431735106 - -0.0432984456 - -0.0435750224 - -0.0437106490 - -0.0439974479 - -0.0441327803 - -0.0444362760 - -0.0445943028 - -0.0449007191 - -0.0450466052 - -0.0453795679 - -0.0455474406 - -0.0458760038 - -0.0460282825 - -0.0463519320 - -0.0465661958 - -0.0469314456 - -0.0471186973 - -0.0474582240 - -0.0476982482 - -0.0480804630 - -0.0482978076 - -0.0486465544 - -0.0488747917 - -0.0493156388 - -0.0495915674 - -0.0499729179 - -0.0501991957 - -0.0506130531 - -0.0509190522 - -0.0513817444 - -0.0516636781 - -0.0521155782 - -0.0524258688 - -0.0528727211 - -0.0531872064 - -0.0537196174 - -0.0541000217 - -0.0545837842 - -0.0549117401 - -0.0554259121 - -0.0558411814 - -0.0564246885 - -0.0568172857 - -0.0573704578 - -0.0577956997 - -0.0584434345 - -0.0590762757 - -0.0595411062 - -0.0601750836 - -0.0606921576 - -0.0613488555 - -0.0618384592 - -0.0625200868 - -0.0630425960 - -0.0637228712 - -0.0642648190 - -0.0649965554 - -0.0655670017 - -0.0663357824 - -0.0669957697 - -0.0678131878 - -0.0684609935 - -0.0692449808 - -0.0699104071 - -0.0708510652 - -0.0717854947 - -0.0724979118 - -0.0733756274 - -0.0741235092 - -0.0750643611 - -0.0758790746 - -0.0768103525 - -0.0776210949 - -0.0786722377 - -0.0795472339 - -0.0806499273 - -0.0816064551 - -0.0827805400 - -0.0839680955 - -0.0849267766 - -0.0860669240 - -0.0870850161 - -0.0882989988 - -0.0893735439 - -0.0905815661 - -0.0916661173 - -0.0930272192 - -0.0941128805 - -0.0954349935 - -0.0966390520 - -0.0981667191 - -0.0996736586 - -0.1009350419 - -0.1023715734 - -0.1036970913 - -0.1052472889 - -0.1066155136 - -0.1081982702 - -0.1096702293 - -0.1113417223 - -0.1129837558 - -0.1144677103 - -0.1161685064 - -0.1177284569 - -0.1195425391 - -0.1211430654 - -0.1229559332 - -0.1246706247 - -0.1267275810 - -0.1286982745 - -0.1305373907 - -0.1325578243 - -0.1343201995 - -0.1364471018 - -0.1382920742 - -0.1402150244 - -0.1421527863 - -0.1444354802 - -0.1468541771 - -0.1489654779 - -0.1511465758 - -0.1532312930 - -0.1556216478 - -0.1579003036 - -0.1602886915 - -0.1626870334 - -0.1650120020 - -0.1674803346 - -0.1698070765 - -0.1723530591 - -0.1748963594 - -0.1776941866 - -0.1804229915 - -0.1827490330 - -0.1854017973 - -0.1879135072 - -0.1907536685 - -0.1934136152 - -0.1963688135 - -0.1992947459 - -0.2019291669 - -0.2047700584 - -0.2076529264 - -0.2108372748 - -0.2139763832 - -0.2166677564 - -0.2195762098 - -0.2225199342 - -0.2257663310 - -0.2286727130 - -0.2317496985 - -0.2350570261 - -0.2383431494 - -0.2415037304 - -0.2444454730 - -0.2476916015 - -0.2513005435 - -0.2545580566 - -0.2577082515 - -0.2606575787 - -0.2642173469 - -0.2680292726 - -0.2712652981 - -0.2744718492 - -0.2776475549 - -0.2812778354 - -0.2850593030 - -0.2882410288 - -0.2916203141 - -0.2948174775 - -0.2985885441 - -0.3023993373 - -0.3056503534 - -0.3089480400 - -0.3120955229 - -0.3158975244 - -0.3197782338 - -0.3231461644 - -0.3264471292 - -0.3297264576 - -0.3335407376 - -0.3372314572 - -0.3404914141 - -0.3438603282 - -0.3471182287 - -0.3507590592 - -0.3544505835 - -0.3579907417 - -0.3616891503 - -0.3653655648 - -0.3685509562 - -0.3717813790 - -0.3749949634 - -0.3786534369 - -0.3823806345 - -0.3853548765 - -0.3886556923 - -0.3918187618 - -0.3952736855 - -0.3985687196 - -0.4015287459 - -0.4050364494 - -0.4084883928 - -0.4114730954 - -0.4145498574 - -0.4175310433 - -0.4207899868 - -0.4239329100 - -0.4267691970 - -0.4298824668 - -0.4332166910 - -0.4360623062 - -0.4389426112 - -0.4418391287 - -0.4446875751 - -0.4476083517 - -0.4499603808 - -0.4526377022 - -0.4555427432 - -0.4583334327 - -0.4611624479 - -0.4637127221 - -0.4661175907 - -0.4687508941 - -0.4712859094 - -0.4733728468 - -0.4758113623 - -0.4780785441 - -0.4805181026 - -0.4828194082 - -0.4848304391 - -0.4870817959 - -0.4892630577 - -0.4912063479 - -0.4932747483 - -0.4953104854 - -0.4971337318 - -0.4993084371 - -0.5014947057 - -0.5032941103 - -0.5050421953 - -0.5066715479 - -0.5082435608 - -0.5100844502 - -0.5117756128 - -0.5128946900 - -0.5142660141 - -0.5154247284 - -0.5169351101 - -0.5183629990 - -0.5195433497 - -0.5209378004 - -0.5221900344 - -0.5228981376 - -0.5238417983 - -0.5249875784 - -0.5259107351 - -0.5270224214 - -0.5279766321 - -0.5287864208 - -0.5297361016 - -0.5306093097 - -0.5311822891 - -0.5321159363 - -0.5329424143 - -0.5335499048 - -0.5338544250 - -0.5344448686 - -0.5352108479 - -0.5355716348 - -0.5359989405 - -0.5362146497 - -0.5361871719 - -0.5365151167 - -0.5368472934 - -0.5371069312 - -0.5373988152 - -0.5375516415 - -0.5372616649 - -0.5372319818 - -0.5373013020 - -0.5369150043 - -0.5366693139 - -0.5366838574 - -0.5365554094 - -0.5365396738 - -0.5361123085 - -0.5354466438 - -0.5353745222 - -0.5352671742 - -0.5349837542 - -0.5343852043 - -0.5340209603 - -0.5338265896 - -0.5331047177 - -0.5323758125 - -0.5317775607 - -0.5309992433 - -0.5304961205 - -0.5300616026 - -0.5294879675 - -0.5285391808 - -0.5277470946 - -0.5269210339 - -0.5259594917 - -0.5252528787 - -0.5242512226 - -0.5230615139 - -0.5224331021 - -0.5217128396 - -0.5206074715 - -0.5191203952 - -0.5181515813 - -0.5173247457 - -0.5160846114 - -0.5149744749 - -0.5139979124 - -0.5132619143 - -0.5121335983 - -0.5105688572 - -0.5089299679 - -0.5076824427 - -0.5068694949 - -0.5056034327 - -0.5040859580 - -0.5026438236 - -0.5015509129 - -0.5000507832 - -0.4981827736 - -0.4968856573 - -0.4960277379 - -0.4947275221 - -0.4927770495 - -0.4911746681 - -0.4899636507 - -0.4884144664 - -0.4867535830 - -0.4852301180 - -0.4841343164 - -0.4826606810 - -0.4807344079 - -0.4787675440 - -0.4774849713 - -0.4763433635 - -0.4746854603 - -0.4724191129 - -0.4702926874 - -0.4690418541 - -0.4680083394 - -0.4662359953 - -0.4640918970 - -0.4623193145 - -0.4609134495 - -0.4595248699 - -0.4576828778 - -0.4558633566 - -0.4539996088 - -0.4522643089 - -0.4507177174 - -0.4492981136 - -0.4475248754 - -0.4454250336 - -0.4431241155 - -0.4414095879 - -0.4398781061 - -0.4384345114 - -0.4365022182 - -0.4347341061 - -0.4328205884 - -0.4307529926 - -0.4285295606 - -0.4269747734 - -0.4257966876 - -0.4240102768 - -0.4218021035 - -0.4199088514 - -0.4181016982 - -0.4160437882 - -0.4138391018 - -0.4121196270 - -0.4109278619 - -0.4093605280 - -0.4070749283 - -0.4049682915 - -0.4032349586 - -0.4014368951 - -0.3991544247 - -0.3970159590 - -0.3953303993 - -0.3940137029 - -0.3925288320 - -0.3904249370 - -0.3885402977 - -0.3867806792 - -0.3848784864 - -0.3826487064 - -0.3807061613 - -0.3789652884 - -0.3770637214 - -0.3748890162 - -0.3729570210 - -0.3712538183 - -0.3693768978 - -0.3672020137 - -0.3653773963 - -0.3642513156 - -0.3629523218 - -0.3610862494 - -0.3587267995 - -0.3567918241 - -0.3552489579 - -0.3535016775 - -0.3512388170 - -0.3492191434 - -0.3476578295 - -0.3461431563 - -0.3442180455 - -0.3419752121 - -0.3401356041 - -0.3386626244 - -0.3370906711 - -0.3351657391 - -0.3330120146 - -0.3312903047 - -0.3297272027 - -0.3280923367 - -0.3262565732 - -0.3242444396 - -0.3224849105 - -0.3208642006 - -0.3191944063 - -0.3171380162 - -0.3153360188 - -0.3137716055 - -0.3123306930 - -0.3106336892 - -0.3085855246 - -0.3067879975 - -0.3053162992 - -0.3038557470 - -0.3021600842 - -0.3002443910 - -0.2985201478 - -0.2968557477 - -0.2949205041 - -0.2930669188 - -0.2911615968 - -0.2895601392 - -0.2880741656 - -0.2866414189 - -0.2851457894 - -0.2836176157 - -0.2817384303 - -0.2801497877 - -0.2787295282 - -0.2773047388 - -0.2757207155 - -0.2739808857 - -0.2723467350 - -0.2708815336 - -0.2690190375 - -0.2673464715 - -0.2655493319 - -0.2640839815 - -0.2628082931 - -0.2614130080 - -0.2598904073 - -0.2582221925 - -0.2568154633 - -0.2553045750 - -0.2535153925 - -0.2519975305 - -0.2506010234 - -0.2490233779 - -0.2475802302 - -0.2462251037 - -0.2450644225 - -0.2438271940 - -0.2422831059 - -0.2402223200 - -0.2386466563 - -0.2374282181 - -0.2362906635 - -0.2351204604 - -0.2337290496 - -0.2320230603 - -0.2303434163 - -0.2289845049 - -0.2277393788 - -0.2265865207 - -0.2251270711 - -0.2237764299 - -0.2225148976 - -0.2209960669 - -0.2196526974 - -0.2183094323 - -0.2170311064 - -0.2158582360 - -0.2145670205 - -0.2130687684 - -0.2117342353 - -0.2106066048 - -0.2094103843 - -0.2081466615 - -0.2069154382 - -0.2054447681 - -0.2043138146 - -0.2031822503 - -0.2020917535 - -0.2009175569 - -0.1996546388 - -0.1981497407 - -0.1969830096 - -0.1960664690 - -0.1951331347 - -0.1939376742 - -0.1921625435 - -0.1909902245 - -0.1901108176 - -0.1892671138 - -0.1881474108 - -0.1866232455 - -0.1854346991 - -0.1844194531 - -0.1834289134 - -0.1820283681 - -0.1810368896 - -0.1800964177 - -0.1790425330 - -0.1778896898 - -0.1765673161 - -0.1756763756 - -0.1748571694 - -0.1738565564 - -0.1725359261 - -0.1713839173 - -0.1704633981 - -0.1695141494 - -0.1683274359 - -0.1674286723 - -0.1665812433 - -0.1657113731 - -0.1644732803 - -0.1634286493 - -0.1624670327 - -0.1616652906 - -0.1605446637 - -0.1597281396 - -0.1588861346 - -0.1580966115 - -0.1569337547 - -0.1559089273 - -0.1550346911 - -0.1542503536 - -0.1532568187 - -0.1524469554 - -0.1516522765 - -0.1508588195 - -0.1496991515 - -0.1487930566 - -0.1479108483 - -0.1470004320 - -0.1463231891 - -0.1455975175 - -0.1447673738 - -0.1436422914 - -0.1428646147 - -0.1420727521 - -0.1411165297 - -0.1404407471 - -0.1397877485 - -0.1391462386 - -0.1381995231 - -0.1374284774 - -0.1365920007 - -0.1356101930 - -0.1349426806 - -0.1342686862 - -0.1334053874 - -0.1327458918 - -0.1320566535 - -0.1312418133 - -0.1306116283 - -0.1298865676 - -0.1288788319 - -0.1282260865 - -0.1276556551 - -0.1271535605 - -0.1263171881 - -0.1256875843 - -0.1250330061 - -0.1241075844 - -0.1234956235 - -0.1228750423 - -0.1220936179 - -0.1215907782 - -0.1210267246 - -0.1202154011 - -0.1196478531 - -0.1189772263 - -0.1181475148 - -0.1176310703 - -0.1171344817 - -0.1163841039 - -0.1158165559 - -0.1150094420 - -0.1145198122 - -0.1141154170 - -0.1133689731 - -0.1128385365 - -0.1123753935 - -0.1117324308 - -0.1112105772 - -0.1105864793 - -0.1098278239 - -0.1094347239 - -0.1090283692 - -0.1083013639 - -0.1077823043 - -0.1070966050 - -0.1066998765 - -0.1061442345 - -0.1053790078 - -0.1050061435 - -0.1046861261 - -0.1040120274 - -0.1034740210 - -0.1027007997 - -0.1023105904 - -0.1019454449 - -0.1013297215 - -0.1009315774 - -0.1006032750 - -0.1000312790 - -0.0995703489 - -0.0989193022 - -0.0986088887 - -0.0983359367 - -0.0977233350 - -0.0972695053 - -0.0966894031 - -0.0964275450 - -0.0961180925 - -0.0954950079 - -0.0951152295 - -0.0945795700 - -0.0943075120 - -0.0939910337 - -0.0933857337 - -0.0929689705 - -0.0923673287 - -0.0920574665 - -0.0917719081 - -0.0912073255 - -0.0908098742 - -0.0901673734 - -0.0898036659 - -0.0892856419 - -0.0889836922 - -0.0886241049 - -0.0880764872 - -0.0878143758 - -0.0873262659 - -0.0870490223 - -0.0868120566 - -0.0863835961 - -0.0861511752 - -0.0856682807 - -0.0854652300 - -0.0851287320 - -0.0850169286 - -0.0848525614 - -0.0845101178 - -0.0845062062 - -0.0842806250 - -0.0842011720 - -0.0838942900 - -0.0839156434 - -0.0837247148 - -0.0836918652 - -0.0836777240 - -0.0835447609 - -0.0836183801 - -0.0832653120 - -0.0830964893 - -0.0829436481 - -0.0831201896 - -0.0830181539 - -0.0824101195 - -0.0823669732 - -0.0824339762 - -0.0822246075 - -0.0803562850 - -0.0807261989 - -0.0786613077 - -0.0783592463 - -0.0785238296 - -0.0785057545 - -0.0780503750 - -0.0775894821 - -0.0776410624 - -0.0773430243 - -0.0770146325 - -0.0765566677 - -0.0765429139 - -0.0762763470 - -0.0760391131 - -0.0755802765 - -0.0755131394 - -0.0752678066 - -0.0751398280 - -0.0749793202 - -0.0747115612 - -0.0746618435 - -0.0742825642 - -0.0740934387 - -0.0738089010 - -0.0737803727 - -0.0734366030 - -0.0732542649 - -0.0729627833 - -0.0729452670 - -0.0726283789 - -0.0724637136 - -0.0721725374 - -0.0721651465 - -0.0718874186 - -0.0717571899 - -0.0714389160 - -0.0714313462 - -0.0711627305 - -0.0710442811 - -0.0707408041 - -0.0707833916 - -0.0708206221 - -0.0705328658 - -0.0704180971 - -0.0701810420 - -0.0701791123 - -0.0699021816 - -0.0698003918 - -0.0695624426 - -0.0695800707 - -0.0693162382 - -0.0692234561 - -0.0689849257 - -0.0690083951 - -0.0687639788 - -0.0686698630 - -0.0684373304 - -0.0684750900 - -0.0682595894 - -0.0682162270 - -0.0679414198 - -0.0679643899 - -0.0677628592 - -0.0677338168 - -0.0674614906 - -0.0674884617 - -0.0672942847 - -0.0672791451 - -0.0670169145 - -0.0670406893 - -0.0668480098 - -0.0668550283 - -0.0665929317 - -0.0666151196 - -0.0664361268 - -0.0664494112 - -0.0661959648 - -0.0662201568 - -0.0660290793 - -0.0660021901 - -0.0657995716 - -0.0658459291 - -0.0656671748 - -0.0656483695 - -0.0654398799 - -0.0654921532 - -0.0653402954 - -0.0653133318 - -0.0650559887 - -0.0648196861 - -0.0648641661 - -0.0646567196 - -0.0646907315 - -0.0645046532 - -0.0645718947 - -0.0643642396 - -0.0643938705 - -0.0641979128 - -0.0642046183 - -0.0640588850 - -0.0641150475 - -0.0639335364 - -0.0639423504 - -0.0637904778 - -0.0638573691 - -0.0636891127 - -0.0636982098 - -0.0635364503 - -0.0635913908 - -0.0633697063 - -0.0634368062 - -0.0632926151 - -0.0633745417 - -0.0631691441 - -0.0632120594 - -0.0630046502 - -0.0627343208 - -0.0627789423 - -0.0626536310 - -0.0627606288 - -0.0625470281 - -0.0625916943 - -0.0624394938 - -0.0624780282 - -0.0623342618 - -0.0623862743 - -0.0621792227 - -0.0622789562 - -0.0621511415 - -0.0622302704 - -0.0620369725 - -0.0621091202 - -0.0619152412 - -0.0616458952 - -0.0617017448 - -0.0615817532 - -0.0616273545 - -0.0614711680 - -0.0615398660 - -0.0613540486 - -0.0614619702 - -0.0613096207 - -0.0613202378 - -0.0612060502 - -0.0613277778 - -0.0612003021 - -0.0612152517 - -0.0610907935 - -0.0611860305 - -0.0609453022 - -0.0607380494 - -0.0607964471 - -0.0606306717 - -0.0607575253 - -0.0606210269 - -0.0606197864 - -0.0604849681 - -0.0605289154 - -0.0603947714 - -0.0604826845 - -0.0602916852 - -0.0604194850 - -0.0603032187 - -0.0603063703 - -0.0601381995 - -0.0599704757 - -0.0599735752 - -0.0598603077 - -0.0599981807 - -0.0598016679 - -0.0598728582 - -0.0596584827 - -0.0597860366 - -0.0596947856 - -0.0597238876 - -0.0595857501 - -0.0597103126 - -0.0595568269 - -0.0596518144 - -0.0594725348 - -0.0592147447 - -0.0592996590 - -0.0591188110 - -0.0592362806 - -0.0591358282 - -0.0591804758 - -0.0590463318 - -0.0590517260 - -0.0589502044 - -0.0591115206 - -0.0589345321 - -0.0589985922 - -0.0587242469 - -0.0585878417 - -0.0587204322 - -0.0585293248 - -0.0586236641 - -0.0584266409 - -0.0585716143 - -0.0584868453 - -0.0585085489 - -0.0583823919 - -0.0584201738 - -0.0583139546 - -0.0583244562 - -0.0581794493 - -0.0580388084 - -0.0580562241 - -0.0579428412 - -0.0579792485 - -0.0578797236 - -0.0579010509 - -0.0577758178 - -0.0578133985 - -0.0577459261 - -0.0578931049 - -0.0576977059 - -0.0578136742 - -0.0576289669 - -0.0577396378 - -0.0574826486 - -0.0573130660 - -0.0573233925 - -0.0572445020 - -0.0572869033 - -0.0571631379 - -0.0571951419 - -0.0571319610 - -0.0573039576 - -0.0571127832 - -0.0572191030 - -0.0570227951 - -0.0571723916 - -0.0569850989 - -0.0570882000 - -0.0568439960 - -0.0566996560 - -0.0567089058 - -0.0566189103 - -0.0566736162 - -0.0565827936 - -0.0566049665 - -0.0565058365 - -0.0565501414 - -0.0564731658 - -0.0565028712 - -0.0564095899 - -0.0564571619 - -0.0563768037 - -0.0563684069 - -0.0560903549 - -0.0559316464 - -0.0559482276 - -0.0558858067 - -0.0559326001 - -0.0558450297 - -0.0558843352 - -0.0558188967 - -0.0558642186 - -0.0557573996 - -0.0557552576 - -0.0555441119 - -0.0556910522 - -0.0555182211 - -0.0556669459 - -0.0554789901 - -0.0556377992 - -0.0554780401 - -0.0556158051 - -0.0553474426 - -0.0550525673 - -0.0551541820 - -0.0550025962 - -0.0551817939 - -0.0549543239 - -0.0549304821 - -0.0548657402 - -0.0549508110 - -0.0548839122 - -0.0548656993 - -0.0546355806 - -0.0548141599 - -0.0546721667 - -0.0548295565 - -0.0546083078 - -0.0546293706 - -0.0545756854 - -0.0546209365 - -0.0545377955 - -0.0545691215 - -0.0543813519 - -0.0545005947 - -0.0542302951 - -0.0539620481 - -0.0541055053 - -0.0539562479 - -0.0541499592 - -0.0539500564 - -0.0539571978 - -0.0538718440 - -0.0538953170 - -0.0537074320 - -0.0538729578 - -0.0536808781 - -0.0536995158 - -0.0536142327 - -0.0536389835 - -0.0534490570 - -0.0536112785 - -0.0534129888 - -0.0534456298 - -0.0533879176 - -0.0534091964 - -0.0531751141 - -0.0531748980 - -0.0531150848 - -0.0531686768 - -0.0529734157 - -0.0531089008 - -0.0529142208 - -0.0529673994 - -0.0529074445 - -0.0529130623 - -0.0527044609 - -0.0527031645 - -0.0526377261 - -0.0526870713 - -0.0525156558 - -0.0526686013 - -0.0524517819 - -0.0524391234 - -0.0522424057 - -0.0524232127 - -0.0522154532 - -0.0522149317 - -0.0520012677 - -0.0521635786 - -0.0519786477 - -0.0519580990 - -0.0517500713 - -0.0519361869 - -0.0517719537 - -0.0517270938 - -0.0514541157 - -0.0514466390 - -0.0514285676 - -0.0514569953 - -0.0511891544 - -0.0511787012 - -0.0511573479 - -0.0512134060 - -0.0509393625 - -0.0508602224 - -0.0506720021 - -0.0508946106 - -0.0507238731 - -0.0506275594 - -0.0503142960 - -0.0502714068 - -0.0500949547 - -0.0502515733 - -0.0500498377 - -0.0500232801 - -0.0497266278 - -0.0496320426 - -0.0493857935 - -0.0496009067 - -0.0494422503 - -0.0493428595 - -0.0489895567 - -0.0489265732 - -0.0487457141 - -0.0489244498 - -0.0486612096 - -0.0485528372 - -0.0482972488 - -0.0482554398 - -0.0481686555 - -0.0478966609 - -0.0478815027 - -0.0478372984 - -0.0477684475 - -0.0474592075 - -0.0473351330 - -0.0470159426 - -0.0468647517 - -0.0465147048 - -0.0463798307 - -0.0460762158 - -0.0459974520 - -0.0458745845 - -0.0458055362 - -0.0454764031 - -0.0452897698 - -0.0449053869 - -0.0447530560 - -0.0446514934 - -0.0442951545 - -0.0440695286 - -0.0436701551 - -0.0435106084 - -0.0431244895 - -0.0428435430 - -0.0423198715 - -0.0420832485 - -0.0417391732 - -0.0417718515 - -0.0414377600 - -0.0412671007 - -0.0410475768 - -0.0405794568 - -0.0402683243 - -0.0397690907 - -0.0394625477 - -0.0389323719 - -0.0385781638 - -0.0380522832 - -0.0377014093 - -0.0371242836 - -0.0366967693 - -0.0361366533 - -0.0358197019 - -0.0354763083 - -0.0348614678 - -0.0343800634 - -0.0337249488 - -0.0332482979 - -0.0325494185 - -0.0320094302 - -0.0313132703 - -0.0307988375 - -0.0300642103 - -0.0292349979 - -0.0285960212 - -0.0278234780 - -0.0272004381 - -0.0263324454 - -0.0256617740 - -0.0249482393 - -0.0244242549 - -0.0238064229 - -0.0228283182 - -0.0220085084 - -0.0211717039 - -0.0204999521 - -0.0194003806 - -0.0180812478 - -0.0168415308 - -0.0160983652 - -0.0155125260 - -0.0145159513 - -0.0134500712 - -0.0122436136 - -0.0114396662 - -0.0104012638 - -0.0093183219 - -0.0079399347 - -0.0066226721 - -0.0055406690 - -0.0041951984 - -0.0030456632 - -0.0018455535 - -0.0008627325 - 0.0003619790 - 0.0022340417 - 0.0037382096 - 0.0050875694 - 0.0062200427 - 0.0076182038 - 0.0091060102 - 0.0108485371 - 0.0125027001 - 0.0139452815 - 0.0153960288 - 0.0167057663 - 0.0182886124 - 0.0204811841 - 0.0222745687 - 0.0238767713 - 0.0253234506 - 0.0272435099 - 0.0294291824 - 0.0310892165 - 0.0327099264 - 0.0343605727 - 0.0366313607 - 0.0388097465 - 0.0404527187 - 0.0422921181 - 0.0445189774 - 0.0472111106 - 0.0490787923 - 0.0505962670 - 0.0526319146 - 0.0550941825 - 0.0578243434 - 0.0595730841 - 0.0612724125 - 0.0636568069 - 0.0665511489 - 0.0690235198 - 0.0708510578 - 0.0727186501 - 0.0755198002 - 0.0783228874 - 0.0810435116 - 0.0833894610 - 0.0854212642 - 0.0879135728 - 0.0905004442 - 0.0933939517 - 0.0957583189 - 0.0980084240 - 0.1008518338 - 0.1035043001 - 0.1062405705 - 0.1089389622 - 0.1114207506 - 0.1140221655 - 0.1162353456 - 0.1188064516 - 0.1216609776 - 0.1246926785 - 0.1277094483 - 0.1299152672 - 0.1322365403 - 0.1353035569 - 0.1383962929 - 0.1412305534 - 0.1439142823 - 0.1464514732 - 0.1495810747 - 0.1524631977 - 0.1550739706 - 0.1579148769 - 0.1604909003 - 0.1632279158 - 0.1662510633 - 0.1692313552 - 0.1724888086 - 0.1749548316 - 0.1771923304 - 0.1799507737 - 0.1827440560 - 0.1856998801 - 0.1882044077 - 0.1905668974 - 0.1936020851 - 0.1965049505 - 0.1994488239 - 0.2020810544 - 0.2047239542 - 0.2076480091 - 0.2102340460 - 0.2128807008 - 0.2154672146 - 0.2185247540 - 0.2210537791 - 0.2233521044 - 0.2258955836 - 0.2284744084 - 0.2314454317 - 0.2337901294 - 0.2360732853 - 0.2381551564 - 0.2405847907 - 0.2428521514 - 0.2455086112 - 0.2477065921 - 0.2497360110 - 0.2520620525 - 0.2543682158 - 0.2571126223 - 0.2595134676 - 0.2616820931 - 0.2635059655 - 0.2657881379 - 0.2679763138 - 0.2703596354 - 0.2724955976 - 0.2749641538 - 0.2770770788 - 0.2789280117 - 0.2804031372 - 0.2826815844 - 0.2853310108 - 0.2874282300 - 0.2892031670 - 0.2903937101 - 0.2922398448 - 0.2942592502 - 0.2963207960 - 0.2977665067 - 0.2992662191 - 0.3006588221 - 0.3024581373 - 0.3042986989 - 0.3057503998 - 0.3072151840 - 0.3082812428 - 0.3096599281 - 0.3111000061 - 0.3129595816 - 0.3147906959 - 0.3159504831 - 0.3171113431 - 0.3180707097 - 0.3192870617 - 0.3204737902 - 0.3218929768 - 0.3231559396 - 0.3242880106 - 0.3257505298 - 0.3269510567 - 0.3275735378 - 0.3282747865 - 0.3291216493 - 0.3305109143 - 0.3317582011 - 0.3324199915 - 0.3331605792 - 0.3340232372 - 0.3346676826 - 0.3351521194 - 0.3354117572 - 0.3362295032 - 0.3373680711 - 0.3381949067 - 0.3388693035 - 0.3393122256 - 0.3394038081 - 0.3398682177 - 0.3403913975 - 0.3408321738 - 0.3413850367 - 0.3418060541 - 0.3419299722 - 0.3425148726 - 0.3429976702 - 0.3429735601 - 0.3430150151 - 0.3434384465 - 0.3441092372 - 0.3442016542 - 0.3440415263 - 0.3439475298 - 0.3439294398 - 0.3439996243 - 0.3438360393 - 0.3436175585 - 0.3441000283 - 0.3443535864 - 0.3441418111 - 0.3435668051 - 0.3435995579 - 0.3438667655 - 0.3436763287 - 0.3429703712 - 0.3429588675 - 0.3431836963 - 0.3428784311 - 0.3419161141 - 0.3413861692 - 0.3415093422 - 0.3415918648 - 0.3407545984 - 0.3402201831 - 0.3401534557 - 0.3399049342 - 0.3388281465 - 0.3381631672 - 0.3380905986 - 0.3381851614 - 0.3375819921 - 0.3360927701 - 0.3355020285 - 0.3357283175 - 0.3356731236 - 0.3345062733 - 0.3330120146 - 0.3324970305 - 0.3325799406 - 0.3319482207 - 0.3307905793 - 0.3295829892 - 0.3292449117 - 0.3287422657 - 0.3278120458 - 0.3266818225 - 0.3255600929 - 0.3249470890 - 0.3243182003 - 0.3236038685 - 0.3226772845 - 0.3216676712 - 0.3207319677 - 0.3198566437 - 0.3190079927 - 0.3179412782 - 0.3168958426 - 0.3160618544 - 0.3151612282 - 0.3141230345 - 0.3129892945 - 0.3120642304 - 0.3111979365 - 0.3101335466 - 0.3090001345 - 0.3080091476 - 0.3071072698 - 0.3058046699 - 0.3042412102 - 0.3034482002 - 0.3028978705 - 0.3019627929 - 0.3005565703 - 0.2992587686 - 0.2985503078 - 0.2977356315 - 0.2962159514 - 0.2944664359 - 0.2928929925 - 0.2919057608 - 0.2907195687 - 0.2893689275 - 0.2882734239 - 0.2874048948 - 0.2862592936 - 0.2848577499 - 0.2836611271 - 0.2828114629 - 0.2816940844 - 0.2803028822 - 0.2790622115 - 0.2782155871 - 0.2770090699 - 0.2749828100 - 0.2731939852 - 0.2721211910 - 0.2714178860 - 0.2701928914 - 0.2686290443 - 0.2674375772 - 0.2666343451 - 0.2653640807 - 0.2633482218 - 0.2614932656 - 0.2603854835 - 0.2597114444 - 0.2585303485 - 0.2569006681 - 0.2554503679 - 0.2544823289 - 0.2535479665 - 0.2521284521 - 0.2501889467 - 0.2485504746 - 0.2474113107 - 0.2465223670 - 0.2453646809 - 0.2439211905 - 0.2425197661 - 0.2410913408 - 0.2397972941 - 0.2383342087 - 0.2369816303 - 0.2358461767 - 0.2347499877 - 0.2331463695 - 0.2314320058 - 0.2300007939 - 0.2290781885 - 0.2281628400 - 0.2267096937 - 0.2249424309 - 0.2238885760 - 0.2229996026 - 0.2218939215 - 0.2202468663 - 0.2186623663 - 0.2173402905 - 0.2160871327 - 0.2148296237 - 0.2133513540 - 0.2121555209 - 0.2108370960 - 0.2092904747 - 0.2077160776 - 0.2066520154 - 0.2055519968 - 0.2042751163 - 0.2028903365 - 0.2017907649 - 0.2007530779 - 0.1992906630 - 0.1977948993 - 0.1964241266 - 0.1952986419 - 0.1940111816 - 0.1927552521 - 0.1914266050 - 0.1901991963 - 0.1889484376 - 0.1877087504 - 0.1863944232 - 0.1852680296 - 0.1839299798 - 0.1822589040 - 0.1808554828 - 0.1798405498 - 0.1790416241 - 0.1779800355 - 0.1766228974 - 0.1749833524 - 0.1736997962 - 0.1726095378 - 0.1714569926 - 0.1706929505 - 0.1695645601 - 0.1680401862 - 0.1667151451 - 0.1654005051 - 0.1644576639 - 0.1634277105 - 0.1621196866 - 0.1607666314 - 0.1595114917 - 0.1586134285 - 0.1575584561 - 0.1561658680 - 0.1551516652 - 0.1538397968 - 0.1528384238 - 0.1518630385 - 0.1506320983 - 0.1495307535 - 0.1483025104 - 0.1470980346 - 0.1458045542 - 0.1447850764 - 0.1438803971 - 0.1427827179 - 0.1419534087 - 0.1406297237 - 0.1393359751 - 0.1379787028 - 0.1370803714 - 0.1362662166 - 0.1353610158 - 0.1340214461 - 0.1328701675 - 0.1319735646 - 0.1311842054 - 0.1303388476 - 0.1291239262 - 0.1281348318 - 0.1270962358 - 0.1261325777 - 0.1249455139 - 0.1240607724 - 0.1230689511 - 0.1223194525 - 0.1211029515 - 0.1200217828 - 0.1189292669 - 0.1183349714 - 0.1173571348 - 0.1164406389 - 0.1152607203 - 0.1142510995 - 0.1132593900 - 0.1121214479 - 0.1112606078 - 0.1104682311 - 0.1097616553 - 0.1087319627 - 0.1079006642 - 0.1069833487 - 0.1061398834 - 0.1050405204 - 0.1041939110 - 0.1033375114 - 0.1024068296 - 0.1016139612 - 0.1006413624 - 0.0999771878 - 0.0989811346 - 0.0981401503 - 0.0971629545 - 0.0964036286 - 0.0957294255 - 0.0948301256 - 0.0942355320 - 0.0932276472 - 0.0924370587 - 0.0915167406 - 0.0908073485 - 0.0901720449 - 0.0893051922 - 0.0887259543 - 0.0877160877 - 0.0866824016 - 0.0859505907 - 0.0852801949 - 0.0846664682 - 0.0838790163 - 0.0831884220 - 0.0825017989 - 0.0815443695 - 0.0808039755 - 0.0801758915 - 0.0793312043 - 0.0788415968 - 0.0779689774 - 0.0771522596 - 0.0767806545 - 0.0760125071 - 0.0751062259 - 0.0744407177 - 0.0737904236 - 0.0732649192 - 0.0725168288 - 0.0719009340 - 0.0713613331 - 0.0705970302 - 0.0699574798 - 0.0693234652 - 0.0684975684 - 0.0678978860 - 0.0674194098 - 0.0667146444 - 0.0661613345 - 0.0656296462 - 0.0648505539 - 0.0642370284 - 0.0637418777 - 0.0631945431 - 0.0624473467 - 0.0619097538 - 0.0613129809 - 0.0606201887 - 0.0601027906 - 0.0595323741 - 0.0588655658 - 0.0584911294 - 0.0580240265 - 0.0573379993 - 0.0568118393 - 0.0562844574 - 0.0556169264 - 0.0550511368 - 0.0546323694 - 0.0540836342 - 0.0536624864 - 0.0532088727 - 0.0524901152 - 0.0520135313 - 0.0517402925 - 0.0513408855 - 0.0506605357 - 0.0499775149 - 0.0497448072 - 0.0491557680 - 0.0485349186 - 0.0482683107 - 0.0476913974 - 0.0472595245 - 0.0466003194 - 0.0461560711 - 0.0457665361 - 0.0452915281 - 0.0450909585 - 0.0444240421 - 0.0437813997 - 0.0434035473 - 0.0431143306 - 0.0426931083 - 0.0421182849 - 0.0418089330 - 0.0414526537 - 0.0409437455 - 0.0405712947 - 0.0402853452 - 0.0397715792 - 0.0393867940 - 0.0388850532 - 0.0388239995 - 0.0384259969 - 0.0381005816 - 0.0378124826 - 0.0373285152 - 0.0370012857 - 0.0365233608 - 0.0363702066 - 0.0358567089 - 0.0353522450 - 0.0349871404 - 0.0346955135 - 0.0343351476 - 0.0338162556 - 0.0334086381 - 0.0330714136 - 0.0325260237 - 0.0321139544 - 0.0315051116 - 0.0312550664 - 0.0306732953 - 0.0302593596 - 0.0296521820 - 0.0294180289 - 0.0288359560 - 0.0282537006 - 0.0277722627 - 0.0274018832 - 0.0270541757 - 0.0265841298 - 0.0261693001 - 0.0257532559 - 0.0252584741 - 0.0251052566 - 0.0246192515 - 0.0243116207 - 0.0239223689 - 0.0246106684 - 0.0238619111 - 0.0247266740 - 0.0241639502 - 0.0233026929 - 0.0226357020 - 0.0224928893 - 0.0221062861 - 0.0213479325 - 0.0208777674 - 0.0207125023 - 0.0203844160 - 0.0196850747 - 0.0191801414 - 0.0187559053 - 0.0187081359 - 0.0181365348 - 0.0176690929 - 0.0172036029 - 0.0169855058 - 0.0165920183 - 0.0160279684 - 0.0157517083 - 0.0155880302 - 0.0152485296 - 0.0147050060 - 0.0144347809 - 0.0142977946 - 0.0139979944 - 0.0134599395 - 0.0131662451 - 0.0130937546 - 0.0128600523 - 0.0123233311 - 0.0119686462 - 0.0116520338 - 0.0117020644 - 0.0112618059 - 0.0109398924 - 0.0105906129 - 0.0106718242 - 0.0102533549 - 0.0097595304 - 0.0095226392 - 0.0094595738 - 0.0093013048 - 0.0088816211 - 0.0086614862 - 0.0085870251 - 0.0084155984 - 0.0080519021 - 0.0078583211 - 0.0078005381 - 0.0076395683 - 0.0072410703 - 0.0070317239 - 0.0070062578 - 0.0069368817 - 0.0065604411 - 0.0062912926 - 0.0059915297 - 0.0061377995 - 0.0058546700 - 0.0056888498 - 0.0053895302 - 0.0055306442 - 0.0052602477 - 0.0050679855 - 0.0047508217 - 0.0048886240 - 0.0046443306 - 0.0044868886 - 0.0042360723 - 0.0043903142 - 0.0041750893 - 0.0040321015 - 0.0036966279 - 0.0038191080 - 0.0036466904 - 0.0035985187 - 0.0035290830 - 0.0033951551 - 0.0031590723 - 0.0031060018 - 0.0031519122 - 0.0030723028 - 0.0028274804 - 0.0027410015 - 0.0027313754 - 0.0026926138 - 0.0026489124 - 0.0024242550 - 0.0025666505 - 0.0023469664 - 0.0022811294 - 0.0020453669 - 0.0021866411 - 0.0020017698 - 0.0020099171 - 0.0020361282 - 0.0019383393 - 0.0016933493 - 0.0016582832 - 0.0017165653 - 0.0016594306 - 0.0014232546 - 0.0013573542 - 0.0014173985 - 0.0014093481 - 0.0012400337 - 0.0014214739 - 0.0012405664 - 0.0011872053 - 0.0009798072 - 0.0011427738 - 0.0009264238 - 0.0009386241 - 0.0011770800 - 0.0010065623 - 0.0009534582 - 0.0007570609 - 0.0009624809 - 0.0008434393 - 0.0008530840 - 0.0008984357 - 0.0008683987 - 0.0006494746 - 0.0008601025 - 0.0006822906 - 0.0006331466 - 0.0004704073 - 0.0007039048 - 0.0005621053 - 0.0005048588 - 0.0007361993 - 0.0006106459 - 0.0006342232 - 0.0007233769 - 0.0007380992 - 0.0005882829 - 0.0007168353 - 0.0005634911 - 0.0005976073 - 0.0007122271 - 0.0006839409 - 0.0003978163 - 0.0003571101 - 0.0004695840 - 0.0005048811 - 0.0002812557 - 0.0005027503 - 0.0005705990 - 0.0005152933 - 0.0007466190 - 0.0004756711 - 0.0004639067 - 0.0006085671 - 0.0006120540 - 0.0007099584 - 0.0007116757 - 0.0005985238 - 0.0007794052 - 0.0006274842 - 0.0006113686 - 0.0006457604 - 0.0007173158 - 0.0007849857 - 0.0008939691 - 0.0008165650 - 0.0006818809 - 0.0009443425 - 0.0007973947 - 0.0010861121 - 0.0009698682 - 0.0008773021 - 0.0009485297 - 0.0008939914 - 0.0007952787 - 0.0010311119 - 0.0008279532 - 0.0008770078 - 0.0012016073 - 0.0010732971 - 0.0013229623 - 0.0010838844 - 0.0010701790 - 0.0011321791 - 0.0012336299 - 0.0014031343 - 0.0013179556 - 0.0011470579 - 0.0013177283 - 0.0012936592 - 0.0015330724 - 0.0015441217 - 0.0013145581 - 0.0015887395 - 0.0014710501 - 0.0017428212 - 0.0015122406 - 0.0015056133 - 0.0015758537 - 0.0016574115 - 0.0017278120 - 0.0017853975 - 0.0018611774 - 0.0019094273 - 0.0018485002 - 0.0019958280 - 0.0020029098 - 0.0021690503 - 0.0021043085 - 0.0021375231 - 0.0022315420 - 0.0023291595 - 0.0023280308 - 0.0020704307 - 0.0022256598 - 0.0022054687 - 0.0024347454 - 0.0023618974 - 0.0025623962 - 0.0025780573 - 0.0027555078 - 0.0026957095 - 0.0027497411 - 0.0028438456 - 0.0029093847 - 0.0028036647 - 0.0026609190 - 0.0028515458 - 0.0027286112 - 0.0030125827 - 0.0028259903 - 0.0030329600 - 0.0030258857 - 0.0032256134 - 0.0031572469 - 0.0032323040 - 0.0033345222 - 0.0034021586 - 0.0033221468 - 0.0033784695 - 0.0034899227 - 0.0035806820 - 0.0034940988 - 0.0035044029 - 0.0034792721 - 0.0036969930 - 0.0036726631 - 0.0037434809 - 0.0039844215 - 0.0040250272 - 0.0042278431 - 0.0041642413 - 0.0042038932 - 0.0041544922 - 0.0041896999 - 0.0041145273 - 0.0041862875 - 0.0043242015 - 0.0044668354 - 0.0046676174 - 0.0044911429 - 0.0046548843 - 0.0044822916 - 0.0046343990 - 0.0044401474 - 0.0045871362 - 0.0044330582 - 0.0046699457 - 0.0049658008 - 0.0050179213 - 0.0051953159 - 0.0049992502 - 0.0052054264 - 0.0053512082 - 0.0053205341 - 0.0053168312 - 0.0052353144 - 0.0053875893 - 0.0056547299 - 0.0054617226 - 0.0055135787 - 0.0051833577 - 0.0054053254 - 0.0055041760 - 0.0054361299 - 0.0054688044 - 0.0054565445 - 0.0055524670 - 0.0057343505 - 0.0056026131 - 0.0058680810 - 0.0061332844 - 0.0059654675 - 0.0060529746 - 0.0057020038 - 0.0058669336 - 0.0059728585 - 0.0059681199 - 0.0060700141 - 0.0062268600 - 0.0058774427 - 0.0060156658 - 0.0061339103 - 0.0061645322 - 0.0062234737 - 0.0063368082 - 0.0060393251 - 0.0062355362 - 0.0062976554 - 0.0061835125 - 0.0060986616 - 0.0063263737 - 0.0064490065 - 0.0063724928 - 0.0062387176 - 0.0063847080 - 0.0062365122 - 0.0063781030 - 0.0062397365 - 0.0061487686 - 0.0062118433 - 0.0062542502 - 0.0062973313 - 0.0062049534 - 0.0060819741 - 0.0061741341 - 0.0059574582 - 0.0059765577 - 0.0060459599 - 0.0061760470 - 0.0058172699 - 0.0059054028 - 0.0058053304 - 0.0059239306 - 0.0056835003 - 0.0056207962 - 0.0056382418 - 0.0056127459 - 0.0053199176 - 0.0051938370 - 0.0051997509 - 0.0052246992 - 0.0052354746 - 0.0050451308 - 0.0048447102 - 0.0049583428 - 0.0047640894 - 0.0045174863 - 0.0042772330 - 0.0043508355 - 0.0041792449 - 0.0040006116 - 0.0035697911 - 0.0033796933 - 0.0033741966 - 0.0033251587 - 0.0032570362 - 0.0030490058 - 0.0026659053 - 0.0024015699 - 0.0020957291 - 0.0021000849 - 0.0019012671 - 0.0018028105 - 0.0011294903 - 0.0007611234 - 0.0006131250 - 0.0004392518 - 0.0000843350 - -0.0001382055 - -0.0008363137 - -0.0011808672 - -0.0014710678 - -0.0017800466 - -0.0021792299 - -0.0024339524 - -0.0028621247 - -0.0034776893 - -0.0041939765 - -0.0046013002 - -0.0050242068 - -0.0055863173 - -0.0060412632 - -0.0063971216 - -0.0068870978 - -0.0075742016 - -0.0081973802 - -0.0088892989 - -0.0094992779 - -0.0102750957 - -0.0110599957 - -0.0118664028 - -0.0124573652 - -0.0130273700 - -0.0138501022 - -0.0146330586 - -0.0155280512 - -0.0163450036 - -0.0173185226 - -0.0182389747 - -0.0191365313 - -0.0197245292 - -0.0207097065 - -0.0217924472 - -0.0233015195 - -0.0244736727 - -0.0256541222 - -0.0268040579 - -0.0279179644 - -0.0292255208 - -0.0304702334 - -0.0318309367 - -0.0331046879 - -0.0344316736 - -0.0357479155 - -0.0373090766 - -0.0387253501 - -0.0402795784 - -0.0417158566 - -0.0434182584 - -0.0451422259 - -0.0467153229 - -0.0484478995 - -0.0501764864 - -0.0520891473 - -0.0538324229 - -0.0557106584 - -0.0575526878 - -0.0596565567 - -0.0618202165 - -0.0638152286 - -0.0659428984 - -0.0679827705 - -0.0702698752 - -0.0724344850 - -0.0748706535 - -0.0775396973 - -0.0803322718 - -0.0828440562 - -0.0852179974 - -0.0878424644 - -0.0905989408 - -0.0938720629 - -0.0965265632 - -0.0988153145 - -0.1014473438 - -0.1046715602 - -0.1083029360 - -0.1114460975 - -0.1144928187 - -0.1176367775 - -0.1213785186 - -0.1248360425 - -0.1282007694 - -0.1316065192 - -0.1350988448 - -0.1387378871 - -0.1423470527 - -0.1463446915 - -0.1503670663 - -0.1545968056 - -0.1587734222 - -0.1621088982 - -0.1660253555 - -0.1704868078 - -0.1752987206 - -0.1798910648 - -0.1841494590 - -0.1882731766 - -0.1928394586 - -0.1976186782 - -0.2025851756 - -0.2073718756 - -0.2121095806 - -0.2167119086 - -0.2215986401 - -0.2269086242 - -0.2323095948 - -0.2375209481 - -0.2424067855 - -0.2479574829 - -0.2536293864 - -0.2593739033 - -0.2646413445 - -0.2701131105 - -0.2760126293 - -0.2819600403 - -0.2873891592 - -0.2926756144 - -0.2986432016 - -0.3054283261 - -0.3114054203 - -0.3172344565 - -0.3227864504 - -0.3294108212 - -0.3363911211 - -0.3423067331 - -0.3483559191 - -0.3543922603 - -0.3614948392 - -0.3685452044 - -0.3745052218 - -0.3808206618 - -0.3870045543 - -0.3939190507 - -0.4009261727 - -0.4073813558 - -0.4142416716 - -0.4210152030 - -0.4278358221 - -0.4347269535 - -0.4415788352 - -0.4488897920 - -0.4556248188 - -0.4624443054 - -0.4694681466 - -0.4764622748 - -0.4839155376 - -0.4912227690 - -0.4980422854 - -0.5045492649 - -0.5112644434 - -0.5187177658 - -0.5265092850 - -0.5333675146 - -0.5400868654 - -0.5468748808 - -0.5541977286 - -0.5615193844 - -0.5680742264 - -0.5746369362 - -0.5816372037 - -0.5888245106 - -0.5962087512 - -0.6030604839 - -0.6097033024 - -0.6160918474 - -0.6225615740 - -0.6294120550 - -0.6367634535 - -0.6437427998 - -0.6506037116 - -0.6570320129 - -0.6635792255 - -0.6706929207 - -0.6774552464 - -0.6840504408 - -0.6900936365 - -0.6956633329 - -0.7018857002 - -0.7080925107 - -0.7143959999 - -0.7209583521 - -0.7273988128 - -0.7331712246 - -0.7392539978 - -0.7452097535 - -0.7512899637 - -0.7569869757 - -0.7622338533 - -0.7679815292 - -0.7740472555 - -0.7802045345 - -0.7859280109 - -0.7913737297 - -0.7964958549 - -0.8017294407 - -0.8067280054 - -0.8114917278 - -0.8164649606 - -0.8213016391 - -0.8259258270 - -0.8308557272 - -0.8360384107 - -0.8408247232 - -0.8452754021 - -0.8492004275 - -0.8536359072 - -0.8578913808 - -0.8616727591 - -0.8657400608 - -0.8704048395 - -0.8742024899 - -0.8775328398 - -0.8806277514 - -0.8842141032 - -0.8889623880 - -0.8928240538 - -0.8954828978 - -0.8982312083 - -0.9017650485 - -0.9054787755 - -0.9086995125 - -0.9111169577 - -0.9135098457 - -0.9164180756 - -0.9193205237 - -0.9222782850 - -0.9250425696 - -0.9275402427 - -0.9294419289 - -0.9307460785 - -0.9330645204 - -0.9355040789 - -0.9377021790 - -0.9396263361 - -0.9412931204 - -0.9427685738 - -0.9447333813 - -0.9460091591 - -0.9468144178 - -0.9484632611 - -0.9504143000 - -0.9519135356 - -0.9529470801 - -0.9535090923 - -0.9541825652 - -0.9551205635 - -0.9557331204 - -0.9567174911 - -0.9573019147 - -0.9582765102 - -0.9590331912 - -0.9592968225 - -0.9592438340 - -0.9593023658 - -0.9592859745 - -0.9595133066 - -0.9601496458 - -0.9599386454 - -0.9593766928 - -0.9590702057 - -0.9594534636 - -0.9589745998 - -0.9584165812 - -0.9572904110 - -0.9567860961 - -0.9569082260 - -0.9564337730 - -0.9547055960 - -0.9532258511 - -0.9527401924 - -0.9529154301 - -0.9520918727 - -0.9506899118 - -0.9494808912 - -0.9482269883 - -0.9468544126 - -0.9449685812 - -0.9434208870 - -0.9425125718 - -0.9416593313 - -0.9401951432 - -0.9380282164 - -0.9362940788 - -0.9350720048 - -0.9331974983 - -0.9310331941 - -0.9291881323 - -0.9276100993 - -0.9258804917 - -0.9235148430 - -0.9212277532 - -0.9195395708 - -0.9176425934 - -0.9151396155 - -0.9125369787 - -0.9101351500 - -0.9076235890 - -0.9050879478 - -0.9022483826 - -0.8997684717 - -0.8979978561 - -0.8961420059 - -0.8932997584 - -0.8895753622 - -0.8867472410 - -0.8847958446 - -0.8824027181 - -0.8792116642 - -0.8762233853 - -0.8736724854 - -0.8711291552 - -0.8678267002 - -0.8646125197 - -0.8615963459 - -0.8588661551 - -0.8562192321 - -0.8530338407 - -0.8497307897 - -0.8464499712 - -0.8431507945 - -0.8402513862 - -0.8372533917 - -0.8340274096 - -0.8306037784 - -0.8273149729 - -0.8239774108 - -0.8207827806 - -0.8171813488 - -0.8138614893 - -0.8107382059 - -0.8073596358 - -0.8037371635 - -0.8004843593 - -0.7971342206 - -0.7933956981 - -0.7897211909 - -0.7862733006 - -0.7833740115 - -0.7798828483 - -0.7758244276 - -0.7719283104 - -0.7682942748 - -0.7648082972 - -0.7609711289 - -0.7571623325 - -0.7533744574 - -0.7501770258 - -0.7469807267 - -0.7433284521 - -0.7395719290 - -0.7358918786 - -0.7321657538 - -0.7283255458 - -0.7244926095 - -0.7208239436 - -0.7169869542 - -0.7131971121 - -0.7093888521 - -0.7057750821 - -0.7019401193 - -0.6981042624 - -0.6942966580 - -0.6908972859 - -0.6874795556 - -0.6837815046 - -0.6798439026 - -0.6758222580 - -0.6719219089 - -0.6680779457 - -0.6640437841 - -0.6602395773 - -0.6569831967 - -0.6532425880 - -0.6492531300 - -0.6453150511 - -0.6414300799 - -0.6376284361 - -0.6338373423 - -0.6298859715 - -0.6258993149 - -0.6223650575 - -0.6189274192 - -0.6152597666 - -0.6116107702 - -0.6075147390 - -0.6033802032 - -0.5994956493 - -0.5961374044 - -0.5925627947 - -0.5887536407 - -0.5848162770 - -0.5812222958 - -0.5775027275 - -0.5735384822 - -0.5698638558 - -0.5662249327 - -0.5627443790 - -0.5590130687 - -0.5550424457 - -0.5510822535 - -0.5473905802 - -0.5433363914 - -0.5396902561 - -0.5360145569 - -0.5327106118 - -0.5288848877 - -0.5249215961 - -0.5211668611 - -0.5181481838 - -0.5148450732 - -0.5112193823 - -0.5073257685 - -0.5035185218 - -0.5002425313 - -0.4967401624 - -0.4928660095 - -0.4890748262 - -0.4853467941 - -0.4822730720 - -0.4788644910 - -0.4755360186 - -0.4719699323 - -0.4683502913 - -0.4648391306 - -0.4615014791 - -0.4582312405 - -0.4546305537 - -0.4508222342 - -0.4471244216 - -0.4438509047 - -0.4407219291 - -0.4374051392 - -0.4339025021 - -0.4308199584 - -0.4275890589 - -0.4241892397 - -0.4205233753 - -0.4170351923 - -0.4138637483 - -0.4108162522 - -0.4076358378 - -0.4044070840 - -0.4011732042 - -0.3977325559 - -0.3943067789 - -0.3912252784 - -0.3884047270 - -0.3855375051 - -0.3824190795 - -0.3791460991 - -0.3757123351 - -0.3721702397 - -0.3691498637 - -0.3661614358 - -0.3632597029 - -0.3603758514 - -0.3570592701 - -0.3539649248 - -0.3511426151 - -0.3484309614 - -0.3456521034 - -0.3425086439 - -0.3390456438 - -0.3360098004 - -0.3333205879 - -0.3305473924 - -0.3277983367 - -0.3251378238 - -0.3219964206 - -0.3191370666 - -0.3160603940 - -0.3134837747 - -0.3107725978 - -0.3077892065 - -0.3051141798 - -0.3025966883 - -0.2996236980 - -0.2966464460 - -0.2937745452 - -0.2913083136 - -0.2890245914 - -0.2863028049 - -0.2829734981 - -0.2802921832 - -0.2781438828 - -0.2757949233 - -0.2732296288 - -0.2699495256 - -0.2675675452 - -0.2652509212 - -0.2629629076 - -0.2601073384 - -0.2573967576 - -0.2550322711 - -0.2528597116 - -0.2503460646 - -0.2475864589 - -0.2452819049 - -0.2430086136 - -0.2406690419 - -0.2382646352 - -0.2357512712 - -0.2334818840 - -0.2311040014 - -0.2288067937 - -0.2263576984 - -0.2241063118 - -0.2218507826 - -0.2198276371 - -0.2174234986 - -0.2153319865 - -0.2128679305 - -0.2108463049 - -0.2085122168 - -0.2065403759 - -0.2042842358 - -0.2019504160 - -0.1999369264 - -0.1976863891 - -0.1956792176 - -0.1934187412 - -0.1916028112 - -0.1896175146 - -0.1875889301 - -0.1853924394 - -0.1831197441 - -0.1813291609 - -0.1793800890 - -0.1774000525 - -0.1753469408 - -0.1731537879 - -0.1714340001 - -0.1696012020 - -0.1677574068 - -0.1657483280 - -0.1638659090 - -0.1619920284 - -0.1600212455 - -0.1580269486 - -0.1563365608 - -0.1544833928 - -0.1525236368 - -0.1509670615 - -0.1491631866 - -0.1474527568 - -0.1456179172 - -0.1436592788 - -0.1421188265 - -0.1404774487 - -0.1389001459 - -0.1371283233 - -0.1354078352 - -0.1337696761 - -0.1321036220 - -0.1304629892 - -0.1288596541 - -0.1271530092 - -0.1256131977 - -0.1240766495 - -0.1224267483 - -0.1208072454 - -0.1192445010 - -0.1175025403 - -0.1161092967 - -0.1146481335 - -0.1129011214 - -0.1115223318 - -0.1097778976 - -0.1083287895 - -0.1070623845 - -0.1054489240 - -0.1040075421 - -0.1027354747 - -0.1011222601 - -0.0997581035 - -0.0985088944 - -0.0968761072 - -0.0955706909 - -0.0943694562 - -0.0928247273 - -0.0914949477 - -0.0903286636 - -0.0887982845 - -0.0874920860 - -0.0861716866 - -0.0848683268 - -0.0838013962 - -0.0824243799 - -0.0810480863 - -0.0799437314 - -0.0786154121 - -0.0773199797 - -0.0760891363 - -0.0750372857 - -0.0736812353 - -0.0725290552 - -0.0714212283 - -0.0698387697 - -0.0688299313 - -0.0676477998 - -0.0665192157 - -0.0653444752 - -0.0640017092 - -0.0630603582 - -0.0619689040 - -0.0606572852 - -0.0597106852 - -0.0586763546 - -0.0573924892 - -0.0564599559 - -0.0554440916 - -0.0543545969 - -0.0531799309 - -0.0522159860 - -0.0509578437 - -0.0499976128 - -0.0491701066 - -0.0479567833 - -0.0470716581 - -0.0459731966 - -0.0449507907 - -0.0441269949 - -0.0431826040 - -0.0419972278 - -0.0410693176 - -0.0402506627 - -0.0391248092 - -0.0382250473 - -0.0374614708 - -0.0363474414 - -0.0355902538 - -0.0346378051 - -0.0339494795 - -0.0328593664 - -0.0321008191 - -0.0311407074 - -0.0302454196 - -0.0295773149 - -0.0287654102 - -0.0276862271 - -0.0269414708 - -0.0262555964 - -0.0252261385 - -0.0244785063 - -0.0239168368 - -0.0231876373 - -0.0222638734 - -0.0213970952 - -0.0207880251 - -0.0196245834 - -0.0190497115 - -0.0178926755 - -0.0170040857 - -0.0164270345 - -0.0158730038 - -0.0150584821 - -0.0141429212 - -0.0136294942 - -0.0130176358 - -0.0122714322 - -0.0114019625 - -0.0109055694 - -0.0103398282 - -0.0095594674 - -0.0088141542 - -0.0083683245 - -0.0078545120 - -0.0071528144 - -0.0065411776 - -0.0060782917 - -0.0056648031 - -0.0048794374 - -0.0042760316 - -0.0038773622 - -0.0035468731 - -0.0027993377 - -0.0021798834 - -0.0018000305 - -0.0015804954 - -0.0011438522 - -0.0003029890 - 0.0001054574 - 0.0002845600 - 0.0005931407 - 0.0012437273 - 0.0018651653 - 0.0020665191 - 0.0022712462 - 0.0025909860 - 0.0034478977 - 0.0037182868 - 0.0038283691 - 0.0040633064 - 0.0045434721 - 0.0051647332 - 0.0053659081 - 0.0055658873 - 0.0059101302 - 0.0062282737 - 0.0066929292 - 0.0069599282 - 0.0073013660 - 0.0074966606 - 0.0075759850 - 0.0077534392 - 0.0081315320 - 0.0086682197 - 0.0088241901 - 0.0089291297 - 0.0089790318 - 0.0093295034 - 0.0095363641 - 0.0100321276 - 0.0101848375 - 0.0105010131 - 0.0105711529 - 0.0106610470 - 0.0107164243 - 0.0109789874 - 0.0110725304 - 0.0112888468 - 0.0116689252 - 0.0119987102 - 0.0120707648 - 0.0121323233 - 0.0121871196 - 0.0124416491 - 0.0125213265 - 0.0126306908 - 0.0128373234 - 0.0128873102 - 0.0129032424 - 0.0130501054 - 0.0135900341 - 0.0137452967 - 0.0137476362 - 0.0137521317 - 0.0139532415 - 0.0140506038 - 0.0141180772 - 0.0141279129 - 0.0143048605 - 0.0143290069 - 0.0144240679 - 0.0143681215 - 0.0145191252 - 0.0146048693 - 0.0146941431 - 0.0148717575 - 0.0148433466 - 0.0147941690 - 0.0148933232 - 0.0150294527 - 0.0150805833 - 0.0150387827 - 0.0151038626 - 0.0152194183 - 0.0153031237 - 0.0152818272 - 0.0154946074 - 0.0154473372 - 0.0154972598 - 0.0154346153 - 0.0155757833 - 0.0152087454 - 0.0151876397 - 0.0153327258 - 0.0153986681 - 0.0154432226 - 0.0153463408 - 0.0155136129 - 0.0155095831 - 0.0156049142 - 0.0157204084 - 0.0156328082 - 0.0153386574 - 0.0154611859 - 0.0153608173 - 0.0154020656 - 0.0154264309 - 0.0155418571 - 0.0154735167 - 0.0151820546 - 0.0152425310 - 0.0152386483 - 0.0153183369 - 0.0154863847 - 0.0154513298 - 0.0153608099 - 0.0152055249 - 0.0151528679 - 0.0152378669 - 0.0153058842 - 0.0152255725 - 0.0148493983 - 0.0148530882 - 0.0150149856 - 0.0149964457 - 0.0145487208 - 0.0146137318 - 0.0146981599 - 0.0147596952 - 0.0148766674 - 0.0145116551 - 0.0144606251 - 0.0145743210 - 0.0143544124 - 0.0144171827 - 0.0144109353 - 0.0143889692 - 0.0142693855 - 0.0141479503 - 0.0140792839 - 0.0139313098 - 0.0139456885 - 0.0139407162 - 0.0140071707 - 0.0137536814 - 0.0136547424 - 0.0137225874 - 0.0134374769 - 0.0135970749 - 0.0136420559 - 0.0133476723 - 0.0133141801 - 0.0130090639 - 0.0129314074 - 0.0130487969 - 0.0128382333 - 0.0128258066 - 0.0129334079 - 0.0126340091 - 0.0126889544 - 0.0124087241 - 0.0123310760 - 0.0121641066 - 0.0122679090 - 0.0123504959 - 0.0120501397 - 0.0118879490 - 0.0117924120 - 0.0117387231 - 0.0116134426 - 0.0116206855 - 0.0112675568 - 0.0114403795 - 0.0111508267 - 0.0112039046 - 0.0109126549 - 0.0108563239 - 0.0107712802 - 0.0107408026 - 0.0106115388 - 0.0105823483 - 0.0105007812 - 0.0104377773 - 0.0102010248 - 0.0102373697 - 0.0101125017 - 0.0101346839 - 0.0098493872 - 0.0095773488 - 0.0096734185 - 0.0096320156 - 0.0095322300 - 0.0091717020 - 0.0089486483 - 0.0089933621 - 0.0089713540 - 0.0088685285 - 0.0087665059 - 0.0085710194 - 0.0085664215 - 0.0083513288 - 0.0082349675 - 0.0082949363 - 0.0080454284 - 0.0077777379 - 0.0077307955 - 0.0076738116 - 0.0073263696 - 0.0074072154 - 0.0071581872 - 0.0071631297 - 0.0072138654 - 0.0070584211 - 0.0066446196 - 0.0065036444 - 0.0065961927 - 0.0064664353 - 0.0061908104 - 0.0060428800 - 0.0061484501 - 0.0060452567 - 0.0057484536 - 0.0055048717 - 0.0053287838 - 0.0055028955 - 0.0053100483 - 0.0050973026 - 0.0049751857 - 0.0048240926 - 0.0049550394 - 0.0047341762 - 0.0045335134 - 0.0042630155 - 0.0040688338 - 0.0039695231 - 0.0038798349 - 0.0039606905 - 0.0038169650 - 0.0036764331 - 0.0033940915 - 0.0033989614 - 0.0031147581 - 0.0029394971 - 0.0026083570 - 0.0024669375 - 0.0023108423 - 0.0022266349 - 0.0021911543 - 0.0023718495 - 0.0023226431 - 0.0020486331 - 0.0020234417 - 0.0018684771 - 0.0016611535 - 0.0015840288 - 0.0013411324 - 0.0013401331 - 0.0012790319 - 0.0009622527 - 0.0008307314 - 0.0002403352 - 0.0002348647 - 0.0000813287 - -0.0000203829 - -0.0001972746 - -0.0002620723 - -0.0004137922 - -0.0004125983 - -0.0006640740 - -0.0005753515 - -0.0004750490 - -0.0007512514 - -0.0008462630 - -0.0014250660 - -0.0014588442 - -0.0014701299 - -0.0016140006 - -0.0016092528 - -0.0016348846 - -0.0022148071 - -0.0022440450 - -0.0021999124 - -0.0021791402 - -0.0023413049 - -0.0024114028 - -0.0027750591 - -0.0026847711 - -0.0026855636 - -0.0029765014 - -0.0032923138 - -0.0032039052 - -0.0031063268 - -0.0031514363 - -0.0034633214 - -0.0034758793 - -0.0036998643 - -0.0036697369 - -0.0039540054 - -0.0040325336 - -0.0039867228 - -0.0041047642 - -0.0041262731 - -0.0042035216 - -0.0044132685 - -0.0043340251 - -0.0044349385 - -0.0046078898 - -0.0045394609 - -0.0043983413 - -0.0044981604 - -0.0044315914 - -0.0045968853 - -0.0045112241 - -0.0045895334 - -0.0047210641 - -0.0046447534 - -0.0045615155 - -0.0045789797 - -0.0047424100 - -0.0047008954 - -0.0047050267 - -0.0043664435 - -0.0042691343 - -0.0043670377 - -0.0040691001 - -0.0041292803 - -0.0040340386 - -0.0039270418 - -0.0037016952 - -0.0037374897 - -0.0036350712 - -0.0036228681 - -0.0035934709 - -0.0031661578 - -0.0030213208 - -0.0026212190 - -0.0025333758 - -0.0022229799 - -0.0021217256 - -0.0018962892 - -0.0015135012 - -0.0011933581 - -0.0007910533 - -0.0006551025 - -0.0005225143 - -0.0000096196 - 0.0003082654 - 0.0007349048 - 0.0013340763 - 0.0014405935 - 0.0018388124 - 0.0023233001 - 0.0028596837 - 0.0034869218 - 0.0042778142 - 0.0046764426 - 0.0051283590 - 0.0056097023 - 0.0062768334 - 0.0069810594 - 0.0076634623 - 0.0084645832 - 0.0094928388 - 0.0101111103 - 0.0107667157 - 0.0115403188 - 0.0125393514 - 0.0136840865 - 0.0145162074 - 0.0151055083 - 0.0159880426 - 0.0171817280 - 0.0186765548 - 0.0198276732 - 0.0209424254 - 0.0221312456 - 0.0233903602 - 0.0245945230 - 0.0259195250 - 0.0273587219 - 0.0291189030 - 0.0305923223 - 0.0319773592 - 0.0333061889 - 0.0349022225 - 0.0366201922 - 0.0385911018 - 0.0403966084 - 0.0422062501 - 0.0440192483 - 0.0458959080 - 0.0480007827 - 0.0503442958 - 0.0524849445 - 0.0546137728 - 0.0567363352 - 0.0590798259 - 0.0617026761 - 0.0642245710 - 0.0667879283 - 0.0695874467 - 0.0722816586 - 0.0749561638 - 0.0777577162 - 0.0809370428 - 0.0841510668 - 0.0874715000 - 0.0904841870 - 0.0935440660 - 0.0970351472 - 0.1005307883 - 0.1042287797 - 0.1079339162 - 0.1118462607 - 0.1155760735 - 0.1192265600 - 0.1230983213 - 0.1273587644 - 0.1318171173 - 0.1363892257 - 0.1403163373 - 0.1445975900 - 0.1492194235 - 0.1544634998 - 0.1596572548 - 0.1643968225 - 0.1692304611 - 0.1742396951 - 0.1796170473 - 0.1849792600 - 0.1900253892 - 0.1957366318 - 0.2017141879 - 0.2077648342 - 0.2135698795 - 0.2196341455 - 0.2261019945 - 0.2324539274 - 0.2385717928 - 0.2449440062 - 0.2517271042 - 0.2591000795 - 0.2664556503 - 0.2730277479 - 0.2795947194 - 0.2865817547 - 0.2943940163 - 0.3025267720 - 0.3100652695 - 0.3177496195 - 0.3254315853 - 0.3334704638 - 0.3419232965 - 0.3504536152 - 0.3589614034 - 0.3671241999 - 0.3756383061 - 0.3843245506 - 0.3936106563 - 0.4024384022 - 0.4113681316 - 0.4202393591 - 0.4298231602 - 0.4393315315 - 0.4487228096 - 0.4580789804 - 0.4685266018 - 0.4790301025 - 0.4891119599 - 0.4987818599 - 0.5086616278 - 0.5192956328 - 0.5304939747 - 0.5405598283 - 0.5507802963 - 0.5612856150 - 0.5728601217 - 0.5834167600 - 0.5939168930 - 0.6048318148 - 0.6166379452 - 0.6281226873 - 0.6391909122 - 0.6508965492 - 0.6624473333 - 0.6741781235 - 0.6854132414 - 0.6968763471 - 0.7089587450 - 0.7206298113 - 0.7326080203 - 0.7441287041 - 0.7556165457 - 0.7678375840 - 0.7799243331 - 0.7922016382 - 0.8037468195 - 0.8158904314 - 0.8278160095 - 0.8405177593 - 0.8530864120 - 0.8647774458 - 0.8768581152 - 0.8884907961 - 0.9010756016 - 0.9128893018 - 0.9251848459 - 0.9372250438 - 0.9493426085 - 0.9621087313 - 0.9742906690 - 0.9860642552 - 0.9980189800 - 1.0098619461 - 1.0220500231 - 1.0339132547 - 1.0463864803 - 1.0584907532 - 1.0702564716 - 1.0812065601 - 1.0926246643 - 1.1047294140 - 1.1162984371 - 1.1273002625 - 1.1377865076 - 1.1490461826 - 1.1610908508 - 1.1727687120 - 1.1843824387 - 1.1957347393 - 1.2061817646 - 1.2164053917 - 1.2265059948 - 1.2369477749 - 1.2477626801 - 1.2581112385 - 1.2686786652 - 1.2787884474 - 1.2889789343 - 1.2988070250 - 1.3083357811 - 1.3171324730 - 1.3266716003 - 1.3360795975 - 1.3457273245 - 1.3551985025 - 1.3646681309 - 1.3736848831 - 1.3825950623 - 1.3917131424 - 1.4000061750 - 1.4081853628 - 1.4158337116 - 1.4236619473 - 1.4321728945 - 1.4399113655 - 1.4472457170 - 1.4548358917 - 1.4622058868 - 1.4700775146 - 1.4766919613 - 1.4830021858 - 1.4901978970 - 1.4975812435 - 1.5039036274 - 1.5093305111 - 1.5152413845 - 1.5215740204 - 1.5280654430 - 1.5334819555 - 1.5386152267 - 1.5439400673 - 1.5496380329 - 1.5550915003 - 1.5591263771 - 1.5639686584 - 1.5685381889 - 1.5729205608 - 1.5774693489 - 1.5819702148 - 1.5863311291 - 1.5900068283 - 1.5936434269 - 1.5966548920 - 1.6004097462 - 1.6037688255 - 1.6067860126 - 1.6095337868 - 1.6124255657 - 1.6146417856 - 1.6168649197 - 1.6185384989 - 1.6206929684 - 1.6231704950 - 1.6257306337 - 1.6273469925 - 1.6286633015 - 1.6303673983 - 1.6318304539 - 1.6326379776 - 1.6334965229 - 1.6341787577 - 1.6350429058 - 1.6361799240 - 1.6367759705 - 1.6371334791 - 1.6374456882 - 1.6369955540 - 1.6371359825 - 1.6369445324 - 1.6368559599 - 1.6364326477 - 1.6356703043 - 1.6352114677 - 1.6348853111 - 1.6338663101 - 1.6323509216 - 1.6312042475 - 1.6303710938 - 1.6295549870 - 1.6280745268 - 1.6257717609 - 1.6231795549 - 1.6213932037 - 1.6201958656 - 1.6187100410 - 1.6165075302 - 1.6145999432 - 1.6122090816 - 1.6095386744 - 1.6061675549 - 1.6033157110 - 1.6008411646 - 1.5982353687 - 1.5950772762 - 1.5918483734 - 1.5886278152 - 1.5858812332 - 1.5827821493 - 1.5790978670 - 1.5750657320 - 1.5717022419 - 1.5680173635 - 1.5643395185 - 1.5608649254 - 1.5573823452 - 1.5537084341 - 1.5496590137 - 1.5454597473 - 1.5412991047 - 1.5372798443 - 1.5322871208 - 1.5275582075 - 1.5230467319 - 1.5186557770 - 1.5145685673 - 1.5099099874 - 1.5049471855 - 1.5002214909 - 1.4953484535 - 1.4905815125 - 1.4858970642 - 1.4811301231 - 1.4760394096 - 1.4702314138 - 1.4647116661 - 1.4594078064 - 1.4549924135 - 1.4500050545 - 1.4445353746 - 1.4379794598 - 1.4323199987 - 1.4270440340 - 1.4221634865 - 1.4162144661 - 1.4103314877 - 1.4047565460 - 1.3990249634 - 1.3925731182 - 1.3870435953 - 1.3817362785 - 1.3758180141 - 1.3698453903 - 1.3637108803 - 1.3573968410 - 1.3511881828 - 1.3448193073 - 1.3388881683 - 1.3329870701 - 1.3272278309 - 1.3211891651 - 1.3147130013 - 1.3085875511 - 1.3020683527 - 1.2960810661 - 1.2900078297 - 1.2837377787 - 1.2773003578 - 1.2706710100 - 1.2637335062 - 1.2574974298 - 1.2509973049 - 1.2448977232 - 1.2382018566 - 1.2318103313 - 1.2250275612 - 1.2184056044 - 1.2118449211 - 1.2055302858 - 1.1990585327 - 1.1924359798 - 1.1856153011 - 1.1792567968 - 1.1729681492 - 1.1663289070 - 1.1598973274 - 1.1529860497 - 1.1465413570 - 1.1404004097 - 1.1337387562 - 1.1269054413 - 1.1200625896 - 1.1132611036 - 1.1065632105 - 1.0997205973 - 1.0927826166 - 1.0863926411 - 1.0803635120 - 1.0737442970 - 1.0670630932 - 1.0602313280 - 1.0535706282 - 1.0469907522 - 1.0402221680 - 1.0333808661 - 1.0269514322 - 1.0205340385 - 1.0138725042 - 1.0070062876 - 1.0000829697 - 0.9939440489 - 0.9876658916 - 0.9811811447 - 0.9747135639 - 0.9680469036 - 0.9613263607 - 0.9547434449 - 0.9480044842 - 0.9418410063 - 0.9356734157 - 0.9291871190 - 0.9224577546 - 0.9159779549 - 0.9094940424 - 0.9030026197 - 0.8964437246 - 0.8900725842 - 0.8841074705 - 0.8779371977 - 0.8715175986 - 0.8646386862 - 0.8586020470 - 0.8525811434 - 0.8459234834 - 0.8392367363 - 0.8332017660 - 0.8273322582 - 0.8215210438 - 0.8148334622 - 0.8085495234 - 0.8023957014 - 0.7961566448 - 0.7898764610 - 0.7837527990 - 0.7779271603 - 0.7719451189 - 0.7662600875 - 0.7600846291 - 0.7535698414 - 0.7475508451 - 0.7419313788 - 0.7360157967 - 0.7302229404 - 0.7240267992 - 0.7181329727 - 0.7125363350 - 0.7070051432 - 0.7010076046 - 0.6949559450 - 0.6892980337 - 0.6835454702 - 0.6781513691 - 0.6724134684 - 0.6663540006 - 0.6608515382 - 0.6552163363 - 0.6494990587 - 0.6441071033 - 0.6383088827 - 0.6328789592 - 0.6276726723 - 0.6219521761 - 0.6164453626 - 0.6110517979 - 0.6060236692 - 0.6006526351 - 0.5950421095 - 0.5897294283 - 0.5841079354 - 0.5790907145 - 0.5740289092 - 0.5685604215 - 0.5636005998 - 0.5584653616 - 0.5532193184 - 0.5479411483 - 0.5428250432 - 0.5380705595 - 0.5330355167 - 0.5277739167 - 0.5225695372 - 0.5177758336 - 0.5130217671 - 0.5083447695 - 0.5027981997 - 0.4979683757 - 0.4930577278 - 0.4888696671 - 0.4844186306 - 0.4793410301 - 0.4745914638 - 0.4695791602 - 0.4651756287 - 0.4603182375 - 0.4558672309 - 0.4510235786 - 0.4466159642 - 0.4421808124 - 0.4377650023 - 0.4332928658 - 0.4286903739 - 0.4241680205 - 0.4197187722 - 0.4154871702 - 0.4110836089 - 0.4065833390 - 0.4019473493 - 0.3979985118 - 0.3935896754 - 0.3894793987 - 0.3849463761 - 0.3809676170 - 0.3767967820 - 0.3729606867 - 0.3685026169 - 0.3646531403 - 0.3605788946 - 0.3567845821 - 0.3524112701 - 0.3483405709 - 0.3445388675 - 0.3407482505 - 0.3367536962 - 0.3328686953 - 0.3291259408 - 0.3253984451 - 0.3213326335 - 0.3178693652 - 0.3138684630 - 0.3103492856 - 0.3065226376 - 0.3031874597 - 0.2993147671 - 0.2955599427 - 0.2919710279 - 0.2885680795 - 0.2848637402 - 0.2810859382 - 0.2776803672 - 0.2742308974 - 0.2708531022 - 0.2675782144 - 0.2641334534 - 0.2604383230 - 0.2572523654 - 0.2538607717 - 0.2505462766 - 0.2471935898 - 0.2438096106 - 0.2407319844 - 0.2373725772 - 0.2343288362 - 0.2310159802 - 0.2279100418 - 0.2247381657 - 0.2218979597 - 0.2186187208 - 0.2159202695 - 0.2126194686 - 0.2092003673 - 0.2063493431 - 0.2033587843 - 0.2004368454 - 0.1974949539 - 0.1947095990 - 0.1915876865 - 0.1889546067 - 0.1860306263 - 0.1831727922 - 0.1803592741 - 0.1777568609 - 0.1747100353 - 0.1718484163 - 0.1692086756 - 0.1663399339 - 0.1639321744 - 0.1611554921 - 0.1585484743 - 0.1560783684 - 0.1535322368 - 0.1507309526 - 0.1484187394 - 0.1456463188 - 0.1432467252 - 0.1408428252 - 0.1382786334 - 0.1355253756 - 0.1329111308 - 0.1306745112 - 0.1280377209 - 0.1257447004 - 0.1233580783 - 0.1210557520 - 0.1186280847 - 0.1164542809 - 0.1138807982 - 0.1117364913 - 0.1092412695 - 0.1071183383 - 0.1048593000 - 0.1027083248 - 0.1004247814 - 0.0983514637 - 0.0959446728 - 0.0938346088 - 0.0917854756 - 0.0896515697 - 0.0873523131 - 0.0855728835 - 0.0833459944 - 0.0814781711 - 0.0794788748 - 0.0774271265 - 0.0755615532 - 0.0733540356 - 0.0715218410 - 0.0694856197 - 0.0674985796 - 0.0652559176 - 0.0635932535 - 0.0615298077 - 0.0596553087 - 0.0578760356 - 0.0558658242 - 0.0540580377 - 0.0521428287 - 0.0503591374 - 0.0482486933 - 0.0466339141 - 0.0449728891 - 0.0430918969 - 0.0413965136 - 0.0394349173 - 0.0378276035 - 0.0364547446 - 0.0345226452 - 0.0328672379 - 0.0312466919 - 0.0298188403 - 0.0282325409 - 0.0266437884 - 0.0252942555 - 0.0240524262 - 0.0223426688 - 0.0210523326 - 0.0195464753 - 0.0184278283 - 0.0172081180 - 0.0156195592 - 0.0144741181 - 0.0136399027 - 0.0120625105 - 0.0106746778 - 0.0097247884 - 0.0086010620 - 0.0072240643 - 0.0056296587 - 0.0046598725 - 0.0038939901 - 0.0024667494 - -0.0006598383 - -0.0016826410 - -0.0047296602 - -0.0057651708 - -0.0061151478 - -0.0073067201 - -0.0086397855 - -0.0095527004 - -0.0102404244 - -0.0113210557 - -0.0123981722 - -0.0132357944 - -0.0139396340 - -0.0149224270 - -0.0158181675 - -0.0166422725 - -0.0172825418 - -0.0179244652 - -0.0189625062 - -0.0198413506 - -0.0204746667 - -0.0209978353 - -0.0215486605 - -0.0223266818 - -0.0232662037 - -0.0238561425 - -0.0243122447 - -0.0249344110 - -0.0255326442 - -0.0260688476 - -0.0266125705 - -0.0270143934 - -0.0278551839 - -0.0284313709 - -0.0289553497 - -0.0293414183 - -0.0296900440 - -0.0301662199 - -0.0306699388 - -0.0311886203 - -0.0313458219 - -0.0317083001 - -0.0322413146 - -0.0327800214 - -0.0331153646 - -0.0332080238 - -0.0335556343 - -0.0340243876 - -0.0343982279 - -0.0346646309 - -0.0348409712 - -0.0351926461 - -0.0355428867 - -0.0358308479 - -0.0361421108 - -0.0365371145 - -0.0368335843 - -0.0368716680 - -0.0370679162 - -0.0374260992 - -0.0378767103 - -0.0380561836 - -0.0381590798 - -0.0378710032 - -0.0381399542 - -0.0383354425 - -0.0385406725 - -0.0387482718 - -0.0391415395 - -0.0393278003 - -0.0394679755 - -0.0392583087 - -0.0393145755 - -0.0394467898 - -0.0396535471 - -0.0397477634 - -0.0397088192 - -0.0397976935 - -0.0399683304 - -0.0400176160 - -0.0398989618 - -0.0401048660 - -0.0402427763 - -0.0402865671 - -0.0398657918 - -0.0399688333 - -0.0401394367 - -0.0402193740 - -0.0400721617 - -0.0401413962 - -0.0402183235 - -0.0400583446 - -0.0400722623 - -0.0401961803 - -0.0400388315 - -0.0400802568 - -0.0400813892 - -0.0399597511 - -0.0399639793 - -0.0397190079 - -0.0398015268 - -0.0399533659 - -0.0397908129 - -0.0396877006 - -0.0393682532 - -0.0394288823 - -0.0392531753 - -0.0391702168 - -0.0389253646 - -0.0389822721 - -0.0388138369 - -0.0388462916 - -0.0385925770 - -0.0386083312 - -0.0383779742 - -0.0385779515 - -0.0383632891 - -0.0382859260 - -0.0381149799 - -0.0378214568 - -0.0377991423 - -0.0375043824 - -0.0375175551 - -0.0372871421 - -0.0369310752 - -0.0369247608 - -0.0369490646 - -0.0366575643 - -0.0365961641 - -0.0363649353 - -0.0361100771 - -0.0359958857 - -0.0358056799 - -0.0357138142 - -0.0357569605 - -0.0354901589 - -0.0351655781 - -0.0347587392 - -0.0348223969 - -0.0346297286 - -0.0344497934 - -0.0340604521 - -0.0338392481 - -0.0338745415 - -0.0336776040 - -0.0335466601 - -0.0332464390 - -0.0328691974 - -0.0326993018 - -0.0329136625 - -0.0325829387 - -0.0323287100 - -0.0320348814 - -0.0317071564 - -0.0316105485 - -0.0313218050 - -0.0309858993 - -0.0308354739 - -0.0305362102 - -0.0303309299 - -0.0300909560 - -0.0298759062 - -0.0296539143 - -0.0294705406 - -0.0293026231 - -0.0290328115 - -0.0287643373 - -0.0284659192 - -0.0283832029 - -0.0281345472 - -0.0278233588 - -0.0277014300 - -0.0273442194 - -0.0267763305 - -0.0266853962 - -0.0264326073 - -0.0264356658 - -0.0261877924 - -0.0258743837 - -0.0254308544 - -0.0251944177 - -0.0248920061 - -0.0248518661 - -0.0245724618 - -0.0243091173 - -0.0240390673 - -0.0237248410 - -0.0232829973 - -0.0229732208 - -0.0229776688 - -0.0227208957 - -0.0223558806 - -0.0220978372 - -0.0219776630 - -0.0214880519 - -0.0213722885 - -0.0209129378 - -0.0207680985 - -0.0205302052 - -0.0200934540 - -0.0199280567 - -0.0195502974 - -0.0193698127 - -0.0188250579 - -0.0186284147 - -0.0182599723 - -0.0181454569 - -0.0178600661 - -0.0174260139 - -0.0171023626 - -0.0168425888 - -0.0166218467 - -0.0164669007 - -0.0160216093 - -0.0155532211 - -0.0153927915 - -0.0151338475 - -0.0150444685 - -0.0145765441 - -0.0141186146 - -0.0138570108 - -0.0135257039 - -0.0133045176 - -0.0131405564 - -0.0128211174 - -0.0123380488 - -0.0119113429 - -0.0117326519 - -0.0115737086 - -0.0111280493 - -0.0107310461 - -0.0107337544 - -0.0103018852 - -0.0099391313 - -0.0095295226 - -0.0089651523 - -0.0086480416 - -0.0088340761 - -0.0084465239 - -0.0080621103 - -0.0075521050 - -0.0073784497 - -0.0069522206 - -0.0065847412 - -0.0061945152 - -0.0059358887 - -0.0056520812 - -0.0054094028 - -0.0047684349 - -0.0045550335 - -0.0042662844 - -0.0038890224 - -0.0036438797 - -0.0031995382 - -0.0030524079 - -0.0027385112 - -0.0023791455 - -0.0019703023 - -0.0015005469 - -0.0010953378 - -0.0007406063 - -0.0004139803 - -0.0001892503 - 0.0001128446 - 0.0007162597 - 0.0010414198 - 0.0012481753 - 0.0014667921 - 0.0018131267 - 0.0024130400 - 0.0026930477 - 0.0028111842 - 0.0034772027 - 0.0039037503 - 0.0042676199 - 0.0047416892 - 0.0049731061 - 0.0052272957 - 0.0058616474 - 0.0059873741 - 0.0066381413 - 0.0069912206 - 0.0071606729 - 0.0075969063 - 0.0076596960 - 0.0082330182 - 0.0085411668 - 0.0089767631 - 0.0092549920 - 0.0097811194 - 0.0101276012 - 0.0106315659 - 0.0108294506 - 0.0113029946 - 0.0119061386 - 0.0121016037 - 0.0124507062 - 0.0126914904 - 0.0131393326 - 0.0136364289 - 0.0137564009 - 0.0143087264 - 0.0149128437 - 0.0150385313 - 0.0154207414 - 0.0159719083 - 0.0163962804 - 0.0166955739 - 0.0170351304 - 0.0174155869 - 0.0179501548 - 0.0184975453 - 0.0185348149 - 0.0188865028 - 0.0194161758 - 0.0201000534 - 0.0204446968 - 0.0206324607 - 0.0210099965 - 0.0212825052 - 0.0216548163 - 0.0218526311 - 0.0221912358 - 0.0228186268 - 0.0231858883 - 0.0234943293 - 0.0237872936 - 0.0241190419 - 0.0245759226 - 0.0249880720 - 0.0251020286 - 0.0256330855 - 0.0259794928 - 0.0265845545 - 0.0268614776 - 0.0272682495 - 0.0274569541 - 0.0276641622 - 0.0278788731 - 0.0282721594 - 0.0286743790 - 0.0290934145 - 0.0291195456 - 0.0293908715 - 0.0296862256 - 0.0302863009 - 0.0304279365 - 0.0305550825 - 0.0308720376 - 0.0310360081 - 0.0311823133 - 0.0317573845 - 0.0319383666 - 0.0320463404 - 0.0321862288 - 0.0323039442 - 0.0323433913 - 0.0327646807 - 0.0327053480 - 0.0328590237 - 0.0327905491 - 0.0331026018 - 0.0330456160 - 0.0332732014 - 0.0332263485 - 0.0332394652 - 0.0331688076 - 0.0332760625 - 0.0330759026 - 0.0330668949 - 0.0328282267 - 0.0329377092 - 0.0328676589 - 0.0325632021 - 0.0321329422 - 0.0319140926 - 0.0316878743 - 0.0317753181 - 0.0316773020 - 0.0311677698 - 0.0307749677 - 0.0304231513 - 0.0299365781 - 0.0295254365 - 0.0291016046 - 0.0285935495 - 0.0283749029 - 0.0274119005 - 0.0266156774 - 0.0258283522 - 0.0254727527 - 0.0248394292 - 0.0239679404 - 0.0225434788 - 0.0215146840 - 0.0206022114 - 0.0201726928 - 0.0193272009 - 0.0181062687 - 0.0168852583 - 0.0155699514 - 0.0143758049 - 0.0129844574 - 0.0116374874 - 0.0102009689 - 0.0084783994 - 0.0066974186 - 0.0049550971 - 0.0032199807 - 0.0016285279 - 0.0000875127 - -0.0021045762 - -0.0041974201 - -0.0064127655 - -0.0085702352 - -0.0110775214 - -0.0131425252 - -0.0156143438 - -0.0184127372 - -0.0212044809 - -0.0241829045 - -0.0267825499 - -0.0296839569 - -0.0325569659 - -0.0356950760 - -0.0389190689 - -0.0425454676 - -0.0459556207 - -0.0494718291 - -0.0529951528 - -0.0567767546 - -0.0608848855 - -0.0651127249 - -0.0694041923 - -0.0738104284 - -0.0780977160 - -0.0824009702 - -0.0870111734 - -0.0920630768 - -0.0973673835 - -0.1026942655 - -0.1073079407 - -0.1125609279 - -0.1181423217 - -0.1241878793 - -0.1303647757 - -0.1364091188 - -0.1422567070 - -0.1486711353 - -0.1552641392 - -0.1618725061 - -0.1686410010 - -0.1756277531 - -0.1832947731 - -0.1908646226 - -0.1981300712 - -0.2054902911 - -0.2134950459 - -0.2219747454 - -0.2298928648 - -0.2380918562 - -0.2466628850 - -0.2558656335 - -0.2647565603 - -0.2738046944 - -0.2829245329 - -0.2922897935 - -0.3021160364 - -0.3125381768 - -0.3226763010 - -0.3329307735 - -0.3432073295 - -0.3540568352 - -0.3648387492 - -0.3761479855 - -0.3871461153 - -0.3983252943 - -0.4102896452 - -0.4220304489 - -0.4342810512 - -0.4465297163 - -0.4589099288 - -0.4716666043 - -0.4846339822 - -0.4978513122 - -0.5108832121 - -0.5243971348 - -0.5381035805 - -0.5519592166 - -0.5661383867 - -0.5800544024 - -0.5942475200 - -0.6080845594 - -0.6228951216 - -0.6376073360 - -0.6528273821 - -0.6680472493 - -0.6833128333 - -0.6990973353 - -0.7145693898 - -0.7312587500 - -0.7472816110 - -0.7636600137 - -0.7798109651 - -0.7956892252 - -0.8123613596 - -0.8289696574 - -0.8462896347 - -0.8629918694 - -0.8795426488 - -0.8968987465 - -0.9149703979 - -0.9321563244 - -0.9491599798 - -0.9671512842 - -0.9854471684 - -1.0031933784 - -1.0212311745 - -1.0390965939 - -1.0572419167 - -1.0751438141 - -1.0935549736 - -1.1115916967 - -1.1297662258 - -1.1478549242 - -1.1660488844 - -1.1848211288 - -1.2036923170 - -1.2226400375 - -1.2409262657 - -1.2598500252 - -1.2784509659 - -1.2965266705 - -1.3146221638 - -1.3328081369 - -1.3513550758 - -1.3701514006 - -1.3886649609 - -1.4074708223 - -1.4258099794 - -1.4440721273 - -1.4612017870 - -1.4792311192 - -1.4979871511 - -1.5167090893 - -1.5347702503 - -1.5520411730 - -1.5701062679 - -1.5888774395 - -1.6069508791 - -1.6239082813 - -1.6397557259 - -1.6568758488 - -1.6745220423 - -1.6915624142 - -1.7091410160 - -1.7269105911 - -1.7440549135 - -1.7603808641 - -1.7757450342 - -1.7920683622 - -1.8083711863 - -1.8247232437 - -1.8401627541 - -1.8558303118 - -1.8717913628 - -1.8875342607 - -1.9021303654 - -1.9165798426 - -1.9311760664 - -1.9453217983 - -1.9595102072 - -1.9733116627 - -1.9874893427 - -2.0012621880 - -2.0150775909 - -2.0286550522 - -2.0419554710 - -2.0550398827 - -2.0674505234 - -2.0803489685 - -2.0932965279 - -2.1047348976 - -2.1163601875 - -2.1279678345 - -2.1398727894 - -2.1517801285 - -2.1619620323 - -2.1720540524 - -2.1828491688 - -2.1937212944 - -2.2038011551 - -2.2137701511 - -2.2232644558 - -2.2325592041 - -2.2416009903 - -2.2502841949 - -2.2588398457 - -2.2670855522 - -2.2754311562 - -2.2832219601 - -2.2907795906 - -2.2982931137 - -2.3055975437 - -2.3119530678 - -2.3187992573 - -2.3258490562 - -2.3321437836 - -2.3382050991 - -2.3437740803 - -2.3493173122 - -2.3553743362 - -2.3604633808 - -2.3654520512 - -2.3710198402 - -2.3758797646 - -2.3798210621 - -2.3831105232 - -2.3868298531 - -2.3907079697 - -2.3943321705 - -2.3969433308 - -2.4000101089 - -2.4025177956 - -2.4058642387 - -2.4077863693 - -2.4091606140 - -2.4107091427 - -2.4127819538 - -2.4144630432 - -2.4157531261 - -2.4170169830 - -2.4175596237 - -2.4178950787 - -2.4179182053 - -2.4188311100 - -2.4187550545 - -2.4182302952 - -2.4176738262 - -2.4172861576 - -2.4173479080 - -2.4164988995 - -2.4143867493 - -2.4122710228 - -2.4111125469 - -2.4105908871 - -2.4090769291 - -2.4065577984 - -2.4039530754 - -2.4012789726 - -2.3982777596 - -2.3957180977 - -2.3930239677 - -2.3904047012 - -2.3875374794 - -2.3847155571 - -2.3809061050 - -2.3767688274 - -2.3729662895 - -2.3694272041 - -2.3655862808 - -2.3609652519 - -2.3559966087 - -2.3516955376 - -2.3474996090 - -2.3431434631 - -2.3378376961 - -2.3322191238 - -2.3270618916 - -2.3218221664 - -2.3154621124 - -2.3092389107 - -2.3038852215 - -2.2987186909 - -2.2929441929 - -2.2862725258 - -2.2805848122 - -2.2749390602 - -2.2678439617 - -2.2602427006 - -2.2531187534 - -2.2469859123 - -2.2413110733 - -2.2345385551 - -2.2268023491 - -2.2184660435 - -2.2107713223 - -2.2037549019 - -2.1967778206 - -2.1893076897 - -2.1815502644 - -2.1737971306 - -2.1659307480 - -2.1581091881 - -2.1499352455 - -2.1420631409 - -2.1340131760 - -2.1257705688 - -2.1173055172 - -2.1087040901 - -2.1002542973 - -2.0921676159 - -2.0833156109 - -2.0746595860 - -2.0661385059 - -2.0574195385 - -2.0483469963 - -2.0394484997 - -2.0307655334 - -2.0214986801 - -2.0128238201 - -2.0035662651 - -1.9943313599 - -1.9854990244 - -1.9760107994 - -1.9665836096 - -1.9569690228 - -1.9475643635 - -1.9383004904 - -1.9286770821 - -1.9184288979 - -1.9085948467 - -1.8992393017 - -1.8899792433 - -1.8802545071 - -1.8703715801 - -1.8606469631 - -1.8513057232 - -1.8412947655 - -1.8313194513 - -1.8214893341 - -1.8121218681 - -1.8024584055 - -1.7921621799 - -1.7819643021 - -1.7723461390 - -1.7622014284 - -1.7518204451 - -1.7417584658 - -1.7321318388 - -1.7227357626 - -1.7123248577 - -1.7013418674 - -1.6912996769 - -1.6818900108 - -1.6719372272 - -1.6611166000 - -1.6502568722 - -1.6404446363 - -1.6313605309 - -1.6212468147 - -1.6100181341 - -1.5992264748 - -1.5894843340 - -1.5798192024 - -1.5698536634 - -1.5591213703 - -1.5488574505 - -1.5392420292 - -1.5292989016 - -1.5187122822 - -1.5083884001 - -1.4988492727 - -1.4887965918 - -1.4780634642 - -1.4673757553 - -1.4575426579 - -1.4479591846 - -1.4378192425 - -1.4274625778 - -1.4170900583 - -1.4070540667 - -1.3975577354 - -1.3878128529 - -1.3772749901 - -1.3668783903 - -1.3568543196 - -1.3473658562 - -1.3378517628 - -1.3281383514 - -1.3175060749 - -1.3071372509 - -1.2969745398 - -1.2879551649 - -1.2781214714 - -1.2684962749 - -1.2583284378 - -1.2483379841 - -1.2386652231 - -1.2294863462 - -1.2194535732 - -1.2095766068 - -1.1994051933 - -1.1906487942 - -1.1814453602 - -1.1719950438 - -1.1624228954 - -1.1527804136 - -1.1432183981 - -1.1335600615 - -1.1244540215 - -1.1149157286 - -1.1056209803 - -1.0957726240 - -1.0863784552 - -1.0773662329 - -1.0684573650 - -1.0591186285 - -1.0497078896 - -1.0402529240 - -1.0312964916 - -1.0225526094 - -1.0135889053 - -1.0043570995 - -0.9949026704 - -0.9860457778 - -0.9774675369 - -0.9685729742 - -0.9600437284 - -0.9513727427 - -0.9421766400 - -0.9335346818 - -0.9249047637 - -0.9169896841 - -0.9084553123 - -0.8990711570 - -0.8897568583 - -0.8811663389 - -0.8734963536 - -0.8655965924 - -0.8568255901 - -0.8479879498 - -0.8393772840 - -0.8315014243 - -0.8240118623 - -0.8160549402 - -0.8075761795 - -0.7985527515 - -0.7901962996 - -0.7820641994 - -0.7745245099 - -0.7671971321 - -0.7594453692 - -0.7515716553 - -0.7432702184 - -0.7350224257 - -0.7269864082 - -0.7193659544 - -0.7118378878 - -0.7044616342 - -0.6968263388 - -0.6886599660 - -0.6808738708 - -0.6739674211 - -0.6671544313 - -0.6600527763 - -0.6524428129 - -0.6443911791 - -0.6370681524 - -0.6302119493 - -0.6232283115 - -0.6159491539 - -0.6084529161 - -0.6012058258 - -0.5942445993 - -0.5872019529 - -0.5804106593 - -0.5733132362 - -0.5666629076 - -0.5597152114 - -0.5528572798 - -0.5456300974 - -0.5388115048 - -0.5321491361 - -0.5258157849 - -0.5194332600 - -0.5127314925 - -0.5062453747 - -0.4996910989 - -0.4932084382 - -0.4865077734 - -0.4800442755 - -0.4738415480 - -0.4677829444 - -0.4616476893 - -0.4553203583 - -0.4490341842 - -0.4428023100 - -0.4366881847 - -0.4306280017 - -0.4247349203 - -0.4187632799 - -0.4129353464 - -0.4069113731 - -0.4008978605 - -0.3948976398 - -0.3894168437 - -0.3837077916 - -0.3778634667 - -0.3717779517 - -0.3661510348 - -0.3606828749 - -0.3548177779 - -0.3492659032 - -0.3436705172 - -0.3382889032 - -0.3330675066 - -0.3279273510 - -0.3225371838 - -0.3169570863 - -0.3115901649 - -0.3065033257 - -0.3011989892 - -0.2959745526 - -0.2908424139 - -0.2855757177 - -0.2808396816 - -0.2759517133 - -0.2708109915 - -0.2656951249 - -0.2607303858 - -0.2557559013 - -0.2511348128 - -0.2466025651 - -0.2419851720 - -0.2371599823 - -0.2322689891 - -0.2275822610 - -0.2226587385 - -0.2181568146 - -0.2136237025 - -0.2090847641 - -0.2046650350 - -0.2003145814 - -0.1955289692 - -0.1910986304 - -0.1868625283 - -0.1823843569 - -0.1779963523 - -0.1735846400 - -0.1692237705 - -0.1649111807 - -0.1605066806 - -0.1562096775 - -0.1522917449 - -0.1485947073 - -0.1448019445 - -0.1405812949 - -0.1363350749 - -0.1323426962 - -0.1284907907 - -0.1244385689 - -0.1205260232 - -0.1168755889 - -0.1130033359 - -0.1091992185 - -0.1051879525 - -0.1017175764 - -0.0982079729 - -0.0947348028 - -0.0907657221 - -0.0870989338 - -0.0834863931 - -0.0797504932 - -0.0760121346 - -0.0728816167 - -0.0692718625 - -0.0658917129 - -0.0621145479 - -0.0584827662 - -0.0551911667 - -0.0522257984 - -0.0486665070 - -0.0451527797 - -0.0415270105 - -0.0383009091 - -0.0353440419 - -0.0318900682 - -0.0286768470 - -0.0254564304 - -0.0226062685 - -0.0194345415 - -0.0165222250 - -0.0132659432 - -0.0104463529 - -0.0073933695 - -0.0042087706 - -0.0014603417 - 0.0013485393 - 0.0042597940 - 0.0072003026 - 0.0097528324 - 0.0127687193 - 0.0158457272 - 0.0183584858 - 0.0213727541 - 0.0241932347 - 0.0268957596 - 0.0300102364 - 0.0326614045 - 0.0353737846 - 0.0382093675 - 0.0409323648 - 0.0438074283 - 0.0463709608 - 0.0494850054 - 0.0524218902 - 0.0549392253 - 0.0577394553 - 0.0603024252 - 0.0631315559 - 0.0658371896 - 0.0684969574 - 0.0709956139 - 0.0740111396 - 0.0760938376 - 0.0786725953 - 0.0811367780 - 0.0838151053 - 0.0861381069 - 0.0882777572 - 0.0906522274 - 0.0928550586 - 0.0952395797 - 0.0962513164 - 0.0989304632 - 0.0996404290 - 0.1016145498 - 0.1039277613 - 0.1057845801 - 0.1075182557 - 0.1094416678 - 0.1113520190 - 0.1127970740 - 0.1146727055 - 0.1162178963 - 0.1179703921 - 0.1195230111 - 0.1211141050 - 0.1224321425 - 0.1239910871 - 0.1255930364 - 0.1270289123 - 0.1284194589 - 0.1295550913 - 0.1309430003 - 0.1322225630 - 0.1338448077 - 0.1347392201 - 0.1359410584 - 0.1370169222 - 0.1382705271 - 0.1392077059 - 0.1403367966 - 0.1413082480 - 0.1428419650 - 0.1436065137 - 0.1445708573 - 0.1453166008 - 0.1464544982 - 0.1473147422 - 0.1482866704 - 0.1489568651 - 0.1499019861 - 0.1507802904 - 0.1516648531 - 0.1522474289 - 0.1528213024 - 0.1537077129 - 0.1544227004 - 0.1552423984 - 0.1558119953 - 0.1565995961 - 0.1570778340 - 0.1575941592 - 0.1580231190 - 0.1588377059 - 0.1593202353 - 0.1599369198 - 0.1600149572 - 0.1606767327 - 0.1611918658 - 0.1618431658 - 0.1618603319 - 0.1623368263 - 0.1626709998 - 0.1630641818 - 0.1636178195 - 0.1642023921 - 0.1642559022 - 0.1647457480 - 0.1649227589 - 0.1651593149 - 0.1653565466 - 0.1655784845 - 0.1659424007 - 0.1662651449 - 0.1664765775 - 0.1666143984 - 0.1667608917 - 0.1670648456 - 0.1672844887 - 0.1674444228 - 0.1675154120 - 0.1677476764 - 0.1676296890 - 0.1680254042 - 0.1679134965 - 0.1684709638 - 0.1683430672 - 0.1684609652 - 0.1684922576 - 0.1687008142 - 0.1683556736 - 0.1680672169 - 0.1684724540 - 0.1683017612 - 0.1683683097 - 0.1682600826 - 0.1685171276 - 0.1683376133 - 0.1686082780 - 0.1683404148 - 0.1684399843 - 0.1680929959 - 0.1680552214 - 0.1679849625 - 0.1680379510 - 0.1681798697 - 0.1682482064 - 0.1681617945 - 0.1681302041 - 0.1679946333 - 0.1679332852 - 0.1675131172 - 0.1673732698 - 0.1671895683 - 0.1672050357 - 0.1671462953 - 0.1670274884 - 0.1666973531 - 0.1663079560 - 0.1661704779 - 0.1659221053 - 0.1659245193 - 0.1658065617 - 0.1658183038 - 0.1653885841 - 0.1654466987 - 0.1651151031 - 0.1649320722 - 0.1647322774 - 0.1646199822 - 0.1641955972 - 0.1643213928 - 0.1640284657 - 0.1637915075 - 0.1633594781 - 0.1627732813 - 0.1628402323 - 0.1624199748 - 0.1625629663 - 0.1619629562 - 0.1619919240 - 0.1615462899 - 0.1616297364 - 0.1612547040 - 0.1608757973 - 0.1606154740 - 0.1603534669 - 0.1600385010 - 0.1601878107 - 0.1596529782 - 0.1592491567 - 0.1590418518 - 0.1586171687 - 0.1583119035 - 0.1578161418 - 0.1576515138 - 0.1576099396 - 0.1575037688 - 0.1569477022 - 0.1567544639 - 0.1563547105 - 0.1562111676 - 0.1556231380 - 0.1554428786 - 0.1550676823 - 0.1549302489 - 0.1544209570 - 0.1538833380 - 0.1537024826 - 0.1533538401 - 0.1532401741 - 0.1528403759 - 0.1526319385 - 0.1522498131 - 0.1523291469 - 0.1516516060 - 0.1514389664 - 0.1509886682 - 0.1508101523 - 0.1502193511 - 0.1502206326 - 0.1499131918 - 0.1493809521 - 0.1488681138 - 0.1484225094 - 0.1482130587 - 0.1479630768 - 0.1478170455 - 0.1473381519 - 0.1472174674 - 0.1465658396 - 0.1464617401 - 0.1458472162 - 0.1457667202 - 0.1450624764 - 0.1448807567 - 0.1444439590 - 0.1439245045 - 0.1437761188 - 0.1433012336 - 0.1432995945 - 0.1428381205 - 0.1425001323 - 0.1419913173 - 0.1419388950 - 0.1415153742 - 0.1411519051 - 0.1405344605 - 0.1400101185 - 0.1399691999 - 0.1396345496 - 0.1393475533 - 0.1388181001 - 0.1384738535 - 0.1381858587 - 0.1379889250 - 0.1374767423 - 0.1372704953 - 0.1366941631 - 0.1366195977 - 0.1361131668 - 0.1359045506 - 0.1353878379 - 0.1348415017 - 0.1343141198 - 0.1338489652 - 0.1337439418 - 0.1335625947 - 0.1331456304 - 0.1323863119 - 0.1324258298 - 0.1319762170 - 0.1315056831 - 0.1309940815 - 0.1309701502 - 0.1304873675 - 0.1304066628 - 0.1298764497 - 0.1291222572 - 0.1290134788 - 0.1285567284 - 0.1282488406 - 0.1276424825 - 0.1275474429 - 0.1271056235 - 0.1266700625 - 0.1262604892 - 0.1259357035 - 0.1255879700 - 0.1255375594 - 0.1249048114 - 0.1244872734 - 0.1240714714 - 0.1235672534 - 0.1231749654 - 0.1225716472 - 0.1223472953 - 0.1220656484 - 0.1218301207 - 0.1214084104 - 0.1211892962 - 0.1208093092 - 0.1203531548 - 0.1197805852 - 0.1196106076 - 0.1191179231 - 0.1189077646 - 0.1183595806 - 0.1182183176 - 0.1177964061 - 0.1177321151 - 0.1171065122 - 0.1162371784 - 0.1162128597 - 0.1157884151 - 0.1156613305 - 0.1151895970 - 0.1145985723 - 0.1141379774 - 0.1141541153 - 0.1135587916 - 0.1133824438 - 0.1129379421 - 0.1125500798 - 0.1122757792 - 0.1117875502 - 0.1114329845 - 0.1109205335 - 0.1107273474 - 0.1102821156 - 0.1101088822 - 0.1097939909 - 0.1095301732 - 0.1091120392 - 0.1085481793 - 0.1082320511 - 0.1080210656 - 0.1075907052 - 0.1075011641 - 0.1069845334 - 0.1067065597 - 0.1061757579 - 0.1059614196 - 0.1057833880 - 0.1056969985 - 0.1052311808 - 0.1049365103 - 0.1045105830 - 0.1043837368 - 0.1040023267 - 0.1039523631 - 0.1034896672 - 0.1033106968 - 0.1030466259 - 0.1029521078 - 0.1025537103 - 0.1025835723 - 0.1024160832 - 0.1019281298 - 0.1016120389 - 0.1016627327 - 0.1015109569 - 0.1012325883 - 0.1008705646 - 0.1009187698 - 0.1007322967 - 0.1006061435 - 0.1004544646 - 0.1004316360 - 0.1004326120 - 0.1007160619 - 0.1002043188 - 0.1002711654 - 0.1002194956 - 0.1007021666 - 0.1004205495 - 0.1006062478 - 0.1003820971 - 0.1007493064 - 0.1006715745 - 0.1007884666 - 0.1007106826 - 0.1014462411 - 0.1014367342 - 0.1014668196 - 0.1016477495 - 0.1022865698 - 0.1026302651 - 0.1027141213 - 0.1027515009 - 0.1032210514 - 0.1038072109 - 0.1047247946 - 0.1049686819 - 0.1054292172 - 0.1058723927 - 0.1067340076 - 0.1073795035 - 0.1082598865 - 0.1086631939 - 0.1092288122 - 0.1098399535 - 0.1110887900 - 0.1119485199 - 0.1131965220 - 0.1138107255 - 0.1148420647 - 0.1158576906 - 0.1175499335 - 0.1186924353 - 0.1198313758 - 0.1210780591 - 0.1228303015 - 0.1241488606 - 0.1257529706 - 0.1271452904 - 0.1290552616 - 0.1305699944 - 0.1326953471 - 0.1347489059 - 0.1366098970 - 0.1387463063 - 0.1409929991 - 0.1433206052 - 0.1456814110 - 0.1483542323 - 0.1506721824 - 0.1536156684 - 0.1561353356 - 0.1588899344 - 0.1614753157 - 0.1651139855 - 0.1684041172 - 0.1718983799 - 0.1747021973 - 0.1782918274 - 0.1817692220 - 0.1862204075 - 0.1903651655 - 0.1940144598 - 0.1984245628 - 0.2026820928 - 0.2073227167 - 0.2119788229 - 0.2170006037 - 0.2217627466 - 0.2267147750 - 0.2317343205 - 0.2377058715 - 0.2434155047 - 0.2493469119 - 0.2554296553 - 0.2611418068 - 0.2678150833 - 0.2743949592 - 0.2812048495 - 0.2879027128 - 0.2955167592 - 0.3025812805 - 0.3101654351 - 0.3176143765 - 0.3256565332 - 0.3339717984 - 0.3427933156 - 0.3516928554 - 0.3605208993 - 0.3699020147 - 0.3787878156 - 0.3888722658 - 0.3989307582 - 0.4097246528 - 0.4200266302 - 0.4303610325 - 0.4413897097 - 0.4525104165 - 0.4642832577 - 0.4760023952 - 0.4889382124 - 0.5014245510 - 0.5142621994 - 0.5268721581 - 0.5405403376 - 0.5545679331 - 0.5688740015 - 0.5837064385 - 0.5975238085 - 0.6132799387 - 0.6283658743 - 0.6441192031 - 0.6599636078 - 0.6765672565 - 0.6938533783 - 0.7108304501 - 0.7283892035 - 0.7456248999 - 0.7640187740 - 0.7827184796 - 0.8017334938 - 0.8212697506 - 0.8405671716 - 0.8608052731 - 0.8815419078 - 0.9028583169 - 0.9237121344 - 0.9456366301 - 0.9682322145 - 0.9899704456 - 1.0130550861 - 1.0357149839 - 1.0594844818 - 1.0834951401 - 1.1080676317 - 1.1330640316 - 1.1576414108 - 1.1836446524 - 1.2095149755 - 1.2359327078 - 1.2629020214 - 1.2895002365 - 1.3171192408 - 1.3445597887 - 1.3733597994 - 1.4020181894 - 1.4310131073 - 1.4604276419 - 1.4901713133 - 1.5200531483 - 1.5504368544 - 1.5811911821 - 1.6127216816 - 1.6441292763 - 1.6765919924 - 1.7086129189 - 1.7413311005 - 1.7749311924 - 1.8074097633 - 1.8411387205 - 1.8749271631 - 1.9086835384 - 1.9435644150 - 1.9769911766 - 2.0130136013 - 2.0468208790 - 2.0824728012 - 2.1187608242 - 2.1547160149 - 2.1911642551 - 2.2265000343 - 2.2639660835 - 2.3014969826 - 2.3379852772 - 2.3750367165 - 2.4118561745 - 2.4500308037 - 2.4875671864 - 2.5252234936 - 2.5635545254 - 2.6004462242 - 2.6384501457 - 2.6769528389 - 2.7154963017 - 2.7539803982 - 2.7932248116 - 2.8311512470 - 2.8698220253 - 2.9083454609 - 2.9467666149 - 2.9865601063 - 3.0235598087 - 3.0620191097 - 3.0990395546 - 3.1380977631 - 3.1769070625 - 3.2147145271 - 3.2534580231 - 3.2914893627 - 3.3290793896 - 3.3671698570 - 3.4042224884 - 3.4420373440 - 3.4785079956 - 3.5158607960 - 3.5532145500 - 3.5912945271 - 3.6267144680 - 3.6628136635 - 3.6990900040 - 3.7348909378 - 3.7708880901 - 3.8046798706 - 3.8397824764 - 3.8755970001 - 3.9099509716 - 3.9450576305 - 3.9787576199 - 4.0108900070 - 4.0437541008 - 4.0764727592 - 4.1083755493 - 4.1414861679 - 4.1729555130 - 4.2049846649 - 4.2355642319 - 4.2655577660 - 4.2961754799 - 4.3269019127 - 4.3555684090 - 4.3848605156 - 4.4134616852 - 4.4418320656 - 4.4698481560 - 4.4974083900 - 4.5241417885 - 4.5507316589 - 4.5769953728 - 4.6013717651 - 4.6264877319 - 4.6514077187 - 4.6748800278 - 4.6988430023 - 4.7205762863 - 4.7435011864 - 4.7662329674 - 4.7865109444 - 4.8084163666 - 4.8296265602 - 4.8483600616 - 4.8678231239 - 4.8872251511 - 4.9061031342 - 4.9256553650 - 4.9432725906 - 4.9581413269 - 4.9744482040 - 4.9912648201 - 5.0075697899 - 5.0229330063 - 5.0373516083 - 5.0518412590 - 5.0651526451 - 5.0789089203 - 5.0914363861 - 5.1030249596 - 5.1152086258 - 5.1266098022 - 5.1363811493 - 5.1465635300 - 5.1566309929 - 5.1650609970 - 5.1745395660 - 5.1827435493 - 5.1896300316 - 5.1972289085 - 5.2036814690 - 5.2085313797 - 5.2146105766 - 5.2203412056 - 5.2251996994 - 5.2303280830 - 5.2345304489 - 5.2372384071 - 5.2401075363 - 5.2425985336 - 5.2457871437 - 5.2468147278 - 5.2482233047 - 5.2492122650 - 5.2493453026 - 5.2497715950 - 5.2495107651 - 5.2477316856 - 5.2465209961 - 5.2450494766 - 5.2431044579 - 5.2398829460 - 5.2372422218 - 5.2351608276 - 5.2306766510 - 5.2269530296 - 5.2223033905 - 5.2169938087 - 5.2122182846 - 5.2069106102 - 5.2002930641 - 5.1941976547 - 5.1886429787 - 5.1826066971 - 5.1741404533 - 5.1664075851 - 5.1593141556 - 5.1515455246 - 5.1423544884 - 5.1332387924 - 5.1232237816 - 5.1137514114 - 5.1040410995 - 5.0938825607 - 5.0830416679 - 5.0721206665 - 5.0617895126 - 5.0501570702 - 5.0380334854 - 5.0266385078 - 5.0154547691 - 5.0030598640 - 4.9891300201 - 4.9764575958 - 4.9636187553 - 4.9504885674 - 4.9370131493 - 4.9228978157 - 4.9090223312 - 4.8945856094 - 4.8800563812 - 4.8643813133 - 4.8495821953 - 4.8343281746 - 4.8198037148 - 4.8039264679 - 4.7864928246 - 4.7711324692 - 4.7564930916 - 4.7400517464 - 4.7221741676 - 4.7050042152 - 4.6893091202 - 4.6738400459 - 4.6559624672 - 4.6379289627 - 4.6196546555 - 4.6022496223 - 4.5843925476 - 4.5666613579 - 4.5483222008 - 4.5303401947 - 4.5107283592 - 4.4921808243 - 4.4737358093 - 4.4560170174 - 4.4366073608 - 4.4169497490 - 4.3974661827 - 4.3783736229 - 4.3576359749 - 4.3385763168 - 4.3202409744 - 4.3004093170 - 4.2799711227 - 4.2605738640 - 4.2406501770 - 4.2200284004 - 4.1989169121 - 4.1784648895 - 4.1592769623 - 4.1393952370 - 4.1184725761 - 4.0974373817 - 4.0768289566 - 4.0559229851 - 4.0350146294 - 4.0145950317 - 3.9939229488 - 3.9735107422 - 3.9529454708 - 3.9308230877 - 3.9097394943 - 3.8889112473 - 3.8685023785 - 3.8464844227 - 3.8250288963 - 3.8036673069 - 3.7823176384 - 3.7604007721 - 3.7390601635 - 3.7178955078 - 3.6968069077 - 3.6754703522 - 3.6542258263 - 3.6337387562 - 3.6122822762 - 3.5912208557 - 3.5689339638 - 3.5472061634 - 3.5263137817 - 3.5049307346 - 3.4830012321 - 3.4611849785 - 3.4401571751 - 3.4188117981 - 3.3967790604 - 3.3746886253 - 3.3536934853 - 3.3331589699 - 3.3119676113 - 3.2901911736 - 3.2682502270 - 3.2476348877 - 3.2267341614 - 3.2050313950 - 3.1834070683 - 3.1620116234 - 3.1408843994 - 3.1193115711 - 3.0982813835 - 3.0768558979 - 3.0566220284 - 3.0355455875 - 3.0146272182 - 2.9937803745 - 2.9727175236 - 2.9518063068 - 2.9309346676 - 2.9102444649 - 2.8900234699 - 2.8693733215 - 2.8481338024 - 2.8268148899 - 2.8055202961 - 2.7854709625 - 2.7649044991 - 2.7446348667 - 2.7238757610 - 2.7036256790 - 2.6836628914 - 2.6643788815 - 2.6437902451 - 2.6241335869 - 2.6042351723 - 2.5832242966 - 2.5633852482 - 2.5441248417 - 2.5243456364 - 2.5045800209 - 2.4834511280 - 2.4645652771 - 2.4455387592 - 2.4259424210 - 2.4063227177 - 2.3864836693 - 2.3677904606 - 2.3488824368 - 2.3305656910 - 2.3109581470 - 2.2904496193 - 2.2710335255 - 2.2531330585 - 2.2345933914 - 2.2164547443 - 2.1972877979 - 2.1790342331 - 2.1610727310 - 2.1431345940 - 2.1235804558 - 2.1048436165 - 2.0872480869 - 2.0693542957 - 2.0517864227 - 2.0340194702 - 2.0156311989 - 1.9978761673 - 1.9795838594 - 1.9617367983 - 1.9452826977 - 1.9279818535 - 1.9107444286 - 1.8937287331 - 1.8753454685 - 1.8576699495 - 1.8407862186 - 1.8244129419 - 1.8078861237 - 1.7909973860 - 1.7739802599 - 1.7567181587 - 1.7406685352 - 1.7246859074 - 1.7086045742 - 1.6924116611 - 1.6750953197 - 1.6586420536 - 1.6427172422 - 1.6273221970 - 1.6118744612 - 1.5961594582 - 1.5794799328 - 1.5634949207 - 1.5482609272 - 1.5334281921 - 1.5184078217 - 1.5016810894 - 1.4868330956 - 1.4724227190 - 1.4578793049 - 1.4426583052 - 1.4265606403 - 1.4120984077 - 1.3977988958 - 1.3837143183 - 1.3677060604 - 1.3533711433 - 1.3394347429 - 1.3256803751 - 1.3115885258 - 1.2965756655 - 1.2830237150 - 1.2692852020 - 1.2554649115 - 1.2410410643 - 1.2272733450 - 1.2139459848 - 1.2005172968 - 1.1866348982 - 1.1732839346 - 1.1599532366 - 1.1468597651 - 1.1331809759 - 1.1204792261 - 1.1075599194 - 1.0953999758 - 1.0818247795 - 1.0693255663 - 1.0564489365 - 1.0440587997 - 1.0309398174 - 1.0188764334 - 1.0071415901 - 0.9952557087 - 0.9822458625 - 0.9700722694 - 0.9581329823 - 0.9467585087 - 0.9346579909 - 0.9231368303 - 0.9112861753 - 0.8993272781 - 0.8875558972 - 0.8762869835 - 0.8655093908 - 0.8541699648 - 0.8432364464 - 0.8319129944 - 0.8201942444 - 0.8095704317 - 0.7987722158 - 0.7877829075 - 0.7766236067 - 0.7660616636 - 0.7560105920 - 0.7451100349 - 0.7347434163 - 0.7241145372 - 0.7137727737 - 0.7034665346 - 0.6929780841 - 0.6825433969 - 0.6727481484 - 0.6629558802 - 0.6526477933 - 0.6431962848 - 0.6336544156 - 0.6242207289 - 0.6140378714 - 0.6048026085 - 0.5953817368 - 0.5856003165 - 0.5768111348 - 0.5674672127 - 0.5578863621 - 0.5489458442 - 0.5399869084 - 0.5308087468 - 0.5221037865 - 0.5131586194 - 0.5044702888 - 0.4958873391 - 0.4874227047 - 0.4781444669 - 0.4694024622 - 0.4607890248 - 0.4523310363 - 0.4444127977 - 0.4356039762 - 0.4276918173 - 0.4194073677 - 0.4112948477 - 0.4032565951 - 0.3954443932 - 0.3871744871 - 0.3796671927 - 0.3717094064 - 0.3639346659 - 0.3563756347 - 0.3481574059 - 0.3409571350 - 0.3335186243 - 0.3261750042 - 0.3189871013 - 0.3116067648 - 0.3038224876 - 0.2969059348 - 0.2894256413 - 0.2826758921 - 0.2757699788 - 0.2684706748 - 0.2616499662 - 0.2550587356 - 0.2477960885 - 0.2408483475 - 0.2338727713 - 0.2275765836 - 0.2211689800 - 0.2144904584 - 0.2074499428 - 0.2006927133 - 0.1945261806 - 0.1885839552 - 0.1822285354 - 0.1757222116 - 0.1693779826 - 0.1634103507 - 0.1575049609 - 0.1510764509 - 0.1452343613 - 0.1391390115 - 0.1333838105 - 0.1274383068 - 0.1215452179 - 0.1160191000 - 0.1100293696 - 0.1042765230 - 0.0983237624 - 0.0927966237 - 0.0872146338 - 0.0816775560 - 0.0765944794 - 0.0707121640 - 0.0654372871 - 0.0600872450 - 0.0545811504 - 0.0495906770 - 0.0441542268 - 0.0388651974 - 0.0334917046 - 0.0285213254 - 0.0236419141 - 0.0183296055 - 0.0137687027 - 0.0087861679 - 0.0041093864 - -0.0007491782 - -0.0056317709 - -0.0101797283 - -0.0146959983 - -0.0188959055 - -0.0234636851 - -0.0275570601 - -0.0322092138 - -0.0361573435 - -0.0401770510 - -0.0442398638 - -0.0481891930 - -0.0523818657 - -0.0563891008 - -0.0600206815 - -0.0638486519 - -0.0704613850 - -0.0736021325 - -0.0804108530 - -0.0843311101 - -0.0872095376 - -0.0907931700 - -0.0952153951 - -0.0988342986 - -0.1018055305 - -0.1052195132 - -0.1091464758 - -0.1127917022 - -0.1157357097 - -0.1187637746 - -0.1223262474 - -0.1261499673 - -0.1291317046 - -0.1318922639 - -0.1352699995 - -0.1389357597 - -0.1420039088 - -0.1447654516 - -0.1477857083 - -0.1508263052 - -0.1537862569 - -0.1564492434 - -0.1593513340 - -0.1624689102 - -0.1652958095 - -0.1678159386 - -0.1702618599 - -0.1732124537 - -0.1757663190 - -0.1781805903 - -0.1807503402 - -0.1833206564 - -0.1861867607 - -0.1882619560 - -0.1903350055 - -0.1930098385 - -0.1955714971 - -0.1978986859 - -0.2001513690 - -0.2024809122 - -0.2052989602 - -0.2071290016 - -0.2089453787 - -0.2110545337 - -0.2138436586 - -0.2157852352 - -0.2177225649 - -0.2196160555 - -0.2220206410 - -0.2238036692 - -0.2255358696 - -0.2275230438 - -0.2299234718 - -0.2316220999 - -0.2332628220 - -0.2350229472 - -0.2370928824 - -0.2392044663 - -0.2409669906 - -0.2423221320 - -0.2439251542 - -0.2460172623 - -0.2476559877 - -0.2491121292 - -0.2508331537 - -0.2527727187 - -0.2544897497 - -0.2555081248 - -0.2573219538 - -0.2589182854 - -0.2605762482 - -0.2616438270 - -0.2633107305 - -0.2648595870 - -0.2665892243 - -0.2676488161 - -0.2696732283 - -0.2709396183 - -0.2720937729 - -0.2730894089 - -0.2748940289 - -0.2762201726 - -0.2774890661 - -0.2782292068 - -0.2799439430 - -0.2814941704 - -0.2826083302 - -0.2835549414 - -0.2848262489 - -0.2863152623 - -0.2873511314 - -0.2883222401 - -0.2894768715 - -0.2905640304 - -0.2916532755 - -0.2931952775 - -0.2940795422 - -0.2953901887 - -0.2960758507 - -0.2975288928 - -0.2981442511 - -0.2994841933 - -0.3001214266 - -0.3015162647 - -0.3019281328 - -0.3032980263 - -0.3045535386 - -0.3057740033 - -0.3060865998 - -0.3072941005 - -0.3083128333 - -0.3092736304 - -0.3098447025 - -0.3107420802 - -0.3119730353 - -0.3126848042 - -0.3134588599 - -0.3142049015 - -0.3152871430 - -0.3158553839 - -0.3169093430 - -0.3172898293 - -0.3185091317 - -0.3194224834 - -0.3201690316 - -0.3205473721 - -0.3214892447 - -0.3224968910 - -0.3234488070 - -0.3237727582 - -0.3245397806 - -0.3254991472 - -0.3258445561 - -0.3267244399 - -0.3273042142 - -0.3283174634 - -0.3289161921 - -0.3296015859 - -0.3298583329 - -0.3314921856 - -0.3315727413 - -0.3324028552 - -0.3324993551 - -0.3337166309 - -0.3342188895 - -0.3348874152 - -0.3352116346 - -0.3354575038 - -0.3365751207 - -0.3371418118 - -0.3378095627 - -0.3378877044 - -0.3390548825 - -0.3392228782 - -0.3404741585 - -0.3407301009 - -0.3416109681 - -0.3421208560 - -0.3428708911 - -0.3430466056 - -0.3440343142 - -0.3440943956 - -0.3441817760 - -0.3455084562 - -0.3454546928 - -0.3461483717 - -0.3462738395 - -0.3473287225 - -0.3480800390 - -0.3485099375 - -0.3482728899 - -0.3495709598 - -0.3496383727 - -0.3505264819 - -0.3507969081 - -0.3512535691 - -0.3512620330 - -0.3518784940 - -0.3526522815 - -0.3530050814 - -0.3536856771 - -0.3534472883 - -0.3544541597 - -0.3543860316 - -0.3557076752 - -0.3556975126 - -0.3562908173 - -0.3566618860 - -0.3577132523 - -0.3581733108 - -0.3575017452 - -0.3581569195 - -0.3587738276 - -0.3598047793 - -0.3598477244 - -0.3603256345 - -0.3600901663 - -0.3615360558 - -0.3611895442 - -0.3622433543 - -0.3621514142 - -0.3636493981 - -0.3634278476 - -0.3628638685 - -0.3642292619 - -0.3641467094 - -0.3652287126 - -0.3647159636 - -0.3658454418 - -0.3657390475 - -0.3669345081 - -0.3665940762 - -0.3671561778 - -0.3675352931 - -0.3684275150 - -0.3684863150 - -0.3692830801 - -0.3696016669 - -0.3695687056 - -0.3706776202 - -0.3702997267 - -0.3716509640 - -0.3712851405 - -0.3725694120 - -0.3722519875 - -0.3729971647 - -0.3733741641 - -0.3741893470 - -0.3743094206 - -0.3749648631 - -0.3751052916 - -0.3760704398 - -0.3760709465 - -0.3758590221 - -0.3771847486 - -0.3768657148 - -0.3782147169 - -0.3779413402 - -0.3794079423 - -0.3790971339 - -0.3802299201 - -0.3799543977 - -0.3814885914 - -0.3808303177 - -0.3820021451 - -0.3818194866 - -0.3835957050 - -0.3839796484 - -0.3833893239 - -0.3848502934 - -0.3848969936 - -0.3863235414 - -0.3858679533 - -0.3869374990 - -0.3868760765 - -0.3884055912 - -0.3879320920 - -0.3895124197 - -0.3898767233 - -0.3910646141 - -0.3912944198 - -0.3920878768 - -0.3923630118 - -0.3935224414 - -0.3937184215 - -0.3944641948 - -0.3949098885 - -0.3958031833 - -0.3971106410 - -0.3971405029 - -0.3983500600 - -0.3989965916 - -0.4010714889 - -0.4008668363 - -0.4021259546 - -0.4023653865 - -0.4043709338 - -0.4046474695 - -0.4059929550 - -0.4062672555 - -0.4080243707 - -0.4082952440 - -0.4102779925 - -0.4103731215 - -0.4128737450 - -0.4127272367 - -0.4146271646 - -0.4151696861 - -0.4174400568 - -0.4181869626 - -0.4187682569 - -0.4207453132 - -0.4215981066 - -0.4233627915 - -0.4239402115 - -0.4264805317 - -0.4274301529 - -0.4298503995 - -0.4305560589 - -0.4322935641 - -0.4337005317 - -0.4367846251 - -0.4374917150 - -0.4400589168 - -0.4414277971 - -0.4438020885 - -0.4451412261 - -0.4482761621 - -0.4493435025 - -0.4523496032 - -0.4539453685 - -0.4570966363 - -0.4584074914 - -0.4622072577 - -0.4638773799 - -0.4667804539 - -0.4687456191 - -0.4725843668 - -0.4744748175 - -0.4781842232 - -0.4805842638 - -0.4847342968 - -0.4867689610 - -0.4905450344 - -0.4932819605 - -0.4974672198 - -0.5004215240 - -0.5049833059 - -0.5077992082 - -0.5121722221 - -0.5156184435 - -0.5203446746 - -0.5237204432 - -0.5287033916 - -0.5327333212 - -0.5381771922 - -0.5417839289 - -0.5473339558 - -0.5515478253 - -0.5579558611 - -0.5619794726 - -0.5685145259 - -0.5729217529 - -0.5799230337 - -0.5850042701 - -0.5921943188 - -0.5973041654 - -0.6042634249 - -0.6098746061 - -0.6180104017 - -0.6244057417 - -0.6319967508 - -0.6380008459 - -0.6467030644 - -0.6540488005 - -0.6631590724 - -0.6704907417 - -0.6795474887 - -0.6874925494 - -0.6971936226 - -0.7056068182 - -0.7159745097 - -0.7252792716 - -0.7357141972 - -0.7446076870 - -0.7561044097 - -0.7665182948 - -0.7786564231 - -0.7888134122 - -0.8008701205 - -0.8125379086 - -0.8262369037 - -0.8371494412 - -0.8509439826 - -0.8652647138 - -0.8782104254 - -0.8931074739 - -0.9059438705 - -0.9220407009 - -0.9360462427 - -0.9527295232 - -0.9676868320 - -0.9850257039 - -1.0009726286 - -1.0194588900 - -1.0358017683 - -1.0551437140 - -1.0724304914 - -1.0921264887 - -1.1109418869 - -1.1321209669 - -1.1518968344 - -1.1739705801 - -1.1953020096 - -1.2158446312 - -1.2403308153 - -1.2626768351 - -1.2864236832 - -1.3097757101 - -1.3357090950 - -1.3603435755 - -1.3878437281 - -1.4127904177 - -1.4411685467 - -1.4680780172 - -1.4965614080 - -1.5262242556 - -1.5549482107 - -1.5870903730 - -1.6169406176 - -1.6493960619 - -1.6819424629 - -1.7162387371 - -1.7483168840 - -1.7850162983 - -1.8183044195 - -1.8570747375 - -1.8921700716 - -1.9308204651 - -1.9700477123 - -2.0080447197 - -2.0495567322 - -2.0893824100 - -2.1321330070 - -2.1740880013 - -2.2197949886 - -2.2632899284 - -2.3089375496 - -2.3561782837 - -2.4022860527 - -2.4518370628 - -2.4986710548 - -2.5498335361 - -2.5992965698 - -2.6524429321 - -2.7036216259 - -2.7593808174 - -2.8127026558 - -2.8674516678 - -2.9268059731 - -2.9807155132 - -3.0416851044 - -3.0996279716 - -3.1611156464 - -3.2228348255 - -3.2859950066 - -3.3506133556 - -3.4127404690 - -3.4793102741 - -3.5458281040 - -3.6138327122 - -3.6807961464 - -3.7507839203 - -3.8235473633 - -3.8938527107 - -3.9662258625 - -4.0398392677 - -4.1165666580 - -4.1910939217 - -4.2679500580 - -4.3471875191 - -4.4243116379 - -4.5062336922 - -4.5838055611 - -4.6673192978 - -4.7479243279 - -4.8337392807 - -4.9202280045 - -5.0037159920 - -5.0911540985 - -5.1776709557 - -5.2650547028 - -5.3547935486 - -5.4446821213 - -5.5369138718 - -5.6268267632 - -5.7204799652 - -5.8120298386 - -5.9086685181 - -6.0040159225 - -6.0990161896 - -6.1945362091 - -6.2916669846 - -6.3903532028 - -6.4895277023 - -6.5869359970 - -6.6895008087 - -6.7899990082 - -6.8902454376 - -6.9922647476 - -7.0902118683 - -7.1954798698 - -7.2996983528 - -7.4012479782 - -7.5060024261 - -7.6065721512 - -7.7188014984 - -7.8201718330 - -7.9250636101 - -8.0304155350 - -8.1347398758 - -8.2435426712 - -8.3462944031 - -8.4556255341 - -8.5624523163 - -8.6662721634 - -8.7725200653 - -8.8785095215 - -8.9861564636 - -9.0910158157 - -9.1976299286 - -9.3058815002 - -9.4072580338 - -9.5133647919 - -9.6196022034 - -9.7250766754 - -9.8280954361 - -9.9336776733 - -10.0348472595 - -10.1400442123 - -10.2413454056 - -10.3417491913 - -10.4468488693 - -10.5448236465 - -10.6490859985 - -10.7448692322 - -10.8465032578 - -10.9455242157 - -11.0391407013 - -11.1370439529 - -11.2325181961 - -11.3265533447 - -11.4239940643 - -11.5155620575 - -11.6095333099 - -11.7007579803 - -11.7912826538 - -11.8789196014 - -11.9677858353 - -12.0522384644 - -12.1397075653 - -12.2272415161 - -12.3084249496 - -12.3916978836 - -12.4714698792 - -12.5535144806 - -12.6334514618 - -12.7057895660 - -12.7836704254 - -12.8609027863 - -12.9315395355 - -13.0057363510 - -13.0787343979 - -13.1466817856 - -13.2159137726 - -13.2783260345 - -13.3462085724 - -13.4106216431 - -13.4713449478 - -13.5321226120 - -13.5929813385 - -13.6493330002 - -13.7075519562 - -13.7609453201 - -13.8128833771 - -13.8672313690 - -13.9185667038 - -13.9644603729 - -14.0116119385 - -14.0603275299 - -14.1022949219 - -14.1453838348 - -14.1865901947 - -14.2251644135 - -14.2675113678 - -14.3013668060 - -14.3367795944 - -14.3724832535 - -14.4015741348 - -14.4342269897 - -14.4637308121 - -14.4887914658 - -14.5179891586 - -14.5428752899 - -14.5622406006 - -14.5836858749 - -14.6057004929 - -14.6231307983 - -14.6424818039 - -14.6583528519 - -14.6694164276 - -14.6820363998 - -14.6934032440 - -14.7041273117 - -14.7094745636 - -14.7185983658 - -14.7251853943 - -14.7268047333 - -14.7312774658 - -14.7345180511 - -14.7324218750 - -14.7321243286 - -14.7312564850 - -14.7254467010 - -14.7213993073 - -14.7163820267 - -14.7070722580 - -14.7001438141 - -14.6910781860 - -14.6767902374 - -14.6663217545 - -14.6536655426 - -14.6359405518 - -14.6206502914 - -14.6057014465 - -14.5861911774 - -14.5678367615 - -14.5464029312 - -14.5257968903 - -14.5006923676 - -14.4789276123 - -14.4550094604 - -14.4268646240 - -14.4011325836 - -14.3757352829 - -14.3454809189 - -14.3165693283 - -14.2859716415 - -14.2549934387 - -14.2200603485 - -14.1882219315 - -14.1565608978 - -14.1189432144 - -14.0837478638 - -14.0487413406 - -14.0102252960 - -13.9732484818 - -13.9338359833 - -13.8926362991 - -13.8507785797 - -13.8114223480 - -13.7710103989 - -13.7254428864 - -13.6826171875 - -13.6392841339 - -13.5939407349 - -13.5462474823 - -13.5032997131 - -13.4583930969 - -13.4101657867 - -13.3611059189 - -13.3129615784 - -13.2646427155 - -13.2137050629 - -13.1641874313 - -13.1153020859 - -13.0636024475 - -13.0118255615 - -12.9591283798 - -12.9060411453 - -12.8524780273 - -12.8021697998 - -12.7483310699 - -12.6918497086 - -12.6383962631 - -12.5847511292 - -12.5285930634 - -12.4710359573 - -12.4157962799 - -12.3600177765 - -12.3036813736 - -12.2436962128 - -12.1891307831 - -12.1342258453 - -12.0730381012 - -12.0126848221 - -11.9553184509 - -11.8980026245 - -11.8395843506 - -11.7788219452 - -11.7191648483 - -11.6602363586 - -11.5994911194 - -11.5388689041 - -11.4777002335 - -11.4178733826 - -11.3571205139 - -11.2973060608 - -11.2366018295 - -11.1770362854 - -11.1124505997 - -11.0506477356 - -10.9890031815 - -10.9313097000 - -10.8678417206 - -10.8044681549 - -10.7423496246 - -10.6829414368 - -10.6187591553 - -10.5566654205 - -10.4963636398 - -10.4347381592 - -10.3724431992 - -10.3106555939 - -10.2470397949 - -10.1836204529 - -10.1219902039 - -10.0598697662 - -9.9982194901 - -9.9382791519 - -9.8765048981 - -9.8143043518 - -9.7506685257 - -9.6877193451 - -9.6277217865 - -9.5674648285 - -9.5018386841 - -9.4370937347 - -9.3771686554 - -9.3169584274 - -9.2555313110 - -9.1915464401 - -9.1308326721 - -9.0706901550 - -9.0098943710 - -8.9462442398 - -8.8843307495 - -8.8256778717 - -8.7667293549 - -8.7045879364 - -8.6424922943 - -8.5837326050 - -8.5253992081 - -8.4640569687 - -8.4007310867 - -8.3425474167 - -8.2858896255 - -8.2267131805 - -8.1641607285 - -8.1044750214 - -8.0481443405 - -7.9911298752 - -7.9286999702 - -7.8650279045 - -7.8071951866 - -7.7532300949 - -7.6966190338 - -7.6353969574 - -7.5744729042 - -7.5191740990 - -7.4649109840 - -7.4084649086 - -7.3471779823 - -7.2878127098 - -7.2336835861 - -7.1803121567 - -7.1237897873 - -7.0653285980 - -7.0109152794 - -6.9568424225 - -6.9031996727 - -6.8448266983 - -6.7876124382 - -6.7350616455 - -6.6836690903 - -6.6297526360 - -6.5721936226 - -6.5153679848 - -6.4648561478 - -6.4157695770 - -6.3630752563 - -6.3060288429 - -6.2497210503 - -6.1991915703 - -6.1499381065 - -6.0998239517 - -6.0456800461 - -5.9907431602 - -5.9373903275 - -5.8899183273 - -5.8407278061 - -5.7925529480 - -5.7399544716 - -5.6860008240 - -5.6365065575 - -5.5920691490 - -5.5444617271 - -5.4931802750 - -5.4383468628 - -5.3931589127 - -5.3490991592 - -5.3021545410 - -5.2516822815 - -5.2015686035 - -5.1559004784 - -5.1117515564 - -5.0685424805 - -5.0199723244 - -4.9678082466 - -4.9191436768 - -4.8758940697 - -4.8335690498 - -4.7909493446 - -4.7437181473 - -4.6951608658 - -4.6492729187 - -4.6074576378 - -4.5656242371 - -4.5240106583 - -4.4790577888 - -4.4308853149 - -4.3865623474 - -4.3473143578 - -4.3077459335 - -4.2669577599 - -4.2223920822 - -4.1770329475 - -4.1381101608 - -4.1001362801 - -4.0630064011 - -4.0213961601 - -3.9744255543 - -3.9314646721 - -3.8933150768 - -3.8590393066 - -3.8229603767 - -3.7811243534 - -3.7371864319 - -3.6955330372 - -3.6605348587 - -3.6274578571 - -3.5909714699 - -3.5522899628 - -3.5097894669 - -3.4700779915 - -3.4318809509 - -3.3971891403 - -3.3652138710 - -3.3317604065 - -3.2942080498 - -3.2538418770 - -3.2147250175 - -3.1791198254 - -3.1471543312 - -3.1132268906 - -3.0816795826 - -3.0465543270 - -3.0094227791 - -2.9731378555 - -2.9408240318 - -2.9138395786 - -2.8834910393 - -2.8479280472 - -2.8081440926 - -2.7756228447 - -2.7469687462 - -2.7191722393 - -2.6889090538 - -2.6556663513 - -2.6215691566 - -2.5874490738 - -2.5549678802 - -2.5267109871 - -2.5003752708 - -2.4727532864 - -2.4406688213 - -2.4071016312 - -2.3756110668 - -2.3437724113 - -2.3134534359 - -2.2857134342 - -2.2625896931 - -2.2364351749 - -2.2072989941 - -2.1744689941 - -2.1454603672 - -2.1160800457 - -2.0875117779 - -2.0598349571 - -2.0375673771 - -2.0155789852 - -1.9880864620 - -1.9557704926 - -1.9261170626 - -1.9014375210 - -1.8787957430 - -1.8543771505 - -1.8320889473 - -1.8073792458 - -1.7791461945 - -1.7492337227 - -1.7238001823 - -1.7034993172 - -1.6835857630 - -1.6612519026 - -1.6350183487 - -1.6086306572 - -1.5837674141 - -1.5578693151 - -1.5319156647 - -1.5073754787 - -1.4883270264 - -1.4702993631 - -1.4497600794 - -1.4268363714 - -1.4010570049 - -1.3759765625 - -1.3537923098 - -1.3309109211 - -1.3063639402 - -1.2827168703 - -1.2636693716 - -1.2485197783 - -1.2323700190 - -1.2100857496 - -1.1853970289 - -1.1614012718 - -1.1424067020 - -1.1253887415 - -1.1085280180 - -1.0926537514 - -1.0739061832 - -1.0509926081 - -1.0280135870 - -1.0067487955 - -0.9877158403 - -0.9719890952 - -0.9574312568 - -0.9423313141 - -0.9251498580 - -0.9028002620 - -0.8802700043 - -0.8625711203 - -0.8448132277 - -0.8245326281 - -0.8037731647 - -0.7850608826 - -0.7681956291 - -0.7485485077 - -0.7273901701 - -0.7134512663 - -0.7058247328 - -0.6937291622 - -0.6739517450 - -0.6535376310 - -0.6368578076 - -0.6207971573 - -0.6012299657 - -0.5862284303 - -0.5787107944 - -0.5702887774 - -0.5526928902 - -0.5294212103 - -0.5131610632 - -0.5065868497 - -0.4978031516 - -0.4828481674 - -0.4665870667 - -0.4529089332 - -0.4371230900 - -0.4184307456 - -0.4022736549 - -0.3896564841 - -0.3748816550 - -0.3560840487 - -0.3396316767 - -0.3273932338 - -0.3147332668 - -0.2969736457 - -0.2791984677 - -0.2669458389 - -0.2550770342 - -0.2391006052 - -0.2209239900 - -0.2075399458 - -0.1976393461 - -0.1868441701 - -0.1768222600 - -0.1698489487 - -0.1621440202 - -0.1491796225 - -0.1374595612 - -0.1343025714 - -0.1322910786 - -0.1219627857 - -0.1084727421 - -0.1043580398 - -0.1051207408 - -0.0966327414 - -0.0780738294 - -0.0642087758 - -0.0580398627 - -0.0477743894 - -0.0283832178 - -0.0099877864 - 0.0041849241 - 0.0244541764 - 0.0533910841 - 0.0772415102 - 0.0935708284 - 0.1199205816 - 0.1655813158 - 0.2112622559 - 0.2432499230 - 0.2761032581 - 0.3251629472 - 0.3743721247 - 0.4057247937 - 0.4382429719 - 0.4935744405 - 0.5515349507 - 0.5800175071 - 0.5990956426 - 0.6504197121 - 0.7167251706 - 0.7373691797 - 0.7230748534 - 0.7606328130 - 0.8575087190 - 0.8654337525 - 0.6563415527 - -0.0389396697 - -0.2726712823 - -0.2932577729 - -0.2274557054 - -0.2232603431 - -0.2756146193 - -0.2950352430 - -0.2727990448 - -0.2683428228 - -0.2992440462 - -0.3177486658 - -0.3082549572 - -0.3038781285 - -0.3249972165 - -0.3432925940 - -0.3401801884 - -0.3359976709 - -0.3513958752 - -0.3698080480 - -0.3693297505 - -0.3667089343 - -0.3774447143 - -0.3945297301 - -0.3965670764 - -0.3945260048 - -0.4023032486 - -0.4184000790 - -0.4224007726 - -0.4209850430 - -0.4260614216 - -0.4414305985 - -0.4462584257 - -0.4457178116 - -0.4494709969 - -0.4623394608 - -0.4696246386 - -0.4692642689 - -0.4710051119 - -0.4832524061 - -0.4905406833 - -0.4915677309 - -0.4938848019 - -0.5018265247 - -0.5128119588 - -0.5122112632 - -0.5140944123 - -0.5207177997 - -0.5319827795 - -0.5323158503 - -0.5335976481 - -0.5390588641 - -0.5498053432 - -0.5507172942 - -0.5520089269 - -0.5560631752 - -0.5668300986 - -0.5683985949 - -0.5697828531 - -0.5726568103 - -0.5821896791 - -0.5854182839 - -0.5869292617 - -0.5887255669 - -0.5973734856 - -0.6012094617 - -0.6028140783 - -0.6037055254 - -0.6118869781 - -0.6162573695 - -0.6181416512 - -0.6178138256 - -0.6258548498 - -0.6301969290 - -0.6325182915 - -0.6312200427 - -0.6389580965 - -0.6433881521 - -0.6463629603 - -0.6445713043 - -0.6526883245 - -0.6560368538 - -0.6591705084 - -0.6567905545 - -0.6644223332 - -0.6679184437 - -0.6715254784 - -0.6687219143 - -0.6752995849 - -0.6798060536 - -0.6805385351 - -0.6826604605 - -0.6836102009 - -0.6907293200 - -0.6913855076 - -0.6934984326 - -0.6937730908 - -0.7003972530 - -0.7011405230 - -0.7046694756 - -0.7033988833 - -0.7101208568 - -0.7106342912 - -0.7144632339 - -0.7127685547 - -0.7193093300 - -0.7200686336 - -0.7242479324 - -0.7213627100 - -0.7273696661 - -0.7294853926 - -0.7330636382 - -0.7300283909 - -0.7356077433 - -0.7374516726 - -0.7413697243 - -0.7392112017 - -0.7405873537 - -0.7474902868 - -0.7461161613 - -0.7480862141 - -0.7481118441 - -0.7547145486 - -0.7531868219 - -0.7565776110 - -0.7545168400 - -0.7611906528 - -0.7612353563 - -0.7636751533 - -0.7613360882 - -0.7677065134 - -0.7679706812 - -0.7708171010 - -0.7692489028 - -0.7708365917 - -0.7771202326 - -0.7732508779 - -0.7771004438 - -0.7765269279 - -0.7828793526 - -0.7804152966 - -0.7833539248 - -0.7818671465 - -0.7896089554 - -0.7861942649 - -0.7891891599 - -0.7872341275 - -0.7947636843 - -0.7919168472 - -0.7944844365 - -0.7944455743 - -0.7950400114 - -0.8004215360 - -0.7965475321 - -0.8005197048 - -0.7999585867 - -0.8062227964 - -0.8015171289 - -0.8064774275 - -0.8054182529 - -0.8112354279 - -0.8079632521 - -0.8112106323 - -0.8095382452 - -0.8167638779 - -0.8136240840 - -0.8107588291 - -0.8185825348 - -0.8163660765 - -0.8197428584 - -0.8157826066 - -0.8222630024 - -0.8221004009 - -0.8255097866 - -0.8200304508 - -0.8271000385 - -0.8256099820 - -0.8299341798 - -0.8252264857 - -0.8307862282 - -0.8306950331 - -0.8302214146 - -0.8335629702 - -0.8306789398 - -0.8369333744 - -0.8336618543 - -0.8383159637 - -0.8338675499 - -0.8417973518 - -0.8390664458 - -0.8424305916 - -0.8386617899 - -0.8459805846 - -0.8458343744 - -0.8420544863 - -0.8466401100 - -0.8448028564 - -0.8513954282 - -0.8473123312 - -0.8517147303 - -0.8482910991 - -0.8561785221 - -0.8512474298 - -0.8565501571 - -0.8527379036 - -0.8612583876 - -0.8583480716 - -0.8544700742 - -0.8625699282 - -0.8595450521 - -0.8651393652 - -0.8596744537 - -0.8665145040 - -0.8638635874 - -0.8702718019 - -0.8648819327 - -0.8706055284 - -0.8690410852 - -0.8748916984 - -0.8701729774 - -0.8763734102 - -0.8762234449 - -0.8748294115 - -0.8807671070 - -0.8756834865 - -0.8835475445 - -0.8802793026 - -0.8868472576 - -0.8816040754 - -0.8884713650 - -0.8865609169 - -0.8922160864 - -0.8883012533 - -0.8947244883 - -0.8920147419 - -0.8992059231 - -0.8966752291 - -0.8947161436 - -0.9042377472 - -0.8995306492 - -0.9056403637 - -0.9018020630 - -0.9113525748 - -0.9073939919 - -0.9130205512 - -0.9092694521 - -0.9187880754 - -0.9148435593 - -0.9211917520 - -0.9166686535 - -0.9269378185 - -0.9269578457 - -0.9237653613 - -0.9320915341 - -0.9294881821 - -0.9377515316 - -0.9336858988 - -0.9412394762 - -0.9388002157 - -0.9478693008 - -0.9436218143 - -0.9518913031 - -0.9500766397 - -0.9591901302 - -0.9558341503 - -0.9633476734 - -0.9615986943 - -0.9708341360 - -0.9675403833 - -0.9756755829 - -0.9760516882 - -0.9774721265 - -0.9876550436 - -0.9836232662 - -0.9927100539 - -0.9924082756 - -1.0031701326 - -0.9996792674 - -1.0086510181 - -1.0079772472 - -1.0196115971 - -1.0170342922 - -1.0263772011 - -1.0255821943 - -1.0372140408 - -1.0351798534 - -1.0452198982 - -1.0446648598 - -1.0577968359 - -1.0560190678 - -1.0664317608 - -1.0656788349 - -1.0801067352 - -1.0814490318 - -1.0827112198 - -1.0964241028 - -1.0968641043 - -1.1088432074 - -1.1080275774 - -1.1219055653 - -1.1240460873 - -1.1370112896 - -1.1370520592 - -1.1505546570 - -1.1533687115 - -1.1681690216 - -1.1688416004 - -1.1835557222 - -1.1865743399 - -1.2019946575 - -1.2034045458 - -1.2192595005 - -1.2233618498 - -1.2395299673 - -1.2419537306 - -1.2586836815 - -1.2633514404 - -1.2815022469 - -1.2848284245 - -1.3023457527 - -1.3078587055 - -1.3269567490 - -1.3317569494 - -1.3503174782 - -1.3571728468 - -1.3777132034 - -1.3845568895 - -1.4033017159 - -1.4113023281 - -1.4339840412 - -1.4413945675 - -1.4628821611 - -1.4714579582 - -1.4954991341 - -1.5053056479 - -1.5274947882 - -1.5368542671 - -1.5630979538 - -1.5749722719 - -1.5995900631 - -1.6099257469 - -1.6386886835 - -1.6512370110 - -1.6786777973 - -1.6908385754 - -1.7207485437 - -1.7361602783 - -1.7650997639 - -1.7801795006 - -1.8119311333 - -1.8304531574 - -1.8601287603 - -1.8773851395 - -1.9121010303 - -1.9324727058 - -1.9659714699 - -1.9848338366 - -2.0217108727 - -2.0453784466 - -2.0814664364 - -2.1033599377 - -2.1428067684 - -2.1683754921 - -2.2080914974 - -2.2334923744 - -2.2748315334 - -2.3042652607 - -2.3479831219 - -2.3750987053 - -2.4191002846 - -2.4533765316 - -2.5007927418 - -2.5310537815 - -2.5780558586 - -2.6153004169 - -2.6680967808 - -2.7002825737 - -2.7499542236 - -2.8018374443 - -2.8413333893 - -2.8959021568 - -2.9372532368 - -2.9950654507 - -3.0381984711 - -3.0993320942 - -3.1450765133 - -3.2070796490 - -3.2555148602 - -3.3207161427 - -3.3699152470 - -3.4381117821 - -3.4918951988 - -3.5594286919 - -3.6155376434 - -3.6896820068 - -3.7479262352 - -3.8214666843 - -3.8915565014 - -3.9513652325 - -4.0349917412 - -4.1014838219 - -4.1798229218 - -4.2493553162 - -4.3357348442 - -4.4077777863 - -4.4959387779 - -4.5676975250 - -4.6636886597 - -4.7409563065 - -4.8295464516 - -4.9217696190 - -5.0035433769 - -5.1069707870 - -5.1925258636 - -5.2937784195 - -5.3869600296 - -5.4949412346 - -5.5845150948 - -5.6974301338 - -5.7906951904 - -5.9102821350 - -6.0077095032 - -6.1234946251 - -6.2401561737 - -6.3451156616 - -6.4703078270 - -6.5790209770 - -6.7070341110 - -6.8229379654 - -6.9595494270 - -7.0772027969 - -7.2084712982 - -7.3423104286 - -7.4676532745 - -7.6123795509 - -7.7373924255 - -7.8855133057 - -8.0181674957 - -8.1710348129 - -8.3053274155 - -8.4617824554 - -8.6098642349 - -8.7541980743 - -8.9221029282 - -9.0622367859 - -9.2329311371 - -9.3843536377 - -9.5524740219 - -9.7133884430 - -9.8850116730 - -10.0587158203 - -10.2171335220 - -10.3992643356 - -10.5692062378 - -10.7519207001 - -10.9209985733 - -11.1084365845 - -11.2986249924 - -11.4747667313 - -11.6664361954 - -11.8528184891 - -12.0555706024 - -12.2392816544 - -12.4384059906 - -12.6447067261 - -12.8309345245 - -13.0446414948 - -13.2335643768 - -13.4491748810 - -13.6451845169 - -13.8629331589 - -14.0785951614 - -14.2794437408 - -14.5035390854 - -14.7098741531 - -14.9255008698 - -15.1496744156 - -15.3603277206 - -15.5920839310 - -15.8031015396 - -16.0350494385 - -16.2509384155 - -16.4849433899 - -16.7156372070 - -16.9351787567 - -17.1677436829 - -17.3953666687 - -17.6269950867 - -17.8639259338 - -18.0857448578 - -18.3356437683 - -18.5611114502 - -18.7971935272 - -19.0353565216 - -19.2555103302 - -19.5058116913 - -19.7369422913 - -19.9705772400 - -20.2124519348 - -20.4341945648 - -20.6924114227 - -20.9147758484 - -21.1535129547 - -21.3930606842 - -21.6154556274 - -21.8667030334 - -22.0890617371 - -22.3302707672 - -22.5682430267 - -22.7900562286 - -23.0296745300 - -23.2501201630 - -23.4879570007 - -23.7172527313 - -23.9371585846 - -24.1783008575 - -24.3882713318 - -24.6116218567 - -24.8415718079 - -25.0589561462 - -25.2792778015 - -25.4992427826 - -25.7051582336 - -25.9322605133 - -26.1314868927 - -26.3401775360 - -26.5628032684 - -26.7506446838 - -26.9703521729 - -27.1557483673 - -27.3605804443 - -27.5668106079 - -27.7414550781 - -27.9410514832 - -28.1318397522 - -28.3069744110 - -28.5057983398 - -28.6778659821 - -28.8578758240 - -29.0397911072 - -29.2013568878 - -29.3728599548 - -29.5465564728 - -29.6928329468 - -29.8626136780 - -30.0258369446 - -30.1677932739 - -30.3272304535 - -30.4614295959 - -30.6171722412 - -30.7589759827 - -30.8802108765 - -31.0241832733 - -31.1598091125 - -31.2741737366 - -31.4011287689 - -31.5326919556 - -31.6365242004 - -31.7609863281 - -31.8566131592 - -31.9681701660 - -32.0785293579 - -32.1628417969 - -32.2654228210 - -32.3624343872 - -32.4419097900 - -32.5310211182 - -32.6167831421 - -32.6802825928 - -32.7662963867 - -32.8428726196 - -32.8925476074 - -32.9636993408 - -33.0319061279 - -33.0767364502 - -33.1294975281 - -33.1870880127 - -33.2218284607 - -33.2808799744 - -33.3043365479 - -33.3473892212 - -33.3853530884 - -33.4023704529 - -33.4327659607 - -33.4640045166 - -33.4682426453 - -33.4905624390 - -33.5120048523 - -33.5037765503 - -33.5189285278 - -33.5260314941 - -33.5155334473 - -33.5161323547 - -33.5199546814 - -33.4947929382 - -33.4885978699 - -33.4722595215 - -33.4566268921 - -33.4270210266 - -33.4077796936 - -33.3886833191 - -33.3411827087 - -33.3207931519 - -33.2910156250 - -33.2369689941 - -33.2063598633 - -33.1667556763 - -33.1127052307 - -33.0636711121 - -33.0247344971 - -32.9591941833 - -32.9060745239 - -32.8578262329 - -32.7822723389 - -32.7240753174 - -32.6701393127 - -32.5835723877 - -32.5243492126 - -32.4600830078 - -32.3723144531 - -32.3056869507 - -32.2246704102 - -32.1467514038 - -32.0587425232 - -31.9766330719 - -31.9022274017 - -31.7976951599 - -31.7127456665 - -31.6365890503 - -31.5285110474 - -31.4348182678 - -31.3456268311 - -31.2492160797 - -31.1330432892 - -31.0460205078 - -30.9493808746 - -30.8293075562 - -30.7337341309 - -30.6319618225 - -30.5112495422 - -30.4124755859 - -30.2986755371 - -30.1860961914 - -30.0620269775 - -29.9626235962 - -29.8491878510 - -29.7146530151 - -29.6093673706 - -29.4912757874 - -29.3676204681 - -29.2394008636 - -29.1275253296 - -29.0099220276 - -28.8727073669 - -28.7537994385 - -28.6285934448 - -28.5051803589 - -28.3656730652 - -28.2461128235 - -28.1240081787 - -27.9846096039 - -27.8546905518 - -27.7299232483 - -27.5971927643 - -27.4547080994 - -27.3311347961 - -27.2060317993 - -27.0579204559 - -26.9292640686 - -26.7971954346 - -26.6653900146 - -26.5173835754 - -26.3866462708 - -26.2541580200 - -26.1167469025 - -25.9697189331 - -25.8392601013 - -25.7125663757 - -25.5629405975 - -25.4168930054 - -25.2883682251 - -25.1527156830 - -25.0092639923 - -24.8672790527 - -24.7283592224 - -24.5986824036 - -24.4488048553 - -24.3091773987 - -24.1689453125 - -24.0316276550 - -23.8894920349 - -23.7497978210 - -23.6096401215 - -23.4781875610 - -23.3259868622 - -23.1849670410 - -23.0424804688 - -22.9210739136 - -22.7667999268 - -22.6247615814 - -22.4855155945 - -22.3566303253 - -22.2041683197 - -22.0614280701 - -21.9360084534 - -21.7962074280 - -21.6495399475 - -21.5146522522 - -21.3750572205 - -21.2365303040 - -21.0939617157 - -20.9543571472 - -20.8240871429 - -20.6906032562 - -20.5466480255 - -20.4139347076 - -20.2751140594 - -20.1369438171 - -19.9991874695 - -19.8725070953 - -19.7288131714 - -19.5855636597 - -19.4619178772 - -19.3219623566 - -19.1901893616 - -19.0531597137 - -18.9232864380 - -18.7870330811 - -18.6570682526 - -18.5215492249 - -18.3888874054 - -18.2569026947 - -18.1304435730 - -17.9983253479 - -17.8665332794 - -17.7361564636 - -17.6103286743 - -17.4855346680 - -17.3455848694 - -17.2230033875 - -17.0982551575 - -16.9736671448 - -16.8407897949 - -16.7148017883 - -16.5898685455 - -16.4719715118 - -16.3397045135 - -16.2048377991 - -16.0844535828 - -15.9654674530 - -15.8474683762 - -15.7182674408 - -15.5902948380 - -15.4753360748 - -15.3554115295 - -15.2402296066 - -15.1104869843 - -14.9861965179 - -14.8752708435 - -14.7574110031 - -14.6395530701 - -14.5178308487 - -14.4068641663 - -14.2868423462 - -14.1782951355 - -14.0572137833 - -13.9379472733 - -13.8293037415 - -13.7173366547 - -13.6069049835 - -13.4885330200 - -13.3712358475 - -13.2660102844 - -13.1585769653 - -13.0522489548 - -12.9368515015 - -12.8128824234 - -12.7148857117 - -12.6089296341 - -12.5047245026 - -12.3927154541 - -12.2802581787 - -12.1714305878 - -12.0762329102 - -11.9666976929 - -11.8703098297 - -11.7638740540 - -11.6522655487 - -11.5500631332 - -11.4546546936 - -11.3589525223 - -11.2578277588 - -11.1346702576 - -11.0509605408 - -10.9569435120 - -10.8584394455 - -10.7541713715 - -10.6536941528 - -10.5636301041 - -10.4647064209 - -10.3782672882 - -10.2840518951 - -10.1694707870 - -10.0754299164 - -9.9890441895 - -9.8949127197 - -9.8115024567 - -9.7158870697 - -9.6152801514 - -9.5223541260 - -9.4435672760 - -9.3444547653 - -9.2655591965 - -9.1762046814 - -9.0753574371 - -8.9860839844 - -8.9089317322 - -8.8256378174 - -8.7364463806 - -8.6512107849 - -8.5595407486 - -8.4816761017 - -8.3968639374 - -8.3238658905 - -8.2455272675 - -8.1404342651 - -8.0589799881 - -7.9839334488 - -7.9082918167 - -7.8339600563 - -7.7530164719 - -7.6605501175 - -7.5806322098 - -7.5098857880 - -7.4350881577 - -7.3623285294 - -7.2923631668 - -7.1959242821 - -7.1205620766 - -7.0446920395 - -6.9745855331 - -6.9043140411 - -6.8397846222 - -6.7584004402 - -6.6837015152 - -6.6035976410 - -6.5282211304 - -6.4707374573 - -6.3911471367 - -6.3346848488 - -6.2596096992 - -6.1831293106 - -6.1185312271 - -6.0458040237 - -5.9888730049 - -5.9253425598 - -5.8615980148 - -5.7737936974 - -5.7143139839 - -5.6526203156 - -5.5921559334 - -5.5386276245 - -5.4635987282 - -5.3972163200 - -5.3299412727 - -5.2697548866 - -5.2046432495 - -5.1488056183 - -5.0955829620 - -5.0357584953 - -4.9590349197 - -4.9003648758 - -4.8373122215 - -4.7813882828 - -4.7147707939 - -4.6690630913 - -4.6167135239 - -4.5641150475 - -4.4867558479 - -4.4347229004 - -4.3761448860 - -4.3234772682 - -4.2569446564 - -4.2129278183 - -4.1714854240 - -4.1184210777 - -4.0434226990 - -3.9902093410 - -3.9434735775 - -3.8990652561 - -3.8335120678 - -3.7979750633 - -3.7545194626 - -3.6857380867 - -3.6277606487 - -3.5814578533 - -3.5449185371 - -3.4873666763 - -3.4490520954 - -3.4033410549 - -3.3403377533 - -3.2935147285 - -3.2428715229 - -3.1957905293 - -3.1355946064 - -3.1028919220 - -3.0676484108 - -3.0141797066 - -2.9752507210 - -2.9281046391 - -2.8668348789 - -2.8289127350 - -2.7874517441 - -2.7271661758 - -2.6852347851 - -2.6529126167 - -2.6075496674 - -2.5781381130 - -2.5343551636 - -2.4899451733 - -2.4304699898 - -2.3998754025 - -2.3700044155 - -2.3187630177 - -2.2935428619 - -2.2609431744 - -2.2029983997 - -2.1640357971 - -2.1268956661 - -2.0765326023 - -2.0509243011 - -2.0223460197 - -1.9797027111 - -1.9510167837 - -1.9113750458 - -1.8555767536 - -1.8303418159 - -1.7852405310 - -1.7492095232 - -1.7131025791 - -1.6626653671 - -1.6366293430 - -1.6034427881 - -1.5480899811 - -1.5241842270 - -1.5120865107 - -1.4743777514 - -1.4389786720 - -1.4032713175 - -1.3611913919 - -1.3392796516 - -1.2884546518 - -1.2638787031 - -1.2492101192 - -1.2184717655 - -1.1896430254 - -1.1491320133 - -1.1049435139 - -1.1007540226 - -1.0686570406 - -1.0431389809 - -1.0150661469 - -0.9761863947 - -0.9505023360 - -0.9185417295 - -0.8748481274 - -0.8587652445 - -0.8208522797 - -0.7888472676 - -0.7588467598 - -0.7226690054 - -0.7086161971 - -0.6651523113 - -0.6331676841 - -0.6106235385 - -0.5771904588 - -0.5586107969 - -0.5121370554 - -0.4874424338 - -0.4713010192 - -0.4397368729 - -0.4276891947 - -0.3996974230 - -0.3875172734 - -0.3665750325 - -0.3296716809 - -0.3291167915 - -0.3131789565 - -0.3006029129 - -0.2617735565 - -0.2547864318 - -0.2550099194 - -0.2263047695 - -0.2024858594 - -0.1641780883 - -0.1542489678 - -0.1375565529 - -0.0894599482 - -0.0651979148 - -0.0300155468 - -0.0021655699 - 0.0608364977 - 0.0987799838 - 0.1240913868 - 0.1821021140 - 0.2493285537 - 0.3357142210 - 0.3823550344 - 0.4485760331 - 0.5215959549 - 0.6145408154 - 0.6636719108 - 0.7147114277 - 0.8190510869 - 0.9047828913 - 0.9620649815 - 0.9870525599 - 1.0841734409 - 1.1881289482 - 1.2191364765 - 1.2124773264 - 1.2662184238 - 1.4319351912 - 1.4383174181 - 1.1247925758 - 0.0168714523 - -0.3379106522 - -0.3775534630 - -0.2583956718 - -0.2530369759 - -0.3358612061 - -0.3522710800 - -0.3244009018 - -0.3044795990 - -0.3580040932 - -0.3739285469 - -0.3654751778 - -0.3453569412 - -0.3842544556 - -0.3997497559 - -0.4019999504 - -0.3815670013 - -0.4079327583 - -0.4368481636 - -0.4218025208 - -0.4253997803 - -0.4310979843 - -0.4627728462 - -0.4525074959 - -0.4561953545 - -0.4571270943 - -0.4874439240 - -0.4806909561 - -0.4851984978 - -0.4820976257 - -0.5117416382 - -0.5068764687 - -0.5121335983 - -0.5066776276 - -0.5343141556 - -0.5313310623 - -0.5375633240 - -0.5298166275 - -0.5569391251 - -0.5537080765 - -0.5575742722 - -0.5639996529 - -0.5637836456 - -0.5866956711 - -0.5757751465 - -0.5855612755 - -0.5844898224 - -0.6070623398 - -0.5968585014 - -0.6064372063 - -0.6034855843 - -0.6256384850 - -0.6165575981 - -0.6260871887 - -0.6212439537 - -0.6430201530 - -0.6355719566 - -0.6449847221 - -0.6377668381 - -0.6600909233 - -0.6526789665 - -0.6627349854 - -0.6549458504 - -0.6760039330 - -0.6690454483 - -0.6798825264 - -0.6706438065 - -0.6906266212 - -0.6846499443 - -0.6958708763 - -0.6851902008 - -0.7052264214 - -0.6989998817 - -0.7108731270 - -0.6995677948 - -0.7184677124 - -0.7122550011 - -0.7255768776 - -0.7142167091 - -0.7309398651 - -0.7260537148 - -0.7390880585 - -0.7262196541 - -0.7431368828 - -0.7388877869 - -0.7518010139 - -0.7379698753 - -0.7540106773 - -0.7550401688 - -0.7510848045 - -0.7645778656 - -0.7521557808 - -0.7703151703 - -0.7623829842 - -0.7749404907 - -0.7621064186 - -0.7805957794 - -0.7736749649 - -0.7841887474 - -0.7729692459 - -0.7903623581 - -0.7826466560 - -0.7939186096 - -0.7829346657 - -0.8001065254 - -0.7921242714 - -0.8036074638 - -0.7921180725 - -0.8094310760 - -0.7989678383 - -0.8135485649 - -0.8012304306 - -0.8169965744 - -0.8057284355 - -0.8221640587 - -0.8160152435 - -0.8096294403 - -0.8291382790 - -0.8170604706 - -0.8285684586 - -0.8165965080 - -0.8359727859 - -0.8255224228 - -0.8347105980 - -0.8246364594 - -0.8432140350 - -0.8305468559 - -0.8434290886 - -0.8318734169 - -0.8489470482 - -0.8359184265 - -0.8509683609 - -0.8449935913 - -0.8388919830 - -0.8586888313 - -0.8445620537 - -0.8538289070 - -0.8460030556 - -0.8649983406 - -0.8482260704 - -0.8618526459 - -0.8529219627 - -0.8679084778 - -0.8554143906 - -0.8677349091 - -0.8576564789 - -0.8721356392 - -0.8605341911 - -0.8745403290 - -0.8653831482 - -0.8636574745 - -0.8825802803 - -0.8632326126 - -0.8765325546 - -0.8696231842 - -0.8839640617 - -0.8710598946 - -0.8815255165 - -0.8729481697 - -0.8914089203 - -0.8737144470 - -0.8873748779 - -0.8775959015 - -0.8923110962 - -0.8851382732 - -0.8785905838 - -0.8943021297 - -0.8833494186 - -0.8967969418 - -0.8792927265 - -0.8997888565 - -0.8874452114 - -0.9012596607 - -0.8861963749 - -0.8999676704 - -0.8921353817 - -0.9070062637 - -0.8863317966 - -0.9045033455 - -0.9024813175 - -0.8931176662 - -0.9094772339 - -0.8926718235 - -0.9099607468 - -0.8992452621 - -0.9090375900 - -0.8980922699 - -0.9132094383 - -0.9027514458 - -0.9156558514 - -0.8965530396 - -0.9199991226 - -0.9111194611 - -0.9033193588 - -0.9192988873 - -0.9034013748 - -0.9234340191 - -0.9060759544 - -0.9210453033 - -0.9097077847 - -0.9230160713 - -0.9125189781 - -0.9230570793 - -0.9124794006 - -0.9272732735 - -0.9209172726 - -0.9132380486 - -0.9283318520 - -0.9186673164 - -0.9288845062 - -0.9170804024 - -0.9301853180 - -0.9221730232 - -0.9326314926 - -0.9192206860 - -0.9364347458 - -0.9212565422 - -0.9397463799 - -0.9203550816 - -0.9406147003 - -0.9310059547 - -0.9284911156 - -0.9408960342 - -0.9281930923 - -0.9403259754 - -0.9325261116 - -0.9443781376 - -0.9305338860 - -0.9478251934 - -0.9314684868 - -0.9512577057 - -0.9339475632 - -0.9520430565 - -0.9342594147 - -0.9562969208 - -0.9439978600 - -0.9403085709 - -0.9560353756 - -0.9448266029 - -0.9542994499 - -0.9448173046 - -0.9598536491 - -0.9503130913 - -0.9591250420 - -0.9496760368 - -0.9644212723 - -0.9552369118 - -0.9644620419 - -0.9536674023 - -0.9714117050 - -0.9637417793 - -0.9601349831 - -0.9731218815 - -0.9633195400 - -0.9749684334 - -0.9664702415 - -0.9784741402 - -0.9696865082 - -0.9817397594 - -0.9729928970 - -0.9873142242 - -0.9730031490 - -0.9951224327 - -0.9764981270 - -0.9969129562 - -0.9811949730 - -1.0025625229 - -0.9832131863 - -1.0056059361 - -0.9974198341 - -0.9910593033 - -1.0163846016 - -0.9950337410 - -1.0154957771 - -1.0035958290 - -1.0213267803 - -1.0127446651 - -1.0220458508 - -1.0160486698 - -1.0348436832 - -1.0203256607 - -1.0411267281 - -1.0233578682 - -1.0490567684 - -1.0355007648 - -1.0494532585 - -1.0430512428 - -1.0587425232 - -1.0535738468 - -1.0674436092 - -1.0519554615 - -1.0816099644 - -1.0742723942 - -1.0661664009 - -1.0940561295 - -1.0774638653 - -1.1019093990 - -1.0876388550 - -1.1063637733 - -1.1047978401 - -1.1207933426 - -1.1069922447 - -1.1351280212 - -1.1237967014 - -1.1420421600 - -1.1391704082 - -1.1572284698 - -1.1460597515 - -1.1762020588 - -1.1634879112 - -1.1818068027 - -1.1819815636 - -1.2031006813 - -1.1937880516 - -1.2151370049 - -1.2158880234 - -1.2361173630 - -1.2255067825 - -1.2576479912 - -1.2487981319 - -1.2701842785 - -1.2714345455 - -1.2940275669 - -1.2891526222 - -1.3134829998 - -1.3174120188 - -1.3386162519 - -1.3309473991 - -1.3674501181 - -1.3631017208 - -1.3892778158 - -1.3835344315 - -1.4212969542 - -1.4173662663 - -1.4455165863 - -1.4413373470 - -1.4800122976 - -1.4785845280 - -1.5082906485 - -1.5065675974 - -1.5473222733 - -1.5452401638 - -1.5784037113 - -1.5828316212 - -1.6155331135 - -1.6252417564 - -1.6568534374 - -1.6617918015 - -1.6987662315 - -1.7117934227 - -1.7431654930 - -1.7504519224 - -1.7941331863 - -1.8015977144 - -1.8445900679 - -1.8493827581 - -1.8939003944 - -1.9106310606 - -1.9509007931 - -1.9584782124 - -2.0113515854 - -2.0245003700 - -2.0697667599 - -2.0856120586 - -2.1352276802 - -2.1516764164 - -2.2078440189 - -2.2203860283 - -2.2710895538 - -2.3001470566 - -2.3543903828 - -2.3686277866 - -2.4296290874 - -2.4568140507 - -2.5159301758 - -2.5384993553 - -2.5926742554 - -2.6488559246 - -2.6784026623 - -2.7373654842 - -2.7788059711 - -2.8391413689 - -2.8744306564 - -2.9448919296 - -2.9838922024 - -3.0526304245 - -3.0939550400 - -3.1686823368 - -3.2109844685 - -3.2847411633 - -3.3379597664 - -3.4107065201 - -3.4600944519 - -3.5460705757 - -3.5984787941 - -3.6764929295 - -3.7530550957 - -3.8072545528 - -3.9025619030 - -3.9647665024 - -4.0526733398 - -4.1178112030 - -4.2171821594 - -4.2855415344 - -4.3844680786 - -4.4496583939 - -4.5662984848 - -4.6359286308 - -4.7329845428 - -4.8359918594 - -4.9157438278 - -5.0331091881 - -5.1176147461 - -5.2330927849 - -5.3263416290 - -5.4496326447 - -5.5390100479 - -5.6669816971 - -5.7625560760 - -5.8989253044 - -5.9973196983 - -6.1268377304 - -6.2575364113 - -6.3651747704 - -6.5089497566 - -6.6220827103 - -6.7692298889 - -6.8905563354 - -7.0468058586 - -7.1702213287 - -7.3221011162 - -7.4670190811 - -7.6030826569 - -7.7713203430 - -7.9041872025 - -8.0747537613 - -8.2178859711 - -8.3958930969 - -8.5409421921 - -8.7175989151 - -8.8883028030 - -9.0456113815 - -9.2417545319 - -9.3934736252 - -9.5931482315 - -9.7624683380 - -9.9539937973 - -10.1358289719 - -10.3335819244 - -10.5340747833 - -10.7082509995 - -10.9258384705 - -11.1153678894 - -11.3306236267 - -11.5176105499 - -11.7423982620 - -11.9600191116 - -12.1597366333 - -12.3877716064 - -12.5992107391 - -12.8429603577 - -13.0477867126 - -13.2824840546 - -13.5327491760 - -13.7370147705 - -13.9968681335 - -14.2164516449 - -14.4708957672 - -14.6987304688 - -14.9615325928 - -15.2101860046 - -15.4489707947 - -15.7198257446 - -15.9588623047 - -16.2165737152 - -16.4900417328 - -16.7309398651 - -17.0162582397 - -17.2641143799 - -17.5437889099 - -17.8041820526 - -18.0802574158 - -18.3666782379 - -18.6210041046 - -18.9084053040 - -19.1835842133 - -19.4611129761 - -19.7508697510 - -20.0159244537 - -20.3284149170 - -20.5932483673 - -20.8860988617 - -21.1788406372 - -21.4424724579 - -21.7608337402 - -22.0305690765 - -22.3245639801 - -22.6249389648 - -22.8951721191 - -23.2119445801 - -23.4861335754 - -23.7854690552 - -24.0868988037 - -24.3484001160 - -24.6744995117 - -24.9508323669 - -25.2436714172 - -25.5462570190 - -25.8207626343 - -26.1317481995 - -26.3948898315 - -26.6983871460 - -26.9959259033 - -27.2597351074 - -27.5730972290 - -27.8378410339 - -28.1171226501 - -28.4161987305 - -28.6851730347 - -28.9723320007 - -29.2470283508 - -29.5142898560 - -29.8111991882 - -30.0541114807 - -30.3297882080 - -30.6230010986 - -30.8536605835 - -31.1416206360 - -31.3846015930 - -31.6442604065 - -31.9227447510 - -32.1390190125 - -32.4046134949 - -32.6638221741 - -32.8793601990 - -33.1450157166 - -33.3739662170 - -33.6067810059 - -33.8541946411 - -34.0575904846 - -34.2927780151 - -34.5307655334 - -34.7130432129 - -34.9508285522 - -35.1636390686 - -35.3558349609 - -35.5770111084 - -35.7467193604 - -35.9692649841 - -36.1575393677 - -36.3227806091 - -36.5262680054 - -36.7054367065 - -36.8699951172 - -37.0374603271 - -37.2282638550 - -37.3627967834 - -37.5452270508 - -37.6835670471 - -37.8314552307 - -37.9969825745 - -38.1114120483 - -38.2667922974 - -38.3975257874 - -38.5205421448 - -38.6438331604 - -38.7808609009 - -38.8655052185 - -38.9965782166 - -39.1163291931 - -39.1861152649 - -39.3027191162 - -39.4015426636 - -39.4801254272 - -39.5577278137 - -39.6568679810 - -39.7103958130 - -39.8108406067 - -39.8463401794 - -39.9297599792 - -39.9906387329 - -40.0314407349 - -40.0809555054 - -40.1513900757 - -40.1641349792 - -40.2073783875 - -40.2649269104 - -40.2589569092 - -40.3075790405 - -40.3258018494 - -40.3353500366 - -40.3469276428 - -40.3751754761 - -40.3546295166 - -40.3731002808 - -40.3653717041 - -40.3585815430 - -40.3478126526 - -40.3315086365 - -40.3297309875 - -40.2797164917 - -40.2792625427 - -40.2540702820 - -40.1941375732 - -40.1859016418 - -40.1431083679 - -40.0899429321 - -40.0444717407 - -40.0190086365 - -39.9412956238 - -39.8887023926 - -39.8527069092 - -39.7643127441 - -39.7051467896 - -39.6567649841 - -39.5569076538 - -39.5035781860 - -39.4315490723 - -39.3319854736 - -39.2692947388 - -39.1753959656 - -39.0907211304 - -38.9960517883 - -38.9024620056 - -38.8255310059 - -38.7033004761 - -38.6048851013 - -38.5304183960 - -38.4017372131 - -38.2881088257 - -38.2018356323 - -38.0826644897 - -37.9457588196 - -37.8543395996 - -37.7428741455 - -37.5924263000 - -37.4974327087 - -37.3718566895 - -37.2262001038 - -37.1183815002 - -36.9856948853 - -36.8493919373 - -36.7014198303 - -36.5941390991 - -36.4566383362 - -36.2909431458 - -36.1760101318 - -36.0350341797 - -35.8797721863 - -35.7371330261 - -35.5987167358 - -35.4600181580 - -35.2902374268 - -35.1535873413 - -35.0059165955 - -34.8534393311 - -34.6807785034 - -34.5495872498 - -34.3943023682 - -34.2264251709 - -34.0693778992 - -33.9234161377 - -33.7615661621 - -33.5877342224 - -33.4311943054 - -33.2926788330 - -33.1064414978 - -32.9453010559 - -32.7865257263 - -32.6381416321 - -32.4410781860 - -32.2857475281 - -32.1325569153 - -31.9561462402 - -31.7799339294 - -31.6159019470 - -31.4672927856 - -31.2800598145 - -31.0982818604 - -30.9456558228 - -30.7789573669 - -30.5986061096 - -30.4291763306 - -30.2519912720 - -30.1032714844 - -29.9077224731 - -29.7413482666 - -29.5688629150 - -29.3946151733 - -29.2267417908 - -29.0471496582 - -28.8765754700 - -28.7155914307 - -28.5257110596 - -28.3514747620 - -28.1748847961 - -28.0278358459 - -27.8332672119 - -27.6570777893 - -27.4869880676 - -27.3263244629 - -27.1353797913 - -26.9579734802 - -26.8057823181 - -26.6310386658 - -26.4467926025 - -26.2798194885 - -26.1080780029 - -25.9380683899 - -25.7561874390 - -25.5801887512 - -25.4293251038 - -25.2525100708 - -25.0748405457 - -24.9126701355 - -24.7393684387 - -24.5659027100 - -24.3929977417 - -24.2374801636 - -24.0609855652 - -23.8766593933 - -23.7310562134 - -23.5498466492 - -23.3865776062 - -23.2169151306 - -23.0567283630 - -22.8841056824 - -22.7221832275 - -22.5538444519 - -22.3900985718 - -22.2218742371 - -22.0652885437 - -21.8994483948 - -21.7383651733 - -21.5732154846 - -21.4126777649 - -21.2653427124 - -21.0857086182 - -20.9338645935 - -20.7769813538 - -20.6222343445 - -20.4561920166 - -20.2988357544 - -20.1428031921 - -19.9940872192 - -19.8324737549 - -19.6621437073 - -19.5137214661 - -19.3637809753 - -19.2168006897 - -19.0547409058 - -18.8963890076 - -18.7551155090 - -18.6029586792 - -18.4546928406 - -18.3011398315 - -18.1448173523 - -18.0043640137 - -17.8552551270 - -17.7106857300 - -17.5603446960 - -17.4168777466 - -17.2719364166 - -17.1330928802 - -16.9844036102 - -16.8369140625 - -16.7017574310 - -16.5573501587 - -16.4255695343 - -16.2749767303 - -16.1298770905 - -16.0018997192 - -15.8650894165 - -15.7275390625 - -15.5941638947 - -15.4321899414 - -15.3152656555 - -15.1799182892 - -15.0528984070 - -14.9097595215 - -14.7738094330 - -14.6419715881 - -14.5167713165 - -14.3858451843 - -14.2631912231 - -14.1319751740 - -13.9919261932 - -13.8715324402 - -13.7456703186 - -13.6272544861 - -13.5042304993 - -13.3540649414 - -13.2475910187 - -13.1265239716 - -13.0120258331 - -12.8794689178 - -12.7543201447 - -12.6417579651 - -12.5256214142 - -12.4112777710 - -12.2944316864 - -12.1581020355 - -12.0432987213 - -11.9304676056 - -11.8186511993 - -11.7130012512 - -11.5933589935 - -11.4766941071 - -11.3569755554 - -11.2601356506 - -11.1396198273 - -11.0409793854 - -10.9256362915 - -10.8115692139 - -10.6987438202 - -10.5988674164 - -10.5053157806 - -10.3840217590 - -10.2825412750 - -10.1802406311 - -10.0721073151 - -9.9719486237 - -9.8813877106 - -9.7872257233 - -9.6581192017 - -9.5545654297 - -9.4709262848 - -9.3717250824 - -9.2762489319 - -9.1883296967 - -9.0622844696 - -8.9790515900 - -8.8869819641 - -8.7867164612 - -8.7074947357 - -8.6195335388 - -8.5020980835 - -8.4060420990 - -8.3231334686 - -8.2334594727 - -8.1408081055 - -8.0726280212 - -7.9612426758 - -7.8825607300 - -7.7789134979 - -7.6920337677 - -7.6179351807 - -7.5240097046 - -7.4502983093 - -7.3645534515 - -7.2681598663 - -7.1924762726 - -7.1073513031 - -7.0287170410 - -6.9569396973 - -6.8769416809 - -6.7774219513 - -6.7000885010 - -6.6293525696 - -6.5471382141 - -6.4951667786 - -6.3917808533 - -6.3204002380 - -6.2339706421 - -6.1738281250 - -6.0802469254 - -6.0212898254 - -5.9490499496 - -5.8860406876 - -5.7913007736 - -5.7153539658 - -5.6495475769 - -5.5798215866 - -5.4997806549 - -5.4363546371 - -5.3832826614 - -5.3158454895 - -5.2254285812 - -5.1581125259 - -5.0988769531 - -5.0300636292 - -4.9484462738 - -4.9003849030 - -4.8424234390 - -4.7897357941 - -4.6890754700 - -4.6379776001 - -4.5744619370 - -4.5260868073 - -4.4445524216 - -4.3978796005 - -4.3581199646 - -4.2615470886 - -4.2060260773 - -4.1451749802 - -4.1062154770 - -4.0315771103 - -3.9823551178 - -3.9444475174 - -3.8532657623 - -3.8034000397 - -3.7510137558 - -3.6907033920 - -3.6208763123 - -3.5772190094 - -3.5426111221 - -3.4763116837 - -3.4231004715 - -3.3783130646 - -3.3045186996 - -3.2545318604 - -3.2193584442 - -3.1320362091 - -3.0928173065 - -3.0642948151 - -2.9899854660 - -2.9615077972 - -2.9191827774 - -2.8605079651 - -2.7929983139 - -2.7536449432 - -2.7276773453 - -2.6625833511 - -2.6235160828 - -2.5966415405 - -2.5291070938 - -2.4767351151 - -2.4427118301 - -2.3826112747 - -2.3453893661 - -2.3211441040 - -2.2674798965 - -2.2254695892 - -2.1915531158 - -2.1279306412 - -2.0919122696 - -2.0394220352 - -2.0089941025 - -1.9599218369 - -1.9001283646 - -1.8789167404 - -1.8350982666 - -1.7711820602 - -1.7516546249 - -1.7268018723 - -1.6811685562 - -1.6515607834 - -1.6045017242 - -1.5533170700 - -1.5362100601 - -1.4780406952 - -1.4412889481 - -1.4317398071 - -1.3942575455 - -1.3531322479 - -1.3178634644 - -1.2686376572 - -1.2558937073 - -1.2164783478 - -1.1937274933 - -1.1674890518 - -1.1037569046 - -1.0880022049 - -1.0631875992 - -0.9939079285 - -0.9849662781 - -0.9414606094 - -0.9140367508 - -0.8693761826 - -0.8281021118 - -0.8275375366 - -0.7637920380 - -0.7333307266 - -0.7114467621 - -0.6728515625 - -0.6491427422 - -0.5995230675 - -0.5791988373 - -0.5510163307 - -0.5158858299 - -0.5104637146 - -0.4740853310 - -0.4503831863 - -0.4380483627 - -0.3939757347 - -0.3968687057 - -0.3582315445 - -0.3601636887 - -0.3211417198 - -0.2980403900 - -0.2985634804 - -0.2666883469 - -0.2559080124 - -0.1940846443 - -0.1866593361 - -0.1755046844 - -0.1255941391 - -0.0926122665 - -0.0526485443 - -0.0342669487 - 0.0294075012 - 0.0787372589 - 0.0996346474 - 0.1607851982 - 0.2130732536 - 0.3170018196 - 0.3552656174 - 0.4228577614 - 0.4806656837 - 0.5910897255 - 0.6334424019 - 0.6773796082 - 0.7789564133 - 0.8673524857 - 0.9261622429 - 0.9423651695 - 1.0367293358 - 1.1448926926 - 1.1691985130 - 1.1708207130 - 1.2098817825 - 1.3840041161 - 1.3820257187 - 1.0982875824 - 0.0526838303 - -0.2580833435 - -0.3034830093 - -0.1835813522 - -0.1850519180 - -0.2529230118 - -0.2633552551 - -0.2420740128 - -0.2198209763 - -0.2644567490 - -0.2773561478 - -0.2715368271 - -0.2425985336 - -0.2898149490 - -0.2871751785 - -0.2973556519 - -0.2696743011 - -0.3008699417 - -0.3186893463 - -0.2999610901 - -0.3087816238 - -0.3115806580 - -0.3348655701 - -0.3218479156 - -0.3300333023 - -0.3276491165 - -0.3503618240 - -0.3414764404 - -0.3493452072 - -0.3433370590 - -0.3655824661 - -0.3611679077 - -0.3678245544 - -0.3531284332 - -0.3899240494 - -0.3710289001 - -0.3847599030 - -0.3701953888 - -0.4057474136 - -0.3841562271 - -0.3946971893 - -0.4024467468 - -0.3983287811 - -0.4140625000 - -0.4027748108 - -0.4175443649 - -0.4125833511 - -0.4265098572 - -0.4174699783 - -0.4309806824 - -0.4246311188 - -0.4385643005 - -0.4305982590 - -0.4444704056 - -0.4351930618 - -0.4497604370 - -0.4442968369 - -0.4573230743 - -0.4402379990 - -0.4700918198 - -0.4488067627 - -0.4692363739 - -0.4532384872 - -0.4808778763 - -0.4581031799 - -0.4800300598 - -0.4653491974 - -0.4900703430 - -0.4666204453 - -0.4902172089 - -0.4767541885 - -0.4984817505 - -0.4749832153 - -0.5005941391 - -0.4867591858 - -0.5075988770 - -0.4809999466 - -0.5100317001 - -0.5030355453 - -0.5052928925 - -0.4959707260 - -0.5186414719 - -0.5093603134 - -0.5121898651 - -0.5062761307 - -0.5275297165 - -0.5145196915 - -0.5195741653 - -0.5206422806 - -0.5184497833 - -0.5418481827 - -0.5088300705 - -0.5345859528 - -0.5268917084 - -0.5469970703 - -0.5133361816 - -0.5425176620 - -0.5402784348 - -0.5415744781 - -0.5273294449 - -0.5492105484 - -0.5434236526 - -0.5464010239 - -0.5358324051 - -0.5570173264 - -0.5482387543 - -0.5503783226 - -0.5433788300 - -0.5696940422 - -0.5403079987 - -0.5630064011 - -0.5510673523 - -0.5721392632 - -0.5406913757 - -0.5713701248 - -0.5701365471 - -0.5466322899 - -0.5737771988 - -0.5604248047 - -0.5787820816 - -0.5493164062 - -0.5793795586 - -0.5724792480 - -0.5703735352 - -0.5603814125 - -0.5920391083 - -0.5617713928 - -0.5817232132 - -0.5688419342 - -0.5925235748 - -0.5620284081 - -0.5878858566 - -0.5885448456 - -0.5639362335 - -0.5933704376 - -0.5831260681 - -0.5827112198 - -0.5764503479 - -0.6031012535 - -0.5723900795 - -0.5937957764 - -0.5882983208 - -0.5932741165 - -0.5810909271 - -0.6011309624 - -0.5890355110 - -0.5929942131 - -0.5858955383 - -0.6128072739 - -0.5839385986 - -0.5863542557 - -0.6180300713 - -0.5813961029 - -0.6038246155 - -0.5959224701 - -0.6022977829 - -0.6020331383 - -0.6016092300 - -0.5929617882 - -0.6192116737 - -0.5908403397 - -0.6114554405 - -0.6005058289 - -0.6089577675 - -0.6069498062 - -0.6049771309 - -0.6080255508 - -0.6029863358 - -0.6235375404 - -0.5903205872 - -0.6270871162 - -0.5990586281 - -0.6208624840 - -0.6113920212 - -0.6099681854 - -0.6098117828 - -0.6329765320 - -0.5944724083 - -0.6243386269 - -0.6241121292 - -0.6009192467 - -0.6360015869 - -0.6019086838 - -0.6287198067 - -0.6163539886 - -0.6219453812 - -0.6187005043 - -0.6239209175 - -0.6192555428 - -0.6347098351 - -0.6051502228 - -0.6400585175 - -0.6235604286 - -0.6156816483 - -0.6412863731 - -0.6087632179 - -0.6466584206 - -0.6134710312 - -0.6383757591 - -0.6254458427 - -0.6338319778 - -0.6288385391 - -0.6360960007 - -0.6285209656 - -0.6385064125 - -0.6335625648 - -0.6335072517 - -0.6353931427 - -0.6382551193 - -0.6385612488 - -0.6351881027 - -0.6416711807 - -0.6381058693 - -0.6460719109 - -0.6318297386 - -0.6563720703 - -0.6294541359 - -0.6580920219 - -0.6328911781 - -0.6588196754 - -0.6397862434 - -0.6496453285 - -0.6512026787 - -0.6471028328 - -0.6532235146 - -0.6499390602 - -0.6574039459 - -0.6485867500 - -0.6658406258 - -0.6400237083 - -0.6771526337 - -0.6432824135 - -0.6731848717 - -0.6472535133 - -0.6778311729 - -0.6574501991 - -0.6616692543 - -0.6719522476 - -0.6654167175 - -0.6701850891 - -0.6676468849 - -0.6760082245 - -0.6712560654 - -0.6770596504 - -0.6741786003 - -0.6794314384 - -0.6814875603 - -0.6802668571 - -0.6806149483 - -0.6928272247 - -0.6795277596 - -0.6913609505 - -0.6917691231 - -0.6896953583 - -0.6945495605 - -0.6959457397 - -0.7006654739 - -0.6976885796 - -0.7041292191 - -0.7018427849 - -0.7163228989 - -0.6949853897 - -0.7282719612 - -0.6992244720 - -0.7313885689 - -0.7054762840 - -0.7374100685 - -0.7076020241 - -0.7422161102 - -0.7285175323 - -0.7198076248 - -0.7536659241 - -0.7242746353 - -0.7545409203 - -0.7353386879 - -0.7526259422 - -0.7554173470 - -0.7537035942 - -0.7538895607 - -0.7719540596 - -0.7565002441 - -0.7873735428 - -0.7520680428 - -0.7950582504 - -0.7767462730 - -0.7878432274 - -0.7883439064 - -0.7952146530 - -0.8016085625 - -0.8127970695 - -0.7891478539 - -0.8312525749 - -0.8203787804 - -0.8087162971 - -0.8470773697 - -0.8161263466 - -0.8583455086 - -0.8357682228 - -0.8497481346 - -0.8604726791 - -0.8725762367 - -0.8499197960 - -0.8963618279 - -0.8736972809 - -0.8882493973 - -0.9000787735 - -0.9127421379 - -0.8893165588 - -0.9394702911 - -0.9203715324 - -0.9319171906 - -0.9384965897 - -0.9630780220 - -0.9499745369 - -0.9684429169 - -0.9760313034 - -0.9958376884 - -0.9768109322 - -1.0226883888 - -1.0045924187 - -1.0260605812 - -1.0336585045 - -1.0507898331 - -1.0498414040 - -1.0667409897 - -1.0785121918 - -1.1020212173 - -1.0820560455 - -1.1257357597 - -1.1252398491 - -1.1472530365 - -1.1320884228 - -1.1855759621 - -1.1704840660 - -1.2037777901 - -1.1910972595 - -1.2359983921 - -1.2348845005 - -1.2574944496 - -1.2564742565 - -1.2999572754 - -1.2953736782 - -1.3219528198 - -1.3337862492 - -1.3566541672 - -1.3688457012 - -1.4017357826 - -1.3976423740 - -1.4360241890 - -1.4491963387 - -1.4780793190 - -1.4774208069 - -1.5251929760 - -1.5272433758 - -1.5677330494 - -1.5706863403 - -1.6077032089 - -1.6297838688 - -1.6588890553 - -1.6641697884 - -1.7157363892 - -1.7234606743 - -1.7659809589 - -1.7729895115 - -1.8261594772 - -1.8269178867 - -1.8882882595 - -1.8929339647 - -1.9306768179 - -1.9631934166 - -2.0143179893 - -2.0060660839 - -2.0752193928 - -2.0958495140 - -2.1389145851 - -2.1573929787 - -2.2098617554 - -2.2515873909 - -2.2751498222 - -2.3210859299 - -2.3650596142 - -2.4049293995 - -2.4339556694 - -2.4965629578 - -2.5274977684 - -2.5774888992 - -2.6141085625 - -2.6778655052 - -2.7055487633 - -2.7662110329 - -2.8102602959 - -2.8694581985 - -2.9032275677 - -2.9746544361 - -3.0175621510 - -3.0744605064 - -3.1388707161 - -3.1767089367 - -3.2551610470 - -3.3013582230 - -3.3710477352 - -3.4172346592 - -3.5020351410 - -3.5462951660 - -3.6292333603 - -3.6699528694 - -3.7715249062 - -3.8150029182 - -3.8914685249 - -3.9720902443 - -4.0285205841 - -4.1208295822 - -4.1807074547 - -4.2715001106 - -4.3383994102 - -4.4334096909 - -4.4968628883 - -4.5954303741 - -4.6629581451 - -4.7684564590 - -4.8361587524 - -4.9347820282 - -5.0335359573 - -5.1069574356 - -5.2173900604 - -5.2963743210 - -5.4079904556 - -5.4913034439 - -5.6113758087 - -5.6956796646 - -5.8084478378 - -5.9132642746 - -6.0075597763 - -6.1347637177 - -6.2245540619 - -6.3522672653 - -6.4499092102 - -6.5800685883 - -6.6847343445 - -6.8069000244 - -6.9288482666 - -7.0420017242 - -7.1847190857 - -7.2809543610 - -7.4314441681 - -7.5497455597 - -7.6801548004 - -7.8095836639 - -7.9467430115 - -8.0924911499 - -8.2064018250 - -8.3632087708 - -8.4879169464 - -8.6500434875 - -8.7663745880 - -8.9255199432 - -9.0799579620 - -9.2152671814 - -9.3719291687 - -9.5100765228 - -9.6933040619 - -9.8223686218 - -9.9774799347 - -10.1663322449 - -10.2876663208 - -10.4721794128 - -10.6233959198 - -10.7880363464 - -10.9465293884 - -11.1294326782 - -11.2861557007 - -11.4548912048 - -11.6342506409 - -11.7962112427 - -11.9655723572 - -12.1530036926 - -12.3091239929 - -12.5027580261 - -12.6682929993 - -12.8479881287 - -13.0312957764 - -13.2016334534 - -13.4075431824 - -13.5578918457 - -13.7588653564 - -13.9366912842 - -14.1207008362 - -14.3074226379 - -14.4835815430 - -14.6911087036 - -14.8610420227 - -15.0513610840 - -15.2480278015 - -15.4060096741 - -15.6367874146 - -15.7873420715 - -15.9870529175 - -16.1878662109 - -16.3534889221 - -16.5620307922 - -16.7316246033 - -16.9312438965 - -17.1335678101 - -17.2732849121 - -17.5084991455 - -17.6789512634 - -17.8567810059 - -18.0617980957 - -18.2224807739 - -18.4375877380 - -18.5922470093 - -18.7810440063 - -18.9845504761 - -19.1333084106 - -19.3469772339 - -19.5031967163 - -19.6739578247 - -19.8792495728 - -20.0304870605 - -20.2208862305 - -20.3827514648 - -20.5595474243 - -20.7450180054 - -20.8820571899 - -21.0626144409 - -21.2517547607 - -21.3817977905 - -21.5592117310 - -21.7177200317 - -21.8672332764 - -22.0485229492 - -22.1715393066 - -22.3345565796 - -22.5055465698 - -22.6212921143 - -22.7879714966 - -22.9286499023 - -23.0670394897 - -23.2225341797 - -23.3316497803 - -23.4831314087 - -23.6325302124 - -23.7238922119 - -23.8801727295 - -24.0011596680 - -24.1146316528 - -24.2531890869 - -24.3367004395 - -24.4839172363 - -24.5923004150 - -24.6778564453 - -24.8118743896 - -24.9080734253 - -25.0051345825 - -25.0960617065 - -25.2182617188 - -25.2793121338 - -25.3974609375 - -25.4744720459 - -25.5473480225 - -25.6559295654 - -25.7071685791 - -25.8060913086 - -25.8662796021 - -25.9466094971 - -26.0036926270 - -26.0920791626 - -26.1200866699 - -26.2027816772 - -26.2730712891 - -26.2919082642 - -26.3662490845 - -26.4150619507 - -26.4579772949 - -26.4870452881 - -26.5461578369 - -26.5682525635 - -26.6250839233 - -26.6231842041 - -26.6786422729 - -26.7022323608 - -26.7208251953 - -26.7265472412 - -26.7833557129 - -26.7641677856 - -26.7803344727 - -26.8202514648 - -26.7868423462 - -26.8268966675 - -26.8163223267 - -26.8133773804 - -26.8077621460 - -26.8215942383 - -26.7904510498 - -26.8008193970 - -26.7828063965 - -26.7592315674 - -26.7635345459 - -26.7250061035 - -26.7189559937 - -26.6780242920 - -26.6712265015 - -26.6439590454 - -26.5805511475 - -26.5949554443 - -26.5399856567 - -26.4929428101 - -26.4609909058 - -26.4471282959 - -26.3665695190 - -26.3338470459 - -26.3087310791 - -26.2333526611 - -26.1904754639 - -26.1539382935 - -26.0750274658 - -26.0434036255 - -25.9801330566 - -25.9086456299 - -25.8693237305 - -25.7883758545 - -25.7388076782 - -25.6644821167 - -25.5951232910 - -25.5451202393 - -25.4581832886 - -25.3785247803 - -25.3374633789 - -25.2462997437 - -25.1487503052 - -25.1122970581 - -25.0137329102 - -24.9204559326 - -24.8581848145 - -24.7903747559 - -24.6631546021 - -24.6216812134 - -24.5242004395 - -24.4216613770 - -24.3504333496 - -24.2641906738 - -24.1627655029 - -24.0682296753 - -23.9933853149 - -23.9029617310 - -23.7844543457 - -23.7100830078 - -23.6218109131 - -23.5009384155 - -23.4215469360 - -23.3179702759 - -23.2286758423 - -23.1095428467 - -23.0206756592 - -22.9285964966 - -22.8156661987 - -22.7007598877 - -22.6274566650 - -22.5075988770 - -22.3999557495 - -22.3010711670 - -22.1990966797 - -22.0930709839 - -21.9805450439 - -21.8655548096 - -21.7885131836 - -21.6608963013 - -21.5428237915 - -21.4479217529 - -21.3600616455 - -21.2069549561 - -21.1139984131 - -21.0255584717 - -20.8931045532 - -20.7812271118 - -20.6709518433 - -20.5846099854 - -20.4511871338 - -20.3273010254 - -20.2384872437 - -20.1309585571 - -19.9981307983 - -19.8948135376 - -19.7789993286 - -19.6894149780 - -19.5450057983 - -19.4470214844 - -19.3371353149 - -19.2123184204 - -19.1137008667 - -18.9846038818 - -18.8822326660 - -18.7754974365 - -18.6470947266 - -18.5352478027 - -18.4253997803 - -18.3232727051 - -18.1970825195 - -18.0862426758 - -17.9698410034 - -17.8698272705 - -17.7433700562 - -17.6242828369 - -17.5292358398 - -17.4197387695 - -17.2901077271 - -17.1850738525 - -17.0775680542 - -16.9648513794 - -16.8460464478 - -16.7236022949 - -16.6429748535 - -16.5146026611 - -16.3972473145 - -16.3015823364 - -16.1837081909 - -16.0720901489 - -15.9542770386 - -15.8631286621 - -15.7424850464 - -15.6225967407 - -15.5323486328 - -15.4123687744 - -15.3036270142 - -15.1980895996 - -15.0911140442 - -14.9812126160 - -14.8725013733 - -14.7681159973 - -14.6574707031 - -14.5517807007 - -14.4454574585 - -14.3422203064 - -14.2340469360 - -14.1312675476 - -14.0224189758 - -13.9309387207 - -13.8135528564 - -13.7121009827 - -13.6149940491 - -13.5105094910 - -13.4007911682 - -13.3069000244 - -13.2012176514 - -13.0957489014 - -13.0081634521 - -12.8875312805 - -12.7889556885 - -12.6991004944 - -12.6007499695 - -12.4906387329 - -12.3952636719 - -12.3034667969 - -12.1980552673 - -12.1041374207 - -12.0125808716 - -11.8997840881 - -11.8148841858 - -11.7162971497 - -11.6243133545 - -11.5225906372 - -11.4304695129 - -11.3412971497 - -11.2459564209 - -11.1471977234 - -11.0598182678 - -10.9688987732 - -10.8672447205 - -10.7940292358 - -10.6867141724 - -10.5972938538 - -10.5147247314 - -10.4239883423 - -10.3287315369 - -10.2558822632 - -10.1353569031 - -10.0714149475 - -9.9737510681 - -9.8991088867 - -9.7997207642 - -9.7151679993 - -9.6291542053 - -9.5472984314 - -9.4632682800 - -9.3802223206 - -9.2989273071 - -9.2022132874 - -9.1332740784 - -9.0425148010 - -8.9665489197 - -8.8893966675 - -8.7908058167 - -8.7239685059 - -8.6336593628 - -8.5727920532 - -8.4815177917 - -8.3973350525 - -8.3220367432 - -8.2566337585 - -8.1741218567 - -8.0940895081 - -8.0137138367 - -7.9380149841 - -7.8575973511 - -7.7926330566 - -7.7198371887 - -7.6365432739 - -7.5737915039 - -7.4865646362 - -7.4214591980 - -7.3496589661 - -7.2823791504 - -7.2000961304 - -7.1372795105 - -7.0591621399 - -6.9879455566 - -6.9396247864 - -6.8480834961 - -6.7810401917 - -6.7279090881 - -6.6445465088 - -6.5837059021 - -6.5207443237 - -6.4623107910 - -6.3847198486 - -6.2988624573 - -6.2616882324 - -6.1919250488 - -6.1212615967 - -6.0761356354 - -5.9786605835 - -5.9412097931 - -5.8753032684 - -5.7976188660 - -5.7582702637 - -5.7009830475 - -5.6189537048 - -5.5515937805 - -5.5111789703 - -5.4453525543 - -5.3768005371 - -5.3464946747 - -5.2565860748 - -5.2238140106 - -5.1383762360 - -5.0952739716 - -5.0410327911 - -4.9790496826 - -4.9257812500 - -4.8828487396 - -4.8056945801 - -4.7611923218 - -4.7123126984 - -4.6477184296 - -4.6064777374 - -4.5540275574 - -4.4890060425 - -4.4375267029 - -4.3953914642 - -4.3267745972 - -4.3141326904 - -4.2247467041 - -4.1948165894 - -4.1247062683 - -4.0986042023 - -4.0270271301 - -3.9936046600 - -3.9371929169 - -3.9045734406 - -3.8448829651 - -3.7806091309 - -3.7535839081 - -3.7006435394 - -3.6490421295 - -3.6038589478 - -3.5720157623 - -3.5254726410 - -3.4686470032 - -3.4221611023 - -3.3860778809 - -3.3381156921 - -3.2836570740 - -3.2615966797 - -3.2026004791 - -3.1876010895 - -3.1084690094 - -3.0911178589 - -3.0269794464 - -3.0099868774 - -2.9599819183 - -2.9117736816 - -2.9007110596 - -2.8243789673 - -2.8062362671 - -2.7474575043 - -2.7318153381 - -2.6803359985 - -2.6443862915 - -2.6270675659 - -2.5550365448 - -2.5342941284 - -2.4954299927 - -2.4525718689 - -2.4178638458 - -2.3718490601 - -2.3606929779 - -2.3160381317 - -2.2753734589 - -2.2456207275 - -2.2041149139 - -2.1683082581 - -2.1471157074 - -2.0783119202 - -2.0684719086 - -2.0486793518 - -1.9816741943 - -1.9775600433 - -1.9466991425 - -1.9050159454 - -1.8688869476 - -1.8282680511 - -1.8249988556 - -1.7789077759 - -1.7456417084 - -1.7284336090 - -1.6926403046 - -1.6538753510 - -1.6283607483 - -1.5932941437 - -1.5675678253 - -1.5489044189 - -1.5165090561 - -1.4833106995 - -1.4624242783 - -1.4277181625 - -1.4007854462 - -1.3557796478 - -1.3512372971 - -1.3162117004 - -1.2651367188 - -1.2700939178 - -1.2243461609 - -1.1892576218 - -1.1882009506 - -1.1479959488 - -1.1239843369 - -1.1228284836 - -1.0701026917 - -1.0397853851 - -1.0431804657 - -0.9931182861 - -0.9655942917 - -0.9715881348 - -0.9349517822 - -0.9047479630 - -0.8978691101 - -0.8539438248 - -0.8436775208 - -0.8221817017 - -0.8016939163 - -0.7946720123 - -0.7390546799 - -0.7304019928 - -0.7321062088 - -0.6711797714 - -0.6616401672 - -0.6396064758 - -0.6370229721 - -0.5827541351 - -0.5610036850 - -0.5813922882 - -0.5147953033 - -0.5092535019 - -0.4882211685 - -0.4687843323 - -0.4536943436 - -0.4112176895 - -0.4120388031 - -0.3898105621 - -0.3546905518 - -0.3640775681 - -0.3423585892 - -0.3049592972 - -0.3135175705 - -0.2876520157 - -0.2805643082 - -0.2419147491 - -0.2651414871 - -0.2305812836 - -0.2064809799 - -0.2140941620 - -0.1815137863 - -0.1948270798 - -0.1407442093 - -0.1279087067 - -0.1341209412 - -0.1103296280 - -0.0685129166 - -0.0485277176 - -0.0548944473 - -0.0049161911 - 0.0302391052 - 0.0299043655 - 0.0785017014 - 0.0891952515 - 0.1657361984 - 0.1756610870 - 0.2262525558 - 0.2359704971 - 0.3118972778 - 0.3439273834 - 0.3543338776 - 0.4015836716 - 0.4698772430 - 0.5001564026 - 0.4930191040 - 0.5547866821 - 0.6176691055 - 0.6247510910 - 0.6300125122 - 0.6489276886 - 0.7490253448 - 0.7352228165 - 0.6166315079 - 0.0690097809 - -0.0750312805 - -0.0928764343 - -0.0261278152 - -0.0374126434 - -0.0667800903 - -0.0538797379 - -0.0531320572 - -0.0421342850 - -0.0621690750 - -0.0519895554 - -0.0586862564 - -0.0435390472 - -0.0655450821 - -0.0475606918 - -0.0633773804 - -0.0473499298 - -0.0590944290 - -0.0610933304 - -0.0479793549 - -0.0637807846 - -0.0521535873 - -0.0616950989 - -0.0520505905 - -0.0647621155 - -0.0507822037 - -0.0635185242 - -0.0548601151 - -0.0601015091 - -0.0590744019 - -0.0568552017 - -0.0604982376 - -0.0638074875 - -0.0488319397 - -0.0710315704 - -0.0529384613 - -0.0662031174 - -0.0466670990 - -0.0810813904 - -0.0444927216 - -0.0638647079 - -0.0655231476 - -0.0561790466 - -0.0659580231 - -0.0518894196 - -0.0698280334 - -0.0599699020 - -0.0589942932 - -0.0612354279 - -0.0634517670 - -0.0617685318 - -0.0621690750 - -0.0567626953 - -0.0680942535 - -0.0588693619 - -0.0651578903 - -0.0536832809 - -0.0723924637 - -0.0528650284 - -0.0732927322 - -0.0466756821 - -0.0764141083 - -0.0495004654 - -0.0772371292 - -0.0474262238 - -0.0698366165 - -0.0573701859 - -0.0758562088 - -0.0434560776 - -0.0697174072 - -0.0636501312 - -0.0695304871 - -0.0444831848 - -0.0720968246 - -0.0610971451 - -0.0733575821 - -0.0394115448 - -0.0714426041 - -0.0720100403 - -0.0578908920 - -0.0474977493 - -0.0707187653 - -0.0732231140 - -0.0512809753 - -0.0529556274 - -0.0738439560 - -0.0645999908 - -0.0548706055 - -0.0585803986 - -0.0599431992 - -0.0792474747 - -0.0409202576 - -0.0657072067 - -0.0589284897 - -0.0780763626 - -0.0391082764 - -0.0647459030 - -0.0701732635 - -0.0598330498 - -0.0486564636 - -0.0672879219 - -0.0630884171 - -0.0593566895 - -0.0510406494 - -0.0692210197 - -0.0607295036 - -0.0559964180 - -0.0530271530 - -0.0792193413 - -0.0414199829 - -0.0648598671 - -0.0561494827 - -0.0758037567 - -0.0314421654 - -0.0737462044 - -0.0680985451 - -0.0406517982 - -0.0651392937 - -0.0552463531 - -0.0727028847 - -0.0352702141 - -0.0672435760 - -0.0658273697 - -0.0519905090 - -0.0432238579 - -0.0821542740 - -0.0407247543 - -0.0606503487 - -0.0512981415 - -0.0724391937 - -0.0400972366 - -0.0571851730 - -0.0714011192 - -0.0380096436 - -0.0619330406 - -0.0588297844 - -0.0514431000 - -0.0511755943 - -0.0664739609 - -0.0423421860 - -0.0583543777 - -0.0579280853 - -0.0558257103 - -0.0399250984 - -0.0668368340 - -0.0544190407 - -0.0482749939 - -0.0413689613 - -0.0792689323 - -0.0371861458 - -0.0425305367 - -0.0749268532 - -0.0328097343 - -0.0622286797 - -0.0497012138 - -0.0423316956 - -0.0639266968 - -0.0487670898 - -0.0397729874 - -0.0606899261 - -0.0454516411 - -0.0556330681 - -0.0400652885 - -0.0525135994 - -0.0523381233 - -0.0507125854 - -0.0377216339 - -0.0511031151 - -0.0637273788 - -0.0217690468 - -0.0685634613 - -0.0357232094 - -0.0479364395 - -0.0563869476 - -0.0332984924 - -0.0466647148 - -0.0634069443 - -0.0214548111 - -0.0566663742 - -0.0532960892 - -0.0220069885 - -0.0688867569 - -0.0258464813 - -0.0523700714 - -0.0368776321 - -0.0487017632 - -0.0427169800 - -0.0346150398 - -0.0461115837 - -0.0502505302 - -0.0245070457 - -0.0501384735 - -0.0439453125 - -0.0259180069 - -0.0600113869 - -0.0139651299 - -0.0625782013 - -0.0211949348 - -0.0471067429 - -0.0330324173 - -0.0396847725 - -0.0349302292 - -0.0390982628 - -0.0316863060 - -0.0392403603 - -0.0318474770 - -0.0394086838 - -0.0253086090 - -0.0426139832 - -0.0291366577 - -0.0312967300 - -0.0363368988 - -0.0269856453 - -0.0376725197 - -0.0221261978 - -0.0405707359 - -0.0209937096 - -0.0363912582 - -0.0217337608 - -0.0374503136 - -0.0182619095 - -0.0347661972 - -0.0212969780 - -0.0274267197 - -0.0292506218 - -0.0175647736 - -0.0276851654 - -0.0264396667 - -0.0248851776 - -0.0045490265 - -0.0503835678 - 0.0009040833 - -0.0296134949 - -0.0142459869 - -0.0305223465 - -0.0082387924 - -0.0196213722 - -0.0227293968 - -0.0132660866 - -0.0149235725 - -0.0162806511 - -0.0171990395 - -0.0095100403 - -0.0151104927 - -0.0146622658 - -0.0058932304 - -0.0186538696 - -0.0026540756 - -0.0137190819 - -0.0125722885 - 0.0038108826 - -0.0186586380 - -0.0002751350 - -0.0067486763 - -0.0018906593 - -0.0066776276 - -0.0028958321 - 0.0008592606 - -0.0041313171 - 0.0027031898 - -0.0067982674 - 0.0148358345 - -0.0140819550 - 0.0197401047 - -0.0099263191 - 0.0177779198 - -0.0071115494 - 0.0206451416 - -0.0020828247 - 0.0103693008 - 0.0146861076 - 0.0040836334 - 0.0233259201 - -0.0037722588 - 0.0264477730 - 0.0171518326 - 0.0054783821 - 0.0235781670 - 0.0190486908 - 0.0174584389 - 0.0270590782 - 0.0011134148 - 0.0520734787 - 0.0032396317 - 0.0307826996 - 0.0252757072 - 0.0291423798 - 0.0306420326 - 0.0268402100 - 0.0213675499 - 0.0533356667 - 0.0170345306 - 0.0329699516 - 0.0496902466 - 0.0171833038 - 0.0626783371 - 0.0152339935 - 0.0487575531 - 0.0518074036 - 0.0324673653 - 0.0362615585 - 0.0712718964 - 0.0208358765 - 0.0569834709 - 0.0567369461 - 0.0435771942 - 0.0407400131 - 0.0805120468 - 0.0328354836 - 0.0569725037 - 0.0644984245 - 0.0614695549 - 0.0468006134 - 0.0680499077 - 0.0643100739 - 0.0636053085 - 0.0529785156 - 0.0862627029 - 0.0488357544 - 0.0795717239 - 0.0669679642 - 0.0703377724 - 0.0745315552 - 0.0705580711 - 0.0790076256 - 0.0804057121 - 0.0617742538 - 0.0952553749 - 0.0768351555 - 0.0761365891 - 0.0775847435 - 0.1022534370 - 0.0659632683 - 0.0976014137 - 0.0748109818 - 0.1018095016 - 0.0830059052 - 0.0871663094 - 0.0916438103 - 0.1006333828 - 0.0849657059 - 0.0942015648 - 0.1009697914 - 0.0889062881 - 0.1019690037 - 0.1015167236 - 0.0818474293 - 0.1177315712 - 0.0946421623 - 0.0987496376 - 0.0953276157 - 0.1170816422 - 0.0892350674 - 0.1086854935 - 0.1009056568 - 0.1029365063 - 0.1107826233 - 0.0945165157 - 0.1082878113 - 0.1078045368 - 0.1026091576 - 0.1063237190 - 0.0983192921 - 0.1156952381 - 0.0920231342 - 0.1180589199 - 0.0925188065 - 0.1017916203 - 0.1154414415 - 0.0973005295 - 0.0827091932 - 0.1294404268 - 0.0846923590 - 0.0955070257 - 0.0999355912 - 0.1040835977 - 0.0850850940 - 0.0949614644 - 0.0928223729 - 0.0935966372 - 0.0816290677 - 0.0859257951 - 0.0907393247 - 0.0752336085 - 0.0759789050 - 0.0840117335 - 0.0709704161 - 0.0638688803 - 0.0767508745 - 0.0610809326 - 0.0609076023 - 0.0535134077 - 0.0591188669 - 0.0484713316 - 0.0419399738 - 0.0465128422 - 0.0306303501 - 0.0381665230 - 0.0218274593 - 0.0237710476 - 0.0132572651 - 0.0186629295 - -0.0070586205 - 0.0082561970 - -0.0160984993 - -0.0030546188 - -0.0326848030 - -0.0214290619 - -0.0380353928 - -0.0440416336 - -0.0477418900 - -0.0655741692 - -0.0620207787 - -0.0788450241 - -0.0855355263 - -0.0972423553 - -0.1008763313 - -0.1181740761 - -0.1190996170 - -0.1449508667 - -0.1364536285 - -0.1586151123 - -0.1781978607 - -0.1717138290 - -0.1980781555 - -0.2035379410 - -0.2253580093 - -0.2225790024 - -0.2575063705 - -0.2545490265 - -0.2753849030 - -0.2962608337 - -0.2944889069 - -0.3301906586 - -0.3300228119 - -0.3616991043 - -0.3625478745 - -0.3927631378 - -0.4073047638 - -0.4238929749 - -0.4369440079 - -0.4661026001 - -0.4886169434 - -0.4913444519 - -0.5241565704 - -0.5479984283 - -0.5637245178 - -0.5819797516 - -0.6073627472 - -0.6365070343 - -0.6515293121 - -0.6806812286 - -0.6873645782 - -0.7453193665 - -0.7421607971 - -0.7707653046 - -0.8055267334 - -0.8334045410 - -0.8557338715 - -0.8680362701 - -0.9256191254 - -0.9409961700 - -0.9521026611 - -1.0129604340 - -1.0176277161 - -1.0597419739 - -1.0891971588 - -1.1131153107 - -1.1486473083 - -1.1903877258 - -1.2037448883 - -1.2517471313 - -1.2770156860 - -1.3160133362 - -1.3455162048 - -1.3833885193 - -1.4144783020 - -1.4525642395 - -1.4911727905 - -1.5162544250 - -1.5689468384 - -1.5851211548 - -1.6514739990 - -1.6573829651 - -1.7148017883 - -1.7464294434 - -1.7909469604 - -1.8196067810 - -1.8665580750 - -1.9036941528 - -1.9478302002 - -1.9814109802 - -2.0307197571 - -2.0477790833 - -2.1361579895 - -2.1280632019 - -2.1864280701 - -2.2403984070 - -2.2684173584 - -2.3150215149 - -2.3438110352 - -2.3987045288 - -2.4602355957 - -2.4494018555 - -2.5394020081 - -2.5713462830 - -2.5962028503 - -2.6663360596 - -2.6761703491 - -2.7509422302 - -2.7813949585 - -2.8070144653 - -2.8810997009 - -2.8922424316 - -2.9636573792 - -2.9881553650 - -3.0192222595 - -3.0964317322 - -3.1052093506 - -3.1683349609 - -3.1897583008 - -3.2537155151 - -3.2927856445 - -3.3097152710 - -3.3747634888 - -3.4156799316 - -3.4459533691 - -3.4789733887 - -3.5392456055 - -3.5590438843 - -3.6103057861 - -3.6455459595 - -3.6793518066 - -3.7328033447 - -3.7541351318 - -3.7979736328 - -3.8367004395 - -3.8660964966 - -3.9151000977 - -3.9324722290 - -3.9794082642 - -4.0224685669 - -4.0372314453 - -4.0872497559 - -4.1116867065 - -4.1462020874 - -4.1855468750 - -4.1982116699 - -4.2483749390 - -4.2766036987 - -4.2900466919 - -4.3445205688 - -4.3596572876 - -4.3871459961 - -4.4115676880 - -4.4535140991 - -4.4545440674 - -4.5018539429 - -4.5265502930 - -4.5339660645 - -4.5777969360 - -4.5871047974 - -4.6237335205 - -4.6248855591 - -4.6705932617 - -4.6729202271 - -4.7090377808 - -4.7067413330 - -4.7472991943 - -4.7621383667 - -4.7639160156 - -4.7966079712 - -4.8069610596 - -4.8313827515 - -4.8272094727 - -4.8540115356 - -4.8686447144 - -4.8846282959 - -4.8745117188 - -4.9079971313 - -4.9134521484 - -4.9288940430 - -4.9113998413 - -4.9592590332 - -4.9409408569 - -4.9529953003 - -4.9702148438 - -4.9533309937 - -4.9943389893 - -4.9779891968 - -4.9772491455 - -4.9851226807 - -5.0036773682 - -4.9802474976 - -5.0018386841 - -5.0052185059 - -4.9824752808 - -5.0226287842 - -4.9847946167 - -4.9991683960 - -5.0008087158 - -4.9965286255 - -4.9972686768 - -4.9656906128 - -5.0140304565 - -4.9728012085 - -4.9670410156 - -4.9692153931 - -4.9873504639 - -4.9375686646 - -4.9546737671 - -4.9485778809 - -4.9350585938 - -4.9226150513 - -4.9237823486 - -4.8989105225 - -4.9153900146 - -4.8851928711 - -4.8704071045 - -4.8838806152 - -4.8426895142 - -4.8566818237 - -4.8287048340 - -4.8146209717 - -4.8176956177 - -4.7967071533 - -4.7613754272 - -4.7826995850 - -4.7593917847 - -4.7087936401 - -4.7453002930 - -4.6976165771 - -4.6869201660 - -4.6691436768 - -4.6738510132 - -4.6181106567 - -4.6371612549 - -4.6056594849 - -4.5777816772 - -4.5738677979 - -4.5545043945 - -4.5259628296 - -4.5147705078 - -4.4956054688 - -4.4822006226 - -4.4485626221 - -4.4381408691 - -4.4266662598 - -4.3840255737 - -4.3850402832 - -4.3509750366 - -4.3408203125 - -4.3010940552 - -4.2939834595 - -4.2781982422 - -4.2422180176 - -4.2164230347 - -4.2216033936 - -4.1724472046 - -4.1581573486 - -4.1403961182 - -4.1155395508 - -4.0935363770 - -4.0735626221 - -4.0325164795 - -4.0374679565 - -4.0026779175 - -3.9634399414 - -3.9585113525 - -3.9463958740 - -3.8894195557 - -3.8805389404 - -3.8753814697 - -3.8267669678 - -3.8103485107 - -3.7825164795 - -3.7757186890 - -3.7383346558 - -3.7009506226 - -3.7001419067 - -3.6797637939 - -3.6282501221 - -3.6188812256 - -3.5991210938 - -3.5821456909 - -3.5329360962 - -3.5247192383 - -3.5123214722 - -3.4600296021 - -3.4571914673 - -3.4173049927 - -3.4114761353 - -3.3713531494 - -3.3496856689 - -3.3273239136 - -3.3129882812 - -3.2691879272 - -3.2569503784 - -3.2399978638 - -3.1970748901 - -3.1814804077 - -3.1671752930 - -3.1246109009 - -3.1054992676 - -3.1011352539 - -3.0520706177 - -3.0343399048 - -3.0231094360 - -2.9861145020 - -2.9723892212 - -2.9270782471 - -2.9330329895 - -2.8955459595 - -2.8584480286 - -2.8610076904 - -2.8171615601 - -2.8081436157 - -2.7664871216 - -2.7629966736 - -2.7321701050 - -2.7058105469 - -2.6872558594 - -2.6701469421 - -2.6297874451 - -2.6258888245 - -2.5898132324 - -2.5805740356 - -2.5413436890 - -2.5340042114 - -2.5025939941 - -2.4852638245 - -2.4568634033 - -2.4419822693 - -2.4118728638 - -2.4039878845 - -2.3661117554 - -2.3534736633 - -2.3402404785 - -2.2994422913 - -2.2945251465 - -2.2691421509 - -2.2359428406 - -2.2364883423 - -2.2040405273 - -2.1695899963 - -2.1774063110 - -2.1414108276 - -2.1123580933 - -2.1088142395 - -2.0851402283 - -2.0493507385 - -2.0516967773 - -2.0253105164 - -1.9912376404 - -1.9873695374 - -1.9716453552 - -1.9329490662 - -1.9300384521 - -1.9051322937 - -1.8894271851 - -1.8603591919 - -1.8478088379 - -1.8379745483 - -1.8062515259 - -1.7860336304 - -1.7854156494 - -1.7570343018 - -1.7287445068 - -1.7312622070 - -1.6948852539 - -1.6901702881 - -1.6693420410 - -1.6488189697 - -1.6266746521 - -1.6287803650 - -1.5827445984 - -1.5920524597 - -1.5571289062 - -1.5511550903 - -1.5280685425 - -1.5158958435 - -1.4965019226 - -1.4830856323 - -1.4695625305 - -1.4472351074 - -1.4340248108 - -1.4165191650 - -1.4108810425 - -1.3798789978 - -1.3712844849 - -1.3584823608 - -1.3397331238 - -1.3319320679 - -1.2980728149 - -1.3024177551 - -1.2865409851 - -1.2613067627 - -1.2436370850 - -1.2500648499 - -1.2230491638 - -1.1992378235 - -1.2002258301 - -1.1838645935 - -1.1611442566 - -1.1600303650 - -1.1364402771 - -1.1222572327 - -1.1233520508 - -1.0982475281 - -1.0840759277 - -1.0760841370 - -1.0668945312 - -1.0385589600 - -1.0439224243 - -1.0213546753 - -1.0089111328 - -1.0121231079 - -0.9733581543 - -0.9704475403 - -0.9784736633 - -0.9422931671 - -0.9366264343 - -0.9281768799 - -0.9167976379 - -0.9113597870 - -0.8770847321 - -0.8925743103 - -0.8690872192 - -0.8543891907 - -0.8579063416 - -0.8173675537 - -0.8450984955 - -0.8211555481 - -0.7844734192 - -0.8042583466 - -0.7943096161 - -0.7663478851 - -0.7586345673 - -0.7623863220 - -0.7495517731 - -0.7233829498 - -0.7339439392 - -0.7052268982 - -0.7180614471 - -0.6841812134 - -0.6959838867 - -0.6757335663 - -0.6728878021 - -0.6467647552 - -0.6679420471 - -0.6308956146 - -0.6310291290 - -0.6390228271 - -0.6011524200 - -0.6101016998 - -0.5974006653 - -0.5927543640 - -0.5767269135 - -0.5832099915 - -0.5488243103 - -0.5733165741 - -0.5371665955 - -0.5485496521 - -0.5267372131 - -0.5327644348 - -0.5191116333 - -0.5093669891 - -0.4974250793 - -0.4970531464 - -0.5010414124 - -0.4614715576 - -0.4894123077 - -0.4639701843 - -0.4644298553 - -0.4472770691 - -0.4514293671 - -0.4347000122 - -0.4394187927 - -0.4226760864 - -0.4257717133 - -0.4096279144 - -0.4095554352 - -0.4116325378 - -0.3784961700 - -0.3975696564 - -0.3794059753 - -0.3905162811 - -0.3546638489 - -0.3678112030 - -0.3774909973 - -0.3324298859 - -0.3605575562 - -0.3268661499 - -0.3601970673 - -0.3137397766 - -0.3335952759 - -0.3178176880 - -0.3182792664 - -0.3116207123 - -0.2939662933 - -0.3140544891 - -0.2890186310 - -0.2901248932 - -0.2962894440 - -0.2710227966 - -0.2773857117 - -0.2785797119 - -0.2596569061 - -0.2615070343 - -0.2584648132 - -0.2566070557 - -0.2570476532 - -0.2253284454 - -0.2572441101 - -0.2423038483 - -0.2195091248 - -0.2304363251 - -0.2273807526 - -0.2131862640 - -0.2323780060 - -0.1927242279 - -0.2170429230 - -0.2132749557 - -0.1893157959 - -0.1933555603 - -0.1964063644 - -0.1963586807 - -0.1765565872 - -0.1888647079 - -0.1775226593 - -0.1771087646 - -0.1703643799 - -0.1694450378 - -0.1565971375 - -0.1702213287 - -0.1686191559 - -0.1345252991 - -0.1679811478 - -0.1544961929 - -0.1386442184 - -0.1576652527 - -0.1359472275 - -0.1365003586 - -0.1631355286 - -0.1111335754 - -0.1274166107 - -0.1475162506 - -0.1191253662 - -0.1106548309 - -0.1374273300 - -0.1195583344 - -0.1028137207 - -0.1310081482 - -0.0991039276 - -0.1023416519 - -0.1179285049 - -0.1026954651 - -0.0911493301 - -0.1063165665 - -0.0850152969 - -0.1087665558 - -0.0760154724 - -0.0848493576 - -0.1038150787 - -0.0858306885 - -0.0682287216 - -0.0861339569 - -0.1007976532 - -0.0673418045 - -0.0646953583 - -0.1061306000 - -0.0540657043 - -0.0864458084 - -0.0677738190 - -0.0712108612 - -0.0832700729 - -0.0534524918 - -0.0820960999 - -0.0674362183 - -0.0561828613 - -0.0676784515 - -0.0767049789 - -0.0303077698 - -0.0682077408 - -0.0665988922 - -0.0447759628 - -0.0339031219 - -0.0597429276 - -0.0512161255 - -0.0257253647 - -0.0476379395 - -0.0230264664 - -0.0508995056 - -0.0376501083 - -0.0110845566 - -0.0427570343 - -0.0516433716 - -0.0137271881 - -0.0313835144 - -0.0484189987 - -0.0434751511 - -0.0331201553 - -0.0485858917 - -0.0438442230 - -0.0736732483 - -0.0522975922 - -0.0857143402 - -0.0617475510 - -0.1141300201 - -0.1003513336 - -0.0872316360 - -0.1269550323 - -0.1461553574 - -0.1212997437 - -0.1467733383 - -0.1673421860 - -0.1560974121 - -0.1786279678 - -0.1880445480 - -0.1781044006 - -0.1832752228 - -0.2138957977 - -0.2262964249 - -0.1199274063 - 0.0527305603 - 0.1399421692 - 0.1597027779 - 0.1510310173 - 0.1229515076 - 0.1491785049 - 0.1820335388 - 0.1662492752 - 0.1498961449 - 0.1694693565 - 0.1997752190 - 0.1857657433 - 0.1704435349 - 0.1914334297 - 0.2173490524 - 0.1989088058 - 0.2003245354 - 0.2057466507 - 0.2294378281 - 0.2297692299 - 0.2079224586 - 0.2300038338 - 0.2481007576 - 0.2392849922 - 0.2307868004 - 0.2511157990 - 0.2549486160 - 0.2591447830 - 0.2563066483 - 0.2518386841 - 0.2853255272 - 0.2646470070 - 0.2715101242 - 0.2807669640 - 0.2811698914 - 0.2909803391 - 0.2841119766 - 0.3000774384 - 0.2817277908 - 0.3173923492 - 0.2983336449 - 0.3020062447 - 0.3131456375 - 0.3145751953 - 0.3245034218 - 0.3105883598 - 0.3211956024 - 0.3378643990 - 0.3252878189 - 0.3328928947 - 0.3308568001 - 0.3451266289 - 0.3446617126 - 0.3400959969 - 0.3446841240 - 0.3520998955 - 0.3636069298 - 0.3456330299 - 0.3583383560 - 0.3603382111 - 0.3808264732 - 0.3459262848 - 0.3820762634 - 0.3630523682 - 0.3854584694 - 0.3724403381 - 0.3781580925 - 0.3739061356 - 0.4033064842 - 0.3784432411 - 0.3836731911 - 0.3892235756 - 0.4090175629 - 0.3909850121 - 0.3887138367 - 0.3981609344 - 0.4223656654 - 0.3989443779 - 0.3880367279 - 0.4221243858 - 0.4223518372 - 0.4092545509 - 0.3911781311 - 0.4407815933 - 0.4240856171 - 0.4098567963 - 0.4121370316 - 0.4430799484 - 0.4286327362 - 0.4168343544 - 0.4266362190 - 0.4479470253 - 0.4256844521 - 0.4381399155 - 0.4272770882 - 0.4498286247 - 0.4460411072 - 0.4245624542 - 0.4527158737 - 0.4519701004 - 0.4401006699 - 0.4491519928 - 0.4484457970 - 0.4612584114 - 0.4439311028 - 0.4559493065 - 0.4584341049 - 0.4641795158 - 0.4415526390 - 0.4771156311 - 0.4565372467 - 0.4671602249 - 0.4482121468 - 0.4930315018 - 0.4499764442 - 0.4671554565 - 0.4784815311 - 0.4681525230 - 0.4758739471 - 0.4576675892 - 0.4968483448 - 0.4682097435 - 0.4648735523 - 0.4917228222 - 0.4850528240 - 0.4589538574 - 0.4998435974 - 0.4787309170 - 0.4831504822 - 0.4810502529 - 0.4906241894 - 0.4908716679 - 0.4794478416 - 0.4944436550 - 0.4917423725 - 0.4839963913 - 0.5020997524 - 0.4844558239 - 0.4949548244 - 0.4994447231 - 0.4961121082 - 0.4921510220 - 0.4933872223 - 0.5150122643 - 0.4907846451 - 0.4905891418 - 0.5094113350 - 0.5174584389 - 0.4743816853 - 0.5178902149 - 0.5101711750 - 0.4907937050 - 0.5194973946 - 0.4947304726 - 0.5078475475 - 0.5240354538 - 0.4898216724 - 0.5132482052 - 0.5176463127 - 0.5103418827 - 0.5072786808 - 0.5101749897 - 0.5217926502 - 0.5128972530 - 0.5099775791 - 0.5089781284 - 0.5323052406 - 0.5064485073 - 0.5065383911 - 0.5384767056 - 0.5013394356 - 0.5208930969 - 0.5323505402 - 0.4995384216 - 0.5351073742 - 0.5176169872 - 0.5154078007 - 0.5314297676 - 0.5163459778 - 0.5163035393 - 0.5432939529 - 0.5013043880 - 0.5333359241 - 0.5248825550 - 0.5300691128 - 0.5144560337 - 0.5246317387 - 0.5428695679 - 0.5147676468 - 0.5215635300 - 0.5388975143 - 0.5294063091 - 0.5157215595 - 0.5460851192 - 0.5080418587 - 0.5518114567 - 0.5133962631 - 0.5357830524 - 0.5324847698 - 0.5282332897 - 0.5344262123 - 0.5255284309 - 0.5387747288 - 0.5283238888 - 0.5351788998 - 0.5335028172 - 0.5268671513 - 0.5444493294 - 0.5229454041 - 0.5372991562 - 0.5384793282 - 0.5280938148 - 0.5378079414 - 0.5349082947 - 0.5346951485 - 0.5369689465 - 0.5319006443 - 0.5383181572 - 0.5407986641 - 0.5279214382 - 0.5433640480 - 0.5339021683 - 0.5421743393 - 0.5311973095 - 0.5353925228 - 0.5487623215 - 0.5349793434 - 0.5266048908 - 0.5467028618 - 0.5558493137 - 0.5060544014 - 0.5593528748 - 0.5436666012 - 0.5314431190 - 0.5340321064 - 0.5563480854 - 0.5290176868 - 0.5415129662 - 0.5403714180 - 0.5457210541 - 0.5338952541 - 0.5447955132 - 0.5439443588 - 0.5387921333 - 0.5392429829 - 0.5529346466 - 0.5278813839 - 0.5560173988 - 0.5344135761 - 0.5426576138 - 0.5559368134 - 0.5272212029 - 0.5548782349 - 0.5399074554 - 0.5481491089 - 0.5413815975 - 0.5443449020 - 0.5501849651 - 0.5427129269 - 0.5447101593 - 0.5456829071 - 0.5558257103 - 0.5340924263 - 0.5602319241 - 0.5395123959 - 0.5555427074 - 0.5443708897 - 0.5497977734 - 0.5519094467 - 0.5526680946 - 0.5392560959 - 0.5622293949 - 0.5555260181 - 0.5339212418 - 0.5681374073 - 0.5583553314 - 0.5377197266 - 0.5716843605 - 0.5445258617 - 0.5652966499 - 0.5605380535 - 0.5377416611 - 0.5895643234 - 0.5396134853 - 0.5687294006 - 0.5572526455 - 0.5697627068 - 0.5630326271 - 0.5663731098 - 0.5548753738 - 0.5893070698 - 0.5571913719 - 0.5656678677 - 0.5852348804 - 0.5578987598 - 0.5943667889 - 0.5559673309 - 0.5804886818 - 0.5978975296 - 0.5629277229 - 0.5771422386 - 0.6121501923 - 0.5631165504 - 0.5913510323 - 0.6023590565 - 0.5883932114 - 0.5841770172 - 0.6188926697 - 0.5884292126 - 0.5982940197 - 0.6174459457 - 0.6052680016 - 0.6065928936 - 0.6172189713 - 0.6209926605 - 0.6207885742 - 0.6143722534 - 0.6448552608 - 0.6163809299 - 0.6440238953 - 0.6358141899 - 0.6407148838 - 0.6552534103 - 0.6421251297 - 0.6593139172 - 0.6694030762 - 0.6515986919 - 0.6755032539 - 0.6833026409 - 0.6696264744 - 0.6901905537 - 0.6953346729 - 0.6934897900 - 0.7077422142 - 0.7040905952 - 0.7208247185 - 0.7236747742 - 0.7267019749 - 0.7386407852 - 0.7436602116 - 0.7555766106 - 0.7538710833 - 0.7757662535 - 0.7639465332 - 0.7988282442 - 0.7932969332 - 0.7845745087 - 0.8334994316 - 0.8213008642 - 0.8197487593 - 0.8488252163 - 0.8629760742 - 0.8520092964 - 0.8807144165 - 0.8941169977 - 0.8868880272 - 0.9285293818 - 0.9110695124 - 0.9488993883 - 0.9439649582 - 0.9779682159 - 0.9717079401 - 0.9965298176 - 1.0170594454 - 1.0219705105 - 1.0463042259 - 1.0612835884 - 1.0676774979 - 1.1118044853 - 1.1022300720 - 1.1245136261 - 1.1710247993 - 1.1591153145 - 1.1857899427 - 1.2233407497 - 1.2313916683 - 1.2482042313 - 1.2882091999 - 1.2967669964 - 1.3295619488 - 1.3499310017 - 1.3722953796 - 1.4061727524 - 1.4296506643 - 1.4431775808 - 1.5016176701 - 1.5001959801 - 1.5428688526 - 1.5749400854 - 1.6051125526 - 1.6289448738 - 1.6703670025 - 1.6977770329 - 1.7433006763 - 1.7582070827 - 1.8158249855 - 1.8423519135 - 1.8789474964 - 1.9211990833 - 1.9587846994 - 2.0014166832 - 2.0428893566 - 2.0775139332 - 2.1365509033 - 2.1657900810 - 2.2212200165 - 2.2649099827 - 2.3131532669 - 2.3527896404 - 2.4235632420 - 2.4539794922 - 2.5107250214 - 2.5708713531 - 2.6290888786 - 2.6637349129 - 2.7423021793 - 2.7937977314 - 2.8487122059 - 2.9150938988 - 2.9644374847 - 3.0499014854 - 3.0976061821 - 3.1612238884 - 3.2379689217 - 3.3084878922 - 3.3648567200 - 3.4417834282 - 3.5217852592 - 3.5865697861 - 3.6711664200 - 3.7397599220 - 3.8180932999 - 3.9127063751 - 3.9759554863 - 4.0642938614 - 4.1474938393 - 4.2405123711 - 4.3185272217 - 4.4066958427 - 4.4971098900 - 4.6089067459 - 4.6699314117 - 4.7818651199 - 4.8764619827 - 4.9845056534 - 5.0606079102 - 5.1746664047 - 5.2821750641 - 5.3838100433 - 5.4902715683 - 5.5833921432 - 5.7101602554 - 5.8272314072 - 5.9087600708 - 6.0388412476 - 6.1613321304 - 6.2805252075 - 6.3721189499 - 6.5110025406 - 6.6430120468 - 6.7536945343 - 6.8607912064 - 7.0209140778 - 7.1346197128 - 7.2544107437 - 7.3932771683 - 7.5233650208 - 7.6571931839 - 7.7892417908 - 7.9192943573 - 8.0810279846 - 8.1883335114 - 8.3584079742 - 8.4770870209 - 8.6225833893 - 8.7802333832 - 8.9046707153 - 9.0727252960 - 9.1986827850 - 9.3629989624 - 9.5006694794 - 9.6676959991 - 9.7984714508 - 9.9683570862 - 10.1168384552 - 10.2700672150 - 10.4161167145 - 10.5919704437 - 10.7293834686 - 10.9118881226 - 11.0405311584 - 11.2211837769 - 11.3751525879 - 11.5406246185 - 11.6689949036 - 11.8724822998 - 12.0179615021 - 12.1726837158 - 12.3333435059 - 12.5078792572 - 12.6744499207 - 12.8292045593 - 12.9728717804 - 13.1746997833 - 13.3090553284 - 13.4766788483 - 13.6513805389 - 13.7932281494 - 13.9836349487 - 14.1291599274 - 14.2693786621 - 14.4721107483 - 14.6080608368 - 14.7749176025 - 14.9264469147 - 15.0954666138 - 15.2571659088 - 15.3929805756 - 15.5722579956 - 15.7156829834 - 15.8866310120 - 16.0156478882 - 16.1803932190 - 16.3459053040 - 16.4635124207 - 16.6455726624 - 16.7692337036 - 16.9407653809 - 17.0601882935 - 17.2228507996 - 17.3645553589 - 17.4901237488 - 17.6435012817 - 17.7731742859 - 17.9107131958 - 18.0503463745 - 18.1750221252 - 18.3202018738 - 18.4402618408 - 18.5676460266 - 18.6945495605 - 18.8212852478 - 18.9315032959 - 19.0583839417 - 19.1827621460 - 19.2867050171 - 19.4091339111 - 19.5130920410 - 19.6270179749 - 19.7337341309 - 19.8384666443 - 19.9305953979 - 20.0416107178 - 20.1382217407 - 20.2334594727 - 20.3228530884 - 20.4270706177 - 20.5092849731 - 20.5819778442 - 20.6820945740 - 20.7636947632 - 20.8291854858 - 20.9086647034 - 21.0079841614 - 21.0418853760 - 21.1341629028 - 21.1980171204 - 21.2670898438 - 21.3072853088 - 21.3941650391 - 21.4379463196 - 21.4902915955 - 21.5533103943 - 21.5835113525 - 21.6529045105 - 21.6931495667 - 21.7192573547 - 21.7748260498 - 21.8176116943 - 21.8432579041 - 21.8802375793 - 21.9000015259 - 21.9514846802 - 21.9636459351 - 21.9843902588 - 22.0017242432 - 22.0446777344 - 22.0494995117 - 22.0365142822 - 22.0803565979 - 22.0921669006 - 22.0883255005 - 22.0843505859 - 22.1122398376 - 22.0994186401 - 22.0881652832 - 22.1110229492 - 22.0687103271 - 22.0977020264 - 22.0759429932 - 22.0494880676 - 22.0555648804 - 22.0321121216 - 22.0323028564 - 21.9745178223 - 21.9896278381 - 21.9574546814 - 21.9329757690 - 21.8909759521 - 21.8892631531 - 21.8392372131 - 21.8271903992 - 21.7692413330 - 21.7479782104 - 21.7172470093 - 21.6741371155 - 21.6166000366 - 21.5965232849 - 21.5564498901 - 21.4888877869 - 21.4676170349 - 21.3951568604 - 21.3695106506 - 21.3076705933 - 21.2521209717 - 21.1946678162 - 21.1679878235 - 21.0818214417 - 21.0220527649 - 21.0053291321 - 20.8950500488 - 20.8708724976 - 20.7800559998 - 20.7419853210 - 20.6595153809 - 20.6052932739 - 20.5306587219 - 20.4669075012 - 20.4042358398 - 20.3222007751 - 20.2626457214 - 20.1871604919 - 20.1067581177 - 20.0408554077 - 19.9680671692 - 19.8862686157 - 19.8155860901 - 19.7341232300 - 19.6607055664 - 19.5726928711 - 19.5083084106 - 19.4143142700 - 19.3467712402 - 19.2599792480 - 19.1705703735 - 19.1001052856 - 19.0122146606 - 18.9160346985 - 18.8546371460 - 18.7538108826 - 18.6687927246 - 18.5901527405 - 18.4962463379 - 18.4038772583 - 18.3381843567 - 18.2269630432 - 18.1457939148 - 18.0711936951 - 17.9610443115 - 17.8775329590 - 17.7970352173 - 17.6997680664 - 17.5970420837 - 17.5275077820 - 17.4241752625 - 17.3369140625 - 17.2412147522 - 17.1519432068 - 17.0662231445 - 16.9575119019 - 16.8667106628 - 16.7931060791 - 16.6913032532 - 16.5825004578 - 16.5016555786 - 16.4150199890 - 16.3146820068 - 16.1993217468 - 16.1400184631 - 16.0275382996 - 15.9408340454 - 15.8303184509 - 15.7656250000 - 15.6514091492 - 15.5568580627 - 15.4505081177 - 15.3978157043 - 15.2698287964 - 15.1688919067 - 15.1008110046 - 15.0031661987 - 14.8813056946 - 14.8111839294 - 14.7275810242 - 14.6043357849 - 14.5310134888 - 14.4431953430 - 14.3220710754 - 14.2611236572 - 14.1349983215 - 14.0660171509 - 13.9675140381 - 13.8663825989 - 13.7964801788 - 13.6769733429 - 13.6089363098 - 13.4933872223 - 13.4192180634 - 13.3214035034 - 13.2273979187 - 13.1302089691 - 13.0515499115 - 12.9423198700 - 12.8771476746 - 12.7578544617 - 12.6980648041 - 12.5734405518 - 12.5181884766 - 12.4045410156 - 12.3245468140 - 12.2304916382 - 12.1489696503 - 12.0593528748 - 11.9753131866 - 11.8642158508 - 11.8084278107 - 11.7177085876 - 11.5949878693 - 11.5514049530 - 11.4453353882 - 11.3593521118 - 11.2880744934 - 11.1774883270 - 11.1066246033 - 11.0387516022 - 10.9260807037 - 10.8402309418 - 10.7748260498 - 10.6792373657 - 10.5974941254 - 10.5278797150 - 10.4181079865 - 10.3511867523 - 10.2847385406 - 10.1785087585 - 10.1020393372 - 10.0345172882 - 9.9399509430 - 9.8606300354 - 9.7865867615 - 9.7152729034 - 9.6275978088 - 9.5335693359 - 9.4870014191 - 9.4001121521 - 9.2985744476 - 9.2374076843 - 9.1765613556 - 9.0794868469 - 9.0110492706 - 8.9268512726 - 8.8604469299 - 8.7836170197 - 8.7205142975 - 8.6261386871 - 8.5611419678 - 8.4802207947 - 8.4217491150 - 8.3384685516 - 8.2731800079 - 8.1886920929 - 8.1268787384 - 8.0476894379 - 7.9823513031 - 7.9162960052 - 7.8506507874 - 7.7618751526 - 7.7000732422 - 7.6392269135 - 7.5740318298 - 7.4973201752 - 7.4266529083 - 7.3540534973 - 7.3127231598 - 7.2322673798 - 7.1567859650 - 7.0997772217 - 7.0456371307 - 6.9617614746 - 6.9034309387 - 6.8647994995 - 6.7602767944 - 6.7084636688 - 6.6550254822 - 6.5745182037 - 6.5383605957 - 6.4707050323 - 6.3863487244 - 6.3347930908 - 6.2901687622 - 6.2160415649 - 6.1525554657 - 6.1087341309 - 6.0354881287 - 5.9779357910 - 5.9152603149 - 5.8603839874 - 5.8257980347 - 5.7440547943 - 5.6771297455 - 5.6420249939 - 5.5887966156 - 5.5202417374 - 5.4794874191 - 5.4061374664 - 5.3586568832 - 5.2964773178 - 5.2529706955 - 5.2004976273 - 5.1454906464 - 5.1014604568 - 5.0109567642 - 4.9850044250 - 4.9531469345 - 4.8744411469 - 4.8311138153 - 4.7869672775 - 4.7194671631 - 4.6719598770 - 4.6215047836 - 4.5834217072 - 4.5364894867 - 4.4812784195 - 4.4269075394 - 4.3848152161 - 4.3198213577 - 4.2931108475 - 4.2267837524 - 4.2146692276 - 4.1279573441 - 4.1050748825 - 4.0619764328 - 3.9833726883 - 3.9832630157 - 3.9206838608 - 3.8833351135 - 3.8172512054 - 3.7921581268 - 3.7314281464 - 3.7133245468 - 3.6588678360 - 3.6196088791 - 3.5704889297 - 3.5272808075 - 3.4898557663 - 3.4334688187 - 3.4140872955 - 3.3693065643 - 3.3368320465 - 3.2625102997 - 3.2611837387 - 3.1824617386 - 3.1690406799 - 3.1091413498 - 3.0918359756 - 3.0472707748 - 3.0244045258 - 2.9548759460 - 2.9351148605 - 2.8867292404 - 2.8634424210 - 2.8033027649 - 2.7783889771 - 2.7652244568 - 2.7191143036 - 2.6634397507 - 2.6282997131 - 2.6146774292 - 2.5766830444 - 2.5057449341 - 2.5287837982 - 2.4685869217 - 2.4436798096 - 2.3676414490 - 2.3837356567 - 2.3315601349 - 2.3004398346 - 2.2662420273 - 2.2533655167 - 2.2072181702 - 2.1517753601 - 2.1523675919 - 2.1024065018 - 2.0573625565 - 2.0476932526 - 2.0267086029 - 1.9748344421 - 1.9647598267 - 1.9275426865 - 1.8904342651 - 1.8550004959 - 1.8292837143 - 1.8117389679 - 1.7467126846 - 1.7501125336 - 1.7160215378 - 1.6951084137 - 1.6641626358 - 1.6456842422 - 1.5758028030 - 1.5968713760 - 1.5532197952 - 1.5107746124 - 1.5160069466 - 1.4876608849 - 1.4479250908 - 1.4059667587 - 1.4119305611 - 1.3533201218 - 1.3467807770 - 1.3251938820 - 1.3038220406 - 1.2692084312 - 1.2679648399 - 1.2100467682 - 1.1845259666 - 1.1920037270 - 1.1324415207 - 1.1186876297 - 1.0904245377 - 1.0657472610 - 1.0499930382 - 1.0140471458 - 0.9744167328 - 1.0071043968 - 0.9609909058 - 0.9284462929 - 0.9163894653 - 0.8990716934 - 0.8594450951 - 0.8366084099 - 0.8354992867 - 0.7944922447 - 0.8071651459 - 0.7705254555 - 0.7450661659 - 0.7118000984 - 0.7270936966 - 0.6812872887 - 0.6917114258 - 0.6439957619 - 0.6418170929 - 0.6180758476 - 0.5937056541 - 0.5482831001 - 0.5756678581 - 0.5250873566 - 0.4948239326 - 0.4888415337 - 0.4799113274 - 0.4275965691 - 0.4464120865 - 0.3844709396 - 0.3927063942 - 0.3760366440 - 0.3305559158 - 0.3373770714 - 0.2927193642 - 0.3003921509 - 0.2702937126 - 0.2665181160 - 0.2305493355 - 0.2708048820 - 0.2076892853 - 0.1901178360 - 0.2187557220 - 0.1985445023 - 0.1700625420 - 0.1558985710 - 0.1785960197 - 0.1366033554 - 0.1485977173 - 0.1254339218 - 0.0788807869 - 0.1132059097 - 0.0749897957 - 0.0253596306 - 0.0488839149 - 0.0055594444 - -0.0262002945 - -0.0597829819 - -0.0862736702 - -0.1001677513 - -0.1542186737 - -0.2066903114 - -0.2443594933 - -0.3190450668 - -0.3218283653 - -0.4230804443 - -0.4681930542 - -0.4905443192 - -0.5543560982 - -0.6408433914 - -0.6608057022 - -0.7423791885 - -0.7578883171 - -0.8107528687 - -0.9004893303 - -0.9339523315 - -0.9128937721 - -0.9447574615 - -1.0979905128 - -1.0931677818 - -0.8186535835 - 0.0135567188 - 0.2912197113 - 0.3353788853 - 0.2659785748 - 0.2254164219 - 0.2904596329 - 0.3433339596 - 0.3101742268 - 0.2656252384 - 0.3303836584 - 0.3626129627 - 0.3396259546 - 0.3110477924 - 0.3613821268 - 0.3840920925 - 0.3672279119 - 0.3629839420 - 0.3748606443 - 0.4138039351 - 0.4064480066 - 0.3877732754 - 0.4021908045 - 0.4500752687 - 0.4224168062 - 0.4214681387 - 0.4393117428 - 0.4583370686 - 0.4575400352 - 0.4581341743 - 0.4449344873 - 0.5035451651 - 0.4696763754 - 0.4832478762 - 0.4848726988 - 0.5078083277 - 0.5030717850 - 0.5067936182 - 0.5135457516 - 0.5163459778 - 0.5363453627 - 0.5305511951 - 0.5295323133 - 0.5442216396 - 0.5544055700 - 0.5552887917 - 0.5516366959 - 0.5590133667 - 0.5820015669 - 0.5700714588 - 0.5762909651 - 0.5775513649 - 0.5987491608 - 0.5900772810 - 0.6001749039 - 0.5905675888 - 0.6134499311 - 0.6194102764 - 0.6125197411 - 0.6031682491 - 0.6357630491 - 0.6459887028 - 0.6059439182 - 0.6425591707 - 0.6505748034 - 0.6418312788 - 0.6472541094 - 0.6498563290 - 0.6544554234 - 0.6759601831 - 0.6523727179 - 0.6656441689 - 0.6722563505 - 0.6869101524 - 0.6735622883 - 0.6719462872 - 0.6899895668 - 0.7033308744 - 0.6852480173 - 0.6814287901 - 0.7162294388 - 0.7030583620 - 0.7128782272 - 0.6772385836 - 0.7431490421 - 0.7164179087 - 0.7068190575 - 0.7110006809 - 0.7478119135 - 0.7272655964 - 0.7065517902 - 0.7495012283 - 0.7400885820 - 0.7303789854 - 0.7400324345 - 0.7508327961 - 0.7395433187 - 0.7610846758 - 0.7352808714 - 0.7676925659 - 0.7547461987 - 0.7554261684 - 0.7685345411 - 0.7568006516 - 0.7763669491 - 0.7629933357 - 0.7755495310 - 0.7724114656 - 0.7803602219 - 0.7743664980 - 0.7853009701 - 0.7812874317 - 0.7907441854 - 0.7773711681 - 0.8047939539 - 0.7808891535 - 0.7992352247 - 0.7957667112 - 0.7974587679 - 0.8030056953 - 0.7934534550 - 0.8148462772 - 0.8066315651 - 0.7921648026 - 0.8270884752 - 0.8127527237 - 0.7972916365 - 0.8278237581 - 0.8224362135 - 0.8076592684 - 0.8285731077 - 0.8196547031 - 0.8280774355 - 0.8301684856 - 0.8160765171 - 0.8429961205 - 0.8187721968 - 0.8504229784 - 0.8134670258 - 0.8520742655 - 0.8305132389 - 0.8474951982 - 0.8376095295 - 0.8315237761 - 0.8652647734 - 0.8439443111 - 0.8268754482 - 0.8640524149 - 0.8636928797 - 0.8294863701 - 0.8639906645 - 0.8547598124 - 0.8554384708 - 0.8627991676 - 0.8477014303 - 0.8640180826 - 0.8768696785 - 0.8465048075 - 0.8701025248 - 0.8678499460 - 0.8770754337 - 0.8580837250 - 0.8745257854 - 0.8760315180 - 0.8760644197 - 0.8718210459 - 0.8701634407 - 0.8921500444 - 0.8681566715 - 0.8792043924 - 0.8916032314 - 0.8774032593 - 0.8749215603 - 0.9126408100 - 0.8639161587 - 0.8972976208 - 0.8879634142 - 0.9024940729 - 0.8807452917 - 0.8964366913 - 0.8970825672 - 0.9062771797 - 0.8822813034 - 0.9035258293 - 0.9065444469 - 0.9036257267 - 0.8952392340 - 0.8990871906 - 0.9295278788 - 0.8892464638 - 0.9129890203 - 0.9076263905 - 0.9293751717 - 0.8909648657 - 0.9323080778 - 0.9030246735 - 0.9244762659 - 0.9213641882 - 0.9099977016 - 0.9323431253 - 0.9179435968 - 0.9308763742 - 0.9148651361 - 0.9415113926 - 0.9211114645 - 0.9357186556 - 0.9329237938 - 0.9273653030 - 0.9457386732 - 0.9278781414 - 0.9404015541 - 0.9458971024 - 0.9356859922 - 0.9440125227 - 0.9504189491 - 0.9392585754 - 0.9603482485 - 0.9350802898 - 0.9638706446 - 0.9538413286 - 0.9523907900 - 0.9571568966 - 0.9631133080 - 0.9642633200 - 0.9561960697 - 0.9619867802 - 0.9796535969 - 0.9714658260 - 0.9483485222 - 0.9917948246 - 0.9869859219 - 0.9520016909 - 0.9869421721 - 1.0027085543 - 0.9638261795 - 0.9866820574 - 1.0075677633 - 0.9726206064 - 1.0026532412 - 0.9912887812 - 1.0061304569 - 0.9887875319 - 1.0154347420 - 1.0050040483 - 1.0015738010 - 1.0165451765 - 1.0237306356 - 0.9989130497 - 1.0369389057 - 1.0155885220 - 1.0260971785 - 1.0382871628 - 1.0200140476 - 1.0463932753 - 1.0327755213 - 1.0447369814 - 1.0446548462 - 1.0489634275 - 1.0536483526 - 1.0554678440 - 1.0589787960 - 1.0647705793 - 1.0674862862 - 1.0724291801 - 1.0755456686 - 1.0790474415 - 1.0830761194 - 1.0954903364 - 1.0784627199 - 1.1070348024 - 1.1070128679 - 1.0815659761 - 1.1345942020 - 1.1080646515 - 1.1074504852 - 1.1400109529 - 1.1316461563 - 1.1181349754 - 1.1655565500 - 1.1249912977 - 1.1644679308 - 1.1622720957 - 1.1458406448 - 1.1925013065 - 1.1598216295 - 1.1934784651 - 1.1755713224 - 1.2093447447 - 1.1935324669 - 1.2155756950 - 1.2029128075 - 1.2394165993 - 1.2257564068 - 1.2285053730 - 1.2561167479 - 1.2483049631 - 1.2629354000 - 1.2652112246 - 1.2731549740 - 1.3023252487 - 1.2791371346 - 1.3012241125 - 1.3295984268 - 1.3115853071 - 1.3260478973 - 1.3523477316 - 1.3502100706 - 1.3578286171 - 1.3740692139 - 1.3887909651 - 1.3871499300 - 1.4119747877 - 1.4117143154 - 1.4375531673 - 1.4333446026 - 1.4548598528 - 1.4734106064 - 1.4699351788 - 1.4987975359 - 1.5022578239 - 1.5252234936 - 1.5299696922 - 1.5435240269 - 1.5763076544 - 1.5688934326 - 1.5904259682 - 1.6218304634 - 1.6211779118 - 1.6334235668 - 1.6768889427 - 1.6616280079 - 1.7073155642 - 1.7016100883 - 1.7436203957 - 1.7402848005 - 1.7806307077 - 1.7800447941 - 1.8153197765 - 1.8294656277 - 1.8600506783 - 1.8577921391 - 1.9133324623 - 1.9130554199 - 1.9440770149 - 1.9577353001 - 2.0059530735 - 2.0123033524 - 2.0260975361 - 2.0836799145 - 2.0990853310 - 2.1018674374 - 2.1639008522 - 2.1779961586 - 2.2015347481 - 2.2373213768 - 2.2765755653 - 2.2830557823 - 2.3480415344 - 2.3513822556 - 2.4032521248 - 2.4204959869 - 2.4863069057 - 2.4794337749 - 2.5464115143 - 2.5756185055 - 2.6177122593 - 2.6378128529 - 2.7035641670 - 2.7266893387 - 2.7801496983 - 2.8026652336 - 2.8689465523 - 2.9065370560 - 2.9437460899 - 2.9858589172 - 3.0611259937 - 3.0770654678 - 3.1380476952 - 3.2003653049 - 3.2350926399 - 3.2948350906 - 3.3549761772 - 3.3932967186 - 3.4574725628 - 3.5279896259 - 3.5545911789 - 3.6508755684 - 3.6812047958 - 3.7637364864 - 3.8096182346 - 3.8955988884 - 3.9365167618 - 4.0249457359 - 4.0723714828 - 4.1742825508 - 4.2048311234 - 4.3102397919 - 4.3815612793 - 4.4352865219 - 4.5335245132 - 4.6038994789 - 4.6906332970 - 4.7610764503 - 4.8511900902 - 4.9433717728 - 5.0187187195 - 5.1064057350 - 5.2149062157 - 5.2862334251 - 5.3765821457 - 5.5055451393 - 5.5610251427 - 5.6761360168 - 5.7830371857 - 5.8962864876 - 5.9583387375 - 6.1111478806 - 6.2013049126 - 6.3036799431 - 6.4270291328 - 6.5256686211 - 6.6646885872 - 6.7684335709 - 6.8867917061 - 7.0074939728 - 7.1569566727 - 7.2431440353 - 7.3973402977 - 7.5185785294 - 7.6635065079 - 7.7964839935 - 7.9180679321 - 8.0720214844 - 8.2192134857 - 8.3534479141 - 8.4864044189 - 8.6583385468 - 8.7978534698 - 8.9498662949 - 9.1020164490 - 9.2577791214 - 9.4422960281 - 9.5670776367 - 9.7559900284 - 9.9032068253 - 10.1071310043 - 10.2361774445 - 10.4279479980 - 10.6051425934 - 10.7915401459 - 10.9672136307 - 11.1240825653 - 11.3496017456 - 11.5173568726 - 11.6990184784 - 11.8908672333 - 12.0925846100 - 12.3058919907 - 12.4643697739 - 12.6884145737 - 12.8923397064 - 13.1101379395 - 13.2761421204 - 13.5222148895 - 13.7438650131 - 13.9150600433 - 14.1601333618 - 14.3744392395 - 14.5781192780 - 14.8115482330 - 15.0292263031 - 15.2766475677 - 15.4624023438 - 15.7426700592 - 15.9324188232 - 16.1684417725 - 16.4289169312 - 16.6221218109 - 16.9067802429 - 17.1048107147 - 17.3601646423 - 17.6070976257 - 17.8450546265 - 18.0901908875 - 18.3327312469 - 18.5862903595 - 18.8287220001 - 19.0667343140 - 19.3385047913 - 19.5646381378 - 19.8547573090 - 20.0625762939 - 20.3450622559 - 20.5960044861 - 20.8367652893 - 21.0876808167 - 21.3593711853 - 21.6071147919 - 21.8644371033 - 22.1026802063 - 22.3835163116 - 22.6319541931 - 22.8882331848 - 23.1313686371 - 23.3981685638 - 23.6504974365 - 23.9086341858 - 24.1571426392 - 24.4125080109 - 24.6691970825 - 24.9378509521 - 25.1318855286 - 25.4358444214 - 25.6840343475 - 25.8988876343 - 26.1683387756 - 26.4181385040 - 26.6456909180 - 26.8965358734 - 27.1372165680 - 27.3826446533 - 27.6228294373 - 27.8423004150 - 28.0931949615 - 28.3268623352 - 28.5259876251 - 28.8056182861 - 28.9868965149 - 29.2402153015 - 29.4437255859 - 29.6692504883 - 29.8952617645 - 30.0921669006 - 30.3114795685 - 30.5178337097 - 30.7239875793 - 30.9355373383 - 31.1195774078 - 31.3410949707 - 31.5293350220 - 31.7054405212 - 31.9038982391 - 32.1082305908 - 32.2449798584 - 32.4641113281 - 32.6313591003 - 32.7884445190 - 32.9860534668 - 33.1143035889 - 33.3064270020 - 33.4600601196 - 33.6002006531 - 33.7621765137 - 33.9075698853 - 34.0546646118 - 34.1896858215 - 34.3347854614 - 34.4649925232 - 34.6057205200 - 34.7095756531 - 34.8374824524 - 34.9812622070 - 35.0578880310 - 35.1802444458 - 35.3183212280 - 35.3810119629 - 35.4944763184 - 35.6029968262 - 35.6868362427 - 35.7552795410 - 35.8756637573 - 35.9296379089 - 36.0127182007 - 36.0922317505 - 36.1469421387 - 36.2211380005 - 36.2918548584 - 36.3224487305 - 36.4064407349 - 36.4389114380 - 36.4941864014 - 36.5402526855 - 36.5591430664 - 36.6111068726 - 36.6614952087 - 36.6528930664 - 36.6762161255 - 36.7516746521 - 36.7206497192 - 36.7278251648 - 36.7709846497 - 36.7701339722 - 36.7642669678 - 36.7604293823 - 36.7736053467 - 36.7637557983 - 36.7398414612 - 36.7406311035 - 36.7126159668 - 36.7105445862 - 36.6792297363 - 36.6386222839 - 36.6369628906 - 36.5913467407 - 36.5583953857 - 36.5133590698 - 36.4928970337 - 36.4259338379 - 36.3992309570 - 36.3416595459 - 36.2877540588 - 36.2317199707 - 36.1993179321 - 36.1034164429 - 36.0518913269 - 36.0098762512 - 35.9180679321 - 35.8505439758 - 35.7836151123 - 35.7145652771 - 35.6304054260 - 35.5505523682 - 35.4609718323 - 35.4010009766 - 35.2892532349 - 35.2175903320 - 35.1093406677 - 35.0395050049 - 34.9366683960 - 34.8236694336 - 34.7537956238 - 34.6305236816 - 34.5509414673 - 34.4096298218 - 34.3379783630 - 34.2288208008 - 34.0918350220 - 34.0108489990 - 33.8873214722 - 33.7698326111 - 33.6542701721 - 33.5528488159 - 33.4105339050 - 33.2941894531 - 33.1842231750 - 33.0655632019 - 32.9140281677 - 32.8137969971 - 32.6881027222 - 32.5385475159 - 32.4144287109 - 32.3060150146 - 32.1516265869 - 32.0216865540 - 31.8991279602 - 31.7557430267 - 31.6223430634 - 31.4742813110 - 31.3536109924 - 31.2089824677 - 31.0631141663 - 30.9257221222 - 30.7948780060 - 30.6378479004 - 30.4901332855 - 30.3731651306 - 30.2065010071 - 30.0643539429 - 29.9335823059 - 29.7651481628 - 29.6404914856 - 29.4725379944 - 29.3375511169 - 29.1784210205 - 29.0422019958 - 28.8814964294 - 28.7333297729 - 28.5955619812 - 28.4340057373 - 28.2811393738 - 28.1274490356 - 27.9842720032 - 27.8308639526 - 27.6820583344 - 27.5067520142 - 27.3885040283 - 27.2106781006 - 27.0689735413 - 26.8944873810 - 26.7664070129 - 26.6001853943 - 26.4498996735 - 26.2824211121 - 26.1580390930 - 25.9819831848 - 25.8229560852 - 25.6630191803 - 25.5477256775 - 25.3634166718 - 25.1968803406 - 25.0639495850 - 24.9200096130 - 24.7312164307 - 24.5887947083 - 24.4591236115 - 24.2845497131 - 24.1299057007 - 23.9933204651 - 23.8103160858 - 23.6976718903 - 23.5002746582 - 23.3609447479 - 23.2368202209 - 23.0497322083 - 22.9217872620 - 22.7557907104 - 22.6175804138 - 22.4489231110 - 22.3029594421 - 22.1643943787 - 22.0043830872 - 21.8344841003 - 21.7172279358 - 21.5422401428 - 21.4109611511 - 21.2386302948 - 21.1286373138 - 20.9344272614 - 20.8216075897 - 20.6562728882 - 20.5196952820 - 20.3553848267 - 20.2260303497 - 20.0815353394 - 19.9349136353 - 19.7680492401 - 19.6513652802 - 19.5234146118 - 19.3184757233 - 19.2316474915 - 19.0720367432 - 18.9245338440 - 18.7986965179 - 18.6312484741 - 18.5096817017 - 18.3786964417 - 18.2211532593 - 18.0701866150 - 17.9482688904 - 17.8059387207 - 17.6729583740 - 17.5340728760 - 17.3822402954 - 17.2619094849 - 17.1342468262 - 16.9797821045 - 16.8539009094 - 16.7234725952 - 16.5838699341 - 16.4450168610 - 16.3287220001 - 16.1961174011 - 16.0594444275 - 15.9126558304 - 15.8228769302 - 15.6735124588 - 15.5265150070 - 15.4129562378 - 15.3032159805 - 15.1605110168 - 15.0270624161 - 14.9072341919 - 14.7880487442 - 14.6569452286 - 14.5461559296 - 14.4154338837 - 14.2738971710 - 14.1668195724 - 14.0480356216 - 13.9272594452 - 13.8081483841 - 13.6694993973 - 13.5684289932 - 13.4407882690 - 13.3289690018 - 13.2111997604 - 13.1157855988 - 12.9539957047 - 12.8683118820 - 12.7513818741 - 12.6436319351 - 12.5253295898 - 12.4007883072 - 12.2868099213 - 12.2036762238 - 12.0765857697 - 11.9656343460 - 11.8476009369 - 11.7598257065 - 11.6385784149 - 11.5305471420 - 11.4510335922 - 11.3003005981 - 11.2039585114 - 11.1143541336 - 10.9824619293 - 10.9193544388 - 10.8012990952 - 10.6792354584 - 10.5753707886 - 10.5077991486 - 10.3828430176 - 10.2785816193 - 10.1971149445 - 10.0881185532 - 9.9824914932 - 9.8796749115 - 9.7976245880 - 9.7233171463 - 9.5866222382 - 9.4939069748 - 9.4224967957 - 9.3325023651 - 9.2116127014 - 9.1566944122 - 9.0386276245 - 8.9332132339 - 8.8532533646 - 8.7745056152 - 8.6820011139 - 8.5966434479 - 8.4998893738 - 8.3892574310 - 8.3317794800 - 8.2424411774 - 8.1525650024 - 8.0745086670 - 7.9837784767 - 7.8764247894 - 7.8059616089 - 7.7265400887 - 7.6367020607 - 7.5814785957 - 7.4740152359 - 7.3993115425 - 7.3102703094 - 7.2206015587 - 7.1637072563 - 7.0629272461 - 7.0166168213 - 6.9126157761 - 6.8391671181 - 6.7760477066 - 6.6657085419 - 6.6331105232 - 6.5418629646 - 6.4809675217 - 6.3732013702 - 6.3206620216 - 6.2374467850 - 6.1778235435 - 6.1199021339 - 6.0219969749 - 5.9677147865 - 5.8761882782 - 5.8253102303 - 5.7290563583 - 5.6940622330 - 5.6131982803 - 5.5582628250 - 5.4608755112 - 5.4158215523 - 5.3224143982 - 5.2785172462 - 5.1926078796 - 5.1492753029 - 5.0794892311 - 5.0391397476 - 4.9333424568 - 4.8869633675 - 4.8185663223 - 4.7685031891 - 4.6771245003 - 4.6387810707 - 4.5940871239 - 4.5375876427 - 4.4347381592 - 4.3970446587 - 4.3414325714 - 4.2905993462 - 4.1997375488 - 4.1896562576 - 4.1240921021 - 4.0541858673 - 3.9725403786 - 3.9495363235 - 3.8958179951 - 3.8242988586 - 3.7791073322 - 3.7563290596 - 3.6603360176 - 3.6026299000 - 3.5759882927 - 3.5032639503 - 3.4414985180 - 3.3963510990 - 3.3785157204 - 3.2983880043 - 3.2642693520 - 3.2052781582 - 3.1546108723 - 3.0934588909 - 3.0557327271 - 2.9939556122 - 2.9352016449 - 2.9207141399 - 2.8445184231 - 2.8230895996 - 2.7833724022 - 2.7320313454 - 2.6380369663 - 2.6471202374 - 2.5984427929 - 2.5211751461 - 2.5165498257 - 2.4762599468 - 2.4125418663 - 2.3558642864 - 2.3365917206 - 2.2687540054 - 2.2432148457 - 2.2065286636 - 2.1755480766 - 2.1123969555 - 2.1073448658 - 2.0264294147 - 1.9820342064 - 1.9718017578 - 1.9018373489 - 1.8753082752 - 1.8088445663 - 1.7993538380 - 1.7448225021 - 1.6977198124 - 1.6553571224 - 1.6628634930 - 1.6009111404 - 1.5792422295 - 1.5222921371 - 1.4935564995 - 1.4638197422 - 1.3991119862 - 1.3920559883 - 1.3491787910 - 1.3424506187 - 1.2918310165 - 1.2567489147 - 1.1981995106 - 1.2185835838 - 1.1474692822 - 1.1476502419 - 1.1066067219 - 1.0615394115 - 1.0356688499 - 1.0166485310 - 0.9331367016 - 0.9519526958 - 0.8967988491 - 0.8609244823 - 0.8183581829 - 0.8093216419 - 0.7591345310 - 0.7430622578 - 0.6786355972 - 0.6723606586 - 0.6504225731 - 0.5910589695 - 0.5730807781 - 0.5327360630 - 0.5302832127 - 0.4712891579 - 0.4776327610 - 0.4315745831 - 0.4492998123 - 0.3864445686 - 0.3577880859 - 0.3834116459 - 0.3415863514 - 0.3197841644 - 0.2899796963 - 0.3038311005 - 0.2598733902 - 0.2479403019 - 0.2483055592 - 0.1567602158 - 0.1874432564 - 0.1606409550 - 0.0839762688 - 0.0937721729 - 0.0402026176 - 0.0060281754 - -0.0545377731 - -0.0954117775 - -0.1078398228 - -0.2022712231 - -0.2423582077 - -0.3330650330 - -0.4079318047 - -0.4402701855 - -0.5501513481 - -0.6223762035 - -0.6821427345 - -0.7337534428 - -0.8582286835 - -0.9018793106 - -1.0155720711 - -1.0141210556 - -1.1029927731 - -1.2319184542 - -1.2670216560 - -1.2383800745 - -1.2972368002 - -1.4995714426 - -1.4703817368 - -1.1600904465 - -0.0286979675 - 0.3200879097 - 0.3749079704 - 0.2643547058 - 0.2347750664 - 0.3119244576 - 0.3603763580 - 0.3232111931 - 0.2707104683 - 0.3531870842 - 0.3735733032 - 0.3512458801 - 0.3212866783 - 0.3799128532 - 0.3897256851 - 0.3824253082 - 0.3736009598 - 0.3856577873 - 0.4248352051 - 0.4142718315 - 0.4060359001 - 0.4002170563 - 0.4681334496 - 0.4287338257 - 0.4344606400 - 0.4381809235 - 0.4766159058 - 0.4631834030 - 0.4614114761 - 0.4575619698 - 0.5064187050 - 0.4811444283 - 0.4904084206 - 0.4802327156 - 0.5300364494 - 0.4992542267 - 0.5140767097 - 0.5154657364 - 0.5297741890 - 0.5357213020 - 0.5335836411 - 0.5342464447 - 0.5524597168 - 0.5563583374 - 0.5513815880 - 0.5616374016 - 0.5650124550 - 0.5758352280 - 0.5761446953 - 0.5784764290 - 0.5805158615 - 0.5984163284 - 0.5873780251 - 0.6082782745 - 0.5866713524 - 0.6149454117 - 0.6151690483 - 0.6207733154 - 0.5930414200 - 0.6420903206 - 0.6386470795 - 0.6125330925 - 0.6264371872 - 0.6663389206 - 0.6275358200 - 0.6476554871 - 0.6423821449 - 0.6648178101 - 0.6607470512 - 0.6443853378 - 0.6732425690 - 0.6661295891 - 0.6763100624 - 0.6665906906 - 0.6744804382 - 0.6866254807 - 0.6888136864 - 0.6744213104 - 0.6922225952 - 0.7036619186 - 0.6841068268 - 0.7121076584 - 0.6801776886 - 0.7256531715 - 0.7037839890 - 0.7040324211 - 0.7066078186 - 0.7357234955 - 0.7117228508 - 0.6976280212 - 0.7534270287 - 0.7152247429 - 0.7212176323 - 0.7275533676 - 0.7556633949 - 0.7081732750 - 0.7534842491 - 0.7303876877 - 0.7538881302 - 0.7353382111 - 0.7433896065 - 0.7606201172 - 0.7409186363 - 0.7572150230 - 0.7509164810 - 0.7668380737 - 0.7504239082 - 0.7632527351 - 0.7681641579 - 0.7615437508 - 0.7636933327 - 0.7772479057 - 0.7662749290 - 0.7686481476 - 0.7807502747 - 0.7774524689 - 0.7680182457 - 0.7872824669 - 0.7770872116 - 0.7837109566 - 0.7799797058 - 0.7942080498 - 0.7742066383 - 0.8013195992 - 0.7847437859 - 0.7892112732 - 0.7930507660 - 0.8063755035 - 0.7763881683 - 0.8145647049 - 0.7891516685 - 0.8015127182 - 0.8109307289 - 0.7841105461 - 0.8220491409 - 0.7863535881 - 0.8279089928 - 0.7825102806 - 0.8278064728 - 0.7972435951 - 0.8193297386 - 0.8123784065 - 0.7968831062 - 0.8341712952 - 0.8153977394 - 0.7933139801 - 0.8369445801 - 0.8179178238 - 0.8118219376 - 0.8219366074 - 0.8175230026 - 0.8297076225 - 0.8154044151 - 0.8212866783 - 0.8251934052 - 0.8314065933 - 0.8176035881 - 0.8314661980 - 0.8211731911 - 0.8413290977 - 0.8162670135 - 0.8386521339 - 0.8226451874 - 0.8407502174 - 0.8275980949 - 0.8274250031 - 0.8390302658 - 0.8306593895 - 0.8333406448 - 0.8337364197 - 0.8443217278 - 0.8139700890 - 0.8653378487 - 0.8240852356 - 0.8302469254 - 0.8423852921 - 0.8599472046 - 0.8085203171 - 0.8511018753 - 0.8498373032 - 0.8315706253 - 0.8404111862 - 0.8369474411 - 0.8521747589 - 0.8368749619 - 0.8396000862 - 0.8369007111 - 0.8625822067 - 0.8262023926 - 0.8516035080 - 0.8334636688 - 0.8692097664 - 0.8193316460 - 0.8559713364 - 0.8480362892 - 0.8338847160 - 0.8609156609 - 0.8291258812 - 0.8581538200 - 0.8433399200 - 0.8482756615 - 0.8376979828 - 0.8606042862 - 0.8398723602 - 0.8503170013 - 0.8446927071 - 0.8512396812 - 0.8476891518 - 0.8421502113 - 0.8511853218 - 0.8529009819 - 0.8429155350 - 0.8448028564 - 0.8604507446 - 0.8344297409 - 0.8656477928 - 0.8301692009 - 0.8621587753 - 0.8471031189 - 0.8504924774 - 0.8436660767 - 0.8538312912 - 0.8539576530 - 0.8436746597 - 0.8418741226 - 0.8622832298 - 0.8561859131 - 0.8237743378 - 0.8710184097 - 0.8496179581 - 0.8459415436 - 0.8391742706 - 0.8750844002 - 0.8330483437 - 0.8519573212 - 0.8635725975 - 0.8338541985 - 0.8631138802 - 0.8451757431 - 0.8538527489 - 0.8435750008 - 0.8641953468 - 0.8448052406 - 0.8466649055 - 0.8618459702 - 0.8507385254 - 0.8439779282 - 0.8626461029 - 0.8480105400 - 0.8561525345 - 0.8520660400 - 0.8529634476 - 0.8584504128 - 0.8478574753 - 0.8585090637 - 0.8526911736 - 0.8610038757 - 0.8488135338 - 0.8577713966 - 0.8634915352 - 0.8542976379 - 0.8481569290 - 0.8791222572 - 0.8449172974 - 0.8662476540 - 0.8530817032 - 0.8820290565 - 0.8375949860 - 0.8768305779 - 0.8727374077 - 0.8395876884 - 0.8910889626 - 0.8542795181 - 0.8655996323 - 0.8780241013 - 0.8705983162 - 0.8575091362 - 0.8979806900 - 0.8520984650 - 0.8872904778 - 0.8814110756 - 0.8686814308 - 0.8921828270 - 0.8750338554 - 0.8938083649 - 0.8714756966 - 0.9074501991 - 0.8764576912 - 0.9021954536 - 0.8883976936 - 0.9051547050 - 0.9008159637 - 0.8951616287 - 0.9120388031 - 0.9127609730 - 0.8981385231 - 0.9259493351 - 0.9105863571 - 0.9282953739 - 0.9150164127 - 0.9355597496 - 0.9274086952 - 0.9436306953 - 0.9302940369 - 0.9488148689 - 0.9502983093 - 0.9614088535 - 0.9368476868 - 0.9840803146 - 0.9661402702 - 0.9666788578 - 0.9753582478 - 1.0072546005 - 0.9727771282 - 0.9972198009 - 1.0179176331 - 1.0046191216 - 1.0121011734 - 1.0332229137 - 1.0303835869 - 1.0431077480 - 1.0365583897 - 1.0721626282 - 1.0584330559 - 1.0688223839 - 1.0875279903 - 1.1016261578 - 1.0825214386 - 1.1303679943 - 1.1113371849 - 1.1467785835 - 1.1260602474 - 1.1777091026 - 1.1476836205 - 1.2031910419 - 1.1710293293 - 1.2185463905 - 1.2159731388 - 1.2436461449 - 1.2254889011 - 1.2835643291 - 1.2750834227 - 1.2867264748 - 1.3094763756 - 1.3375585079 - 1.3399479389 - 1.3557296991 - 1.3836729527 - 1.4109219313 - 1.4019629955 - 1.4505088329 - 1.4539183378 - 1.4874149561 - 1.4992183447 - 1.5269182920 - 1.5446851254 - 1.5842896700 - 1.5896861553 - 1.6236262321 - 1.6434049606 - 1.6984671354 - 1.6750402451 - 1.7496900558 - 1.7500815392 - 1.8129168749 - 1.7936296463 - 1.8669483662 - 1.8946249485 - 1.9133245945 - 1.9423439503 - 2.0105416775 - 2.0160079002 - 2.0656900406 - 2.0934867859 - 2.1579537392 - 2.1666309834 - 2.2259469032 - 2.2758612633 - 2.2987995148 - 2.3558881283 - 2.4140777588 - 2.4346761703 - 2.4902956486 - 2.5672695637 - 2.5785560608 - 2.6567986012 - 2.6968102455 - 2.7687473297 - 2.7971043587 - 2.8864970207 - 2.9146451950 - 3.0074512959 - 3.0282902718 - 3.1433491707 - 3.1578140259 - 3.2510001659 - 3.3349211216 - 3.3618383408 - 3.4657976627 - 3.5284504890 - 3.6109054089 - 3.6670072079 - 3.7650349140 - 3.8421583176 - 3.9172418118 - 3.9923717976 - 4.1118421555 - 4.1583356857 - 4.2604722977 - 4.3813786507 - 4.4255523682 - 4.5454158783 - 4.6462736130 - 4.7548856735 - 4.8102679253 - 4.9695787430 - 5.0486450195 - 5.1483039856 - 5.2770833969 - 5.3673682213 - 5.5000786781 - 5.6167035103 - 5.7213230133 - 5.8405981064 - 6.0020265579 - 6.0710506439 - 6.2414770126 - 6.3462028503 - 6.5053091049 - 6.6330194473 - 6.7520837784 - 6.9152803421 - 7.0534057617 - 7.2014150620 - 7.3256826401 - 7.5108261108 - 7.6405344009 - 7.8096427917 - 7.9586563110 - 8.1149930954 - 8.3049173355 - 8.4447917938 - 8.6280317307 - 8.7777786255 - 8.9991254807 - 9.1280097961 - 9.3268823624 - 9.5042219162 - 9.7122335434 - 9.8813114166 - 10.0519256592 - 10.2962760925 - 10.4431247711 - 10.6706275940 - 10.8510456085 - 11.0634174347 - 11.2867660522 - 11.4689693451 - 11.6937026978 - 11.9001064301 - 12.1487178802 - 12.3224563599 - 12.5676136017 - 12.8217620850 - 12.9901008606 - 13.2596759796 - 13.4915218353 - 13.6915893555 - 13.9601135254 - 14.1882781982 - 14.4467048645 - 14.6474628448 - 14.9541740417 - 15.1548194885 - 15.4069824219 - 15.6934604645 - 15.8936023712 - 16.2072334290 - 16.4205379486 - 16.6912212372 - 16.9701652527 - 17.2079353333 - 17.5011157990 - 17.7401962280 - 18.0237731934 - 18.2924346924 - 18.5477676392 - 18.8423919678 - 19.0884132385 - 19.4046325684 - 19.6385116577 - 19.9390144348 - 20.2153816223 - 20.4738922119 - 20.7737045288 - 21.0387954712 - 21.3227577209 - 21.6132736206 - 21.8693809509 - 22.1759529114 - 22.4422416687 - 22.7318725586 - 23.0164642334 - 23.2708473206 - 23.5835456848 - 23.8569526672 - 24.1232261658 - 24.4264984131 - 24.6760101318 - 25.0082550049 - 25.2105674744 - 25.5323448181 - 25.8316764832 - 26.0475044250 - 26.3650169373 - 26.6334991455 - 26.8735809326 - 27.1825828552 - 27.4192695618 - 27.7113037109 - 27.9680976868 - 28.2197456360 - 28.4980201721 - 28.7520523071 - 28.9859352112 - 29.2846336365 - 29.4985046387 - 29.7696838379 - 30.0105018616 - 30.2433586121 - 30.5118675232 - 30.7330169678 - 30.9664802551 - 31.2036247253 - 31.4435005188 - 31.6671562195 - 31.8780288696 - 32.1229743958 - 32.3439636230 - 32.5294380188 - 32.7550086975 - 32.9976882935 - 33.1310195923 - 33.3985214233 - 33.5710906982 - 33.7478179932 - 33.9847412109 - 34.1138839722 - 34.3384094238 - 34.5075073242 - 34.6674652100 - 34.8598251343 - 35.0082092285 - 35.1850051880 - 35.3311538696 - 35.5049591064 - 35.6329345703 - 35.8071899414 - 35.9328765869 - 36.0568618774 - 36.2344284058 - 36.3239059448 - 36.4541931152 - 36.6099090576 - 36.6972579956 - 36.8079299927 - 36.9434051514 - 37.0329055786 - 37.1226882935 - 37.2438735962 - 37.3197784424 - 37.4115371704 - 37.4968795776 - 37.5755004883 - 37.6439132690 - 37.7314376831 - 37.7755584717 - 37.8681564331 - 37.8932266235 - 37.9737014771 - 38.0287857056 - 38.0425338745 - 38.0996017456 - 38.1779174805 - 38.1546630859 - 38.1843795776 - 38.2814559937 - 38.2307128906 - 38.2708892822 - 38.3005905151 - 38.3021392822 - 38.3058471680 - 38.3063812256 - 38.3119735718 - 38.3155059814 - 38.2965698242 - 38.2772140503 - 38.2820968628 - 38.2571563721 - 38.2290954590 - 38.1985321045 - 38.1922760010 - 38.1487960815 - 38.0930633545 - 38.0850067139 - 38.0413208008 - 37.9604034424 - 37.9514770508 - 37.8962478638 - 37.8173522949 - 37.7737731934 - 37.7268753052 - 37.6457290649 - 37.5716094971 - 37.5295181274 - 37.4343795776 - 37.3795166016 - 37.2831649780 - 37.2127761841 - 37.1434936523 - 37.0338973999 - 36.9533615112 - 36.8816757202 - 36.7589721680 - 36.6993637085 - 36.5683670044 - 36.4841232300 - 36.3982620239 - 36.2705001831 - 36.1669616699 - 36.0782470703 - 35.9576492310 - 35.8270645142 - 35.7338027954 - 35.6356353760 - 35.4625473022 - 35.4041061401 - 35.2542419434 - 35.1201858521 - 35.0156250000 - 34.8969497681 - 34.7398681641 - 34.6151428223 - 34.5075759888 - 34.3742675781 - 34.2012634277 - 34.1077880859 - 33.9712753296 - 33.7986450195 - 33.6756896973 - 33.5564193726 - 33.3928604126 - 33.2372436523 - 33.1242904663 - 32.9676818848 - 32.8121719360 - 32.6539306641 - 32.5480117798 - 32.3616485596 - 32.2162780762 - 32.0784606934 - 31.9247131348 - 31.7648391724 - 31.6010284424 - 31.4718017578 - 31.3082351685 - 31.1377716064 - 31.0030441284 - 30.8269195557 - 30.6974716187 - 30.4977645874 - 30.3675155640 - 30.2035865784 - 30.0402374268 - 29.8760299683 - 29.7173538208 - 29.5726356506 - 29.3982048035 - 29.2232589722 - 29.0718002319 - 28.9279823303 - 28.7370262146 - 28.5932312012 - 28.4067153931 - 28.2873229980 - 28.0780792236 - 27.9378890991 - 27.7603302002 - 27.6088447571 - 27.4355087280 - 27.2748107910 - 27.1060981750 - 26.9561729431 - 26.7812004089 - 26.6006584167 - 26.4531288147 - 26.2974853516 - 26.1238288879 - 25.9508552551 - 25.7858772278 - 25.6476364136 - 25.4576797485 - 25.2798080444 - 25.1550636292 - 24.9830551147 - 24.7991180420 - 24.6544456482 - 24.4760055542 - 24.3454284668 - 24.1397705078 - 23.9790077209 - 23.8696746826 - 23.6598968506 - 23.5128402710 - 23.3586921692 - 23.1949272156 - 23.0301856995 - 22.8588294983 - 22.7272911072 - 22.5541000366 - 22.3704757690 - 22.2523803711 - 22.0679054260 - 21.9195365906 - 21.7518310547 - 21.6210060120 - 21.4330291748 - 21.2937850952 - 21.1361312866 - 20.9870223999 - 20.8060569763 - 20.6818428040 - 20.5217895508 - 20.3647041321 - 20.2028236389 - 20.0635604858 - 19.9389991760 - 19.7252120972 - 19.6253662109 - 19.4684028625 - 19.3026847839 - 19.1732215881 - 19.0052642822 - 18.8712959290 - 18.7269248962 - 18.5724792480 - 18.4179534912 - 18.2783699036 - 18.1299400330 - 18.0055847168 - 17.8398818970 - 17.6958122253 - 17.5706481934 - 17.4178237915 - 17.2818450928 - 17.1404457092 - 16.9900016785 - 16.8681144714 - 16.7113952637 - 16.5869102478 - 16.4486618042 - 16.3112564087 - 16.1618309021 - 16.0545845032 - 15.9049072266 - 15.7627906799 - 15.6343765259 - 15.5145912170 - 15.3798294067 - 15.2290916443 - 15.1150398254 - 14.9847412109 - 14.8497619629 - 14.7278671265 - 14.6101493835 - 14.4415702820 - 14.3450279236 - 14.2145729065 - 14.0955581665 - 13.9639358521 - 13.8255271912 - 13.7229042053 - 13.5884780884 - 13.4710922241 - 13.3519477844 - 13.2521972656 - 13.0794754028 - 13.0062751770 - 12.8690719604 - 12.7613143921 - 12.6430854797 - 12.5147094727 - 12.3975772858 - 12.3000545502 - 12.1803722382 - 12.0731239319 - 11.9305992126 - 11.8513927460 - 11.7307357788 - 11.6179618835 - 11.5226726532 - 11.3822040558 - 11.2810478210 - 11.1867294312 - 11.0489730835 - 10.9864120483 - 10.8611831665 - 10.7487068176 - 10.6255550385 - 10.5683441162 - 10.4333438873 - 10.3297443390 - 10.2427101135 - 10.1326808929 - 10.0293788910 - 9.9147071838 - 9.8442802429 - 9.7519798279 - 9.6155567169 - 9.5337467194 - 9.4470424652 - 9.3610801697 - 9.2297763824 - 9.1798191071 - 9.0701751709 - 8.9370765686 - 8.8739700317 - 8.7928314209 - 8.6919097900 - 8.6083011627 - 8.4986839294 - 8.4074039459 - 8.3453388214 - 8.2258663177 - 8.1630287170 - 8.0824832916 - 7.9747619629 - 7.8738422394 - 7.8039226532 - 7.7282485962 - 7.6199817657 - 7.5816993713 - 7.4564800262 - 7.3930339813 - 7.2988719940 - 7.2087402344 - 7.1492137909 - 7.0500659943 - 6.9925003052 - 6.9101142883 - 6.8064670563 - 6.7586727142 - 6.6582183838 - 6.6017932892 - 6.5131950378 - 6.4643459320 - 6.3508262634 - 6.2886276245 - 6.2179603577 - 6.1433582306 - 6.1012783051 - 5.9804668427 - 5.9500350952 - 5.8386211395 - 5.7979526520 - 5.7008152008 - 5.6632347107 - 5.5719966888 - 5.5259723663 - 5.4389038086 - 5.3706302643 - 5.2902565002 - 5.2469024658 - 5.1643524170 - 5.1047477722 - 5.0446491241 - 5.0016365051 - 4.9028453827 - 4.8464431763 - 4.7800445557 - 4.7332439423 - 4.6465549469 - 4.5974864960 - 4.5498447418 - 4.5047836304 - 4.3945903778 - 4.3659057617 - 4.2952022552 - 4.2467041016 - 4.1843280792 - 4.1291790009 - 4.0891723633 - 4.0115871429 - 3.9513626099 - 3.8896780014 - 3.8679227829 - 3.7832412720 - 3.7415924072 - 3.7135705948 - 3.6173086166 - 3.5758113861 - 3.5283508301 - 3.4656229019 - 3.4175901413 - 3.3447666168 - 3.3441162109 - 3.2663393021 - 3.2219018936 - 3.1665630341 - 3.1171503067 - 3.0642404556 - 3.0216827393 - 2.9468469620 - 2.9111471176 - 2.8916063309 - 2.8027400970 - 2.7860813141 - 2.7531023026 - 2.6971626282 - 2.6111907959 - 2.6051759720 - 2.5712289810 - 2.4910516739 - 2.4846744537 - 2.4360589981 - 2.3810691833 - 2.3371944427 - 2.2975206375 - 2.2405052185 - 2.2177114487 - 2.1734294891 - 2.1542320251 - 2.0736923218 - 2.0792236328 - 2.0063581467 - 1.9585905075 - 1.9348373413 - 1.8840932846 - 1.8574886322 - 1.7778911591 - 1.7883901596 - 1.7159900665 - 1.6788568497 - 1.6501817703 - 1.6345090866 - 1.5699968338 - 1.5767660141 - 1.5035572052 - 1.4661474228 - 1.4540433884 - 1.3888530731 - 1.3736524582 - 1.3363142014 - 1.3242940903 - 1.2782020569 - 1.2454376221 - 1.1877937317 - 1.2042570114 - 1.1355810165 - 1.1270151138 - 1.1149063110 - 1.0329999924 - 1.0235767365 - 1.0232009888 - 0.9250726700 - 0.9346370697 - 0.8917951584 - 0.8751497269 - 0.8050966263 - 0.8002281189 - 0.7771911621 - 0.7294397354 - 0.6936473846 - 0.6677865982 - 0.6575565338 - 0.6041536331 - 0.5715980530 - 0.5497407913 - 0.5426559448 - 0.4715385437 - 0.4913263321 - 0.4581499100 - 0.4366674423 - 0.3991279602 - 0.3849544525 - 0.3878908157 - 0.3385772705 - 0.3327999115 - 0.3114614487 - 0.2999076843 - 0.2739009857 - 0.2392063141 - 0.2730846405 - 0.1711254120 - 0.1822614670 - 0.1709451675 - 0.1135406494 - 0.1079607010 - 0.0502462387 - 0.0266084671 - -0.0134878159 - -0.0603446960 - -0.0793132782 - -0.1703548431 - -0.1676378250 - -0.2756490707 - -0.3326826096 - -0.3822031021 - -0.4386758804 - -0.5010590553 - -0.6008071899 - -0.6149349213 - -0.7008132935 - -0.7537941933 - -0.8758563995 - -0.8515939713 - -0.9224834442 - -1.0293998718 - -1.0801153183 - -1.0594201088 - -1.0955991745 - -1.2344198227 - -1.2539887428 - -1.0743880272 - 0.0517559052 - 0.8238983154 - 1.5619688034 - 2.1839294434 - 2.8161659241 - 3.5210046768 - 4.2154836655 - 4.8716058731 - 5.5058784485 - 6.2162590027 - 6.8841247559 - 7.5518746376 - 8.2002792358 - 8.9028091431 - 9.5509510040 - 10.2382164001 - 10.9016494751 - 11.5564117432 - 12.2543172836 - 12.9089059830 - 13.5919847488 - 14.2248344421 - 14.9491872787 - 15.5823554993 - 16.2699871063 - 16.9123363495 - 17.6233501434 - 18.2671623230 - 18.9388809204 - 19.6072578430 - 20.2909202576 - 20.9471378326 - 21.6289100647 - 22.2655830383 - 22.9920253754 - 23.6124191284 - 24.2978630066 - 24.9697284698 - 25.6451454163 - 26.2989959717 - 26.9751129150 - 27.6500701904 - 28.3139228821 - 28.9823646545 - 29.6465263367 - 30.3329849243 - 30.9834671021 - 31.6570224762 - 32.3344955444 - 32.9925422668 - 33.6670761108 - 34.3352012634 - 34.9948539734 - 35.6867980957 - 36.3261566162 - 37.0107536316 - 37.6786918640 - 38.3543510437 - 38.9901123047 - 39.7028579712 - 40.3419609070 - 41.0220565796 - 41.6696853638 - 42.3802680969 - 43.0057563782 - 43.6950263977 - 44.3499221802 - 45.0446281433 - 45.6844558716 - 46.3491706848 - 47.0503463745 - 47.6894302368 - 48.3641510010 - 49.0311355591 - 49.7002754211 - 50.3782119751 - 51.0294380188 - 51.6877937317 - 52.3940315247 - 53.0362205505 - 53.6855087280 - 54.3880844116 - 55.0369606018 - 55.7133102417 - 56.3621597290 - 57.0454330444 - 57.7141036987 - 58.3768501282 - 59.0367813110 - 59.6977844238 - 60.4035415649 - 61.0274124146 - 61.7045211792 - 62.3733825684 - 63.0742378235 - 63.6737670898 - 64.3888168335 - 65.0494155884 - 65.7095184326 - 66.3676223755 - 67.0460128784 - 67.7141571045 - 68.3718643188 - 69.0408859253 - 69.7080078125 - 70.3816223145 - 71.0348815918 - 71.7055206299 - 72.3821105957 - 73.0348281860 - 73.6988220215 - 74.3798217773 - 75.0452270508 - 75.6762390137 - 76.3958129883 - 77.0294418335 - 77.6886596680 - 78.3787994385 - 79.0226135254 - 79.7102966309 - 80.3472366333 - 81.0399780273 - 81.6911697388 - 82.3640441895 - 83.0144729614 - 83.7070007324 - 84.3390197754 - 85.0406341553 - 85.6653900146 - 86.3729858398 - 87.0048828125 - 87.6819000244 - 88.3607025146 - 88.9947662354 - 89.6930694580 - 90.3267517090 - 91.0257797241 - 91.6534271240 - 92.3539810181 - 92.9863128662 - 93.6796646118 - 94.3305664062 - 94.9845123291 - 95.6717910767 - 96.3296661377 - 96.9746704102 - 97.6686859131 - 98.3094787598 - 98.9943542480 - 99.6397323608 - 100.3072204590 - 100.9932632446 - 101.6217117310 - 102.3160858154 - 102.9650573730 - 103.6319580078 - 104.2999572754 - 104.9648437500 - 105.6131973267 - 106.3037796021 - 106.9433898926 - 107.6264190674 - 108.2661895752 - 108.9614715576 - 109.5989685059 - 110.2727737427 - 110.9354858398 - 111.6013946533 - 112.2614212036 - 112.9198913574 - 113.6089096069 - 114.2263717651 - 114.9359436035 - 115.5852127075 - 116.2235946655 - 116.9121475220 - 117.5952987671 - 118.1968078613 - 118.9141464233 - 119.5670700073 - 120.2058105469 - 120.8992233276 - 121.5344467163 - 122.2262191772 - 122.8629608154 - 123.5421905518 - 124.1955184937 - 124.8685684204 - 125.5221786499 - 126.1907424927 - 126.8399353027 - 127.5339508057 - 128.1607971191 - 128.8337097168 - 129.5208587646 - 130.1391296387 - 130.8462066650 - 131.4709777832 - 132.1591644287 - 132.8141174316 - 133.4718475342 - 134.1304779053 - 134.8117980957 - 135.4549713135 - 136.1254882812 - 136.7759704590 - 137.4636077881 - 138.0989532471 - 138.7678680420 - 139.4376983643 - 140.0986785889 - 140.7513580322 - 141.4123382568 - 142.0969238281 - 142.7232055664 - 143.4190216064 - 144.0551605225 - 144.7287139893 - 145.3907318115 - 146.0526428223 - 146.7033538818 - 147.3752746582 - 148.0384674072 - 148.6923065186 - 149.3493804932 - 150.0243377686 - 150.6860351562 - 151.3236846924 - 152.0148010254 - 152.6538391113 - 153.3355865479 - 153.9682922363 - 154.6594848633 - 155.3007659912 - 155.9689941406 - 156.6326141357 - 157.2810211182 - 157.9593811035 - 158.6078491211 - 159.2687530518 - 159.9363555908 - 160.5965423584 - 161.2484741211 - 161.9152221680 - 162.5857391357 - 163.2225494385 - 163.9066162109 - 164.5559082031 - 165.2161407471 - 165.8844604492 - 166.5314483643 - 167.2093200684 - 167.8529357910 - 168.5252532959 - 169.1785125732 - 169.8391876221 - 170.5131683350 - 171.1518707275 - 171.8200378418 - 172.4998168945 - 173.1353454590 - 173.7884674072 - 174.4952545166 - 175.1033020020 - 175.7923736572 - 176.4358062744 - 177.1314239502 - 177.7376251221 - 178.4373474121 - 179.0980072021 - 179.7288665771 - 180.4187011719 - 181.0592651367 - 181.7358703613 - 182.3843841553 - 183.0451202393 - 183.7098541260 - 184.3779144287 - 185.0128479004 - 185.7017059326 - 186.3458404541 - 187.0116882324 - 187.6677246094 - 188.3333129883 - 188.9912109375 - 189.6458129883 - 190.3235778809 - 190.9584350586 - 191.6383514404 - 192.2987518311 - 192.9446716309 - 193.6184997559 - 194.2733612061 - 194.9340972900 - 195.6034240723 - 196.2363739014 - 196.9361267090 - 197.5710754395 - 198.2346038818 - 198.8961486816 - 199.5744628906 - 200.2001037598 - 200.8983459473 - 201.5352172852 - 202.2007141113 - 202.8669128418 - 203.5412445068 - 204.1543273926 - 204.8720245361 - 205.5171966553 - 206.1480560303 - 206.8371276855 - 207.5176849365 - 208.1321563721 - 208.8195190430 - 209.4907531738 - 210.1400146484 - 210.7914733887 - 211.4796142578 - 212.1190643311 - 212.8007965088 - 213.4373931885 - 214.1271820068 - 214.7763214111 - 215.4369812012 - 216.0996398926 - 216.7826080322 - 217.4131164551 - 218.1024475098 - 218.7526397705 - 219.4301910400 - 220.0680236816 - 220.7660980225 - 221.3946380615 - 222.1003570557 - 222.7166748047 - 223.4180450439 - 224.0697784424 - 224.7412109375 - 225.3818664551 - 226.0852355957 - 226.7285308838 - 227.3887329102 - 228.0702819824 - 228.7300415039 - 229.3918151855 - 230.0713806152 - 230.7149658203 - 231.4104156494 - 232.0606842041 - 232.7314758301 - 233.3929138184 - 234.0811920166 - 234.7336730957 - 235.3936309814 - 236.0884094238 - 236.7404174805 - 237.4156494141 - 238.0785980225 - 238.7527618408 - 239.4406127930 - 240.0737915039 - 240.7852172852 - 241.4186096191 - 242.1425628662 - 242.7545623779 - 243.4579772949 - 244.1534729004 - 244.7834167480 - 245.4730834961 - 246.1716918945 - 246.8106536865 - 247.5099639893 - 248.1723327637 - 248.8617248535 - 249.5225067139 - 250.2117614746 - 250.8940582275 - 251.5511779785 - 252.2463989258 - 252.9373474121 - 253.5874176025 - 254.2744903564 - 254.9862060547 - 255.6320495605 - 256.3259582520 - 257.0083923340 - 257.7022705078 - 258.3663940430 - 259.0655212402 - 259.7363586426 - 260.4526367188 - 261.0892639160 - 261.8292846680 - 262.4796142578 - 263.1756286621 - 263.8945922852 - 264.5335083008 - 265.2612304688 - 265.9438171387 - 266.6366577148 - 267.3136901855 - 268.0326538086 - 268.7120971680 - 269.4111633301 - 270.0921325684 - 270.8284301758 - 271.4778442383 - 272.2033386230 - 272.9141540527 - 273.5768432617 - 274.3073425293 - 275.0037231445 - 275.7082214355 - 276.3922729492 - 277.1327819824 - 277.8102416992 - 278.5209655762 - 279.2420043945 - 279.9346313477 - 280.6448364258 - 281.3755493164 - 282.0676879883 - 282.7735290527 - 283.5240173340 - 284.1890258789 - 284.9483032227 - 285.6292419434 - 286.3777770996 - 287.0886230469 - 287.7943420410 - 288.5310363770 - 289.2462158203 - 289.9806823730 - 290.6785278320 - 291.4382934570 - 292.1328430176 - 292.8908081055 - 293.5988159180 - 294.3283996582 - 295.0749511719 - 295.8015136719 - 296.5307922363 - 297.2552795410 - 298.0257568359 - 298.7286987305 - 299.4799499512 - 300.2102661133 - 300.9779052734 - 301.6925354004 - 302.4318542480 - 303.2183532715 - 303.8968505859 - 304.7063903809 - 305.4103088379 - 306.1758728027 - 306.9243469238 - 307.6796264648 - 308.4226379395 - 309.1688842773 - 309.9533386230 - 310.6793823242 - 311.4362792969 - 312.2325134277 - 312.9332885742 - 313.7300720215 - 314.4949645996 - 315.2131958008 - 316.0173950195 - 316.7639465332 - 317.5413818359 - 318.2719421387 - 319.0862426758 - 319.8202819824 - 320.5816955566 - 321.3863830566 - 322.1035461426 - 322.9241027832 - 323.6593627930 - 324.4388732910 - 325.2233581543 - 325.9706420898 - 326.7828674316 - 327.5142822266 - 328.3093261719 - 329.0906677246 - 329.8419189453 - 330.6417236328 - 331.3949584961 - 332.1991577148 - 332.9517211914 - 333.7412719727 - 334.5173950195 - 335.2788391113 - 336.0848693848 - 336.8323974609 - 337.6217346191 - 338.4080810547 - 339.1642150879 - 339.9631347656 - 340.7207336426 - 341.5031433105 - 342.3075561523 - 343.0217285156 - 343.8594665527 - 344.6076965332 - 345.3728027344 - 346.1867370605 - 346.9009094238 - 347.7469482422 - 348.4567871094 - 349.2481384277 - 350.0530395508 - 350.7670593262 - 351.5830688477 - 352.3387756348 - 353.0787353516 - 353.8989257812 - 354.6119995117 - 355.4162292480 - 356.1666564941 - 356.9266662598 - 357.6926574707 - 358.4547119141 - 359.2067260742 - 359.9767456055 - 360.7191772461 - 361.4862060547 - 362.2413940430 - 362.9614257812 - 363.7570190430 - 364.4867553711 - 365.2249450684 - 365.9712524414 - 366.7387084961 - 367.4595947266 - 368.2013549805 - 368.9434814453 - 369.6978759766 - 370.4034118652 - 371.1419677734 - 371.9116210938 - 372.5745544434 - 373.3640747070 - 374.0637817383 - 374.7640686035 - 375.5405883789 - 376.2023620605 - 376.9548645020 - 377.6573181152 - 378.3652343750 - 379.0972900391 - 379.7763671875 - 380.5028381348 - 381.1918029785 - 381.9171447754 - 382.5780029297 - 383.3122863770 - 384.0007324219 - 384.6618957520 - 385.3950805664 - 386.0609130859 - 386.7358703613 - 387.4443359375 - 388.1187744141 - 388.7804260254 - 389.4792175293 - 390.1422729492 - 390.8167114258 - 391.4822387695 - 392.1595458984 - 392.8128662109 - 393.4798889160 - 394.1453857422 - 394.7897338867 - 395.4531250000 - 396.1033325195 - 396.7741699219 - 397.3764038086 - 398.0601196289 - 398.7134399414 - 399.3144226074 - 399.9641113281 - 400.6475830078 - 401.2270812988 - 401.8585205078 - 402.5486450195 - 403.1051025391 - 403.7818908691 - 404.3850097656 - 405.0061340332 - 405.6322631836 - 406.2438659668 - 406.8556213379 - 407.4850463867 - 408.0918579102 - 408.6750183105 - 409.3252563477 - 409.9064941406 - 410.5065307617 - 411.1112670898 - 411.7250366211 - 412.3165893555 - 412.8739624023 - 413.5293579102 - 414.0956420898 - 414.6545410156 - 415.2812500000 - 415.8718872070 - 416.4230346680 - 417.0258789062 - 417.6016235352 - 418.1957397461 - 418.7458496094 - 419.3399658203 - 419.9049377441 - 420.5065917969 - 421.0365905762 - 421.6198120117 - 422.2180175781 - 422.7400207520 - 423.3270263672 - 423.8986511230 - 424.4337158203 - 425.0344848633 - 425.5580139160 - 426.1198120117 - 426.7070617676 - 427.2374877930 - 427.7733459473 - 428.3756103516 - 428.8831787109 - 429.4515380859 - 429.9925842285 - 430.5649719238 - 431.0618286133 - 431.6687011719 - 432.1727905273 - 432.7132568359 - 433.2786560059 - 433.8171081543 - 434.3365173340 - 434.8762512207 - 435.4443969727 - 435.9707946777 - 436.4697570801 - 437.0538940430 - 437.5801391602 - 438.0841979980 - 438.6342773438 - 439.1767578125 - 439.6994628906 - 440.2033386230 - 440.7692871094 - 441.2880249023 - 441.8023681641 - 442.3217468262 - 442.8901367188 - 443.3710632324 - 443.9053649902 - 444.4501953125 - 444.9523620605 - 445.4865722656 - 445.9950561523 - 446.5265502930 - 447.0579223633 - 447.5499267578 - 448.0919799805 - 448.6024780273 - 449.1361999512 - 449.6210327148 - 450.1598205566 - 450.6865844727 - 451.1828918457 - 451.6986999512 - 452.2247314453 - 452.7454833984 - 453.2528991699 - 453.7490844727 - 454.2811889648 - 454.8171997070 - 455.2835083008 - 455.8244018555 - 456.3261718750 - 456.8653564453 - 457.3387756348 - 457.8727722168 - 458.3756713867 - 458.8940124512 - 459.3991088867 - 459.9021301270 - 460.4248352051 - 460.9342041016 - 461.4426269531 - 461.9269104004 - 462.4750671387 - 462.9631347656 - 463.4763488770 - 463.9876098633 - 464.4745788574 - 465.0186462402 - 465.5115356445 - 465.9862365723 - 466.5390319824 - 467.0491943359 - 467.5212097168 - 468.0479125977 - 468.5553588867 - 469.0752563477 - 469.5617675781 - 470.0494689941 - 470.6162109375 - 471.0845947266 - 471.5834960938 - 472.1159667969 - 472.6082458496 - 473.1241455078 - 473.6077575684 - 474.1419677734 - 474.6447753906 - 475.1266479492 - 475.6635742188 - 476.1595458984 - 476.6564331055 - 477.1737670898 - 477.6865234375 - 478.1804809570 - 478.6848449707 - 479.2077636719 - 479.7118225098 - 480.1879272461 - 480.7377929688 - 481.2243652344 - 481.7261657715 - 482.2464599609 - 482.7410278320 - 483.2767944336 - 483.7442321777 - 484.2777404785 - 484.7926025391 - 485.2728576660 - 485.8004455566 - 486.3071899414 - 486.8070983887 - 487.3204345703 - 487.8271179199 - 488.3355407715 - 488.8430480957 - 489.3365478516 - 489.8812866211 - 490.3565979004 - 490.8739624023 - 491.3988952637 - 491.8771362305 - 492.4198608398 - 492.9179077148 - 493.4027099609 - 493.9487304688 - 494.4423522949 - 494.9461975098 - 495.4615173340 - 495.9757385254 - 496.4845581055 - 496.9905395508 - 497.5051269531 - 498.0170288086 - 498.5255432129 - 499.0352783203 - 499.5578613281 - 500.0469360352 - 500.5829467773 - 501.0809020996 - 501.5931701660 - 502.1041259766 - 502.6405639648 - 503.1038818359 - 503.6486816406 - 504.1554870605 - 504.6750183105 - 505.1757202148 - 505.6825256348 - 506.2207641602 - 506.7130432129 - 507.2308044434 - 507.7520446777 - 508.2768249512 - 508.7488708496 - 509.3094177246 - 509.7988281250 - 510.3201904297 - 510.8344116211 - 511.3479919434 - 511.8658447266 - 512.3682861328 - 512.8986206055 - 513.4310302734 - 513.8957519531 - 514.4509887695 - 514.9651489258 - 515.4775390625 - 515.9857177734 - 516.5053100586 - 517.0235595703 - 517.5394897461 - 518.0424194336 - 518.5916748047 - 519.0851440430 - 519.6142578125 - 520.1080932617 - 520.6657104492 - 521.1520385742 - 521.6775512695 - 522.2006835938 - 522.7197875977 - 523.2318115234 - 523.7407226562 - 524.2890625000 - 524.7949218750 - 525.2935791016 - 525.8362426758 - 526.3492431641 - 526.8833618164 - 527.3657226562 - 527.9248046875 - 528.4489746094 - 528.9140014648 - 529.4757690430 - 529.9969482422 - 530.5113525391 - 531.0349121094 - 531.5388183594 - 532.0717163086 - 532.6173095703 - 533.0840454102 - 533.6455688477 - 534.1818237305 - 534.6635742188 - 535.1908569336 - 535.7276000977 - 536.2498779297 - 536.7476196289 - 537.3175048828 - 537.7891235352 - 538.3432006836 - 538.8543701172 - 539.3654174805 - 539.9122314453 - 540.4121704102 - 540.9467163086 - 541.4893188477 - 541.9662475586 - 542.5250854492 - 543.0452880859 - 543.5585937500 - 544.0737304688 - 544.6364135742 - 545.1203613281 - 545.6472778320 - 546.1940917969 - 546.6922607422 - 547.2525634766 - 547.7302246094 - 548.3051147461 - 548.7776489258 - 549.3381958008 - 549.8408813477 - 550.3927001953 - 550.8807373047 - 551.4339599609 - 551.9625244141 - 552.4590454102 - 552.9909057617 - 553.5278320312 - 554.0548095703 - 554.5594482422 - 555.0970458984 - 555.6402587891 - 556.1439208984 - 556.6674804688 - 557.1926269531 - 557.7318725586 - 558.2456054688 - 558.7664184570 - 559.3004760742 - 559.8483886719 - 560.3285522461 - 560.8869628906 - 561.3980102539 - 561.9181518555 - 562.4776611328 - 562.9589843750 - 563.5202026367 - 564.0270385742 - 564.5694580078 - 565.0507812500 - 565.6411743164 - 566.1212158203 - 566.6621093750 - 567.2031250000 - 567.6991577148 - 568.2510375977 - 568.7564697266 - 569.2825927734 - 569.8369140625 - 570.3132934570 - 570.8798217773 - 571.4055786133 - 571.9152832031 - 572.4455566406 - 572.9677734375 - 573.5034790039 - 574.0272216797 - 574.5267333984 - 575.0734252930 - 575.6207275391 - 576.1009521484 - 576.6580810547 - 577.1856689453 - 577.7086791992 - 578.2186279297 - 578.7496337891 - 579.2952270508 - 579.7975463867 - 580.3407592773 - 580.8630981445 - 581.3789062500 - 581.9189453125 - 582.4340209961 - 582.9494628906 - 583.4955444336 - 584.0088500977 - 584.5538330078 - 585.0477294922 - 585.6050415039 - 586.1113281250 - 586.6365356445 - 587.1619873047 - 587.6842041016 - 588.2216186523 - 588.7147216797 - 589.2838745117 - 589.7625732422 - 590.3067626953 - 590.8472900391 - 591.3557128906 - 591.8636474609 - 592.4442138672 - 592.9218139648 - 593.4432373047 - 593.9974365234 - 594.4956054688 - 595.0308837891 - 595.5548706055 - 596.0816040039 - 596.6064453125 - 597.1350097656 - 597.6340942383 - 598.1900024414 - 598.6967773438 - 599.2183837891 - 599.7762451172 - 600.2462768555 - 600.7940063477 - 601.3446655273 - 601.8168334961 - 602.3578491211 - 602.8878173828 - 603.4238891602 - 603.8977661133 - 604.4518432617 - 604.9945068359 - 605.4639282227 - 606.0248413086 - 606.5208740234 - 607.0714721680 - 607.5698242188 - 608.0821533203 - 608.6290893555 - 609.1486206055 - 609.6359863281 - 610.1924438477 - 610.7226562500 - 611.2174682617 - 611.7399291992 - 612.2857666016 - 612.8045654297 - 613.3027343750 - 613.8439941406 - 614.3731079102 - 614.8757324219 - 615.4237060547 - 615.8962402344 - 616.4892578125 - 616.9506225586 - 617.4783325195 - 618.0120239258 - 618.5244140625 - 619.0437622070 - 619.5399780273 - 620.0707397461 - 620.5800781250 - 621.0927124023 - 621.6060180664 - 622.0878295898 - 622.6499633789 - 623.1024780273 - 623.6293945312 - 624.1102294922 - 624.6419067383 - 625.1555175781 - 625.5891113281 - 626.1518554688 - 626.6568603516 - 627.1306762695 - 627.6065063477 - 628.1716918945 - 628.6573486328 - 629.1259155273 - 629.6365356445 - 630.1973266602 - 630.6658935547 - 631.1472778320 - 631.6921997070 - 632.2515258789 - 633.1436157227 - 633.7543945312 - 634.2724609375 - 634.7539062500 - 635.2935791016 - 635.8322753906 - 636.3372192383 - 636.8538208008 - 637.3784179688 - 637.9173583984 - 638.4094848633 - 638.9428710938 - 639.4605102539 - 639.9929199219 - 640.4873046875 - 641.0199584961 - 641.5458374023 - 642.0491943359 - 642.5804443359 - 643.0788574219 - 643.6288452148 - 644.1066284180 - 644.6607666016 - 645.1448974609 - 645.6952514648 - 646.1710205078 - 646.7294921875 - 647.2151489258 - 647.7351074219 - 648.2658691406 - 648.7620849609 - 649.2896118164 - 649.8015747070 - 650.2960815430 - 650.8530883789 - 651.3272094727 - 651.8482055664 - 652.3713989258 - 652.8928222656 - 653.3789672852 - 653.8974609375 - 654.4350585938 - 654.9207153320 - 655.4361572266 - 655.9478149414 - 656.4714965820 - 656.9674682617 - 657.4802246094 - 657.9951782227 - 658.4986572266 - 659.0158081055 - 659.5239868164 - 660.0164794922 - 660.5492553711 - 661.0492553711 - 661.5504760742 - 662.0573120117 - 662.5819702148 - 663.0678710938 - 663.6003417969 - 664.0654907227 - 664.6232299805 - 665.0902709961 - 665.6190795898 - 666.1065063477 - 666.6297607422 - 667.1193237305 - 667.6434326172 - 668.1242065430 - 668.6362915039 - 669.1608276367 - 669.6376342773 - 670.1510620117 - 670.6536865234 - 671.1589355469 - 671.6723632812 - 672.1455078125 - 672.6566772461 - 673.1975708008 - 673.6506958008 - 674.1541137695 - 674.6851806641 - 675.1782836914 - 675.6597900391 - 676.1622924805 - 676.6832885742 - 677.1756591797 - 677.6571655273 - 678.1697387695 - 678.6669311523 - 679.1770019531 - 679.6522216797 - 680.1572875977 - 680.6586914062 - 681.1826782227 - 681.6155395508 - 682.1605224609 - 682.6651611328 - 683.1238403320 - 683.6369018555 - 684.1397705078 - 684.6265258789 - 685.1262207031 - 685.6096801758 - 686.1175537109 - 686.6117553711 - 687.0934448242 - 687.5928955078 - 688.0919189453 - 688.5833129883 - 689.0598144531 - 689.5702514648 - 690.0731201172 - 690.5127563477 - 691.0731811523 - 691.5206909180 - 692.0089111328 - 692.5320434570 - 692.9861450195 - 693.5079956055 - 693.9674072266 - 694.4771728516 - 694.9691162109 - 695.4434814453 - 695.9228515625 - 696.4585571289 - 696.8871459961 - 697.4129028320 - 697.8823852539 - 698.3879394531 - 698.8530273438 - 699.3474121094 - 699.8449096680 - 700.3120117188 - 700.8154296875 - 701.2789916992 - 701.7891235352 - 702.2561035156 - 702.7482910156 - 703.2210083008 - 703.7247924805 - 704.1920166016 - 704.6781616211 - 705.1617431641 - 705.6498413086 - 706.1254272461 - 706.6094360352 - 707.0820312500 - 707.5922241211 - 708.0346679688 - 708.5355834961 - 709.0312500000 - 709.4703979492 - 709.9910888672 - 710.4507446289 - 710.9253540039 - 711.4165649414 - 711.8965454102 - 712.3524780273 - 712.8596801758 - 713.3150024414 - 713.8091430664 - 714.2641601562 - 714.7706909180 - 715.2160034180 - 715.7180786133 - 716.1751708984 - 716.6597290039 - 717.1390380859 - 717.5934448242 - 718.1041259766 - 718.5373535156 - 719.0330810547 - 719.5220947266 - 719.9541625977 - 720.4580688477 - 720.9353027344 - 721.3754882812 - 721.8773803711 - 722.3441162109 - 722.7962646484 - 723.2966918945 - 723.7375488281 - 724.2368774414 - 724.6753540039 - 725.1768798828 - 725.6299438477 - 726.0856933594 - 726.5899047852 - 727.0290527344 - 727.4966430664 - 727.9882812500 - 728.4389038086 - 728.8929443359 - 729.4006347656 - 729.8187255859 - 730.3240356445 - 730.7667846680 - 731.2369384766 - 731.7138671875 - 732.1655883789 - 732.6282958984 - 733.1071166992 - 733.5601806641 - 734.0276489258 - 734.4769287109 - 734.9736328125 - 735.3999023438 - 735.8813476562 - 736.3387451172 - 736.8057861328 - 737.2587280273 - 737.7191772461 - 738.1956176758 - 738.6311035156 - 739.1134033203 - 739.5671386719 - 740.0106201172 - 740.4925537109 - 740.9445800781 - 741.3883666992 - 741.8606567383 - 742.3209228516 - 742.7684326172 - 743.2258911133 - 743.6861572266 - 744.1488037109 - 744.5906372070 - 745.0601196289 - 745.4973144531 - 745.9805297852 - 746.4080810547 - 746.8712768555 - 747.3319091797 - 747.7815551758 - 748.2287597656 - 748.6901245117 - 749.1385498047 - 749.5939331055 - 750.0368652344 - 750.5058593750 - 750.9342041016 - 751.4025268555 - 751.8489990234 - 752.3017578125 - 752.7271118164 - 753.2235717773 - 753.6315307617 - 754.0939941406 - 754.5507202148 - 754.9819335938 - 755.4537353516 - 755.8658447266 - 756.3509521484 - 756.7727050781 - 757.2232055664 - 757.6820068359 - 758.1107788086 - 758.5563964844 - 759.0303955078 - 759.4369506836 - 759.8856811523 - 760.3699340820 - 760.7659912109 - 761.2268676758 - 761.6687622070 - 762.1333007812 - 762.5322265625 - 763.0009765625 - 763.4496459961 - 763.8737792969 - 764.3158569336 - 764.7568969727 - 765.2169799805 - 765.6284179688 - 766.0676879883 - 766.5399169922 - 766.9443359375 - 767.3892822266 - 767.8452758789 - 768.2534790039 - 768.7233276367 - 769.1290283203 - 769.5878295898 - 770.0089721680 - 770.4577636719 - 770.8842773438 - 771.3157958984 - 771.7542724609 - 772.2084960938 - 772.5998535156 - 773.0623168945 - 773.5034790039 - 773.9082641602 - 774.3635864258 - 774.7723999023 - 775.2390136719 - 775.6409912109 - 776.0715332031 - 776.5172119141 - 776.9542236328 - 777.3460083008 - 777.8164062500 - 778.2268676758 - 778.6535644531 - 779.0831298828 - 779.5296020508 - 779.9119873047 - 780.3870849609 - 780.8064575195 - 781.1885375977 - 781.6618652344 - 782.0890502930 - 782.4740600586 - 782.9283447266 - 783.3510742188 - 783.7731323242 - 784.1842041016 - 784.6266479492 - 785.0285644531 - 785.4822998047 - 785.8699340820 - 786.3057861328 - 786.7376098633 - 787.1492919922 - 787.5585327148 - 788.0000610352 - 788.4086914062 - 788.8279418945 - 789.2487792969 - 789.6682128906 - 790.0839843750 - 790.5101318359 - 790.9078369141 - 791.3552246094 - 791.7446289062 - 792.1723632812 - 792.5918579102 - 793.0062255859 - 793.4061889648 - 793.8459472656 - 794.2463378906 - 794.6535034180 - 795.0884399414 - 795.4794311523 - 795.9010620117 - 796.3346557617 - 796.6973266602 - 797.1531982422 - 797.5577392578 - 797.9500122070 - 798.3681640625 - 798.7918701172 - 799.1980590820 - 799.5761108398 - 800.0369873047 - 800.4033813477 - 800.8375244141 - 801.2271118164 - 801.6443481445 - 802.0531005859 - 802.4541625977 - 802.8690185547 - 803.2501831055 - 803.7014160156 - 804.0666503906 - 804.4697875977 - 804.9197387695 - 805.2705078125 - 805.7012329102 - 806.1098022461 - 806.4871826172 - 806.9174804688 - 807.3060302734 - 807.7037353516 - 808.1137695312 - 808.5110473633 - 808.9188232422 - 809.2988281250 - 809.7143554688 - 810.1243286133 - 810.4985961914 - 810.9041137695 - 811.3212280273 - 811.7001953125 - 812.0984497070 - 812.4981689453 - 812.9006347656 - 813.2970581055 - 813.6751708984 - 814.0841674805 - 814.5010986328 - 814.8478393555 - 815.2780151367 - 815.6680297852 - 816.0399169922 - 816.4667358398 - 816.8244628906 - 817.2409057617 - 817.6297607422 - 818.0123901367 - 818.4039306641 - 818.8120117188 - 819.1788940430 - 819.5876464844 - 819.9591674805 - 820.3724975586 - 820.7324829102 - 821.1493530273 - 821.5219726562 - 821.9016723633 - 822.3156738281 - 822.6828002930 - 823.0633544922 - 823.4681396484 - 823.8519897461 - 824.2173461914 - 824.6198730469 - 825.0050659180 - 825.3895263672 - 825.7496948242 - 826.1688232422 - 826.5371093750 - 826.9059448242 - 827.3118286133 - 827.6740112305 - 828.0787353516 - 828.4299926758 - 828.8333129883 - 829.2089843750 - 829.5846557617 - 829.9638671875 - 830.3428344727 - 830.7339477539 - 831.0882568359 - 831.4981079102 - 831.8391113281 - 832.2554321289 - 832.6053466797 - 832.9879150391 - 833.3643798828 - 833.7551879883 - 834.1052856445 - 834.4960937500 - 834.8734130859 - 835.2362670898 - 835.6220092773 - 835.9829101562 - 836.3707275391 - 836.7280273438 - 837.1076049805 - 837.5025634766 - 837.8103637695 - 838.2627563477 - 838.5759277344 - 838.9712524414 - 839.3228149414 - 839.7215576172 - 840.0692749023 - 840.4343261719 - 840.8192749023 - 841.1849975586 - 841.5363769531 - 841.9311523438 - 842.2667846680 - 842.6553955078 - 843.0304565430 - 843.3576660156 - 843.7636108398 - 844.1118164062 - 844.4804687500 - 844.8315429688 - 845.2135620117 - 845.5753173828 - 845.9232177734 - 846.3104858398 - 846.6456298828 - 847.0352783203 - 847.3756103516 - 847.7500610352 - 848.1085205078 - 848.4574584961 - 848.8505249023 - 849.1678466797 - 849.5517578125 - 849.9215698242 - 850.2512207031 - 850.6347656250 - 850.9782714844 - 851.3453979492 - 851.6979980469 - 852.0579223633 - 852.4110717773 - 852.7706298828 - 853.1384277344 - 853.4687500000 - 853.8446655273 - 854.1964111328 - 854.5413208008 - 854.9103393555 - 855.2509155273 - 855.5950317383 - 855.9954223633 - 856.2794189453 - 856.6963500977 - 857.0084838867 - 857.3638916016 - 857.7544555664 - 858.0371704102 - 858.4511718750 - 858.7791748047 - 859.1115112305 - 859.4944458008 - 859.8117065430 - 860.1911010742 - 860.5183715820 - 860.8624267578 - 861.2501831055 - 861.5395507812 - 861.9353027344 - 862.2595825195 - 862.6213378906 - 862.9476928711 - 863.3082275391 - 863.6687622070 - 863.9826660156 - 864.3446655273 - 864.6924438477 - 865.0481567383 - 865.3442382812 - 865.7410888672 - 866.0717163086 - 866.4057006836 - 866.7420654297 - 867.1162109375 - 867.4291381836 - 867.7917480469 - 868.1044311523 - 868.4821777344 - 868.8045654297 - 869.1372070312 - 869.5062866211 - 869.8189086914 - 870.1817016602 - 870.5162353516 - 870.8308715820 - 871.2171020508 - 871.5162353516 - 871.8795166016 - 872.1998901367 - 872.5516967773 - 872.9022216797 - 873.2092285156 - 873.5739135742 - 873.8924560547 - 874.2540283203 - 874.5496215820 - 874.9221191406 - 875.2640991211 - 875.5621337891 - 875.9301757812 - 876.2692871094 - 876.5825195312 - 876.9220581055 - 877.2838745117 - 877.5878906250 - 877.9373779297 - 878.2631225586 - 878.6234741211 - 878.9151611328 - 879.2923583984 - 879.5942382812 - 879.9424438477 - 880.2824707031 - 880.5992431641 - 880.9301757812 - 881.2813720703 - 881.6152954102 - 881.9067382812 - 882.2723388672 - 882.6180419922 - 882.9130859375 - 883.2476806641 - 883.6124877930 - 883.9147338867 - 884.2385253906 - 884.6007080078 - 884.8824462891 - 885.2767333984 - 885.5546875000 - 885.8942871094 - 886.2391967773 - 886.5554199219 - 886.8775024414 - 887.2236328125 - 887.5541992188 - 887.8472900391 - 888.2272949219 - 888.5202636719 - 888.8493652344 - 889.1846923828 - 889.5169067383 - 889.8452148438 - 890.1262207031 - 890.5242919922 - 890.8092041016 - 891.1273193359 - 891.4650878906 - 891.8061523438 - 892.1090087891 - 892.4408569336 - 892.7463989258 - 893.1173095703 - 893.3992919922 - 893.7265625000 - 894.0606689453 - 894.4066772461 - 894.6888427734 - 895.0194091797 - 895.3790283203 - 895.6527099609 - 896.0061645508 - 896.3216552734 - 896.6264648438 - 896.9810180664 - 897.2811889648 - 897.5861206055 - 897.9448852539 - 898.2483520508 - 898.5397949219 - 898.9172973633 - 899.1752319336 - 899.5479736328 - 899.8331298828 - 900.1640625000 - 900.4735717773 - 900.8213500977 - 901.1002807617 - 901.4341430664 - 901.7609252930 - 902.0716552734 - 902.3845214844 - 902.6940307617 - 903.0389404297 - 903.3403320312 - 903.6329345703 - 903.9885864258 - 904.2863769531 - 904.5950927734 - 904.9197998047 - 905.2291259766 - 905.5536499023 - 905.8432006836 - 906.1778564453 - 906.4926147461 - 906.7900390625 - 907.1113891602 - 907.4360961914 - 907.7246704102 - 908.0476074219 - 908.3744506836 - 908.6562500000 - 908.9948730469 - 909.2953491211 - 909.5927734375 - 909.9314575195 - 910.2145996094 - 910.5311889648 - 910.8552246094 - 911.1506958008 - 911.4573974609 - 911.7647094727 - 912.0976562500 - 912.3717041016 - 912.6900634766 - 913.0084838867 - 913.3041381836 - 913.6195068359 - 913.9055175781 - 914.2294921875 - 914.5520629883 - 914.8167114258 - 915.1380615234 - 915.4572753906 - 915.7565307617 - 916.0435791016 - 916.3648681641 - 916.6632080078 - 916.9674072266 - 917.2687377930 - 917.5615234375 - 917.8796386719 - 918.1712036133 - 918.4807128906 - 918.7554931641 - 919.1000976562 - 919.3652954102 - 919.6729736328 - 919.9899291992 - 920.2559204102 - 920.5836181641 - 920.8851318359 - 921.1427612305 - 921.4761962891 - 921.7836914062 - 922.0429077148 - 922.3571777344 - 922.6649169922 - 922.9461059570 - 923.2590942383 - 923.5162353516 - 923.8520507812 - 924.1422119141 - 924.3983764648 - 924.7347412109 - 925.0010375977 - 925.3188476562 - 925.5820922852 - 925.8889770508 - 926.1911621094 - 926.4701538086 - 926.7593994141 - 927.0689086914 - 927.3319091797 - 927.6447143555 - 927.9222412109 - 928.2218017578 - 928.4871215820 - 928.8084716797 - 929.0789184570 - 929.3483886719 - 929.6755371094 - 929.9338378906 - 930.2126464844 - 930.5362548828 - 930.7837524414 - 931.0895996094 - 931.3702392578 - 931.6535644531 - 931.9480590820 - 932.2071533203 - 932.5061035156 - 932.8040771484 - 933.0548095703 - 933.3554687500 - 933.6333618164 - 933.9202270508 - 934.2058105469 - 934.4585571289 - 934.7753295898 - 935.0261840820 - 935.3253173828 - 935.6044921875 - 935.8471679688 - 936.1785888672 - 936.4353637695 - 936.6814575195 - 937.0026855469 - 937.2729492188 - 937.5212402344 - 937.8107299805 - 938.0915527344 - 938.3776855469 - 938.6145629883 - 938.9179687500 - 939.1907348633 - 939.4621582031 - 939.7203979492 - 940.0113525391 - 940.2618408203 - 940.5698242188 - 940.8070068359 - 941.0864257812 - 941.3535766602 - 941.6486206055 - 941.8795166016 - 942.1708374023 - 942.4401855469 - 942.7061157227 - 942.9626464844 - 943.2362670898 - 943.5249023438 - 943.7615356445 - 944.0377197266 - 944.3098144531 - 944.5727539062 - 944.8223876953 - 945.1138305664 - 945.3601074219 - 945.6215820312 - 945.8865356445 - 946.1536865234 - 946.4341430664 - 946.6435546875 - 946.9447631836 - 947.2205200195 - 947.4329833984 - 947.7198486328 - 947.9861450195 - 948.2431030273 - 948.4711914062 - 948.7670288086 - 949.0190429688 - 949.2621459961 - 949.5238647461 - 949.7945556641 - 950.0203857422 - 950.3125000000 - 950.5445556641 - 950.8106689453 - 951.0549926758 - 951.3182983398 - 951.5607299805 - 951.8284912109 - 952.0733642578 - 952.3201904297 - 952.5922241211 - 952.8200683594 - 953.0692138672 - 953.3476562500 - 953.5711669922 - 953.8413696289 - 954.0594482422 - 954.3292236328 - 954.5996704102 - 954.7990112305 - 955.0813598633 - 955.3188476562 - 955.5662231445 - 955.8101806641 - 956.0421142578 - 956.3148193359 - 956.5671386719 - 956.7604980469 - 957.0338134766 - 957.3056030273 - 957.4996337891 - 957.7654418945 - 958.0179443359 - 958.2488403320 - 958.4815063477 - 958.7438354492 - 958.9487304688 - 959.2282104492 - 959.4494018555 - 959.6862792969 - 959.9391479492 - 960.1646728516 - 960.3925170898 - 960.6669311523 - 960.8577270508 - 961.1195068359 - 961.3714599609 - 961.5713500977 - 961.8109130859 - 962.0745239258 - 962.2823486328 - 962.5174560547 - 962.7805175781 - 962.9663085938 - 963.2357788086 - 963.4400024414 - 963.7070312500 - 963.8974609375 - 964.1600952148 - 964.3787841797 - 964.6201782227 - 964.8123168945 - 965.0697631836 - 965.3173217773 - 965.5060424805 - 965.7523803711 - 965.9822387695 - 966.2254638672 - 966.4123535156 - 966.6535034180 - 966.8909912109 - 967.1117553711 - 967.3272705078 - 967.5560913086 - 967.7855224609 - 968.0178833008 - 968.2125854492 - 968.4470214844 - 968.6782226562 - 968.8850708008 - 969.1226196289 - 969.3341064453 - 969.5356445312 - 969.8126220703 - 969.9582519531 - 970.2169799805 - 970.4259643555 - 970.6737060547 - 970.8283691406 - 971.1089477539 - 971.2913818359 - 971.5093994141 - 971.7305297852 - 971.9351196289 - 972.1818237305 - 972.3603515625 - 972.5815429688 - 972.8371582031 - 972.9945678711 - 973.2196044922 - 973.4587402344 - 973.6416015625 - 973.8592529297 - 974.0736694336 - 974.2924804688 - 974.5021362305 - 974.6925048828 - 974.9196777344 - 975.1436157227 - 975.3121337891 - 975.5405273438 - 975.7455444336 - 975.9486694336 - 976.1739501953 - 976.3496704102 - 976.5789794922 - 976.7735595703 - 976.9785766602 - 977.1801757812 - 977.3722534180 - 977.6111450195 - 977.7890014648 - 977.9889526367 - 978.2077636719 - 978.3932495117 - 978.6004028320 - 978.7970581055 - 978.9934082031 - 979.2026977539 - 979.4136962891 - 979.5846557617 - 979.8015747070 - 980.0062866211 - 980.1883544922 - 980.4141235352 - 980.5670776367 - 980.7979736328 - 981.0092163086 - 981.1553344727 - 981.3578491211 - 981.5909423828 - 981.7534179688 - 981.9473876953 - 982.1520385742 - 982.3466796875 - 982.5360107422 - 982.7225952148 - 982.9035644531 - 983.1069335938 - 983.3057861328 - 983.4793090820 - 983.6697998047 - 983.8702392578 - 984.0383300781 - 984.2490844727 - 984.4110107422 - 984.6192016602 - 984.8070068359 - 984.9927368164 - 985.1618652344 - 985.3671264648 - 985.5694580078 - 985.7119140625 - 985.9214477539 - 986.1325683594 - 986.2521972656 - 986.5030517578 - 986.6440429688 - 986.8452758789 - 987.0244750977 - 987.1996459961 - 987.3983764648 - 987.5667114258 - 987.7402954102 - 987.9254760742 - 988.1169433594 - 988.2622070312 - 988.4506835938 - 988.6530151367 - 988.7985839844 - 988.9710693359 - 989.1531982422 - 989.3455810547 - 989.4814453125 - 989.6918945312 - 989.8160400391 - 990.0398559570 - 990.2042846680 - 990.3505249023 - 990.5389404297 - 990.7337646484 - 990.8928833008 - 991.0529174805 - 991.2546997070 - 991.4259033203 - 991.6143798828 - 991.7659912109 - 991.9534301758 - 992.1657104492 - 992.3273315430 - 992.5278930664 - 992.6779174805 - 992.9064331055 - 993.1040039062 - 993.2200317383 - 993.4455566406 - 993.6683959961 - 993.8020019531 - 993.9935913086 - 994.1915893555 - 994.3640136719 - 994.5537109375 - 994.7256469727 - 994.8967895508 - 995.0423583984 - 995.2805786133 - 995.4497070312 - 995.4361572266 - 995.2098388672 - 995.2192993164 - 995.3447265625 - 995.5239257812 - 995.7263793945 - 995.8300781250 - 995.9473266602 - 996.1259765625 - 996.3114013672 - 996.4202880859 - 996.5402832031 - 996.7314453125 - 996.8839111328 - 997.0021362305 - 997.1488647461 - 997.3029174805 - 997.4613037109 - 997.5910034180 - 997.7324829102 - 997.8706665039 - 998.0481567383 - 998.1581420898 - 998.3088378906 - 998.4492187500 - 998.6137695312 - 998.7185668945 - 998.8942260742 - 999.0122680664 - 999.1525268555 - 999.3252563477 - 999.4166870117 - 999.5939331055 - 999.7139892578 - 999.8593750000 - 1000.0009155273 - 1000.1344604492 - 1000.2627563477 - 1000.4151611328 - 1000.5576171875 - 1000.6738891602 - 1000.8045043945 - 1000.9792480469 - 1001.0834960938 - 1001.2186279297 - 1001.3566894531 - 1001.5052490234 - 1001.6265258789 - 1001.7584228516 - 1001.8905639648 - 1002.0338134766 - 1002.1622314453 - 1002.2963867188 - 1002.4090576172 - 1002.5621948242 - 1002.7037963867 - 1002.8026123047 - 1002.9414062500 - 1003.0848999023 - 1003.2193603516 - 1003.3320312500 - 1003.4364624023 - 1003.6315307617 - 1003.7106933594 - 1003.8407592773 - 1003.9759521484 - 1004.1113281250 - 1004.2298583984 - 1004.3556518555 - 1004.4690551758 - 1004.6155395508 - 1004.7435302734 - 1004.8397216797 - 1004.9807739258 - 1005.1119384766 - 1005.2254028320 - 1005.3569946289 - 1005.4569702148 - 1005.5995483398 - 1005.7377319336 - 1005.8195190430 - 1005.9533691406 - 1006.0888061523 - 1006.2167358398 - 1006.2986450195 - 1006.4359741211 - 1006.5757446289 - 1006.6820678711 - 1006.7763671875 - 1006.9193725586 - 1007.0433959961 - 1007.1457519531 - 1007.2569580078 - 1007.3867797852 - 1007.4974975586 - 1007.6311645508 - 1007.7018432617 - 1007.8500366211 - 1007.9846801758 - 1008.0446777344 - 1008.1892089844 - 1008.3126831055 - 1008.4016113281 - 1008.5323486328 - 1008.6261596680 - 1008.7548217773 - 1008.8644409180 - 1008.9635009766 - 1009.0814208984 - 1009.1912841797 - 1009.3125000000 - 1009.3920898438 - 1009.5233764648 - 1009.6430664062 - 1009.7097778320 - 1009.8643798828 - 1009.9428710938 - 1010.0502929688 - 1010.1810302734 - 1010.2550659180 - 1010.3834228516 - 1010.4799194336 - 1010.5821533203 - 1010.7026367188 - 1010.7824707031 - 1010.8925170898 - 1011.0310668945 - 1011.0770263672 - 1011.2089233398 - 1011.3262939453 - 1011.4011230469 - 1011.5083618164 - 1011.6181640625 - 1011.7146606445 - 1011.8106079102 - 1011.9183959961 - 1012.0053100586 - 1012.1161499023 - 1012.2182006836 - 1012.2943115234 - 1012.4105224609 - 1012.5129394531 - 1012.5860595703 - 1012.7081298828 - 1012.7849731445 - 1012.8875122070 - 1012.9967041016 - 1013.0648803711 - 1013.1694335938 - 1013.2905883789 - 1013.3353881836 - 1013.4620971680 - 1013.5624389648 - 1013.6137695312 - 1013.7502441406 - 1013.8209838867 - 1013.9081420898 - 1014.0061035156 - 1014.1051635742 - 1014.1736450195 - 1014.2820434570 - 1014.3575439453 - 1014.4628906250 - 1014.5311889648 - 1014.6372070312 - 1014.7062988281 - 1014.8222656250 - 1014.8771972656 - 1014.9763793945 - 1015.0806884766 - 1015.1286621094 - 1015.2489013672 - 1015.3163452148 - 1015.3922119141 - 1015.5052490234 - 1015.5561523438 - 1015.6638183594 - 1015.7280273438 - 1015.8270874023 - 1015.8951416016 - 1015.9884033203 - 1016.0567016602 - 1016.1518554688 - 1016.2212524414 - 1016.3111572266 - 1016.3687133789 - 1016.4805908203 - 1016.5465087891 - 1016.5876464844 - 1016.7355957031 - 1016.7600708008 - 1016.8468627930 - 1016.9347534180 - 1017.0130615234 - 1017.0632934570 - 1017.1765136719 - 1017.2182617188 - 1017.3123779297 - 1017.3857421875 - 1017.4375610352 - 1017.5461425781 - 1017.5946044922 - 1017.6682128906 - 1017.7507934570 - 1017.8171997070 - 1017.8897705078 - 1017.9486083984 - 1018.0462646484 - 1018.0905761719 - 1018.1736450195 - 1018.2386474609 - 1018.3080444336 - 1018.3793945312 - 1018.4432983398 - 1018.5109863281 - 1018.5828857422 - 1018.6412963867 - 1018.7280883789 - 1018.7562255859 - 1018.8608398438 - 1018.9096069336 - 1018.9657592773 - 1019.0425415039 - 1019.1057128906 - 1019.1641845703 - 1019.2340087891 - 1019.2827148438 - 1019.3632812500 - 1019.4165649414 - 1019.4764404297 - 1019.5316772461 - 1019.6105346680 - 1019.6595458984 - 1019.7064819336 - 1019.7911376953 - 1019.8391113281 - 1019.8831787109 - 1019.9738769531 - 1019.9998779297 - 1020.0743408203 - 1020.1262817383 - 1020.1961669922 - 1020.2147827148 - 1020.3120117188 - 1020.3538818359 - 1020.4003906250 - 1020.4402465820 - 1020.5488281250 - 1020.5441894531 - 1020.6205444336 - 1020.6800537109 - 1020.7171020508 - 1020.7928466797 - 1020.8036499023 - 1020.9019165039 - 1020.9204101562 - 1020.9785156250 - 1021.0343627930 - 1021.0772094727 - 1021.1193847656 - 1021.1979370117 - 1021.2044067383 - 1021.2685546875 - 1021.3347167969 - 1021.3601074219 - 1021.3977050781 - 1021.4640502930 - 1021.5153198242 - 1021.5337524414 - 1021.5851440430 - 1021.6495361328 - 1021.6834716797 - 1021.7070312500 - 1021.7641601562 - 1021.8261108398 - 1021.8403930664 - 1021.8667602539 - 1021.9659423828 - 1021.9472656250 - 1022.0136718750 - 1022.0607910156 - 1022.0656738281 - 1022.1524658203 - 1022.1487426758 - 1022.2066040039 - 1022.2316894531 - 1022.2954101562 - 1022.2942504883 - 1022.3511352539 - 1022.3755493164 - 1022.4418334961 - 1022.4212646484 - 1022.4839477539 - 1022.5455932617 - 1022.5246582031 - 1022.5875244141 - 1022.6107788086 - 1022.6561279297 - 1022.6716918945 - 1022.6914672852 - 1022.7473754883 - 1022.7722167969 - 1022.7709960938 - 1022.8308715820 - 1022.8508300781 - 1022.8698730469 - 1022.8959960938 - 1022.9349975586 - 1022.9382934570 - 1022.9817504883 - 1023.0118408203 - 1022.9945678711 - 1023.0645751953 - 1023.0718383789 - 1023.0765380859 - 1023.1151123047 - 1023.1290893555 - 1023.1570434570 - 1023.1644287109 - 1023.1906127930 - 1023.1965942383 - 1023.2479858398 - 1023.2261352539 - 1023.2465820312 - 1023.2908325195 - 1023.2859497070 - 1023.2910156250 - 1023.3157348633 - 1023.3392944336 - 1023.3351440430 - 1023.3493041992 - 1023.3573608398 - 1023.3859252930 - 1023.3755493164 - 1023.3879394531 - 1023.3982543945 - 1023.4189453125 - 1023.3983154297 - 1023.4245605469 - 1023.4232177734 - 1023.4285888672 - 1023.4300537109 - 1023.4354858398 - 1023.4281616211 - 1023.4544067383 - 1023.4179077148 - 1023.4370727539 - 1023.4606323242 - 1023.3978271484 - 1023.4423217773 - 1023.4401855469 - 1023.4019165039 - 1023.4179077148 - 1023.4116821289 - 1023.4119873047 - 1023.3634643555 - 1023.4110107422 - 1023.3568115234 - 1023.3663940430 - 1023.3446044922 - 1023.3405151367 - 1023.3061523438 - 1023.3269042969 - 1023.2746582031 - 1023.2682495117 - 1023.2607421875 - 1023.2390747070 - 1023.1896972656 - 1023.2156982422 - 1023.1509399414 - 1023.1536254883 - 1023.1179809570 - 1023.0802001953 - 1023.0768432617 - 1023.0398559570 - 1022.9884033203 - 1022.9890136719 - 1022.9362792969 - 1022.9149780273 - 1022.8612670898 - 1022.8364257812 - 1022.8106689453 - 1022.7492675781 - 1022.7210083008 - 1022.6747436523 - 1022.6450195312 - 1022.5820312500 - 1022.5393676758 - 1022.4979858398 - 1022.4641113281 - 1022.3709716797 - 1022.3518066406 - 1022.3097534180 - 1022.2187500000 - 1022.1751098633 - 1022.1423950195 - 1022.0417480469 - 1022.0049438477 - 1021.9391479492 - 1021.8662109375 - 1021.8132324219 - 1021.7260131836 - 1021.6738891602 - 1021.5989990234 - 1021.5083007812 - 1021.4578857422 - 1021.3663330078 - 1021.2815551758 - 1021.2089233398 - 1021.1461181641 - 1021.0160522461 - 1020.9567871094 - 1020.8903808594 - 1020.7607421875 - 1020.6637573242 - 1020.6215209961 - 1020.4794921875 - 1020.3839721680 - 1020.2984619141 - 1020.1910400391 - 1020.0985107422 - 1019.9501953125 - 1019.8831787109 - 1019.7655639648 - 1019.6363525391 - 1019.5173950195 - 1019.4238281250 - 1019.2936401367 - 1019.1580200195 - 1019.0408325195 - 1018.9146118164 - 1018.7937011719 - 1018.6398315430 - 1018.5178222656 - 1018.3902587891 - 1018.2352905273 - 1018.1136474609 - 1017.9389038086 - 1017.8335571289 - 1017.6552734375 - 1017.5165405273 - 1017.3500366211 - 1017.2274780273 - 1017.0231933594 - 1016.9089355469 - 1016.7113647461 - 1016.5602416992 - 1016.3996582031 - 1016.2210083008 - 1016.0399169922 - 1015.8707885742 - 1015.7080688477 - 1015.5198364258 - 1015.3007812500 - 1015.1895141602 - 1014.9440917969 - 1014.7815551758 - 1014.5628662109 - 1014.4074096680 - 1014.1837158203 - 1013.9871215820 - 1013.7844238281 - 1013.5952148438 - 1013.3738403320 - 1013.1649169922 - 1012.9580688477 - 1012.7486572266 - 1012.5390625000 - 1012.3010253906 - 1012.1066894531 - 1011.8718872070 - 1011.6456909180 - 1011.4256591797 - 1011.1809082031 - 1010.9849853516 - 1010.7265014648 - 1010.4971923828 - 1010.2703247070 - 1010.0300292969 - 1009.7813720703 - 1009.5576782227 - 1009.3026733398 - 1009.0531005859 - 1008.8303222656 - 1008.5504760742 - 1008.3182983398 - 1008.0813598633 - 1007.8035278320 - 1007.5654296875 - 1007.3060302734 - 1007.0479125977 - 1006.7954711914 - 1006.5302734375 - 1006.2673950195 - 1006.0334472656 - 1005.7500610352 - 1005.4809570312 - 1005.2429809570 - 1004.9643554688 - 1004.6972656250 - 1004.4375610352 - 1004.1777343750 - 1003.8833618164 - 1003.6591186523 - 1003.3558349609 - 1003.1237792969 - 1002.8162231445 - 1002.5714111328 - 1002.3209228516 - 1002.0072021484 - 1001.7670898438 - 1001.5263061523 - 1001.2124023438 - 1000.9650878906 - 1000.7026977539 - 1000.4446411133 - 1000.1473999023 - 999.9126586914 - 999.6580810547 - 999.3486328125 - 999.1308593750 - 998.8398437500 - 998.6118774414 - 998.3118286133 - 998.0745239258 - 997.8473510742 - 997.5308227539 - 997.3142089844 - 997.0524291992 - 996.8165283203 - 996.5206298828 - 996.3143920898 - 996.0578002930 - 995.8090820312 - 995.5545043945 - 995.3385620117 - 995.0659179688 - 994.8658447266 - 994.5727539062 - 994.3840332031 - 994.1435546875 - 993.8938598633 - 993.6771850586 - 993.4666137695 - 993.2151489258 - 993.0126953125 - 992.7734375000 - 992.5758666992 - 992.3489990234 - 992.1457519531 - 991.9123535156 - 991.7307128906 - 991.5275878906 - 991.2942504883 - 991.1252441406 - 990.9053344727 - 990.7310791016 - 990.5004272461 - 990.3383178711 - 990.1623535156 - 989.9451904297 - 989.7706298828 - 989.6181030273 - 989.4170532227 - 989.2217407227 - 989.0980834961 - 988.8961791992 - 988.7352905273 - 988.5592041016 - 988.4425659180 - 988.2178344727 - 988.1241455078 - 987.9212646484 - 987.8007202148 - 987.6524658203 - 987.4889526367 - 987.3461303711 - 987.2304687500 - 987.0774536133 - 986.9217529297 - 986.8099365234 - 986.6905517578 - 986.5397338867 - 986.4172363281 - 986.3024902344 - 986.1854248047 - 986.0603027344 - 985.9413452148 - 985.8193969727 - 985.7579345703 - 985.5930175781 - 985.5020141602 - 985.4176025391 - 985.3009643555 - 985.1950683594 - 985.1130981445 - 985.0222778320 - 984.9028930664 - 984.8550415039 - 984.7293090820 - 984.6564331055 - 984.5812988281 - 984.4829711914 - 984.4243774414 - 984.3074951172 - 984.2778320312 - 984.1738281250 - 984.1130981445 - 984.0241699219 - 983.9799194336 - 983.9060058594 - 983.8325195312 - 983.7479858398 - 983.7438354492 - 983.6401977539 - 983.5728759766 - 983.5440673828 - 983.4861450195 - 983.4165039062 - 983.3593139648 - 983.3333740234 - 983.2561035156 - 983.2326049805 - 983.1652832031 - 983.1223754883 - 983.0903320312 - 983.0478515625 - 982.9729614258 - 982.9704589844 - 982.9189453125 - 982.8558349609 - 982.8646240234 - 982.7617797852 - 982.8057250977 - 982.7175292969 - 982.6767578125 - 982.6818237305 - 982.6330566406 - 982.5826416016 - 982.5751953125 - 982.5373535156 - 982.5048217773 - 982.4871215820 - 982.4447631836 - 982.4354248047 - 982.3984985352 - 982.3635253906 - 982.3612670898 - 982.3109741211 - 982.3113403320 - 982.2802124023 - 982.2395629883 - 982.2378540039 - 982.2102050781 - 982.1775512695 - 982.1665039062 - 982.1350097656 - 982.1416625977 - 982.0863037109 - 982.0737915039 - 982.0728149414 - 982.0401611328 - 982.0059814453 - 982.0098876953 - 981.9914550781 - 981.9419555664 - 981.9555664062 - 981.9177856445 - 981.8900756836 - 981.9096069336 - 981.8400878906 - 981.8580322266 - 981.8175048828 - 981.8279418945 - 981.7670898438 - 981.7719116211 - 981.7609252930 - 981.7131347656 - 981.7150878906 - 981.6837768555 - 981.6734619141 - 981.6565551758 - 981.6172485352 - 981.5968017578 - 981.6059570312 - 981.5538330078 - 981.5409545898 - 981.5208740234 - 981.5085449219 - 981.4729003906 - 981.4555664062 - 981.4249267578 - 981.4124755859 - 981.3771362305 - 981.3620605469 - 981.3254394531 - 981.3276367188 - 981.2684936523 - 981.2531738281 - 981.2429809570 - 981.1946411133 - 981.1712036133 - 981.1671752930 - 981.0993652344 - 981.0935668945 - 981.0691528320 - 981.0154418945 - 980.9958496094 - 980.9796142578 - 980.9154052734 - 980.9293823242 - 980.8513793945 - 980.8303833008 - 980.8249511719 - 980.7308959961 - 980.7470092773 - 980.6788330078 - 980.6685180664 - 980.6136474609 - 980.5670166016 - 980.5487670898 - 980.5166625977 - 980.4417724609 - 980.4367065430 - 980.3712158203 - 980.3456420898 - 980.2802734375 - 980.2677001953 - 980.1841430664 - 980.1806030273 - 980.1026000977 - 980.0638427734 - 980.0352172852 - 979.9567871094 - 979.9074707031 - 979.9019775391 - 979.8023071289 - 979.7526245117 - 979.7384643555 - 979.6546020508 - 979.6086425781 - 979.5407714844 - 979.4985351562 - 979.4580688477 - 979.3621826172 - 979.3286743164 - 979.2648925781 - 979.2161254883 - 979.1575317383 - 979.0745239258 - 979.0313720703 - 978.9544677734 - 978.9166870117 - 978.8322753906 - 978.7446289062 - 978.7287597656 - 978.6376342773 - 978.5437622070 - 978.5151977539 - 978.4470214844 - 978.3368530273 - 978.2818603516 - 978.2225341797 - 978.1611328125 - 978.0276489258 - 978.0075073242 - 977.9222412109 - 977.8415527344 - 977.7511596680 - 977.6818847656 - 977.5988769531 - 977.5465087891 - 977.4253540039 - 977.3606567383 - 977.2691650391 - 977.2060546875 - 977.1050415039 - 977.0208740234 - 976.9509277344 - 976.8420410156 - 976.7530517578 - 976.6840820312 - 976.5981445312 - 976.4811401367 - 976.4075927734 - 976.3087768555 - 976.2069091797 - 976.1285400391 - 976.0311279297 - 975.9306640625 - 975.8198242188 - 975.7369384766 - 975.6356201172 - 975.5628662109 - 975.3982543945 - 975.3399047852 - 975.2454833984 - 975.1154785156 - 975.0159301758 - 974.9274902344 - 974.8129882812 - 974.6696777344 - 974.6235961914 - 974.4953613281 - 974.3698730469 - 974.2767333984 - 974.1607055664 - 974.0192260742 - 973.9558715820 - 973.8275756836 - 973.6876831055 - 973.5939331055 - 973.4794921875 - 973.3387451172 - 973.2449340820 - 973.1239624023 - 972.9990844727 - 972.8768920898 - 972.7440185547 - 972.6286010742 - 972.5266113281 - 972.3704833984 - 972.2598876953 - 972.1260986328 - 971.9857788086 - 971.8953857422 - 971.7402343750 - 971.6317138672 - 971.4754638672 - 971.3563232422 - 971.2200927734 - 971.0806274414 - 970.9747314453 - 970.8289794922 - 970.6734008789 - 970.5340576172 - 970.4302368164 - 970.2548217773 - 970.1489868164 - 970.0077514648 - 969.8484497070 - 969.7217407227 - 969.5620117188 - 969.4169921875 - 969.2983398438 - 969.1401977539 - 969.0036621094 - 968.8516235352 - 968.7072143555 - 968.5382690430 - 968.4174194336 - 968.2511596680 - 968.1013183594 - 967.9736328125 - 967.7812500000 - 967.6467285156 - 967.4860229492 - 967.3436889648 - 967.1819458008 - 967.0480957031 - 966.8406982422 - 966.7140502930 - 966.5479736328 - 966.3992919922 - 966.2268066406 - 966.0773315430 - 965.9197998047 - 965.7498168945 - 965.5635986328 - 965.4155273438 - 965.2738647461 - 965.0821533203 - 964.9329223633 - 964.7548828125 - 964.6185913086 - 964.4044799805 - 964.2465820312 - 964.0723876953 - 963.9260253906 - 963.7368164062 - 963.5668945312 - 963.3980102539 - 963.2435913086 - 963.0328979492 - 962.8627319336 - 962.6870117188 - 962.5242919922 - 962.3438110352 - 962.1696166992 - 961.9565429688 - 961.8380126953 - 961.5924072266 - 961.4273681641 - 961.2544555664 - 961.1026611328 - 960.8660278320 - 960.7126464844 - 960.5220947266 - 960.3232421875 - 960.1333618164 - 959.9557495117 - 959.7927856445 - 959.5686645508 - 959.3912353516 - 959.2399902344 - 959.0092773438 - 958.7930908203 - 958.6543579102 - 958.4251098633 - 958.2298583984 - 958.0601196289 - 957.8617553711 - 957.6633300781 - 957.4712524414 - 957.2726440430 - 957.0897827148 - 956.8621826172 - 956.6722412109 - 956.4609985352 - 956.2667236328 - 956.1026000977 - 955.8500976562 - 955.6668090820 - 955.4722900391 - 955.2454223633 - 955.0447387695 - 954.8300170898 - 954.6652221680 - 954.4332275391 - 954.2243652344 - 954.0290527344 - 953.8076171875 - 953.5843505859 - 953.4002685547 - 953.1534423828 - 952.9787597656 - 952.7786254883 - 952.5272216797 - 952.3441772461 - 952.1301879883 - 951.9223632812 - 951.7041625977 - 951.4745483398 - 951.2876586914 - 951.0796508789 - 950.7992553711 - 950.6184082031 - 950.3918457031 - 950.1792602539 - 949.9571533203 - 949.7310791016 - 949.5307617188 - 949.3004760742 - 949.0620117188 - 948.8316650391 - 948.6132812500 - 948.4019165039 - 948.1837158203 - 947.9162597656 - 947.7280883789 - 947.4724121094 - 947.2482910156 - 947.0239868164 - 946.8111572266 - 946.5541992188 - 946.3727416992 - 946.0977783203 - 945.8906860352 - 945.6748657227 - 945.4223632812 - 945.1972656250 - 944.9884033203 - 944.7070922852 - 944.5383911133 - 944.2645263672 - 944.0318603516 - 943.8154296875 - 943.5723266602 - 943.3460083008 - 943.0884399414 - 942.8719482422 - 942.6035156250 - 942.3844604492 - 942.1113891602 - 941.8795166016 - 941.6646118164 - 941.3645629883 - 941.1449584961 - 940.8830566406 - 940.6548461914 - 940.3793334961 - 940.1475830078 - 939.8734741211 - 939.6378173828 - 939.4277343750 - 939.1392822266 - 938.8894042969 - 938.6892089844 - 938.4277954102 - 938.1709594727 - 937.9607543945 - 937.7219238281 - 937.5104370117 - 937.2246093750 - 937.0433349609 - 936.8161010742 - 936.6162719727 - 936.4028320312 - 936.1588134766 - 935.9874267578 - 935.7836914062 - 935.5321655273 - 935.3231201172 - 935.1689453125 - 934.9058837891 - 934.7307128906 - 934.4761962891 - 934.2607421875 - 934.0917968750 - 933.8523559570 - 933.5591430664 - 933.3135375977 - 933.2174682617 - 932.9330444336 - 932.3524780273 - 931.1085205078 - 930.5274047852 - 930.1978149414 - 929.9895629883 - 929.7820434570 - 929.4011840820 - 929.0727539062 - 928.8469848633 - 928.6079101562 - 928.2349853516 - 927.9425048828 - 927.6970214844 - 927.4265747070 - 927.0712280273 - 926.8192138672 - 926.5161743164 - 926.2418212891 - 925.9465942383 - 925.6287841797 - 925.3576049805 - 925.0739135742 - 924.7739868164 - 924.4630737305 - 924.1882324219 - 923.8991699219 - 923.5895996094 - 923.3103637695 - 922.9997558594 - 922.7072143555 - 922.4464721680 - 922.0910034180 - 921.8472290039 - 921.5144653320 - 921.2547607422 - 920.9204101562 - 920.6528930664 - 920.3319702148 - 920.0511474609 - 919.7533569336 - 919.4476928711 - 919.1333618164 - 918.8719482422 - 918.5494384766 - 918.2451782227 - 917.9493408203 - 917.6596679688 - 917.3544311523 - 917.0476074219 - 916.7393188477 - 916.4601440430 - 916.1441040039 - 915.8477783203 - 915.5316772461 - 915.2329101562 - 914.9651489258 - 914.6119384766 - 914.3226318359 - 914.0263671875 - 913.7453002930 - 913.3968505859 - 913.0899047852 - 912.8383789062 - 912.4934082031 - 912.1782836914 - 911.8931884766 - 911.5769653320 - 911.2879028320 - 910.9541015625 - 910.6425781250 - 910.3710327148 - 910.0437011719 - 909.7133178711 - 909.4286499023 - 909.1201171875 - 908.8039550781 - 908.4919433594 - 908.1689453125 - 907.8915405273 - 907.5580444336 - 907.2392578125 - 906.9385986328 - 906.6270141602 - 906.3258056641 - 905.9809570312 - 905.6846313477 - 905.3892822266 - 905.0553588867 - 904.7315673828 - 904.4322509766 - 904.1328735352 - 903.7869262695 - 903.4763183594 - 903.1835937500 - 902.8469238281 - 902.5349121094 - 902.2170410156 - 901.8931274414 - 901.6094360352 - 901.2355957031 - 900.9533081055 - 900.6446533203 - 900.2871093750 - 899.9995727539 - 899.6671752930 - 899.3462524414 - 899.0280761719 - 898.7097778320 - 898.3831787109 - 898.0569458008 - 897.7559204102 - 897.4091796875 - 897.0938720703 - 896.7813720703 - 896.4445190430 - 896.1302490234 - 895.7953491211 - 895.4786987305 - 895.1610107422 - 894.8225097656 - 894.4932250977 - 894.1903076172 - 893.8388671875 - 893.5315551758 - 893.1847534180 - 892.8684692383 - 892.5573120117 - 892.1969604492 - 891.8696289062 - 891.5915527344 - 891.1950073242 - 890.9008789062 - 890.5739135742 - 890.2255249023 - 889.9085083008 - 889.5760498047 - 889.2379150391 - 888.9058837891 - 888.5979614258 - 888.2191772461 - 887.9258422852 - 887.5858764648 - 887.2246704102 - 886.9320678711 - 886.5657958984 - 886.2354736328 - 885.9273681641 - 885.5492553711 - 885.2420043945 - 884.9098510742 - 884.5418090820 - 884.2396240234 - 883.8938598633 - 883.5323486328 - 883.2239990234 - 882.8789062500 - 882.5257568359 - 882.1915893555 - 881.8657226562 - 881.5126953125 - 881.1697998047 - 880.8311767578 - 880.5040893555 - 880.1452636719 - 879.8056030273 - 879.4652709961 - 879.1416015625 - 878.7657470703 - 878.4344482422 - 878.1182861328 - 877.7282104492 - 877.4086303711 - 877.0764770508 - 876.6944580078 - 876.3778686523 - 876.0265502930 - 875.6812133789 - 875.3060302734 - 875.0147094727 - 874.6144409180 - 874.2940673828 - 873.9382324219 - 873.5890502930 - 873.2490234375 - 872.8836059570 - 872.5391845703 - 872.2005615234 - 871.8504638672 - 871.4535522461 - 871.1748657227 - 870.7738037109 - 870.4281616211 - 870.0781250000 - 869.7434692383 - 869.3638305664 - 869.0208740234 - 868.6715698242 - 868.3098754883 - 867.9686889648 - 867.5770263672 - 867.2675781250 - 866.8899536133 - 866.5223388672 - 866.1775512695 - 865.8293457031 - 865.4559326172 - 865.0950317383 - 864.7567749023 - 864.3815307617 - 864.0296630859 - 863.6662597656 - 863.3005981445 - 862.9588012695 - 862.5836181641 - 862.2084350586 - 861.8866577148 - 861.4791259766 - 861.1602783203 - 860.7515258789 - 860.4306640625 - 860.0376586914 - 859.6871948242 - 859.3184814453 - 858.9556274414 - 858.5871582031 - 858.2349243164 - 857.8406982422 - 857.5000610352 - 857.1264648438 - 856.7546997070 - 856.3812866211 - 856.0268554688 - 855.6598510742 - 855.2628173828 - 854.9302978516 - 854.5406494141 - 854.1590576172 - 853.8306274414 - 853.4058227539 - 853.0726928711 - 852.6900634766 - 852.3221435547 - 851.9190673828 - 851.5932006836 - 851.1966552734 - 850.8104858398 - 850.4419555664 - 850.0998535156 - 849.6760864258 - 849.3226928711 - 848.9531860352 - 848.5646362305 - 848.2008056641 - 847.7949218750 - 847.4590454102 - 847.0496826172 - 846.6795654297 - 846.3003540039 - 845.9245605469 - 845.5349731445 - 845.1709594727 - 844.7667236328 - 844.4039916992 - 844.0130615234 - 843.6428833008 - 843.2320556641 - 842.8786621094 - 842.4842529297 - 842.1020507812 - 841.6989746094 - 841.3417968750 - 840.9549560547 - 840.5392456055 - 840.1757812500 - 839.7948608398 - 839.3997192383 - 838.9826660156 - 838.6543579102 - 838.2103881836 - 837.8502807617 - 837.4566650391 - 837.0454101562 - 836.6900634766 - 836.2726440430 - 835.8854980469 - 835.4902343750 - 835.1290893555 - 834.6787109375 - 834.3354492188 - 833.9078369141 - 833.5482788086 - 833.1090087891 - 832.7298583984 - 832.3739624023 - 831.9088745117 - 831.5513916016 - 831.1586914062 - 830.7426757812 - 830.3508911133 - 829.9410400391 - 829.5632934570 - 829.1463623047 - 828.7402954102 - 828.3502197266 - 827.9459838867 - 827.5398559570 - 827.1318969727 - 826.7280883789 - 826.3387451172 - 825.9107666016 - 825.5252075195 - 825.0963745117 - 824.7143554688 - 824.2893066406 - 823.8861694336 - 823.4774780273 - 823.0625000000 - 822.6643066406 - 822.2459106445 - 821.8245849609 - 821.4226074219 - 821.0266113281 - 820.5827636719 - 820.1683959961 - 819.7892456055 - 819.3450927734 - 818.9265136719 - 818.5140380859 - 818.1134643555 - 817.6764526367 - 817.2558593750 - 816.8366699219 - 816.4401245117 - 815.9807128906 - 815.5908813477 - 815.1325683594 - 814.7619018555 - 814.2844848633 - 813.8870239258 - 813.4460449219 - 813.0458984375 - 812.5828857422 - 812.1758422852 - 811.7356567383 - 811.3280029297 - 810.8598632812 - 810.4503173828 - 810.0336914062 - 809.5556030273 - 809.1505737305 - 808.7261962891 - 808.2547607422 - 807.8392944336 - 807.3981933594 - 806.9661865234 - 806.4956054688 - 806.0904541016 - 805.6285400391 - 805.1845092773 - 804.7403564453 - 804.3123168945 - 803.8221435547 - 803.4360961914 - 802.9265747070 - 802.5170288086 - 802.0395507812 - 801.6134643555 - 801.1315917969 - 800.6958618164 - 800.2273559570 - 799.7877197266 - 799.3096923828 - 798.8516235352 - 798.3996582031 - 797.9491577148 - 797.4438476562 - 797.0211181641 - 796.5315551758 - 796.0764770508 - 795.5908813477 - 795.1253051758 - 794.6647949219 - 794.1812133789 - 793.7104492188 - 793.2149658203 - 792.7767333984 - 792.2617797852 - 791.7862548828 - 791.3101806641 - 790.8424682617 - 790.3139038086 - 789.8590698242 - 789.3699951172 - 788.8671264648 - 788.3615722656 - 787.9066162109 - 787.3689575195 - 786.8793945312 - 786.4067993164 - 785.8684692383 - 785.3933105469 - 784.8595581055 - 784.3859863281 - 783.8518676758 - 783.3319091797 - 782.8487548828 - 782.3242797852 - 781.7687988281 - 781.2998046875 - 780.7769775391 - 780.1983642578 - 779.7201538086 - 779.2078857422 - 778.6272583008 - 778.1005859375 - 777.6237792969 - 777.0184326172 - 776.5117797852 - 775.9645996094 - 775.4209594727 - 774.8939819336 - 774.3025512695 - 773.7789916992 - 773.2352294922 - 772.6704101562 - 772.0777587891 - 771.5790405273 - 770.9791870117 - 770.4160156250 - 769.8411254883 - 769.2755737305 - 768.7208251953 - 768.1069946289 - 767.5520019531 - 766.9671630859 - 766.3876953125 - 765.7961425781 - 765.1940307617 - 764.6329345703 - 764.0114135742 - 763.4266357422 - 762.8115844727 - 762.2439575195 - 761.5828857422 - 761.0401611328 - 760.3699951172 - 759.7876586914 - 759.1733398438 - 758.5501708984 - 757.9032592773 - 757.2991943359 - 756.6939697266 - 756.0200195312 - 755.3981933594 - 754.8021850586 - 754.1192626953 - 753.4989624023 - 752.8389892578 - 752.2183837891 - 751.5460815430 - 750.9055786133 - 750.2384643555 - 749.5942993164 - 748.9340820312 - 748.2454833984 - 747.6130371094 - 746.9323730469 - 746.2623901367 - 745.5958251953 - 744.9195556641 - 744.2398071289 - 743.5540161133 - 742.8890380859 - 742.1663208008 - 741.5344238281 - 740.8175659180 - 740.1115722656 - 739.4570922852 - 738.7379760742 - 738.0407104492 - 737.3547973633 - 736.6478271484 - 735.9373168945 - 735.2453002930 - 734.5255126953 - 733.8244628906 - 733.1243286133 - 732.4071044922 - 731.6849975586 - 730.9842529297 - 730.2630615234 - 729.5458374023 - 728.8192749023 - 728.1082763672 - 727.4169311523 - 726.6519165039 - 725.9486694336 - 725.2426757812 - 724.5024414062 - 723.7816162109 - 723.0515136719 - 722.3527832031 - 721.5899047852 - 720.8843994141 - 720.1713256836 - 719.4391479492 - 718.6868286133 - 717.9967041016 - 717.2523803711 - 716.5344238281 - 715.7835693359 - 715.1177368164 - 714.3505249023 - 713.6179199219 - 712.9287719727 - 712.2011108398 - 711.4421386719 - 710.7810668945 - 710.0311889648 - 709.3069458008 - 708.6064453125 - 707.8734741211 - 707.1931152344 - 706.4397583008 - 705.7485351562 - 705.0729370117 - 704.3018798828 - 703.6423339844 - 702.9234619141 - 702.2361450195 - 701.5152587891 - 700.8339233398 - 700.1369018555 - 699.4524536133 - 698.7510986328 - 698.0765991211 - 697.3694458008 - 696.7296142578 - 695.9894409180 - 695.3516235352 - 694.6818237305 - 693.9946899414 - 693.3152465820 - 692.6987915039 - 691.9824218750 - 691.3519287109 - 690.6894531250 - 690.0312500000 - 689.3941040039 - 688.7454833984 - 688.0835571289 - 687.4685668945 - 686.8352661133 - 686.1741333008 - 685.5747070312 - 684.9313354492 - 684.3250732422 - 683.6771240234 - 683.0803222656 - 682.4817504883 - 681.8585815430 - 681.2384033203 - 680.6778564453 - 680.0657958984 - 679.4373779297 - 678.8956298828 - 678.2904052734 - 677.7048339844 - 677.1160888672 - 676.5820312500 - 675.9564208984 - 675.4421997070 - 674.8264160156 - 674.3119506836 - 673.7421875000 - 673.1732177734 - 672.6390380859 - 672.1054687500 - 671.5413208008 - 671.0089111328 - 670.4824829102 - 669.9481811523 - 669.4208984375 - 668.9039916992 - 668.3593139648 - 667.8778686523 - 667.3605346680 - 666.8128051758 - 666.3406372070 - 665.8577270508 - 665.3116455078 - 664.8349609375 - 664.3587036133 - 663.8591918945 - 663.3613281250 - 662.8938598633 - 662.4177246094 - 661.9296264648 - 661.4765625000 - 660.9747314453 - 660.5395507812 - 660.0742797852 - 659.5809936523 - 659.1625366211 - 658.6915283203 - 658.2337646484 - 657.7908935547 - 657.3596191406 - 656.8833007812 - 656.4679565430 - 656.0319824219 - 655.5834960938 - 655.1405639648 - 654.7470703125 - 654.2953491211 - 653.8582763672 - 653.4674072266 - 653.0192871094 - 652.6210327148 - 652.1910400391 - 651.7772827148 - 651.3772583008 - 650.9727783203 - 650.5416870117 - 650.1590576172 - 649.7447509766 - 649.3656005859 - 648.9277954102 - 648.5615234375 - 648.1634521484 - 647.7533569336 - 647.3897094727 - 646.9506225586 - 646.6373901367 - 646.1977539062 - 645.8001708984 - 645.4757690430 - 645.0433959961 - 644.6770019531 - 644.3125000000 - 643.9140625000 - 643.5457763672 - 643.1875000000 - 642.7957763672 - 642.4291992188 - 642.0541381836 - 641.6976318359 - 641.3194580078 - 640.9331665039 - 640.6101074219 - 640.2290649414 - 639.8353881836 - 639.4978027344 - 639.1532592773 - 638.7565307617 - 638.4082031250 - 638.0421752930 - 637.7334594727 - 637.2993774414 - 636.9745483398 - 636.6425170898 - 636.2539062500 - 635.9041137695 - 635.5519409180 - 635.2164306641 - 634.8339233398 - 634.4920654297 - 634.1437988281 - 633.7696533203 - 633.4687500000 - 633.0443725586 - 632.7553100586 - 632.3744506836 - 632.0455322266 - 631.6619262695 - 631.3385009766 - 630.9934692383 - 630.6118164062 - 630.2829589844 - 629.9396362305 - 629.5849609375 - 629.2299804688 - 628.8829956055 - 628.5264282227 - 628.2100830078 - 627.8082885742 - 627.5023193359 - 627.1328125000 - 626.8017578125 - 626.4297485352 - 626.1015014648 - 625.7367553711 - 625.3935546875 - 625.0379028320 - 624.6936645508 - 624.3468017578 - 624.0001831055 - 623.6295776367 - 623.2894897461 - 622.9479980469 - 622.5892333984 - 622.2219848633 - 621.9050292969 - 621.5263671875 - 621.1748046875 - 620.8242187500 - 620.4704589844 - 620.1143798828 - 619.7670898438 - 619.3894042969 - 619.0801391602 - 618.6887817383 - 618.3193359375 - 618.0115966797 - 617.5922851562 - 617.2785644531 - 616.8984375000 - 616.5493164062 - 616.1987915039 - 615.8071289062 - 615.4694213867 - 615.1312866211 - 614.7185058594 - 614.3925170898 - 614.0181884766 - 613.6615600586 - 613.2692260742 - 612.9450683594 - 612.5453491211 - 612.2034301758 - 611.8074951172 - 611.4747314453 - 611.0891723633 - 610.7015991211 - 610.3453369141 - 609.9984741211 - 609.5941162109 - 609.1973876953 - 608.8988647461 - 608.4659423828 - 608.1044311523 - 607.7232666016 - 607.3608398438 - 606.9832153320 - 606.5881347656 - 606.2202148438 - 605.8364257812 - 605.4757690430 - 605.0861206055 - 604.6950073242 - 604.3129882812 - 603.9324951172 - 603.5677490234 - 603.1528930664 - 602.7656250000 - 602.4096679688 - 601.9985961914 - 601.6022949219 - 601.2338256836 - 600.8518066406 - 600.4236450195 - 600.0415039062 - 599.6710205078 - 599.2788696289 - 598.8237304688 - 598.4936523438 - 598.0796508789 - 597.6729736328 - 597.2734985352 - 596.8699951172 - 596.4834594727 - 596.0893554688 - 595.6583862305 - 595.2757568359 - 594.8604125977 - 594.4588012695 - 594.0707397461 - 593.6455688477 - 593.2561645508 - 592.8173828125 - 592.4265747070 - 592.0300903320 - 591.6068115234 - 591.1878662109 - 590.7876586914 - 590.3604125977 - 589.9326782227 - 589.5597534180 - 589.1081542969 - 588.7073974609 - 588.2631835938 - 587.8652954102 - 587.4436645508 - 587.0391235352 - 586.5685424805 - 586.1782836914 - 585.7528076172 - 585.3225097656 - 584.8877563477 - 584.4790039062 - 584.0338134766 - 583.5831909180 - 583.2119140625 - 582.7564086914 - 582.3120727539 - 581.9042358398 - 581.4481201172 - 580.9990844727 - 580.6041259766 - 580.1680297852 - 579.6831054688 - 579.2870483398 - 578.8435058594 - 578.3772583008 - 577.9610595703 - 577.5244750977 - 577.0781250000 - 576.6154174805 - 576.1738891602 - 575.7459106445 - 575.3000488281 - 574.8347167969 - 574.3872070312 - 573.9575805664 - 573.4642333984 - 573.0552978516 - 572.6057739258 - 572.1509399414 - 571.6730957031 - 571.2297973633 - 570.7730102539 - 570.3257446289 - 569.8746948242 - 569.4040527344 - 568.9552001953 - 568.4698486328 - 568.0261230469 - 567.5635375977 - 567.1217651367 - 566.6533203125 - 566.1674194336 - 565.7313842773 - 565.2280883789 - 564.7815551758 - 564.3201904297 - 563.8525390625 - 563.3970336914 - 562.9008178711 - 562.4534912109 - 561.9590454102 - 561.4896850586 - 561.0370483398 - 560.5455322266 - 560.0854492188 - 559.5833740234 - 559.1351318359 - 558.6146850586 - 558.1845092773 - 557.6925048828 - 557.2209472656 - 556.7073974609 - 556.2378540039 - 555.7713012695 - 555.2715454102 - 554.8081665039 - 554.3098754883 - 553.8439331055 - 553.3353881836 - 552.8487548828 - 552.3565063477 - 551.8916625977 - 551.3934326172 - 550.9178466797 - 550.4038696289 - 549.9475708008 - 549.4271850586 - 548.9293212891 - 548.4224853516 - 547.9776000977 - 547.4513549805 - 546.9596557617 - 546.4748535156 - 545.9841918945 - 545.4644165039 - 544.9656372070 - 544.4515991211 - 543.9934692383 - 543.4655761719 - 542.9895629883 - 542.4423828125 - 541.9880981445 - 541.4490966797 - 540.9356689453 - 540.4488525391 - 539.9711914062 - 539.4362792969 - 538.9119262695 - 538.4420776367 - 537.9037475586 - 537.3762817383 - 536.9062500000 - 536.3982543945 - 535.8612060547 - 535.3684692383 - 534.8704223633 - 534.3530273438 - 533.7866821289 - 533.3262329102 - 532.7898559570 - 532.2590332031 - 531.7805175781 - 531.2483520508 - 530.7255249023 - 530.2369995117 - 529.6960449219 - 529.1795654297 - 528.6607055664 - 528.1304321289 - 527.5914306641 - 527.0850830078 - 526.5993041992 - 526.0313720703 - 525.5063476562 - 525.0130615234 - 524.4484252930 - 523.9306030273 - 523.4015502930 - 522.9047241211 - 522.3599853516 - 521.8297119141 - 521.3121337891 - 520.7694091797 - 520.2145385742 - 519.7284545898 - 519.1486816406 - 518.6562500000 - 518.1342163086 - 517.5701293945 - 517.0673828125 - 516.5167846680 - 516.0158691406 - 515.4494628906 - 514.9255981445 - 514.4105834961 - 513.8652343750 - 513.2814941406 - 512.7997436523 - 512.1974487305 - 511.7140197754 - 511.1619262695 - 510.6109619141 - 510.0887145996 - 509.5497741699 - 508.9801635742 - 508.4447937012 - 507.8871765137 - 507.3666992188 - 506.8426818848 - 506.2387390137 - 505.7365112305 - 505.1630249023 - 504.6142272949 - 504.0899353027 - 503.5404052734 - 502.9634399414 - 502.4880676270 - 501.8775634766 - 501.3568420410 - 500.8121337891 - 500.2735900879 - 499.7056274414 - 499.1737670898 - 498.6056518555 - 498.0921325684 - 497.5227050781 - 496.9498291016 - 496.4382629395 - 495.8752136230 - 495.3233032227 - 494.7495422363 - 494.2352600098 - 493.6286010742 - 493.0948486328 - 492.5143432617 - 491.9695739746 - 491.4241943359 - 490.8064270020 - 490.2920227051 - 489.6971435547 - 489.1441040039 - 488.5774230957 - 488.0028686523 - 487.4460144043 - 486.8520812988 - 486.3625793457 - 485.7547912598 - 485.1786804199 - 484.6692199707 - 484.0981140137 - 483.5338439941 - 483.0021667480 - 482.4558410645 - 481.9388732910 - 481.3282470703 - 480.8649597168 - 480.2952880859 - 479.8143005371 - 479.2785339355 - 478.7533874512 - 478.2458190918 - 477.7318420410 - 477.2205505371 - 476.6712341309 - 476.1953735352 - 475.6556091309 - 475.1942443848 - 474.5822448730 - 474.0787658691 - 473.6308593750 - 473.0690002441 - 472.4429626465 - 471.9185485840 - 471.5180664062 - 470.9067077637 - 470.0112915039 - 468.2693481445 - 467.3578491211 - 466.7034301758 - 466.2022705078 - 465.6785278320 - 464.9655151367 - 464.3431701660 - 463.8011779785 - 463.2491149902 - 462.5445556641 - 461.9759826660 - 461.3896789551 - 460.8212890625 - 460.1353149414 - 459.6033935547 - 458.9638366699 - 458.3838500977 - 457.7798767090 - 457.1509704590 - 456.5812683105 - 455.9527893066 - 455.3840637207 - 454.7344970703 - 454.1700439453 - 453.5425415039 - 452.9624023438 - 452.3433532715 - 451.7312927246 - 451.1432495117 - 450.5552062988 - 449.8997192383 - 449.3525390625 - 448.7022094727 - 448.1427917480 - 447.4906921387 - 446.9297485352 - 446.2902832031 - 445.7079162598 - 445.0955810547 - 444.4974060059 - 443.8673400879 - 443.2937316895 - 442.6779174805 - 442.0644226074 - 441.4566650391 - 440.8652954102 - 440.2572021484 - 439.6438903809 - 439.0246276855 - 438.4544067383 - 437.8210144043 - 437.2210388184 - 436.6172790527 - 435.9909667969 - 435.4358215332 - 434.7729492188 - 434.1841430664 - 433.5794067383 - 433.0035095215 - 432.3339538574 - 431.7598876953 - 431.1657104492 - 430.5451965332 - 429.9178466797 - 429.3378601074 - 428.7084350586 - 428.1358947754 - 427.4779663086 - 426.8882141113 - 426.3090209961 - 425.6682128906 - 425.0532226562 - 424.4673461914 - 423.8514099121 - 423.2419433594 - 422.6206665039 - 422.0134277344 - 421.4387512207 - 420.7764282227 - 420.1899108887 - 419.5922546387 - 418.9636230469 - 418.3624572754 - 417.7428283691 - 417.1391296387 - 416.5375366211 - 415.9064025879 - 415.3057861328 - 414.6930541992 - 414.0993652344 - 413.4552307129 - 412.8565673828 - 412.2692260742 - 411.6289672852 - 411.0086059570 - 410.4369812012 - 409.7837829590 - 409.2029418945 - 408.5583801270 - 407.9695434570 - 407.3654785156 - 406.7137451172 - 406.1334838867 - 405.5198974609 - 404.8871154785 - 404.2805175781 - 403.6809082031 - 403.0545959473 - 402.4313659668 - 401.8397827148 - 401.2156677246 - 400.5936279297 - 399.9813537598 - 399.3891906738 - 398.7432556152 - 398.1389465332 - 397.5379943848 - 396.9065856934 - 396.3064270020 - 395.6605834961 - 395.0913696289 - 394.4370422363 - 393.8388061523 - 393.2141113281 - 392.6103210449 - 391.9838256836 - 391.3775939941 - 390.7291870117 - 390.1790161133 - 389.4865722656 - 388.9148559570 - 388.2971496582 - 387.6543579102 - 387.0647888184 - 386.4339294434 - 385.8211975098 - 385.1891479492 - 384.6086425781 - 383.9375305176 - 383.3655090332 - 382.7300415039 - 382.0952453613 - 381.5126953125 - 380.8660888672 - 380.2456359863 - 379.6592407227 - 378.9964599609 - 378.4143676758 - 377.7736816406 - 377.1565551758 - 376.5536499023 - 375.9175415039 - 375.2987365723 - 374.6850585938 - 374.0713195801 - 373.4376525879 - 372.8151550293 - 372.2110595703 - 371.5887145996 - 370.9474182129 - 370.3416442871 - 369.7298583984 - 369.0983886719 - 368.4651489258 - 367.8650207520 - 367.2442626953 - 366.6064453125 - 365.9851684570 - 365.3923645020 - 364.7362976074 - 364.1210937500 - 363.5260620117 - 362.8673095703 - 362.2554016113 - 361.6562194824 - 361.0158081055 - 360.3619384766 - 359.8141479492 - 359.1213989258 - 358.5274963379 - 357.9098510742 - 357.2675170898 - 356.6744079590 - 356.0096435547 - 355.4216613770 - 354.7823486328 - 354.1674804688 - 353.5145568848 - 352.9349670410 - 352.2818298340 - 351.6603393555 - 351.0336303711 - 350.4269714355 - 349.7897949219 - 349.1481933594 - 348.5614318848 - 347.9033203125 - 347.3045959473 - 346.6383666992 - 346.0586242676 - 345.4205322266 - 344.7694702148 - 344.1641540527 - 343.5517272949 - 342.9011230469 - 342.2759094238 - 341.6661987305 - 341.0359802246 - 340.4013671875 - 339.7761840820 - 339.1470947266 - 338.5407714844 - 337.8929748535 - 337.2464904785 - 336.6836242676 - 335.9866027832 - 335.4020385742 - 334.7514343262 - 334.1496276855 - 333.4839477539 - 332.8936462402 - 332.2461242676 - 331.6144409180 - 330.9996643066 - 330.3718261719 - 329.7220153809 - 329.1146545410 - 328.4812927246 - 327.8493957520 - 327.2159729004 - 326.5927429199 - 325.9716491699 - 325.3183898926 - 324.7126770020 - 324.0723266602 - 323.4315185547 - 322.8433532715 - 322.1514892578 - 321.5724182129 - 320.9244995117 - 320.2947998047 - 319.6450500488 - 319.0540771484 - 318.3954772949 - 317.7611694336 - 317.1439208984 - 316.5158691406 - 315.8704833984 - 315.2410888672 - 314.6174926758 - 313.9879760742 - 313.3435363770 - 312.7135620117 - 312.1033630371 - 311.4432373047 - 310.8219909668 - 310.1906433105 - 309.5610961914 - 308.9207763672 - 308.2854919434 - 307.6637878418 - 307.0305480957 - 306.3701171875 - 305.7783508301 - 305.1108093262 - 304.4960021973 - 303.8446655273 - 303.2397766113 - 302.5708618164 - 301.9542541504 - 301.3305969238 - 300.6683044434 - 300.0573730469 - 299.4071044922 - 298.7872314453 - 298.1262512207 - 297.5226745605 - 296.8563842773 - 296.2454528809 - 295.5923461914 - 294.9582519531 - 294.3287658691 - 293.6922912598 - 293.0397033691 - 292.4150695801 - 291.8009948730 - 291.1001281738 - 290.5299987793 - 289.8526000977 - 289.2283325195 - 288.5790405273 - 287.9435119629 - 287.3327026367 - 286.6425781250 - 286.0335693359 - 285.4117126465 - 284.7333679199 - 284.1109008789 - 283.4762573242 - 282.8359375000 - 282.1755371094 - 281.5591430664 - 280.9022216797 - 280.2647399902 - 279.6261901855 - 278.9814147949 - 278.3200683594 - 277.7264709473 - 277.0279235840 - 276.4115600586 - 275.7752380371 - 275.1153869629 - 274.4717102051 - 273.8424682617 - 273.1796264648 - 272.5420532227 - 271.8946228027 - 271.2610473633 - 270.5841064453 - 269.9671325684 - 269.3134765625 - 268.6573486328 - 268.0037231445 - 267.3814697266 - 266.7101440430 - 266.0667114258 - 265.4109191895 - 264.7786560059 - 264.1154174805 - 263.4595947266 - 262.8109741211 - 262.1793823242 - 261.4887084961 - 260.8803405762 - 260.1709899902 - 259.5863952637 - 258.8734436035 - 258.2474670410 - 257.5711059570 - 256.9573974609 - 256.2460021973 - 255.6246032715 - 254.9541778564 - 254.3090972900 - 253.6251831055 - 252.9835968018 - 252.3263549805 - 251.6528778076 - 250.9914703369 - 250.3471679688 - 249.6623840332 - 249.0075225830 - 248.3430786133 - 247.6818695068 - 247.0081939697 - 246.3389892578 - 245.6907653809 - 245.0009613037 - 244.3328857422 - 243.6916503906 - 242.9709777832 - 242.3547363281 - 241.6287078857 - 241.0077972412 - 240.2794189453 - 239.6468658447 - 238.9577941895 - 238.2626342773 - 237.6047973633 - 236.9253082275 - 236.2321472168 - 235.5593109131 - 234.8636932373 - 234.2135009766 - 233.4850616455 - 232.8274383545 - 232.1312103271 - 231.4486236572 - 230.7514801025 - 230.0612945557 - 229.3674774170 - 228.6898803711 - 227.9815063477 - 227.2686157227 - 226.6140136719 - 225.8851318359 - 225.1841888428 - 224.4935760498 - 223.7961883545 - 223.0735626221 - 222.3846588135 - 221.6619567871 - 220.9777984619 - 220.2281799316 - 219.5623626709 - 218.8170623779 - 218.0900573730 - 217.4247589111 - 216.6542968750 - 215.9639282227 - 215.2140655518 - 214.5372467041 - 213.7680664062 - 213.0425567627 - 212.3390655518 - 211.6138000488 - 210.8173370361 - 210.1571960449 - 209.3988647461 - 208.6235198975 - 207.9237823486 - 207.1829986572 - 206.4044647217 - 205.6712341309 - 204.9544830322 - 204.1443481445 - 203.4438018799 - 202.6591186523 - 201.9062957764 - 201.1655273438 - 200.3809967041 - 199.6118774414 - 198.8699645996 - 198.1052246094 - 197.2760162354 - 196.5794372559 - 195.7592620850 - 194.9935760498 - 194.1964721680 - 193.4227142334 - 192.6613006592 - 191.8280944824 - 191.0668029785 - 190.2618103027 - 189.4926452637 - 188.6556549072 - 187.8726959229 - 187.0852203369 - 186.2570800781 - 185.4565734863 - 184.6452331543 - 183.8455200195 - 182.9935913086 - 182.2295837402 - 181.3515930176 - 180.5649108887 - 179.7321166992 - 178.9080963135 - 178.0449829102 - 177.2416839600 - 176.4196777344 - 175.5233154297 - 174.7345123291 - 173.8798828125 - 173.0246887207 - 172.1726684570 - 171.3328552246 - 170.4755249023 - 169.6108093262 - 168.7621307373 - 167.8909301758 - 167.0268859863 - 166.1725616455 - 165.2708740234 - 164.4418487549 - 163.5425720215 - 162.6649169922 - 161.8175964355 - 160.9039154053 - 160.0370788574 - 159.1432495117 - 158.2754821777 - 157.3458557129 - 156.5043640137 - 155.5964355469 - 154.6738586426 - 153.8261871338 - 152.8954010010 - 152.0025939941 - 151.1039276123 - 150.2063903809 - 149.2898712158 - 148.3828277588 - 147.4865264893 - 146.5679473877 - 145.6582946777 - 144.7673797607 - 143.8176879883 - 142.9310150146 - 142.0135040283 - 141.0828552246 - 140.1638946533 - 139.2658843994 - 138.3548889160 - 137.3946685791 - 136.5140991211 - 135.5870208740 - 134.6562652588 - 133.7485809326 - 132.8038482666 - 131.9262084961 - 130.9658660889 - 130.0402679443 - 129.1696472168 - 128.2085266113 - 127.2813415527 - 126.3992004395 - 125.4276733398 - 124.5732421875 - 123.5813674927 - 122.7250366211 - 121.7974395752 - 120.8446502686 - 119.9695892334 - 119.0500488281 - 118.1057281494 - 117.2562942505 - 116.2848510742 - 115.4195251465 - 114.4884948730 - 113.5871887207 - 112.7004013062 - 111.7779312134 - 110.8866729736 - 110.0096511841 - 109.0749664307 - 108.2153091431 - 107.3078308105 - 106.4258193970 - 105.5482101440 - 104.6465835571 - 103.7729492188 - 102.9104995728 - 102.0194702148 - 101.1467895508 - 100.2741088867 - 99.4331054688 - 98.5282135010 - 97.6820373535 - 96.8442687988 - 95.9755172729 - 95.0951385498 - 94.3071899414 - 93.4100341797 - 92.5840148926 - 91.7578201294 - 90.8995971680 - 90.0897064209 - 89.2557220459 - 88.4187774658 - 87.6110839844 - 86.8000488281 - 85.9635620117 - 85.1759948730 - 84.3581314087 - 83.5661163330 - 82.7485580444 - 81.9656524658 - 81.1750869751 - 80.3916015625 - 79.5850982666 - 78.8357009888 - 78.0517578125 - 77.2566680908 - 76.5102996826 - 75.7474822998 - 74.9703369141 - 74.2203750610 - 73.4777832031 - 72.7106246948 - 71.9864349365 - 71.2106018066 - 70.5192108154 - 69.7558441162 - 69.0218200684 - 68.3180007935 - 67.5898056030 - 66.8492584229 - 66.1591491699 - 65.4479217529 - 64.7179870605 - 64.0367965698 - 63.3418273926 - 62.6062469482 - 61.9557800293 - 61.2733497620 - 60.5245475769 - 59.9083557129 - 59.2139205933 - 58.5144882202 - 57.8577957153 - 57.2009887695 - 56.5347137451 - 55.8513679504 - 55.2092781067 - 54.5560951233 - 53.9080734253 - 53.2510414124 - 52.5880889893 - 51.9904174805 - 51.3324546814 - 50.6621551514 - 50.0667533875 - 49.4590377808 - 48.7647399902 - 48.1874885559 - 47.5696792603 - 46.9259376526 - 46.3230133057 - 45.7095603943 - 45.0997390747 - 44.4937400818 - 43.8848228455 - 43.2848930359 - 42.6854667664 - 42.0999031067 - 41.4638710022 - 40.9204368591 - 40.3126411438 - 39.6939506531 - 39.1575088501 - 38.5539245605 - 37.9532432556 - 37.4075927734 - 36.7990341187 - 36.2565879822 - 35.6536216736 - 35.0934829712 - 34.5319099426 - 33.9567413330 - 33.3937034607 - 32.8153915405 - 32.2939529419 - 31.6972084045 - 31.1322250366 - 30.6231689453 - 30.0078277588 - 29.4919395447 - 28.9438247681 - 28.3593864441 - 27.8315582275 - 27.3006057739 - 26.7298660278 - 26.1869201660 - 25.6388549805 - 25.1276817322 - 24.5469436646 - 24.0072479248 - 23.5043907166 - 22.9534645081 - 22.3876037598 - 21.8693847656 - 21.3662872314 - 20.7934494019 - 20.2627944946 - 19.7324142456 - 19.2556953430 - 18.6413154602 - 18.1494407654 - 17.6459617615 - 17.0786094666 - 16.5765762329 - 16.0236892700 - 15.5342864990 - 14.9920387268 - 14.4504318237 - 13.9535217285 - 13.4067306519 - 12.9222946167 - 12.3377189636 - 11.8803100586 - 11.3260231018 - 10.8131370544 - 10.2907257080 - 9.7714385986 - 9.2613639832 - 8.7234001160 - 8.2077865601 - 7.7102355957 - 7.1799545288 - 6.6470870972 - 6.1458587646 - 5.6208190918 - 5.1262512207 - 4.5534133911 - 4.0933837891 - 3.5506668091 - 3.0445709229 - 2.5078964233 - 2.0220718384 - 1.4808959961 - 0.9740066528 - 0.4486694336 - -0.0589981079 - -0.5640792847 - -1.0992126465 - -1.6158065796 - -2.1259613037 - -2.6408309937 - -3.1526184082 - -3.6934356689 - -4.1818161011 - -4.6998329163 - -5.2386665344 - -5.7558975220 - -6.2556571960 - -6.7799491882 - -7.3068962097 - -7.8271598816 - -8.3206062317 - -8.8489494324 - -9.3990478516 - -9.8770523071 - -10.4281082153 - -10.9330253601 - -11.4537086487 - -11.9861030579 - -12.4781646729 - -13.0347366333 - -13.5422210693 - -14.0382575989 - -14.6064109802 - -15.0977630615 - -15.6231880188 - -16.1543426514 - -16.6905593872 - -17.1860122681 - -17.7252044678 - -18.2532272339 - -18.7933883667 - -19.2633056641 - -19.8457412720 - -20.3703498840 - -20.8641319275 - -21.4115829468 - -21.9333610535 - -22.5101394653 - -22.9495620728 - -23.5523338318 - -24.0604820251 - -24.5959587097 - -25.1071357727 - -25.6672859192 - -26.1794853210 - -26.7201766968 - -27.2645797729 - -27.7627143860 - -28.3238182068 - -28.8501319885 - -29.3951911926 - -29.9223937988 - -30.4486694336 - -31.0089378357 - -31.5352859497 - -32.0677032471 - -32.6175460815 - -33.1498870850 - -33.6921806335 - -34.2204551697 - -34.7814826965 - -35.3212890625 - -35.8460197449 - -36.3917808533 - -36.9711570740 - -37.4710464478 - -38.0299911499 - -38.5825233459 - -39.1230659485 - -39.6801490784 - -40.2041397095 - -40.7668991089 - -41.3205108643 - -41.8554115295 - -42.4117622375 - -42.9807319641 - -43.4840698242 - -44.0635986328 - -44.6095924377 - -45.1836013794 - -45.7035102844 - -46.2605018616 - -46.8375282288 - -47.3706741333 - -47.9303169250 - -48.4959297180 - -49.0697059631 - -49.5677833557 - -50.1874847412 - -50.7031402588 - -51.2980651855 - -51.8381423950 - -52.3892974854 - -52.9548149109 - -53.5364685059 - -54.0768280029 - -54.6540336609 - -55.2006416321 - -55.7828865051 - -56.3314590454 - -56.9151153564 - -57.4811363220 - -58.0212554932 - -58.5943641663 - -59.1740570068 - -59.7260246277 - -60.3132286072 - -60.8820953369 - -61.4414443970 - -61.9897575378 - -62.6185989380 - -63.1371002197 - -63.7256469727 - -64.3162536621 - -64.8678436279 - -65.4410171509 - -66.0107421875 - -66.6186218262 - -67.1731872559 - -67.7356567383 - -68.3263244629 - -68.9100952148 - -69.4882965088 - -70.0426406860 - -70.6662673950 - -71.2269363403 - -71.7649688721 - -72.3836669922 - -72.9690399170 - -73.5468368530 - -74.1323852539 - -74.6860351562 - -75.2987976074 - -75.8861541748 - -76.4316940308 - -77.0618743896 - -77.6534500122 - -78.1993179321 - -78.7884140015 - -79.3874206543 - -79.9890136719 - -80.5409698486 - -81.1786041260 - -81.7340164185 - -82.3372726440 - -82.9150009155 - -83.4894332886 - -84.1277008057 - -84.6750030518 - -85.2842559814 - -85.9045028687 - -86.4505081177 - -87.0633773804 - -87.6676025391 - -88.2602615356 - -88.8299865723 - -89.4866485596 - -90.0195083618 - -90.6315765381 - -91.2390594482 - -91.8368835449 - -92.4469909668 - -93.0167083740 - -93.6513900757 - -94.2054061890 - -94.8407211304 - -95.4148406982 - -96.0429534912 - -96.6219406128 - -97.2472610474 - -97.8347015381 - -98.4273376465 - -99.0244827271 - -99.6536331177 - -100.2343902588 - -100.8367843628 - -101.4672927856 - -102.0793380737 - -102.6364212036 - -103.2798767090 - -103.8751296997 - -104.4662780762 - -105.0918579102 - -105.6909866333 - -106.3055496216 - -106.9380798340 - -107.4927825928 - -108.1499938965 - -108.7123794556 - -109.3660125732 - -109.9591751099 - -110.5662307739 - -111.1957473755 - -111.7979888916 - -112.3981475830 - -112.9913558960 - -113.6697463989 - -114.2201232910 - -114.8577423096 - -115.5028686523 - -116.0676879883 - -116.6926193237 - -117.3199920654 - -117.9180831909 - -118.5414123535 - -119.1336822510 - -119.7985916138 - -120.3891677856 - -121.0039443970 - -121.6348037720 - -122.2265777588 - -122.8571624756 - -123.4872283936 - -124.0541229248 - -124.7145004272 - -125.3368530273 - -125.9304428101 - -126.5662002563 - -127.2100677490 - -127.8046722412 - -128.4111938477 - -129.0418090820 - -129.6940765381 - -130.2655792236 - -130.9342193604 - -131.5429687500 - -132.1557006836 - -132.7821655273 - -133.3957824707 - -134.0276489258 - -134.6409606934 - -135.2715606689 - -135.9297943115 - -136.5009307861 - -137.1593475342 - -137.7752990723 - -138.3883666992 - -139.0141296387 - -139.6318054199 - -140.2841186523 - -140.8608398438 - -141.5248260498 - -142.1308288574 - -142.7484741211 - -143.3984375000 - -144.0287628174 - -144.6148071289 - -145.3317565918 - -145.8767852783 - -146.5202026367 - -147.1678466797 - -147.7827453613 - -148.3992919922 - -149.0600433350 - -149.6641845703 - -150.3315429688 - -150.9309539795 - -151.5383758545 - -152.2200775146 - -152.8220520020 - -153.4680175781 - -154.1048583984 - -154.7017059326 - -155.3625183105 - -156.0036926270 - -156.5694885254 - -157.2583007812 - -157.8688354492 - -158.5072021484 - -159.1003723145 - -159.7706604004 - -160.3973236084 - -161.0081176758 - -161.6455535889 - -162.2677154541 - -162.9372253418 - -163.5223541260 - -164.1643371582 - -164.8068084717 - -165.4510650635 - -166.0421142578 - -166.7264099121 - -167.3474273682 - -167.9876708984 - -168.6104736328 - -169.2533721924 - -169.9241943359 - -170.5135498047 - -171.1863708496 - -171.8271179199 - -172.4427642822 - -173.1127319336 - -173.7143554688 - -174.4175720215 - -174.9664154053 - -175.6409606934 - -176.2964477539 - -176.8945159912 - -177.5303344727 - -178.1614532471 - -178.7877807617 - -179.4109649658 - -180.0008544922 - -180.6848754883 - -181.2328491211 - -181.8949737549 - -182.4495544434 - -183.0871887207 - -183.6613006592 - -184.2916564941 - -184.8921051025 - -185.4444274902 - -186.1072692871 - -186.6908264160 - -187.2783966064 - -187.8298797607 - -188.5437011719 - -189.1080780029 - -189.6473846436 - -190.2934570312 - -190.9889984131 - -191.5555114746 - -192.0951385498 - -192.7740325928 - -193.6037750244 - -195.0856170654 - -195.9461975098 - -196.6522979736 - -197.2181549072 - -197.8380279541 - -198.5812835693 - -199.2344055176 - -199.8473205566 - -200.4847106934 - -201.2261657715 - -201.8130493164 - -202.4949798584 - -203.1260375977 - -203.8366699219 - -204.4258422852 - -205.1329193115 - -205.7605438232 - -206.4266204834 - -207.0864562988 - -207.7157440186 - -208.4255218506 - -209.0088958740 - -209.7247314453 - -210.3418121338 - -211.0290832520 - -211.6427001953 - -212.3273620605 - -212.9839630127 - -213.6192779541 - -214.2719421387 - -214.9606323242 - -215.5669403076 - -216.2600860596 - -216.8850555420 - -217.5650482178 - -218.1898193359 - -218.8672943115 - -219.5109558105 - -220.1641235352 - -220.8063049316 - -221.4875183105 - -222.1154937744 - -222.7723541260 - -223.4253845215 - -224.0935821533 - -224.7245941162 - -225.3828582764 - -226.0332183838 - -226.7110137939 - -227.3161315918 - -228.0001831055 - -228.6542816162 - -229.2768249512 - -229.9734344482 - -230.5693054199 - -231.2676086426 - -231.8968658447 - -232.5595855713 - -233.1747283936 - -233.8901672363 - -234.4770507812 - -235.1680297852 - -235.7914428711 - -236.4715576172 - -237.0894012451 - -237.7745513916 - -238.3757934570 - -239.0843200684 - -239.6950378418 - -240.3427276611 - -241.0131530762 - -241.6610565186 - -242.2881164551 - -242.9580230713 - -243.5972442627 - -244.2572326660 - -244.9007110596 - -245.5191955566 - -246.2344970703 - -246.8290252686 - -247.4814300537 - -248.1490173340 - -248.8011779785 - -249.4238281250 - -250.0861968994 - -250.7319946289 - -251.3976135254 - -252.0078277588 - -252.6872711182 - -253.3161010742 - -253.9784545898 - -254.6226196289 - -255.2435760498 - -255.9228820801 - -256.5812377930 - -257.1701049805 - -257.8654174805 - -258.5085449219 - -259.1391296387 - -259.7905578613 - -260.4270019531 - -261.1047973633 - -261.7258605957 - -262.3546142578 - -263.0432434082 - -263.6696777344 - -264.3016967773 - -264.9561767578 - -265.6206359863 - -266.2410583496 - -266.8877868652 - -267.5422363281 - -268.2028198242 - -268.7981262207 - -269.4946289062 - -270.1214599609 - -270.7453918457 - -271.4280700684 - -272.0279846191 - -272.7247009277 - -273.3132019043 - -273.9990234375 - -274.6239013672 - -275.2754821777 - -275.9054565430 - -276.5742492676 - -277.1840820312 - -277.8684387207 - -278.4646911621 - -279.1511230469 - -279.7703552246 - -280.4082031250 - -281.0804443359 - -281.6842346191 - -282.3590698242 - -282.9772644043 - -283.6474914551 - -284.2503051758 - -284.9391479492 - -285.5393981934 - -286.2083435059 - -286.8432312012 - -287.4774780273 - -288.1236877441 - -288.7784423828 - -289.3912658691 - -290.0659790039 - -290.6700744629 - -291.3559265137 - -291.9567260742 - -292.6116027832 - -293.2643127441 - -293.8874816895 - -294.5388183594 - -295.1729431152 - -295.8130493164 - -296.4695739746 - -297.0887145996 - -297.7298583984 - -298.3893127441 - -299.0162048340 - -299.6489868164 - -300.2951965332 - -300.9498291016 - -301.5607299805 - -302.2220153809 - -302.8462829590 - -303.5038146973 - -304.1213989258 - -304.7729492188 - -305.4183654785 - -306.0360717773 - -306.6900634766 - -307.3410949707 - -307.9436340332 - -308.6017150879 - -309.2705993652 - -309.8397827148 - -310.5375671387 - -311.1576232910 - -311.7758789062 - -312.4508972168 - -313.0420532227 - -313.7312011719 - -314.3222656250 - -314.9875488281 - -315.6196594238 - -316.2468261719 - -316.8956298828 - -317.5290832520 - -318.1579589844 - -318.8076782227 - -319.4389953613 - -320.0577087402 - -320.7369079590 - -321.3233032227 - -321.9946594238 - -322.6076354980 - -323.2731933594 - -323.8775329590 - -324.5154418945 - -325.1849670410 - -325.7919921875 - -326.4164733887 - -327.0790405273 - -327.7115173340 - -328.3309631348 - -328.9623718262 - -329.6223754883 - -330.2419738770 - -330.8778991699 - -331.4992065430 - -332.1563720703 - -332.7994995117 - -333.3782958984 - -334.0750427246 - -334.6826171875 - -335.3133850098 - -335.9416503906 - -336.6101379395 - -337.1979675293 - -337.8561706543 - -338.4983215332 - -339.1052856445 - -339.7546081543 - -340.3936157227 - -341.0146179199 - -341.6488647461 - -342.2883300781 - -342.9152832031 - -343.5548095703 - -344.1773376465 - -344.8161926270 - -345.4495849609 - -346.0813598633 - -346.7149353027 - -347.3251647949 - -348.0055236816 - -348.5876770020 - -349.2403869629 - -349.8769836426 - -350.5074462891 - -351.1203308105 - -351.7752380371 - -352.4014282227 - -353.0130920410 - -353.6739501953 - -354.2814941406 - -354.9246826172 - -355.5537414551 - -356.1715393066 - -356.8309020996 - -357.4302673340 - -358.0722351074 - -358.7094726562 - -359.3344421387 - -359.9620361328 - -360.5890502930 - -361.2260437012 - -361.8716430664 - -362.4583740234 - -363.1118469238 - -363.7732849121 - -364.3446655273 - -365.0030517578 - -365.6318359375 - -366.2804870605 - -366.8588867188 - -367.5251464844 - -368.1621704102 - -368.7601623535 - -369.4063110352 - -370.0271301270 - -370.6741638184 - -371.2779235840 - -371.9159545898 - -372.5489196777 - -373.1752014160 - -373.7917480469 - -374.4407958984 - -375.0440063477 - -375.7003784180 - -376.2927856445 - -376.9581298828 - -377.5608520508 - -378.1745910645 - -378.8588256836 - -379.4200134277 - -380.0734863281 - -380.7231140137 - -381.3157348633 - -381.9566040039 - -382.5795593262 - -383.2175598145 - -383.8366699219 - -384.4426879883 - -385.1046752930 - -385.7218322754 - -386.3191223145 - -386.9756469727 - -387.6045532227 - -388.2006835938 - -388.8528442383 - -389.4729614258 - -390.0928955078 - -390.7165832520 - -391.3683166504 - -391.9411010742 - -392.6181640625 - -393.2337951660 - -393.8148498535 - -394.5001831055 - -395.0994262695 - -395.7038879395 - -396.3662719727 - -396.9623107910 - -397.6115417480 - -398.2030944824 - -398.8659362793 - -399.4634704590 - -400.1016235352 - -400.7117309570 - -401.3577880859 - -401.9634094238 - -402.5932312012 - -403.2164916992 - -403.8540954590 - -404.4558410645 - -405.0916442871 - -405.7203369141 - -406.3421936035 - -406.9482727051 - -407.6080322266 - -408.1896057129 - -408.8634948730 - -409.4276733398 - -410.1015014648 - -410.7002258301 - -411.3432312012 - -411.9261169434 - -412.6061096191 - -413.1907043457 - -413.8213806152 - -414.4511413574 - -415.0761108398 - -415.6889038086 - -416.3303222656 - -416.9262390137 - -417.5803222656 - -418.1872558594 - -418.8094177246 - -419.4407958984 - -420.0634155273 - -420.6889343262 - -421.2910156250 - -421.9608154297 - -422.5327453613 - -423.1873779297 - -423.8139343262 - -424.4070434570 - -425.0668029785 - -425.6661987305 - -426.3153686523 - -426.8928222656 - -427.5800476074 - -428.1610717773 - -428.7785949707 - -429.4470214844 - -430.0308837891 - -430.6703491211 - -431.3007812500 - -431.9046936035 - -432.5690307617 - -433.1491088867 - -433.7982788086 - -434.4265747070 - -435.0402832031 - -435.6719360352 - -436.2903747559 - -436.9234313965 - -437.5629272461 - -438.1528930664 - -438.8060302734 - -439.4372253418 - -440.0451049805 - -440.6761474609 - -441.3146057129 - -441.9284362793 - -442.5682983398 - -443.1822814941 - -443.8096618652 - -444.4682617188 - -445.0426025391 - -445.7278442383 - -446.3122558594 - -446.9571228027 - -447.6194458008 - -448.1814575195 - -448.8627624512 - -449.4794921875 - -450.1203918457 - -450.7100830078 - -451.3911132812 - -452.0042419434 - -452.6351318359 - -453.2385253906 - -453.9370727539 - -454.5086364746 - -455.1653442383 - -455.8067016602 - -456.4185791016 - -457.0749816895 - -457.7019348145 - -458.3311767578 - -458.9651489258 - -459.6340637207 - -460.2145690918 - -460.8945617676 - -461.5193176270 - -462.1543884277 - -462.7790832520 - -463.4569702148 - -464.0611572266 - -464.6924438477 - -465.3876037598 - -465.9620361328 - -466.6454467773 - -467.2633972168 - -467.9341735840 - -468.5617370605 - -469.1802673340 - -469.8709716797 - -470.4876708984 - -471.1405029297 - -471.7570800781 - -472.4624633789 - -473.0644836426 - -473.7122192383 - -474.3807983398 - -475.0244140625 - -475.6600341797 - -476.3206787109 - -476.9764709473 - -477.6079101562 - -478.2882385254 - -478.9127807617 - -479.5802307129 - -480.2255249023 - -480.9014282227 - -481.5272216797 - -482.1866149902 - -482.8862915039 - -483.4719543457 - -484.1870422363 - -484.8066101074 - -485.5015258789 - -486.1200866699 - -486.8088684082 - -487.4619750977 - -488.1196594238 - -488.7795715332 - -489.4561767578 - -490.1024780273 - -490.7882080078 - -491.4202270508 - -492.1125183105 - -492.7801208496 - -493.4017028809 - -494.1217956543 - -494.7638549805 - -495.4343261719 - -496.0940551758 - -496.7894287109 - -497.4325561523 - -498.0991516113 - -498.7972717285 - -499.4335327148 - -500.1260375977 - -500.7893981934 - -501.4679260254 - -502.1247558594 - -502.8127746582 - -503.4927978516 - -504.1354980469 - -504.8344116211 - -505.5146484375 - -506.1456909180 - -506.8716735840 - -507.5181274414 - -508.1909179688 - -508.8814086914 - -509.5558471680 - -510.2130126953 - -510.8951416016 - -511.5942382812 - -512.2303466797 - -512.9274902344 - -513.6081542969 - -514.2570800781 - -514.9754028320 - -515.5988159180 - -516.3004760742 - -517.0049438477 - -517.6070556641 - -518.3437500000 - -518.9978027344 - -519.6535644531 - -520.3824462891 - -520.9656372070 - -521.7293701172 - -522.3601684570 - -523.0095214844 - -523.7227783203 - -524.3767089844 - -525.0433349609 - -525.7203979492 - -526.3623046875 - -527.0888061523 - -527.6857910156 - -528.4080200195 - -529.0455322266 - -529.7276000977 - -530.3787841797 - -531.0472412109 - -531.7133178711 - -532.3756103516 - -533.0289916992 - -533.6972045898 - -534.3574218750 - -534.9906616211 - -535.6820678711 - -536.3254394531 - -536.9630126953 - -537.6346435547 - -538.2895507812 - -538.9301147461 - -539.5765991211 - -540.2332763672 - -540.8922729492 - -541.5117187500 - -542.1605224609 - -542.8401489258 - -543.4327392578 - -544.1016235352 - -544.7440185547 - -545.3576660156 - -546.0218505859 - -546.6375732422 - -547.2726440430 - -547.9093017578 - -548.5422973633 - -549.1596069336 - -549.7989501953 - -550.4151000977 - -551.0411376953 - -551.6619873047 - -552.2845458984 - -552.8984375000 - -553.5305786133 - -554.1264648438 - -554.7550659180 - -555.3576660156 - -555.9755249023 - -556.5788574219 - -557.1964721680 - -557.7832641602 - -558.4144287109 - -558.9891357422 - -559.6123046875 - -560.1885375977 - -560.8109130859 - -561.3960571289 - -561.9674682617 - -562.5970458984 - -563.1712036133 - -563.7422485352 - -564.3447265625 - -564.9476318359 - -565.4973144531 - -566.0811767578 - -566.6978149414 - -567.2376708984 - -567.8183593750 - -568.4204101562 - -568.9690551758 - -569.5227050781 - -570.1564941406 - -570.6485595703 - -571.2664794922 - -571.8174438477 - -572.3811645508 - -572.9329223633 - -573.4940185547 - -574.0689697266 - -574.6146240234 - -575.1770019531 - -575.7044677734 - -576.2961425781 - -576.8424682617 - -577.3518676758 - -577.9240722656 - -578.4981689453 - -579.0200195312 - -579.5072631836 - -580.1572265625 - -580.6246337891 - -581.1735839844 - -581.7180175781 - -582.2566528320 - -582.7992553711 - -583.3142700195 - -583.8338623047 - -584.4103393555 - -584.9107055664 - -585.4211425781 - -585.9677124023 - -586.5255126953 - -586.9912109375 - -587.5296630859 - -588.1002197266 - -588.5501708984 - -589.1102905273 - -589.6312866211 - -590.1186523438 - -590.6718139648 - -591.1572875977 - -591.6787719727 - -592.2058105469 - -592.6987915039 - -593.2083129883 - -593.7377929688 - -594.2230834961 - -594.7385864258 - -595.2496948242 - -595.7554321289 - -596.2369995117 - -596.7857055664 - -597.2480468750 - -597.7482910156 - -598.2861328125 - -598.7573852539 - -599.2459106445 - -599.7664184570 - -600.2596435547 - -600.7615966797 - -601.2224731445 - -601.7620849609 - -602.2429199219 - -602.7192993164 - -603.2144775391 - -603.7232055664 - -604.2159423828 - -604.6651000977 - -605.1877441406 - -605.6850585938 - -606.1564331055 - -606.6192016602 - -607.1545410156 - -607.6174926758 - -608.0878295898 - -608.6010742188 - -609.0524902344 - -609.5824584961 - -610.0186157227 - -610.5114135742 - -611.0209960938 - -611.4728393555 - -611.9597778320 - -612.4419555664 - -612.9376220703 - -613.3803710938 - -613.8860473633 - -614.3665771484 - -614.8175048828 - -615.3205566406 - -615.7890014648 - -616.2531738281 - -616.7590332031 - -617.1981201172 - -617.6856079102 - -618.1847534180 - -618.6274414062 - -619.1112060547 - -619.5764770508 - -620.0868530273 - -620.5131225586 - -621.0068969727 - -621.4746704102 - -621.9591064453 - -622.4056396484 - -622.8931884766 - -623.3583984375 - -623.8383789062 - -624.2984619141 - -624.7550048828 - -625.2523193359 - -625.7072753906 - -626.1791381836 - -626.6438598633 - -627.1054687500 - -627.5986938477 - -628.0486450195 - -628.4929809570 - -629.0025024414 - -629.4641723633 - -629.9069213867 - -630.3775634766 - -630.8726806641 - -631.3126831055 - -631.7893066406 - -632.2322998047 - -632.7371826172 - -633.1835937500 - -633.6378173828 - -634.1250000000 - -634.5699462891 - -635.0588378906 - -635.4956054688 - -635.9776000977 - -636.4458007812 - -636.8918457031 - -637.3840332031 - -637.8243408203 - -638.2891235352 - -638.7741088867 - -639.2236328125 - -639.6846923828 - -640.1445922852 - -640.6270751953 - -641.0934448242 - -641.4990844727 - -642.0354614258 - -642.4787597656 - -642.8987426758 - -643.4223632812 - -643.8364868164 - -644.3578491211 - -644.7464599609 - -645.2719116211 - -645.7073974609 - -646.1799926758 - -646.6140136719 - -647.1301269531 - -647.5416870117 - -648.0234985352 - -648.5030517578 - -648.9269409180 - -649.4255371094 - -649.8632202148 - -650.3378295898 - -650.7977905273 - -651.2601928711 - -651.7202148438 - -652.1779785156 - -652.6556396484 - -653.1080322266 - -653.5575561523 - -654.0416870117 - -654.4939575195 - -654.9505004883 - -655.4169311523 - -655.8780517578 - -656.3449096680 - -656.8027954102 - -657.2573852539 - -657.7338867188 - -658.1888427734 - -658.6467285156 - -659.1181030273 - -659.5610351562 - -660.0524291992 - -660.4914550781 - -660.9555053711 - -661.4143066406 - -661.9101562500 - -662.3156738281 - -662.8018188477 - -663.2754516602 - -663.7384643555 - -664.1671142578 - -664.6514282227 - -665.1298217773 - -665.5588989258 - -666.0355834961 - -666.5009765625 - -666.9714355469 - -667.3920288086 - -667.9116210938 - -668.3204345703 - -668.8138427734 - -669.2747192383 - -669.7116088867 - -670.1943969727 - -670.6533203125 - -671.1048583984 - -671.5829467773 - -672.0231323242 - -672.5046386719 - -672.9479980469 - -673.4345092773 - -673.8691406250 - -674.3471069336 - -674.7960205078 - -675.2642211914 - -675.7229614258 - -676.1943969727 - -676.6338500977 - -677.1291503906 - -677.5471801758 - -678.0539550781 - -678.4793090820 - -678.9523315430 - -679.4259643555 - -679.8687744141 - -680.3374023438 - -680.7902221680 - -681.2798461914 - -681.7117919922 - -682.1680297852 - -682.6564941406 - -683.1024169922 - -683.5697631836 - -684.0079345703 - -684.5021972656 - -684.9675903320 - -685.3688354492 - -685.8846435547 - -686.3335571289 - -686.7893066406 - -687.2637939453 - -687.6769409180 - -688.2024536133 - -688.6438598633 - -689.0584716797 - -689.5620727539 - -690.0552978516 - -690.4425048828 - -690.9277954102 - -691.4126586914 - -691.8592529297 - -692.2978515625 - -692.7948608398 - -693.2276611328 - -693.7062377930 - -694.1509399414 - -694.6033325195 - -695.1040039062 - -695.5189208984 - -695.9869384766 - -696.4868774414 - -696.8994140625 - -697.3627319336 - -697.8607788086 - -698.2911987305 - -698.7291870117 - -699.2479858398 - -699.6618652344 - -700.1213378906 - -700.6064453125 - -701.0377197266 - -701.5312500000 - -701.9462890625 - -702.4523925781 - -702.8683471680 - -703.3566894531 - -703.7952880859 - -704.2780761719 - -704.7052001953 - -705.1868896484 - -705.6483154297 - -706.0886230469 - -706.5441284180 - -707.0229492188 - -707.4777832031 - -707.9043579102 - -708.4035644531 - -708.8491821289 - -709.2872314453 - -709.7702026367 - -710.2175292969 - -710.6541137695 - -711.1559448242 - -711.5729370117 - -712.0410156250 - -712.5252075195 - -712.9315185547 - -713.4439086914 - -713.8501586914 - -714.3278808594 - -714.8068847656 - -715.2246093750 - -715.7014160156 - -716.1542968750 - -716.6282348633 - -717.0231323242 - -717.5642089844 - -717.9600219727 - -718.4225463867 - -718.9156494141 - -719.3256225586 - -719.8030395508 - -720.2534790039 - -720.7016601562 - -721.1790161133 - -721.5955810547 - -722.0742797852 - -722.5431518555 - -722.9716796875 - -723.4292602539 - -723.8908081055 - -724.3394165039 - -724.8130493164 - -725.2131347656 - -725.7124633789 - -726.1719970703 - -726.5880737305 - -727.0548706055 - -727.5316162109 - -727.9564819336 - -728.4265747070 - -728.8475341797 - -729.3503417969 - -729.7525634766 - -730.2417602539 - -730.6792602539 - -731.1130981445 - -731.6029052734 - -732.0205688477 - -732.4852905273 - -732.9307250977 - -733.3788452148 - -733.8613281250 - -734.2703857422 - -734.7245483398 - -735.2042846680 - -735.6446533203 - -736.0611572266 - -736.5308837891 - -737.0083007812 - -737.4133911133 - -737.8837890625 - -738.3219604492 - -738.7736206055 - -739.2492065430 - -739.6564941406 - -740.0968017578 - -740.6215820312 - -740.9952392578 - -741.4525756836 - -741.9212036133 - -742.3659057617 - -742.7968139648 - -743.2601928711 - -743.6824951172 - -744.1694335938 - -744.5909423828 - -745.0230712891 - -745.4908447266 - -745.9337158203 - -746.3767089844 - -746.8295898438 - -747.2380371094 - -747.7368164062 - -748.1600952148 - -748.5744628906 - -749.0507812500 - -749.4895019531 - -749.9404296875 - -750.3447265625 - -750.8251342773 - -751.2774047852 - -751.6703491211 - -752.1608276367 - -752.5687866211 - -753.0429077148 - -753.4604492188 - -753.9000244141 - -754.3583984375 - -754.8002929688 - -755.2106933594 - -755.6865844727 - -756.1209106445 - -756.5499877930 - -756.9879760742 - -757.4467163086 - -757.8890380859 - -758.2952270508 - -758.7623291016 - -759.2188720703 - -759.6110839844 - -760.0975341797 - -760.4835205078 - -760.9967041016 - -761.3641357422 - -761.8240966797 - -762.2731933594 - -762.7064208984 - -763.1362304688 - -763.5564575195 - -764.0183105469 - -764.4479980469 - -764.8576049805 - -765.3172607422 - -765.7257690430 - -766.1912231445 - -766.5808105469 - -767.0443725586 - -767.4324951172 - -767.9085083008 - -768.3363037109 - -768.6917114258 - -769.1974487305 - -769.6285400391 - -770.0050659180 - -770.4248657227 - -770.9313964844 - -771.3110351562 - -771.7060546875 - -772.1724853516 - -772.6340942383 - -772.9966430664 - -773.4415893555 - -773.9113159180 - -774.3095703125 - -774.8847656250 - -775.3395996094 - -775.7907104492 - -776.1710815430 - -776.6328735352 - -777.0842895508 - -777.4885864258 - -777.9065551758 - -778.3668212891 - -778.8200683594 - -779.1691284180 - -779.6696777344 - -780.0849609375 - -780.5084228516 - -780.9173583984 - -781.3843994141 - -781.7825927734 - -782.2361450195 - -782.6408691406 - -783.0598754883 - -783.5426025391 - -783.9014892578 - -784.3692626953 - -784.7701416016 - -785.2356567383 - -785.6126708984 - -786.0621337891 - -786.4963378906 - -786.9002075195 - -787.3309936523 - -787.7691650391 - -788.1701660156 - -788.6029663086 - -789.0369262695 - -789.4467163086 - -789.8625488281 - -790.2999267578 - -790.7215576172 - -791.1295776367 - -791.5531616211 - -791.9873046875 - -792.3937377930 - -792.8225708008 - -793.2283325195 - -793.6648559570 - -794.0767822266 - -794.4973754883 - -794.8980712891 - -795.3549804688 - -795.7323608398 - -796.1664428711 - -796.6038208008 - -796.9679565430 - -797.4467773438 - -797.8208618164 - -798.2486572266 - -798.6627197266 - -799.0911254883 - -799.4735107422 - -799.9404907227 - -800.2845458984 - -800.7675781250 - -801.1365356445 - -801.5725708008 - -801.9575195312 - -802.4151000977 - -802.7790527344 - -803.2293090820 - -803.6104125977 - -804.0413208008 - -804.4485473633 - -804.8601074219 - -805.2536010742 - -805.6846923828 - -806.0894775391 - -806.4971923828 - -806.8934936523 - -807.3052978516 - -807.7572631836 - -808.0952758789 - -808.5363159180 - -808.9512939453 - -809.3649291992 - -809.7341308594 - -810.1592407227 - -810.5803833008 - -810.9894409180 - -811.3405151367 - -811.8034057617 - -812.1937255859 - -812.5807495117 - -813.0019531250 - -813.3866577148 - -813.8048706055 - -814.2283325195 - -814.5748901367 - -815.0055541992 - -815.4448242188 - -815.7868652344 - -816.2095336914 - -816.6134643555 - -817.0241088867 - -817.4148559570 - -817.7816772461 - -818.2408447266 - -818.6083374023 - -818.9957275391 - -819.4064331055 - -819.8162841797 - -820.1954956055 - -820.5953369141 - -820.9916992188 - -821.4095458984 - -821.7604980469 - -822.2046508789 - -822.5722656250 - -822.9584350586 - -823.3961791992 - -823.7327880859 - -824.1738281250 - -824.5398559570 - -824.9487915039 - -825.3275146484 - -825.7341918945 - -826.1096801758 - -826.5261230469 - -826.8820190430 - -827.3059692383 - -827.6845092773 - -828.0621337891 - -828.4731445312 - -828.8468017578 - -829.2539062500 - -829.6054077148 - -830.0458984375 - -830.3919677734 - -830.7985839844 - -831.1766967773 - -831.5785522461 - -831.9458618164 - -832.3469848633 - -832.7194213867 - -833.1243286133 - -833.4860229492 - -833.8870849609 - -834.2656860352 - -834.6559448242 - -835.0153198242 - -835.4457397461 - -835.7738647461 - -836.1915893555 - -836.5734252930 - -836.9334716797 - -837.3302001953 - -837.7166748047 - -838.0763549805 - -838.4792480469 - -838.8442382812 - -839.2265014648 - -839.6115112305 - -839.9825439453 - -840.3667602539 - -840.7352905273 - -841.1330566406 - -841.4774780273 - -841.8955688477 - -842.2318115234 - -842.6334228516 - -843.0077514648 - -843.3659057617 - -843.7571411133 - -844.1313476562 - -844.4880981445 - -844.8893432617 - -845.2393188477 - -845.6165771484 - -846.0078125000 - -846.3483886719 - -846.7477416992 - -847.1105346680 - -847.4672851562 - -847.8695678711 - -848.2015991211 - -848.6078491211 - -848.9419555664 - -849.3431396484 - -849.7077026367 - -850.0324096680 - -850.4664306641 - -850.7977905273 - -851.1524658203 - -851.5417480469 - -851.9191894531 - -852.2409057617 - -852.6584472656 - -852.9813842773 - -853.3737182617 - -853.7277221680 - -854.0883178711 - -854.4630737305 - -854.8073120117 - -855.1970214844 - -855.5391845703 - -855.8967285156 - -856.2787475586 - -856.6317138672 - -856.9879760742 - -857.3403930664 - -857.7277221680 - -858.0678100586 - -858.4280395508 - -858.7827148438 - -859.1582031250 - -859.5136108398 - -859.8418579102 - -860.2313842773 - -860.5939331055 - -860.9147338867 - -861.2909545898 - -861.6659545898 - -861.9831542969 - -862.3595581055 - -862.7264404297 - -863.0463256836 - -863.4296264648 - -863.7733764648 - -864.1235961914 - -864.4753417969 - -864.8366699219 - -865.1759033203 - -865.5372314453 - -865.8882446289 - -866.2223510742 - -866.5980224609 - -866.9352416992 - -867.2756347656 - -867.6348876953 - -867.9942626953 - -868.3185424805 - -868.6775512695 - -869.0349731445 - -869.3639526367 - -869.7166748047 - -870.0748291016 - -870.4079589844 - -870.7385253906 - -871.1281738281 - -871.4285888672 - -871.7879028320 - -872.1433105469 - -872.4630737305 - -872.8401489258 - -873.1349487305 - -873.5206909180 - -873.8409423828 - -874.1906127930 - -874.5218505859 - -874.8643188477 - -875.2127075195 - -875.5667114258 - -875.8530273438 - -876.2324829102 - -876.5933837891 - -876.8768310547 - -877.2309570312 - -877.5869750977 - -877.9368896484 - -878.2164306641 - -878.5855712891 - -878.9503173828 - -879.2426757812 - -879.5820312500 - -879.9308471680 - -880.2720336914 - -880.5857543945 - -880.9130249023 - -881.2770385742 - -881.5805664062 - -881.9265747070 - -882.2594604492 - -882.5626831055 - -882.9499511719 - -883.2168579102 - -883.5918579102 - -883.9002075195 - -884.2255249023 - -884.5856323242 - -884.8724975586 - -885.2066040039 - -885.5853271484 - -885.8409423828 - -886.1995849609 - -886.5425415039 - -886.8413085938 - -887.1785888672 - -887.4950561523 - -887.8323364258 - -888.1636352539 - -888.4423217773 - -888.8191528320 - -889.1227416992 - -889.4268188477 - -889.7698364258 - -890.0921020508 - -890.4011840820 - -890.7232666016 - -891.0593261719 - -891.3500976562 - -891.6928710938 - -892.0279541016 - -892.2778320312 - -892.6771850586 - -892.9591064453 - -893.2531738281 - -893.6163330078 - -893.8912353516 - -894.2484130859 - -894.5215454102 - -894.8634033203 - -895.1720581055 - -895.4960327148 - -895.7794799805 - -896.1241455078 - -896.4322509766 - -896.7274780273 - -897.0515136719 - -897.3735351562 - -897.6613159180 - -897.9899291992 - -898.2965698242 - -898.6037597656 - -898.9066772461 - -899.2380371094 - -899.5183715820 - -899.8542480469 - -900.1328735352 - -900.4668579102 - -900.7607421875 - -901.0706787109 - -901.3597412109 - -901.7025756836 - -901.9761352539 - -902.2755126953 - -902.6126098633 - -902.8920288086 - -903.1908569336 - -903.5253906250 - -903.7767333984 - -904.1228637695 - -904.4153442383 - -904.6898193359 - -905.0194702148 - -905.3136596680 - -905.6149902344 - -905.8786621094 - -906.2478637695 - -906.4757690430 - -906.8084106445 - -907.1080322266 - -907.3826904297 - -907.6911621094 - -907.9985961914 - -908.2768554688 - -908.5605468750 - -908.8937377930 - -909.1577148438 - -909.4368896484 - -909.7780151367 - -910.0205078125 - -910.3425903320 - -910.6252441406 - -910.8942871094 - -911.2317504883 - -911.4821166992 - -911.7718505859 - -912.0847167969 - -912.3526611328 - -912.6475219727 - -912.9212036133 - -913.2182006836 - -913.5165405273 - -913.7719726562 - -914.0762329102 - -914.3544921875 - -914.6461181641 - -914.9091186523 - -915.2060546875 - -915.4815063477 - -915.7771606445 - -916.0298461914 - -916.3166503906 - -916.6341552734 - -916.8463745117 - -917.1809082031 - -917.4233398438 - -917.7039794922 - -918.0143432617 - -918.2321777344 - -918.5425415039 - -918.8204956055 - -919.0807495117 - -919.3345947266 - -919.6491088867 - -919.8816528320 - -920.1837768555 - -920.4138183594 - -920.7176513672 - -920.9700927734 - -921.2504272461 - -921.4912109375 - -921.7669677734 - -922.0660400391 - -922.2843627930 - -922.5562133789 - -922.8389892578 - -923.1041870117 - -923.3283081055 - -923.6213378906 - -923.8676757812 - -924.1524047852 - -924.3526000977 - -924.6716308594 - -924.8965454102 - -925.1502075195 - -925.4230346680 - -925.6513671875 - -925.9368896484 - -926.1508178711 - -926.4363403320 - -926.6703491211 - -926.9057617188 - -927.1820678711 - -927.4167480469 - -927.6606445312 - -927.8884277344 - -928.1922607422 - -928.3767089844 - -928.6389770508 - -928.8904418945 - -929.1307983398 - -929.3535156250 - -929.6141967773 - -929.8342285156 - -930.0911254883 - -930.3167114258 - -930.5441894531 - -930.7938842773 - -931.0256958008 - -931.2526245117 - -931.4715576172 - -931.7256469727 - -931.9647216797 - -932.1346435547 - -932.4414672852 - -932.6013183594 - -932.8824462891 - -933.0522460938 - -933.3187255859 - -933.5214233398 - -933.7541503906 - -933.9535522461 - -934.2014770508 - -934.4054565430 - -934.6256713867 - -934.8312377930 - -935.0676879883 - -935.2841186523 - -935.4577026367 - -935.7225341797 - -935.9111938477 - -936.1163940430 - -936.3322753906 - -936.5454101562 - -936.7568969727 - -936.9494018555 - -937.1696166992 - -937.3692016602 - -937.5761718750 - -937.7755126953 - -937.9898681641 - -938.1749267578 - -938.3875732422 - -938.5983886719 - -938.7634887695 - -938.9901733398 - -939.1988525391 - -939.3513183594 - -939.5900268555 - -939.7666625977 - -939.9590454102 - -940.1618652344 - -940.3482055664 - -940.5382080078 - -940.7420043945 - -940.9310302734 - -941.1045532227 - -941.3112792969 - -941.5057983398 - -941.6632080078 - -941.8964843750 - -942.0429687500 - -942.2316284180 - -942.4678955078 - -942.5810546875 - -942.8278808594 - -942.9692993164 - -943.1726684570 - -943.3818969727 - -943.4890747070 - -943.7481079102 - -943.9211425781 - -944.0607910156 - -944.2641601562 - -944.4668579102 - -944.6344604492 - -944.7888793945 - -944.9979858398 - -945.2012329102 - -945.3159790039 - -945.5618896484 - -945.6889038086 - -945.9232177734 - -946.0568237305 - -946.2489013672 - -946.4582519531 - -946.5961303711 - -946.8010253906 - -946.9738159180 - -947.1586303711 - -947.3190307617 - -947.5237426758 - -947.6981811523 - -947.8634643555 - -948.0625610352 - -948.2407226562 - -948.4088745117 - -948.6031494141 - -948.7626342773 - -948.9731445312 - -949.1364746094 - -949.3062133789 - -949.5247802734 - -949.6822509766 - -949.8663330078 - -950.0605468750 - -950.2272338867 - -950.4261474609 - -950.6081542969 - -950.7847900391 - -950.9671020508 - -951.1751098633 - -951.3424072266 - -951.5330200195 - -951.7202148438 - -951.9053955078 - -952.1022949219 - -952.2672119141 - -952.4692382812 - -952.6774902344 - -952.8413085938 - -953.0369873047 - -953.2337036133 - -953.4358520508 - -953.5989379883 - -953.8207397461 - -953.9884033203 - -954.2140502930 - -954.3701171875 - -954.6049804688 - -954.7509155273 - -955.0139160156 - -955.1517333984 - -955.3623657227 - -955.5917968750 - -955.7619018555 - -955.9519042969 - -956.1734619141 - -956.3766479492 - -956.5530395508 - -956.7564697266 - -956.9887695312 - -957.1585693359 - -957.3747558594 - -957.5759887695 - -957.7862548828 - -957.9732055664 - -958.2100830078 - -958.3645629883 - -958.6361694336 - -958.7958984375 - -959.0196533203 - -959.2227172852 - -959.4332275391 - -959.6429443359 - -959.8536376953 - -960.0768432617 - -960.2472534180 - -960.5121459961 - -960.6998291016 - -960.8933715820 - -961.1252441406 - -961.3482055664 - -961.5635375977 - -961.7111816406 - -962.0280151367 - -962.1754150391 - -962.4104614258 - -962.6126708984 - -962.8439941406 - -963.0744628906 - -963.2606811523 - -963.4611816406 - -963.7461547852 - -963.9221191406 - -964.1117553711 - -964.3748779297 - -964.6036376953 - -964.7810058594 - -965.0054321289 - -965.2734375000 - -965.4289550781 - -965.6976318359 - -965.9010009766 - -966.1083984375 - -966.3596191406 - -966.5656738281 - -966.7702636719 - -967.0258178711 - -967.2252807617 - -967.4439086914 - -967.6943969727 - -967.8688964844 - -968.1456298828 - -968.3395385742 - -968.5557861328 - -968.7910156250 - -969.0276489258 - -969.2273559570 - -969.4453735352 - -969.7026367188 - -969.9006347656 - -970.1247558594 - -970.3554077148 - -970.5851440430 - -970.8061523438 - -971.0115356445 - -971.2625122070 - -971.4736328125 - -971.7028808594 - -971.9152832031 - -972.1459350586 - -972.3873901367 - -972.5697631836 - -972.8192749023 - -973.0572509766 - -973.2466430664 - -973.4953002930 - -973.7106323242 - -973.9295654297 - -974.1609497070 - -974.3839721680 - -974.5844116211 - -974.8538818359 - -975.0374755859 - -975.2619018555 - -975.5059204102 - -975.7173461914 - -975.9165039062 - -976.1858520508 - -976.3671264648 - -976.5991210938 - -976.8287353516 - -977.0571899414 - -977.2387084961 - -977.5009765625 - -977.7161254883 - -977.8956298828 - -978.1721801758 - -978.3528442383 - -978.5766601562 - -978.8267211914 - -979.0042114258 - -979.2379760742 - -979.4633178711 - -979.6845092773 - -979.8824462891 - -980.1154785156 - -980.3320922852 - -980.5468139648 - -980.7593383789 - -980.9730834961 - -981.1967163086 - -981.4078369141 - -981.6212158203 - -981.8314819336 - -982.0641479492 - -982.2537841797 - -982.4847412109 - -982.6915283203 - -982.8927612305 - -983.1286010742 - -983.3339843750 - -983.5137939453 - -983.7653808594 - -983.9669189453 - -984.1620483398 - -984.3646850586 - -984.6145019531 - -984.7800903320 - -985.0248413086 - -985.1914062500 - -985.4310913086 - -985.6470336914 - -985.7992553711 - -986.0614624023 - -986.2379150391 - -986.4557495117 - -986.6531982422 - -986.8554687500 - -987.0666503906 - -987.2709960938 - -987.4785156250 - -987.6638183594 - -987.8698730469 - -988.1010742188 - -988.2562255859 - -988.4868774414 - -988.6716918945 - -988.8860473633 - -989.0836791992 - -989.2429809570 - -989.5013427734 - -989.6713867188 - -989.8279418945 - -990.1037597656 - -990.2329101562 - -990.4627685547 - -990.6389770508 - -990.8521118164 - -991.0288696289 - -991.2355346680 - -991.3925781250 - -991.6518554688 - -991.7789916992 - -991.9904174805 - -992.2001953125 - -992.3596191406 - -992.5893554688 - -992.7377929688 - -992.9389038086 - -993.1353759766 - -993.3289794922 - -993.4916381836 - -993.6801757812 - -993.8958129883 - -994.0574951172 - -994.2244262695 - -994.4457397461 - -994.6206665039 - -994.7800292969 - -994.9660644531 - -995.1691284180 - -995.3495483398 - -995.4905395508 - -995.7050781250 - -995.8878784180 - -996.0536499023 - -996.2246093750 - -996.4147949219 - -996.5763549805 - -996.7912597656 - -996.9172973633 - -997.1234741211 - -997.2739257812 - -997.4856567383 - -997.6251831055 - -997.7966918945 - -998.0046997070 - -998.1458129883 - -998.3080444336 - -998.5039062500 - -998.6813964844 - -998.8159790039 - -999.0111694336 - -999.1692504883 - -999.3389282227 - -999.4953002930 - -999.6974487305 - -999.8160400391 - -1000.0003662109 - -1000.1810302734 - -1000.3175659180 - -1000.5031738281 - -1000.6532592773 - -1000.8111572266 - -1000.9872436523 - -1001.1354980469 - -1001.3026123047 - -1001.4555664062 - -1001.6306152344 - -1001.7528686523 - -1001.9531860352 - -1002.0975341797 - -1002.2414550781 - -1002.4144897461 - -1002.5681762695 - -1002.6896362305 - -1002.9034423828 - -1003.0166015625 - -1003.1809082031 - -1003.3297119141 - -1003.4868164062 - -1003.6341552734 - -1003.7857666016 - -1003.9396972656 - -1004.0916748047 - -1004.2384033203 - -1004.3768920898 - -1004.5230712891 - -1004.6981811523 - -1004.8199462891 - -1004.9709472656 - -1005.1093139648 - -1005.2558593750 - -1005.4316406250 - -1005.5225219727 - -1005.7091064453 - -1005.8391113281 - -1005.9647827148 - -1006.1344604492 - -1006.2247924805 - -1006.4375000000 - -1006.5466308594 - -1006.6475830078 - -1006.8120727539 - -1006.9972534180 - -1007.0511474609 - -1007.2352905273 - -1007.3889160156 - -1007.4948120117 - -1007.6305541992 - -1007.7684326172 - -1007.9037475586 - -1008.0400390625 - -1008.1704101562 - -1008.3041381836 - -1008.4454956055 - -1008.5612792969 - -1008.6834716797 - -1008.8383789062 - -1008.9568481445 - -1009.0636596680 - -1009.2383422852 - -1009.3311767578 - -1009.4385986328 - -1009.6072387695 - -1009.7217407227 - -1009.8219604492 - -1009.9912109375 - -1010.0657348633 - -1010.2252197266 - -1010.3152465820 - -1010.4732055664 - -1010.5706176758 - -1010.7071533203 - -1010.8189086914 - -1010.9458618164 - -1011.0502319336 - -1011.1666870117 - -1011.3145751953 - -1011.4114990234 - -1011.5247802734 - -1011.6583862305 - -1011.7851562500 - -1011.8475341797 - -1012.0159912109 - -1012.0969238281 - -1012.2200927734 - -1012.3469848633 - -1012.4528808594 - -1012.5445556641 - -1012.7037963867 - -1012.7708129883 - -1012.8848876953 - -1013.0103149414 - -1013.1011352539 - -1013.2467041016 - -1013.3169555664 - -1013.4255371094 - -1013.5771484375 - -1013.6219482422 - -1013.7552490234 - -1013.8560791016 - -1013.9961547852 - -1014.0335083008 - -1014.2019653320 - -1014.2710571289 - -1014.3580932617 - -1014.4984130859 - -1014.5685424805 - -1014.6901245117 - -1014.7840576172 - -1014.8826293945 - -1015.0036010742 - -1015.0765991211 - -1015.1619262695 - -1015.3040161133 - -1015.3592529297 - -1015.4596557617 - -1015.5872192383 - -1015.6528320312 - -1015.7791137695 - -1015.8391113281 - -1015.9592285156 - -1016.0556640625 - -1016.1270751953 - -1016.2200317383 - -1016.3170166016 - -1016.4019775391 - -1016.5300903320 - -1016.5603027344 - -1016.6933593750 - -1016.7648315430 - -1016.8583374023 - -1016.9358520508 - -1017.0032348633 - -1017.1580810547 - -1017.1915283203 - -1017.2834472656 - -1017.3832397461 - -1017.4545898438 - -1017.5493164062 - -1017.6168212891 - -1017.6846923828 - -1017.8184204102 - -1017.8932495117 - -1017.9177856445 - -1018.0518798828 - -1018.1440429688 - -1018.1995849609 - -1018.2707519531 - -1018.3696289062 - -1018.4530029297 - -1018.5452270508 - -1018.5540161133 - -1018.6759643555 - -1018.7744750977 - -1018.8054199219 - -1018.8934936523 - -1018.9834594727 - -1019.0651855469 - -1019.1160888672 - -1019.1932373047 - -1019.2546386719 - -1019.3495483398 - -1019.4046630859 - -1019.4861450195 - -1019.5387573242 - -1019.6317749023 - -1019.6757812500 - -1019.7587890625 - -1019.8007812500 - -1019.9256591797 - -1019.9436035156 - -1020.0356445312 - -1020.0913085938 - -1020.1730957031 - -1020.2443237305 - -1020.2782592773 - -1020.3718872070 - -1020.4539184570 - -1020.4606933594 - -1020.5869140625 - -1020.6159057617 - -1020.6876220703 - -1020.7590942383 - -1020.8010253906 - -1020.8889770508 - -1020.9360351562 - -1020.9887695312 - -1021.0474853516 - -1021.1184082031 - -1021.1480712891 - -1021.2141113281 - -1021.2864990234 - -1021.3199462891 - -1021.3639526367 - -1021.4261474609 - -1021.4991455078 - -1021.5071411133 - -1021.5954589844 - -1021.6030273438 - -1021.7085571289 - -1021.7291870117 - -1021.7865600586 - -1021.8327636719 - -1021.9160766602 - -1021.9503173828 - -1021.9885253906 - -1022.0843505859 - -1022.1362304688 - -1022.1851196289 - -1022.2329711914 - -1022.3223876953 - -1022.3915405273 - -1022.4447021484 - -1022.5446166992 - -1022.5754394531 - -1022.6932983398 - -1022.7615356445 - -1022.7761840820 - -1022.9013671875 - -1022.9970703125 - -1023.0031127930 - -1023.1053466797 - -1023.1965332031 - -1023.2238769531 - -1023.3049926758 - -1023.3881225586 - -1023.4281005859 - -1023.4257812500 - -1023.5841064453 - -1023.6395263672 - -1023.4492187500 - -1022.8718261719 - -1022.7261352539 - -1022.7251586914 - -1022.7676391602 - -1022.8659057617 - -1022.8298950195 - -1022.8081665039 - -1022.8633422852 - -1022.9426269531 - -1022.9095458984 - -1022.8685913086 - -1022.9850463867 - -1022.9996337891 - -1022.9506225586 - -1023.0004272461 - -1023.0412597656 - -1023.0316162109 - -1023.0748291016 - -1023.0480957031 - -1023.0910034180 - -1023.1326293945 - -1023.1093750000 - -1023.1262817383 - -1023.1527709961 - -1023.1909179688 - -1023.1644897461 - -1023.1853027344 - -1023.2244873047 - -1023.2174682617 - -1023.2371215820 - -1023.2352905273 - -1023.2745361328 - -1023.2533569336 - -1023.3059082031 - -1023.2689208984 - -1023.3140869141 - -1023.3158569336 - -1023.3235473633 - -1023.3275146484 - -1023.3500976562 - -1023.3491821289 - -1023.3521118164 - -1023.3817749023 - -1023.3656005859 - -1023.3800048828 - -1023.3927001953 - -1023.4085083008 - -1023.3829345703 - -1023.4181518555 - -1023.4166259766 - -1023.4125366211 - -1023.4446411133 - -1023.3926391602 - -1023.4616088867 - -1023.4448852539 - -1023.4155883789 - -1023.4513549805 - -1023.4578247070 - -1023.4423217773 - -1023.4568481445 - -1023.4277954102 - -1023.4892578125 - -1023.4368286133 - -1023.4583129883 - -1023.4440917969 - -1023.4758300781 - -1023.4445190430 - -1023.4563598633 - -1023.4404296875 - -1023.4648437500 - -1023.4481811523 - -1023.4448852539 - -1023.4302368164 - -1023.4510498047 - -1023.4459838867 - -1023.4255371094 - -1023.4065551758 - -1023.4468994141 - -1023.4356689453 - -1023.3706665039 - -1023.4249877930 - -1023.4055786133 - -1023.4017944336 - -1023.3707275391 - -1023.3737792969 - -1023.3889770508 - -1023.3792724609 - -1023.3151855469 - -1023.3624267578 - -1023.3612060547 - -1023.3059082031 - -1023.3178710938 - -1023.3151855469 - -1023.2948608398 - -1023.2960815430 - -1023.2649536133 - -1023.2465209961 - -1023.2907104492 - -1023.2116699219 - -1023.2238769531 - -1023.2166137695 - -1023.1998291016 - -1023.1944580078 - -1023.1383666992 - -1023.1817016602 - -1023.1309204102 - -1023.1213989258 - -1023.1082763672 - -1023.0863037109 - -1023.0803222656 - -1023.0585937500 - -1023.0241699219 - -1023.0375366211 - -1022.9869384766 - -1023.0008544922 - -1022.9544067383 - -1022.9340209961 - -1022.9544677734 - -1022.8864135742 - -1022.8800659180 - -1022.8781738281 - -1022.8346557617 - -1022.8177490234 - -1022.8040161133 - -1022.7651367188 - -1022.7698974609 - -1022.7115478516 - -1022.7049560547 - -1022.7078247070 - -1022.6163330078 - -1022.6571044922 - -1022.6007080078 - -1022.5850830078 - -1022.5300292969 - -1022.5604858398 - -1022.4892578125 - -1022.4595947266 - -1022.4657592773 - -1022.4056396484 - -1022.3976440430 - -1022.3560791016 - -1022.3214721680 - -1022.3247070312 - -1022.2521362305 - -1022.2425537109 - -1022.2210693359 - -1022.1744995117 - -1022.1369018555 - -1022.1415405273 - -1022.0531616211 - -1022.0695800781 - -1022.0206298828 - -1021.9750366211 - -1021.9461059570 - -1021.9348144531 - -1021.8677978516 - -1021.8453979492 - -1021.8165893555 - -1021.7734985352 - -1021.7385253906 - -1021.6931152344 - -1021.6791381836 - -1021.6130981445 - -1021.6024169922 - -1021.5309448242 - -1021.5421752930 - -1021.4487304688 - -1021.4389038086 - -1021.4108886719 - -1021.3379516602 - -1021.3096313477 - -1021.2959594727 - -1021.2059326172 - -1021.1963500977 - -1021.1572265625 - -1021.0949096680 - -1021.0576782227 - -1021.0269165039 - -1020.9724731445 - -1020.9265747070 - -1020.8859863281 - -1020.8448486328 - -1020.7968750000 - -1020.7463989258 - -1020.6946411133 - -1020.6740722656 - -1020.6170043945 - -1020.5174560547 - -1020.5593261719 - -1020.4636230469 - -1020.3933105469 - -1020.3713989258 - -1020.3496093750 - -1020.2359008789 - -1020.2377319336 - -1020.1611938477 - -1020.1211547852 - -1020.0796508789 - -1019.9845581055 - -1019.9877929688 - -1019.9017333984 - -1019.8579101562 - -1019.8018188477 - -1019.7439575195 - -1019.7066650391 - -1019.6325073242 - -1019.5852661133 - -1019.5296630859 - -1019.4808349609 - -1019.4134521484 - -1019.3609619141 - -1019.3008422852 - -1019.2536621094 - -1019.1856079102 - -1019.1293945312 - -1019.0601196289 - -1019.0416870117 - -1018.9223632812 - -1018.9021606445 - -1018.8404541016 - -1018.7571411133 - -1018.7111816406 - -1018.6613159180 - -1018.5657348633 - -1018.5361938477 - -1018.4593505859 - -1018.3938598633 - -1018.3292846680 - -1018.2747192383 - -1018.2004394531 - -1018.1354370117 - -1018.0825805664 - -1017.9890136719 - -1017.9573974609 - -1017.8711547852 - -1017.7885742188 - -1017.7632446289 - -1017.6570434570 - -1017.6031494141 - -1017.5317993164 - -1017.4765014648 - -1017.3711547852 - -1017.3355712891 - -1017.2582397461 - -1017.1699218750 - -1017.0988769531 - -1017.0640258789 - -1016.9467773438 - -1016.8822021484 - -1016.8348388672 - -1016.7293090820 - -1016.6860351562 - -1016.5673217773 - -1016.5445556641 - -1016.4282836914 - -1016.3753051758 - -1016.2809448242 - -1016.2119140625 - -1016.1393432617 - -1016.0676879883 - -1015.9483032227 - -1015.9133300781 - -1015.8292846680 - -1015.7272949219 - -1015.6430664062 - -1015.5899658203 - -1015.5088500977 - -1015.3899536133 - -1015.3247070312 - -1015.2720947266 - -1015.1570434570 - -1015.0620727539 - -1015.0064697266 - -1014.9140014648 - -1014.8236083984 - -1014.7180175781 - -1014.6745605469 - -1014.5424804688 - -1014.4918212891 - -1014.3824462891 - -1014.2766113281 - -1014.2451782227 - -1014.0917968750 - -1014.0354614258 - -1013.9355468750 - -1013.8510742188 - -1013.7502441406 - -1013.6631469727 - -1013.5479125977 - -1013.5145874023 - -1013.3429565430 - -1013.2819824219 - -1013.2183837891 - -1013.0673217773 - -1012.9979858398 - -1012.9066772461 - -1012.7937011719 - -1012.7165527344 - -1012.5761108398 - -1012.5287475586 - -1012.3954467773 - -1012.2951049805 - -1012.2038574219 - -1012.1016845703 - -1011.9918212891 - -1011.8910522461 - -1011.7846069336 - -1011.6850585938 - -1011.5659179688 - -1011.4964599609 - -1011.3244018555 - -1011.2799682617 - -1011.1511230469 - -1011.0171508789 - -1010.9451293945 - -1010.8001098633 - -1010.7280273438 - -1010.5822143555 - -1010.4740600586 - -1010.3781127930 - -1010.2658081055 - -1010.1168823242 - -1010.0281372070 - -1009.9225463867 - -1009.7740478516 - -1009.6741943359 - -1009.5592041016 - -1009.4259033203 - -1009.3204956055 - -1009.1884155273 - -1009.0644531250 - -1008.9501342773 - -1008.8253173828 - -1008.6951293945 - -1008.5695190430 - -1008.4489135742 - -1008.3189086914 - -1008.1956176758 - -1008.0477294922 - -1007.9403076172 - -1007.8032226562 - -1007.6671142578 - -1007.5144042969 - -1007.4282836914 - -1007.2533569336 - -1007.1185913086 - -1007.0164184570 - -1006.8295898438 - -1006.7238159180 - -1006.5900268555 - -1006.4050903320 - -1006.3089599609 - -1006.1500244141 - -1006.0032958984 - -1005.8378906250 - -1005.7467041016 - -1005.5379028320 - -1005.4186401367 - -1005.2729492188 - -1005.1081542969 - -1004.9462280273 - -1004.8339233398 - -1004.6290283203 - -1004.5002441406 - -1004.3420410156 - -1004.1762695312 - -1004.0099487305 - -1003.8716430664 - -1003.6735229492 - -1003.5476074219 - -1003.3605957031 - -1003.1787109375 - -1003.0476074219 - -1002.8600463867 - -1002.6723022461 - -1002.5249023438 - -1002.3392333984 - -1002.1698608398 - -1001.9742431641 - -1001.8083496094 - -1001.6378173828 - -1001.4401855469 - -1001.2600708008 - -1001.0673828125 - -1000.9119262695 - -1000.6840209961 - -1000.5068969727 - -1000.3272705078 - -1000.1322631836 - -999.9153442383 - -999.7301635742 - -999.5577392578 - -999.3065795898 - -999.1463012695 - -998.9199218750 - -998.7119750977 - -998.5268554688 - -998.2878417969 - -998.0849609375 - -997.8917846680 - -997.6446533203 - -997.4405517578 - -997.2355957031 - -996.9708251953 - -996.8031616211 - -996.5382690430 - -996.2987670898 - -996.1101684570 - -995.8701171875 - -995.5889892578 - -995.3876953125 - -995.1795043945 - -994.8801269531 - -994.6481323242 - -994.4348144531 - -994.1667480469 - -993.9084472656 - -993.6618652344 - -993.3987426758 - -993.1927490234 - -992.8433837891 - -992.6444091797 - -992.3690795898 - -992.1008300781 - -991.8085937500 - -991.5587158203 - -991.3014526367 - -990.9786987305 - -990.7281494141 - -990.4398803711 - -990.1505126953 - -989.8646240234 - -989.5789794922 - -989.2797241211 - -988.9780273438 - -988.7211914062 - -988.3630371094 - -988.1014404297 - -987.7796630859 - -987.4767456055 - -987.1599121094 - -986.8590087891 - -986.5150756836 - -986.2441406250 - -985.8815917969 - -985.5635375977 - -985.2562866211 - -984.9258422852 - -984.5688476562 - -984.2379760742 - -983.9406127930 - -983.5665893555 - -983.2077636719 - -982.9232177734 - -982.5170898438 - -982.2139282227 - -981.8115844727 - -981.5052490234 - -981.1153564453 - -980.7820434570 - -980.3811645508 - -980.0549316406 - -979.6743164062 - -979.2924194336 - -978.9268798828 - -978.5660400391 - -978.1882324219 - -977.7836303711 - -977.4404296875 - -977.0375976562 - -976.6474609375 - -976.2722167969 - -975.8684082031 - -975.5021362305 - -975.0910644531 - -974.6940307617 - -974.3114624023 - -973.9050903320 - -973.5013427734 - -973.1094360352 - -972.7000122070 - -972.2874755859 - -971.9017333984 - -971.4644165039 - -971.0682983398 - -970.6757812500 - -970.2315063477 - -969.8369140625 - -969.4179077148 - -968.9966430664 - -968.5903930664 - -968.1541748047 - -967.7453002930 - -967.3476562500 - -966.8920288086 - -966.4890747070 - -966.0693969727 - -965.6475219727 - -965.2120971680 - -964.8115844727 - -964.3704223633 - -963.9335327148 - -963.5546875000 - -963.0852050781 - -962.7016601562 - -962.2259521484 - -961.8566284180 - -961.4122924805 - -960.9628906250 - -960.5699462891 - -960.1680908203 - -959.7130737305 - -959.2769165039 - -958.9046630859 - -958.4778442383 - -958.0023803711 - -957.6588745117 - -957.2159423828 - -956.7758178711 - -956.4101562500 - -955.9317016602 - -955.6016845703 - -955.1293334961 - -954.7331542969 - -954.3696899414 - -953.9002685547 - -953.5464477539 - -953.1242675781 - -952.7260131836 - -952.3336791992 - -951.9334716797 - -951.5478515625 - -951.1493530273 - -950.7678833008 - -950.3813476562 - -949.9826049805 - -949.6271362305 - -949.2042236328 - -948.8634643555 - -948.4855957031 - -948.0855712891 - -947.7444458008 - -947.3795776367 - -946.9948120117 - -946.6445922852 - -946.2834472656 - -945.9255981445 - -945.5818481445 - -945.2239379883 - -944.8626098633 - -944.5496826172 - -944.1932983398 - -943.8475341797 - -943.5185546875 - -943.1866455078 - -942.8682861328 - -942.5040283203 - -942.2081298828 - -941.9027709961 - -941.5579833984 - -941.2478637695 - -940.9484252930 - -940.6492919922 - -940.3109130859 - -940.0397338867 - -939.7239990234 - -939.4477539062 - -939.1247558594 - -938.8787231445 - -938.5311889648 - -938.3335571289 - -937.9683837891 - -937.7382812500 - -937.4712524414 - -937.1768188477 - -936.9116210938 - -936.6657104492 - -936.3906860352 - -936.1297607422 - -935.8758544922 - -935.6315917969 - -935.3726196289 - -935.1392822266 - -934.8676147461 - -934.6580200195 - -934.4118652344 - -934.1646118164 - -933.9239501953 - -933.7487792969 - -933.4590454102 - -933.2634277344 - -933.0402832031 - -932.8244628906 - -932.5970458984 - -932.3908691406 - -932.1968994141 - -931.9494628906 - -931.7926025391 - -931.5521850586 - -931.3645629883 - -931.1680908203 - -930.9638671875 - -930.7933349609 - -930.5515136719 - -930.4191894531 - -930.1954956055 - -930.0330200195 - -929.8187866211 - -929.6632080078 - -929.4943847656 - -929.2927246094 - -929.0991210938 - -928.9901733398 - -928.7787475586 - -928.5866699219 - -928.4656982422 - -928.2807617188 - -928.1185302734 - -927.9385375977 - -927.8118286133 - -927.6179809570 - -927.4997558594 - -927.3087768555 - -927.1678466797 - -927.0210571289 - -926.8789672852 - -926.6903686523 - -926.5844726562 - -926.4169311523 - -926.2658081055 - -926.1494750977 - -925.9472656250 - -925.8863525391 - -925.6942138672 - -925.5421142578 - -925.4439086914 - -925.2858276367 - -925.1464843750 - -925.0076904297 - -924.8851928711 - -924.7429199219 - -924.6151733398 - -924.4756469727 - -924.3575439453 - -924.2133178711 - -924.0872192383 - -923.9616699219 - -923.8234863281 - -923.7171020508 - -923.5729370117 - -923.4368896484 - -923.3432006836 - -923.1815795898 - -923.0739135742 - -922.9582519531 - -922.7992553711 - -922.7344360352 - -922.5582885742 - -922.4417724609 - -922.3553466797 - -922.1972656250 - -922.0761108398 - -921.9768676758 - -921.8483886719 - -921.7083740234 - -921.6018066406 - -921.4898071289 - -921.3288574219 - -921.2750244141 - -921.0819702148 - -921.0060424805 - -920.8796997070 - -920.7614135742 - -920.6094970703 - -920.5267333984 - -920.4074096680 - -920.2312011719 - -920.1732788086 - -920.0248413086 - -919.8992309570 - -919.8008422852 - -919.6480712891 - -919.5349731445 - -919.4417114258 - -919.2778320312 - -919.1770629883 - -919.0526733398 - -918.9410400391 - -918.7915649414 - -918.6950683594 - -918.5453491211 - -918.4473266602 - -918.2948608398 - -918.1861572266 - -918.0630493164 - -917.9442749023 - -917.7823486328 - -917.6914062500 - -917.5562133789 - -917.4157104492 - -917.2962646484 - -917.1823730469 - -917.0236816406 - -916.9140014648 - -916.7741088867 - -916.6531982422 - -916.4937133789 - -916.4057617188 - -916.2299804688 - -916.1434326172 - -915.9635620117 - -915.8470458984 - -915.7414550781 - -915.5319213867 - -915.4603271484 - -915.3061523438 - -915.1512451172 - -915.0393066406 - -914.8773803711 - -914.7447509766 - -914.6220092773 - -914.4702148438 - -914.3123779297 - -914.1845703125 - -914.0648803711 - -913.8629150391 - -913.7649536133 - -913.6078491211 - -913.4552001953 - -913.3156738281 - -913.1522216797 - -913.0313720703 - -912.8641967773 - -912.6806030273 - -912.6042480469 - -912.3937988281 - -912.2365112305 - -912.1271972656 - -911.9419555664 - -911.7844848633 - -911.6464233398 - -911.4500122070 - -911.3573608398 - -911.1383666992 - -910.9993896484 - -910.8466796875 - -910.6777954102 - -910.5440063477 - -910.3433227539 - -910.1812744141 - -910.0413208008 - -909.8754882812 - -909.6864013672 - -909.5145263672 - -909.3834228516 - -909.1934814453 - -908.9955444336 - -908.8732910156 - -908.6881713867 - -908.4947509766 - -908.3110351562 - -908.1824340820 - -907.9903564453 - -907.7650756836 - -907.6445312500 - -907.4579467773 - -907.2644653320 - -907.0798950195 - -906.9067993164 - -906.7203369141 - -906.5663452148 - -906.3309326172 - -906.1894531250 - -905.9664306641 - -905.8104248047 - -905.6209106445 - -905.4085083008 - -905.2612915039 - -905.0237426758 - -904.8487548828 - -904.6761474609 - -904.4756469727 - -904.2619628906 - -904.0905151367 - -903.8768310547 - -903.6719970703 - -903.5015869141 - -903.2974853516 - -903.0759887695 - -902.8803710938 - -902.6922607422 - -902.4829711914 - -902.2830810547 - -902.0714111328 - -901.8560791016 - -901.6678466797 - -901.4536132812 - -901.2404785156 - -901.0343627930 - -900.8267211914 - -900.5830078125 - -900.4248657227 - -900.1989746094 - -899.9570922852 - -899.7793579102 - -899.5379638672 - -899.3011474609 - -899.1317749023 - -898.9041748047 - -898.6469726562 - -898.4605712891 - -898.2326660156 - -897.9948730469 - -897.7870483398 - -897.5637207031 - -897.3474731445 - -897.0935668945 - -896.8751831055 - -896.6511840820 - -896.4395751953 - -896.1821289062 - -895.9569702148 - -895.7330932617 - -895.4721679688 - -895.2805786133 - -895.0288085938 - -894.7975463867 - -894.5641479492 - -894.2948608398 - -894.0992431641 - -893.8189697266 - -893.6303100586 - -893.3688964844 - -893.0994262695 - -892.8674926758 - -892.6571044922 - -892.3604125977 - -892.1608886719 - -891.9215087891 - -891.6373901367 - -891.4181518555 - -891.1298217773 - -890.9218750000 - -890.6453857422 - -890.4135131836 - -890.1729125977 - -889.8851928711 - -889.6649780273 - -889.3802490234 - -889.1289672852 - -888.8987426758 - -888.6100463867 - -888.3780517578 - -888.1044921875 - -887.8242797852 - -887.5814819336 - -887.3391113281 - -887.0447998047 - -886.8203125000 - -886.5083618164 - -886.2677001953 - -885.9895019531 - -885.7388305664 - -885.4667968750 - -885.2047119141 - -884.9320678711 - -884.6553955078 - -884.3883056641 - -884.0949096680 - -883.8601074219 - -883.5781860352 - -883.2932739258 - -883.0368652344 - -882.7699584961 - -882.4437866211 - -882.2183227539 - -881.8890991211 - -881.6511840820 - -881.3639526367 - -881.0901489258 - -880.7890014648 - -880.5444946289 - -880.2284545898 - -879.9457397461 - -879.6492919922 - -879.3977661133 - -879.1037597656 - -878.8147583008 - -878.5033569336 - -878.2705078125 - -877.9127197266 - -877.6529541016 - -877.3618774414 - -877.0961914062 - -876.7723999023 - -876.4885253906 - -876.2086791992 - -875.8732299805 - -875.6122436523 - -875.3037719727 - -875.0238037109 - -874.7159423828 - -874.4299316406 - -874.1326904297 - -873.8421630859 - -873.4883422852 - -873.2518920898 - -872.9007568359 - -872.6083984375 - -872.3493652344 - -871.9927978516 - -871.7307739258 - -871.4169921875 - -871.1136474609 - -870.7955932617 - -870.5041503906 - -870.1739501953 - -869.8565063477 - -869.5585937500 - -869.2982177734 - -868.9168090820 - -868.6309204102 - -868.3342895508 - -867.9997558594 - -867.6761474609 - -867.3561401367 - -867.1035766602 - -866.7457275391 - -866.4160156250 - -866.1394042969 - -865.7934570312 - -865.4677124023 - -865.1564331055 - -864.8213500977 - -864.5407714844 - -864.2216186523 - -863.8486938477 - -863.5825805664 - -863.2584228516 - -862.9321899414 - -862.5819091797 - -862.2922973633 - -861.9801025391 - -861.6403198242 - -861.2551269531 - -861.0007324219 - -860.6381835938 - -860.3029174805 - -859.9955444336 - -859.6600952148 - -859.3515014648 - -858.9913940430 - -858.6604614258 - -858.3257446289 - -857.9972534180 - -857.6522827148 - -857.3591308594 - -856.9647216797 - -856.6773071289 - -856.2932739258 - -855.9821777344 - -855.6304321289 - -855.3375854492 - -854.9330444336 - -854.6735229492 - -854.2752685547 - -853.9751586914 - -853.6270141602 - -853.2847290039 - -852.9442749023 - -852.6301879883 - -852.2384643555 - -851.9548950195 - -851.5849609375 - -851.2335205078 - -850.9188842773 - -850.5537719727 - -850.2261962891 - -849.8676757812 - -849.5314331055 - -849.1555786133 - -848.8244018555 - -848.4525146484 - -848.1130371094 - -847.7634277344 - -847.3862915039 - -847.0385131836 - -846.6774902344 - -846.3268432617 - -845.9583740234 - -845.6008300781 - -845.2355957031 - -844.8800659180 - -844.5548095703 - -844.1765747070 - -843.8088378906 - -843.4974365234 - -843.1312866211 - -842.7631225586 - -842.4604492188 - -842.1026611328 - -841.7803955078 - -841.3882446289 - -841.1282958984 - -840.7607421875 - -840.4658813477 - -840.1560668945 - -839.8109130859 - -839.5309448242 - -839.2006225586 - -838.8780517578 - -838.5594482422 - -838.2888183594 - -837.9125976562 - -837.6629028320 - -837.2902832031 - -836.9634399414 - -836.6860961914 - -836.3610229492 - -835.9571533203 - -835.5858764648 - -835.4026489258 - -835.0090332031 - -834.3173217773 - -832.8172607422 - -832.1422729492 - -831.6796875000 - -831.3757324219 - -831.0586547852 - -830.5621948242 - -830.1185302734 - -829.7832031250 - -829.4599609375 - -828.9455566406 - -828.5397949219 - -828.2127075195 - -827.8330688477 - -827.3286132812 - -826.9934082031 - -826.6012573242 - -826.1790771484 - -825.8031005859 - -825.3479003906 - -825.0061035156 - -824.5793457031 - -824.1951293945 - -823.7485961914 - -823.3849487305 - -822.9912109375 - -822.5639038086 - -822.1541748047 - -821.7717895508 - -821.3693237305 - -820.9643554688 - -820.5180053711 - -820.1897583008 - -819.7133789062 - -819.3715820312 - -818.8991699219 - -818.5492553711 - -818.1257934570 - -817.7069091797 - -817.3118286133 - -816.9141235352 - -816.4908447266 - -816.0841674805 - -815.6959228516 - -815.2758789062 - -814.8523559570 - -814.4686279297 - -814.0670776367 - -813.6240234375 - -813.2340087891 - -812.8412475586 - -812.4092407227 - -812.0194091797 - -811.5712280273 - -811.2094726562 - -810.7964477539 - -810.3325805664 - -809.9724121094 - -809.5505371094 - -809.1517944336 - -808.6968994141 - -808.3178100586 - -807.9273071289 - -807.4703369141 - -807.0779418945 - -806.6660156250 - -806.2534790039 - -805.8511962891 - -805.4064941406 - -805.0111694336 - -804.6152954102 - -804.1753540039 - -803.7689208984 - -803.3475341797 - -802.9434204102 - -802.5421752930 - -802.0916748047 - -801.6732788086 - -801.3203125000 - -800.8475952148 - -800.4182128906 - -800.0546264648 - -799.6032714844 - -799.1973876953 - -798.7733154297 - -798.3444213867 - -797.9594116211 - -797.5306396484 - -797.0742187500 - -796.6945190430 - -796.2908325195 - -795.8279418945 - -795.4212646484 - -795.0258178711 - -794.5857543945 - -794.1608276367 - -793.7573242188 - -793.3090820312 - -792.9338378906 - -792.4617919922 - -792.0706787109 - -791.6489868164 - -791.2029418945 - -790.8186645508 - -790.3574829102 - -789.9575805664 - -789.5219116211 - -789.1158447266 - -788.6835937500 - -788.2338256836 - -787.8558959961 - -787.4146118164 - -786.9594116211 - -786.5736694336 - -786.1380615234 - -785.7086181641 - -785.2793579102 - -784.8569335938 - -784.4432983398 - -784.0101318359 - -783.5562133789 - -783.1792602539 - -782.7125244141 - -782.3021850586 - -781.8730468750 - -781.4337768555 - -781.0340576172 - -780.5796508789 - -780.1376953125 - -779.7785644531 - -779.2512817383 - -778.8987426758 - -778.4357299805 - -778.0162353516 - -777.5708007812 - -777.1671142578 - -776.7244873047 - -776.2682495117 - -775.8959350586 - -775.3937988281 - -775.0252075195 - -774.5567016602 - -774.1246337891 - -773.7219238281 - -773.2556152344 - -772.8347167969 - -772.4218750000 - -771.9523315430 - -771.5457153320 - -771.1171875000 - -770.6486816406 - -770.2530517578 - -769.8032836914 - -769.3669433594 - -768.9241943359 - -768.5155639648 - -768.0606689453 - -767.6188354492 - -767.2042236328 - -766.7550659180 - -766.3215332031 - -765.8741455078 - -765.4677734375 - -764.9948120117 - -764.5875244141 - -764.1227416992 - -763.7249145508 - -763.2445068359 - -762.8212280273 - -762.4122924805 - -761.9329833984 - -761.4989624023 - -761.1032714844 - -760.6107177734 - -760.1861572266 - -759.7783203125 - -759.3085327148 - -758.8505249023 - -758.4707641602 - -757.9780883789 - -757.5474853516 - -757.1301879883 - -756.6584472656 - -756.2563476562 - -755.7667236328 - -755.3559570312 - -754.9229125977 - -754.4682006836 - -753.9833984375 - -753.6272583008 - -753.1379394531 - -752.6723632812 - -752.2552490234 - -751.8426513672 - -751.3392333984 - -750.9311523438 - -750.4860229492 - -750.0316772461 - -749.6174926758 - -749.1055297852 - -748.7321166992 - -748.2657470703 - -747.8024291992 - -747.3692016602 - -746.9284667969 - -746.4877929688 - -746.0206298828 - -745.5868530273 - -745.1543579102 - -744.6928100586 - -744.2445068359 - -743.8034057617 - -743.3613891602 - -742.9127197266 - -742.4447631836 - -742.0415039062 - -741.5378417969 - -741.1492309570 - -740.6468505859 - -740.2409667969 - -739.7669067383 - -739.3278198242 - -738.8792114258 - -738.4321289062 - -737.9736938477 - -737.5421752930 - -737.0773315430 - -736.6347656250 - -736.1807861328 - -735.7356567383 - -735.2844238281 - -734.8259277344 - -734.3970947266 - -733.9094238281 - -733.5000000000 - -733.0276489258 - -732.5580444336 - -732.1654663086 - -731.6434326172 - -731.2400512695 - -730.7722778320 - -730.3286132812 - -729.8455810547 - -729.4382324219 - -728.9626464844 - -728.4962158203 - -728.0603027344 - -727.6207275391 - -727.1438598633 - -726.6810913086 - -726.2656250000 - -725.7836914062 - -725.3402709961 - -724.8682861328 - -724.4524536133 - -723.9565429688 - -723.5302734375 - -723.0550537109 - -722.6140136719 - -722.1567382812 - -721.6982421875 - -721.2316894531 - -720.8009033203 - -720.3214111328 - -719.8816528320 - -719.4031982422 - -718.9714355469 - -718.5062866211 - -718.0437011719 - -717.5808715820 - -717.1453247070 - -716.6781616211 - -716.2023925781 - -715.7713623047 - -715.2955322266 - -714.8518676758 - -714.3666381836 - -713.9458007812 - -713.4418334961 - -713.0294189453 - -712.5372314453 - -712.0735473633 - -711.6513061523 - -711.1533813477 - -710.7032470703 - -710.2476196289 - -709.8024902344 - -709.2935791016 - -708.8886108398 - -708.3804321289 - -707.9624023438 - -707.4534912109 - -707.0115356445 - -706.5816650391 - -706.0573120117 - -705.6285400391 - -705.1822509766 - -704.6817016602 - -704.2410888672 - -703.7609863281 - -703.3235473633 - -702.8258056641 - -702.3776245117 - -701.9140014648 - -701.4396362305 - -700.9784545898 - -700.5172729492 - -700.0250854492 - -699.5999145508 - -699.0882568359 - -698.6612548828 - -698.1542358398 - -697.7108154297 - -697.2453613281 - -696.7545166016 - -696.2988891602 - -695.8208618164 - -695.3682861328 - -694.8847656250 - -694.3905639648 - -693.9587402344 - -693.4815063477 - -692.9758911133 - -692.5171508789 - -692.0736694336 - -691.5612792969 - -691.1015625000 - -690.6210937500 - -690.1582641602 - -689.6770629883 - -689.1896362305 - -688.7122192383 - -688.2601928711 - -687.7517700195 - -687.2930908203 - -686.7872314453 - -686.3474121094 - -685.8344116211 - -685.3721923828 - -684.8557739258 - -684.4335937500 - -683.8964233398 - -683.4380493164 - -682.9276123047 - -682.4884033203 - -681.9630737305 - -681.4756469727 - -681.0153198242 - -680.5055541992 - -680.0175781250 - -679.5449218750 - -679.0163574219 - -678.5692749023 - -678.0536499023 - -677.5507812500 - -677.0701293945 - -676.5863647461 - -676.0636596680 - -675.5741577148 - -675.0916137695 - -674.5846557617 - -674.0531616211 - -673.6132202148 - -673.0488891602 - -672.5933837891 - -672.0478515625 - -671.5689697266 - -671.0618896484 - -670.5339965820 - -670.0283203125 - -669.5442504883 - -669.0068359375 - -668.4832763672 - -667.9912719727 - -667.4824829102 - -666.9323120117 - -666.4314575195 - -665.9158935547 - -665.3973999023 - -664.8461914062 - -664.3421020508 - -663.8193359375 - -663.2844848633 - -662.7491455078 - -662.2086791992 - -661.7184448242 - -661.1329956055 - -660.6119995117 - -660.0956420898 - -659.5299072266 - -658.9921264648 - -658.4583740234 - -657.9037475586 - -657.3544921875 - -656.8132934570 - -656.2543945312 - -655.6932373047 - -655.1505126953 - -654.5925903320 - -654.0081787109 - -653.4862670898 - -652.8747558594 - -652.3492431641 - -651.7616577148 - -651.1617431641 - -650.6453247070 - -650.0389404297 - -649.4182128906 - -648.9138183594 - -648.2963256836 - -647.6771850586 - -647.1238403320 - -646.5452880859 - -645.9140014648 - -645.3171386719 - -644.7484130859 - -644.1197509766 - -643.5282592773 - -642.8995971680 - -642.2928466797 - -641.7323608398 - -641.0230712891 - -640.4515380859 - -639.8400268555 - -639.2041015625 - -638.5333862305 - -637.9537353516 - -637.3109130859 - -636.6409301758 - -636.0087890625 - -635.3695068359 - -634.7208251953 - -634.0532836914 - -633.4072875977 - -632.7390747070 - -632.0898437500 - -631.4274902344 - -630.7178955078 - -630.1019287109 - -629.3815307617 - -628.7078247070 - -628.0411987305 - -627.3435058594 - -626.6254882812 - -625.9919433594 - -625.2371826172 - -624.5452880859 - -623.8642578125 - -623.1442260742 - -622.4059448242 - -621.6985473633 - -621.0172729492 - -620.2355957031 - -619.5362548828 - -618.8118896484 - -618.0631103516 - -617.3367919922 - -616.5628051758 - -615.8611450195 - -615.0723876953 - -614.3473510742 - -613.5556030273 - -612.8244628906 - -612.0462646484 - -611.2667236328 - -610.5085449219 - -609.7321777344 - -608.9560546875 - -608.1638793945 - -607.3947143555 - -606.5889282227 - -605.7934570312 - -605.0163574219 - -604.1886596680 - -603.4155883789 - -602.6038208008 - -601.7793579102 - -600.9871215820 - -600.1672363281 - -599.3407592773 - -598.5322265625 - -597.7141723633 - -596.8575439453 - -596.0628662109 - -595.2147827148 - -594.3693237305 - -593.5623779297 - -592.7100830078 - -591.8571166992 - -591.0310668945 - -590.1693725586 - -589.3386230469 - -588.4644165039 - -587.6257324219 - -586.8076171875 - -585.8912353516 - -585.0783691406 - -584.2145996094 - -583.3403320312 - -582.5022583008 - -581.6227416992 - -580.7704467773 - -579.8943481445 - -579.0402832031 - -578.1810913086 - -577.3172607422 - -576.4088134766 - -575.6123046875 - -574.6807861328 - -573.8492431641 - -572.9592895508 - -572.1228637695 - -571.2536621094 - -570.3387451172 - -569.5206909180 - -568.6663818359 - -567.7298583984 - -566.9590454102 - -566.0280151367 - -565.1900634766 - -564.3447265625 - -563.4229736328 - -562.6477050781 - -561.7349243164 - -560.8828735352 - -560.0735473633 - -559.1530761719 - -558.3623046875 - -557.4844360352 - -556.6336059570 - -555.8237915039 - -554.9397583008 - -554.1265258789 - -553.2911987305 - -552.4475097656 - -551.6272583008 - -550.7766723633 - -549.9869384766 - -549.1139526367 - -548.3228759766 - -547.5218505859 - -546.6716308594 - -545.8770751953 - -545.0955810547 - -544.2541503906 - -543.4669189453 - -542.6776733398 - -541.8746337891 - -541.0937500000 - -540.3126831055 - -539.5068969727 - -538.7557983398 - -537.9848022461 - -537.1906127930 - -536.4418945312 - -535.6811523438 - -534.9263305664 - -534.1443481445 - -533.4172973633 - -532.6854248047 - -531.9185791016 - -531.1925659180 - -530.4667358398 - -529.7387084961 - -528.9987792969 - -528.2905273438 - -527.5772705078 - -526.8602905273 - -526.1508789062 - -525.4738159180 - -524.7236938477 - -524.1055908203 - -523.3369140625 - -522.7174072266 - -522.0088500977 - -521.3326416016 - -520.6717529297 - -520.0086669922 - -519.3258666992 - -518.6836547852 - -518.0363159180 - -517.3613891602 - -516.7438964844 - -516.1018066406 - -515.4303588867 - -514.8408813477 - -514.2119750977 - -513.5458374023 - -512.9573974609 - -512.3681030273 - -511.6988830566 - -511.1283874512 - -510.5201110840 - -509.9289245605 - -509.3138122559 - -508.7301940918 - -508.1636962891 - -507.5510253906 - -507.0000610352 - -506.3844604492 - -505.8589782715 - -505.2681274414 - -504.6878967285 - -504.1589660645 - -503.5854797363 - -503.0268554688 - -502.4778747559 - -501.9546203613 - -501.3684997559 - -500.8605346680 - -500.3190002441 - -499.7807006836 - -499.2327270508 - -498.7449645996 - -498.1910095215 - -497.6686401367 - -497.1761779785 - -496.6189270020 - -496.1578369141 - -495.6053466797 - -495.1109008789 - -494.6111450195 - -494.1284790039 - -493.5846557617 - -493.1280212402 - -492.6094360352 - -492.1535034180 - -491.6121215820 - -491.1662902832 - -490.6713562012 - -490.1813354492 - -489.7243652344 - -489.1952209473 - -488.7994689941 - -488.2702331543 - -487.7916870117 - -487.3683776855 - -486.8625793457 - -486.4104614258 - -485.9537963867 - -485.4727478027 - -485.0310974121 - -484.5743103027 - -484.1058654785 - -483.6606445312 - -483.1943359375 - -482.7617187500 - -482.2961730957 - -481.8406372070 - -481.4186706543 - -480.9660339355 - -480.4925231934 - -480.0863647461 - -479.6236267090 - -479.1921081543 - -478.7461242676 - -478.2899475098 - -477.9144897461 - -477.4106445312 - -476.9829101562 - -476.6023864746 - -476.1071472168 - -475.7050476074 - -475.2563476562 - -474.8587341309 - -474.3903198242 - -473.9692993164 - -473.5604248047 - -473.0967407227 - -472.7203979492 - -472.2274780273 - -471.8554687500 - -471.4174194336 - -470.9812011719 - -470.5531005859 - -470.1432800293 - -469.7304077148 - -469.2540588379 - -468.8799743652 - -468.4480895996 - -468.0186767578 - -467.5952758789 - -467.1717834473 - -466.7431335449 - -466.3650817871 - -465.8670654297 - -465.5060119629 - -465.0620117188 - -464.6645202637 - -464.1968383789 - -463.8279724121 - -463.3646545410 - -462.9822998047 - -462.5146789551 - -462.1265258789 - -461.7086791992 - -461.2863159180 - -460.8263854980 - -460.4486999512 - -460.0164489746 - -459.5905456543 - -459.1533508301 - -458.7655639648 - -458.3238525391 - -457.8977355957 - -457.4627990723 - -457.0752258301 - -456.6088562012 - -456.2196960449 - -455.7654113770 - -455.3817138672 - -454.9211120605 - -454.4977416992 - -454.1044006348 - -453.6199951172 - -453.2341918945 - -452.8160095215 - -452.3429870605 - -451.9682006836 - -451.5009460449 - -451.0811157227 - -450.6733093262 - -450.2263183594 - -449.7820739746 - -449.3759765625 - -448.9473876953 - -448.4738464355 - -448.0791015625 - -447.6485900879 - -447.1848144531 - -446.7683410645 - -446.3413085938 - -445.8923950195 - -445.4588317871 - -445.0028381348 - -444.6082763672 - -444.1407165527 - -443.6647644043 - -443.3070373535 - -442.8036804199 - -442.3717651367 - -441.9503784180 - -441.4750061035 - -441.0714416504 - -440.5923461914 - -440.1650390625 - -439.7066650391 - -439.2823791504 - -438.8352966309 - -438.3738403320 - -437.9105224609 - -437.4945373535 - -437.0331115723 - -436.5765380859 - -436.1098022461 - -435.6874694824 - -435.2269592285 - -434.7421569824 - -434.3318481445 - -433.8582458496 - -433.3966064453 - -432.9154052734 - -432.5132446289 - -432.0233154297 - -431.5301513672 - -431.1200561523 - -430.6470947266 - -430.1701660156 - -429.7114257812 - -429.2426757812 - -428.7910156250 - -428.3281250000 - -427.8340148926 - -427.3992614746 - -426.8999023438 - -426.4432983398 - -425.9979858398 - -425.4960327148 - -425.0521545410 - -424.5401306152 - -424.0956115723 - -423.6313781738 - -423.1341857910 - -422.6668701172 - -422.1951293945 - -421.7040100098 - -421.2078552246 - -420.7872314453 - -420.2567138672 - -419.7909545898 - -419.3013916016 - -418.8190612793 - -418.3562011719 - -417.8511352539 - -417.3717346191 - -416.8706359863 - -416.4007873535 - -415.9100341797 - -415.4119873047 - -414.9304809570 - -414.4307861328 - -413.9198303223 - -413.4750976562 - -412.9707641602 - -412.4476318359 - -411.9955444336 - -411.4573974609 - -410.9681396484 - -410.4834594727 - -410.0140380859 - -409.4403686523 - -409.0030822754 - -408.4832153320 - -407.9640197754 - -407.4801940918 - -406.9795532227 - -406.4834594727 - -405.9400329590 - -405.4525756836 - -404.9565734863 - -404.4511718750 - -403.9182739258 - -403.4165039062 - -402.9225463867 - -402.3698730469 - -401.8869323730 - -401.4027099609 - -400.8489685059 - -400.3554992676 - -399.8017272949 - -399.3270874023 - -398.7922668457 - -398.2854919434 - -397.7653808594 - -397.2355346680 - -396.7099609375 - -396.1915893555 - -395.6735839844 - -395.1696777344 - -394.6436462402 - -394.0882873535 - -393.6107788086 - -393.0140075684 - -392.5546264648 - -391.9813842773 - -391.4873657227 - -390.9756469727 - -390.3768310547 - -389.9196472168 - -389.3465576172 - -388.7980957031 - -388.3123779297 - -387.7560424805 - -387.2138977051 - -386.6925659180 - -386.1394348145 - -385.5929565430 - -385.0950012207 - -384.5337829590 - -384.0061950684 - -383.4435729980 - -382.9085083008 - -382.3757629395 - -381.8252868652 - -381.2980041504 - -380.7531127930 - -380.2079772949 - -379.6473083496 - -379.1200866699 - -378.5469055176 - -378.0254516602 - -377.4860534668 - -376.9216003418 - -376.3895568848 - -375.8390808105 - -375.2634582520 - -374.7408142090 - -374.1407470703 - -373.6467895508 - -373.0628356934 - -372.5283813477 - -371.9612731934 - -371.4209594727 - -370.8516540527 - -370.2951049805 - -369.7017211914 - -369.2188110352 - -368.6064758301 - -368.0825195312 - -367.4822998047 - -366.9685058594 - -366.3562011719 - -365.8140869141 - -365.2573852539 - -364.6983642578 - -364.1531066895 - -363.5335388184 - -363.0269470215 - -362.4112548828 - -361.8622131348 - -361.3018493652 - -360.7427978516 - -360.1632690430 - -359.6173400879 - -359.0240783691 - -358.4956054688 - -357.8532714844 - -357.3419494629 - -356.7292785645 - -356.1693725586 - -355.6375122070 - -355.0088195801 - -354.4703979492 - -353.9134216309 - -353.3198547363 - -352.7216186523 - -352.1915893555 - -351.5760498047 - -350.9833984375 - -350.4284362793 - -349.8912353516 - -349.2568969727 - -348.6772460938 - -348.1381225586 - -347.5193786621 - -346.9284057617 - -346.3605957031 - -345.8074645996 - -345.2120056152 - -344.5974731445 - -344.0646667480 - -343.4489135742 - -342.8430175781 - -342.2812805176 - -341.6881103516 - -341.1130371094 - -340.5373840332 - -339.9239501953 - -339.3677978516 - -338.7704467773 - -338.2005310059 - -337.5773315430 - -337.0191650391 - -336.4488830566 - -335.8215332031 - -335.2059326172 - -334.6791687012 - -334.0146789551 - -333.4567871094 - -332.8836669922 - -332.2615356445 - -331.6984252930 - -331.0815429688 - -330.4827575684 - -329.8899230957 - -329.2809753418 - -328.6849060059 - -328.1415405273 - -327.4638366699 - -326.9208679199 - -326.2749023438 - -325.7019042969 - -325.1017456055 - -324.5172119141 - -323.8649902344 - -323.3657226562 - -322.6782531738 - -322.1246643066 - -321.5079650879 - -320.9376220703 - -320.3026123047 - -319.7258300781 - -319.1056823730 - -318.5361938477 - -317.9195556641 - -317.2932434082 - -316.7294616699 - -316.1168212891 - -315.5078735352 - -314.8945312500 - -314.3150634766 - -313.6701660156 - -313.0728759766 - -312.4550476074 - -311.8571166992 - -311.2390441895 - -310.6099853516 - -310.0125427246 - -309.3849487305 - -308.7655334473 - -308.1767578125 - -307.5188293457 - -306.9380187988 - -306.2785339355 - -305.7468261719 - -305.0858764648 - -304.4613647461 - -303.8951416016 - -303.2869262695 - -302.6600341797 - -302.0860290527 - -301.4793701172 - -300.9272460938 - -300.2522583008 - -299.7498474121 - -299.1114807129 - -298.6015319824 - -298.0032958984 - -297.4210815430 - -296.8734741211 - -296.2950439453 - -295.7621765137 - -295.1225891113 - -294.6124572754 - -294.0308837891 - -293.5248413086 - -292.8255004883 - -292.2956542969 - -291.8073120117 - -291.2010803223 - -290.4827880859 - -289.9134521484 - -289.5395812988 - -288.8531494141 - -287.7338562012 - -285.2650146484 - -284.1516418457 - -283.4418029785 - -283.0266113281 - -282.4766845703 - -281.7268371582 - -281.0803527832 - -280.5731506348 - -280.0456542969 - -279.2984313965 - -278.7396850586 - -278.1767272949 - -277.6305847168 - -276.9282226562 - -276.3927001953 - -275.7948913574 - -275.1999816895 - -274.6091003418 - -273.9623718262 - -273.4386901855 - -272.7822875977 - -272.2393188477 - -271.5474853516 - -270.9837036133 - -270.3672180176 - -269.7527465820 - -269.1138000488 - -268.5030212402 - -267.9080200195 - -267.2737426758 - -266.5915527344 - -266.0616760254 - -265.3637695312 - -264.7943115234 - -264.0993041992 - -263.5198669434 - -262.8787536621 - -262.2347106934 - -261.6238403320 - -260.9911804199 - -260.3510742188 - -259.7336425781 - -259.1140136719 - -258.4892883301 - -257.8317871094 - -257.2396545410 - -256.6155090332 - -255.9704284668 - -255.3536834717 - -254.7669372559 - -254.1172485352 - -253.4979553223 - -252.8765869141 - -252.2713775635 - -251.6651763916 - -250.9918060303 - -250.4199829102 - -249.7827453613 - -249.2003936768 - -248.4981994629 - -247.9623870850 - -247.3200683594 - -246.6841888428 - -246.0750122070 - -245.4727478027 - -244.8221130371 - -244.2450103760 - -243.5550842285 - -242.9819641113 - -242.3740997314 - -241.7322998047 - -241.1204071045 - -240.4960937500 - -239.8697509766 - -239.2809600830 - -238.6248321533 - -238.0196533203 - -237.4617919922 - -236.7657470703 - -236.1845092773 - -235.5825347900 - -234.9226989746 - -234.3269805908 - -233.7286529541 - -233.0853271484 - -232.5019989014 - -231.8756103516 - -231.2603912354 - -230.6519012451 - -230.0543670654 - -229.4234771729 - -228.8129730225 - -228.2291259766 - -227.5911865234 - -226.9553985596 - -226.3861846924 - -225.7378997803 - -225.1443939209 - -224.5229949951 - -223.9389343262 - -223.3219909668 - -222.6723632812 - -222.1105346680 - -221.4779968262 - -220.8450012207 - -220.2559204102 - -219.6716308594 - -219.0479583740 - -218.3989257812 - -217.8475036621 - -217.2153015137 - -216.5780639648 - -216.0046691895 - -215.4151916504 - -214.7699432373 - -214.1885986328 - -213.5932922363 - -212.9679107666 - -212.3978881836 - -211.7295837402 - -211.1801300049 - -210.5377197266 - -209.9584960938 - -209.3465881348 - -208.7420654297 - -208.1597290039 - -207.5540313721 - -206.9112396240 - -206.3873291016 - -205.6927795410 - -205.1474914551 - -204.5306243896 - -203.9403991699 - -203.3445587158 - -202.7261047363 - -202.1504211426 - -201.5099792480 - -200.9680786133 - -200.2943572998 - -199.7821807861 - -199.1396179199 - -198.5422668457 - -197.9531402588 - -197.3474578857 - -196.7500152588 - -196.1791381836 - -195.5426940918 - -195.0025482178 - -194.3790893555 - -193.7842102051 - -193.1958160400 - -192.5934143066 - -192.0110473633 - -191.4036712646 - -190.8325500488 - -190.2467498779 - -189.6345825195 - -189.0677337646 - -188.4598846436 - -187.8711242676 - -187.2746429443 - -186.7126312256 - -186.0979156494 - -185.5334167480 - -184.9339447021 - -184.3541717529 - -183.7499542236 - -183.1570587158 - -182.6151733398 - -182.0003204346 - -181.4061584473 - -180.8546905518 - -180.2352600098 - -179.6460723877 - -179.1122589111 - -178.5017242432 - -177.8814697266 - -177.3831939697 - -176.7265167236 - -176.1629486084 - -175.6190795898 - -174.9928283691 - -174.4806518555 - -173.8278503418 - -173.2974548340 - -172.7034454346 - -172.1175842285 - -171.5291442871 - -171.0064697266 - -170.4062042236 - -169.8143157959 - -169.2465057373 - -168.6883544922 - -168.0883178711 - -167.5242156982 - -166.9788055420 - -166.3749237061 - -165.8331146240 - -165.1971282959 - -164.6869812012 - -164.1250305176 - -163.5178985596 - -162.9654846191 - -162.4048309326 - -161.8231353760 - -161.2458190918 - -160.6935119629 - -160.1465148926 - -159.5472869873 - -158.9860382080 - -158.4262390137 - -157.8773956299 - -157.3014831543 - -156.7143554688 - -156.2186584473 - -155.5753479004 - -155.0666809082 - -154.4829254150 - -153.9520263672 - -153.3490295410 - -152.8229217529 - -152.2448883057 - -151.6811370850 - -151.1501770020 - -150.5904693604 - -150.0183258057 - -149.4716186523 - -148.9076385498 - -148.3537902832 - -147.8101196289 - -147.2420043945 - -146.7040557861 - -146.1150665283 - -145.6012573242 - -145.0378265381 - -144.4714050293 - -143.9634246826 - -143.3399200439 - -142.8569946289 - -142.2873687744 - -141.7343292236 - -141.1717987061 - -140.6540679932 - -140.0796356201 - -139.5323944092 - -139.0157165527 - -138.4516143799 - -137.9105529785 - -137.3395690918 - -136.8336944580 - -136.2830352783 - -135.7266540527 - -135.1950683594 - -134.6559600830 - -134.0923919678 - -133.5764465332 - -133.0212402344 - -132.4921417236 - -131.9409790039 - -131.3919982910 - -130.8809967041 - -130.3354034424 - -129.7638397217 - -129.2719726562 - -128.7072296143 - -128.1819763184 - -127.6291198730 - -127.1192855835 - -126.5611190796 - -126.0346221924 - -125.5142669678 - -124.9597320557 - -124.4377593994 - -123.8875350952 - -123.3857879639 - -122.8285598755 - -122.3087921143 - -121.7514953613 - -121.2622528076 - -120.7046890259 - -120.1836166382 - -119.6513824463 - -119.1261596680 - -118.5817642212 - -118.0694656372 - -117.5557632446 - -116.9580307007 - -116.5156936646 - -115.9368133545 - -115.4149322510 - -114.8886566162 - -114.3610534668 - -113.8551406860 - -113.2846298218 - -112.7829132080 - -112.2783813477 - -111.7116699219 - -111.2014083862 - -110.6917572021 - -110.1542205811 - -109.6121749878 - -109.1130599976 - -108.5800476074 - -108.0384979248 - -107.5305862427 - -107.0153884888 - -106.4503936768 - -105.9845581055 - -105.4048080444 - -104.9094619751 - -104.3898620605 - -103.8416671753 - -103.3392639160 - -102.8029479980 - -102.2626037598 - -101.7599716187 - -101.2262344360 - -100.7164382935 - -100.1495513916 - -99.6708831787 - -99.1344451904 - -98.5867843628 - -98.0556335449 - -97.5700073242 - -97.0110778809 - -96.4901580811 - -95.9534225464 - -95.4620819092 - -94.9049606323 - -94.3697967529 - -93.8426971436 - -93.3505249023 - -92.7727508545 - -92.2798767090 - -91.7061233521 - -91.2323074341 - -90.6507797241 - -90.1446685791 - -89.5771102905 - -89.1183700562 - -88.5031356812 - -88.0114135742 - -87.4565734863 - -86.9448394775 - -86.3835906982 - -85.8400802612 - -85.3115234375 - -84.7932968140 - -84.2178497314 - -83.6921081543 - -83.1377182007 - -82.6168365479 - -82.0513839722 - -81.4915695190 - -80.9879684448 - -80.4036102295 - -79.8723526001 - -79.3027725220 - -78.7729415894 - -78.2207946777 - -77.6221084595 - -77.1227493286 - -76.5182876587 - -76.0065307617 - -75.3821258545 - -74.8705978394 - -74.3107070923 - -73.6889953613 - -73.1647109985 - -72.5994491577 - -72.0089950562 - -71.4360122681 - -70.8598480225 - -70.3117980957 - -69.6948928833 - -69.1204986572 - -68.5562515259 - -67.9681549072 - -67.3549728394 - -66.7897033691 - -66.1891860962 - -65.5958938599 - -64.9883804321 - -64.3857421875 - -63.8196830750 - -63.1720123291 - -62.5780677795 - -61.9894828796 - -61.3370170593 - -60.7538490295 - -60.1346969604 - -59.4715042114 - -58.8992691040 - -58.2427864075 - -57.6225929260 - -56.9785995483 - -56.3420829773 - -55.7280998230 - -55.0360679626 - -54.4360466003 - -53.7427024841 - -53.1371116638 - -52.4399986267 - -51.7743186951 - -51.1459045410 - -50.4683189392 - -49.7437057495 - -49.1446914673 - -48.4179077148 - -47.7319602966 - -47.0630416870 - -46.3572998047 - -45.6663475037 - -44.9546737671 - -44.2635574341 - -43.5363655090 - -42.8518180847 - -42.0935173035 - -41.3891410828 - -40.6923942566 - -39.9047584534 - -39.1860275269 - -38.4717979431 - -37.7093811035 - -36.9200668335 - -36.2251281738 - -35.4331016541 - -34.6682968140 - -33.8830528259 - -33.1244087219 - -32.3483886719 - -31.5394783020 - -30.7579841614 - -29.9520149231 - -29.1823310852 - -28.3373126984 - -27.5173759460 - -26.7519073486 - -25.8759613037 - -25.0483722687 - -24.2509021759 - -23.3805141449 - -22.5173072815 - -21.7198638916 - -20.8118553162 - -19.9579696655 - -19.1144180298 - -18.2201690674 - -17.3274822235 - -16.4526500702 - -15.5823965073 - -14.6341676712 - -13.7897033691 - -12.8325805664 - -11.9595575333 - -11.0123462677 - -10.0844783783 - -9.1770124435 - -8.2140235901 - -7.2879505157 - -6.3269996643 - -5.3791542053 - -4.4116935730 - -3.4439849854 - -2.4885520935 - -1.4943542480 - -0.5247058868 - 0.4533672333 - 1.4546413422 - 2.4604301453 - 3.4645118713 - 4.4491271973 - 5.4948120117 - 6.4942207336 - 7.5010948181 - 8.5535774231 - 9.5720367432 - 10.6065406799 - 11.6597785950 - 12.6938514709 - 13.7331695557 - 14.8304786682 - 15.8532829285 - 16.9159545898 - 18.0122604370 - 19.0561523438 - 20.1190071106 - 21.2378692627 - 22.2857742310 - 23.3955688477 - 24.4670677185 - 25.5789794922 - 26.6660690308 - 27.7254371643 - 28.8893928528 - 29.9462356567 - 31.0570297241 - 32.1939659119 - 33.2511482239 - 34.4201469421 - 35.4978713989 - 36.6184272766 - 37.7667655945 - 38.8272323608 - 39.9878540039 - 41.1221656799 - 42.1893692017 - 43.3941650391 - 44.4360618591 - 45.6197662354 - 46.7201385498 - 47.8154945374 - 48.9990806580 - 50.0980606079 - 51.1968879700 - 52.3761215210 - 53.4218292236 - 54.6256256104 - 55.6886367798 - 56.8273620605 - 57.9814910889 - 59.0471191406 - 60.1886444092 - 61.3098220825 - 62.3894729614 - 63.5531768799 - 64.6113128662 - 65.7451858521 - 66.8543167114 - 67.9082336426 - 69.0719146729 - 70.1289215088 - 71.2134933472 - 72.3240585327 - 73.3926620483 - 74.4989089966 - 75.5462417603 - 76.6589508057 - 77.7229995728 - 78.7632064819 - 79.8557434082 - 80.9188995361 - 81.9375686646 - 83.0308303833 - 84.0678405762 - 85.0991744995 - 86.1494750977 - 87.1807708740 - 88.1947937012 - 89.2439498901 - 90.2518615723 - 91.2464294434 - 92.2888793945 - 93.2703857422 - 94.2708206177 - 95.2741851807 - 96.2681579590 - 97.2467803955 - 98.2155151367 - 99.2043838501 - 100.1561431885 - 101.1218261719 - 102.0877532959 - 103.0292968750 - 103.9906311035 - 104.9109954834 - 105.8743133545 - 106.7759323120 - 107.7062835693 - 108.6454010010 - 109.5235137939 - 110.4713211060 - 111.3168792725 - 112.2654418945 - 113.1296768188 - 114.0023193359 - 114.8953475952 - 115.7869491577 - 116.6278610229 - 117.4794464111 - 118.3881759644 - 119.1821060181 - 120.0464859009 - 120.9134368896 - 121.7107925415 - 122.5360107422 - 123.4123535156 - 124.1758193970 - 125.0005187988 - 125.8388290405 - 126.6097335815 - 127.4157943726 - 128.1973876953 - 129.0062561035 - 129.7834167480 - 130.5437622070 - 131.3259277344 - 132.0966033936 - 132.8865051270 - 133.5823059082 - 134.3744049072 - 135.1375427246 - 135.8547668457 - 136.5699768066 - 137.3665313721 - 138.0604095459 - 138.7685546875 - 139.5275268555 - 140.2162475586 - 140.9474792480 - 141.6377563477 - 142.3508453369 - 143.0512390137 - 143.7554931641 - 144.4245147705 - 145.1189422607 - 145.8491058350 - 146.4497375488 - 147.1779174805 - 147.8631591797 - 148.4919433594 - 149.1660919189 - 149.8655395508 - 150.4749145508 - 151.1753540039 - 151.7806549072 - 152.4756774902 - 153.0981903076 - 153.7373809814 - 154.3862915039 - 155.0144805908 - 155.6720581055 - 156.2581787109 - 156.9239349365 - 157.5471649170 - 158.1398620605 - 158.7982788086 - 159.3932800293 - 159.9935455322 - 160.6498107910 - 161.2207031250 - 161.8323364258 - 162.4474487305 - 163.0494995117 - 163.6550598145 - 164.2275543213 - 164.8502807617 - 165.4457397461 - 166.0198669434 - 166.6007385254 - 167.2261047363 - 167.7853088379 - 168.3659210205 - 168.9488525391 - 169.5489501953 - 170.1196899414 - 170.6583557129 - 171.2852630615 - 171.8541870117 - 172.3771057129 - 173.0093078613 - 173.5296478271 - 174.1471557617 - 174.6531829834 - 175.2602233887 - 175.8239440918 - 176.3644561768 - 176.9403686523 - 177.4878540039 - 178.0765380859 - 178.5943145752 - 179.1636352539 - 179.7396545410 - 180.2665100098 - 180.8359680176 - 181.3710479736 - 181.9516601562 - 182.4869079590 - 183.0241088867 - 183.5783081055 - 184.1525268555 - 184.6694335938 - 185.2364196777 - 185.7413482666 - 186.3664550781 - 186.8362426758 - 187.4153442383 - 187.9322509766 - 188.5233764648 - 189.0092468262 - 189.5925903320 - 190.0982208252 - 190.6849975586 - 191.1889343262 - 191.7269897461 - 192.2741851807 - 192.8395996094 - 193.3445434570 - 193.8920288086 - 194.4223632812 - 194.9940032959 - 195.4912414551 - 196.0302734375 - 196.5914154053 - 197.1383819580 - 197.6279602051 - 198.2042846680 - 198.7287902832 - 199.2697296143 - 199.7870178223 - 200.3338012695 - 200.8830566406 - 201.3985290527 - 201.9507751465 - 202.4880065918 - 202.9915161133 - 203.5819091797 - 204.0592346191 - 204.6339569092 - 205.1609802246 - 205.6810913086 - 206.2322692871 - 206.7741546631 - 207.2843017578 - 207.8398284912 - 208.3822326660 - 208.9062500000 - 209.4251708984 - 210.0028076172 - 210.5177001953 - 211.0270080566 - 211.6112670898 - 212.1249694824 - 212.6596527100 - 213.2030792236 - 213.7286682129 - 214.3185119629 - 214.7729187012 - 215.3785400391 - 215.9006500244 - 216.4239807129 - 216.9754028320 - 217.5165405273 - 218.0512542725 - 218.5831909180 - 219.1522216797 - 219.6494445801 - 220.2188873291 - 220.7421112061 - 221.3094482422 - 221.8227081299 - 222.3828735352 - 222.9101715088 - 223.4725952148 - 224.0049285889 - 224.5380249023 - 225.1020965576 - 225.6239013672 - 226.1839294434 - 226.7152709961 - 227.2880554199 - 227.7902221680 - 228.3688354492 - 228.9180450439 - 229.4425048828 - 229.9980163574 - 230.5548400879 - 231.0903015137 - 231.6543273926 - 232.1764526367 - 232.7508392334 - 233.2908935547 - 233.8331909180 - 234.3934783936 - 234.9545288086 - 235.4657745361 - 236.0409698486 - 236.5919189453 - 237.1575317383 - 237.6821289062 - 238.2379913330 - 238.8186645508 - 239.3383178711 - 239.9094696045 - 240.4662933350 - 241.0415802002 - 241.5307769775 - 242.1611633301 - 242.6705627441 - 243.2433471680 - 243.8136291504 - 244.3308715820 - 244.9252014160 - 245.4660339355 - 246.0382690430 - 246.5878601074 - 247.1453247070 - 247.7133483887 - 248.2646484375 - 248.8408813477 - 249.4010772705 - 249.9406127930 - 250.5075073242 - 251.0868835449 - 251.6189727783 - 252.2236022949 - 252.7545471191 - 253.3472747803 - 253.8569488525 - 254.5013275146 - 255.0010375977 - 255.5906677246 - 256.1678466797 - 256.7208557129 - 257.2827148438 - 257.8466796875 - 258.4459838867 - 258.9948120117 - 259.5486755371 - 260.1301879883 - 260.7107543945 - 261.2734069824 - 261.8265075684 - 262.4328613281 - 263.0008850098 - 263.5091247559 - 264.1482238770 - 264.6892395020 - 265.2909851074 - 265.8407897949 - 266.4012451172 - 267.0075683594 - 267.5629272461 - 268.1270446777 - 268.7200317383 - 269.3247070312 - 269.8409729004 - 270.4343872070 - 271.0205078125 - 271.6099243164 - 272.1404724121 - 272.7901000977 - 273.3034667969 - 273.9279785156 - 274.4719238281 - 275.0350341797 - 275.6885681152 - 276.1861267090 - 276.8022766113 - 277.4125061035 - 277.9462585449 - 278.5306091309 - 279.1506958008 - 279.6966247559 - 280.2863159180 - 280.9015808105 - 281.4421997070 - 282.0293273926 - 282.6348571777 - 283.2060852051 - 283.8052673340 - 284.3649902344 - 284.9789733887 - 285.5361633301 - 286.1298522949 - 286.7145385742 - 287.3185424805 - 287.8809204102 - 288.4874267578 - 289.0728454590 - 289.6384887695 - 290.2409973145 - 290.8204650879 - 291.4190368652 - 291.9969787598 - 292.5924987793 - 293.2069396973 - 293.7448120117 - 294.3765258789 - 294.9422302246 - 295.5324401855 - 296.1366271973 - 296.7164611816 - 297.3081359863 - 297.9447937012 - 298.4521179199 - 299.1214294434 - 299.6555175781 - 300.2882385254 - 300.8622436523 - 301.4674987793 - 302.0598754883 - 302.6432800293 - 303.2566528320 - 303.7904663086 - 304.4813537598 - 304.9970703125 - 305.6297912598 - 306.2322387695 - 306.8053588867 - 307.4040527344 - 308.0077819824 - 308.5796813965 - 309.2158508301 - 309.7564086914 - 310.4126892090 - 310.9800415039 - 311.5927429199 - 312.1807250977 - 312.7574462891 - 313.3900756836 - 313.9750061035 - 314.5379943848 - 315.1673278809 - 315.7904663086 - 316.3325500488 - 316.9714050293 - 317.5853576660 - 318.1610107422 - 318.7452392578 - 319.3623352051 - 319.9882507324 - 320.5403747559 - 321.1788024902 - 321.7853393555 - 322.3583374023 - 322.9764099121 - 323.5550537109 - 324.1927185059 - 324.7546386719 - 325.3778076172 - 326.0050964355 - 326.5783386230 - 327.1768493652 - 327.8014221191 - 328.3876953125 - 328.9800720215 - 329.5900878906 - 330.2057800293 - 330.7769165039 - 331.4072875977 - 331.9972839355 - 332.5825195312 - 333.2306518555 - 333.8140869141 - 334.3898010254 - 335.0730590820 - 335.6169738770 - 336.2122802734 - 336.8567810059 - 337.4349060059 - 338.0465393066 - 338.6587524414 - 339.2578735352 - 339.8879699707 - 340.4821166992 - 341.0455627441 - 341.7186279297 - 342.2867126465 - 342.9207153320 - 343.5124511719 - 344.1069030762 - 344.7346801758 - 345.3576660156 - 345.8858032227 - 346.5713500977 - 347.1435852051 - 347.7674560547 - 348.3243408203 - 348.9858398438 - 349.5805664062 - 350.1668395996 - 350.7810058594 - 351.3841857910 - 352.0201110840 - 352.5946350098 - 353.1953430176 - 353.8293151855 - 354.4383544922 - 355.0162658691 - 355.6573181152 - 356.2693786621 - 356.8724670410 - 357.4762268066 - 358.1023864746 - 358.7179260254 - 359.3140258789 - 359.9429626465 - 360.5699462891 - 361.1315002441 - 361.8129272461 - 362.3648376465 - 363.0501098633 - 363.5653686523 - 364.2318115234 - 364.8500061035 - 365.4336242676 - 366.0281677246 - 366.6510925293 - 367.2556457520 - 367.8566589355 - 368.4073181152 - 369.0825195312 - 369.6178283691 - 370.2591857910 - 370.7714538574 - 371.4088439941 - 371.9851684570 - 372.5718994141 - 373.1565856934 - 373.6781311035 - 374.3718872070 - 374.9097290039 - 375.4540710449 - 376.0065917969 - 376.7411193848 - 377.2539062500 - 377.7507324219 - 378.3859863281 - 379.1195678711 - 379.6508483887 - 380.0620422363 - 380.7556457520 - 381.8340454102 - 384.2225036621 - 385.3086547852 - 385.9707641602 - 386.3273620605 - 386.8836059570 - 387.5747375488 - 388.1561889648 - 388.6272888184 - 389.1417846680 - 389.8114929199 - 390.2934570312 - 390.8610839844 - 391.3496093750 - 391.9589538574 - 392.4754333496 - 393.0330200195 - 393.5561218262 - 394.1194458008 - 394.6910705566 - 395.1832580566 - 395.7989807129 - 396.2793273926 - 396.9312744141 - 397.4644165039 - 398.0512695312 - 398.6007690430 - 399.2070007324 - 399.7958679199 - 400.3399963379 - 400.9440002441 - 401.5814819336 - 402.0977172852 - 402.7299194336 - 403.2950439453 - 403.9267883301 - 404.4995727539 - 405.0964050293 - 405.7016296387 - 406.2789001465 - 406.8881225586 - 407.4835205078 - 408.0596313477 - 408.6579284668 - 409.2325744629 - 409.8554687500 - 410.4153442383 - 411.0078125000 - 411.5919189453 - 412.1846923828 - 412.7273559570 - 413.3300476074 - 413.9272766113 - 414.4696655273 - 415.0735778809 - 415.6271362305 - 416.2357788086 - 416.7885131836 - 417.3826293945 - 417.9137878418 - 418.5772705078 - 419.0549926758 - 419.6887512207 - 420.2461547852 - 420.8264465332 - 421.3764343262 - 422.0015563965 - 422.5219116211 - 423.1761474609 - 423.6975097656 - 424.2729492188 - 424.8573303223 - 425.4284057617 - 426.0044555664 - 426.6002807617 - 427.1416625977 - 427.7387390137 - 428.2883605957 - 428.8291015625 - 429.4669494629 - 429.9682006836 - 430.5668029785 - 431.1693115234 - 431.7171325684 - 432.2513427734 - 432.8511352539 - 433.4014587402 - 433.9747314453 - 434.5034484863 - 435.0983581543 - 435.6521911621 - 436.2000732422 - 436.7714843750 - 437.3120727539 - 437.8933105469 - 438.4868774414 - 438.9963989258 - 439.5864562988 - 440.1636657715 - 440.6876525879 - 441.2347412109 - 441.8028869629 - 442.3967895508 - 442.9160156250 - 443.4689025879 - 444.0838928223 - 444.5953369141 - 445.1278686523 - 445.6967773438 - 446.2874450684 - 446.7974853516 - 447.3709716797 - 447.9385070801 - 448.4756774902 - 448.9887084961 - 449.5952453613 - 450.1018676758 - 450.6381530762 - 451.2297058105 - 451.7153015137 - 452.3333740234 - 452.8421936035 - 453.4086303711 - 453.9318847656 - 454.4880676270 - 455.0220642090 - 455.5617675781 - 456.0838012695 - 456.6759643555 - 457.1642761230 - 457.7520446777 - 458.2806701660 - 458.8124694824 - 459.3460388184 - 459.8620300293 - 460.4547424316 - 460.9421081543 - 461.5173339844 - 462.0220031738 - 462.6049194336 - 463.0683593750 - 463.6352539062 - 464.1676025391 - 464.7163696289 - 465.2292785645 - 465.7737121582 - 466.2857666016 - 466.8430480957 - 467.3143005371 - 467.8919372559 - 468.3860168457 - 468.9421386719 - 469.4672851562 - 469.9743347168 - 470.5147094727 - 471.0325012207 - 471.5274963379 - 472.0765686035 - 472.5815124512 - 473.1168518066 - 473.6383972168 - 474.1577148438 - 474.6640014648 - 475.1866455078 - 475.6982421875 - 476.2057800293 - 476.7485351562 - 477.2472229004 - 477.7862548828 - 478.2624511719 - 478.7801513672 - 479.3105163574 - 479.8116149902 - 480.3248291016 - 480.8585205078 - 481.3212890625 - 481.8426818848 - 482.3907775879 - 482.8281860352 - 483.3994445801 - 483.8869323730 - 484.3576660156 - 484.9046630859 - 485.3421020508 - 485.9115600586 - 486.3662109375 - 486.8991088867 - 487.3994445801 - 487.8742980957 - 488.3764038086 - 488.8652343750 - 489.3641967773 - 489.8724060059 - 490.3707580566 - 490.8468017578 - 491.3612976074 - 491.8101501465 - 492.3393859863 - 492.8101806641 - 493.3337707520 - 493.8001403809 - 494.2557983398 - 494.7825927734 - 495.2527770996 - 495.7302551270 - 496.2395019531 - 496.7176818848 - 497.1898803711 - 497.6537780762 - 498.1723937988 - 498.6434020996 - 499.1191406250 - 499.5782470703 - 500.0729064941 - 500.5668334961 - 500.9821777344 - 501.5271301270 - 501.9765930176 - 502.4306335449 - 502.8993530273 - 503.4110717773 - 503.8377075195 - 504.3362121582 - 504.8161315918 - 505.2341308594 - 505.7230224609 - 506.1961059570 - 506.6528625488 - 507.1250305176 - 507.5918884277 - 508.0362548828 - 508.5116577148 - 508.9678649902 - 509.4449768066 - 509.8869323730 - 510.3417663574 - 510.8038940430 - 511.2494201660 - 511.7494812012 - 512.1486816406 - 512.6181640625 - 513.0845947266 - 513.5286254883 - 513.9749755859 - 514.4446411133 - 514.8812866211 - 515.3014526367 - 515.7907714844 - 516.2062988281 - 516.6824951172 - 517.1056518555 - 517.5337524414 - 518.0096435547 - 518.4154663086 - 518.8881225586 - 519.3213500977 - 519.7501220703 - 520.1915283203 - 520.6260375977 - 521.0775146484 - 521.5245971680 - 521.9057617188 - 522.3760986328 - 522.8392333984 - 523.2155761719 - 523.6695556641 - 524.1074829102 - 524.5548095703 - 524.9373779297 - 525.3968505859 - 525.8333740234 - 526.2270507812 - 526.6668090820 - 527.1000976562 - 527.5339355469 - 527.9234008789 - 528.3573608398 - 528.7971801758 - 529.2136230469 - 529.6156616211 - 530.0446777344 - 530.4447021484 - 530.9025268555 - 531.2742309570 - 531.7241821289 - 532.1184692383 - 532.5250854492 - 532.9984130859 - 533.3325805664 - 533.7775878906 - 534.2234497070 - 534.5848388672 - 535.0162353516 - 535.4257812500 - 535.8411254883 - 536.2443237305 - 536.6347656250 - 537.0686645508 - 537.4737548828 - 537.8384399414 - 538.2876586914 - 538.6850585938 - 539.0643920898 - 539.4821777344 - 539.9011840820 - 540.2807006836 - 540.6726074219 - 541.1100463867 - 541.4589843750 - 541.9009399414 - 542.2946777344 - 542.6470947266 - 543.1072387695 - 543.4711303711 - 543.8629150391 - 544.2973632812 - 544.6506958008 - 545.0787353516 - 545.4365844727 - 545.8732299805 - 546.2348022461 - 546.6401367188 - 547.0327758789 - 547.4468994141 - 547.8081054688 - 548.2120971680 - 548.6096801758 - 549.0123291016 - 549.3604125977 - 549.7906494141 - 550.1808471680 - 550.5685424805 - 550.9293212891 - 551.3652954102 - 551.7172241211 - 552.1478271484 - 552.4881591797 - 552.9236450195 - 553.2918701172 - 553.7019653320 - 554.0360717773 - 554.4993286133 - 554.8468627930 - 555.2412109375 - 555.6379394531 - 556.0261840820 - 556.4237060547 - 556.8256225586 - 557.1636352539 - 557.6096801758 - 557.9916992188 - 558.3655395508 - 558.7651977539 - 559.1663818359 - 559.5709838867 - 559.9101562500 - 560.3726196289 - 560.7108764648 - 561.1423339844 - 561.5183715820 - 561.9041748047 - 562.3364868164 - 562.7061767578 - 563.1152343750 - 563.4860839844 - 563.9436645508 - 564.2907104492 - 564.6842041016 - 565.1529541016 - 565.4912109375 - 565.9151000977 - 566.3233642578 - 566.7185668945 - 567.1485595703 - 567.5182495117 - 567.9528808594 - 568.3709716797 - 568.7557373047 - 569.1743774414 - 569.6002807617 - 569.9984130859 - 570.4288330078 - 570.8354492188 - 571.2654418945 - 571.6831665039 - 572.0905761719 - 572.5294799805 - 572.9492797852 - 573.3641357422 - 573.8291015625 - 574.2133789062 - 574.6541748047 - 575.1446533203 - 575.4979858398 - 575.9896240234 - 576.4056396484 - 576.8556518555 - 577.3123168945 - 577.7157592773 - 578.2150268555 - 578.6334228516 - 579.1069335938 - 579.5257568359 - 580.0283813477 - 580.4653930664 - 580.9288940430 - 581.3778686523 - 581.8857421875 - 582.3105468750 - 582.8222656250 - 583.2680664062 - 583.7514648438 - 584.2650756836 - 584.7048339844 - 585.2097167969 - 585.7075805664 - 586.2033691406 - 586.6672973633 - 587.2079467773 - 587.6866455078 - 588.1965942383 - 588.7010498047 - 589.2352905273 - 589.7190551758 - 590.2528686523 - 590.7949829102 - 591.2782592773 - 591.8487548828 - 592.3504638672 - 592.9190673828 - 593.4388427734 - 593.9749755859 - 594.5429687500 - 595.0881347656 - 595.6481323242 - 596.1716308594 - 596.7964477539 - 597.3340454102 - 597.8803710938 - 598.4940795898 - 599.0755615234 - 599.6186523438 - 600.2427368164 - 600.8333740234 - 601.4074707031 - 602.0292968750 - 602.6287231445 - 603.2248535156 - 603.8575439453 - 604.4695434570 - 605.0832519531 - 605.7145385742 - 606.3693847656 - 606.9396972656 - 607.6622924805 - 608.2275390625 - 608.9307861328 - 609.5543212891 - 610.2183227539 - 610.8820190430 - 611.5491333008 - 612.2052001953 - 612.8989257812 - 613.5764160156 - 614.2517089844 - 614.9286499023 - 615.6466064453 - 616.3283081055 - 617.0038452148 - 617.7393798828 - 618.4436035156 - 619.1553344727 - 619.8561401367 - 620.5988159180 - 621.3228149414 - 622.0228881836 - 622.7779541016 - 623.5111694336 - 624.2434692383 - 624.9969482422 - 625.7390747070 - 626.4774169922 - 627.2684326172 - 628.0051879883 - 628.7491455078 - 629.5504760742 - 630.3054199219 - 631.0462036133 - 631.8720092773 - 632.6149902344 - 633.4175415039 - 634.1923217773 - 634.9866333008 - 635.7761230469 - 636.5449218750 - 637.3776855469 - 638.1445922852 - 638.9487915039 - 639.7801513672 - 640.5251464844 - 641.4013061523 - 642.1643676758 - 642.9696655273 - 643.8405761719 - 644.5695190430 - 645.4490966797 - 646.2449951172 - 647.0461425781 - 647.9296875000 - 648.6569824219 - 649.5506591797 - 650.3649291992 - 651.1391601562 - 652.0082397461 - 652.8400268555 - 653.6354980469 - 654.4764404297 - 655.2752685547 - 656.1606445312 - 656.9167480469 - 657.7882080078 - 658.6057128906 - 659.4325561523 - 660.2410888672 - 661.0790405273 - 661.8968505859 - 662.7314453125 - 663.5353393555 - 664.3693237305 - 665.1937866211 - 665.9709472656 - 666.8472900391 - 667.6296997070 - 668.4323730469 - 669.2695922852 - 670.0635375977 - 670.8867187500 - 671.6796875000 - 672.4925537109 - 673.3117675781 - 674.0841064453 - 674.8917236328 - 675.7083740234 - 676.4691162109 - 677.2875366211 - 678.0728149414 - 678.8477172852 - 679.6403198242 - 680.4257812500 - 681.1843261719 - 681.9741821289 - 682.7555541992 - 683.4960937500 - 684.2893066406 - 685.0336914062 - 685.7957763672 - 686.5693969727 - 687.3023071289 - 688.0666503906 - 688.8123779297 - 689.5541381836 - 690.2803955078 - 691.0285034180 - 691.7761840820 - 692.4746093750 - 693.2362670898 - 693.9291992188 - 694.6871948242 - 695.3563842773 - 696.1030883789 - 696.7923583984 - 697.5182495117 - 698.2037353516 - 698.8784790039 - 699.6262817383 - 700.2761230469 - 700.9539794922 - 701.6621093750 - 702.3494262695 - 702.9985351562 - 703.6602783203 - 704.3839721680 - 704.9868164062 - 705.6751098633 - 706.3386840820 - 706.9767456055 - 707.6190185547 - 708.3056640625 - 708.8920898438 - 709.5756835938 - 710.2003173828 - 710.8193359375 - 711.4554443359 - 712.0711669922 - 712.7061767578 - 713.3244628906 - 713.9333496094 - 714.5303344727 - 715.1718750000 - 715.7790527344 - 716.3299560547 - 716.9667358398 - 717.5692138672 - 718.1514892578 - 718.6860961914 - 719.3646240234 - 719.8912963867 - 720.4666137695 - 721.0591430664 - 721.6201782227 - 722.2147216797 - 722.7484741211 - 723.3092041016 - 723.9104614258 - 724.4515380859 - 724.9698486328 - 725.5577392578 - 726.1381835938 - 726.6109008789 - 727.1928100586 - 727.7662353516 - 728.2456054688 - 728.8135986328 - 729.3605957031 - 729.8530883789 - 730.4273681641 - 730.9152221680 - 731.4588623047 - 731.9846801758 - 732.4880981445 - 733.0109863281 - 733.5353393555 - 734.0335693359 - 734.5532226562 - 735.0648193359 - 735.5602416992 - 736.0634765625 - 736.5878295898 - 737.0659179688 - 737.5479736328 - 738.0936889648 - 738.5453491211 - 739.0460205078 - 739.5405273438 - 740.0378417969 - 740.5202636719 - 740.9843139648 - 741.4942626953 - 741.9718017578 - 742.4494628906 - 742.9072875977 - 743.4139404297 - 743.8839111328 - 744.3317260742 - 744.8145751953 - 745.3099365234 - 745.7485351562 - 746.2178344727 - 746.6976318359 - 747.1623535156 - 747.6022338867 - 748.0996704102 - 748.5144653320 - 749.0349731445 - 749.4317626953 - 749.9161987305 - 750.3805541992 - 750.8203735352 - 751.2611694336 - 751.7445068359 - 752.1763916016 - 752.6173095703 - 753.0738525391 - 753.5425415039 - 753.9423217773 - 754.4272460938 - 754.8554687500 - 755.2912597656 - 755.7584838867 - 756.1712036133 - 756.6127319336 - 757.0916748047 - 757.4808959961 - 757.9436035156 - 758.3597412109 - 758.8444213867 - 759.2224731445 - 759.6887207031 - 760.1041259766 - 760.5654296875 - 760.9609985352 - 761.4151000977 - 761.8280029297 - 762.2835693359 - 762.6878662109 - 763.1162109375 - 763.5547485352 - 763.9837646484 - 764.4005737305 - 764.8294677734 - 765.2380371094 - 765.6998291016 - 766.0944824219 - 766.5007934570 - 766.9573974609 - 767.3829345703 - 767.7656250000 - 768.2056274414 - 768.6419067383 - 769.0392456055 - 769.4691772461 - 769.8690795898 - 770.3100585938 - 770.7276000977 - 771.1121826172 - 771.5714721680 - 771.9456787109 - 772.4019165039 - 772.7784423828 - 773.2153930664 - 773.6247558594 - 774.0355224609 - 774.4557495117 - 774.8641967773 - 775.2614135742 - 775.7071533203 - 776.0869140625 - 776.5169067383 - 776.9032592773 - 777.3486938477 - 777.7424316406 - 778.1163940430 - 778.5870361328 - 778.9621582031 - 779.3476562500 - 779.8082275391 - 780.1676635742 - 780.6196289062 - 780.9773559570 - 781.4266357422 - 781.8167114258 - 782.2193603516 - 782.6117553711 - 783.0601196289 - 783.4222412109 - 783.8321533203 - 784.2691040039 - 784.6273803711 - 785.0765380859 - 785.4384155273 - 785.8680419922 - 786.2600097656 - 786.6797485352 - 787.0530395508 - 787.4713745117 - 787.8867797852 - 788.2651977539 - 788.6685791016 - 789.0794677734 - 789.4868164062 - 789.8613891602 - 790.2813720703 - 790.6701660156 - 791.0906372070 - 791.4616088867 - 791.8771972656 - 792.2779541016 - 792.6774902344 - 793.0613403320 - 793.4798583984 - 793.8500366211 - 794.2907714844 - 794.6468505859 - 795.0655517578 - 795.4475708008 - 795.8741455078 - 796.2333984375 - 796.6365966797 - 797.0594482422 - 797.4374389648 - 797.8184814453 - 798.2293701172 - 798.6461181641 - 798.9963378906 - 799.4230957031 - 799.8083496094 - 800.2175903320 - 800.5667114258 - 801.0280761719 - 801.3641967773 - 801.7759399414 - 802.1909179688 - 802.5421752930 - 802.9718627930 - 803.3436279297 - 803.7429199219 - 804.1378784180 - 804.5241088867 - 804.9200439453 - 805.3059082031 - 805.7129516602 - 806.0834960938 - 806.4880371094 - 806.8753051758 - 807.2637939453 - 807.6493530273 - 808.0621337891 - 808.4089355469 - 808.8564453125 - 809.1890869141 - 809.6292114258 - 809.9782714844 - 810.3859863281 - 810.7748413086 - 811.1611328125 - 811.5451660156 - 811.9361572266 - 812.3353271484 - 812.7111816406 - 813.0868530273 - 813.4965209961 - 813.8774414062 - 814.2606201172 - 814.6372070312 - 815.0382080078 - 815.4490356445 - 815.7642822266 - 816.2161254883 - 816.5738525391 - 816.9666748047 - 817.3572387695 - 817.7043457031 - 818.1515502930 - 818.5050048828 - 818.8624877930 - 819.2703247070 - 819.7028808594 - 819.9974975586 - 820.4265747070 - 820.8229370117 - 821.1948852539 - 821.5518188477 - 821.9771118164 - 822.3253784180 - 822.7347412109 - 823.0967407227 - 823.4708862305 - 823.8999023438 - 824.2255859375 - 824.6217651367 - 825.0332031250 - 825.3870239258 - 825.7502441406 - 826.1835327148 - 826.5211791992 - 826.8954467773 - 827.3168945312 - 827.6694946289 - 828.0315551758 - 828.4563598633 - 828.7928466797 - 829.2005004883 - 829.5483398438 - 829.9633178711 - 830.3123168945 - 830.7016601562 - 831.0759277344 - 831.4652709961 - 831.8224487305 - 832.2039184570 - 832.6030883789 - 832.9534301758 - 833.3367309570 - 833.7160644531 - 834.1071166992 - 834.4406127930 - 834.8547973633 - 835.2209472656 - 835.5731811523 - 835.9824218750 - 836.3377075195 - 836.6992797852 - 837.1093139648 - 837.4517211914 - 837.8258056641 - 838.2335205078 - 838.5490722656 - 838.9890136719 - 839.3050537109 - 839.6996459961 - 840.0891723633 - 840.4284667969 - 840.8178100586 - 841.1791381836 - 841.5847778320 - 841.8787231445 - 842.3452758789 - 842.6499023438 - 843.0291748047 - 843.4273681641 - 843.7682495117 - 844.1510009766 - 844.5207519531 - 844.8744506836 - 845.2808837891 - 845.6023559570 - 845.9918212891 - 846.3730468750 - 846.7233886719 - 847.0883178711 - 847.4636840820 - 847.8294677734 - 848.2105712891 - 848.5382080078 - 848.9345092773 - 849.3159179688 - 849.6384887695 - 850.0270385742 - 850.3999633789 - 850.7497558594 - 851.1314697266 - 851.4669189453 - 851.8711547852 - 852.1997680664 - 852.5845947266 - 852.9467773438 - 853.2797851562 - 853.6984863281 - 854.0128784180 - 854.4002685547 - 854.7507934570 - 855.1141357422 - 855.4943847656 - 855.8334960938 - 856.1808471680 - 856.5875854492 - 856.9334716797 - 857.2510986328 - 857.6535644531 - 858.0238037109 - 858.3513183594 - 858.7187500000 - 859.0875244141 - 859.4367065430 - 859.8275756836 - 860.1290283203 - 860.5069580078 - 860.9158325195 - 861.2123413086 - 861.5744018555 - 861.9652099609 - 862.3103027344 - 862.6542358398 - 863.0167236328 - 863.3649902344 - 863.7460937500 - 864.0834960938 - 864.4248657227 - 864.8041992188 - 865.1536865234 - 865.5031738281 - 865.8596801758 - 866.1924438477 - 866.5941772461 - 866.9204101562 - 867.2503662109 - 867.6392822266 - 867.9843139648 - 868.3469848633 - 868.6506958008 - 869.0538940430 - 869.4112548828 - 869.7113037109 - 870.1062011719 - 870.4360961914 - 870.8079833984 - 871.1459350586 - 871.4761352539 - 871.8618774414 - 872.2041625977 - 872.5315551758 - 872.8930053711 - 873.2557983398 - 873.5839843750 - 873.9335327148 - 874.2981567383 - 874.6347045898 - 874.9720458984 - 875.3313598633 - 875.6955566406 - 875.9873657227 - 876.3981933594 - 876.6828613281 - 877.0984497070 - 877.3737792969 - 877.7573852539 - 878.1026000977 - 878.4514770508 - 878.7755126953 - 879.1251220703 - 879.4985351562 - 879.8339233398 - 880.1443481445 - 880.5274658203 - 880.8636474609 - 881.2304687500 - 881.5230712891 - 881.9233398438 - 882.2432861328 - 882.6149291992 - 882.9524536133 - 883.2359619141 - 883.6829223633 - 884.0147705078 - 884.2853393555 - 884.6439208984 - 885.0946655273 - 885.3670654297 - 885.6562500000 - 886.0443115234 - 886.4745483398 - 886.7357788086 - 887.0050048828 - 887.4041137695 - 887.9732055664 - 889.2535400391 - 889.8405151367 - 890.1660766602 - 890.3070068359 - 890.6267089844 - 890.9577026367 - 891.2202148438 - 891.4483642578 - 891.7243041992 - 892.0241088867 - 892.2179565430 - 892.5415649414 - 892.7581176758 - 893.0077514648 - 893.2784423828 - 893.5515747070 - 893.7732543945 - 894.0617065430 - 894.3075561523 - 894.5517578125 - 894.8572387695 - 895.0630493164 - 895.3897094727 - 895.6580200195 - 895.9573364258 - 896.2004394531 - 896.5076904297 - 896.8161621094 - 897.0700683594 - 897.3782958984 - 897.6914672852 - 897.9666137695 - 898.2556152344 - 898.5677490234 - 898.8588256836 - 899.1729736328 - 899.4628295898 - 899.7633666992 - 900.0529785156 - 900.3706054688 - 900.6595458984 - 900.9404296875 - 901.2540283203 - 901.5250244141 - 901.8392944336 - 902.1198730469 - 902.4196777344 - 902.6848144531 - 902.9923095703 - 903.2510375977 - 903.5410766602 - 903.8527221680 - 904.0761718750 - 904.4119873047 - 904.6680297852 - 904.9436645508 - 905.2324218750 - 905.5206298828 - 905.7650146484 - 906.0975341797 - 906.3043823242 - 906.6499633789 - 906.8815917969 - 907.1759643555 - 907.4294433594 - 907.7529907227 - 907.9847412109 - 908.3148803711 - 908.5526123047 - 908.8402099609 - 909.1082153320 - 909.3846435547 - 909.6566162109 - 909.9578247070 - 910.2102050781 - 910.4832153320 - 910.7326660156 - 911.0151367188 - 911.3122558594 - 911.5092773438 - 911.8392333984 - 912.1169433594 - 912.3726806641 - 912.6036987305 - 912.8933715820 - 913.1645507812 - 913.4292602539 - 913.6348266602 - 913.9512329102 - 914.2138671875 - 914.4331665039 - 914.7103271484 - 914.9658813477 - 915.2312011719 - 915.5173950195 - 915.7386474609 - 916.0065307617 - 916.3094482422 - 916.5004882812 - 916.7651977539 - 917.0299072266 - 917.3032226562 - 917.5459594727 - 917.7709960938 - 918.0933227539 - 918.2961425781 - 918.5375366211 - 918.7960815430 - 919.0640869141 - 919.3024902344 - 919.5599365234 - 919.8022460938 - 920.0612792969 - 920.2655639648 - 920.5615234375 - 920.7639160156 - 920.9984741211 - 921.2907714844 - 921.4710083008 - 921.7619628906 - 921.9994506836 - 922.2344360352 - 922.4646606445 - 922.7136230469 - 922.9352416992 - 923.1873168945 - 923.3884887695 - 923.6628417969 - 923.8928222656 - 924.1088256836 - 924.3809814453 - 924.5858154297 - 924.8201293945 - 925.0213623047 - 925.3208007812 - 925.4967651367 - 925.7465209961 - 925.9832763672 - 926.2113647461 - 926.4125366211 - 926.6467895508 - 926.8715209961 - 927.1304321289 - 927.3154907227 - 927.5590209961 - 927.7775878906 - 928.0020751953 - 928.1867065430 - 928.4562988281 - 928.6222534180 - 928.8926391602 - 929.1000976562 - 929.2990112305 - 929.5249023438 - 929.7514648438 - 929.9271850586 - 930.1614990234 - 930.3723754883 - 930.5894165039 - 930.8038940430 - 931.0072631836 - 931.2246093750 - 931.4145507812 - 931.6364746094 - 931.8176269531 - 932.0745849609 - 932.2378540039 - 932.4750976562 - 932.6625976562 - 932.8441162109 - 933.0661621094 - 933.2856445312 - 933.4552001953 - 933.6868286133 - 933.8626098633 - 934.0534057617 - 934.2772827148 - 934.4473266602 - 934.6705322266 - 934.8553466797 - 935.0323486328 - 935.2465209961 - 935.4023437500 - 935.6265258789 - 935.7930297852 - 936.0181274414 - 936.1995239258 - 936.3378295898 - 936.5837402344 - 936.7323608398 - 936.9050903320 - 937.1181030273 - 937.3244018555 - 937.4521484375 - 937.6762695312 - 937.8157348633 - 938.0245971680 - 938.2041625977 - 938.3710937500 - 938.5719604492 - 938.7044677734 - 938.9051513672 - 939.0724487305 - 939.2414550781 - 939.4401245117 - 939.5932617188 - 939.7618408203 - 939.9234008789 - 940.1178588867 - 940.2760009766 - 940.4432983398 - 940.5943603516 - 940.7744750977 - 940.9417114258 - 941.0772094727 - 941.2694091797 - 941.4456176758 - 941.5536499023 - 941.7366943359 - 941.9168090820 - 942.0397338867 - 942.2236328125 - 942.3912353516 - 942.4934692383 - 942.6795043945 - 942.8295288086 - 942.9783935547 - 943.1342163086 - 943.2911376953 - 943.4226684570 - 943.5793457031 - 943.7359619141 - 943.8750610352 - 944.0314331055 - 944.1599731445 - 944.2969360352 - 944.4668579102 - 944.6057128906 - 944.7260131836 - 944.8707885742 - 945.0279541016 - 945.1394653320 - 945.3012695312 - 945.4413452148 - 945.5563964844 - 945.6756591797 - 945.8571777344 - 945.9457397461 - 946.0998535156 - 946.2349243164 - 946.3323364258 - 946.4990234375 - 946.5819091797 - 946.7627563477 - 946.8559570312 - 946.9892578125 - 947.1032714844 - 947.2324218750 - 947.3674926758 - 947.4974365234 - 947.5610351562 - 947.7302246094 - 947.8621215820 - 947.9379882812 - 948.0619506836 - 948.2000122070 - 948.3260498047 - 948.3933715820 - 948.5328369141 - 948.6679687500 - 948.7423706055 - 948.8544921875 - 948.9894409180 - 949.0960693359 - 949.1818847656 - 949.2826538086 - 949.4298706055 - 949.5026855469 - 949.6196899414 - 949.7119140625 - 949.7949218750 - 949.9577636719 - 949.9923706055 - 950.1306152344 - 950.2133178711 - 950.3145751953 - 950.4371337891 - 950.4961547852 - 950.5929565430 - 950.7479858398 - 950.7656250000 - 950.8916015625 - 951.0050048828 - 951.0637817383 - 951.1724853516 - 951.2572021484 - 951.3483276367 - 951.4506835938 - 951.4903564453 - 951.6356811523 - 951.6946411133 - 951.7682495117 - 951.8680419922 - 951.9614868164 - 952.0274658203 - 952.1039428711 - 952.2036743164 - 952.2635498047 - 952.3551025391 - 952.4555664062 - 952.4662475586 - 952.6182250977 - 952.6663208008 - 952.7243041992 - 952.8448486328 - 952.8751831055 - 952.9910888672 - 953.0219116211 - 953.1194458008 - 953.1865844727 - 953.2658691406 - 953.3151245117 - 953.4144287109 - 953.4736938477 - 953.5293579102 - 953.6127319336 - 953.6873168945 - 953.7218627930 - 953.8215942383 - 953.8804321289 - 953.9430541992 - 953.9962158203 - 954.0836181641 - 954.1250000000 - 954.2095336914 - 954.2520751953 - 954.3362426758 - 954.3898315430 - 954.4482421875 - 954.4959106445 - 954.5906372070 - 954.6272583008 - 954.6746215820 - 954.7700805664 - 954.8026123047 - 954.8674316406 - 954.9535522461 - 954.9489135742 - 955.0587158203 - 955.1185302734 - 955.1354980469 - 955.2279663086 - 955.2786254883 - 955.3400268555 - 955.3540039062 - 955.4819335938 - 955.4692993164 - 955.5643310547 - 955.6119995117 - 955.6535034180 - 955.7224731445 - 955.7908325195 - 955.8173828125 - 955.8773803711 - 955.9611206055 - 955.9836425781 - 956.0315551758 - 956.1365356445 - 956.1342163086 - 956.2252807617 - 956.2678222656 - 956.3065795898 - 956.3985595703 - 956.4234619141 - 956.4820556641 - 956.5569458008 - 956.5911254883 - 956.6551513672 - 956.7047729492 - 956.7588500977 - 956.8307495117 - 956.8724975586 - 956.9357910156 - 956.9844360352 - 957.0554199219 - 957.0954589844 - 957.1588134766 - 957.2200317383 - 957.2962646484 - 957.3154907227 - 957.3894042969 - 957.4967651367 - 957.4790649414 - 957.5958862305 - 957.6306762695 - 957.6961669922 - 957.7794189453 - 957.8026733398 - 957.8987426758 - 957.9591674805 - 958.0137939453 - 958.0721435547 - 958.1693115234 - 958.1967773438 - 958.3026123047 - 958.3373413086 - 958.4176635742 - 958.4946289062 - 958.5806884766 - 958.6043090820 - 958.7041625977 - 958.8164062500 - 958.8259277344 - 958.9186401367 - 959.0223388672 - 959.0859985352 - 959.1434936523 - 959.2486572266 - 959.3101806641 - 959.4300537109 - 959.4499511719 - 959.5853271484 - 959.6477661133 - 959.7418823242 - 959.8215332031 - 959.9041137695 - 960.0277099609 - 960.0689086914 - 960.1969604492 - 960.2751464844 - 960.3626708984 - 960.4673461914 - 960.5641479492 - 960.6616210938 - 960.7371215820 - 960.8984985352 - 960.9475708008 - 961.0643310547 - 961.1776733398 - 961.2909545898 - 961.3726196289 - 961.5097656250 - 961.6031494141 - 961.7348632812 - 961.8331298828 - 961.9508666992 - 962.0725708008 - 962.2035522461 - 962.3034667969 - 962.4238891602 - 962.5776977539 - 962.6898803711 - 962.7753295898 - 962.9869384766 - 963.0354003906 - 963.2275390625 - 963.3147583008 - 963.4855346680 - 963.6007080078 - 963.7595825195 - 963.8657836914 - 964.0452880859 - 964.1791381836 - 964.3107299805 - 964.4574584961 - 964.6306762695 - 964.7702636719 - 964.8935546875 - 965.0872192383 - 965.2286987305 - 965.3834228516 - 965.5405883789 - 965.7043457031 - 965.8843994141 - 966.0174560547 - 966.1938476562 - 966.3704833984 - 966.5290527344 - 966.7028808594 - 966.8771972656 - 967.0419311523 - 967.2316894531 - 967.4098510742 - 967.5606079102 - 967.7669067383 - 967.9540405273 - 968.0993041992 - 968.3231201172 - 968.4868164062 - 968.6838378906 - 968.8743896484 - 969.0554199219 - 969.2542724609 - 969.4468994141 - 969.6369628906 - 969.8312988281 - 970.0282592773 - 970.2437133789 - 970.4017944336 - 970.6557006836 - 970.8211669922 - 971.0112915039 - 971.2761840820 - 971.4053344727 - 971.6725463867 - 971.8328247070 - 972.0696411133 - 972.2972412109 - 972.4428710938 - 972.7065429688 - 972.9299316406 - 973.0952758789 - 973.3201293945 - 973.5715942383 - 973.7664794922 - 973.9511108398 - 974.2023315430 - 974.4320068359 - 974.6004638672 - 974.8720092773 - 975.0440673828 - 975.3184204102 - 975.4882812500 - 975.7245483398 - 975.9689941406 - 976.1581420898 - 976.4014892578 - 976.6174926758 - 976.8421020508 - 977.0485229492 - 977.3001098633 - 977.5093383789 - 977.7232055664 - 977.9641113281 - 978.1798706055 - 978.4031982422 - 978.6375732422 - 978.8367919922 - 979.0949707031 - 979.3027343750 - 979.5122680664 - 979.7659912109 - 979.9754028320 - 980.2009887695 - 980.4298706055 - 980.6477661133 - 980.8736572266 - 981.1069946289 - 981.3157958984 - 981.5373535156 - 981.7858276367 - 981.9838867188 - 982.2161254883 - 982.4318847656 - 982.6566772461 - 982.8960571289 - 983.0804443359 - 983.3285522461 - 983.5568237305 - 983.7588500977 - 983.9729003906 - 984.2071533203 - 984.4397583008 - 984.6185913086 - 984.8768920898 - 985.0679931641 - 985.3173217773 - 985.4886474609 - 985.7533569336 - 985.9174804688 - 986.2004394531 - 986.3494873047 - 986.5834350586 - 986.8294677734 - 987.0039672852 - 987.2148437500 - 987.4526977539 - 987.6585693359 - 987.8544311523 - 988.0590209961 - 988.3038940430 - 988.4725341797 - 988.7052612305 - 988.8967285156 - 989.1160888672 - 989.3143310547 - 989.5310668945 - 989.7030639648 - 989.9654541016 - 990.1217041016 - 990.3357543945 - 990.5416259766 - 990.7397460938 - 990.9406738281 - 991.1459960938 - 991.3536987305 - 991.5203857422 - 991.7683105469 - 991.9428100586 - 992.1225585938 - 992.3404541016 - 992.5335083008 - 992.7402343750 - 992.8742675781 - 993.1520385742 - 993.2941284180 - 993.4984741211 - 993.6782226562 - 993.8787231445 - 994.0891113281 - 994.2447509766 - 994.4197387695 - 994.6707153320 - 994.8232421875 - 994.9749145508 - 995.2107543945 - 995.3981323242 - 995.5458984375 - 995.7377319336 - 995.9588623047 - 996.0886230469 - 996.3121337891 - 996.4766235352 - 996.6461791992 - 996.8529663086 - 997.0184936523 - 997.1819458008 - 997.3895874023 - 997.5447387695 - 997.7215576172 - 997.9207763672 - 998.0493164062 - 998.2832641602 - 998.4245605469 - 998.5834350586 - 998.7840576172 - 998.9525146484 - 999.1118164062 - 999.2713623047 - 999.4754028320 - 999.6166992188 - 999.7941284180 - 999.9585571289 - 1000.1398315430 - 1000.2941894531 - 1000.4528808594 - 1000.6332397461 - 1000.7899169922 - 1000.9678955078 - 1001.1080932617 - 1001.2804565430 - 1001.4616699219 - 1001.5860595703 - 1001.7627563477 - 1001.9421386719 - 1002.0620727539 - 1002.2621459961 - 1002.3901977539 - 1002.5527343750 - 1002.7218627930 - 1002.8718872070 - 1003.0042724609 - 1003.2052612305 - 1003.3233032227 - 1003.4785156250 - 1003.6447143555 - 1003.7961425781 - 1003.9136352539 - 1004.1262207031 - 1004.2167358398 - 1004.3922119141 - 1004.5404663086 - 1004.7014160156 - 1004.8030395508 - 1004.9957885742 - 1005.1337280273 - 1005.2382202148 - 1005.4373779297 - 1005.5489501953 - 1005.6889038086 - 1005.8673706055 - 1005.9618530273 - 1006.1219482422 - 1006.2706909180 - 1006.4069824219 - 1006.5310058594 - 1006.6849975586 - 1006.8208007812 - 1006.9547729492 - 1007.0902709961 - 1007.2200317383 - 1007.3632202148 - 1007.4918212891 - 1007.6229858398 - 1007.7578125000 - 1007.8997192383 - 1008.0083618164 - 1008.1578369141 - 1008.2843017578 - 1008.3955688477 - 1008.5494995117 - 1008.6718750000 - 1008.7708740234 - 1008.9273681641 - 1009.0489501953 - 1009.1603393555 - 1009.2752075195 - 1009.4358520508 - 1009.5184326172 - 1009.6768188477 - 1009.7576904297 - 1009.9011840820 - 1010.0415039062 - 1010.0925292969 - 1010.2774047852 - 1010.3617553711 - 1010.4873046875 - 1010.6013183594 - 1010.7125854492 - 1010.8285522461 - 1010.9536132812 - 1011.0626220703 - 1011.1619873047 - 1011.2748413086 - 1011.4191284180 - 1011.4736328125 - 1011.6248779297 - 1011.7125854492 - 1011.8338012695 - 1011.9371948242 - 1012.0158081055 - 1012.1704101562 - 1012.2457275391 - 1012.3164672852 - 1012.4964599609 - 1012.5350341797 - 1012.6551513672 - 1012.7622680664 - 1012.8625488281 - 1012.9527587891 - 1013.0613403320 - 1013.1261596680 - 1013.2888183594 - 1013.3228759766 - 1013.4344482422 - 1013.5514526367 - 1013.6170654297 - 1013.7527465820 - 1013.7980346680 - 1013.9051513672 - 1014.0072021484 - 1014.1064453125 - 1014.1655273438 - 1014.2597656250 - 1014.3798217773 - 1014.4409790039 - 1014.5099487305 - 1014.6336059570 - 1014.7130737305 - 1014.7697143555 - 1014.8567504883 - 1014.9646606445 - 1015.0465087891 - 1015.0795898438 - 1015.2073364258 - 1015.2817382812 - 1015.3517456055 - 1015.4195556641 - 1015.5130615234 - 1015.5718994141 - 1015.6897583008 - 1015.7084350586 - 1015.8237304688 - 1015.8637695312 - 1015.9720458984 - 1016.0248413086 - 1016.0830688477 - 1016.1962280273 - 1016.2239990234 - 1016.2977905273 - 1016.3867187500 - 1016.4605712891 - 1016.4910888672 - 1016.5900878906 - 1016.6383666992 - 1016.7056274414 - 1016.7648315430 - 1016.8588256836 - 1016.8769531250 - 1016.9508666992 - 1017.0321044922 - 1017.0664062500 - 1017.1470336914 - 1017.1896362305 - 1017.2448120117 - 1017.3157958984 - 1017.3645019531 - 1017.4187622070 - 1017.4732666016 - 1017.5361328125 - 1017.5576782227 - 1017.6532592773 - 1017.6948242188 - 1017.7257080078 - 1017.7988281250 - 1017.8428955078 - 1017.8558959961 - 1017.9663696289 - 1017.9788208008 - 1018.0257568359 - 1018.0743408203 - 1018.1250610352 - 1018.1589355469 - 1018.2122192383 - 1018.2531127930 - 1018.3029785156 - 1018.3310546875 - 1018.3724365234 - 1018.4086303711 - 1018.4703369141 - 1018.4876098633 - 1018.5274047852 - 1018.5649414062 - 1018.5889892578 - 1018.6661376953 - 1018.6531982422 - 1018.7237548828 - 1018.7444458008 - 1018.7594604492 - 1018.8233032227 - 1018.8076171875 - 1018.9039306641 - 1018.9038696289 - 1018.9011840820 - 1018.9484252930 - 1019.0233764648 - 1018.9698486328 - 1019.0506591797 - 1019.0869140625 - 1019.0813598633 - 1019.1117553711 - 1019.1300048828 - 1019.1635742188 - 1019.1821289062 - 1019.2064819336 - 1019.2310791016 - 1019.2514038086 - 1019.2656860352 - 1019.2718505859 - 1019.3079223633 - 1019.3300170898 - 1019.3160400391 - 1019.3764038086 - 1019.3607177734 - 1019.3588256836 - 1019.4056396484 - 1019.4187011719 - 1019.4005126953 - 1019.4624633789 - 1019.4193115234 - 1019.4607543945 - 1019.4472656250 - 1019.4857177734 - 1019.4765625000 - 1019.4940185547 - 1019.4976196289 - 1019.5056762695 - 1019.5045166016 - 1019.4965209961 - 1019.5382080078 - 1019.5227050781 - 1019.5223999023 - 1019.5390625000 - 1019.5548706055 - 1019.5010986328 - 1019.5560302734 - 1019.5166625977 - 1019.5324096680 - 1019.5437622070 - 1019.5362548828 - 1019.5137939453 - 1019.5537719727 - 1019.5122070312 - 1019.5081787109 - 1019.5123291016 - 1019.5002441406 - 1019.5222167969 - 1019.4848632812 - 1019.4720458984 - 1019.5097656250 - 1019.4380493164 - 1019.4577026367 - 1019.4411621094 - 1019.4653930664 - 1019.3934936523 - 1019.4360351562 - 1019.3991088867 - 1019.3623046875 - 1019.3859252930 - 1019.3483276367 - 1019.3505859375 - 1019.3277587891 - 1019.3116455078 - 1019.3147583008 - 1019.2794189453 - 1019.2351684570 - 1019.2665405273 - 1019.2051391602 - 1019.1902465820 - 1019.2033081055 - 1019.1453857422 - 1019.1594238281 - 1019.1118164062 - 1019.1051025391 - 1019.0816650391 - 1019.0463256836 - 1019.0184326172 - 1018.9904785156 - 1018.9644775391 - 1018.9798583984 - 1018.8903198242 - 1018.8995971680 - 1018.8641357422 - 1018.8308105469 - 1018.7938842773 - 1018.7447509766 - 1018.7844848633 - 1018.6998901367 - 1018.6715698242 - 1018.6605224609 - 1018.6088256836 - 1018.5792846680 - 1018.5393676758 - 1018.4871826172 - 1018.5017700195 - 1018.4594116211 - 1018.3664550781 - 1018.3890991211 - 1018.3556518555 - 1018.2996215820 - 1018.2473144531 - 1018.2372436523 - 1018.2014770508 - 1018.1676635742 - 1018.0585327148 - 1018.0769653320 - 1018.0369873047 - 1017.9595336914 - 1017.9335327148 - 1017.9033203125 - 1017.8682861328 - 1017.7976684570 - 1017.7560424805 - 1017.7048950195 - 1017.6741333008 - 1017.6109008789 - 1017.5844116211 - 1017.5086059570 - 1017.4899291992 - 1017.4061889648 - 1017.3751220703 - 1017.3048706055 - 1017.3090209961 - 1017.1995239258 - 1017.1904296875 - 1017.1168823242 - 1017.0879516602 - 1017.0351562500 - 1016.9566040039 - 1016.9296264648 - 1016.8973999023 - 1016.7833862305 - 1016.7908325195 - 1016.7070922852 - 1016.6565551758 - 1016.6145019531 - 1016.5337524414 - 1016.5070800781 - 1016.4373168945 - 1016.3749389648 - 1016.3027343750 - 1016.2623291016 - 1016.1763305664 - 1016.1235961914 - 1016.0711059570 - 1015.9859008789 - 1015.9216308594 - 1015.8586425781 - 1015.8051147461 - 1015.7034912109 - 1015.6694946289 - 1015.5663452148 - 1015.5358276367 - 1015.4555664062 - 1015.3938598633 - 1015.3193969727 - 1015.2853393555 - 1015.2017211914 - 1015.1295776367 - 1015.1141357422 - 1015.0421752930 - 1014.9814453125 - 1014.9101562500 - 1014.9051513672 - 1014.8424072266 - 1014.7917480469 - 1014.7854003906 - 1014.7145996094 - 1014.7137451172 - 1014.6614990234 - 1014.5877685547 - 1014.5989990234 - 1014.5847778320 - 1014.4681396484 - 1014.4817504883 - 1014.4583740234 - 1014.3764038086 - 1014.3360595703 - 1014.3131103516 - 1014.2586059570 - 1014.1408691406 - 1014.1546630859 - 1014.0914916992 - 1013.9115600586 - 1013.5387573242 - 1013.3793945312 - 1013.2317504883 - 1013.0992431641 - 1013.0480346680 - 1012.8803710938 - 1012.7141113281 - 1012.6042480469 - 1012.5267333984 - 1012.3311767578 - 1012.1567382812 - 1012.1007690430 - 1011.9555053711 - 1011.7416992188 - 1011.6539916992 - 1011.5284423828 - 1011.3572387695 - 1011.2506713867 - 1011.0690917969 - 1010.9632568359 - 1010.8307495117 - 1010.6777343750 - 1010.5426025391 - 1010.4342651367 - 1010.3219604492 - 1010.1577758789 - 1010.0383300781 - 1009.9376831055 - 1009.7962036133 - 1009.6806640625 - 1009.5390625000 - 1009.4586791992 - 1009.2848510742 - 1009.2139282227 - 1009.0438232422 - 1008.9683227539 - 1008.8311767578 - 1008.7023315430 - 1008.5836791992 - 1008.4780273438 - 1008.3402099609 - 1008.2098388672 - 1008.1085815430 - 1007.9641113281 - 1007.8395385742 - 1007.7248535156 - 1007.6075439453 - 1007.4444580078 - 1007.3392944336 - 1007.2076416016 - 1007.0651855469 - 1006.9619750977 - 1006.7747802734 - 1006.7033081055 - 1006.5570068359 - 1006.3857421875 - 1006.2916259766 - 1006.1550903320 - 1006.0126342773 - 1005.8764648438 - 1005.7283935547 - 1005.6424560547 - 1005.4539184570 - 1005.3411865234 - 1005.1946411133 - 1005.0825195312 - 1004.9317016602 - 1004.8008422852 - 1004.6580810547 - 1004.5398559570 - 1004.3815307617 - 1004.2504882812 - 1004.1068725586 - 1003.9894409180 - 1003.8506469727 - 1003.6878051758 - 1003.5351562500 - 1003.4442138672 - 1003.2785034180 - 1003.0922851562 - 1003.0177001953 - 1002.8567504883 - 1002.7161865234 - 1002.5512084961 - 1002.4120483398 - 1002.2939453125 - 1002.1420898438 - 1001.9425659180 - 1001.8506469727 - 1001.7153320312 - 1001.5186157227 - 1001.3887939453 - 1001.2555541992 - 1001.0970458984 - 1000.9598999023 - 1000.8037719727 - 1000.6413574219 - 1000.5462036133 - 1000.3286132812 - 1000.2039184570 - 1000.0584106445 - 999.8999633789 - 999.7684936523 - 999.5759887695 - 999.4739990234 - 999.2882690430 - 999.1416015625 - 998.9859008789 - 998.8225708008 - 998.6940917969 - 998.5317382812 - 998.3526611328 - 998.2291259766 - 998.0444335938 - 997.9098510742 - 997.7284545898 - 997.5683593750 - 997.4427490234 - 997.2478027344 - 997.0939331055 - 996.9661254883 - 996.7760009766 - 996.6220703125 - 996.4647827148 - 996.2866821289 - 996.1513671875 - 995.9532470703 - 995.7994384766 - 995.6807250977 - 995.4398193359 - 995.3464355469 - 995.1445312500 - 994.9871826172 - 994.7954711914 - 994.6813354492 - 994.4786376953 - 994.3037719727 - 994.1798706055 - 993.9635009766 - 993.8248901367 - 993.6339111328 - 993.4631958008 - 993.3297119141 - 993.1164550781 - 992.9631958008 - 992.8034057617 - 992.6075439453 - 992.4353027344 - 992.2897338867 - 992.0657958984 - 991.9432373047 - 991.7528076172 - 991.5674438477 - 991.3909301758 - 991.2385253906 - 991.0292358398 - 990.8579711914 - 990.6935424805 - 990.5089111328 - 990.3336791992 - 990.1435546875 - 989.9879150391 - 989.7734985352 - 989.6207885742 - 989.4078369141 - 989.2780151367 - 989.0449829102 - 988.8886108398 - 988.7182006836 - 988.4956665039 - 988.3244018555 - 988.1776123047 - 987.9410400391 - 987.7816162109 - 987.6051635742 - 987.3942260742 - 987.2075195312 - 987.0485229492 - 986.8381958008 - 986.6511230469 - 986.4695434570 - 986.2702026367 - 986.0888671875 - 985.8818969727 - 985.6989746094 - 985.5304565430 - 985.3262329102 - 985.0799560547 - 984.9763183594 - 984.7319946289 - 984.5157470703 - 984.3524169922 - 984.1890869141 - 983.9255981445 - 983.7749023438 - 983.5568847656 - 983.3667602539 - 983.1889038086 - 982.9388427734 - 982.8015136719 - 982.5663452148 - 982.3663940430 - 982.1701049805 - 981.9700317383 - 981.7841796875 - 981.5588378906 - 981.3640136719 - 981.1655273438 - 980.9647827148 - 980.7543945312 - 980.5534057617 - 980.3439331055 - 980.1445312500 - 979.9260253906 - 979.7357788086 - 979.5050659180 - 979.3444824219 - 979.0728759766 - 978.9051513672 - 978.6885986328 - 978.4672851562 - 978.2698364258 - 978.0664062500 - 977.8231201172 - 977.6397705078 - 977.4144897461 - 977.2042846680 - 976.9896850586 - 976.7824707031 - 976.5585937500 - 976.3419799805 - 976.1448974609 - 975.8986816406 - 975.7166137695 - 975.4768676758 - 975.2426757812 - 975.0771484375 - 974.8088378906 - 974.6127319336 - 974.3843383789 - 974.1782226562 - 973.9227905273 - 973.7428588867 - 973.5070190430 - 973.2648925781 - 973.0458984375 - 972.8553466797 - 972.5926513672 - 972.3720092773 - 972.1748046875 - 971.9143676758 - 971.7144775391 - 971.4523925781 - 971.2769775391 - 971.0037841797 - 970.7987670898 - 970.5507202148 - 970.3333740234 - 970.1076049805 - 969.8783569336 - 969.6109008789 - 969.4201660156 - 969.1782226562 - 968.9350585938 - 968.6899414062 - 968.4831542969 - 968.2479858398 - 967.9850463867 - 967.7586059570 - 967.5483398438 - 967.2852783203 - 967.0360107422 - 966.8287353516 - 966.5764160156 - 966.3354492188 - 966.0734252930 - 965.8793334961 - 965.5913696289 - 965.3880004883 - 965.1174926758 - 964.8623046875 - 964.6749267578 - 964.3714599609 - 964.1527099609 - 963.9025268555 - 963.6686401367 - 963.4014892578 - 963.1735839844 - 962.8946533203 - 962.7056884766 - 962.3859863281 - 962.1664428711 - 961.9487304688 - 961.6394653320 - 961.4201660156 - 961.1770629883 - 960.9001464844 - 960.6696166992 - 960.3812866211 - 960.1737670898 - 959.8822021484 - 959.6320190430 - 959.3848266602 - 959.1264648438 - 958.8631591797 - 958.6057128906 - 958.3376464844 - 958.0957641602 - 957.8109130859 - 957.5883789062 - 957.2664184570 - 957.0582275391 - 956.7820434570 - 956.4934082031 - 956.2612304688 - 955.9685668945 - 955.7359619141 - 955.4391479492 - 955.1681518555 - 954.9250488281 - 954.6565551758 - 954.3527221680 - 954.1060791016 - 953.8512573242 - 953.5463867188 - 953.2918701172 - 953.0188598633 - 952.7374267578 - 952.4746704102 - 952.1879272461 - 951.9099121094 - 951.6452026367 - 951.3583374023 - 951.0819091797 - 950.7947998047 - 950.5316772461 - 950.2396240234 - 949.9669799805 - 949.6595458984 - 949.4108886719 - 949.1060791016 - 948.8259887695 - 948.5166015625 - 948.2799072266 - 947.9517822266 - 947.6654052734 - 947.4088134766 - 947.0735473633 - 946.8090820312 - 946.5294189453 - 946.1912841797 - 945.9455566406 - 945.6325073242 - 945.3328857422 - 945.0247802734 - 944.7717285156 - 944.4211425781 - 944.1469726562 - 943.8530273438 - 943.5396118164 - 943.2225952148 - 942.9685058594 - 942.6080322266 - 942.3376464844 - 942.0178833008 - 941.7131958008 - 941.4010009766 - 941.1030883789 - 940.7663574219 - 940.4913330078 - 940.1550903320 - 939.8264160156 - 939.5450439453 - 939.2190551758 - 938.8810424805 - 938.5854492188 - 938.2581787109 - 937.9429931641 - 937.5996093750 - 937.2900390625 - 936.9749145508 - 936.6361694336 - 936.3082275391 - 935.9700317383 - 935.6763916016 - 935.3015747070 - 934.9826049805 - 934.6654663086 - 934.3218994141 - 933.9688110352 - 933.6439819336 - 933.3220825195 - 932.9414672852 - 932.6333007812 - 932.2713623047 - 931.9232177734 - 931.5965576172 - 931.2280883789 - 930.8774414062 - 930.5521240234 - 930.1624755859 - 929.8324584961 - 929.4802246094 - 929.0822753906 - 928.7818603516 - 928.3840332031 - 927.9988403320 - 927.6898803711 - 927.3084106445 - 926.8944091797 - 926.5630493164 - 926.2198486328 - 925.7901611328 - 925.4250488281 - 925.0832519531 - 924.6806030273 - 924.2997436523 - 923.9165649414 - 923.5269165039 - 923.1969604492 - 922.7155151367 - 922.3858642578 - 921.9908447266 - 921.5945434570 - 921.1677246094 - 920.8039550781 - 920.4168090820 - 919.9700317383 - 919.5915527344 - 919.1833496094 - 918.7728271484 - 918.3572998047 - 917.9518432617 - 917.5317993164 - 917.1149902344 - 916.7298583984 - 916.2550048828 - 915.8784179688 - 915.4286499023 - 915.0101318359 - 914.5809326172 - 914.1570434570 - 913.6967163086 - 913.3144531250 - 912.8306274414 - 912.3991699219 - 911.9780883789 - 911.5335693359 - 911.0611572266 - 910.6193237305 - 910.2112426758 - 909.7149658203 - 909.2594604492 - 908.8500366211 - 908.3424072266 - 907.9218139648 - 907.4151000977 - 906.9994506836 - 906.4964599609 - 906.0581665039 - 905.5485229492 - 905.1152343750 - 904.6271972656 - 904.1370239258 - 903.6688842773 - 903.2007446289 - 902.7163696289 - 902.2112426758 - 901.7579956055 - 901.2532958984 - 900.7617187500 - 900.2844238281 - 899.7747802734 - 899.3099365234 - 898.7961425781 - 898.2938232422 - 897.8135375977 - 897.3062133789 - 896.8011474609 - 896.3088378906 - 895.8045043945 - 895.2863159180 - 894.8050537109 - 894.2720947266 - 893.7695922852 - 893.2829589844 - 892.7451782227 - 892.2454223633 - 891.7346801758 - 891.2155761719 - 890.7144165039 - 890.1786499023 - 889.6755981445 - 889.1840820312 - 888.6235961914 - 888.1356201172 - 887.6156005859 - 887.0964965820 - 886.5744018555 - 886.0705566406 - 885.5419921875 - 885.0092773438 - 884.5288085938 - 883.9774780273 - 883.4914550781 - 882.9216918945 - 882.4667968750 - 881.9153442383 - 881.3909912109 - 880.8870239258 - 880.3980102539 - 879.8581542969 - 879.3176879883 - 878.8558349609 - 878.3413696289 - 877.7659301758 - 877.3375244141 - 876.7887573242 - 876.2721557617 - 875.8038330078 - 875.2326049805 - 874.8129272461 - 874.2474975586 - 873.7570190430 - 873.3010864258 - 872.7393798828 - 872.2958984375 - 871.7784423828 - 871.2847900391 - 870.8090820312 - 870.3058471680 - 869.8306274414 - 869.3424072266 - 868.8628540039 - 868.3859863281 - 867.8928222656 - 867.4473266602 - 866.9275512695 - 866.4935302734 - 866.0277099609 - 865.5296020508 - 865.0922851562 - 864.6415405273 - 864.1582641602 - 863.7138061523 - 863.2628173828 - 862.8071289062 - 862.3704223633 - 861.9215087891 - 861.4626464844 - 861.0549316406 - 860.6086425781 - 860.1634521484 - 859.7421264648 - 859.3171386719 - 858.9037475586 - 858.4444580078 - 858.0549926758 - 857.6528930664 - 857.2136840820 - 856.8092041016 - 856.4144287109 - 856.0180664062 - 855.5875854492 - 855.2180175781 - 854.8115234375 - 854.4326171875 - 854.0203247070 - 853.6762084961 - 853.2330932617 - 852.9392700195 - 852.4763183594 - 852.1578979492 - 851.7850952148 - 851.3989868164 - 851.0412597656 - 850.6960449219 - 850.3219604492 - 849.9701538086 - 849.6201782227 - 849.2712402344 - 848.9244995117 - 848.5925292969 - 848.2201538086 - 847.9180908203 - 847.5789794922 - 847.2243041992 - 846.8998413086 - 846.6207275391 - 846.2335815430 - 845.9432983398 - 845.6232299805 - 845.3114624023 - 844.9845581055 - 844.6824340820 - 844.3928222656 - 844.0512084961 - 843.7928466797 - 843.4534912109 - 843.1788330078 - 842.8788452148 - 842.5739746094 - 842.3109741211 - 841.9810180664 - 841.7338867188 - 841.4252319336 - 841.1656494141 - 840.8512573242 - 840.6005249023 - 840.3316040039 - 840.0379028320 - 839.7478637695 - 839.5366821289 - 839.2312622070 - 838.9471435547 - 838.7258300781 - 838.4364013672 - 838.1923217773 - 837.9084472656 - 837.6791381836 - 837.4002685547 - 837.1802978516 - 836.8888549805 - 836.6594848633 - 836.4070434570 - 836.1762695312 - 835.8866577148 - 835.6847534180 - 835.4229736328 - 835.1748657227 - 834.9609985352 - 834.6629638672 - 834.5089721680 - 834.2172851562 - 833.9689941406 - 833.7790527344 - 833.5173339844 - 833.2875976562 - 833.0548706055 - 832.8278808594 - 832.5966796875 - 832.3728027344 - 832.1348266602 - 831.9215698242 - 831.6800537109 - 831.4636840820 - 831.2360229492 - 831.0034790039 - 830.8042602539 - 830.5656738281 - 830.3285522461 - 830.1422729492 - 829.8888549805 - 829.6831054688 - 829.4685058594 - 829.2171020508 - 829.0615234375 - 828.7821044922 - 828.5715942383 - 828.3967895508 - 828.1346435547 - 827.9271240234 - 827.7220458984 - 827.5098876953 - 827.2684326172 - 827.0651245117 - 826.8627929688 - 826.6060180664 - 826.4562377930 - 826.1657714844 - 826.0004272461 - 825.7763671875 - 825.5604248047 - 825.3198242188 - 825.1373901367 - 824.9256591797 - 824.6536254883 - 824.4991455078 - 824.2612915039 - 824.0392456055 - 823.8406982422 - 823.5998535156 - 823.3887939453 - 823.2061767578 - 822.9359130859 - 822.7523803711 - 822.5277709961 - 822.3256225586 - 822.0745239258 - 821.8918457031 - 821.6417846680 - 821.4537963867 - 821.2001342773 - 821.0020751953 - 820.7857666016 - 820.5700683594 - 820.3116455078 - 820.1299438477 - 819.8995971680 - 819.6660766602 - 819.4459228516 - 819.2437744141 - 818.9932861328 - 818.7820434570 - 818.5476684570 - 818.3400878906 - 818.0803833008 - 817.8969116211 - 817.6301879883 - 817.4487304688 - 817.1760253906 - 816.9603881836 - 816.7634887695 - 816.4600219727 - 816.2907714844 - 816.0486450195 - 815.7902832031 - 815.5930786133 - 815.3312988281 - 815.1043701172 - 814.8901367188 - 814.6411743164 - 814.3892211914 - 814.1697998047 - 813.9510498047 - 813.6566772461 - 813.4645996094 - 813.2161865234 - 812.9619750977 - 812.7310791016 - 812.4802856445 - 812.2527465820 - 811.9957275391 - 811.7215576172 - 811.5440063477 - 811.2457275391 - 810.9825439453 - 810.7932128906 - 810.5014648438 - 810.2536010742 - 810.0216674805 - 809.7313842773 - 809.5387573242 - 809.2305908203 - 808.9962768555 - 808.7437133789 - 808.4883422852 - 808.2526855469 - 807.9617919922 - 807.7011718750 - 807.4695434570 - 807.2058105469 - 806.9252929688 - 806.6553955078 - 806.4290161133 - 806.1468505859 - 805.8520507812 - 805.6350708008 - 805.3532104492 - 805.0683593750 - 804.7849731445 - 804.5662231445 - 804.2742309570 - 803.9558715820 - 803.7414550781 - 803.4573974609 - 803.1685180664 - 802.8907470703 - 802.6192016602 - 802.3416137695 - 802.0862426758 - 801.7601318359 - 801.5231323242 - 801.2036743164 - 800.9475708008 - 800.6716308594 - 800.3598022461 - 800.1152343750 - 799.7813110352 - 799.5161743164 - 799.2454833984 - 798.9447021484 - 798.6426391602 - 798.3716430664 - 798.0624389648 - 797.7589721680 - 797.5028686523 - 797.1892700195 - 796.8823242188 - 796.5866088867 - 796.2997436523 - 796.0023803711 - 795.6995239258 - 795.3953857422 - 795.0827636719 - 794.7989501953 - 794.4899291992 - 794.1788940430 - 793.8791503906 - 793.5711059570 - 793.2344970703 - 792.9801635742 - 792.6586303711 - 792.3186035156 - 792.0480957031 - 791.7044067383 - 791.3787841797 - 791.1048583984 - 790.7920532227 - 790.4255371094 - 790.1530151367 - 789.8252563477 - 789.4893798828 - 789.1873779297 - 788.8677368164 - 788.5559082031 - 788.2004394531 - 787.8898315430 - 787.5708618164 - 787.2584228516 - 786.9049682617 - 786.5838623047 - 786.2672119141 - 785.9038696289 - 785.6144409180 - 785.2788085938 - 784.9376220703 - 784.6128540039 - 784.2439575195 - 783.9534912109 - 783.5823364258 - 783.2861328125 - 782.9326782227 - 782.5709838867 - 782.2374877930 - 781.9229736328 - 781.5441284180 - 781.2421264648 - 780.9029541016 - 780.5227050781 - 780.2132568359 - 779.8167724609 - 779.5216674805 - 779.1412963867 - 778.8179321289 - 778.4823608398 - 778.0853271484 - 777.7820434570 - 777.3955078125 - 777.0407714844 - 776.7218017578 - 776.3367309570 - 775.9985961914 - 775.6362915039 - 775.2593383789 - 774.9113769531 - 774.5794067383 - 774.1889038086 - 773.8614501953 - 773.4574584961 - 773.1144409180 - 772.7453613281 - 772.3904418945 - 772.0274658203 - 771.6661987305 - 771.2973022461 - 770.9201049805 - 770.5612182617 - 770.1677246094 - 769.8343505859 - 769.4595336914 - 769.0756225586 - 768.7223510742 - 768.3563232422 - 767.9380493164 - 767.6104125977 - 767.1826782227 - 766.8550415039 - 766.4632568359 - 766.0963745117 - 765.6993408203 - 765.3520507812 - 764.9442749023 - 764.5640258789 - 764.1624755859 - 763.8280029297 - 763.4225463867 - 763.0479736328 - 762.6334838867 - 762.3032226562 - 761.8507080078 - 761.4920654297 - 761.1052856445 - 760.7373657227 - 760.3305664062 - 759.9303588867 - 759.5676879883 - 759.1304931641 - 758.7689208984 - 758.3689575195 - 757.9900512695 - 757.5847167969 - 757.2053222656 - 756.8034057617 - 756.4258422852 - 755.9671020508 - 755.6351318359 - 755.1876831055 - 754.7996826172 - 754.4443969727 - 753.9877319336 - 753.6286010742 - 753.2259521484 - 752.8189086914 - 752.4002075195 - 752.0220947266 - 751.5894775391 - 751.1721801758 - 750.7821044922 - 750.4243164062 - 749.9476928711 - 749.5580444336 - 749.1736450195 - 748.7358398438 - 748.3153076172 - 747.9044799805 - 747.5483398438 - 747.1008911133 - 746.6684570312 - 746.3004760742 - 745.8554687500 - 745.4284667969 - 745.0262451172 - 744.5965576172 - 744.2124633789 - 743.7997436523 - 743.3357543945 - 742.9688110352 - 742.5455932617 - 742.1295776367 - 741.6794433594 - 741.2943725586 - 740.8882446289 - 740.4445800781 - 739.9707641602 - 739.6215820312 - 739.1492309570 - 738.7306518555 - 738.3276367188 - 737.8889770508 - 737.4879150391 - 737.0328979492 - 736.6043090820 - 736.1752319336 - 735.7450561523 - 735.3076171875 - 734.9244995117 - 734.4249267578 - 734.0460815430 - 733.5641479492 - 733.1586914062 - 732.7147216797 - 732.3182983398 - 731.8195800781 - 731.4752197266 - 730.9699707031 - 730.5786132812 - 730.1320190430 - 729.7039184570 - 729.2581787109 - 728.8493041992 - 728.3696899414 - 727.9855957031 - 727.5234375000 - 727.0712890625 - 726.6662597656 - 726.2084960938 - 725.7803955078 - 725.3271484375 - 724.9009399414 - 724.4253540039 - 723.9980468750 - 723.5339355469 - 723.1002807617 - 722.6527709961 - 722.1815185547 - 721.7418212891 - 721.2822265625 - 720.8333129883 - 720.3809814453 - 719.9152832031 - 719.4675903320 - 719.0026245117 - 718.5996704102 - 718.1180419922 - 717.6547241211 - 717.2516479492 - 716.7949218750 - 716.3312988281 - 715.9318847656 - 715.4818725586 - 715.0749511719 - 714.5786743164 - 714.2331542969 - 713.7660522461 - 713.3926391602 - 712.9812011719 - 712.5485839844 - 712.1739501953 - 711.7530517578 - 711.3522949219 - 710.9213256836 - 710.5658569336 - 710.1098022461 - 709.7708740234 - 709.2820434570 - 708.8790893555 - 708.5252075195 - 708.0994873047 - 707.5818481445 - 707.1336669922 - 706.8844604492 - 706.3839721680 - 705.5301513672 - 703.6618652344 - 702.8223876953 - 702.2631225586 - 701.9128417969 - 701.5109863281 - 700.9146118164 - 700.3894042969 - 699.9874877930 - 699.5877685547 - 698.9793090820 - 698.5094604492 - 698.0963134766 - 697.6499023438 - 697.0625610352 - 696.6521606445 - 696.1801757812 - 695.6873168945 - 695.2297363281 - 694.6964111328 - 694.2846069336 - 693.7691040039 - 693.3206176758 - 692.7797851562 - 692.3399047852 - 691.8616333008 - 691.3589477539 - 690.8619384766 - 690.3934936523 - 689.9154052734 - 689.4235839844 - 688.8856811523 - 688.4825439453 - 687.9178466797 - 687.4922485352 - 686.9317016602 - 686.4972534180 - 685.9895629883 - 685.4842529297 - 685.0067138672 - 684.5203857422 - 684.0129394531 - 683.5252685547 - 683.0504150391 - 682.5501098633 - 682.0372924805 - 681.5744018555 - 681.0881958008 - 680.5646972656 - 680.0892333984 - 679.6213989258 - 679.1049194336 - 678.6288452148 - 678.1093139648 - 677.6584472656 - 677.1699829102 - 676.6229858398 - 676.1837768555 - 675.6785278320 - 675.2077026367 - 674.6585083008 - 674.2167358398 - 673.7336425781 - 673.2031250000 - 672.7288208008 - 672.2423706055 - 671.7401123047 - 671.2683105469 - 670.7304077148 - 670.2656250000 - 669.7891845703 - 669.2700195312 - 668.7843017578 - 668.2841186523 - 667.7960205078 - 667.3222656250 - 666.7905273438 - 666.2987670898 - 665.8697509766 - 665.3095092773 - 664.8171386719 - 664.3667602539 - 663.8334960938 - 663.3539428711 - 662.8603515625 - 662.3491210938 - 661.8889160156 - 661.3831787109 - 660.8603515625 - 660.3963012695 - 659.9182128906 - 659.3861083984 - 658.9014892578 - 658.4337768555 - 657.9160766602 - 657.4104614258 - 656.9409179688 - 656.4142456055 - 655.9583740234 - 655.4224853516 - 654.9581298828 - 654.4610595703 - 653.9355468750 - 653.4832153320 - 652.9520263672 - 652.4658813477 - 651.9674682617 - 651.4920654297 - 650.9850463867 - 650.4573974609 - 650.0131225586 - 649.4967651367 - 648.9687500000 - 648.5121459961 - 648.0136108398 - 647.5026245117 - 647.0113525391 - 646.5211181641 - 646.0276489258 - 645.5371704102 - 645.0006103516 - 644.5579223633 - 644.0203857422 - 643.5443725586 - 643.0439453125 - 642.5382690430 - 642.0690917969 - 641.5521240234 - 641.0325927734 - 640.6111450195 - 640.0127563477 - 639.5896606445 - 639.0634155273 - 638.5776367188 - 638.0704345703 - 637.5872192383 - 637.0883789062 - 636.5594482422 - 636.1233520508 - 635.5507812500 - 635.1271362305 - 634.5887451172 - 634.0911254883 - 633.6176147461 - 633.0927124023 - 632.6036376953 - 632.1290893555 - 631.5920410156 - 631.1320800781 - 630.6292114258 - 630.1058959961 - 629.6385498047 - 629.1271362305 - 628.6320190430 - 628.1243286133 - 627.6528930664 - 627.1428222656 - 626.6341552734 - 626.1600341797 - 625.6473999023 - 625.1525878906 - 624.6450195312 - 624.1783447266 - 623.6461181641 - 623.1785888672 - 622.6571044922 - 622.1913452148 - 621.6569824219 - 621.1686401367 - 620.7070922852 - 620.1703491211 - 619.6737670898 - 619.2185668945 - 618.6716918945 - 618.1842041016 - 617.7254638672 - 617.1973266602 - 616.6750488281 - 616.2489013672 - 615.6896972656 - 615.2051391602 - 614.7368774414 - 614.2031250000 - 613.7563476562 - 613.2012939453 - 612.7419433594 - 612.2466430664 - 611.7380981445 - 611.2066040039 - 610.7906494141 - 610.2521362305 - 609.7336425781 - 609.2583007812 - 608.7895507812 - 608.2412109375 - 607.7737426758 - 607.2854614258 - 606.7720947266 - 606.3070678711 - 605.7410278320 - 605.3165893555 - 604.8074951172 - 604.2866821289 - 603.8050537109 - 603.3150634766 - 602.8185424805 - 602.3041992188 - 601.8229370117 - 601.3432006836 - 600.8261718750 - 600.3311767578 - 599.8413085938 - 599.3542480469 - 598.8542480469 - 598.3366699219 - 597.8955688477 - 597.3339233398 - 596.8990478516 - 596.3571166992 - 595.9033203125 - 595.3760375977 - 594.8985595703 - 594.3975830078 - 593.9030761719 - 593.4110107422 - 592.9296264648 - 592.4188232422 - 591.9324340820 - 591.4324340820 - 590.9428710938 - 590.4519042969 - 589.9479370117 - 589.4744262695 - 588.9419555664 - 588.4915161133 - 587.9788818359 - 587.4669799805 - 587.0297851562 - 586.4618530273 - 586.0256958008 - 585.5144042969 - 585.0257568359 - 584.5055541992 - 584.0548095703 - 583.5363159180 - 583.0332641602 - 582.5620727539 - 582.0738525391 - 581.5646972656 - 581.0568237305 - 580.6044921875 - 580.0892944336 - 579.6005859375 - 579.0982055664 - 578.6348266602 - 578.1051635742 - 577.6417236328 - 577.1295776367 - 576.6508789062 - 576.1535644531 - 575.6564941406 - 575.1647949219 - 574.6879272461 - 574.1678466797 - 573.7021484375 - 573.1853637695 - 572.7149658203 - 572.2113647461 - 571.7234497070 - 571.2207031250 - 570.7470092773 - 570.2515258789 - 569.7398681641 - 569.2713623047 - 568.7609252930 - 568.2884521484 - 567.7684326172 - 567.3084106445 - 566.7755126953 - 566.3307495117 - 565.8054809570 - 565.3132324219 - 564.8480834961 - 564.3292236328 - 563.8390502930 - 563.3551635742 - 562.8788452148 - 562.3290405273 - 561.9047241211 - 561.3615112305 - 560.9023437500 - 560.3743896484 - 559.8956298828 - 559.4326782227 - 558.8800659180 - 558.4196166992 - 557.9448852539 - 557.4111938477 - 556.9390869141 - 556.4382324219 - 555.9591674805 - 555.4349365234 - 554.9604492188 - 554.4647216797 - 553.9580078125 - 553.4709472656 - 552.9815063477 - 552.4534912109 - 552.0061035156 - 551.4598999023 - 551.0019531250 - 550.4777221680 - 549.9912719727 - 549.5026855469 - 548.9844970703 - 548.4915771484 - 547.9942016602 - 547.5052490234 - 547.0009765625 - 546.4705200195 - 546.0138549805 - 545.5056762695 - 544.9729614258 - 544.4796752930 - 544.0126342773 - 543.4712524414 - 542.9805297852 - 542.4699707031 - 541.9862670898 - 541.4677734375 - 540.9522094727 - 540.4464111328 - 539.9699096680 - 539.4251098633 - 538.9434814453 - 538.4017944336 - 537.9399414062 - 537.3900756836 - 536.9018554688 - 536.3543701172 - 535.9097900391 - 535.3306274414 - 534.8480834961 - 534.3086547852 - 533.8354492188 - 533.2824707031 - 532.7623291016 - 532.2667236328 - 531.7387695312 - 531.2084350586 - 530.7041625977 - 530.1505737305 - 529.6673583984 - 529.1198730469 - 528.5828857422 - 528.0792846680 - 527.5487670898 - 527.0059204102 - 526.4753417969 - 525.9616088867 - 525.4233398438 - 524.8520507812 - 524.3798828125 - 523.7833251953 - 523.2944946289 - 522.7044067383 - 522.1987915039 - 521.6571044922 - 521.0806274414 - 520.5501708984 - 520.0234985352 - 519.4496459961 - 518.8916015625 - 518.3552246094 - 517.8148803711 - 517.2222290039 - 516.6798095703 - 516.1289062500 - 515.5677490234 - 514.9751586914 - 514.4327392578 - 513.8646240234 - 513.2888793945 - 512.7083129883 - 512.1260986328 - 511.5921325684 - 510.9625854492 - 510.3967285156 - 509.8359985352 - 509.2186279297 - 508.6434936523 - 508.0591125488 - 507.4456481934 - 506.8647155762 - 506.2633666992 - 505.6599731445 - 505.0474243164 - 504.4511108398 - 503.8494262695 - 503.2034912109 - 502.6323547363 - 501.9660949707 - 501.3905944824 - 500.7406921387 - 500.0900878906 - 499.5135192871 - 498.8552551270 - 498.1714477539 - 497.6116638184 - 496.9280700684 - 496.2564086914 - 495.6384887695 - 494.9900512695 - 494.3079528809 - 493.6441650391 - 493.0071411133 - 492.3142700195 - 491.6618957520 - 490.9583740234 - 490.2883911133 - 489.6543579102 - 488.8821105957 - 488.2326965332 - 487.5543823242 - 486.8430175781 - 486.0979003906 - 485.4489440918 - 484.7225646973 - 483.9844665527 - 483.2676086426 - 482.5540161133 - 481.8275451660 - 481.0760498047 - 480.3486328125 - 479.5981445312 - 478.8736572266 - 478.1147155762 - 477.3275451660 - 476.6261596680 - 475.8133544922 - 475.0504150391 - 474.3020935059 - 473.5071716309 - 472.6989440918 - 471.9744262695 - 471.1250610352 - 470.3387756348 - 469.5642395020 - 468.7438354492 - 467.9104919434 - 467.1051940918 - 466.3205871582 - 465.4383850098 - 464.6476745605 - 463.8030395508 - 462.9666748047 - 462.1238708496 - 461.2514038086 - 460.4383544922 - 459.5436401367 - 458.7073059082 - 457.8114318848 - 456.9627990723 - 456.0734863281 - 455.1837158203 - 454.3132324219 - 453.4166259766 - 452.5274658203 - 451.6231994629 - 450.7296142578 - 449.8075866699 - 448.8937072754 - 447.9993896484 - 447.0481262207 - 446.1506958008 - 445.2223815918 - 444.2697753906 - 443.3522338867 - 442.4103088379 - 441.4563903809 - 440.5214233398 - 439.5778198242 - 438.5880126953 - 437.6676025391 - 436.6935119629 - 435.7113647461 - 434.7736206055 - 433.7975769043 - 432.8031311035 - 431.8505554199 - 430.8520507812 - 429.8883666992 - 428.8800659180 - 427.9050903320 - 426.9543457031 - 425.8982543945 - 424.9519042969 - 423.9520874023 - 422.9357299805 - 421.9715576172 - 420.9408874512 - 419.9593505859 - 418.9463195801 - 417.9411621094 - 416.9595642090 - 415.9434509277 - 414.9027404785 - 413.9653625488 - 412.8859863281 - 411.9310302734 - 410.8892822266 - 409.9123229980 - 408.9129028320 - 407.8526611328 - 406.8898620605 - 405.9009094238 - 404.8260803223 - 403.9154052734 - 402.8370666504 - 401.8713378906 - 400.8772277832 - 399.8212890625 - 398.9011230469 - 397.8562316895 - 396.8629760742 - 395.9148254395 - 394.8572387695 - 393.9295959473 - 392.9138183594 - 391.9261169434 - 390.9852294922 - 389.9556274414 - 389.0122680664 - 388.0438537598 - 387.0612792969 - 386.1088562012 - 385.1223754883 - 384.2000732422 - 383.1959228516 - 382.2677001953 - 381.3393554688 - 380.3589477539 - 379.4289855957 - 378.5226440430 - 377.5490722656 - 376.6327209473 - 375.7168579102 - 374.7857360840 - 373.8764648438 - 372.9730834961 - 372.0403747559 - 371.1613464355 - 370.2718811035 - 369.3501586914 - 368.4817810059 - 367.5984802246 - 366.7189331055 - 365.8223266602 - 364.9715881348 - 364.1204528809 - 363.2371215820 - 362.3958740234 - 361.5503234863 - 360.7033691406 - 359.8559570312 - 359.0254516602 - 358.2037353516 - 357.3666992188 - 356.5547790527 - 355.7576599121 - 354.9041137695 - 354.1670532227 - 353.2976379395 - 352.5704345703 - 351.7454833984 - 350.9707946777 - 350.2047729492 - 349.4310302734 - 348.6435546875 - 347.9013671875 - 347.1529846191 - 346.3661804199 - 345.6580810547 - 344.9095764160 - 344.1387023926 - 343.4500732422 - 342.7242736816 - 341.9556274414 - 341.2788085938 - 340.5828552246 - 339.8231811523 - 339.1578369141 - 338.4538879395 - 337.7703857422 - 337.0610046387 - 336.3852233887 - 335.7268066406 - 335.0272827148 - 334.3774414062 - 333.6738891602 - 333.0667114258 - 332.3812255859 - 331.7124938965 - 331.0962219238 - 330.4475708008 - 329.7849121094 - 329.1612854004 - 328.5525207520 - 327.8817443848 - 327.2904052734 - 326.6606750488 - 326.0467529297 - 325.4187927246 - 324.8390502930 - 324.2090148926 - 323.6140136719 - 323.0328674316 - 322.3932189941 - 321.8642578125 - 321.2285461426 - 320.6493835449 - 320.0840454102 - 319.5170898438 - 318.8969116211 - 318.3691406250 - 317.7677917480 - 317.2419738770 - 316.6254272461 - 316.1022949219 - 315.5374755859 - 314.9727783203 - 314.4395141602 - 313.8439941406 - 313.3697814941 - 312.7718505859 - 312.2243652344 - 311.7268066406 - 311.1486816406 - 310.6299438477 - 310.1061706543 - 309.5466308594 - 309.0429687500 - 308.5156555176 - 307.9786376953 - 307.4630126953 - 306.9304199219 - 306.4331665039 - 305.8961181641 - 305.3749389648 - 304.8850708008 - 304.3707885742 - 303.8269958496 - 303.3538208008 - 302.8323059082 - 302.3329162598 - 301.8174133301 - 301.3035278320 - 300.8596191406 - 300.2933959961 - 299.8009643555 - 299.3580322266 - 298.7965698242 - 298.3387451172 - 297.8162231445 - 297.3657531738 - 296.8318481445 - 296.3465576172 - 295.8776245117 - 295.3571777344 - 294.9096984863 - 294.3636474609 - 293.9287109375 - 293.4291076660 - 292.9290161133 - 292.4499206543 - 291.9709167480 - 291.5006408691 - 290.9694213867 - 290.5277709961 - 290.0430908203 - 289.5546264648 - 289.0642089844 - 288.5917053223 - 288.1002807617 - 287.6652221680 - 287.1040649414 - 286.6923522949 - 286.1855773926 - 285.7325439453 - 285.2043762207 - 284.7821350098 - 284.2597656250 - 283.8214721680 - 283.2945861816 - 282.8522338867 - 282.3775329590 - 281.8970947266 - 281.3826293945 - 280.9476318359 - 280.4594116211 - 279.9812622070 - 279.4819335938 - 279.0421447754 - 278.5494384766 - 278.0615539551 - 277.5716552734 - 277.1342468262 - 276.6118774414 - 276.1629028320 - 275.6607360840 - 275.2175903320 - 274.7085266113 - 274.2263183594 - 273.7767944336 - 273.2486572266 - 272.7979736328 - 272.3336181641 - 271.8021240234 - 271.3782348633 - 270.8557128906 - 270.3830261230 - 269.9214172363 - 269.4212341309 - 268.9259643555 - 268.4685363770 - 267.9805908203 - 267.4636230469 - 267.0104980469 - 266.5325317383 - 266.0117492676 - 265.5453491211 - 265.0728759766 - 264.5609741211 - 264.0822143555 - 263.5806579590 - 263.1215515137 - 262.6140747070 - 262.0803833008 - 261.6761169434 - 261.1173095703 - 260.6375122070 - 260.1647338867 - 259.6438598633 - 259.1787414551 - 258.6601867676 - 258.1803894043 - 257.6661682129 - 257.1995849609 - 256.6934509277 - 256.1913146973 - 255.6744232178 - 255.2087249756 - 254.6951599121 - 254.1952819824 - 253.6766815186 - 253.2008361816 - 252.6963348389 - 252.1640472412 - 251.7000885010 - 251.1774139404 - 250.6727294922 - 250.1406555176 - 249.6886901855 - 249.1482391357 - 248.6146697998 - 248.1502075195 - 247.6294250488 - 247.1052551270 - 246.6011962891 - 246.0808715820 - 245.5861358643 - 245.0670471191 - 244.5356903076 - 244.0474090576 - 243.5057373047 - 242.9953460693 - 242.5087280273 - 241.9608001709 - 241.4627227783 - 240.9100341797 - 240.4198455811 - 239.9055633545 - 239.3593139648 - 238.8537902832 - 238.3289489746 - 237.7946472168 - 237.2507324219 - 236.7891387939 - 236.2026062012 - 235.7017517090 - 235.1634674072 - 234.6312103271 - 234.1298522949 - 233.5731658936 - 233.0522460938 - 232.5059204102 - 231.9892578125 - 231.4545135498 - 230.9116516113 - 230.3860473633 - 229.8390502930 - 229.2885131836 - 228.7937774658 - 228.2464752197 - 227.6814270020 - 227.1833496094 - 226.5992584229 - 226.0742187500 - 225.5330810547 - 225.0293884277 - 224.4067535400 - 223.9297637939 - 223.3637084961 - 222.8020935059 - 222.2742156982 - 221.7312469482 - 221.1908264160 - 220.6044311523 - 220.0747680664 - 219.5376586914 - 218.9850769043 - 218.4123077393 - 217.8681793213 - 217.3325500488 - 216.7373809814 - 216.2054595947 - 215.6910247803 - 215.0845184326 - 214.5531921387 - 213.9584960938 - 213.4383850098 - 212.8704833984 - 212.3089141846 - 211.7535247803 - 211.1880493164 - 210.6169738770 - 210.0475006104 - 209.5058593750 - 208.9503784180 - 208.3809967041 - 207.7889404297 - 207.2724456787 - 206.6311492920 - 206.1334075928 - 205.5175628662 - 204.9849395752 - 204.4332427979 - 203.7888641357 - 203.2979583740 - 202.6844482422 - 202.0911712646 - 201.5676727295 - 200.9766845703 - 200.3846130371 - 199.8310241699 - 199.2404479980 - 198.6470489502 - 198.1123352051 - 197.5166320801 - 196.9401550293 - 196.3484344482 - 195.7684326172 - 195.2021331787 - 194.6059722900 - 194.0445098877 - 193.4590148926 - 192.8759765625 - 192.2754669189 - 191.7124023438 - 191.1021423340 - 190.5362548828 - 189.9630279541 - 189.3601226807 - 188.7884216309 - 188.1971435547 - 187.5936584473 - 187.0237274170 - 186.3911132812 - 185.8604888916 - 185.2338867188 - 184.6645050049 - 184.0636138916 - 183.4779663086 - 182.8786926270 - 182.2850341797 - 181.6499938965 - 181.1368713379 - 180.4777832031 - 179.9263153076 - 179.2874450684 - 178.7308959961 - 178.0915832520 - 177.5085906982 - 176.9174804688 - 176.3152770996 - 175.7477874756 - 175.0766296387 - 174.5434112549 - 173.8934020996 - 173.3018341064 - 172.7110290527 - 172.1134338379 - 171.4988861084 - 170.9192352295 - 170.2845306396 - 169.7271881104 - 169.0501098633 - 168.4973144531 - 167.8556365967 - 167.2607116699 - 166.6898803711 - 166.0302886963 - 165.4519195557 - 164.8666992188 - 164.2339630127 - 163.5998382568 - 163.0411224365 - 162.3891601562 - 161.7618103027 - 161.1742095947 - 160.5970153809 - 159.9378356934 - 159.3161773682 - 158.7475585938 - 158.0933074951 - 157.4694824219 - 156.8733978271 - 156.2739562988 - 155.6555480957 - 155.0045013428 - 154.4375762939 - 153.7901458740 - 153.1489715576 - 152.5571136475 - 151.9341735840 - 151.3162689209 - 150.7102050781 - 150.0743713379 - 149.4749755859 - 148.8436584473 - 148.2463073730 - 147.5914459229 - 146.9964294434 - 146.3946228027 - 145.7308959961 - 145.0961151123 - 144.5290679932 - 143.8272247314 - 143.2471160889 - 142.6398620605 - 141.9810485840 - 141.3864746094 - 140.7420806885 - 140.1105804443 - 139.4875030518 - 138.8427429199 - 138.2189788818 - 137.6434936523 - 136.9350280762 - 136.3585357666 - 135.6853942871 - 135.0794677734 - 134.4521942139 - 133.8260955811 - 133.1518554688 - 132.6198120117 - 131.8999786377 - 131.3145446777 - 130.6660461426 - 130.0724639893 - 129.3987731934 - 128.7891540527 - 128.1496582031 - 127.5392761230 - 126.8971328735 - 126.2378540039 - 125.6437301636 - 125.0054779053 - 124.3595733643 - 123.7181015015 - 123.1113128662 - 122.4365005493 - 121.8058471680 - 121.1629333496 - 120.5347747803 - 119.8844604492 - 119.2291412354 - 118.6031951904 - 117.9451751709 - 117.2936325073 - 116.6848144531 - 115.9876785278 - 115.3879165649 - 114.6888122559 - 114.1367263794 - 113.4416656494 - 112.7890090942 - 112.1900863647 - 111.5568389893 - 110.9006805420 - 110.2894134521 - 109.6551742554 - 109.0770950317 - 108.3690261841 - 107.8319244385 - 107.1617126465 - 106.6263504028 - 105.9869461060 - 105.3782196045 - 104.7918167114 - 104.1833190918 - 103.6279678345 - 102.9403152466 - 102.3968811035 - 101.7984390259 - 101.2532272339 - 100.5087432861 - 99.9585800171 - 99.4436950684 - 98.7985839844 - 98.0403137207 - 97.4549942017 - 97.0513000488 - 96.3289108276 - 95.1670227051 - 92.6044158936 - 91.4443588257 - 90.7139511108 - 90.2965011597 - 89.7172470093 - 88.9483795166 - 88.2899780273 - 87.7686309814 - 87.2189331055 - 86.4585418701 - 85.8959197998 - 85.3032379150 - 84.7477798462 - 84.0394058228 - 83.4828109741 - 82.8675384521 - 82.2654113770 - 81.6534652710 - 80.9978866577 - 80.4575195312 - 79.7808990479 - 79.2300567627 - 78.5159912109 - 77.9333877563 - 77.2952728271 - 76.6701507568 - 76.0094604492 - 75.3744888306 - 74.7653503418 - 74.1086349487 - 73.4059753418 - 72.8537368774 - 72.1410827637 - 71.5440750122 - 70.8339920044 - 70.2273025513 - 69.5677032471 - 68.9033584595 - 68.2721481323 - 67.6146087646 - 66.9560470581 - 66.3204727173 - 65.6759338379 - 65.0353240967 - 64.3553466797 - 63.7434082031 - 63.0973854065 - 62.4385986328 - 61.7979316711 - 61.1952743530 - 60.5272903442 - 59.8830680847 - 59.2545356750 - 58.6187973022 - 57.9984512329 - 57.3111343384 - 56.7159194946 - 56.0594940186 - 55.4632987976 - 54.7375335693 - 54.1924285889 - 53.5201072693 - 52.8759727478 - 52.2446517944 - 51.6277732849 - 50.9517288208 - 50.3626937866 - 49.6488418579 - 49.0624389648 - 48.4333953857 - 47.7767105103 - 47.1458816528 - 46.5046234131 - 45.8556175232 - 45.2512321472 - 44.5799560547 - 43.9608192444 - 43.3792572021 - 42.6656150818 - 42.0792770386 - 41.4474906921 - 40.7716636658 - 40.1599693298 - 39.5504150391 - 38.8873519897 - 38.2839965820 - 37.6416168213 - 37.0214080811 - 36.3855018616 - 35.7706680298 - 35.1329956055 - 34.5027084351 - 33.9019317627 - 33.2485771179 - 32.5929450989 - 32.0123367310 - 31.3486557007 - 30.7290916443 - 30.1055717468 - 29.5023765564 - 28.8683071136 - 28.2022647858 - 27.6243438721 - 26.9836883545 - 26.3231658936 - 25.7272262573 - 25.1282005310 - 24.4888134003 - 23.8240280151 - 23.2563781738 - 22.6091117859 - 21.9602165222 - 21.3677711487 - 20.7707729340 - 20.1039047241 - 19.5149097443 - 18.9063568115 - 18.2585563660 - 17.6845455170 - 16.9969425201 - 16.4307384491 - 15.7779445648 - 15.1853799820 - 14.5581035614 - 13.9435749054 - 13.3435754776 - 12.7313051224 - 12.0702142715 - 11.5290575027 - 10.8312568665 - 10.2616081238 - 9.6383552551 - 9.0340385437 - 8.4312572479 - 7.7877454758 - 7.2086219788 - 6.5542802811 - 5.9945449829 - 5.3132362366 - 4.7882995605 - 4.1348886490 - 3.5255155563 - 2.9173488617 - 2.3080110550 - 1.6947498322 - 1.1110353470 - 0.4650211334 - -0.0831918716 - -0.7258710861 - -1.3219151497 - -1.9320960045 - -2.5428161621 - -3.1334314346 - -3.7528839111 - -4.3389844894 - -4.9283661842 - -5.5540361404 - -6.1325521469 - -6.7512288094 - -7.3512568474 - -7.9561944008 - -8.5314435959 - -9.1511363983 - -9.7305469513 - -10.3343944550 - -10.9344615936 - -11.5387506485 - -12.1474246979 - -12.6993904114 - -13.3179416656 - -13.9246006012 - -14.4907894135 - -15.1107425690 - -15.7153720856 - -16.2574443817 - -16.8738479614 - -17.5055809021 - -18.0129699707 - -18.6790733337 - -19.2506256104 - -19.8025054932 - -20.4387683868 - -20.9565925598 - -21.6192054749 - -22.1557807922 - -22.7633895874 - -23.3553810120 - -23.9414100647 - -24.4878139496 - -25.0872116089 - -25.6830215454 - -26.2638435364 - -26.8347187042 - -27.4297981262 - -28.0104007721 - -28.5569038391 - -29.1710281372 - -29.7212142944 - -30.3577671051 - -30.8840122223 - -31.4451885223 - -32.0612945557 - -32.6191444397 - -33.1858901978 - -33.7779464722 - -34.3573417664 - -34.9159660339 - -35.4682846069 - -36.0762672424 - -36.6413688660 - -37.2069396973 - -37.7594528198 - -38.3429756165 - -38.9344253540 - -39.4340095520 - -40.0827407837 - -40.6027679443 - -41.1795501709 - -41.7217712402 - -42.3304595947 - -42.8562698364 - -43.4427452087 - -44.0130577087 - -44.5394783020 - -45.1093139648 - -45.6834030151 - -46.2342147827 - -46.8023262024 - -47.3610687256 - -47.9052124023 - -48.4772567749 - -49.0209884644 - -49.6084442139 - -50.1301422119 - -50.6924705505 - -51.2597007751 - -51.7780265808 - -52.3986892700 - -52.8841552734 - -53.4558486938 - -54.0140991211 - -54.5724945068 - -55.0979537964 - -55.6731872559 - -56.2183494568 - -56.7360115051 - -57.3094558716 - -57.8431129456 - -58.4173545837 - -58.9274330139 - -59.4721908569 - -60.0363693237 - -60.5604324341 - -61.1102561951 - -61.6659011841 - -62.1852722168 - -62.7378501892 - -63.2690086365 - -63.8211555481 - -64.3702087402 - -64.8716583252 - -65.4265136719 - -65.9976730347 - -66.4826049805 - -67.0458526611 - -67.5754089355 - -68.1279296875 - -68.6283264160 - -69.1883468628 - -69.7182006836 - -70.2299423218 - -70.7811889648 - -71.3063659668 - -71.8529129028 - -72.3504257202 - -72.9022140503 - -73.4272384644 - -73.9733352661 - -74.4650115967 - -75.0154800415 - -75.5298156738 - -76.0699768066 - -76.5786743164 - -77.1262130737 - -77.6326446533 - -78.1433029175 - -78.7366867065 - -79.1722793579 - -79.7432708740 - -80.2726898193 - -80.7788696289 - -81.3077468872 - -81.8138122559 - -82.3692703247 - -82.8702468872 - -83.3692092896 - -83.9274444580 - -84.4354095459 - -84.9301605225 - -85.4718246460 - -86.0005798340 - -86.4922866821 - -87.0205154419 - -87.5554656982 - -88.0533752441 - -88.5609207153 - -89.1193237305 - -89.5770416260 - -90.1473007202 - -90.6403427124 - -91.1385574341 - -91.6915206909 - -92.1803665161 - -92.7029190063 - -93.2418365479 - -93.7274551392 - -94.2594757080 - -94.7514114380 - -95.3102874756 - -95.7811737061 - -96.3078842163 - -96.8388442993 - -97.3642196655 - -97.8397979736 - -98.3823242188 - -98.8948822021 - -99.4206771851 - -99.8963394165 - -100.4461059570 - -100.9667892456 - -101.4804687500 - -101.9600677490 - -102.5263366699 - -103.0040512085 - -103.5656280518 - -104.0255203247 - -104.5941085815 - -105.0856323242 - -105.6356201172 - -106.0825119019 - -106.6856765747 - -107.1610794067 - -107.6966400146 - -108.2004013062 - -108.7387695312 - -109.2675018311 - -109.7868423462 - -110.2785568237 - -110.8450317383 - -111.3550109863 - -111.8839950562 - -112.3956375122 - -112.9403228760 - -113.4822845459 - -113.9630203247 - -114.5415496826 - -115.0419006348 - -115.5992889404 - -116.1104583740 - -116.6410064697 - -117.2197113037 - -117.7054519653 - -118.2809753418 - -118.7765274048 - -119.3822937012 - -119.8701095581 - -120.4075317383 - -121.0140533447 - -121.5086669922 - -122.0598297119 - -122.6238937378 - -123.1707916260 - -123.7308578491 - -124.2520217896 - -124.8441162109 - -125.3996810913 - -125.9373168945 - -126.5031127930 - -127.0896377563 - -127.6311340332 - -128.2079620361 - -128.7729644775 - -129.3565826416 - -129.9326324463 - -130.4771423340 - -131.0912628174 - -131.6604461670 - -132.2244110107 - -132.8507690430 - -133.4006500244 - -133.9940643311 - -134.6361389160 - -135.1683044434 - -135.8052673340 - -136.3912963867 - -137.0056762695 - -137.6163024902 - -138.1938934326 - -138.8591918945 - -139.4315490723 - -140.0892181396 - -140.6644287109 - -141.3336639404 - -141.9591217041 - -142.5653228760 - -143.2026672363 - -143.8931579590 - -144.4655609131 - -145.1592864990 - -145.8019866943 - -146.4430084229 - -147.1200866699 - -147.7639770508 - -148.4431610107 - -149.1044311523 - -149.7922821045 - -150.4386444092 - -151.1628112793 - -151.8277893066 - -152.4965209961 - -153.2307586670 - -153.9236450195 - -154.5971374512 - -155.3217468262 - -156.0684356689 - -156.7271118164 - -157.4842224121 - -158.1999664307 - -158.9513092041 - -159.6677856445 - -160.4018402100 - -161.1700592041 - -161.9107818604 - -162.6740875244 - -163.3991851807 - -164.2106323242 - -164.9765777588 - -165.7055511475 - -166.5371398926 - -167.3218536377 - -168.0722351074 - -168.9016418457 - -169.7160034180 - -170.4765625000 - -171.3324890137 - -172.1412963867 - -172.9421081543 - -173.7915649414 - -174.6331481934 - -175.4614562988 - -176.2917175293 - -177.1870422363 - -177.9796447754 - -178.9025421143 - -179.7144470215 - -180.6239624023 - -181.4944458008 - -182.3624877930 - -183.2709960938 - -184.1525726318 - -185.0561676025 - -185.9621734619 - -186.8776245117 - -187.7922973633 - -188.6982727051 - -189.6457061768 - -190.5644531250 - -191.4871215820 - -192.4447631836 - -193.3952789307 - -194.3469390869 - -195.2811737061 - -196.2737274170 - -197.2265930176 - -198.1784210205 - -199.1800231934 - -200.1489562988 - -201.1286621094 - -202.1295623779 - -203.1135253906 - -204.0996398926 - -205.1441040039 - -206.1166381836 - -207.1214294434 - -208.1697998047 - -209.1643676758 - -210.1682434082 - -211.2395019531 - -212.2329711914 - -213.2905120850 - -214.3111419678 - -215.3677978516 - -216.4050292969 - -217.4154663086 - -218.5221557617 - -219.5291900635 - -220.5880126953 - -221.6745605469 - -222.6752014160 - -223.7987060547 - -224.8201904297 - -225.8870391846 - -226.9946899414 - -227.9933319092 - -229.1120452881 - -230.1858215332 - -231.2117614746 - -232.3648376465 - -233.3491516113 - -234.4897155762 - -235.5439453125 - -236.5823211670 - -237.7156372070 - -238.7748413086 - -239.8222198486 - -240.9435119629 - -241.9537658691 - -243.1071166992 - -244.1162414551 - -245.2174835205 - -246.3135375977 - -247.3476257324 - -248.4315338135 - -249.5091400146 - -250.5504455566 - -251.6587371826 - -252.6802673340 - -253.7663879395 - -254.8316650391 - -255.8418884277 - -256.9640502930 - -257.9784851074 - -259.0190734863 - -260.0903930664 - -261.1174316406 - -262.1814880371 - -263.1920471191 - -264.2571105957 - -265.2885437012 - -266.2881164551 - -267.3374328613 - -268.3675537109 - -269.3476562500 - -270.4010620117 - -271.4028015137 - -272.3970947266 - -273.4109802246 - -274.4089660645 - -275.3856506348 - -276.3983764648 - -277.3782043457 - -278.3353576660 - -279.3445434570 - -280.2933349609 - -281.2621765137 - -282.2366943359 - -283.1916503906 - -284.1446838379 - -285.0848999023 - -286.0396118164 - -286.9622192383 - -287.9016113281 - -288.8409729004 - -289.7469177246 - -290.6875610352 - -291.5771789551 - -292.5184326172 - -293.3863525391 - -294.2998352051 - -295.2024536133 - -296.0713806152 - -296.9787902832 - -297.8076782227 - -298.7355346680 - -299.5708923340 - -300.4210815430 - -301.2957153320 - -302.1631469727 - -302.9818725586 - -303.8121032715 - -304.7032165527 - -305.4724121094 - -306.3204956055 - -307.1631164551 - -307.9467773438 - -308.7517089844 - -309.6080932617 - -310.3504028320 - -311.1682739258 - -311.9783325195 - -312.7365722656 - -313.5261230469 - -314.2912597656 - -315.0825805664 - -315.8451232910 - -316.5929565430 - -317.3532104492 - -318.1188964844 - -318.8880310059 - -319.5700683594 - -320.3501281738 - -321.0983886719 - -321.8064270020 - -322.4984130859 - -323.2951049805 - -323.9685974121 - -324.6679077148 - -325.4099121094 - -326.0907592773 - -326.8135375977 - -327.4870605469 - -328.1858215332 - -328.8875732422 - -329.5738525391 - -330.2268371582 - -330.9208068848 - -331.6387023926 - -332.2274780273 - -332.9440002441 - -333.6261596680 - -334.2381591797 - -334.9109802246 - -335.5957031250 - -336.1972351074 - -336.8914184570 - -337.4887084961 - -338.1693725586 - -338.7909240723 - -339.4181518555 - -340.0590209961 - -340.6847229004 - -341.3236999512 - -341.9162902832 - -342.5656433105 - -343.1789855957 - -343.7721557617 - -344.4200134277 - -345.0068054199 - -345.5985412598 - -346.2519836426 - -346.8129882812 - -347.4192810059 - -348.0263977051 - -348.6245117188 - -349.2206115723 - -349.7865600586 - -350.4039916992 - -350.9914550781 - -351.5633239746 - -352.1337280273 - -352.7521667480 - -353.3102416992 - -353.8773193359 - -354.4571838379 - -355.0534973145 - -355.6106872559 - -356.1537170410 - -356.7649230957 - -357.3288574219 - -357.8510742188 - -358.4717102051 - -358.9843750000 - -359.6014404297 - -360.0977172852 - -360.6961669922 - -361.2561035156 - -361.7914733887 - -362.3531494141 - -362.9073486328 - -363.4756469727 - -363.9944152832 - -364.5562133789 - -365.1264343262 - -365.6392822266 - -366.2103271484 - -366.7380371094 - -367.3016357422 - -367.8416137695 - -368.3661193848 - -368.9119567871 - -369.4846496582 - -369.9870605469 - -370.5490417480 - -371.0505981445 - -371.6624755859 - -372.1266784668 - -372.6986694336 - -373.2091674805 - -373.7884826660 - -374.2699279785 - -374.8413696289 - -375.3425598145 - -375.9173278809 - -376.4148254395 - -376.9450073242 - -377.4846801758 - -378.0352478027 - -378.5373535156 - -379.0746154785 - -379.5927734375 - -380.1579895020 - -380.6475524902 - -381.1716613770 - -381.7276306152 - -382.2631835938 - -382.7433166504 - -383.3052978516 - -383.8278198242 - -384.3502197266 - -384.8654785156 - -385.3934631348 - -385.9358825684 - -386.4459533691 - -386.9727783203 - -387.5119628906 - -387.9999084473 - -388.5771789551 - -389.0466613770 - -389.6062011719 - -390.1223754883 - -390.6338500977 - -391.1713256836 - -391.6977233887 - -392.1978759766 - -392.7462768555 - -393.2645568848 - -393.7848510742 - -394.2878112793 - -394.8521728516 - -395.3544921875 - -395.8464355469 - -396.4241943359 - -396.9199523926 - -397.4340820312 - -397.9781494141 - -398.4777832031 - -399.0536804199 - -399.4999389648 - -400.0865783691 - -400.5930175781 - -401.1042480469 - -401.6329040527 - -402.1716918945 - -402.6786499023 - -403.1985778809 - -403.7543945312 - -404.2323913574 - -404.7923278809 - -405.2910461426 - -405.8431396484 - -406.3436584473 - -406.8874511719 - -407.3926696777 - -407.9379272461 - -408.4597473145 - -408.9706420898 - -409.5124511719 - -410.0252990723 - -410.5649414062 - -411.0733032227 - -411.6263732910 - -412.1180114746 - -412.6756286621 - -413.1959533691 - -413.7120361328 - -414.2467651367 - -414.7817077637 - -415.2963867188 - -415.8426208496 - -416.3430175781 - -416.9039001465 - -417.4129028320 - -417.9431762695 - -418.4752807617 - -419.0217285156 - -419.5107727051 - -420.0604858398 - -420.5987548828 - -421.1336364746 - -421.6390686035 - -422.1768798828 - -422.7349243164 - -423.2273559570 - -423.7814941406 - -424.3120117188 - -424.8637390137 - -425.3334655762 - -425.9420776367 - -426.4218750000 - -426.9726257324 - -427.5227050781 - -428.0136108398 - -428.5856628418 - -429.1003112793 - -429.6466064453 - -430.1751403809 - -430.7066345215 - -431.2486877441 - -431.7752075195 - -432.3271789551 - -432.8558654785 - -433.3796386719 - -433.9183044434 - -434.4664916992 - -434.9790039062 - -435.5534362793 - -436.0533752441 - -436.6299743652 - -437.1093444824 - -437.7214965820 - -438.1985168457 - -438.7604980469 - -439.3075561523 - -439.8357849121 - -440.3695068359 - -440.9072265625 - -441.4734191895 - -441.9956359863 - -442.5211791992 - -443.0773315430 - -443.6242675781 - -444.1585693359 - -444.6838378906 - -445.2559814453 - -445.8028564453 - -446.2758789062 - -446.8880920410 - -447.3984985352 - -447.9644775391 - -448.4918823242 - -449.0131225586 - -449.5997619629 - -450.1194763184 - -450.6468811035 - -451.2112731934 - -451.7917175293 - -452.2641296387 - -452.8355102539 - -453.3913574219 - -453.9420776367 - -454.4447021484 - -455.0562133789 - -455.5433654785 - -456.1311645508 - -456.6450195312 - -457.1770019531 - -457.7927856445 - -458.2612609863 - -458.8392333984 - -459.4171752930 - -459.9210205078 - -460.4649353027 - -461.0574951172 - -461.5656127930 - -462.1168823242 - -462.7018737793 - -463.2104492188 - -463.7561035156 - -464.3351440430 - -464.8614196777 - -465.4304809570 - -465.9516296387 - -466.5335083008 - -467.0532226562 - -467.6123352051 - -468.1601257324 - -468.7269287109 - -469.2530212402 - -469.8191223145 - -470.3751220703 - -470.9015808105 - -471.4653930664 - -472.0110778809 - -472.5743408203 - -473.1047973633 - -473.6729125977 - -474.2398681641 - -474.7465515137 - -475.3397827148 - -475.8679809570 - -476.4156799316 - -476.9889831543 - -477.5233459473 - -478.0762023926 - -478.6727600098 - -479.1452026367 - -479.7758483887 - -480.2681579590 - -480.8580627441 - -481.4025268555 - -481.9550781250 - -482.5130310059 - -483.0557250977 - -483.6344909668 - -484.1197509766 - -484.7747192383 - -485.2501525879 - -485.8348999023 - -486.4033508301 - -486.9321289062 - -487.4927368164 - -488.0533142090 - -488.5854797363 - -489.1811828613 - -489.6802978516 - -490.2854614258 - -490.8226928711 - -491.3837890625 - -491.9312744141 - -492.4736328125 - -493.0536499023 - -493.6039123535 - -494.1212463379 - -494.7090148926 - -495.2873229980 - -495.7876586914 - -496.3796081543 - -496.9488525391 - -497.4823913574 - -498.0321350098 - -498.5918579102 - -499.1794128418 - -499.6890869141 - -500.2798767090 - -500.8399353027 - -501.3663330078 - -501.9524536133 - -502.4773864746 - -503.0682373047 - -503.5917663574 - -504.1646423340 - -504.7456665039 - -505.2739562988 - -505.8235473633 - -506.4109802246 - -506.9510498047 - -507.4869689941 - -508.0620727539 - -508.6315612793 - -509.1546936035 - -509.7339782715 - -510.2845764160 - -510.8247985840 - -511.4244689941 - -511.9485778809 - -512.4910888672 - -513.1223754883 - -513.6157836914 - -514.1674804688 - -514.7644042969 - -515.2982788086 - -515.8563842773 - -516.4208374023 - -516.9711914062 - -517.5548706055 - -518.0980224609 - -518.6197509766 - -519.2342529297 - -519.7617797852 - -520.3383178711 - -520.8855590820 - -521.4276123047 - -522.0160522461 - -522.5772094727 - -523.0692138672 - -523.6956787109 - -524.2248535156 - -524.7980346680 - -525.3036499023 - -525.9169921875 - -526.4667358398 - -526.9923095703 - -527.5678100586 - -528.1156005859 - -528.7000732422 - -529.2292480469 - -529.7748413086 - -530.3624877930 - -530.9181518555 - -531.4461059570 - -532.0316162109 - -532.5959472656 - -533.1428222656 - -533.6965332031 - -534.2717895508 - -534.8306884766 - -535.3753662109 - -535.9506225586 - -536.5264892578 - -537.0314941406 - -537.6617431641 - -538.1572265625 - -538.7918090820 - -539.2572021484 - -539.8682250977 - -540.4314575195 - -540.9700317383 - -541.5093383789 - -542.0774536133 - -542.6395874023 - -543.1870117188 - -543.6892700195 - -544.3062133789 - -544.8054199219 - -545.3926391602 - -545.8613281250 - -546.4553222656 - -546.9796752930 - -547.5277099609 - -548.0637817383 - -548.5365600586 - -549.1867675781 - -549.6862182617 - -550.1716308594 - -550.6904296875 - -551.3720092773 - -551.8344726562 - -552.2906494141 - -552.8795166016 - -553.5538330078 - -554.0265502930 - -554.4135742188 - -555.0487670898 - -556.0199584961 - -558.1801757812 - -559.1622924805 - -559.7514038086 - -560.0581665039 - -560.5674438477 - -561.1797485352 - -561.6896362305 - -562.1077880859 - -562.5729370117 - -563.1597900391 - -563.5749511719 - -564.0940551758 - -564.5215454102 - -565.0479736328 - -565.5126342773 - -566.0089111328 - -566.4630737305 - -566.9678955078 - -567.4653320312 - -567.9039306641 - -568.4525146484 - -568.8703613281 - -569.4523315430 - -569.9283447266 - -570.4537353516 - -570.9338989258 - -571.4758911133 - -572.0057983398 - -572.4855957031 - -573.0259399414 - -573.5928344727 - -574.0583496094 - -574.6141357422 - -575.1271972656 - -575.6828002930 - -576.2020874023 - -576.7317504883 - -577.2708129883 - -577.7858276367 - -578.3332519531 - -578.8615722656 - -579.3729248047 - -579.9113159180 - -580.4181518555 - -580.9746704102 - -581.4740600586 - -582.0032958984 - -582.5156860352 - -583.0479736328 - -583.5277709961 - -584.0615844727 - -584.5982666016 - -585.0668945312 - -585.6161499023 - -586.1031494141 - -586.6369628906 - -587.1336669922 - -587.6602783203 - -588.1272583008 - -588.7189331055 - -589.1347656250 - -589.7086791992 - -590.1910400391 - -590.7096557617 - -591.1930541992 - -591.7538452148 - -592.2084960938 - -592.7927856445 - -593.2502441406 - -593.7630615234 - -594.2764892578 - -594.7827758789 - -595.2910156250 - -595.8231811523 - -596.2999267578 - -596.8239135742 - -597.3056640625 - -597.7914428711 - -598.3530883789 - -598.7828369141 - -599.3261108398 - -599.8555908203 - -600.3380737305 - -600.8028564453 - -601.3341674805 - -601.8231811523 - -602.3274536133 - -602.7801513672 - -603.3162231445 - -603.8048095703 - -604.2759399414 - -604.7824707031 - -605.2595214844 - -605.7692871094 - -606.2947998047 - -606.7382812500 - -607.2554931641 - -607.7740478516 - -608.2186889648 - -608.7031250000 - -609.2032470703 - -609.7249145508 - -610.1815795898 - -610.6577758789 - -611.2106933594 - -611.6496582031 - -612.1162719727 - -612.6146850586 - -613.1323242188 - -613.5812988281 - -614.0828247070 - -614.5753173828 - -615.0507812500 - -615.4912109375 - -616.0289306641 - -616.4641113281 - -616.9308471680 - -617.4564208984 - -617.8690795898 - -618.4138183594 - -618.8615722656 - -619.3508911133 - -619.8069458008 - -620.2930297852 - -620.7540283203 - -621.2288208008 - -621.6747436523 - -622.1953125000 - -622.6250610352 - -623.1239624023 - -623.5969848633 - -624.0511474609 - -624.5159301758 - -624.9572143555 - -625.4860229492 - -625.8982543945 - -626.3986206055 - -626.8425903320 - -627.3416748047 - -627.7440795898 - -628.2333374023 - -628.6941528320 - -629.1774291992 - -629.6111450195 - -630.0868530273 - -630.5305786133 - -631.0097045898 - -631.4125976562 - -631.9205322266 - -632.3347167969 - -632.8270874023 - -633.2767944336 - -633.7107543945 - -634.1771240234 - -634.6278076172 - -635.0454711914 - -635.5211181641 - -635.9569091797 - -636.4173583984 - -636.8666992188 - -637.3108520508 - -637.7493896484 - -638.1919555664 - -638.6362915039 - -639.0648193359 - -639.5428466797 - -639.9590454102 - -640.4282836914 - -640.8358764648 - -641.2721557617 - -641.7296752930 - -642.1652221680 - -642.5939941406 - -643.0578002930 - -643.4518432617 - -643.8934936523 - -644.3649291992 - -644.7376708984 - -645.2263183594 - -645.6409301758 - -646.0410156250 - -646.5085449219 - -646.8770751953 - -647.3643798828 - -647.7491455078 - -648.2094726562 - -648.6323852539 - -649.0231323242 - -649.4677124023 - -649.8723754883 - -650.2911376953 - -650.7299194336 - -651.1590576172 - -651.5471801758 - -651.9939575195 - -652.3656005859 - -652.8179931641 - -653.2188720703 - -653.6542358398 - -654.0582885742 - -654.4328613281 - -654.8812866211 - -655.2775878906 - -655.6791992188 - -656.1137695312 - -656.5114746094 - -656.9094238281 - -657.2991333008 - -657.7391357422 - -658.1328735352 - -658.5333862305 - -658.9160766602 - -659.3340454102 - -659.7475585938 - -660.0930786133 - -660.5523071289 - -660.9357299805 - -661.3011474609 - -661.7009277344 - -662.1316528320 - -662.4816894531 - -662.9036865234 - -663.3066406250 - -663.6437988281 - -664.0592041016 - -664.4520263672 - -664.8321533203 - -665.2262573242 - -665.6162109375 - -665.9818725586 - -666.3781127930 - -666.7603149414 - -667.1524047852 - -667.5236206055 - -667.8963012695 - -668.2769165039 - -668.6554565430 - -669.0643310547 - -669.3925781250 - -669.7812500000 - -670.1712646484 - -670.5297851562 - -670.9059448242 - -671.2929687500 - -671.6481323242 - -671.9920043945 - -672.4061279297 - -672.7369384766 - -673.1328735352 - -673.4837036133 - -673.8265991211 - -674.2261962891 - -674.5485229492 - -674.9503173828 - -675.2954711914 - -675.6499633789 - -676.0078125000 - -676.3652343750 - -676.7369995117 - -677.1038208008 - -677.4017333984 - -677.7983398438 - -678.1773681641 - -678.4751586914 - -678.8453369141 - -679.2082519531 - -679.5744628906 - -679.8740234375 - -680.2526855469 - -680.6134033203 - -680.9237060547 - -681.2796020508 - -681.6380004883 - -681.9878540039 - -682.2990112305 - -682.6475219727 - -683.0139770508 - -683.3405761719 - -683.6701049805 - -684.0116577148 - -684.3291015625 - -684.7141113281 - -684.9960327148 - -685.3680419922 - -685.6813354492 - -686.0092773438 - -686.3934326172 - -686.6549072266 - -687.0101318359 - -687.3841552734 - -687.6530761719 - -688.0071411133 - -688.3410644531 - -688.6627197266 - -688.9910888672 - -689.3020629883 - -689.6470947266 - -689.9746093750 - -690.2528076172 - -690.6264038086 - -690.9346923828 - -691.2345581055 - -691.5701293945 - -691.9047241211 - -692.2020263672 - -692.5120239258 - -692.8629760742 - -693.1361083984 - -693.4872436523 - -693.8059082031 - -694.0662841797 - -694.4500732422 - -694.7307128906 - -695.0349121094 - -695.3900756836 - -695.6571044922 - -696.0057983398 - -696.2763671875 - -696.6255493164 - -696.9105224609 - -697.2313232422 - -697.5339965820 - -697.8678588867 - -698.1492919922 - -698.4616699219 - -698.7785034180 - -699.0957031250 - -699.3605957031 - -699.7068481445 - -700.0104980469 - -700.3133544922 - -700.5924682617 - -700.9387207031 - -701.2092895508 - -701.5510864258 - -701.8130493164 - -702.1578369141 - -702.4433593750 - -702.7617187500 - -703.0208129883 - -703.3899536133 - -703.6553955078 - -703.9589843750 - -704.2792968750 - -704.5732421875 - -704.8843383789 - -705.2059326172 - -705.4523315430 - -705.8135986328 - -706.1115722656 - -706.3901367188 - -706.7119750977 - -707.0220947266 - -707.3377075195 - -707.5905761719 - -707.9698486328 - -708.2143554688 - -708.5608520508 - -708.8513793945 - -709.1474609375 - -709.4866943359 - -709.7788085938 - -710.0872802734 - -710.3781127930 - -710.7408447266 - -711.0029296875 - -711.3066406250 - -711.6836547852 - -711.9317016602 - -712.2720336914 - -712.5853271484 - -712.8871459961 - -713.2316284180 - -713.5115356445 - -713.8502197266 - -714.1813354492 - -714.4757690430 - -714.8043212891 - -715.1337890625 - -715.4431762695 - -715.7818603516 - -716.0944213867 - -716.4315795898 - -716.7556152344 - -717.0780029297 - -717.4137573242 - -717.7431640625 - -718.0687866211 - -718.4359741211 - -718.7256469727 - -719.0739135742 - -719.4696655273 - -719.7255249023 - -720.1252441406 - -720.4430541992 - -720.7963256836 - -721.1595458984 - -721.4658813477 - -721.8654174805 - -722.1939697266 - -722.5612792969 - -722.8892822266 - -723.2913208008 - -723.6237182617 - -724.0001220703 - -724.3433837891 - -724.7445068359 - -725.0841674805 - -725.4906616211 - -725.8287353516 - -726.2177124023 - -726.6330566406 - -726.9627685547 - -727.3663330078 - -727.7678833008 - -728.1558837891 - -728.5186767578 - -728.9530029297 - -729.3275146484 - -729.7435302734 - -730.1247558594 - -730.5642089844 - -730.9439697266 - -731.3702392578 - -731.7980957031 - -732.1834106445 - -732.6459960938 - -733.0317993164 - -733.4951171875 - -733.9070434570 - -734.3333740234 - -734.7883300781 - -735.2240600586 - -735.6721801758 - -736.0866088867 - -736.6015014648 - -737.0165405273 - -737.4602050781 - -737.9533691406 - -738.4227905273 - -738.8531494141 - -739.3600463867 - -739.8304443359 - -740.2996826172 - -740.7941284180 - -741.2777709961 - -741.7604980469 - -742.2736206055 - -742.7615356445 - -743.2565307617 - -743.7753295898 - -744.2987060547 - -744.7518920898 - -745.3566894531 - -745.7946777344 - -746.3795166016 - -746.8729858398 - -747.4220581055 - -747.9538574219 - -748.5013427734 - -749.0236206055 - -749.5972290039 - -750.1449584961 - -750.6908569336 - -751.2424926758 - -751.8327636719 - -752.3855590820 - -752.9291992188 - -753.5387573242 - -754.1087036133 - -754.6883544922 - -755.2607421875 - -755.8670043945 - -756.4646606445 - -757.0302124023 - -757.6498413086 - -758.2528686523 - -758.8488159180 - -759.4653930664 - -760.0746459961 - -760.6784057617 - -761.3281860352 - -761.9340209961 - -762.5367431641 - -763.1998291016 - -763.8229980469 - -764.4223022461 - -765.1091308594 - -765.7155761719 - -766.3765869141 - -767.0145874023 - -767.6645507812 - -768.3171997070 - -768.9520874023 - -769.6330566406 - -770.2669067383 - -770.9290161133 - -771.6173706055 - -772.2236328125 - -772.9562377930 - -773.5778808594 - -774.2391357422 - -774.9721069336 - -775.5579223633 - -776.2974853516 - -776.9416503906 - -777.6141967773 - -778.3442382812 - -778.9338378906 - -779.6825561523 - -780.3596801758 - -780.9903564453 - -781.7085571289 - -782.4080200195 - -783.0628051758 - -783.7478027344 - -784.4225463867 - -785.1544799805 - -785.7719726562 - -786.5064086914 - -787.1708374023 - -787.8734741211 - -788.5296630859 - -789.2276611328 - -789.9136962891 - -790.5958251953 - -791.2711791992 - -791.9598999023 - -792.6445312500 - -793.2893676758 - -794.0208740234 - -794.6695556641 - -795.3341674805 - -796.0332031250 - -796.6929931641 - -797.3765258789 - -798.0401611328 - -798.7077026367 - -799.3986816406 - -800.0393676758 - -800.7058105469 - -801.3929443359 - -802.0247192383 - -802.7050781250 - -803.3610839844 - -804.0058593750 - -804.6660156250 - -805.3234252930 - -805.9535522461 - -806.6108398438 - -807.2697143555 - -807.8825073242 - -808.5448608398 - -809.1660156250 - -809.8038330078 - -810.4539794922 - -811.0566406250 - -811.7017822266 - -812.3268432617 - -812.9421997070 - -813.5493774414 - -814.1786499023 - -814.8067626953 - -815.3815917969 - -816.0279541016 - -816.6027832031 - -817.2436523438 - -817.7946166992 - -818.4317626953 - -818.9953002930 - -819.6226196289 - -820.1777954102 - -820.7521362305 - -821.3838500977 - -821.9210205078 - -822.4896850586 - -823.0891723633 - -823.6639404297 - -824.2075195312 - -824.7625122070 - -825.3753051758 - -825.8751220703 - -826.4584350586 - -827.0106811523 - -827.5526123047 - -828.0905761719 - -828.6671752930 - -829.1559448242 - -829.7442626953 - -830.2565917969 - -830.7822265625 - -831.3181762695 - -831.8364868164 - -832.3695068359 - -832.8917236328 - -833.4079589844 - -833.9025878906 - -834.4551391602 - -834.9594116211 - -835.4237060547 - -835.9630737305 - -836.4696655273 - -836.9655151367 - -837.4033203125 - -837.9922485352 - -838.4265747070 - -838.9161376953 - -839.4109497070 - -839.8887939453 - -840.3946533203 - -840.8387451172 - -841.3079223633 - -841.8308715820 - -842.2789916992 - -842.7099609375 - -843.2187500000 - -843.7065429688 - -844.1024169922 - -844.5925292969 - -845.0853271484 - -845.4805297852 - -845.9707641602 - -846.4264526367 - -846.8438720703 - -847.3327026367 - -847.7449951172 - -848.1981811523 - -848.6516113281 - -849.0723876953 - -849.5144042969 - -849.9644165039 - -850.3729858398 - -850.8292846680 - -851.2514038086 - -851.6675415039 - -852.1019287109 - -852.5419311523 - -852.9448242188 - -853.3505249023 - -853.8179931641 - -854.1961669922 - -854.6212158203 - -855.0380249023 - -855.4619750977 - -855.8665771484 - -856.2586669922 - -856.6916503906 - -857.0934448242 - -857.5018920898 - -857.8838500977 - -858.3118896484 - -858.7156372070 - -859.0847778320 - -859.4968261719 - -859.9185791016 - -860.2800292969 - -860.6890869141 - -861.0833740234 - -861.4769287109 - -861.8546752930 - -862.2688598633 - -862.6166992188 - -863.0636596680 - -863.3933715820 - -863.7993774414 - -864.1940307617 - -864.5664062500 - -864.9285278320 - -865.3519287109 - -865.6990966797 - -866.0791015625 - -866.4622192383 - -866.8585815430 - -867.1859741211 - -867.6039428711 - -867.9628906250 - -868.3171997070 - -868.7243041992 - -869.0639038086 - -869.4335327148 - -869.8430175781 - -870.1599121094 - -870.5513916016 - -870.9047241211 - -871.3050537109 - -871.6229248047 - -872.0151367188 - -872.3641357422 - -872.7463989258 - -873.0806884766 - -873.4562377930 - -873.8057861328 - -874.1821899414 - -874.5217895508 - -874.8802490234 - -875.2482910156 - -875.5986938477 - -875.9530639648 - -876.3091430664 - -876.6453857422 - -877.0342407227 - -877.3637695312 - -877.6947631836 - -878.0806274414 - -878.4326782227 - -878.7500610352 - -879.1104736328 - -879.4826049805 - -879.8017578125 - -880.1685180664 - -880.4889526367 - -880.8595581055 - -881.2112426758 - -881.5111083984 - -881.9078979492 - -882.2107543945 - -882.5861816406 - -882.9000244141 - -883.2570190430 - -883.5955200195 - -883.9380493164 - -884.2822875977 - -884.6145019531 - -884.9428710938 - -885.3171997070 - -885.6146850586 - -885.9791870117 - -886.2920532227 - -886.6582641602 - -886.9813842773 - -887.2819213867 - -887.6776733398 - -887.9783325195 - -888.2850341797 - -888.6810302734 - -888.9588623047 - -889.3299560547 - -889.6271362305 - -889.9903564453 - -890.3066406250 - -890.6376953125 - -890.9473266602 - -891.3287963867 - -891.6069335938 - -891.9445190430 - -892.3039550781 - -892.5886840820 - -892.9625854492 - -893.2440795898 - -893.5947875977 - -893.9158935547 - -894.2566528320 - -894.5508422852 - -894.8892211914 - -895.2337646484 - -895.5324707031 - -895.8516845703 - -896.1934814453 - -896.5191650391 - -896.8136596680 - -897.1507568359 - -897.4714965820 - -897.8072509766 - -898.0916137695 - -898.4384155273 - -898.7578735352 - -899.0747070312 - -899.3793945312 - -899.7177124023 - -900.0093383789 - -900.3714599609 - -900.6400756836 - -900.9854125977 - -901.2803344727 - -901.6289062500 - -901.9110107422 - -902.2268066406 - -902.5746459961 - -902.8626708984 - -903.1669311523 - -903.4976806641 - -903.8286132812 - -904.0972900391 - -904.4433593750 - -904.7430419922 - -905.0661010742 - -905.3424682617 - -905.7126464844 - -905.9663696289 - -906.2935791016 - -906.6255493164 - -906.8960571289 - -907.2383422852 - -907.5264892578 - -907.8385620117 - -908.1524658203 - -908.4530639648 - -908.7622680664 - -909.0642089844 - -909.3847656250 - -909.6651611328 - -909.9936523438 - -910.2929687500 - -910.5896606445 - -910.8972167969 - -911.2160644531 - -911.4765625000 - -911.8416137695 - -912.0913085938 - -912.4307861328 - -912.7037353516 - -913.0208740234 - -913.3192138672 - -913.6210937500 - -913.9169311523 - -914.2216796875 - -914.5255126953 - -914.8162841797 - -915.1051635742 - -915.4271240234 - -915.7139282227 - -916.0093994141 - -916.2993164062 - -916.6036376953 - -916.9309692383 - -917.1602172852 - -917.5155639648 - -917.7867431641 - -918.0816040039 - -918.3901367188 - -918.6415405273 - -919.0023193359 - -919.2637939453 - -919.5269775391 - -919.8430786133 - -920.1858520508 - -920.3872070312 - -920.7293090820 - -921.0336914062 - -921.3070068359 - -921.5802612305 - -921.9000854492 - -922.1682128906 - -922.4762573242 - -922.7515869141 - -923.0358886719 - -923.3591918945 - -923.6043701172 - -923.8993530273 - -924.2144775391 - -924.4832153320 - -924.7471313477 - -925.0860595703 - -925.3311767578 - -925.6071166992 - -925.9332885742 - -926.1976928711 - -926.4597167969 - -926.7932739258 - -927.0286254883 - -927.3428344727 - -927.5957031250 - -927.9144897461 - -928.1696166992 - -928.4628906250 - -928.7407226562 - -929.0310058594 - -929.2947998047 - -929.5743408203 - -929.8825683594 - -930.1366577148 - -930.4194946289 - -930.7056884766 - -930.9999389648 - -931.2297973633 - -931.5532226562 - -931.8113403320 - -932.0769653320 - -932.3829345703 - -932.6433715820 - -932.9033203125 - -933.2189331055 - -933.4592285156 - -933.7347412109 - -934.0375366211 - -934.2668457031 - -934.5989990234 - -934.8214111328 - -935.1093750000 - -935.4088745117 - -935.6376342773 - -935.9318237305 - -936.1937255859 - -936.5011596680 - -936.6963500977 - -937.0543823242 - -937.2684326172 - -937.5372924805 - -937.8393554688 - -938.0795288086 - -938.3631591797 - -938.6296386719 - -938.8860473633 - -939.1876831055 - -939.4148559570 - -939.6890258789 - -939.9806518555 - -940.2208862305 - -940.4861450195 - -940.7677612305 - -941.0200195312 - -941.3062133789 - -941.5339965820 - -941.8248901367 - -942.0997314453 - -942.3275756836 - -942.6062622070 - -942.8732299805 - -943.1242065430 - -943.4111328125 - -943.6313476562 - -943.9333496094 - -944.1654663086 - -944.4398193359 - -944.6962890625 - -944.9273681641 - -945.2492065430 - -945.4556274414 - -945.7332763672 - -945.9895629883 - -946.2421875000 - -946.5141601562 - -946.7524414062 - -946.9935913086 - -947.2985839844 - -947.5416870117 - -947.7479858398 - -948.0526123047 - -948.3160400391 - -948.5406494141 - -948.7965698242 - -949.0666503906 - -949.3139038086 - -949.5925292969 - -949.7815551758 - -950.0668945312 - -950.3571777344 - -950.5524291992 - -950.8125610352 - -951.0917968750 - -951.3363647461 - -951.5689086914 - -951.8247070312 - -952.0664062500 - -952.3390502930 - -952.5687866211 - -952.8134765625 - -953.0705566406 - -953.3231811523 - -953.5559692383 - -953.8100585938 - -954.0349121094 - -954.3332519531 - -954.5407104492 - -954.7824096680 - -955.0471191406 - -955.2932739258 - -955.5453491211 - -955.7461547852 - -956.0361938477 - -956.2906494141 - -956.4772949219 - -956.7716674805 - -956.9899291992 - -957.2495117188 - -957.4866943359 - -957.7062377930 - -957.9834594727 - -958.2153320312 - -958.4382324219 - -958.6834716797 - -958.9397583008 - -959.1562500000 - -959.3984985352 - -959.6516723633 - -959.8750610352 - -960.1049194336 - -960.3510131836 - -960.6039428711 - -960.7890014648 - -961.0823974609 - -961.2612915039 - -961.5590820312 - -961.7383422852 - -962.0037841797 - -962.2362060547 - -962.4835815430 - -962.6975708008 - -962.9343261719 - -963.2062377930 - -963.4320678711 - -963.6434326172 - -963.9050292969 - -964.1525268555 - -964.4047241211 - -964.6057128906 - -964.8999633789 - -965.1151733398 - -965.3897705078 - -965.6234130859 - -965.8110351562 - -966.1453857422 - -966.3865356445 - -966.5508422852 - -966.8208007812 - -967.1477661133 - -967.3240356445 - -967.5256958008 - -967.8057861328 - -968.1076660156 - -968.2652587891 - -968.4684448242 - -968.7445068359 - -969.1112060547 - -969.9432373047 - -970.3292236328 - -970.5248413086 - -970.5886840820 - -970.8097534180 - -971.0036010742 - -971.1465454102 - -971.2818603516 - -971.4627685547 - -971.6246337891 - -971.7146606445 - -971.9373168945 - -972.0531005859 - -972.1720581055 - -972.3457031250 - -972.5096435547 - -972.6212158203 - -972.8023681641 - -972.9285278320 - -973.0769653320 - -973.2625732422 - -973.3683471680 - -973.5686035156 - -973.7343139648 - -973.9216308594 - -974.0512695312 - -974.2421875000 - -974.4400634766 - -974.5849609375 - -974.7778320312 - -974.9662475586 - -975.1455688477 - -975.3062744141 - -975.5161132812 - -975.6794433594 - -975.8890380859 - -976.0617675781 - -976.2449951172 - -976.4235229492 - -976.6265258789 - -976.7983398438 - -976.9663696289 - -977.1680297852 - -977.3244628906 - -977.5189819336 - -977.6918334961 - -977.8781738281 - -978.0246582031 - -978.2203369141 - -978.3718261719 - -978.5432128906 - -978.7426147461 - -978.8506469727 - -979.0780029297 - -979.2230834961 - -979.3749389648 - -979.5602416992 - -979.7319335938 - -979.8692626953 - -980.0740356445 - -980.1823730469 - -980.4119262695 - -980.5259399414 - -980.7100219727 - -980.8527221680 - -981.0582275391 - -981.1840820312 - -981.3885498047 - -981.5213012695 - -981.6981811523 - -981.8483276367 - -982.0136108398 - -982.1711425781 - -982.3585815430 - -982.5036010742 - -982.6558227539 - -982.7941284180 - -982.9758911133 - -983.1455688477 - -983.2347412109 - -983.4567871094 - -983.6131591797 - -983.7598876953 - -983.8809204102 - -984.0531616211 - -984.2184448242 - -984.3687133789 - -984.4598388672 - -984.6664428711 - -984.8199462891 - -984.9226074219 - -985.0883789062 - -985.2373046875 - -985.3855590820 - -985.5559082031 - -985.6724853516 - -985.8217773438 - -986.0173339844 - -986.0925292969 - -986.2509155273 - -986.4028320312 - -986.5571289062 - -986.6970825195 - -986.8050537109 - -987.0135498047 - -987.1074829102 - -987.2416992188 - -987.3859863281 - -987.5346679688 - -987.6726684570 - -987.8141479492 - -987.9392700195 - -988.0940551758 - -988.1892700195 - -988.3677368164 - -988.4627685547 - -988.5881347656 - -988.7664794922 - -988.8409423828 - -989.0098876953 - -989.1473999023 - -989.2640380859 - -989.3880615234 - -989.5247192383 - -989.6347656250 - -989.7810668945 - -989.8699340820 - -990.0269775391 - -990.1616210938 - -990.2482299805 - -990.4221191406 - -990.5125732422 - -990.6389160156 - -990.7295532227 - -990.9173583984 - -990.9864501953 - -991.1184082031 - -991.2569580078 - -991.3600463867 - -991.4678955078 - -991.5832519531 - -991.6983642578 - -991.8500366211 - -991.9225463867 - -992.0567626953 - -992.1705932617 - -992.2776489258 - -992.3626098633 - -992.5186767578 - -992.5739135742 - -992.7377929688 - -992.8338623047 - -992.9251708984 - -993.0392456055 - -993.1614990234 - -993.2283935547 - -993.3504028320 - -993.4569702148 - -993.5623168945 - -993.6685791016 - -993.7619018555 - -993.8762207031 - -993.9520263672 - -994.0711059570 - -994.1409912109 - -994.2924804688 - -994.3427124023 - -994.4718627930 - -994.5600585938 - -994.6271972656 - -994.7400512695 - -994.8585205078 - -994.9128417969 - -995.0369262695 - -995.1143798828 - -995.1921386719 - -995.3015747070 - -995.3801879883 - -995.4824218750 - -995.5627441406 - -995.6398925781 - -995.7383422852 - -995.7998657227 - -995.9033203125 - -995.9719238281 - -996.0881958008 - -996.1608886719 - -996.1891479492 - -996.3413085938 - -996.3779907227 - -996.4407348633 - -996.5495605469 - -996.6535034180 - -996.6686401367 - -996.7901611328 - -996.8276977539 - -996.9254760742 - -997.0052490234 - -997.0535888672 - -997.1621093750 - -997.1898193359 - -997.2786254883 - -997.3438720703 - -997.4089355469 - -997.5001220703 - -997.5457763672 - -997.6127319336 - -997.6732788086 - -997.7570800781 - -997.8114624023 - -997.8753051758 - -997.9242553711 - -997.9980468750 - -998.0563964844 - -998.1002197266 - -998.1737670898 - -998.2563476562 - -998.2542114258 - -998.3400878906 - -998.4087524414 - -998.4332275391 - -998.5104370117 - -998.5739746094 - -998.5772094727 - -998.6604003906 - -998.7039794922 - -998.7512207031 - -998.8026123047 - -998.8572387695 - -998.8876342773 - -998.9387207031 - -998.9959716797 - -999.0251464844 - -999.0870361328 - -999.1105346680 - -999.1419067383 - -999.2190551758 - -999.2409667969 - -999.2717895508 - -999.3107299805 - -999.3657836914 - -999.3715820312 - -999.4376220703 - -999.4711303711 - -999.4841308594 - -999.5070800781 - -999.5846557617 - -999.5716552734 - -999.6198120117 - -999.6615600586 - -999.6554565430 - -999.7196655273 - -999.7027587891 - -999.7849731445 - -999.7718505859 - -999.8095092773 - -999.8195190430 - -999.8508300781 - -999.8834228516 - -999.9112548828 - -999.8781738281 - -999.9468994141 - -999.9719238281 - -999.9552001953 - -999.9737548828 - -1000.0151367188 - -1000.0387573242 - -1000.0097045898 - -1000.0450439453 - -1000.0821533203 - -1000.0584106445 - -1000.0671997070 - -1000.1055908203 - -1000.1090087891 - -1000.1004638672 - -1000.0968017578 - -1000.1487426758 - -1000.1163940430 - -1000.1425781250 - -1000.1292114258 - -1000.1142578125 - -1000.1798095703 - -1000.1143188477 - -1000.1514892578 - -1000.1381225586 - -1000.1434936523 - -1000.1542358398 - -1000.1296386719 - -1000.1171875000 - -1000.1763305664 - -1000.0932617188 - -1000.1209106445 - -1000.1400756836 - -1000.0906982422 - -1000.1060791016 - -1000.0963745117 - -1000.0806274414 - -1000.0879516602 - -1000.0309448242 - -1000.0769042969 - -1000.0328369141 - -1000.0125122070 - -1000.0125122070 - -1000.0040893555 - -999.9732666016 - -999.9530639648 - -999.9466552734 - -999.9191284180 - -999.9012451172 - -999.9091796875 - -999.8205566406 - -999.8715820312 - -999.8244018555 - -999.7799072266 - -999.7994384766 - -999.7344360352 - -999.7509155273 - -999.6842651367 - -999.6748657227 - -999.6521606445 - -999.6301879883 - -999.5750122070 - -999.5747070312 - -999.5422363281 - -999.4914550781 - -999.4768066406 - -999.4499511719 - -999.3912353516 - -999.3859863281 - -999.3430786133 - -999.3055419922 - -999.2653198242 - -999.2437744141 - -999.1914062500 - -999.1679077148 - -999.1198120117 - -999.0936889648 - -999.0512084961 - -999.0020751953 - -998.9628906250 - -998.9406738281 - -998.8828125000 - -998.8248291016 - -998.8247680664 - -998.7492065430 - -998.7099609375 - -998.6962890625 - -998.5922241211 - -998.5941162109 - -998.5532836914 - -998.4624633789 - -998.4567871094 - -998.3999023438 - -998.3547363281 - -998.2717895508 - -998.2897949219 - -998.1744995117 - -998.1618652344 - -998.1079711914 - -998.0430297852 - -997.9979858398 - -997.9722900391 - -997.8819580078 - -997.8437500000 - -997.8084716797 - -997.7329711914 - -997.6736450195 - -997.6599731445 - -997.5556640625 - -997.5399169922 - -997.4687500000 - -997.3968505859 - -997.3786621094 - -997.2976074219 - -997.2384643555 - -997.2037963867 - -997.1290893555 - -997.0803222656 - -997.0120849609 - -996.9572753906 - -996.9130859375 - -996.8400878906 - -996.7872314453 - -996.7203979492 - -996.6827392578 - -996.5965576172 - -996.5454711914 - -996.4942626953 - -996.4452514648 - -996.3510742188 - -996.3055419922 - -996.2861938477 - -996.1563110352 - -996.1481933594 - -996.0620117188 - -996.0029296875 - -995.9640502930 - -995.8680419922 - -995.8315429688 - -995.7756958008 - -995.6956787109 - -995.6361694336 - -995.5994262695 - -995.4968261719 - -995.4821777344 - -995.3846435547 - -995.3253784180 - -995.2871093750 - -995.2327270508 - -995.1217041016 - -995.0921630859 - -995.0684814453 - -994.9432983398 - -994.8985595703 - -994.8688964844 - -994.7910766602 - -994.7153320312 - -994.6740722656 - -994.5980834961 - -994.5835571289 - -994.4486083984 - -994.4466552734 - -994.3703002930 - -994.3163452148 - -994.2421875000 - -994.1893310547 - -994.1596679688 - -994.0509033203 - -994.0276489258 - -993.9584350586 - -993.8944091797 - -993.8416748047 - -993.7861328125 - -993.7272338867 - -993.6534423828 - -993.6517333984 - -993.5385131836 - -993.5065917969 - -993.4503173828 - -993.4034423828 - -993.3295288086 - -993.2974853516 - -993.2219848633 - -993.1994628906 - -993.1206665039 - -993.0720214844 - -993.0299682617 - -992.9873046875 - -992.9127197266 - -992.8626098633 - -992.8474731445 - -992.7747802734 - -992.6949462891 - -992.7221069336 - -992.5986938477 - -992.6080932617 - -992.5132446289 - -992.5086669922 - -992.4355468750 - -992.4143066406 - -992.3319702148 - -992.3270874023 - -992.2723388672 - -992.2156372070 - -992.1763305664 - -992.1564331055 - -992.1068115234 - -992.0385131836 - -992.0388183594 - -991.9837646484 - -991.9428710938 - -991.9080810547 - -991.8681640625 - -991.8545532227 - -991.7912597656 - -991.7633666992 - -991.7419433594 - -991.6986083984 - -991.6668701172 - -991.6398925781 - -991.6027221680 - -991.5788574219 - -991.5582275391 - -991.5004272461 - -991.4939575195 - -991.4785766602 - -991.4163818359 - -991.4237670898 - -991.3833618164 - -991.3645629883 - -991.3464355469 - -991.3109741211 - -991.2988891602 - -991.2859497070 - -991.2490234375 - -991.2376098633 - -991.2191162109 - -991.2144165039 - -991.1661376953 - -991.1936645508 - -991.1483154297 - -991.1207275391 - -991.1646728516 - -991.0863647461 - -991.1292724609 - -991.0674438477 - -991.0977783203 - -991.0918579102 - -991.0336303711 - -991.0692138672 - -991.0791015625 - -991.0308837891 - -991.0260620117 - -991.0655517578 - -991.0469360352 - -991.0016479492 - -991.0514526367 - -991.0475463867 - -991.0084838867 - -991.0611572266 - -991.0086669922 - -991.0786132812 - -991.0254516602 - -991.0441894531 - -991.0806274414 - -991.0437011719 - -991.0834960938 - -991.0791015625 - -991.0886230469 - -991.0913696289 - -991.1187133789 - -991.1232910156 - -991.1265869141 - -991.1531982422 - -991.1624145508 - -991.1722412109 - -991.2044677734 - -991.1879272461 - -991.2413330078 - -991.2485961914 - -991.2463378906 - -991.2954711914 - -991.3076782227 - -991.3225097656 - -991.3515014648 - -991.3700561523 - -991.3934326172 - -991.4282836914 - -991.4412231445 - -991.4607543945 - -991.5158691406 - -991.5215454102 - -991.5527343750 - -991.5798950195 - -991.6127319336 - -991.6594238281 - -991.6510009766 - -991.7113037109 - -991.7533569336 - -991.7651367188 - -991.7968750000 - -991.8455200195 - -991.8924560547 - -991.8896484375 - -991.9642333984 - -991.9778442383 - -992.0433959961 - -992.0406494141 - -992.1279296875 - -992.1109008789 - -992.2268066406 - -992.1921997070 - -992.2651367188 - -992.3299560547 - -992.3381958008 - -992.3811645508 - -992.4484863281 - -992.4841308594 - -992.5192871094 - -992.5610961914 - -992.6323242188 - -992.6485595703 - -992.7168579102 - -992.7415771484 - -992.8092651367 - -992.8494873047 - -992.8986816406 - -992.9244995117 - -993.0310058594 - -993.0257568359 - -993.0933227539 - -993.1455078125 - -993.1948852539 - -993.2411499023 - -993.2984619141 - -993.3615112305 - -993.3785400391 - -993.4810791016 - -993.5043945312 - -993.5514526367 - -993.6191406250 - -993.6669921875 - -993.7375488281 - -993.7337646484 - -993.8622436523 - -993.8707885742 - -993.9410400391 - -993.9761352539 - -994.0463256836 - -994.1184082031 - -994.1420898438 - -994.1810302734 - -994.3006591797 - -994.3184814453 - -994.3424682617 - -994.4479370117 - -994.4965820312 - -994.5297241211 - -994.5830078125 - -994.6752319336 - -994.6843872070 - -994.7817382812 - -994.8130493164 - -994.8670654297 - -994.9415893555 - -994.9924926758 - -995.0231933594 - -995.1141967773 - -995.1477050781 - -995.2013549805 - -995.2827148438 - -995.2856445312 - -995.4106445312 - -995.4245605469 - -995.4647216797 - -995.5544433594 - -995.5979003906 - -995.6443481445 - -995.6905517578 - -995.7711791992 - -995.8042602539 - -995.8660888672 - -995.9139404297 - -995.9821166992 - -996.0213012695 - -996.0714721680 - -996.1346435547 - -996.1783447266 - -996.2485351562 - -996.2783813477 - -996.3324584961 - -996.4089965820 - -996.4223022461 - -996.4895019531 - -996.5559692383 - -996.5671386719 - -996.6669921875 - -996.6752319336 - -996.7299194336 - -996.8012084961 - -996.8314208984 - -996.8651123047 - -996.9504394531 - -996.9723510742 - -997.0123291016 - -997.0725097656 - -997.1219482422 - -997.1300048828 - -997.2409667969 - -997.2180175781 - -997.2965698242 - -997.3369750977 - -997.3890991211 - -997.3907470703 - -997.4767456055 - -997.5131225586 - -997.5064697266 - -997.6063232422 - -997.6154174805 - -997.6502685547 - -997.7211914062 - -997.7169189453 - -997.7703857422 - -997.8238525391 - -997.8413085938 - -997.8766479492 - -997.9210205078 - -997.9591064453 - -997.9804687500 - -998.0245361328 - -998.0432128906 - -998.0914916992 - -998.1083374023 - -998.1443481445 - -998.1774902344 - -998.2158203125 - -998.2164306641 - -998.2713623047 - -998.2933959961 - -998.3038330078 - -998.3497924805 - -998.3781738281 - -998.3741455078 - -998.4244995117 - -998.4419555664 - -998.4609375000 - -998.4654541016 - -998.5278930664 - -998.5068359375 - -998.5678710938 - -998.5439453125 - -998.5836181641 - -998.6265869141 - -998.5709838867 - -998.6553955078 - -998.6433715820 - -998.6563110352 - -998.6798095703 - -998.6816406250 - -998.6975708008 - -998.7239379883 - -998.7280883789 - -998.7235717773 - -998.7398071289 - -998.7792968750 - -998.7285156250 - -998.7815551758 - -998.7697753906 - -998.7807617188 - -998.7863159180 - -998.7667846680 - -998.8115234375 - -998.7879638672 - -998.7556762695 - -998.8341674805 - -998.7711181641 - -998.7787475586 - -998.7996826172 - -998.7836914062 - -998.7739257812 - -998.7833251953 - -998.7415771484 - -998.8025512695 - -998.7324829102 - -998.7432250977 - -998.7519531250 - -998.7216186523 - -998.7490844727 - -998.6929931641 - -998.6920166016 - -998.6963500977 - -998.6883544922 - -998.6456909180 - -998.6322021484 - -998.6515502930 - -998.6101684570 - -998.5700683594 - -998.5946044922 - -998.5666503906 - -998.5208740234 - -998.4976196289 - -998.5103759766 - -998.4802246094 - -998.4072875977 - -998.4358520508 - -998.4035034180 - -998.3662719727 - -998.3305664062 - -998.3157958984 - -998.2739868164 - -998.2824096680 - -998.1956787109 - -998.2081298828 - -998.1393432617 - -998.1409301758 - -998.0948486328 - -998.0418090820 - -998.0503540039 - -997.9680786133 - -997.9407958984 - -997.9230957031 - -997.8850097656 - -997.8146972656 - -997.8046875000 - -997.7448120117 - -997.7007446289 - -997.6660766602 - -997.6387939453 - -997.5576782227 - -997.5214843750 - -997.4931640625 - -997.4271240234 - -997.3933105469 - -997.3314208984 - -997.2754516602 - -997.2405395508 - -997.1814575195 - -997.1253662109 - -997.0736083984 - -997.0252075195 - -996.9374389648 - -996.9297485352 - -996.8614501953 - -996.7795410156 - -996.7503662109 - -996.6770629883 - -996.5867309570 - -996.5836791992 - -996.4969482422 - -996.4183349609 - -996.3701782227 - -996.3068847656 - -996.2285156250 - -996.1748046875 - -996.1065673828 - -996.0476074219 - -995.9588623047 - -995.8934936523 - -995.8220214844 - -995.7717285156 - -995.6755981445 - -995.6060180664 - -995.5361938477 - -995.4421997070 - -995.4100952148 - -995.2971801758 - -995.2434692383 - -995.1594238281 - -995.0567626953 - -995.0144653320 - -994.8882446289 - -994.8681640625 - -994.7594604492 - -994.6460571289 - -994.5784301758 - -994.5367431641 - -994.3801879883 - -994.3473510742 - -994.2697143555 - -994.1483764648 - -994.0753784180 - -993.9666137695 - -993.9009399414 - -993.7971191406 - -993.7157592773 - -993.6306762695 - -993.5232543945 - -993.4405517578 - -993.3257446289 - -993.2431030273 - -993.1611328125 - -993.0321044922 - -992.9728393555 - -992.8495483398 - -992.7319335938 - -992.6594848633 - -992.5667114258 - -992.4327392578 - -992.3777465820 - -992.2216796875 - -992.1466674805 - -992.0229492188 - -991.9418945312 - -991.8229980469 - -991.7249755859 - -991.6137695312 - -991.5033569336 - -991.3920288086 - -991.2650756836 - -991.1933593750 - -991.0664062500 - -990.9474487305 - -990.8513793945 - -990.7502441406 - -990.5814208984 - -990.5212402344 - -990.3601684570 - -990.2709960938 - -990.1585693359 - -990.0401000977 - -989.9008789062 - -989.8234863281 - -989.6669311523 - -989.5469360352 - -989.4260253906 - -989.3141479492 - -989.2055053711 - -989.0626220703 - -988.9252929688 - -988.8516845703 - -988.6587524414 - -988.5629882812 - -988.4318237305 - -988.3361206055 - -988.1579589844 - -988.0657348633 - -987.9266967773 - -987.7646484375 - -987.6706542969 - -987.5197143555 - -987.4046020508 - -987.2628173828 - -987.1340942383 - -987.0124511719 - -986.8702392578 - -986.6959838867 - -986.6166381836 - -986.4334106445 - -986.3031616211 - -986.2032470703 - -986.0195922852 - -985.9193725586 - -985.7600097656 - -985.6295166016 - -985.4830322266 - -985.3406982422 - -985.1864013672 - -985.0371093750 - -984.8979492188 - -984.7988281250 - -984.5858154297 - -984.4725341797 - -984.3277587891 - -984.1684570312 - -984.0111694336 - -983.8480224609 - -983.7679443359 - -983.5674438477 - -983.4130249023 - -983.2916870117 - -983.1160888672 - -982.9626464844 - -982.8089599609 - -982.6380615234 - -982.5303955078 - -982.3720092773 - -982.1604003906 - -982.0640258789 - -981.9086914062 - -981.7389526367 - -981.5614013672 - -981.4353027344 - -981.2837524414 - -981.1219482422 - -980.8951416016 - -980.8013305664 - -980.6260375977 - -980.4395141602 - -980.2963867188 - -980.1386108398 - -979.9890136719 - -979.7963867188 - -979.6336669922 - -979.4635009766 - -979.3081054688 - -979.1264038086 - -978.9888916016 - -978.7786254883 - -978.6480712891 - -978.4371948242 - -978.2896118164 - -978.1007690430 - -977.9815673828 - -977.7465209961 - -977.6339111328 - -977.4235839844 - -977.2815551758 - -977.1043701172 - -976.9144287109 - -976.7573242188 - -976.6071777344 - -976.3749389648 - -976.2620239258 - -976.0573730469 - -975.8808593750 - -975.7245483398 - -975.5237426758 - -975.3721313477 - -975.1806640625 - -975.0030517578 - -974.8031616211 - -974.6414794922 - -974.4348754883 - -974.2614746094 - -974.0848388672 - -973.8765258789 - -973.6931762695 - -973.5047607422 - -973.3267211914 - -973.1123657227 - -972.9434204102 - -972.7290039062 - -972.5626831055 - -972.3790283203 - -972.1849975586 - -971.9870605469 - -971.8372192383 - -971.6345825195 - -971.4384155273 - -971.3037719727 - -971.1113281250 - -970.9412231445 - -970.7351684570 - -970.6249389648 - -970.4340820312 - -970.2813110352 - -970.1500854492 - -969.9639282227 - -969.8475952148 - -969.6788330078 - -969.5009155273 - -969.3762817383 - -969.2557373047 - -969.0283203125 - -968.9339599609 - -968.7659912109 - -968.5808105469 - -968.4415893555 - -968.2931518555 - -968.0933837891 - -967.8677978516 - -967.8004760742 - -967.5991210938 - -967.2043457031 - -966.3520507812 - -965.9766235352 - -965.6948242188 - -965.4885253906 - -965.3265991211 - -965.0189208984 - -964.7337646484 - -964.5281372070 - -964.3474731445 - -964.0150756836 - -963.7410278320 - -963.5720825195 - -963.3267822266 - -962.9871826172 - -962.7954711914 - -962.5570678711 - -962.2782592773 - -962.0581665039 - -961.7590332031 - -961.5539550781 - -961.2966308594 - -961.0450439453 - -960.7780761719 - -960.5621948242 - -960.3314819336 - -960.0549926758 - -959.8131713867 - -959.5944213867 - -959.3424072266 - -959.1048583984 - -958.8341064453 - -958.6504516602 - -958.3474731445 - -958.1640625000 - -957.8652343750 - -957.6754150391 - -957.4174194336 - -957.1661987305 - -956.9317016602 - -956.7031860352 - -956.4448852539 - -956.1979370117 - -955.9764404297 - -955.7152709961 - -955.4647216797 - -955.2373046875 - -955.0007324219 - -954.7185058594 - -954.4940795898 - -954.2522583008 - -953.9876098633 - -953.7644653320 - -953.4654541016 - -953.2736816406 - -953.0147094727 - -952.7194213867 - -952.5140991211 - -952.2572021484 - -952.0062866211 - -951.7362670898 - -951.4906616211 - -951.2777709961 - -950.9745483398 - -950.7449340820 - -950.4861450195 - -950.2482910156 - -949.9912109375 - -949.7286987305 - -949.4797363281 - -949.2451171875 - -948.9678344727 - -948.7209472656 - -948.4606933594 - -948.2231445312 - -947.9741210938 - -947.6895751953 - -947.4251098633 - -947.2251586914 - -946.9297485352 - -946.6402587891 - -946.4461059570 - -946.1627197266 - -945.9105834961 - -945.6359863281 - -945.3752441406 - -945.1459350586 - -944.8776245117 - -944.5684204102 - -944.3571777344 - -944.1098022461 - -943.7999877930 - -943.5543823242 - -943.3113403320 - -943.0344238281 - -942.7767333984 - -942.5164794922 - -942.2338867188 - -942.0226440430 - -941.6962890625 - -941.4606323242 - -941.1996459961 - -940.9201660156 - -940.6837768555 - -940.3771362305 - -940.1519165039 - -939.8605957031 - -939.6049804688 - -939.3332519531 - -939.0496215820 - -938.8175048828 - -938.5381469727 - -938.2424316406 - -938.0103759766 - -937.7198486328 - -937.4624633789 - -937.1765747070 - -936.9065551758 - -936.6612548828 - -936.3659667969 - -936.0864868164 - -935.8551635742 - -935.5488281250 - -935.2877807617 - -935.0168457031 - -934.7286987305 - -934.4840087891 - -934.1777343750 - -933.9038085938 - -933.6857910156 - -933.3228759766 - -933.1231079102 - -932.8111572266 - -932.5448608398 - -932.2462768555 - -932.0126953125 - -931.7090454102 - -931.4163818359 - -931.1897583008 - -930.8527221680 - -930.6193847656 - -930.3118896484 - -930.0319824219 - -929.7869873047 - -929.4674072266 - -929.2029418945 - -928.9380493164 - -928.6273193359 - -928.3578491211 - -928.0947265625 - -927.7672119141 - -927.5325317383 - -927.2337646484 - -926.9438476562 - -926.6564331055 - -926.3978271484 - -926.0855712891 - -925.8015136719 - -925.5333251953 - -925.2386474609 - -924.9564208984 - -924.6588745117 - -924.3993530273 - -924.0762329102 - -923.8190307617 - -923.5003662109 - -923.2604980469 - -922.9230957031 - -922.6564331055 - -922.3881225586 - -922.0576171875 - -921.7772216797 - -921.5280761719 - -921.1845092773 - -920.9160156250 - -920.6437988281 - -920.3241577148 - -920.0248413086 - -919.7757568359 - -919.4476928711 - -919.1594848633 - -918.8801269531 - -918.5675048828 - -918.2958984375 - -917.9711303711 - -917.6940307617 - -917.4164428711 - -917.1077270508 - -916.7615356445 - -916.5560302734 - -916.2091064453 - -915.8889160156 - -915.6212158203 - -915.3556518555 - -914.9912109375 - -914.7355346680 - -914.4232177734 - -914.1237792969 - -913.8486938477 - -913.4889526367 - -913.2557373047 - -912.9246215820 - -912.6160278320 - -912.3222045898 - -912.0227050781 - -911.7315673828 - -911.4055175781 - -911.1127929688 - -910.8181762695 - -910.5100708008 - -910.2015380859 - -909.9013671875 - -909.5957031250 - -909.2935791016 - -908.9721679688 - -908.6955566406 - -908.3513183594 - -908.0980224609 - -907.7290039062 - -907.4645996094 - -907.1417846680 - -906.8303833008 - -906.5295410156 - -906.2262573242 - -905.8943481445 - -905.6098022461 - -905.2855224609 - -904.9794921875 - -904.6662597656 - -904.3618164062 - -904.0442504883 - -903.7283325195 - -903.4363403320 - -903.0899047852 - -902.8157958984 - -902.4800415039 - -902.1486206055 - -901.8914794922 - -901.5170898438 - -901.2371826172 - -900.9102172852 - -900.6069335938 - -900.2570190430 - -899.9846801758 - -899.6500244141 - -899.3154296875 - -899.0075073242 - -898.7155151367 - -898.3640747070 - -898.0441284180 - -897.7586669922 - -897.4063720703 - -897.1076660156 - -896.7587280273 - -896.4862060547 - -896.1204223633 - -895.8252563477 - -895.4832153320 - -895.1748657227 - -894.8541870117 - -894.5310058594 - -894.1810913086 - -893.8927612305 - -893.5532836914 - -893.2291259766 - -892.8881225586 - -892.5900268555 - -892.2607421875 - -891.9156494141 - -891.5927124023 - -891.2901611328 - -890.9425659180 - -890.6005249023 - -890.3027343750 - -889.9581298828 - -889.6334838867 - -889.2793579102 - -888.9940795898 - -888.6168212891 - -888.3284301758 - -887.9654541016 - -887.6247558594 - -887.3428344727 - -886.9581909180 - -886.6447143555 - -886.3101806641 - -885.9907226562 - -885.6234741211 - -885.3232421875 - -884.9484252930 - -884.6669921875 - -884.2678222656 - -883.9574584961 - -883.6531372070 - -883.2539672852 - -882.9502563477 - -882.6236572266 - -882.2540893555 - -881.9379272461 - -881.5700073242 - -881.2688598633 - -880.8912353516 - -880.5597534180 - -880.2243041992 - -879.8762817383 - -879.5307617188 - -879.1886596680 - -878.8278198242 - -878.5112915039 - -878.1318359375 - -877.8257446289 - -877.4261474609 - -877.1224365234 - -876.7674560547 - -876.3935546875 - -876.0693359375 - -875.6996459961 - -875.3768310547 - -875.0017089844 - -874.6377563477 - -874.3170776367 - -873.9619750977 - -873.5728149414 - -873.2381591797 - -872.9056396484 - -872.5131225586 - -872.1737060547 - -871.8143310547 - -871.4570312500 - -871.1028442383 - -870.7316284180 - -870.3696899414 - -870.0273437500 - -869.6473388672 - -869.2947387695 - -868.9152221680 - -868.5781250000 - -868.1923828125 - -867.8402709961 - -867.4442749023 - -867.1237792969 - -866.7196655273 - -866.3633422852 - -865.9682617188 - -865.6477050781 - -865.2351684570 - -864.8623046875 - -864.5192871094 - -864.1091308594 - -863.7509765625 - -863.3889160156 - -862.9675903320 - -862.6369628906 - -862.2373657227 - -861.8507690430 - -861.4677734375 - -861.1166381836 - -860.6906127930 - -860.3245849609 - -859.9492187500 - -859.5511474609 - -859.1412353516 - -858.8084716797 - -858.3579101562 - -858.0069580078 - -857.5887451172 - -857.2082519531 - -856.8114013672 - -856.4132080078 - -856.0011596680 - -855.6359863281 - -855.2107543945 - -854.7955322266 - -854.4223632812 - -854.0153808594 - -853.5839233398 - -853.1982421875 - -852.7864990234 - -852.3809814453 - -851.9443969727 - -851.5487670898 - -851.1405639648 - -850.7132568359 - -850.2927246094 - -849.8641357422 - -849.4823608398 - -849.0114746094 - -848.6019287109 - -848.1954345703 - -847.7511596680 - -847.3135986328 - -846.8939208984 - -846.4675292969 - -846.0077514648 - -845.5950317383 - -845.1414794922 - -844.6955566406 - -844.2710571289 - -843.8140869141 - -843.3569335938 - -842.9411010742 - -842.4478759766 - -842.0268554688 - -841.5667724609 - -841.0728759766 - -840.6735229492 - -840.1768798828 - -839.6824340820 - -839.2827148438 - -838.7907104492 - -838.2778930664 - -837.8427734375 - -837.3903808594 - -836.8635253906 - -836.3897094727 - -835.9415283203 - -835.4317626953 - -834.9497070312 - -834.4503784180 - -833.9563598633 - -833.5176391602 - -832.9243774414 - -832.4819335938 - -831.9819946289 - -831.4705200195 - -830.9262695312 - -830.4578247070 - -829.9487304688 - -829.3917846680 - -828.8920898438 - -828.3713378906 - -827.8447265625 - -827.3066406250 - -826.7838134766 - -826.2429809570 - -825.7125854492 - -825.1951293945 - -824.6017456055 - -824.1082153320 - -823.5266113281 - -822.9833374023 - -822.4368896484 - -821.8789672852 - -821.2905883789 - -820.7856445312 - -820.1673583984 - -819.6074218750 - -819.0588378906 - -818.4785156250 - -817.8737792969 - -817.2996215820 - -816.7572021484 - -816.1193847656 - -815.5401611328 - -814.9786376953 - -814.3467407227 - -813.7767944336 - -813.1342163086 - -812.5775756836 - -811.9309082031 - -811.3500976562 - -810.6981811523 - -810.1172485352 - -809.4833984375 - -808.8483886719 - -808.2351074219 - -807.6136474609 - -806.9823608398 - -806.3314819336 - -805.7227172852 - -805.0662841797 - -804.4223022461 - -803.7947998047 - -803.1262207031 - -802.5070190430 - -801.8420410156 - -801.1782226562 - -800.5417480469 - -799.8778686523 - -799.2111816406 - -798.5599975586 - -797.8973388672 - -797.2103881836 - -796.5722045898 - -795.8785400391 - -795.2050170898 - -794.5578002930 - -793.8605957031 - -793.1857910156 - -792.5155029297 - -791.8248901367 - -791.1585693359 - -790.4525146484 - -789.7810668945 - -789.1258544922 - -788.3871459961 - -787.7357177734 - -787.0442504883 - -786.3480224609 - -785.6660766602 - -784.9766235352 - -784.2838134766 - -783.5788574219 - -782.9151000977 - -782.2058715820 - -781.5341796875 - -780.7928466797 - -780.1681518555 - -779.4286499023 - -778.7474365234 - -778.0549316406 - -777.3930664062 - -776.6868896484 - -775.9609375000 - -775.3235473633 - -774.6394042969 - -773.8833007812 - -773.2865600586 - -772.5488281250 - -771.8699951172 - -771.2182006836 - -770.4714355469 - -769.8787231445 - -769.1386718750 - -768.4700317383 - -767.8415527344 - -767.1015625000 - -766.4884033203 - -765.7927856445 - -765.1234741211 - -764.4830322266 - -763.7943725586 - -763.1528930664 - -762.4932250977 - -761.8360595703 - -761.1909790039 - -760.5228881836 - -759.9096679688 - -759.2158813477 - -758.6094970703 - -757.9796752930 - -757.3096313477 - -756.6998291016 - -756.0874023438 - -755.4306640625 - -754.8201293945 - -754.2043457031 - -753.5806884766 - -752.9779052734 - -752.3682861328 - -751.7419433594 - -751.1696166992 - -750.5655517578 - -749.9525756836 - -749.3737182617 - -748.7876586914 - -748.2109985352 - -747.5952148438 - -747.0448608398 - -746.4858398438 - -745.8889770508 - -745.3312377930 - -744.7788696289 - -744.2246093750 - -743.6451416016 - -743.1160888672 - -742.5627441406 - -742.0245361328 - -741.4696044922 - -740.9697875977 - -740.3789062500 - -739.9346923828 - -739.3243408203 - -738.8651123047 - -738.3352050781 - -737.8110351562 - -737.3101806641 - -736.8164672852 - -736.2973632812 - -735.8090209961 - -735.3196411133 - -734.8188476562 - -734.3444824219 - -733.8685302734 - -733.3555297852 - -732.9197387695 - -732.4449462891 - -731.9458618164 - -731.4971923828 - -731.0764770508 - -730.5561523438 - -730.1365356445 - -729.6829223633 - -729.2419433594 - -728.7815551758 - -728.3496093750 - -727.9326171875 - -727.4645385742 - -727.0733032227 - -726.6051635742 - -726.2149658203 - -725.7818603516 - -725.3504638672 - -724.9657592773 - -724.5217895508 - -724.1347656250 - -723.7143554688 - -723.3348388672 - -722.8955078125 - -722.5278930664 - -722.1349487305 - -721.7285766602 - -721.3201904297 - -720.9855957031 - -720.5654907227 - -720.1722412109 - -719.8291625977 - -719.4177246094 - -719.0742187500 - -718.6679687500 - -718.3197631836 - -717.9392089844 - -717.6019897461 - -717.1954345703 - -716.8632812500 - -716.4910278320 - -716.1582641602 - -715.7540893555 - -715.4437866211 - -715.0757446289 - -714.7179565430 - -714.3958740234 - -713.9915771484 - -713.7315673828 - -713.3314819336 - -712.9790649414 - -712.6851806641 - -712.3134155273 - -711.9836425781 - -711.6502685547 - -711.3100585938 - -710.9837036133 - -710.6555175781 - -710.3140869141 - -709.9971923828 - -709.6544799805 - -709.3411254883 - -709.0073242188 - -708.6746215820 - -708.3761596680 - -708.0410766602 - -707.6981201172 - -707.4143676758 - -707.0661621094 - -706.7602539062 - -706.4426879883 - -706.0985717773 - -705.8466186523 - -705.4655761719 - -705.1577148438 - -704.8921508789 - -704.5251464844 - -704.2307128906 - -703.9179077148 - -703.6221923828 - -703.2788696289 - -702.9790039062 - -702.6847534180 - -702.3346557617 - -702.0859985352 - -701.7028808594 - -701.4462890625 - -701.1267089844 - -700.8126220703 - -700.4874877930 - -700.2047729492 - -699.9030151367 - -699.5381469727 - -699.2879638672 - -698.9627685547 - -698.6478271484 - -698.3496093750 - -698.0261840820 - -697.7187500000 - -697.4497680664 - -697.0765380859 - -696.8139038086 - -696.4916381836 - -696.2026367188 - -695.8540039062 - -695.5888671875 - -695.2428588867 - -694.9690551758 - -694.6188354492 - -694.3361816406 - -694.0300292969 - -693.7224121094 - -693.3725585938 - -693.1041259766 - -692.7830810547 - -692.4631958008 - -692.1464233398 - -691.8615112305 - -691.5244750977 - -691.2178955078 - -690.8936157227 - -690.6054687500 - -690.2522583008 - -689.9780883789 - -689.6258544922 - -689.3552856445 - -688.9968261719 - -688.6889038086 - -688.4047241211 - -688.0174560547 - -687.7532348633 - -687.4312744141 - -687.0763549805 - -686.7998657227 - -686.4451904297 - -686.1317749023 - -685.8312377930 - -685.4929199219 - -685.1536254883 - -684.8505859375 - -684.5385742188 - -684.1615600586 - -683.8798828125 - -683.5488281250 - -683.2000732422 - -682.8856201172 - -682.5545654297 - -682.2286987305 - -681.8915405273 - -681.5340576172 - -681.2612304688 - -680.8843383789 - -680.5252075195 - -680.2605590820 - -679.8724975586 - -679.5412597656 - -679.2245483398 - -678.8491210938 - -678.5635375977 - -678.1754150391 - -677.8543090820 - -677.5089111328 - -677.1764526367 - -676.8458862305 - -676.4764404297 - -676.1242065430 - -675.8098144531 - -675.4564819336 - -675.0947875977 - -674.7353515625 - -674.4215698242 - -674.0576782227 - -673.6753540039 - -673.3721313477 - -673.0025024414 - -672.6362915039 - -672.2625732422 - -671.9615478516 - -671.5789184570 - -671.1792602539 - -670.8776245117 - -670.5073852539 - -670.1320800781 - -669.7714233398 - -669.4100952148 - -669.0524291992 - -668.7034912109 - -668.2984619141 - -667.9725341797 - -667.5698242188 - -667.2235107422 - -666.8692016602 - -666.4699707031 - -666.1353149414 - -665.7181396484 - -665.3708496094 - -665.0123901367 - -664.6216430664 - -664.2426147461 - -663.8804321289 - -663.4868774414 - -663.0947265625 - -662.7633056641 - -662.3508300781 - -661.9693603516 - -661.5851440430 - -661.2088623047 - -660.8344726562 - -660.4389038086 - -660.0534057617 - -659.6538696289 - -659.2847900391 - -658.8916015625 - -658.4942016602 - -658.1104736328 - -657.7141113281 - -657.2955322266 - -656.9551391602 - -656.5485229492 - -656.1230468750 - -655.7698974609 - -655.3354492188 - -654.9328613281 - -654.5634155273 - -654.1773071289 - -653.7141113281 - -653.3655395508 - -652.9487304688 - -652.5272216797 - -652.1413574219 - -651.7376708984 - -651.3404541016 - -650.8970336914 - -650.5038452148 - -650.1026611328 - -649.7015991211 - -649.2634277344 - -648.8585815430 - -648.4591674805 - -648.0070800781 - -647.6291503906 - -647.2222900391 - -646.7829589844 - -646.3792724609 - -645.9230957031 - -645.5481567383 - -645.0985107422 - -644.7065429688 - -644.2742919922 - -643.8327636719 - -643.4100341797 - -643.0017700195 - -642.5546875000 - -642.1602783203 - -641.7340698242 - -641.2702636719 - -640.8823242188 - -640.3913574219 - -640.0197143555 - -639.5485839844 - -639.1455688477 - -638.7277221680 - -638.2354125977 - -637.8598022461 - -637.3849487305 - -636.9398193359 - -636.5425415039 - -636.0757446289 - -635.6431274414 - -635.2047729492 - -634.7438964844 - -634.3037109375 - -633.8933715820 - -633.4210815430 - -633.0014038086 - -632.5202026367 - -632.0878295898 - -631.6406250000 - -631.1946411133 - -630.7529907227 - -630.3055419922 - -629.8527221680 - -629.3888549805 - -628.9498901367 - -628.4710693359 - -628.0499267578 - -627.5963134766 - -627.1264648438 - -626.6891479492 - -626.2360229492 - -625.7407836914 - -625.3228759766 - -624.8116455078 - -624.4060058594 - -623.9233398438 - -623.4764404297 - -622.9976806641 - -622.5603637695 - -622.0740966797 - -621.6102294922 - -621.1173095703 - -620.7120361328 - -620.2091674805 - -619.7620849609 - -619.2584838867 - -618.8428344727 - -618.3110351562 - -617.8664550781 - -617.3983764648 - -616.9407348633 - -616.4651489258 - -615.9624023438 - -615.5297851562 - -615.0060424805 - -614.5565185547 - -614.0786132812 - -613.6142578125 - -613.1250610352 - -612.6661376953 - -612.1731567383 - -611.7227172852 - -611.1743774414 - -610.7586059570 - -610.2299194336 - -609.7598876953 - -609.3214111328 - -608.7803344727 - -608.3365478516 - -607.8583984375 - -607.3625488281 - -606.8575439453 - -606.4058837891 - -605.8848876953 - -605.3830566406 - -604.9132690430 - -604.4708862305 - -603.9153442383 - -603.4355468750 - -602.9760131836 - -602.4508056641 - -601.9475708008 - -601.4601440430 - -601.0119628906 - -600.4907836914 - -599.9702758789 - -599.5236816406 - -598.9945678711 - -598.4813842773 - -598.0015869141 - -597.4921875000 - -597.0175781250 - -596.5255126953 - -595.9868164062 - -595.5305786133 - -595.0230712891 - -594.5314941406 - -593.9967651367 - -593.5286254883 - -593.0430908203 - -592.5103149414 - -591.9645385742 - -591.5313720703 - -590.9659423828 - -590.4777221680 - -589.9924316406 - -589.4649658203 - -588.9854736328 - -588.4503784180 - -587.9391479492 - -587.4294433594 - -586.9127807617 - -586.3969726562 - -585.9362792969 - -585.3487548828 - -584.8910522461 - -584.3271484375 - -583.8406982422 - -583.3190917969 - -582.8331298828 - -582.2564086914 - -581.8377075195 - -581.2424926758 - -580.7727050781 - -580.2426147461 - -579.7432861328 - -579.2059326172 - -578.7158203125 - -578.1638183594 - -577.6918945312 - -577.1524047852 - -576.6151733398 - -576.1324462891 - -575.5972900391 - -575.0816040039 - -574.5488891602 - -574.0468750000 - -573.4873657227 - -572.9770507812 - -572.4357910156 - -571.9212646484 - -571.3898925781 - -570.8395996094 - -570.3216552734 - -569.7791137695 - -569.2463989258 - -568.7245483398 - -568.1652221680 - -567.6494750977 - -567.0903320312 - -566.6221923828 - -566.0517578125 - -565.5082397461 - -565.0253906250 - -564.4927368164 - -563.9479370117 - -563.4643554688 - -562.9357910156 - -562.4570312500 - -561.8718872070 - -561.4511718750 - -560.8992309570 - -560.4580688477 - -559.9570922852 - -559.4495239258 - -558.9920654297 - -558.4929809570 - -558.0256958008 - -557.4954223633 - -557.0649414062 - -556.5434570312 - -556.1251220703 - -555.5342407227 - -555.0667724609 - -554.6460571289 - -554.1328125000 - -553.5166625977 - -553.0050048828 - -552.6956787109 - -552.1031494141 - -551.1160888672 - -548.9443359375 - -547.9681396484 - -547.3297729492 - -546.9414062500 - -546.4658203125 - -545.7886962891 - -545.1972656250 - -544.7389526367 - -544.2740478516 - -543.5897216797 - -543.0692138672 - -542.5807495117 - -542.0795288086 - -541.4268798828 - -540.9518432617 - -540.4132080078 - -539.8630981445 - -539.3362426758 - -538.7397460938 - -538.2689208984 - -537.6790161133 - -537.1777954102 - -536.5577392578 - -536.0528564453 - -535.5028686523 - -534.9386596680 - -534.3678588867 - -533.8259277344 - -533.2849121094 - -532.7189941406 - -532.1050415039 - -531.6372070312 - -531.0001831055 - -530.5018920898 - -529.8685913086 - -529.3605346680 - -528.7823486328 - -528.2042846680 - -527.6572265625 - -527.0952758789 - -526.5174560547 - -525.9610595703 - -525.4114990234 - -524.8447265625 - -524.2563476562 - -523.7257690430 - -523.1674194336 - -522.5775756836 - -522.0289306641 - -521.4974975586 - -520.9101562500 - -520.3597412109 - -519.7820434570 - -519.2534790039 - -518.7012329102 - -518.0853271484 - -517.5771484375 - -517.0015258789 - -516.4702148438 - -515.8406372070 - -515.3463134766 - -514.7823486328 - -514.1918334961 - -513.6472167969 - -513.0974731445 - -512.5181274414 - -511.9881896973 - -511.3708190918 - -510.8469238281 - -510.3011779785 - -509.7151489258 - -509.1622009277 - -508.5951232910 - -508.0343627930 - -507.4981079102 - -506.8985595703 - -506.3445739746 - -505.8485717773 - -505.2147216797 - -504.6704711914 - -504.1432495117 - -503.5411071777 - -502.9982604980 - -502.4458007812 - -501.8638305664 - -501.3382263184 - -500.7662963867 - -500.1889038086 - -499.6503906250 - -499.1079101562 - -498.5186157227 - -497.9662170410 - -497.4355163574 - -496.8521423340 - -496.2766418457 - -495.7511596680 - -495.1577148438 - -494.6301269531 - -494.0418395996 - -493.5132141113 - -492.9507141113 - -492.3574523926 - -491.8455200195 - -491.2557067871 - -490.6931457520 - -490.1414489746 - -489.6057128906 - -489.0342102051 - -488.4396667480 - -487.9370727539 - -487.3563842773 - -486.7664489746 - -486.2467956543 - -485.6945190430 - -485.1117553711 - -484.5675354004 - -484.0178222656 - -483.4541015625 - -482.9151306152 - -482.3071594238 - -481.8058166504 - -481.2077941895 - -480.6736755371 - -480.1108398438 - -479.5481567383 - -479.0170898438 - -478.4466247559 - -477.8593750000 - -477.3817749023 - -476.7248229980 - -476.2369995117 - -475.6563415527 - -475.1113281250 - -474.5514831543 - -473.9962463379 - -473.4499206543 - -472.8578186035 - -472.3633422852 - -471.7305603027 - -471.2562255859 - -470.6573791504 - -470.1023864746 - -469.5657958984 - -468.9905395508 - -468.4403991699 - -467.9104614258 - -467.3148498535 - -466.8066711426 - -466.2372131348 - -465.6673278809 - -465.1343688965 - -464.5690307617 - -464.0216369629 - -463.4557495117 - -462.9273986816 - -462.3693847656 - -461.8010864258 - -461.2728576660 - -460.7040710449 - -460.1543273926 - -459.5933227539 - -459.0715026855 - -458.4875488281 - -457.9643249512 - -457.3936462402 - -456.8650512695 - -456.2845153809 - -455.7365112305 - -455.2262878418 - -454.6394348145 - -454.0859680176 - -453.5759582520 - -452.9816894531 - -452.4355163574 - -451.9299621582 - -451.3502502441 - -450.7700805664 - -450.2999267578 - -449.6819458008 - -449.1484680176 - -448.6327209473 - -448.0428771973 - -447.5541381836 - -446.9403686523 - -446.4363403320 - -445.8835754395 - -445.3259277344 - -444.7532348633 - -444.2783203125 - -443.6962890625 - -443.1302795410 - -442.6010131836 - -442.0794372559 - -441.4914550781 - -440.9678344727 - -440.4392089844 - -439.8710937500 - -439.3590393066 - -438.7452697754 - -438.2703247070 - -437.7219848633 - -437.1477966309 - -436.6209106445 - -436.0849304199 - -435.5362243652 - -434.9783935547 - -434.4513854980 - -433.9276733398 - -433.3595886230 - -432.8201904297 - -432.2846374512 - -431.7551269531 - -431.2066040039 - -430.6429138184 - -430.1642456055 - -429.5501403809 - -429.0691528320 - -428.4914245605 - -427.9898681641 - -427.4135437012 - -426.8996887207 - -426.3498535156 - -425.8094177246 - -425.2847290039 - -424.7542724609 - -424.2007446289 - -423.6724548340 - -423.1288146973 - -422.5957946777 - -422.0659484863 - -421.5183410645 - -421.0019836426 - -420.4283752441 - -419.9359436035 - -419.3846740723 - -418.8326416016 - -418.3509826660 - -417.7409362793 - -417.2700500488 - -416.7167968750 - -416.1847839355 - -415.6294555664 - -415.1353759766 - -414.5758666992 - -414.0370178223 - -413.5302429199 - -412.9936828613 - -412.4542541504 - -411.9030456543 - -411.4127502441 - -410.8652648926 - -410.3313903809 - -409.8000488281 - -409.2892456055 - -408.7273864746 - -408.2258300781 - -407.6781921387 - -407.1623229980 - -406.6257324219 - -406.0899353027 - -405.5728454590 - -405.0509033203 - -404.4920349121 - -403.9994812012 - -403.4450683594 - -402.9351501465 - -402.3942871094 - -401.8807067871 - -401.3376159668 - -400.8252258301 - -400.3025207520 - -399.7559814453 - -399.2493591309 - -398.7045593262 - -398.2029113770 - -397.6497802734 - -397.1497192383 - -396.5888671875 - -396.1094665527 - -395.5525817871 - -395.0317993164 - -394.5230102539 - -393.9840087891 - -393.4539794922 - -392.9416809082 - -392.4342346191 - -391.8462219238 - -391.3991394043 - -390.8224182129 - -390.3211364746 - -389.7764892578 - -389.2608947754 - -388.7640380859 - -388.1856079102 - -387.6925659180 - -387.1893615723 - -386.6239929199 - -386.1196289062 - -385.5986938477 - -385.0791320801 - -384.5296936035 - -384.0289001465 - -383.5014343262 - -382.9630126953 - -382.4505310059 - -381.9334411621 - -381.3725585938 - -380.9025268555 - -380.3242492676 - -379.8349914551 - -379.2955322266 - -378.7672424316 - -378.2565307617 - -377.7133178711 - -377.1840209961 - -376.6683349609 - -376.1445312500 - -375.6215515137 - -375.0585937500 - -374.5775756836 - -374.0411071777 - -373.4844665527 - -372.9590148926 - -372.4687194824 - -371.9028015137 - -371.3836669922 - -370.8456420898 - -370.3428039551 - -369.7911987305 - -369.2505187988 - -368.7195434570 - -368.2214050293 - -367.6456909180 - -367.1437988281 - -366.5713195801 - -366.0892333984 - -365.5088500977 - -364.9978637695 - -364.4249877930 - -363.9600524902 - -363.3471374512 - -362.8449707031 - -362.2822570801 - -361.7787170410 - -361.2054443359 - -360.6587219238 - -360.1332702637 - -359.5929870605 - -359.0280761719 - -358.4995727539 - -357.9281921387 - -357.4142456055 - -356.8430786133 - -356.2803649902 - -355.7610473633 - -355.1914367676 - -354.6371154785 - -354.0743713379 - -353.5382995605 - -352.9776306152 - -352.3782348633 - -351.8809204102 - -351.2634582520 - -350.7499694824 - -350.1281433105 - -349.6052856445 - -349.0407714844 - -348.4282226562 - -347.8849182129 - -347.3267211914 - -346.7296447754 - -346.1491699219 - -345.5809020996 - -345.0222473145 - -344.4029541016 - -343.8313293457 - -343.2589111328 - -342.6703796387 - -342.0523376465 - -341.4855957031 - -340.8884277344 - -340.2894592285 - -339.6814575195 - -339.0743713379 - -338.5122985840 - -337.8580627441 - -337.2653198242 - -336.6777343750 - -336.0285644531 - -335.4349365234 - -334.8206176758 - -334.1698303223 - -333.5771789551 - -332.9364929199 - -332.3101501465 - -331.6683044434 - -331.0399169922 - -330.4176635742 - -329.7355651855 - -329.1374206543 - -328.4423217773 - -327.8398742676 - -327.1537780762 - -326.4802246094 - -325.8671569824 - -325.1840209961 - -324.4661560059 - -323.8761291504 - -323.1570129395 - -322.4624023438 - -321.8081665039 - -321.1202697754 - -320.4178771973 - -319.7177734375 - -319.0429687500 - -318.3191528320 - -317.6372070312 - -316.8937988281 - -316.1932067871 - -315.5180664062 - -314.7206726074 - -314.0270080566 - -313.3179016113 - -312.5681762695 - -311.7868957520 - -311.1034545898 - -310.3325500488 - -309.5660705566 - -308.8040771484 - -308.0549316406 - -307.2908325195 - -306.4980468750 - -305.7314147949 - -304.9403991699 - -304.1806030273 - -303.3686828613 - -302.5497131348 - -301.8059082031 - -300.9477844238 - -300.1410522461 - -299.3559875488 - -298.5115966797 - -297.6618957520 - -296.8908081055 - -295.9979248047 - -295.1661071777 - -294.3458251953 - -293.4765319824 - -292.6000671387 - -291.7481079102 - -290.9104309082 - -289.9809265137 - -289.1508483887 - -288.2407531738 - -287.3706665039 - -286.4654541016 - -285.5503845215 - -284.6801147461 - -283.7370300293 - -282.8452758789 - -281.9029235840 - -280.9946289062 - -280.0531921387 - -279.1116943359 - -278.1870117188 - -277.2301330566 - -276.2877197266 - -275.3328552246 - -274.3755187988 - -273.3988952637 - -272.4276428223 - -271.4765930176 - -270.4652404785 - -269.5057373047 - -268.5238647461 - -267.5084838867 - -266.5293884277 - -265.5291442871 - -264.5130004883 - -263.5163269043 - -262.5122985840 - -261.4562377930 - -260.4735107422 - -259.4411010742 - -258.3892211914 - -257.3872070312 - -256.3536071777 - -255.2853698730 - -254.2725219727 - -253.2058410645 - -252.1763763428 - -251.1024169922 - -250.0590820312 - -249.0422515869 - -247.9177398682 - -246.9047546387 - -245.8366088867 - -244.7476501465 - -243.7239074707 - -242.6125183105 - -241.5690307617 - -240.4887237549 - -239.4015502930 - -238.3654785156 - -237.2662963867 - -236.1628570557 - -235.1507873535 - -233.9943237305 - -232.9818725586 - -231.8575592041 - -230.8075256348 - -229.7459259033 - -228.6095581055 - -227.5682373047 - -226.5115356445 - -225.3685607910 - -224.3810272217 - -223.2251281738 - -222.1969909668 - -221.1199645996 - -219.9986877441 - -218.9968414307 - -217.8872375488 - -216.8177032471 - -215.7932739258 - -214.6668853760 - -213.6635894775 - -212.5746154785 - -211.5130920410 - -210.5034332275 - -209.3936614990 - -208.3809356689 - -207.3410949707 - -206.2814941406 - -205.2581787109 - -204.1981811523 - -203.2021484375 - -202.1285247803 - -201.1216430664 - -200.1247558594 - -199.0739135742 - -198.0662231445 - -197.0913238525 - -196.0441436768 - -195.0555114746 - -194.0691223145 - -193.0657043457 - -192.0835418701 - -191.1123046875 - -190.1080322266 - -189.1535034180 - -188.1983337402 - -187.2035064697 - -186.2667541504 - -185.3126831055 - -184.3596038818 - -183.4000854492 - -182.4751281738 - -181.5538787842 - -180.6042785645 - -179.6958770752 - -178.7788696289 - -177.8609466553 - -176.9530639648 - -176.0469665527 - -175.1633148193 - -174.2522430420 - -173.3825531006 - -172.5095520020 - -171.5982208252 - -170.7834472656 - -169.8590698242 - -169.0642395020 - -168.1665649414 - -167.3344421387 - -166.5039978027 - -165.6604614258 - -164.8092346191 - -164.0065460205 - -163.1957092285 - -162.3374938965 - -161.5754547119 - -160.7591094971 - -159.9278259277 - -159.1754150391 - -158.3889007568 - -157.5552520752 - -156.8245544434 - -156.0564880371 - -155.2436828613 - -154.5167846680 - -153.7514648438 - -153.0090942383 - -152.2392272949 - -151.5031127930 - -150.7845764160 - -150.0317687988 - -149.3140411377 - -148.5553894043 - -147.8951110840 - -147.1465454102 - -146.4205322266 - -145.7453613281 - -145.0513000488 - -144.3147430420 - -143.6450042725 - -142.9783477783 - -142.2525634766 - -141.6045532227 - -140.9151916504 - -140.2526855469 - -139.5720214844 - -138.9261932373 - -138.2480468750 - -137.6059875488 - -136.9612884521 - -136.2659606934 - -135.6926422119 - -135.0008392334 - -134.3616485596 - -133.7541351318 - -133.1268463135 - -132.4564514160 - -131.8802337646 - -131.2207946777 - -130.6472625732 - -129.9808044434 - -129.4017333984 - -128.7900085449 - -128.1741943359 - -127.5866165161 - -126.9486312866 - -126.4146957397 - -125.7716979980 - -125.1772918701 - -124.6260223389 - -123.9983825684 - -123.4333496094 - -122.8632202148 - -122.2475738525 - -121.7017364502 - -121.1244125366 - -120.5396347046 - -119.9734573364 - -119.3955078125 - -118.8528900146 - -118.2652511597 - -117.6982879639 - -117.1592483521 - -116.6026535034 - -116.0094909668 - -115.4873428345 - -114.9264755249 - -114.3782196045 - -113.8127899170 - -113.2607803345 - -112.7647171021 - -112.1573944092 - -111.6189651489 - -111.1302261353 - -110.5234298706 - -110.0266494751 - -109.4496994019 - -108.9634017944 - -108.3837738037 - -107.8520965576 - -107.3399581909 - -106.7818298340 - -106.2798690796 - -105.7007293701 - -105.2188186646 - -104.6760253906 - -104.1301422119 - -103.6177673340 - -103.0872039795 - -102.5765991211 - -102.0097427368 - -101.5166015625 - -100.9963531494 - -100.4666442871 - -99.9272689819 - -99.4228744507 - -98.8859710693 - -98.4095764160 - -97.8057708740 - -97.3580932617 - -96.8068695068 - -96.3143920898 - -95.7450408936 - -95.2843780518 - -94.7217102051 - -94.2430648804 - -93.6760101318 - -93.1955108643 - -92.6809005737 - -92.1592636108 - -91.6088714600 - -91.1322937012 - -90.6054916382 - -90.0921478271 - -89.5485763550 - -89.0724029541 - -88.5462951660 - -88.0141067505 - -87.4866180420 - -87.0151672363 - -86.4554214478 - -85.9622421265 - -85.4297790527 - -84.9432449341 - -84.4038543701 - -83.8800811768 - -83.3902969360 - -82.8372497559 - -82.3377227783 - -81.8439178467 - -81.2728195190 - -80.8145675659 - -80.2555999756 - -79.7469177246 - -79.2478408813 - -78.7123031616 - -78.1836547852 - -77.6911621094 - -77.1611709595 - -76.6191558838 - -76.1235656738 - -75.6150588989 - -75.0558166504 - -74.5561370850 - -74.0549697876 - -73.4983367920 - -72.9915313721 - -72.4621124268 - -71.9548797607 - -71.4254837036 - -70.8533477783 - -70.4167556763 - -69.8226165771 - -69.3116531372 - -68.8044509888 - -68.2562103271 - -67.7462997437 - -67.2062911987 - -66.6912841797 - -66.1395568848 - -65.6472167969 - -65.1002426147 - -64.5752716064 - -64.0227890015 - -63.5241699219 - -62.9766654968 - -62.4511566162 - -61.8995895386 - -61.3869132996 - -60.8563232422 - -60.2956733704 - -59.7944717407 - -59.2415924072 - -58.7116851807 - -58.1476020813 - -57.6618576050 - -57.0902709961 - -56.5353546143 - -56.0326919556 - -55.4827919006 - -54.9302024841 - -54.3988380432 - -53.8455810547 - -53.3255386353 - -52.7686538696 - -52.2188835144 - -51.6942253113 - -51.1297302246 - -50.5839195251 - -50.0732727051 - -49.4986343384 - -48.9642181396 - -48.3907127380 - -47.8723907471 - -47.3263778687 - -46.7503089905 - -46.2247505188 - -45.6657066345 - -45.1071128845 - -44.5347404480 - -44.0486183167 - -43.4272346497 - -42.9089736938 - -42.3412170410 - -41.7779693604 - -41.2558860779 - -40.6678085327 - -40.1239547729 - -39.5515632629 - -39.0066413879 - -38.4472694397 - -37.8787689209 - -37.3277511597 - -36.7530860901 - -36.1829757690 - -35.6556243896 - -35.0847854614 - -34.4980430603 - -33.9717788696 - -33.3627166748 - -32.8203544617 - -32.2424545288 - -31.7222442627 - -31.0730094910 - -30.5732383728 - -29.9813861847 - -29.3974285126 - -28.8442535400 - -28.2781562805 - -27.7127304077 - -27.1045227051 - -26.5519123077 - -25.9927597046 - -25.4127311707 - -24.8205070496 - -24.2534904480 - -23.6954078674 - -23.0789604187 - -22.5169143677 - -21.9906578064 - -21.3534088135 - -20.8031845093 - -20.1888370514 - -19.6417770386 - -19.0610771179 - -18.4650154114 - -17.8941574097 - -17.3134231567 - -16.7170829773 - -16.1169395447 - -15.5708007812 - -14.9839143753 - -14.3915233612 - -13.7838630676 - -13.2470293045 - -12.5842056274 - -12.0659818649 - -11.4293308258 - -10.8770427704 - -10.3051376343 - -9.6388063431 - -9.1313486099 - -8.4995136261 - -7.8826551437 - -7.3401432037 - -6.7354564667 - -6.1149368286 - -5.5489349365 - -4.9422245026 - -4.3230857849 - -3.7708034515 - -3.1621284485 - -2.5572624207 - -1.9574584961 - -1.3531684875 - -0.7737751007 - -0.1535854340 - 0.4219207764 - 1.0271968842 - 1.6272697449 - 2.2460479736 - 2.8246459961 - 3.4504890442 - 4.0404167175 - 4.6265850067 - 5.2462177277 - 5.8371925354 - 6.4481906891 - 7.0578956604 - 7.6544837952 - 8.2970962524 - 8.8456172943 - 9.4919528961 - 10.0758037567 - 10.6890869141 - 11.2988624573 - 11.9067592621 - 12.5161685944 - 13.1697692871 - 13.6948833466 - 14.3766651154 - 14.9362335205 - 15.5906410217 - 16.1701011658 - 16.8131599426 - 17.4162273407 - 18.0206546783 - 18.6444225311 - 19.2136745453 - 19.9119148254 - 20.4527893066 - 21.1137466431 - 21.7264766693 - 22.3264083862 - 22.9411354065 - 23.5684585571 - 24.1611518860 - 24.8142013550 - 25.3802032471 - 26.0675544739 - 26.6419162750 - 27.2894325256 - 27.8981342316 - 28.4874649048 - 29.1540718079 - 29.7513999939 - 30.3437099457 - 30.9927787781 - 31.6400413513 - 32.2074203491 - 32.8720512390 - 33.5114974976 - 34.1106033325 - 34.7068748474 - 35.3668899536 - 36.0077667236 - 36.5854911804 - 37.2514305115 - 37.8853530884 - 38.4883880615 - 39.1125144958 - 39.7316513062 - 40.3952865601 - 40.9759407043 - 41.6313591003 - 42.2846603394 - 42.8852348328 - 43.5153350830 - 44.1534118652 - 44.7681350708 - 45.4034805298 - 46.0241165161 - 46.6665344238 - 47.2696075439 - 47.9324569702 - 48.5421905518 - 49.1538696289 - 49.8296051025 - 50.4605751038 - 51.0471572876 - 51.7608070374 - 52.3419837952 - 52.9611816406 - 53.6324501038 - 54.2367401123 - 54.8853683472 - 55.5264091492 - 56.1568984985 - 56.8136405945 - 57.4424858093 - 58.0288925171 - 58.7422523499 - 59.3312263489 - 60.0068206787 - 60.6236953735 - 61.2546577454 - 61.8991088867 - 62.5708084106 - 63.1160392761 - 63.8414535522 - 64.4375915527 - 65.0939102173 - 65.6887588501 - 66.3760986328 - 66.9963989258 - 67.6314773560 - 68.2603530884 - 68.9040985107 - 69.5718612671 - 70.1744308472 - 70.8147430420 - 71.4735717773 - 72.1192321777 - 72.7308349609 - 73.4104385376 - 74.0508499146 - 74.6948852539 - 75.3302536011 - 75.9886016846 - 76.6455841064 - 77.2763671875 - 77.9404220581 - 78.5998458862 - 79.2058639526 - 79.9157714844 - 80.5121307373 - 81.2248306274 - 81.7766571045 - 82.4790878296 - 83.1354064941 - 83.7445755005 - 84.3791503906 - 85.0395355225 - 85.6649017334 - 86.3028717041 - 86.8853530884 - 87.5992050171 - 88.1503601074 - 88.8271484375 - 89.3676910400 - 90.0237045288 - 90.6355667114 - 91.2383346558 - 91.8537979126 - 92.4102478027 - 93.1192550659 - 93.6752548218 - 94.2677536011 - 94.8308639526 - 95.5914459229 - 96.1411209106 - 96.6629257202 - 97.3215255737 - 98.0899200439 - 98.6687240601 - 99.0873641968 - 99.8174743652 - 100.9741821289 - 103.5355224609 - 104.6942214966 - 105.4158554077 - 105.8197860718 - 106.4053115845 - 107.1622924805 - 107.8064041138 - 108.3212356567 - 108.8713912964 - 109.6145706177 - 110.1586608887 - 110.7573242188 - 111.3001785278 - 111.9864501953 - 112.5414047241 - 113.1495132446 - 113.7351150513 - 114.3433532715 - 114.9816284180 - 115.5166168213 - 116.1863403320 - 116.7225952148 - 117.4299850464 - 118.0076446533 - 118.6415710449 - 119.2519226074 - 119.9075088501 - 120.5403823853 - 121.1387100220 - 121.7908554077 - 122.4851684570 - 123.0370178223 - 123.7352905273 - 124.3348846436 - 125.0310211182 - 125.6396331787 - 126.2906036377 - 126.9480361938 - 127.5733871460 - 128.2282257080 - 128.8779602051 - 129.5055847168 - 130.1480255127 - 130.7778930664 - 131.4521636963 - 132.0585021973 - 132.6993865967 - 133.3444213867 - 133.9822082520 - 134.5757293701 - 135.2341918945 - 135.8759155273 - 136.4851379395 - 137.1245727539 - 137.7333374023 - 138.4060211182 - 138.9992828369 - 139.6470947266 - 140.2317504883 - 140.9508209229 - 141.4820404053 - 142.1560668945 - 142.7810363770 - 143.4077606201 - 144.0128631592 - 144.6855316162 - 145.2611694336 - 145.9689331055 - 146.5435638428 - 147.1668701172 - 147.8107147217 - 148.4331054688 - 149.0637817383 - 149.7076873779 - 150.3014831543 - 150.9592895508 - 151.5657043457 - 152.1454315186 - 152.8463745117 - 153.4122467041 - 154.0466918945 - 154.7095489502 - 155.3105926514 - 155.9046325684 - 156.5586700439 - 157.1554870605 - 157.7859191895 - 158.3840484619 - 159.0194091797 - 159.6247558594 - 160.2414398193 - 160.8636169434 - 161.4548187256 - 162.0950164795 - 162.7417602539 - 163.3077087402 - 163.9577789307 - 164.5757141113 - 165.1738281250 - 165.7692260742 - 166.3921966553 - 167.0454254150 - 167.6134185791 - 168.2338409424 - 168.8925476074 - 169.4685058594 - 170.0553131104 - 170.6817779541 - 171.3327636719 - 171.8906707764 - 172.5238647461 - 173.1555023193 - 173.7400512695 - 174.3171997070 - 174.9760589600 - 175.5457153320 - 176.1396331787 - 176.7806243896 - 177.3321380615 - 178.0083618164 - 178.5649566650 - 179.1984405518 - 179.7771301270 - 180.3908081055 - 180.9872894287 - 181.5772857666 - 182.1675262451 - 182.8166809082 - 183.3491821289 - 184.0187835693 - 184.5857391357 - 185.1866455078 - 185.7767333984 - 186.3584136963 - 186.9971618652 - 187.5523376465 - 188.1902160645 - 188.7409820557 - 189.3986053467 - 189.9108581543 - 190.5447540283 - 191.1372680664 - 191.7358093262 - 192.3199310303 - 192.9199371338 - 193.4882812500 - 194.1136169434 - 194.6431427002 - 195.2749328613 - 195.8433074951 - 196.4460144043 - 197.0361175537 - 197.6065521240 - 198.2083892822 - 198.7806549072 - 199.3451080322 - 199.9543457031 - 200.5163726807 - 201.1156463623 - 201.6976318359 - 202.2818450928 - 202.8424224854 - 203.4369659424 - 204.0023193359 - 204.5808258057 - 205.1717681885 - 205.7467651367 - 206.3414001465 - 206.8750915527 - 207.4669342041 - 208.0564270020 - 208.6090850830 - 209.1996002197 - 209.7895355225 - 210.3119201660 - 210.9037475586 - 211.5160064697 - 212.0058593750 - 212.6488647461 - 213.1992950439 - 213.7306213379 - 214.3452453613 - 214.8416900635 - 215.4816894531 - 215.9969024658 - 216.5880126953 - 217.1559753418 - 217.7097167969 - 218.2506866455 - 218.8186035156 - 219.3881378174 - 219.9526367188 - 220.5068359375 - 221.0664978027 - 221.6334686279 - 222.1520385742 - 222.7454833984 - 223.2756500244 - 223.8804626465 - 224.3939514160 - 224.9243316650 - 225.5180816650 - 226.0524902344 - 226.5951385498 - 227.1667785645 - 227.7176971436 - 228.2535095215 - 228.7818298340 - 229.3668060303 - 229.9057922363 - 230.4473724365 - 230.9738464355 - 231.5341796875 - 232.0987396240 - 232.5743408203 - 233.1955261230 - 233.6980895996 - 234.2372589111 - 234.7612915039 - 235.3438873291 - 235.8403167725 - 236.4039306641 - 236.9498748779 - 237.4429168701 - 237.9922790527 - 238.5376281738 - 239.0618286133 - 239.6031188965 - 240.1365356445 - 240.6516113281 - 241.1965026855 - 241.7160034180 - 242.2709808350 - 242.7710876465 - 243.3017883301 - 243.8383636475 - 244.3379821777 - 244.9226531982 - 245.3828735352 - 245.9252777100 - 246.4580688477 - 246.9811706543 - 247.4854278564 - 248.0300750732 - 248.5426483154 - 249.0312652588 - 249.5826416016 - 250.0789489746 - 250.6253967285 - 251.1106567383 - 251.6190338135 - 252.1592712402 - 252.6457672119 - 253.1758880615 - 253.6931457520 - 254.1863861084 - 254.7050628662 - 255.2075042725 - 255.7301483154 - 256.2492370605 - 256.7118225098 - 257.2439880371 - 257.7828369141 - 258.2330322266 - 258.7634887695 - 259.2666625977 - 259.7878112793 - 260.2499084473 - 260.7807006836 - 261.2835998535 - 261.7574462891 - 262.2742309570 - 262.7727050781 - 263.2845764160 - 263.7484741211 - 264.2635192871 - 264.7642822266 - 265.2684936523 - 265.7335510254 - 266.2459411621 - 266.7237548828 - 267.2413330078 - 267.7041320801 - 268.2236328125 - 268.6945190430 - 269.1727600098 - 269.7296142578 - 270.1322326660 - 270.6640319824 - 271.1702575684 - 271.6269836426 - 272.1270446777 - 272.6042785645 - 273.1138305664 - 273.5848083496 - 274.0494995117 - 274.5684509277 - 275.0447387695 - 275.4958496094 - 276.0112609863 - 276.4972229004 - 276.9529724121 - 277.4466247559 - 277.9449157715 - 278.4046630859 - 278.8754272461 - 279.3960571289 - 279.8182678223 - 280.3479003906 - 280.8106079102 - 281.2590637207 - 281.7857666016 - 282.2333984375 - 282.7135314941 - 283.2210693359 - 283.6621704102 - 284.1627197266 - 284.6096801758 - 285.1303405762 - 285.5659790039 - 286.0540161133 - 286.5395812988 - 287.0307312012 - 287.4687500000 - 287.9660034180 - 288.4424133301 - 288.9288024902 - 289.3617248535 - 289.8745422363 - 290.3528442383 - 290.8257751465 - 291.2662048340 - 291.7913208008 - 292.2275695801 - 292.7481384277 - 293.1685180664 - 293.6947631836 - 294.1460266113 - 294.6506042480 - 295.0605468750 - 295.6198730469 - 296.0529785156 - 296.5424194336 - 297.0133666992 - 297.5014953613 - 297.9880981445 - 298.4711608887 - 298.9103698730 - 299.4400024414 - 299.9084777832 - 300.3853759766 - 300.8627624512 - 301.3608093262 - 301.8583068848 - 302.2913513184 - 302.8358459473 - 303.2810363770 - 303.7995300293 - 304.2668151855 - 304.7499084473 - 305.2819824219 - 305.7307128906 - 306.2511291504 - 306.7072143555 - 307.2666015625 - 307.7074584961 - 308.1982727051 - 308.7625427246 - 309.2044067383 - 309.7164611816 - 310.2299804688 - 310.7272033691 - 311.2472534180 - 311.7184448242 - 312.2601318359 - 312.7727050781 - 313.2607727051 - 313.7802124023 - 314.3151245117 - 314.8106689453 - 315.3413085938 - 315.8550415039 - 316.3901672363 - 316.9156799316 - 317.4175720215 - 317.9748840332 - 318.4967651367 - 319.0138244629 - 319.5898742676 - 320.0855407715 - 320.6313171387 - 321.2277526855 - 321.6998291016 - 322.2937622070 - 322.8248291016 - 323.3879089355 - 323.9511718750 - 324.4722290039 - 325.0870361328 - 325.6111450195 - 326.2104797363 - 326.7366027832 - 327.3550109863 - 327.9197082520 - 328.4840087891 - 329.0608215332 - 329.6948242188 - 330.2223510742 - 330.8603820801 - 331.4397583008 - 332.0332946777 - 332.6616821289 - 333.2391662598 - 333.8657226562 - 334.4781799316 - 335.1060791016 - 335.6956481934 - 336.3648376465 - 336.9717712402 - 337.5942077637 - 338.2544250488 - 338.9021301270 - 339.5169982910 - 340.1839599609 - 340.8678283691 - 341.4735107422 - 342.1757507324 - 342.8235778809 - 343.5218505859 - 344.1786804199 - 344.8529663086 - 345.5610046387 - 346.2429199219 - 346.9453735352 - 347.6091003418 - 348.3677368164 - 349.0618896484 - 349.7375793457 - 350.5045776367 - 351.2294311523 - 351.9168090820 - 352.6864624023 - 353.4333801270 - 354.1402587891 - 354.9255981445 - 355.6728210449 - 356.4136657715 - 357.1997985840 - 357.9722900391 - 358.7374267578 - 359.5111999512 - 360.3346557617 - 361.0605468750 - 361.9292297363 - 362.6648254395 - 363.5176696777 - 364.3133850098 - 365.1244812012 - 365.9602966309 - 366.7810363770 - 367.6104125977 - 368.4571533203 - 369.3031921387 - 370.1477966309 - 370.9879150391 - 371.8705444336 - 372.7204284668 - 373.5703125000 - 374.4662475586 - 375.3449707031 - 376.2276000977 - 377.0951232910 - 378.0158081055 - 378.9048767090 - 379.7832641602 - 380.7152404785 - 381.6178283691 - 382.5261230469 - 383.4565734863 - 384.3721008301 - 385.2875671387 - 386.2603454590 - 387.1663818359 - 388.0957031250 - 389.0755004883 - 390.0032348633 - 390.9306640625 - 391.9346923828 - 392.8565673828 - 393.8424072266 - 394.7940979004 - 395.7763061523 - 396.7449035645 - 397.6878662109 - 398.7165832520 - 399.6569213867 - 400.6442260742 - 401.6600646973 - 402.5870971680 - 403.6443176270 - 404.5916748047 - 405.5847167969 - 406.6299438477 - 407.5494079590 - 408.6051025391 - 409.5980834961 - 410.5641784668 - 411.6423950195 - 412.5526428223 - 413.6270446777 - 414.6156616211 - 415.5782470703 - 416.6381225586 - 417.6375732422 - 418.6140441895 - 419.6547851562 - 420.6101074219 - 421.6892700195 - 422.6263732910 - 423.6673889160 - 424.6829223633 - 425.6645507812 - 426.6689453125 - 427.6816406250 - 428.6634521484 - 429.6934814453 - 430.6575622559 - 431.6734008789 - 432.6726684570 - 433.6190185547 - 434.6746520996 - 435.6249389648 - 436.5998840332 - 437.6081542969 - 438.5713195801 - 439.5693359375 - 440.5214538574 - 441.5156555176 - 442.4916992188 - 443.4287719727 - 444.4104003906 - 445.3845214844 - 446.3045654297 - 447.2935180664 - 448.2369384766 - 449.1713256836 - 450.1249084473 - 451.0661315918 - 451.9829101562 - 452.9349975586 - 453.8630981445 - 454.7601623535 - 455.7108154297 - 456.6043395996 - 457.5178833008 - 458.4393615723 - 459.3316040039 - 460.2356262207 - 461.1239013672 - 462.0199279785 - 462.8897094727 - 463.7787475586 - 464.6674499512 - 465.5149230957 - 466.4101562500 - 467.2455444336 - 468.1395568848 - 468.9515380859 - 469.8236694336 - 470.6654052734 - 471.5014038086 - 472.3442077637 - 473.1343994141 - 474.0155639648 - 474.7991333008 - 475.6034545898 - 476.4353942871 - 477.2543945312 - 478.0274353027 - 478.8127441406 - 479.6611022949 - 480.3841552734 - 481.1915588379 - 481.9852600098 - 482.7319030762 - 483.4932861328 - 484.3046264648 - 485.0045776367 - 485.7909545898 - 486.5480957031 - 487.2713012695 - 488.0203857422 - 488.7463684082 - 489.4960327148 - 490.2212219238 - 490.9335021973 - 491.6485595703 - 492.3851318359 - 493.1096496582 - 493.7572326660 - 494.5005493164 - 495.2105102539 - 495.8869628906 - 496.5339050293 - 497.3047790527 - 497.9369506836 - 498.6052856445 - 499.3066406250 - 499.9575195312 - 500.6480102539 - 501.2830200195 - 501.9447326660 - 502.6250610352 - 503.2710571289 - 503.8869323730 - 504.5569763184 - 505.2381591797 - 505.7958984375 - 506.4770812988 - 507.1335754395 - 507.7078552246 - 508.3566284180 - 509.0037841797 - 509.5774230957 - 510.2415771484 - 510.8104858398 - 511.4536437988 - 512.0531005859 - 512.6467895508 - 513.2570190430 - 513.8586425781 - 514.4571533203 - 515.0362548828 - 515.6465454102 - 516.2284545898 - 516.8011474609 - 517.4161987305 - 517.9743041992 - 518.5370483398 - 519.1644287109 - 519.6959228516 - 520.2755126953 - 520.8527221680 - 521.4257812500 - 521.9913940430 - 522.5309448242 - 523.1210937500 - 523.6794433594 - 524.2282104492 - 524.7680053711 - 525.3573608398 - 525.8945922852 - 526.4278564453 - 526.9837036133 - 527.5548706055 - 528.0782470703 - 528.6057739258 - 529.1792602539 - 529.7177734375 - 530.2203369141 - 530.8073730469 - 531.2935180664 - 531.8877563477 - 532.3564453125 - 532.9242553711 - 533.4598999023 - 533.9705200195 - 534.4976196289 - 535.0380249023 - 535.5653076172 - 536.0662231445 - 536.5994873047 - 537.1436157227 - 537.6239624023 - 538.1748657227 - 538.6757202148 - 539.2019042969 - 539.7266845703 - 540.2192993164 - 540.7368164062 - 541.2866821289 - 541.7559204102 - 542.2919921875 - 542.7717895508 - 543.3479614258 - 543.7892456055 - 544.3331909180 - 544.8181152344 - 545.3641967773 - 545.8233642578 - 546.3618164062 - 546.8401489258 - 547.3814086914 - 547.8536987305 - 548.3563232422 - 548.8690185547 - 549.3841552734 - 549.8647460938 - 550.3715820312 - 550.8586425781 - 551.3964233398 - 551.8599853516 - 552.3497314453 - 552.8796386719 - 553.3841552734 - 553.8371582031 - 554.3637695312 - 554.8649291992 - 555.3496093750 - 555.8436279297 - 556.3330688477 - 556.8483886719 - 557.3338623047 - 557.8157958984 - 558.3369140625 - 558.7911987305 - 559.3339233398 - 559.7774047852 - 560.3015136719 - 560.7875366211 - 561.2715454102 - 561.7750244141 - 562.2666625977 - 562.7376708984 - 563.2587280273 - 563.7334594727 - 564.2307739258 - 564.6991577148 - 565.2292480469 - 565.7003784180 - 566.1567382812 - 566.7057495117 - 567.1650390625 - 567.6398925781 - 568.1644897461 - 568.6195678711 - 569.1597900391 - 569.5814208984 - 570.1271362305 - 570.5991821289 - 571.0792846680 - 571.5657958984 - 572.0815429688 - 572.5422363281 - 573.0307617188 - 573.5524291992 - 573.9938964844 - 574.5230712891 - 574.9786376953 - 575.4949951172 - 575.9641723633 - 576.4712524414 - 576.9356079102 - 577.4431762695 - 577.9351196289 - 578.4050292969 - 578.9041137695 - 579.3886108398 - 579.8881835938 - 580.3548583984 - 580.8676757812 - 581.3302001953 - 581.8458862305 - 582.3186035156 - 582.8071899414 - 583.3008422852 - 583.7943115234 - 584.2686157227 - 584.7768554688 - 585.2366943359 - 585.7629394531 - 586.2222290039 - 586.7209472656 - 587.2052612305 - 587.7169799805 - 588.1654052734 - 588.6691894531 - 589.1745605469 - 589.6587524414 - 590.1264648438 - 590.6262207031 - 591.1408081055 - 591.5879516602 - 592.1040649414 - 592.5887451172 - 593.0962524414 - 593.5290527344 - 594.0929565430 - 594.5261230469 - 595.0341796875 - 595.5432739258 - 595.9896240234 - 596.5180664062 - 596.9877319336 - 597.4877929688 - 597.9752197266 - 598.4609985352 - 598.9572143555 - 599.4396972656 - 599.9465942383 - 600.4240722656 - 600.9125366211 - 601.4030761719 - 601.9000854492 - 602.3736572266 - 602.8969116211 - 603.3468017578 - 603.8858032227 - 604.3171386719 - 604.8743896484 - 605.3114013672 - 605.8247680664 - 606.3212280273 - 606.8048095703 - 607.2908935547 - 607.7823486328 - 608.2946777344 - 608.7702636719 - 609.2479248047 - 609.7584228516 - 610.2514648438 - 610.7376098633 - 611.2153930664 - 611.7322387695 - 612.2375488281 - 612.6582641602 - 613.2200927734 - 613.6813354492 - 614.1907958984 - 614.6758422852 - 615.1389160156 - 615.6837768555 - 616.1485595703 - 616.6198120117 - 617.1345214844 - 617.6693725586 - 618.0808715820 - 618.6088867188 - 619.1138305664 - 619.6053466797 - 620.0609741211 - 620.6117553711 - 621.0547485352 - 621.5845947266 - 622.0493774414 - 622.5302734375 - 623.0853881836 - 623.5074462891 - 624.0255737305 - 624.5500488281 - 625.0055541992 - 625.4890747070 - 626.0319213867 - 626.4830322266 - 626.9758911133 - 627.5090332031 - 627.9666137695 - 628.4510498047 - 628.9816284180 - 629.4433593750 - 629.9609985352 - 630.4243774414 - 630.9533081055 - 631.4159545898 - 631.9198608398 - 632.4106445312 - 632.9190063477 - 633.3897094727 - 633.8943481445 - 634.4006347656 - 634.8682861328 - 635.3721923828 - 635.8637084961 - 636.3711547852 - 636.8342285156 - 637.3542480469 - 637.8529052734 - 638.3093261719 - 638.8426513672 - 639.3134155273 - 639.7986450195 - 640.3196411133 - 640.7888183594 - 641.2825317383 - 641.8171997070 - 642.2372436523 - 642.8060913086 - 643.2385253906 - 643.7634277344 - 644.2586059570 - 644.7373657227 - 645.2406616211 - 645.7229003906 - 646.2457885742 - 646.6648559570 - 647.2594604492 - 647.6769409180 - 648.1921386719 - 648.7055664062 - 649.1707153320 - 649.6726074219 - 650.1693725586 - 650.6419677734 - 651.1755371094 - 651.6146240234 - 652.1467285156 - 652.6337280273 - 653.1228637695 - 653.6094360352 - 654.0972900391 - 654.6040649414 - 655.0990600586 - 655.5516357422 - 656.0758666992 - 656.5883178711 - 657.0284423828 - 657.5522460938 - 658.0556030273 - 658.5275268555 - 659.0225219727 - 659.5040893555 - 660.0318603516 - 660.4801025391 - 661.0016479492 - 661.4948120117 - 661.9554443359 - 662.4882202148 - 662.9398193359 - 663.4625244141 - 663.9285888672 - 664.4298706055 - 664.9434204102 - 665.4074707031 - 665.8884277344 - 666.4167480469 - 666.8911132812 - 667.3507080078 - 667.8701171875 - 668.3723144531 - 668.8283691406 - 669.3358154297 - 669.8259887695 - 670.3018188477 - 670.8311157227 - 671.2770385742 - 671.7661132812 - 672.3222045898 - 672.7473754883 - 673.2355957031 - 673.7630615234 - 674.2333984375 - 674.7176513672 - 675.2136840820 - 675.6954956055 - 676.2108764648 - 676.6837158203 - 677.1448974609 - 677.6784667969 - 678.1464233398 - 678.6444702148 - 679.1274414062 - 679.5974121094 - 680.1245727539 - 680.6036376953 - 681.0421142578 - 681.5867309570 - 682.0540161133 - 682.5555419922 - 682.9911499023 - 683.5342407227 - 684.0190429688 - 684.4654541016 - 684.9818725586 - 685.4542236328 - 685.9665527344 - 686.4308471680 - 686.9020385742 - 687.4218139648 - 687.9041137695 - 688.3632812500 - 688.8718872070 - 689.3681640625 - 689.8392944336 - 690.3236083984 - 690.8269653320 - 691.3092041016 - 691.7824707031 - 692.2838134766 - 692.7876586914 - 693.2181396484 - 693.7749633789 - 694.1963500977 - 694.7573242188 - 695.1566772461 - 695.6903076172 - 696.1784057617 - 696.6531372070 - 697.1179199219 - 697.6109008789 - 698.1102905273 - 698.5845947266 - 699.0211791992 - 699.5581054688 - 700.0035400391 - 700.5155639648 - 700.9240112305 - 701.4541015625 - 701.9080200195 - 702.3979492188 - 702.8664550781 - 703.2737426758 - 703.8576660156 - 704.3014526367 - 704.7110595703 - 705.1780395508 - 705.7825317383 - 706.1788330078 - 706.5783081055 - 707.1000366211 - 707.6918945312 - 708.0900268555 - 708.4388427734 - 708.9938964844 - 709.8247680664 - 711.6787109375 - 712.5238647461 - 713.0197143555 - 713.2663574219 - 713.7109985352 - 714.2235107422 - 714.6447753906 - 714.9957275391 - 715.3952636719 - 715.8790893555 - 716.2138061523 - 716.6665649414 - 717.0183105469 - 717.4443359375 - 717.8414306641 - 718.2585449219 - 718.6290283203 - 719.0579223633 - 719.4647216797 - 719.8347167969 - 720.2976074219 - 720.6393432617 - 721.1315307617 - 721.5345458984 - 721.9807128906 - 722.3758544922 - 722.8353881836 - 723.2882690430 - 723.6876831055 - 724.1466064453 - 724.6240844727 - 725.0235595703 - 725.4841308594 - 725.9282226562 - 726.3891601562 - 726.8380126953 - 727.2828369141 - 727.7380371094 - 728.1737670898 - 728.6412963867 - 729.0845947266 - 729.5147705078 - 729.9747924805 - 730.3979492188 - 730.8693847656 - 731.2920532227 - 731.7409667969 - 732.1649169922 - 732.6187744141 - 733.0202026367 - 733.4678955078 - 733.9260253906 - 734.3060302734 - 734.7821044922 - 735.1869506836 - 735.6286010742 - 736.0527954102 - 736.4955444336 - 736.8827514648 - 737.3836059570 - 737.7245483398 - 738.2197875977 - 738.6114501953 - 739.0516357422 - 739.4531860352 - 739.9310913086 - 740.3061523438 - 740.8012084961 - 741.1804199219 - 741.6142578125 - 742.0402221680 - 742.4656982422 - 742.8896484375 - 743.3412475586 - 743.7380981445 - 744.1726684570 - 744.5717163086 - 744.9868774414 - 745.4545898438 - 745.7998046875 - 746.2698364258 - 746.7094726562 - 747.1116943359 - 747.4927368164 - 747.9387817383 - 748.3511962891 - 748.7703247070 - 749.1331176758 - 749.5930786133 - 750.0019531250 - 750.3818969727 - 750.8076171875 - 751.2061767578 - 751.6289062500 - 752.0703125000 - 752.4339599609 - 752.8623046875 - 753.3059692383 - 753.6580810547 - 754.0652465820 - 754.4818115234 - 754.9151000977 - 755.2960815430 - 755.6815795898 - 756.1542968750 - 756.5079345703 - 756.8944091797 - 757.3074951172 - 757.7360839844 - 758.1104125977 - 758.5250244141 - 758.9277954102 - 759.3269042969 - 759.6820068359 - 760.1346435547 - 760.4856567383 - 760.8695678711 - 761.3132934570 - 761.6415405273 - 762.0963745117 - 762.4697875977 - 762.8674316406 - 763.2427978516 - 763.6445312500 - 764.0194091797 - 764.4155883789 - 764.7728881836 - 765.2059936523 - 765.5653686523 - 765.9610595703 - 766.3642578125 - 766.7279052734 - 767.1105346680 - 767.4647827148 - 767.9138183594 - 768.2399902344 - 768.6505126953 - 769.0216674805 - 769.4226684570 - 769.7534790039 - 770.1506958008 - 770.5270385742 - 770.9310913086 - 771.2742919922 - 771.6673583984 - 772.0303955078 - 772.4177246094 - 772.7415771484 - 773.1654663086 - 773.4888305664 - 773.9034423828 - 774.2655029297 - 774.6144409180 - 774.9946289062 - 775.3655395508 - 775.6948852539 - 776.0843505859 - 776.4393920898 - 776.8125610352 - 777.1774902344 - 777.5348510742 - 777.8940429688 - 778.2446899414 - 778.6099243164 - 778.9485473633 - 779.3488159180 - 779.6721191406 - 780.0587158203 - 780.3872070312 - 780.7306518555 - 781.1036987305 - 781.4623413086 - 781.7962646484 - 782.1775512695 - 782.4926757812 - 782.8431396484 - 783.2255859375 - 783.5253906250 - 783.9181518555 - 784.2497558594 - 784.5690917969 - 784.9451293945 - 785.2367553711 - 785.6290283203 - 785.9346313477 - 786.3109741211 - 786.6462402344 - 786.9438476562 - 787.3193969727 - 787.6299438477 - 787.9589233398 - 788.3167724609 - 788.6663208008 - 788.9580688477 - 789.3256225586 - 789.6119995117 - 789.9768676758 - 790.2977294922 - 790.6347656250 - 790.9668579102 - 791.2522583008 - 791.6113891602 - 791.9246215820 - 792.2416381836 - 792.5911865234 - 792.8992309570 - 793.2142333984 - 793.5211181641 - 793.8723144531 - 794.1801757812 - 794.4959716797 - 794.7940063477 - 795.1259155273 - 795.4494628906 - 795.7186279297 - 796.0809326172 - 796.3898315430 - 796.6596679688 - 796.9814453125 - 797.3209838867 - 797.5875854492 - 797.9235229492 - 798.2412719727 - 798.4913940430 - 798.8242797852 - 799.1278686523 - 799.4238281250 - 799.7310791016 - 800.0362548828 - 800.3161010742 - 800.6248168945 - 800.9250488281 - 801.2239990234 - 801.5174560547 - 801.8002929688 - 802.0914916992 - 802.3952636719 - 802.7042236328 - 802.9566040039 - 803.2557373047 - 803.5612792969 - 803.8281860352 - 804.1266479492 - 804.4231567383 - 804.6898193359 - 804.9511718750 - 805.2812500000 - 805.5220336914 - 805.8297119141 - 806.1019897461 - 806.3533325195 - 806.6688232422 - 806.9020996094 - 807.2245483398 - 807.4757690430 - 807.7495117188 - 808.0170898438 - 808.2909545898 - 808.5760498047 - 808.8560180664 - 809.0661621094 - 809.3804321289 - 809.6686401367 - 809.8836059570 - 810.1629028320 - 810.4440917969 - 810.7222290039 - 810.9348754883 - 811.2258300781 - 811.5039672852 - 811.7261962891 - 811.9919433594 - 812.2688598633 - 812.5285034180 - 812.7559814453 - 813.0123901367 - 813.2996215820 - 813.5311279297 - 813.7827758789 - 814.0312500000 - 814.2614746094 - 814.5664672852 - 814.7545776367 - 815.0411987305 - 815.2687988281 - 815.5128784180 - 815.8004150391 - 815.9861450195 - 816.2449951172 - 816.5396728516 - 816.7128295898 - 816.9834594727 - 817.2362060547 - 817.4590454102 - 817.7064208984 - 817.9334716797 - 818.1835327148 - 818.4281005859 - 818.6160278320 - 818.9067993164 - 819.1212158203 - 819.3366699219 - 819.5848388672 - 819.8297119141 - 820.0399780273 - 820.2628784180 - 820.5202636719 - 820.7138671875 - 820.9682006836 - 821.2061767578 - 821.3713989258 - 821.6708984375 - 821.8637695312 - 822.0753173828 - 822.3438720703 - 822.5212402344 - 822.7841796875 - 822.9636230469 - 823.2191162109 - 823.4227905273 - 823.6531982422 - 823.8598022461 - 824.1065673828 - 824.3049316406 - 824.5204467773 - 824.7500000000 - 824.9763183594 - 825.1541748047 - 825.4084472656 - 825.6198120117 - 825.8320312500 - 826.0263671875 - 826.2758789062 - 826.4595947266 - 826.7051391602 - 826.8839111328 - 827.1307983398 - 827.3291015625 - 827.5491943359 - 827.7286987305 - 827.9948120117 - 828.1732788086 - 828.3799438477 - 828.6165771484 - 828.8107299805 - 829.0287475586 - 829.2625122070 - 829.4124755859 - 829.6802978516 - 829.8880615234 - 830.0664062500 - 830.3023071289 - 830.5140380859 - 830.7336425781 - 830.8951416016 - 831.1812133789 - 831.3263549805 - 831.5786743164 - 831.7770385742 - 831.9760131836 - 832.2128295898 - 832.4209594727 - 832.6211547852 - 832.8247070312 - 833.0817260742 - 833.2520141602 - 833.4586181641 - 833.7333984375 - 833.8845825195 - 834.1312866211 - 834.3410644531 - 834.5421142578 - 834.7913208008 - 834.9732055664 - 835.2053833008 - 835.4395751953 - 835.6345214844 - 835.8623657227 - 836.0849609375 - 836.2966308594 - 836.5337524414 - 836.7423706055 - 836.9754638672 - 837.1943359375 - 837.4209594727 - 837.6427612305 - 837.8704833984 - 838.0955200195 - 838.3520507812 - 838.5371704102 - 838.7808837891 - 839.0675659180 - 839.2166748047 - 839.5097656250 - 839.7180786133 - 839.9611206055 - 840.2179565430 - 840.4148559570 - 840.6989746094 - 840.9246826172 - 841.1717529297 - 841.3959960938 - 841.6818847656 - 841.8958129883 - 842.1697998047 - 842.3937988281 - 842.6722412109 - 842.9113769531 - 843.1950683594 - 843.4109497070 - 843.6894531250 - 843.9894409180 - 844.1946411133 - 844.4793090820 - 844.7671508789 - 845.0300903320 - 845.2750244141 - 845.5833740234 - 845.8369750977 - 846.1400756836 - 846.3803710938 - 846.7048339844 - 846.9621582031 - 847.2608642578 - 847.5540771484 - 847.8228759766 - 848.1559448242 - 848.4076538086 - 848.7430419922 - 849.0262451172 - 849.3218994141 - 849.6420288086 - 849.9471435547 - 850.2601928711 - 850.5439453125 - 850.9243164062 - 851.1962890625 - 851.5143432617 - 851.8618164062 - 852.1945800781 - 852.4898681641 - 852.8549804688 - 853.1793212891 - 853.5195312500 - 853.8610839844 - 854.2036132812 - 854.5477294922 - 854.9140625000 - 855.2518310547 - 855.6023559570 - 855.9810791016 - 856.3458862305 - 856.6566772461 - 857.1119995117 - 857.3980102539 - 857.8331909180 - 858.1688842773 - 858.5736694336 - 858.9440917969 - 859.3426513672 - 859.7035522461 - 860.1261596680 - 860.5143432617 - 860.9004516602 - 861.2962646484 - 861.7266845703 - 862.1202392578 - 862.5012207031 - 862.9519653320 - 863.3563232422 - 863.7724609375 - 864.1850585938 - 864.6209716797 - 865.0587158203 - 865.4572753906 - 865.9068603516 - 866.3464965820 - 866.7738037109 - 867.2202758789 - 867.6622924805 - 868.0972900391 - 868.5704956055 - 869.0120849609 - 869.4398803711 - 869.9281616211 - 870.3842773438 - 870.8082885742 - 871.3186035156 - 871.7543334961 - 872.2374267578 - 872.7036743164 - 873.1736450195 - 873.6523437500 - 874.1176757812 - 874.6099243164 - 875.0752563477 - 875.5592651367 - 876.0668945312 - 876.5001831055 - 877.0505371094 - 877.4961547852 - 877.9766845703 - 878.5323486328 - 878.9411621094 - 879.5011596680 - 879.9585571289 - 880.4651489258 - 881.0033569336 - 881.4215087891 - 881.9859619141 - 882.4899291992 - 882.9410400391 - 883.4710083008 - 884.0003051758 - 884.4787597656 - 884.9713134766 - 885.4855957031 - 886.0256958008 - 886.4703979492 - 887.0297241211 - 887.5046386719 - 888.0459594727 - 888.5147705078 - 889.0366821289 - 889.5552978516 - 890.0484619141 - 890.5600585938 - 891.0679931641 - 891.5770874023 - 892.0548095703 - 892.6043090820 - 893.0852661133 - 893.5775756836 - 894.1027832031 - 894.5936889648 - 895.1021728516 - 895.6027221680 - 896.0914306641 - 896.6187133789 - 897.0946655273 - 897.5869140625 - 898.1101684570 - 898.5812377930 - 899.0886230469 - 899.5828857422 - 900.0651245117 - 900.5604858398 - 901.0576171875 - 901.5277099609 - 902.0197143555 - 902.5238037109 - 902.9789428711 - 903.4783325195 - 903.9460449219 - 904.4275512695 - 904.9228515625 - 905.3657836914 - 905.8613891602 - 906.3366699219 - 906.7952270508 - 907.2542724609 - 907.7345581055 - 908.2135009766 - 908.6373901367 - 909.1382446289 - 909.5676879883 - 910.0619506836 - 910.4684448242 - 910.9664306641 - 911.3779296875 - 911.8776855469 - 912.2777099609 - 912.7248535156 - 913.2120361328 - 913.6116943359 - 914.0454711914 - 914.5095214844 - 914.9455566406 - 915.3581542969 - 915.7814941406 - 916.2565917969 - 916.6312255859 - 917.0836791992 - 917.4999389648 - 917.9212646484 - 918.3314208984 - 918.7727050781 - 919.1420898438 - 919.6104125977 - 919.9876098633 - 920.3970336914 - 920.8093872070 - 921.2078857422 - 921.6162719727 - 922.0200805664 - 922.4212646484 - 922.7923583984 - 923.2324218750 - 923.6126098633 - 923.9703979492 - 924.3901977539 - 924.7797851562 - 925.1678466797 - 925.4905395508 - 925.9655761719 - 926.2893676758 - 926.6732788086 - 927.0499267578 - 927.4250488281 - 927.8209838867 - 928.1567382812 - 928.5159301758 - 928.9393310547 - 929.2761840820 - 929.6022338867 - 930.0111083984 - 930.3867187500 - 930.6898193359 - 931.0686035156 - 931.4614257812 - 931.7562866211 - 932.1487426758 - 932.4954833984 - 932.8209228516 - 933.2053833008 - 933.5259399414 - 933.8704833984 - 934.2339477539 - 934.5551757812 - 934.8986816406 - 935.2564697266 - 935.5593872070 - 935.9357299805 - 936.2520141602 - 936.5721435547 - 936.9207763672 - 937.2597045898 - 937.5721435547 - 937.8865966797 - 938.2568359375 - 938.5466308594 - 938.8800659180 - 939.2028808594 - 939.5374755859 - 939.8487548828 - 940.1541748047 - 940.4936523438 - 940.8044433594 - 941.1278686523 - 941.4199218750 - 941.7531127930 - 942.0751342773 - 942.3521118164 - 942.6774291992 - 943.0098876953 - 943.2805175781 - 943.6139526367 - 943.9079589844 - 944.2159423828 - 944.5172119141 - 944.8327636719 - 945.1003417969 - 945.4571533203 - 945.7078247070 - 946.0204467773 - 946.3306884766 - 946.6213378906 - 946.8916625977 - 947.2390747070 - 947.4885864258 - 947.7938842773 - 948.0898437500 - 948.3988037109 - 948.6411132812 - 948.9768066406 - 949.2534179688 - 949.5133056641 - 949.8453369141 - 950.0991821289 - 950.3833007812 - 950.7078857422 - 950.9409790039 - 951.2469482422 - 951.5249633789 - 951.8261718750 - 952.0718994141 - 952.3757324219 - 952.6456298828 - 952.9349365234 - 953.1954956055 - 953.4791259766 - 953.7526245117 - 954.0361938477 - 954.2982788086 - 954.5734863281 - 954.8573608398 - 955.1167602539 - 955.3958129883 - 955.6658935547 - 955.9176635742 - 956.2192993164 - 956.4718627930 - 956.7153930664 - 957.0163574219 - 957.2819824219 - 957.5224609375 - 957.7904052734 - 958.0848999023 - 958.3142700195 - 958.6041870117 - 958.8339843750 - 959.1201782227 - 959.3934326172 - 959.5982666016 - 959.9176635742 - 960.1377563477 - 960.4195556641 - 960.6586303711 - 960.9232177734 - 961.1786499023 - 961.4400634766 - 961.6958618164 - 961.9400634766 - 962.1878662109 - 962.4767456055 - 962.6812133789 - 962.9670410156 - 963.1948852539 - 963.4688720703 - 963.7094726562 - 963.9257202148 - 964.2321166992 - 964.4473876953 - 964.6641235352 - 964.9815063477 - 965.1672363281 - 965.4440917969 - 965.6702270508 - 965.9338989258 - 966.1648559570 - 966.4124755859 - 966.6284790039 - 966.9295654297 - 967.1135864258 - 967.3664550781 - 967.6349487305 - 967.8362426758 - 968.1210937500 - 968.3121948242 - 968.5711059570 - 968.8098144531 - 969.0595092773 - 969.2637329102 - 969.5100097656 - 969.7706298828 - 969.9788208008 - 970.2026367188 - 970.4630126953 - 970.6951293945 - 970.8986816406 - 971.1407470703 - 971.3818359375 - 971.6207275391 - 971.8087158203 - 972.0739746094 - 972.3002929688 - 972.5230102539 - 972.7374877930 - 972.9829711914 - 973.1857910156 - 973.4561767578 - 973.6281738281 - 973.8873291016 - 974.0841064453 - 974.3424682617 - 974.5368652344 - 974.7541503906 - 975.0140991211 - 975.2014770508 - 975.4180297852 - 975.6572875977 - 975.8903198242 - 976.0672607422 - 976.3198852539 - 976.5229492188 - 976.7484130859 - 976.9422607422 - 977.2074584961 - 977.3701171875 - 977.6009521484 - 977.8378295898 - 978.0172729492 - 978.2600708008 - 978.4541015625 - 978.6674194336 - 978.8888549805 - 979.0931396484 - 979.3045654297 - 979.5118408203 - 979.7338867188 - 979.9141845703 - 980.1547241211 - 980.3549194336 - 980.5491943359 - 980.7678222656 - 980.9808349609 - 981.1456909180 - 981.4146728516 - 981.5722045898 - 981.7991943359 - 981.9863281250 - 982.2013549805 - 982.3977661133 - 982.6044311523 - 982.8023681641 - 983.0094604492 - 983.2066650391 - 983.4015502930 - 983.5930175781 - 983.8156127930 - 983.9981079102 - 984.1951904297 - 984.3880615234 - 984.5839843750 - 984.8163452148 - 984.9511108398 - 985.1974487305 - 985.3719482422 - 985.5585327148 - 985.7736206055 - 985.9208374023 - 986.1810913086 - 986.3408203125 - 986.5006103516 - 986.7134399414 - 986.9542236328 - 987.0546875000 - 987.2973632812 - 987.4988403320 - 987.6634521484 - 987.8432006836 - 988.0462646484 - 988.2239990234 - 988.4198608398 - 988.5983886719 - 988.7824707031 - 988.9884033203 - 989.1444091797 - 989.3271484375 - 989.5344848633 - 989.7078857422 - 989.8632812500 - 990.0957031250 - 990.2389526367 - 990.4070434570 - 990.6257324219 - 990.7926635742 - 990.9451904297 - 991.1748046875 - 991.3006591797 - 991.5100097656 - 991.6588745117 - 991.8696289062 - 992.0216674805 - 992.2083129883 - 992.3792724609 - 992.5601806641 - 992.7211303711 - 992.8886718750 - 993.0943603516 - 993.2432250977 - 993.4156494141 - 993.5972290039 - 993.7838745117 - 993.9020385742 - 994.1226806641 - 994.2638549805 - 994.4326171875 - 994.6244506836 - 994.7807006836 - 994.9301147461 - 995.1394653320 - 995.2687988281 - 995.4357299805 - 995.6223754883 - 995.7575073242 - 995.9694213867 - 996.0898437500 - 996.2605590820 - 996.4593505859 - 996.5690307617 - 996.7568359375 - 996.9102172852 - 997.1080322266 - 997.1977539062 - 997.4339599609 - 997.5492553711 - 997.6981201172 - 997.8925781250 - 998.0236816406 - 998.1979980469 - 998.3513183594 - 998.5015258789 - 998.6870117188 - 998.8108520508 - 998.9601440430 - 999.1512451172 - 999.2723388672 - 999.4284667969 - 999.6059570312 - 999.7358398438 - 999.9166259766 - 1000.0358886719 - 1000.2109375000 - 1000.3687744141 - 1000.4933471680 - 1000.6519775391 - 1000.8033447266 - 1000.9461059570 - 1001.1276855469 - 1001.2248535156 - 1001.4132690430 - 1001.5405883789 - 1001.6942749023 - 1001.8355102539 - 1001.9559936523 - 1002.1691894531 - 1002.2601928711 - 1002.4181518555 - 1002.5699462891 - 1002.7026977539 - 1002.8563842773 - 1002.9853515625 - 1003.1110839844 - 1003.3035888672 - 1003.4343261719 - 1003.5214843750 - 1003.7172241211 - 1003.8643798828 - 1003.9781494141 - 1004.1125488281 - 1004.2732543945 - 1004.4095458984 - 1004.5657348633 - 1004.6355590820 - 1004.8175048828 - 1004.9781494141 - 1005.0653686523 - 1005.2133789062 - 1005.3713378906 - 1005.5061035156 - 1005.6188354492 - 1005.7575683594 - 1005.8839721680 - 1006.0375976562 - 1006.1516113281 - 1006.2901611328 - 1006.4154052734 - 1006.5618896484 - 1006.6691894531 - 1006.8117065430 - 1006.9196166992 - 1007.1036376953 - 1007.1845092773 - 1007.3286132812 - 1007.4594726562 - 1007.5978393555 - 1007.7294921875 - 1007.8193969727 - 1007.9857177734 - 1008.1275634766 - 1008.1938476562 - 1008.3767700195 - 1008.4752197266 - 1008.6127319336 - 1008.7399902344 - 1008.8403320312 - 1008.9985961914 - 1009.1111450195 - 1009.2210693359 - 1009.3408203125 - 1009.4807128906 - 1009.5770263672 - 1009.7028198242 - 1009.8355712891 - 1009.9365234375 - 1010.0499267578 - 1010.1738891602 - 1010.3062133789 - 1010.3768920898 - 1010.5420532227 - 1010.6082763672 - 1010.7769165039 - 1010.8529663086 - 1010.9893798828 - 1011.1001586914 - 1011.2371215820 - 1011.3328247070 - 1011.4472656250 - 1011.6071166992 - 1011.7147216797 - 1011.8186035156 - 1011.9485473633 - 1012.0975952148 - 1012.2252807617 - 1012.3267822266 - 1012.5036621094 - 1012.6056518555 - 1012.7729492188 - 1012.8936157227 - 1012.9774780273 - 1013.1865234375 - 1013.3276367188 - 1013.3790893555 - 1013.5497436523 - 1013.7397460938 - 1013.8128662109 - 1013.9191284180 - 1014.0806274414 - 1014.2421875000 - 1014.2891235352 - 1014.4187011719 - 1014.5607910156 - 1014.7102661133 - 1015.0631103516 - 1015.2326660156 - 1015.2905273438 - 1015.2741088867 - 1015.3875732422 - 1015.4360351562 - 1015.4539794922 - 1015.4907226562 - 1015.5689086914 - 1015.5861816406 - 1015.5679931641 - 1015.6806640625 - 1015.6907958984 - 1015.6743164062 - 1015.7434082031 - 1015.7911376953 - 1015.7875366211 - 1015.8538818359 - 1015.8549804688 - 1015.9017944336 - 1015.9595947266 - 1015.9602050781 - 1016.0260620117 - 1016.0818481445 - 1016.1494140625 - 1016.1600952148 - 1016.2268066406 - 1016.3055419922 - 1016.3350219727 - 1016.4046020508 - 1016.4604492188 - 1016.5365600586 - 1016.5620727539 - 1016.6606445312 - 1016.6892089844 - 1016.7856445312 - 1016.8340454102 - 1016.8919677734 - 1016.9518432617 - 1017.0314941406 - 1017.0786743164 - 1017.1270751953 - 1017.2079467773 - 1017.2430419922 - 1017.3098754883 - 1017.3675537109 - 1017.4323730469 - 1017.4536743164 - 1017.5292358398 - 1017.5667114258 - 1017.6118774414 - 1017.6906127930 - 1017.6783447266 - 1017.7874755859 - 1017.8147583008 - 1017.8360595703 - 1017.9099731445 - 1017.9575805664 - 1017.9821777344 - 1018.0499267578 - 1018.0545043945 - 1018.1586303711 - 1018.1494750977 - 1018.2149047852 - 1018.2407836914 - 1018.3192749023 - 1018.3331909180 - 1018.4034423828 - 1018.4250488281 - 1018.4834594727 - 1018.5090332031 - 1018.5551147461 - 1018.5915527344 - 1018.6569824219 - 1018.6874389648 - 1018.7124023438 - 1018.7330932617 - 1018.8060913086 - 1018.8402709961 - 1018.8170166016 - 1018.9212646484 - 1018.9495849609 - 1018.9805297852 - 1018.9854736328 - 1019.0323486328 - 1019.0836181641 - 1019.1121215820 - 1019.0844726562 - 1019.1721191406 - 1019.2095336914 - 1019.1898193359 - 1019.2366943359 - 1019.2719726562 - 1019.2961425781 - 1019.3430786133 - 1019.3488159180 - 1019.3719482422 - 1019.4515991211 - 1019.4065551758 - 1019.4511108398 - 1019.4829711914 - 1019.5110473633 - 1019.5416870117 - 1019.5270996094 - 1019.6114501953 - 1019.5913085938 - 1019.6119995117 - 1019.6350097656 - 1019.6576538086 - 1019.6879272461 - 1019.7062377930 - 1019.7077636719 - 1019.7507934570 - 1019.7315673828 - 1019.7842407227 - 1019.7664794922 - 1019.7760620117 - 1019.8325195312 - 1019.7963867188 - 1019.8352050781 - 1019.8656616211 - 1019.8573608398 - 1019.8686523438 - 1019.8862304688 - 1019.8789062500 - 1019.9116210938 - 1019.8831176758 - 1019.9144897461 - 1019.9470214844 - 1019.8991699219 - 1019.9662475586 - 1019.9368896484 - 1019.9481201172 - 1019.9234008789 - 1019.9904785156 - 1019.9476928711 - 1019.9550781250 - 1019.9876708984 - 1019.9600219727 - 1019.9678955078 - 1019.9587402344 - 1019.9573974609 - 1019.9940795898 - 1019.9489746094 - 1019.9669189453 - 1019.9693603516 - 1019.9528808594 - 1019.9325561523 - 1019.9669189453 - 1019.9067382812 - 1019.9556884766 - 1019.9346923828 - 1019.9129028320 - 1019.9085083008 - 1019.9193115234 - 1019.8725585938 - 1019.8751831055 - 1019.8715209961 - 1019.8584594727 - 1019.8500976562 - 1019.8272705078 - 1019.8319091797 - 1019.7883300781 - 1019.7969970703 - 1019.7509155273 - 1019.7888183594 - 1019.7219848633 - 1019.7351684570 - 1019.7175903320 - 1019.6658325195 - 1019.6626586914 - 1019.6735229492 - 1019.6079101562 - 1019.6168212891 - 1019.5902709961 - 1019.5493164062 - 1019.5380859375 - 1019.5194091797 - 1019.4937133789 - 1019.4644165039 - 1019.4352416992 - 1019.4118041992 - 1019.3734741211 - 1019.3500976562 - 1019.3151855469 - 1019.3157958984 - 1019.2744750977 - 1019.1886596680 - 1019.2377929688 - 1019.1579589844 - 1019.1055908203 - 1019.1037597656 - 1019.0989990234 - 1018.9975585938 - 1019.0086669922 - 1018.9401855469 - 1018.9201660156 - 1018.8945922852 - 1018.8193969727 - 1018.8278198242 - 1018.7459106445 - 1018.7167358398 - 1018.6744384766 - 1018.6301269531 - 1018.6077880859 - 1018.5413208008 - 1018.5004882812 - 1018.4544067383 - 1018.4213256836 - 1018.3664550781 - 1018.3210449219 - 1018.2631835938 - 1018.2244262695 - 1018.1684570312 - 1018.1161499023 - 1018.0642700195 - 1018.0474243164 - 1017.9319458008 - 1017.9141845703 - 1017.8652954102 - 1017.7875976562 - 1017.7517700195 - 1017.7054443359 - 1017.6055297852 - 1017.5793457031 - 1017.5114135742 - 1017.4522705078 - 1017.3938598633 - 1017.3401489258 - 1017.2647705078 - 1017.2051391602 - 1017.1577758789 - 1017.0723266602 - 1017.0338134766 - 1016.9476318359 - 1016.8688964844 - 1016.8464965820 - 1016.7472534180 - 1016.6838378906 - 1016.6119384766 - 1016.5592041016 - 1016.4555664062 - 1016.4202880859 - 1016.3418579102 - 1016.2484130859 - 1016.1706542969 - 1016.1379394531 - 1016.0199584961 - 1015.9571533203 - 1015.9002075195 - 1015.7872314453 - 1015.7424926758 - 1015.6223754883 - 1015.5991821289 - 1015.4767456055 - 1015.4136352539 - 1015.3156738281 - 1015.2435913086 - 1015.1689453125 - 1015.0899658203 - 1014.9577026367 - 1014.9195556641 - 1014.8336791992 - 1014.7213134766 - 1014.6300048828 - 1014.5687866211 - 1014.4844360352 - 1014.3568725586 - 1014.2835083008 - 1014.2177734375 - 1014.0929565430 - 1013.9939575195 - 1013.9306030273 - 1013.8270874023 - 1013.7206420898 - 1013.6087036133 - 1013.5592651367 - 1013.4189453125 - 1013.3495483398 - 1013.2278442383 - 1013.1116943359 - 1013.0733032227 - 1012.9063110352 - 1012.8372192383 - 1012.7244262695 - 1012.6298828125 - 1012.5246582031 - 1012.4140014648 - 1012.2892456055 - 1012.2460327148 - 1012.0614624023 - 1011.9866943359 - 1011.9071655273 - 1011.7474365234 - 1011.6651000977 - 1011.5573120117 - 1011.4318237305 - 1011.3396606445 - 1011.1842651367 - 1011.1254272461 - 1010.9766845703 - 1010.8591918945 - 1010.7559204102 - 1010.6423339844 - 1010.5131225586 - 1010.3926391602 - 1010.2767944336 - 1010.1589355469 - 1010.0289306641 - 1009.9404296875 - 1009.7514038086 - 1009.6953735352 - 1009.5512695312 - 1009.4034423828 - 1009.3179931641 - 1009.1557006836 - 1009.0686645508 - 1008.9036254883 - 1008.7844238281 - 1008.6690063477 - 1008.5432128906 - 1008.3825073242 - 1008.2791748047 - 1008.1526489258 - 1007.9943847656 - 1007.8786010742 - 1007.7481689453 - 1007.5945434570 - 1007.4815673828 - 1007.3355102539 - 1007.1960449219 - 1007.0608520508 - 1006.9278564453 - 1006.7805175781 - 1006.6460571289 - 1006.5067138672 - 1006.3684082031 - 1006.2286376953 - 1006.0701293945 - 1005.9425048828 - 1005.8014526367 - 1005.6489257812 - 1005.4842529297 - 1005.3853759766 - 1005.2022094727 - 1005.0582885742 - 1004.9426269531 - 1004.7393798828 - 1004.6302490234 - 1004.4885253906 - 1004.2915039062 - 1004.1856079102 - 1004.0201416016 - 1003.8676147461 - 1003.6882324219 - 1003.5934448242 - 1003.3766479492 - 1003.2546997070 - 1003.0991210938 - 1002.9286499023 - 1002.7689208984 - 1002.6473388672 - 1002.4415893555 - 1002.3052368164 - 1002.1502685547 - 1001.9771728516 - 1001.8109130859 - 1001.6781005859 - 1001.4740600586 - 1001.3497924805 - 1001.1661376953 - 1000.9848632812 - 1000.8565673828 - 1000.6715087891 - 1000.4945068359 - 1000.3499755859 - 1000.1678466797 - 1000.0070190430 - 999.8220825195 - 999.6594238281 - 999.5010375977 - 999.3152465820 - 999.1466674805 - 998.9650268555 - 998.8195800781 - 998.6106567383 - 998.4468994141 - 998.2835083008 - 998.1104736328 - 997.9060058594 - 997.7430419922 - 997.5974121094 - 997.3593750000 - 997.2261962891 - 997.0227661133 - 996.8417358398 - 996.6823730469 - 996.4702758789 - 996.3021850586 - 996.1329345703 - 995.9216308594 - 995.7482299805 - 995.5792846680 - 995.3509521484 - 995.2173461914 - 994.9918823242 - 994.7957763672 - 994.6444091797 - 994.4520263672 - 994.2122802734 - 994.0561523438 - 993.8994140625 - 993.6445312500 - 993.4652709961 - 993.3052978516 - 993.0906372070 - 992.8859863281 - 992.7015991211 - 992.4932861328 - 992.3471679688 - 992.0646972656 - 991.9268798828 - 991.7164306641 - 991.5188598633 - 991.2962646484 - 991.1130371094 - 990.9340820312 - 990.6820678711 - 990.5106811523 - 990.2990722656 - 990.0894165039 - 989.8848266602 - 989.6824340820 - 989.4722290039 - 989.2542724609 - 989.0935668945 - 988.8269042969 - 988.6510620117 - 988.4302368164 - 988.2280273438 - 988.0050659180 - 987.8095092773 - 987.5726318359 - 987.4003906250 - 987.1513671875 - 986.9426879883 - 986.7425537109 - 986.5323486328 - 986.2906494141 - 986.0765991211 - 985.8981323242 - 985.6480712891 - 985.4106445312 - 985.2577514648 - 984.9715576172 - 984.8029174805 - 984.5346679688 - 984.3598632812 - 984.1062622070 - 983.9116210938 - 983.6498413086 - 983.4671630859 - 983.2311401367 - 982.9936523438 - 982.7755737305 - 982.5694580078 - 982.3381958008 - 982.0870971680 - 981.8996582031 - 981.6567382812 - 981.4281005859 - 981.2089233398 - 980.9735107422 - 980.7724609375 - 980.5206909180 - 980.2954101562 - 980.0834960938 - 979.8469848633 - 979.6180419922 - 979.3975219727 - 979.1654663086 - 978.9364624023 - 978.7245483398 - 978.4679565430 - 978.2554931641 - 978.0446777344 - 977.7838745117 - 977.5816040039 - 977.3449707031 - 977.1182861328 - 976.8995361328 - 976.6556396484 - 976.4395751953 - 976.2279663086 - 975.9731445312 - 975.7643432617 - 975.5372924805 - 975.3193359375 - 975.0736083984 - 974.8814086914 - 974.6343383789 - 974.3966064453 - 974.2244262695 - 973.9478149414 - 973.7727050781 - 973.4985351562 - 973.3285522461 - 973.0961914062 - 972.8433227539 - 972.6563110352 - 972.4594116211 - 972.2061157227 - 971.9788208008 - 971.8114624023 - 971.5869750977 - 971.3204956055 - 971.1736450195 - 970.9432983398 - 970.7052001953 - 970.5430908203 - 970.2742919922 - 970.1434326172 - 969.8760375977 - 969.6837158203 - 969.5170288086 - 969.2618408203 - 969.1020507812 - 968.8845214844 - 968.6853027344 - 968.4900512695 - 968.2981567383 - 968.1035766602 - 967.9028320312 - 967.7199096680 - 967.5278930664 - 967.3293457031 - 967.1642456055 - 966.9381713867 - 966.7909545898 - 966.6018066406 - 966.3937988281 - 966.2423095703 - 966.0625610352 - 965.8711547852 - 965.7042846680 - 965.5283203125 - 965.3532714844 - 965.1933593750 - 965.0154418945 - 964.8366088867 - 964.7009887695 - 964.5191650391 - 964.3532714844 - 964.1948852539 - 964.0383911133 - 963.8953247070 - 963.6994018555 - 963.5744018555 - 963.4329833984 - 963.2578735352 - 963.1091918945 - 962.9752197266 - 962.8391113281 - 962.6585693359 - 962.5507812500 - 962.3900756836 - 962.2727661133 - 962.0996093750 - 962.0103759766 - 961.8156738281 - 961.7647094727 - 961.5507812500 - 961.4633789062 - 961.3477783203 - 961.1923217773 - 961.0698242188 - 960.9672851562 - 960.8338012695 - 960.7092285156 - 960.5892333984 - 960.4876708984 - 960.3533325195 - 960.2572631836 - 960.1174316406 - 960.0333862305 - 959.9166870117 - 959.7991943359 - 959.6799316406 - 959.6292114258 - 959.4647827148 - 959.3854980469 - 959.2844848633 - 959.1846923828 - 959.0772705078 - 958.9868774414 - 958.9050292969 - 958.7729492188 - 958.7280273438 - 958.6011962891 - 958.5158081055 - 958.4323120117 - 958.3348388672 - 958.2684936523 - 958.1287841797 - 958.1044921875 - 957.9813842773 - 957.9162597656 - 957.8067626953 - 957.7453613281 - 957.6774291992 - 957.5700073242 - 957.4730834961 - 957.4583129883 - 957.3419799805 - 957.2385864258 - 957.2108154297 - 957.1199951172 - 957.0386962891 - 956.9528198242 - 956.9136352539 - 956.8032226562 - 956.7711791992 - 956.6688842773 - 956.6068115234 - 956.5471801758 - 956.4819946289 - 956.3803100586 - 956.3518066406 - 956.2634277344 - 956.1929931641 - 956.1536254883 - 956.0311279297 - 956.0435791016 - 955.9306030273 - 955.8516845703 - 955.8272705078 - 955.7448730469 - 955.6777954102 - 955.6090698242 - 955.5636596680 - 955.4875488281 - 955.4322509766 - 955.3623046875 - 955.3151855469 - 955.2385253906 - 955.1791381836 - 955.1231079102 - 955.0527954102 - 955.0125732422 - 954.9313964844 - 954.8656616211 - 954.8350219727 - 954.7376098633 - 954.6928100586 - 954.6440429688 - 954.5462036133 - 954.5424804688 - 954.4313354492 - 954.3766479492 - 954.3474731445 - 954.2568969727 - 954.1911010742 - 954.1578979492 - 954.0827636719 - 954.0065917969 - 953.9588012695 - 953.9047851562 - 953.8026123047 - 953.8081054688 - 953.6730957031 - 953.6521606445 - 953.5834960938 - 953.5252685547 - 953.4262084961 - 953.4028930664 - 953.3367309570 - 953.2194213867 - 953.2160034180 - 953.1226196289 - 953.0512084961 - 953.0117187500 - 952.9089355469 - 952.8535766602 - 952.8105468750 - 952.7081298828 - 952.6533203125 - 952.5869750977 - 952.5259399414 - 952.4342651367 - 952.3851928711 - 952.2925415039 - 952.2438964844 - 952.1483154297 - 952.0878295898 - 952.0180053711 - 951.9515380859 - 951.8442382812 - 951.8019409180 - 951.7195434570 - 951.6286010742 - 951.5651245117 - 951.4981689453 - 951.3912353516 - 951.3341064453 - 951.2470092773 - 951.1721191406 - 951.0667724609 - 951.0284423828 - 950.9045410156 - 950.8663330078 - 950.7378540039 - 950.6721191406 - 950.6163940430 - 950.4559936523 - 950.4368896484 - 950.3287963867 - 950.2290649414 - 950.1612548828 - 950.0532226562 - 949.9684448242 - 949.8953247070 - 949.7941894531 - 949.6864013672 - 949.6048583984 - 949.5377807617 - 949.3842163086 - 949.3364868164 - 949.2260131836 - 949.1265258789 - 949.0335693359 - 948.9170532227 - 948.8500366211 - 948.7287597656 - 948.5945434570 - 948.5684204102 - 948.4054565430 - 948.3007202148 - 948.2348022461 - 948.1033325195 - 947.9940795898 - 947.9031982422 - 947.7565917969 - 947.7136230469 - 947.5422363281 - 947.4511108398 - 947.3512573242 - 947.2264404297 - 947.1450805664 - 946.9896850586 - 946.8803710938 - 946.7867431641 - 946.6718750000 - 946.5286865234 - 946.4078979492 - 946.3255615234 - 946.1828613281 - 946.0355834961 - 945.9602661133 - 945.8255004883 - 945.6787719727 - 945.5463867188 - 945.4631347656 - 945.3231811523 - 945.1458129883 - 945.0740966797 - 944.9357910156 - 944.7928466797 - 944.6552124023 - 944.5330810547 - 944.3917846680 - 944.2906494141 - 944.1016235352 - 944.0102539062 - 943.8352661133 - 943.7296142578 - 943.5864257812 - 943.4242553711 - 943.3273315430 - 943.1379394531 - 943.0109252930 - 942.8873291016 - 942.7385864258 - 942.5698852539 - 942.4505615234 - 942.2850341797 - 942.1320190430 - 942.0040283203 - 941.8569335938 - 941.6792602539 - 941.5340576172 - 941.3970947266 - 941.2327880859 - 941.0858764648 - 940.9213867188 - 940.7568359375 - 940.6174316406 - 940.4525146484 - 940.2885742188 - 940.1320190430 - 939.9741210938 - 939.7799682617 - 939.6694946289 - 939.4937744141 - 939.3022460938 - 939.1718139648 - 938.9835815430 - 938.7927246094 - 938.6768188477 - 938.4934082031 - 938.2927856445 - 938.1496582031 - 937.9742431641 - 937.7864379883 - 937.6278076172 - 937.4528808594 - 937.2870483398 - 937.0845947266 - 936.9152832031 - 936.7387084961 - 936.5778808594 - 936.3717651367 - 936.1953735352 - 936.0207519531 - 935.8118896484 - 935.6718139648 - 935.4630737305 - 935.2879028320 - 935.1010131836 - 934.8848266602 - 934.7379760742 - 934.5061645508 - 934.3704223633 - 934.1567993164 - 933.9368896484 - 933.7565307617 - 933.5998535156 - 933.3465576172 - 933.2002563477 - 933.0117187500 - 932.7791137695 - 932.6057739258 - 932.3739013672 - 932.2107543945 - 931.9889526367 - 931.8044433594 - 931.6127319336 - 931.3815307617 - 931.2044677734 - 930.9732666016 - 930.7751464844 - 930.5921020508 - 930.3529052734 - 930.1754760742 - 929.9492797852 - 929.7203369141 - 929.5311889648 - 929.3359985352 - 929.0916748047 - 928.9213867188 - 928.6578369141 - 928.4689941406 - 928.2396850586 - 928.0423583984 - 927.8184204102 - 927.6077880859 - 927.3862304688 - 927.1615600586 - 926.9441528320 - 926.7026367188 - 926.5198364258 - 926.2861938477 - 926.0532836914 - 925.8473510742 - 925.6329345703 - 925.3555297852 - 925.1823730469 - 924.9057006836 - 924.7145385742 - 924.4827270508 - 924.2573242188 - 924.0070190430 - 923.8148803711 - 923.5491943359 - 923.3175048828 - 923.0764770508 - 922.8687744141 - 922.6333007812 - 922.3897705078 - 922.1331787109 - 921.9506835938 - 921.6441040039 - 921.4362792969 - 921.1950683594 - 920.9834594727 - 920.7051391602 - 920.4817504883 - 920.2456054688 - 919.9643554688 - 919.7565307617 - 919.4974365234 - 919.2692871094 - 919.0136108398 - 918.7768554688 - 918.5349731445 - 918.2908935547 - 917.9931640625 - 917.8065185547 - 917.5080566406 - 917.2668457031 - 917.0578002930 - 916.7553100586 - 916.5444335938 - 916.2789916992 - 916.0298461914 - 915.7658691406 - 915.5214233398 - 915.2470092773 - 914.9817504883 - 914.7341308594 - 914.5247192383 - 914.1957397461 - 913.9641113281 - 913.7156372070 - 913.4357910156 - 913.1644897461 - 912.8936767578 - 912.6959838867 - 912.3872070312 - 912.1126708984 - 911.8853759766 - 911.5925292969 - 911.3209228516 - 911.0595092773 - 910.7760620117 - 910.5500488281 - 910.2813110352 - 909.9588623047 - 909.7471313477 - 909.4758300781 - 909.1985473633 - 908.9025878906 - 908.6651611328 - 908.4035034180 - 908.1194458008 - 907.7834472656 - 907.5807495117 - 907.2767944336 - 906.9885253906 - 906.7332153320 - 906.4538574219 - 906.1955566406 - 905.8881225586 - 905.6101684570 - 905.3275756836 - 905.0534057617 - 904.7598876953 - 904.5162963867 - 904.1796264648 - 903.9421997070 - 903.6125488281 - 903.3532714844 - 903.0528564453 - 902.8149414062 - 902.4635620117 - 902.2512817383 - 901.9122924805 - 901.6624145508 - 901.3680419922 - 901.0736694336 - 900.7918090820 - 900.5298461914 - 900.1881713867 - 899.9591674805 - 899.6415405273 - 899.3452758789 - 899.0808715820 - 898.7673950195 - 898.4966430664 - 898.1909790039 - 897.9048461914 - 897.5843505859 - 897.3075561523 - 896.9881591797 - 896.7014770508 - 896.4068603516 - 896.0834350586 - 895.7880859375 - 895.4815673828 - 895.1856689453 - 894.8662719727 - 894.5691528320 - 894.2516479492 - 893.9560546875 - 893.6761474609 - 893.3569335938 - 893.0430908203 - 892.7835083008 - 892.4694824219 - 892.1563720703 - 891.9078369141 - 891.6027832031 - 891.3293457031 - 890.9966430664 - 890.7855834961 - 890.4744262695 - 890.2254028320 - 889.9738159180 - 889.6798095703 - 889.4527587891 - 889.1741943359 - 888.8984985352 - 888.6427612305 - 888.4213256836 - 888.0923461914 - 887.8936767578 - 887.5873413086 - 887.3064575195 - 887.0737304688 - 886.8057250977 - 886.4682006836 - 886.1436767578 - 885.9986572266 - 885.6672973633 - 885.0709228516 - 883.7713012695 - 883.1928710938 - 882.7878417969 - 882.5155639648 - 882.2493286133 - 881.8129882812 - 881.4199218750 - 881.1266479492 - 880.8497314453 - 880.3929443359 - 880.0300292969 - 879.7546997070 - 879.4187011719 - 878.9665527344 - 878.6782836914 - 878.3359985352 - 877.9598999023 - 877.6351928711 - 877.2301635742 - 876.9332885742 - 876.5611572266 - 876.2207031250 - 875.8322143555 - 875.5172729492 - 875.1769409180 - 874.7986450195 - 874.4439086914 - 874.1149902344 - 873.7620849609 - 873.4119873047 - 873.0225219727 - 872.7427368164 - 872.3221435547 - 872.0327758789 - 871.6167602539 - 871.3200683594 - 870.9510498047 - 870.5870361328 - 870.2449340820 - 869.9029541016 - 869.5338134766 - 869.1796264648 - 868.8465576172 - 868.4788818359 - 868.1123046875 - 867.7804565430 - 867.4332885742 - 867.0428466797 - 866.7077636719 - 866.3653564453 - 865.9886474609 - 865.6540527344 - 865.2548828125 - 864.9499511719 - 864.5885009766 - 864.1802978516 - 863.8718261719 - 863.5045776367 - 863.1553344727 - 862.7615966797 - 862.4277954102 - 862.0963134766 - 861.6901245117 - 861.3524780273 - 860.9915771484 - 860.6371459961 - 860.2837524414 - 859.8993530273 - 859.5538940430 - 859.2122192383 - 858.8264770508 - 858.4735107422 - 858.1062622070 - 857.7576904297 - 857.4086303711 - 857.0135498047 - 856.6470336914 - 856.3462524414 - 855.9325561523 - 855.5505371094 - 855.2445068359 - 854.8494873047 - 854.4959106445 - 854.1226196289 - 853.7503662109 - 853.4188232422 - 853.0441894531 - 852.6375732422 - 852.3153076172 - 851.9651489258 - 851.5546264648 - 851.2027587891 - 850.8594970703 - 850.4749145508 - 850.1071777344 - 849.7526245117 - 849.3604736328 - 849.0419921875 - 848.6192016602 - 848.2822875977 - 847.9158935547 - 847.5263671875 - 847.1937255859 - 846.7850341797 - 846.4450073242 - 846.0596923828 - 845.7058105469 - 845.3287353516 - 844.9356079102 - 844.6091918945 - 844.2234497070 - 843.8231201172 - 843.4911499023 - 843.1062011719 - 842.7362670898 - 842.3571166992 - 841.9882202148 - 841.6330566406 - 841.2485961914 - 840.8544921875 - 840.5289306641 - 840.1181640625 - 839.7604980469 - 839.3867187500 - 839.0003051758 - 838.6554565430 - 838.2532958984 - 837.8697509766 - 837.5612792969 - 837.0905151367 - 836.7923583984 - 836.3827514648 - 836.0178833008 - 835.6246337891 - 835.2808837891 - 834.8879394531 - 834.4887084961 - 834.1688232422 - 833.7246704102 - 833.4060058594 - 832.9942626953 - 832.6161499023 - 832.2695312500 - 831.8558349609 - 831.4906005859 - 831.1315917969 - 830.7180786133 - 830.3624267578 - 829.9924926758 - 829.5745239258 - 829.2366943359 - 828.8416748047 - 828.4584350586 - 828.0714721680 - 827.7175903320 - 827.3147583008 - 826.9297485352 - 826.5684814453 - 826.1750488281 - 825.7969970703 - 825.4040527344 - 825.0515136719 - 824.6325683594 - 824.2811279297 - 823.8696289062 - 823.5294799805 - 823.1008911133 - 822.7349243164 - 822.3790283203 - 821.9537963867 - 821.5759277344 - 821.2344360352 - 820.7974853516 - 820.4306030273 - 820.0731201172 - 819.6582031250 - 819.2581787109 - 818.9291381836 - 818.4960937500 - 818.1184082031 - 817.7528686523 - 817.3399658203 - 816.9884033203 - 816.5592651367 - 816.1990356445 - 815.8233642578 - 815.4232788086 - 814.9907836914 - 814.6926879883 - 814.2565917969 - 813.8454589844 - 813.4844360352 - 813.1271972656 - 812.6765136719 - 812.3259887695 - 811.9320678711 - 811.5357666016 - 811.1744995117 - 810.7192993164 - 810.4003906250 - 809.9866333008 - 809.5813598633 - 809.2017211914 - 808.8150634766 - 808.4306640625 - 808.0177001953 - 807.6389160156 - 807.2595825195 - 806.8564453125 - 806.4620361328 - 806.0752563477 - 805.6862182617 - 805.2933959961 - 804.8818969727 - 804.5301513672 - 804.0863647461 - 803.7508544922 - 803.2998657227 - 802.9498291016 - 802.5334472656 - 802.1450195312 - 801.7529907227 - 801.3622436523 - 800.9548950195 - 800.5809936523 - 800.1705322266 - 799.7815551758 - 799.3824462891 - 798.9929199219 - 798.5949096680 - 798.1924438477 - 797.8174438477 - 797.3845214844 - 797.0299682617 - 796.6118164062 - 796.1968994141 - 795.8579711914 - 795.3933105469 - 795.0411376953 - 794.6288452148 - 794.2402954102 - 793.8107299805 - 793.4570312500 - 793.0369262695 - 792.6235351562 - 792.2396850586 - 791.8583374023 - 791.4322509766 - 791.0257568359 - 790.6638183594 - 790.2344970703 - 789.8491821289 - 789.4273681641 - 789.0684204102 - 788.6248168945 - 788.2516479492 - 787.8302001953 - 787.4430541992 - 787.0407104492 - 786.6364746094 - 786.2185058594 - 785.8442993164 - 785.4208374023 - 785.0294189453 - 784.6065063477 - 784.2288818359 - 783.8187866211 - 783.4054565430 - 782.9992065430 - 782.6176757812 - 782.1994018555 - 781.7778930664 - 781.4014282227 - 780.9789428711 - 780.5843505859 - 780.1520385742 - 779.7870483398 - 779.3350830078 - 778.9741210938 - 778.5340576172 - 778.1214599609 - 777.7563476562 - 777.3057861328 - 776.9107055664 - 776.5054931641 - 776.1129150391 - 775.6600952148 - 775.3003540039 - 774.8452148438 - 774.4826660156 - 774.0195922852 - 773.6314086914 - 773.2532348633 - 772.7797851562 - 772.4031982422 - 772.0065917969 - 771.5588378906 - 771.1697387695 - 770.7372436523 - 770.3544311523 - 769.9059448242 - 769.5064086914 - 769.0955810547 - 768.6724243164 - 768.2589111328 - 767.8467407227 - 767.4070434570 - 767.0279541016 - 766.5693969727 - 766.1920166016 - 765.7302246094 - 765.3429565430 - 764.9232788086 - 764.4794921875 - 764.0763549805 - 763.6441650391 - 763.2440795898 - 762.8054809570 - 762.3626098633 - 761.9774169922 - 761.5492553711 - 761.0899658203 - 760.6806640625 - 760.2837524414 - 759.8192138672 - 759.4080810547 - 758.9764404297 - 758.5574340820 - 758.1254882812 - 757.6841430664 - 757.2529907227 - 756.8463745117 - 756.3878173828 - 755.9723510742 - 755.5155029297 - 755.1175537109 - 754.6533203125 - 754.2355957031 - 753.7662353516 - 753.3859252930 - 752.8981933594 - 752.4799194336 - 752.0142211914 - 751.6221923828 - 751.1404418945 - 750.6962280273 - 750.2807617188 - 749.8109741211 - 749.3720092773 - 748.9412841797 - 748.4536743164 - 748.0507202148 - 747.5791015625 - 747.1198730469 - 746.6766967773 - 746.2415771484 - 745.7555541992 - 745.3113403320 - 744.8685302734 - 744.4015502930 - 743.9136352539 - 743.5142211914 - 742.9908447266 - 742.5731811523 - 742.0723266602 - 741.6298217773 - 741.1621704102 - 740.6788940430 - 740.2068481445 - 739.7648925781 - 739.2663574219 - 738.7803955078 - 738.3294677734 - 737.8563232422 - 737.3461914062 - 736.8848876953 - 736.4041137695 - 735.9229125977 - 735.4096069336 - 734.9422607422 - 734.4567260742 - 733.9558715820 - 733.4576416016 - 732.9534912109 - 732.4979858398 - 731.9481811523 - 731.4627075195 - 730.9807128906 - 730.4523925781 - 729.9456787109 - 729.4461059570 - 728.9301757812 - 728.4077758789 - 727.9049072266 - 727.3767089844 - 726.8492431641 - 726.3417358398 - 725.8119506836 - 725.2635498047 - 724.7716064453 - 724.1925048828 - 723.6956787109 - 723.1441040039 - 722.5712280273 - 722.0870971680 - 721.5092773438 - 720.9223632812 - 720.4449462891 - 719.8596191406 - 719.2664184570 - 718.7429809570 - 718.1964111328 - 717.5903930664 - 717.0242309570 - 716.4848632812 - 715.8844604492 - 715.3179931641 - 714.7197265625 - 714.1384887695 - 713.6061401367 - 712.9216308594 - 712.3807373047 - 711.7922973633 - 711.1831665039 - 710.5399780273 - 709.9829101562 - 709.3687744141 - 708.7207031250 - 708.1164550781 - 707.5006103516 - 706.8756103516 - 706.2334594727 - 705.6103515625 - 704.9666748047 - 704.3405151367 - 703.7074584961 - 703.0164794922 - 702.4223022461 - 701.7275390625 - 701.0772705078 - 700.4312133789 - 699.7586669922 - 699.0614624023 - 698.4506835938 - 697.7183837891 - 697.0477294922 - 696.3892211914 - 695.6920166016 - 694.9747314453 - 694.2878417969 - 693.6286010742 - 692.8705444336 - 692.1865234375 - 691.4906005859 - 690.7550048828 - 690.0545654297 - 689.2976684570 - 688.6177368164 - 687.8489990234 - 687.1447753906 - 686.3722534180 - 685.6625976562 - 684.9037475586 - 684.1440429688 - 683.4054565430 - 682.6511230469 - 681.8938598633 - 681.1184082031 - 680.3728637695 - 679.5866088867 - 678.8110351562 - 678.0540771484 - 677.2478637695 - 676.4943847656 - 675.7000732422 - 674.8961181641 - 674.1237792969 - 673.3245239258 - 672.5184936523 - 671.7296752930 - 670.9302978516 - 670.0968627930 - 669.3219604492 - 668.4909667969 - 667.6688842773 - 666.8814697266 - 666.0472412109 - 665.2191772461 - 664.4114379883 - 663.5718383789 - 662.7617187500 - 661.9087524414 - 661.0907592773 - 660.2929077148 - 659.3999633789 - 658.6059570312 - 657.7655029297 - 656.9152832031 - 656.0956420898 - 655.2430419922 - 654.4091796875 - 653.5548706055 - 652.7290039062 - 651.8853149414 - 651.0497436523 - 650.1614990234 - 649.3876953125 - 648.4844360352 - 647.6687622070 - 646.8102416992 - 645.9971923828 - 645.1477661133 - 644.2607421875 - 643.4683227539 - 642.6367187500 - 641.7255249023 - 640.9799804688 - 640.0781250000 - 639.2592163086 - 638.4454345703 - 637.5477294922 - 636.8004760742 - 635.9115600586 - 635.0874633789 - 634.3068847656 - 633.4124755859 - 632.6498413086 - 631.7999267578 - 630.9778442383 - 630.1930541992 - 629.3417358398 - 628.5552978516 - 627.7470703125 - 626.9345703125 - 626.1422729492 - 625.3214721680 - 624.5610351562 - 623.7172241211 - 622.9584960938 - 622.1856689453 - 621.3662109375 - 620.6046142578 - 619.8511962891 - 619.0428466797 - 618.2866821289 - 617.5274658203 - 616.7572021484 - 616.0087280273 - 615.2586669922 - 614.4859008789 - 613.7685546875 - 613.0274658203 - 612.2676391602 - 611.5507812500 - 610.8233642578 - 610.1032714844 - 609.3521728516 - 608.6603393555 - 607.9627075195 - 607.2288818359 - 606.5364379883 - 605.8454589844 - 605.1526489258 - 604.4444580078 - 603.7739868164 - 603.0922851562 - 602.4136962891 - 601.7352294922 - 601.0965576172 - 600.3790283203 - 599.7993164062 - 599.0631103516 - 598.4786376953 - 597.8100585938 - 597.1658935547 - 596.5397338867 - 595.9144287109 - 595.2683715820 - 594.6597900391 - 594.0481567383 - 593.4134521484 - 592.8275756836 - 592.2241210938 - 591.5886840820 - 591.0344848633 - 590.4410400391 - 589.8150634766 - 589.2581787109 - 588.7103271484 - 588.0749511719 - 587.5405883789 - 586.9692382812 - 586.4143676758 - 585.8367309570 - 585.2905883789 - 584.7608032227 - 584.1824951172 - 583.6719970703 - 583.0922851562 - 582.6002197266 - 582.0492553711 - 581.5063476562 - 581.0137939453 - 580.4715576172 - 579.9584350586 - 579.4411621094 - 578.9551391602 - 578.4064941406 - 577.9348754883 - 577.4319458008 - 576.9273681641 - 576.4155883789 - 575.9690551758 - 575.4493408203 - 574.9606933594 - 574.5084228516 - 573.9898681641 - 573.5590820312 - 573.0455322266 - 572.5911254883 - 572.1223144531 - 571.6796264648 - 571.1723022461 - 570.7492065430 - 570.2708740234 - 569.8481445312 - 569.3436279297 - 568.9356079102 - 568.4750976562 - 568.0208740234 - 567.6015625000 - 567.1060180664 - 566.7492065430 - 566.2550659180 - 565.8112792969 - 565.4239501953 - 564.9556884766 - 564.5377197266 - 564.1154785156 - 563.6740722656 - 563.2646484375 - 562.8440551758 - 562.4114379883 - 562.0025024414 - 561.5708618164 - 561.1720581055 - 560.7441406250 - 560.3232421875 - 559.9365234375 - 559.5172729492 - 559.0809326172 - 558.7102050781 - 558.2797241211 - 557.8843994141 - 557.4752197266 - 557.0507812500 - 556.7114868164 - 556.2426757812 - 555.8489379883 - 555.5020751953 - 555.0437011719 - 554.6728515625 - 554.2636108398 - 553.8952636719 - 553.4627075195 - 553.0771484375 - 552.7017822266 - 552.2707519531 - 551.9321899414 - 551.4704589844 - 551.1321411133 - 550.7285766602 - 550.3281860352 - 549.9298706055 - 549.5572509766 - 549.1766357422 - 548.7322387695 - 548.3952026367 - 547.9945068359 - 547.5983886719 - 547.2117309570 - 546.8169555664 - 546.4241943359 - 546.0783691406 - 545.6163940430 - 545.2843017578 - 544.8759765625 - 544.5103759766 - 544.0770874023 - 543.7390747070 - 543.3099365234 - 542.9598388672 - 542.5261840820 - 542.1691894531 - 541.7839355469 - 541.3958740234 - 540.9675292969 - 540.6221923828 - 540.2225341797 - 539.8277587891 - 539.4261474609 - 539.0686645508 - 538.6569824219 - 538.2664184570 - 537.8640136719 - 537.5056152344 - 537.0720825195 - 536.7172851562 - 536.2927856445 - 535.9427490234 - 535.5114135742 - 535.1222534180 - 534.7610473633 - 534.3043212891 - 533.9550781250 - 533.5648803711 - 533.1262207031 - 532.7806396484 - 532.3461914062 - 531.9575195312 - 531.5812988281 - 531.1663208008 - 530.7525634766 - 530.3767089844 - 529.9826049805 - 529.5367431641 - 529.1756591797 - 528.7742919922 - 528.3439331055 - 527.9573974609 - 527.5581665039 - 527.1456909180 - 526.7401123047 - 526.3125610352 - 525.9545898438 - 525.5126342773 - 525.0708007812 - 524.7406005859 - 524.2706909180 - 523.8681030273 - 523.4774780273 - 523.0310668945 - 522.6625976562 - 522.2092895508 - 521.8131103516 - 521.3875732422 - 520.9901123047 - 520.5772705078 - 520.1420288086 - 519.7114257812 - 519.3251342773 - 518.8949584961 - 518.4657592773 - 518.0299072266 - 517.6398925781 - 517.2071533203 - 516.7519531250 - 516.3731689453 - 515.9294433594 - 515.4953613281 - 515.0452880859 - 514.6728515625 - 514.2137451172 - 513.7471923828 - 513.3692016602 - 512.9258422852 - 512.4780883789 - 512.0476074219 - 511.6099243164 - 511.1852722168 - 510.7556457520 - 510.2866821289 - 509.8840332031 - 509.4121093750 - 508.9877624512 - 508.5685729980 - 508.0961608887 - 507.6840209961 - 507.1988525391 - 506.7824401855 - 506.3488769531 - 505.8824157715 - 505.4400024414 - 504.9999084473 - 504.5368347168 - 504.0704956055 - 503.6755676270 - 503.1789550781 - 502.7372436523 - 502.2781677246 - 501.8263549805 - 501.3886413574 - 500.9147033691 - 500.4621887207 - 499.9902038574 - 499.5495605469 - 499.0861206055 - 498.6171264648 - 498.1636352539 - 497.6935729980 - 497.2082519531 - 496.7940063477 - 496.3173217773 - 495.8220214844 - 495.3985595703 - 494.8897705078 - 494.4248962402 - 493.9736328125 - 493.5275878906 - 492.9851684570 - 492.5733947754 - 492.0827941895 - 491.5910644531 - 491.1351318359 - 490.6621398926 - 490.1941833496 - 489.6788940430 - 489.2178955078 - 488.7489013672 - 488.2734985352 - 487.7671508789 - 487.2929382324 - 486.8254699707 - 486.3012695312 - 485.8485107422 - 485.3856506348 - 484.8642883301 - 484.3961486816 - 483.8695678711 - 483.4237060547 - 482.9122009277 - 482.4387512207 - 481.9430847168 - 481.4374694824 - 480.9413146973 - 480.4543457031 - 479.9555358887 - 479.4830017090 - 478.9851684570 - 478.4549560547 - 478.0027160645 - 477.4353332520 - 477.0008850098 - 476.4563293457 - 475.9880065918 - 475.5027160645 - 474.9333190918 - 474.4991149902 - 473.9531860352 - 473.4339904785 - 472.9729919434 - 472.4414978027 - 471.9303283691 - 471.4318237305 - 470.9040222168 - 470.3878173828 - 469.9140930176 - 469.3771667480 - 468.8802795410 - 468.3397827148 - 467.8338928223 - 467.3245239258 - 466.8035583496 - 466.2996520996 - 465.7821350098 - 465.2625427246 - 464.7287902832 - 464.2259216309 - 463.6788940430 - 463.1858215332 - 462.6696472168 - 462.1312255859 - 461.6257019043 - 461.1022949219 - 460.5483093262 - 460.0554504395 - 459.4793701172 - 459.0102539062 - 458.4541015625 - 457.9436035156 - 457.4006652832 - 456.8894348145 - 456.3424987793 - 455.8114929199 - 455.2457275391 - 454.7841796875 - 454.2021484375 - 453.6992492676 - 453.1252441406 - 452.6392517090 - 452.0478210449 - 451.5330810547 - 451.0007324219 - 450.4701843262 - 449.9430236816 - 449.3559570312 - 448.8694152832 - 448.2784118652 - 447.7571105957 - 447.2188415527 - 446.6861267090 - 446.1309509277 - 445.6090087891 - 445.0432128906 - 444.5355529785 - 443.9183349609 - 443.4339294434 - 442.8433227539 - 442.3080444336 - 441.8023071289 - 441.1967773438 - 440.6845703125 - 440.1483459473 - 439.5816040039 - 439.0086059570 - 438.4998474121 - 437.9098205566 - 437.3416442871 - 436.8096008301 - 436.2987976074 - 435.6845703125 - 435.1322631836 - 434.6144104004 - 434.0208129883 - 433.4533081055 - 432.9069519043 - 432.3831481934 - 431.8067932129 - 431.2174682617 - 430.7082824707 - 430.1152343750 - 429.5343933105 - 428.9944763184 - 428.4234924316 - 427.8759155273 - 427.3227844238 - 426.7285156250 - 426.1997985840 - 425.6266479492 - 425.0770874023 - 424.4775390625 - 423.9435119629 - 423.3958435059 - 422.7935485840 - 422.1955261230 - 421.6944885254 - 421.0564270020 - 420.5161437988 - 419.9667053223 - 419.3698730469 - 418.8288269043 - 418.2332153320 - 417.6575012207 - 417.0864868164 - 416.5020751953 - 415.9268493652 - 415.4055175781 - 414.7511596680 - 414.2311096191 - 413.6059570312 - 413.0561828613 - 412.4760131836 - 411.9180908203 - 411.2844848633 - 410.8069152832 - 410.1430969238 - 409.6120300293 - 409.0177612305 - 408.4652404785 - 407.8560485840 - 407.3025207520 - 406.6987304688 - 406.1558227539 - 405.5583801270 - 404.9553527832 - 404.4125976562 - 403.8195190430 - 403.2351989746 - 402.6424255371 - 402.0826110840 - 401.4594116211 - 400.8846740723 - 400.2860717773 - 399.7097473145 - 399.1139221191 - 398.5044250488 - 397.9269104004 - 397.3212280273 - 396.7239990234 - 396.1512145996 - 395.5190734863 - 394.9537963867 - 394.3206176758 - 393.8045043945 - 393.1663208008 - 392.5620727539 - 392.0172424316 - 391.4279479980 - 390.8212890625 - 390.2711181641 - 389.6837463379 - 389.1499938965 - 388.4974365234 - 388.0163574219 - 387.3996276855 - 386.9068908691 - 386.3341979980 - 385.7702941895 - 385.2461853027 - 384.6874694824 - 384.1705017090 - 383.5597839355 - 383.0702209473 - 382.5019226074 - 382.0189819336 - 381.3477783203 - 380.8326721191 - 380.3608398438 - 379.7782287598 - 379.0857543945 - 378.5289916992 - 378.1713867188 - 377.5082397461 - 376.4217834473 - 374.0263977051 - 372.9474792480 - 372.2530822754 - 371.8414916992 - 371.3093566895 - 370.5751953125 - 369.9394531250 - 369.4418945312 - 368.9284973145 - 368.1933593750 - 367.6408691406 - 367.0952758789 - 366.5571594238 - 365.8629760742 - 365.3406677246 - 364.7550048828 - 364.1677856445 - 363.5906372070 - 362.9529113770 - 362.4399108887 - 361.7972717285 - 361.2614440918 - 360.5849914551 - 360.0336608887 - 359.4314575195 - 358.8261413574 - 358.2019348145 - 357.6061401367 - 357.0216979980 - 356.4020996094 - 355.7341918945 - 355.2181396484 - 354.5318603516 - 353.9786071777 - 353.2958679199 - 352.7327270508 - 352.1044311523 - 351.4743957520 - 350.8771057129 - 350.2597656250 - 349.6323242188 - 349.0273742676 - 348.4229736328 - 347.8096618652 - 347.1668090820 - 346.5877075195 - 345.9772644043 - 345.3422546387 - 344.7400512695 - 344.1641845703 - 343.5268859863 - 342.9221801758 - 342.3071289062 - 341.7191467285 - 341.1232604980 - 340.4605407715 - 339.9019775391 - 339.2766723633 - 338.7035522461 - 338.0163879395 - 337.4872436523 - 336.8623046875 - 336.2330932617 - 335.6371154785 - 335.0442199707 - 334.4084472656 - 333.8392639160 - 333.1645507812 - 332.6000671387 - 332.0043334961 - 331.3725280762 - 330.7717895508 - 330.1582031250 - 329.5450439453 - 328.9656066895 - 328.3195190430 - 327.7229003906 - 327.1774597168 - 326.4926757812 - 325.9158020020 - 325.3303527832 - 324.6808776855 - 324.0944213867 - 323.5026855469 - 322.8706970215 - 322.2981262207 - 321.6809997559 - 321.0698547363 - 320.4756774902 - 319.8879089355 - 319.2619934082 - 318.6618347168 - 318.0872497559 - 317.4585266113 - 316.8337097168 - 316.2706604004 - 315.6315002441 - 315.0508728027 - 314.4315490723 - 313.8571472168 - 313.2492675781 - 312.6091308594 - 312.0555725098 - 311.4283447266 - 310.8092956543 - 310.2237854004 - 309.6467590332 - 309.0310668945 - 308.3908386230 - 307.8472900391 - 307.2226562500 - 306.5916442871 - 306.0272827148 - 305.4411315918 - 304.8071289062 - 304.2290649414 - 303.6396484375 - 303.0251464844 - 302.4566345215 - 301.7987670898 - 301.2564086914 - 300.6190795898 - 300.0456848145 - 299.4402770996 - 298.8403015137 - 298.2657775879 - 297.6620788574 - 297.0278320312 - 296.5105590820 - 295.8184204102 - 295.2828979492 - 294.6682434082 - 294.0835266113 - 293.4902954102 - 292.8829345703 - 292.3077697754 - 291.6733398438 - 291.1378479004 - 290.4673461914 - 289.9585571289 - 289.3203430176 - 288.7273559570 - 288.1460571289 - 287.5407714844 - 286.9491271973 - 286.3820190430 - 285.7487792969 - 285.2097778320 - 284.5940856934 - 283.9975585938 - 283.4177246094 - 282.8177490234 - 282.2371215820 - 281.6332702637 - 281.0660400391 - 280.4795532227 - 279.8715209961 - 279.3078002930 - 278.7024536133 - 278.1165466309 - 277.5216674805 - 276.9631347656 - 276.3480529785 - 275.7869262695 - 275.1865234375 - 274.6135864258 - 274.0070800781 - 273.4186401367 - 272.8767395020 - 272.2603454590 - 271.6695251465 - 271.1219177246 - 270.5006103516 - 269.9149780273 - 269.3800048828 - 268.7687988281 - 268.1512451172 - 267.6526184082 - 266.9975280762 - 266.4333496094 - 265.8882751465 - 265.2626953125 - 264.7481994629 - 264.0972290039 - 263.5656738281 - 262.9747314453 - 262.3873596191 - 261.7931823730 - 261.2753295898 - 260.6699218750 - 260.0757446289 - 259.5103454590 - 258.9537963867 - 258.3465881348 - 257.7846984863 - 257.2340393066 - 256.6310119629 - 256.0888977051 - 255.4486389160 - 254.9391632080 - 254.3704071045 - 253.7627563477 - 253.2084045410 - 252.6449127197 - 252.0628662109 - 251.4806365967 - 250.9257049561 - 250.3756256104 - 249.7751770020 - 249.2102813721 - 248.6473999023 - 248.0935668945 - 247.5151824951 - 246.9243621826 - 246.4239807129 - 245.7784423828 - 245.2678375244 - 244.6743927002 - 244.1419982910 - 243.5363006592 - 243.0033721924 - 242.4229583740 - 241.8551635742 - 241.3151702881 - 240.7536315918 - 240.1763000488 - 239.6241607666 - 239.0552978516 - 238.4966430664 - 237.9462738037 - 237.3732604980 - 236.8314208984 - 236.2362365723 - 235.7178497314 - 235.1467285156 - 234.5730438232 - 234.0629425049 - 233.4317321777 - 232.9416351318 - 232.3654174805 - 231.8077697754 - 231.2359161377 - 230.7151336670 - 230.1335296631 - 229.5770416260 - 229.0517120361 - 228.4850769043 - 227.9332580566 - 227.3572998047 - 226.8450927734 - 226.2835388184 - 225.7223052979 - 225.1793212891 - 224.6382751465 - 224.0634307861 - 223.5405120850 - 222.9757232666 - 222.4394226074 - 221.8816528320 - 221.3253631592 - 220.8005371094 - 220.2505035400 - 219.6711120605 - 219.1681518555 - 218.5947570801 - 218.0626220703 - 217.5019989014 - 216.9797973633 - 216.4144897461 - 215.8807220459 - 215.3481597900 - 214.7847595215 - 214.2564544678 - 213.6957397461 - 213.1819000244 - 212.6142578125 - 212.0901184082 - 211.5200195312 - 211.0222167969 - 210.4525756836 - 209.9201202393 - 209.3843994141 - 208.8430786133 - 208.2910919189 - 207.7671051025 - 207.2443695068 - 206.6380310059 - 206.1833648682 - 205.5930633545 - 205.0663146973 - 204.5227508545 - 203.9874877930 - 203.4729309082 - 202.8883056641 - 202.3785095215 - 201.8631744385 - 201.2850952148 - 200.7654266357 - 200.2411346436 - 199.6979980469 - 199.1421203613 - 198.6313018799 - 198.0890502930 - 197.5372467041 - 197.0167083740 - 196.4891815186 - 195.9139709473 - 195.4363098145 - 194.8455352783 - 194.3412475586 - 193.8039398193 - 193.2509613037 - 192.7353668213 - 192.1856231689 - 191.6378936768 - 191.1205139160 - 190.5790252686 - 190.0545349121 - 189.4777984619 - 188.9878540039 - 188.4406890869 - 187.8793640137 - 187.3394775391 - 186.8419799805 - 186.2702484131 - 185.7395172119 - 185.1916351318 - 184.6864624023 - 184.1205444336 - 183.5733795166 - 183.0350494385 - 182.5308837891 - 181.9432525635 - 181.4377136230 - 180.8538208008 - 180.3678283691 - 179.7765350342 - 179.2595825195 - 178.6804809570 - 178.2103881836 - 177.5846710205 - 177.0798492432 - 176.5130310059 - 175.9956359863 - 175.4212036133 - 174.8668212891 - 174.3293762207 - 173.7944335938 - 173.2135009766 - 172.6782989502 - 172.1087799072 - 171.5816497803 - 171.0059204102 - 170.4365386963 - 169.9190521240 - 169.3299102783 - 168.7827758789 - 168.2068634033 - 167.6664581299 - 167.1030578613 - 166.4958801270 - 165.9898223877 - 165.3728332520 - 164.8525543213 - 164.2201843262 - 163.6978607178 - 163.1289672852 - 162.5022125244 - 161.9642639160 - 161.3936004639 - 160.7938232422 - 160.2113647461 - 159.6308898926 - 159.0726623535 - 158.4476776123 - 157.8671417236 - 157.2933807373 - 156.6981811523 - 156.0761566162 - 155.5043182373 - 154.8990631104 - 154.2979583740 - 153.6834411621 - 153.0725555420 - 152.5023345947 - 151.8467407227 - 151.2476043701 - 150.6537628174 - 149.9962615967 - 149.4045104980 - 148.7819976807 - 148.1170043945 - 147.5331878662 - 146.8764495850 - 146.2496490479 - 145.6013488770 - 144.9630432129 - 144.3423767090 - 143.6485290527 - 143.0446472168 - 142.3459930420 - 141.7383575439 - 141.0403289795 - 140.3682556152 - 139.7409057617 - 139.0581054688 - 138.3318786621 - 137.7330169678 - 137.0045471191 - 136.3124542236 - 135.6456756592 - 134.9433288574 - 134.2458343506 - 133.5350799561 - 132.8472442627 - 132.1184997559 - 131.4326324463 - 130.6765899658 - 129.9716949463 - 129.2805175781 - 128.4873657227 - 127.7747955322 - 127.0609588623 - 126.3010940552 - 125.5125122070 - 124.8204727173 - 124.0340805054 - 123.2675399780 - 122.4887924194 - 121.7324905396 - 120.9595794678 - 120.1551513672 - 119.3780822754 - 118.5766983032 - 117.8103408813 - 116.9761123657 - 116.1565170288 - 115.3982391357 - 114.5272445679 - 113.7075347900 - 112.9151077271 - 112.0533828735 - 111.1950073242 - 110.4068984985 - 109.5045623779 - 108.6591949463 - 107.8242034912 - 106.9391555786 - 106.0530242920 - 105.1871490479 - 104.3293533325 - 103.3882446289 - 102.5506286621 - 101.6099090576 - 100.7397842407 - 99.8075942993 - 98.8857650757 - 97.9921646118 - 97.0372390747 - 96.1249160767 - 95.1724090576 - 94.2398147583 - 93.2827682495 - 92.3263168335 - 91.3836669922 - 90.4040145874 - 89.4453201294 - 88.4772796631 - 87.4932174683 - 86.5002593994 - 85.5100479126 - 84.5393447876 - 83.5077362061 - 82.5241851807 - 81.5273742676 - 80.4894027710 - 79.4871368408 - 78.4675750732 - 77.4293518066 - 76.4101333618 - 75.3856430054 - 74.3049621582 - 73.2991027832 - 72.2491455078 - 71.1693572998 - 70.1425399780 - 69.0923767090 - 67.9931259155 - 66.9599227905 - 65.8673248291 - 64.8127212524 - 63.7158660889 - 62.6458320618 - 61.6034469604 - 60.4546966553 - 59.4157943726 - 58.3217468262 - 57.2034072876 - 56.1607666016 - 55.0130653381 - 53.9495086670 - 52.8445739746 - 51.7184906006 - 50.6690025330 - 49.5308761597 - 48.4088592529 - 47.3627281189 - 46.1751403809 - 45.1460037231 - 43.9834976196 - 42.9022979736 - 41.8206863403 - 40.6537361145 - 39.5756912231 - 38.4933013916 - 37.3274307251 - 36.3027076721 - 35.1154327393 - 34.0663528442 - 32.9490966797 - 31.8070526123 - 30.7636260986 - 29.6335792542 - 28.5304565430 - 27.4702377319 - 26.3199424744 - 25.2809906006 - 24.1626281738 - 23.0697097778 - 22.0313758850 - 20.8855209351 - 19.8437500000 - 18.7743148804 - 17.6800117493 - 16.6266136169 - 15.5352134705 - 14.5051651001 - 13.4047698975 - 12.3594055176 - 11.3334732056 - 10.2538528442 - 9.2083816528 - 8.2039566040 - 7.1249008179 - 6.1031494141 - 5.0857467651 - 4.0498199463 - 3.0335464478 - 2.0326919556 - 0.9967041016 - 0.0048294067 - -0.9778823853 - -2.0066452026 - -2.9747085571 - -3.9617691040 - -4.9505310059 - -5.9350509644 - -6.8975830078 - -7.8525695801 - -8.8309249878 - -9.7707290649 - -10.7228317261 - -11.6755371094 - -12.6080245972 - -13.5538635254 - -14.4647598267 - -15.4141006470 - -16.3074035645 - -17.2216567993 - -18.1550140381 - -19.0152053833 - -19.9586029053 - -20.7898101807 - -21.7251739502 - -22.5819168091 - -23.4439697266 - -24.3241195679 - -25.2059936523 - -26.0378265381 - -26.8795089722 - -27.7755126953 - -28.5618133545 - -29.4143447876 - -30.2736892700 - -31.0601348877 - -31.8764190674 - -32.7429275513 - -33.4988861084 - -34.3093338013 - -35.1436767578 - -35.9040985107 - -36.7008361816 - -37.4735488892 - -38.2739257812 - -39.0416793823 - -39.7925109863 - -40.5695724487 - -41.3273544312 - -42.1115570068 - -42.7994384766 - -43.5819931030 - -44.3376693726 - -45.0455474854 - -45.7581558228 - -46.5404129028 - -47.2304687500 - -47.9293518066 - -48.6821975708 - -49.3619766235 - -50.0846099854 - -50.7701416016 - -51.4774169922 - -52.1646499634 - -52.8653106689 - -53.5298843384 - -54.2130355835 - -54.9371948242 - -55.5329895020 - -56.2545318604 - -56.9295272827 - -57.5557327271 - -58.2195053101 - -58.9146270752 - -59.5176467896 - -60.2099609375 - -60.8094253540 - -61.5003967285 - -62.1133117676 - -62.7485961914 - -63.3921127319 - -64.0121154785 - -64.6682815552 - -65.2414169312 - -65.9050445557 - -66.5239868164 - -67.1081390381 - -67.7618713379 - -68.3517074585 - -68.9467315674 - -69.5952148438 - -70.1627120972 - -70.7682113647 - -71.3786010742 - -71.9738769531 - -72.5755081177 - -73.1428909302 - -73.7593688965 - -74.3507843018 - -74.9185714722 - -75.4964904785 - -76.1166763306 - -76.6684570312 - -77.2475662231 - -77.8243026733 - -78.4183578491 - -78.9878921509 - -79.5172958374 - -80.1431503296 - -80.7072219849 - -81.2235488892 - -81.8531265259 - -82.3702926636 - -82.9800643921 - -83.4841003418 - -84.0876998901 - -84.6460266113 - -85.1821594238 - -85.7572250366 - -86.2950134277 - -86.8857574463 - -87.3964233398 - -87.9622421265 - -88.5335311890 - -89.0604934692 - -89.6225433350 - -90.1545104980 - -90.7358245850 - -91.2622299194 - -91.7987670898 - -92.3499145508 - -92.9183044434 - -93.4359664917 - -93.9982147217 - -94.4983444214 - -95.1223602295 - -95.5892791748 - -96.1645736694 - -96.6782608032 - -97.2676391602 - -97.7497634888 - -98.3316879272 - -98.8330612183 - -99.4191436768 - -99.9200820923 - -100.4556274414 - -100.9992370605 - -101.5649642944 - -102.0655517578 - -102.6113433838 - -103.1410217285 - -103.7087707520 - -104.2037353516 - -104.7437210083 - -105.3006057739 - -105.8462219238 - -106.3343734741 - -106.9105834961 - -107.4296875000 - -107.9728012085 - -108.4848098755 - -109.0345535278 - -109.5806884766 - -110.0924148560 - -110.6499481201 - -111.1799316406 - -111.6850891113 - -112.2746276855 - -112.7501907349 - -113.3250961304 - -113.8510437012 - -114.3692321777 - -114.9204483032 - -115.4628448486 - -115.9721755981 - -116.5247497559 - -117.0718231201 - -117.5915527344 - -118.1118850708 - -118.6888198853 - -119.2035980225 - -119.7148590088 - -120.2955627441 - -120.8118972778 - -121.3497314453 - -121.8865127563 - -122.4182739258 - -123.0078277588 - -123.4605712891 - -124.0680923462 - -124.5915145874 - -125.1145629883 - -125.6697540283 - -126.2057647705 - -126.7470550537 - -127.2784729004 - -127.8472442627 - -128.3474121094 - -128.9150085449 - -129.4435577393 - -130.0112304688 - -130.5245361328 - -131.0857086182 - -131.6173706055 - -132.1817016602 - -132.7123718262 - -133.2495117188 - -133.8178863525 - -134.3379516602 - -134.9006652832 - -135.4363098145 - -136.0114593506 - -136.5133056641 - -137.0949096680 - -137.6509399414 - -138.1732025146 - -138.7319488525 - -139.2927246094 - -139.8318176270 - -140.3975830078 - -140.9237670898 - -141.4978027344 - -142.0458679199 - -142.5876159668 - -143.1542358398 - -143.7154998779 - -144.2313842773 - -144.8115081787 - -145.3624267578 - -145.9358215332 - -146.4632568359 - -147.0209655762 - -147.6056213379 - -148.1320190430 - -148.7045440674 - -149.2669067383 - -149.8466796875 - -150.3394470215 - -150.9727172852 - -151.4894561768 - -152.0658721924 - -152.6392211914 - -153.1629028320 - -153.7606048584 - -154.3075561523 - -154.8849792480 - -155.4381256104 - -156.0014648438 - -156.5747528076 - -157.1310119629 - -157.7121124268 - -158.2808074951 - -158.8212890625 - -159.3945922852 - -159.9816284180 - -160.5167846680 - -161.1283569336 - -161.6681213379 - -162.2615509033 - -162.7792510986 - -163.4310455322 - -163.9353179932 - -164.5311279297 - -165.1159362793 - -165.6739807129 - -166.2424316406 - -166.8120727539 - -167.4197235107 - -167.9749450684 - -168.5356445312 - -169.1219024658 - -169.7116546631 - -170.2807769775 - -170.8407897949 - -171.4559478760 - -172.0272369385 - -172.5460052490 - -173.1904296875 - -173.7394714355 - -174.3507843018 - -174.9048156738 - -175.4769287109 - -176.0856323242 - -176.6511383057 - -177.2256927490 - -177.8253021240 - -178.4339752197 - -178.9646301270 - -179.5613555908 - -180.1549530029 - -180.7557067871 - -181.2931671143 - -181.9530792236 - -182.4727935791 - -183.1068572998 - -183.6585388184 - -184.2296447754 - -184.8934326172 - -185.3986968994 - -186.0256195068 - -186.6435089111 - -187.1849975586 - -187.7811889648 - -188.4073028564 - -188.9649200439 - -189.5654449463 - -190.1875610352 - -190.7369537354 - -191.3363647461 - -191.9472808838 - -192.5330810547 - -193.1394348145 - -193.7106933594 - -194.3322753906 - -194.9005279541 - -195.5033111572 - -196.0982513428 - -196.7126159668 - -197.2854919434 - -197.9038238525 - -198.4960327148 - -199.0736846924 - -199.6871490479 - -200.2757110596 - -200.8838806152 - -201.4774475098 - -202.0787963867 - -202.7077178955 - -203.2539978027 - -203.8962860107 - -204.4730834961 - -205.0761413574 - -205.6876831055 - -206.2817993164 - -206.8846588135 - -207.5327758789 - -208.0504608154 - -208.7299041748 - -209.2769317627 - -209.9226074219 - -210.5037384033 - -211.1268310547 - -211.7279357910 - -212.3235168457 - -212.9458923340 - -213.4960327148 - -214.1955718994 - -214.7242279053 - -215.3717193604 - -215.9831085205 - -216.5700378418 - -217.1793518066 - -217.7962799072 - -218.3801269531 - -219.0274505615 - -219.5813446045 - -220.2536926270 - -220.8284912109 - -221.4580535889 - -222.0580596924 - -222.6442108154 - -223.2933807373 - -223.8876953125 - -224.4651489258 - -225.1067504883 - -225.7431945801 - -226.2985076904 - -226.9514007568 - -227.5792694092 - -228.1677398682 - -228.7612152100 - -229.3977050781 - -230.0342712402 - -230.5996856689 - -231.2528228760 - -231.8736267090 - -232.4614562988 - -233.0871734619 - -233.6842346191 - -234.3360290527 - -234.9089508057 - -235.5481872559 - -236.1895904541 - -236.7767333984 - -237.3907928467 - -238.0254821777 - -238.6262664795 - -239.2377929688 - -239.8568725586 - -240.4866333008 - -241.0731353760 - -241.7195739746 - -242.3215637207 - -242.9205474854 - -243.5832977295 - -244.1874237061 - -244.7718811035 - -245.4710693359 - -246.0317535400 - -246.6400909424 - -247.2991333008 - -247.8908996582 - -248.5198059082 - -249.1467285156 - -249.7613525391 - -250.4058532715 - -251.0166015625 - -251.5923614502 - -252.2843170166 - -252.8640899658 - -253.5171356201 - -254.1221618652 - -254.7336425781 - -255.3726959229 - -256.0169067383 - -256.5552978516 - -257.2595214844 - -257.8443603516 - -258.4842224121 - -259.0583801270 - -259.7340393066 - -260.3421630859 - -260.9493103027 - -261.5735473633 - -262.1950683594 - -262.8468322754 - -263.4355468750 - -264.0541687012 - -264.7016296387 - -265.3276977539 - -265.9214477539 - -266.5807189941 - -267.2072753906 - -267.8287353516 - -268.4477844238 - -269.0896911621 - -269.7241821289 - -270.3365173340 - -270.9821472168 - -271.6249694824 - -272.2057495117 - -272.9022827148 - -273.4732055664 - -274.1730957031 - -274.7042236328 - -275.3881530762 - -276.0239562988 - -276.6206665039 - -277.2330627441 - -277.8733215332 - -278.4896545410 - -279.1077270508 - -279.6730041504 - -280.3662719727 - -280.9112854004 - -281.5693969727 - -282.0949401855 - -282.7434692383 - -283.3358764648 - -283.9325561523 - -284.5320739746 - -285.0690002441 - -285.7733154297 - -286.3211059570 - -286.8856506348 - -287.4458923340 - -288.1947021484 - -288.7232666016 - -289.2322692871 - -289.8800659180 - -290.6307678223 - -291.1813964844 - -291.5983886719 - -292.3093261719 - -293.4208068848 - -295.8862609863 - -297.0035705566 - -297.6900329590 - -298.0646972656 - -298.6347656250 - -299.3524169922 - -299.9585571289 - -300.4472961426 - -300.9772949219 - -301.6760864258 - -302.1815795898 - -302.7637329102 - -303.2735290527 - -303.9122619629 - -304.4451293945 - -305.0234069824 - -305.5705566406 - -306.1525268555 - -306.7499694824 - -307.2595520020 - -307.8974914551 - -308.3993225098 - -309.0739746094 - -309.6254272461 - -310.2316589355 - -310.8048400879 - -311.4312438965 - -312.0386962891 - -312.6043701172 - -313.2281188965 - -313.8886718750 - -314.4197998047 - -315.0779724121 - -315.6582641602 - -316.3152160645 - -316.9033813477 - -317.5220031738 - -318.1483459473 - -318.7451477051 - -319.3734130859 - -319.9906311035 - -320.5872192383 - -321.2041625977 - -321.8003540039 - -322.4442138672 - -323.0227355957 - -323.6350097656 - -324.2427062988 - -324.8542785645 - -325.4168395996 - -326.0417480469 - -326.6575317383 - -327.2250061035 - -327.8446350098 - -328.4195556641 - -329.0530090332 - -329.6224365234 - -330.2379760742 - -330.7897033691 - -331.4758605957 - -331.9736328125 - -332.6246337891 - -333.2075195312 - -333.8066711426 - -334.3778686523 - -335.0226135254 - -335.5638732910 - -336.2398986816 - -336.7816772461 - -337.3762207031 - -337.9835510254 - -338.5749816895 - -339.1720581055 - -339.7873229980 - -340.3487548828 - -340.9691162109 - -341.5404357910 - -342.0971984863 - -342.7595825195 - -343.2844543457 - -343.8985290527 - -344.5242614746 - -345.0925598145 - -345.6492004395 - -346.2703247070 - -346.8388061523 - -347.4342041016 - -347.9883422852 - -348.5999145508 - -349.1734924316 - -349.7466430664 - -350.3379516602 - -350.8978271484 - -351.5015563965 - -352.1158142090 - -352.6465148926 - -353.2591857910 - -353.8528747559 - -354.4036865234 - -354.9693603516 - -355.5584716797 - -356.1750183105 - -356.7124633789 - -357.2900695801 - -357.9229736328 - -358.4577636719 - -359.0107727051 - -359.6013793945 - -360.2147827148 - -360.7427673340 - -361.3387145996 - -361.9299316406 - -362.4853210449 - -363.0214538574 - -363.6481933594 - -364.1776123047 - -364.7351684570 - -365.3458862305 - -365.8548278809 - -366.4950256348 - -367.0216979980 - -367.6128234863 - -368.1563720703 - -368.7339172363 - -369.2904663086 - -369.8489074707 - -370.3954772949 - -371.0090332031 - -371.5135498047 - -372.1306457520 - -372.6743164062 - -373.2307128906 - -373.7849426270 - -374.3241577148 - -374.9348754883 - -375.4460449219 - -376.0442504883 - -376.5658569336 - -377.1757507324 - -377.6565246582 - -378.2475585938 - -378.8017578125 - -379.3688354492 - -379.9065856934 - -380.4714050293 - -381.0036010742 - -381.5854187012 - -382.0768432617 - -382.6746215820 - -383.1945190430 - -383.7679748535 - -384.3159484863 - -384.8454284668 - -385.4076232910 - -385.9450988770 - -386.4639587402 - -387.0344543457 - -387.5595397949 - -388.1177062988 - -388.6605529785 - -389.2025756836 - -389.7278747559 - -390.2756347656 - -390.8061828613 - -391.3383789062 - -391.8985595703 - -392.4234313965 - -392.9823303223 - -393.4783325195 - -394.0218505859 - -394.5727233887 - -395.0918579102 - -395.6314086914 - -396.1852416992 - -396.6685791016 - -397.2142028809 - -397.7848510742 - -398.2395629883 - -398.8361206055 - -399.3453063965 - -399.8365783691 - -400.4069519043 - -400.8640136719 - -401.4581298828 - -401.9332580566 - -402.4863281250 - -403.0095825195 - -403.5108947754 - -404.0266723633 - -404.5423278809 - -405.0649719238 - -405.5926208496 - -406.1101379395 - -406.6138305664 - -407.1465454102 - -407.6181945801 - -408.1695251465 - -408.6603698730 - -409.2114868164 - -409.6936035156 - -410.1737365723 - -410.7234497070 - -411.2152099609 - -411.7142028809 - -412.2446594238 - -412.7470092773 - -413.2401123047 - -413.7254638672 - -414.2662353516 - -414.7597656250 - -415.2575378418 - -415.7388000488 - -416.2552795410 - -416.7725524902 - -417.2072753906 - -417.7781372070 - -418.2450866699 - -418.7269592285 - -419.2137451172 - -419.7492065430 - -420.1983337402 - -420.7185668945 - -421.2202148438 - -421.6619873047 - -422.1707763672 - -422.6676330566 - -423.1464843750 - -423.6414794922 - -424.1299438477 - -424.5969848633 - -425.0950317383 - -425.5718383789 - -426.0743408203 - -426.5346374512 - -427.0141906738 - -427.5007934570 - -427.9637451172 - -428.4913330078 - -428.9093627930 - -429.4027709961 - -429.8909912109 - -430.3600158691 - -430.8248291016 - -431.3190002441 - -431.7800903320 - -432.2221069336 - -432.7315063477 - -433.1726684570 - -433.6716308594 - -434.1143798828 - -434.5678710938 - -435.0645751953 - -435.4961547852 - -435.9876403809 - -436.4475097656 - -436.8966064453 - -437.3625488281 - -437.8184204102 - -438.2927551270 - -438.7630004883 - -439.1699218750 - -439.6602783203 - -440.1474609375 - -440.5466918945 - -441.0250854492 - -441.4837951660 - -441.9548339844 - -442.3620910645 - -442.8440856934 - -443.3018188477 - -443.7206420898 - -444.1847534180 - -444.6386718750 - -445.0972595215 - -445.5103759766 - -445.9703369141 - -446.4291076660 - -446.8732910156 - -447.2947998047 - -447.7503356934 - -448.1745605469 - -448.6511840820 - -449.0514221191 - -449.5238952637 - -449.9422912598 - -450.3711547852 - -450.8715820312 - -451.2265625000 - -451.6994323730 - -452.1647338867 - -452.5558471680 - -453.0090026855 - -453.4398193359 - -453.8852539062 - -454.3097839355 - -454.7234191895 - -455.1843566895 - -455.6119384766 - -456.0034484863 - -456.4739990234 - -456.8994750977 - -457.3028259277 - -457.7444152832 - -458.1882934570 - -458.5931396484 - -459.0099792480 - -459.4743041992 - -459.8462219238 - -460.3162231445 - -460.7317504883 - -461.1141967773 - -461.5959777832 - -461.9865112305 - -462.4066467285 - -462.8647766113 - -463.2455749512 - -463.6968078613 - -464.0825805664 - -464.5463562012 - -464.9313354492 - -465.3633422852 - -465.7860107422 - -466.2252502441 - -466.6102600098 - -467.0443420410 - -467.4672851562 - -467.8968200684 - -468.2717285156 - -468.7293395996 - -469.1483154297 - -469.5633850098 - -469.9488220215 - -470.4139709473 - -470.7933044434 - -471.2538146973 - -471.6198120117 - -472.0851440430 - -472.4798889160 - -472.9209594727 - -473.2793884277 - -473.7750244141 - -474.1502075195 - -474.5758666992 - -474.9971008301 - -475.4180297852 - -475.8449096680 - -476.2740783691 - -476.6451416016 - -477.1193237305 - -477.5297546387 - -477.9372558594 - -478.3630371094 - -478.7967224121 - -479.2322692871 - -479.6022644043 - -480.0930480957 - -480.4668884277 - -480.9282226562 - -481.3348388672 - -481.7533874512 - -482.2200012207 - -482.6159057617 - -483.0623474121 - -483.4622192383 - -483.9551696777 - -484.3338317871 - -484.7601623535 - -485.2621459961 - -485.6356201172 - -486.0903320312 - -486.5346679688 - -486.9643859863 - -487.4257812500 - -487.8302612305 - -488.3022155762 - -488.7534790039 - -489.1744689941 - -489.6288146973 - -490.0929565430 - -490.5245971680 - -490.9900512695 - -491.4342346191 - -491.9018554688 - -492.3579101562 - -492.7988891602 - -493.2793579102 - -493.7356872559 - -494.1874084473 - -494.6924133301 - -495.1157836914 - -495.5944213867 - -496.1239013672 - -496.5188903809 - -497.0484924316 - -497.5053710938 - -497.9965209961 - -498.4922180176 - -498.9382934570 - -499.4804992676 - -499.9376831055 - -500.4570007324 - -500.9151916504 - -501.4605102539 - -501.9440917969 - -502.4458312988 - -502.9414062500 - -503.4960937500 - -503.9598693848 - -504.5191345215 - -505.0140380859 - -505.5387878418 - -506.0958251953 - -506.5861511230 - -507.1370849609 - -507.6787109375 - -508.2241516113 - -508.7356872559 - -509.3255310059 - -509.8525085449 - -510.4061584473 - -510.9684448242 - -511.5473632812 - -512.0813598633 - -512.6666259766 - -513.2628173828 - -513.7935180664 - -514.4152832031 - -514.9721679688 - -515.5917358398 - -516.1647338867 - -516.7544555664 - -517.3765869141 - -517.9750976562 - -518.5910034180 - -519.1692504883 - -519.8474731445 - -520.4443969727 - -521.0421752930 - -521.7166137695 - -522.3551025391 - -522.9543457031 - -523.6359252930 - -524.2883911133 - -524.9159545898 - -525.6017456055 - -526.2598266602 - -526.9137573242 - -527.6080932617 - -528.2835083008 - -528.9571533203 - -529.6462402344 - -530.3676147461 - -531.0000610352 - -531.7828369141 - -532.4147949219 - -533.1797485352 - -533.8715820312 - -534.5961303711 - -535.3283081055 - -536.0579833984 - -536.7824707031 - -537.5390014648 - -538.2841186523 - -539.0277099609 - -539.7709960938 - -540.5563964844 - -541.3061523438 - -542.0519409180 - -542.8533935547 - -543.6278076172 - -544.4086914062 - -545.1773071289 - -545.9925537109 - -546.7849121094 - -547.5573120117 - -548.3853759766 - -549.1879272461 - -549.9913330078 - -550.8169555664 - -551.6301879883 - -552.4412841797 - -553.3065185547 - -554.1125488281 - -554.9315795898 - -555.8066406250 - -556.6330566406 - -557.4495239258 - -558.3494262695 - -559.1654663086 - -560.0433349609 - -560.8907470703 - -561.7618408203 - -562.6255493164 - -563.4664306641 - -564.3786621094 - -565.2175292969 - -566.0968017578 - -567.0044555664 - -567.8235473633 - -568.7746582031 - -569.6129760742 - -570.4953002930 - -571.4393310547 - -572.2453002930 - -573.1986083984 - -574.0739746094 - -574.9445190430 - -575.9075317383 - -576.7094116211 - -577.6779785156 - -578.5643920898 - -579.4153442383 - -580.3623657227 - -581.2644042969 - -582.1339111328 - -583.0552368164 - -583.9203491211 - -584.8846435547 - -585.7144775391 - -586.6568603516 - -587.5543212891 - -588.4472656250 - -589.3342895508 - -590.2438964844 - -591.1297607422 - -592.0434570312 - -592.9140014648 - -593.8217773438 - -594.7176513672 - -595.5646972656 - -596.5147094727 - -597.3656005859 - -598.2382812500 - -599.1455688477 - -600.0092773438 - -600.9039306641 - -601.7623291016 - -602.6478881836 - -603.5324096680 - -604.3719482422 - -605.2495727539 - -606.1311035156 - -606.9567260742 - -607.8443603516 - -608.6942138672 - -609.5340576172 - -610.3917236328 - -611.2408447266 - -612.0637207031 - -612.9191284180 - -613.7609863281 - -614.5645751953 - -615.4215087891 - -616.2265625000 - -617.0504150391 - -617.8845214844 - -618.6807861328 - -619.5018920898 - -620.3054199219 - -621.1090698242 - -621.8937377930 - -622.6992187500 - -623.5040283203 - -624.2615356445 - -625.0779418945 - -625.8279418945 - -626.6413574219 - -627.3670043945 - -628.1654052734 - -628.9146118164 - -629.6870117188 - -630.4334106445 - -631.1552734375 - -631.9572753906 - -632.6599121094 - -633.3883056641 - -634.1466064453 - -634.8865356445 - -635.5855102539 - -636.2966308594 - -637.0703125000 - -637.7205810547 - -638.4570312500 - -639.1720581055 - -639.8540649414 - -640.5436401367 - -641.2796630859 - -641.9111328125 - -642.6367187500 - -643.3129272461 - -643.9738769531 - -644.6549682617 - -645.3145751953 - -645.9948120117 - -646.6555175781 - -647.3059082031 - -647.9489746094 - -648.6292114258 - -649.2821655273 - -649.8714599609 - -650.5505371094 - -651.1953125000 - -651.8153686523 - -652.3932495117 - -653.1096191406 - -653.6768798828 - -654.2892456055 - -654.9240722656 - -655.5209350586 - -656.1536865234 - -656.7266845703 - -657.3266601562 - -657.9602050781 - -658.5416870117 - -659.0977172852 - -659.7189941406 - -660.3387451172 - -660.8446655273 - -661.4649047852 - -662.0714721680 - -662.5870971680 - -663.1878051758 - -663.7731933594 - -664.2976074219 - -664.9071655273 - -665.4265747070 - -666.0084838867 - -666.5638427734 - -667.1019287109 - -667.6589965820 - -668.2139892578 - -668.7500610352 - -669.2941894531 - -669.8432617188 - -670.3717651367 - -670.9028930664 - -671.4620361328 - -671.9711303711 - -672.4841918945 - -673.0621948242 - -673.5445556641 - -674.0759277344 - -674.6023559570 - -675.1293945312 - -675.6434326172 - -676.1364746094 - -676.6774902344 - -677.1863403320 - -677.6917114258 - -678.1806640625 - -678.7191162109 - -679.2155761719 - -679.6953735352 - -680.2067871094 - -680.7316894531 - -681.2020874023 - -681.6948242188 - -682.2096557617 - -682.7027587891 - -683.1672363281 - -683.6984863281 - -684.1405639648 - -684.6900634766 - -685.1137084961 - -685.6300048828 - -686.1218261719 - -686.5888061523 - -687.0617675781 - -687.5684204102 - -688.0354003906 - -688.4999389648 - -688.9855957031 - -689.4829711914 - -689.9129028320 - -690.4238891602 - -690.8795166016 - -691.3485717773 - -691.8388671875 - -692.2814941406 - -692.7517700195 - -693.2584228516 - -693.6773071289 - -694.1680908203 - -694.6083984375 - -695.1270751953 - -695.5294189453 - -696.0252685547 - -696.4669799805 - -696.9599609375 - -697.3798828125 - -697.8654174805 - -698.3035888672 - -698.7910156250 - -699.2210083008 - -699.6776733398 - -700.1442260742 - -700.6051025391 - -701.0463256836 - -701.5043334961 - -701.9420166016 - -702.4328002930 - -702.8533935547 - -703.2907714844 - -703.7753906250 - -704.2303466797 - -704.6393432617 - -705.1113281250 - -705.5726318359 - -706.0018920898 - -706.4566040039 - -706.8890991211 - -707.3583374023 - -707.8017578125 - -708.2211914062 - -708.7048339844 - -709.1087646484 - -709.5966796875 - -709.9985961914 - -710.4676513672 - -710.9057006836 - -711.3441162109 - -711.7954101562 - -712.2342529297 - -712.6588745117 - -713.1331176758 - -713.5471801758 - -714.0030517578 - -714.4195556641 - -714.8963012695 - -715.3187255859 - -715.7227783203 - -716.2233886719 - -716.6292114258 - -717.0471801758 - -717.5327758789 - -717.9265747070 - -718.4113769531 - -718.7930297852 - -719.2778930664 - -719.6979370117 - -720.1292114258 - -720.5556640625 - -721.0299682617 - -721.4270629883 - -721.8662719727 - -722.3349609375 - -722.7231445312 - -723.2026367188 - -723.5981445312 - -724.0596923828 - -724.4804687500 - -724.9321899414 - -725.3386230469 - -725.7897338867 - -726.2339477539 - -726.6454467773 - -727.0836181641 - -727.5221557617 - -727.9628295898 - -728.3709716797 - -728.8248291016 - -729.2410888672 - -729.6960449219 - -730.1035156250 - -730.5463867188 - -730.9813232422 - -731.4149169922 - -731.8317871094 - -732.2831420898 - -732.6857910156 - -733.1583251953 - -733.5510253906 - -733.9995117188 - -734.4183349609 - -734.8762817383 - -735.2678222656 - -735.7073974609 - -736.1611938477 - -736.5769042969 - -736.9895629883 - -737.4326171875 - -737.8852539062 - -738.2702026367 - -738.7299804688 - -739.1508789062 - -739.5957031250 - -739.9754638672 - -740.4741821289 - -740.8447265625 - -741.2915039062 - -741.7409057617 - -742.1263427734 - -742.5920410156 - -742.9990234375 - -743.4345703125 - -743.8631591797 - -744.2853393555 - -744.7172851562 - -745.1381835938 - -745.5814208984 - -745.9900512695 - -746.4254150391 - -746.8500976562 - -747.2772216797 - -747.6949462891 - -748.1472167969 - -748.5309448242 - -749.0125122070 - -749.3799438477 - -749.8621826172 - -750.2427978516 - -750.6888427734 - -751.1164550781 - -751.5375976562 - -751.9579467773 - -752.3851928711 - -752.8250122070 - -753.2369384766 - -753.6490478516 - -754.0950927734 - -754.5158081055 - -754.9360961914 - -755.3488769531 - -755.7915039062 - -756.2366333008 - -756.5892333984 - -757.0807495117 - -757.4755249023 - -757.9096679688 - -758.3347778320 - -758.7227172852 - -759.2057495117 - -759.5986328125 - -759.9962768555 - -760.4424438477 - -760.9123535156 - -761.2476196289 - -761.7128295898 - -762.1483154297 - -762.5624389648 - -762.9547119141 - -763.4248046875 - -763.8070678711 - -764.2592163086 - -764.6578369141 - -765.0702514648 - -765.5440063477 - -765.9042968750 - -766.3437500000 - -766.7956542969 - -767.1859741211 - -767.5914306641 - -768.0643310547 - -768.4419555664 - -768.8580932617 - -769.3198242188 - -769.7097778320 - -770.1149902344 - -770.5781250000 - -770.9583129883 - -771.4056396484 - -771.7942504883 - -772.2501220703 - -772.6394042969 - -773.0695190430 - -773.4852294922 - -773.9169311523 - -774.3143310547 - -774.7392578125 - -775.1769409180 - -775.5686645508 - -775.9945068359 - -776.4141845703 - -776.8467407227 - -777.2254638672 - -777.6778564453 - -778.0900268555 - -778.4797363281 - -778.9330444336 - -779.3294067383 - -779.7343139648 - -780.1840820312 - -780.5709838867 - -780.9874267578 - -781.4405517578 - -781.7927856445 - -782.2786254883 - -782.6356201172 - -783.0763549805 - -783.5039062500 - -783.8917236328 - -784.3218383789 - -784.7255249023 - -785.1730957031 - -785.5107421875 - -786.0231933594 - -786.3675537109 - -786.7944946289 - -787.2340087891 - -787.6183471680 - -788.0432739258 - -788.4577636719 - -788.8532714844 - -789.3050537109 - -789.6680908203 - -790.1074829102 - -790.5265502930 - -790.9256591797 - -791.3334960938 - -791.7490234375 - -792.1637573242 - -792.5854492188 - -792.9569702148 - -793.3986816406 - -793.8263549805 - -794.1899414062 - -794.6261596680 - -795.0449218750 - -795.4381713867 - -795.8601684570 - -796.2462768555 - -796.6944580078 - -797.0653076172 - -797.4982910156 - -797.9063110352 - -798.2840576172 - -798.7438354492 - -799.1059570312 - -799.5409545898 - -799.9325561523 - -800.3440551758 - -800.7714233398 - -801.1542968750 - -801.5485229492 - -801.9984130859 - -802.3895874023 - -802.7565917969 - -803.2009277344 - -803.6174926758 - -803.9899902344 - -804.4066162109 - -804.8186645508 - -805.2124023438 - -805.6517333984 - -806.0032348633 - -806.4208984375 - -806.8816528320 - -807.2227783203 - -807.6295166016 - -808.0682983398 - -808.4574584961 - -808.8503417969 - -809.2601928711 - -809.6552734375 - -810.0836791992 - -810.4682006836 - -810.8519897461 - -811.2852783203 - -811.6766357422 - -812.0778808594 - -812.4790039062 - -812.8598022461 - -813.3062133789 - -813.6855468750 - -814.0540771484 - -814.4973144531 - -814.8855590820 - -815.2967529297 - -815.6467895508 - -816.0995483398 - -816.5015258789 - -816.8522949219 - -817.2905273438 - -817.6701660156 - -818.0912475586 - -818.4738769531 - -818.8533325195 - -819.2867431641 - -819.6779174805 - -820.0514526367 - -820.4642944336 - -820.8743286133 - -821.2526245117 - -821.6492919922 - -822.0625610352 - -822.4501953125 - -822.8352050781 - -823.2442016602 - -823.6572265625 - -823.9975585938 - -824.4601440430 - -824.7922973633 - -825.2590332031 - -825.5777587891 - -826.0143432617 - -826.4096069336 - -826.8026733398 - -827.1758422852 - -827.5757446289 - -827.9941406250 - -828.3782348633 - -828.7330322266 - -829.1700439453 - -829.5454101562 - -829.9631347656 - -830.2966308594 - -830.7433471680 - -831.1104736328 - -831.5243530273 - -831.9080200195 - -832.2349853516 - -832.7310180664 - -833.1025390625 - -833.4214477539 - -833.8192749023 - -834.3250732422 - -834.6408081055 - -834.9689331055 - -835.4044799805 - -835.8917846680 - -836.2005004883 - -836.4984741211 - -836.9526977539 - -837.6133422852 - -839.0929565430 - -839.7701416016 - -840.1546630859 - -840.3320312500 - -840.6957397461 - -841.0895996094 - -841.4066162109 - -841.6774291992 - -841.9972534180 - -842.3603515625 - -842.6021728516 - -842.9717407227 - -843.2349243164 - -843.5446777344 - -843.8597412109 - -844.1829223633 - -844.4559326172 - -844.7935180664 - -845.0947875977 - -845.3826904297 - -845.7428588867 - -845.9956054688 - -846.3796386719 - -846.6951293945 - -847.0460205078 - -847.3413696289 - -847.7017822266 - -848.0606079102 - -848.3650512695 - -848.7261352539 - -849.0964355469 - -849.4150390625 - -849.7635498047 - -850.1224365234 - -850.4722290039 - -850.8337402344 - -851.1776733398 - -851.5320434570 - -851.8726806641 - -852.2427978516 - -852.5853881836 - -852.9183959961 - -853.2834472656 - -853.6075439453 - -853.9764404297 - -854.3067016602 - -854.6586303711 - -854.9788208008 - -855.3377075195 - -855.6461791992 - -855.9911499023 - -856.3541259766 - -856.6313476562 - -857.0170898438 - -857.3250122070 - -857.6579589844 - -857.9945678711 - -858.3364868164 - -858.6306152344 - -859.0219116211 - -859.2751464844 - -859.6734008789 - -859.9603271484 - -860.3060302734 - -860.6108398438 - -860.9884643555 - -861.2701416016 - -861.6578369141 - -861.9451293945 - -862.2836914062 - -862.6066894531 - -862.9353027344 - -863.2602539062 - -863.6141967773 - -863.9171752930 - -864.2462768555 - -864.5476684570 - -864.8771362305 - -865.2333984375 - -865.4817504883 - -865.8614501953 - -866.1954345703 - -866.5023193359 - -866.7855224609 - -867.1296386719 - -867.4505004883 - -867.7692260742 - -868.0290527344 - -868.3964233398 - -868.7101440430 - -868.9849243164 - -869.3142700195 - -869.6197509766 - -869.9397583008 - -870.2803955078 - -870.5514526367 - -870.8753662109 - -871.2280273438 - -871.4745483398 - -871.7891845703 - -872.1071777344 - -872.4362182617 - -872.7272949219 - -873.0077514648 - -873.3834838867 - -873.6387939453 - -873.9307861328 - -874.2434082031 - -874.5672607422 - -874.8536376953 - -875.1657714844 - -875.4640502930 - -875.7725219727 - -876.0292358398 - -876.3802490234 - -876.6342163086 - -876.9210815430 - -877.2665405273 - -877.4981079102 - -877.8464965820 - -878.1320190430 - -878.4235839844 - -878.7045898438 - -879.0071411133 - -879.2817382812 - -879.5849609375 - -879.8403930664 - -880.1704711914 - -880.4462890625 - -880.7239990234 - -881.0429687500 - -881.3028564453 - -881.5891113281 - -881.8435668945 - -882.1961669922 - -882.4243164062 - -882.7301025391 - -883.0145263672 - -883.3025512695 - -883.5496215820 - -883.8404541016 - -884.1182861328 - -884.4285278320 - -884.6683349609 - -884.9646606445 - -885.2339477539 - -885.5151367188 - -885.7483520508 - -886.0722656250 - -886.2927856445 - -886.6146850586 - -886.8759765625 - -887.1274414062 - -887.4071655273 - -887.6846923828 - -887.9138793945 - -888.2025756836 - -888.4641113281 - -888.7359619141 - -889.0033569336 - -889.2603759766 - -889.5276489258 - -889.7734985352 - -890.0462646484 - -890.2823486328 - -890.5899658203 - -890.8084106445 - -891.0984497070 - -891.3361816406 - -891.5740356445 - -891.8488769531 - -892.1173706055 - -892.3439331055 - -892.6288452148 - -892.8538818359 - -893.1002807617 - -893.3795776367 - -893.5956420898 - -893.8780517578 - -894.1142578125 - -894.3413696289 - -894.6122436523 - -894.8162231445 - -895.0989990234 - -895.3142089844 - -895.5927734375 - -895.8276977539 - -896.0214233398 - -896.3142089844 - -896.5192871094 - -896.7465820312 - -897.0105590820 - -897.2673950195 - -897.4520263672 - -897.7274169922 - -897.9180908203 - -898.1815185547 - -898.4110107422 - -898.6370239258 - -898.8850708008 - -899.0710449219 - -899.3275756836 - -899.5459594727 - -899.7670898438 - -900.0185546875 - -900.2257690430 - -900.4461059570 - -900.6588745117 - -900.9083862305 - -901.1193847656 - -901.3388061523 - -901.5413818359 - -901.7747192383 - -901.9968261719 - -902.1796875000 - -902.4315795898 - -902.6549072266 - -902.8187866211 - -903.0514526367 - -903.2875366211 - -903.4605102539 - -903.6977539062 - -903.9185180664 - -904.0726928711 - -904.3107299805 - -904.5145874023 - -904.7151489258 - -904.9241333008 - -905.1334838867 - -905.3170776367 - -905.5269775391 - -905.7343750000 - -905.9291381836 - -906.1342163086 - -906.3167114258 - -906.5079345703 - -906.7255249023 - -906.9235229492 - -907.0907592773 - -907.2898559570 - -907.4993896484 - -907.6647338867 - -907.8746948242 - -908.0697631836 - -908.2380981445 - -908.4074096680 - -908.6414184570 - -908.7832031250 - -908.9915161133 - -909.1751708984 - -909.3262329102 - -909.5456542969 - -909.6810302734 - -909.9126586914 - -910.0606689453 - -910.2434692383 - -910.4111328125 - -910.5914916992 - -910.7791748047 - -910.9619140625 - -911.0764770508 - -911.2973022461 - -911.4837646484 - -911.6082153320 - -911.7866821289 - -911.9757080078 - -912.1552734375 - -912.2732543945 - -912.4658813477 - -912.6511840820 - -912.7770385742 - -912.9432373047 - -913.1282348633 - -913.2887573242 - -913.4240722656 - -913.5791015625 - -913.7761230469 - -913.9039306641 - -914.0688476562 - -914.2152099609 - -914.3496093750 - -914.5630493164 - -914.6508178711 - -914.8413696289 - -914.9750976562 - -915.1265258789 - -915.3067016602 - -915.4097290039 - -915.5626831055 - -915.7673950195 - -915.8387451172 - -916.0155639648 - -916.1781005859 - -916.2935791016 - -916.4511108398 - -916.5858154297 - -916.7322998047 - -916.8847656250 - -916.9757080078 - -917.1724853516 - -917.2850952148 - -917.4082641602 - -917.5600585938 - -917.7060546875 - -917.8217163086 - -917.9495239258 - -918.1041259766 - -918.2108764648 - -918.3588256836 - -918.5075683594 - -918.5715942383 - -918.7759399414 - -918.8742675781 - -918.9848632812 - -919.1572265625 - -919.2382202148 - -919.4059448242 - -919.4878540039 - -919.6401367188 - -919.7551879883 - -919.8866577148 - -919.9899902344 - -920.1406250000 - -920.2481689453 - -920.3586425781 - -920.4927978516 - -920.6201171875 - -920.7042236328 - -920.8574218750 - -920.9688110352 - -921.0826416016 - -921.1845703125 - -921.3279418945 - -921.4186401367 - -921.5588378906 - -921.6482543945 - -921.7880859375 - -921.8915405273 - -922.0056762695 - -922.0989379883 - -922.2523193359 - -922.3370971680 - -922.4390869141 - -922.5837402344 - -922.6712036133 - -922.7880249023 - -922.9251098633 - -922.9732055664 - -923.1376342773 - -923.2476806641 - -923.3186035156 - -923.4605712891 - -923.5662841797 - -923.6816406250 - -923.7457275391 - -923.9279785156 - -923.9687500000 - -924.1177368164 - -924.2162475586 - -924.3106689453 - -924.4367675781 - -924.5534057617 - -924.6377563477 - -924.7462158203 - -924.8885498047 - -924.9613647461 - -925.0628662109 - -925.2250366211 - -925.2740478516 - -925.4183349609 - -925.5169067383 - -925.6094970703 - -925.7541503906 - -925.8316040039 - -925.9490356445 - -926.0775756836 - -926.1654663086 - -926.2843627930 - -926.3919067383 - -926.4986572266 - -926.6248168945 - -926.7219238281 - -926.8424682617 - -926.9483642578 - -927.0711669922 - -927.1708374023 - -927.2887573242 - -927.4047851562 - -927.5410156250 - -927.6148681641 - -927.7446289062 - -927.9116210938 - -927.9489135742 - -928.1246948242 - -928.2158813477 - -928.3397827148 - -928.4805908203 - -928.5607299805 - -928.7192993164 - -928.8340454102 - -928.9515380859 - -929.0640869141 - -929.2233886719 - -929.3111572266 - -929.4725341797 - -929.5684204102 - -929.7142333984 - -929.8445434570 - -929.9951171875 - -930.0805053711 - -930.2384033203 - -930.4118652344 - -930.4851074219 - -930.6402587891 - -930.8040161133 - -930.9322509766 - -931.0502319336 - -931.2214965820 - -931.3448486328 - -931.5240478516 - -931.6147460938 - -931.8120117188 - -931.9373168945 - -932.0972900391 - -932.2458496094 - -932.3880004883 - -932.5789794922 - -932.6875610352 - -932.8828125000 - -933.0270996094 - -933.1810913086 - -933.3547363281 - -933.5180053711 - -933.6848754883 - -933.8273315430 - -934.0590820312 - -934.1781005859 - -934.3592529297 - -934.5481567383 - -934.7318115234 - -934.8814697266 - -935.0911254883 - -935.2581176758 - -935.4564208984 - -935.6324462891 - -935.8214721680 - -936.0139770508 - -936.2200927734 - -936.3956298828 - -936.5886840820 - -936.8139038086 - -937.0064086914 - -937.1628417969 - -937.4525756836 - -937.5759887695 - -937.8458251953 - -938.0115356445 - -938.2569580078 - -938.4526367188 - -938.6875000000 - -938.8735351562 - -939.1295776367 - -939.3440551758 - -939.5563964844 - -939.7821044922 - -940.0368041992 - -940.2564697266 - -940.4608154297 - -940.7363281250 - -940.9605712891 - -941.1975708008 - -941.4353637695 - -941.6850585938 - -941.9468994141 - -942.1641845703 - -942.4271850586 - -942.6867065430 - -942.9298706055 - -943.1895751953 - -943.4485473633 - -943.6986694336 - -943.9779663086 - -944.2390136719 - -944.4766235352 - -944.7720947266 - -945.0444335938 - -945.2776489258 - -945.5922851562 - -945.8421020508 - -946.1293945312 - -946.4066162109 - -946.6787719727 - -946.9664306641 - -947.2454833984 - -947.5309448242 - -947.8106689453 - -948.0984497070 - -948.4065551758 - -948.6514282227 - -948.9990844727 - -949.2523803711 - -949.5344848633 - -949.8923339844 - -950.1096191406 - -950.4696655273 - -950.7235717773 - -951.0457153320 - -951.3720092773 - -951.6033325195 - -951.9631958008 - -952.2752075195 - -952.5306396484 - -952.8524169922 - -953.1921386719 - -953.4769287109 - -953.7589111328 - -954.0939941406 - -954.4221191406 - -954.6776123047 - -955.0412597656 - -955.3099975586 - -955.6699829102 - -955.9339599609 - -956.2608032227 - -956.5928955078 - -956.8788452148 - -957.2080688477 - -957.5165405273 - -957.8317871094 - -958.1248168945 - -958.4719848633 - -958.7674560547 - -959.0697631836 - -959.4018554688 - -959.7058105469 - -960.0205078125 - -960.3399658203 - -960.6315307617 - -960.9761962891 - -961.2698364258 - -961.5695190430 - -961.9098510742 - -962.2028198242 - -962.5192260742 - -962.8330688477 - -963.1356201172 - -963.4481201172 - -963.7662353516 - -964.0589599609 - -964.3676757812 - -964.6986694336 - -964.9790039062 - -965.2973022461 - -965.5942993164 - -965.9022827148 - -966.2244873047 - -966.4916992188 - -966.8195800781 - -967.1275024414 - -967.4126586914 - -967.7064208984 - -968.0203247070 - -968.3322753906 - -968.5901489258 - -968.9274291992 - -969.1953125000 - -969.5244750977 - -969.7717895508 - -970.1126098633 - -970.3569946289 - -970.7108154297 - -970.9405517578 - -971.2441406250 - -971.5689697266 - -971.8166503906 - -972.0997924805 - -972.4113159180 - -972.6925048828 - -972.9591674805 - -973.2351684570 - -973.5552978516 - -973.7912597656 - -974.0959472656 - -974.3606567383 - -974.6463623047 - -974.9137573242 - -975.2037963867 - -975.4403076172 - -975.7706298828 - -975.9990844727 - -976.2774658203 - -976.5513305664 - -976.8154907227 - -977.0843505859 - -977.3549194336 - -977.6261596680 - -977.8598632812 - -978.1716918945 - -978.4133911133 - -978.6517333984 - -978.9365234375 - -979.1943969727 - -979.4612426758 - -979.6567993164 - -980.0006103516 - -980.2019653320 - -980.4658203125 - -980.7106323242 - -980.9691162109 - -981.2410888672 - -981.4561767578 - -981.6917724609 - -982.0003662109 - -982.2137451172 - -982.4230957031 - -982.7167358398 - -982.9664916992 - -983.1654663086 - -983.4192504883 - -983.6975097656 - -983.8816528320 - -984.1621704102 - -984.3870239258 - -984.6083984375 - -984.8743286133 - -985.0914306641 - -985.3147583008 - -985.5748901367 - -985.7852172852 - -986.0173339844 - -986.2698974609 - -986.4560546875 - -986.7379760742 - -986.9372558594 - -987.1496582031 - -987.3999633789 - -987.6253051758 - -987.8355712891 - -988.0468750000 - -988.3068237305 - -988.4976806641 - -988.7268676758 - -988.9442749023 - -989.1770629883 - -989.3834228516 - -989.5911865234 - -989.8249511719 - -990.0331420898 - -990.2598876953 - -990.4509277344 - -990.6768798828 - -990.9054565430 - -991.0805053711 - -991.3072509766 - -991.5377197266 - -991.7083129883 - -991.9534301758 - -992.1364746094 - -992.3475952148 - -992.5612792969 - -992.7666625977 - -992.9442138672 - -993.1979370117 - -993.3600463867 - -993.5679321289 - -993.7826538086 - -993.9808349609 - -994.1490478516 - -994.4076538086 - -994.5506591797 - -994.7700805664 - -994.9678344727 - -995.1784057617 - -995.3270263672 - -995.5680541992 - -995.7521972656 - -995.9082031250 - -996.1527099609 - -996.3116455078 - -996.4996337891 - -996.7275390625 - -996.8682250977 - -997.0775756836 - -997.2697143555 - -997.4609375000 - -997.6257934570 - -997.8299560547 - -998.0108032227 - -998.1964721680 - -998.3741455078 - -998.5551757812 - -998.7423706055 - -998.9223022461 - -999.0977783203 - -999.2799072266 - -999.4692993164 - -999.6279907227 - -999.8214721680 - -999.9956054688 - -1000.1539306641 - -1000.3573608398 - -1000.5232543945 - -1000.6705932617 - -1000.8755493164 - -1001.0452270508 - -1001.1997680664 - -1001.3656005859 - -1001.5712280273 - -1001.7026367188 - -1001.9053344727 - -1002.0358276367 - -1002.2272338867 - -1002.4123535156 - -1002.5142211914 - -1002.7443847656 - -1002.8742065430 - -1003.0514526367 - -1003.2076416016 - -1003.3698730469 - -1003.5327758789 - -1003.7032470703 - -1003.8612670898 - -1004.0086669922 - -1004.1666259766 - -1004.3598022461 - -1004.4636840820 - -1004.6604003906 - -1004.7948608398 - -1004.9667968750 - -1005.1160888672 - -1005.2401123047 - -1005.4458618164 - -1005.5678710938 - -1005.6866455078 - -1005.9132690430 - -1006.0006713867 - -1006.1729736328 - -1006.3198242188 - -1006.4743652344 - -1006.6112670898 - -1006.7664794922 - -1006.8811645508 - -1007.0903930664 - -1007.1737060547 - -1007.3324584961 - -1007.5002441406 - -1007.6108398438 - -1007.7963256836 - -1007.8896484375 - -1008.0473022461 - -1008.1950683594 - -1008.3442993164 - -1008.4511108398 - -1008.5960693359 - -1008.7634887695 - -1008.8734130859 - -1008.9935302734 - -1009.1627197266 - -1009.2929077148 - -1009.3983764648 - -1009.5366821289 - -1009.6891479492 - -1009.8227539062 - -1009.9071044922 - -1010.0810546875 - -1010.2058105469 - -1010.3264770508 - -1010.4428710938 - -1010.5868530273 - -1010.6931762695 - -1010.8617553711 - -1010.9306640625 - -1011.0941162109 - -1011.1857299805 - -1011.3442382812 - -1011.4437255859 - -1011.5546264648 - -1011.7167358398 - -1011.7971801758 - -1011.9181518555 - -1012.0570068359 - -1012.1834106445 - -1012.2623291016 - -1012.4122924805 - -1012.5118408203 - -1012.6312255859 - -1012.7350463867 - -1012.8855590820 - -1012.9511108398 - -1013.0772705078 - -1013.2103881836 - -1013.2924194336 - -1013.4264526367 - -1013.5191650391 - -1013.6264038086 - -1013.7470703125 - -1013.8472290039 - -1013.9530029297 - -1014.0582275391 - -1014.1738281250 - -1014.2473144531 - -1014.3909301758 - -1014.4848632812 - -1014.5695190430 - -1014.6910400391 - -1014.7905273438 - -1014.8534545898 - -1015.0169067383 - -1015.0770263672 - -1015.1829223633 - -1015.2770996094 - -1015.3822631836 - -1015.4695434570 - -1015.5732421875 - -1015.6657714844 - -1015.7678222656 - -1015.8513793945 - -1015.9434204102 - -1016.0303955078 - -1016.1454467773 - -1016.2170410156 - -1016.3082885742 - -1016.3971557617 - -1016.4779052734 - -1016.6063842773 - -1016.6413574219 - -1016.7695922852 - -1016.8411254883 - -1016.9124755859 - -1017.0264892578 - -1017.0635986328 - -1017.2146606445 - -1017.2669677734 - -1017.3172607422 - -1017.4190673828 - -1017.5486450195 - -1017.5448608398 - -1017.6795654297 - -1017.7702636719 - -1017.8201904297 - -1017.8995971680 - -1017.9784545898 - -1018.0593872070 - -1018.1359863281 - -1018.2113037109 - -1018.2881469727 - -1018.3692626953 - -1018.4301147461 - -1018.4939575195 - -1018.5864868164 - -1018.6581420898 - -1018.6991577148 - -1018.8163452148 - -1018.8526611328 - -1018.9064331055 - -1019.0097656250 - -1019.0731201172 - -1019.1106567383 - -1019.2279052734 - -1019.2398681641 - -1019.3366699219 - -1019.3756713867 - -1019.4710693359 - -1019.5145263672 - -1019.5875854492 - -1019.6456909180 - -1019.7101440430 - -1019.7618408203 - -1019.8115234375 - -1019.9073486328 - -1019.9452514648 - -1020.0011596680 - -1020.0718994141 - -1020.1435546875 - -1020.1456298828 - -1020.2552490234 - -1020.2747192383 - -1020.3405151367 - -1020.4108886719 - -1020.4570312500 - -1020.4904174805 - -1020.5858764648 - -1020.6001586914 - -1020.6515502930 - -1020.7153320312 - -1020.7514038086 - -1020.8355712891 - -1020.8494262695 - -1020.8964843750 - -1020.9874267578 - -1020.9741821289 - -1021.0491943359 - -1021.0882568359 - -1021.1692504883 - -1021.1495971680 - -1021.2557983398 - -1021.2682495117 - -1021.2914428711 - -1021.3710937500 - -1021.3880615234 - -1021.4467773438 - -1021.4813232422 - -1021.5194091797 - -1021.5819702148 - -1021.5986328125 - -1021.6170654297 - -1021.7008666992 - -1021.6983642578 - -1021.7396240234 - -1021.8063964844 - -1021.8093261719 - -1021.8781127930 - -1021.8846435547 - -1021.9370117188 - -1021.9725341797 - -1021.9890747070 - -1022.0217285156 - -1022.0521850586 - -1022.0815429688 - -1022.1513061523 - -1022.1216430664 - -1022.1895751953 - -1022.2070922852 - -1022.2343750000 - -1022.2552490234 - -1022.2610473633 - -1022.3580932617 - -1022.3300170898 - -1022.3619995117 - -1022.4043579102 - -1022.4121093750 - -1022.4422607422 - -1022.4569091797 - -1022.4624633789 - -1022.5352783203 - -1022.5490722656 - -1022.5141601562 - -1022.5935058594 - -1022.6186523438 - -1022.6176147461 - -1022.6258544922 - -1022.6716308594 - -1022.6915283203 - -1022.7196655273 - -1022.6679077148 - -1022.7397460938 - -1022.7648315430 - -1022.7404785156 - -1022.7712402344 - -1022.8020629883 - -1022.8218383789 - -1022.8106689453 - -1022.8274536133 - -1022.8339233398 - -1022.8632202148 - -1022.8568725586 - -1022.8843383789 - -1022.8732299805 - -1022.9085693359 - -1022.8861694336 - -1022.9116210938 - -1022.8987426758 - -1022.9614868164 - -1022.9130859375 - -1022.9540405273 - -1022.9463500977 - -1022.9717407227 - -1022.9785766602 - -1022.9544067383 - -1022.9903564453 - -1023.0144042969 - -1022.9581909180 - -1023.0227050781 - -1022.9976806641 - -1023.0083618164 - -1023.0208740234 - -1022.9984741211 - -1023.0321044922 - -1023.0208740234 - -1023.0142211914 - -1023.0039672852 - -1023.0220947266 - -1022.9948120117 - -1022.9994506836 - -1023.0067749023 - -1022.9817504883 - -1022.9748535156 - -1022.9720458984 - -1022.9786376953 - -1022.9323730469 - -1022.9628906250 - -1022.9141235352 - -1022.9479370117 - -1022.9176025391 - -1022.9202880859 - -1022.9053955078 - -1022.9266357422 - -1022.9006958008 - -1022.8889770508 - -1022.9304809570 - -1022.9160766602 - -1022.9084472656 - -1022.9020385742 - -1022.9471435547 - -1022.9458007812 - -1022.9439086914 - -1022.9974365234 - -1022.9824218750 - -1023.0360717773 - -1023.0393676758 - -1023.0165405273 - -1023.0922851562 - -1023.1281738281 - -1023.0650024414 - -1023.1299438477 - -1023.1759643555 - -1023.1435546875 - -1023.1502075195 - -1023.1871337891 - -1023.2027587891 - -1023.1374511719 - -1023.1884765625 - -1023.1915283203 - -1023.1182250977 - -1022.9787597656 - -1022.9258422852 - -1022.8436889648 - -1022.7475585938 - -1022.7495117188 - -1022.6508789062 - -1022.5430297852 - -1022.4798583984 - -1022.4522705078 - -1022.3240966797 - -1022.1988525391 - -1022.1975097656 - -1022.1014404297 - -1021.9495239258 - -1021.9118652344 - -1021.8419799805 - -1021.7235107422 - -1021.6723632812 - -1021.5482788086 - -1021.4913330078 - -1021.4194335938 - -1021.3150024414 - -1021.2438964844 - -1021.1881713867 - -1021.1331787109 - -1021.0244140625 - -1020.9647216797 - -1020.9215698242 - -1020.8344726562 - -1020.7779541016 - -1020.6994018555 - -1020.6694335938 - -1020.5585937500 - -1020.5422363281 - -1020.4353637695 - -1020.4150390625 - -1020.3372802734 - -1020.2680053711 - -1020.2066040039 - -1020.1601562500 - -1020.0812988281 - -1020.0079345703 - -1019.9650878906 - -1019.8779296875 - -1019.8143310547 - -1019.7545776367 - -1019.6954956055 - -1019.5911254883 - -1019.5438232422 - -1019.4659423828 - -1019.3831787109 - -1019.3380126953 - -1019.2061767578 - -1019.1929321289 - -1019.1019287109 - -1018.9915771484 - -1018.9511718750 - -1018.8732299805 - -1018.7839355469 - -1018.7127075195 - -1018.6131591797 - -1018.5880737305 - -1018.4559936523 - -1018.4002685547 - -1018.3082275391 - -1018.2571411133 - -1018.1584472656 - -1018.0919799805 - -1018.0013427734 - -1017.9392700195 - -1017.8394165039 - -1017.7646484375 - -1017.6784667969 - -1017.6194458008 - -1017.5341186523 - -1017.4309692383 - -1017.3334350586 - -1017.2945556641 - -1017.1922607422 - -1017.0574340820 - -1017.0404663086 - -1016.9395751953 - -1016.8533935547 - -1016.7419433594 - -1016.6619262695 - -1016.5979003906 - -1016.5033569336 - -1016.3575439453 - -1016.3231201172 - -1016.2425537109 - -1016.1016845703 - -1016.0278930664 - -1015.9483032227 - -1015.8476562500 - -1015.7688598633 - -1015.6639404297 - -1015.5603027344 - -1015.5208740234 - -1015.3574218750 - -1015.2863769531 - -1015.1973266602 - -1015.0978393555 - -1015.0180053711 - -1014.8812866211 - -1014.8389282227 - -1014.7051391602 - -1014.6114501953 - -1014.5120849609 - -1014.4076538086 - -1014.3295898438 - -1014.2244262695 - -1014.1022338867 - -1014.0314941406 - -1013.8988037109 - -1013.8237304688 - -1013.6937255859 - -1013.5869750977 - -1013.5194091797 - -1013.3742065430 - -1013.2813720703 - -1013.2035522461 - -1013.0707397461 - -1012.9690551758 - -1012.8668823242 - -1012.7423095703 - -1012.6604003906 - -1012.5150756836 - -1012.4203491211 - -1012.3494262695 - -1012.1687011719 - -1012.1262817383 - -1011.9784545898 - -1011.8744506836 - -1011.7349853516 - -1011.6783447266 - -1011.5258178711 - -1011.4081420898 - -1011.3339233398 - -1011.1766357422 - -1011.0841064453 - -1010.9501953125 - -1010.8330688477 - -1010.7531738281 - -1010.5925292969 - -1010.4931030273 - -1010.3843383789 - -1010.2446289062 - -1010.1200561523 - -1010.0311889648 - -1009.8582153320 - -1009.7902832031 - -1009.6528930664 - -1009.5186157227 - -1009.3960571289 - -1009.2951660156 - -1009.1362915039 - -1009.0198364258 - -1008.9054565430 - -1008.7747802734 - -1008.6521606445 - -1008.5142822266 - -1008.4086914062 - -1008.2474975586 - -1008.1456298828 - -1007.9846191406 - -1007.9077758789 - -1007.7262573242 - -1007.6233520508 - -1007.5008544922 - -1007.3311767578 - -1007.2125244141 - -1007.1154785156 - -1006.9321289062 - -1006.8256225586 - -1006.6959838867 - -1006.5379638672 - -1006.4063110352 - -1006.2912597656 - -1006.1385498047 - -1006.0004272461 - -1005.8661499023 - -1005.7217407227 - -1005.5851440430 - -1005.4354858398 - -1005.2987060547 - -1005.1831665039 - -1005.0295410156 - -1004.8325805664 - -1004.7772216797 - -1004.5836791992 - -1004.4182128906 - -1004.3055419922 - -1004.1920166016 - -1003.9781494141 - -1003.8785400391 - -1003.7062988281 - -1003.5692749023 - -1003.4389038086 - -1003.2431030273 - -1003.1512451172 - -1002.9631347656 - -1002.8168334961 - -1002.6684570312 - -1002.5164184570 - -1002.3814086914 - -1002.2048339844 - -1002.0580444336 - -1001.9073486328 - -1001.7586669922 - -1001.5964965820 - -1001.4436645508 - -1001.2807617188 - -1001.1311035156 - -1000.9632568359 - -1000.8158569336 - -1000.6405639648 - -1000.5246582031 - -1000.3004760742 - -1000.1795043945 - -1000.0148315430 - -999.8377685547 - -999.6906738281 - -999.5359497070 - -999.3365478516 - -999.2019653320 - -999.0252075195 - -998.8615112305 - -998.6951293945 - -998.5357055664 - -998.3573608398 - -998.1892089844 - -998.0383911133 - -997.8417358398 - -997.7039184570 - -997.5114135742 - -997.3252563477 - -997.2044067383 - -996.9877319336 - -996.8321533203 - -996.6520996094 - -996.4935913086 - -996.2844848633 - -996.1495361328 - -995.9618530273 - -995.7651977539 - -995.5895385742 - -995.4479980469 - -995.2292480469 - -995.0574951172 - -994.9038085938 - -994.6878051758 - -994.5361938477 - -994.3174438477 - -994.1895141602 - -993.9624023438 - -993.8008422852 - -993.5986328125 - -993.4259643555 - -993.2467041016 - -993.0634155273 - -992.8369750977 - -992.6935424805 - -992.4993286133 - -992.2957763672 - -992.0978393555 - -991.9362792969 - -991.7474975586 - -991.5255737305 - -991.3463745117 - -991.1799926758 - -990.9587402344 - -990.7558593750 - -990.5930786133 - -990.3861694336 - -990.1857910156 - -989.9699096680 - -989.8208007812 - -989.5778808594 - -989.4153442383 - -989.1895141602 - -988.9765014648 - -988.8355712891 - -988.5733642578 - -988.4003906250 - -988.1922607422 - -988.0011596680 - -987.7839965820 - -987.5911865234 - -987.3586425781 - -987.2149658203 - -986.9359741211 - -986.7607421875 - -986.5855102539 - -986.3215332031 - -986.1445312500 - -985.9426879883 - -985.7118530273 - -985.5238647461 - -985.2755737305 - -985.1141357422 - -984.8657836914 - -984.6559448242 - -984.4528808594 - -984.2385864258 - -984.0156860352 - -983.7994995117 - -983.5783081055 - -983.3743286133 - -983.1367187500 - -982.9550781250 - -982.6730957031 - -982.5123901367 - -982.2763671875 - -982.0301513672 - -981.8428955078 - -981.5896606445 - -981.4019165039 - -981.1447143555 - -980.9201660156 - -980.7160644531 - -980.4912109375 - -980.2306518555 - -980.0281372070 - -979.8121948242 - -979.5517578125 - -979.3398437500 - -979.1104125977 - -978.8675537109 - -978.6507568359 - -978.4067993164 - -978.1708984375 - -977.9455566406 - -977.7058105469 - -977.4688720703 - -977.2285766602 - -977.0030517578 - -976.7578125000 - -976.5255737305 - -976.2637939453 - -976.0521240234 - -975.7973022461 - -975.5559082031 - -975.2907104492 - -975.0966186523 - -974.8126831055 - -974.5692749023 - -974.3557739258 - -974.0606079102 - -973.8449707031 - -973.6071777344 - -973.3112792969 - -973.1088256836 - -972.8412475586 - -972.5867919922 - -972.3176269531 - -972.1134033203 - -971.8031005859 - -971.5763549805 - -971.3247680664 - -971.0548095703 - -970.7863769531 - -970.5731811523 - -970.2597656250 - -970.0302124023 - -969.7611694336 - -969.4967651367 - -969.2296142578 - -968.9828491211 - -968.6864013672 - -968.4583129883 - -968.1688232422 - -967.8850097656 - -967.6511230469 - -967.3687133789 - -967.0805664062 - -966.8313598633 - -966.5484008789 - -966.2811279297 - -965.9861450195 - -965.7219238281 - -965.4552001953 - -965.1635131836 - -964.8851318359 - -964.5956420898 - -964.3478393555 - -964.0239868164 - -963.7530517578 - -963.4835815430 - -963.1928100586 - -962.8855590820 - -962.6110839844 - -962.3442993164 - -962.0073852539 - -961.7540283203 - -961.4408569336 - -961.1442260742 - -960.8697509766 - -960.5499267578 - -960.2564086914 - -959.9798583984 - -959.6451416016 - -959.3637084961 - -959.0687255859 - -958.7234497070 - -958.4753417969 - -958.1307983398 - -957.8048706055 - -957.5457153320 - -957.2231445312 - -956.8627319336 - -956.5863647461 - -956.3016967773 - -955.9266967773 - -955.6195678711 - -955.3349609375 - -954.9914550781 - -954.6654052734 - -954.3446044922 - -954.0115356445 - -953.7395019531 - -953.3197631836 - -953.0510253906 - -952.7140502930 - -952.3801269531 - -952.0171508789 - -951.7100219727 - -951.3886108398 - -951.0023803711 - -950.6896362305 - -950.3432006836 - -949.9956665039 - -949.6463623047 - -949.3048706055 - -948.9509277344 - -948.5968627930 - -948.2828369141 - -947.8724975586 - -947.5598754883 - -947.1822509766 - -946.8324584961 - -946.4682006836 - -946.1162719727 - -945.7263793945 - -945.4105224609 - -945.0009765625 - -944.6400146484 - -944.2890014648 - -943.9187622070 - -943.5192260742 - -943.1489868164 - -942.8140258789 - -942.3952026367 - -942.0088500977 - -941.6813964844 - -941.2431030273 - -940.9027099609 - -940.4708862305 - -940.1320190430 - -939.7076416016 - -939.3466186523 - -938.9147949219 - -938.5612182617 - -938.1528930664 - -937.7432861328 - -937.3544921875 - -936.9694213867 - -936.5650024414 - -936.1400756836 - -935.7719116211 - -935.3502197266 - -934.9418334961 - -934.5464477539 - -934.1237792969 - -933.7430419922 - -933.3121948242 - -932.8976440430 - -932.5030517578 - -932.0817871094 - -931.6641845703 - -931.2579956055 - -930.8401489258 - -930.4138183594 - -930.0183105469 - -929.5725097656 - -929.1621093750 - -928.7634277344 - -928.3135375977 - -927.9086914062 - -927.4846191406 - -927.0583496094 - -926.6470947266 - -926.2037963867 - -925.7920532227 - -925.3897705078 - -924.9259643555 - -924.5267944336 - -924.1000976562 - -923.6767578125 - -923.2424316406 - -922.8375854492 - -922.3978271484 - -921.9588623047 - -921.5772094727 - -921.1126098633 - -920.7252807617 - -920.2488403320 - -919.8846435547 - -919.4345092773 - -918.9961547852 - -918.5932617188 - -918.1972656250 - -917.7482910156 - -917.3068237305 - -916.9387817383 - -916.5165405273 - -916.0386352539 - -915.7001342773 - -915.2519531250 - -914.8233642578 - -914.4528198242 - -913.9772949219 - -913.6502075195 - -913.1787109375 - -912.7822875977 - -912.4185791016 - -911.9542236328 - -911.6012573242 - -911.1782836914 - -910.7777709961 - -910.3912353516 - -909.9870605469 - -909.6009521484 - -909.2032470703 - -908.8177490234 - -908.4317016602 - -908.0319213867 - -907.6752319336 - -907.2478027344 - -906.9053344727 - -906.5275268555 - -906.1210327148 - -905.7741699219 - -905.4093017578 - -905.0186157227 - -904.6622314453 - -904.2980957031 - -903.9311523438 - -903.5822753906 - -903.2194213867 - -902.8492431641 - -902.5278930664 - -902.1649169922 - -901.8080444336 - -901.4700317383 - -901.1301269531 - -900.8025512695 - -900.4262084961 - -900.1206054688 - -899.8009033203 - -899.4453735352 - -899.1220703125 - -898.8099975586 - -898.4959106445 - -898.1440429688 - -897.8575439453 - -897.5290527344 - -897.2329101562 - -896.8957519531 - -896.6327514648 - -896.2677612305 - -896.0515747070 - -895.6661987305 - -895.4213867188 - -895.1301269531 - -894.8166503906 - -894.5331420898 - -894.2646484375 - -893.9666748047 - -893.6869506836 - -893.4098510742 - -893.1392211914 - -892.8594360352 - -892.6021118164 - -892.3032836914 - -892.0700073242 - -891.8009643555 - -891.5211791992 - -891.2612304688 - -891.0548706055 - -890.7375488281 - -890.5142822266 - -890.2636718750 - -890.0188598633 - -889.7611694336 - -889.5258789062 - -889.3019409180 - -889.0264892578 - -888.8359985352 - -888.5633544922 - -888.3485107422 - -888.1171264648 - -887.8777465820 - -887.6767578125 - -887.4062500000 - -887.2302856445 - -886.9798583984 - -886.7819824219 - -886.5318603516 - -886.3413696289 - -886.1357421875 - -885.9011230469 - -885.6715087891 - -885.5232543945 - -885.2769775391 - -885.0498046875 - -884.8898315430 - -884.6629028320 - -884.4699707031 - -884.2482299805 - -884.0791015625 - -883.8530883789 - -883.6931152344 - -883.4611206055 - -883.2847900391 - -883.0930786133 - -882.9147338867 - -882.6841430664 - -882.5373535156 - -882.3300170898 - -882.1380004883 - -881.9796752930 - -881.7363891602 - -881.6353759766 - -881.3997192383 - -881.2046508789 - -881.0671997070 - -880.8619384766 - -880.6832885742 - -880.5023803711 - -880.3330688477 - -880.1505737305 - -879.9799194336 - -879.7949218750 - -879.6339721680 - -879.4443359375 - -879.2776489258 - -879.1041870117 - -878.9226684570 - -878.7736816406 - -878.5844726562 - -878.4014282227 - -878.2642211914 - -878.0594482422 - -877.9047241211 - -877.7424316406 - -877.5394897461 - -877.4321289062 - -877.2052612305 - -877.0438232422 - -876.9151000977 - -876.7069091797 - -876.5440673828 - -876.3933715820 - -876.2243041992 - -876.0344848633 - -875.8803710938 - -875.7247314453 - -875.5161743164 - -875.4161987305 - -875.1740722656 - -875.0543212891 - -874.8791503906 - -874.7128295898 - -874.5166015625 - -874.3845825195 - -874.2183227539 - -873.9944458008 - -873.8882446289 - -873.6956176758 - -873.5208740234 - -873.3724365234 - -873.1748046875 - -873.0130615234 - -872.8743896484 - -872.6563110352 - -872.5134887695 - -872.3385620117 - -872.1809082031 - -871.9795532227 - -871.8389892578 - -871.6384887695 - -871.4943237305 - -871.2898559570 - -871.1353149414 - -870.9649047852 - -870.7963256836 - -870.5848388672 - -870.4472045898 - -870.2631835938 - -870.0740356445 - -869.9031982422 - -869.7435913086 - -869.5376586914 - -869.3752441406 - -869.1870727539 - -869.0209960938 - -868.8095092773 - -868.6716918945 - -868.4492187500 - -868.3130493164 - -868.0851440430 - -867.9167480469 - -867.7642211914 - -867.5047607422 - -867.3832397461 - -867.1828613281 - -866.9738769531 - -866.8173828125 - -866.6035156250 - -866.4212646484 - -866.2511596680 - -866.0483398438 - -865.8410034180 - -865.6649169922 - -865.4940185547 - -865.2432250977 - -865.0965576172 - -864.8909301758 - -864.6848144531 - -864.4971313477 - -864.2879638672 - -864.1108398438 - -863.8966064453 - -863.6655273438 - -863.5358276367 - -863.2792968750 - -863.0654296875 - -862.9147338867 - -862.6728515625 - -862.4681396484 - -862.2805175781 - -862.0344238281 - -861.8892211914 - -861.6228027344 - -861.4332275391 - -861.2283325195 - -861.0136108398 - -860.8259277344 - -860.5769653320 - -860.3635253906 - -860.1751098633 - -859.9577026367 - -859.7196044922 - -859.4960937500 - -859.3148803711 - -859.0759887695 - -858.8265991211 - -858.6543579102 - -858.4179077148 - -858.1756591797 - -857.9390869141 - -857.7626342773 - -857.5173950195 - -857.2426757812 - -857.0732421875 - -856.8344726562 - -856.5904541016 - -856.3562011719 - -856.1310424805 - -855.8956298828 - -855.6884765625 - -855.4041748047 - -855.2125854492 - -854.9378662109 - -854.7289428711 - -854.4937744141 - -854.2280273438 - -854.0295410156 - -853.7400512695 - -853.5174560547 - -853.2925415039 - -853.0390014648 - -852.7777099609 - -852.5540771484 - -852.2888793945 - -852.0319213867 - -851.8154907227 - -851.5537109375 - -851.2862548828 - -851.0374755859 - -850.7969970703 - -850.5407714844 - -850.2858886719 - -850.0247192383 - -849.7578125000 - -849.5186767578 - -849.2540283203 - -848.9881591797 - -848.7327270508 - -848.4711303711 - -848.1781616211 - -847.9685668945 - -847.6917114258 - -847.3972778320 - -847.1703491211 - -846.8745117188 - -846.5899658203 - -846.3654174805 - -846.0921630859 - -845.7765502930 - -845.5439453125 - -845.2630004883 - -844.9725952148 - -844.7149047852 - -844.4398193359 - -844.1728515625 - -843.8643188477 - -843.5969848633 - -843.3219604492 - -843.0565795898 - -842.7482910156 - -842.4716186523 - -842.1983642578 - -841.8822631836 - -841.6390380859 - -841.3421020508 - -841.0520629883 - -840.7694091797 - -840.4472045898 - -840.2013549805 - -839.8721313477 - -839.6260375977 - -839.3153686523 - -838.9965820312 - -838.7105102539 - -838.4447021484 - -838.1036376953 - -837.8500976562 - -837.5571289062 - -837.2216186523 - -836.9539184570 - -836.6076660156 - -836.3530883789 - -836.0213012695 - -835.7405395508 - -835.4490966797 - -835.1026611328 - -834.8381958008 - -834.4989624023 - -834.1923217773 - -833.9148559570 - -833.5739746094 - -833.2855224609 - -832.9647827148 - -832.6327514648 - -832.3336181641 - -832.0432739258 - -831.6970214844 - -831.4181518555 - -831.0563964844 - -830.7612915039 - -830.4345092773 - -830.1281738281 - -829.8073120117 - -829.4921875000 - -829.1680297852 - -828.8373413086 - -828.5214843750 - -828.1744995117 - -827.8872680664 - -827.5554199219 - -827.2172241211 - -826.9092407227 - -826.5894165039 - -826.2135620117 - -825.9335327148 - -825.5514526367 - -825.2656250000 - -824.9227294922 - -824.5988769531 - -824.2463378906 - -823.9467163086 - -823.5817260742 - -823.2467041016 - -822.8939819336 - -822.5982666016 - -822.2448730469 - -821.9097900391 - -821.5430908203 - -821.2583618164 - -820.8493652344 - -820.5370483398 - -820.1947021484 - -819.8743896484 - -819.5060424805 - -819.1603393555 - -818.8357543945 - -818.4456787109 - -818.1312255859 - -817.7737426758 - -817.4409179688 - -817.0807495117 - -816.7447509766 - -816.3913574219 - -816.0545043945 - -815.6441040039 - -815.3569335938 - -814.9541015625 - -814.6108398438 - -814.3003540039 - -813.8897705078 - -813.5763549805 - -813.2149047852 - -812.8558349609 - -812.4841308594 - -812.1464233398 - -811.7616577148 - -811.3906860352 - -811.0435791016 - -810.7312622070 - -810.2985229492 - -809.9571533203 - -809.6138305664 - -809.2239379883 - -808.8483886719 - -808.4796752930 - -808.1721191406 - -807.7662963867 - -807.3814697266 - -807.0563964844 - -806.6572875977 - -806.2774658203 - -805.9176025391 - -805.5319824219 - -805.1961669922 - -804.8270263672 - -804.4053344727 - -804.0857543945 - -803.7086791992 - -803.3342285156 - -802.9307250977 - -802.5906372070 - -802.2282104492 - -801.8327026367 - -801.4000244141 - -801.0953979492 - -800.6742553711 - -800.2943725586 - -799.9361572266 - -799.5460205078 - -799.1881103516 - -798.7772216797 - -798.3942871094 - -798.0092163086 - -797.6262207031 - -797.2318725586 - -796.8912353516 - -796.4406738281 - -796.1046142578 - -795.6683349609 - -795.3073120117 - -794.9063720703 - -794.5585327148 - -794.1032714844 - -793.7992553711 - -793.3439941406 - -792.9955444336 - -792.5946655273 - -792.2067260742 - -791.8106079102 - -791.4463500977 - -791.0073852539 - -790.6706542969 - -790.2518920898 - -789.8469848633 - -789.4843750000 - -789.0697021484 - -788.6891479492 - -788.2803955078 - -787.8962402344 - -787.4675292969 - -787.0857543945 - -786.6648559570 - -786.2753295898 - -785.8736572266 - -785.4465942383 - -785.0504760742 - -784.6370239258 - -784.2343139648 - -783.8215332031 - -783.4068603516 - -782.9981079102 - -782.5843505859 - -782.2183227539 - -781.7855834961 - -781.3673095703 - -781.0074462891 - -780.5935668945 - -780.1749877930 - -779.8215332031 - -779.4149169922 - -779.0483398438 - -778.6012573242 - -778.2969360352 - -777.8767700195 - -777.5408935547 - -777.1782226562 - -776.7869873047 - -776.4576416016 - -776.0794067383 - -775.7163696289 - -775.3389892578 - -775.0243530273 - -774.6060180664 - -774.3103637695 - -773.8768920898 - -773.5101928711 - -773.1927490234 - -772.8151855469 - -772.3520507812 - -771.9404907227 - -771.7230224609 - -771.2734375000 - -770.4979248047 - -768.7987670898 - -768.0383911133 - -767.5249633789 - -767.1967163086 - -766.8356933594 - -766.2868652344 - -765.8002319336 - -765.4301757812 - -765.0672607422 - -764.5027465820 - -764.0640869141 - -763.6921997070 - -763.2780761719 - -762.7299194336 - -762.3555908203 - -761.9221191406 - -761.4630737305 - -761.0447998047 - -760.5488281250 - -760.1712646484 - -759.6984252930 - -759.2814331055 - -758.7856445312 - -758.3825683594 - -757.9454956055 - -757.4790039062 - -757.0246582031 - -756.5977172852 - -756.1564941406 - -755.7065429688 - -755.2128906250 - -754.8469238281 - -754.3245239258 - -753.9399414062 - -753.4218139648 - -753.0288696289 - -752.5624389648 - -752.0991210938 - -751.6621093750 - -751.2189331055 - -750.7525024414 - -750.3043212891 - -749.8717041016 - -749.4106445312 - -748.9414672852 - -748.5178222656 - -748.0729370117 - -747.5884399414 - -747.1552124023 - -746.7243041992 - -746.2495117188 - -745.8156127930 - -745.3308715820 - -744.9244995117 - -744.4734497070 - -743.9672851562 - -743.5668945312 - -743.1026611328 - -742.6677856445 - -742.1646728516 - -741.7546386719 - -741.3170776367 - -740.8228759766 - -740.3897094727 - -739.9402465820 - -739.4820556641 - -739.0452880859 - -738.5532836914 - -738.1238403320 - -737.6874389648 - -737.2074584961 - -736.7613525391 - -736.3005371094 - -735.8539428711 - -735.4170532227 - -734.9258422852 - -734.4709472656 - -734.0805664062 - -733.5634765625 - -733.1035766602 - -732.6967163086 - -732.2041625977 - -731.7620849609 - -731.3037109375 - -730.8338012695 - -730.4120483398 - -729.9449462891 - -729.4558715820 - -729.0344238281 - -728.5942993164 - -728.0977783203 - -727.6525878906 - -727.2219848633 - -726.7435302734 - -726.2790527344 - -725.8434448242 - -725.3564453125 - -724.9417114258 - -724.4386596680 - -724.0122680664 - -723.5541381836 - -723.0686035156 - -722.6519165039 - -722.1566772461 - -721.7144165039 - -721.2490234375 - -720.8093872070 - -720.3408203125 - -719.8530883789 - -719.4440307617 - -718.9662475586 - -718.4757690430 - -718.0565185547 - -717.5911254883 - -717.1221923828 - -716.6636352539 - -716.2092895508 - -715.7575073242 - -715.2975463867 - -714.8035278320 - -714.3955688477 - -713.8955078125 - -713.4543457031 - -712.9912719727 - -712.5205688477 - -712.0885009766 - -711.6049194336 - -711.1260375977 - -710.7385253906 - -710.1770629883 - -709.7916259766 - -709.2993774414 - -708.8493652344 - -708.3757324219 - -707.9342651367 - -707.4663085938 - -706.9757080078 - -706.5740966797 - -706.0390625000 - -705.6467285156 - -705.1453247070 - -704.6830444336 - -704.2476196289 - -703.7552490234 - -703.3028564453 - -702.8624877930 - -702.3615722656 - -701.9323120117 - -701.4691162109 - -700.9763793945 - -700.5478515625 - -700.0707397461 - -699.6082763672 - -699.1361694336 - -698.6995849609 - -698.2208862305 - -697.7487792969 - -697.3079223633 - -696.8305053711 - -696.3703613281 - -695.8965454102 - -695.4638061523 - -694.9644165039 - -694.5314941406 - -694.0421142578 - -693.6139526367 - -693.1102905273 - -692.6582641602 - -692.2280883789 - -691.7237548828 - -691.2620849609 - -690.8408813477 - -690.3262329102 - -689.8744506836 - -689.4453125000 - -688.9503173828 - -688.4641723633 - -688.0670166016 - -687.5451049805 - -687.0917968750 - -686.6536254883 - -686.1555175781 - -685.7368774414 - -685.2188110352 - -684.7886352539 - -684.3288574219 - -683.8520507812 - -683.3489379883 - -682.9688720703 - -682.4598388672 - -681.9725952148 - -681.5313720703 - -681.0957641602 - -680.5753784180 - -680.1431274414 - -679.6821899414 - -679.2031860352 - -678.7689208984 - -678.2350463867 - -677.8422241211 - -677.3608398438 - -676.8740234375 - -676.4224853516 - -675.9627685547 - -675.4992065430 - -675.0144653320 - -674.5631103516 - -674.1134033203 - -673.6302490234 - -673.1644897461 - -672.7047729492 - -672.2463378906 - -671.7777099609 - -671.2915039062 - -670.8771362305 - -670.3499755859 - -669.9445800781 - -669.4281616211 - -669.0053100586 - -668.5106201172 - -668.0592651367 - -667.5902099609 - -667.1261596680 - -666.6586914062 - -666.2092895508 - -665.7277221680 - -665.2701416016 - -664.7996826172 - -664.3395385742 - -663.8754882812 - -663.4011230469 - -662.9569091797 - -662.4532470703 - -662.0314941406 - -661.5461425781 - -661.0625610352 - -660.6547241211 - -660.1166992188 - -659.7050781250 - -659.2225952148 - -658.7637329102 - -658.2697143555 - -657.8475952148 - -657.3576049805 - -656.8804321289 - -656.4348754883 - -655.9782104492 - -655.4930419922 - -655.0148315430 - -654.5892944336 - -654.0986938477 - -653.6409301758 - -653.1617431641 - -652.7294921875 - -652.2243041992 - -651.7873535156 - -651.3015136719 - -650.8498535156 - -650.3805541992 - -649.9105224609 - -649.4393920898 - -648.9931640625 - -648.5014038086 - -648.0571899414 - -647.5675659180 - -647.1243286133 - -646.6483154297 - -646.1817016602 - -645.7070312500 - -645.2603759766 - -644.7868652344 - -644.3018188477 - -643.8605346680 - -643.3752441406 - -642.9250488281 - -642.4302978516 - -641.9990844727 - -641.4891357422 - -641.0689086914 - -640.5679931641 - -640.0989379883 - -639.6635131836 - -639.1636352539 - -638.7012939453 - -638.2401733398 - -637.7884521484 - -637.2669677734 - -636.8608398438 - -636.3423461914 - -635.9118652344 - -635.4020996094 - -634.9500122070 - -634.5119018555 - -633.9815673828 - -633.5457763672 - -633.0938110352 - -632.5845336914 - -632.1367797852 - -631.6553344727 - -631.2048339844 - -630.7019653320 - -630.2489624023 - -629.7780761719 - -629.2952270508 - -628.8289184570 - -628.3616943359 - -627.8591918945 - -627.4317016602 - -626.9104614258 - -626.4761352539 - -625.9689941406 - -625.5122070312 - -625.0427856445 - -624.5452880859 - -624.0786132812 - -623.5993041992 - -623.1365966797 - -622.6505737305 - -622.1455078125 - -621.7095336914 - -621.2243652344 - -620.7117309570 - -620.2427978516 - -619.7958374023 - -619.2761840820 - -618.8085937500 - -618.3206787109 - -617.8549804688 - -617.3610229492 - -616.8661499023 - -616.3815307617 - -615.9253540039 - -615.4049682617 - -614.9420776367 - -614.4243164062 - -613.9805297852 - -613.4548950195 - -612.9864501953 - -612.4610595703 - -612.0349731445 - -611.4815063477 - -611.0166015625 - -610.4974975586 - -610.0481567383 - -609.5147705078 - -609.0156250000 - -608.5426025391 - -608.0304565430 - -607.5268554688 - -607.0433349609 - -606.5073242188 - -606.0471191406 - -605.5208129883 - -605.0056762695 - -604.5184326172 - -604.0151367188 - -603.4871826172 - -602.9812622070 - -602.4870605469 - -601.9682617188 - -601.4203491211 - -600.9690551758 - -600.3919067383 - -599.9225463867 - -599.3572387695 - -598.8692016602 - -598.3480224609 - -597.7974243164 - -597.2825927734 - -596.7799682617 - -596.2263793945 - -595.6875000000 - -595.1751098633 - -594.6533203125 - -594.0834960938 - -593.5633544922 - -593.0310058594 - -592.4918212891 - -591.9204711914 - -591.3987426758 - -590.8530273438 - -590.2974243164 - -589.7396240234 - -589.1785278320 - -588.6660156250 - -588.0574340820 - -587.5137329102 - -586.9746093750 - -586.3812255859 - -585.8241577148 - -585.2628173828 - -584.6762695312 - -584.1099853516 - -583.5357666016 - -582.9520263672 - -582.3623046875 - -581.7902221680 - -581.2070922852 - -580.5877685547 - -580.0379028320 - -579.3944091797 - -578.8396606445 - -578.2167968750 - -577.5859375000 - -577.0346069336 - -576.3969726562 - -575.7392578125 - -575.2015991211 - -574.5440673828 - -573.8922119141 - -573.2998046875 - -572.6788940430 - -572.0158081055 - -571.3780517578 - -570.7673339844 - -570.0989379883 - -569.4686889648 - -568.7930908203 - -568.1461791992 - -567.5394897461 - -566.7888793945 - -566.1691894531 - -565.5141601562 - -564.8294677734 - -564.1108398438 - -563.4856567383 - -562.7892456055 - -562.0736694336 - -561.3868408203 - -560.6984252930 - -559.9981079102 - -559.2753295898 - -558.5749511719 - -557.8521118164 - -557.1528930664 - -556.4277343750 - -555.6641845703 - -554.9909667969 - -554.2089233398 - -553.4754638672 - -552.7534790039 - -551.9904785156 - -551.2106323242 - -550.5157470703 - -549.6961059570 - -548.9398803711 - -548.1953735352 - -547.4072265625 - -546.6035766602 - -545.8288574219 - -545.0769653320 - -544.2265014648 - -543.4625854492 - -542.6580200195 - -541.8458862305 - -541.0407714844 - -540.1967163086 - -539.4186401367 - -538.5557861328 - -537.7539062500 - -536.8890380859 - -536.0770874023 - -535.2209472656 - -534.3644409180 - -533.5277709961 - -532.6680297852 - -531.8124389648 - -530.9406738281 - -530.0863037109 - -529.1988525391 - -528.3201293945 - -527.4612426758 - -526.5470581055 - -525.6867675781 - -524.7922363281 - -523.8778686523 - -522.9979248047 - -522.0925903320 - -521.1765136719 - -520.2791748047 - -519.3721923828 - -518.4229736328 - -517.5399780273 - -516.6019897461 - -515.6611938477 - -514.7623901367 - -513.8218994141 - -512.8706054688 - -511.9549560547 - -510.9975891113 - -510.0734863281 - -509.1047058105 - -508.1699523926 - -507.2586975098 - -506.2444458008 - -505.3370361328 - -504.3783569336 - -503.4050598145 - -502.4774780273 - -501.4933471680 - -500.5491943359 - -499.5769348145 - -498.6191711426 - -497.6717529297 - -496.7031250000 - -495.7005004883 - -494.8058166504 - -493.7719726562 - -492.8516540527 - -491.8584289551 - -490.9239196777 - -489.9625244141 - -488.9469604492 - -488.0289001465 - -487.0803527832 - -486.0472412109 - -485.1801147461 - -484.1473083496 - -483.2184448242 - -482.2722473145 - -481.2564392090 - -480.3823547363 - -479.3767089844 - -478.4273376465 - -477.5233764648 - -476.5075683594 - -475.6234741211 - -474.6503601074 - -473.7055664062 - -472.8051147461 - -471.8226318359 - -470.9199829102 - -469.9928588867 - -469.0547180176 - -468.1441650391 - -467.2008972168 - -466.3211059570 - -465.3578491211 - -464.4747314453 - -463.5868835449 - -462.6484069824 - -461.7630310059 - -460.8964843750 - -459.9661254883 - -459.0920104980 - -458.2170410156 - -457.3282165527 - -456.4615783691 - -455.5983886719 - -454.7076416016 - -453.8714599609 - -453.0206298828 - -452.1416320801 - -451.3134460449 - -450.4712524414 - -449.6339721680 - -448.7751770020 - -447.9669799805 - -447.1567993164 - -446.3126831055 - -445.5110473633 - -444.7065124512 - -443.9006042480 - -443.0895080566 - -442.3022460938 - -441.5176086426 - -440.7231445312 - -439.9460449219 - -439.1919860840 - -438.3738403320 - -437.6800842285 - -436.8448181152 - -436.1563720703 - -435.3737792969 - -434.6334838867 - -433.9046630859 - -433.1711425781 - -432.4214782715 - -431.7152404785 - -431.0036010742 - -430.2581176758 - -429.5826110840 - -428.8734741211 - -428.1387329102 - -427.4866333008 - -426.7962036133 - -426.0662231445 - -425.4214477539 - -424.7664794922 - -424.0395507812 - -423.4101562500 - -422.7421875000 - -422.0937194824 - -421.4198303223 - -420.7793273926 - -420.1561584473 - -419.4891052246 - -418.8780517578 - -418.2076110840 - -417.6318664551 - -416.9832153320 - -416.3489379883 - -415.7666931152 - -415.1459960938 - -414.5254516602 - -413.9302368164 - -413.3553771973 - -412.7177124023 - -412.1595458984 - -411.5649108887 - -410.9805908203 - -410.3841247559 - -409.8421325684 - -409.2418823242 - -408.6757202148 - -408.1306762695 - -407.5241088867 - -407.0218505859 - -406.4196777344 - -405.8755187988 - -405.3360290527 - -404.8041076660 - -404.2147216797 - -403.7160034180 - -403.1489257812 - -402.6516418457 - -402.0656127930 - -401.5749511719 - -401.0385742188 - -400.5044250488 - -400.0032653809 - -399.4346923828 - -398.9941101074 - -398.4242248535 - -397.9053039551 - -397.4388427734 - -396.8912048340 - -396.4002685547 - -395.9046936035 - -395.3784484863 - -394.9006652832 - -394.4031372070 - -393.8950500488 - -393.4093933105 - -392.9047851562 - -392.4349670410 - -391.9284973145 - -391.4350585938 - -390.9740295410 - -390.4859008789 - -389.9721374512 - -389.5279541016 - -389.0310974121 - -388.5610961914 - -388.0755004883 - -387.5862426758 - -387.1720886230 - -386.6323242188 - -386.1674804688 - -385.7517395020 - -385.2189331055 - -384.7851867676 - -384.2947387695 - -383.8669738770 - -383.3611145020 - -382.9038391113 - -382.4610595703 - -381.9650878906 - -381.5490722656 - -381.0255432129 - -380.6179504395 - -380.1452331543 - -379.6729431152 - -379.2160644531 - -378.7673950195 - -378.3219299316 - -377.8141479492 - -377.4027099609 - -376.9410095215 - -376.4782409668 - -376.0171813965 - -375.5657958984 - -375.1019592285 - -374.6920166016 - -374.1580810547 - -373.7687377930 - -373.2894897461 - -372.8609924316 - -372.3588867188 - -371.9603576660 - -371.4636230469 - -371.0502319336 - -370.5488586426 - -370.1304321289 - -369.6806640625 - -369.2260742188 - -368.7350158691 - -368.3255004883 - -367.8616638184 - -367.4063720703 - -366.9343872070 - -366.5175781250 - -366.0468444824 - -365.5864562988 - -365.1206054688 - -364.7052001953 - -364.2070922852 - -363.7847290039 - -363.3034362793 - -362.8866882324 - -362.3984069824 - -361.9422912598 - -361.5174865723 - -361.0079956055 - -360.5864257812 - -360.1420593262 - -359.6360473633 - -359.2339477539 - -358.7353820801 - -358.2861022949 - -357.8482055664 - -357.3713378906 - -356.8981323242 - -356.4632568359 - -356.0015869141 - -355.5033874512 - -355.0761718750 - -354.6189880371 - -354.1229553223 - -353.6784667969 - -353.2256164551 - -352.7416381836 - -352.2826232910 - -351.8007507324 - -351.3706054688 - -350.8799133301 - -350.3714294434 - -349.9877319336 - -349.4530029297 - -348.9941711426 - -348.5440673828 - -348.0427246094 - -347.6051330566 - -347.1030578613 - -346.6463623047 - -346.1564636230 - -345.7083740234 - -345.2279968262 - -344.7434082031 - -344.2499389648 - -343.8060913086 - -343.3151855469 - -342.8339843750 - -342.3377380371 - -341.8857421875 - -341.4003295898 - -340.8884277344 - -340.4480590820 - -339.9465026855 - -339.4603881836 - -338.9501953125 - -338.5202026367 - -338.0014953613 - -337.4851684570 - -337.0448303223 - -336.5447387695 - -336.0406799316 - -335.5562744141 - -335.0583190918 - -334.5820922852 - -334.0875244141 - -333.5718994141 - -333.1070861816 - -332.5834960938 - -332.0967407227 - -331.6277465820 - -331.0996093750 - -330.6250915527 - -330.0895385742 - -329.6190490723 - -329.1265869141 - -328.6014709473 - -328.1121520996 - -327.6103210449 - -327.0945129395 - -326.5710449219 - -326.1271362305 - -325.5646667480 - -325.0788574219 - -324.5616455078 - -324.0508728027 - -323.5658569336 - -323.0312500000 - -322.5280151367 - -322.0011596680 - -321.5046691895 - -320.9884338379 - -320.4648437500 - -319.9581909180 - -319.4313964844 - -318.8972778320 - -318.4243774414 - -317.8952941895 - -317.3479919434 - -316.8699340820 - -316.3052368164 - -315.7951049805 - -315.2785644531 - -314.7892150879 - -314.1871643066 - -313.7272338867 - -313.1807556152 - -312.6370544434 - -312.1279602051 - -311.6030273438 - -311.0814208984 - -310.5130615234 - -310.0011291504 - -309.4815368652 - -308.9492492676 - -308.3930664062 - -307.8669433594 - -307.3487548828 - -306.7714843750 - -306.2605895996 - -305.7585144043 - -305.1744384766 - -304.6589660645 - -304.0811767578 - -303.5807495117 - -303.0261840820 - -302.4884033203 - -301.9476318359 - -301.3966674805 - -300.8450317383 - -300.2974548340 - -299.7650146484 - -299.2315368652 - -298.6805419922 - -298.1033020020 - -297.6031799316 - -296.9803466797 - -296.4989013672 - -295.9008178711 - -295.3844299316 - -294.8495178223 - -294.2239379883 - -293.7472229004 - -293.1502685547 - -292.5759277344 - -292.0682373047 - -291.4913940430 - -290.9205017090 - -290.3799133301 - -289.8045654297 - -289.2311401367 - -288.7115173340 - -288.1296997070 - -287.5740661621 - -286.9938354492 - -286.4328918457 - -285.8801879883 - -285.3033142090 - -284.7556152344 - -284.1871337891 - -283.6195983887 - -283.0355529785 - -282.4871826172 - -281.8920288086 - -281.3448486328 - -280.7852172852 - -280.1979370117 - -279.6428222656 - -279.0684509277 - -278.4757080078 - -277.9259338379 - -277.3061523438 - -276.7908325195 - -276.1816406250 - -275.6264343262 - -275.0390930176 - -274.4725952148 - -273.8849792480 - -273.3066101074 - -272.6884460449 - -272.1876220703 - -271.5478515625 - -271.0073242188 - -270.3838500977 - -269.8453979492 - -269.2160034180 - -268.6501159668 - -268.0729980469 - -267.4887695312 - -266.9294128418 - -266.2797851562 - -265.7570190430 - -265.1204833984 - -264.5466308594 - -263.9677429199 - -263.3859863281 - -262.7852783203 - -262.2192077637 - -261.6013793945 - -261.0552978516 - -260.3917541504 - -259.8563537598 - -259.2256469727 - -258.6449584961 - -258.0902404785 - -257.4424438477 - -256.8805236816 - -256.3059692383 - -255.6891632080 - -255.0693969727 - -254.5220031738 - -253.8844757080 - -253.2708282471 - -252.6961059570 - -252.1354217529 - -251.4850006104 - -250.8804779053 - -250.3233184814 - -249.6830444336 - -249.0720214844 - -248.4868774414 - -247.9067535400 - -247.2965698242 - -246.6598205566 - -246.1067199707 - -245.4712677002 - -244.8440856934 - -244.2637939453 - -243.6522674561 - -243.0517730713 - -242.4575958252 - -241.8296966553 - -241.2480316162 - -240.6300201416 - -240.0428924561 - -239.4002838135 - -238.8198699951 - -238.2303161621 - -237.5807189941 - -236.9523162842 - -236.4017333984 - -235.7144165039 - -235.1420898438 - -234.5482330322 - -233.9037628174 - -233.3213653564 - -232.6870727539 - -232.0681610107 - -231.4565277100 - -230.8256530762 - -230.2120819092 - -229.6492156982 - -228.9520721436 - -228.3888244629 - -227.7252502441 - -227.1322326660 - -226.5148162842 - -225.9053497314 - -225.2382507324 - -224.7192230225 - -224.0112609863 - -223.4383087158 - -222.8016510010 - -222.2161102295 - -221.5574493408 - -220.9606933594 - -220.3270568848 - -219.7332153320 - -219.0999450684 - -218.4530944824 - -217.8703765869 - -217.2411499023 - -216.6095275879 - -215.9782104492 - -215.3812255859 - -214.7171783447 - -214.0991210938 - -213.4649200439 - -212.8480224609 - -212.2095336914 - -211.5633544922 - -210.9476013184 - -210.3007202148 - -209.6609497070 - -209.0584716797 - -208.3762664795 - -207.7823791504 - -207.0984039307 - -206.5531005859 - -205.8703765869 - -205.2276916504 - -204.6409301758 - -204.0162200928 - -203.3703613281 - -202.7735443115 - -202.1487731934 - -201.5799407959 - -200.8836059570 - -200.3599700928 - -199.7010955811 - -199.1747131348 - -198.5513916016 - -197.9518280029 - -197.3803710938 - -196.7825317383 - -196.2347412109 - -195.5660705566 - -195.0352020264 - -194.4409942627 - -193.9112701416 - -193.1841125488 - -192.6402130127 - -192.1344146729 - -191.5039672852 - -190.7607269287 - -190.1792907715 - -189.7862701416 - -189.0767059326 - -187.9308013916 - -185.3997192383 - -184.2575531006 - -183.5324859619 - -183.1126556396 - -182.5435028076 - -181.7793731689 - -181.1224670410 - -180.6038818359 - -180.0609741211 - -179.3020782471 - -178.7376251221 - -178.1546936035 - -177.5997314453 - -176.8895874023 - -176.3391113281 - -175.7278137207 - -175.1249084473 - -174.5188140869 - -173.8631134033 - -173.3266754150 - -172.6549224854 - -172.1039276123 - -171.3958587646 - -170.8182067871 - -170.1860961914 - -169.5618438721 - -168.9071960449 - -168.2794036865 - -167.6729125977 - -167.0225524902 - -166.3250274658 - -165.7797546387 - -165.0693969727 - -164.4814758301 - -163.7742004395 - -163.1764221191 - -162.5212097168 - -161.8622436523 - -161.2366180420 - -160.5864562988 - -159.9323120117 - -159.3011474609 - -158.6640625000 - -158.0267944336 - -157.3529663086 - -156.7464294434 - -156.1063995361 - -155.4495391846 - -154.8157196045 - -154.2165222168 - -153.5527191162 - -152.9157257080 - -152.2860260010 - -151.6601867676 - -151.0424346924 - -150.3571014404 - -149.7685699463 - -149.1165008545 - -148.5225830078 - -147.8030548096 - -147.2584075928 - -146.5955657959 - -145.9506072998 - -145.3252868652 - -144.7107849121 - -144.0419769287 - -143.4543151855 - -142.7471313477 - -142.1626586914 - -141.5388336182 - -140.8844757080 - -140.2580108643 - -139.6202697754 - -138.9773254395 - -138.3757171631 - -137.7067108154 - -137.0894927979 - -136.5145721436 - -135.8040771484 - -135.2157287598 - -134.5936279297 - -133.9205017090 - -133.3115997314 - -132.7025146484 - -132.0437774658 - -131.4451446533 - -130.8053588867 - -130.1826171875 - -129.5547637939 - -128.9433898926 - -128.3039093018 - -127.6779251099 - -127.0804824829 - -126.4294281006 - -125.7780990601 - -125.1981353760 - -124.5366668701 - -123.9243927002 - -123.2967376709 - -122.6976165771 - -122.0665359497 - -121.4031372070 - -120.8281478882 - -120.1862869263 - -119.5335769653 - -118.9357757568 - -118.3385772705 - -117.7012786865 - -117.0387344360 - -116.4740982056 - -115.8286437988 - -115.1798629761 - -114.5912780762 - -113.9926452637 - -113.3306427002 - -112.7400588989 - -112.1323318481 - -111.4896697998 - -110.9125289917 - -110.2286300659 - -109.6653289795 - -109.0118484497 - -108.4202651978 - -107.7946624756 - -107.1795349121 - -106.5825195312 - -105.9676589966 - -105.3095397949 - -104.7715606689 - -104.0695648193 - -103.5060958862 - -102.8800811768 - -102.2768096924 - -101.6718063354 - -101.0345535278 - -100.4517211914 - -99.7982482910 - -99.2416381836 - -98.5576934814 - -98.0334243774 - -97.3792724609 - -96.7699356079 - -96.1653900146 - -95.5520629883 - -94.9404296875 - -94.3570251465 - -93.7095336914 - -93.1594924927 - -92.5199432373 - -91.9185028076 - -91.3130722046 - -90.7005844116 - -90.1080093384 - -89.4882354736 - -88.9031524658 - -88.3095474243 - -87.6841812134 - -87.1053848267 - -86.4857711792 - -85.8852233887 - -85.2781982422 - -84.7033462524 - -84.0797348022 - -83.5012512207 - -82.8932723999 - -82.2969055176 - -81.6866912842 - -81.0792770386 - -80.5257415771 - -79.9024581909 - -79.2956924438 - -78.7308197021 - -78.1050491333 - -77.5013427734 - -76.9567947388 - -76.3367309570 - -75.7041320801 - -75.1953277588 - -74.5270767212 - -73.9529571533 - -73.3983993530 - -72.7599411011 - -72.2387542725 - -71.5741882324 - -71.0346832275 - -70.4273071289 - -69.8316421509 - -69.2378005981 - -68.6959533691 - -68.0893478394 - -67.4889221191 - -66.9082412720 - -66.3371124268 - -65.7329177856 - -65.1533203125 - -64.6006851196 - -63.9848823547 - -63.4326171875 - -62.7893638611 - -62.2640037537 - -61.6954002380 - -61.0767593384 - -60.5152854919 - -59.9447746277 - -59.3509445190 - -58.7655487061 - -58.2031936646 - -57.6469039917 - -57.0362472534 - -56.4664497375 - -55.8967628479 - -55.3389167786 - -54.7519760132 - -54.1556739807 - -53.6516609192 - -52.9983367920 - -52.4768943787 - -51.8896331787 - -51.3458976746 - -50.7329750061 - -50.2004852295 - -49.6109542847 - -49.0365066528 - -48.5009918213 - -47.9289283752 - -47.3488693237 - -46.7930335999 - -46.2198371887 - -45.6562042236 - -45.1052055359 - -44.5279846191 - -43.9803810120 - -43.3853759766 - -42.8602600098 - -42.2900810242 - -41.7159690857 - -41.1960411072 - -40.5666046143 - -40.0753898621 - -39.4972000122 - -38.9343986511 - -38.3670501709 - -37.8387069702 - -37.2563858032 - -36.7026481628 - -36.1779174805 - -35.6019248962 - -35.0579261780 - -34.4782409668 - -33.9630279541 - -33.4080390930 - -32.8399734497 - -32.3055038452 - -31.7539176941 - -31.1871109009 - -30.6619911194 - -30.1008186340 - -29.5636997223 - -29.0049743652 - -28.4486885071 - -27.9352169037 - -27.3772850037 - -26.7987442017 - -26.3038234711 - -25.7324142456 - -25.1975955963 - -24.6378211975 - -24.1261825562 - -23.5595607758 - -23.0236835480 - -22.5008945465 - -21.9412174225 - -21.4106864929 - -20.8547973633 - -20.3474788666 - -19.7858448029 - -19.2568759918 - -18.6983776093 - -18.2003955841 - -17.6387329102 - -17.1142501831 - -16.5713195801 - -16.0476264954 - -15.4938926697 - -14.9775142670 - -14.4587583542 - -13.8561239243 - -13.4105243683 - -12.8281345367 - -12.2954673767 - -11.7729520798 - -11.2373905182 - -10.7240896225 - -10.1544990540 - -9.6466588974 - -9.1381597519 - -8.5686492920 - -8.0526266098 - -7.5442662239 - -6.9976067543 - -6.4553852081 - -5.9533314705 - -5.4162788391 - -4.8714346886 - -4.3617372513 - -3.8432869911 - -3.2747616768 - -2.8069486618 - -2.2251849174 - -1.7241659164 - -1.2090840340 - -0.6515431404 - -0.1499252319 - 0.3859848976 - 0.9322557449 - 1.4320664406 - 1.9715960026 - 2.4784221649 - 3.0478334427 - 3.5286970139 - 4.0664954185 - 4.6118555069 - 5.1464447975 - 5.6329975128 - 6.1895651817 - 6.7124571800 - 7.2499365807 - 7.7389836311 - 8.2984943390 - 8.8321399689 - 9.3582878113 - 9.8498868942 - 10.4277019501 - 10.9184818268 - 11.4921073914 - 11.9642982483 - 12.5449628830 - 13.0488109589 - 13.6131153107 - 14.0712375641 - 14.6866683960 - 15.1756153107 - 15.7258710861 - 16.2384243011 - 16.7928447723 - 17.3342704773 - 17.8640098572 - 18.3738861084 - 18.9495849609 - 19.4718151093 - 20.0185375214 - 20.5396633148 - 21.0990982056 - 21.6543445587 - 22.1510181427 - 22.7378883362 - 23.2578086853 - 23.8258342743 - 24.3506946564 - 24.8963317871 - 25.4891128540 - 25.9852828979 - 26.5791950226 - 27.0871791840 - 27.7067031860 - 28.2096900940 - 28.7617454529 - 29.3799190521 - 29.8927974701 - 30.4548454285 - 31.0352554321 - 31.5984153748 - 32.1699409485 - 32.7073974609 - 33.3149833679 - 33.8833961487 - 34.4374237061 - 35.0176467896 - 35.6205368042 - 36.1764564514 - 36.7673187256 - 37.3488578796 - 37.9473419189 - 38.5396575928 - 39.0972824097 - 39.7300834656 - 40.3136329651 - 40.8921394348 - 41.5339889526 - 42.1021652222 - 42.7099571228 - 43.3648338318 - 43.9182739258 - 44.5670623779 - 45.1714477539 - 45.8021507263 - 46.4269943237 - 47.0234375000 - 47.7036170959 - 48.2910079956 - 48.9677696228 - 49.5582427979 - 50.2425079346 - 50.8885955811 - 51.5070114136 - 52.1647911072 - 52.8727073669 - 53.4584083557 - 54.1694221497 - 54.8337936401 - 55.4886169434 - 56.1796264648 - 56.8464584351 - 57.5418701172 - 58.2174186707 - 58.9244117737 - 59.5891532898 - 60.3300743103 - 61.0138282776 - 61.6954994202 - 62.4553108215 - 63.1606826782 - 63.8530960083 - 64.5954055786 - 65.3622589111 - 66.0375366211 - 66.8107299805 - 67.5490570068 - 68.3158874512 - 69.0517959595 - 69.8050689697 - 70.5916976929 - 71.3507080078 - 72.1331481934 - 72.8781127930 - 73.7040176392 - 74.4941024780 - 75.2390670776 - 76.0908813477 - 76.8938446045 - 77.6645660400 - 78.5117874146 - 79.3477020264 - 80.1237258911 - 81.0023880005 - 81.8303680420 - 82.6492919922 - 83.5177001953 - 84.3811264038 - 85.2290802002 - 86.0757904053 - 86.9940872192 - 87.8082733154 - 88.7452697754 - 89.5834503174 - 90.5085296631 - 91.4034423828 - 92.2873535156 - 93.2192382812 - 94.1187591553 - 95.0464096069 - 95.9691925049 - 96.9064483643 - 97.8429336548 - 98.7689971924 - 99.7354736328 - 100.6755981445 - 101.6212844849 - 102.5959777832 - 103.5689849854 - 104.5418395996 - 105.4965667725 - 106.5105743408 - 107.4820327759 - 108.4572372437 - 109.4799652100 - 110.4684295654 - 111.4700317383 - 112.4920349121 - 113.4964370728 - 114.5039672852 - 115.5697631836 - 116.5620193481 - 117.5907821655 - 118.6590194702 - 119.6731414795 - 120.7013549805 - 121.7914123535 - 122.8069305420 - 123.8854370117 - 124.9264373779 - 126.0059356689 - 127.0634078979 - 128.0934295654 - 129.2240447998 - 130.2506713867 - 131.3307189941 - 132.4373779297 - 133.4608459473 - 134.6026611328 - 135.6475982666 - 136.7366485596 - 137.8602447510 - 138.8846588135 - 140.0201721191 - 141.1195983887 - 142.1614990234 - 143.3363952637 - 144.3445739746 - 145.5027465820 - 146.5753173828 - 147.6374206543 - 148.7921905518 - 149.8674621582 - 150.9358520508 - 152.0819549561 - 153.1062316895 - 154.2814331055 - 155.3130035400 - 156.4295959473 - 157.5507049561 - 158.5973205566 - 159.7064971924 - 160.8024597168 - 161.8594512939 - 162.9916992188 - 164.0283203125 - 165.1351013184 - 166.2193908691 - 167.2480773926 - 168.3883056641 - 169.4209442139 - 170.4806518555 - 171.5695190430 - 172.6146697998 - 173.6974792480 - 174.7237243652 - 175.8101806641 - 176.8558044434 - 177.8731994629 - 178.9420471191 - 179.9868469238 - 180.9841156006 - 182.0556640625 - 183.0731048584 - 184.0841064453 - 185.1145629883 - 186.1277465820 - 187.1213531494 - 188.1512298584 - 189.1440887451 - 190.1184692383 - 191.1432495117 - 192.1072387695 - 193.0910797119 - 194.0792541504 - 195.0526733398 - 196.0175170898 - 196.9713439941 - 197.9425048828 - 198.8793487549 - 199.8314819336 - 200.7839355469 - 201.7070770264 - 202.6581115723 - 203.5629577637 - 204.5155029297 - 205.3998718262 - 206.3219146729 - 207.2430419922 - 208.1171569824 - 209.0446472168 - 209.8818359375 - 210.8206024170 - 211.6707611084 - 212.5326538086 - 213.4172973633 - 214.2974853516 - 215.1280517578 - 215.9695129395 - 216.8705444336 - 217.6524353027 - 218.5098266602 - 219.3655700684 - 220.1573486328 - 220.9734497070 - 221.8410491943 - 222.5946960449 - 223.4175720215 - 224.2429504395 - 225.0089721680 - 225.8080444336 - 226.5828399658 - 227.3842163086 - 228.1555175781 - 228.9112854004 - 229.6841125488 - 230.4541625977 - 231.2352294922 - 231.9255065918 - 232.7133789062 - 233.4709320068 - 234.1855010986 - 234.8904876709 - 235.6897277832 - 236.3748474121 - 237.0803833008 - 237.8328094482 - 238.5194702148 - 239.2487792969 - 239.9323425293 - 240.6402282715 - 241.3436737061 - 242.0409240723 - 242.7037658691 - 243.4004211426 - 244.1269073486 - 244.7233734131 - 245.4481201172 - 246.1341247559 - 246.7561798096 - 247.4321441650 - 248.1265563965 - 248.7340545654 - 249.4339752197 - 250.0372619629 - 250.7274780273 - 251.3518676758 - 251.9875640869 - 252.6350860596 - 253.2645568848 - 253.9151000977 - 254.5065307617 - 255.1664581299 - 255.7870788574 - 256.3826904297 - 257.0383911133 - 257.6315307617 - 258.2296752930 - 258.8873901367 - 259.4555664062 - 260.0670166016 - 260.6806640625 - 261.2832641602 - 261.8867187500 - 262.4583129883 - 263.0808715820 - 263.6749877930 - 264.2506103516 - 264.8285827637 - 265.4531250000 - 266.0141601562 - 266.5903625488 - 267.1743774414 - 267.7754516602 - 268.3415222168 - 268.8849487305 - 269.5062255859 - 270.0754089355 - 270.6003723145 - 271.2297058105 - 271.7483520508 - 272.3685302734 - 272.8719177246 - 273.4773864746 - 274.0417175293 - 274.5821533203 - 275.1531982422 - 275.7069702148 - 276.2878417969 - 276.8085937500 - 277.3765258789 - 277.9523315430 - 278.4743347168 - 279.0476379395 - 279.5814208984 - 280.1558837891 - 280.6962585449 - 281.2294311523 - 281.7819213867 - 282.3582458496 - 282.8700866699 - 283.4371337891 - 283.9426879883 - 284.5640258789 - 285.0333862305 - 285.6115722656 - 286.1275024414 - 286.7152709961 - 287.2011108398 - 287.7811584473 - 288.2869873047 - 288.8706054688 - 289.3736267090 - 289.9102783203 - 290.4561157227 - 291.0165405273 - 291.5226135254 - 292.0674743652 - 292.5939636230 - 293.1650390625 - 293.6607055664 - 294.1946105957 - 294.7557678223 - 295.2994689941 - 295.7865905762 - 296.3582153320 - 296.8841857910 - 297.4180603027 - 297.9369812012 - 298.4767150879 - 299.0251159668 - 299.5401306152 - 300.0818176270 - 300.6228027344 - 301.1208496094 - 301.7070617676 - 302.1825561523 - 302.7521667480 - 303.2762145996 - 303.7945251465 - 304.3411254883 - 304.8775024414 - 305.3850097656 - 305.9397583008 - 306.4720458984 - 306.9967651367 - 307.5100097656 - 308.0834350586 - 308.5942077637 - 309.0968933105 - 309.6805114746 - 310.1874389648 - 310.7139587402 - 311.2605285645 - 311.7751464844 - 312.3605651855 - 312.8128356934 - 313.4115905762 - 313.9281311035 - 314.4478149414 - 314.9898071289 - 315.5323486328 - 316.0550537109 - 316.5833435059 - 317.1482849121 - 317.6377868652 - 318.2052917480 - 318.7181396484 - 319.2801818848 - 319.7892761230 - 320.3435058594 - 320.8620300293 - 321.4182739258 - 321.9476318359 - 322.4716796875 - 323.0270385742 - 323.5467224121 - 324.0986328125 - 324.6205444336 - 325.1856689453 - 325.6850280762 - 326.2553405762 - 326.7920532227 - 327.3148498535 - 327.8620605469 - 328.4101867676 - 328.9373779297 - 329.4949340820 - 330.0081176758 - 330.5782775879 - 331.1044311523 - 331.6433105469 - 332.1914672852 - 332.7477111816 - 333.2497558594 - 333.8142395020 - 334.3614196777 - 334.9136352539 - 335.4306945801 - 335.9797973633 - 336.5514831543 - 337.0594787598 - 337.6244506836 - 338.1701354980 - 338.7358703613 - 339.2172851562 - 339.8393249512 - 340.3355712891 - 340.8996276855 - 341.4620971680 - 341.9680786133 - 342.5536499023 - 343.0834045410 - 343.6447448730 - 344.1858215332 - 344.7324523926 - 345.2896423340 - 345.8305358887 - 346.3969116211 - 346.9434509277 - 347.4771728516 - 348.0320434570 - 348.5977478027 - 349.1221923828 - 349.7139587402 - 350.2312622070 - 350.8185424805 - 351.3145446777 - 351.9451293945 - 352.4353637695 - 353.0134277344 - 353.5775756836 - 354.1200866699 - 354.6700439453 - 355.2229919434 - 355.8078613281 - 356.3453369141 - 356.8868103027 - 357.4578857422 - 358.0238037109 - 358.5741882324 - 359.1154174805 - 359.7066650391 - 360.2663269043 - 360.7586059570 - 361.3866577148 - 361.9143066406 - 362.5001525879 - 363.0408630371 - 363.5834350586 - 364.1824035645 - 364.7216796875 - 365.2690429688 - 365.8500061035 - 366.4450683594 - 366.9406433105 - 367.5252990723 - 368.0985717773 - 368.6703796387 - 369.1887512207 - 369.8215332031 - 370.3236999512 - 370.9318847656 - 371.4626770020 - 372.0121459961 - 372.6489868164 - 373.1336364746 - 373.7326965332 - 374.3288269043 - 374.8495788574 - 375.4154357910 - 376.0242309570 - 376.5529479980 - 377.1252441406 - 377.7276916504 - 378.2539978027 - 378.8220520020 - 379.4165649414 - 379.9668579102 - 380.5532226562 - 381.0953674316 - 381.6954650879 - 382.2356872559 - 382.8140258789 - 383.3820800781 - 383.9693908691 - 384.5155029297 - 385.1036682129 - 385.6764831543 - 386.2243347168 - 386.8092956543 - 387.3737792969 - 387.9567260742 - 388.5124511719 - 389.0966186523 - 389.6889038086 - 390.2127685547 - 390.8274536133 - 391.3761901855 - 391.9469299316 - 392.5377197266 - 393.0962524414 - 393.6704406738 - 394.2892456055 - 394.7806701660 - 395.4327697754 - 395.9473876953 - 396.5606384277 - 397.1221923828 - 397.7024230957 - 398.2795104980 - 398.8442382812 - 399.4424438477 - 399.9532775879 - 400.6285705566 - 401.1257019043 - 401.7360534668 - 402.3235473633 - 402.8760986328 - 403.4576110840 - 404.0415344238 - 404.5952453613 - 405.2131347656 - 405.7345581055 - 406.3671264648 - 406.9212951660 - 407.5097961426 - 408.0792541504 - 408.6407775879 - 409.2486267090 - 409.8179626465 - 410.3595886230 - 410.9700927734 - 411.5726318359 - 412.0953979492 - 412.7125854492 - 413.3059692383 - 413.8622741699 - 414.4312133789 - 415.0207519531 - 415.6295776367 - 416.1620178223 - 416.7784729004 - 417.3633422852 - 417.9144287109 - 418.5187988281 - 419.0718383789 - 419.6879272461 - 420.2323608398 - 420.8319396973 - 421.4378662109 - 421.9899902344 - 422.5656433105 - 423.1735839844 - 423.7384033203 - 424.3036193848 - 424.8982543945 - 425.4924621582 - 426.0409851074 - 426.6473999023 - 427.2195129395 - 427.7838439941 - 428.4094543457 - 428.9644165039 - 429.5252075195 - 430.1842956543 - 430.7041320801 - 431.2792663574 - 431.9018249512 - 432.4592895508 - 433.0455322266 - 433.6353454590 - 434.2117614746 - 434.8203735352 - 435.3903808594 - 435.9345703125 - 436.5797119141 - 437.1289672852 - 437.7355346680 - 438.3066406250 - 438.8761596680 - 439.4862976074 - 440.0795898438 - 440.5911865234 - 441.2487182617 - 441.8007812500 - 442.4008483887 - 442.9331665039 - 443.5722656250 - 444.1459350586 - 444.7029418945 - 445.2995300293 - 445.8761596680 - 446.4879455566 - 447.0411376953 - 447.6156005859 - 448.2278137207 - 448.8114624023 - 449.3656311035 - 449.9804077148 - 450.5700683594 - 451.1461791992 - 451.7262573242 - 452.3282775879 - 452.9169006348 - 453.4884033203 - 454.0917358398 - 454.6945190430 - 455.2289733887 - 455.8864440918 - 456.4110717773 - 457.0724182129 - 457.5634460449 - 458.2037658691 - 458.7956848145 - 459.3580017090 - 459.9259948730 - 460.5226440430 - 461.1073913574 - 461.6828002930 - 462.2101440430 - 462.8575134277 - 463.3760986328 - 463.9916687012 - 464.4830322266 - 465.1000976562 - 465.6513061523 - 466.2202453613 - 466.7817687988 - 467.2795715332 - 467.9533386230 - 468.4730224609 - 468.9886169434 - 469.5254821777 - 470.2350158691 - 470.7232055664 - 471.2008056641 - 471.8140869141 - 472.5192871094 - 473.0216674805 - 473.4218750000 - 474.0875854492 - 475.1129760742 - 477.3921813965 - 478.4270629883 - 479.0531921387 - 479.3850402832 - 479.9187011719 - 480.5707702637 - 481.1166687012 - 481.5616455078 - 482.0519714355 - 482.6805419922 - 483.1289062500 - 483.6733093262 - 484.1314392090 - 484.6993408203 - 485.1903686523 - 485.7175903320 - 486.2062988281 - 486.7407226562 - 487.2752990723 - 487.7409667969 - 488.3236083984 - 488.7726440430 - 489.3899536133 - 489.8949279785 - 490.4512634277 - 490.9661865234 - 491.5404663086 - 492.1004333496 - 492.6123962402 - 493.1849060059 - 493.7874450684 - 494.2784729004 - 494.8725891113 - 495.4122924805 - 496.0059509277 - 496.5523986816 - 497.1156311035 - 497.6881408691 - 498.2343444824 - 498.8131103516 - 499.3750610352 - 499.9187927246 - 500.4874877930 - 501.0282592773 - 501.6180725098 - 502.1476745605 - 502.7088928223 - 503.2568664551 - 503.8197631836 - 504.3308105469 - 504.8992004395 - 505.4665222168 - 505.9716796875 - 506.5487060547 - 507.0687561035 - 507.6397705078 - 508.1645507812 - 508.7250671387 - 509.2237243652 - 509.8516540527 - 510.2978820801 - 510.9020385742 - 511.4215393066 - 511.9710083008 - 512.4873657227 - 513.0803833008 - 513.5676269531 - 514.1870727539 - 514.6760253906 - 515.2201538086 - 515.7687377930 - 516.3072509766 - 516.8491210938 - 517.4130859375 - 517.9216918945 - 518.4818725586 - 518.9971923828 - 519.5104370117 - 520.1102294922 - 520.5747680664 - 521.1457519531 - 521.7113647461 - 522.2261962891 - 522.7253417969 - 523.2905883789 - 523.8099365234 - 524.3483886719 - 524.8381958008 - 525.4036254883 - 525.9243774414 - 526.4329223633 - 526.9716796875 - 527.4799194336 - 528.0250854492 - 528.5841674805 - 529.0599975586 - 529.6130981445 - 530.1608886719 - 530.6439819336 - 531.1593627930 - 531.6928710938 - 532.2503051758 - 532.7373046875 - 533.2510375977 - 533.8347778320 - 534.3089599609 - 534.8079833984 - 535.3409423828 - 535.8944702148 - 536.3730468750 - 536.9099731445 - 537.4389648438 - 537.9448242188 - 538.4204101562 - 538.9919433594 - 539.4617309570 - 539.9624023438 - 540.5205688477 - 540.9680786133 - 541.5488891602 - 542.0264282227 - 542.5534667969 - 543.0421142578 - 543.5621948242 - 544.0584106445 - 544.5648803711 - 545.0477905273 - 545.6032104492 - 546.0613403320 - 546.6031494141 - 547.1035156250 - 547.5950927734 - 548.0932006836 - 548.5704956055 - 549.1307373047 - 549.5789184570 - 550.1154785156 - 550.5888671875 - 551.1285400391 - 551.5601196289 - 552.0871582031 - 552.5825195312 - 553.0975341797 - 553.5690307617 - 554.0778808594 - 554.5543823242 - 555.0714721680 - 555.5067138672 - 556.0487060547 - 556.5010375977 - 557.0242919922 - 557.5100708008 - 557.9790649414 - 558.4809570312 - 558.9638671875 - 559.4183349609 - 559.9290771484 - 560.3978881836 - 560.8945312500 - 561.3782348633 - 561.8583374023 - 562.3291625977 - 562.8099365234 - 563.2864990234 - 563.7527465820 - 564.2617187500 - 564.7171020508 - 565.2199096680 - 565.6599731445 - 566.1350708008 - 566.6271362305 - 567.0937500000 - 567.5627441406 - 568.0598144531 - 568.4868164062 - 568.9662475586 - 569.4743041992 - 569.8770751953 - 570.4052734375 - 570.8544311523 - 571.2878417969 - 571.7930297852 - 572.1937255859 - 572.7202758789 - 573.1381225586 - 573.6330566406 - 574.0922851562 - 574.5226440430 - 574.9943237305 - 575.4388427734 - 575.8952026367 - 576.3668212891 - 576.8287353516 - 577.2581787109 - 577.7368774414 - 578.1443481445 - 578.6333007812 - 579.0670776367 - 579.5443115234 - 579.9772949219 - 580.3895263672 - 580.8752441406 - 581.3061523438 - 581.7431030273 - 582.2128906250 - 582.6483154297 - 583.0809936523 - 583.5053710938 - 583.9820556641 - 584.4121093750 - 584.8478393555 - 585.2661743164 - 585.7198486328 - 586.1709594727 - 586.5487670898 - 587.0486450195 - 587.4627075195 - 587.8695068359 - 588.3010864258 - 588.7697143555 - 589.1552734375 - 589.6131591797 - 590.0521850586 - 590.4263916016 - 590.8759155273 - 591.3061523438 - 591.7219848633 - 592.1524658203 - 592.5781250000 - 592.9801635742 - 593.4131469727 - 593.8296508789 - 594.2613525391 - 594.6647949219 - 595.0758056641 - 595.4945068359 - 595.9039916992 - 596.3549194336 - 596.7156372070 - 597.1418457031 - 597.5675659180 - 597.9652099609 - 598.3738403320 - 598.7992553711 - 599.1921997070 - 599.5711669922 - 600.0198974609 - 600.3898925781 - 600.8229370117 - 601.2070922852 - 601.5889892578 - 602.0236816406 - 602.3847045898 - 602.8195190430 - 603.2052001953 - 603.5936279297 - 603.9899902344 - 604.3826904297 - 604.7912597656 - 605.1952514648 - 605.5314331055 - 605.9621582031 - 606.3798828125 - 606.7133789062 - 607.1221313477 - 607.5195312500 - 607.9231567383 - 608.2606811523 - 608.6765136719 - 609.0722656250 - 609.4207153320 - 609.8150634766 - 610.2078247070 - 610.5962524414 - 610.9435424805 - 611.3316650391 - 611.7313842773 - 612.0995483398 - 612.4619140625 - 612.8436889648 - 613.1989135742 - 613.6173095703 - 613.9403076172 - 614.3484497070 - 614.6989135742 - 615.0628051758 - 615.4884643555 - 615.7825927734 - 616.1796264648 - 616.5864868164 - 616.8977050781 - 617.2874755859 - 617.6559448242 - 618.0209960938 - 618.3834838867 - 618.7307128906 - 619.1166992188 - 619.4797973633 - 619.7974853516 - 620.2061767578 - 620.5554809570 - 620.8916625977 - 621.2649536133 - 621.6381225586 - 621.9733886719 - 622.3208618164 - 622.7120361328 - 623.0198974609 - 623.4130859375 - 623.7661743164 - 624.0686645508 - 624.4878540039 - 624.8070068359 - 625.1517333984 - 625.5437622070 - 625.8503417969 - 626.2355957031 - 626.5460205078 - 626.9359741211 - 627.2560424805 - 627.6159667969 - 627.9603881836 - 628.3316650391 - 628.6495971680 - 629.0045166016 - 629.3588256836 - 629.7156372070 - 630.0187988281 - 630.4043579102 - 630.7484741211 - 631.0905151367 - 631.4070434570 - 631.7951049805 - 632.1036376953 - 632.4874877930 - 632.7855224609 - 633.1726074219 - 633.4962768555 - 633.8577880859 - 634.1518554688 - 634.5653076172 - 634.8691406250 - 635.2152709961 - 635.5713500977 - 635.9095458984 - 636.2611694336 - 636.6207885742 - 636.9099731445 - 637.3113403320 - 637.6487426758 - 637.9719238281 - 638.3304443359 - 638.6837768555 - 639.0415039062 - 639.3348999023 - 639.7539672852 - 640.0429077148 - 640.4299926758 - 640.7609863281 - 641.0996093750 - 641.4835815430 - 641.8121337891 - 642.1683959961 - 642.4977416992 - 642.9060668945 - 643.2083129883 - 643.5548706055 - 643.9760742188 - 644.2672119141 - 644.6479492188 - 645.0068969727 - 645.3532714844 - 645.7390747070 - 646.0620727539 - 646.4472656250 - 646.8204956055 - 647.1588134766 - 647.5314941406 - 647.9080200195 - 648.2600708008 - 648.6430664062 - 649.0015869141 - 649.3843994141 - 649.7542114258 - 650.1183471680 - 650.5043334961 - 650.8778686523 - 651.2476806641 - 651.6630249023 - 651.9991455078 - 652.3931274414 - 652.8360595703 - 653.1396484375 - 653.5854492188 - 653.9514770508 - 654.3528442383 - 654.7628173828 - 655.1173095703 - 655.5671386719 - 655.9405517578 - 656.3607788086 - 656.7340698242 - 657.1865844727 - 657.5712890625 - 657.9920043945 - 658.3881835938 - 658.8431396484 - 659.2261352539 - 659.6862792969 - 660.0785522461 - 660.5151367188 - 660.9807739258 - 661.3657226562 - 661.8212890625 - 662.2720336914 - 662.7147827148 - 663.1293334961 - 663.6184082031 - 664.0461425781 - 664.5108642578 - 664.9545288086 - 665.4435424805 - 665.8770141602 - 666.3590698242 - 666.8455810547 - 667.2819213867 - 667.8007202148 - 668.2456665039 - 668.7640991211 - 669.2322998047 - 669.7158203125 - 670.2294921875 - 670.7222290039 - 671.2292480469 - 671.7007446289 - 672.2738037109 - 672.7518920898 - 673.2496948242 - 673.8065185547 - 674.3352050781 - 674.8245849609 - 675.3933105469 - 675.9271850586 - 676.4524536133 - 677.0137939453 - 677.5586547852 - 678.1015625000 - 678.6784667969 - 679.2319946289 - 679.7897949219 - 680.3686523438 - 680.9613647461 - 681.4771728516 - 682.1455078125 - 682.6508178711 - 683.2996826172 - 683.8623046875 - 684.4736938477 - 685.0754394531 - 685.6874389648 - 686.2806396484 - 686.9190063477 - 687.5361328125 - 688.1513061523 - 688.7704467773 - 689.4296264648 - 690.0520019531 - 690.6663818359 - 691.3438720703 - 691.9855957031 - 692.6364746094 - 693.2778930664 - 693.9577636719 - 694.6244506836 - 695.2622680664 - 695.9555664062 - 696.6293334961 - 697.2982788086 - 697.9888916016 - 698.6699218750 - 699.3468627930 - 700.0726928711 - 700.7493896484 - 701.4282226562 - 702.1663818359 - 702.8613891602 - 703.5371704102 - 704.2995605469 - 704.9798583984 - 705.7174682617 - 706.4295654297 - 707.1575317383 - 707.8850708008 - 708.5928344727 - 709.3554077148 - 710.0618286133 - 710.8007202148 - 711.5667724609 - 712.2481079102 - 713.0587158203 - 713.7564086914 - 714.4959716797 - 715.3042602539 - 715.9672851562 - 716.7832031250 - 717.5086059570 - 718.2515869141 - 719.0643310547 - 719.7286376953 - 720.5557861328 - 721.3074340820 - 722.0153198242 - 722.8150024414 - 723.5866699219 - 724.3176269531 - 725.0858764648 - 725.8285522461 - 726.6429443359 - 727.3354492188 - 728.1444091797 - 728.8907470703 - 729.6618652344 - 730.3991699219 - 731.1726074219 - 731.9301147461 - 732.6937255859 - 733.4390869141 - 734.2052612305 - 734.9647827148 - 735.6816406250 - 736.4910278320 - 737.2114257812 - 737.9498291016 - 738.7233276367 - 739.4555053711 - 740.2141113281 - 740.9473876953 - 741.6922607422 - 742.4522094727 - 743.1637573242 - 743.9050292969 - 744.6618652344 - 745.3624877930 - 746.1164550781 - 746.8417358398 - 747.5559082031 - 748.2863769531 - 749.0124511719 - 749.7111816406 - 750.4389648438 - 751.1632690430 - 751.8439331055 - 752.5758666992 - 753.2624511719 - 753.9669189453 - 754.6829223633 - 755.3541259766 - 756.0623168945 - 756.7514038086 - 757.4334716797 - 758.1043090820 - 758.7964477539 - 759.4880981445 - 760.1276855469 - 760.8352050781 - 761.4724731445 - 762.1753540039 - 762.7881469727 - 763.4836425781 - 764.1131591797 - 764.7931518555 - 765.4158935547 - 766.0434570312 - 766.7364501953 - 767.3323364258 - 767.9583129883 - 768.6149902344 - 769.2486572266 - 769.8479003906 - 770.4588012695 - 771.1296386719 - 771.6830444336 - 772.3215332031 - 772.9321289062 - 773.5245361328 - 774.1166381836 - 774.7502441406 - 775.2901611328 - 775.9287109375 - 776.4990234375 - 777.0736694336 - 777.6616210938 - 778.2305908203 - 778.8165283203 - 779.3886718750 - 779.9532470703 - 780.5007324219 - 781.0998535156 - 781.6573486328 - 782.1665039062 - 782.7564697266 - 783.3128662109 - 783.8533325195 - 784.3408813477 - 784.9767456055 - 785.4583740234 - 785.9924926758 - 786.5371704102 - 787.0582885742 - 787.6098022461 - 788.0999755859 - 788.6162719727 - 789.1798706055 - 789.6755371094 - 790.1511230469 - 790.7014160156 - 791.2365722656 - 791.6718750000 - 792.2086181641 - 792.7431640625 - 793.1812744141 - 793.7119750977 - 794.2140502930 - 794.6700439453 - 795.2026977539 - 795.6536254883 - 796.1529541016 - 796.6437988281 - 797.1065063477 - 797.5899047852 - 798.0779418945 - 798.5319213867 - 799.0212402344 - 799.4885253906 - 799.9449462891 - 800.4147949219 - 800.8978271484 - 801.3389892578 - 801.7833251953 - 802.2908325195 - 802.7066650391 - 803.1701049805 - 803.6264038086 - 804.0877685547 - 804.5315551758 - 804.9600830078 - 805.4323730469 - 805.8726196289 - 806.3164062500 - 806.7369384766 - 807.2046508789 - 807.6421508789 - 808.0509643555 - 808.4990234375 - 808.9580078125 - 809.3581542969 - 809.7984008789 - 810.2355957031 - 810.6654663086 - 811.0745849609 - 811.5307617188 - 811.9125366211 - 812.3968505859 - 812.7601318359 - 813.2059936523 - 813.6358642578 - 814.0423583984 - 814.4439086914 - 814.8984375000 - 815.2877197266 - 815.6987304688 - 816.1187133789 - 816.5516357422 - 816.9152221680 - 817.3673706055 - 817.7612304688 - 818.1561889648 - 818.5938720703 - 818.9700317383 - 819.3757934570 - 819.8206787109 - 820.1738281250 - 820.6013183594 - 820.9862670898 - 821.4287719727 - 821.7769775391 - 822.2066650391 - 822.5889282227 - 823.0106201172 - 823.3758544922 - 823.7908935547 - 824.1724853516 - 824.5885009766 - 824.9605712891 - 825.3541259766 - 825.7575683594 - 826.1473388672 - 826.5333251953 - 826.9259033203 - 827.2982177734 - 827.7238769531 - 828.0859375000 - 828.4545288086 - 828.8760375977 - 829.2650756836 - 829.6151733398 - 830.0151367188 - 830.4197998047 - 830.7775878906 - 831.1761474609 - 831.5361938477 - 831.9425659180 - 832.3272705078 - 832.6687011719 - 833.0974121094 - 833.4357910156 - 833.8514404297 - 834.1968383789 - 834.5939331055 - 834.9677734375 - 835.3446655273 - 835.7269897461 - 836.0970458984 - 836.4598999023 - 836.8698730469 - 837.2082519531 - 837.6058959961 - 837.9553222656 - 838.3608398438 - 838.7193603516 - 839.0562133789 - 839.4896850586 - 839.8274536133 - 840.1731567383 - 840.6019897461 - 840.9200439453 - 841.3318481445 - 841.6593017578 - 842.0653686523 - 842.4183959961 - 842.7852172852 - 843.1357421875 - 843.5505981445 - 843.8704223633 - 844.2440185547 - 844.6423950195 - 844.9635009766 - 845.3751831055 - 845.6964111328 - 846.0864257812 - 846.4429321289 - 846.8230590820 - 847.1566772461 - 847.5348510742 - 847.9150390625 - 848.2531738281 - 848.6139526367 - 848.9903564453 - 849.3565063477 - 849.6906738281 - 850.0689086914 - 850.4237060547 - 850.8012695312 - 851.1286010742 - 851.5097045898 - 851.8698120117 - 852.2276611328 - 852.5716552734 - 852.9501342773 - 853.2803955078 - 853.6817626953 - 853.9934692383 - 854.3754882812 - 854.7136230469 - 855.1010742188 - 855.4212036133 - 855.7802124023 - 856.1659545898 - 856.4981689453 - 856.8404541016 - 857.2109985352 - 857.5845947266 - 857.8936767578 - 858.2799682617 - 858.6215820312 - 858.9874877930 - 859.3002319336 - 859.7156982422 - 860.0097656250 - 860.3789672852 - 860.7523803711 - 861.0625610352 - 861.4484863281 - 861.7778320312 - 862.1329345703 - 862.4873046875 - 862.8303222656 - 863.1823730469 - 863.5258789062 - 863.8892211914 - 864.2139892578 - 864.5803222656 - 864.9231567383 - 865.2652587891 - 865.6116333008 - 865.9769897461 - 866.2797851562 - 866.6860961914 - 866.9765014648 - 867.3657836914 - 867.6763305664 - 868.0385131836 - 868.3814697266 - 868.7250366211 - 869.0643310547 - 869.4116821289 - 869.7626953125 - 870.0954589844 - 870.4273681641 - 870.7924194336 - 871.1256103516 - 871.4647216797 - 871.7972412109 - 872.1494140625 - 872.5181884766 - 872.7897949219 - 873.1928100586 - 873.5067749023 - 873.8496704102 - 874.1991577148 - 874.4973144531 - 874.9010620117 - 875.2079467773 - 875.5173339844 - 875.8786621094 - 876.2661743164 - 876.5126953125 - 876.8983154297 - 877.2482910156 - 877.5700683594 - 877.8847656250 - 878.2564697266 - 878.5642089844 - 878.9221191406 - 879.2402954102 - 879.5687255859 - 879.9442749023 - 880.2291870117 - 880.5739746094 - 880.9364624023 - 881.2474365234 - 881.5598144531 - 881.9455566406 - 882.2361450195 - 882.5603637695 - 882.9337158203 - 883.2415771484 - 883.5527343750 - 883.9313964844 - 884.2162475586 - 884.5769042969 - 884.8762207031 - 885.2429199219 - 885.5437011719 - 885.8843383789 - 886.2095336914 - 886.5486450195 - 886.8588867188 - 887.1882324219 - 887.5414428711 - 887.8428344727 - 888.1749267578 - 888.5072631836 - 888.8491210938 - 889.1298828125 - 889.4983520508 - 889.8090820312 - 890.1173706055 - 890.4744262695 - 890.7816162109 - 891.0911865234 - 891.4532470703 - 891.7437133789 - 892.0677490234 - 892.4221801758 - 892.6937255859 - 893.0789794922 - 893.3474121094 - 893.6878662109 - 894.0319824219 - 894.3145751953 - 894.6558227539 - 894.9663696289 - 895.3223876953 - 895.5657958984 - 895.9774780273 - 896.2362060547 - 896.5590209961 - 896.9085083008 - 897.1981201172 - 897.5302124023 - 897.8474731445 - 898.1517944336 - 898.5050659180 - 898.7786865234 - 899.1091308594 - 899.4450073242 - 899.7393188477 - 900.0534667969 - 900.3813476562 - 900.6890869141 - 901.0221557617 - 901.2987670898 - 901.6416015625 - 901.9687500000 - 902.2429199219 - 902.5755004883 - 902.8945312500 - 903.1940307617 - 903.5275878906 - 903.8042602539 - 904.1565551758 - 904.4360961914 - 904.7648925781 - 905.0730590820 - 905.3540649414 - 905.7239990234 - 905.9830322266 - 906.3146362305 - 906.6170654297 - 906.9240722656 - 907.2493286133 - 907.5369873047 - 907.8302001953 - 908.1852416992 - 908.4788208008 - 908.7395019531 - 909.0925292969 - 909.4083251953 - 909.6833496094 - 909.9939575195 - 910.3128051758 - 910.6102294922 - 910.9436035156 - 911.1875610352 - 911.5185546875 - 911.8671264648 - 912.1118774414 - 912.4219970703 - 912.7560424805 - 913.0499877930 - 913.3369750977 - 913.6452636719 - 913.9396362305 - 914.2653808594 - 914.5479125977 - 914.8399658203 - 915.1567993164 - 915.4569702148 - 915.7468872070 - 916.0515136719 - 916.3291625977 - 916.6786499023 - 916.9440917969 - 917.2291870117 - 917.5547485352 - 917.8496093750 - 918.1558227539 - 918.4071044922 - 918.7529296875 - 919.0578002930 - 919.2996826172 - 919.6437988281 - 919.9167480469 - 920.2315063477 - 920.5183105469 - 920.7918701172 - 921.1226806641 - 921.4085693359 - 921.6829223633 - 921.9849853516 - 922.2937011719 - 922.5649414062 - 922.8596801758 - 923.1676025391 - 923.4465942383 - 923.7290649414 - 924.0308227539 - 924.3383789062 - 924.5755004883 - 924.9270019531 - 925.1574096680 - 925.5133056641 - 925.7395629883 - 926.0632934570 - 926.3509521484 - 926.6483154297 - 926.9161987305 - 927.2080688477 - 927.5305786133 - 927.8101196289 - 928.0701293945 - 928.3911743164 - 928.6828613281 - 928.9915161133 - 929.2373657227 - 929.5840454102 - 929.8507080078 - 930.1734619141 - 930.4581909180 - 930.6931152344 - 931.0832519531 - 931.3690795898 - 931.5853271484 - 931.8992919922 - 932.2875976562 - 932.5111694336 - 932.7557983398 - 933.0893554688 - 933.4544067383 - 933.6627197266 - 933.8987426758 - 934.2354736328 - 934.7012939453 - 935.7527465820 - 936.2370605469 - 936.4959716797 - 936.5975952148 - 936.8672485352 - 937.1282958984 - 937.3294677734 - 937.5100708008 - 937.7380371094 - 937.9670410156 - 938.1074218750 - 938.3800659180 - 938.5451049805 - 938.7275390625 - 938.9490356445 - 939.1663208008 - 939.3315429688 - 939.5655517578 - 939.7502441406 - 939.9455566406 - 940.1895141602 - 940.3444213867 - 940.6064453125 - 940.8225097656 - 941.0651245117 - 941.2500610352 - 941.4980468750 - 941.7502441406 - 941.9486694336 - 942.1979980469 - 942.4476318359 - 942.6741333008 - 942.8976440430 - 943.1578979492 - 943.3836669922 - 943.6447143555 - 943.8748779297 - 944.1158447266 - 944.3487548828 - 944.6081542969 - 944.8373413086 - 945.0608520508 - 945.3175659180 - 945.5302124023 - 945.7835083008 - 946.0093383789 - 946.2514648438 - 946.4559326172 - 946.7067871094 - 946.9107666016 - 947.1405639648 - 947.3951416016 - 947.5593872070 - 947.8406982422 - 948.0399780273 - 948.2523193359 - 948.4887695312 - 948.7178344727 - 948.9075317383 - 949.1749267578 - 949.3315429688 - 949.6183471680 - 949.7897949219 - 950.0283813477 - 950.2255859375 - 950.4889526367 - 950.6668090820 - 950.9331665039 - 951.1174316406 - 951.3487548828 - 951.5565795898 - 951.7766723633 - 951.9905395508 - 952.2339477539 - 952.4318847656 - 952.6433105469 - 952.8359985352 - 953.0678100586 - 953.3000488281 - 953.4419555664 - 953.7173461914 - 953.9331665039 - 954.1334228516 - 954.3088989258 - 954.5386962891 - 954.7561035156 - 954.9627685547 - 955.1098632812 - 955.3708496094 - 955.5780029297 - 955.7377929688 - 955.9586181641 - 956.1600952148 - 956.3658447266 - 956.5933227539 - 956.7612915039 - 956.9689331055 - 957.2174682617 - 957.3493652344 - 957.5603027344 - 957.7678833008 - 957.9807739258 - 958.1712036133 - 958.3366088867 - 958.6014404297 - 958.7490234375 - 958.9359741211 - 959.1365356445 - 959.3439331055 - 959.5315551758 - 959.7300415039 - 959.9129028320 - 960.1191406250 - 960.2681274414 - 960.5045776367 - 960.6523437500 - 960.8314819336 - 961.0661621094 - 961.1923828125 - 961.4214477539 - 961.6088256836 - 961.7835693359 - 961.9599609375 - 962.1520385742 - 962.3170166016 - 962.5158691406 - 962.6600952148 - 962.8746337891 - 963.0569458008 - 963.2065429688 - 963.4294433594 - 963.5761108398 - 963.7558593750 - 963.9009399414 - 964.1441650391 - 964.2656860352 - 964.4557495117 - 964.6433105469 - 964.8078002930 - 964.9618530273 - 965.1356201172 - 965.3051147461 - 965.5097656250 - 965.6375732422 - 965.8258056641 - 965.9917602539 - 966.1567382812 - 966.2907714844 - 966.5028686523 - 966.6126098633 - 966.8295288086 - 966.9805908203 - 967.1252441406 - 967.2943725586 - 967.4683837891 - 967.5888061523 - 967.7665405273 - 967.9245605469 - 968.0853881836 - 968.2453002930 - 968.3928833008 - 968.5579833984 - 968.6902465820 - 968.8607177734 - 968.9854736328 - 969.1892700195 - 969.2947387695 - 969.4775390625 - 969.6155395508 - 969.7391967773 - 969.9058837891 - 970.0745239258 - 970.1856079102 - 970.3634643555 - 970.4898681641 - 970.6232910156 - 970.7892456055 - 970.9133911133 - 971.0753784180 - 971.2075195312 - 971.3341064453 - 971.4898681641 - 971.5983886719 - 971.7614135742 - 971.8787231445 - 972.0491943359 - 972.1755371094 - 972.2579345703 - 972.4573974609 - 972.5493164062 - 972.6663818359 - 972.8269042969 - 972.9819335938 - 973.0524291992 - 973.2254028320 - 973.3134155273 - 973.4660034180 - 973.5954589844 - 973.7021484375 - 973.8574829102 - 973.9370117188 - 974.0813598633 - 974.1972656250 - 974.3138427734 - 974.4584350586 - 974.5572509766 - 974.6747436523 - 974.7857055664 - 974.9244384766 - 975.0303344727 - 975.1456298828 - 975.2452392578 - 975.3717041016 - 975.4843750000 - 975.5740356445 - 975.7061767578 - 975.8356323242 - 975.8879394531 - 976.0226440430 - 976.1463012695 - 976.2198486328 - 976.3499145508 - 976.4655151367 - 976.5178833008 - 976.6525268555 - 976.7487792969 - 976.8468017578 - 976.9501342773 - 977.0554809570 - 977.1362915039 - 977.2396850586 - 977.3466796875 - 977.4300537109 - 977.5392456055 - 977.6149291992 - 977.6991577148 - 977.8226928711 - 977.9022216797 - 977.9777832031 - 978.0695800781 - 978.1757812500 - 978.2336425781 - 978.3473510742 - 978.4336547852 - 978.4976806641 - 978.5687866211 - 978.6979980469 - 978.7352905273 - 978.8363647461 - 978.9249877930 - 978.9702758789 - 979.0855102539 - 979.1184692383 - 979.2501831055 - 979.2895507812 - 979.3751220703 - 979.4367675781 - 979.5169067383 - 979.6004028320 - 979.6791992188 - 979.6942138672 - 979.8132324219 - 979.8913574219 - 979.9204711914 - 979.9915771484 - 980.0814819336 - 980.1559448242 - 980.1748046875 - 980.2618408203 - 980.3480834961 - 980.3728637695 - 980.4331665039 - 980.5197143555 - 980.5744628906 - 980.6130371094 - 980.6614990234 - 980.7609252930 - 980.7807617188 - 980.8524169922 - 980.8910522461 - 980.9247436523 - 981.0392456055 - 981.0233764648 - 981.1110229492 - 981.1456909180 - 981.1987304688 - 981.2650756836 - 981.2819213867 - 981.3233642578 - 981.4303588867 - 981.3970947266 - 981.4741210938 - 981.5401611328 - 981.5441284180 - 981.6060791016 - 981.6435546875 - 981.6807250977 - 981.7354125977 - 981.7261962891 - 981.8220214844 - 981.8287353516 - 981.8550415039 - 981.9047851562 - 981.9465332031 - 981.9635620117 - 981.9913330078 - 982.0375976562 - 982.0536499023 - 982.0898437500 - 982.1438598633 - 982.1042480469 - 982.2058105469 - 982.2058105469 - 982.2119750977 - 982.2813720703 - 982.2633666992 - 982.3294067383 - 982.3107299805 - 982.3541870117 - 982.3762817383 - 982.4043579102 - 982.4005737305 - 982.4493408203 - 982.4624023438 - 982.4638671875 - 982.4976806641 - 982.5211791992 - 982.5084838867 - 982.5550537109 - 982.5620727539 - 982.5737915039 - 982.5796508789 - 982.6118164062 - 982.6058959961 - 982.6356201172 - 982.6318969727 - 982.6595458984 - 982.6647338867 - 982.6683959961 - 982.6722412109 - 982.7069702148 - 982.6956176758 - 982.6890869141 - 982.7363281250 - 982.7135009766 - 982.7247924805 - 982.7603759766 - 982.7050170898 - 982.7599487305 - 982.7682495117 - 982.7294921875 - 982.7720336914 - 982.7678222656 - 982.7745971680 - 982.7392578125 - 982.8109741211 - 982.7456054688 - 982.7858276367 - 982.7811279297 - 982.7677001953 - 982.7781982422 - 982.7985229492 - 982.7646484375 - 982.7742919922 - 982.7965698242 - 982.7687988281 - 982.7614746094 - 982.8052368164 - 982.7500610352 - 982.7864379883 - 982.7700195312 - 982.7512817383 - 982.7862548828 - 982.7564086914 - 982.7542114258 - 982.7726440430 - 982.7506103516 - 982.7562866211 - 982.7447509766 - 982.7421875000 - 982.7534179688 - 982.7351074219 - 982.7384643555 - 982.7274780273 - 982.7421875000 - 982.7160644531 - 982.7196044922 - 982.7224731445 - 982.7335205078 - 982.6934814453 - 982.7050170898 - 982.7463378906 - 982.6700439453 - 982.7217407227 - 982.6928100586 - 982.6930541992 - 982.7124633789 - 982.6732788086 - 982.6999511719 - 982.6996459961 - 982.6832885742 - 982.6796875000 - 982.7066650391 - 982.6653442383 - 982.7080078125 - 982.6729736328 - 982.6800537109 - 982.6965332031 - 982.7087402344 - 982.6609497070 - 982.6924438477 - 982.7329101562 - 982.6714477539 - 982.6917114258 - 982.7249755859 - 982.7138061523 - 982.7007446289 - 982.7285156250 - 982.7170410156 - 982.7657470703 - 982.7033081055 - 982.7664794922 - 982.7552490234 - 982.7708129883 - 982.7687988281 - 982.7790527344 - 982.8214111328 - 982.7827148438 - 982.8306274414 - 982.8305053711 - 982.8372802734 - 982.8580322266 - 982.8734741211 - 982.8879394531 - 982.8841552734 - 982.9586181641 - 982.9202880859 - 982.9577636719 - 982.9809570312 - 983.0090332031 - 983.0075683594 - 983.0542602539 - 983.0574340820 - 983.1068115234 - 983.1104736328 - 983.1390380859 - 983.1735229492 - 983.2116088867 - 983.2182617188 - 983.2472534180 - 983.3105468750 - 983.3238525391 - 983.3204345703 - 983.4337158203 - 983.3897094727 - 983.4843750000 - 983.4739990234 - 983.5507812500 - 983.5649414062 - 983.6274414062 - 983.6320800781 - 983.7125854492 - 983.7451171875 - 983.7758789062 - 983.8227539062 - 983.8925781250 - 983.9304809570 - 983.9506225586 - 984.0408325195 - 984.0767211914 - 984.1262817383 - 984.1801757812 - 984.2343750000 - 984.3107299805 - 984.3386230469 - 984.4053955078 - 984.4757690430 - 984.5258178711 - 984.5887451172 - 984.6550903320 - 984.7114257812 - 984.7864990234 - 984.8578491211 - 984.8961181641 - 984.9881591797 - 985.0667724609 - 985.1004028320 - 985.2084350586 - 985.2623291016 - 985.3433837891 - 985.4218139648 - 985.4865722656 - 985.5723266602 - 985.6547241211 - 985.7228393555 - 985.8065185547 - 985.8878784180 - 985.9852294922 - 986.0322265625 - 986.1646728516 - 986.2167358398 - 986.2897949219 - 986.4368286133 - 986.4542236328 - 986.6013793945 - 986.6420898438 - 986.7683715820 - 986.8708496094 - 986.9066772461 - 987.0485839844 - 987.1572875977 - 987.2078857422 - 987.3098144531 - 987.4478149414 - 987.5280151367 - 987.5894775391 - 987.7326660156 - 987.8374633789 - 987.8941040039 - 988.0490722656 - 988.1011962891 - 988.2664184570 - 988.3165283203 - 988.4359741211 - 988.5694580078 - 988.6380004883 - 988.7723999023 - 988.8703002930 - 988.9797363281 - 989.0773925781 - 989.2095947266 - 989.3093261719 - 989.4102172852 - 989.5368652344 - 989.6426391602 - 989.7521972656 - 989.8786010742 - 989.9622802734 - 990.1118774414 - 990.2124023438 - 990.3089599609 - 990.4537353516 - 990.5578613281 - 990.6712036133 - 990.7934570312 - 990.9050903320 - 991.0230712891 - 991.1509399414 - 991.2553710938 - 991.3695068359 - 991.5153198242 - 991.6109008789 - 991.7363891602 - 991.8516235352 - 991.9746704102 - 992.1119995117 - 992.1935424805 - 992.3419189453 - 992.4710693359 - 992.5723876953 - 992.6900024414 - 992.8257446289 - 992.9598999023 - 993.0421142578 - 993.2030639648 - 993.3000488281 - 993.4522705078 - 993.5313110352 - 993.7022705078 - 993.7703857422 - 993.9653930664 - 994.0166625977 - 994.1655883789 - 994.3161010742 - 994.4024658203 - 994.5244140625 - 994.6722412109 - 994.7884521484 - 994.8995971680 - 995.0182495117 - 995.1713256836 - 995.2594604492 - 995.4054565430 - 995.5091552734 - 995.6484985352 - 995.7633056641 - 995.8918457031 - 995.9866333008 - 996.1673583984 - 996.2383422852 - 996.3756713867 - 996.5006103516 - 996.6204833984 - 996.7397460938 - 996.8674926758 - 996.9992675781 - 997.0870971680 - 997.2587890625 - 997.3536376953 - 997.4638061523 - 997.6029052734 - 997.7200317383 - 997.8554077148 - 997.9166259766 - 998.1165771484 - 998.1884765625 - 998.3223266602 - 998.4262695312 - 998.5588378906 - 998.6964721680 - 998.7832031250 - 998.8866577148 - 999.0691528320 - 999.1510620117 - 999.2358398438 - 999.4036865234 - 999.5181884766 - 999.6060791016 - 999.7254028320 - 999.8790893555 - 999.9457397461 - 1000.1036987305 - 1000.1986694336 - 1000.3080444336 - 1000.4456176758 - 1000.5510864258 - 1000.6451416016 - 1000.7922363281 - 1000.8836669922 - 1000.9963378906 - 1001.1342163086 - 1001.1970825195 - 1001.3743896484 - 1001.4490966797 - 1001.5460205078 - 1001.6889038086 - 1001.7921142578 - 1001.8927612305 - 1001.9932250977 - 1002.1332397461 - 1002.2180786133 - 1002.3352050781 - 1002.4387817383 - 1002.5615844727 - 1002.6556396484 - 1002.7576904297 - 1002.8768920898 - 1002.9748535156 - 1003.0970458984 - 1003.1798095703 - 1003.2906494141 - 1003.4174804688 - 1003.4835205078 - 1003.6038208008 - 1003.7243041992 - 1003.7875976562 - 1003.9358520508 - 1004.0012207031 - 1004.1077270508 - 1004.2261962891 - 1004.3136596680 - 1004.3945922852 - 1004.5357055664 - 1004.6038818359 - 1004.6989746094 - 1004.8102416992 - 1004.9090576172 - 1004.9691162109 - 1005.1293945312 - 1005.1604614258 - 1005.2857666016 - 1005.3777465820 - 1005.4824218750 - 1005.5317993164 - 1005.6696166992 - 1005.7546386719 - 1005.8010253906 - 1005.9488525391 - 1006.0070800781 - 1006.0922241211 - 1006.2149658203 - 1006.2580566406 - 1006.3629150391 - 1006.4623413086 - 1006.5366210938 - 1006.6146240234 - 1006.7118530273 - 1006.7969360352 - 1006.8721313477 - 1006.9599609375 - 1007.0321655273 - 1007.1259765625 - 1007.1963500977 - 1007.2785034180 - 1007.3603515625 - 1007.4485473633 - 1007.5007934570 - 1007.6013793945 - 1007.6735229492 - 1007.7322998047 - 1007.8300781250 - 1007.9038696289 - 1007.9490966797 - 1008.0507202148 - 1008.1179809570 - 1008.1812744141 - 1008.2388305664 - 1008.3485107422 - 1008.3770751953 - 1008.4848632812 - 1008.5109863281 - 1008.6006469727 - 1008.6904296875 - 1008.6858520508 - 1008.8186645508 - 1008.8527832031 - 1008.9196777344 - 1008.9867553711 - 1009.0407104492 - 1009.1050415039 - 1009.1789550781 - 1009.2333984375 - 1009.2783813477 - 1009.3410644531 - 1009.4309692383 - 1009.4306640625 - 1009.5307006836 - 1009.5667724609 - 1009.6304931641 - 1009.6829833984 - 1009.7103881836 - 1009.8078613281 - 1009.8319091797 - 1009.8488159180 - 1009.9760742188 - 1009.9616088867 - 1010.0233154297 - 1010.0856323242 - 1010.1251831055 - 1010.1635131836 - 1010.2203979492 - 1010.2293701172 - 1010.3392333984 - 1010.3189086914 - 1010.3780517578 - 1010.4388427734 - 1010.4544677734 - 1010.5336303711 - 1010.5259399414 - 1010.5769042969 - 1010.6281127930 - 1010.6713256836 - 1010.6773681641 - 1010.7153320312 - 1010.7832641602 - 1010.7910766602 - 1010.8027954102 - 1010.8749389648 - 1010.8981323242 - 1010.9017333984 - 1010.9309082031 - 1010.9894409180 - 1011.0126342773 - 1010.9901733398 - 1011.0667114258 - 1011.0854492188 - 1011.0995483398 - 1011.1131591797 - 1011.1500854492 - 1011.1561889648 - 1011.2172851562 - 1011.1807250977 - 1011.2424926758 - 1011.2255249023 - 1011.2783203125 - 1011.2795410156 - 1011.2794189453 - 1011.3383178711 - 1011.3085937500 - 1011.3293457031 - 1011.3626708984 - 1011.3782958984 - 1011.3559570312 - 1011.3982543945 - 1011.3896484375 - 1011.3986206055 - 1011.4088745117 - 1011.4397583008 - 1011.4058227539 - 1011.4223022461 - 1011.4463500977 - 1011.4282226562 - 1011.4488525391 - 1011.4368896484 - 1011.4343261719 - 1011.4495849609 - 1011.4419555664 - 1011.4384155273 - 1011.4373779297 - 1011.4421386719 - 1011.4063110352 - 1011.4478149414 - 1011.4320678711 - 1011.4038085938 - 1011.4238281250 - 1011.4062500000 - 1011.3652343750 - 1011.4166870117 - 1011.3770751953 - 1011.3579711914 - 1011.3561401367 - 1011.3472290039 - 1011.3221435547 - 1011.3196411133 - 1011.3031005859 - 1011.2965698242 - 1011.2630615234 - 1011.2488403320 - 1011.2285156250 - 1011.2315673828 - 1011.1892700195 - 1011.1717529297 - 1011.1530761719 - 1011.1155395508 - 1011.1354980469 - 1011.0700683594 - 1011.0756225586 - 1011.0412597656 - 1010.9944458008 - 1011.0030517578 - 1010.9291992188 - 1010.9646606445 - 1010.9078979492 - 1010.8469238281 - 1010.8340454102 - 1010.8479003906 - 1010.7401123047 - 1010.7614135742 - 1010.7381591797 - 1010.6715698242 - 1010.6480712891 - 1010.5994873047 - 1010.5812988281 - 1010.5354003906 - 1010.5045166016 - 1010.4717407227 - 1010.4248046875 - 1010.3883056641 - 1010.3307495117 - 1010.3046875000 - 1010.2720336914 - 1010.1978149414 - 1010.1954345703 - 1010.1233520508 - 1010.0606689453 - 1010.0452270508 - 1010.0025024414 - 1009.9235229492 - 1009.9244384766 - 1009.8215332031 - 1009.8020019531 - 1009.7305297852 - 1009.7064208984 - 1009.6395874023 - 1009.5964965820 - 1009.5397338867 - 1009.4854125977 - 1009.4266967773 - 1009.3560791016 - 1009.3385620117 - 1009.2645263672 - 1009.2014770508 - 1009.1587524414 - 1009.1134643555 - 1008.9990844727 - 1008.9939575195 - 1008.8903808594 - 1008.8510742188 - 1008.7971801758 - 1008.7315673828 - 1008.6474609375 - 1008.6259765625 - 1008.5238647461 - 1008.4589843750 - 1008.3972167969 - 1008.3327636719 - 1008.2860107422 - 1008.1932983398 - 1008.1149902344 - 1008.0942382812 - 1007.9585571289 - 1007.9176025391 - 1007.8409423828 - 1007.8022460938 - 1007.6740722656 - 1007.6461791992 - 1007.5554199219 - 1007.4525146484 - 1007.4144287109 - 1007.3169555664 - 1007.2575073242 - 1007.1720581055 - 1007.0966796875 - 1007.0343017578 - 1006.9428710938 - 1006.8300170898 - 1006.8035888672 - 1006.6774291992 - 1006.6019287109 - 1006.5556640625 - 1006.4313354492 - 1006.3856201172 - 1006.2788696289 - 1006.2069702148 - 1006.1188354492 - 1006.0272216797 - 1005.9327392578 - 1005.8405761719 - 1005.7553100586 - 1005.7106933594 - 1005.5556030273 - 1005.5004882812 - 1005.4077148438 - 1005.3078002930 - 1005.2073974609 - 1005.0981445312 - 1005.0748291016 - 1004.9291992188 - 1004.8343505859 - 1004.7655029297 - 1004.6480102539 - 1004.5534057617 - 1004.4533691406 - 1004.3386230469 - 1004.2889404297 - 1004.1854858398 - 1004.0298461914 - 1003.9901733398 - 1003.8922729492 - 1003.7759399414 - 1003.6578369141 - 1003.5866699219 - 1003.4899291992 - 1003.3886718750 - 1003.2168579102 - 1003.1762695312 - 1003.0651245117 - 1002.9299316406 - 1002.8424682617 - 1002.7449340820 - 1002.6493530273 - 1002.5142211914 - 1002.4087524414 - 1002.2949218750 - 1002.1985473633 - 1002.0725097656 - 1001.9874267578 - 1001.8405761719 - 1001.7630004883 - 1001.6121215820 - 1001.5198364258 - 1001.3865966797 - 1001.3259277344 - 1001.1497192383 - 1001.0863037109 - 1000.9403686523 - 1000.8517456055 - 1000.7332763672 - 1000.5957031250 - 1000.5002441406 - 1000.4058227539 - 1000.2289428711 - 1000.1730957031 - 1000.0254516602 - 999.9083862305 - 999.8060302734 - 999.6617431641 - 999.5691528320 - 999.4351196289 - 999.3116455078 - 999.1719360352 - 999.0676879883 - 998.9178466797 - 998.8012084961 - 998.6830444336 - 998.5328979492 - 998.4054565430 - 998.2759399414 - 998.1567382812 - 997.9954833984 - 997.8901367188 - 997.7280273438 - 997.6257934570 - 997.4906005859 - 997.3589477539 - 997.2192993164 - 997.1240234375 - 996.9772338867 - 996.8395996094 - 996.7613525391 - 996.6253662109 - 996.5068359375 - 996.3643188477 - 996.3037719727 - 996.1732177734 - 996.0684204102 - 995.9961547852 - 995.8644409180 - 995.8026733398 - 995.6887207031 - 995.5596313477 - 995.4994506836 - 995.4291992188 - 995.2533569336 - 995.2102661133 - 995.1105957031 - 994.9738159180 - 994.8809814453 - 994.7919921875 - 994.6606445312 - 994.4855957031 - 994.4562377930 - 994.3198242188 - 994.0267333984 - 993.3999633789 - 993.1265869141 - 992.9077758789 - 992.7355346680 - 992.6256713867 - 992.3835449219 - 992.1538085938 - 991.9929199219 - 991.8606567383 - 991.5919799805 - 991.3643798828 - 991.2485351562 - 991.0498046875 - 990.7687377930 - 990.6254882812 - 990.4401855469 - 990.2109985352 - 990.0443115234 - 989.7998046875 - 989.6412963867 - 989.4422607422 - 989.2365112305 - 989.0312500000 - 988.8657836914 - 988.6905517578 - 988.4664306641 - 988.2824096680 - 988.1185302734 - 987.9181518555 - 987.7377929688 - 987.5277099609 - 987.3928833008 - 987.1496582031 - 987.0191040039 - 986.7805175781 - 986.6443481445 - 986.4429931641 - 986.2489624023 - 986.0689697266 - 985.8980102539 - 985.6962890625 - 985.5036621094 - 985.3386840820 - 985.1320190430 - 984.9403686523 - 984.7657470703 - 984.5849609375 - 984.3583374023 - 984.1897583008 - 983.9994506836 - 983.7919921875 - 983.6250000000 - 983.3779907227 - 983.2429809570 - 983.0363769531 - 982.7991333008 - 982.6458129883 - 982.4453125000 - 982.2449951172 - 982.0372314453 - 981.8372192383 - 981.6839599609 - 981.4340209961 - 981.2591552734 - 981.0527954102 - 980.8739624023 - 980.6662597656 - 980.4653320312 - 980.2660522461 - 980.0854492188 - 979.8638305664 - 979.6711425781 - 979.4654541016 - 979.2839965820 - 979.0864868164 - 978.8585205078 - 978.6461181641 - 978.4974365234 - 978.2624511719 - 978.0209350586 - 977.8828735352 - 977.6565551758 - 977.4564208984 - 977.2329101562 - 977.0288085938 - 976.8516235352 - 976.6376953125 - 976.3791503906 - 976.2238159180 - 976.0288085938 - 975.7716674805 - 975.5796508789 - 975.3880004883 - 975.1661376953 - 974.9646606445 - 974.7530517578 - 974.5264282227 - 974.3693237305 - 974.0934448242 - 973.9095458984 - 973.7023925781 - 973.4791870117 - 973.2916870117 - 973.0380859375 - 972.8704833984 - 972.6282348633 - 972.4233398438 - 972.2052612305 - 971.9779052734 - 971.7941894531 - 971.5690307617 - 971.3275146484 - 971.1461791992 - 970.9045410156 - 970.7045288086 - 970.4671020508 - 970.2481689453 - 970.0587768555 - 969.8097534180 - 969.5889892578 - 969.4056396484 - 969.1531982422 - 968.9421386719 - 968.7237548828 - 968.4866943359 - 968.2928466797 - 968.0364990234 - 967.8187255859 - 967.6467895508 - 967.3403930664 - 967.1902465820 - 966.9292602539 - 966.7133789062 - 966.4642944336 - 966.2864379883 - 966.0294189453 - 965.7914428711 - 965.6127929688 - 965.3315429688 - 965.1419677734 - 964.8885498047 - 964.6593627930 - 964.4660644531 - 964.1958007812 - 963.9827880859 - 963.7664184570 - 963.5088500977 - 963.2844238281 - 963.0760498047 - 962.7960815430 - 962.6138305664 - 962.3652343750 - 962.1235351562 - 961.8874511719 - 961.6783447266 - 961.4132080078 - 961.1813354492 - 960.9611206055 - 960.7174072266 - 960.4849243164 - 960.2368774414 - 960.0256347656 - 959.7523803711 - 959.5438842773 - 959.2739257812 - 959.0851440430 - 958.7955932617 - 958.5801391602 - 958.3571166992 - 958.0762329102 - 957.8460693359 - 957.6444091797 - 957.3503417969 - 957.1325683594 - 956.9043579102 - 956.6347656250 - 956.3876342773 - 956.1799926758 - 955.9063720703 - 955.6645507812 - 955.4302368164 - 955.1698608398 - 954.9398803711 - 954.6696166992 - 954.4359130859 - 954.2088012695 - 953.9482421875 - 953.6474609375 - 953.4892578125 - 953.1893920898 - 952.9170532227 - 952.6978149414 - 952.4795532227 - 952.1610717773 - 951.9540405273 - 951.6846923828 - 951.4357299805 - 951.2055664062 - 950.8962402344 - 950.7071533203 - 950.4197387695 - 950.1614379883 - 949.9124145508 - 949.6583862305 - 949.4158325195 - 949.1359863281 - 948.8881835938 - 948.6380615234 - 948.3792724609 - 948.1157836914 - 947.8612060547 - 947.5994262695 - 947.3445434570 - 947.0702514648 - 946.8335571289 - 946.5417480469 - 946.3309326172 - 946.0062255859 - 945.7863159180 - 945.5120239258 - 945.2418823242 - 944.9885253906 - 944.7311401367 - 944.4397583008 - 944.2017822266 - 943.9225463867 - 943.6605224609 - 943.3927001953 - 943.1327514648 - 942.8576660156 - 942.5873413086 - 942.3389892578 - 942.0383911133 - 941.8065185547 - 941.5145263672 - 941.2276611328 - 941.0127563477 - 940.6868286133 - 940.4449462891 - 940.1632080078 - 939.9044799805 - 939.5974121094 - 939.3673706055 - 939.0777587891 - 938.7855834961 - 938.5181884766 - 938.2725830078 - 937.9613647461 - 937.6870727539 - 937.4423828125 - 937.1315307617 - 936.8781127930 - 936.5686645508 - 936.3411865234 - 936.0174560547 - 935.7631835938 - 935.4637451172 - 935.1970214844 - 934.9199218750 - 934.6395263672 - 934.3270263672 - 934.0831298828 - 933.7880859375 - 933.5006103516 - 933.2034301758 - 932.9472656250 - 932.6611328125 - 932.3532104492 - 932.0742797852 - 931.8138427734 - 931.5043945312 - 931.2047119141 - 930.9483032227 - 930.6456909180 - 930.3587646484 - 930.0467529297 - 929.8034667969 - 929.4666137695 - 929.2169189453 - 928.8956298828 - 928.5935058594 - 928.3551635742 - 928.0072631836 - 927.7368774414 - 927.4406738281 - 927.1604003906 - 926.8390502930 - 926.5713500977 - 926.2394409180 - 926.0004882812 - 925.6372680664 - 925.3682250977 - 925.1036376953 - 924.7451171875 - 924.4799194336 - 924.1912841797 - 923.8637084961 - 923.5866088867 - 923.2546997070 - 922.9963989258 - 922.6576538086 - 922.3629760742 - 922.0676879883 - 921.7606201172 - 921.4518432617 - 921.1480102539 - 920.8295898438 - 920.5470581055 - 920.2108154297 - 919.9425659180 - 919.5778198242 - 919.3182373047 - 918.9989013672 - 918.6634521484 - 918.3811035156 - 918.0462036133 - 917.7649536133 - 917.4251708984 - 917.1032714844 - 916.8179321289 - 916.5021362305 - 916.1516723633 - 915.8572387695 - 915.5598144531 - 915.2072143555 - 914.9064331055 - 914.5861816406 - 914.2631225586 - 913.9505004883 - 913.6176147461 - 913.2938842773 - 912.9865112305 - 912.6489257812 - 912.3312377930 - 911.9938964844 - 911.6902465820 - 911.3470458984 - 911.0310058594 - 910.6753540039 - 910.3876342773 - 910.0286254883 - 909.7067260742 - 909.3506469727 - 909.0688476562 - 908.6943969727 - 908.3605346680 - 908.0569458008 - 907.6805419922 - 907.3659667969 - 907.0412597656 - 906.6572265625 - 906.3656616211 - 906.0056152344 - 905.6588134766 - 905.3096313477 - 905.0032958984 - 904.6113281250 - 904.2875976562 - 903.9493408203 - 903.5895996094 - 903.2221679688 - 902.9255981445 - 902.5162353516 - 902.2016601562 - 901.8285522461 - 901.4825439453 - 901.1244506836 - 900.7722778320 - 900.3944702148 - 900.0706176758 - 899.6859741211 - 899.3099975586 - 898.9794311523 - 898.6094970703 - 898.2209472656 - 897.8764038086 - 897.5031738281 - 897.1392822266 - 896.7451782227 - 896.3889770508 - 896.0235595703 - 895.6367797852 - 895.2588500977 - 894.8718872070 - 894.5306396484 - 894.1035156250 - 893.7358398438 - 893.3704833984 - 892.9725952148 - 892.5736694336 - 892.1975708008 - 891.8195800781 - 891.3959960938 - 891.0316162109 - 890.6199951172 - 890.2189331055 - 889.8395996094 - 889.4235229492 - 889.0156860352 - 888.6417846680 - 888.1959838867 - 887.8167114258 - 887.4066162109 - 886.9568481445 - 886.6035766602 - 886.1520996094 - 885.7084350586 - 885.3513183594 - 884.9100952148 - 884.4427490234 - 884.0557250977 - 883.6539306641 - 883.1719970703 - 882.7485961914 - 882.3498535156 - 881.8898925781 - 881.4546508789 - 881.0091552734 - 880.5633544922 - 880.1752929688 - 879.6333618164 - 879.2437744141 - 878.7927856445 - 878.3349609375 - 877.8450927734 - 877.4253540039 - 876.9727172852 - 876.4668579102 - 876.0238037109 - 875.5555419922 - 875.0827636719 - 874.6015625000 - 874.1331787109 - 873.6488037109 - 873.1711425781 - 872.7155761719 - 872.1770629883 - 871.7380981445 - 871.2179565430 - 870.7333374023 - 870.2415771484 - 869.7461547852 - 869.2174682617 - 868.7700195312 - 868.2144775391 - 867.7144775391 - 867.2256469727 - 866.7088012695 - 866.1654052734 - 865.6530151367 - 865.1737060547 - 864.6018066406 - 864.0806884766 - 863.5905151367 - 863.0161743164 - 862.5162963867 - 861.9370117188 - 861.4465942383 - 860.8670043945 - 860.3527221680 - 859.7669067383 - 859.2552490234 - 858.6895141602 - 858.1226196289 - 857.5770874023 - 857.0274658203 - 856.4647827148 - 855.8820190430 - 855.3463745117 - 854.7607421875 - 854.1881713867 - 853.6312255859 - 853.0369873047 - 852.4902954102 - 851.8956909180 - 851.3074951172 - 850.7445678711 - 850.1540527344 - 849.5628662109 - 848.9861450195 - 848.3978271484 - 847.7897949219 - 847.2250976562 - 846.6063842773 - 846.0129394531 - 845.4412841797 - 844.8187255859 - 844.2262573242 - 843.6303710938 - 843.0202636719 - 842.4311523438 - 841.8046875000 - 841.2122802734 - 840.6340332031 - 839.9785766602 - 839.4036254883 - 838.7926635742 - 838.1796264648 - 837.5723876953 - 836.9698486328 - 836.3538818359 - 835.7293701172 - 835.1520385742 - 834.5166625977 - 833.9316406250 - 833.2703247070 - 832.7255249023 - 832.0739746094 - 831.4663085938 - 830.8621826172 - 830.2811889648 - 829.6527099609 - 829.0134277344 - 828.4584960938 - 827.8538818359 - 827.1820678711 - 826.6646728516 - 826.0148925781 - 825.4118041992 - 824.8461303711 - 824.1813964844 - 823.6702270508 - 823.0114746094 - 822.4258422852 - 821.8783569336 - 821.2220458984 - 820.6882324219 - 820.0756225586 - 819.4883422852 - 818.9250488281 - 818.3232421875 - 817.7595825195 - 817.1799926758 - 816.6055297852 - 816.0396728516 - 815.4532470703 - 814.9183349609 - 814.3057250977 - 813.7800903320 - 813.2269897461 - 812.6370849609 - 812.1079101562 - 811.5709838867 - 810.9954833984 - 810.4625854492 - 809.9234619141 - 809.3782958984 - 808.8532104492 - 808.3188476562 - 807.7705078125 - 807.2752075195 - 806.7445678711 - 806.2100830078 - 805.7047119141 - 805.1938476562 - 804.6933593750 - 804.1504516602 - 803.6754150391 - 803.1895751953 - 802.6664428711 - 802.1804199219 - 801.7015991211 - 801.2210083008 - 800.7106933594 - 800.2562866211 - 799.7712402344 - 799.3077392578 - 798.8189697266 - 798.3919677734 - 797.8698120117 - 797.4962158203 - 796.9541015625 - 796.5608520508 - 796.1041259766 - 795.6442871094 - 795.2100830078 - 794.7855834961 - 794.3341064453 - 793.9094848633 - 793.4851684570 - 793.0554809570 - 792.6403198242 - 792.2315063477 - 791.7841796875 - 791.4106445312 - 790.9987792969 - 790.5670776367 - 790.1761474609 - 789.8217773438 - 789.3631591797 - 789.0037841797 - 788.6126098633 - 788.2318115234 - 787.8338012695 - 787.4624023438 - 787.1048583984 - 786.6952514648 - 786.3660888672 - 785.9578857422 - 785.6218261719 - 785.2506103516 - 784.8782348633 - 784.5502319336 - 784.1588134766 - 783.8374023438 - 783.4689331055 - 783.1453247070 - 782.7637329102 - 782.4508666992 - 782.1157836914 - 781.7620239258 - 781.4084472656 - 781.1317749023 - 780.7647094727 - 780.4221801758 - 780.1358032227 - 779.7810058594 - 779.4838256836 - 779.1342773438 - 778.8414916992 - 778.5080566406 - 778.2258911133 - 777.8726806641 - 777.5885009766 - 777.2721557617 - 776.9869384766 - 776.6356811523 - 776.3759765625 - 776.0574951172 - 775.7506713867 - 775.4793701172 - 775.1241455078 - 774.9135742188 - 774.5637207031 - 774.2595825195 - 774.0142822266 - 773.6937255859 - 773.4104003906 - 773.1239013672 - 772.8363037109 - 772.5543212891 - 772.2748413086 - 771.9814453125 - 771.7127685547 - 771.4168090820 - 771.1486816406 - 770.8645019531 - 770.5782470703 - 770.3259277344 - 770.0356445312 - 769.7418212891 - 769.5034790039 - 769.1989746094 - 768.9396972656 - 768.6698608398 - 768.3691406250 - 768.1621093750 - 767.8280639648 - 767.5654296875 - 767.3422851562 - 767.0239868164 - 766.7697143555 - 766.5073852539 - 766.2506103516 - 765.9542846680 - 765.6993408203 - 765.4477539062 - 765.1408081055 - 764.9384765625 - 764.5980224609 - 764.3839721680 - 764.1090087891 - 763.8404541016 - 763.5544433594 - 763.3181762695 - 763.0581054688 - 762.7362670898 - 762.5308837891 - 762.2462158203 - 761.9743652344 - 761.7222900391 - 761.4370727539 - 761.1744384766 - 760.9457397461 - 760.6199951172 - 760.3943481445 - 760.1173095703 - 759.8687744141 - 759.5650024414 - 759.3381958008 - 759.0368041992 - 758.8029785156 - 758.4974975586 - 758.2538452148 - 757.9893798828 - 757.7246093750 - 757.4168090820 - 757.1889648438 - 756.9097290039 - 756.6296386719 - 756.3579101562 - 756.1112670898 - 755.8139648438 - 755.5520019531 - 755.2691650391 - 755.0185546875 - 754.7085571289 - 754.4765014648 - 754.1636962891 - 753.9344482422 - 753.6156005859 - 753.3507080078 - 753.1066894531 - 752.7579345703 - 752.5380249023 - 752.2528686523 - 751.9425659180 - 751.7027587891 - 751.3910522461 - 751.1176757812 - 750.8571166992 - 750.5600585938 - 750.2609252930 - 749.9965209961 - 749.7280883789 - 749.3887329102 - 749.1489868164 - 748.8561401367 - 748.5507202148 - 748.2750854492 - 747.9808349609 - 747.7008056641 - 747.4005126953 - 747.0812377930 - 746.8529663086 - 746.5120849609 - 746.1973266602 - 745.9675903320 - 745.6239013672 - 745.3309326172 - 745.0534057617 - 744.7172241211 - 744.4749145508 - 744.1232299805 - 743.8422241211 - 743.5397338867 - 743.2427368164 - 742.9559936523 - 742.6224975586 - 742.3125610352 - 742.0364379883 - 741.7244262695 - 741.4000854492 - 741.0818481445 - 740.8085327148 - 740.4822998047 - 740.1402587891 - 739.8769531250 - 739.5477905273 - 739.2189941406 - 738.8865356445 - 738.6235961914 - 738.2824707031 - 737.9201049805 - 737.6589355469 - 737.3282470703 - 736.9926757812 - 736.6702270508 - 736.3501586914 - 736.0292968750 - 735.7235717773 - 735.3546752930 - 735.0697631836 - 734.7049560547 - 734.4006347656 - 734.0823364258 - 733.7230834961 - 733.4300537109 - 733.0507202148 - 732.7411499023 - 732.4230346680 - 732.0737915039 - 731.7297363281 - 731.4096679688 - 731.0546264648 - 730.7031860352 - 730.4064941406 - 730.0394897461 - 729.6920776367 - 729.3486328125 - 729.0134277344 - 728.6744995117 - 728.3211669922 - 727.9731445312 - 727.6131591797 - 727.2835083008 - 726.9286499023 - 726.5707397461 - 726.2255249023 - 725.8696899414 - 725.4885253906 - 725.1879272461 - 724.8202514648 - 724.4337768555 - 724.1186523438 - 723.7258911133 - 723.3583984375 - 723.0328979492 - 722.6801147461 - 722.2611083984 - 721.9475097656 - 721.5712890625 - 721.1889648438 - 720.8413696289 - 720.4763183594 - 720.1181030273 - 719.7147216797 - 719.3593139648 - 718.9959106445 - 718.6354370117 - 718.2362060547 - 717.8695678711 - 717.5079345703 - 717.0961303711 - 716.7587890625 - 716.3845214844 - 715.9898681641 - 715.6221313477 - 715.2057495117 - 714.8696899414 - 714.4553833008 - 714.1076660156 - 713.7111206055 - 713.3060913086 - 712.9243164062 - 712.5589599609 - 712.1425170898 - 711.7906494141 - 711.4042358398 - 710.9783935547 - 710.6261596680 - 710.1782226562 - 709.8415527344 - 709.4118652344 - 709.0452270508 - 708.6648559570 - 708.2158813477 - 707.8731689453 - 707.4384765625 - 707.0347290039 - 706.6732177734 - 706.2433471680 - 705.8539428711 - 705.4500122070 - 705.0274047852 - 704.6295776367 - 704.2545776367 - 703.8193359375 - 703.4417724609 - 702.9956054688 - 702.6043090820 - 702.1922607422 - 701.7879638672 - 701.3820800781 - 700.9738159180 - 700.5592041016 - 700.1346435547 - 699.7321166992 - 699.2921142578 - 698.9111328125 - 698.4932861328 - 698.0620727539 - 697.6630859375 - 697.2499389648 - 696.7891235352 - 696.4127197266 - 695.9391479492 - 695.5690307617 - 695.1275634766 - 694.7171630859 - 694.2753906250 - 693.8792724609 - 693.4284057617 - 693.0022583008 - 692.5510253906 - 692.1779174805 - 691.7194213867 - 691.3051147461 - 690.8417968750 - 690.4651489258 - 689.9688110352 - 689.5636596680 - 689.1325683594 - 688.7156372070 - 688.2709960938 - 687.8147583008 - 687.4138793945 - 686.9291992188 - 686.5197143555 - 686.0770263672 - 685.6515502930 - 685.2002563477 - 684.7774047852 - 684.3258056641 - 683.9082031250 - 683.4001464844 - 683.0228881836 - 682.5305786133 - 682.0978393555 - 681.6973266602 - 681.1942749023 - 680.7890625000 - 680.3448486328 - 679.8890380859 - 679.4232177734 - 679.0048828125 - 678.5238647461 - 678.0601196289 - 677.6265258789 - 677.2227783203 - 676.7023315430 - 676.2636718750 - 675.8379516602 - 675.3524169922 - 674.8864135742 - 674.4335327148 - 674.0273437500 - 673.5390625000 - 673.0584106445 - 672.6476440430 - 672.1563720703 - 671.6823120117 - 671.2373657227 - 670.7639770508 - 670.3305664062 - 669.8743286133 - 669.3688964844 - 668.9534912109 - 668.4840698242 - 668.0263061523 - 667.5298461914 - 667.0993652344 - 666.6498413086 - 666.1570434570 - 665.6433105469 - 665.2484741211 - 664.7250366211 - 664.2679443359 - 663.8201293945 - 663.3327636719 - 662.8888549805 - 662.3895874023 - 661.9155883789 - 661.4422607422 - 660.9647827148 - 660.4840087891 - 660.0585937500 - 659.5104370117 - 659.0886840820 - 658.5614013672 - 658.1117553711 - 657.6248168945 - 657.1796875000 - 656.6376342773 - 656.2529296875 - 655.6980590820 - 655.2638549805 - 654.7714233398 - 654.3037109375 - 653.8078613281 - 653.3546142578 - 652.8347778320 - 652.4027099609 - 651.8977661133 - 651.3991088867 - 650.9513549805 - 650.4508666992 - 649.9747314453 - 649.4779663086 - 649.0099487305 - 648.4884033203 - 648.0153808594 - 647.5089111328 - 647.0304565430 - 646.5368652344 - 646.0220947266 - 645.5392456055 - 645.0342407227 - 644.5393066406 - 644.0484008789 - 643.5314941406 - 643.0460205078 - 642.5296020508 - 642.0906372070 - 641.5600585938 - 641.0526733398 - 640.6059570312 - 640.1073608398 - 639.5988159180 - 639.1535034180 - 638.6602172852 - 638.2139282227 - 637.6686401367 - 637.2821044922 - 636.7684326172 - 636.3577880859 - 635.8977661133 - 635.4235839844 - 635.0039062500 - 634.5400390625 - 634.1027221680 - 633.6176147461 - 633.2212524414 - 632.7286987305 - 632.3468017578 - 631.8023071289 - 631.3635253906 - 630.9729614258 - 630.4992675781 - 629.9279174805 - 629.4442749023 - 629.1624145508 - 628.6112670898 - 627.6846313477 - 625.6481323242 - 624.7338256836 - 624.1305541992 - 623.7585449219 - 623.3163452148 - 622.6750488281 - 622.1127929688 - 621.6791992188 - 621.2434082031 - 620.5922851562 - 620.0938720703 - 619.6391601562 - 619.1618652344 - 618.5377197266 - 618.0911865234 - 617.5822143555 - 617.0568847656 - 616.5609130859 - 615.9921264648 - 615.5476074219 - 614.9909667969 - 614.5125732422 - 613.9279174805 - 613.4519653320 - 612.9337158203 - 612.3966064453 - 611.8585205078 - 611.3495483398 - 610.8363037109 - 610.3033447266 - 609.7231445312 - 609.2844848633 - 608.6792602539 - 608.2136230469 - 607.6126098633 - 607.1376953125 - 606.5908813477 - 606.0453491211 - 605.5292968750 - 605.0012817383 - 604.4548339844 - 603.9287109375 - 603.4124755859 - 602.8752441406 - 602.3206176758 - 601.8204956055 - 601.2943115234 - 600.7335205078 - 600.2178344727 - 599.7143554688 - 599.1586914062 - 598.6414184570 - 598.0892333984 - 597.5957031250 - 597.0718383789 - 596.4862670898 - 596.0089721680 - 595.4645996094 - 594.9601440430 - 594.3663330078 - 593.8953247070 - 593.3672485352 - 592.8031616211 - 592.2900390625 - 591.7682495117 - 591.2233276367 - 590.7193603516 - 590.1375122070 - 589.6398925781 - 589.1250000000 - 588.5684204102 - 588.0454711914 - 587.5082397461 - 586.9796752930 - 586.4713134766 - 585.9017944336 - 585.3751220703 - 584.9093017578 - 584.3078613281 - 583.7864379883 - 583.2939453125 - 582.7224121094 - 582.2076416016 - 581.6809692383 - 581.1304321289 - 580.6340942383 - 580.0916137695 - 579.5380859375 - 579.0328369141 - 578.5192871094 - 577.9547119141 - 577.4326171875 - 576.9299316406 - 576.3757934570 - 575.8316040039 - 575.3306274414 - 574.7667236328 - 574.2713623047 - 573.7058715820 - 573.2058715820 - 572.6725463867 - 572.1091918945 - 571.6239013672 - 571.0598144531 - 570.5317382812 - 570.0034179688 - 569.4942016602 - 568.9511108398 - 568.3861694336 - 567.9100341797 - 567.3576660156 - 566.7949218750 - 566.3035888672 - 565.7749633789 - 565.2240600586 - 564.7030639648 - 564.1799316406 - 563.6475219727 - 563.1297607422 - 562.5536499023 - 562.0784301758 - 561.5070800781 - 560.9985351562 - 560.4634399414 - 559.9258422852 - 559.4222412109 - 558.8751831055 - 558.3181152344 - 557.8657226562 - 557.2343139648 - 556.7756958008 - 556.2186279297 - 555.6999511719 - 555.1631469727 - 554.6404418945 - 554.1149291992 - 553.5505371094 - 553.0821533203 - 552.4757080078 - 552.0238037109 - 551.4515380859 - 550.9218750000 - 550.4137573242 - 549.8604736328 - 549.3375854492 - 548.8319702148 - 548.2621459961 - 547.7753906250 - 547.2357177734 - 546.6857910156 - 546.1825561523 - 545.6408691406 - 545.1161499023 - 544.5761718750 - 544.0729370117 - 543.5362548828 - 542.9942626953 - 542.4899902344 - 541.9458618164 - 541.4205322266 - 540.8831787109 - 540.3859252930 - 539.8242187500 - 539.3259887695 - 538.7767333984 - 538.2764892578 - 537.7159423828 - 537.1943359375 - 536.7056274414 - 536.1408691406 - 535.6123046875 - 535.1268310547 - 534.5533447266 - 534.0332641602 - 533.5481567383 - 532.9909057617 - 532.4364013672 - 531.9860229492 - 531.3938598633 - 530.8819580078 - 530.3870849609 - 529.8217773438 - 529.3518676758 - 528.7639770508 - 528.2793579102 - 527.7522583008 - 527.2160034180 - 526.6610107422 - 526.2130126953 - 525.6495971680 - 525.1041870117 - 524.5990600586 - 524.1010742188 - 523.5299072266 - 523.0316772461 - 522.5205688477 - 521.9765625000 - 521.4851074219 - 520.8921508789 - 520.4398193359 - 519.9085693359 - 519.3579101562 - 518.8509521484 - 518.3352661133 - 517.8092651367 - 517.2705688477 - 516.7635498047 - 516.2593994141 - 515.7140502930 - 515.1939086914 - 514.6785278320 - 514.1676025391 - 513.6401977539 - 513.0968017578 - 512.6350708008 - 512.0439453125 - 511.5832214355 - 511.0206604004 - 510.5401306152 - 509.9855651855 - 509.4874877930 - 508.9591674805 - 508.4391479492 - 507.9284667969 - 507.4197998047 - 506.8849487305 - 506.3750305176 - 505.8504638672 - 505.3365478516 - 504.8236694336 - 504.2951049805 - 503.7977905273 - 503.2419128418 - 502.7682189941 - 502.2336120605 - 501.6989440918 - 501.2372741699 - 500.6454467773 - 500.1897583008 - 499.6547546387 - 499.1418457031 - 498.6016845703 - 498.1268920898 - 497.5851745605 - 497.0616760254 - 496.5701904297 - 496.0549926758 - 495.5287780762 - 494.9964904785 - 494.5230102539 - 493.9891052246 - 493.4754028320 - 492.9564819336 - 492.4668884277 - 491.9186706543 - 491.4336242676 - 490.9014282227 - 490.4020080566 - 489.8825988770 - 489.3634948730 - 488.8570556641 - 488.3551330566 - 487.8133850098 - 487.3322448730 - 486.7940979004 - 486.3014831543 - 485.7769165039 - 485.2741394043 - 484.7485046387 - 484.2531738281 - 483.7419738770 - 483.2105102539 - 482.7208251953 - 482.1906127930 - 481.7014160156 - 481.1626281738 - 480.6805725098 - 480.1314392090 - 479.6672668457 - 479.1237182617 - 478.6150207520 - 478.1260986328 - 477.5946960449 - 477.0822143555 - 476.5820922852 - 476.0884094238 - 475.5170593262 - 475.0792846680 - 474.5164184570 - 474.0339050293 - 473.4956665039 - 472.9964904785 - 472.5143127441 - 471.9466857910 - 471.4679870605 - 470.9768676758 - 470.4248962402 - 469.9347229004 - 469.4220275879 - 468.9203796387 - 468.3814086914 - 467.8916931152 - 467.3781433105 - 466.8529052734 - 466.3510742188 - 465.8457641602 - 465.2991027832 - 464.8388061523 - 464.2741088867 - 463.7985839844 - 463.2649536133 - 462.7551269531 - 462.2533264160 - 461.7203369141 - 461.2067565918 - 460.6985473633 - 460.1899414062 - 459.6742553711 - 459.1253356934 - 458.6548767090 - 458.1303100586 - 457.5831604004 - 457.0716552734 - 456.5912780762 - 456.0353088379 - 455.5283813477 - 455.0019531250 - 454.5070190430 - 453.9692382812 - 453.4388427734 - 452.9183349609 - 452.4294433594 - 451.8666381836 - 451.3731079102 - 450.8133544922 - 450.3396606445 - 449.7721557617 - 449.2704772949 - 448.7080688477 - 448.2516174316 - 447.6527099609 - 447.1582336426 - 446.6050415039 - 446.1146545410 - 445.5493469238 - 445.0133361816 - 444.5002746582 - 443.9644165039 - 443.4146118164 - 442.8961181641 - 442.3313598633 - 441.8303222656 - 441.2688293457 - 440.7167053223 - 440.2032165527 - 439.6502380371 - 439.0996398926 - 438.5505371094 - 438.0234375000 - 437.4714965820 - 436.8836669922 - 436.3971252441 - 435.7871398926 - 435.2836303711 - 434.6746215820 - 434.1587219238 - 433.6031799316 - 433.0054626465 - 432.4668273926 - 431.9217834473 - 431.3335876465 - 430.7615966797 - 430.2067260742 - 429.6551513672 - 429.0466003418 - 428.4867248535 - 427.9223022461 - 427.3446655273 - 426.7363281250 - 426.1793823242 - 425.5938415527 - 425.0037231445 - 424.4067077637 - 423.8091125488 - 423.2582702637 - 422.6133117676 - 422.0314025879 - 421.4543762207 - 420.8177185059 - 420.2307434082 - 419.6283569336 - 418.9929199219 - 418.4034423828 - 417.7789916992 - 417.1610717773 - 416.5305480957 - 415.9148254395 - 415.2999572754 - 414.6323547363 - 414.0447082520 - 413.3603820801 - 412.7680969238 - 412.0964660645 - 411.4309692383 - 410.8327636719 - 410.1585388184 - 409.4540100098 - 408.8759765625 - 408.1706848145 - 407.4839172363 - 406.8437500000 - 406.1718750000 - 405.4759521484 - 404.7901916504 - 404.1302185059 - 403.4180297852 - 402.7471923828 - 402.0191650391 - 401.3301086426 - 400.6714477539 - 399.8822326660 - 399.2065429688 - 398.5088806152 - 397.7737731934 - 397.0059814453 - 396.3358154297 - 395.5822753906 - 394.8256835938 - 394.0813903809 - 393.3455810547 - 392.5954589844 - 391.8186035156 - 391.0667724609 - 390.2910766602 - 389.5445251465 - 388.7537841797 - 387.9456176758 - 387.2182312012 - 386.3774719238 - 385.5875549316 - 384.8161621094 - 383.9908447266 - 383.1564025879 - 382.4035339355 - 381.5266418457 - 380.7120971680 - 379.9093933105 - 379.0588989258 - 378.1986083984 - 377.3643493652 - 376.5473937988 - 375.6354980469 - 374.8196105957 - 373.9358520508 - 373.0770568848 - 372.1965637207 - 371.2966613770 - 370.4488525391 - 369.5235290527 - 368.6533813477 - 367.7279357910 - 366.8431396484 - 365.9212036133 - 364.9992065430 - 364.0951232910 - 363.1614990234 - 362.2392272949 - 361.3029785156 - 360.3708801270 - 359.4147338867 - 358.4652709961 - 357.5357971191 - 356.5472412109 - 355.6118469238 - 354.6496276855 - 353.6584472656 - 352.7029113770 - 351.7248535156 - 350.7325744629 - 349.7595214844 - 348.7784118652 - 347.7477416992 - 346.7890014648 - 345.7782897949 - 344.7534790039 - 343.7763061523 - 342.7639770508 - 341.7246398926 - 340.7345886230 - 339.6941833496 - 338.6899719238 - 337.6408691406 - 336.6238098145 - 335.6326293945 - 334.5341186523 - 333.5466613770 - 332.5049743652 - 331.4442138672 - 330.4429016113 - 329.3633117676 - 328.3429870605 - 327.2883300781 - 326.2338867188 - 325.2175598145 - 324.1513061523 - 323.0711364746 - 322.0884094238 - 320.9617919922 - 319.9705505371 - 318.8791503906 - 317.8577270508 - 316.8193969727 - 315.7125244141 - 314.7021179199 - 313.6714782715 - 312.5543823242 - 311.5974731445 - 310.4715576172 - 309.4667968750 - 308.4230957031 - 307.3263244629 - 306.3574218750 - 305.2719421387 - 304.2322082520 - 303.2379760742 - 302.1378173828 - 301.1645507812 - 300.1038818359 - 299.0710449219 - 298.0881958008 - 297.0102233887 - 296.0245971680 - 295.0123596191 - 293.9830017090 - 292.9876708984 - 291.9564819336 - 290.9895629883 - 289.9425354004 - 288.9671020508 - 287.9971313477 - 286.9736633301 - 285.9970703125 - 285.0487976074 - 284.0305480957 - 283.0706481934 - 282.1119995117 - 281.1372070312 - 280.1841735840 - 279.2396240234 - 278.2635498047 - 277.3393554688 - 276.4098510742 - 275.4440612793 - 274.5345458984 - 273.6084899902 - 272.6849060059 - 271.7498168945 - 270.8547058105 - 269.9617004395 - 269.0381774902 - 268.1567382812 - 267.2682800293 - 266.3788757324 - 265.4946289062 - 264.6193542480 - 263.7601928711 - 262.8792724609 - 262.0321044922 - 261.1903076172 - 260.3012695312 - 259.5189208984 - 258.6154174805 - 257.8483886719 - 256.9803466797 - 256.1709899902 - 255.3663940430 - 254.5513000488 - 253.7257232666 - 252.9474487305 - 252.1618499756 - 251.3328552246 - 250.5924072266 - 249.8038330078 - 248.9968872070 - 248.2705688477 - 247.5084838867 - 246.7012939453 - 245.9922637939 - 245.2543029785 - 244.4624481201 - 243.7608795166 - 243.0207214355 - 242.3024291992 - 241.5571594238 - 240.8457794189 - 240.1519470215 - 239.4205627441 - 238.7314758301 - 237.9950561523 - 237.3565063477 - 236.6339721680 - 235.9315338135 - 235.2807006836 - 234.6044006348 - 233.8993072510 - 233.2479858398 - 232.6054687500 - 231.9020385742 - 231.2776489258 - 230.6130981445 - 229.9703979492 - 229.3112182617 - 228.6935729980 - 228.0347900391 - 227.4118652344 - 226.7941894531 - 226.1217651367 - 225.5666198730 - 224.8979492188 - 224.2841186523 - 223.6934509277 - 223.0918884277 - 222.4420166016 - 221.8859100342 - 221.2508087158 - 220.6971130371 - 220.0511016846 - 219.4960021973 - 218.9034729004 - 218.3088073730 - 217.7442932129 - 217.1233367920 - 216.6152648926 - 215.9904479980 - 215.4154052734 - 214.8870239258 - 214.2799835205 - 213.7341613770 - 213.1832580566 - 212.5913391113 - 212.0630493164 - 211.5066528320 - 210.9418334961 - 210.3969726562 - 209.8378906250 - 209.3141937256 - 208.7479095459 - 208.1999206543 - 207.6816406250 - 207.1425933838 - 206.5700378418 - 206.0686950684 - 205.5237731934 - 204.9962463379 - 204.4519500732 - 203.9156188965 - 203.4419860840 - 202.8513793945 - 202.3321990967 - 201.8630218506 - 201.2749633789 - 200.7944183350 - 200.2407379150 - 199.7692260742 - 199.2085113525 - 198.6965484619 - 198.2024841309 - 197.6598205566 - 197.1814270020 - 196.6153717041 - 196.1535339355 - 195.6287689209 - 195.1021423340 - 194.6032714844 - 194.0947265625 - 193.6009979248 - 193.0484619141 - 192.5777130127 - 192.0719757080 - 191.5594787598 - 191.0409545898 - 190.5493927002 - 190.0316467285 - 189.5727691650 - 188.9863891602 - 188.5537567139 - 188.0212860107 - 187.5453796387 - 186.9929809570 - 186.5484924316 - 186.0024108887 - 185.5408630371 - 184.9903411865 - 184.5258483887 - 184.0278930664 - 183.5234985352 - 182.9876861572 - 182.5288238525 - 182.0178833008 - 181.5189361572 - 180.9940185547 - 180.5329284668 - 180.0202636719 - 179.5068511963 - 178.9949798584 - 178.5376281738 - 177.9930267334 - 177.5186614990 - 176.9981689453 - 176.5301666260 - 176.0027313232 - 175.4964447021 - 175.0236206055 - 174.4799346924 - 174.0014190674 - 173.5193939209 - 172.9645080566 - 172.5206298828 - 171.9764556885 - 171.4827270508 - 170.9991149902 - 170.4779968262 - 169.9628601074 - 169.4847717285 - 168.9723815918 - 168.4399871826 - 167.9624176025 - 167.4661407471 - 166.9225616455 - 166.4365844727 - 165.9467926025 - 165.4090576172 - 164.9132690430 - 164.3947143555 - 163.9082336426 - 163.3868255615 - 162.8303985596 - 162.4071655273 - 161.8272399902 - 161.3287811279 - 160.8357238770 - 160.2980194092 - 159.8072204590 - 159.2748413086 - 158.7743835449 - 158.2380371094 - 157.7557525635 - 157.2256774902 - 156.7092132568 - 156.1711578369 - 155.6860046387 - 155.1521759033 - 154.6365356445 - 154.0981597900 - 153.6008148193 - 153.0803222656 - 152.5306091309 - 152.0449066162 - 151.5038909912 - 150.9836273193 - 150.4322052002 - 149.9603729248 - 149.4009399414 - 148.8537597656 - 148.3669738770 - 147.8285369873 - 147.2869720459 - 146.7662200928 - 146.2261352539 - 145.7158203125 - 145.1743774414 - 144.6308898926 - 144.1211242676 - 143.5649719238 - 143.0337066650 - 142.5321960449 - 141.9676666260 - 141.4481658936 - 140.8819427490 - 140.3746337891 - 139.8412933350 - 139.2767944336 - 138.7583770752 - 138.2131042480 - 137.6635742188 - 137.1021118164 - 136.6254730225 - 136.0178985596 - 135.5056610107 - 134.9494018555 - 134.3983459473 - 133.8837585449 - 133.3079833984 - 132.7726135254 - 132.2098999023 - 131.6760559082 - 131.1258544922 - 130.5670318604 - 130.0255889893 - 129.4615020752 - 128.8981170654 - 128.3838958740 - 127.8216552734 - 127.2426528931 - 126.7274932861 - 126.1275787354 - 125.5909271240 - 125.0279006958 - 124.5132369995 - 123.8737487793 - 123.3825531006 - 122.8002548218 - 122.2242889404 - 121.6806106567 - 121.1229858398 - 120.5668945312 - 119.9663696289 - 119.4220886230 - 118.8709030151 - 118.3014068604 - 117.7157974243 - 117.1571273804 - 116.6071243286 - 115.9979782104 - 115.4477386475 - 114.9247436523 - 114.2992095947 - 113.7554779053 - 113.1476745605 - 112.6109619141 - 112.0336685181 - 111.4513854980 - 110.8853149414 - 110.3091735840 - 109.7221984863 - 109.1339340210 - 108.5873870850 - 108.0128250122 - 107.4286956787 - 106.8256301880 - 106.2960815430 - 105.6404724121 - 105.1296539307 - 104.4999542236 - 103.9545516968 - 103.3896636963 - 102.7307586670 - 102.2288818359 - 101.6028518677 - 100.9944610596 - 100.4584960938 - 99.8575286865 - 99.2477264404 - 98.6850509644 - 98.0833053589 - 97.4736175537 - 96.9271087646 - 96.3218383789 - 95.7276763916 - 95.1289901733 - 94.5335617065 - 93.9577331543 - 93.3462219238 - 92.7747192383 - 92.1761016846 - 91.5813064575 - 90.9684600830 - 90.3946228027 - 89.7733001709 - 89.1921386719 - 88.6094512939 - 87.9949035645 - 87.4104385376 - 86.8060379028 - 86.1964797974 - 85.6099014282 - 84.9690551758 - 84.4265136719 - 83.7866210938 - 83.2069931030 - 82.5967788696 - 81.9957122803 - 81.3891143799 - 80.7844467163 - 80.1366653442 - 79.6148681641 - 78.9407653809 - 78.3824691772 - 77.7324218750 - 77.1612091064 - 76.5169219971 - 75.9207000732 - 75.3198699951 - 74.7034759521 - 74.1324386597 - 73.4438629150 - 72.9041748047 - 72.2453231812 - 71.6399078369 - 71.0415649414 - 70.4321670532 - 69.8079833984 - 69.2187881470 - 68.5714645386 - 68.0069427490 - 67.3213043213 - 66.7545928955 - 66.1068420410 - 65.5019302368 - 64.9187011719 - 64.2523498535 - 63.6613159180 - 63.0696258545 - 62.4253158569 - 61.7813224792 - 61.2154388428 - 60.5537834167 - 59.9171142578 - 59.3206863403 - 58.7307815552 - 58.0681037903 - 57.4334335327 - 56.8572731018 - 56.1938743591 - 55.5618095398 - 54.9593048096 - 54.3440284729 - 53.7223510742 - 53.0616378784 - 52.4848670959 - 51.8301773071 - 51.1796531677 - 50.5803909302 - 49.9507789612 - 49.3193702698 - 48.7059173584 - 48.0674018860 - 47.4540214539 - 46.8139076233 - 46.2106933594 - 45.5485839844 - 44.9430351257 - 44.3332023621 - 43.6600265503 - 43.0243148804 - 42.4442977905 - 41.7329673767 - 41.1495437622 - 40.5331687927 - 39.8647384644 - 39.2622642517 - 38.6125831604 - 37.9731063843 - 37.3431777954 - 36.6890945435 - 36.0596847534 - 35.4757843018 - 34.7614135742 - 34.1756324768 - 33.4980163574 - 32.8834915161 - 32.2513389587 - 31.6126422882 - 30.9365139008 - 30.3950195312 - 29.6689071655 - 29.0750885010 - 28.4194068909 - 27.8223266602 - 27.1383075714 - 26.5202159882 - 25.8799781799 - 25.2569885254 - 24.6109695435 - 23.9441337585 - 23.3427352905 - 22.7003822327 - 22.0446281433 - 21.3979454041 - 20.7857093811 - 20.1051902771 - 19.4664230347 - 18.8199272156 - 18.1849403381 - 17.5272865295 - 16.8680152893 - 16.2365760803 - 15.5722665787 - 14.9134368896 - 14.3032112122 - 13.5961132050 - 12.9952774048 - 12.2856445312 - 11.7310571671 - 11.0288906097 - 10.3712110519 - 9.7639923096 - 9.1270217896 - 8.4655551910 - 7.8439989090 - 7.2047071457 - 6.6215462685 - 5.9071187973 - 5.3600664139 - 4.6831469536 - 4.1424593925 - 3.4913272858 - 2.8780899048 - 2.2802128792 - 1.6650609970 - 1.1065330505 - 0.4044518471 - -0.1482772827 - -0.7465686798 - -1.3037443161 - -2.0601177216 - -2.6127443314 - -3.1339340210 - -3.7891616821 - -4.5561313629 - -5.1409263611 - -5.5548763275 - -6.2847270966 - -7.4481134415 - -10.0222024918 - -11.1857585907 - -11.9148864746 - -12.3275794983 - -12.9129371643 - -13.6789436340 - -14.3329362869 - -14.8535299301 - -15.4061880112 - -16.1610794067 - -16.7166366577 - -17.3154525757 - -17.8670501709 - -18.5671901703 - -19.1255912781 - -19.7401161194 - -20.3365306854 - -20.9494514465 - -21.5990695953 - -22.1392879486 - -22.8156127930 - -23.3613929749 - -24.0752601624 - -24.6580085754 - -25.2969512939 - -25.9172210693 - -26.5782833099 - -27.2151031494 - -27.8214130402 - -28.4787406921 - -29.1802139282 - -29.7347755432 - -30.4431781769 - -31.0442771912 - -31.7502174377 - -32.3606681824 - -33.0187644958 - -33.6825332642 - -34.3134994507 - -34.9725875854 - -35.6295051575 - -36.2638130188 - -36.9101791382 - -37.5480422974 - -38.2281112671 - -38.8399085999 - -39.4861793518 - -40.1407470703 - -40.7828903198 - -41.3835067749 - -42.0495529175 - -42.6954116821 - -43.3167190552 - -43.9573211670 - -44.5744323730 - -45.2572021484 - -45.8541259766 - -46.5090751648 - -47.1019325256 - -47.8275146484 - -48.3678169250 - -49.0441246033 - -49.6811523438 - -50.3129425049 - -50.9264602661 - -51.6038284302 - -52.1884727478 - -52.9023704529 - -53.4852752686 - -54.1142311096 - -54.7671890259 - -55.3964157104 - -56.0350036621 - -56.6842803955 - -57.2858734131 - -57.9531517029 - -58.5684089661 - -59.1517181396 - -59.8619804382 - -60.4402275085 - -61.0762405396 - -61.7483024597 - -62.3572196960 - -62.9614295959 - -63.6227951050 - -64.2254714966 - -64.8645477295 - -65.4760284424 - -66.1145553589 - -66.7271881104 - -67.3567657471 - -67.9857101440 - -68.5841522217 - -69.2335662842 - -69.8875198364 - -70.4630432129 - -71.1225891113 - -71.7441558838 - -72.3572082520 - -72.9590835571 - -73.5902099609 - -74.2525100708 - -74.8278198242 - -75.4607620239 - -76.1233367920 - -76.7115173340 - -77.3068847656 - -77.9424285889 - -78.6029281616 - -79.1680221558 - -79.8108062744 - -80.4535980225 - -81.0446472168 - -81.6339492798 - -82.2996444702 - -82.8812026978 - -83.4848480225 - -84.1320343018 - -84.6968078613 - -85.3815155029 - -85.9452285767 - -86.5908584595 - -87.1788635254 - -87.8018722534 - -88.4097213745 - -89.0072021484 - -89.6106872559 - -90.2685089111 - -90.8075332642 - -91.4936294556 - -92.0644836426 - -92.6788787842 - -93.2784957886 - -93.8729324341 - -94.5168609619 - -95.0859909058 - -95.7346038818 - -96.2921295166 - -96.9641571045 - -97.4848403931 - -98.1309585571 - -98.7341766357 - -99.3400268555 - -99.9388885498 - -100.5479660034 - -101.1262664795 - -101.7644119263 - -102.3053359985 - -102.9452438354 - -103.5294036865 - -104.1383209229 - -104.7409515381 - -105.3236618042 - -105.9367065430 - -106.5182037354 - -107.0972137451 - -107.7171096802 - -108.2895812988 - -108.9007415771 - -109.4939193726 - -110.0907669067 - -110.6610107422 - -111.2702865601 - -111.8449325562 - -112.4381256104 - -113.0361022949 - -113.6277160645 - -114.2317657471 - -114.7766494751 - -115.3840408325 - -115.9843444824 - -116.5458984375 - -117.1531143188 - -117.7527847290 - -118.2870178223 - -118.8932800293 - -119.5176773071 - -120.0180435181 - -120.6749725342 - -121.2380142212 - -121.7816543579 - -122.4094390869 - -122.9183883667 - -123.5720291138 - -124.0997238159 - -124.7014007568 - -125.2834014893 - -125.8551864624 - -126.4012374878 - -126.9867630005 - -127.5714340210 - -128.1462402344 - -128.7109069824 - -129.2900390625 - -129.8661956787 - -130.4004669189 - -131.0064697266 - -131.5484924316 - -132.1712341309 - -132.6931152344 - -133.2407226562 - -133.8478546143 - -134.3958435059 - -134.9523925781 - -135.5362396240 - -136.1033477783 - -136.6525268555 - -137.1947326660 - -137.7932281494 - -138.3471069336 - -138.9026336670 - -139.4440460205 - -140.0179595947 - -140.5979003906 - -141.0870513916 - -141.7241058350 - -142.2373199463 - -142.7970275879 - -143.3321075439 - -143.9298095703 - -144.4423828125 - -145.0194244385 - -145.5795288086 - -146.0908203125 - -146.6524505615 - -147.2139892578 - -147.7530975342 - -148.3096466064 - -148.8576507568 - -149.3890228271 - -149.9492950439 - -150.4825592041 - -151.0555419922 - -151.5682830811 - -152.1165313721 - -152.6701354980 - -153.1807556152 - -153.7852020264 - -154.2596588135 - -154.8185729980 - -155.3659210205 - -155.9080963135 - -156.4246978760 - -156.9864807129 - -157.5169372559 - -158.0216827393 - -158.5860290527 - -159.1023254395 - -159.6644287109 - -160.1637573242 - -160.6918487549 - -161.2459259033 - -161.7524566650 - -162.2942810059 - -162.8322906494 - -163.3403320312 - -163.8774414062 - -164.3956756592 - -164.9346923828 - -165.4705352783 - -165.9538879395 - -166.4991912842 - -167.0558013916 - -167.5245819092 - -168.0731048584 - -168.5910949707 - -169.1293792725 - -169.6117553711 - -170.1588592529 - -170.6770019531 - -171.1710510254 - -171.7064208984 - -172.2198486328 - -172.7506408691 - -173.2328033447 - -173.7677154541 - -174.2820739746 - -174.8085327148 - -175.2884521484 - -175.8213806152 - -176.3187255859 - -176.8492279053 - -177.3359527588 - -177.8712158203 - -178.3611450195 - -178.8568572998 - -179.4336395264 - -179.8538055420 - -180.4067840576 - -180.9261932373 - -181.4083862305 - -181.9245452881 - -182.4176788330 - -182.9514007568 - -183.4386291504 - -183.9216461182 - -184.4618072510 - -184.9553375244 - -185.4291381836 - -185.9592742920 - -186.4678802490 - -186.9428100586 - -187.4550323486 - -187.9728698730 - -188.4530792236 - -188.9435882568 - -189.4845428467 - -189.9254302979 - -190.4767608643 - -190.9560699463 - -191.4302520752 - -191.9715728760 - -192.4408264160 - -192.9434356689 - -193.4681854248 - -193.9322662354 - -194.4499816895 - -194.9204254150 - -195.4616394043 - -195.9159545898 - -196.4245300293 - -196.9339447021 - -197.4436645508 - -197.9014282227 - -198.4223175049 - -198.9181976318 - -199.4256439209 - -199.8807220459 - -200.4133605957 - -200.9139862061 - -201.4084625244 - -201.8694915771 - -202.4163970947 - -202.8743896484 - -203.4169311523 - -203.8579559326 - -204.4067077637 - -204.8789978027 - -205.4075775146 - -205.8369598389 - -206.4195556641 - -206.8747253418 - -207.3883819580 - -207.8770446777 - -208.3913116455 - -208.9000244141 - -209.4025268555 - -209.8687896729 - -210.4182128906 - -210.9083404541 - -211.4122314453 - -211.9081268311 - -212.4307098389 - -212.9514312744 - -213.4090881348 - -213.9723052979 - -214.4457855225 - -214.9851837158 - -215.4753265381 - -215.9831848145 - -216.5397949219 - -217.0081176758 - -217.5570068359 - -218.0340423584 - -218.6179351807 - -219.0831909180 - -219.5983123779 - -220.1851043701 - -220.6540832520 - -221.1870422363 - -221.7269287109 - -222.2501983643 - -222.7915954590 - -223.2886047363 - -223.8567810059 - -224.3920135498 - -224.9059143066 - -225.4497985840 - -226.0116119385 - -226.5313415527 - -227.0864410400 - -227.6267547607 - -228.1873016357 - -228.7392120361 - -229.2638397217 - -229.8507232666 - -230.3974609375 - -230.9392242432 - -231.5417480469 - -232.0654602051 - -232.6363830566 - -233.2571868896 - -233.7599639893 - -234.3771209717 - -234.9369354248 - -235.5270538330 - -236.1153717041 - -236.6656188965 - -237.3072967529 - -237.8566894531 - -238.4867401123 - -239.0384063721 - -239.6838378906 - -240.2801361084 - -240.8670806885 - -241.4756317139 - -242.1392822266 - -242.6905517578 - -243.3581542969 - -243.9703063965 - -244.5890350342 - -245.2434692383 - -245.8552398682 - -246.5099029541 - -247.1483612061 - -247.8075256348 - -248.4269561768 - -249.1255035400 - -249.7629394531 - -250.4102478027 - -251.1088256836 - -251.7811126709 - -252.4268188477 - -253.1242523193 - -253.8412017822 - -254.4750671387 - -255.2066345215 - -255.8898162842 - -256.6166992188 - -257.3052368164 - -258.0112609863 - -258.7511901855 - -259.4643554688 - -260.1991577148 - -260.8953857422 - -261.6827087402 - -262.4142456055 - -263.1185607910 - -263.9201354980 - -264.6768798828 - -265.3975830078 - -266.1993103027 - -266.9818725586 - -267.7176513672 - -268.5404357910 - -269.3205566406 - -270.0935363770 - -270.9135437012 - -271.7225646973 - -272.5214843750 - -273.3260192871 - -274.1877136230 - -274.9488525391 - -275.8476562500 - -276.6232604980 - -277.5072021484 - -278.3424072266 - -279.1844482422 - -280.0589599609 - -280.9127807617 - -281.7815246582 - -282.6606445312 - -283.5439453125 - -284.4260253906 - -285.3017272949 - -286.2195434570 - -287.1065368652 - -287.9950256348 - -288.9246520996 - -289.8420410156 - -290.7620544434 - -291.6656494141 - -292.6250000000 - -293.5488281250 - -294.4665527344 - -295.4365844727 - -296.3751220703 - -297.3219299316 - -298.2905883789 - -299.2432250977 - -300.1968688965 - -301.2085571289 - -302.1509094238 - -303.1208801270 - -304.1382751465 - -305.1023254395 - -306.0709533691 - -307.1120605469 - -308.0726928711 - -309.0974731445 - -310.0866394043 - -311.1093444824 - -312.1156005859 - -313.0953674316 - -314.1665344238 - -315.1434020996 - -316.1697387695 - -317.2242431641 - -318.1909790039 - -319.2852172852 - -320.2727966309 - -321.3059997559 - -322.3860778809 - -323.3478698730 - -324.4389648438 - -325.4755249023 - -326.4750366211 - -327.5943603516 - -328.5446166992 - -329.6560668945 - -330.6808471680 - -331.6844177246 - -332.7846679688 - -333.8175659180 - -334.8327636719 - -335.9171447754 - -336.9035339355 - -338.0234985352 - -338.9997863770 - -340.0747070312 - -341.1337890625 - -342.1455078125 - -343.1928710938 - -344.2417297363 - -345.2567443848 - -346.3293457031 - -347.3255615234 - -348.3801574707 - -349.4160461426 - -350.3975830078 - -351.4902343750 - -352.4759521484 - -353.4870910645 - -354.5305786133 - -355.5291748047 - -356.5636901855 - -357.5485534668 - -358.5815429688 - -359.5889892578 - -360.5605163574 - -361.5794982910 - -362.5852966309 - -363.5385742188 - -364.5632324219 - -365.5391845703 - -366.5068969727 - -367.4940490723 - -368.4671936035 - -369.4170532227 - -370.4029541016 - -371.3604736328 - -372.2907409668 - -373.2741088867 - -374.1986389160 - -375.1431884766 - -376.0945739746 - -377.0211486816 - -377.9530944824 - -378.8707885742 - -379.7991333008 - -380.6985778809 - -381.6159973145 - -382.5333251953 - -383.4132385254 - -384.3344726562 - -385.1998901367 - -386.1210327148 - -386.9637145996 - -387.8601074219 - -388.7351074219 - -389.5910644531 - -390.4688110352 - -391.2814025879 - -392.1891174316 - -393.0014648438 - -393.8317260742 - -394.6882019043 - -395.5344543457 - -396.3331909180 - -397.1437988281 - -398.0166931152 - -398.7655639648 - -399.5964355469 - -400.4172973633 - -401.1853637695 - -401.9713439941 - -402.8081665039 - -403.5317382812 - -404.3370666504 - -405.1232299805 - -405.8669738770 - -406.6390075684 - -407.3872680664 - -408.1603698730 - -408.9069213867 - -409.6397705078 - -410.3801269531 - -411.1343078613 - -411.8836669922 - -412.5509948730 - -413.3154907227 - -414.0470275879 - -414.7421264648 - -415.4136047363 - -416.2005920410 - -416.8556823730 - -417.5419921875 - -418.2662963867 - -418.9346313477 - -419.6437988281 - -420.3003845215 - -420.9829711914 - -421.6767883301 - -422.3452758789 - -422.9820251465 - -423.6666259766 - -424.3688354492 - -424.9442138672 - -425.6455688477 - -426.3174438477 - -426.9125061035 - -427.5760192871 - -428.2442626953 - -428.8339233398 - -429.5155639648 - -430.1007385254 - -430.7650146484 - -431.3780517578 - -431.9906616211 - -432.6183776855 - -433.2343139648 - -433.8553466797 - -434.4434814453 - -435.0754699707 - -435.6750793457 - -436.2604370117 - -436.8941650391 - -437.4685363770 - -438.0479125977 - -438.6906738281 - -439.2389526367 - -439.8339538574 - -440.4283752441 - -441.0161437988 - -441.5991210938 - -442.1536865234 - -442.7597656250 - -443.3346557617 - -443.8971252441 - -444.4541015625 - -445.0601806641 - -445.6098632812 - -446.1618041992 - -446.7318420410 - -447.3179016113 - -447.8598632812 - -448.3973693848 - -448.9914550781 - -449.5447692871 - -450.0591125488 - -450.6650695801 - -451.1663513184 - -451.7742004395 - -452.2583618164 - -452.8434143066 - -453.3932800293 - -453.9182434082 - -454.4642333984 - -455.0137329102 - -455.5632324219 - -456.0750122070 - -456.6244506836 - -457.1836547852 - -457.6818237305 - -458.2449340820 - -458.7611389160 - -459.3074951172 - -459.8422241211 - -460.3523559570 - -460.8859252930 - -461.4492492676 - -461.9365234375 - -462.4875488281 - -462.9801025391 - -463.5759582520 - -464.0301513672 - -464.5902709961 - -465.0896606445 - -465.6542358398 - -466.1262207031 - -466.6829223633 - -467.1745300293 - -467.7342224121 - -468.2208251953 - -468.7391967773 - -469.2671813965 - -469.8015747070 - -470.2948608398 - -470.8184509277 - -471.3226928711 - -471.8762207031 - -472.3542480469 - -472.8626098633 - -473.4076538086 - -473.9295349121 - -474.3975830078 - -474.9434814453 - -475.4572143555 - -475.9622802734 - -476.4687500000 - -476.9789428711 - -477.5096130371 - -478.0091857910 - -478.5149841309 - -479.0470886230 - -479.5197143555 - -480.0812377930 - -480.5393676758 - -481.0830993652 - -481.5857238770 - -482.0851440430 - -482.6071777344 - -483.1178588867 - -483.6047973633 - -484.1413574219 - -484.6393737793 - -485.1499938965 - -485.6371154785 - -486.1861877441 - -486.6742858887 - -487.1497802734 - -487.7151489258 - -488.1940002441 - -488.6898803711 - -489.2262878418 - -489.7048645020 - -490.2644958496 - -490.7000122070 - -491.2677612305 - -491.7585754395 - -492.2559814453 - -492.7648620605 - -493.2939147949 - -493.7789001465 - -494.2848815918 - -494.8253784180 - -495.2862854004 - -495.8326721191 - -496.3110351562 - -496.8467407227 - -497.3332214355 - -497.8603210449 - -498.3463745117 - -498.8743286133 - -499.3829040527 - -499.8746948242 - -500.3963928223 - -500.8966979980 - -501.4177246094 - -501.9066467285 - -502.4412536621 - -502.9197387695 - -503.4577331543 - -503.9555358887 - -504.4596557617 - -504.9754333496 - -505.4909362793 - -505.9868774414 - -506.5155029297 - -506.9969177246 - -507.5420837402 - -508.0274047852 - -508.5435180664 - -509.0529785156 - -509.5838317871 - -510.0538024902 - -510.5819396973 - -511.1053771973 - -511.6160278320 - -512.1040039062 - -512.6241455078 - -513.1621704102 - -513.6329956055 - -514.1698608398 - -514.6786499023 - -515.2095947266 - -515.6620483398 - -516.2501831055 - -516.7077026367 - -517.2385253906 - -517.7696533203 - -518.2393188477 - -518.7913818359 - -519.2844848633 - -519.8090209961 - -520.3182983398 - -520.8283691406 - -521.3489379883 - -521.8547973633 - -522.3853759766 - -522.8897094727 - -523.3971557617 - -523.9132690430 - -524.4370117188 - -524.9317016602 - -525.4816284180 - -525.9576416016 - -526.5169677734 - -526.9735107422 - -527.5596923828 - -528.0180053711 - -528.5568847656 - -529.0797729492 - -529.5869140625 - -530.0981445312 - -530.6141967773 - -531.1549072266 - -531.6547851562 - -532.1574707031 - -532.6925048828 - -533.2135620117 - -533.7249755859 - -534.2277221680 - -534.7734985352 - -535.3010864258 - -535.7487792969 - -536.3373413086 - -536.8241577148 - -537.3631591797 - -537.8707275391 - -538.3638916016 - -538.9313354492 - -539.4246826172 - -539.9248046875 - -540.4656372070 - -541.0250854492 - -541.4675292969 - -542.0187377930 - -542.5504150391 - -543.0724487305 - -543.5528564453 - -544.1353759766 - -544.6014404297 - -545.1614379883 - -545.6519775391 - -546.1594848633 - -546.7463378906 - -547.1925659180 - -547.7417602539 - -548.2941894531 - -548.7749633789 - -549.2896728516 - -549.8588867188 - -550.3393554688 - -550.8625488281 - -551.4230957031 - -551.9073486328 - -552.4232788086 - -552.9795532227 - -553.4742431641 - -554.0188598633 - -554.5122680664 - -555.0687866211 - -555.5610351562 - -556.0936889648 - -556.6138916016 - -557.1528320312 - -557.6522827148 - -558.1886596680 - -558.7211303711 - -559.2191162109 - -559.7540893555 - -560.2739868164 - -560.8104248047 - -561.3079223633 - -561.8533325195 - -562.3869018555 - -562.8693847656 - -563.4339599609 - -563.9344482422 - -564.4519042969 - -565.0004272461 - -565.5028686523 - -566.0274658203 - -566.5943603516 - -567.0413208008 - -567.6422729492 - -568.1055297852 - -568.6638793945 - -569.1851806641 - -569.7014160156 - -570.2332763672 - -570.7467651367 - -571.2987670898 - -571.7514648438 - -572.3776855469 - -572.8249511719 - -573.3757934570 - -573.9180908203 - -574.4159545898 - -574.9482421875 - -575.4777221680 - -575.9810180664 - -576.5466918945 - -577.0165405273 - -577.5863647461 - -578.0997314453 - -578.6256713867 - -579.1434936523 - -579.6597900391 - -580.2041015625 - -580.7278442383 - -581.2136230469 - -581.7706909180 - -582.3170166016 - -582.7880249023 - -583.3469238281 - -583.8840942383 - -584.3877563477 - -584.9113159180 - -585.4325561523 - -585.9912109375 - -586.4711303711 - -587.0282592773 - -587.5557250977 - -588.0500488281 - -588.6107788086 - -589.0996704102 - -589.6572875977 - -590.1532592773 - -590.6911621094 - -591.2393188477 - -591.7362670898 - -592.2522583008 - -592.8113403320 - -593.3195800781 - -593.8178100586 - -594.3665161133 - -594.9031982422 - -595.3935546875 - -595.9376831055 - -596.4589233398 - -596.9678344727 - -597.5333251953 - -598.0189208984 - -598.5357666016 - -599.1304931641 - -599.5902709961 - -600.1111450195 - -600.6743774414 - -601.1773071289 - -601.6992797852 - -602.2304077148 - -602.7473144531 - -603.2977294922 - -603.8065185547 - -604.2988281250 - -604.8734130859 - -605.3722534180 - -605.9102783203 - -606.4263916016 - -606.9329833984 - -607.4918823242 - -608.0123901367 - -608.4786376953 - -609.0651245117 - -609.5642700195 - -610.1022338867 - -610.5734252930 - -611.1526489258 - -611.6707763672 - -612.1572875977 - -612.7044067383 - -613.2148437500 - -613.7644042969 - -614.2619018555 - -614.7710571289 - -615.3257446289 - -615.8452758789 - -616.3394165039 - -616.8873291016 - -617.4185180664 - -617.9281616211 - -618.4479980469 - -618.9881591797 - -619.5093994141 - -620.0189819336 - -620.5581054688 - -621.0986328125 - -621.5670776367 - -622.1614990234 - -622.6203613281 - -623.2191162109 - -623.6519775391 - -624.2252197266 - -624.7515869141 - -625.2590942383 - -625.7614135742 - -626.2926635742 - -626.8245849609 - -627.3362426758 - -627.8064575195 - -628.3839721680 - -628.8572998047 - -629.4075927734 - -629.8467407227 - -630.4100341797 - -630.8999023438 - -631.4199829102 - -631.9229736328 - -632.3632812500 - -632.9818115234 - -633.4540405273 - -633.9020385742 - -634.3959350586 - -635.0402221680 - -635.4702758789 - -635.8989257812 - -636.4551391602 - -637.0891723633 - -637.5247802734 - -637.8934326172 - -638.4895019531 - -639.3914184570 - -641.4007568359 - -642.3152465820 - -642.8580322266 - -643.1347656250 - -643.6124877930 - -644.1750488281 - -644.6406250000 - -645.0253295898 - -645.4585571289 - -645.9940185547 - -646.3687744141 - -646.8551025391 - -647.2447509766 - -647.7210693359 - -648.1525268555 - -648.6091918945 - -649.0216674805 - -649.4887084961 - -649.9409790039 - -650.3456420898 - -650.8516845703 - -651.2314453125 - -651.7687988281 - -652.2088012695 - -652.6950073242 - -653.1325073242 - -653.6337280273 - -654.1253662109 - -654.5653686523 - -655.0655517578 - -655.5879516602 - -656.0208129883 - -656.5291137695 - -657.0083618164 - -657.5169067383 - -658.0014038086 - -658.4888916016 - -658.9863891602 - -659.4622802734 - -659.9700927734 - -660.4562988281 - -660.9274291992 - -661.4270629883 - -661.8922729492 - -662.4066772461 - -662.8679199219 - -663.3576049805 - -663.8257446289 - -664.3192749023 - -664.7601318359 - -665.2511596680 - -665.7492065430 - -666.1731567383 - -666.6865844727 - -667.1328125000 - -667.6203002930 - -668.0812377930 - -668.5664062500 - -668.9935302734 - -669.5403442383 - -669.9187011719 - -670.4537353516 - -670.8905639648 - -671.3707275391 - -671.8131713867 - -672.3328247070 - -672.7478637695 - -673.2879638672 - -673.7063598633 - -674.1802368164 - -674.6499023438 - -675.1160888672 - -675.5825195312 - -676.0746459961 - -676.5116577148 - -676.9909057617 - -677.4313964844 - -677.8824462891 - -678.3974609375 - -678.7847900391 - -679.2921142578 - -679.7766723633 - -680.2189941406 - -680.6420288086 - -681.1311645508 - -681.5819702148 - -682.0439453125 - -682.4515991211 - -682.9501953125 - -683.3992309570 - -683.8245239258 - -684.2908325195 - -684.7288818359 - -685.1953125000 - -685.6788330078 - -686.0825805664 - -686.5555419922 - -687.0371093750 - -687.4349975586 - -687.8811035156 - -688.3396606445 - -688.8173828125 - -689.2363281250 - -689.6671142578 - -690.1803588867 - -690.5765991211 - -691.0031738281 - -691.4590454102 - -691.9321899414 - -692.3440551758 - -692.8024902344 - -693.2500000000 - -693.6875610352 - -694.0852050781 - -694.5805664062 - -694.9735717773 - -695.3989257812 - -695.8839111328 - -696.2540283203 - -696.7541503906 - -697.1648559570 - -697.6083984375 - -698.0241088867 - -698.4679565430 - -698.8859863281 - -699.3215332031 - -699.7229614258 - -700.1999511719 - -700.5949096680 - -701.0416259766 - -701.4801635742 - -701.8889770508 - -702.3126220703 - -702.7102050781 - -703.1995849609 - -703.5685424805 - -704.0238037109 - -704.4317016602 - -704.8815917969 - -705.2482299805 - -705.6913452148 - -706.1096801758 - -706.5537719727 - -706.9419555664 - -707.3762207031 - -707.7797241211 - -708.2128906250 - -708.5762939453 - -709.0423583984 - -709.4105224609 - -709.8643798828 - -710.2700195312 - -710.6614990234 - -711.0847167969 - -711.4956054688 - -711.8685913086 - -712.3012084961 - -712.6967163086 - -713.1133422852 - -713.5203857422 - -713.9207763672 - -714.3198242188 - -714.7160034180 - -715.1209716797 - -715.5040893555 - -715.9434814453 - -716.3128051758 - -716.7410278320 - -717.1088867188 - -717.4984130859 - -717.9135742188 - -718.3106689453 - -718.6915283203 - -719.1138916016 - -719.4685058594 - -719.8643798828 - -720.2911987305 - -720.6273193359 - -721.0676879883 - -721.4406738281 - -721.8002319336 - -722.2217407227 - -722.5517578125 - -722.9912109375 - -723.3361206055 - -723.7547607422 - -724.1332397461 - -724.4769897461 - -724.8872680664 - -725.2442016602 - -725.6179199219 - -726.0162353516 - -726.4055786133 - -726.7446899414 - -727.1518554688 - -727.4803466797 - -727.8890991211 - -728.2497558594 - -728.6354370117 - -729.0033569336 - -729.3330078125 - -729.7366333008 - -730.0908203125 - -730.4498901367 - -730.8419799805 - -731.1941528320 - -731.5504760742 - -731.8984375000 - -732.2938232422 - -732.6445312500 - -733.0021362305 - -733.3420410156 - -733.7166748047 - -734.0848999023 - -734.3919677734 - -734.8021850586 - -735.1483154297 - -735.4652099609 - -735.8261108398 - -736.2107543945 - -736.5183715820 - -736.8970947266 - -737.2572631836 - -737.5502929688 - -737.9241943359 - -738.2719726562 - -738.6096191406 - -738.9597778320 - -739.3071289062 - -739.6293334961 - -739.9814453125 - -740.3222045898 - -740.6672363281 - -740.9995727539 - -741.3265991211 - -741.6619262695 - -742.0026855469 - -742.3609619141 - -742.6511840820 - -742.9946289062 - -743.3420410156 - -743.6540527344 - -743.9909057617 - -744.3324584961 - -744.6426391602 - -744.9446411133 - -745.3164062500 - -745.6016235352 - -745.9528198242 - -746.2643432617 - -746.5604248047 - -746.9176025391 - -747.1948852539 - -747.5568847656 - -747.8541870117 - -748.1678466797 - -748.4797363281 - -748.7950439453 - -749.1227416992 - -749.4457397461 - -749.6990966797 - -750.0540771484 - -750.3872680664 - -750.6428833008 - -750.9670410156 - -751.2887573242 - -751.6101684570 - -751.8654174805 - -752.1997070312 - -752.5188598633 - -752.7843017578 - -753.0946044922 - -753.4117431641 - -753.7156372070 - -753.9841918945 - -754.2861938477 - -754.6126098633 - -754.8908691406 - -755.1810302734 - -755.4752807617 - -755.7483520508 - -756.0928344727 - -756.3270263672 - -756.6556396484 - -756.9255981445 - -757.2109985352 - -757.5462036133 - -757.7689819336 - -758.0751953125 - -758.4089965820 - -758.6290893555 - -758.9408569336 - -759.2336425781 - -759.5048828125 - -759.7919311523 - -760.0603027344 - -760.3573608398 - -760.6428833008 - -760.8749389648 - -761.2065429688 - -761.4669189453 - -761.7237548828 - -762.0150146484 - -762.3041381836 - -762.5570068359 - -762.8225097656 - -763.1259765625 - -763.3586425781 - -763.6605224609 - -763.9381103516 - -764.1496582031 - -764.4910888672 - -764.7271118164 - -764.9837646484 - -765.2949829102 - -765.5158691406 - -765.8215332031 - -766.0454101562 - -766.3469238281 - -766.5905151367 - -766.8656005859 - -767.1190185547 - -767.4085693359 - -767.6475830078 - -767.9105224609 - -768.1829833984 - -768.4540405273 - -768.6741333008 - -768.9737548828 - -769.2304687500 - -769.4869995117 - -769.7227172852 - -770.0197753906 - -770.2458496094 - -770.5390014648 - -770.7583007812 - -771.0530395508 - -771.2941284180 - -771.5623168945 - -771.7809448242 - -772.0975341797 - -772.3185424805 - -772.5726318359 - -772.8507080078 - -773.0936279297 - -773.3570556641 - -773.6339721680 - -773.8307495117 - -774.1444702148 - -774.3964843750 - -774.6234741211 - -774.9018554688 - -775.1617431641 - -775.4284667969 - -775.6343383789 - -775.9664306641 - -776.1598510742 - -776.4584960938 - -776.7017211914 - -776.9481201172 - -777.2352294922 - -777.4848632812 - -777.7377929688 - -777.9838256836 - -778.2927856445 - -778.5079345703 - -778.7620849609 - -779.0871582031 - -779.2854003906 - -779.5780029297 - -779.8382568359 - -780.0886840820 - -780.3847045898 - -780.6141967773 - -780.8986206055 - -781.1804199219 - -781.4236450195 - -781.7010498047 - -781.9759521484 - -782.2354125977 - -782.5222778320 - -782.7815551758 - -783.0656127930 - -783.3358154297 - -783.6094970703 - -783.8867797852 - -784.1644287109 - -784.4386596680 - -784.7493286133 - -784.9852294922 - -785.2801513672 - -785.6205444336 - -785.8215332031 - -786.1671142578 - -786.4288940430 - -786.7257080078 - -787.0347290039 - -787.2849121094 - -787.6257324219 - -787.9019165039 - -788.2077026367 - -788.4826049805 - -788.8253173828 - -789.0971069336 - -789.4214477539 - -789.7034912109 - -790.0422973633 - -790.3306884766 - -790.6746215820 - -790.9499511719 - -791.2826538086 - -791.6391601562 - -791.9050903320 - -792.2480468750 - -792.5917358398 - -792.9155883789 - -793.2181396484 - -793.5885009766 - -793.9013061523 - -794.2597656250 - -794.5684814453 - -794.9495849609 - -795.2667846680 - -795.6279907227 - -795.9872436523 - -796.3130493164 - -796.7097167969 - -797.0269165039 - -797.4250488281 - -797.7711791992 - -798.1308593750 - -798.5172119141 - -798.8863525391 - -799.2656250000 - -799.6129150391 - -800.0595092773 - -800.4014282227 - -800.7812500000 - -801.2001342773 - -801.5997314453 - -801.9611206055 - -802.3959960938 - -802.7917480469 - -803.1953735352 - -803.6116333008 - -804.0235595703 - -804.4355468750 - -804.8740844727 - -805.2852172852 - -805.7064819336 - -806.1542968750 - -806.5966186523 - -806.9769897461 - -807.5060424805 - -807.8663330078 - -808.3752441406 - -808.7882080078 - -809.2640380859 - -809.7132568359 - -810.1848144531 - -810.6250000000 - -811.1218261719 - -811.5883789062 - -812.0527343750 - -812.5248413086 - -813.0340576172 - -813.5057373047 - -813.9664306641 - -814.4951782227 - -814.9808349609 - -815.4772949219 - -815.9684448242 - -816.4877929688 - -817.0041503906 - -817.4848632812 - -818.0180053711 - -818.5378417969 - -819.0478515625 - -819.5778808594 - -820.1020507812 - -820.6199340820 - -821.1798095703 - -821.7021484375 - -822.2158813477 - -822.7901611328 - -823.3283081055 - -823.8382568359 - -824.4354858398 - -824.9553833008 - -825.5258789062 - -826.0764770508 - -826.6345825195 - -827.1990966797 - -827.7478027344 - -828.3328857422 - -828.8811035156 - -829.4524536133 - -830.0491333008 - -830.5671997070 - -831.2075805664 - -831.7393798828 - -832.3087768555 - -832.9519042969 - -833.4474487305 - -834.0961303711 - -834.6450805664 - -835.2336425781 - -835.8662719727 - -836.3685913086 - -837.0239868164 - -837.6130371094 - -838.1522827148 - -838.7750244141 - -839.3881225586 - -839.9533081055 - -840.5402832031 - -841.1339721680 - -841.7682495117 - -842.2977294922 - -842.9436035156 - -843.5117797852 - -844.1328735352 - -844.6937255859 - -845.3021850586 - -845.9035034180 - -846.4895019531 - -847.0820312500 - -847.6788330078 - -848.2743530273 - -848.8343505859 - -849.4736328125 - -850.0370483398 - -850.6142578125 - -851.2250976562 - -851.7990722656 - -852.3940429688 - -852.9750976562 - -853.5518798828 - -854.1599731445 - -854.7167968750 - -855.2947998047 - -855.8989868164 - -856.4494628906 - -857.0418701172 - -857.6157836914 - -858.1783447266 - -858.7549438477 - -859.3309936523 - -859.8799438477 - -860.4532470703 - -861.0340576172 - -861.5667114258 - -862.1465454102 - -862.6901245117 - -863.2488403320 - -863.8203735352 - -864.3419189453 - -864.9114379883 - -865.4609985352 - -865.9966430664 - -866.5288696289 - -867.0826416016 - -867.6350708008 - -868.1334838867 - -868.7063598633 - -869.2072753906 - -869.7740478516 - -870.2516479492 - -870.8185424805 - -871.3052368164 - -871.8681030273 - -872.3444824219 - -872.8543701172 - -873.4133300781 - -873.8804321289 - -874.3809814453 - -874.9122314453 - -875.4166259766 - -875.8938598633 - -876.3821411133 - -876.9254760742 - -877.3618774414 - -877.8789672852 - -878.3623657227 - -878.8434448242 - -879.3168945312 - -879.8249511719 - -880.2531127930 - -880.7811889648 - -881.2249145508 - -881.6920776367 - -882.1654052734 - -882.6230468750 - -883.0932617188 - -883.5555419922 - -884.0135498047 - -884.4454956055 - -884.9414062500 - -885.3829345703 - -885.7936401367 - -886.2727050781 - -886.7200317383 - -887.1615600586 - -887.5410156250 - -888.0726318359 - -888.4509277344 - -888.8872070312 - -889.3222045898 - -889.7484741211 - -890.1988525391 - -890.5876464844 - -891.0013427734 - -891.4745483398 - -891.8662109375 - -892.2441406250 - -892.7027587891 - -893.1337280273 - -893.4828491211 - -893.9166259766 - -894.3590698242 - -894.7034301758 - -895.1446533203 - -895.5452270508 - -895.9161987305 - -896.3526000977 - -896.7185058594 - -897.1165161133 - -897.5247802734 - -897.8952636719 - -898.2872314453 - -898.6908569336 - -899.0458984375 - -899.4624023438 - -899.8309326172 - -900.1984863281 - -900.5897216797 - -900.9788208008 - -901.3359985352 - -901.6956176758 - -902.1140747070 - -902.4476928711 - -902.8264160156 - -903.1958007812 - -903.5747680664 - -903.9320068359 - -904.2804565430 - -904.6662597656 - -905.0222167969 - -905.3879394531 - -905.7244262695 - -906.1045532227 - -906.4671630859 - -906.7897949219 - -907.1579589844 - -907.5346679688 - -907.8501586914 - -908.2214965820 - -908.5650024414 - -908.9152221680 - -909.2544555664 - -909.6188354492 - -909.9260253906 - -910.3278198242 - -910.6173095703 - -910.9763183594 - -911.3284912109 - -911.6594238281 - -911.9749755859 - -912.3604736328 - -912.6578369141 - -913.0005493164 - -913.3395996094 - -913.6917114258 - -913.9760131836 - -914.3526611328 - -914.6699218750 - -914.9763183594 - -915.3457031250 - -915.6418457031 - -915.9681396484 - -916.3350219727 - -916.6094360352 - -916.9580078125 - -917.2731933594 - -917.6232299805 - -917.9047851562 - -918.2523803711 - -918.5613403320 - -918.8963623047 - -919.1937866211 - -919.5225219727 - -919.8337402344 - -920.1630859375 - -920.4635009766 - -920.7798461914 - -921.1055908203 - -921.4094848633 - -921.7260131836 - -922.0386352539 - -922.3319091797 - -922.6769409180 - -922.9674072266 - -923.2539062500 - -923.5970458984 - -923.9052124023 - -924.1837158203 - -924.4972534180 - -924.8302001953 - -925.1038818359 - -925.4317016602 - -925.7058715820 - -926.0338745117 - -926.3461914062 - -926.5975341797 - -926.9553222656 - -927.2160034180 - -927.5440063477 - -927.8199462891 - -928.1302490234 - -928.4266967773 - -928.7280883789 - -929.0277099609 - -929.3149414062 - -929.6026000977 - -929.9336547852 - -930.1835327148 - -930.5085449219 - -930.7780151367 - -931.0975341797 - -931.3788452148 - -931.6365356445 - -931.9870605469 - -932.2443237305 - -932.5050659180 - -932.8615112305 - -933.0921630859 - -933.4156494141 - -933.6771240234 - -933.9895019531 - -934.2623901367 - -934.5511474609 - -934.8129882812 - -935.1537475586 - -935.3837890625 - -935.6783447266 - -935.9917602539 - -936.2338867188 - -936.5629272461 - -936.7980957031 - -937.1021118164 - -937.3818359375 - -937.6761474609 - -937.9245605469 - -938.2160034180 - -938.5179443359 - -938.7704467773 - -939.0408325195 - -939.3413696289 - -939.6194458008 - -939.8676757812 - -940.1562500000 - -940.4367675781 - -940.7232055664 - -940.9582519531 - -941.2638549805 - -941.5356445312 - -941.8043212891 - -942.0631713867 - -942.3543701172 - -942.6006469727 - -942.9162597656 - -943.1351928711 - -943.4368286133 - -943.6816406250 - -943.9844970703 - -944.2216186523 - -944.4870605469 - -944.7905273438 - -945.0270996094 - -945.2866210938 - -945.5707397461 - -945.8518066406 - -946.0737304688 - -946.3721923828 - -946.6223754883 - -946.8955078125 - -947.1298217773 - -947.4465332031 - -947.6537475586 - -947.9318237305 - -948.2153320312 - -948.4393310547 - -948.7307739258 - -948.9707031250 - -949.2325439453 - -949.4989624023 - -949.7504882812 - -950.0097045898 - -950.2634887695 - -950.5337524414 - -950.7629394531 - -951.0466918945 - -951.2952880859 - -951.5391845703 - -951.8016357422 - -952.0660400391 - -952.2776489258 - -952.5939331055 - -952.7964477539 - -953.0784912109 - -953.3077392578 - -953.5725097656 - -953.8187255859 - -954.0718994141 - -954.3179931641 - -954.5726928711 - -954.8217163086 - -955.0635986328 - -955.3026123047 - -955.5737915039 - -955.8069458008 - -956.0522460938 - -956.2924194336 - -956.5412597656 - -956.8200683594 - -957.0007324219 - -957.3004760742 - -957.5219726562 - -957.7614746094 - -958.0222778320 - -958.2201538086 - -958.5297851562 - -958.7390136719 - -958.9490356445 - -959.2123413086 - -959.5029907227 - -959.6523437500 - -959.9439697266 - -960.1956787109 - -960.4129638672 - -960.6383666992 - -960.8984375000 - -961.1204223633 - -961.3706665039 - -961.5964355469 - -961.8293457031 - -962.0927124023 - -962.2921142578 - -962.5292358398 - -962.7893676758 - -963.0089721680 - -963.2172241211 - -963.5017700195 - -963.6943359375 - -963.9148559570 - -964.1862792969 - -964.4008178711 - -964.6065063477 - -964.8868408203 - -965.0657348633 - -965.3264160156 - -965.5258178711 - -965.7892456055 - -965.9915771484 - -966.2300415039 - -966.4530029297 - -966.6868896484 - -966.8979492188 - -967.1201171875 - -967.3756713867 - -967.5756225586 - -967.8020019531 - -968.0343627930 - -968.2734375000 - -968.4456787109 - -968.7166137695 - -968.9144897461 - -969.1303710938 - -969.3777465820 - -969.5847167969 - -969.7879028320 - -970.0489501953 - -970.2321777344 - -970.4517211914 - -970.6950073242 - -970.8759155273 - -971.1464233398 - -971.3161621094 - -971.5437011719 - -971.7919921875 - -971.9590454102 - -972.1987915039 - -972.4050903320 - -972.6562500000 - -972.7967529297 - -973.0924072266 - -973.2557373047 - -973.4628906250 - -973.7095947266 - -973.8936157227 - -974.1210327148 - -974.3291625977 - -974.5309448242 - -974.7729492188 - -974.9469604492 - -975.1568603516 - -975.3969726562 - -975.5756835938 - -975.7849121094 - -976.0131835938 - -976.2022705078 - -976.4345092773 - -976.6062011719 - -976.8374633789 - -977.0521240234 - -977.2266235352 - -977.4435424805 - -977.6511230469 - -977.8466796875 - -978.0795288086 - -978.2360839844 - -978.4792480469 - -978.6576538086 - -978.8699340820 - -979.0671386719 - -979.2409667969 - -979.5074462891 - -979.6541137695 - -979.8701171875 - -980.0726318359 - -980.2633666992 - -980.4746093750 - -980.6566772461 - -980.8378906250 - -981.0852050781 - -981.2705078125 - -981.4152221680 - -981.6639404297 - -981.8676147461 - -982.0352172852 - -982.2284545898 - -982.4423828125 - -982.6323852539 - -982.8478393555 - -982.9750976562 - -983.2075195312 - -983.4307861328 - -983.5701293945 - -983.7725219727 - -983.9896240234 - -984.1776123047 - -984.3483276367 - -984.5434570312 - -984.7260131836 - -984.9371948242 - -985.1071166992 - -985.2971191406 - -985.4863281250 - -985.6842651367 - -985.8522338867 - -986.0489501953 - -986.2131347656 - -986.4528198242 - -986.5949707031 - -986.7863159180 - -986.9817504883 - -987.1726074219 - -987.3626708984 - -987.5060424805 - -987.7324829102 - -987.9289550781 - -988.0532226562 - -988.2902221680 - -988.4465332031 - -988.6434326172 - -988.8237304688 - -988.9817504883 - -989.1978149414 - -989.3678588867 - -989.5325317383 - -989.7130126953 - -989.9091186523 - -990.0635986328 - -990.2456054688 - -990.4367065430 - -990.5968627930 - -990.7667236328 - -990.9497070312 - -991.1405029297 - -991.2660522461 - -991.4934692383 - -991.6140136719 - -991.8456420898 - -991.9714965820 - -992.1701049805 - -992.3395996094 - -992.5302124023 - -992.6829833984 - -992.8565063477 - -993.0708618164 - -993.2356567383 - -993.3915405273 - -993.5851440430 - -993.7819824219 - -993.9698486328 - -994.1195678711 - -994.3537597656 - -994.5103759766 - -994.7298583984 - -994.9053955078 - -995.0392456055 - -995.3092041016 - -995.4990234375 - -995.6047363281 - -995.8237915039 - -996.0800170898 - -996.2030639648 - -996.3554687500 - -996.5747070312 - -996.8043212891 - -996.9041137695 - -997.0696411133 - -997.2766723633 - -997.5309448242 - -998.1151733398 - -998.3890380859 - -998.5132446289 - -998.5352172852 - -998.7009277344 - -998.8190917969 - -998.8969726562 - -998.9810180664 - -999.1090087891 - -999.1955566406 - -999.2291870117 - -999.3950805664 - -999.4558715820 - -999.5042114258 - -999.6238403320 - -999.7274169922 - -999.7790527344 - -999.9006958008 - -999.9617309570 - -1000.0573730469 - -1000.1764526367 - -1000.2274780273 - -1000.3582153320 - -1000.4670410156 - -1000.5922241211 - -1000.6599121094 - -1000.7866210938 - -1000.9225463867 - -1001.0076293945 - -1001.1362915039 - -1001.2561035156 - -1001.3821411133 - -1001.4724731445 - -1001.6249389648 - -1001.7180175781 - -1001.8690795898 - -1001.9774169922 - -1002.0955200195 - -1002.2124633789 - -1002.3516235352 - -1002.4589233398 - -1002.5648193359 - -1002.7039794922 - -1002.7974853516 - -1002.9258422852 - -1003.0388793945 - -1003.1622924805 - -1003.2435302734 - -1003.3770751953 - -1003.4694213867 - -1003.5753173828 - -1003.7120971680 - -1003.7574462891 - -1003.9237060547 - -1004.0075683594 - -1004.0916137695 - -1004.2190551758 - -1004.3265991211 - -1004.4052734375 - -1004.5389404297 - -1004.5930175781 - -1004.7579956055 - -1004.8078002930 - -1004.9303588867 - -1005.0123901367 - -1005.1520385742 - -1005.2196044922 - -1005.3545532227 - -1005.4295654297 - -1005.5449829102 - -1005.6303100586 - -1005.7337646484 - -1005.8282470703 - -1005.9525756836 - -1006.0379638672 - -1006.1241455078 - -1006.2014160156 - -1006.3268432617 - -1006.4260253906 - -1006.4565429688 - -1006.6177368164 - -1006.7076416016 - -1006.7941894531 - -1006.8547363281 - -1006.9617919922 - -1007.0678710938 - -1007.1548461914 - -1007.1839599609 - -1007.3290405273 - -1007.4222412109 - -1007.4613647461 - -1007.5653076172 - -1007.6552124023 - -1007.7389526367 - -1007.8450317383 - -1007.9042968750 - -1007.9878540039 - -1008.1232910156 - -1008.1357421875 - -1008.2349243164 - -1008.3246459961 - -1008.4132690430 - -1008.4962768555 - -1008.5405273438 - -1008.6845092773 - -1008.7191162109 - -1008.7943725586 - -1008.8755493164 - -1008.9588012695 - -1009.0408325195 - -1009.1180419922 - -1009.1790771484 - -1009.2754516602 - -1009.3110961914 - -1009.4241943359 - -1009.4605102539 - -1009.5255737305 - -1009.6406860352 - -1009.6575317383 - -1009.7586669922 - -1009.8405761719 - -1009.8922729492 - -1009.9576416016 - -1010.0324707031 - -1010.0812988281 - -1010.1686401367 - -1010.1959838867 - -1010.2879028320 - -1010.3695068359 - -1010.3859252930 - -1010.5043334961 - -1010.5322875977 - -1010.5987548828 - -1010.6291503906 - -1010.7543334961 - -1010.7650756836 - -1010.8321533203 - -1010.9157714844 - -1010.9506835938 - -1011.0064086914 - -1011.0568237305 - -1011.1115112305 - -1011.2031860352 - -1011.2144775391 - -1011.2880859375 - -1011.3439941406 - -1011.3867187500 - -1011.4166259766 - -1011.5092773438 - -1011.5039672852 - -1011.6083984375 - -1011.6434326172 - -1011.6758422852 - -1011.7282104492 - -1011.7924194336 - -1011.7997436523 - -1011.8598022461 - -1011.9086303711 - -1011.9525756836 - -1011.9990234375 - -1012.0319824219 - -1012.0888671875 - -1012.1022338867 - -1012.1640625000 - -1012.1734008789 - -1012.2658691406 - -1012.2545166016 - -1012.3234252930 - -1012.3565673828 - -1012.3615722656 - -1012.4138793945 - -1012.4765014648 - -1012.4680786133 - -1012.5324096680 - -1012.5554809570 - -1012.5710449219 - -1012.6176757812 - -1012.6458129883 - -1012.6810302734 - -1012.7039794922 - -1012.7254028320 - -1012.7604370117 - -1012.7698364258 - -1012.8072509766 - -1012.8215332031 - -1012.8778076172 - -1012.8909301758 - -1012.8591918945 - -1012.9581909180 - -1012.9335327148 - -1012.9361572266 - -1012.9874877930 - -1013.0347900391 - -1012.9887084961 - -1013.0526733398 - -1013.0347900391 - -1013.0711059570 - -1013.0958251953 - -1013.0792236328 - -1013.1360473633 - -1013.1062011719 - -1013.1336669922 - -1013.1425781250 - -1013.1504516602 - -1013.1826171875 - -1013.1693725586 - -1013.1801147461 - -1013.1848754883 - -1013.2075805664 - -1013.2049560547 - -1013.2115478516 - -1013.2045288086 - -1013.2194213867 - -1013.2180786133 - -1013.2115478516 - -1013.2192382812 - -1013.2501220703 - -1013.1886596680 - -1013.2205200195 - -1013.2277221680 - -1013.1987915039 - -1013.2167358398 - -1013.2227783203 - -1013.1715698242 - -1013.1980590820 - -1013.1834716797 - -1013.1747436523 - -1013.1685180664 - -1013.1665039062 - -1013.1414794922 - -1013.1345214844 - -1013.1373901367 - -1013.1063232422 - -1013.1156005859 - -1013.0817871094 - -1013.0557250977 - -1013.0805053711 - -1013.0390625000 - -1013.0203247070 - -1013.0013427734 - -1013.0001831055 - -1012.9484252930 - -1012.9614868164 - -1012.9360351562 - -1012.8934326172 - -1012.8633422852 - -1012.8834228516 - -1012.8154296875 - -1012.8053588867 - -1012.7954101562 - -1012.7330932617 - -1012.7404174805 - -1012.6693115234 - -1012.6965332031 - -1012.6256713867 - -1012.6105346680 - -1012.5639648438 - -1012.5412597656 - -1012.5173339844 - -1012.4891967773 - -1012.4040527344 - -1012.4168090820 - -1012.3837890625 - -1012.3168334961 - -1012.2778320312 - -1012.2653198242 - -1012.2323608398 - -1012.1514892578 - -1012.1298217773 - -1012.1130371094 - -1012.0358886719 - -1011.9882202148 - -1011.9732666016 - -1011.9205932617 - -1011.8606567383 - -1011.8001098633 - -1011.7988891602 - -1011.7097167969 - -1011.6858520508 - -1011.6153564453 - -1011.5471801758 - -1011.5584716797 - -1011.4393310547 - -1011.4207763672 - -1011.3551025391 - -1011.3079833984 - -1011.2579956055 - -1011.1881713867 - -1011.1165161133 - -1011.1220092773 - -1010.9854125977 - -1010.9591064453 - -1010.9266357422 - -1010.8190307617 - -1010.7831420898 - -1010.7218627930 - -1010.6484375000 - -1010.6035156250 - -1010.4946289062 - -1010.4855957031 - -1010.3863525391 - -1010.3151245117 - -1010.2608642578 - -1010.1970825195 - -1010.1143188477 - -1010.0414428711 - -1009.9774169922 - -1009.9022216797 - -1009.8252563477 - -1009.7826538086 - -1009.6409301758 - -1009.6359863281 - -1009.5375976562 - -1009.4387207031 - -1009.4031982422 - -1009.2866821289 - -1009.2487792969 - -1009.1303710938 - -1009.0630493164 - -1008.9914550781 - -1008.9151000977 - -1008.8041992188 - -1008.7495117188 - -1008.6673583984 - -1008.5601806641 - -1008.4922485352 - -1008.4108886719 - -1008.3020019531 - -1008.2401733398 - -1008.1429443359 - -1008.0517578125 - -1007.9613037109 - -1007.8811645508 - -1007.7786254883 - -1007.6966552734 - -1007.6004028320 - -1007.5150146484 - -1007.4213867188 - -1007.3145141602 - -1007.2286987305 - -1007.1436157227 - -1007.0359497070 - -1006.9215698242 - -1006.8698730469 - -1006.7374877930 - -1006.6428833008 - -1006.5758056641 - -1006.4188842773 - -1006.3625488281 - -1006.2683105469 - -1006.1214599609 - -1006.0629272461 - -1005.9489746094 - -1005.8472290039 - -1005.7132568359 - -1005.6719360352 - -1005.5028686523 - -1005.4325561523 - -1005.3249511719 - -1005.2044067383 - -1005.0989379883 - -1005.0227050781 - -1004.8711547852 - -1004.7814941406 - -1004.6831665039 - -1004.5559082031 - -1004.4401245117 - -1004.3638916016 - -1004.2066040039 - -1004.1339111328 - -1004.0031738281 - -1003.8732910156 - -1003.7973022461 - -1003.6612548828 - -1003.5399169922 - -1003.4473266602 - -1003.3157958984 - -1003.2079467773 - -1003.0781860352 - -1002.9664916992 - -1002.8620605469 - -1002.7295532227 - -1002.6153564453 - -1002.4879760742 - -1002.3933715820 - -1002.2426757812 - -1002.1320800781 - -1002.0214843750 - -1001.9071044922 - -1001.7544555664 - -1001.6473388672 - -1001.5612182617 - -1001.3743286133 - -1001.3003540039 - -1001.1520385742 - -1001.0284423828 - -1000.9260253906 - -1000.7687377930 - -1000.6630249023 - -1000.5473632812 - -1000.3980712891 - -1000.2784423828 - -1000.1718139648 - -1000.0026245117 - -999.9255371094 - -999.7603759766 - -999.6292114258 - -999.5311279297 - -999.4039306641 - -999.2246704102 - -999.1287231445 - -999.0350952148 - -998.8409423828 - -998.7252807617 - -998.6270751953 - -998.4771728516 - -998.3333740234 - -998.2166137695 - -998.0707397461 - -997.9869384766 - -997.7739257812 - -997.7004394531 - -997.5532226562 - -997.4235229492 - -997.2711181641 - -997.1495971680 - -997.0413818359 - -996.8568115234 - -996.7556762695 - -996.6112060547 - -996.4705810547 - -996.3376464844 - -996.2047729492 - -996.0661621094 - -995.9162597656 - -995.8308715820 - -995.6365356445 - -995.5289306641 - -995.3860473633 - -995.2573852539 - -995.1046142578 - -994.9863891602 - -994.8259277344 - -994.7244873047 - -994.5560302734 - -994.4229736328 - -994.2977294922 - -994.1669311523 - -994.0043945312 - -993.8677978516 - -993.7664794922 - -993.6003417969 - -993.4373779297 - -993.3698730469 - -993.1605834961 - -993.0764770508 - -992.8900756836 - -992.7960815430 - -992.6278686523 - -992.5155639648 - -992.3383178711 - -992.2401123047 - -992.0897827148 - -991.9379272461 - -991.8044433594 - -991.6865844727 - -991.5412597656 - -991.3765258789 - -991.2783203125 - -991.1242675781 - -990.9844970703 - -990.8527832031 - -990.7097167969 - -990.5976562500 - -990.4350585938 - -990.3032836914 - -990.1817626953 - -990.0366821289 - -989.9011230469 - -989.7723999023 - -989.6329345703 - -989.5011596680 - -989.3796997070 - -989.2171020508 - -989.1024780273 - -988.9841918945 - -988.8172607422 - -988.7147216797 - -988.5711059570 - -988.4428710938 - -988.3193359375 - -988.1741333008 - -988.0550537109 - -987.9377441406 - -987.7858886719 - -987.6707763672 - -987.5426635742 - -987.4258422852 - -987.2736206055 - -987.1856689453 - -987.0340576172 - -986.8959350586 - -986.8267822266 - -986.6437988281 - -986.5720825195 - -986.3984985352 - -986.3236694336 - -986.1987915039 - -986.0381469727 - -985.9568481445 - -985.8583374023 - -985.7021484375 - -985.5805664062 - -985.5114746094 - -985.3842773438 - -985.2226562500 - -985.1693725586 - -985.0464477539 - -984.9028320312 - -984.8427734375 - -984.6766357422 - -984.6412353516 - -984.4751586914 - -984.3830566406 - -984.3129882812 - -984.1611938477 - -984.0962524414 - -983.9799194336 - -983.8799438477 - -983.7786254883 - -983.6907958984 - -983.5908813477 - -983.4867553711 - -983.4035034180 - -983.3071899414 - -983.2075805664 - -983.1361694336 - -983.0094604492 - -982.9579467773 - -982.8618774414 - -982.7514038086 - -982.6953125000 - -982.6068115234 - -982.5133666992 - -982.4396972656 - -982.3560180664 - -982.2752075195 - -982.2078857422 - -982.1204833984 - -982.0358886719 - -981.9912719727 - -981.8981933594 - -981.8262329102 - -981.7558593750 - -981.6892700195 - -981.6367187500 - -981.5297241211 - -981.4930419922 - -981.4388427734 - -981.3524169922 - -981.2893066406 - -981.2424926758 - -981.1935424805 - -981.0972290039 - -981.0761718750 - -980.9982299805 - -980.9680175781 - -980.8759155273 - -980.8705444336 - -980.7601318359 - -980.7891235352 - -980.6600952148 - -980.6491088867 - -980.6195678711 - -980.5418090820 - -980.4981689453 - -980.4764404297 - -980.4234008789 - -980.3745117188 - -980.3314819336 - -980.3125610352 - -980.2495117188 - -980.2315673828 - -980.1704101562 - -980.1583862305 - -980.1165161133 - -980.0784301758 - -980.0280761719 - -980.0522460938 - -979.9636840820 - -979.9542236328 - -979.9262695312 - -979.8973388672 - -979.8630981445 - -979.8430786133 - -979.8302001953 - -979.7689208984 - -979.7944946289 - -979.7390136719 - -979.7168579102 - -979.7053222656 - -979.6770019531 - -979.6760253906 - -979.6005859375 - -979.6494750977 - -979.5889892578 - -979.5883178711 - -979.5478515625 - -979.5494995117 - -979.5479736328 - -979.5030517578 - -979.4702758789 - -979.5200805664 - -979.4675903320 - -979.4248046875 - -979.4607543945 - -979.4360961914 - -979.4094238281 - -979.3898315430 - -979.4136352539 - -979.3601074219 - -979.3898925781 - -979.3508911133 - -979.3442382812 - -979.3485107422 - -979.3385620117 - -979.3000488281 - -979.3287963867 - -979.2982177734 - -979.2868041992 - -979.3052978516 - -979.2422485352 - -979.3086547852 - -979.2560424805 - -979.2338867188 - -979.2639160156 - -979.2416381836 - -979.2285156250 - -979.2144775391 - -979.2294921875 - -979.2054443359 - -979.2058715820 - -979.1918945312 - -979.1998901367 - -979.1784057617 - -979.1710205078 - -979.1718750000 - -979.1560668945 - -979.1684570312 - -979.1403808594 - -979.1317138672 - -979.1519775391 - -979.1071777344 - -979.1160278320 - -979.1219482422 - -979.0761108398 - -979.1220092773 - -979.0676879883 - -979.0651245117 - -979.0838623047 - -979.0506591797 - -979.0323486328 - -979.0559082031 - -979.0269165039 - -979.0057373047 - -979.0095214844 - -979.0050048828 - -978.9550781250 - -979.0112304688 - -978.9293212891 - -978.9559936523 - -978.9393920898 - -978.9338989258 - -978.8824462891 - -978.9111328125 - -978.8939819336 - -978.8290405273 - -978.8751831055 - -978.8304443359 - -978.8096923828 - -978.8228149414 - -978.7670288086 - -978.7635498047 - -978.7665405273 - -978.7210083008 - -978.7091064453 - -978.6953735352 - -978.6817016602 - -978.6438598633 - -978.6392211914 - -978.5994873047 - -978.5968627930 - -978.5545654297 - -978.5402832031 - -978.5195922852 - -978.5031127930 - -978.4467773438 - -978.4506835938 - -978.4182128906 - -978.3753662109 - -978.3640136719 - -978.3422851562 - -978.2842407227 - -978.2786254883 - -978.2413330078 - -978.2108154297 - -978.1576538086 - -978.1671752930 - -978.0919799805 - -978.1013183594 - -978.0223999023 - -978.0070190430 - -977.9981689453 - -977.8874511719 - -977.9179077148 - -977.8552856445 - -977.8090820312 - -977.7847900391 - -977.7286376953 - -977.6918945312 - -977.6659545898 - -977.6151123047 - -977.5560302734 - -977.5209350586 - -977.5044555664 - -977.3996582031 - -977.3999633789 - -977.3364257812 - -977.2893676758 - -977.2432250977 - -977.1728515625 - -977.1586914062 - -977.0838623047 - -976.9979248047 - -977.0217895508 - -976.9059448242 - -976.8545532227 - -976.8298339844 - -976.7531127930 - -976.6912841797 - -976.6476440430 - -976.5506591797 - -976.5573730469 - -976.4338989258 - -976.3909912109 - -976.3428344727 - -976.2626953125 - -976.2330322266 - -976.1245117188 - -976.0666503906 - -976.0193481445 - -975.9552001953 - -975.8595581055 - -975.7899169922 - -975.7559814453 - -975.6608886719 - -975.5640869141 - -975.5363159180 - -975.4522705078 - -975.3534545898 - -975.2726440430 - -975.2349243164 - -975.1471557617 - -975.0187988281 - -974.9948730469 - -974.9066772461 - -974.8136596680 - -974.7244262695 - -974.6530151367 - -974.5587768555 - -974.5095825195 - -974.3688354492 - -974.3267822266 - -974.2017822266 - -974.1470336914 - -974.0497436523 - -973.9389648438 - -973.8922729492 - -973.7532958984 - -973.6735839844 - -973.6000976562 - -973.5039062500 - -973.3814086914 - -973.3137817383 - -973.1982421875 - -973.0967407227 - -973.0129394531 - -972.9224243164 - -972.7901611328 - -972.6964721680 - -972.6110839844 - -972.4930419922 - -972.3997192383 - -972.2835693359 - -972.1705322266 - -972.0804443359 - -971.9654541016 - -971.8524169922 - -971.7452392578 - -971.6393432617 - -971.4951782227 - -971.4334716797 - -971.3084106445 - -971.1683959961 - -971.0860595703 - -970.9519653320 - -970.8081665039 - -970.7461547852 - -970.6080932617 - -970.4649047852 - -970.3668823242 - -970.2443847656 - -970.1079711914 - -969.9990844727 - -969.8743286133 - -969.7590332031 - -969.6099853516 - -969.4898071289 - -969.3627319336 - -969.2541503906 - -969.0999755859 - -968.9739990234 - -968.8486938477 - -968.6937866211 - -968.6047363281 - -968.4409179688 - -968.3233642578 - -968.1847534180 - -968.0219726562 - -967.9243774414 - -967.7423095703 - -967.6613159180 - -967.4972534180 - -967.3271484375 - -967.2001342773 - -967.0975952148 - -966.8896484375 - -966.7969360352 - -966.6607666016 - -966.4804077148 - -966.3543090820 - -966.1804809570 - -966.0630493164 - -965.8967285156 - -965.7609863281 - -965.6195068359 - -965.4464111328 - -965.3138427734 - -965.1373901367 - -964.9936523438 - -964.8582153320 - -964.6704711914 - -964.5488891602 - -964.3712158203 - -964.1945800781 - -964.0603637695 - -963.9132690430 - -963.7207641602 - -963.6049194336 - -963.3915405273 - -963.2565307617 - -963.0767211914 - -962.9342651367 - -962.7597656250 - -962.6021118164 - -962.4321899414 - -962.2614135742 - -962.0936279297 - -961.9058837891 - -961.7756347656 - -961.5919799805 - -961.4126586914 - -961.2583618164 - -961.0971069336 - -960.8705444336 - -960.7507934570 - -960.5283813477 - -960.3851928711 - -960.2092895508 - -960.0341796875 - -959.8359985352 - -959.6979370117 - -959.4833984375 - -959.3042602539 - -959.1195068359 - -958.9568481445 - -958.7811279297 - -958.5845947266 - -958.3840332031 - -958.2525634766 - -957.9992675781 - -957.8440551758 - -957.6546020508 - -957.4976806641 - -957.2658691406 - -957.1043701172 - -956.9138183594 - -956.6882934570 - -956.5340576172 - -956.3253784180 - -956.1505126953 - -955.9481201172 - -955.7622070312 - -955.5766601562 - -955.3803100586 - -955.1405029297 - -955.0045166016 - -954.7596435547 - -954.5704956055 - -954.4129638672 - -954.1657104492 - -954.0071411133 - -953.7912597656 - -953.5977783203 - -953.3888549805 - -953.1920166016 - -952.9739990234 - -952.7632446289 - -952.5664062500 - -952.4090576172 - -952.1338500977 - -951.9579467773 - -951.7581787109 - -951.5349731445 - -951.3170776367 - -951.0964355469 - -950.9541015625 - -950.6958618164 - -950.4776611328 - -950.2999877930 - -950.0619506836 - -949.8457641602 - -949.6347045898 - -949.4038085938 - -949.2335205078 - -949.0164184570 - -948.7456665039 - -948.5881958008 - -948.3714599609 - -948.1442871094 - -947.9036865234 - -947.7186279297 - -947.5083007812 - -947.2817382812 - -946.9964599609 - -946.8447875977 - -946.6013183594 - -946.3604125977 - -946.1575317383 - -945.9354248047 - -945.7277832031 - -945.4739379883 - -945.2501220703 - -945.0200195312 - -944.8015747070 - -944.5602416992 - -944.3663940430 - -944.0886230469 - -943.9012451172 - -943.6270751953 - -943.4201660156 - -943.1717529297 - -942.9898071289 - -942.6923217773 - -942.5268554688 - -942.2479858398 - -942.0487060547 - -941.8092651367 - -941.5635375977 - -941.3402099609 - -941.1307983398 - -940.8397827148 - -940.6651611328 - -940.4005126953 - -940.1599731445 - -939.9462890625 - -939.6853027344 - -939.4703979492 - -939.2182006836 - -938.9824829102 - -938.7184448242 - -938.4955444336 - -938.2288208008 - -937.9949340820 - -937.7554931641 - -937.4857177734 - -937.2427368164 - -936.9915161133 - -936.7506713867 - -936.4801635742 - -936.2430419922 - -935.9734497070 - -935.7386474609 - -935.5033569336 - -935.2425537109 - -934.9829101562 - -934.7747192383 - -934.5125732422 - -934.2539672852 - -934.0589599609 - -933.8064575195 - -933.5812377930 - -933.3079223633 - -933.1441040039 - -932.8891601562 - -932.6851196289 - -932.4898681641 - -932.2462158203 - -932.0712890625 - -931.8441162109 - -931.6139526367 - -931.4199829102 - -931.2457885742 - -930.9641113281 - -930.8145141602 - -930.5730590820 - -930.3365478516 - -930.1474609375 - -929.9356079102 - -929.6624145508 - -929.3839721680 - -929.2753295898 - -929.0049438477 - -928.5024414062 - -927.4111328125 - -926.9274291992 - -926.5795898438 - -926.3376464844 - -926.1200561523 - -925.7432861328 - -925.4003295898 - -925.1478271484 - -924.9155883789 - -924.5162353516 - -924.1942138672 - -923.9686279297 - -923.6746826172 - -923.2742919922 - -923.0308227539 - -922.7366943359 - -922.4057006836 - -922.1295776367 - -921.7732543945 - -921.5189819336 - -921.2002563477 - -920.9007568359 - -920.5687866211 - -920.2999267578 - -920.0105590820 - -919.6791992188 - -919.3771362305 - -919.0994262695 - -918.7932739258 - -918.4955444336 - -918.1611328125 - -917.9259643555 - -917.5598754883 - -917.3199462891 - -916.9580688477 - -916.7111816406 - -916.3937988281 - -916.0820312500 - -915.7899169922 - -915.5008544922 - -915.1832275391 - -914.8786010742 - -914.5974731445 - -914.2793579102 - -913.9666137695 - -913.6832275391 - -913.3873291016 - -913.0470581055 - -912.7635498047 - -912.4677124023 - -912.1429443359 - -911.8600463867 - -911.5071411133 - -911.2550659180 - -910.9411010742 - -910.5851440430 - -910.3247070312 - -910.0085449219 - -909.7049560547 - -909.3684082031 - -909.0754394531 - -908.7993164062 - -908.4405517578 - -908.1531982422 - -907.8396606445 - -907.5394287109 - -907.2305297852 - -906.9026489258 - -906.6019287109 - -906.3098144531 - -905.9744873047 - -905.6707153320 - -905.3529663086 - -905.0563354492 - -904.7533569336 - -904.4093627930 - -904.0900878906 - -903.8363647461 - -903.4772949219 - -903.1378173828 - -902.8839111328 - -902.5405273438 - -902.2340698242 - -901.9063720703 - -901.5858764648 - -901.3016967773 - -900.9762573242 - -900.6146850586 - -900.3441162109 - -900.0413818359 - -899.6772460938 - -899.3747558594 - -899.0780029297 - -898.7432250977 - -898.4263305664 - -898.1154174805 - -897.7742919922 - -897.5054321289 - -897.1271972656 - -896.8369140625 - -896.5192871094 - -896.1808471680 - -895.8925781250 - -895.5311279297 - -895.2444458008 - -894.9023437500 - -894.5939941406 - -894.2656860352 - -893.9233398438 - -893.6406860352 - -893.3040161133 - -892.9519653320 - -892.6663208008 - -892.3247680664 - -892.0069580078 - -891.6708374023 - -891.3476562500 - -891.0435791016 - -890.7000732422 - -890.3590087891 - -890.0772094727 - -889.7144165039 - -889.4015502930 - -889.0753173828 - -888.7343139648 - -888.4357910156 - -888.0775146484 - -887.7448120117 - -887.4783935547 - -887.0570678711 - -886.8048095703 - -886.4400024414 - -886.1206665039 - -885.7709960938 - -885.4783935547 - -885.1262817383 - -884.7763671875 - -884.4999389648 - -884.1050415039 - -883.8255004883 - -883.4618530273 - -883.1292724609 - -882.8297119141 - -882.4592285156 - -882.1405639648 - -881.8248291016 - -881.4588012695 - -881.1428833008 - -880.8221435547 - -880.4458007812 - -880.1560058594 - -879.8052978516 - -879.4649658203 - -879.1238403320 - -878.8140258789 - -878.4526977539 - -878.1143798828 - -877.7960205078 - -877.4480590820 - -877.1141967773 - -876.7650756836 - -876.4556274414 - -876.0806884766 - -875.7727661133 - -875.4036865234 - -875.1100463867 - -874.7233276367 - -874.4032592773 - -874.0875854492 - -873.7058715820 - -873.3729248047 - -873.0740356445 - -872.6799316406 - -872.3584594727 - -872.0401000977 - -871.6690673828 - -871.3154907227 - -871.0232543945 - -870.6384887695 - -870.3018798828 - -869.9760131836 - -869.6092529297 - -869.2943115234 - -868.9132080078 - -868.5913085938 - -868.2606811523 - -867.9027099609 - -867.5093994141 - -867.2545166016 - -866.8590698242 - -866.4895629883 - -866.1715698242 - -865.8567504883 - -865.4453735352 - -865.1385498047 - -864.7818603516 - -864.4302978516 - -864.1087036133 - -863.6972045898 - -863.4179077148 - -863.0415649414 - -862.6809692383 - -862.3408813477 - -861.9939575195 - -861.6524658203 - -861.2794189453 - -860.9400024414 - -860.5994873047 - -860.2400512695 - -859.8851928711 - -859.5379638672 - -859.1868286133 - -858.8356323242 - -858.4656982422 - -858.1483154297 - -857.7500610352 - -857.4524536133 - -857.0386962891 - -856.7280883789 - -856.3546752930 - -856.0013427734 - -855.6511840820 - -855.3003540039 - -854.9275512695 - -854.5947265625 - -854.2235107422 - -853.8724975586 - -853.5127563477 - -853.1621093750 - -852.8008422852 - -852.4380493164 - -852.1010742188 - -851.7075805664 - -851.3901367188 - -851.0095214844 - -850.6328735352 - -850.3313598633 - -849.9077148438 - -849.5885620117 - -849.2151489258 - -848.8657836914 - -848.4724731445 - -848.1560668945 - -847.7750244141 - -847.3973388672 - -847.0483398438 - -846.7081298828 - -846.3157958984 - -845.9488525391 - -845.6217651367 - -845.2274780273 - -844.8817749023 - -844.4930419922 - -844.1737670898 - -843.7654418945 - -843.4282226562 - -843.0426635742 - -842.6915283203 - -842.3265380859 - -841.9591674805 - -841.5718994141 - -841.2371215820 - -840.8518676758 - -840.4909667969 - -840.1054077148 - -839.7642211914 - -839.3908691406 - -839.0083618164 - -838.6400146484 - -838.2943725586 - -837.9082031250 - -837.5228881836 - -837.1823120117 - -836.7953491211 - -836.4323120117 - -836.0354614258 - -835.7069091797 - -835.2886962891 - -834.9610595703 - -834.5559692383 - -834.1757202148 - -833.8489379883 - -833.4278564453 - -833.0700073242 - -832.6968994141 - -832.3373413086 - -831.9235839844 - -831.5907592773 - -831.1719360352 - -830.8466186523 - -830.4120483398 - -830.0594482422 - -829.7150268555 - -829.2749023438 - -828.9312744141 - -828.5665893555 - -828.1541748047 - -827.7982788086 - -827.3947753906 - -827.0492553711 - -826.6326904297 - -826.2638549805 - -825.8869628906 - -825.4979248047 - -825.1152343750 - -824.7349243164 - -824.3309326172 - -823.9801025391 - -823.5573120117 - -823.2124023438 - -822.7782592773 - -822.4291992188 - -822.0387573242 - -821.6262207031 - -821.2590942383 - -820.8549804688 - -820.4901733398 - -820.0797729492 - -819.6725463867 - -819.3165893555 - -818.9215087891 - -818.4937133789 - -818.1183471680 - -817.7503662109 - -817.3182983398 - -816.9395141602 - -816.5405883789 - -816.1489257812 - -815.7523803711 - -815.3429565430 - -814.9429931641 - -814.5650024414 - -814.1419067383 - -813.7548217773 - -813.3328247070 - -812.9622802734 - -812.5335693359 - -812.1453247070 - -811.7091064453 - -811.3555297852 - -810.9055786133 - -810.5149536133 - -810.0811157227 - -809.7217407227 - -809.2707519531 - -808.8585815430 - -808.4761352539 - -808.0328369141 - -807.6306152344 - -807.2305297852 - -806.7724609375 - -806.4024047852 - -805.9630737305 - -805.5364990234 - -805.1201171875 - -804.7232055664 - -804.2633666992 - -803.8551025391 - -803.4424438477 - -803.0064086914 - -802.5535278320 - -802.1842041016 - -801.6932983398 - -801.3058471680 - -800.8422851562 - -800.4274291992 - -799.9913330078 - -799.5465698242 - -799.1011962891 - -798.6938476562 - -798.2281494141 - -797.7739868164 - -797.3581542969 - -796.9147338867 - -796.4399414062 - -796.0125732422 - -795.5626831055 - -795.1154785156 - -794.6365966797 - -794.2017211914 - -793.7510986328 - -793.2829589844 - -792.8197021484 - -792.3493652344 - -791.9272460938 - -791.4125976562 - -790.9613647461 - -790.5133666992 - -790.0230102539 - -789.5470581055 - -789.0833740234 - -788.6077880859 - -788.1130371094 - -787.6511840820 - -787.1564331055 - -786.6654052734 - -786.1953125000 - -785.6980590820 - -785.1907348633 - -784.7330322266 - -784.1925048828 - -783.7297363281 - -783.2192993164 - -782.6815795898 - -782.2357788086 - -781.6943359375 - -781.1492309570 - -780.7069091797 - -780.1632080078 - -779.6060180664 - -779.1224975586 - -778.6184692383 - -778.0476074219 - -777.5233154297 - -777.0250244141 - -776.4652099609 - -775.9366455078 - -775.3828125000 - -774.8410644531 - -774.3508300781 - -773.7069702148 - -773.2105712891 - -772.6621704102 - -772.0969238281 - -771.4981689453 - -770.9812622070 - -770.4144287109 - -769.8069458008 - -769.2501831055 - -768.6770019531 - -768.0961303711 - -767.5009765625 - -766.9230346680 - -766.3258056641 - -765.7426757812 - -765.1620483398 - -764.5144042969 - -763.9658203125 - -763.3220214844 - -762.7201538086 - -762.1189575195 - -761.4981689453 - -760.8499755859 - -760.2871704102 - -759.6062622070 - -758.9854125977 - -758.3764038086 - -757.7320556641 - -757.0652465820 - -756.4293212891 - -755.8229980469 - -755.1190795898 - -754.4821777344 - -753.8474731445 - -753.1580810547 - -752.5170898438 - -751.8112792969 - -751.1873779297 - -750.4736938477 - -749.8253784180 - -749.1069335938 - -748.4558105469 - -747.7532348633 - -747.0498657227 - -746.3679199219 - -745.6738891602 - -744.9735717773 - -744.2539672852 - -743.5706176758 - -742.8430175781 - -742.1268920898 - -741.4286499023 - -740.6846923828 - -739.9919433594 - -739.2558593750 - -738.5155639648 - -737.8046875000 - -737.0667114258 - -736.3236083984 - -735.5970458984 - -734.8597412109 - -734.0925292969 - -733.3797607422 - -732.6104736328 - -731.8557739258 - -731.1318969727 - -730.3595581055 - -729.6009521484 - -728.8555297852 - -728.0836181641 - -727.3386230469 - -726.5520629883 - -725.8005371094 - -725.0673217773 - -724.2440795898 - -723.5146484375 - -722.7418212891 - -721.9616088867 - -721.2041625977 - -720.4257812500 - -719.6556396484 - -718.8689575195 - -718.1170043945 - -717.3339233398 - -716.5729980469 - -715.7509155273 - -715.0451660156 - -714.2161254883 - -713.4611816406 - -712.6781616211 - -711.9339599609 - -711.1492919922 - -710.3352050781 - -709.6134033203 - -708.8486328125 - -708.0076904297 - -707.3301391602 - -706.5025024414 - -705.7470703125 - -705.0071411133 - -704.1777343750 - -703.5010986328 - -702.6793212891 - -701.9257812500 - -701.2145385742 - -700.3900756836 - -699.6956176758 - -698.9156494141 - -698.1632080078 - -697.4438476562 - -696.6664428711 - -695.9457397461 - -695.2050781250 - -694.4633789062 - -693.7380371094 - -692.9866333008 - -692.2932128906 - -691.5172729492 - -690.8280029297 - -690.1202392578 - -689.3687744141 - -688.6763305664 - -687.9870605469 - -687.2474975586 - -686.5575561523 - -685.8635864258 - -685.1601562500 - -684.4780883789 - -683.7918090820 - -683.0855712891 - -682.4344482422 - -681.7556152344 - -681.0626831055 - -680.4086303711 - -679.7455444336 - -679.0910034180 - -678.4012451172 - -677.7740478516 - -677.1393432617 - -676.4680175781 - -675.8370361328 - -675.2092285156 - -674.5795898438 - -673.9298095703 - -673.3240966797 - -672.7007446289 - -672.0863647461 - -671.4638061523 - -670.8887939453 - -670.2287597656 - -669.7112426758 - -669.0318603516 - -668.5046997070 - -667.8995361328 - -667.3097534180 - -666.7408447266 - -666.1757202148 - -665.5874633789 - -665.0338134766 - -664.4779052734 - -663.9046630859 - -663.3693847656 - -662.8242187500 - -662.2445068359 - -661.7446289062 - -661.2053833008 - -660.6371459961 - -660.1296386719 - -659.6400146484 - -659.0568237305 - -658.5750122070 - -658.0576171875 - -657.5546875000 - -657.0305786133 - -656.5368041992 - -656.0585937500 - -655.5302124023 - -655.0745239258 - -654.5456542969 - -654.1003417969 - -653.6033325195 - -653.1112670898 - -652.6681518555 - -652.1704711914 - -651.7154541016 - -651.2421264648 - -650.8048706055 - -650.3060913086 - -649.8822021484 - -649.4296264648 - -648.9697875977 - -648.5053100586 - -648.1102294922 - -647.6358642578 - -647.1906738281 - -646.7886962891 - -646.3189697266 - -645.9280395508 - -645.4634399414 - -645.0579833984 - -644.6293334961 - -644.2351074219 - -643.7735595703 - -643.3920898438 - -642.9625244141 - -642.5809936523 - -642.1222534180 - -641.7589111328 - -641.3408203125 - -640.9307250977 - -640.5560302734 - -640.1020507812 - -639.7899169922 - -639.3386840820 - -638.9363403320 - -638.5919799805 - -638.1679687500 - -637.7902832031 - -637.4086914062 - -637.0137939453 - -636.6423950195 - -636.2641601562 - -635.8731079102 - -635.5065307617 - -635.1155395508 - -634.7557373047 - -634.3710327148 - -633.9904785156 - -633.6442260742 - -633.2635498047 - -632.8697509766 - -632.5390625000 - -632.1458740234 - -631.7915039062 - -631.4244995117 - -631.0366210938 - -630.7377319336 - -630.3086547852 - -629.9541625977 - -629.6446533203 - -629.2280273438 - -628.8920288086 - -628.5272216797 - -628.1920776367 - -627.8001708984 - -627.4539184570 - -627.1156616211 - -626.7213745117 - -626.4244995117 - -625.9983520508 - -625.6975708008 - -625.3322753906 - -624.9714355469 - -624.6062011719 - -624.2751464844 - -623.9306640625 - -623.5221557617 - -623.2252807617 - -622.8588256836 - -622.4998168945 - -622.1537475586 - -621.7911987305 - -621.4374389648 - -621.1270751953 - -620.7053833008 - -620.4050903320 - -620.0361938477 - -619.7055053711 - -619.3109130859 - -619.0062866211 - -618.6149902344 - -618.2998657227 - -617.9041748047 - -617.5809326172 - -617.2318725586 - -616.8806762695 - -616.4879150391 - -616.1779174805 - -615.8141479492 - -615.4533081055 - -615.0905151367 - -614.7661132812 - -614.3883666992 - -614.0363769531 - -613.6693725586 - -613.3432006836 - -612.9460449219 - -612.6283569336 - -612.2365722656 - -611.9228515625 - -611.5244140625 - -611.1724243164 - -610.8464355469 - -610.4210205078 - -610.1109008789 - -609.7515869141 - -609.3509521484 - -609.0368652344 - -608.6386718750 - -608.2843017578 - -607.9426269531 - -607.5623779297 - -607.1824951172 - -606.8396606445 - -606.4832153320 - -606.0683593750 - -605.7436523438 - -605.3742065430 - -604.9808959961 - -604.6271362305 - -604.2584838867 - -603.8858642578 - -603.5112304688 - -603.1152954102 - -602.7964477539 - -602.3834228516 - -601.9792480469 - -601.6791381836 - -601.2461547852 - -600.8759765625 - -600.5188598633 - -600.1044311523 - -599.7739868164 - -599.3497924805 - -598.9877929688 - -598.5989379883 - -598.2305297852 - -597.8552856445 - -597.4495239258 - -597.0545043945 - -596.7008666992 - -596.3052978516 - -595.9067382812 - -595.5054321289 - -595.1501464844 - -594.7484130859 - -594.3261718750 - -593.9818115234 - -593.5715942383 - -593.1680297852 - -592.7523193359 - -592.4124755859 - -591.9878540039 - -591.5511474609 - -591.2081909180 - -590.7976684570 - -590.3825073242 - -589.9835815430 - -589.5804443359 - -589.1859741211 - -588.7931518555 - -588.3526000977 - -587.9848632812 - -587.5439453125 - -587.1550903320 - -586.7650756836 - -586.3253784180 - -585.9485473633 - -585.4937744141 - -585.1085205078 - -584.7088623047 - -584.2764892578 - -583.8623046875 - -583.4577026367 - -583.0258789062 - -582.5929565430 - -582.2266235352 - -581.7680053711 - -581.3530883789 - -580.9277954102 - -580.5100708008 - -580.1007690430 - -579.6621704102 - -579.2397460938 - -578.8002319336 - -578.3919677734 - -577.9598999023 - -577.5231933594 - -577.1009521484 - -576.6640014648 - -576.2084960938 - -575.8276367188 - -575.3824462891 - -574.9183349609 - -574.5265502930 - -574.0511474609 - -573.6139526367 - -573.1997070312 - -572.7803955078 - -572.2734375000 - -571.8899536133 - -571.4326171875 - -570.9724121094 - -570.5477294922 - -570.1058349609 - -569.6694335938 - -569.1863403320 - -568.7558593750 - -568.3171386719 - -567.8750610352 - -567.3992309570 - -566.9559326172 - -566.5189819336 - -566.0269165039 - -565.6079101562 - -565.1697998047 - -564.6852416992 - -564.2458496094 - -563.7506103516 - -563.3367309570 - -562.8524169922 - -562.4158325195 - -561.9483032227 - -561.4709472656 - -561.0078735352 - -560.5563354492 - -560.0798950195 - -559.6425781250 - -559.1769409180 - -558.6761474609 - -558.2526855469 - -557.7192993164 - -557.3129272461 - -556.8010253906 - -556.3618164062 - -555.9064331055 - -555.3714599609 - -554.9633789062 - -554.4489746094 - -553.9629516602 - -553.5303344727 - -553.0273437500 - -552.5514526367 - -552.0794067383 - -551.5813598633 - -551.0992431641 - -550.6537475586 - -550.1453247070 - -549.6829223633 - -549.1684570312 - -548.6955566406 - -548.2136230469 - -547.7260742188 - -547.2495727539 - -546.7633056641 - -546.2734985352 - -545.7708129883 - -545.2961425781 - -544.7792358398 - -544.3184814453 - -543.8299560547 - -543.3217163086 - -542.8466186523 - -542.3546752930 - -541.8261718750 - -541.3670654297 - -540.8193359375 - -540.3782958984 - -539.8548583984 - -539.3724365234 - -538.8579101562 - -538.3796386719 - -537.8593750000 - -537.3579101562 - -536.8246459961 - -536.3878784180 - -535.8411254883 - -535.3626098633 - -534.8197631836 - -534.3651123047 - -533.7995605469 - -533.3161010742 - -532.8121948242 - -532.3139648438 - -531.8091430664 - -531.2597656250 - -530.7967529297 - -530.2353515625 - -529.7460937500 - -529.2342529297 - -528.7319946289 - -528.2058105469 - -527.7115478516 - -527.1779174805 - -526.6954956055 - -526.1084594727 - -525.6546630859 - -525.0909423828 - -524.5845947266 - -524.1085815430 - -523.5311889648 - -523.0494384766 - -522.5385131836 - -522.0031738281 - -521.4600219727 - -520.9763793945 - -520.4167480469 - -519.8776855469 - -519.3731079102 - -518.8928222656 - -518.3038330078 - -517.7838134766 - -517.2914428711 - -516.7279663086 - -516.1885986328 - -515.6679687500 - -515.1779174805 - -514.6253051758 - -514.0662231445 - -513.5846557617 - -513.0197753906 - -512.4686279297 - -511.9549560547 - -511.4107971191 - -510.8956909180 - -510.3693542480 - -509.7988891602 - -509.3025817871 - -508.7582397461 - -508.2338256836 - -507.6625976562 - -507.1576843262 - -506.6372985840 - -506.0653991699 - -505.4896850586 - -505.0190429688 - -504.4127197266 - -503.8948364258 - -503.3737182617 - -502.8074035645 - -502.2934570312 - -501.7239074707 - -501.1763610840 - -500.6322021484 - -500.0775146484 - -499.5282287598 - -499.0335998535 - -498.4082641602 - -497.9156494141 - -497.3169860840 - -496.7950134277 - -496.2401733398 - -495.7142333984 - -495.1049499512 - -494.6535034180 - -494.0193481445 - -493.5152893066 - -492.9490356445 - -492.4194030762 - -491.8418579102 - -491.3162231445 - -490.7344665527 - -490.2229614258 - -489.6504821777 - -489.0762634277 - -488.5597229004 - -487.9917602539 - -487.4375915527 - -486.8709411621 - -486.3362121582 - -485.7406311035 - -485.1941223145 - -484.6202087402 - -484.0709533691 - -483.5032653809 - -482.9192199707 - -482.3675231934 - -481.7895202637 - -481.2204284668 - -480.6694030762 - -480.0691528320 - -479.5250244141 - -478.9244079590 - -478.4289855957 - -477.8203125000 - -477.2423706055 - -476.7248229980 - -476.1598815918 - -475.5799865723 - -475.0591735840 - -474.4974060059 - -473.9875793457 - -473.3642272949 - -472.9098205566 - -472.3213195801 - -471.8509216309 - -471.3101196289 - -470.7705078125 - -470.2759094238 - -469.7433471680 - -469.2477722168 - -468.6726989746 - -468.2092590332 - -467.6606750488 - -467.2065734863 - -466.5708618164 - -466.0760192871 - -465.6264648438 - -465.0744018555 - -464.4154357910 - -463.8778076172 - -463.5416564941 - -462.9092102051 - -461.8654174805 - -459.5661315918 - -458.5315246582 - -457.8607177734 - -457.4584960938 - -456.9509887695 - -456.2406616211 - -455.6234130859 - -455.1423339844 - -454.6496887207 - -453.9356384277 - -453.3958129883 - -452.8751831055 - -452.3520507812 - -451.6745910645 - -451.1725769043 - -450.6067504883 - -450.0346374512 - -449.4788818359 - -448.8580932617 - -448.3629150391 - -447.7426452637 - -447.2208251953 - -446.5683898926 - -446.0368041992 - -445.4568786621 - -444.8684082031 - -444.2668762207 - -443.6942138672 - -443.1278076172 - -442.5311279297 - -441.8859863281 - -441.3906250000 - -440.7248535156 - -440.1953735352 - -439.5332641602 - -438.9938964844 - -438.3867492676 - -437.7786865234 - -437.2026672363 - -436.6090087891 - -436.0025024414 - -435.4180297852 - -434.8370361328 - -434.2432861328 - -433.6235046387 - -433.0650329590 - -432.4767761230 - -431.8603820801 - -431.2810668945 - -430.7239379883 - -430.1076660156 - -429.5261535645 - -428.9262390137 - -428.3638610840 - -427.7862548828 - -427.1429138184 - -426.6059875488 - -426.0016784668 - -425.4456787109 - -424.7830505371 - -424.2683410645 - -423.6695861816 - -423.0559082031 - -422.4818725586 - -421.9069213867 - -421.2951965332 - -420.7423400879 - -420.0920410156 - -419.5443115234 - -418.9697265625 - -418.3569030762 - -417.7763061523 - -417.1822814941 - -416.5914306641 - -416.0299987793 - -415.4032897949 - -414.8242492676 - -414.2998962402 - -413.6364746094 - -413.0725097656 - -412.5123901367 - -411.8825683594 - -411.3142700195 - -410.7386474609 - -410.1277770996 - -409.5749511719 - -408.9767456055 - -408.3790588379 - -407.8087158203 - -407.2399902344 - -406.6286315918 - -406.0487365723 - -405.4925537109 - -404.8826293945 - -404.2785644531 - -403.7308349609 - -403.1105957031 - -402.5527648926 - -401.9455261230 - -401.3904113770 - -400.8014526367 - -400.1808471680 - -399.6447143555 - -399.0325012207 - -398.4376831055 - -397.8657531738 - -397.3057556152 - -396.7084350586 - -396.0870056152 - -395.5605773926 - -394.9542541504 - -394.3399047852 - -393.7944641113 - -393.2218933105 - -392.6094665527 - -392.0450134277 - -391.4719238281 - -390.8787841797 - -390.3219604492 - -389.6849365234 - -389.1597595215 - -388.5383911133 - -387.9810180664 - -387.3932189941 - -386.8083496094 - -386.2519836426 - -385.6614685059 - -385.0468444824 - -384.5462341309 - -383.8677062988 - -383.3526306152 - -382.7514038086 - -382.1830749512 - -381.6030273438 - -381.0180664062 - -380.4539184570 - -379.8367004395 - -379.3186035156 - -378.6630554199 - -378.1685791016 - -377.5460815430 - -376.9684753418 - -376.4060058594 - -375.8124084473 - -375.2379455566 - -374.6859436035 - -374.0678100586 - -373.5411071777 - -372.9447631836 - -372.3582153320 - -371.7982788086 - -371.2121276855 - -370.6446838379 - -370.0562744141 - -369.5049133301 - -368.9295349121 - -368.3377990723 - -367.7884216309 - -367.1977539062 - -366.6265258789 - -366.0451354980 - -365.5016784668 - -364.8986206055 - -364.3530273438 - -363.7641906738 - -363.2098388672 - -362.6130676270 - -362.0411987305 - -361.5119018555 - -360.9069519043 - -360.3312988281 - -359.7991943359 - -359.1878662109 - -358.6184387207 - -358.0951538086 - -357.4961853027 - -356.8937683105 - -356.4065551758 - -355.7662048340 - -355.2140808105 - -354.6805419922 - -354.0691223145 - -353.5646667480 - -352.9286193848 - -352.4076538086 - -351.8323974609 - -351.2564697266 - -350.6699523926 - -350.1702575684 - -349.5733642578 - -348.9899291992 - -348.4392089844 - -347.8967895508 - -347.2960510254 - -346.7499694824 - -346.2072753906 - -345.6182556152 - -345.0878601074 - -344.4574584961 - -343.9621582031 - -343.4005432129 - -342.8062133789 - -342.2624816895 - -341.7096252441 - -341.1408386230 - -340.5675354004 - -340.0234069824 - -339.4835510254 - -338.8957824707 - -338.3404541016 - -337.7881164551 - -337.2434387207 - -336.6766357422 - -336.0960693359 - -335.6038818359 - -334.9703979492 - -334.4716796875 - -333.8830871582 - -333.3628540039 - -332.7685852051 - -332.2423706055 - -331.6738586426 - -331.1166381836 - -330.5813598633 - -330.0320739746 - -329.4635925293 - -328.9203796387 - -328.3609924316 - -327.8121032715 - -327.2690734863 - -326.7055358887 - -326.1733398438 - -325.5857543945 - -325.0774536133 - -324.5131530762 - -323.9472351074 - -323.4485168457 - -322.8244323730 - -322.3412780762 - -321.7734069824 - -321.2255249023 - -320.6589050293 - -320.1485595703 - -319.5747375488 - -319.0242309570 - -318.5053100586 - -317.9504699707 - -317.4021301270 - -316.8353576660 - -316.3313293457 - -315.7738037109 - -315.2231750488 - -314.6833190918 - -314.1542968750 - -313.5829162598 - -313.0677795410 - -312.5087280273 - -311.9798583984 - -311.4295959473 - -310.8805541992 - -310.3570861816 - -309.8178710938 - -309.2456665039 - -308.7454223633 - -308.1784667969 - -307.6546630859 - -307.1007995605 - -306.5802917480 - -306.0229492188 - -305.4968872070 - -304.9667968750 - -304.4089050293 - -303.8884277344 - -303.3327941895 - -302.8225097656 - -302.2590026855 - -301.7441101074 - -301.1757202148 - -300.6846923828 - -300.1184387207 - -299.5891418457 - -299.0640258789 - -298.5211181641 - -297.9772338867 - -297.4564208984 - -296.9385070801 - -296.3381958008 - -295.8850097656 - -295.2984313965 - -294.7815551758 - -294.2349548340 - -293.7066955566 - -293.1981811523 - -292.6138610840 - -292.1097106934 - -291.5978088379 - -291.0231933594 - -290.5086059570 - -289.9834594727 - -289.4491577148 - -288.8937988281 - -288.3853149414 - -287.8476562500 - -287.2997131348 - -286.7805786133 - -286.2557983398 - -285.6847839355 - -285.2084960938 - -284.6210327148 - -284.1215209961 - -283.5808715820 - -283.0370788574 - -282.5215454102 - -281.9723815918 - -281.4308776855 - -280.9120178223 - -280.3764038086 - -279.8502502441 - -279.2774047852 - -278.7895202637 - -278.2448425293 - -277.6832885742 - -277.1479187012 - -276.6515502930 - -276.0800170898 - -275.5523376465 - -275.0066833496 - -274.5002746582 - -273.9385070801 - -273.3921508789 - -272.8547363281 - -272.3511657715 - -271.7665405273 - -271.2603149414 - -270.6792602539 - -270.1929016113 - -269.6041564941 - -269.0876770020 - -268.5088500977 - -268.0390625000 - -267.4165649414 - -266.9105834961 - -266.3432312012 - -265.8301391602 - -265.2536621094 - -264.7005310059 - -264.1661376953 - -263.6262512207 - -263.0502319336 - -262.5158081055 - -261.9428405762 - -261.4195861816 - -260.8433532715 - -260.2746276855 - -259.7539062500 - -259.1714782715 - -258.6183471680 - -258.0459899902 - -257.5051574707 - -256.9404602051 - -256.3342590332 - -255.8301696777 - -255.2099304199 - -254.6906280518 - -254.0603485107 - -253.5353851318 - -252.9658966064 - -252.3430633545 - -251.8001708984 - -251.2329101562 - -250.6316070557 - -250.0472869873 - -249.4700927734 - -248.9090423584 - -248.2839813232 - -247.7050781250 - -247.1293029785 - -246.5345764160 - -245.9114685059 - -245.3394165039 - -244.7352752686 - -244.1324768066 - -243.5182495117 - -242.9064331055 - -242.3373718262 - -241.6795196533 - -241.0806884766 - -240.4869995117 - -239.8305358887 - -239.2351074219 - -238.6137695312 - -237.9524841309 - -237.3616790771 - -236.7097320557 - -236.0801849365 - -235.4320831299 - -234.7955322266 - -234.1711425781 - -233.4798278809 - -232.8758544922 - -232.1756591797 - -231.5677947998 - -230.8722229004 - -230.1963043213 - -229.5729522705 - -228.8867645264 - -228.1613006592 - -227.5639953613 - -226.8367309570 - -226.1401824951 - -225.4761962891 - -224.7776489258 - -224.0745391846 - -223.3656005859 - -222.6808776855 - -221.9510498047 - -221.2640533447 - -220.5105590820 - -219.8043670654 - -219.1178131104 - -218.3190765381 - -217.6122589111 - -216.8971862793 - -216.1387176514 - -215.3500366211 - -214.6590118408 - -213.8764495850 - -213.1063842773 - -212.3319396973 - -211.5756683350 - -210.8034973145 - -210.0008850098 - -209.2251586914 - -208.4251098633 - -207.6584472656 - -206.8310546875 - -206.0080261230 - -205.2529754639 - -204.3843536377 - -203.5670318604 - -202.7745056152 - -201.9170837402 - -201.0588989258 - -200.2753906250 - -199.3733825684 - -198.5306396484 - -197.6988220215 - -196.8171997070 - -195.9317779541 - -195.0685424805 - -194.2164154053 - -193.2765502930 - -192.4386749268 - -191.5081939697 - -190.6340942383 - -189.7105712891 - -188.7877197266 - -187.9013977051 - -186.9476470947 - -186.0410156250 - -185.0889587402 - -184.1636657715 - -183.2097320557 - -182.2559814453 - -181.3176269531 - -180.3443756104 - -179.3889617920 - -178.4228973389 - -177.4470520020 - -176.4573059082 - -175.4717254639 - -174.5059204102 - -173.4792938232 - -172.5027770996 - -171.5084533691 - -170.4765625000 - -169.4807739258 - -168.4657592773 - -167.4334106445 - -166.4202270508 - -165.4007873535 - -164.3270568848 - -163.3275604248 - -162.2812500000 - -161.2098846436 - -160.1902313232 - -159.1430664062 - -158.0536804199 - -157.0254364014 - -155.9403228760 - -154.8927917480 - -153.8019256592 - -152.7397155762 - -151.7046966553 - -150.5623931885 - -149.5311584473 - -148.4445190430 - -147.3350982666 - -146.2967376709 - -145.1610565186 - -144.1022186279 - -143.0040130615 - -141.8914184570 - -140.8434600830 - -139.7187194824 - -138.6004638672 - -137.5657348633 - -136.3877563477 - -135.3618774414 - -134.2123413086 - -133.1410980225 - -132.0640716553 - -130.9064941406 - -129.8410339355 - -128.7658996582 - -127.6056518555 - -126.5941543579 - -125.4164581299 - -124.3725738525 - -123.2693939209 - -122.1319732666 - -121.1037445068 - -119.9781494141 - -118.8861846924 - -117.8381423950 - -116.6940155029 - -115.6672821045 - -114.5579452515 - -113.4749526978 - -112.4457092285 - -111.3118896484 - -110.2791442871 - -109.2189407349 - -108.1361083984 - -107.0924835205 - -106.0111846924 - -104.9926834106 - -103.8999938965 - -102.8682403564 - -101.8515319824 - -100.7806777954 - -99.7484893799 - -98.7534790039 - -97.6848144531 - -96.6743011475 - -95.6671371460 - -94.6419372559 - -93.6372985840 - -92.6461410522 - -91.6204910278 - -90.6419677734 - -89.6679382324 - -88.6508331299 - -87.6932830811 - -86.7174072266 - -85.7411804199 - -84.7640914917 - -83.8151092529 - -82.8719177246 - -81.9027862549 - -80.9738006592 - -80.0341644287 - -79.0937042236 - -78.1687316895 - -77.2374877930 - -76.3354187012 - -75.4001541138 - -74.5139312744 - -73.6152954102 - -72.6882781982 - -71.8458709717 - -70.9072570801 - -70.0895996094 - -69.1679840088 - -68.3190612793 - -67.4682769775 - -66.6016387939 - -65.7303161621 - -64.9085998535 - -64.0778808594 - -63.1958656311 - -62.4175491333 - -61.5783958435 - -60.7285766602 - -59.9547843933 - -59.1490631104 - -58.2942123413 - -57.5470085144 - -56.7531394958 - -55.9251937866 - -55.1773262024 - -54.3919754028 - -53.6302375793 - -52.8407669067 - -52.0846862793 - -51.3458366394 - -50.5768356323 - -49.8347930908 - -49.0592842102 - -48.3815307617 - -47.6115684509 - -46.8666801453 - -46.1712303162 - -45.4641799927 - -44.7002258301 - -44.0167045593 - -43.3300361633 - -42.5866966248 - -41.9189376831 - -41.2090225220 - -40.5313186646 - -39.8335266113 - -39.1629524231 - -38.4698448181 - -37.8130302429 - -37.1451721191 - -36.4315414429 - -35.8437767029 - -35.1331405640 - -34.4721488953 - -33.8519859314 - -33.2026481628 - -32.5162696838 - -31.9233131409 - -31.2436103821 - -30.6537094116 - -29.9713325500 - -29.3718223572 - -28.7448997498 - -28.1116371155 - -27.5043640137 - -26.8538322449 - -26.2968902588 - -25.6400718689 - -25.0300025940 - -24.4589347839 - -23.8147659302 - -23.2341308594 - -22.6482315063 - -22.0123863220 - -21.4527740479 - -20.8580093384 - -20.2571640015 - -19.6730613708 - -19.0799331665 - -18.5218391418 - -17.9163436890 - -17.3338088989 - -16.7771759033 - -16.2068939209 - -15.5969085693 - -15.0567932129 - -14.4836807251 - -13.9179000854 - -13.3347549438 - -12.7711105347 - -12.2552413940 - -11.6354293823 - -11.0810089111 - -10.5755157471 - -9.9539184570 - -9.4440002441 - -8.8472366333 - -8.3494644165 - -7.7546386719 - -7.2065429688 - -6.6794281006 - -6.1098098755 - -5.5866394043 - -4.9986953735 - -4.4994277954 - -3.9421539307 - -3.3803787231 - -2.8579788208 - -2.3083190918 - -1.7841567993 - -1.2070922852 - -0.6942672729 - -0.1630783081 - 0.3803405762 - 0.9374389648 - 1.4510803223 - 2.0037002563 - 2.4948120117 - 3.1121063232 - 3.5720138550 - 4.1383209229 - 4.6441802979 - 5.2266693115 - 5.7007980347 - 6.2762527466 - 6.7690124512 - 7.3486404419 - 7.8420715332 - 8.3699493408 - 8.9057006836 - 9.4665603638 - 9.9578857422 - 10.4971389771 - 11.0214767456 - 11.5802764893 - 12.0685195923 - 12.6043205261 - 13.1518554688 - 13.6912422180 - 14.1737174988 - 14.7446479797 - 15.2537727356 - 15.7943572998 - 16.2965354919 - 16.8437614441 - 17.3816986084 - 17.8853034973 - 18.4431800842 - 18.9610824585 - 19.4630928040 - 20.0465354919 - 20.5159378052 - 21.0858650208 - 21.6059532166 - 22.1173706055 - 22.6636848450 - 23.2020225525 - 23.7055854797 - 24.2498397827 - 24.7970695496 - 25.3075790405 - 25.8246421814 - 26.3957595825 - 26.9056282043 - 27.4144554138 - 27.9862937927 - 28.5004081726 - 29.0366973877 - 29.5617942810 - 30.0948638916 - 30.6788558960 - 31.1259384155 - 31.7298278809 - 32.2496299744 - 32.7675094604 - 33.3219490051 - 33.8479576111 - 34.3910598755 - 34.9170646667 - 35.4802284241 - 35.9789619446 - 36.5393028259 - 37.0686035156 - 37.6316642761 - 38.1402702332 - 38.6974296570 - 39.2285728455 - 39.7894058228 - 40.3138961792 - 40.8504104614 - 41.4177207947 - 41.9310760498 - 42.4917030334 - 43.0271110535 - 43.5995674133 - 44.0959587097 - 44.6755065918 - 45.2335014343 - 45.7487716675 - 46.3058090210 - 46.8652992249 - 47.4032135010 - 47.9654960632 - 48.4911651611 - 49.0596580505 - 49.6110763550 - 50.1471366882 - 50.7153930664 - 51.2718162537 - 51.7875213623 - 52.3677406311 - 52.9132194519 - 53.4892921448 - 54.0148086548 - 54.5695343018 - 55.1527671814 - 55.6811714172 - 56.2498054504 - 56.8129997253 - 57.3918533325 - 57.8837738037 - 58.5143013000 - 59.0341339111 - 59.6090812683 - 60.1801681519 - 60.7054481506 - 61.3012924194 - 61.8492317200 - 62.4270019531 - 62.9787521362 - 63.5427589417 - 64.1164016724 - 64.6727294922 - 65.2533645630 - 65.8254394531 - 66.3620834351 - 66.9369354248 - 67.5264587402 - 68.0597686768 - 68.6729965210 - 69.2165222168 - 69.8052749634 - 70.3264694214 - 70.9799957275 - 71.4844818115 - 72.0811691284 - 72.6682739258 - 73.2265853882 - 73.7964172363 - 74.3666687012 - 74.9773788452 - 75.5338668823 - 76.0964508057 - 76.6824645996 - 77.2761535645 - 77.8469085693 - 78.4084930420 - 79.0270919800 - 79.5965805054 - 80.1213226318 - 80.7652587891 - 81.3174514771 - 81.9330368042 - 82.4862747192 - 83.0651550293 - 83.6705551147 - 84.2411956787 - 84.8214111328 - 85.4221801758 - 86.0295715332 - 86.5700759888 - 87.1648406982 - 87.7606430054 - 88.3674926758 - 88.9071197510 - 89.5714340210 - 90.0928573608 - 90.7310180664 - 91.2855377197 - 91.8596420288 - 92.5276718140 - 93.0363922119 - 93.6685943604 - 94.2887496948 - 94.8332672119 - 95.4362945557 - 96.0625839233 - 96.6267623901 - 97.2330169678 - 97.8566055298 - 98.4099426270 - 99.0165023804 - 99.6272964478 - 100.2224578857 - 100.8307037354 - 101.4084930420 - 102.0322723389 - 102.6065444946 - 103.2133560181 - 103.8135223389 - 104.4328002930 - 105.0110931396 - 105.6358489990 - 106.2297058105 - 106.8140335083 - 107.4332962036 - 108.0257034302 - 108.6379928589 - 109.2420425415 - 109.8438720703 - 110.4822921753 - 111.0322113037 - 111.6793746948 - 112.2621841431 - 112.8728866577 - 113.4864120483 - 114.0898742676 - 114.6986236572 - 115.3523178101 - 115.8760070801 - 116.5597152710 - 117.1152801514 - 117.7680587769 - 118.3510894775 - 118.9866104126 - 119.5914154053 - 120.1939849854 - 120.8198699951 - 121.3816833496 - 122.0838317871 - 122.6207962036 - 123.2777633667 - 123.8925857544 - 124.4884109497 - 125.1031494141 - 125.7278747559 - 126.3187026978 - 126.9717864990 - 127.5339736938 - 128.2165985107 - 128.7938537598 - 129.4348907471 - 130.0418701172 - 130.6322937012 - 131.2927093506 - 131.8912353516 - 132.4784545898 - 133.1265563965 - 133.7711486816 - 134.3347930908 - 134.9963226318 - 135.6326904297 - 136.2288970947 - 136.8264770508 - 137.4771728516 - 138.1187133789 - 138.6926116943 - 139.3549194336 - 139.9848785400 - 140.5826873779 - 141.2105255127 - 141.8209075928 - 142.4813537598 - 143.0606842041 - 143.7105865479 - 144.3606567383 - 144.9568634033 - 145.5814819336 - 146.2207183838 - 146.8309478760 - 147.4566802979 - 148.0793304443 - 148.7180938721 - 149.3152313232 - 149.9725799561 - 150.5810241699 - 151.1888122559 - 151.8608398438 - 152.4805755615 - 153.0687866211 - 153.7780914307 - 154.3512115479 - 154.9675292969 - 155.6354370117 - 156.2359313965 - 156.8772125244 - 157.5137786865 - 158.1388397217 - 158.7921752930 - 159.4143524170 - 159.9979095459 - 160.7032775879 - 161.2901916504 - 161.9570312500 - 162.5705108643 - 163.1941223145 - 163.8386840820 - 164.4990997314 - 165.0431976318 - 165.7608795166 - 166.3538513184 - 167.0044860840 - 167.5911865234 - 168.2755126953 - 168.8922882080 - 169.5156097412 - 170.1449584961 - 170.7799835205 - 171.4424285889 - 172.0404815674 - 172.6723785400 - 173.3282012939 - 173.9665985107 - 174.5716552734 - 175.2437438965 - 175.8797912598 - 176.5148468018 - 177.1446533203 - 177.7973632812 - 178.4455261230 - 179.0695343018 - 179.7268981934 - 180.3806915283 - 180.9762725830 - 181.6824035645 - 182.2681427002 - 182.9774169922 - 183.5209045410 - 184.2167816162 - 184.8653564453 - 185.4707946777 - 186.0966949463 - 186.7495269775 - 187.3730468750 - 188.0034484863 - 188.5795593262 - 189.2859344482 - 189.8363037109 - 190.5064697266 - 191.0416717529 - 191.6967163086 - 192.3011779785 - 192.9035186768 - 193.5133972168 - 194.0621948242 - 194.7719726562 - 195.3262939453 - 195.9067535400 - 196.4709777832 - 197.2288970947 - 197.7699737549 - 198.2874755859 - 198.9434051514 - 199.7059783936 - 200.2727355957 - 200.6924438477 - 201.4158325195 - 202.5540771484 - 205.0768280029 - 206.2190856934 - 206.9255676270 - 207.3159637451 - 207.8960418701 - 208.6358489990 - 209.2630310059 - 209.7665863037 - 210.3086547852 - 211.0318756104 - 211.5582122803 - 212.1509552002 - 212.6789550781 - 213.3434295654 - 213.8892974854 - 214.4845733643 - 215.0526275635 - 215.6498565674 - 216.2695922852 - 216.7937927246 - 217.4498901367 - 217.9704742432 - 218.6639556885 - 219.2304687500 - 219.8527984619 - 220.4463653564 - 221.0896453857 - 221.7121276855 - 222.2960052490 - 222.9362640381 - 223.6159515381 - 224.1595001221 - 224.8399200439 - 225.4321594238 - 226.1108703613 - 226.7116546631 - 227.3485412598 - 227.9926910400 - 228.6059570312 - 229.2498474121 - 229.8854064941 - 230.4996032715 - 231.1316223145 - 231.7466735840 - 232.4081115723 - 233.0026550293 - 233.6314697266 - 234.2597808838 - 234.8867034912 - 235.4667053223 - 236.1105957031 - 236.7416229248 - 237.3317871094 - 237.9637298584 - 238.5575561523 - 239.2127685547 - 239.7962036133 - 240.4300079346 - 241.0000610352 - 241.7051086426 - 242.2212371826 - 242.8862762451 - 243.4919738770 - 244.1070709229 - 244.6971740723 - 245.3582916260 - 245.9184570312 - 246.6128082275 - 247.1728515625 - 247.7839050293 - 248.4115600586 - 249.0204772949 - 249.6364288330 - 250.2682495117 - 250.8478240967 - 251.4889526367 - 252.0797271729 - 252.6500396729 - 253.3339843750 - 253.8809051514 - 254.5075378418 - 255.1539001465 - 255.7405700684 - 256.3176879883 - 256.9574279785 - 257.5420837402 - 258.1570434570 - 258.7348327637 - 259.3605957031 - 259.9520263672 - 260.5486755371 - 261.1575012207 - 261.7350463867 - 262.3589782715 - 262.9916381836 - 263.5416259766 - 264.1750488281 - 264.7831115723 - 265.3591003418 - 265.9416503906 - 266.5497436523 - 267.1867065430 - 267.7412109375 - 268.3419494629 - 268.9901428223 - 269.5471496582 - 270.1188964844 - 270.7293701172 - 271.3636779785 - 271.9084167480 - 272.5249633789 - 273.1382751465 - 273.7101440430 - 274.2684326172 - 274.9134521484 - 275.4645996094 - 276.0420837402 - 276.6701354980 - 277.2017822266 - 277.8623046875 - 278.4057006836 - 279.0197448730 - 279.5826721191 - 280.1802368164 - 280.7584228516 - 281.3345947266 - 281.9046325684 - 282.5380249023 - 283.0583496094 - 283.7033996582 - 284.2606811523 - 284.8409118652 - 285.4149780273 - 285.9770202637 - 286.6039733887 - 287.1385803223 - 287.7585449219 - 288.2965393066 - 288.9321594238 - 289.4301757812 - 290.0445861816 - 290.6195983887 - 291.2043457031 - 291.7668151855 - 292.3510742188 - 292.9030151367 - 293.5083618164 - 294.0203552246 - 294.6372375488 - 295.1827087402 - 295.7728271484 - 296.3434448242 - 296.8950500488 - 297.4788513184 - 298.0354309082 - 298.5785217285 - 299.1701965332 - 299.7154235840 - 300.2958068848 - 300.8598937988 - 301.4246826172 - 301.9692993164 - 302.5419921875 - 303.0917358398 - 303.6485595703 - 304.2261047363 - 304.7774047852 - 305.3559570312 - 305.8722229004 - 306.4414367676 - 307.0133666992 - 307.5509033203 - 308.1174011230 - 308.6910400391 - 309.1953430176 - 309.7655944824 - 310.3588867188 - 310.8324890137 - 311.4540100098 - 311.9853210449 - 312.4981079102 - 313.0923156738 - 313.5703430176 - 314.1891174316 - 314.6855773926 - 315.2594909668 - 315.8065490723 - 316.3352661133 - 316.8655700684 - 317.4086608887 - 317.9561462402 - 318.5038757324 - 319.0414123535 - 319.5742492676 - 320.1257629395 - 320.6221313477 - 321.1961669922 - 321.7080383301 - 322.2874145508 - 322.7868957520 - 323.2932434082 - 323.8665771484 - 324.3810729980 - 324.9032897949 - 325.4558715820 - 325.9837951660 - 326.4996643066 - 327.0078125000 - 327.5722961426 - 328.0898437500 - 328.6109313965 - 329.1160888672 - 329.6560058594 - 330.1983032227 - 330.6545715332 - 331.2521972656 - 331.7383422852 - 332.2499389648 - 332.7566833496 - 333.3172607422 - 333.7911071777 - 334.3345642090 - 334.8597717285 - 335.3280639648 - 335.8586120605 - 336.3811035156 - 336.8838806152 - 337.4033813477 - 337.9156494141 - 338.4078369141 - 338.9305725098 - 339.4299926758 - 339.9600219727 - 340.4414978027 - 340.9477844238 - 341.4605102539 - 341.9432067871 - 342.5006103516 - 342.9407653809 - 343.4598693848 - 343.9716796875 - 344.4688110352 - 344.9546203613 - 345.4751892090 - 345.9631652832 - 346.4294433594 - 346.9614562988 - 347.4310913086 - 347.9549865723 - 348.4201965332 - 348.9019775391 - 349.4218750000 - 349.8818054199 - 350.3940124512 - 350.8835144043 - 351.3558349609 - 351.8491821289 - 352.3295898438 - 352.8291931152 - 353.3249511719 - 353.7603759766 - 354.2731018066 - 354.7873840332 - 355.2127990723 - 355.7183837891 - 356.2004699707 - 356.6975708008 - 357.1329650879 - 357.6406860352 - 358.1221923828 - 358.5692749023 - 359.0608520508 - 359.5381774902 - 360.0244140625 - 360.4636840820 - 360.9522705078 - 361.4332580566 - 361.9082031250 - 362.3525695801 - 362.8373718262 - 363.2893066406 - 363.7877197266 - 364.2197875977 - 364.7169189453 - 365.1623840332 - 365.6169128418 - 366.1467590332 - 366.5261230469 - 367.0294799805 - 367.5165100098 - 367.9407958984 - 368.4185180664 - 368.8734741211 - 369.3517150879 - 369.8005065918 - 370.2404479980 - 370.7314147949 - 371.1842346191 - 371.6061706543 - 372.1003723145 - 372.5567626953 - 372.9870605469 - 373.4555969238 - 373.9275817871 - 374.3606262207 - 374.8052062988 - 375.2987670898 - 375.6963806152 - 376.1971435547 - 376.6372070312 - 377.0531311035 - 377.5585632324 - 377.9783020020 - 378.4290771484 - 378.9130859375 - 379.3243713379 - 379.8014221191 - 380.2182617188 - 380.7114868164 - 381.1223754883 - 381.5831909180 - 382.0379943848 - 382.5041503906 - 382.9163818359 - 383.3827209473 - 383.8332519531 - 384.2920227051 - 384.6964416504 - 385.1825866699 - 385.6318969727 - 386.0765686035 - 386.4902038574 - 386.9862060547 - 387.3944702148 - 387.8860473633 - 388.2796936035 - 388.7762756348 - 389.1998901367 - 389.6735229492 - 390.0584106445 - 390.5867919922 - 390.9914855957 - 391.4495849609 - 391.8965759277 - 392.3516235352 - 392.8091125488 - 393.2661132812 - 393.6715698242 - 394.1743774414 - 394.6146240234 - 395.0572509766 - 395.5096740723 - 395.9761657715 - 396.4435119629 - 396.8453369141 - 397.3641967773 - 397.7739868164 - 398.2648315430 - 398.7023010254 - 399.1537475586 - 399.6539001465 - 400.0769958496 - 400.5607604980 - 400.9894409180 - 401.5165710449 - 401.9269104004 - 402.3859863281 - 402.9201965332 - 403.3280944824 - 403.8123474121 - 404.2917785645 - 404.7557983398 - 405.2474975586 - 405.6857604980 - 406.1935119629 - 406.6761779785 - 407.1311340332 - 407.6188964844 - 408.1189575195 - 408.5832214355 - 409.0820007324 - 409.5616455078 - 410.0636596680 - 410.5552368164 - 411.0273437500 - 411.5468444824 - 412.0366210938 - 412.5217590332 - 413.0632019043 - 413.5231018066 - 414.0361938477 - 414.6001892090 - 415.0338439941 - 415.5968017578 - 416.0913391113 - 416.6191406250 - 417.1495971680 - 417.6336364746 - 418.2131347656 - 418.7044677734 - 419.2644958496 - 419.7572631836 - 420.3401489258 - 420.8648376465 - 421.3988647461 - 421.9356994629 - 422.5309448242 - 423.0274658203 - 423.6270751953 - 424.1646728516 - 424.7246704102 - 425.3186340332 - 425.8529052734 - 426.4427185059 - 427.0206909180 - 427.6081237793 - 428.1593627930 - 428.7899780273 - 429.3576660156 - 429.9468383789 - 430.5587158203 - 431.1732788086 - 431.7484741211 - 432.3755187988 - 433.0164184570 - 433.5856323242 - 434.2489318848 - 434.8518066406 - 435.5119323730 - 436.1277465820 - 436.7608337402 - 437.4270324707 - 438.0679931641 - 438.7282409668 - 439.3501281738 - 440.0699768066 - 440.7164001465 - 441.3541870117 - 442.0761108398 - 442.7589721680 - 443.4031982422 - 444.1300354004 - 444.8308105469 - 445.4992675781 - 446.2359313965 - 446.9397888184 - 447.6383361816 - 448.3798522949 - 449.1048583984 - 449.8254699707 - 450.5581970215 - 451.3318176270 - 452.0119628906 - 452.8395385742 - 453.5241699219 - 454.3346252441 - 455.0795898438 - 455.8489990234 - 456.6340942383 - 457.4107666016 - 458.1887512207 - 458.9920043945 - 459.7889404297 - 460.5843811035 - 461.3773803711 - 462.2129211426 - 463.0141906738 - 463.8133239746 - 464.6637573242 - 465.4917297363 - 466.3250427246 - 467.1446533203 - 468.0141601562 - 468.8564147949 - 469.6831665039 - 470.5647277832 - 471.4190673828 - 472.2764587402 - 473.1560058594 - 474.0219421387 - 474.8867492676 - 475.8075561523 - 476.6652526855 - 477.5408935547 - 478.4702758789 - 479.3490905762 - 480.2225036621 - 481.1764221191 - 482.0469360352 - 482.9805297852 - 483.8817749023 - 484.8099975586 - 485.7279968262 - 486.6216125488 - 487.5939941406 - 488.4852905273 - 489.4203796387 - 490.3840637207 - 491.2587280273 - 492.2651062012 - 493.1593627930 - 494.0988464355 - 495.0958557129 - 495.9598693848 - 496.9664916992 - 497.9021606445 - 498.8224487305 - 499.8452758789 - 500.7027587891 - 501.7267150879 - 502.6658935547 - 503.5741882324 - 504.5799255371 - 505.5327148438 - 506.4575500488 - 507.4401855469 - 508.3525390625 - 509.3765258789 - 510.2615966797 - 511.2553405762 - 512.2136230469 - 513.1530761719 - 514.1005249023 - 515.0636596680 - 515.9995117188 - 516.9733276367 - 517.8926391602 - 518.8564453125 - 519.8058471680 - 520.7043457031 - 521.7094116211 - 522.6119384766 - 523.5374755859 - 524.4973144531 - 525.4127807617 - 526.3611450195 - 527.2684326172 - 528.2100219727 - 529.1424560547 - 530.0325927734 - 530.9639892578 - 531.8939819336 - 532.7684936523 - 533.7090454102 - 534.6076660156 - 535.4966430664 - 536.4039916992 - 537.3011474609 - 538.1729736328 - 539.0786743164 - 539.9658203125 - 540.8178100586 - 541.7237548828 - 542.5747070312 - 543.4454345703 - 544.3252563477 - 545.1712036133 - 546.0358276367 - 546.8837890625 - 547.7352294922 - 548.5643310547 - 549.4135131836 - 550.2620849609 - 551.0662841797 - 551.9240722656 - 552.7185668945 - 553.5744018555 - 554.3446655273 - 555.1821289062 - 555.9791870117 - 556.7857055664 - 557.5816040039 - 558.3395996094 - 559.1831665039 - 559.9279785156 - 560.6960449219 - 561.4932250977 - 562.2742919922 - 563.0119018555 - 563.7619018555 - 564.5748901367 - 565.2631225586 - 566.0368041992 - 566.7927856445 - 567.5090332031 - 568.2362060547 - 569.0115966797 - 569.6787109375 - 570.4370117188 - 571.1550292969 - 571.8489379883 - 572.5656738281 - 573.2600097656 - 573.9765625000 - 574.6712036133 - 575.3543090820 - 576.0348510742 - 576.7453002930 - 577.4355468750 - 578.0556640625 - 578.7684936523 - 579.4475097656 - 580.0974731445 - 580.7110595703 - 581.4569091797 - 582.0576782227 - 582.6997680664 - 583.3693237305 - 583.9949340820 - 584.6583251953 - 585.2636108398 - 585.8959350586 - 586.5548095703 - 587.1697387695 - 587.7570800781 - 588.4046020508 - 589.0568237305 - 589.5898437500 - 590.2421264648 - 590.8753662109 - 591.4215087891 - 592.0481567383 - 592.6656494141 - 593.2161865234 - 593.8546752930 - 594.4001464844 - 595.0139770508 - 595.5931396484 - 596.1602783203 - 596.7453002930 - 597.3253173828 - 597.8937377930 - 598.4570922852 - 599.0380249023 - 599.5946655273 - 600.1480102539 - 600.7365722656 - 601.2717285156 - 601.8107910156 - 602.4147949219 - 602.9230957031 - 603.4799804688 - 604.0333862305 - 604.5849609375 - 605.1260986328 - 605.6437377930 - 606.2105712891 - 606.7454833984 - 607.2741088867 - 607.7896118164 - 608.3550415039 - 608.8731689453 - 609.3808593750 - 609.9158325195 - 610.4652099609 - 610.9631958008 - 611.4750976562 - 612.0203857422 - 612.5374145508 - 613.0222167969 - 613.5825195312 - 614.0477905273 - 614.6212768555 - 615.0687255859 - 615.6119995117 - 616.1270751953 - 616.6172485352 - 617.1182861328 - 617.6432495117 - 618.1413574219 - 618.6253051758 - 619.1362915039 - 619.6583251953 - 620.1140747070 - 620.6465454102 - 621.1262207031 - 621.6246948242 - 622.1339111328 - 622.6025390625 - 623.0974731445 - 623.6270751953 - 624.0720214844 - 624.5869750977 - 625.0482177734 - 625.5968017578 - 626.0194091797 - 626.5407714844 - 627.0053710938 - 627.5260620117 - 627.9666137695 - 628.4796142578 - 628.9390258789 - 629.4545288086 - 629.9071044922 - 630.3877563477 - 630.8784179688 - 631.3676147461 - 631.8297729492 - 632.3134155273 - 632.7764892578 - 633.2920532227 - 633.7352294922 - 634.1995849609 - 634.7082519531 - 635.1889648438 - 635.6209716797 - 636.1213989258 - 636.6036987305 - 637.0616455078 - 637.5371704102 - 637.9989624023 - 638.4926147461 - 638.9581909180 - 639.4094238281 - 639.9133911133 - 640.3431396484 - 640.8596191406 - 641.2834472656 - 641.7810058594 - 642.2440185547 - 642.7061767578 - 643.1844482422 - 643.6506347656 - 644.0996704102 - 644.5984497070 - 645.0435180664 - 645.5211181641 - 645.9647216797 - 646.4690551758 - 646.9168090820 - 647.3477783203 - 647.8737792969 - 648.3071899414 - 648.7543945312 - 649.2608642578 - 649.6858520508 - 650.1993408203 - 650.6018066406 - 651.1179809570 - 651.5651855469 - 652.0219116211 - 652.4788818359 - 652.9752197266 - 653.4049072266 - 653.8697509766 - 654.3659667969 - 654.7813720703 - 655.2868041992 - 655.7130737305 - 656.2030029297 - 656.6487426758 - 657.1292114258 - 657.5651855469 - 658.0455322266 - 658.5145263672 - 658.9559936523 - 659.4251708984 - 659.8878784180 - 660.3588256836 - 660.7968139648 - 661.2810058594 - 661.7213745117 - 662.2075195312 - 662.6480102539 - 663.1149902344 - 663.5803222656 - 664.0441894531 - 664.4907226562 - 664.9714965820 - 665.4032592773 - 665.9036865234 - 666.3299560547 - 666.8046875000 - 667.2568969727 - 667.7426757812 - 668.1633300781 - 668.6356811523 - 669.1162109375 - 669.5667724609 - 670.0076293945 - 670.4799804688 - 670.9643554688 - 671.3808593750 - 671.8698730469 - 672.3231201172 - 672.7999877930 - 673.2067871094 - 673.7392578125 - 674.1414184570 - 674.6195678711 - 675.0996704102 - 675.5161132812 - 676.0142822266 - 676.4529418945 - 676.9213256836 - 677.3802490234 - 677.8347167969 - 678.2996826172 - 678.7518920898 - 679.2276611328 - 679.6712036133 - 680.1339111328 - 680.5918579102 - 681.0547485352 - 681.5012207031 - 681.9895019531 - 682.4064941406 - 682.9177246094 - 683.3177490234 - 683.8381347656 - 684.2474975586 - 684.7277832031 - 685.1903686523 - 685.6433715820 - 686.0973510742 - 686.5573120117 - 687.0338745117 - 687.4780883789 - 687.9234008789 - 688.4025268555 - 688.8596801758 - 689.3135986328 - 689.7594604492 - 690.2396240234 - 690.7157592773 - 691.1026000977 - 691.6302490234 - 692.0583496094 - 692.5307006836 - 692.9864501953 - 693.4121093750 - 693.9270629883 - 694.3562622070 - 694.7908935547 - 695.2720336914 - 695.7753295898 - 696.1484985352 - 696.6459350586 - 697.1167602539 - 697.5697631836 - 697.9943847656 - 698.5051269531 - 698.9182739258 - 699.4096069336 - 699.8420410156 - 700.2891845703 - 700.8041992188 - 701.1956176758 - 701.6749267578 - 702.1635131836 - 702.5866699219 - 703.0316162109 - 703.5402832031 - 703.9548950195 - 704.4097290039 - 704.9078369141 - 705.3317871094 - 705.7768554688 - 706.2745361328 - 706.6955566406 - 707.1785888672 - 707.6047973633 - 708.0975952148 - 708.5239868164 - 708.9915771484 - 709.4449462891 - 709.9153442383 - 710.3497924805 - 710.8148193359 - 711.2875366211 - 711.7172241211 - 712.1826171875 - 712.6387329102 - 713.1091308594 - 713.5300903320 - 714.0168457031 - 714.4725341797 - 714.8959960938 - 715.3895263672 - 715.8234863281 - 716.2685546875 - 716.7546386719 - 717.1827392578 - 717.6383056641 - 718.1324462891 - 718.5187377930 - 719.0466308594 - 719.4413452148 - 719.9244384766 - 720.3863525391 - 720.8197021484 - 721.2868041992 - 721.7298583984 - 722.2157592773 - 722.5938110352 - 723.1480712891 - 723.5291137695 - 724.0000610352 - 724.4771728516 - 724.9020996094 - 725.3658447266 - 725.8214721680 - 726.2559204102 - 726.7487792969 - 727.1500244141 - 727.6358642578 - 728.0894775391 - 728.5336303711 - 728.9809570312 - 729.4331665039 - 729.8937988281 - 730.3526611328 - 730.7647705078 - 731.2481079102 - 731.7181396484 - 732.1203002930 - 732.6005249023 - 733.0615234375 - 733.4943847656 - 733.9531250000 - 734.3869018555 - 734.8751220703 - 735.2849731445 - 735.7622680664 - 736.2130737305 - 736.6322021484 - 737.1290893555 - 737.5356445312 - 738.0147094727 - 738.4437255859 - 738.9003295898 - 739.3709716797 - 739.7944335938 - 740.2319335938 - 740.7216186523 - 741.1542968750 - 741.5675048828 - 742.0499267578 - 742.5095825195 - 742.9236450195 - 743.3856811523 - 743.8371582031 - 744.2722167969 - 744.7564697266 - 745.1547241211 - 745.6083984375 - 746.1171264648 - 746.5001220703 - 746.9476928711 - 747.4312744141 - 747.8610229492 - 748.2995605469 - 748.7526245117 - 749.1909790039 - 749.6630859375 - 750.0915527344 - 750.5140991211 - 750.9976806641 - 751.4273681641 - 751.8768920898 - 752.3192138672 - 752.7443847656 - 753.2315673828 - 753.6603393555 - 754.0641479492 - 754.5579223633 - 754.9860229492 - 755.4423828125 - 755.8349609375 - 756.3328857422 - 756.7766723633 - 757.1748657227 - 757.6524658203 - 758.0780639648 - 758.5450439453 - 758.9684448242 - 759.3937377930 - 759.8704223633 - 760.3071289062 - 760.7232666016 - 761.1840820312 - 761.6373901367 - 762.0617675781 - 762.5023803711 - 762.9605712891 - 763.3953857422 - 763.8246459961 - 764.2797241211 - 764.7381591797 - 765.1232299805 - 765.6328125000 - 766.0093383789 - 766.5236206055 - 766.8824462891 - 767.3674316406 - 767.8090209961 - 768.2430419922 - 768.6618041992 - 769.1082763672 - 769.5673217773 - 769.9967041016 - 770.3922729492 - 770.8789672852 - 771.2896118164 - 771.7545166016 - 772.1255493164 - 772.6140136719 - 773.0245361328 - 773.4768066406 - 773.9028930664 - 774.2697753906 - 774.8101806641 - 775.2180175781 - 775.5818481445 - 776.0147705078 - 776.5701293945 - 776.9260253906 - 777.2896118164 - 777.7686157227 - 778.3082275391 - 778.6611328125 - 778.9849853516 - 779.4894409180 - 780.2347412109 - 781.9006958008 - 782.6613769531 - 783.1011352539 - 783.3123779297 - 783.7167358398 - 784.1691284180 - 784.5375976562 - 784.8480224609 - 785.2074584961 - 785.6300048828 - 785.9176025391 - 786.3287963867 - 786.6355590820 - 787.0026245117 - 787.3583984375 - 787.7282104492 - 788.0488891602 - 788.4319458008 - 788.7850952148 - 789.1137695312 - 789.5246582031 - 789.8211669922 - 790.2587280273 - 790.6178588867 - 791.0158081055 - 791.3602905273 - 791.7698974609 - 792.1755371094 - 792.5270385742 - 792.9365234375 - 793.3597412109 - 793.7188110352 - 794.1225585938 - 794.5238037109 - 794.9285888672 - 795.3334350586 - 795.7273559570 - 796.1317138672 - 796.5195922852 - 796.9378051758 - 797.3306274414 - 797.7114868164 - 798.1239013672 - 798.4968261719 - 798.9166259766 - 799.2927246094 - 799.6927490234 - 800.0640869141 - 800.4700927734 - 800.8245849609 - 801.2201538086 - 801.6306152344 - 801.9580688477 - 802.3890380859 - 802.7449951172 - 803.1313476562 - 803.5116577148 - 803.9033813477 - 804.2434692383 - 804.6889648438 - 804.9854125977 - 805.4320678711 - 805.7706298828 - 806.1630249023 - 806.5155639648 - 806.9429931641 - 807.2707519531 - 807.7116699219 - 808.0441284180 - 808.4298706055 - 808.8037109375 - 809.1802978516 - 809.5545654297 - 809.9567260742 - 810.3060913086 - 810.6871337891 - 811.0367431641 - 811.4089965820 - 811.8204345703 - 812.1160278320 - 812.5407714844 - 812.9269409180 - 813.2807617188 - 813.6122436523 - 814.0067138672 - 814.3731079102 - 814.7412719727 - 815.0516357422 - 815.4649658203 - 815.8259277344 - 816.1524658203 - 816.5295410156 - 816.8809814453 - 817.2516479492 - 817.6421508789 - 817.9588623047 - 818.3342285156 - 818.7320556641 - 819.0300903320 - 819.3906250000 - 819.7574462891 - 820.1379394531 - 820.4733886719 - 820.8055419922 - 821.2294921875 - 821.5330810547 - 821.8717651367 - 822.2340698242 - 822.6096191406 - 822.9395141602 - 823.3020019531 - 823.6518554688 - 824.0050048828 - 824.3101196289 - 824.7114257812 - 825.0130615234 - 825.3475952148 - 825.7417602539 - 826.0206298828 - 826.4215698242 - 826.7506713867 - 827.0946044922 - 827.4221191406 - 827.7734375000 - 828.0972900391 - 828.4466552734 - 828.7519531250 - 829.1329345703 - 829.4500122070 - 829.7854003906 - 830.1462402344 - 830.4572143555 - 830.7908935547 - 831.0943603516 - 831.4947509766 - 831.7708740234 - 832.1282958984 - 832.4555664062 - 832.7990722656 - 833.0875244141 - 833.4306640625 - 833.7570800781 - 834.1135864258 - 834.4040527344 - 834.7478637695 - 835.0634155273 - 835.3967895508 - 835.6746826172 - 836.0479125977 - 836.3186645508 - 836.6864624023 - 836.9971923828 - 837.2967529297 - 837.6260375977 - 837.9495239258 - 838.2277832031 - 838.5659790039 - 838.8734741211 - 839.1950073242 - 839.5106811523 - 839.8168945312 - 840.1294555664 - 840.4265747070 - 840.7449340820 - 841.0311889648 - 841.3845214844 - 841.6541748047 - 841.9916992188 - 842.2741699219 - 842.5638427734 - 842.8869628906 - 843.1998901367 - 843.4788208008 - 843.8111572266 - 844.0805664062 - 844.3780517578 - 844.7080078125 - 844.9652099609 - 845.3017578125 - 845.5844726562 - 845.8570556641 - 846.1798706055 - 846.4265136719 - 846.7628784180 - 847.0225219727 - 847.3493652344 - 847.6334838867 - 847.8777465820 - 848.2114868164 - 848.4682006836 - 848.7452392578 - 849.0554809570 - 849.3579711914 - 849.5946655273 - 849.9154663086 - 850.1528320312 - 850.4660644531 - 850.7403564453 - 851.0206909180 - 851.3102416992 - 851.5447387695 - 851.8515625000 - 852.1163330078 - 852.3844604492 - 852.6839599609 - 852.9406738281 - 853.2072753906 - 853.4660034180 - 853.7656250000 - 854.0238647461 - 854.2904663086 - 854.5397949219 - 854.8214111328 - 855.0933227539 - 855.3183593750 - 855.6241455078 - 855.8895263672 - 856.1048583984 - 856.3814697266 - 856.6682739258 - 856.8867797852 - 857.1724243164 - 857.4404907227 - 857.6415405273 - 857.9262084961 - 858.1787719727 - 858.4257812500 - 858.6830444336 - 858.9392089844 - 859.1696166992 - 859.4278564453 - 859.6807861328 - 859.9263916016 - 860.1749267578 - 860.4063720703 - 860.6462402344 - 860.9060668945 - 861.1582641602 - 861.3668823242 - 861.6150512695 - 861.8713989258 - 862.0863037109 - 862.3395385742 - 862.5839843750 - 862.8001708984 - 863.0143432617 - 863.2955932617 - 863.4854125977 - 863.7423095703 - 863.9694824219 - 864.1693115234 - 864.4356079102 - 864.6185302734 - 864.8948974609 - 865.0928955078 - 865.3201293945 - 865.5366210938 - 865.7623291016 - 865.9976196289 - 866.2277832031 - 866.3886718750 - 866.6554565430 - 866.8912963867 - 867.0598144531 - 867.2875366211 - 867.5213012695 - 867.7490234375 - 867.9130249023 - 868.1535644531 - 868.3842773438 - 868.5568847656 - 868.7715454102 - 869.0014038086 - 869.2100219727 - 869.3900756836 - 869.5945434570 - 869.8355102539 - 870.0139160156 - 870.2210693359 - 870.4169921875 - 870.5980224609 - 870.8560791016 - 870.9924926758 - 871.2300415039 - 871.4092407227 - 871.6058349609 - 871.8382568359 - 871.9813842773 - 872.1860961914 - 872.4345092773 - 872.5550537109 - 872.7777099609 - 872.9841918945 - 873.1514892578 - 873.3528442383 - 873.5324096680 - 873.7294311523 - 873.9265747070 - 874.0645751953 - 874.3071289062 - 874.4689941406 - 874.6369628906 - 874.8356323242 - 875.0296630859 - 875.1911621094 - 875.3651123047 - 875.5697631836 - 875.7188110352 - 875.9180297852 - 876.1104736328 - 876.2232055664 - 876.4739379883 - 876.6182861328 - 876.7774047852 - 876.9968872070 - 877.1245117188 - 877.3386840820 - 877.4675903320 - 877.6699829102 - 877.8279418945 - 878.0076293945 - 878.1608276367 - 878.3581542969 - 878.5099487305 - 878.6710205078 - 878.8516235352 - 879.0270385742 - 879.1563110352 - 879.3589477539 - 879.5186767578 - 879.6801147461 - 879.8265380859 - 880.0214233398 - 880.1573486328 - 880.3487548828 - 880.4812011719 - 880.6730346680 - 880.8222656250 - 880.9877929688 - 881.1228637695 - 881.3308715820 - 881.4611206055 - 881.6137695312 - 881.8031616211 - 881.9420776367 - 882.1078491211 - 882.2920532227 - 882.3892822266 - 882.6037597656 - 882.7611694336 - 882.8837280273 - 883.0715942383 - 883.2285766602 - 883.3943481445 - 883.5053710938 - 883.7384033203 - 883.8292236328 - 884.0283813477 - 884.1751708984 - 884.3200683594 - 884.5001831055 - 884.6609497070 - 884.8012084961 - 884.9556274414 - 885.1538085938 - 885.2738037109 - 885.4259643555 - 885.6427001953 - 885.7407836914 - 885.9346923828 - 886.0872192383 - 886.2321166992 - 886.4276123047 - 886.5557250977 - 886.7284545898 - 886.9080200195 - 887.0476074219 - 887.2194824219 - 887.3826904297 - 887.5402221680 - 887.7200317383 - 887.8709716797 - 888.0459594727 - 888.2065429688 - 888.3798828125 - 888.5382690430 - 888.7093505859 - 888.8783569336 - 889.0728149414 - 889.2003784180 - 889.3852539062 - 889.6104125977 - 889.7014160156 - 889.9340209961 - 890.0820312500 - 890.2636108398 - 890.4606933594 - 890.5972290039 - 890.8165893555 - 890.9850463867 - 891.1652221680 - 891.3316650391 - 891.5522460938 - 891.7009887695 - 891.9169921875 - 892.0746459961 - 892.2846069336 - 892.4676513672 - 892.6829833984 - 892.8312377930 - 893.0477905273 - 893.2827148438 - 893.4193725586 - 893.6374511719 - 893.8612670898 - 894.0546875000 - 894.2340698242 - 894.4717407227 - 894.6580810547 - 894.8975219727 - 895.0601806641 - 895.3192749023 - 895.5084838867 - 895.7355346680 - 895.9542846680 - 896.1577148438 - 896.4177246094 - 896.5952758789 - 896.8587036133 - 897.0702514648 - 897.2929687500 - 897.5374755859 - 897.7694702148 - 898.0072021484 - 898.2180175781 - 898.5221557617 - 898.7147216797 - 898.9625854492 - 899.2280883789 - 899.4840698242 - 899.7042846680 - 899.9893188477 - 900.2326660156 - 900.4996948242 - 900.7557983398 - 901.0194091797 - 901.2853393555 - 901.5690917969 - 901.8232421875 - 902.0925292969 - 902.3923339844 - 902.6683349609 - 902.8995361328 - 903.2699584961 - 903.4718017578 - 903.8222045898 - 904.0702514648 - 904.3929443359 - 904.6734008789 - 904.9875488281 - 905.2584228516 - 905.5957641602 - 905.8942871094 - 906.1907958984 - 906.4989624023 - 906.8389892578 - 907.1430053711 - 907.4329223633 - 907.7937011719 - 908.1054077148 - 908.4293212891 - 908.7518920898 - 909.0919189453 - 909.4392700195 - 909.7446289062 - 910.0984497070 - 910.4452514648 - 910.7776489258 - 911.1278076172 - 911.4758911133 - 911.8156738281 - 912.1891479492 - 912.5379638672 - 912.8679199219 - 913.2572021484 - 913.6187133789 - 913.9443969727 - 914.3543701172 - 914.6943969727 - 915.0767822266 - 915.4459228516 - 915.8139648438 - 916.1947021484 - 916.5643310547 - 916.9501342773 - 917.3199462891 - 917.7032470703 - 918.1081542969 - 918.4446411133 - 918.8909301758 - 919.2374267578 - 919.6160888672 - 920.0701293945 - 920.3803100586 - 920.8380126953 - 921.1904907227 - 921.6024780273 - 922.0317993164 - 922.3536376953 - 922.8134765625 - 923.2186279297 - 923.5692138672 - 923.9921264648 - 924.4242553711 - 924.8031005859 - 925.1875610352 - 925.6098632812 - 926.0410156250 - 926.3883666992 - 926.8475952148 - 927.2164916992 - 927.6647338867 - 928.0283203125 - 928.4500122070 - 928.8731689453 - 929.2597656250 - 929.6777954102 - 930.0830688477 - 930.4927368164 - 930.8756103516 - 931.3213500977 - 931.7070922852 - 932.1018066406 - 932.5278930664 - 932.9227294922 - 933.3319702148 - 933.7395019531 - 934.1269531250 - 934.5606689453 - 934.9430541992 - 935.3361816406 - 935.7658081055 - 936.1456909180 - 936.5550537109 - 936.9569091797 - 937.3469238281 - 937.7485351562 - 938.1538085938 - 938.5327148438 - 938.9306030273 - 939.3461914062 - 939.7115478516 - 940.1182250977 - 940.4982299805 - 940.8909912109 - 941.2974853516 - 941.6501464844 - 942.0599975586 - 942.4495239258 - 942.8190917969 - 943.1932373047 - 943.5883789062 - 943.9816894531 - 944.3206787109 - 944.7377319336 - 945.0844116211 - 945.4938964844 - 945.8186645508 - 946.2362060547 - 946.5621337891 - 946.9874267578 - 947.2996826172 - 947.6735839844 - 948.0778808594 - 948.3992919922 - 948.7559204102 - 949.1420898438 - 949.4985351562 - 949.8364868164 - 950.1844482422 - 950.5803222656 - 950.8836059570 - 951.2603149414 - 951.5991210938 - 951.9514160156 - 952.2882080078 - 952.6521606445 - 952.9532470703 - 953.3512573242 - 953.6522216797 - 953.9948730469 - 954.3360595703 - 954.6656494141 - 955.0026855469 - 955.3384399414 - 955.6733398438 - 955.9735107422 - 956.3485107422 - 956.6576538086 - 956.9544067383 - 957.3052368164 - 957.6270751953 - 957.9533691406 - 958.2108764648 - 958.6190185547 - 958.8803100586 - 959.2027587891 - 959.5115966797 - 959.8275146484 - 960.1600952148 - 960.4337158203 - 960.7297363281 - 961.0946655273 - 961.3685302734 - 961.6344604492 - 961.9845581055 - 962.2958374023 - 962.5457153320 - 962.8604736328 - 963.1951293945 - 963.4332885742 - 963.7687988281 - 964.0527954102 - 964.3250732422 - 964.6492309570 - 964.9166870117 - 965.1990966797 - 965.5098876953 - 965.7742919922 - 966.0610351562 - 966.3649291992 - 966.6082153320 - 966.9366455078 - 967.1928710938 - 967.4580078125 - 967.7564697266 - 968.0369262695 - 968.2973022461 - 968.5592041016 - 968.8732910156 - 969.1123657227 - 969.3923950195 - 969.6612548828 - 969.9442138672 - 970.2016601562 - 970.4569091797 - 970.7425537109 - 971.0009155273 - 971.2753295898 - 971.5153198242 - 971.7938232422 - 972.0682373047 - 972.2928466797 - 972.5681762695 - 972.8485717773 - 973.0675659180 - 973.3563232422 - 973.5930786133 - 973.8515625000 - 974.1082153320 - 974.3674316406 - 974.5890502930 - 974.8930664062 - 975.0985717773 - 975.3575439453 - 975.6191406250 - 975.8626708984 - 976.0804443359 - 976.3827514648 - 976.5777587891 - 976.8390502930 - 977.0846557617 - 977.3435058594 - 977.5376586914 - 977.8252563477 - 978.0545654297 - 978.2611083984 - 978.5485229492 - 978.7534179688 - 978.9884033203 - 979.2637329102 - 979.4493408203 - 979.7061767578 - 979.9401245117 - 980.1848144531 - 980.3895874023 - 980.6425781250 - 980.8666381836 - 981.1026000977 - 981.3210449219 - 981.5521850586 - 981.7813720703 - 982.0119628906 - 982.2297363281 - 982.4571533203 - 982.6927490234 - 982.9005126953 - 983.1356811523 - 983.3566894531 - 983.5605468750 - 983.8121948242 - 984.0202636719 - 984.2142333984 - 984.4661865234 - 984.6826782227 - 984.8791503906 - 985.0946655273 - 985.3438720703 - 985.5228271484 - 985.7681884766 - 985.9466552734 - 986.1845703125 - 986.4127197266 - 986.5640869141 - 986.8383789062 - 987.0120849609 - 987.2401123047 - 987.4368896484 - 987.6489868164 - 987.8567504883 - 988.0718383789 - 988.2774047852 - 988.4718627930 - 988.6737060547 - 988.9136352539 - 989.0662231445 - 989.3063964844 - 989.4860229492 - 989.7078247070 - 989.9015502930 - 990.0704345703 - 990.3256225586 - 990.4926147461 - 990.6589965820 - 990.9296875000 - 991.0647583008 - 991.2881469727 - 991.4736328125 - 991.6811523438 - 991.8636474609 - 992.0639038086 - 992.2277832031 - 992.4818725586 - 992.6139526367 - 992.8185424805 - 993.0352783203 - 993.1897583008 - 993.4238891602 - 993.5643310547 - 993.7715454102 - 993.9635009766 - 994.1613769531 - 994.3156127930 - 994.5095825195 - 994.7222290039 - 994.8798217773 - 995.0500488281 - 995.2639770508 - 995.4434204102 - 995.5964355469 - 995.7852172852 - 995.9809570312 - 996.1658325195 - 996.2999877930 - 996.5183715820 - 996.6922607422 - 996.8622436523 - 997.0261840820 - 997.2196044922 - 997.3725585938 - 997.5909423828 - 997.7094726562 - 997.9194946289 - 998.0619506836 - 998.2690429688 - 998.4144287109 - 998.5765380859 - 998.7863159180 - 998.9186401367 - 999.0861206055 - 999.2736816406 - 999.4519042969 - 999.5779418945 - 999.7778320312 - 999.9273071289 - 1000.0978393555 - 1000.2455444336 - 1000.4519042969 - 1000.5641479492 - 1000.7409667969 - 1000.9241943359 - 1001.0534667969 - 1001.2402343750 - 1001.3819580078 - 1001.5407104492 - 1001.7103271484 - 1001.8607177734 - 1002.0177001953 - 1002.1721191406 - 1002.3391113281 - 1002.4642333984 - 1002.6550903320 - 1002.8003540039 - 1002.9378662109 - 1003.1063842773 - 1003.2609252930 - 1003.3728637695 - 1003.5877075195 - 1003.6948242188 - 1003.8590087891 - 1003.9984130859 - 1004.1566772461 - 1004.2965087891 - 1004.4501953125 - 1004.5935058594 - 1004.7462768555 - 1004.8848876953 - 1005.0266723633 - 1005.1642456055 - 1005.3312988281 - 1005.4561767578 - 1005.5986328125 - 1005.7376708984 - 1005.8739013672 - 1006.0527954102 - 1006.1357421875 - 1006.3212890625 - 1006.4424438477 - 1006.5692138672 - 1006.7323608398 - 1006.8222656250 - 1007.0264282227 - 1007.1304321289 - 1007.2332763672 - 1007.3889770508 - 1007.5723266602 - 1007.6184692383 - 1007.8058471680 - 1007.9497070312 - 1008.0549926758 - 1008.1829223633 - 1008.3212890625 - 1008.4494628906 - 1008.5834350586 - 1008.7084350586 - 1008.8372802734 - 1008.9785156250 - 1009.0850830078 - 1009.2061157227 - 1009.3539428711 - 1009.4748535156 - 1009.5709228516 - 1009.7437744141 - 1009.8315429688 - 1009.9401245117 - 1010.0993041992 - 1010.2128906250 - 1010.3056030273 - 1010.4771728516 - 1010.5436401367 - 1010.6949462891 - 1010.7868652344 - 1010.9376831055 - 1011.0335083008 - 1011.1614990234 - 1011.2739868164 - 1011.3942260742 - 1011.4986572266 - 1011.6047363281 - 1011.7539672852 - 1011.8451538086 - 1011.9573364258 - 1012.0816650391 - 1012.2084960938 - 1012.2662963867 - 1012.4296264648 - 1012.5072631836 - 1012.6229858398 - 1012.7517089844 - 1012.8508300781 - 1012.9396972656 - 1013.0904541016 - 1013.1597900391 - 1013.2669067383 - 1013.3898315430 - 1013.4736938477 - 1013.6193847656 - 1013.6842651367 - 1013.7907104492 - 1013.9336547852 - 1013.9794921875 - 1014.1089477539 - 1014.2029418945 - 1014.3401489258 - 1014.3729248047 - 1014.5419311523 - 1014.6037597656 - 1014.6873168945 - 1014.8223266602 - 1014.8941650391 - 1015.0083618164 - 1015.0999145508 - 1015.1920166016 - 1015.3138427734 - 1015.3818359375 - 1015.4627075195 - 1015.5987548828 - 1015.6553955078 - 1015.7518310547 - 1015.8719482422 - 1015.9357299805 - 1016.0584716797 - 1016.1190795898 - 1016.2305297852 - 1016.3250122070 - 1016.3933715820 - 1016.4863281250 - 1016.5748901367 - 1016.6585083008 - 1016.7822875977 - 1016.8134155273 - 1016.9393920898 - 1017.0096435547 - 1017.0977783203 - 1017.1762084961 - 1017.2371215820 - 1017.3901367188 - 1017.4189453125 - 1017.5114746094 - 1017.6063232422 - 1017.6742553711 - 1017.7639160156 - 1017.8331298828 - 1017.8961791992 - 1018.0267333984 - 1018.0966796875 - 1018.1201782227 - 1018.2555541992 - 1018.3392944336 - 1018.3931884766 - 1018.4619750977 - 1018.5631103516 - 1018.6388549805 - 1018.7284545898 - 1018.7348022461 - 1018.8596191406 - 1018.9498901367 - 1018.9786376953 - 1019.0659179688 - 1019.1579589844 - 1019.2326660156 - 1019.2805786133 - 1019.3562011719 - 1019.4199829102 - 1019.5091552734 - 1019.5605468750 - 1019.6412353516 - 1019.6956176758 - 1019.7841186523 - 1019.8239135742 - 1019.9054565430 - 1019.9505004883 - 1020.0716552734 - 1020.0849609375 - 1020.1755981445 - 1020.2341308594 - 1020.3137817383 - 1020.3807373047 - 1020.4108276367 - 1020.5092773438 - 1020.5899658203 - 1020.5924072266 - 1020.7139892578 - 1020.7481079102 - 1020.8194580078 - 1020.8870239258 - 1020.9235839844 - 1021.0169067383 - 1021.0651855469 - 1021.1140747070 - 1021.1660766602 - 1021.2424316406 - 1021.2742919922 - 1021.3367309570 - 1021.4046630859 - 1021.4400024414 - 1021.4906005859 - 1021.5485839844 - 1021.6154785156 - 1021.6249389648 - 1021.7197875977 - 1021.7261352539 - 1021.8249511719 - 1021.8453979492 - 1021.9119873047 - 1021.9574584961 - 1022.0339355469 - 1022.0661621094 - 1022.1148681641 - 1022.2130737305 - 1022.2573242188 - 1022.3030395508 - 1022.3621215820 - 1022.4572753906 - 1022.5175781250 - 1022.5656127930 - 1022.6782836914 - 1022.7191162109 - 1022.8273925781 - 1022.8871459961 - 1022.9152832031 - 1023.0550537109 - 1023.1417846680 - 1023.1332397461 - 1023.2487182617 - 1023.3640747070 - 1023.3823852539 - 1023.4367675781 - 1023.5336303711 - 1023.6191406250 - 1023.6070556641 - 1023.6961669922 - 1023.7658081055 - 1023.7990112305 - 1023.8947143555 - 1023.9479370117 - 1023.9327392578 - 1023.8746948242 - 1023.9299316406 - 1023.9013671875 - 1023.8532104492 - 1023.8375854492 - 1023.8604736328 - 1023.8013305664 - 1023.7271728516 - 1023.7803955078 - 1023.7348022461 - 1023.6469726562 - 1023.6603393555 - 1023.6464233398 - 1023.5827636719 - 1023.5872192383 - 1023.5227050781 - 1023.5150756836 - 1023.5050048828 - 1023.4504394531 - 1023.4446411133 - 1023.4423828125 - 1023.4457397461 - 1023.3935546875 - 1023.3941650391 - 1023.4092407227 - 1023.3778076172 - 1023.3811645508 - 1023.3668823242 - 1023.3874511719 - 1023.3415527344 - 1023.3801269531 - 1023.3377075195 - 1023.3734130859 - 1023.3553466797 - 1023.3468627930 - 1023.3432617188 - 1023.3569946289 - 1023.3382568359 - 1023.3228149414 - 1023.3390502930 - 1023.3102416992 - 1023.3086547852 - 1023.3053588867 - 1023.3052978516 - 1023.2604980469 - 1023.2719116211 - 1023.2487792969 - 1023.2270507812 - 1023.2410278320 - 1023.1658325195 - 1023.2111206055 - 1023.1762695312 - 1023.1285400391 - 1023.1427001953 - 1023.1247558594 - 1023.0894165039 - 1023.0846557617 - 1023.0345458984 - 1023.0712890625 - 1022.9975585938 - 1022.9995117188 - 1022.9635620117 - 1022.9742431641 - 1022.9291381836 - 1022.9279174805 - 1022.8906250000 - 1022.8860473633 - 1022.8456420898 - 1022.8284912109 - 1022.8007812500 - 1022.8009643555 - 1022.7709350586 - 1022.7285766602 - 1022.6871948242 - 1022.7017211914 - 1022.6644287109 - 1022.5824584961 - 1022.6235961914 - 1022.5840454102 - 1022.5535888672 - 1022.4974365234 - 1022.4777221680 - 1022.4687500000 - 1022.4325561523 - 1022.3428344727 - 1022.3668823242 - 1022.3423461914 - 1022.2589111328 - 1022.2427368164 - 1022.2177734375 - 1022.1764526367 - 1022.1575317383 - 1022.1051635742 - 1022.0620117188 - 1022.0791625977 - 1021.9718627930 - 1021.9556884766 - 1021.9240722656 - 1021.8852539062 - 1021.8580322266 - 1021.7792358398 - 1021.7974243164 - 1021.7175292969 - 1021.6781616211 - 1021.6370239258 - 1021.5931396484 - 1021.5667114258 - 1021.5202026367 - 1021.4566040039 - 1021.4400634766 - 1021.3612670898 - 1021.3471069336 - 1021.2699584961 - 1021.2184448242 - 1021.2098999023 - 1021.1163330078 - 1021.0861206055 - 1021.0601806641 - 1020.9863281250 - 1020.9381103516 - 1020.8928833008 - 1020.8238525391 - 1020.7967529297 - 1020.7066040039 - 1020.6721801758 - 1020.6502685547 - 1020.5324096680 - 1020.5422363281 - 1020.4505004883 - 1020.4011840820 - 1020.3161010742 - 1020.3185424805 - 1020.2178955078 - 1020.1596069336 - 1020.1360473633 - 1020.0402221680 - 1019.9953002930 - 1019.9207153320 - 1019.8584594727 - 1019.8342895508 - 1019.7281494141 - 1019.6844482422 - 1019.6283569336 - 1019.5472412109 - 1019.4718627930 - 1019.4417724609 - 1019.3222045898 - 1019.3098144531 - 1019.2277221680 - 1019.1464233398 - 1019.0802612305 - 1019.0322265625 - 1018.9263305664 - 1018.8663940430 - 1018.8046264648 - 1018.7296752930 - 1018.6613159180 - 1018.5779418945 - 1018.5247192383 - 1018.4193725586 - 1018.3697509766 - 1018.2628173828 - 1018.2408447266 - 1018.1132812500 - 1018.0656127930 - 1017.9928588867 - 1017.8787841797 - 1017.8150634766 - 1017.7689819336 - 1017.6414794922 - 1017.5900878906 - 1017.5089721680 - 1017.4060058594 - 1017.3315429688 - 1017.2620239258 - 1017.1698608398 - 1017.0831298828 - 1016.9985961914 - 1016.9111938477 - 1016.8212890625 - 1016.7314453125 - 1016.6430053711 - 1016.5824584961 - 1016.4820556641 - 1016.3372802734 - 1016.3319702148 - 1016.1920166016 - 1016.0799560547 - 1016.0197753906 - 1015.9576416016 - 1015.7968139648 - 1015.7498168945 - 1015.6264038086 - 1015.5449829102 - 1015.4640502930 - 1015.3251342773 - 1015.2810668945 - 1015.1430053711 - 1015.0520019531 - 1014.9536132812 - 1014.8527221680 - 1014.7713623047 - 1014.6464233398 - 1014.5498046875 - 1014.4486083984 - 1014.3547363281 - 1014.2430419922 - 1014.1411132812 - 1014.0277099609 - 1013.9304809570 - 1013.8155517578 - 1013.7129516602 - 1013.5958862305 - 1013.5269775391 - 1013.3540039062 - 1013.2817993164 - 1013.1721801758 - 1013.0418701172 - 1012.9472045898 - 1012.8435058594 - 1012.6910400391 - 1012.6079101562 - 1012.4826049805 - 1012.3680419922 - 1012.2525634766 - 1012.1431274414 - 1012.0134887695 - 1011.8964233398 - 1011.7941894531 - 1011.6500244141 - 1011.5591430664 - 1011.4168090820 - 1011.2813110352 - 1011.2070922852 - 1011.0458984375 - 1010.9336547852 - 1010.8043823242 - 1010.6959228516 - 1010.5364379883 - 1010.4485473633 - 1010.3124389648 - 1010.1643676758 - 1010.0347290039 - 1009.9445800781 - 1009.7732543945 - 1009.6529541016 - 1009.5449218750 - 1009.3774414062 - 1009.2760009766 - 1009.1035766602 - 1009.0252685547 - 1008.8471679688 - 1008.7321777344 - 1008.5791015625 - 1008.4535522461 - 1008.3237915039 - 1008.1897583008 - 1008.0073242188 - 1007.9137573242 - 1007.7704467773 - 1007.6097412109 - 1007.4618530273 - 1007.3475341797 - 1007.2081909180 - 1007.0307006836 - 1006.9010620117 - 1006.7820434570 - 1006.6062011719 - 1006.4520874023 - 1006.3361206055 - 1006.1776733398 - 1006.0216064453 - 1005.8544921875 - 1005.7525024414 - 1005.5577392578 - 1005.4387207031 - 1005.2619018555 - 1005.0944824219 - 1005.0019531250 - 1004.7842407227 - 1004.6602783203 - 1004.4966430664 - 1004.3509521484 - 1004.1863403320 - 1004.0321655273 - 1003.8502807617 - 1003.7539672852 - 1003.5190429688 - 1003.3910522461 - 1003.2606811523 - 1003.0457153320 - 1002.9132080078 - 1002.7554321289 - 1002.5738525391 - 1002.4310302734 - 1002.2260131836 - 1002.1132202148 - 1001.9113159180 - 1001.7449951172 - 1001.5886840820 - 1001.4217529297 - 1001.2424926758 - 1001.0714111328 - 1000.8997192383 - 1000.7357177734 - 1000.5487670898 - 1000.4110717773 - 1000.1722412109 - 1000.0609130859 - 999.8677978516 - 999.6674804688 - 999.5282592773 - 999.3175659180 - 999.1772460938 - 998.9631958008 - 998.7878417969 - 998.6252441406 - 998.4467773438 - 998.2329711914 - 998.0770263672 - 997.9027709961 - 997.6901855469 - 997.5235595703 - 997.3403320312 - 997.1393432617 - 996.9711914062 - 996.7727050781 - 996.5822143555 - 996.3991088867 - 996.2095947266 - 996.0144042969 - 995.8236083984 - 995.6381835938 - 995.4431152344 - 995.2542114258 - 995.0408325195 - 994.8681030273 - 994.6666259766 - 994.4666137695 - 994.2485351562 - 994.0991210938 - 993.8624267578 - 993.6653442383 - 993.4978027344 - 993.2454223633 - 993.0797119141 - 992.8870239258 - 992.6369628906 - 992.4795532227 - 992.2600097656 - 992.0532836914 - 991.8261718750 - 991.6732177734 - 991.4063720703 - 991.2286987305 - 991.0217895508 - 990.7980957031 - 990.5808105469 - 990.4105834961 - 990.1472167969 - 989.9611206055 - 989.7457275391 - 989.5238037109 - 989.3040161133 - 989.1104736328 - 988.8569946289 - 988.6776123047 - 988.4375610352 - 988.2014770508 - 988.0171508789 - 987.7799072266 - 987.5437011719 - 987.3435668945 - 987.1077270508 - 986.8900756836 - 986.6464843750 - 986.4299926758 - 986.2138061523 - 985.9714355469 - 985.7443237305 - 985.5054321289 - 985.3054199219 - 985.0351562500 - 984.8143920898 - 984.5944824219 - 984.3586425781 - 984.0992431641 - 983.8770751953 - 983.6669921875 - 983.3761596680 - 983.1789550781 - 982.9167480469 - 982.6744384766 - 982.4537963867 - 982.1840820312 - 981.9494628906 - 981.7229614258 - 981.4459838867 - 981.2150268555 - 980.9791259766 - 980.6882324219 - 980.4935913086 - 980.2047119141 - 979.9393920898 - 979.7305297852 - 979.4691772461 - 979.1651000977 - 978.9450073242 - 978.7202148438 - 978.4009399414 - 978.1538696289 - 977.9276733398 - 977.6442871094 - 977.3749389648 - 977.1181030273 - 976.8432006836 - 976.6302490234 - 976.2741088867 - 976.0668334961 - 975.7891235352 - 975.5187988281 - 975.2214965820 - 974.9722290039 - 974.7176513672 - 974.3939208984 - 974.1477050781 - 973.8643798828 - 973.5810546875 - 973.2994995117 - 973.0230712891 - 972.7365722656 - 972.4460449219 - 972.2040405273 - 971.8605957031 - 971.6120605469 - 971.3078002930 - 971.0271606445 - 970.7289428711 - 970.4502563477 - 970.1318359375 - 969.8834838867 - 969.5490112305 - 969.2594604492 - 968.9791870117 - 968.6837158203 - 968.3579101562 - 968.0608520508 - 967.7991943359 - 967.4595336914 - 967.1425781250 - 966.8973388672 - 966.5298461914 - 966.2702636719 - 965.9149169922 - 965.6530761719 - 965.3085937500 - 965.0256958008 - 964.6735229492 - 964.4003295898 - 964.0726318359 - 963.7434692383 - 963.4345092773 - 963.1334838867 - 962.8102416992 - 962.4667358398 - 962.1832885742 - 961.8453369141 - 961.5213012695 - 961.2085571289 - 960.8735961914 - 960.5772094727 - 960.2301025391 - 959.9045410156 - 959.5958251953 - 959.2609252930 - 958.9316406250 - 958.6126098633 - 958.2819213867 - 957.9480590820 - 957.6387939453 - 957.2816162109 - 956.9642333984 - 956.6536254883 - 956.2921752930 - 955.9824218750 - 955.6463623047 - 955.3137817383 - 954.9928588867 - 954.6433105469 - 954.3235473633 - 954.0108642578 - 953.6450805664 - 953.3348999023 - 953.0019531250 - 952.6751098633 - 952.3291015625 - 952.0242919922 - 951.6750488281 - 951.3304443359 - 951.0472412109 - 950.6705932617 - 950.3833007812 - 950.0015869141 - 949.7289428711 - 949.3810424805 - 949.0295410156 - 948.7280883789 - 948.4256591797 - 948.0684814453 - 947.7277221680 - 947.4541015625 - 947.1243896484 - 946.7457885742 - 946.4973754883 - 946.1516113281 - 945.8122558594 - 945.5401611328 - 945.1613159180 - 944.9268188477 - 944.5508422852 - 944.2506103516 - 943.9796142578 - 943.6132812500 - 943.3512573242 - 943.0249633789 - 942.7188110352 - 942.4222412109 - 942.1179199219 - 941.8217163086 - 941.5166015625 - 941.2265625000 - 940.9317016602 - 940.6262817383 - 940.3597412109 - 940.0269775391 - 939.7764282227 - 939.4873046875 - 939.1740112305 - 938.9192504883 - 938.6414794922 - 938.3444824219 - 938.0773925781 - 937.8015747070 - 937.5250854492 - 937.2649536133 - 936.9888305664 - 936.7085571289 - 936.4749145508 - 936.1970825195 - 935.9301757812 - 935.6766967773 - 935.4230346680 - 935.1821899414 - 934.8906860352 - 934.6702880859 - 934.4348754883 - 934.1638183594 - 933.9227294922 - 933.6943359375 - 933.4642944336 - 933.1928710938 - 932.9907226562 - 932.7410888672 - 932.5292968750 - 932.2692260742 - 932.0883178711 - 931.8031005859 - 931.6651000977 - 931.3602294922 - 931.1896362305 - 930.9813232422 - 930.7419433594 - 930.5344238281 - 930.3442993164 - 930.1235351562 - 929.9168090820 - 929.7139892578 - 929.5231323242 - 929.3117065430 - 929.1303710938 - 928.9064941406 - 928.7434082031 - 928.5462646484 - 928.3429565430 - 928.1492309570 - 928.0166015625 - 927.7710571289 - 927.6156616211 - 927.4354858398 - 927.2593994141 - 927.0722045898 - 926.9053344727 - 926.7484130859 - 926.5404052734 - 926.4190673828 - 926.2149047852 - 926.0609741211 - 925.8994140625 - 925.7268676758 - 925.5893554688 - 925.3804321289 - 925.2764282227 - 925.0859985352 - 924.9507446289 - 924.7668457031 - 924.6372680664 - 924.4967041016 - 924.3217773438 - 924.1546020508 - 924.0695800781 - 923.8847045898 - 923.7158203125 - 923.6183471680 - 923.4553833008 - 923.3153076172 - 923.1577758789 - 923.0501098633 - 922.8784790039 - 922.7791137695 - 922.6082153320 - 922.4856567383 - 922.3563232422 - 922.2313842773 - 922.0615844727 - 921.9706420898 - 921.8193969727 - 921.6848144531 - 921.5827636719 - 921.3962402344 - 921.3489990234 - 921.1710815430 - 921.0307617188 - 920.9470825195 - 920.7997436523 - 920.6736450195 - 920.5456542969 - 920.4350585938 - 920.3027954102 - 920.1865844727 - 920.0559692383 - 919.9487915039 - 919.8123168945 - 919.6960449219 - 919.5780029297 - 919.4491577148 - 919.3513793945 - 919.2133789062 - 919.0858154297 - 918.9988403320 - 918.8444824219 - 918.7417602539 - 918.6329956055 - 918.4795532227 - 918.4213867188 - 918.2489624023 - 918.1380004883 - 918.0564575195 - 917.9034423828 - 917.7863159180 - 917.6913452148 - 917.5664062500 - 917.4302368164 - 917.3263549805 - 917.2188110352 - 917.0601196289 - 917.0103149414 - 916.8184814453 - 916.7455444336 - 916.6206054688 - 916.5053710938 - 916.3544921875 - 916.2739257812 - 916.1549072266 - 915.9811401367 - 915.9236450195 - 915.7776489258 - 915.6517333984 - 915.5546264648 - 915.4016113281 - 915.2902221680 - 915.1968383789 - 915.0332641602 - 914.9319458008 - 914.8081665039 - 914.6959838867 - 914.5463256836 - 914.4487915039 - 914.2990112305 - 914.2000732422 - 914.0468750000 - 913.9367675781 - 913.8137817383 - 913.6931762695 - 913.5307006836 - 913.4381713867 - 913.3018798828 - 913.1589355469 - 913.0388793945 - 912.9228515625 - 912.7634887695 - 912.6508789062 - 912.5101318359 - 912.3870849609 - 912.2253417969 - 912.1345214844 - 911.9580688477 - 911.8683471680 - 911.6873168945 - 911.5673828125 - 911.4603271484 - 911.2471313477 - 911.1741333008 - 911.0172729492 - 910.8596801758 - 910.7449340820 - 910.5805664062 - 910.4442749023 - 910.3200683594 - 910.1647949219 - 910.0042724609 - 909.8724975586 - 909.7506103516 - 909.5452270508 - 909.4454345703 - 909.2846069336 - 909.1285400391 - 908.9855346680 - 908.8197021484 - 908.6944580078 - 908.5237426758 - 908.3381958008 - 908.2573852539 - 908.0445556641 - 907.8819580078 - 907.7710571289 - 907.5809936523 - 907.4212036133 - 907.2790527344 - 907.0795288086 - 906.9826049805 - 906.7604370117 - 906.6170654297 - 906.4618530273 - 906.2891235352 - 906.1516113281 - 905.9461669922 - 905.7816162109 - 905.6378173828 - 905.4684448242 - 905.2746582031 - 905.0994262695 - 904.9649658203 - 904.7709350586 - 904.5693969727 - 904.4426879883 - 904.2539062500 - 904.0564575195 - 903.8687133789 - 903.7359619141 - 903.5400390625 - 903.3105468750 - 903.1872558594 - 902.9957275391 - 902.7988891602 - 902.6101074219 - 902.4330444336 - 902.2415771484 - 902.0842895508 - 901.8444824219 - 901.6998291016 - 901.4717407227 - 901.3112792969 - 901.1192016602 - 900.9017333984 - 900.7511596680 - 900.5081787109 - 900.3305664062 - 900.1531982422 - 899.9486083984 - 899.7304077148 - 899.5557861328 - 899.3372192383 - 899.1285400391 - 898.9537353516 - 898.7455444336 - 898.5200805664 - 898.3198242188 - 898.1279296875 - 897.9144897461 - 897.7102050781 - 897.4940795898 - 897.2750854492 - 897.0823974609 - 896.8643798828 - 896.6461791992 - 896.4367675781 - 896.2237548828 - 895.9768676758 - 895.8137817383 - 895.5840454102 - 895.3376464844 - 895.1560668945 - 894.9102783203 - 894.6693725586 - 894.4956665039 - 894.2642211914 - 894.0024414062 - 893.8116455078 - 893.5800170898 - 893.3373413086 - 893.1258544922 - 892.8974609375 - 892.6776733398 - 892.4187011719 - 892.1971435547 - 891.9680786133 - 891.7514648438 - 891.4907836914 - 891.2609863281 - 891.0338134766 - 890.7675170898 - 890.5724487305 - 890.3163452148 - 890.0800170898 - 889.8422851562 - 889.5691528320 - 889.3696899414 - 889.0856933594 - 888.8912963867 - 888.6257934570 - 888.3527832031 - 888.1161499023 - 887.9013671875 - 887.6006469727 - 887.3975219727 - 887.1532592773 - 886.8654174805 - 886.6415405273 - 886.3485107422 - 886.1367187500 - 885.8561401367 - 885.6202392578 - 885.3752441406 - 885.0822753906 - 884.8586425781 - 884.5694580078 - 884.3132934570 - 884.0800170898 - 883.7863159180 - 883.5495605469 - 883.2727050781 - 882.9887084961 - 882.7409057617 - 882.4948120117 - 882.1956176758 - 881.9675903320 - 881.6513061523 - 881.4058837891 - 881.1242065430 - 880.8683471680 - 880.5925292969 - 880.3262329102 - 880.0496826172 - 879.7683105469 - 879.4981079102 - 879.1999511719 - 878.9614868164 - 878.6752929688 - 878.3858642578 - 878.1254272461 - 877.8546752930 - 877.5241699219 - 877.2940673828 - 876.9608154297 - 876.7189941406 - 876.4279174805 - 876.1496582031 - 875.8444213867 - 875.5948486328 - 875.2759399414 - 874.9888305664 - 874.6880493164 - 874.4331054688 - 874.1347656250 - 873.8420410156 - 873.5261840820 - 873.2888793945 - 872.9273071289 - 872.6637573242 - 872.3682250977 - 872.0986938477 - 871.7716064453 - 871.4829101562 - 871.1994018555 - 870.8595581055 - 870.5946655273 - 870.2826538086 - 869.9984130859 - 869.6868286133 - 869.3968505859 - 869.0953979492 - 868.8012695312 - 868.4429931641 - 868.2025146484 - 867.8478393555 - 867.5519409180 - 867.2886962891 - 866.9281616211 - 866.6622924805 - 866.3451538086 - 866.0369873047 - 865.7152099609 - 865.4207153320 - 865.0870971680 - 864.7651367188 - 864.4639892578 - 864.1996459961 - 863.8146972656 - 863.5244750977 - 863.2247314453 - 862.8859252930 - 862.5587158203 - 862.2351684570 - 861.9790039062 - 861.6173706055 - 861.2839355469 - 861.0042114258 - 860.6540527344 - 860.3243408203 - 860.0099487305 - 859.6716308594 - 859.3869628906 - 859.0640869141 - 858.6879272461 - 858.4187622070 - 858.0906372070 - 857.7609863281 - 857.4071044922 - 857.1146240234 - 856.7989501953 - 856.4548339844 - 856.0665283203 - 855.8092041016 - 855.4423828125 - 855.1047363281 - 854.7941284180 - 854.4553222656 - 854.1434326172 - 853.7802734375 - 853.4458007812 - 853.1078491211 - 852.7754516602 - 852.4277954102 - 852.1320190430 - 851.7339477539 - 851.4436645508 - 851.0563964844 - 850.7425537109 - 850.3878173828 - 850.0908813477 - 849.6834106445 - 849.4218750000 - 849.0204467773 - 848.7177124023 - 848.3660278320 - 848.0209350586 - 847.6777343750 - 847.3607177734 - 846.9664306641 - 846.6798095703 - 846.3075561523 - 845.9529418945 - 845.6357421875 - 845.2677001953 - 844.9376831055 - 844.5767822266 - 844.2376098633 - 843.8587646484 - 843.5256958008 - 843.1514892578 - 842.8094482422 - 842.4573364258 - 842.0778808594 - 841.7280883789 - 841.3640747070 - 841.0107421875 - 840.6409301758 - 840.2804565430 - 839.9133911133 - 839.5548095703 - 839.2280883789 - 838.8478393555 - 838.4777832031 - 838.1642456055 - 837.7962646484 - 837.4263916016 - 837.1214599609 - 836.7614746094 - 836.4377441406 - 836.0437622070 - 835.7825317383 - 835.4127807617 - 835.1170043945 - 834.8059082031 - 834.4594116211 - 834.1774902344 - 833.8452148438 - 833.5224609375 - 833.2017211914 - 832.9300537109 - 832.5528564453 - 832.3021850586 - 831.9277954102 - 831.6004028320 - 831.3220214844 - 830.9953613281 - 830.5902709961 - 830.2185058594 - 830.0349121094 - 829.6395874023 - 828.9465332031 - 827.4311523438 - 826.7542724609 - 826.2903442383 - 825.9875488281 - 825.6702270508 - 825.1728515625 - 824.7289428711 - 824.3938598633 - 824.0704345703 - 823.5550537109 - 823.1504516602 - 822.8233032227 - 822.4448242188 - 821.9399414062 - 821.6051635742 - 821.2132568359 - 820.7919921875 - 820.4165039062 - 819.9620361328 - 819.6213989258 - 819.1944580078 - 818.8122558594 - 818.3656616211 - 818.0029907227 - 817.6102294922 - 817.1838989258 - 816.7750244141 - 816.3930664062 - 815.9920654297 - 815.5883178711 - 815.1422119141 - 814.8157958984 - 814.3396606445 - 813.9990234375 - 813.5273437500 - 813.1785278320 - 812.7568359375 - 812.3389282227 - 811.9454345703 - 811.5485229492 - 811.1265258789 - 810.7214355469 - 810.3345336914 - 809.9161987305 - 809.4940795898 - 809.1123657227 - 808.7122802734 - 808.2705688477 - 807.8824462891 - 807.4918212891 - 807.0618896484 - 806.6735839844 - 806.2278442383 - 805.8681030273 - 805.4578247070 - 804.9963378906 - 804.6381835938 - 804.2180175781 - 803.8223266602 - 803.3693237305 - 802.9940795898 - 802.6052856445 - 802.1509399414 - 801.7615966797 - 801.3526611328 - 800.9420166016 - 800.5431518555 - 800.1002197266 - 799.7089843750 - 799.3161621094 - 798.8792114258 - 798.4757080078 - 798.0575561523 - 797.6559448242 - 797.2589111328 - 796.8115234375 - 796.3969726562 - 796.0477294922 - 795.5776977539 - 795.1531372070 - 794.7926635742 - 794.3445434570 - 793.9428710938 - 793.5230712891 - 793.0977783203 - 792.7174682617 - 792.2925415039 - 791.8408813477 - 791.4648437500 - 791.0657348633 - 790.6081542969 - 790.2055053711 - 789.8148803711 - 789.3793945312 - 788.9589843750 - 788.5601196289 - 788.1166992188 - 787.7460327148 - 787.2790527344 - 786.8935546875 - 786.4770507812 - 786.0354003906 - 785.6572265625 - 785.2010498047 - 784.8057250977 - 784.3765869141 - 783.9758911133 - 783.5491333008 - 783.1046142578 - 782.7332153320 - 782.2973632812 - 781.8477783203 - 781.4683227539 - 781.0391235352 - 780.6157226562 - 780.1931762695 - 779.7775878906 - 779.3699951172 - 778.9441528320 - 778.4957275391 - 778.1256103516 - 777.6656494141 - 777.2625732422 - 776.8403320312 - 776.4080200195 - 776.0158081055 - 775.5687255859 - 775.1333007812 - 774.7819213867 - 774.2613525391 - 773.9160156250 - 773.4609375000 - 773.0496826172 - 772.6123657227 - 772.2156982422 - 771.7816772461 - 771.3325195312 - 770.9682617188 - 770.4744262695 - 770.1154785156 - 769.6546630859 - 769.2305297852 - 768.8357543945 - 768.3787231445 - 767.9660644531 - 767.5626220703 - 767.1015014648 - 766.7053833008 - 766.2844848633 - 765.8253784180 - 765.4385986328 - 764.9986572266 - 764.5720825195 - 764.1383666992 - 763.7395019531 - 763.2949829102 - 762.8623657227 - 762.4575805664 - 762.0182495117 - 761.5953979492 - 761.1582031250 - 760.7618408203 - 760.2985839844 - 759.9027709961 - 759.4485473633 - 759.0605468750 - 758.5905151367 - 758.1774902344 - 757.7810058594 - 757.3123168945 - 756.8887329102 - 756.5039062500 - 756.0241088867 - 755.6108398438 - 755.2141113281 - 754.7551269531 - 754.3080444336 - 753.9416503906 - 753.4598999023 - 753.0407104492 - 752.6353149414 - 752.1757812500 - 751.7875366211 - 751.3096313477 - 750.9108886719 - 750.4891967773 - 750.0469970703 - 749.5752563477 - 749.2329101562 - 748.7565917969 - 748.3034667969 - 747.8988037109 - 747.4987182617 - 747.0092163086 - 746.6140747070 - 746.1829833984 - 745.7413330078 - 745.3403320312 - 744.8417968750 - 744.4826660156 - 744.0314331055 - 743.5811767578 - 743.1619873047 - 742.7352905273 - 742.3074951172 - 741.8551025391 - 741.4363403320 - 741.0181884766 - 740.5712280273 - 740.1375732422 - 739.7108154297 - 739.2832641602 - 738.8488769531 - 738.3962402344 - 738.0100097656 - 737.5203857422 - 737.1464843750 - 736.6591186523 - 736.2691650391 - 735.8096313477 - 735.3863525391 - 734.9521484375 - 734.5211181641 - 734.0803833008 - 733.6650390625 - 733.2152709961 - 732.7883911133 - 732.3500976562 - 731.9216308594 - 731.4870605469 - 731.0450439453 - 730.6319580078 - 730.1598510742 - 729.7683105469 - 729.3129882812 - 728.8601074219 - 728.4835205078 - 727.9780883789 - 727.5930175781 - 727.1419067383 - 726.7145996094 - 726.2489013672 - 725.8579101562 - 725.3992919922 - 724.9505004883 - 724.5322265625 - 724.1098022461 - 723.6506347656 - 723.2046508789 - 722.8074340820 - 722.3439941406 - 721.9187011719 - 721.4649658203 - 721.0659179688 - 720.5877685547 - 720.1795043945 - 719.7223510742 - 719.2995605469 - 718.8599853516 - 718.4191894531 - 717.9714355469 - 717.5578002930 - 717.0964965820 - 716.6756591797 - 716.2157592773 - 715.8018798828 - 715.3549804688 - 714.9119873047 - 714.4677734375 - 714.0502929688 - 713.6011962891 - 713.1442871094 - 712.7319946289 - 712.2744750977 - 711.8490600586 - 711.3817138672 - 710.9802856445 - 710.4959106445 - 710.1020507812 - 709.6281738281 - 709.1837768555 - 708.7803344727 - 708.3015747070 - 707.8693847656 - 707.4329223633 - 707.0075683594 - 706.5164184570 - 706.1306762695 - 705.6400756836 - 705.2402343750 - 704.7503662109 - 704.3269042969 - 703.9155883789 - 703.4100341797 - 703.0006713867 - 702.5731811523 - 702.0911865234 - 701.6693115234 - 701.2089843750 - 700.7889404297 - 700.3098144531 - 699.8804321289 - 699.4360961914 - 698.9794311523 - 698.5364379883 - 698.0933227539 - 697.6185913086 - 697.2125244141 - 696.7186279297 - 696.3097534180 - 695.8221435547 - 695.3964233398 - 694.9487304688 - 694.4745483398 - 694.0361938477 - 693.5772094727 - 693.1426391602 - 692.6770019531 - 692.1993408203 - 691.7857055664 - 691.3256225586 - 690.8363037109 - 690.3936157227 - 689.9686279297 - 689.4729614258 - 689.0304565430 - 688.5671997070 - 688.1215820312 - 687.6550292969 - 687.1837768555 - 686.7224121094 - 686.2879638672 - 685.7948608398 - 685.3525390625 - 684.8613891602 - 684.4376220703 - 683.9389648438 - 683.4925537109 - 682.9916992188 - 682.5855712891 - 682.0609130859 - 681.6164550781 - 681.1207275391 - 680.6968994141 - 680.1854248047 - 679.7102661133 - 679.2625732422 - 678.7684936523 - 678.2934570312 - 677.8332519531 - 677.3176879883 - 676.8827514648 - 676.3804321289 - 675.8898315430 - 675.4214477539 - 674.9483642578 - 674.4379882812 - 673.9595947266 - 673.4877929688 - 672.9912719727 - 672.4694824219 - 672.0411376953 - 671.4868774414 - 671.0402832031 - 670.5034179688 - 670.0346679688 - 669.5368652344 - 669.0160522461 - 668.5192871094 - 668.0430908203 - 667.5134887695 - 666.9974975586 - 666.5123291016 - 666.0114746094 - 665.4676513672 - 664.9733886719 - 664.4632568359 - 663.9492797852 - 663.4030761719 - 662.9051513672 - 662.3858642578 - 661.8539428711 - 661.3218994141 - 660.7855224609 - 660.2980957031 - 659.7147827148 - 659.1964111328 - 658.6822509766 - 658.1172485352 - 657.5818481445 - 657.0474243164 - 656.4921875000 - 655.9440917969 - 655.4016723633 - 654.8416748047 - 654.2789306641 - 653.7351074219 - 653.1750488281 - 652.5868530273 - 652.0623168945 - 651.4467773438 - 650.9171752930 - 650.3255004883 - 649.7194824219 - 649.1977539062 - 648.5859375000 - 647.9592285156 - 647.4480590820 - 646.8218994141 - 646.1950683594 - 645.6329956055 - 645.0449829102 - 644.4062500000 - 643.7998657227 - 643.2205200195 - 642.5816650391 - 641.9790039062 - 641.3372802734 - 640.7188720703 - 640.1449584961 - 639.4224853516 - 638.8377075195 - 638.2119140625 - 637.5602416992 - 636.8742675781 - 636.2789916992 - 635.6187133789 - 634.9324340820 - 634.2817993164 - 633.6250000000 - 632.9575805664 - 632.2700195312 - 631.6035156250 - 630.9151611328 - 630.2476196289 - 629.5634155273 - 628.8309936523 - 628.1926269531 - 627.4489746094 - 626.7520751953 - 626.0630493164 - 625.3397216797 - 624.5959472656 - 623.9381713867 - 623.1567382812 - 622.4379882812 - 621.7310791016 - 620.9832153320 - 620.2172241211 - 619.4808349609 - 618.7697753906 - 617.9597167969 - 617.2304687500 - 616.4743652344 - 615.6954956055 - 614.9367065430 - 614.1303710938 - 613.3958740234 - 612.5740356445 - 611.8151855469 - 610.9905395508 - 610.2239990234 - 609.4103393555 - 608.5963134766 - 607.8028564453 - 606.9896850586 - 606.1776123047 - 605.3476562500 - 604.5414428711 - 603.6984863281 - 602.8652954102 - 602.0512695312 - 601.1846313477 - 600.3713989258 - 599.5207519531 - 598.6550292969 - 597.8225708008 - 596.9641113281 - 596.0964355469 - 595.2470092773 - 594.3875732422 - 593.4891967773 - 592.6541137695 - 591.7628784180 - 590.8746337891 - 590.0251464844 - 589.1312866211 - 588.2346191406 - 587.3664550781 - 586.4611816406 - 585.5874633789 - 584.6697387695 - 583.7865600586 - 582.9255981445 - 581.9646606445 - 581.1075439453 - 580.2009887695 - 579.2822875977 - 578.4020996094 - 577.4765625000 - 576.5806884766 - 575.6607055664 - 574.7616577148 - 573.8596191406 - 572.9502563477 - 571.9976196289 - 571.1568603516 - 570.1809082031 - 569.3065795898 - 568.3731079102 - 567.4924926758 - 566.5805053711 - 565.6218872070 - 564.7597045898 - 563.8628540039 - 562.8833007812 - 562.0705566406 - 561.0958251953 - 560.2152709961 - 559.3281860352 - 558.3642578125 - 557.5469970703 - 556.5925292969 - 555.6988525391 - 554.8499145508 - 553.8876953125 - 553.0576782227 - 552.1390991211 - 551.2485961914 - 550.3995361328 - 549.4754638672 - 548.6242675781 - 547.7498168945 - 546.8674926758 - 546.0095214844 - 545.1207275391 - 544.2938232422 - 543.3834838867 - 542.5559082031 - 541.7190551758 - 540.8332519531 - 540.0032348633 - 539.1868896484 - 538.3107299805 - 537.4891357422 - 536.6655273438 - 535.8293457031 - 535.0153198242 - 534.2025146484 - 533.3641357422 - 532.5811767578 - 531.7789306641 - 530.9530029297 - 530.1743164062 - 529.3832397461 - 528.5982666016 - 527.7871093750 - 527.0309448242 - 526.2709960938 - 525.4757690430 - 524.7227783203 - 523.9689331055 - 523.2136840820 - 522.4481201172 - 521.7130737305 - 520.9743041992 - 520.2316894531 - 519.4982910156 - 518.7961425781 - 518.0222167969 - 517.3798828125 - 516.5881958008 - 515.9464721680 - 515.2149658203 - 514.5173339844 - 513.8342895508 - 513.1494140625 - 512.4458618164 - 511.7831420898 - 511.1160278320 - 510.4201660156 - 509.7846984863 - 509.1228332520 - 508.4324340820 - 507.8242492676 - 507.1769409180 - 506.4934387207 - 505.8879089355 - 505.2813110352 - 504.5948486328 - 504.0081176758 - 503.3833923340 - 502.7766418457 - 502.1457519531 - 501.5476684570 - 500.9663085938 - 500.3386840820 - 499.7731323242 - 499.1430053711 - 498.6047973633 - 497.9999694824 - 497.4064636230 - 496.8644409180 - 496.2784729004 - 495.7066345215 - 495.1460876465 - 494.6110839844 - 494.0130920410 - 493.4940185547 - 492.9405212402 - 492.3917236328 - 491.8330078125 - 491.3342590332 - 490.7698669434 - 490.2382507324 - 489.7351684570 - 489.1678771973 - 488.6976013184 - 488.1350708008 - 487.6315002441 - 487.1235046387 - 486.6318969727 - 486.0791015625 - 485.6141967773 - 485.0869445801 - 484.6231384277 - 484.0736389160 - 483.6202087402 - 483.1177673340 - 482.6193847656 - 482.1551513672 - 481.6190490723 - 481.2166137695 - 480.6802368164 - 480.1950378418 - 479.7644042969 - 479.2521667480 - 478.7938842773 - 478.3310852051 - 477.8431701660 - 477.3960571289 - 476.9331054688 - 476.4588623047 - 476.0077514648 - 475.5358276367 - 475.0977783203 - 474.6265563965 - 474.1657104492 - 473.7380676270 - 473.2807006836 - 472.8015747070 - 472.3905944824 - 471.9233398438 - 471.4870300293 - 471.0357666016 - 470.5751647949 - 470.1950988770 - 469.6869201660 - 469.2540283203 - 468.8692932129 - 468.3695678711 - 467.9639892578 - 467.5103759766 - 467.1090698242 - 466.6360168457 - 466.2109985352 - 465.7984619141 - 465.3313598633 - 464.9504089355 - 464.4542541504 - 464.0779418945 - 463.6361389160 - 463.1961975098 - 462.7651367188 - 462.3507690430 - 461.9346313477 - 461.4548339844 - 461.0770568848 - 460.6423645020 - 460.2094421387 - 459.7818603516 - 459.3555297852 - 458.9235839844 - 458.5426330566 - 458.0405883789 - 457.6770019531 - 457.2295532227 - 456.8291625977 - 456.3578491211 - 455.9864196777 - 455.5197143555 - 455.1348266602 - 454.6635742188 - 454.2726440430 - 453.8517456055 - 453.4269714355 - 452.9637145996 - 452.5829467773 - 452.1478271484 - 451.7193298340 - 451.2789916992 - 450.8886108398 - 450.4440307617 - 450.0149536133 - 449.5773925781 - 449.1874389648 - 448.7178344727 - 448.3259277344 - 447.8696289062 - 447.4829711914 - 447.0197448730 - 446.5936279297 - 446.1973876953 - 445.7107238770 - 445.3218078613 - 444.9014892578 - 444.4254760742 - 444.0486755371 - 443.5784301758 - 443.1560668945 - 442.7457275391 - 442.2962341309 - 441.8494873047 - 441.4408264160 - 441.0093688965 - 440.5339355469 - 440.1365051270 - 439.7039794922 - 439.2371826172 - 438.8184509277 - 438.3891601562 - 437.9372253418 - 437.5015869141 - 437.0437011719 - 436.6459960938 - 436.1764526367 - 435.6975402832 - 435.3377380371 - 434.8316040039 - 434.3976440430 - 433.9739990234 - 433.4966735840 - 433.0900878906 - 432.6091003418 - 432.1793518066 - 431.7181091309 - 431.2920837402 - 430.8418884277 - 430.3786315918 - 429.9132080078 - 429.4948120117 - 429.0307922363 - 428.5721130371 - 428.1026306152 - 427.6782836914 - 427.2159423828 - 426.7287597656 - 426.3158874512 - 425.8397827148 - 425.3764343262 - 424.8926086426 - 424.4881896973 - 423.9956359863 - 423.5007629395 - 423.0883483887 - 422.6130981445 - 422.1337280273 - 421.6728820801 - 421.2015380859 - 420.7477416992 - 420.2819824219 - 419.7864685059 - 419.3493041992 - 418.8480529785 - 418.3890380859 - 417.9417419434 - 417.4378051758 - 416.9909973145 - 416.4770507812 - 416.0303649902 - 415.5639038086 - 415.0645141602 - 414.5953369141 - 414.1207885742 - 413.6278991699 - 413.1293945312 - 412.7068481445 - 412.1734008789 - 411.7064208984 - 411.2148132324 - 410.7299194336 - 410.2653198242 - 409.7573852539 - 409.2760620117 - 408.7731323242 - 408.3010864258 - 407.8077392578 - 407.3078613281 - 406.8243713379 - 406.3222961426 - 405.8092041016 - 405.3621520996 - 404.8558654785 - 404.3308410645 - 403.8768920898 - 403.3363342285 - 402.8454589844 - 402.3577575684 - 401.8869934082 - 401.3106994629 - 400.8717651367 - 400.3494873047 - 399.8282775879 - 399.3423461914 - 398.8398132324 - 398.3415222168 - 397.7959899902 - 397.3060913086 - 396.8082885742 - 396.3008117676 - 395.7659912109 - 395.2624206543 - 394.7660522461 - 394.2115783691 - 393.7262573242 - 393.2406005859 - 392.6838989258 - 392.1886901855 - 391.6327819824 - 391.1562805176 - 390.6196899414 - 390.1101989746 - 389.5886230469 - 389.0567932129 - 388.5292663574 - 388.0082397461 - 387.4894409180 - 386.9827270508 - 386.4545898438 - 385.8973693848 - 385.4179382324 - 384.8186035156 - 384.3575439453 - 383.7823791504 - 383.2866516113 - 382.7730712891 - 382.1715698242 - 381.7130737305 - 381.1378479004 - 380.5872192383 - 380.0995178223 - 379.5417480469 - 378.9967956543 - 378.4738769531 - 377.9186706543 - 377.3700561523 - 376.8700561523 - 376.3071594238 - 375.7770690918 - 375.2131652832 - 374.6760253906 - 374.1415405273 - 373.5887756348 - 373.0595092773 - 372.5128784180 - 371.9657592773 - 371.4030761719 - 370.8739013672 - 370.2991027832 - 369.7754211426 - 369.2340087891 - 368.6674499512 - 368.1335144043 - 367.5809020996 - 367.0039978027 - 366.4790039062 - 365.8772277832 - 365.3817443848 - 364.7951049805 - 364.2587890625 - 363.6899414062 - 363.1473388672 - 362.5766601562 - 362.0182800293 - 361.4223632812 - 360.9380798340 - 360.3231201172 - 359.7980041504 - 359.1954040527 - 358.6795349121 - 358.0655212402 - 357.5215759277 - 356.9632263184 - 356.4019470215 - 355.8554382324 - 355.2328186035 - 354.7250976562 - 354.1073608398 - 353.5560913086 - 352.9940185547 - 352.4330444336 - 351.8514709473 - 351.3038024902 - 350.7081909180 - 350.1780395508 - 349.5335388184 - 349.0200500488 - 348.4057006836 - 347.8440856934 - 347.3103637695 - 346.6797790527 - 346.1390380859 - 345.5802917480 - 344.9846496582 - 344.3844604492 - 343.8529357910 - 343.2352294922 - 342.6405944824 - 342.0837402344 - 341.5444030762 - 340.9082641602 - 340.3259277344 - 339.7850341797 - 339.1642150879 - 338.5712280273 - 338.0020446777 - 337.4462280273 - 336.8493957520 - 336.2324523926 - 335.6978149414 - 335.0798339844 - 334.4719848633 - 333.9083557129 - 333.3133544922 - 332.7354431152 - 332.1582946777 - 331.5436096191 - 330.9845581055 - 330.3852539062 - 329.8134460449 - 329.1885070801 - 328.6276550293 - 328.0553588867 - 327.4255371094 - 326.8087463379 - 326.2794494629 - 325.6124877930 - 325.0529479980 - 324.4776611328 - 323.8530578613 - 323.2878417969 - 322.6691589355 - 322.0680541992 - 321.4729919434 - 320.8614501953 - 320.2634277344 - 319.7179260254 - 319.0380859375 - 318.4929504395 - 317.8447570801 - 317.2697143555 - 316.6672058105 - 316.0796813965 - 315.4256286621 - 314.9240417480 - 314.2339477539 - 313.6784973145 - 313.0591735840 - 312.4867858887 - 311.8487854004 - 311.2700195312 - 310.6476440430 - 310.0755920410 - 309.4565734863 - 308.8277893066 - 308.2615051270 - 307.6466064453 - 307.0347595215 - 306.4190979004 - 305.8371887207 - 305.1895751953 - 304.5895080566 - 303.9693603516 - 303.3691101074 - 302.7481079102 - 302.1165161133 - 301.5163574219 - 300.8861999512 - 300.2638244629 - 299.6728210449 - 299.0113830566 - 298.4284973145 - 297.7657775879 - 297.2319030762 - 296.5673828125 - 295.9401855469 - 295.3708496094 - 294.7601013184 - 294.1300964355 - 293.5528869629 - 292.9432067871 - 292.3886108398 - 291.7099304199 - 291.2043457031 - 290.5626525879 - 290.0500183105 - 289.4479980469 - 288.8627624512 - 288.3113403320 - 287.7295837402 - 287.1940002441 - 286.5499877930 - 286.0364685059 - 285.4518737793 - 284.9423217773 - 284.2385864258 - 283.7059936523 - 283.2140197754 - 282.6036682129 - 281.8813476562 - 281.3090209961 - 280.9311523438 - 280.2404785156 - 279.1178588867 - 276.6402587891 - 275.5230102539 - 274.8093261719 - 274.3914794922 - 273.8374938965 - 273.0842895508 - 272.4344482422 - 271.9235534668 - 271.3922119141 - 270.6412658691 - 270.0798950195 - 269.5121459961 - 268.9627380371 - 268.2570190430 - 267.7175292969 - 267.1156921387 - 266.5174865723 - 265.9225463867 - 265.2724304199 - 264.7446289062 - 264.0837097168 - 263.5375366211 - 262.8413696289 - 262.2737121582 - 261.6529846191 - 261.0348815918 - 260.3918762207 - 259.7765197754 - 259.1778259277 - 258.5392150879 - 257.8526611328 - 257.3189392090 - 256.6168212891 - 256.0426940918 - 255.3439178467 - 254.7600250244 - 254.1147460938 - 253.4665832520 - 252.8516235352 - 252.2141723633 - 251.5698394775 - 250.9483032227 - 250.3239440918 - 249.6952362061 - 249.0332031250 - 248.4369506836 - 247.8081207275 - 247.1587677002 - 246.5372314453 - 245.9464111328 - 245.2922973633 - 244.6677703857 - 244.0422058105 - 243.4316864014 - 242.8215026855 - 242.1438598633 - 241.5670471191 - 240.9248046875 - 240.3380737305 - 239.6306915283 - 239.0909423828 - 238.4432678223 - 237.8028411865 - 237.1886749268 - 236.5817413330 - 235.9256286621 - 235.3442535400 - 234.6492614746 - 234.0717315674 - 233.4585571289 - 232.8119049072 - 232.1949310303 - 231.5658264160 - 230.9341735840 - 230.3404235840 - 229.6793060303 - 229.0691070557 - 228.5057067871 - 227.8042144775 - 227.2186431885 - 226.6113128662 - 225.9464263916 - 225.3454895020 - 224.7418823242 - 224.0928955078 - 223.5040435791 - 222.8721008301 - 222.2520446777 - 221.6375579834 - 221.0346069336 - 220.3987731934 - 219.7822113037 - 219.1929168701 - 218.5496215820 - 217.9080657959 - 217.3334350586 - 216.6795806885 - 216.0796508789 - 215.4531860352 - 214.8631439209 - 214.2402343750 - 213.5850219727 - 213.0175323486 - 212.3797302246 - 211.7401580811 - 211.1455078125 - 210.5552673340 - 209.9253997803 - 209.2704010010 - 208.7132720947 - 208.0748291016 - 207.4316558838 - 206.8519744873 - 206.2565765381 - 205.6049194336 - 205.0176086426 - 204.4158782959 - 203.7837677002 - 203.2080383301 - 202.5334930420 - 201.9777526855 - 201.3289031982 - 200.7433624268 - 200.1244049072 - 199.5136871338 - 198.9247436523 - 198.3123931885 - 197.6627197266 - 197.1321868896 - 196.4316711426 - 195.8790588379 - 195.2556457520 - 194.6584472656 - 194.0562133789 - 193.4304199219 - 192.8486022949 - 192.2012176514 - 191.6521759033 - 190.9714965820 - 190.4523315430 - 189.8027343750 - 189.1984863281 - 188.6021728516 - 187.9898834229 - 187.3850860596 - 186.8068084717 - 186.1631774902 - 185.6157989502 - 184.9846801758 - 184.3829040527 - 183.7870025635 - 183.1777191162 - 182.5881347656 - 181.9730682373 - 181.3939361572 - 180.8008880615 - 180.1809692383 - 179.6067810059 - 178.9911346436 - 178.3948211670 - 177.7908477783 - 177.2211456299 - 176.5988006592 - 176.0258789062 - 175.4188537598 - 174.8309173584 - 174.2196350098 - 173.6185607910 - 173.0681152344 - 172.4451599121 - 171.8432922363 - 171.2840728760 - 170.6575622559 - 170.0596771240 - 169.5171508789 - 168.8986206055 - 168.2702941895 - 167.7640991211 - 167.0989837646 - 166.5270080566 - 165.9744415283 - 165.3392333984 - 164.8187866211 - 164.1576690674 - 163.6195068359 - 163.0171813965 - 162.4228515625 - 161.8260803223 - 161.2932128906 - 160.6843566895 - 160.0841674805 - 159.5082092285 - 158.9414520264 - 158.3329467773 - 157.7592315674 - 157.2049560547 - 156.5924835205 - 156.0425262451 - 155.3977050781 - 154.8775787354 - 154.3062744141 - 153.6900329590 - 153.1294097900 - 152.5595703125 - 151.9687042236 - 151.3820953369 - 150.8207550049 - 150.2648773193 - 149.6563415527 - 149.0861816406 - 148.5171051025 - 147.9587097168 - 147.3730621338 - 146.7767333984 - 146.2720794678 - 145.6194915771 - 145.1009063721 - 144.5079345703 - 143.9671936035 - 143.3549194336 - 142.8196868896 - 142.2318115234 - 141.6579284668 - 141.1177673340 - 140.5481567383 - 139.9666900635 - 139.4101867676 - 138.8363952637 - 138.2725524902 - 137.7192840576 - 137.1413421631 - 136.5940246582 - 135.9962158203 - 135.4719543457 - 134.8986968994 - 134.3221740723 - 133.8044586182 - 133.1713714600 - 132.6783447266 - 132.0984649658 - 131.5354309082 - 130.9633789062 - 130.4362487793 - 129.8515930176 - 129.2939605713 - 128.7666320801 - 128.1923675537 - 127.6422119141 - 127.0615615845 - 126.5454711914 - 125.9847793579 - 125.4173431396 - 124.8763732910 - 124.3272705078 - 123.7539978027 - 123.2274551392 - 122.6620101929 - 122.1228027344 - 121.5619812012 - 121.0031661987 - 120.4819412231 - 119.9251022339 - 119.3435440063 - 118.8424530029 - 118.2674789429 - 117.7314910889 - 117.1687850952 - 116.6497268677 - 116.0811309814 - 115.5437393188 - 115.0138320923 - 114.4498519897 - 113.9179534912 - 113.3572463989 - 112.8444213867 - 112.2772369385 - 111.7481002808 - 111.1815490723 - 110.6814270020 - 110.1133346558 - 109.5826721191 - 109.0406188965 - 108.5061569214 - 107.9506378174 - 107.4281768799 - 106.9050903320 - 106.2979660034 - 105.8460006714 - 105.2571868896 - 104.7247619629 - 104.1899185181 - 103.6519699097 - 103.1356811523 - 102.5561981201 - 102.0450439453 - 101.5309677124 - 100.9548034668 - 100.4346389771 - 99.9163131714 - 99.3688583374 - 98.8175048828 - 98.3089599609 - 97.7669296265 - 97.2163696289 - 96.6990203857 - 96.1739349365 - 95.5995712280 - 95.1248550415 - 94.5360488892 - 94.0311889648 - 93.5030746460 - 92.9452743530 - 92.4345855713 - 91.8895874023 - 91.3400726318 - 90.8294525146 - 90.2865142822 - 89.7689590454 - 89.1933593750 - 88.7059249878 - 88.1612091064 - 87.6056365967 - 87.0661926270 - 86.5721282959 - 86.0057220459 - 85.4766769409 - 84.9316787720 - 84.4326477051 - 83.8675079346 - 83.3249053955 - 82.7904815674 - 82.2905883789 - 81.7054290771 - 81.2053375244 - 80.6242370605 - 80.1432037354 - 79.5547866821 - 79.0423507690 - 78.4683151245 - 78.0023727417 - 77.3791198730 - 76.8803710938 - 76.3194732666 - 75.8023147583 - 75.2358856201 - 74.6857681274 - 74.1498641968 - 73.6255645752 - 73.0446777344 - 72.5138702393 - 71.9537658691 - 71.4273376465 - 70.8574218750 - 70.2928771973 - 69.7839965820 - 69.1933441162 - 68.6580200195 - 68.0835113525 - 67.5486679077 - 66.9920806885 - 66.3897628784 - 65.8865509033 - 65.2788925171 - 64.7626571655 - 64.1340942383 - 63.6195373535 - 63.0569381714 - 62.4317626953 - 61.9044876099 - 61.3358879089 - 60.7433738708 - 60.1683387756 - 59.5898513794 - 59.0400085449 - 58.4212493896 - 57.8444175720 - 57.2784538269 - 56.6883277893 - 56.0735969543 - 55.5074539185 - 54.9069442749 - 54.3133430481 - 53.7044334412 - 53.1005363464 - 52.5341949463 - 51.8875389099 - 51.2939567566 - 50.7054214478 - 50.0531196594 - 49.4709548950 - 48.8533287048 - 48.1906433105 - 47.6201477051 - 46.9644622803 - 46.3465843201 - 45.7046241760 - 45.0704307556 - 44.4596138000 - 43.7696685791 - 43.1716842651 - 42.4813423157 - 41.8799896240 - 41.1859436035 - 40.5244522095 - 39.8989334106 - 39.2260894775 - 38.5060577393 - 37.9113998413 - 37.1887893677 - 36.5080566406 - 35.8445625305 - 35.1448554993 - 34.4601974487 - 33.7542495728 - 33.0697860718 - 32.3491325378 - 31.6711196899 - 30.9195919037 - 30.2225265503 - 29.5332794189 - 28.7539215088 - 28.0418586731 - 27.3358192444 - 26.5817565918 - 25.8010673523 - 25.1146163940 - 24.3315219879 - 23.5762577057 - 22.8002052307 - 22.0511035919 - 21.2849540710 - 20.4862327576 - 19.7150936127 - 18.9200191498 - 18.1613731384 - 17.3276844025 - 16.5198440552 - 15.7650346756 - 14.9000778198 - 14.0852718353 - 13.3006343842 - 12.4426212311 - 11.5920848846 - 10.8066577911 - 9.9126510620 - 9.0726175308 - 8.2421398163 - 7.3617296219 - 6.4834899902 - 5.6230487823 - 4.7671871185 - 3.8337707520 - 3.0045299530 - 2.0613994598 - 1.2039604187 - 0.2713298798 - -0.6405582428 - -1.5331535339 - -2.4804115295 - -3.3903064728 - -4.3340187073 - -5.2657489777 - -6.2167682648 - -7.1672191620 - -8.1054573059 - -9.0826644897 - -10.0360393524 - -10.9967021942 - -11.9805183411 - -12.9675292969 - -13.9532089233 - -14.9199485779 - -15.9470939636 - -16.9288673401 - -17.9187850952 - -18.9535560608 - -19.9532814026 - -20.9681091309 - -22.0024795532 - -23.0185623169 - -24.0388984680 - -25.1168403625 - -26.1201286316 - -27.1637001038 - -28.2424049377 - -29.2673225403 - -30.3108901978 - -31.4103355408 - -32.4388542175 - -33.5290870667 - -34.5814170837 - -35.6742668152 - -36.7426834106 - -37.7833938599 - -38.9277801514 - -39.9650650024 - -41.0567855835 - -42.1741294861 - -43.2115554810 - -44.3614234924 - -45.4201202393 - -46.5217552185 - -47.6517524719 - -48.6929054260 - -49.8348617554 - -50.9501533508 - -51.9988670349 - -53.1853065491 - -54.2081642151 - -55.3737144470 - -56.4553947449 - -57.5317459106 - -58.6976509094 - -59.7791786194 - -60.8591613770 - -62.0200195312 - -63.0492248535 - -64.2357254028 - -65.2804336548 - -66.4023971558 - -67.5387344360 - -68.5886306763 - -69.7129287720 - -70.8173217773 - -71.8807067871 - -73.0268707275 - -74.0694274902 - -75.1867675781 - -76.2801055908 - -77.3181152344 - -78.4664154053 - -79.5082244873 - -80.5775222778 - -81.6739196777 - -82.7278289795 - -83.8197174072 - -84.8524551392 - -85.9507446289 - -87.0009689331 - -88.0272064209 - -89.1061401367 - -90.1560668945 - -91.1612701416 - -92.2411651611 - -93.2655029297 - -94.2844085693 - -95.3221130371 - -96.3415222168 - -97.3432083130 - -98.3807144165 - -99.3777389526 - -100.3604812622 - -101.3917236328 - -102.3621597290 - -103.3520965576 - -104.3451385498 - -105.3283233643 - -106.2965545654 - -107.2554168701 - -108.2343673706 - -109.1767807007 - -110.1334915161 - -111.0904846191 - -112.0223007202 - -112.9753265381 - -113.8870925903 - -114.8425140381 - -115.7352905273 - -116.6579513550 - -117.5889892578 - -118.4604110718 - -119.3999176025 - -120.2380905151 - -121.1795501709 - -122.0368041992 - -122.9027023315 - -123.7892837524 - -124.6743850708 - -125.5092697144 - -126.3546295166 - -127.2575378418 - -128.0451049805 - -128.9041748047 - -129.7655639648 - -130.5585021973 - -131.3783569336 - -132.2493591309 - -133.0075988770 - -133.8283538818 - -134.6617736816 - -135.4287719727 - -136.2303161621 - -137.0076141357 - -137.8122406006 - -138.5854797363 - -139.3424072266 - -140.1208801270 - -140.8884582520 - -141.6746063232 - -142.3669433594 - -143.1558532715 - -143.9159545898 - -144.6304626465 - -145.3425598145 - -146.1373901367 - -146.8280334473 - -147.5335388184 - -148.2896118164 - -148.9761505127 - -149.7056579590 - -150.3933105469 - -151.1041564941 - -151.8030548096 - -152.5050811768 - -153.1718444824 - -153.8653259277 - -154.5939636230 - -155.1928405762 - -155.9193115234 - -156.6033325195 - -157.2303161621 - -157.9035034180 - -158.6014709473 - -159.2094726562 - -159.9089965820 - -160.5132293701 - -161.2071075439 - -161.8288269043 - -162.4672393799 - -163.1157531738 - -163.7435607910 - -164.3998718262 - -164.9853210449 - -165.6500854492 - -166.2727355957 - -166.8656616211 - -167.5233154297 - -168.1174621582 - -168.7169189453 - -169.3732604980 - -169.9438171387 - -170.5552368164 - -171.1700744629 - -171.7719879150 - -172.3772583008 - -172.9496154785 - -173.5721435547 - -174.1676025391 - -174.7420959473 - -175.3226928711 - -175.9479675293 - -176.5071105957 - -177.0874023438 - -177.6707000732 - -178.2712097168 - -178.8414916992 - -179.3805694580 - -180.0070037842 - -180.5763854980 - -181.0996398926 - -181.7319641113 - -182.2523956299 - -182.8704223633 - -183.3764648438 - -183.9837341309 - -184.5477905273 - -185.0885772705 - -185.6643371582 - -186.2129516602 - -186.8011627197 - -187.3194274902 - -187.8889923096 - -188.4653625488 - -188.9922790527 - -189.5627288818 - -190.0980987549 - -190.6784973145 - -191.2146606445 - -191.7519378662 - -192.3062133789 - -192.8813934326 - -193.3983154297 - -193.9656372070 - -194.4710693359 - -195.0965118408 - -195.5668945312 - -196.1464233398 - -196.6636047363 - -197.2547760010 - -197.7411499023 - -198.3247680664 - -198.8307189941 - -199.4181976318 - -199.9224548340 - -200.4611206055 - -201.0084533691 - -201.5739288330 - -202.0796508789 - -202.6275024414 - -203.1580505371 - -203.7301330566 - -204.2277221680 - -204.7670135498 - -205.3286590576 - -205.8757934570 - -206.3656311035 - -206.9419708252 - -207.4672393799 - -208.0080566406 - -208.5259857178 - -209.0729980469 - -209.6228332520 - -210.1387481689 - -210.6903991699 - -211.2285003662 - -211.7323455811 - -212.3228759766 - -212.8005371094 - -213.3754119873 - -213.9027252197 - -214.4232788086 - -214.9747161865 - -215.5164947510 - -216.0272216797 - -216.5834350586 - -217.1251678467 - -217.6500091553 - -218.1689605713 - -218.7467346191 - -219.2618713379 - -219.7708435059 - -220.3557434082 - -220.8695678711 - -221.4039154053 - -221.9482879639 - -222.4733581543 - -223.0635070801 - -223.5182800293 - -224.1239013672 - -224.6460571289 - -225.1698913574 - -225.7206726074 - -226.2626342773 - -226.7965698242 - -227.3287048340 - -227.8981323242 - -228.3948974609 - -228.9650573730 - -229.4878997803 - -230.0551605225 - -230.5687561035 - -231.1288299561 - -231.6560058594 - -232.2186279297 - -232.7510681152 - -233.2838592529 - -233.8480834961 - -234.3701782227 - -234.9299621582 - -235.4608154297 - -236.0333862305 - -236.5361175537 - -237.1144866943 - -237.6629638672 - -238.1878662109 - -238.7430725098 - -239.2998046875 - -239.8350982666 - -240.3991088867 - -240.9209747314 - -241.4955596924 - -242.0347900391 - -242.5774688721 - -243.1370849609 - -243.6982116699 - -244.2091827393 - -244.7837371826 - -245.3352661133 - -245.9001312256 - -246.4245605469 - -246.9802703857 - -247.5608673096 - -248.0799865723 - -248.6512603760 - -249.2073822021 - -249.7823791504 - -250.2715301514 - -250.9018249512 - -251.4102172852 - -251.9826965332 - -252.5530242920 - -253.0698242188 - -253.6638641357 - -254.2042694092 - -254.7758483887 - -255.3253784180 - -255.8824920654 - -256.4499511719 - -257.0006713867 - -257.5765991211 - -258.1362609863 - -258.6758422852 - -259.2421264648 - -259.8206481934 - -260.3526306152 - -260.9565124512 - -261.4869995117 - -262.0799255371 - -262.5885314941 - -263.2322082520 - -263.7315063477 - -264.3207397461 - -264.8974304199 - -265.4498901367 - -266.0111083984 - -266.5745544434 - -267.1731262207 - -267.7215881348 - -268.2748718262 - -268.8558349609 - -269.4357604980 - -269.9975585938 - -270.5502929688 - -271.1557006836 - -271.7236328125 - -272.2308044434 - -272.8695678711 - -273.4099731445 - -274.0106811523 - -274.5602111816 - -275.1193237305 - -275.7257690430 - -276.2800598145 - -276.8431396484 - -277.4356689453 - -278.0399780273 - -278.5547180176 - -279.1477966309 - -279.7334594727 - -280.3218383789 - -280.8516540527 - -281.5003662109 - -282.0131225586 - -282.6365661621 - -283.1799316406 - -283.7421569824 - -284.3949584961 - -284.8917236328 - -285.5068664551 - -286.1161499023 - -286.6492309570 - -287.2322692871 - -287.8521423340 - -288.3971252441 - -288.9855346680 - -289.6001892090 - -290.1399536133 - -290.7257080078 - -291.3308105469 - -291.9007568359 - -292.4993896484 - -293.0579223633 - -293.6710510254 - -294.2270812988 - -294.8199462891 - -295.4035339355 - -296.0064086914 - -296.5679016113 - -297.1732177734 - -297.7580261230 - -298.3226013184 - -298.9239807129 - -299.5025939941 - -300.1002807617 - -300.6766967773 - -301.2718200684 - -301.8843078613 - -302.4213562012 - -303.0520629883 - -303.6167602539 - -304.2056274414 - -304.8090820312 - -305.3872985840 - -305.9777526855 - -306.6135253906 - -307.1197509766 - -307.7880554199 - -308.3205566406 - -308.9521484375 - -309.5255432129 - -310.1291503906 - -310.7203979492 - -311.3025512695 - -311.9150085449 - -312.4469604492 - -313.1369934082 - -313.6515502930 - -314.2825622559 - -314.8841247559 - -315.4557189941 - -316.0532226562 - -316.6557312012 - -317.2263793945 - -317.8612365723 - -318.4006042480 - -319.0551757812 - -319.6217346191 - -320.2326049805 - -320.8193969727 - -321.3952941895 - -322.0257568359 - -322.6096801758 - -323.1708374023 - -323.7991333008 - -324.4207153320 - -324.9613952637 - -325.5985717773 - -326.2111816406 - -326.7854614258 - -327.3688354492 - -327.9836425781 - -328.6086120605 - -329.1592712402 - -329.7961120605 - -330.4009399414 - -330.9721374512 - -331.5894775391 - -332.1660766602 - -332.8021240234 - -333.3628234863 - -333.9840698242 - -334.6098632812 - -335.1813964844 - -335.7780151367 - -336.4015808105 - -336.9861145020 - -337.5761108398 - -338.1853027344 - -338.7992248535 - -339.3685607910 - -339.9969787598 - -340.5859985352 - -341.1695861816 - -341.8157958984 - -342.3967895508 - -342.9716491699 - -343.6528930664 - -344.1947631836 - -344.7884216309 - -345.4312438965 - -346.0077819824 - -346.6170959473 - -347.2274475098 - -347.8248901367 - -348.4534912109 - -349.0456848145 - -349.6073913574 - -350.2779541016 - -350.8443603516 - -351.4759826660 - -352.0659790039 - -352.6582641602 - -353.2850036621 - -353.9055175781 - -354.4323120117 - -355.1152648926 - -355.6856079102 - -356.3074035645 - -356.8622741699 - -357.5218200684 - -358.1145935059 - -358.6982727051 - -359.3107604980 - -359.9115905762 - -360.5454101562 - -361.1180725098 - -361.7163085938 - -362.3482055664 - -362.9549560547 - -363.5306091309 - -364.1696166992 - -364.7796630859 - -365.3800354004 - -365.9815368652 - -366.6054382324 - -367.2188110352 - -367.8124694824 - -368.4388427734 - -369.0636291504 - -369.6226806641 - -370.3018798828 - -370.8510131836 - -371.5339355469 - -372.0466003418 - -372.7106323242 - -373.3262939453 - -373.9077148438 - -374.4996032715 - -375.1199951172 - -375.7225341797 - -376.3209228516 - -376.8688659668 - -377.5412292480 - -378.0748596191 - -378.7137145996 - -379.2237243652 - -379.8587036133 - -380.4321899414 - -381.0170288086 - -381.5993347168 - -382.1182556152 - -382.8097839355 - -383.3453369141 - -383.8865661621 - -384.4371948242 - -385.1688842773 - -385.6786804199 - -386.1733703613 - -386.8060302734 - -387.5363159180 - -388.0641479492 - -388.4742736816 - -389.1647033691 - -390.2360839844 - -392.6149902344 - -393.6941833496 - -394.3520202637 - -394.7059326172 - -395.2594604492 - -395.9460449219 - -396.5232849121 - -396.9912414551 - -397.5029296875 - -398.1679382324 - -398.6457519531 - -399.2107238770 - -399.6958007812 - -400.3002319336 - -400.8134765625 - -401.3675537109 - -401.8865051270 - -402.4463500977 - -403.0134887695 - -403.5024108887 - -404.1141967773 - -404.5905456543 - -405.2382202148 - -405.7677307129 - -406.3506164551 - -406.8957214355 - -407.4976501465 - -408.0830383301 - -408.6229858398 - -409.2226867676 - -409.8558044434 - -410.3682556152 - -410.9959411621 - -411.5575866699 - -412.1842041016 - -412.7532348633 - -413.3456726074 - -413.9466247559 - -414.5195922852 - -415.1246032715 - -415.7155151367 - -416.2871704102 - -416.8816833496 - -417.4515380859 - -418.0699462891 - -418.6253662109 - -419.2136535645 - -419.7927551270 - -420.3815612793 - -420.9197082520 - -421.5177917480 - -422.1109008789 - -422.6481933594 - -423.2483520508 - -423.7969970703 - -424.4006042480 - -424.9493103027 - -425.5388488770 - -426.0651245117 - -426.7238464355 - -427.1967773438 - -427.8262023926 - -428.3784179688 - -428.9542236328 - -429.4992065430 - -430.1198120117 - -430.6351928711 - -431.2845764160 - -431.8012084961 - -432.3718872070 - -432.9511108398 - -433.5174865723 - -434.0882873535 - -434.6794433594 - -435.2156372070 - -435.8072814941 - -436.3518676758 - -436.8883056641 - -437.5208129883 - -438.0164184570 - -438.6107177734 - -439.2077026367 - -439.7505798340 - -440.2796020508 - -440.8742370605 - -441.4194335938 - -441.9876403809 - -442.5104675293 - -443.1006774902 - -443.6492309570 - -444.1910095215 - -444.7573852539 - -445.2927551270 - -445.8684692383 - -446.4566040039 - -446.9608154297 - -447.5449829102 - -448.1174011230 - -448.6351928711 - -449.1769409180 - -449.7396240234 - -450.3280029297 - -450.8413696289 - -451.3880615234 - -451.9979553223 - -452.5034179688 - -453.0305786133 - -453.5936584473 - -454.1784667969 - -454.6828002930 - -455.2505493164 - -455.8118896484 - -456.3436584473 - -456.8505554199 - -457.4511718750 - -457.9517517090 - -458.4819335938 - -459.0678405762 - -459.5469055176 - -460.1588439941 - -460.6620788574 - -461.2221679688 - -461.7393798828 - -462.2895507812 - -462.8169555664 - -463.3505554199 - -463.8662109375 - -464.4520568848 - -464.9344787598 - -465.5148620605 - -466.0382385254 - -466.5632019043 - -467.0905761719 - -467.5997314453 - -468.1866760254 - -468.6669921875 - -469.2356262207 - -469.7343139648 - -470.3101501465 - -470.7673339844 - -471.3274230957 - -471.8532104492 - -472.3954772949 - -472.9009399414 - -473.4390258789 - -473.9444274902 - -474.4949340820 - -474.9590759277 - -475.5302429199 - -476.0170288086 - -476.5667419434 - -477.0845031738 - -477.5845947266 - -478.1177368164 - -478.6290893555 - -479.1164855957 - -479.6582336426 - -480.1562500000 - -480.6845092773 - -481.1988525391 - -481.7108764648 - -482.2100219727 - -482.7251586914 - -483.2297058105 - -483.7297363281 - -484.2657165527 - -484.7564392090 - -485.2882080078 - -485.7570190430 - -486.2672119141 - -486.7897949219 - -487.2837524414 - -487.7886047363 - -488.3151550293 - -488.7710876465 - -489.2844848633 - -489.8249206543 - -490.2543945312 - -490.8177490234 - -491.2978515625 - -491.7609863281 - -492.2997436523 - -492.7292480469 - -493.2905883789 - -493.7378234863 - -494.2628784180 - -494.7549438477 - -495.2212524414 - -495.7162780762 - -496.1968688965 - -496.6870117188 - -497.1876831055 - -497.6783752441 - -498.1453857422 - -498.6521606445 - -499.0923767090 - -499.6134948730 - -500.0764770508 - -500.5913085938 - -501.0498046875 - -501.4965820312 - -502.0151367188 - -502.4771118164 - -502.9458923340 - -503.4468994141 - -503.9162902832 - -504.3799743652 - -504.8355407715 - -505.3452453613 - -505.8075561523 - -506.2751159668 - -506.7254638672 - -507.2115173340 - -507.6963195801 - -508.1030883789 - -508.6391296387 - -509.0804748535 - -509.5250854492 - -509.9850769043 - -510.4880676270 - -510.9058532715 - -511.3957214355 - -511.8667907715 - -512.2749023438 - -512.7549438477 - -513.2192382812 - -513.6671752930 - -514.1305541992 - -514.5882568359 - -515.0232543945 - -515.4894409180 - -515.9367675781 - -516.4042968750 - -516.8369140625 - -517.2825927734 - -517.7357788086 - -518.1727294922 - -518.6625976562 - -519.0524291992 - -519.5127563477 - -519.9703369141 - -520.4041137695 - -520.8415527344 - -521.3018798828 - -521.7292480469 - -522.1400756836 - -522.6201171875 - -523.0259399414 - -523.4924926758 - -523.9064331055 - -524.3243408203 - -524.7908325195 - -525.1873779297 - -525.6511840820 - -526.0742187500 - -526.4935302734 - -526.9249877930 - -527.3499755859 - -527.7919311523 - -528.2294921875 - -528.6011352539 - -529.0623168945 - -529.5152587891 - -529.8817749023 - -530.3258056641 - -530.7545166016 - -531.1922607422 - -531.5646972656 - -532.0142822266 - -532.4414672852 - -532.8252563477 - -533.2549438477 - -533.6788330078 - -534.1025390625 - -534.4830932617 - -534.9071655273 - -535.3372192383 - -535.7433471680 - -536.1358642578 - -536.5546264648 - -536.9445800781 - -537.3928222656 - -537.7543945312 - -538.1952514648 - -538.5798950195 - -538.9765014648 - -539.4398803711 - -539.7645874023 - -540.1997680664 - -540.6366577148 - -540.9875488281 - -541.4094238281 - -541.8095703125 - -542.2146606445 - -542.6085815430 - -542.9891967773 - -543.4128417969 - -543.8086547852 - -544.1630859375 - -544.6033935547 - -544.9906616211 - -545.3605957031 - -545.7683715820 - -546.1771240234 - -546.5472412109 - -546.9296875000 - -547.3576049805 - -547.6976318359 - -548.1294555664 - -548.5139770508 - -548.8562622070 - -549.3074340820 - -549.6621704102 - -550.0446777344 - -550.4700927734 - -550.8135986328 - -551.2323608398 - -551.5803222656 - -552.0074462891 - -552.3599243164 - -552.7559814453 - -553.1397705078 - -553.5454711914 - -553.8968505859 - -554.2913208008 - -554.6801147461 - -555.0734252930 - -555.4123535156 - -555.8342285156 - -556.2156372070 - -556.5942382812 - -556.9454345703 - -557.3722534180 - -557.7160644531 - -558.1384887695 - -558.4703979492 - -558.8967895508 - -559.2559204102 - -559.6572265625 - -559.9836425781 - -560.4382934570 - -560.7776489258 - -561.1633911133 - -561.5523681641 - -561.9317016602 - -562.3211059570 - -562.7157592773 - -563.0455322266 - -563.4836425781 - -563.8575439453 - -564.2226562500 - -564.6150512695 - -565.0084838867 - -565.4051513672 - -565.7366333008 - -566.1918945312 - -566.5229492188 - -566.9473266602 - -567.3161010742 - -567.6947021484 - -568.1198120117 - -568.4822998047 - -568.8833618164 - -569.2479248047 - -569.6986083984 - -570.0390014648 - -570.4255371094 - -570.8873901367 - -571.2192382812 - -571.6373291016 - -572.0388183594 - -572.4266357422 - -572.8504028320 - -573.2138671875 - -573.6425781250 - -574.0547485352 - -574.4342651367 - -574.8478393555 - -575.2680053711 - -575.6599121094 - -576.0842895508 - -576.4852905273 - -576.9104614258 - -577.3234252930 - -577.7260742188 - -578.1591186523 - -578.5740356445 - -578.9848632812 - -579.4451904297 - -579.8246459961 - -580.2608032227 - -580.7473144531 - -581.0960693359 - -581.5839843750 - -581.9953002930 - -582.4415893555 - -582.8945922852 - -583.2946166992 - -583.7906494141 - -584.2058105469 - -584.6754150391 - -585.0911865234 - -585.5903930664 - -586.0242309570 - -586.4856567383 - -586.9312744141 - -587.4360961914 - -587.8596801758 - -588.3693237305 - -588.8125610352 - -589.2934570312 - -589.8049926758 - -590.2422485352 - -590.7454833984 - -591.2420654297 - -591.7360839844 - -592.1989135742 - -592.7385864258 - -593.2158813477 - -593.7254028320 - -594.2280883789 - -594.7622070312 - -595.2458496094 - -595.7793579102 - -596.3207397461 - -596.8043212891 - -597.3748779297 - -597.8756103516 - -598.4448242188 - -598.9654541016 - -599.5021362305 - -600.0701904297 - -600.6158447266 - -601.1774291992 - -601.7021484375 - -602.3281860352 - -602.8653564453 - -603.4135742188 - -604.0290527344 - -604.6128540039 - -605.1572265625 - -605.7826538086 - -606.3756103516 - -606.9523315430 - -607.5761108398 - -608.1777343750 - -608.7763061523 - -609.4119262695 - -610.0264282227 - -610.6424560547 - -611.2768554688 - -611.9340209961 - -612.5081176758 - -613.2341918945 - -613.8025512695 - -614.5099487305 - -615.1370849609 - -615.8054199219 - -616.4725952148 - -617.1439208984 - -617.8027954102 - -618.5004882812 - -619.1818237305 - -619.8613891602 - -620.5428466797 - -621.2654418945 - -621.9516601562 - -622.6321411133 - -623.3721313477 - -624.0805053711 - -624.7965087891 - -625.5017700195 - -626.2498168945 - -626.9796752930 - -627.6849975586 - -628.4459228516 - -629.1845092773 - -629.9209594727 - -630.6794433594 - -631.4268798828 - -632.1712036133 - -632.9672851562 - -633.7091674805 - -634.4581909180 - -635.2653808594 - -636.0267944336 - -636.7730712891 - -637.6047363281 - -638.3531494141 - -639.1614379883 - -639.9417114258 - -640.7415771484 - -641.5375976562 - -642.3124389648 - -643.1502075195 - -643.9234008789 - -644.7328491211 - -645.5703735352 - -646.3208618164 - -647.2027587891 - -647.9708251953 - -648.7820434570 - -649.6592407227 - -650.3937377930 - -651.2793579102 - -652.0798339844 - -652.8873291016 - -653.7758178711 - -654.5090942383 - -655.4080200195 - -656.2275390625 - -657.0072021484 - -657.8809814453 - -658.7188720703 - -659.5195922852 - -660.3649291992 - -661.1697998047 - -662.0595703125 - -662.8211669922 - -663.6978149414 - -664.5198974609 - -665.3527832031 - -666.1652832031 - -667.0075683594 - -667.8300170898 - -668.6692504883 - -669.4779052734 - -670.3156127930 - -671.1439208984 - -671.9263916016 - -672.8070678711 - -673.5931396484 - -674.3992919922 - -675.2404785156 - -676.0390625000 - -676.8662719727 - -677.6629638672 - -678.4785156250 - -679.3016967773 - -680.0777587891 - -680.8878173828 - -681.7079467773 - -682.4718017578 - -683.2932739258 - -684.0816040039 - -684.8592529297 - -685.6540527344 - -686.4423217773 - -687.2037353516 - -687.9962158203 - -688.7802734375 - -689.5228271484 - -690.3179931641 - -691.0644531250 - -691.8295288086 - -692.6053466797 - -693.3394775391 - -694.1051025391 - -694.8521118164 - -695.5958862305 - -696.3244018555 - -697.0740356445 - -697.8228149414 - -698.5219116211 - -699.2849121094 - -699.9790039062 - -700.7381591797 - -701.4078979492 - -702.1560058594 - -702.8456420898 - -703.5728759766 - -704.2578735352 - -704.9337158203 - -705.6819458008 - -706.3316650391 - -707.0095214844 - -707.7180175781 - -708.4057617188 - -709.0555419922 - -709.7171630859 - -710.4403076172 - -711.0427246094 - -711.7310791016 - -712.3944091797 - -713.0324096680 - -713.6740112305 - -714.3595581055 - -714.9457397461 - -715.6292724609 - -716.2529296875 - -716.8713989258 - -717.5067138672 - -718.1218261719 - -718.7556762695 - -719.3729248047 - -719.9811401367 - -720.5768432617 - -721.2177734375 - -721.8234863281 - -722.3732910156 - -723.0087280273 - -723.6101074219 - -724.1912841797 - -724.7241210938 - -725.4014282227 - -725.9263305664 - -726.5006713867 - -727.0909423828 - -727.6508178711 - -728.2437744141 - -728.7758178711 - -729.3345947266 - -729.9344482422 - -730.4735717773 - -730.9897460938 - -731.5764770508 - -732.1547241211 - -732.6259155273 - -733.2053222656 - -733.7766723633 - -734.2539062500 - -734.8204345703 - -735.3648071289 - -735.8558349609 - -736.4277343750 - -736.9136352539 - -737.4546508789 - -737.9788818359 - -738.4796752930 - -739.0007934570 - -739.5231323242 - -740.0183105469 - -740.5361938477 - -741.0447998047 - -741.5379028320 - -742.0393676758 - -742.5610351562 - -743.0368041992 - -743.5161132812 - -744.0596923828 - -744.5091552734 - -745.0074462891 - -745.4995117188 - -745.9943847656 - -746.4739379883 - -746.9353027344 - -747.4426879883 - -747.9177856445 - -748.3931884766 - -748.8485107422 - -749.3525390625 - -749.8202514648 - -750.2648315430 - -750.7449951172 - -751.2377319336 - -751.6737060547 - -752.1410522461 - -752.6174316406 - -753.0793457031 - -753.5170898438 - -754.0112915039 - -754.4236450195 - -754.9414062500 - -755.3353271484 - -755.8170166016 - -756.2785644531 - -756.7160644531 - -757.1536254883 - -757.6349487305 - -758.0633544922 - -758.5018920898 - -758.9553833008 - -759.4211425781 - -759.8182373047 - -760.3007812500 - -760.7257690430 - -761.1582641602 - -761.6233520508 - -762.0329589844 - -762.4713745117 - -762.9477539062 - -763.3342285156 - -763.7941284180 - -764.2073364258 - -764.6883544922 - -765.0638427734 - -765.5272827148 - -765.9398193359 - -766.3977050781 - -766.7906494141 - -767.2415771484 - -767.6519165039 - -768.1042480469 - -768.5058593750 - -768.9315185547 - -769.3668212891 - -769.7925415039 - -770.2068481445 - -770.6324462891 - -771.0379638672 - -771.4965820312 - -771.8884277344 - -772.2915649414 - -772.7454223633 - -773.1676025391 - -773.5476684570 - -773.9839477539 - -774.4176635742 - -774.8114013672 - -775.2385864258 - -775.6351928711 - -776.0733032227 - -776.4880371094 - -776.8684692383 - -777.3255004883 - -777.6969604492 - -778.1491699219 - -778.5229492188 - -778.9563598633 - -779.3627929688 - -779.7708740234 - -780.1880493164 - -780.5927124023 - -780.9866943359 - -781.4295043945 - -781.8059082031 - -782.2331542969 - -782.6163940430 - -783.0576171875 - -783.4484863281 - -783.8190307617 - -784.2868652344 - -784.6588134766 - -785.0406494141 - -785.4988403320 - -785.8546142578 - -786.3031616211 - -786.6581420898 - -787.1037597656 - -787.4907226562 - -787.8899536133 - -788.2785034180 - -788.7237548828 - -789.0820922852 - -789.4889526367 - -789.9227905273 - -790.2775878906 - -790.7235717773 - -791.0818481445 - -791.5079345703 - -791.8967285156 - -792.3130493164 - -792.6829833984 - -793.0979614258 - -793.5106201172 - -793.8856811523 - -794.2849731445 - -794.6928100586 - -795.0965576172 - -795.4677124023 - -795.8839111328 - -796.2698974609 - -796.6860961914 - -797.0532836914 - -797.4659423828 - -797.8635253906 - -798.2592163086 - -798.6396484375 - -799.0548095703 - -799.4213867188 - -799.8587646484 - -800.2106323242 - -800.6263427734 - -801.0045166016 - -801.4275512695 - -801.7835083008 - -802.1827392578 - -802.6027832031 - -802.9765625000 - -803.3541870117 - -803.7613525391 - -804.1742553711 - -804.5211181641 - -804.9443359375 - -805.3257446289 - -805.7311401367 - -806.0775756836 - -806.5345458984 - -806.8665771484 - -807.2745361328 - -807.6862792969 - -808.0338745117 - -808.4598388672 - -808.8280029297 - -809.2232666016 - -809.6147460938 - -809.9973144531 - -810.3893432617 - -810.7713623047 - -811.1747436523 - -811.5413818359 - -811.9423217773 - -812.3258666992 - -812.7102661133 - -813.0926513672 - -813.5011596680 - -813.8442382812 - -814.2883300781 - -814.6170654297 - -815.0525512695 - -815.3981933594 - -815.8021850586 - -816.1871337891 - -816.5695190430 - -816.9494628906 - -817.3367309570 - -817.7318115234 - -818.1040039062 - -818.4757690430 - -818.8816528320 - -819.2583007812 - -819.6376342773 - -820.0103759766 - -820.4072875977 - -820.8143310547 - -821.1260986328 - -821.5733032227 - -821.9275512695 - -822.3156738281 - -822.7030029297 - -823.0455322266 - -823.4891967773 - -823.8387451172 - -824.1918945312 - -824.5956420898 - -825.0242919922 - -825.3145751953 - -825.7401123047 - -826.1325683594 - -826.4998168945 - -826.8532104492 - -827.2736816406 - -827.6187744141 - -828.0233154297 - -828.3816528320 - -828.7517700195 - -829.1762084961 - -829.4985351562 - -829.8901977539 - -830.2971801758 - -830.6475219727 - -831.0059204102 - -831.4353637695 - -831.7690429688 - -832.1389160156 - -832.5562744141 - -832.9047851562 - -833.2624511719 - -833.6833496094 - -834.0152587891 - -834.4189453125 - -834.7625122070 - -835.1734008789 - -835.5181274414 - -835.9033203125 - -836.2734375000 - -836.6583862305 - -837.0118408203 - -837.3884277344 - -837.7838134766 - -838.1298828125 - -838.5084228516 - -838.8840942383 - -839.2709960938 - -839.6001586914 - -840.0103759766 - -840.3712158203 - -840.7198486328 - -841.1246337891 - -841.4761352539 - -841.8327026367 - -842.2386474609 - -842.5765991211 - -842.9465942383 - -843.3496093750 - -843.6611328125 - -844.0963745117 - -844.4082031250 - -844.7984008789 - -845.1841430664 - -845.5184326172 - -845.9037475586 - -846.2606201172 - -846.6620483398 - -846.9516601562 - -847.4135131836 - -847.7142944336 - -848.0887451172 - -848.4829711914 - -848.8192749023 - -849.1973266602 - -849.5626831055 - -849.9122314453 - -850.3142700195 - -850.6318969727 - -851.0162353516 - -851.3933105469 - -851.7391967773 - -852.0999145508 - -852.4711303711 - -852.8316040039 - -853.2086791992 - -853.5319213867 - -853.9237060547 - -854.3005371094 - -854.6192626953 - -855.0028686523 - -855.3709716797 - -855.7169189453 - -856.0942382812 - -856.4246215820 - -856.8244628906 - -857.1491699219 - -857.5293579102 - -857.8869018555 - -858.2154541016 - -858.6300048828 - -858.9396972656 - -859.3223876953 - -859.6691284180 - -860.0275268555 - -860.4031982422 - -860.7377929688 - -861.0806274414 - -861.4830322266 - -861.8245239258 - -862.1371459961 - -862.5356445312 - -862.9013061523 - -863.2243652344 - -863.5872192383 - -863.9519653320 - -864.2969360352 - -864.6829833984 - -864.9792480469 - -865.3535766602 - -865.7573242188 - -866.0494995117 - -866.4072875977 - -866.7932128906 - -867.1341552734 - -867.4730224609 - -867.8313598633 - -868.1753540039 - -868.5516357422 - -868.8844604492 - -869.2218017578 - -869.5958862305 - -869.9412231445 - -870.2857666016 - -870.6379394531 - -870.9664916992 - -871.3640747070 - -871.6853637695 - -872.0117187500 - -872.3950195312 - -872.7359008789 - -873.0939331055 - -873.3936767578 - -873.7924194336 - -874.1452026367 - -874.4403076172 - -874.8313598633 - -875.1565551758 - -875.5236206055 - -875.8576049805 - -876.1832885742 - -876.5646972656 - -876.9025878906 - -877.2255249023 - -877.5822143555 - -877.9408569336 - -878.2645263672 - -878.6094970703 - -878.9692993164 - -879.3016967773 - -879.6344604492 - -879.9888305664 - -880.3485717773 - -880.6362915039 - -881.0424804688 - -881.3228149414 - -881.7333984375 - -882.0050659180 - -882.3843994141 - -882.7248535156 - -883.0693969727 - -883.3890380859 - -883.7341308594 - -884.1039428711 - -884.4348754883 - -884.7416381836 - -885.1196289062 - -885.4527587891 - -885.8151245117 - -886.1041870117 - -886.5003051758 - -886.8164672852 - -887.1841430664 - -887.5177001953 - -887.7978515625 - -888.2406005859 - -888.5687866211 - -888.8350219727 - -889.1906738281 - -889.6370239258 - -889.9057006836 - -890.1915893555 - -890.5754394531 - -891.0009765625 - -891.2584838867 - -891.5252075195 - -891.9195556641 - -892.4808959961 - -893.7423095703 - -894.3215332031 - -894.6420288086 - -894.7802734375 - -895.0963745117 - -895.4218750000 - -895.6795043945 - -895.9042968750 - -896.1772460938 - -896.4713745117 - -896.6611328125 - -896.9814453125 - -897.1945190430 - -897.4387817383 - -897.7060546875 - -897.9751586914 - -898.1925048828 - -898.4774780273 - -898.7188110352 - -898.9594116211 - -899.2602539062 - -899.4626464844 - -899.7844848633 - -900.0488891602 - -900.3445434570 - -900.5833129883 - -900.8862915039 - -901.1909179688 - -901.4411010742 - -901.7450561523 - -902.0534667969 - -902.3253173828 - -902.6098632812 - -902.9184570312 - -903.2045898438 - -903.5150146484 - -903.8009643555 - -904.0972900391 - -904.3828735352 - -904.6965332031 - -904.9810180664 - -905.2579345703 - -905.5679931641 - -905.8349609375 - -906.1447753906 - -906.4217529297 - -906.7174682617 - -906.9783935547 - -907.2821044922 - -907.5370483398 - -907.8231201172 - -908.1309204102 - -908.3500976562 - -908.6826171875 - -908.9349365234 - -909.2059936523 - -909.4915161133 - -909.7757568359 - -910.0162353516 - -910.3444213867 - -910.5480957031 - -910.8894653320 - -911.1171264648 - -911.4080200195 - -911.6577758789 - -911.9773559570 - -912.2056884766 - -912.5314331055 - -912.7658081055 - -913.0496826172 - -913.3135986328 - -913.5867919922 - -913.8547363281 - -914.1522216797 - -914.4013671875 - -914.6701660156 - -914.9158935547 - -915.1955566406 - -915.4880981445 - -915.6816406250 - -916.0084228516 - -916.2817993164 - -916.5342407227 - -916.7619628906 - -917.0477294922 - -917.3157958984 - -917.5769042969 - -917.7786865234 - -918.0919799805 - -918.3511962891 - -918.5668334961 - -918.8406372070 - -919.0929565430 - -919.3542480469 - -919.6369628906 - -919.8552856445 - -920.1196899414 - -920.4192504883 - -920.6065673828 - -920.8682861328 - -921.1295166016 - -921.3988647461 - -921.6386108398 - -921.8598022461 - -922.1790771484 - -922.3789672852 - -922.6171875000 - -922.8724975586 - -923.1364135742 - -923.3723144531 - -923.6261596680 - -923.8653564453 - -924.1212158203 - -924.3225708008 - -924.6150512695 - -924.8146972656 - -925.0462036133 - -925.3348388672 - -925.5120239258 - -925.7993164062 - -926.0347290039 - -926.2662353516 - -926.4934692383 - -926.7392578125 - -926.9576416016 - -927.2073364258 - -927.4054565430 - -927.6764526367 - -927.9043579102 - -928.1162109375 - -928.3860473633 - -928.5876464844 - -928.8192749023 - -929.0173950195 - -929.3143920898 - -929.4874267578 - -929.7337646484 - -929.9684448242 - -930.1930541992 - -930.3923950195 - -930.6232910156 - -930.8452148438 - -931.1013183594 - -931.2836303711 - -931.5244140625 - -931.7406616211 - -931.9622192383 - -932.1445312500 - -932.4110107422 - -932.5744018555 - -932.8425292969 - -933.0469970703 - -933.2434692383 - -933.4665527344 - -933.6909790039 - -933.8640136719 - -934.0957031250 - -934.3040161133 - -934.5186767578 - -934.7308959961 - -934.9318237305 - -935.1466064453 - -935.3337402344 - -935.5538940430 - -935.7327270508 - -935.9873046875 - -936.1473999023 - -936.3822631836 - -936.5685424805 - -936.7477416992 - -936.9670410156 - -937.1842651367 - -937.3512573242 - -937.5808715820 - -937.7552490234 - -937.9436035156 - -938.1644897461 - -938.3333740234 - -938.5539550781 - -938.7365112305 - -938.9118041992 - -939.1235351562 - -939.2782592773 - -939.4993286133 - -939.6641235352 - -939.8870239258 - -940.0658569336 - -940.2021484375 - -940.4471435547 - -940.5937500000 - -940.7643432617 - -940.9751586914 - -941.1798095703 - -941.3052368164 - -941.5279541016 - -941.6657104492 - -941.8721923828 - -942.0499877930 - -942.2144775391 - -942.4149169922 - -942.5457153320 - -942.7446899414 - -942.9101562500 - -943.0772094727 - -943.2738037109 - -943.4249267578 - -943.5922241211 - -943.7525634766 - -943.9451293945 - -944.1016845703 - -944.2675170898 - -944.4168090820 - -944.5952148438 - -944.7608032227 - -944.8955078125 - -945.0856323242 - -945.2606201172 - -945.3666992188 - -945.5487060547 - -945.7268066406 - -945.8484497070 - -946.0306396484 - -946.1971435547 - -946.2985839844 - -946.4833984375 - -946.6317138672 - -946.7792968750 - -946.9337158203 - -947.0893554688 - -947.2197875977 - -947.3746337891 - -947.5301513672 - -947.6674804688 - -947.8231811523 - -947.9504394531 - -948.0862426758 - -948.2552490234 - -948.3919677734 - -948.5116577148 - -948.6553955078 - -948.8115844727 - -948.9214477539 - -949.0817260742 - -949.2204589844 - -949.3348388672 - -949.4531250000 - -949.6333618164 - -949.7209472656 - -949.8738403320 - -950.0083618164 - -950.1043701172 - -950.2702026367 - -950.3523559570 - -950.5325927734 - -950.6242065430 - -950.7567138672 - -950.8692626953 - -950.9981079102 - -951.1318969727 - -951.2608032227 - -951.3236083984 - -951.4917602539 - -951.6221923828 - -951.6971435547 - -951.8201293945 - -951.9578857422 - -952.0831909180 - -952.1497192383 - -952.2877807617 - -952.4218139648 - -952.4949340820 - -952.6063232422 - -952.7406005859 - -952.8461303711 - -952.9312133789 - -953.0309448242 - -953.1775512695 - -953.2492675781 - -953.3660888672 - -953.4562988281 - -953.5385742188 - -953.7010498047 - -953.7346191406 - -953.8721313477 - -953.9542846680 - -954.0547485352 - -954.1759033203 - -954.2342529297 - -954.3294677734 - -954.4837646484 - -954.5003662109 - -954.6253662109 - -954.7381591797 - -954.7955322266 - -954.9036254883 - -954.9875488281 - -955.0772094727 - -955.1790771484 - -955.2180786133 - -955.3626098633 - -955.4201049805 - -955.4927978516 - -955.5916748047 - -955.6838989258 - -955.7481079102 - -955.8239746094 - -955.9223632812 - -955.9821166992 - -956.0718994141 - -956.1715087891 - -956.1813964844 - -956.3327026367 - -956.3796997070 - -956.4359130859 - -956.5549316406 - -956.5844726562 - -956.6995239258 - -956.7288208008 - -956.8245849609 - -956.8912353516 - -956.9691772461 - -957.0167236328 - -957.1145019531 - -957.1729736328 - -957.2268676758 - -957.3087768555 - -957.3820190430 - -957.4157104492 - -957.5136108398 - -957.5706176758 - -957.6313476562 - -957.6832885742 - -957.7690429688 - -957.8091430664 - -957.8918457031 - -957.9328613281 - -958.0144042969 - -958.0665283203 - -958.1232910156 - -958.1702270508 - -958.2619018555 - -958.2963867188 - -958.3420410156 - -958.4360351562 - -958.4658203125 - -958.5277099609 - -958.6121826172 - -958.6062011719 - -958.7137451172 - -958.7709350586 - -958.7844238281 - -958.8750610352 - -958.9235839844 - -958.9824218750 - -958.9945068359 - -959.1195678711 - -959.1043701172 - -959.1969604492 - -959.2419433594 - -959.2800903320 - -959.3460693359 - -959.4125976562 - -959.4351806641 - -959.4920654297 - -959.5721435547 - -959.5924682617 - -959.6372680664 - -959.7380981445 - -959.7324218750 - -959.8205566406 - -959.8592529297 - -959.8939819336 - -959.9818115234 - -960.0031738281 - -960.0579833984 - -960.1290893555 - -960.1596679688 - -960.2197265625 - -960.2651977539 - -960.3148193359 - -960.3814697266 - -960.4183959961 - -960.4777832031 - -960.5226440430 - -960.5892944336 - -960.6232910156 - -960.6817016602 - -960.7388916016 - -960.8102416992 - -960.8242797852 - -960.8927612305 - -960.9946289062 - -960.9721679688 - -961.0835571289 - -961.1119995117 - -961.1716308594 - -961.2493286133 - -961.2671508789 - -961.3569335938 - -961.4116821289 - -961.4594116211 - -961.5114746094 - -961.6019897461 - -961.6223144531 - -961.7222900391 - -961.7497558594 - -961.8235473633 - -961.8942871094 - -961.9728393555 - -961.9888305664 - -962.0809936523 - -962.1854858398 - -962.1882934570 - -962.2733154297 - -962.3690185547 - -962.4246826172 - -962.4743652344 - -962.5709228516 - -962.6241455078 - -962.7354736328 - -962.7463378906 - -962.8739013672 - -962.9281616211 - -963.0128173828 - -963.0828247070 - -963.1564331055 - -963.2704467773 - -963.3019409180 - -963.4206542969 - -963.4897460938 - -963.5671997070 - -963.6613769531 - -963.7477416992 - -963.8351440430 - -963.9015502930 - -964.0518188477 - -964.0885009766 - -964.1950073242 - -964.2977905273 - -964.4006347656 - -964.4715576172 - -964.5963745117 - -964.6779174805 - -964.7990112305 - -964.8853759766 - -964.9908447266 - -965.1013183594 - -965.2199707031 - -965.3076782227 - -965.4154663086 - -965.5567016602 - -965.6558227539 - -965.7291259766 - -965.9271240234 - -965.9633178711 - -966.1422119141 - -966.2162475586 - -966.3741455078 - -966.4754638672 - -966.6208496094 - -966.7126464844 - -966.8776855469 - -966.9972534180 - -967.1151733398 - -967.2479858398 - -967.4065551758 - -967.5317382812 - -967.6403198242 - -967.8198852539 - -967.9462890625 - -968.0861206055 - -968.2279052734 - -968.3762817383 - -968.5416259766 - -968.6603393555 - -968.8215942383 - -968.9831542969 - -969.1259155273 - -969.2833251953 - -969.4424438477 - -969.5916137695 - -969.7650146484 - -969.9277343750 - -970.0614624023 - -970.2516479492 - -970.4232177734 - -970.5528564453 - -970.7604370117 - -970.9083862305 - -971.0884399414 - -971.2626953125 - -971.4269409180 - -971.6098022461 - -971.7868041992 - -971.9593505859 - -972.1374511719 - -972.3180541992 - -972.5170898438 - -972.6591186523 - -972.8953247070 - -973.0437011719 - -973.2174682617 - -973.4662475586 - -973.5793457031 - -973.8293457031 - -973.9721679688 - -974.1928710938 - -974.4031372070 - -974.5328369141 - -974.7799682617 - -974.9864501953 - -975.1355590820 - -975.3433837891 - -975.5786132812 - -975.7572021484 - -975.9244384766 - -976.1606445312 - -976.3728637695 - -976.5253295898 - -976.7808837891 - -976.9367675781 - -977.1959228516 - -977.3488769531 - -977.5683593750 - -977.7976074219 - -977.9707641602 - -978.1989746094 - -978.3982543945 - -978.6066894531 - -978.7984008789 - -979.0344238281 - -979.2284545898 - -979.4263916016 - -979.6518554688 - -979.8529663086 - -980.0614624023 - -980.2807006836 - -980.4647216797 - -980.7080078125 - -980.9017944336 - -981.0960693359 - -981.3353881836 - -981.5305786133 - -981.7416992188 - -981.9564819336 - -982.1599731445 - -982.3717041016 - -982.5911865234 - -982.7863159180 - -982.9942626953 - -983.2296752930 - -983.4140014648 - -983.6324462891 - -983.8355102539 - -984.0477294922 - -984.2741088867 - -984.4450073242 - -984.6802368164 - -984.8956909180 - -985.0854492188 - -985.2876586914 - -985.5095214844 - -985.7298583984 - -985.8965454102 - -986.1427001953 - -986.3220214844 - -986.5598144531 - -986.7198486328 - -986.9731445312 - -987.1256713867 - -987.3973999023 - -987.5346069336 - -987.7586669922 - -987.9934082031 - -988.1573486328 - -988.3568115234 - -988.5839843750 - -988.7799072266 - -988.9660644531 - -989.1603393555 - -989.3945312500 - -989.5537109375 - -989.7765502930 - -989.9578247070 - -990.1679077148 - -990.3562622070 - -990.5629882812 - -990.7260742188 - -990.9793090820 - -991.1262207031 - -991.3316040039 - -991.5285644531 - -991.7178344727 - -991.9093627930 - -992.1063232422 - -992.3056640625 - -992.4637451172 - -992.7032470703 - -992.8692626953 - -993.0412597656 - -993.2507324219 - -993.4357910156 - -993.6345214844 - -993.7604980469 - -994.0302734375 - -994.1649169922 - -994.3613281250 - -994.5334472656 - -994.7268066406 - -994.9296264648 - -995.0782470703 - -995.2454833984 - -995.4894409180 - -995.6344604492 - -995.7792358398 - -996.0081787109 - -996.1881713867 - -996.3297729492 - -996.5139770508 - -996.7279663086 - -996.8513183594 - -997.0686645508 - -997.2261962891 - -997.3896484375 - -997.5892333984 - -997.7488403320 - -997.9054565430 - -998.1074218750 - -998.2563476562 - -998.4265747070 - -998.6199340820 - -998.7424316406 - -998.9705810547 - -999.1051635742 - -999.2579345703 - -999.4530639648 - -999.6149902344 - -999.7686767578 - -999.9227294922 - -1000.1207275391 - -1000.2569580078 - -1000.4285278320 - -1000.5871582031 - -1000.7630615234 - -1000.9116210938 - -1001.0642700195 - -1001.2393798828 - -1001.3906860352 - -1001.5634765625 - -1001.6982421875 - -1001.8646850586 - -1002.0409545898 - -1002.1595458984 - -1002.3313598633 - -1002.5051269531 - -1002.6198730469 - -1002.8154296875 - -1002.9376220703 - -1003.0946655273 - -1003.2592773438 - -1003.4036865234 - -1003.5315551758 - -1003.7271728516 - -1003.8406982422 - -1003.9902343750 - -1004.1514282227 - -1004.2982177734 - -1004.4105224609 - -1004.6188354492 - -1004.7036132812 - -1004.8743896484 - -1005.0175170898 - -1005.1737670898 - -1005.2708129883 - -1005.4584960938 - -1005.5912475586 - -1005.6907348633 - -1005.8854980469 - -1005.9921264648 - -1006.1268310547 - -1006.3005981445 - -1006.3908691406 - -1006.5461425781 - -1006.6904296875 - -1006.8212280273 - -1006.9412231445 - -1007.0900268555 - -1007.2213745117 - -1007.3497314453 - -1007.4811401367 - -1007.6060180664 - -1007.7450561523 - -1007.8683471680 - -1007.9951171875 - -1008.1255493164 - -1008.2625732422 - -1008.3663940430 - -1008.5114135742 - -1008.6328125000 - -1008.7396240234 - -1008.8886718750 - -1009.0072021484 - -1009.1011352539 - -1009.2526855469 - -1009.3693847656 - -1009.4769287109 - -1009.5865478516 - -1009.7426757812 - -1009.8208618164 - -1009.9744873047 - -1010.0505981445 - -1010.1894531250 - -1010.3253173828 - -1010.3717651367 - -1010.5519409180 - -1010.6319580078 - -1010.7520751953 - -1010.8621826172 - -1010.9685668945 - -1011.0800781250 - -1011.2006225586 - -1011.3048706055 - -1011.3993530273 - -1011.5079956055 - -1011.6478271484 - -1011.6973266602 - -1011.8442382812 - -1011.9276123047 - -1012.0434570312 - -1012.1425170898 - -1012.2163085938 - -1012.3663330078 - -1012.4370727539 - -1012.5029296875 - -1012.6786499023 - -1012.7128906250 - -1012.8278808594 - -1012.9308471680 - -1013.0258789062 - -1013.1116333008 - -1013.2157592773 - -1013.2755737305 - -1013.4335327148 - -1013.4625244141 - -1013.5695800781 - -1013.6820678711 - -1013.7432250977 - -1013.8740234375 - -1013.9144287109 - -1014.0168457031 - -1014.1145019531 - -1014.2089233398 - -1014.2632446289 - -1014.3526611328 - -1014.4686889648 - -1014.5252075195 - -1014.5890502930 - -1014.7078857422 - -1014.7826538086 - -1014.8348388672 - -1014.9164428711 - -1015.0203857422 - -1015.0966186523 - -1015.1251831055 - -1015.2486572266 - -1015.3182373047 - -1015.3833007812 - -1015.4464111328 - -1015.5350341797 - -1015.5891113281 - -1015.7019042969 - -1015.7155761719 - -1015.8265380859 - -1015.8614501953 - -1015.9654541016 - -1016.0134887695 - -1016.0663452148 - -1016.1751708984 - -1016.1979370117 - -1016.2670288086 - -1016.3511352539 - -1016.4196777344 - -1016.4458618164 - -1016.5399780273 - -1016.5831298828 - -1016.6451416016 - -1016.7003784180 - -1016.7885742188 - -1016.8021240234 - -1016.8710937500 - -1016.9474487305 - -1016.9772949219 - -1017.0526123047 - -1017.0908203125 - -1017.1406860352 - -1017.2069091797 - -1017.2506103516 - -1017.2994995117 - -1017.3491821289 - -1017.4071655273 - -1017.4236450195 - -1017.5144653320 - -1017.5511474609 - -1017.5766601562 - -1017.6453247070 - -1017.6837158203 - -1017.6925659180 - -1017.7978515625 - -1017.8057250977 - -1017.8463745117 - -1017.8905639648 - -1017.9364013672 - -1017.9649047852 - -1018.0136108398 - -1018.0491333008 - -1018.0945434570 - -1018.1168823242 - -1018.1536254883 - -1018.1846313477 - -1018.2413330078 - -1018.2534179688 - -1018.2880249023 - -1018.3208618164 - -1018.3395385742 - -1018.4116210938 - -1018.3941650391 - -1018.4584960938 - -1018.4747314453 - -1018.4843750000 - -1018.5433959961 - -1018.5223388672 - -1018.6133422852 - -1018.6084594727 - -1018.6006469727 - -1018.6427612305 - -1018.7122192383 - -1018.6536865234 - -1018.7293701172 - -1018.7606201172 - -1018.7495727539 - -1018.7752685547 - -1018.7872314453 - -1018.8168334961 - -1018.8295288086 - -1018.8491821289 - -1018.8688354492 - -1018.8831787109 - -1018.8929443359 - -1018.8934326172 - -1018.9237670898 - -1018.9413452148 - -1018.9218139648 - -1018.9768676758 - -1018.9562988281 - -1018.9489746094 - -1018.9904785156 - -1018.9983520508 - -1018.9749755859 - -1019.0313110352 - -1018.9832153320 - -1019.0192260742 - -1019.0006713867 - -1019.0334472656 - -1019.0193481445 - -1019.0316162109 - -1019.0297241211 - -1019.0321044922 - -1019.0258789062 - -1019.0125732422 - -1019.0491333008 - -1019.0285034180 - -1019.0222778320 - -1019.0338745117 - -1019.0444946289 - -1018.9852294922 - -1019.0350341797 - -1018.9899291992 - -1019.0008544922 - -1019.0062866211 - -1018.9938964844 - -1018.9655761719 - -1018.9997558594 - -1018.9531860352 - -1018.9437866211 - -1018.9420776367 - -1018.9251708984 - -1018.9411010742 - -1018.8989868164 - -1018.8806152344 - -1018.9131469727 - -1018.8352661133 - -1018.8497924805 - -1018.8282470703 - -1018.8468627930 - -1018.7700195312 - -1018.8061523438 - -1018.7645874023 - -1018.7214965820 - -1018.7396850586 - -1018.6967163086 - -1018.6938476562 - -1018.6654052734 - -1018.6441650391 - -1018.6411132812 - -1018.6009521484 - -1018.5502929688 - -1018.5764770508 - -1018.5093383789 - -1018.4896240234 - -1018.4974975586 - -1018.4332885742 - -1018.4421997070 - -1018.3890380859 - -1018.3764648438 - -1018.3473510742 - -1018.3071289062 - -1018.2731323242 - -1018.2393188477 - -1018.2085571289 - -1018.2185668945 - -1018.1227416992 - -1018.1264648438 - -1018.0859985352 - -1018.0467529297 - -1018.0039672852 - -1017.9492187500 - -1017.9832153320 - -1017.8933715820 - -1017.8587646484 - -1017.8431396484 - -1017.7852172852 - -1017.7499389648 - -1017.7044677734 - -1017.6467895508 - -1017.6554565430 - -1017.6076660156 - -1017.5090942383 - -1017.5262451172 - -1017.4871215820 - -1017.4254150391 - -1017.3671264648 - -1017.3518066406 - -1017.3106689453 - -1017.2708740234 - -1017.1557617188 - -1017.1690063477 - -1017.1226806641 - -1017.0398559570 - -1017.0083618164 - -1016.9718017578 - -1016.9311523438 - -1016.8548583984 - -1016.8076782227 - -1016.7507934570 - -1016.7138671875 - -1016.6447143555 - -1016.6134033203 - -1016.5309448242 - -1016.5071411133 - -1016.4171142578 - -1016.3806152344 - -1016.3046875000 - -1016.3029785156 - -1016.1871948242 - -1016.1733398438 - -1016.0931396484 - -1016.0585327148 - -1015.9995727539 - -1015.9157714844 - -1015.8826904297 - -1015.8447875977 - -1015.7251586914 - -1015.7265625000 - -1015.6370239258 - -1015.5805053711 - -1015.5327758789 - -1015.4461669922 - -1015.4135742188 - -1015.3378906250 - -1015.2698364258 - -1015.1915893555 - -1015.1453857422 - -1015.0535278320 - -1014.9945068359 - -1014.9359741211 - -1014.8450927734 - -1014.7745971680 - -1014.7053222656 - -1014.6458740234 - -1014.5391845703 - -1014.4982910156 - -1014.3897705078 - -1014.3521118164 - -1014.2666015625 - -1014.1987304688 - -1014.1182861328 - -1014.0784912109 - -1013.9889526367 - -1013.9107666016 - -1013.8896484375 - -1013.8113403320 - -1013.7454833984 - -1013.6675415039 - -1013.6571655273 - -1013.5880126953 - -1013.5324096680 - -1013.5198364258 - -1013.4432983398 - -1013.4364013672 - -1013.3782348633 - -1013.2996826172 - -1013.3040771484 - -1013.2844848633 - -1013.1617431641 - -1013.1701660156 - -1013.1400756836 - -1013.0528564453 - -1013.0070190430 - -1012.9779052734 - -1012.9163208008 - -1012.7929687500 - -1012.8021850586 - -1012.7318725586 - -1012.5427856445 - -1012.1466674805 - -1011.9777221680 - -1011.8231201172 - -1011.6866455078 - -1011.6300048828 - -1011.4556274414 - -1011.2832641602 - -1011.1682739258 - -1011.0855102539 - -1010.8831176758 - -1010.7034912109 - -1010.6418457031 - -1010.4915771484 - -1010.2711181641 - -1010.1777954102 - -1010.0466918945 - -1009.8695068359 - -1009.7575073242 - -1009.5696411133 - -1009.4592285156 - -1009.3199462891 - -1009.1618652344 - -1009.0201416016 - -1008.9065551758 - -1008.7880249023 - -1008.6181640625 - -1008.4925537109 - -1008.3860473633 - -1008.2390747070 - -1008.1173095703 - -1007.9691162109 - -1007.8838500977 - -1007.7029418945 - -1007.6265869141 - -1007.4498901367 - -1007.3687133789 - -1007.2255249023 - -1007.0905761719 - -1006.9663696289 - -1006.8543090820 - -1006.7103881836 - -1006.5741577148 - -1006.4670410156 - -1006.3167114258 - -1006.1854858398 - -1006.0653076172 - -1005.9418334961 - -1005.7728881836 - -1005.6613159180 - -1005.5241699219 - -1005.3756103516 - -1005.2662963867 - -1005.0730590820 - -1004.9958496094 - -1004.8436889648 - -1004.6662597656 - -1004.5664062500 - -1004.4236450195 - -1004.2753295898 - -1004.1323852539 - -1003.9794921875 - -1003.8869018555 - -1003.6921386719 - -1003.5737915039 - -1003.4212036133 - -1003.3026733398 - -1003.1463623047 - -1003.0087890625 - -1002.8607177734 - -1002.7362670898 - -1002.5717163086 - -1002.4346923828 - -1002.2853393555 - -1002.1614990234 - -1002.0172729492 - -1001.8480224609 - -1001.6895751953 - -1001.5927734375 - -1001.4202880859 - -1001.2288208008 - -1001.1480712891 - -1000.9807128906 - -1000.8345336914 - -1000.6636352539 - -1000.5180664062 - -1000.3941040039 - -1000.2364501953 - -1000.0309448242 - -999.9328002930 - -999.7917480469 - -999.5888671875 - -999.4528198242 - -999.3138427734 - -999.1492309570 - -999.0056152344 - -998.8442382812 - -998.6754150391 - -998.5740356445 - -998.3507080078 - -998.2199096680 - -998.0684204102 - -997.9035644531 - -997.7667846680 - -997.5679931641 - -997.4595947266 - -997.2683105469 - -997.1158447266 - -996.9536743164 - -996.7839965820 - -996.6500854492 - -996.4813232422 - -996.2957153320 - -996.1667480469 - -995.9760131836 - -995.8350219727 - -995.6480102539 - -995.4819335938 - -995.3497924805 - -995.1494750977 - -994.9890136719 - -994.8555908203 - -994.6593017578 - -994.4994506836 - -994.3359375000 - -994.1516723633 - -994.0106201172 - -993.8062744141 - -993.6465454102 - -993.5220947266 - -993.2744140625 - -993.1753540039 - -992.9671630859 - -992.8040161133 - -992.6064453125 - -992.4858398438 - -992.2775878906 - -992.0961303711 - -991.9664306641 - -991.7434692383 - -991.5996093750 - -991.4022827148 - -991.2257690430 - -991.0861206055 - -990.8669433594 - -990.7072143555 - -990.5415649414 - -990.3393554688 - -990.1616821289 - -990.0096435547 - -989.7797241211 - -989.6513061523 - -989.4552001953 - -989.2636718750 - -989.0810546875 - -988.9224853516 - -988.7072143555 - -988.5296020508 - -988.3591918945 - -988.1683349609 - -987.9874267578 - -987.7910156250 - -987.6295166016 - -987.4086914062 - -987.2502441406 - -987.0312500000 - -986.8953247070 - -986.6561889648 - -986.4935913086 - -986.3177490234 - -986.0886840820 - -985.9111328125 - -985.7587280273 - -985.5162353516 - -985.3508300781 - -985.1685791016 - -984.9512939453 - -984.7582397461 - -984.5943603516 - -984.3775024414 - -984.1841430664 - -983.9965820312 - -983.7903442383 - -983.6040649414 - -983.3905639648 - -983.2021484375 - -983.0275268555 - -982.8168334961 - -982.5646972656 - -982.4549560547 - -982.2047119141 - -981.9822387695 - -981.8130493164 - -981.6439208984 - -981.3742675781 - -981.2175903320 - -980.9937133789 - -980.7973022461 - -980.6137695312 - -980.3572998047 - -980.2138061523 - -979.9730224609 - -979.7669067383 - -979.5651245117 - -979.3589477539 - -979.1667480469 - -978.9351196289 - -978.7343750000 - -978.5307006836 - -978.3236083984 - -978.1073608398 - -977.9004516602 - -977.6849975586 - -977.4791259766 - -977.2546386719 - -977.0596313477 - -976.8223876953 - -976.6561889648 - -976.3779907227 - -976.2043457031 - -975.9815673828 - -975.7548828125 - -975.5511474609 - -975.3417968750 - -975.0930175781 - -974.9033813477 - -974.6723632812 - -974.4561767578 - -974.2354736328 - -974.0225219727 - -973.7927856445 - -973.5699462891 - -973.3671875000 - -973.1151733398 - -972.9271240234 - -972.6815795898 - -972.4418334961 - -972.2706909180 - -971.9958496094 - -971.7941284180 - -971.5596923828 - -971.3476562500 - -971.0863037109 - -970.9007568359 - -970.6588134766 - -970.4110107422 - -970.1862792969 - -969.9894409180 - -969.7213134766 - -969.4948730469 - -969.2924194336 - -969.0258178711 - -968.8198242188 - -968.5524291992 - -968.3716430664 - -968.0925292969 - -967.8814697266 - -967.6271972656 - -967.4044189453 - -967.1729736328 - -966.9378662109 - -966.6651000977 - -966.4683227539 - -966.2203979492 - -965.9717407227 - -965.7206420898 - -965.5084228516 - -965.2677612305 - -964.9997558594 - -964.7673339844 - -964.5506591797 - -964.2820434570 - -964.0274047852 - -963.8145141602 - -963.5565795898 - -963.3099975586 - -963.0424194336 - -962.8428955078 - -962.5496215820 - -962.3405151367 - -962.0637207031 - -961.8029174805 - -961.6099853516 - -961.3014526367 - -961.0767822266 - -960.8212280273 - -960.5824584961 - -960.3093261719 - -960.0765991211 - -959.7907714844 - -959.5963134766 - -959.2716674805 - -959.0463867188 - -958.8236083984 - -958.5086669922 - -958.2844848633 - -958.0359497070 - -957.7531738281 - -957.5173950195 - -957.2241821289 - -957.0113525391 - -956.7142944336 - -956.4590454102 - -956.2062988281 - -955.9422607422 - -955.6732788086 - -955.4102172852 - -955.1367187500 - -954.8905029297 - -954.5999145508 - -954.3720092773 - -954.0452270508 - -953.8319702148 - -953.5510864258 - -953.2567138672 - -953.0186157227 - -952.7214355469 - -952.4836425781 - -952.1819458008 - -951.9051513672 - -951.6573486328 - -951.3836669922 - -951.0748291016 - -950.8229370117 - -950.5631713867 - -950.2532348633 - -949.9933471680 - -949.7151489258 - -949.4290771484 - -949.1612548828 - -948.8692626953 - -948.5863037109 - -948.3167114258 - -948.0245361328 - -947.7441406250 - -947.4515991211 - -947.1838989258 - -946.8859252930 - -946.6086425781 - -946.2964477539 - -946.0438232422 - -945.7330322266 - -945.4483032227 - -945.1340332031 - -944.8931884766 - -944.5604858398 - -944.2684326172 - -944.0064697266 - -943.6674804688 - -943.3984985352 - -943.1142578125 - -942.7705688477 - -942.5203247070 - -942.2028808594 - -941.8987426758 - -941.5863647461 - -941.3274536133 - -940.9729003906 - -940.6942138672 - -940.3957519531 - -940.0775756836 - -939.7558593750 - -939.4978637695 - -939.1325073242 - -938.8572387695 - -938.5323486328 - -938.2238159180 - -937.9077148438 - -937.6040649414 - -937.2635498047 - -936.9841308594 - -936.6434936523 - -936.3099975586 - -936.0242919922 - -935.6945190430 - -935.3521728516 - -935.0518798828 - -934.7202758789 - -934.4009399414 - -934.0525512695 - -933.7386474609 - -933.4187622070 - -933.0758056641 - -932.7440185547 - -932.4020385742 - -932.1038818359 - -931.7241210938 - -931.4012451172 - -931.0801391602 - -930.7316894531 - -930.3747558594 - -930.0457153320 - -929.7193603516 - -929.3355102539 - -929.0224609375 - -928.6558227539 - -928.3032226562 - -927.9725952148 - -927.6006469727 - -927.2456665039 - -926.9164428711 - -926.5219726562 - -926.1878662109 - -925.8309936523 - -925.4291992188 - -925.1246948242 - -924.7225341797 - -924.3334350586 - -924.0214843750 - -923.6348876953 - -923.2168579102 - -922.8807983398 - -922.5334472656 - -922.1005859375 - -921.7308349609 - -921.3851928711 - -920.9788208008 - -920.5937500000 - -920.2061157227 - -919.8121948242 - -919.4780883789 - -918.9921264648 - -918.6586303711 - -918.2600708008 - -917.8594970703 - -917.4284057617 - -917.0605468750 - -916.6688232422 - -916.2177734375 - -915.8350219727 - -915.4232177734 - -915.0082397461 - -914.5880126953 - -914.1782226562 - -913.7542724609 - -913.3336791992 - -912.9438476562 - -912.4641723633 - -912.0835571289 - -911.6292114258 - -911.2071533203 - -910.7743530273 - -910.3451538086 - -909.8806152344 - -909.4942626953 - -909.0062255859 - -908.5703735352 - -908.1453857422 - -907.6963500977 - -907.2194213867 - -906.7728881836 - -906.3604736328 - -905.8593750000 - -905.4003906250 - -904.9859008789 - -904.4739990234 - -904.0480957031 - -903.5369873047 - -903.1168212891 - -902.6090087891 - -902.1658935547 - -901.6512451172 - -901.2130737305 - -900.7200927734 - -900.2258300781 - -899.7528076172 - -899.2796020508 - -898.7901000977 - -898.2804565430 - -897.8223876953 - -897.3127441406 - -896.8162841797 - -896.3341674805 - -895.8193359375 - -895.3495483398 - -894.8308715820 - -894.3233642578 - -893.8383789062 - -893.3262329102 - -892.8153686523 - -892.3176269531 - -891.8081665039 - -891.2845458984 - -890.7984008789 - -890.2597045898 - -889.7512817383 - -889.2598876953 - -888.7171630859 - -888.2119140625 - -887.6958618164 - -887.1707153320 - -886.6641845703 - -886.1224975586 - -885.6140136719 - -885.1176757812 - -884.5508422852 - -884.0573730469 - -883.5317382812 - -883.0068969727 - -882.4799194336 - -881.9691772461 - -881.4347534180 - -880.8963012695 - -880.4099121094 - -879.8536376953 - -879.3611450195 - -878.7852172852 - -878.3242797852 - -877.7661743164 - -877.2368774414 - -876.7261962891 - -876.2315063477 - -875.6862182617 - -875.1386108398 - -874.6705322266 - -874.1504516602 - -873.5686035156 - -873.1345214844 - -872.5783081055 - -872.0562133789 - -871.5812988281 - -871.0043334961 - -870.5789794922 - -870.0068359375 - -869.5092163086 - -869.0473632812 - -868.4798583984 - -868.0303344727 - -867.5056762695 - -867.0051269531 - -866.5241699219 - -866.0142211914 - -865.5330200195 - -865.0379028320 - -864.5515747070 - -864.0690917969 - -863.5695190430 - -863.1176147461 - -862.5907592773 - -862.1505126953 - -861.6788330078 - -861.1740722656 - -860.7297973633 - -860.2728881836 - -859.7833251953 - -859.3323974609 - -858.8746337891 - -858.4124755859 - -857.9695434570 - -857.5148315430 - -857.0492553711 - -856.6350097656 - -856.1823120117 - -855.7305297852 - -855.3029785156 - -854.8718261719 - -854.4519653320 - -853.9862060547 - -853.5901489258 - -853.1815185547 - -852.7363281250 - -852.3259277344 - -851.9248046875 - -851.5219116211 - -851.0850830078 - -850.7090454102 - -850.2968750000 - -849.9114990234 - -849.4932250977 - -849.1429443359 - -848.6934814453 - -848.3933105469 - -847.9240722656 - -847.6003417969 - -847.2209472656 - -846.8291015625 - -846.4647216797 - -846.1131591797 - -845.7330932617 - -845.3760986328 - -845.0202636719 - -844.6648559570 - -844.3126220703 - -843.9744873047 - -843.5960083008 - -843.2882080078 - -842.9428100586 - -842.5821533203 - -842.2521972656 - -841.9670410156 - -841.5740356445 - -841.2782592773 - -840.9525756836 - -840.6350708008 - -840.3024291992 - -839.9946899414 - -839.6994628906 - -839.3521728516 - -839.0880126953 - -838.7428588867 - -838.4634399414 - -838.1575927734 - -837.8471069336 - -837.5784912109 - -837.2432250977 - -836.9901123047 - -836.6763305664 - -836.4115600586 - -836.0913085938 - -835.8355102539 - -835.5610351562 - -835.2624511719 - -834.9667358398 - -834.7501831055 - -834.4395751953 - -834.1508178711 - -833.9238281250 - -833.6283569336 - -833.3798217773 - -833.0900878906 - -832.8550415039 - -832.5717163086 - -832.3466796875 - -832.0498657227 - -831.8159179688 - -831.5578613281 - -831.3226928711 - -831.0275268555 - -830.8208007812 - -830.5541992188 - -830.3008422852 - -830.0822753906 - -829.7792968750 - -829.6203613281 - -829.3236083984 - -829.0700683594 - -828.8751831055 - -828.6088256836 - -828.3744506836 - -828.1371459961 - -827.9048461914 - -827.6690063477 - -827.4404296875 - -827.1976318359 - -826.9795532227 - -826.7331542969 - -826.5123291016 - -826.2797241211 - -826.0425415039 - -825.8383789062 - -825.5950927734 - -825.3531494141 - -825.1622314453 - -824.9041748047 - -824.6937866211 - -824.4746093750 - -824.2189331055 - -824.0587158203 - -823.7744750977 - -823.5590820312 - -823.3802490234 - -823.1131591797 - -822.9017333984 - -822.6917114258 - -822.4757690430 - -822.2291259766 - -822.0211791992 - -821.8145141602 - -821.5533447266 - -821.3990478516 - -821.1041259766 - -820.9343261719 - -820.7058105469 - -820.4850463867 - -820.2406005859 - -820.0532226562 - -819.8370971680 - -819.5606079102 - -819.4018554688 - -819.1598510742 - -818.9335327148 - -818.7301025391 - -818.4854125977 - -818.2698974609 - -818.0833129883 - -817.8075561523 - -817.6206665039 - -817.3910522461 - -817.1849975586 - -816.9287109375 - -816.7423706055 - -816.4877319336 - -816.2958984375 - -816.0375366211 - -815.8356933594 - -815.6148681641 - -815.3948364258 - -815.1317138672 - -814.9461059570 - -814.7112426758 - -814.4734497070 - -814.2490234375 - -814.0430297852 - -813.7881469727 - -813.5724487305 - -813.3336181641 - -813.1224365234 - -812.8581542969 - -812.6702270508 - -812.3991088867 - -812.2135620117 - -811.9368286133 - -811.7167358398 - -811.5156860352 - -811.2081298828 - -811.0343627930 - -810.7885131836 - -810.5253295898 - -810.3242797852 - -810.0581665039 - -809.8270263672 - -809.6086425781 - -809.3553466797 - -809.0989379883 - -808.8754272461 - -808.6524047852 - -808.3540649414 - -808.1578369141 - -807.9054565430 - -807.6463623047 - -807.4114379883 - -807.1565551758 - -806.9246826172 - -806.6641235352 - -806.3856201172 - -806.2037353516 - -805.9016723633 - -805.6337890625 - -805.4408569336 - -805.1442871094 - -804.8922729492 - -804.6566162109 - -804.3621215820 - -804.1652832031 - -803.8528442383 - -803.6142578125 - -803.3569946289 - -803.0981445312 - -802.8577270508 - -802.5631103516 - -802.2979736328 - -802.0625000000 - -801.7944335938 - -801.5098266602 - -801.2355346680 - -801.0051269531 - -800.7191772461 - -800.4201049805 - -800.1992797852 - -799.9129028320 - -799.6240844727 - -799.3361816406 - -799.1134033203 - -798.8167724609 - -798.4945068359 - -798.2762451172 - -797.9880371094 - -797.6949462891 - -797.4132080078 - -797.1369628906 - -796.8555908203 - -796.5958251953 - -796.2655639648 - -796.0241088867 - -795.7008056641 - -795.4407348633 - -795.1608886719 - -794.8447265625 - -794.5953979492 - -794.2576904297 - -793.9884643555 - -793.7136230469 - -793.4084472656 - -793.1026611328 - -792.8272094727 - -792.5136108398 - -792.2058715820 - -791.9462890625 - -791.6277465820 - -791.3171386719 - -791.0175781250 - -790.7262573242 - -790.4253540039 - -790.1176147461 - -789.8095703125 - -789.4926147461 - -789.2048339844 - -788.8913574219 - -788.5759277344 - -788.2721557617 - -787.9600830078 - -787.6192626953 - -787.3608398438 - -787.0349121094 - -786.6909179688 - -786.4167480469 - -786.0684814453 - -785.7389526367 - -785.4603271484 - -785.1440429688 - -784.7727661133 - -784.4965209961 - -784.1643676758 - -783.8241577148 - -783.5181884766 - -783.1942138672 - -782.8781738281 - -782.5184936523 - -782.2037353516 - -781.8809814453 - -781.5641479492 - -781.2065429688 - -780.8814697266 - -780.5604248047 - -780.1928710938 - -779.8990478516 - -779.5599365234 - -779.2136230469 - -778.8851318359 - -778.5120849609 - -778.2176513672 - -777.8421630859 - -777.5415039062 - -777.1842651367 - -776.8187255859 - -776.4810791016 - -776.1614990234 - -775.7794189453 - -775.4729003906 - -775.1293945312 - -774.7449340820 - -774.4317626953 - -774.0303955078 - -773.7316284180 - -773.3468627930 - -773.0197143555 - -772.6802978516 - -772.2784423828 - -771.9717407227 - -771.5804443359 - -771.2213745117 - -770.8984375000 - -770.5092773438 - -770.1664428711 - -769.8005371094 - -769.4194946289 - -769.0672607422 - -768.7310791016 - -768.3364868164 - -768.0044555664 - -767.5968017578 - -767.2496948242 - -766.8764648438 - -766.5172119141 - -766.1502075195 - -765.7846069336 - -765.4114990234 - -765.0300292969 - -764.6671142578 - -764.2695922852 - -763.9317626953 - -763.5532836914 - -763.1648559570 - -762.8076171875 - -762.4372558594 - -762.0151367188 - -761.6830444336 - -761.2510986328 - -760.9196166992 - -760.5234375000 - -760.1525878906 - -759.7515258789 - -759.3996582031 - -758.9877929688 - -758.6035766602 - -758.1973876953 - -757.8596801758 - -757.4494018555 - -757.0712280273 - -756.6520996094 - -756.3177490234 - -755.8609008789 - -755.4982910156 - -755.1080322266 - -754.7355346680 - -754.3253173828 - -753.9199218750 - -753.5537719727 - -753.1120605469 - -752.7462158203 - -752.3422851562 - -751.9593505859 - -751.5495605469 - -751.1664428711 - -750.7599487305 - -750.3791503906 - -749.9154052734 - -749.5795288086 - -749.1278686523 - -748.7360839844 - -748.3770141602 - -747.9161376953 - -747.5525512695 - -747.1459350586 - -746.7344360352 - -746.3116455078 - -745.9299316406 - -745.4927978516 - -745.0714111328 - -744.6773071289 - -744.3156738281 - -743.8348388672 - -743.4406127930 - -743.0523681641 - -742.6105346680 - -742.1857299805 - -741.7710571289 - -741.4104614258 - -740.9592895508 - -740.5222167969 - -740.1507568359 - -739.7014160156 - -739.2703247070 - -738.8641357422 - -738.4306030273 - -738.0418701172 - -737.6254272461 - -737.1578979492 - -736.7864379883 - -736.3590698242 - -735.9390869141 - -735.4848632812 - -735.0957031250 - -734.6856689453 - -734.2374877930 - -733.7600708008 - -733.4066772461 - -732.9298706055 - -732.5075683594 - -732.1004638672 - -731.6575927734 - -731.2528076172 - -730.7936401367 - -730.3611450195 - -729.9279174805 - -729.4935302734 - -729.0521850586 - -728.6652221680 - -728.1613159180 - -727.7786254883 - -727.2927246094 - -726.8834228516 - -726.4353027344 - -726.0349121094 - -725.5317993164 - -725.1838378906 - -724.6743774414 - -724.2790527344 - -723.8282470703 - -723.3966674805 - -722.9463500977 - -722.5336914062 - -722.0501098633 - -721.6618041992 - -721.1959838867 - -720.7398071289 - -720.3306884766 - -719.8689575195 - -719.4367675781 - -718.9798583984 - -718.5498046875 - -718.0700073242 - -717.6387939453 - -717.1712036133 - -716.7331542969 - -716.2814331055 - -715.8060302734 - -715.3625488281 - -714.8992309570 - -714.4461059570 - -713.9902954102 - -713.5200195312 - -713.0690307617 - -712.5995483398 - -712.1934204102 - -711.7072753906 - -711.2403564453 - -710.8331909180 - -710.3728027344 - -709.9052124023 - -709.5018920898 - -709.0479736328 - -708.6375732422 - -708.1369628906 - -707.7879028320 - -707.3165893555 - -706.9399414062 - -706.5242919922 - -706.0878295898 - -705.7094726562 - -705.2845458984 - -704.8807373047 - -704.4451904297 - -704.0861206055 - -703.6267700195 - -703.2844848633 - -702.7906494141 - -702.3845214844 - -702.0272827148 - -701.5973510742 - -701.0751342773 - -700.6240844727 - -700.3717651367 - -699.8666992188 - -699.0082397461 - -697.1237182617 - -696.2791137695 - -695.7161254883 - -695.3632812500 - -694.9580078125 - -694.3580322266 - -693.8294067383 - -693.4243164062 - -693.0214233398 - -692.4088745117 - -691.9367675781 - -691.5197143555 - -691.0704956055 - -690.4796752930 - -690.0657348633 - -689.5906372070 - -689.0947875977 - -688.6336669922 - -688.0970458984 - -687.6826171875 - -687.1633300781 - -686.7123413086 - -686.1676635742 - -685.7244262695 - -685.2427978516 - -684.7370605469 - -684.2365722656 - -683.7646484375 - -683.2835693359 - -682.7877807617 - -682.2463989258 - -681.8405761719 - -681.2722778320 - -680.8433227539 - -680.2792968750 - -679.8414306641 - -679.3305053711 - -678.8220825195 - -678.3413696289 - -677.8515625000 - -677.3410644531 - -676.8498535156 - -676.3713378906 - -675.8681030273 - -675.3518676758 - -674.8858642578 - -674.3961181641 - -673.8696289062 - -673.3909912109 - -672.9201049805 - -672.4003906250 - -671.9206542969 - -671.3983154297 - -670.9442749023 - -670.4527587891 - -669.9027709961 - -669.4601440430 - -668.9517211914 - -668.4782104492 - -667.9252319336 - -667.4813842773 - -666.9943237305 - -666.4609985352 - -665.9838256836 - -665.4942016602 - -664.9882812500 - -664.5143432617 - -663.9725341797 - -663.5053710938 - -663.0257568359 - -662.5033569336 - -662.0147705078 - -661.5118408203 - -661.0202026367 - -660.5437011719 - -660.0089111328 - -659.5144042969 - -659.0824584961 - -658.5187377930 - -658.0242919922 - -657.5704956055 - -657.0344848633 - -656.5519409180 - -656.0556640625 - -655.5410156250 - -655.0782470703 - -654.5693359375 - -654.0443725586 - -653.5770874023 - -653.0961914062 - -652.5616455078 - -652.0739746094 - -651.6033935547 - -651.0830688477 - -650.5746459961 - -650.1026611328 - -649.5730590820 - -649.1141357422 - -648.5756835938 - -648.1087036133 - -647.6088256836 - -647.0803833008 - -646.6256103516 - -646.0920410156 - -645.6025390625 - -645.1019287109 - -644.6238403320 - -644.1138916016 - -643.5833129883 - -643.1369628906 - -642.6180419922 - -642.0872802734 - -641.6281127930 - -641.1273803711 - -640.6132812500 - -640.1196899414 - -639.6268920898 - -639.1309204102 - -638.6384887695 - -638.0989990234 - -637.6539306641 - -637.1141357422 - -636.6355590820 - -636.1325073242 - -635.6245727539 - -635.1530151367 - -634.6337890625 - -634.1115722656 - -633.6881103516 - -633.0872802734 - -632.6616821289 - -632.1329956055 - -631.6448974609 - -631.1358642578 - -630.6497192383 - -630.1494750977 - -629.6176147461 - -629.1791992188 - -628.6041870117 - -628.1788940430 - -627.6378173828 - -627.1380615234 - -626.6624145508 - -626.1357421875 - -625.6441040039 - -625.1676635742 - -624.6281738281 - -624.1664428711 - -623.6609497070 - -623.1361083984 - -622.6664428711 - -622.1533813477 - -621.6560058594 - -621.1460571289 - -620.6723632812 - -620.1607666016 - -619.6499633789 - -619.1735839844 - -618.6590576172 - -618.1625976562 - -617.6530761719 - -617.1845092773 - -616.6500854492 - -616.1809082031 - -615.6577148438 - -615.1896362305 - -614.6537475586 - -614.1633300781 - -613.7004394531 - -613.1618652344 - -612.6631469727 - -612.2062377930 - -611.6580810547 - -611.1683349609 - -610.7077026367 - -610.1778564453 - -609.6533813477 - -609.2267456055 - -608.6652221680 - -608.1789550781 - -607.7091064453 - -607.1735839844 - -606.7260131836 - -606.1688842773 - -605.7080688477 - -605.2108764648 - -604.7005004883 - -604.1679077148 - -603.7503662109 - -603.2105102539 - -602.6906738281 - -602.2136840820 - -601.7433471680 - -601.1936035156 - -600.7247924805 - -600.2351074219 - -599.7199096680 - -599.2537231445 - -598.6863403320 - -598.2604980469 - -597.7507324219 - -597.2280883789 - -596.7453002930 - -596.2540893555 - -595.7556762695 - -595.2401733398 - -594.7576293945 - -594.2772216797 - -593.7590332031 - -593.2626953125 - -592.7715454102 - -592.2832641602 - -591.7816162109 - -591.2631835938 - -590.8220825195 - -590.2589721680 - -589.8226928711 - -589.2794799805 - -588.8245849609 - -588.2961425781 - -587.8181152344 - -587.3157348633 - -586.8201293945 - -586.3277587891 - -585.8451538086 - -585.3333740234 - -584.8461303711 - -584.3450317383 - -583.8545532227 - -583.3627929688 - -582.8576660156 - -582.3836669922 - -581.8504028320 - -581.3992919922 - -580.8859252930 - -580.3731079102 - -579.9351806641 - -579.3660888672 - -578.9296875000 - -578.4173583984 - -577.9279174805 - -577.4073486328 - -576.9556274414 - -576.4361572266 - -575.9324951172 - -575.4608154297 - -574.9712524414 - -574.4622802734 - -573.9535522461 - -573.5007934570 - -572.9853515625 - -572.4959106445 - -571.9937133789 - -571.5292968750 - -570.9991455078 - -570.5350341797 - -570.0225830078 - -569.5437622070 - -569.0458984375 - -568.5476074219 - -568.0560302734 - -567.5784912109 - -567.0581054688 - -566.5924072266 - -566.0751342773 - -565.6040649414 - -565.1003417969 - -564.6124877930 - -564.1088867188 - -563.6345214844 - -563.1392211914 - -562.6275024414 - -562.1585693359 - -561.6475219727 - -561.1747436523 - -560.6546020508 - -560.1945190430 - -559.6618041992 - -559.2165527344 - -558.6909179688 - -558.1989746094 - -557.7333984375 - -557.2147216797 - -556.7238769531 - -556.2401733398 - -555.7642211914 - -555.2140502930 - -554.7896118164 - -554.2453613281 - -553.7856445312 - -553.2584228516 - -552.7795410156 - -552.3162841797 - -551.7638549805 - -551.3035888672 - -550.8290405273 - -550.2951049805 - -549.8228759766 - -549.3228149414 - -548.8432617188 - -548.3189086914 - -547.8448486328 - -547.3492431641 - -546.8417358398 - -546.3548583984 - -545.8653564453 - -545.3372802734 - -544.8905639648 - -544.3439941406 - -543.8860473633 - -543.3627319336 - -542.8760375977 - -542.3876342773 - -541.8690795898 - -541.3754272461 - -540.8789062500 - -540.3900146484 - -539.8861694336 - -539.3555908203 - -538.8995361328 - -538.3916015625 - -537.8583374023 - -537.3647460938 - -536.8981323242 - -536.3571777344 - -535.8666992188 - -535.3562622070 - -534.8729858398 - -534.3538818359 - -533.8381347656 - -533.3324584961 - -532.8568725586 - -532.3118896484 - -531.8306884766 - -531.2886352539 - -530.8270263672 - -530.2767333984 - -529.7888793945 - -529.2414550781 - -528.7975463867 - -528.2175903320 - -527.7350463867 - -527.1957397461 - -526.7228393555 - -526.1702270508 - -525.6492309570 - -525.1532592773 - -524.6261596680 - -524.0959472656 - -523.5917968750 - -523.0382690430 - -522.5543823242 - -522.0072021484 - -521.4700927734 - -520.9669799805 - -520.4353027344 - -519.8928222656 - -519.3618774414 - -518.8483276367 - -518.3096923828 - -517.7383422852 - -517.2664184570 - -516.6693725586 - -516.1798706055 - -515.5892333984 - -515.0841064453 - -514.5423583984 - -513.9647216797 - -513.4349365234 - -512.9076538086 - -512.3333740234 - -511.7744445801 - -511.2372436523 - -510.6974487305 - -510.1047058105 - -509.5614013672 - -509.0097656250 - -508.4479370117 - -507.8544921875 - -507.3117980957 - -506.7427368164 - -506.1664733887 - -505.5854492188 - -505.0027160645 - -504.4676513672 - -503.8371276855 - -503.2709350586 - -502.7091979980 - -502.0903930664 - -501.5150756836 - -500.9295654297 - -500.3146972656 - -499.7336425781 - -499.1304321289 - -498.5258789062 - -497.9118347168 - -497.3143310547 - -496.7119445801 - -496.0644531250 - -495.4920654297 - -494.8242187500 - -494.2471923828 - -493.5957641602 - -492.9438171387 - -492.3651428223 - -491.7054443359 - -491.0202941895 - -490.4589538574 - -489.7732238770 - -489.1000366211 - -488.4796752930 - -487.8292541504 - -487.1460266113 - -486.4800109863 - -485.8405761719 - -485.1461791992 - -484.4915161133 - -483.7854309082 - -483.1132202148 - -482.4765014648 - -481.7020874023 - -481.0502319336 - -480.3698730469 - -479.6555480957 - -478.9078063965 - -478.2559814453 - -477.5263366699 - -476.7860107422 - -476.0657348633 - -475.3492736816 - -474.6195678711 - -473.8648986816 - -473.1344299316 - -472.3804626465 - -471.6531066895 - -470.8900756836 - -470.0994873047 - -469.3948364258 - -468.5783081055 - -467.8119812012 - -467.0606079102 - -466.2613830566 - -465.4491577148 - -464.7208557129 - -463.8674011230 - -463.0768737793 - -462.2984008789 - -461.4739379883 - -460.6369018555 - -459.8270263672 - -459.0375671387 - -458.1508483887 - -457.3560791016 - -456.5062866211 - -455.6659240723 - -454.8175048828 - -453.9402160645 - -453.1219177246 - -452.2223510742 - -451.3807983398 - -450.4801330566 - -449.6260681152 - -448.7314758301 - -447.8366699219 - -446.9606628418 - -446.0581665039 - -445.1636352539 - -444.2539672852 - -443.3547363281 - -442.4271545410 - -441.5072631836 - -440.6072998047 - -439.6499328613 - -438.7460937500 - -437.8119506836 - -436.8529968262 - -435.9293518066 - -434.9815673828 - -434.0212707520 - -433.0799865723 - -432.1299438477 - -431.1334838867 - -430.2065429688 - -429.2261047363 - -428.2368164062 - -427.2928161621 - -426.3101501465 - -425.3083190918 - -424.3493041992 - -423.3439025879 - -422.3735046387 - -421.3580322266 - -420.3757324219 - -419.4182128906 - -418.3550109863 - -417.4015197754 - -416.3946533203 - -415.3709106445 - -414.4003906250 - -413.3616333008 - -412.3730468750 - -411.3529663086 - -410.3399658203 - -409.3520507812 - -408.3278503418 - -407.2798156738 - -406.3347778320 - -405.2473449707 - -404.2855529785 - -403.2360229492 - -402.2515869141 - -401.2454223633 - -400.1772460938 - -399.2064208984 - -398.2104187012 - -397.1282348633 - -396.2101135254 - -395.1235351562 - -394.1505126953 - -393.1487426758 - -392.0856628418 - -391.1578369141 - -390.1055908203 - -389.1043395996 - -388.1488037109 - -387.0839538574 - -386.1489257812 - -385.1253356934 - -384.1300354004 - -383.1821899414 - -382.1449890137 - -381.1943969727 - -380.2182312012 - -379.2278442383 - -378.2686462402 - -377.2749633789 - -376.3453674316 - -375.3337097168 - -374.3979492188 - -373.4628906250 - -372.4753417969 - -371.5378723145 - -370.6243286133 - -369.6437988281 - -368.7206115723 - -367.7976684570 - -366.8593139648 - -365.9432678223 - -365.0334777832 - -364.0938415527 - -363.2075805664 - -362.3115234375 - -361.3828735352 - -360.5080566406 - -359.6179809570 - -358.7314147949 - -357.8285827637 - -356.9710388184 - -356.1136169434 - -355.2239379883 - -354.3766784668 - -353.5244445801 - -352.6708374023 - -351.8174438477 - -350.9803161621 - -350.1528930664 - -349.3094177246 - -348.4919128418 - -347.6882629395 - -346.8291625977 - -346.0857543945 - -345.2108154297 - -344.4779052734 - -343.6467590332 - -342.8666381836 - -342.0947570801 - -341.3150634766 - -340.5220947266 - -339.7747192383 - -339.0208129883 - -338.2281188965 - -337.5153198242 - -336.7611694336 - -335.9850158691 - -335.2910156250 - -334.5597534180 - -333.7859802246 - -333.1044006348 - -332.4029541016 - -331.6384887695 - -330.9681396484 - -330.2592773438 - -329.5709228516 - -328.8565673828 - -328.1759643555 - -327.5128479004 - -326.8087768555 - -326.1539306641 - -325.4456787109 - -324.8343200684 - -324.1439514160 - -323.4708862305 - -322.8498840332 - -322.1971130371 - -321.5292358398 - -320.9018554688 - -320.2888488770 - -319.6137390137 - -319.0182495117 - -318.3840637207 - -317.7662963867 - -317.1341552734 - -316.5498657227 - -315.9161987305 - -315.3175659180 - -314.7318725586 - -314.0878601074 - -313.5555114746 - -312.9156799316 - -312.3323669434 - -311.7636718750 - -311.1926269531 - -310.5686950684 - -310.0375976562 - -309.4320678711 - -308.9029235840 - -308.2826538086 - -307.7557983398 - -307.1875000000 - -306.6190795898 - -306.0823669434 - -305.4836730957 - -305.0055541992 - -304.4042358398 - -303.8533935547 - -303.3522949219 - -302.7709350586 - -302.2489013672 - -301.7218933105 - -301.1586914062 - -300.6523437500 - -300.1214599609 - -299.5812683105 - -299.0621948242 - -298.5267639160 - -298.0264282227 - -297.4860839844 - -296.9617919922 - -296.4685058594 - -295.9514770508 - -295.4044189453 - -294.9281616211 - -294.4037780762 - -293.9013366699 - -293.3826293945 - -292.8663635254 - -292.4190673828 - -291.8501892090 - -291.3547363281 - -290.9089660645 - -290.3445434570 - -289.8842468262 - -289.3583984375 - -288.9056701660 - -288.3686828613 - -287.8805847168 - -287.4088134766 - -286.8860168457 - -286.4353332520 - -285.8870239258 - -285.4490051270 - -284.9468383789 - -284.4438781738 - -283.9627685547 - -283.4805908203 - -283.0076904297 - -282.4739685059 - -282.0294799805 - -281.5425720215 - -281.0515747070 - -280.5582275391 - -280.0836181641 - -279.5892944336 - -279.1518554688 - -278.5878295898 - -278.1740112305 - -277.6644592285 - -277.2090759277 - -276.6782836914 - -276.2538452148 - -275.7287597656 - -275.2881164551 - -274.7586669922 - -274.3142089844 - -273.8370056152 - -273.3541564941 - -272.8372802734 - -272.3999328613 - -271.9093017578 - -271.4290161133 - -270.9270629883 - -270.4850463867 - -269.9900512695 - -269.4996948242 - -269.0075378418 - -268.5682067871 - -268.0433349609 - -267.5916442871 - -267.0875854492 - -266.6419982910 - -266.1308593750 - -265.6463317871 - -265.1942749023 - -264.6645507812 - -264.2110595703 - -263.7448730469 - -263.2108764648 - -262.7849731445 - -262.2601928711 - -261.7854003906 - -261.3214416504 - -260.8191528320 - -260.3217163086 - -259.8621520996 - -259.3717041016 - -258.8532104492 - -258.3976440430 - -257.9177551270 - -257.3945617676 - -256.9261779785 - -256.4518432617 - -255.9374694824 - -255.4570007324 - -254.9535827637 - -254.4917907715 - -253.9827270508 - -253.4468078613 - -253.0406188965 - -252.4795684814 - -251.9977722168 - -251.5230712891 - -251.0003204346 - -250.5327758789 - -250.0124816895 - -249.5305786133 - -249.0140991211 - -248.5459899902 - -248.0373840332 - -247.5336914062 - -247.0144653320 - -246.5469665527 - -246.0312500000 - -245.5296936035 - -245.0090179443 - -244.5310974121 - -244.0249786377 - -243.4908447266 - -243.0246734619 - -242.5001220703 - -241.9938354492 - -241.4596252441 - -241.0057220459 - -240.4631805420 - -239.9282531738 - -239.4614868164 - -238.9389648438 - -238.4128265381 - -237.9071350098 - -237.3847503662 - -236.8884582520 - -236.3670043945 - -235.8342285156 - -235.3437194824 - -234.8005981445 - -234.2882385254 - -233.8000030518 - -233.2502746582 - -232.7499389648 - -232.1958618164 - -231.7038269043 - -231.1876068115 - -230.6394348145 - -230.1325531006 - -229.6055603027 - -229.0696411133 - -228.5238647461 - -228.0607147217 - -227.4719543457 - -226.9699859619 - -226.4299011230 - -225.8956604004 - -225.3927917480 - -224.8341522217 - -224.3117370605 - -223.7635955811 - -223.2452239990 - -222.7087554932 - -222.1642150879 - -221.6369171143 - -221.0882110596 - -220.5362091064 - -220.0394287109 - -219.4904327393 - -218.9240264893 - -218.4242858887 - -217.8384094238 - -217.3120574951 - -216.7686767578 - -216.2636871338 - -215.6392517090 - -215.1607818604 - -214.5930023193 - -214.0298004150 - -213.5002441406 - -212.9557037354 - -212.4135284424 - -211.8256530762 - -211.2944030762 - -210.7558288574 - -210.2014923096 - -209.6272430420 - -209.0816040039 - -208.5443420410 - -207.9476928711 - -207.4137573242 - -206.8983306885 - -206.2897949219 - -205.7571716309 - -205.1609497070 - -204.6391754150 - -204.0700531006 - -203.5064697266 - -202.9498901367 - -202.3831481934 - -201.8103942871 - -201.2388610840 - -200.6965942383 - -200.1390838623 - -199.5681610107 - -198.9747009277 - -198.4568481445 - -197.8139038086 - -197.3148193359 - -196.6973724365 - -196.1633758545 - -195.6102905273 - -194.9643096924 - -194.4721221924 - -193.8571472168 - -193.2622833252 - -192.7373504639 - -192.1452178955 - -191.5512237549 - -190.9965667725 - -190.4047241211 - -189.8095855713 - -189.2734375000 - -188.6766510010 - -188.0982055664 - -187.5055999756 - -186.9239349365 - -186.3565368652 - -185.7588195801 - -185.1961059570 - -184.6092224121 - -184.0247344971 - -183.4228363037 - -182.8585205078 - -182.2469177246 - -181.6793365479 - -181.1050109863 - -180.5007171631 - -179.9275817871 - -179.3348236084 - -178.7305297852 - -178.1588897705 - -177.5251617432 - -176.9932098389 - -176.3650665283 - -175.7944793701 - -175.1924133301 - -174.6051177979 - -174.0048522949 - -173.4099884033 - -172.7733917236 - -172.2592620850 - -171.5984954834 - -171.0461730957 - -170.4058837891 - -169.8477172852 - -169.2075805664 - -168.6231842041 - -168.0309143066 - -167.4271240234 - -166.8590545654 - -166.1859588623 - -165.6519012451 - -165.0007019043 - -164.4076538086 - -163.8158264160 - -163.2168579102 - -162.6010589600 - -162.0203094482 - -161.3841247559 - -160.8258361816 - -160.1475677490 - -159.5932464600 - -158.9506988525 - -158.3546447754 - -157.7823944092 - -157.1218261719 - -156.5420227051 - -155.9558868408 - -155.3217620850 - -154.6864318848 - -154.1268005371 - -153.4736022949 - -152.8450164795 - -152.2562713623 - -151.6776733398 - -151.0178375244 - -150.3946533203 - -149.8249206543 - -149.1696014404 - -148.5447082520 - -147.9477386475 - -147.3464965820 - -146.7274780273 - -146.0751647949 - -145.5070800781 - -144.8585815430 - -144.2162780762 - -143.6233673096 - -142.9994812012 - -142.3799896240 - -141.7729797363 - -141.1365966797 - -140.5355834961 - -139.9030914307 - -139.3048553467 - -138.6490173340 - -138.0527191162 - -137.4497833252 - -136.7848358154 - -136.1496887207 - -135.5811309814 - -134.8780059814 - -134.2971954346 - -133.6887817383 - -133.0287780762 - -132.4331359863 - -131.7878570557 - -131.1552886963 - -130.5312042236 - -129.8852539062 - -129.2605285645 - -128.6839904785 - -127.9745941162 - -127.3969192505 - -126.7229461670 - -126.1158905029 - -125.4878387451 - -124.8602218628 - -124.1853408813 - -123.6520996094 - -122.9313507080 - -122.3447799683 - -121.6952133179 - -121.1009140015 - -120.4258804321 - -119.8151779175 - -119.1751251221 - -118.5632781982 - -117.9203720093 - -117.2600555420 - -116.6648330688 - -116.0258178711 - -115.3786087036 - -114.7363128662 - -114.1285781860 - -113.4528045654 - -112.8210220337 - -112.1774291992 - -111.5481872559 - -110.8967132568 - -110.2406539917 - -109.6138534546 - -108.9548187256 - -108.3021087646 - -107.6927795410 - -106.9943771362 - -106.3940887451 - -105.6934814453 - -105.1407775879 - -104.4447097778 - -103.7911834717 - -103.1909790039 - -102.5569381714 - -101.8999176025 - -101.2873382568 - -100.6520767212 - -100.0731048584 - -99.3640670776 - -98.8257217407 - -98.1543045044 - -97.6179962158 - -96.9771804810 - -96.3676605225 - -95.7796936035 - -95.1700210571 - -94.6140823364 - -93.9247665405 - -93.3799591064 - -92.7808532715 - -92.2342910767 - -91.4884109497 - -90.9374618530 - -90.4212417603 - -89.7748641968 - -89.0157165527 - -88.4298477173 - -88.0240402222 - -87.3005371094 - -86.1401824951 - -83.5748443604 - -82.4161682129 - -81.6856384277 - -81.2676544189 - -80.6873168945 - -79.9187316895 - -79.2603378296 - -78.7383193970 - -78.1877212524 - -77.4274597168 - -76.8650970459 - -76.2711334229 - -75.7153625488 - -75.0072174072 - -74.4500427246 - -73.8342285156 - -73.2320098877 - -72.6195220947 - -71.9639892578 - -71.4230728149 - -70.7458267212 - -70.1950607300 - -69.4806365967 - -68.8976745605 - -68.2590789795 - -67.6340332031 - -66.9730224609 - -66.3375778198 - -65.7283935547 - -65.0713958740 - -64.3686065674 - -63.8159217834 - -63.1033134460 - -62.5057220459 - -61.7959251404 - -61.1887474060 - -60.5289993286 - -59.8644409180 - -59.2331314087 - -58.5753059387 - -57.9166717529 - -57.2809753418 - -56.6360855103 - -55.9955749512 - -55.3153533936 - -54.7032546997 - -54.0570030212 - -53.3983345032 - -52.7572326660 - -52.1545028687 - -51.4864807129 - -50.8419075012 - -50.2137374878 - -49.5772743225 - -48.9569816589 - -48.2698249817 - -47.6741905212 - -47.0176010132 - -46.4215087891 - -45.6954803467 - -45.1505889893 - -44.4776229858 - -43.8338699341 - -43.2022895813 - -42.5854568481 - -41.9090652466 - -41.3202934265 - -40.6063423157 - -40.0200042725 - -39.3906364441 - -38.7339820862 - -38.1031990051 - -37.4620628357 - -36.8128051758 - -36.2084274292 - -35.5372924805 - -34.9182510376 - -34.3362884521 - -33.6226005554 - -33.0368537903 - -32.4046249390 - -31.7289543152 - -31.1172313690 - -30.5078849792 - -29.8447341919 - -29.2412509918 - -28.5988426208 - -27.9791564941 - -27.3428268433 - -26.7279815674 - -26.0907516479 - -25.4602985382 - -24.8595905304 - -24.2064151764 - -23.5507507324 - -22.9704284668 - -22.3068943024 - -21.6869163513 - -21.0640773773 - -20.4607543945 - -19.8267345428 - -19.1608467102 - -18.5830421448 - -17.9429244995 - -17.2819862366 - -16.6865386963 - -16.0875587463 - -15.4482431412 - -14.7837009430 - -14.2162265778 - -13.5691947937 - -12.9205646515 - -12.3280353546 - -11.7315320969 - -11.0645112991 - -10.4759511948 - -9.8675899506 - -9.2195816040 - -8.6462955475 - -7.9588308334 - -7.3927154541 - -6.7403202057 - -6.1479167938 - -5.5207614899 - -4.9066257477 - -4.3066530228 - -3.6949348450 - -3.0339403152 - -2.4929304123 - -1.7960309982 - -1.2261066437 - -0.6033554077 - 0.0008039474 - 0.6029977798 - 1.2467012405 - 1.8250083923 - 2.4789762497 - 3.0386557579 - 3.7194557190 - 4.2442474365 - 4.8972101212 - 5.5061178207 - 6.1141457558 - 6.7226762772 - 7.3357663155 - 7.9192175865 - 8.5647563934 - 9.1125240326 - 9.7552051544 - 10.3503227234 - 10.9604454041 - 11.5705642700 - 12.1606845856 - 12.7797470093 - 13.3656139374 - 13.9543266296 - 14.5796966553 - 15.1578187943 - 15.7758111954 - 16.3752861023 - 16.9797172546 - 17.5548400879 - 18.1737976074 - 18.7529125214 - 19.3559532166 - 19.9558773041 - 20.5591239929 - 21.1676006317 - 21.7191314697 - 22.3368797302 - 22.9430713654 - 23.5088005066 - 24.1276931763 - 24.7320728302 - 25.2736854553 - 25.8893909454 - 26.5205631256 - 27.0273342133 - 27.6926479340 - 28.2635593414 - 28.8149261475 - 29.4507408142 - 29.9679508209 - 30.6298370361 - 31.1655826569 - 31.7727565765 - 32.3639945984 - 32.9489936829 - 33.4955444336 - 34.0938644409 - 34.6888122559 - 35.2690505981 - 35.8393898010 - 36.4332618713 - 37.0136642456 - 37.5591354370 - 38.1726837158 - 38.7220726013 - 39.3575096130 - 39.8835144043 - 40.4436492920 - 41.0591583252 - 41.6161079407 - 42.1819114685 - 42.7732276917 - 43.3517112732 - 43.9097404480 - 44.4611625671 - 45.0682220459 - 45.6322784424 - 46.1971359253 - 46.7489433289 - 47.3317794800 - 47.9221954346 - 48.4207725525 - 49.0685272217 - 49.5880317688 - 50.1635055542 - 50.7051925659 - 51.3129768372 - 51.8374252319 - 52.4231033325 - 52.9926528931 - 53.5179481506 - 54.0872268677 - 54.6601867676 - 55.2097702026 - 55.7768096924 - 56.3348083496 - 56.8780364990 - 57.4490280151 - 57.9916801453 - 58.5778388977 - 59.0988273621 - 59.6601181030 - 60.2260818481 - 60.7435455322 - 61.3627243042 - 61.8474235535 - 62.4181518555 - 62.9753875732 - 63.5321540833 - 64.0567016602 - 64.6309738159 - 65.1750259399 - 65.6916503906 - 66.2641677856 - 66.7961273193 - 67.3692169189 - 67.8784332275 - 68.4219131470 - 68.9852294922 - 69.5074462891 - 70.0564346313 - 70.6107482910 - 71.1292877197 - 71.6804656982 - 72.2101287842 - 72.7610321045 - 73.3090820312 - 73.8091125488 - 74.3629379272 - 74.9326553345 - 75.4160995483 - 75.9781875610 - 76.5066680908 - 77.0577316284 - 77.5563049316 - 78.1152954102 - 78.6443023682 - 79.1544189453 - 79.7039108276 - 80.2278213501 - 80.7731628418 - 81.2695541382 - 81.8197097778 - 82.3434448242 - 82.8876953125 - 83.3785095215 - 83.9276123047 - 84.4402313232 - 84.9791641235 - 85.4858398438 - 86.0324859619 - 86.5373611450 - 87.0463409424 - 87.6381225586 - 88.0724563599 - 88.6421279907 - 89.1703414917 - 89.6740188599 - 90.2017517090 - 90.7068786621 - 91.2602462769 - 91.7596054077 - 92.2570495605 - 92.8137969971 - 93.3203582764 - 93.8128738403 - 94.3533172607 - 94.8803558350 - 95.3705139160 - 95.8969650269 - 96.4301376343 - 96.9266815186 - 97.4328918457 - 97.9894638062 - 98.4452514648 - 99.0136947632 - 99.5056457520 - 100.0016632080 - 100.5532455444 - 101.0401306152 - 101.5609893799 - 102.0985031128 - 102.5819473267 - 103.1124725342 - 103.6024780273 - 104.1596679688 - 104.6288452148 - 105.1538314819 - 105.6827774048 - 106.2066116333 - 106.6802749634 - 107.2207489014 - 107.7318267822 - 108.2559967041 - 108.7294845581 - 109.2774505615 - 109.7961959839 - 110.3081512451 - 110.7858963013 - 111.3502273560 - 111.8260269165 - 112.3859481812 - 112.8439331055 - 113.4103393555 - 113.9000396729 - 114.4481124878 - 114.8932952881 - 115.4943237305 - 115.9677658081 - 116.5013885498 - 117.0036697388 - 117.5395355225 - 118.0662765503 - 118.5842590332 - 119.0735092163 - 119.6379470825 - 120.1458663940 - 120.6725311279 - 121.1828002930 - 121.7254867554 - 122.2651519775 - 122.7436294556 - 123.3206634521 - 123.8185195923 - 124.3741226196 - 124.8832626343 - 125.4115600586 - 125.9880523682 - 126.4718933105 - 127.0448455811 - 127.5389709473 - 128.1426696777 - 128.6280975342 - 129.1632843018 - 129.7678833008 - 130.2599945068 - 130.8093719482 - 131.3711547852 - 131.9159240723 - 132.4742431641 - 132.9928894043 - 133.5825195312 - 134.1361541748 - 134.6716613770 - 135.2355194092 - 135.8196411133 - 136.3590240479 - 136.9337768555 - 137.4963684082 - 138.0776367188 - 138.6514587402 - 139.1943511963 - 139.8060150146 - 140.3728942871 - 140.9345703125 - 141.5588531494 - 142.1062011719 - 142.6974334717 - 143.3374633789 - 143.8668365479 - 144.5020294189 - 145.0858001709 - 145.6979522705 - 146.3065490723 - 146.8815002441 - 147.5445404053 - 148.1147460938 - 148.7699279785 - 149.3427429199 - 150.0097808838 - 150.6326904297 - 151.2374267578 - 151.8722991943 - 152.5603637695 - 153.1306152344 - 153.8220825195 - 154.4620513916 - 155.1009216309 - 155.7759552002 - 156.4169921875 - 157.0941162109 - 157.7532653809 - 158.4384155273 - 159.0824432373 - 159.8046417236 - 160.4670867920 - 161.1336975098 - 161.8648834229 - 162.5561218262 - 163.2273559570 - 163.9494476318 - 164.6936187744 - 165.3501281738 - 166.1050415039 - 166.8178710938 - 167.5671691895 - 168.2815551758 - 169.0134429932 - 169.7792053223 - 170.5176239014 - 171.2786560059 - 172.0013275146 - 172.8106994629 - 173.5736999512 - 174.3007507324 - 175.1301727295 - 175.9126892090 - 176.6605377197 - 177.4877929688 - 178.2995300293 - 179.0581054688 - 179.9112396240 - 180.7179565430 - 181.5165405273 - 182.3635559082 - 183.2023620605 - 184.0284423828 - 184.8568725586 - 185.7495117188 - 186.5396728516 - 187.4608306885 - 188.2700195312 - 189.1777191162 - 190.0454101562 - 190.9114990234 - 191.8175659180 - 192.6971588135 - 193.5980529785 - 194.5021667480 - 195.4153594971 - 196.3277435303 - 197.2314453125 - 198.1767883301 - 199.0932922363 - 200.0133514404 - 200.9688873291 - 201.9170989990 - 202.8666534424 - 203.7988586426 - 204.7889099121 - 205.7397766113 - 206.6892852783 - 207.6890106201 - 208.6558074951 - 209.6332397461 - 210.6318664551 - 211.6136627197 - 212.5976867676 - 213.6399230957 - 214.6104583740 - 215.6130981445 - 216.6595001221 - 217.6520080566 - 218.6536102295 - 219.7230224609 - 220.7142944336 - 221.7695007324 - 222.7881774902 - 223.8428344727 - 224.8781890869 - 225.8865356445 - 226.9910888672 - 227.9963989258 - 229.0531463623 - 230.1374359131 - 231.1358642578 - 232.2579650879 - 233.2775573730 - 234.3422393799 - 235.4481811523 - 236.4444274902 - 237.5618133545 - 238.6332244873 - 239.6577606201 - 240.8088989258 - 241.7911529541 - 242.9300079346 - 243.9824066162 - 245.0187072754 - 246.1502990723 - 247.2083435059 - 248.2536621094 - 249.3725280762 - 250.3816528320 - 251.5332031250 - 252.5404510498 - 253.6402740479 - 254.7339172363 - 255.7670898438 - 256.8488769531 - 257.9251098633 - 258.9649047852 - 260.0710449219 - 261.0911865234 - 262.1756591797 - 263.2395019531 - 264.2481994629 - 265.3687438965 - 266.3812866211 - 267.4204711914 - 268.4904785156 - 269.5159912109 - 270.5783996582 - 271.5876464844 - 272.6510925293 - 273.6813659668 - 274.6793823242 - 275.7268676758 - 276.7559814453 - 277.7345581055 - 278.7866210938 - 279.7871093750 - 280.7801208496 - 281.7923278809 - 282.7890014648 - 283.7644042969 - 284.7758789062 - 285.7548217773 - 286.7103881836 - 287.7181396484 - 288.6657104492 - 289.6333618164 - 290.6068115234 - 291.5602416992 - 292.5122375488 - 293.4514160156 - 294.4045104980 - 295.3260192871 - 296.2644958496 - 297.2029418945 - 298.1072998047 - 299.0471191406 - 299.9353942871 - 300.8759765625 - 301.7425231934 - 302.6552429199 - 303.5562133789 - 304.4249267578 - 305.3306274414 - 306.1586608887 - 307.0855712891 - 307.9196166992 - 308.7690429688 - 309.6430053711 - 310.5093383789 - 311.3270263672 - 312.1559143066 - 313.0464782715 - 313.8143920898 - 314.6618957520 - 315.5034179688 - 316.2863464355 - 317.0903625488 - 317.9458923340 - 318.6871643066 - 319.5046997070 - 320.3132629395 - 321.0708618164 - 321.8594970703 - 322.6237182617 - 323.4140014648 - 324.1760864258 - 324.9233703613 - 325.6825561523 - 326.4477233887 - 327.2156982422 - 327.8971252441 - 328.6763305664 - 329.4236755371 - 330.1312255859 - 330.8220214844 - 331.6183471680 - 332.2910766602 - 332.9896850586 - 333.7308349609 - 334.4111328125 - 335.1333007812 - 335.8056030273 - 336.5035705566 - 337.2051391602 - 337.8903503418 - 338.5425720215 - 339.2362365723 - 339.9533081055 - 340.5412597656 - 341.2569580078 - 341.9386901855 - 342.5496826172 - 343.2221679688 - 343.9060058594 - 344.5069580078 - 345.2004394531 - 345.7969970703 - 346.4766845703 - 347.0980224609 - 347.7245788574 - 348.3647155762 - 348.9900207520 - 349.6278686523 - 350.2203369141 - 350.8686828613 - 351.4812927246 - 352.0741577148 - 352.7212524414 - 353.3072204590 - 353.8981323242 - 354.5510253906 - 355.1115722656 - 355.7172241211 - 356.3235168457 - 356.9209289551 - 357.5165710449 - 358.0818176270 - 358.6986083984 - 359.2854003906 - 359.8566894531 - 360.4263916016 - 361.0440673828 - 361.6016845703 - 362.1676330566 - 362.7471923828 - 363.3429260254 - 363.8991088867 - 364.4417724609 - 365.0518798828 - 365.6152343750 - 366.1370849609 - 366.7568359375 - 367.2688598633 - 367.8855895996 - 368.3810729980 - 368.9785461426 - 369.5378723145 - 370.0726928711 - 370.6333007812 - 371.1873168945 - 371.7543945312 - 372.2726440430 - 372.8336791992 - 373.4035034180 - 373.9154663086 - 374.4859008789 - 375.0128173828 - 375.5751953125 - 376.1150817871 - 376.6385498047 - 377.1837768555 - 377.7560119629 - 378.2570800781 - 378.8182373047 - 379.3194274902 - 379.9301757812 - 380.3937988281 - 380.9650573730 - 381.4748229980 - 382.0531005859 - 382.5340270996 - 383.1043701172 - 383.6048583984 - 384.1785888672 - 384.6753234863 - 385.2048950195 - 385.7438964844 - 386.2931518555 - 386.7945556641 - 387.3309936523 - 387.8484497070 - 388.4127807617 - 388.9014282227 - 389.4244689941 - 389.9796447754 - 390.5143432617 - 390.9938659668 - 391.5545043945 - 392.0763244629 - 392.5976867676 - 393.1123657227 - 393.6390991211 - 394.1807861328 - 394.6900024414 - 395.2153320312 - 395.7540588379 - 396.2410888672 - 396.8170166016 - 397.2856445312 - 397.8441467285 - 398.3594970703 - 398.8700561523 - 399.4064331055 - 399.9316101074 - 400.4307861328 - 400.9786376953 - 401.4953002930 - 402.0150756836 - 402.5169372559 - 403.0801696777 - 403.5814208984 - 404.0720520020 - 404.6489562988 - 405.1433410645 - 405.6561584473 - 406.1996765137 - 406.6978149414 - 407.2725830078 - 407.7181701660 - 408.3033447266 - 408.8086242676 - 409.3190917969 - 409.8461608887 - 410.3842163086 - 410.8894348145 - 411.4082641602 - 411.9630126953 - 412.4398498535 - 412.9988403320 - 413.4958496094 - 414.0466918945 - 414.5462646484 - 415.0888061523 - 415.5926208496 - 416.1366882324 - 416.6573486328 - 417.1669921875 - 417.7071533203 - 418.2189636230 - 418.7573852539 - 419.2643432617 - 419.8161010742 - 420.3066406250 - 420.8627929688 - 421.3815307617 - 421.8967590332 - 422.4299011230 - 422.9632873535 - 423.4765014648 - 424.0216674805 - 424.5205078125 - 425.0802001953 - 425.5870971680 - 426.1166687012 - 426.6470031738 - 427.1924133301 - 427.6799926758 - 428.2279052734 - 428.7651977539 - 429.2981872559 - 429.8023071289 - 430.3386230469 - 430.8953247070 - 431.3861083984 - 431.9389648438 - 432.4675903320 - 433.0177917480 - 433.4862670898 - 434.0932922363 - 434.5715332031 - 435.1206359863 - 435.6691284180 - 436.1584777832 - 436.7290039062 - 437.2421875000 - 437.7866210938 - 438.3135986328 - 438.8436584473 - 439.3840637207 - 439.9089965820 - 440.4592285156 - 440.9860839844 - 441.5086975098 - 442.0455017090 - 442.5917053223 - 443.1029052734 - 443.6754760742 - 444.1734924316 - 444.7488403320 - 445.2262573242 - 445.8363647461 - 446.3121032715 - 446.8722534180 - 447.4174804688 - 447.9439086914 - 448.4760742188 - 449.0119628906 - 449.5762329102 - 450.0966186523 - 450.6203002930 - 451.1749267578 - 451.7198486328 - 452.2522888184 - 452.7757873535 - 453.3458862305 - 453.8912658691 - 454.3622436523 - 454.9725341797 - 455.4812927246 - 456.0451965332 - 456.5710144043 - 457.0900268555 - 457.6751098633 - 458.1927185059 - 458.7179870605 - 459.2804870605 - 459.8594055176 - 460.3295288086 - 460.8991699219 - 461.4532470703 - 462.0016784668 - 462.5023803711 - 463.1114807129 - 463.5971679688 - 464.1828918457 - 464.6950073242 - 465.2250366211 - 465.8384704590 - 466.3052368164 - 466.8807373047 - 467.4566040039 - 467.9588623047 - 468.5004577637 - 469.0911560059 - 469.5969848633 - 470.1461791992 - 470.7292175293 - 471.2358398438 - 471.7791137695 - 472.3563537598 - 472.8800659180 - 473.4469604492 - 473.9660949707 - 474.5462036133 - 475.0636596680 - 475.6207275391 - 476.1663818359 - 476.7308654785 - 477.2549743652 - 477.8184814453 - 478.3728332520 - 478.8969726562 - 479.4583129883 - 480.0018920898 - 480.5632019043 - 481.0909423828 - 481.6573486328 - 482.2214355469 - 482.7260437012 - 483.3172607422 - 483.8432006836 - 484.3885192871 - 484.9598693848 - 485.4915466309 - 486.0421142578 - 486.6365661621 - 487.1068725586 - 487.7352294922 - 488.2251281738 - 488.8125915527 - 489.3554687500 - 489.9047851562 - 490.4608154297 - 491.0010070801 - 491.5778198242 - 492.0604248047 - 492.7129516602 - 493.1862792969 - 493.7682189941 - 494.3346862793 - 494.8607482910 - 495.4192199707 - 495.9772644043 - 496.5071411133 - 497.1005249023 - 497.5972290039 - 498.1995849609 - 498.7348327637 - 499.2930908203 - 499.8381958008 - 500.3784179688 - 500.9557495117 - 501.5039062500 - 502.0184936523 - 502.6037902832 - 503.1795654297 - 503.6775207520 - 504.2669372559 - 504.8334045410 - 505.3647460938 - 505.9124145508 - 506.4689025879 - 507.0541076660 - 507.5613403320 - 508.1495666504 - 508.7068481445 - 509.2306213379 - 509.8148803711 - 510.3367309570 - 510.9252319336 - 511.4466247559 - 512.0164184570 - 512.5947875977 - 513.1203613281 - 513.6673583984 - 514.2526245117 - 514.7901611328 - 515.3228759766 - 515.8959350586 - 516.4626464844 - 516.9832153320 - 517.5597534180 - 518.1079101562 - 518.6454467773 - 519.2423095703 - 519.7634887695 - 520.3039550781 - 520.9320678711 - 521.4227905273 - 521.9721069336 - 522.5662841797 - 523.0978393555 - 523.6528320312 - 524.2146606445 - 524.7621459961 - 525.3431396484 - 525.8837280273 - 526.4030151367 - 527.0140380859 - 527.5394287109 - 528.1126098633 - 528.6576538086 - 529.1967773438 - 529.7827148438 - 530.3404541016 - 530.8306884766 - 531.4537963867 - 531.9806518555 - 532.5507202148 - 533.0534057617 - 533.6640014648 - 534.2111816406 - 534.7336425781 - 535.3072509766 - 535.8518676758 - 536.4334716797 - 536.9599609375 - 537.5026245117 - 538.0875244141 - 538.6401367188 - 539.1654052734 - 539.7478027344 - 540.3095703125 - 540.8534545898 - 541.4043579102 - 541.9766235352 - 542.5325317383 - 543.0741577148 - 543.6466674805 - 544.2192993164 - 544.7214965820 - 545.3489990234 - 545.8415527344 - 546.4732666016 - 546.9358520508 - 547.5438842773 - 548.1040039062 - 548.6400756836 - 549.1763305664 - 549.7413940430 - 550.3009643555 - 550.8455200195 - 551.3452148438 - 551.9589233398 - 552.4562377930 - 553.0401611328 - 553.5064697266 - 554.0980224609 - 554.6196289062 - 555.1653442383 - 555.6987915039 - 556.1688232422 - 556.8165283203 - 557.3137207031 - 557.7960815430 - 558.3130493164 - 558.9915161133 - 559.4513549805 - 559.9052124023 - 560.4915161133 - 561.1625976562 - 561.6320190430 - 562.0176391602 - 562.6495971680 - 563.6150512695 - 565.7630615234 - 566.7395629883 - 567.3247680664 - 567.6290283203 - 568.1357421875 - 568.7437133789 - 569.2500000000 - 569.6654663086 - 570.1277465820 - 570.7104492188 - 571.1221313477 - 571.6387329102 - 572.0629272461 - 572.5852050781 - 573.0472412109 - 573.5399169922 - 573.9907226562 - 574.4924316406 - 574.9860839844 - 575.4216918945 - 575.9669799805 - 576.3815917969 - 576.9595947266 - 577.4326782227 - 577.9548339844 - 578.4315795898 - 578.9700927734 - 579.4967651367 - 579.9731445312 - 580.5102539062 - 581.0734863281 - 581.5362548828 - 582.0880737305 - 582.5986328125 - 583.1502685547 - 583.6666259766 - 584.1926879883 - 584.7283935547 - 585.2401123047 - 585.7842407227 - 586.3089599609 - 586.8169555664 - 587.3519897461 - 587.8556518555 - 588.4085693359 - 588.9047241211 - 589.4308471680 - 589.9392089844 - 590.4685058594 - 590.9451904297 - 591.4755249023 - 592.0088500977 - 592.4736328125 - 593.0197753906 - 593.5034179688 - 594.0335693359 - 594.5272216797 - 595.0502929688 - 595.5138549805 - 596.1020507812 - 596.5146484375 - 597.0853881836 - 597.5637817383 - 598.0793457031 - 598.5593872070 - 599.1167602539 - 599.5680541992 - 600.1485595703 - 600.6029663086 - 601.1124267578 - 601.6221313477 - 602.1251220703 - 602.6298217773 - 603.1585083008 - 603.6319580078 - 604.1524047852 - 604.6308593750 - 605.1135864258 - 605.6714477539 - 606.0977783203 - 606.6378173828 - 607.1634521484 - 607.6428222656 - 608.1041259766 - 608.6320190430 - 609.1176757812 - 609.6184082031 - 610.0671386719 - 610.6001586914 - 611.0855102539 - 611.5527954102 - 612.0560302734 - 612.5295410156 - 613.0358276367 - 613.5577392578 - 613.9981079102 - 614.5115966797 - 615.0271606445 - 615.4677124023 - 615.9489746094 - 616.4456176758 - 616.9636230469 - 617.4172363281 - 617.8895874023 - 618.4390258789 - 618.8743896484 - 619.3377075195 - 619.8327026367 - 620.3466186523 - 620.7923583984 - 621.2903442383 - 621.7789916992 - 622.2512817383 - 622.6881103516 - 623.2224121094 - 623.6539306641 - 624.1174316406 - 624.6397705078 - 625.0484619141 - 625.5895385742 - 626.0342407227 - 626.5196533203 - 626.9724121094 - 627.4550170898 - 627.9121704102 - 628.3838500977 - 628.8260498047 - 629.3427734375 - 629.7698974609 - 630.2643432617 - 630.7344970703 - 631.1848144531 - 631.6461181641 - 632.0836791992 - 632.6091308594 - 633.0177612305 - 633.5143432617 - 633.9553222656 - 634.4503173828 - 634.8496704102 - 635.3349609375 - 635.7924194336 - 636.2722778320 - 636.7023925781 - 637.1743774414 - 637.6147460938 - 638.0899658203 - 638.4894409180 - 638.9940795898 - 639.4043579102 - 639.8936767578 - 640.3394775391 - 640.7699584961 - 641.2327270508 - 641.6799926758 - 642.0938110352 - 642.5655517578 - 642.9982299805 - 643.4550170898 - 643.9006958008 - 644.3413085938 - 644.7766113281 - 645.2152099609 - 645.6561889648 - 646.0809936523 - 646.5557861328 - 646.9679565430 - 647.4338378906 - 647.8378906250 - 648.2702026367 - 648.7241821289 - 649.1563720703 - 649.5812377930 - 650.0414428711 - 650.4322509766 - 650.8700561523 - 651.3378295898 - 651.7075805664 - 652.1920776367 - 652.6030883789 - 652.9995727539 - 653.4632568359 - 653.8286132812 - 654.3119506836 - 654.6933593750 - 655.1502075195 - 655.5695190430 - 655.9562988281 - 656.3977050781 - 656.7984008789 - 657.2133789062 - 657.6484985352 - 658.0745239258 - 658.4586791992 - 658.9019775391 - 659.2698974609 - 659.7187500000 - 660.1158447266 - 660.5472412109 - 660.9483032227 - 661.3190307617 - 661.7636718750 - 662.1561889648 - 662.5546264648 - 662.9854736328 - 663.3792724609 - 663.7736816406 - 664.1600341797 - 664.5960693359 - 664.9863891602 - 665.3831787109 - 665.7622680664 - 666.1766357422 - 666.5860595703 - 666.9285278320 - 667.3835449219 - 667.7637939453 - 668.1253662109 - 668.5216064453 - 668.9484252930 - 669.2945556641 - 669.7130737305 - 670.1125488281 - 670.4457397461 - 670.8579711914 - 671.2468872070 - 671.6235961914 - 672.0136718750 - 672.4001464844 - 672.7619628906 - 673.1545410156 - 673.5330810547 - 673.9212036133 - 674.2891845703 - 674.6578979492 - 675.0348510742 - 675.4100952148 - 675.8146362305 - 676.1398315430 - 676.5245361328 - 676.9110107422 - 677.2654418945 - 677.6381835938 - 678.0216674805 - 678.3728637695 - 678.7131958008 - 679.1235351562 - 679.4505615234 - 679.8427734375 - 680.1902465820 - 680.5291748047 - 680.9252319336 - 681.2437133789 - 681.6422119141 - 681.9830932617 - 682.3340454102 - 682.6879882812 - 683.0418701172 - 683.4099121094 - 683.7731933594 - 684.0672607422 - 684.4601440430 - 684.8354492188 - 685.1296386719 - 685.4958496094 - 685.8552246094 - 686.2174682617 - 686.5136108398 - 686.8884277344 - 687.2456054688 - 687.5518798828 - 687.9039306641 - 688.2589111328 - 688.6047973633 - 688.9123535156 - 689.2567138672 - 689.6199951172 - 689.9424438477 - 690.2685546875 - 690.6059570312 - 690.9197998047 - 691.3012695312 - 691.5790405273 - 691.9473876953 - 692.2571411133 - 692.5816040039 - 692.9613647461 - 693.2194213867 - 693.5706176758 - 693.9412841797 - 694.2059936523 - 694.5563964844 - 694.8869018555 - 695.2042846680 - 695.5288696289 - 695.8362426758 - 696.1772460938 - 696.5010986328 - 696.7752685547 - 697.1453247070 - 697.4495849609 - 697.7457275391 - 698.0774536133 - 698.4083251953 - 698.7017211914 - 699.0079345703 - 699.3547363281 - 699.6245727539 - 699.9714965820 - 700.2865600586 - 700.5427246094 - 700.9229125977 - 701.1997680664 - 701.4997558594 - 701.8512573242 - 702.1144409180 - 702.4594116211 - 702.7258300781 - 703.0711059570 - 703.3524169922 - 703.6693725586 - 703.9677124023 - 704.2976684570 - 704.5756225586 - 704.8840332031 - 705.1967163086 - 705.5100708008 - 705.7712402344 - 706.1133422852 - 706.4130249023 - 706.7117309570 - 706.9874267578 - 707.3292846680 - 707.5960083008 - 707.9338378906 - 708.1920166016 - 708.5323486328 - 708.8141479492 - 709.1281738281 - 709.3837280273 - 709.7485351562 - 710.0103149414 - 710.3096313477 - 710.6260986328 - 710.9158935547 - 711.2228393555 - 711.5406494141 - 711.7825927734 - 712.1397094727 - 712.4340209961 - 712.7082519531 - 713.0262451172 - 713.3319091797 - 713.6435546875 - 713.8923339844 - 714.2675781250 - 714.5078125000 - 714.8500366211 - 715.1364746094 - 715.4281005859 - 715.7630615234 - 716.0514526367 - 716.3552246094 - 716.6421508789 - 717.0001831055 - 717.2581787109 - 717.5578002930 - 717.9303588867 - 718.1740722656 - 718.5103149414 - 718.8192138672 - 719.1165771484 - 719.4570922852 - 719.7324218750 - 720.0664672852 - 720.3931884766 - 720.6832275391 - 721.0076293945 - 721.3323364258 - 721.6375122070 - 721.9714355469 - 722.2796020508 - 722.6123657227 - 722.9315185547 - 723.2497558594 - 723.5803833008 - 723.9053955078 - 724.2266845703 - 724.5890502930 - 724.8739013672 - 725.2177124023 - 725.6088256836 - 725.8598632812 - 726.2549438477 - 726.5679321289 - 726.9163818359 - 727.2752075195 - 727.5764160156 - 727.9709472656 - 728.2950439453 - 728.6570434570 - 728.9805908203 - 729.3774414062 - 729.7044067383 - 730.0765380859 - 730.4144287109 - 730.8104858398 - 731.1456909180 - 731.5466918945 - 731.8792724609 - 732.2634887695 - 732.6738891602 - 732.9979858398 - 733.3964843750 - 733.7932128906 - 734.1754150391 - 734.5332641602 - 734.9621582031 - 735.3311767578 - 735.7423095703 - 736.1171264648 - 736.5516967773 - 736.9260864258 - 737.3468627930 - 737.7687988281 - 738.1489257812 - 738.6058959961 - 738.9860229492 - 739.4435424805 - 739.8498535156 - 740.2704467773 - 740.7194213867 - 741.1495361328 - 741.5919189453 - 742.0004272461 - 742.5096435547 - 742.9183349609 - 743.3563842773 - 743.8433227539 - 744.3067016602 - 744.7308959961 - 745.2319335938 - 745.6957397461 - 746.1596069336 - 746.6471557617 - 747.1247558594 - 747.6014404297 - 748.1080932617 - 748.5893554688 - 749.0783081055 - 749.5907592773 - 750.1072998047 - 750.5543823242 - 751.1524658203 - 751.5840454102 - 752.1621704102 - 752.6486816406 - 753.1916503906 - 753.7161254883 - 754.2571411133 - 754.7725219727 - 755.3395385742 - 755.8803100586 - 756.4193725586 - 756.9641113281 - 757.5473632812 - 758.0934448242 - 758.6300048828 - 759.2326049805 - 759.7952270508 - 760.3676147461 - 760.9331054688 - 761.5319213867 - 762.1225585938 - 762.6808471680 - 763.2932739258 - 763.8888549805 - 764.4776000977 - 765.0869750977 - 765.6889038086 - 766.2853393555 - 766.9273681641 - 767.5260009766 - 768.1212768555 - 768.7766723633 - 769.3925170898 - 769.9842529297 - 770.6632080078 - 771.2623901367 - 771.9157104492 - 772.5463867188 - 773.1885375977 - 773.8334960938 - 774.4609375000 - 775.1339111328 - 775.7601318359 - 776.4146728516 - 777.0952148438 - 777.6938476562 - 778.4187011719 - 779.0325927734 - 779.6860351562 - 780.4113159180 - 780.9892578125 - 781.7213745117 - 782.3571166992 - 783.0226440430 - 783.7444458008 - 784.3265991211 - 785.0673828125 - 785.7369995117 - 786.3596191406 - 787.0697021484 - 787.7617797852 - 788.4089355469 - 789.0856933594 - 789.7536010742 - 790.4770507812 - 791.0870971680 - 791.8141479492 - 792.4702148438 - 793.1660766602 - 793.8139648438 - 794.5043334961 - 795.1831054688 - 795.8571166992 - 796.5254516602 - 797.2062377930 - 797.8831787109 - 798.5208129883 - 799.2447509766 - 799.8857421875 - 800.5429687500 - 801.2346191406 - 801.8870239258 - 802.5631103516 - 803.2197875977 - 803.8793334961 - 804.5632934570 - 805.1967163086 - 805.8557128906 - 806.5358886719 - 807.1608276367 - 807.8332519531 - 808.4824829102 - 809.1202392578 - 809.7733764648 - 810.4240722656 - 811.0471191406 - 811.6973266602 - 812.3494873047 - 812.9554443359 - 813.6105957031 - 814.2252197266 - 814.8562622070 - 815.5000000000 - 816.0957031250 - 816.7343139648 - 817.3530273438 - 817.9613647461 - 818.5624389648 - 819.1851806641 - 819.8067016602 - 820.3751220703 - 821.0151367188 - 821.5837402344 - 822.2183227539 - 822.7630004883 - 823.3941650391 - 823.9512329102 - 824.5729980469 - 825.1217041016 - 825.6903686523 - 826.3159790039 - 826.8473510742 - 827.4100341797 - 828.0036621094 - 828.5723876953 - 829.1103515625 - 829.6597900391 - 830.2665405273 - 830.7610473633 - 831.3387451172 - 831.8853149414 - 832.4219360352 - 832.9544067383 - 833.5250244141 - 834.0088500977 - 834.5921630859 - 835.0985107422 - 835.6191406250 - 836.1497192383 - 836.6630859375 - 837.1907958984 - 837.7076416016 - 838.2188720703 - 838.7081298828 - 839.2560424805 - 839.7550659180 - 840.2145996094 - 840.7490844727 - 841.2506713867 - 841.7416992188 - 842.1749267578 - 842.7587280273 - 843.1883544922 - 843.6737060547 - 844.1632080078 - 844.6367187500 - 845.1376953125 - 845.5769042969 - 846.0418701172 - 846.5603027344 - 847.0036010742 - 847.4301147461 - 847.9346313477 - 848.4175415039 - 848.8096923828 - 849.2947998047 - 849.7835083008 - 850.1741943359 - 850.6603393555 - 851.1115722656 - 851.5245971680 - 852.0093994141 - 852.4177856445 - 852.8660278320 - 853.3159179688 - 853.7321777344 - 854.1699218750 - 854.6158447266 - 855.0195922852 - 855.4731445312 - 855.8905639648 - 856.3024902344 - 856.7332763672 - 857.1688842773 - 857.5681762695 - 857.9700317383 - 858.4330444336 - 858.8074340820 - 859.2287597656 - 859.6414794922 - 860.0618286133 - 860.4620361328 - 860.8504028320 - 861.2794799805 - 861.6774902344 - 862.0821533203 - 862.4603881836 - 862.8843994141 - 863.2845458984 - 863.6497802734 - 864.0580444336 - 864.4760742188 - 864.8337402344 - 865.2396850586 - 865.6295776367 - 866.0194091797 - 866.3939208984 - 866.8039550781 - 867.1481933594 - 867.5912475586 - 867.9175415039 - 868.3198242188 - 868.7108764648 - 869.0794677734 - 869.4378051758 - 869.8577270508 - 870.2007446289 - 870.5779418945 - 870.9571533203 - 871.3497314453 - 871.6730957031 - 872.0876464844 - 872.4432983398 - 872.7936401367 - 873.1978149414 - 873.5334472656 - 873.8992919922 - 874.3052368164 - 874.6184082031 - 875.0065307617 - 875.3565673828 - 875.7526245117 - 876.0671997070 - 876.4558715820 - 876.8013916016 - 877.1795043945 - 877.5107421875 - 877.8824462891 - 878.2286987305 - 878.6010742188 - 878.9372558594 - 879.2920532227 - 879.6563110352 - 880.0029296875 - 880.3541259766 - 880.7064208984 - 881.0390014648 - 881.4241943359 - 881.7503662109 - 882.0776367188 - 882.4598999023 - 882.8079833984 - 883.1220703125 - 883.4785766602 - 883.8476562500 - 884.1626586914 - 884.5260009766 - 884.8427124023 - 885.2096557617 - 885.5581054688 - 885.8536376953 - 886.2471313477 - 886.5465087891 - 886.9179687500 - 887.2283325195 - 887.5815429688 - 887.9166259766 - 888.2556762695 - 888.5963134766 - 888.9244995117 - 889.2492065430 - 889.6198120117 - 889.9133300781 - 890.2747192383 - 890.5836181641 - 890.9458007812 - 891.2651977539 - 891.5621948242 - 891.9541015625 - 892.2509765625 - 892.5535888672 - 892.9465332031 - 893.2202758789 - 893.5873413086 - 893.8814697266 - 894.2403564453 - 894.5529785156 - 894.8803710938 - 895.1860351562 - 895.5641479492 - 895.8378295898 - 896.1718139648 - 896.5271606445 - 896.8083496094 - 897.1784667969 - 897.4561157227 - 897.8026123047 - 898.1204223633 - 898.4571533203 - 898.7474365234 - 899.0819702148 - 899.4226684570 - 899.7175903320 - 900.0326538086 - 900.3709716797 - 900.6923217773 - 900.9826049805 - 901.3157348633 - 901.6330566406 - 901.9647216797 - 902.2449340820 - 902.5880126953 - 902.9035034180 - 903.2163696289 - 903.5170898438 - 903.8509521484 - 904.1387939453 - 904.4971313477 - 904.7615966797 - 905.1031494141 - 905.3937377930 - 905.7384033203 - 906.0164794922 - 906.3281860352 - 906.6722412109 - 906.9557495117 - 907.2561645508 - 907.5830688477 - 907.9096069336 - 908.1742553711 - 908.5161743164 - 908.8115234375 - 909.1303710938 - 909.4033813477 - 909.7687377930 - 910.0184326172 - 910.3415527344 - 910.6694335938 - 910.9356079102 - 911.2737426758 - 911.5576171875 - 911.8655395508 - 912.1753540039 - 912.4714965820 - 912.7766113281 - 913.0745849609 - 913.3907470703 - 913.6668090820 - 913.9912719727 - 914.2861328125 - 914.5784301758 - 914.8822021484 - 915.1963500977 - 915.4525146484 - 915.8132934570 - 916.0588989258 - 916.3936767578 - 916.6628417969 - 916.9756469727 - 917.2692871094 - 917.5668945312 - 917.8587646484 - 918.1590576172 - 918.4583129883 - 918.7447509766 - 919.0294189453 - 919.3469238281 - 919.6292114258 - 919.9202270508 - 920.2058105469 - 920.5053100586 - 920.8284912109 - 921.0536499023 - 921.4042358398 - 921.6708984375 - 921.9611816406 - 922.2655639648 - 922.5126953125 - 922.8685302734 - 923.1255493164 - 923.3843383789 - 923.6959228516 - 924.0343017578 - 924.2308959961 - 924.5688476562 - 924.8687133789 - 925.1370239258 - 925.4063720703 - 925.7209472656 - 925.9851684570 - 926.2882080078 - 926.5591430664 - 926.8391723633 - 927.1572265625 - 927.3986816406 - 927.6885986328 - 927.9987792969 - 928.2631225586 - 928.5222167969 - 928.8568115234 - 929.0972900391 - 929.3684692383 - 929.6898193359 - 929.9501342773 - 930.2071533203 - 930.5359497070 - 930.7663574219 - 931.0761108398 - 931.3245239258 - 931.6385498047 - 931.8890380859 - 932.1775512695 - 932.4504394531 - 932.7361450195 - 932.9955444336 - 933.2697753906 - 933.5734863281 - 933.8230590820 - 934.1010742188 - 934.3823852539 - 934.6718139648 - 934.8969116211 - 935.2157592773 - 935.4687500000 - 935.7299194336 - 936.0309448242 - 936.2868041992 - 936.5419921875 - 936.8527832031 - 937.0882568359 - 937.3588256836 - 937.6564941406 - 937.8815917969 - 938.2083740234 - 938.4258422852 - 938.7089233398 - 939.0037841797 - 939.2274169922 - 939.5167846680 - 939.7738037109 - 940.0765380859 - 940.2672119141 - 940.6198120117 - 940.8294067383 - 941.0928955078 - 941.3900756836 - 941.6255493164 - 941.9042358398 - 942.1654663086 - 942.4174804688 - 942.7139892578 - 942.9363403320 - 943.2049560547 - 943.4920654297 - 943.7270507812 - 943.9876098633 - 944.2645874023 - 944.5112915039 - 944.7930908203 - 945.0158691406 - 945.3016357422 - 945.5711669922 - 945.7941894531 - 946.0675659180 - 946.3295898438 - 946.5755615234 - 946.8577270508 - 947.0725097656 - 947.3693847656 - 947.5969848633 - 947.8660278320 - 948.1171264648 - 948.3434448242 - 948.6605834961 - 948.8618164062 - 949.1341552734 - 949.3854980469 - 949.6328125000 - 949.8998413086 - 950.1331176758 - 950.3691406250 - 950.6691894531 - 950.9069824219 - 951.1080322266 - 951.4077758789 - 951.6661376953 - 951.8859252930 - 952.1363525391 - 952.4015502930 - 952.6437988281 - 952.9168701172 - 953.1006469727 - 953.3812255859 - 953.6657104492 - 953.8563842773 - 954.1112670898 - 954.3854370117 - 954.6247558594 - 954.8518676758 - 955.1023559570 - 955.3391113281 - 955.6063232422 - 955.8309326172 - 956.0708618164 - 956.3220214844 - 956.5701293945 - 956.7971191406 - 957.0462646484 - 957.2656250000 - 957.5592041016 - 957.7611083984 - 957.9983520508 - 958.2569580078 - 958.4983520508 - 958.7451171875 - 958.9409790039 - 959.2254638672 - 959.4746704102 - 959.6561279297 - 959.9453735352 - 960.1583862305 - 960.4124755859 - 960.6447753906 - 960.8588867188 - 961.1309814453 - 961.3574218750 - 961.5751342773 - 961.8146972656 - 962.0659179688 - 962.2769775391 - 962.5138549805 - 962.7619018555 - 962.9796142578 - 963.2042236328 - 963.4448242188 - 963.6923828125 - 963.8723144531 - 964.1600952148 - 964.3340454102 - 964.6259155273 - 964.8005371094 - 965.0601806641 - 965.2872314453 - 965.5295410156 - 965.7382812500 - 965.9695434570 - 966.2365112305 - 966.4568481445 - 966.6635131836 - 966.9191284180 - 967.1624755859 - 967.4091186523 - 967.6054077148 - 967.8945922852 - 968.1044921875 - 968.3743896484 - 968.6030883789 - 968.7859497070 - 969.1150512695 - 969.3515625000 - 969.5109252930 - 969.7761840820 - 970.0968017578 - 970.2686767578 - 970.4659423828 - 970.7410888672 - 971.0366821289 - 971.1890869141 - 971.3890991211 - 971.6592407227 - 972.0160522461 diff --git a/RTCP/CNProc/test/inversePPFTestResult.ps b/RTCP/CNProc/test/inversePPFTestResult.ps deleted file mode 100644 index 755122cf7c63c1731c98efc19862c0176a09d9f9..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/inversePPFTestResult.ps +++ /dev/null @@ -1,35899 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: gnuplot 4.2 patchlevel 6 -%%CreationDate: Wed Aug 25 16:53:25 2010 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -%%BeginProlog -/gnudict 256 dict def -gnudict begin -% -% The following 6 true/false flags may be edited by hand if required -% The unit line width may also be changed -% -/Color false def -/Blacktext false def -/Solid false def -/Dashlength 1 def -/Landscape true def -/Level1 false def -/Rounded false def -/TransparentPatterns false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -% -/vshift -46 def -/dl1 { - 10.0 Dashlength mul mul - Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if -} def -/dl2 { - 10.0 Dashlength mul mul - Rounded { currentlinewidth 0.75 mul add } if -} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -Level1 {} { -/SDict 10 dict def -systemdict /pdfmark known not { - userdict /pdfmark systemdict /cleartomark get put -} if -SDict begin [ - /Title () - /Subject (gnuplot plot) - /Creator (gnuplot 4.2 patchlevel 6 ) - /Author (Rob van Nieuwpoort,,,) -% /Producer (gnuplot) -% /Keywords () - /CreationDate (Wed Aug 25 16:53:25 2010) - /DOCINFO pdfmark -end -} ifelse -% -% Gnuplot Prolog Version 4.2 (August 2006) -% -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/N {newpath moveto} bind def -/Z {closepath} bind def -/C {setrgbcolor} bind def -/f {rlineto fill} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow {currentpoint stroke M 0 vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R - Blacktext {gsave 0 setgray show grestore} {show} ifelse} def -/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def -/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} - {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def -/BL {stroke userlinewidth 2 mul setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -/AL {stroke userlinewidth 2 div setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -/UL {dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def} def -/PL {stroke userlinewidth setlinewidth - Rounded {1 setlinejoin 1 setlinecap} if} def -% Default Line colors -/LCw {1 1 1} def -/LCb {0 0 0} def -/LCa {0 0 0} def -/LC0 {1 0 0} def -/LC1 {0 1 0} def -/LC2 {0 0 1} def -/LC3 {1 0 1} def -/LC4 {0 1 1} def -/LC5 {1 1 0} def -/LC6 {0 0 0} def -/LC7 {1 0.3 0} def -/LC8 {0.5 0.5 0.5} def -% Default Line Types -/LTw {PL [] 1 setgray} def -/LTb {BL [] LCb DL} def -/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def -/LT0 {PL [] LC0 DL} def -/LT1 {PL [4 dl1 2 dl2] LC1 DL} def -/LT2 {PL [2 dl1 3 dl2] LC2 DL} def -/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def -/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def -/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def -/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def -/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def -/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def -/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def -/Dia {stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt} def -/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt} def -/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke} def -/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt} def -/Star {2 copy Pls Crs} def -/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill} def -/TriUF {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill} def -/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt} def -/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill} def -/Pent {stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt} def -/PentF {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore} def -/Circle {stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt} def -/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def -/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def -/C1 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath} bind def -/C2 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C3 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C4 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C5 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc} bind def -/C6 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C7 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath} bind def -/C8 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C9 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath} bind def -/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath} bind def -/C11 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C12 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C13 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/C14 {BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc} bind def -/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath} bind def -/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath} bind def -/Square {dup Rec} bind def -/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def -/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def -/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def -/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def -/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def -/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def -/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def -/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def -/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill Bsquare} bind def -/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def -/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def -/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare} bind def -/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare} bind def -/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def -/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare} bind def -/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def -/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def -/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def -/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def -/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def -/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def -/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def -/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def -/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def -/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def -/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def -/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def -/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def -/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def -/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def -/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def -/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def -/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def -/DiaE {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke} def -/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke} def -/TriUE {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke} def -/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke} def -/PentE {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore} def -/CircE {stroke [] 0 setdash - hpt 0 360 arc stroke} def -/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def -/DiaW {stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke} def -/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke} def -/TriUW {stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke} def -/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke} def -/PentW {stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore} def -/CircW {stroke [] 0 setdash - hpt 0 360 arc Opaque stroke} def -/BoxFill {gsave Rec 1 setgray fill grestore} def -/Density { - /Fillden exch def - currentrgbcolor - /ColB exch def /ColG exch def /ColR exch def - /ColR ColR Fillden mul Fillden sub 1 add def - /ColG ColG Fillden mul Fillden sub 1 add def - /ColB ColB Fillden mul Fillden sub 1 add def - ColR ColG ColB setrgbcolor} def -/BoxColFill {gsave Rec PolyFill} def -/PolyFill {gsave Density fill grestore grestore} def -/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def -% -% PostScript Level 1 Pattern Fill routine for rectangles -% Usage: x y w h s a XX PatternFill -% x,y = lower left corner of box to be filled -% w,h = width and height of box -% a = angle in degrees between lines and x-axis -% XX = 0/1 for no/yes cross-hatch -% -/PatternFill {gsave /PFa [ 9 2 roll ] def - PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate - PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec - gsave 1 setgray fill grestore clip - currentlinewidth 0.5 mul setlinewidth - /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def - 0 0 M PFa 5 get rotate PFs -2 div dup translate - 0 1 PFs PFa 4 get div 1 add floor cvi - {PFa 4 get mul 0 M 0 PFs V} for - 0 PFa 6 get ne { - 0 1 PFs PFa 4 get div 1 add floor cvi - {PFa 4 get mul 0 2 1 roll M PFs 0 V} for - } if - stroke grestore} def -% -/languagelevel where - {pop languagelevel} {1} ifelse - 2 lt - {/InterpretLevel1 true def} - {/InterpretLevel1 Level1 def} - ifelse -% -% PostScript level 2 pattern fill definitions -% -/Level2PatternFill { -/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} - bind def -/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} ->> matrix makepattern -/Pat1 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke - 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} ->> matrix makepattern -/Pat2 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L - 8 8 L 8 0 L 0 0 L fill} ->> matrix makepattern -/Pat3 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L - 0 12 M 12 0 L stroke} ->> matrix makepattern -/Pat4 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L - 0 -4 M 12 8 L stroke} ->> matrix makepattern -/Pat5 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L - 0 12 M 8 -4 L 4 12 M 10 0 L stroke} ->> matrix makepattern -/Pat6 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L - 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} ->> matrix makepattern -/Pat7 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L - 12 0 M -4 8 L 12 4 M 0 10 L stroke} ->> matrix makepattern -/Pat8 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L - -4 0 M 12 8 L -4 4 M 8 10 L stroke} ->> matrix makepattern -/Pat9 exch def -/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def -/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def -/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def -/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def -/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def -/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def -/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def -} def -% -% -%End of PostScript Level 2 code -% -/PatternBgnd { - TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse -} def -% -% Substitute for Level 2 pattern fill codes with -% grayscale if Level 2 support is not selected. -% -/Level1PatternFill { -/Pattern1 {0.250 Density} bind def -/Pattern2 {0.500 Density} bind def -/Pattern3 {0.750 Density} bind def -/Pattern4 {0.125 Density} bind def -/Pattern5 {0.375 Density} bind def -/Pattern6 {0.625 Density} bind def -/Pattern7 {0.875 Density} bind def -} def -% -% Now test for support of Level 2 code -% -Level1 {Level1PatternFill} {Level2PatternFill} ifelse -% -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -/Helvetica findfont 140 scalefont setfont -1.000 UL -LTb -798 280 M -63 0 V -6059 0 R --63 0 V -714 280 M -(-1500) Rshow -1.000 UL -LTb -798 1045 M -63 0 V -6059 0 R --63 0 V --6143 0 R -(-1000) Rshow -1.000 UL -LTb -798 1811 M -63 0 V -6059 0 R --63 0 V --6143 0 R -(-500) Rshow -1.000 UL -LTb -798 2576 M -63 0 V -6059 0 R --63 0 V --6143 0 R -( 0) Rshow -1.000 UL -LTb -798 3341 M -63 0 V -6059 0 R --63 0 V --6143 0 R -( 500) Rshow -1.000 UL -LTb -798 4107 M -63 0 V -6059 0 R --63 0 V --6143 0 R -( 1000) Rshow -1.000 UL -LTb -798 4872 M -63 0 V -6059 0 R --63 0 V --6143 0 R -( 1500) Rshow -1.000 UL -LTb -798 280 M -0 63 V -0 4529 R -0 -63 V -798 140 M -( 0) Cshow -1.000 UL -LTb -1673 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 10000) Cshow -1.000 UL -LTb -2547 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 20000) Cshow -1.000 UL -LTb -3422 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 30000) Cshow -1.000 UL -LTb -4296 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 40000) Cshow -1.000 UL -LTb -5171 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 50000) Cshow -1.000 UL -LTb -6045 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 60000) Cshow -1.000 UL -LTb -6920 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 70000) Cshow -1.000 UL -LTb -1.000 UL -LTb -798 4872 N -798 280 L -6122 0 V -0 4592 V --6122 0 V -Z stroke -LCb setrgbcolor -280 2576 M -currentpoint gsave translate 90 rotate 0 0 M -() Cshow -grestore -LTb -LCb setrgbcolor -7059 2576 M -currentpoint gsave translate 90 rotate 0 0 M -() Cshow -grestore -LTb -LCb setrgbcolor -3859 -42 M -() Cshow -LTb -3859 4802 M -() Cshow -LCb setrgbcolor -3859 4801 M -() Cshow -LTb -210 70 M -() Lshow -1.000 UP -1.000 UL -LTb -1.000 UL -LT0 -/Helvetica findfont 140 scalefont setfont -LTb -6269 4739 M -("out") Rshow -LT0 -6353 4739 M -399 0 V -798 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 900 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1002 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1104 2576 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -stroke 1204 2578 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -stroke 1300 2572 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1392 2584 M -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 1472 2557 M -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -stroke 1545 2573 M -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 1580 2553 M -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 -2 V -0 -1 V -0 1 V -0 -1 V -1 0 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 -1 V -0 1 V -0 -1 V -0 1 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 1641 2565 M -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 1669 2544 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 -2 V -1 0 V -0 -1 V -1 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 1730 2568 M -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -stroke 1771 2571 M -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -stroke 1852 2574 M -1 0 V -1 0 V -1 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -stroke 1922 2608 M -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 1 V -0 1 V -0 1 V -0 -1 V -1 0 V -0 1 V -0 -1 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 1978 2577 M -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -0 -1 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -1 0 V -1 0 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -stroke 2020 2624 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 2 V -0 1 V -0 -1 V -0 1 V -0 -1 V -1 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -stroke 2074 2577 M -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 2110 2625 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -1 -1 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 2144 2603 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 2153 2710 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2162 2817 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2171 2924 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -stroke 2180 3036 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 2190 3156 M -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2199 3259 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 2211 3361 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 2222 3462 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 2233 3562 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2244 3662 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 2257 3762 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 2271 3862 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 2288 3962 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 2308 4056 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 -1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 2337 4133 M -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -0 -1 V -0 1 V -0 -1 V -0 1 V -0 -1 V -1 1 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 2372 4085 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 2408 4013 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2425 3917 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 2440 3819 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2451 3718 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2460 3608 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2474 3510 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2487 3410 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 2498 3311 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -2 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2508 3203 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 2518 3099 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2527 2995 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -stroke 2536 2885 M -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -stroke 2545 2747 M -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2554 2629 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 2566 2527 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 2576 2424 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2585 2320 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -3 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 2595 2214 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2604 2109 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2613 2005 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2623 1901 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2632 1797 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 0 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2641 1693 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2653 1594 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2665 1494 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 2678 1394 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 2692 1295 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 2708 1201 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 2730 1110 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 2755 1026 M -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 1 V -0 -1 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 2801 1042 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 2817 1134 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2843 1219 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2860 1319 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 2874 1417 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 2886 1514 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 2897 1619 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -stroke 2906 1749 M -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2916 1854 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 2929 1955 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 2940 2058 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 3 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 2950 2166 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 2960 2270 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 2970 2373 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 2981 2477 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -stroke 2990 2609 M -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -stroke 2999 2771 M -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 3009 2876 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3019 2975 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3029 3079 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 4 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3039 3187 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 3050 3290 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 3062 3389 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3075 3488 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -stroke 3084 3608 M -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 3094 3715 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3107 3813 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 3122 3907 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 3141 4004 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 3175 4081 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 3217 4125 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3243 4040 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 3259 3942 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3273 3845 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 3292 3756 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 3305 3661 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -3 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 3317 3558 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3328 3457 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 3340 3354 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -stroke 3349 3226 M -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3358 3086 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3369 2983 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3380 2881 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3390 2777 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -4 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3400 2664 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3409 2560 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3420 2457 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 3431 2355 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -stroke 3440 2214 M -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -stroke 3449 2069 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3459 1968 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3470 1865 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 3481 1762 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -3 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3492 1657 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 3505 1558 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3521 1461 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 3531 1358 M -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 3543 1254 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 3559 1161 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 3582 1068 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -stroke 3636 1048 M -1 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -1 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3669 1121 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 3688 1215 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 3702 1312 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3711 1418 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 3725 1515 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 3740 1614 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3751 1716 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 4 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3762 1823 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3773 1925 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3784 2028 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -stroke 3793 2142 M -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -stroke 3803 2304 M -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3812 2417 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3823 2519 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3833 2621 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3842 2726 M -1 1 V -0 1 V -0 1 V -0 2 V -0 3 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 3852 2832 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3862 2936 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3874 3040 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -stroke 3884 3151 M -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -stroke 3893 3302 M -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3903 3409 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 3915 3511 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3926 3610 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 2 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 3939 3715 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 3955 3812 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 3974 3902 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 3987 4001 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 4007 4093 M -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 1 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 4050 4119 M -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 4078 4039 M -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -stroke 4106 3958 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4122 3861 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 4137 3764 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4149 3661 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 4158 3538 M -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4169 3430 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 4183 3329 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4194 3225 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -3 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4204 3117 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4214 3013 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4224 2910 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4235 2806 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -stroke 4244 2672 M -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -stroke 4253 2514 M -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4263 2411 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4274 2308 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4283 2206 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -4 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4293 2096 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4303 1992 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4315 1891 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4328 1789 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -stroke 4337 1660 M -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 4347 1544 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 4360 1443 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4372 1348 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4388 1246 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 4412 1160 M -1 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 4434 1070 M -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -0 1 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -stroke 4474 1015 M -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 4503 1096 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 4518 1194 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 4541 1281 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4556 1375 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4569 1476 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4581 1577 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4593 1680 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 0 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -stroke 4603 1804 M -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 4612 1938 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 4624 2039 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4635 2143 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4645 2247 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 4 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 2 V -0 2 V -stroke 4655 2358 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4664 2462 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 4675 2561 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4685 2665 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -stroke 4694 2814 M -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4703 2956 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 4714 3059 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4724 3158 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4734 3260 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 4 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 4745 3366 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4756 3468 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 4771 3563 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4782 3667 M -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 4792 3780 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4805 3880 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 4822 3978 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 4844 4064 M -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -stroke 4893 4123 M -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 4930 4053 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 4949 3962 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 4961 3865 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -stroke 4973 3763 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 4991 3666 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 5004 3565 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -3 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5015 3460 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5026 3358 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5038 3255 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -stroke 5047 3143 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -stroke 5056 2985 M -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5066 2873 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5077 2770 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5087 2667 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -4 V -0 -2 V -0 -1 V -stroke 5097 2558 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5106 2452 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5117 2349 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 5128 2248 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -stroke 5138 2134 M -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -stroke 5147 1977 M -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5157 1866 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5168 1763 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5179 1662 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -3 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5190 1560 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 5204 1459 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 5222 1366 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5233 1267 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 5247 1167 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5269 1072 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -0 1 V -1 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 5309 1041 M -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 5353 1106 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 5373 1198 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5389 1295 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5403 1396 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -stroke 5412 1511 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 5423 1612 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5438 1711 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 5449 1811 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 4 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5459 1917 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5469 2020 M -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5480 2124 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5491 2228 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 2 V -1 1 V -0 2 V -stroke 5500 2374 M -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 5509 2519 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5519 2621 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5529 2723 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5539 2827 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 4 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 5549 2936 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 5559 3039 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 5570 3139 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 5582 3241 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -stroke 5591 3376 M -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5600 3497 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 5613 3601 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 5625 3698 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 3 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5638 3800 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -stroke 5655 3893 M -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 5677 3981 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 5694 4077 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -stroke 5735 4138 M -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 5764 4054 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 5788 3967 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5808 3873 M -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5823 3769 M -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5836 3674 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5848 3574 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -stroke 5857 3452 M -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 5867 3328 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5879 3229 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5891 3128 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -stroke 5901 3024 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -4 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5910 2915 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5920 2811 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -stroke 5931 2713 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5940 2609 M -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -1 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -stroke 5949 2449 M -0 -1 V -1 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -1 -1 V -0 -2 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -stroke 5959 2317 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5969 2216 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5979 2113 M -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5989 2009 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -4 V -0 -2 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 5999 1906 M -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 6010 1805 M -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 6024 1706 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -stroke 6035 1602 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -stroke 6044 1480 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 6056 1378 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -stroke 6071 1277 M -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -2 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -stroke 6088 1178 M -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -stroke 6121 1099 M -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 -1 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -0 -1 V -1 0 V -0 -1 V -1 0 V -stroke 6150 1021 M -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -0 -1 V -1 0 V -1 0 V -1 0 V -1 0 V -0 1 V -0 -1 V -0 1 V -0 -1 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 6190 1079 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -stroke 6209 1173 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 6221 1273 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -stroke 6241 1369 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 6256 1466 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 3 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 6268 1569 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6279 1670 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 6291 1770 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -1 0 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -stroke 6301 1880 M -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -stroke 6310 2032 M -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 6320 2142 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 6332 2245 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 6342 2349 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 4 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6351 2459 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6361 2564 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6371 2667 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 6382 2768 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -stroke 6391 2885 M -1 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -1 2 V -0 1 V -0 2 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -1 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 2 V -0 1 V -stroke 6401 3046 M -0 1 V -0 2 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -1 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -0 1 V -1 1 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6410 3156 M -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6421 3259 M -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6432 3362 M -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 3 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -stroke 6443 3467 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6454 3565 M -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -stroke 6470 3663 M -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -stroke 6483 3764 M -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 2 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 2 V -0 1 V -0 2 V -1 2 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -stroke 6494 3873 M -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -stroke 6509 3970 M -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 0 V -0 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -0 1 V -0 1 V -0 1 V -1 1 V -stroke 6530 4064 M -stroke -LTb -798 4872 N -798 280 L -6122 0 V -0 4592 V --6122 0 V -Z stroke -1.000 UP -1.000 UL -LTb -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/RTCP/CNProc/test/run-FlaggerTest b/RTCP/CNProc/test/run-FlaggerTest deleted file mode 100755 index 9bf68de38e106c66b7b310972bb210a49667793a..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/run-FlaggerTest +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -export NR_PSETS=5 -export PSET_SIZE=32 -export CN_STREAM_TYPE=PIPE -export CNPROC_PORT=3999 -export THREADS=2 - -export INSTALL_DIR=~/workspace/LOFAR-build/gnu_opt/installed -#export INSTALL_DIR=~/workspace/LOFAR-build/gnu_debug/installed - -export PARSET=/home/rob/workspace/LOFAR/RTCP/CNProc/test/FlaggerTest.parset -#export PARSET=/home/rob/workspace/LOFAR/RTCP/CNProc/test/FlaggerTest-1subband.parset - -# Start IONProc nrPsets times -# start CNProc #cores in pset times - -mkdir -p /tmp/rob -rm -rf /tmp/ion-cn-* ion-storage-* /tmp/SB???.* -mpirun -H r815,r815,r815,r815,r815 $INSTALL_DIR/bin/ION_Processing & -mpirun -H r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815,r815 -x OMP_NUM_THREADS=$THREADS $INSTALL_DIR/bin/CN_Processing & -echo parset $PARSET|/home/rob/workspace/LOFAR/udp-copy - tcp:r815:$CNPROC_PORT - -echo quit|/home/rob/workspace/LOFAR/udp-copy - tcp:r815:$CNPROC_PORT -wait -wait -rm -f /tmp/ion-cn-* diff --git a/RTCP/CNProc/test/run-RFI-test b/RTCP/CNProc/test/run-RFI-test deleted file mode 100755 index 52f57d40b2de4c0905679403cc82094c645b05b9..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/run-RFI-test +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -export NR_PSETS=5 -export PSET_SIZE=3 -export CN_STREAM_TYPE=PIPE -export CNPROC_PORT=3999 - -export OMP_NUM_THREADS=8 - -export INSTALL_DIR=~/workspace/LOFAR-build/gnu_opt/installed -#export INSTALL_DIR=~/workspace/LOFAR-build/gnu_debug/installed - -export OUTPUT_DIR=/home/rob/workspace/LOFAR-output - -rm -rf /tmp/ion-cn-* ion-storage-* $OUTPUT_DIR -mkdir -p $OUTPUT_DIR -mpirun -H localhost,localhost,localhost,localhost,localhost $INSTALL_DIR/bin/ION_Processing & -mpirun -H localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost,localhost $INSTALL_DIR/bin/CN_Processing & -echo parset /home/rob/workspace/LOFAR/RTCP/CNProc/test/RFI-test.parset|/home/rob/workspace/LOFAR/udp-copy - tcp:localhost:$CNPROC_PORT -echo quit|/home/rob/workspace/LOFAR/udp-copy - tcp:localhost:$CNPROC_PORT -wait -wait -rm -f /tmp/ion-cn-* -for i in $OUTPUT_DIR/SB*/table.f0data;do ~/workspace/LOFAR/patch_seqno $i 131072;done diff --git a/RTCP/CNProc/test/tBeamForming.cc b/RTCP/CNProc/test/tBeamForming.cc deleted file mode 100644 index a7610a685c2016992fcb5ee8d9e8d9a33efb9bcb..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tBeamForming.cc +++ /dev/null @@ -1,337 +0,0 @@ -//# tTiedArray: test Tied Array mode -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! - - -#include <lofar_config.h> - -#if defined HAVE_BGP - -#include <Common/lofar_complex.h> -#include <Common/Timer.h> - -#include <CNProc/BeamFormerAsm.h> - -#include <spi/UPC.h> - -#include <cassert> - - -using namespace LOFAR; -using namespace LOFAR::RTCP; - - -#define NR_STATIONS 36 -#define NR_BEAMS 103 -#define NR_POLARIZATIONS 2 -#define NR_CHANNELS 16 -#define NR_TIMES 12288 - - -static fcomplex samples[NR_CHANNELS][NR_STATIONS][NR_TIMES|2][NR_POLARIZATIONS] __attribute__ ((aligned(128))); -static fcomplex weights[NR_STATIONS][NR_BEAMS] __attribute__ ((aligned(128))); -static fcomplex sums[NR_CHANNELS][NR_BEAMS][NR_TIMES|2][NR_POLARIZATIONS] __attribute__ ((aligned(128))); - - -void init_data() -{ - for (unsigned count = 23, stat = 0; stat < NR_STATIONS; stat ++) - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++, count += 17, count &= 0xFF) - samples[chan][stat][time][pol] = makefcomplex(count, count + 9); - - for (unsigned count = 37, stat = 0; stat < NR_STATIONS; stat ++) - for (unsigned beam = 1; beam < NR_BEAMS; beam ++, count += 51, count &= 0xFF) - weights[stat][beam] = makefcomplex(count, 2 * count + 5); -} - - -void test_add2() -{ - NSTimer timer("add2", true); - timer.start(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - _add_2_single_precision_vectors((float *) sums[chan], - (const float *) samples[chan][0], - (const float *) samples[chan][1], - NR_TIMES * NR_POLARIZATIONS * 2); - timer.stop(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - assert(sums[chan][0][time][pol] == samples[chan][0][time][pol] + - samples[chan][1][time][pol]); -} - - -void test_add3() -{ - NSTimer timer("add3", true); - timer.start(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - _add_3_single_precision_vectors((float *) sums[chan], - (const float *) samples[chan][0], - (const float *) samples[chan][1], - (const float *) samples[chan][2], - NR_TIMES * NR_POLARIZATIONS * 2); - timer.stop(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - assert(sums[chan][0][time][pol] == samples[0][chan][time][pol] + - samples[1][chan][time][pol] + - samples[2][chan][time][pol]); -} - - -void test_add4() -{ - NSTimer timer("add4", true); - timer.start(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - _add_4_single_precision_vectors((float *) sums[chan], - (const float *) samples[chan][0], - (const float *) samples[chan][1], - (const float *) samples[chan][2], - (const float *) samples[chan][3], - NR_TIMES * NR_POLARIZATIONS * 2); - timer.stop(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - assert(sums[chan][0][time][pol] == samples[0][chan][time][pol] + - samples[1][chan][time][pol] + - samples[2][chan][time][pol] + - samples[3][chan][time][pol]); -} - - -void test_add5() -{ - memset(sums, 0, sizeof sums); - - NSTimer timer("add5", true); - timer.start(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - _add_5_single_precision_vectors((float *) sums[chan], - (const float *) samples[chan][0], - (const float *) samples[chan][1], - (const float *) samples[chan][2], - (const float *) samples[chan][3], - (const float *) samples[chan][4], - NR_TIMES * NR_POLARIZATIONS * 2); - timer.stop(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - assert(sums[chan][0][time][pol] == samples[0][chan][time][pol] + - samples[1][chan][time][pol] + - samples[2][chan][time][pol] + - samples[3][chan][time][pol] + - samples[4][chan][time][pol]); -} - - -void test_add6() -{ - memset(sums, 0, sizeof sums); - - NSTimer timer("add6", true); - timer.start(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - _add_6_single_precision_vectors((float *) sums[chan], - (const float *) samples[chan][0], - (const float *) samples[chan][1], - (const float *) samples[chan][2], - (const float *) samples[chan][3], - (const float *) samples[chan][4], - (const float *) samples[chan][5], - NR_TIMES * NR_POLARIZATIONS * 2); - timer.stop(); - - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time ++) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) - assert(sums[chan][0][time][pol] == samples[0][chan][time][pol] + - samples[1][chan][time][pol] + - samples[2][chan][time][pol] + - samples[3][chan][time][pol] + - samples[4][chan][time][pol] + - samples[5][chan][time][pol]); -} - - -void check_beamformed_data(unsigned nr_stations) -{ - for (unsigned beam = 1; beam < NR_BEAMS; beam ++) - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned time = 0; time < NR_TIMES; time = time == 100 ? NR_TIMES - 100 : time + 1) - for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++) { - fcomplex sum = makefcomplex(0, 0); - - for (unsigned stat = 0; stat < nr_stations; stat ++) - sum += weights[stat][beam] * samples[chan][stat][time][pol]; - - if (sums[chan][beam][time][pol] != sum) { - std::cout << "sums[" << chan << "][" << beam << "][" << time << "][" << pol << "] = " << sums[chan][beam][time][pol] << ", sum = " << sum << std::endl; - //abort(); - } - - //assert(sums[chan][beam][time][pol] == sum); - } -} - - -void test_beamform_3stations_6beams() -{ - memset(sums, 0, sizeof sums); - - NSTimer timer("beamform_3st_6bm", true); - timer.start(); - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned stat = 0; stat < NR_STATIONS; stat += 3) - for (unsigned time = 0; time < NR_TIMES; time += 1024) - for (unsigned beam = 1; beam < NR_BEAMS; beam += 6) - _beamform_3stations_6beams( - &sums[chan][beam][time][0], - (char *) &sums[0][1][0][0] - (char *) &sums[0][0][0][0], - &samples[chan][stat][time][0], - (char *) &samples[0][1][0][0] - (char *) &samples[0][0][0][0], - &weights[stat][beam], - (char *) &weights[1][0] - (char *) &weights[0][0], - 1024, - stat == 0 - ); - timer.stop(); - - check_beamformed_data(NR_STATIONS / 3 * 3); -} - - -void test_beamformer(unsigned nr_stations_at_once, unsigned nr_beams_at_once) -{ - unsigned nr_stations = NR_STATIONS / nr_stations_at_once * nr_stations_at_once; - unsigned nr_beams = NR_BEAMS / nr_beams_at_once * nr_beams_at_once; - - std::cout << "beam forming " << nr_stations << " stations and " - << nr_beams << " beams in groups of " - << nr_stations_at_once << " stations and " - << nr_beams_at_once << " beams" << std::endl; - NSTimer timer("beamform_3bm", true); - timer.start(); - for (unsigned chan = 0; chan < NR_CHANNELS; chan ++) - for (unsigned stat = 0; stat + nr_stations_at_once <= NR_STATIONS; stat += nr_stations_at_once) - for (unsigned time = 0; time < NR_TIMES; time += 96) - for (unsigned beam = 1; beam + nr_beams_at_once <= NR_BEAMS; beam += nr_beams_at_once) - _beamform_up_to_6_stations_and_3_beams( - &sums[chan][beam][time][0], - (char *) &sums[0][1][0][0] - (char *) &sums[0][0][0][0], - &samples[chan][stat][time][0], - (char *) &samples[0][1][0][0] - (char *) &samples[0][0][0][0], - &weights[stat][beam], - (char *) &weights[1][0] - (char *) &weights[0][0], - 96, - stat == 0, - nr_stations_at_once, - nr_beams_at_once - ); - timer.stop(); - - check_beamformed_data(NR_STATIONS / nr_stations_at_once * nr_stations_at_once); -} - - -int main(int, char **argv) -{ -#if 0 -#ifdef HAVE_BGP_CN - BGP_UPC_Initialize(); - BGP_UPC_Initialize_Counter_Config(BGP_UPC_MODE_0, BGP_UPC_CFG_EDGE_DEFAULT); -#endif -#endif - - init_data(); - - INIT_LOGGER(argv[0]); - -#if 0 - if (NR_STATIONS >= 2) - test_add2(); - - if (NR_STATIONS >= 3) - test_add3(); - - if (NR_STATIONS >= 4) - test_add4(); - - if (NR_STATIONS >= 5) - test_add5(); - - if (NR_STATIONS >= 6) - test_add6(); -#endif - -#if 1 - test_beamform_3stations_6beams(); -/* - for (int nr_beams_at_once = 1; nr_beams_at_once <= std::min(NR_BEAMS, 3); ++ nr_beams_at_once) - for (int nr_stations_at_once = 1; nr_stations_at_once <= std::min(NR_STATIONS, 6); ++ nr_stations_at_once) - test_beamformer(nr_stations_at_once, nr_beams_at_once); -*/ -#endif - -#if 0 - BGP_UPC_Start(0); - - NSTimer timer("TAB", true); - timer.start(); - - timer.stop(); - - BGP_UPC_Stop(); - BGP_UPC_Print_Counter_Values(BGP_UPC_READ_EXCLUSIVE); - - std::cout << "nr ops = " << ((unsigned long long) NR_CHANNELS * NR_TIMES * NR_STATIONS * (NR_BEAMS - 1) * NR_POLARIZATIONS * 8) << std::endl; -#endif - - return 0; -} - -#else // not HAVE_BGP - -// cannot test beamform assembly outside Blue Gene -int main( int, char** ) { - return 0; -} - -#endif diff --git a/RTCP/CNProc/test/tCN_Processing.cc b/RTCP/CNProc/test/tCN_Processing.cc deleted file mode 100644 index 4ed3d9470b4d1c40daa5ba60c8c4d202d9c780c3..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tCN_Processing.cc +++ /dev/null @@ -1,314 +0,0 @@ -//# tWH_CN_Processing.cc: stand-alone test program for WH_CN_Processing -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/DataConvert.h> -#include <Common/Exception.h> -#include <Common/Timer.h> -#include <Interface/Parset.h> -#include <PPF.h> -#include <BeamFormer.h> -#include <Correlator.h> - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -#include <cmath> -#include <cstring> -#include <exception> - -#include <boost/format.hpp> - - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using boost::format; - - -template <typename T> void toComplex(double phi, T &z); - -template <> inline void toComplex<i4complex>(double phi, i4complex &z) -{ - double s, c; - - sincos(phi, &s, &c); - z = makei4complex(8 * c, 8 * s); -} - -template <> inline void toComplex<i8complex>(double phi, i8complex &z) -{ - double s, c; - - sincos(phi, &s, &c); - z = makei8complex((int) rint(127 * c), (int) rint(127 * s)); -} - -template <> inline void toComplex<i16complex>(double phi, i16complex &z) -{ - double s, c; - - sincos(phi, &s, &c); - z = makei16complex((int) rint(32767 * c), (int) rint(32767 * s)); -} - - -template <typename SAMPLE_TYPE> void setSubbandTestPattern(SubbandMetaData &metaData, TransposedData<SAMPLE_TYPE> &transposedData, unsigned nrStations, double signalFrequency, double subbandBandwidth) -{ - // Simulate a monochrome complex signal into the PPF, with station 1 at a - // distance of .25 labda to introduce a delay. Also, a few samples can be - // flagged. - - std::clog << "setSubbandTestPattern() ... "; - - NSTimer timer("setTestPattern", true); - timer.start(); - - const double distance = .25; // labda - const double phaseShift = 2 * M_PI * distance; - - for (unsigned stat = 0; stat < nrStations; stat ++) { - metaData.beams(stat)[0].delayAtBegin = 0; - metaData.beams(stat)[0].delayAfterEnd = 0; - metaData.alignmentShift(stat) = 0; - metaData.setFlags(stat, SparseSet<unsigned>()); - } - - for (unsigned time = 0; time < transposedData.samples[0].size(); time ++) { - double phi = 2 * M_PI * signalFrequency * time / subbandBandwidth; - SAMPLE_TYPE sample; - toComplex(phi, sample); - - for (unsigned stat = 0; stat < nrStations; stat ++) { - transposedData.samples[stat][time][0] = sample; - transposedData.samples[stat][time][1] = sample; - } - - if (NR_POLARIZATIONS >= 2 && nrStations >= 2) { - toComplex(phi + phaseShift, transposedData.samples[1][time][1]); - metaData.beams(1)[0].delayAtBegin = distance / signalFrequency; - metaData.beams(1)[0].delayAfterEnd = distance / signalFrequency; - } - } - -#if 1 - if (transposedData.samples[0].size() > 17000 && nrStations >= 6) { - metaData.setFlags(4, SparseSet<unsigned>().include(14000, 15000)); - metaData.setFlags(5, SparseSet<unsigned>().include(17000)); - } -#endif - - std::clog << "done." << std::endl;; - -#if 1 && defined WORDS_BIGENDIAN - std::clog << "swap bytes" << std::endl; - dataConvert(LittleEndian, transposedData.samples.data(), transposedData.samples.num_elements()); -#endif - - timer.stop(); -} - - -void checkCorrelatorTestPattern(const CorrelatedData &correlatedData, unsigned nrStations, unsigned nrChannels) -{ - const boost::multi_array_ref<fcomplex, 4> &visibilities = correlatedData.visibilities; - - static const unsigned channels[] = { 0, 201, 255 }; - - for (unsigned stat1 = 0; stat1 < std::min(nrStations, 8U); stat1 ++) { - for (unsigned stat2 = stat1; stat2 < std::min(nrStations, 8U); stat2 ++) { - int bl = Correlator::baseline(stat1, stat2); - - std::cout << "S(" << stat1 << ") * ~S(" << stat2 << ") :\n"; - - for (unsigned pol1 = 0; pol1 < NR_POLARIZATIONS; pol1 ++) { - for (unsigned pol2 = 0; pol2 < NR_POLARIZATIONS; pol2 ++) { - std::cout << " " << (char) ('x' + pol1) << (char) ('x' + pol2) << ':'; - - for (size_t chidx = 0; chidx < sizeof(channels) / sizeof(int); chidx ++) { - unsigned ch = channels[chidx]; - - if (ch < nrChannels) { - std::cout << ' ' << visibilities[bl][ch][pol1][pol2] << '/' << correlatedData.nrValidSamples(bl, ch); - } - } - - std::cout << '\n'; - } - } - } - } - - std::cout << "newgraph newcurve linetype solid marktype none pts\n"; - float max = 0.0; - - for (unsigned ch = 1; ch < nrChannels; ch ++) - if (abs(visibilities[0][ch][1][1]) > max) - max = abs(visibilities[0][ch][1][1]); - - //std::clog << "max = " << max << std::endl; - - for (unsigned ch = 1; ch < nrChannels; ch ++) - std::cout << ch << ' ' << (10 * std::log10(abs(visibilities[0][ch][1][1]) / max)) << '\n'; -} - - -template <typename SAMPLE_TYPE> void doWork() -{ - unsigned nrStations = 288; - unsigned nrChannels = 256; - unsigned nrSamplesPerIntegration = 196608 / nrChannels; - double subbandBandwidth = 195312.5; - double centerFrequency = 384 * subbandBandwidth; - double baseFrequency = centerFrequency - .5 * subbandBandwidth; - double testSignalChannel = nrChannels / 5.0; - double signalFrequency = baseFrequency + testSignalChannel * subbandBandwidth / nrChannels; - unsigned nrHistorySamples = nrChannels > 1 ? nrChannels * (NR_TAPS - 1) : 0; - unsigned nrSamplesToCNProc = nrChannels * nrSamplesPerIntegration + nrHistorySamples + 32 / sizeof(SAMPLE_TYPE[NR_POLARIZATIONS]); - - std::vector<unsigned> station2SuperStation; - -# if 0 - station2SuperStation.resize(nrStations); - - for(unsigned i=0; i<nrStations; i++) { - station2SuperStation[i] = (i / 7); -// cerr << station2SuperStation[i] << endl; - } -#endif - -#if 0 - // just to get the factors! - LOFAR::RTCP::BandPass bandpass(true, nrChannels); - const float *f = bandpass.correctionFactors(); - - std::clog << "bandpass correction:" << std::endl; - - for (unsigned i = 0; i < nrChannels; i ++) - std::clog << i << ' ' << f[i] << std::endl; -#endif - - if (testSignalChannel >= nrChannels) { - std::cerr << " signal lies outside the range." << std::endl; - exit(1); - } - - string stationNames = "["; - for(unsigned i = 0; i < nrStations; i++) { - if(i>0) stationNames += ", "; - - stationNames += str(format("CS%03u") % i); - } - - stationNames += "]"; - - Parset parset; - parset.add("Observation.channelsPerSubband", str(format("%u") % nrChannels)); - parset.add("OLAP.CNProc.integrationSteps", str(format("%u") % nrSamplesPerIntegration)); - parset.add("Observation.sampleClock", "200"); - parset.add("OLAP.storageStationNames", stationNames); - parset.add("Observation.beamList", "[0]"); - parset.add("Observation.Beam[0].nrTiedArrayBeams", "0"); - parset.add("OLAP.CNProc.tabList", "[]"); - - BeamFormer beamFormer(parset); - - const char *env; - unsigned nrBeamFormedStations = nrStations; - - if ((env = getenv("SIGNAL_FREQUENCY")) != 0) - signalFrequency = atof(env); - - std::clog << "base frequency = " << baseFrequency << std::endl; - std::clog << "center frequency = " << centerFrequency << std::endl; - std::clog << "signal frequency = " << signalFrequency << std::endl; - - TransposedData<SAMPLE_TYPE> transposedData(nrStations, nrSamplesToCNProc); - FilteredData filteredData(nrStations, nrChannels, nrSamplesPerIntegration); - CorrelatedData correlatedData(nrBeamFormedStations, nrChannels, nrChannels * nrSamplesPerIntegration); - SubbandMetaData metaData(nrStations, 1); - - PPF<SAMPLE_TYPE> ppf(nrStations, nrChannels, nrSamplesPerIntegration, subbandBandwidth / nrChannels, true /* use delay compensation */, true /* use bandpass correction */, true /* verbose in filter bank */); - Correlator correlator(beamFormer.getStationMapping(), nrChannels, nrSamplesPerIntegration); - - setSubbandTestPattern(metaData, transposedData, nrStations, signalFrequency, subbandBandwidth); - - for (unsigned stat = 0; stat < nrStations; stat ++) { - static NSTimer ppfTimer("PPF", true); - ppfTimer.start(); - ppf.doWork(stat, centerFrequency, &metaData, &transposedData, &filteredData); - ppfTimer.stop(); - - for(unsigned ch = 0; ch < nrChannels; ch++) { - if (filteredData.flags[stat][ch].count() != 0) - std::cout << "flags of station " << stat << " channel " << ch << ": " << filteredData.flags[stat][ch] << std::endl; - } - } - - beamFormer.mergeStations(&filteredData); - - static NSTimer correlateTimer("correlate", true); - correlateTimer.start(); - correlator.computeFlags(&filteredData, &correlatedData); - correlator.correlate(&filteredData, &correlatedData); - correlateTimer.stop(); - - checkCorrelatorTestPattern(correlatedData, nrBeamFormedStations, nrChannels); -} - - -int main(int argc, char **argv) -{ - int retval = 0; - -#if defined HAVE_BGP - INIT_LOGGER(argv[0]); -#endif - -#if defined HAVE_MPI - MPI_Init(&argc, &argv); -#else - argc = argc; argv = argv; // Keep compiler happy ;-) -#endif - - try { - doWork<i16complex>(); - } catch (Exception &ex) { - std::cerr << "Caught exception: " << ex.what() << std::endl; - retval = 1; - } catch (std::exception &ex) { - std::cerr << "Caught exception: " << ex.what() << std::endl; - retval = 1; - } catch (...) { - std::cerr << "Caught ... exception" << std::endl; - retval = 1; - } - -#if defined HAVE_MPI - MPI_Finalize(); -#endif - - return retval; -} diff --git a/RTCP/CNProc/test/tCN_Processing.sh b/RTCP/CNProc/test/tCN_Processing.sh deleted file mode 100755 index e26ea71503ba363449ebb134f2bc4194f8375b43..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tCN_Processing.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# do not run test here, since it needs to run on the BG/P compute nodes -#./runctest.sh tCN_Processing diff --git a/RTCP/CNProc/test/tCN_Processing_alloc.cc b/RTCP/CNProc/test/tCN_Processing_alloc.cc deleted file mode 100644 index 046f0011dd8dbfe59f1c5177aab9dff4a0de934a..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tCN_Processing_alloc.cc +++ /dev/null @@ -1,87 +0,0 @@ -//# tCN_Processing_alloc.cc: test preprocess/postprocess functionality of CNProc -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: tCN_Processing.cc 19102 2011-10-26 11:52:29Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> -#include <CNProc/LocationInfo.h> -#include <CNProc/CN_Processing.h> -#include <Interface/Parset.h> -#include <Stream/NullStream.h> -#include <cstdlib> - -#if defined HAVE_MPI -#define MPICH_IGNORE_CXX_SEEK -#include <mpi.h> -#endif - -using namespace LOFAR; -using namespace LOFAR::RTCP; - -Stream *createIONstream(unsigned channel, const LocationInfo &locationInfo) -{ - (void)channel; - (void)locationInfo; - - return new NullStream(); -} - -int main(int argc, char **argv) { -#if defined HAVE_MPI - MPI_Init(&argc, &argv); -#else - argc = argc; argv = argv; // Keep compiler happy ;-) -#endif - - setenv("NR_PSETS", "64", 1); - setenv("PSET_SIZE", "64", 1); - - LocationInfo locationInfo; - CN_Processing_Base *proc; - Parset parset; - std::vector<SmartPtr<Stream> > inputStreams(1); - inputStreams[0] = new NullStream; - - parset.adoptFile("tCN_Processing_alloc.parset"); - - // preprocess - switch (parset.nrBitsPerSample()) { - case 4: proc = new CN_Processing<i4complex>(parset, inputStreams, &createIONstream, locationInfo); - break; - - case 8: proc = new CN_Processing<i8complex>(parset, inputStreams, &createIONstream, locationInfo); - break; - - case 16: proc = new CN_Processing<i16complex>(parset, inputStreams, &createIONstream, locationInfo); - break; - - default: return 1; - } - - // postprocess - delete proc; - -#if defined HAVE_MPI - MPI_Finalize(); -#endif - - return 0; -} diff --git a/RTCP/CNProc/test/tCN_Processing_alloc.parset b/RTCP/CNProc/test/tCN_Processing_alloc.parset deleted file mode 100644 index bc489a5b1d71a05b8cff9cc9e240f0065406c08b..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tCN_Processing_alloc.parset +++ /dev/null @@ -1,1271 +0,0 @@ -ApplCtrl.application = CorrAppl -ApplCtrl.procesOrder = [] -ApplCtrl.processes = [CorrProc] -ApplCtrl.resultfile = '/opt/lofar/var/run/ACC_CCU001:OnlineControl[0]{31821}_CorrAppl_result.param' -ApplCtrl.timeout_createsubsets = 30s -ApplCtrl.timeout_define = 30s -ApplCtrl.timeout_info = 30s -ApplCtrl.timeout_init = 30s -ApplCtrl.timeout_kill = 30s -ApplCtrl.timeout_pause = 90s -ApplCtrl.timeout_quit = 10s -ApplCtrl.timeout_recover = 30s -ApplCtrl.timeout_reinit = 30s -ApplCtrl.timeout_release = 30s -ApplCtrl.timeout_run = 90s -ApplCtrl.timeout_snapshot = 30s -ApplCtrl.timeout_startup = 30s -CorrAppl.CorrProc._ACnode = bgfen0 -CorrAppl.CorrProc._ACport = 3928 -CorrAppl.CorrProc._executable = CN_Processing -CorrAppl.CorrProc._hostname = bgfen1 -CorrAppl.CorrProc._nodes = [] -CorrAppl.CorrProc._startstopType = bgl -CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -CorrAppl._hostname = bgfen1 -CorrAppl.extraInfo = [OLAP,PIC] -CorrAppl.procesOrder = [] -CorrAppl.processes = [CorrProc] -OLAP.BeamsAreTransposed = True -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.integrationSteps = 3488 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R00 -OLAP.CNProc.phaseOnePsets = [46,14,34,2,36,4,38,6,33,1,35,3,37,5,48,16,32,0,39,7,42,10,58,59,41,9,40,8,54,22,43,11,26,27,52,20,19,18,15,12,55,23,49,60,62,30,53,63,31,13,29] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreePsets = [0..63] -OLAP.CNProc.phaseTwoPsets = [0..63] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.Correlator.integrationTime = 2.0 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc.PLC_controlled = T -OLAP.IONProc.integrationSteps = 7 -OLAP.IONProc.parsetError = -OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = false -OLAP.OLAP_Conn.rawDataOutputs = tcp:10.181.0.2:4000 -OLAP.PPF = True -OLAP.PencilInfo.flysEye = true -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0.0 -OLAP.PencilInfo.storageNodeList = [0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25] -OLAP.Pencil[0].angle1 = 0.0 -OLAP.Pencil[0].angle2 = 0.0 -OLAP.Stokes.integrateChannels = false -OLAP.Stokes.integrationSteps = 16 -OLAP.Stokes.which = I -OLAP.Storage.AntennaFieldsDir = /opt/storage/current/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /opt/storage/current/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /opt/storage/current/etc/StaticMetaData -OLAP.Storage.hosts = [locus002,locus005,locus008,locus009,locus012,locus016,locus017,locus018,locus019,locus021,locus022,locus025,locus026,locus027,locus028,locus032,locus036,locus037,locus038,locus041,locus042,locus043,locus044,locus045,locus046,locus048,locus050,locus052,locus053,locus054,locus056,locus057,locus060,locus061,locus063,locus064,locus065,locus066,locus069,locus070,locus072,locus074,locus078,locus079,locus080,locus085,locus086,locus089,locus090,locus092,locus093] -OLAP.Storage.msWriter = /opt/storage/current/bin/Storage_main -OLAP.Storage.partsPerStokes = 1 -OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa -OLAP.Storage.subbandsPerPart = 240 -OLAP.Storage.targetDirectory = /data1 -OLAP.Storage.userName = lofarsys -OLAP.StorageProc.subbandsPerMS = 1 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.25 -OLAP.nrBitsPerSample = 16 -OLAP.nrPencils = 1 -OLAP.nrPsets = 64 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrSubbandsPerFrame = 61 -OLAP.nrTimesInFrame = 16 -OLAP.realTime = true -OLAP.storageNodeList = [5*0,5*1,5*2,5*3,5*4,5*5,5*6,5*7,5*8,5*9,5*10,5*11,5*12,5*13,5*14,5*15,5*16,5*17,5*18,5*19,5*20,5*21,5*22,5*23,5*24,5*25,5*26,5*27,5*28,5*29,5*30,5*31,5*32,5*33,5*34,5*35,5*36,5*37,5*38,5*39,5*40,5*41,5*42,5*43,5*44,5*45,5*46,5*47] -OLAP.storageStationNames = [CS001HBA0,CS001HBA1,CS002HBA0,CS002HBA1,CS003HBA0,CS003HBA1,CS004HBA0,CS004HBA1,CS005HBA0,CS005HBA1,CS006HBA0,CS006HBA1,CS007HBA0,CS007HBA1,CS017HBA0,CS017HBA1,CS021HBA0,CS021HBA1,CS024HBA0,CS024HBA1,CS026HBA0,CS026HBA1,CS031HBA0,CS031HBA1,CS032HBA0,CS032HBA1,CS101HBA0,CS101HBA1,CS103HBA0,CS103HBA1,CS201HBA0,CS201HBA1,CS302HBA0,CS302HBA1,CS501HBA0,CS501HBA1,DE603HBA,DE604HBA,DE605HBA,FR606HBA,RS106HBA,RS205HBA,RS208HBA,RS306HBA,RS307HBA,RS406HBA,RS503HBA,RS508HBA,RS509HBA,SE607HBA,UK608HBA] -OLAP.tiedArrayStationNames = [] -Observation.AnaBeam[0].angle1 = 3.9681245797186113 -Observation.AnaBeam[0].angle2 = 0.9691056736093772 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].duration = 300 -Observation.AnaBeam[0].maximizeDuration = false -Observation.AnaBeam[0].rank = 1 -Observation.AnaBeam[0].startTime = -Observation.AnaBeam[0].target = -Observation.Beam[0].TabRingSize = 0.0 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[0].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[0].stationList = [CS001HBA0] -Observation.Beam[0].TiedArrayBeam[10].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[10].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[10].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[10].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[10].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[10].stationList = [CS006HBA0] -Observation.Beam[0].TiedArrayBeam[11].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[11].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[11].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[11].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[11].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[11].stationList = [CS006HBA1] -Observation.Beam[0].TiedArrayBeam[12].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[12].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[12].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[12].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[12].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[12].stationList = [CS007HBA0] -Observation.Beam[0].TiedArrayBeam[13].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[13].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[13].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[13].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[13].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[13].stationList = [CS007HBA1] -Observation.Beam[0].TiedArrayBeam[14].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[14].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[14].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[14].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[14].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[14].stationList = [CS017HBA0] -Observation.Beam[0].TiedArrayBeam[15].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[15].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[15].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[15].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[15].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[15].stationList = [CS017HBA1] -Observation.Beam[0].TiedArrayBeam[16].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[16].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[16].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[16].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[16].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[16].stationList = [CS021HBA0] -Observation.Beam[0].TiedArrayBeam[17].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[17].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[17].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[17].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[17].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[17].stationList = [CS021HBA1] -Observation.Beam[0].TiedArrayBeam[18].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[18].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[18].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[18].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[18].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[18].stationList = [CS024HBA0] -Observation.Beam[0].TiedArrayBeam[19].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[19].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[19].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[19].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[19].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[19].stationList = [CS024HBA1] -Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[1].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[1].stationList = [CS001HBA1] -Observation.Beam[0].TiedArrayBeam[20].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[20].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[20].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[20].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[20].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[20].stationList = [CS026HBA0] -Observation.Beam[0].TiedArrayBeam[21].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[21].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[21].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[21].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[21].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[21].stationList = [CS026HBA1] -Observation.Beam[0].TiedArrayBeam[22].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[22].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[22].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[22].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[22].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[22].stationList = [CS031HBA0] -Observation.Beam[0].TiedArrayBeam[23].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[23].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[23].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[23].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[23].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[23].stationList = [CS031HBA1] -Observation.Beam[0].TiedArrayBeam[24].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[24].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[24].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[24].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[24].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[24].stationList = [CS032HBA0] -Observation.Beam[0].TiedArrayBeam[25].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[25].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[25].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[25].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[25].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[25].stationList = [CS032HBA1] -Observation.Beam[0].TiedArrayBeam[26].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[26].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[26].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[26].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[26].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[26].stationList = [CS101HBA0] -Observation.Beam[0].TiedArrayBeam[27].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[27].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[27].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[27].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[27].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[27].stationList = [CS101HBA1] -Observation.Beam[0].TiedArrayBeam[28].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[28].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[28].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[28].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[28].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[28].stationList = [CS103HBA0] -Observation.Beam[0].TiedArrayBeam[29].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[29].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[29].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[29].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[29].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[29].stationList = [CS103HBA1] -Observation.Beam[0].TiedArrayBeam[2].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[2].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[2].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[2].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[2].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[2].stationList = [CS002HBA0] -Observation.Beam[0].TiedArrayBeam[30].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[30].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[30].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[30].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[30].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[30].stationList = [CS201HBA0] -Observation.Beam[0].TiedArrayBeam[31].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[31].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[31].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[31].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[31].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[31].stationList = [CS201HBA1] -Observation.Beam[0].TiedArrayBeam[32].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[32].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[32].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[32].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[32].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[32].stationList = [CS302HBA0] -Observation.Beam[0].TiedArrayBeam[33].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[33].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[33].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[33].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[33].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[33].stationList = [CS302HBA1] -Observation.Beam[0].TiedArrayBeam[34].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[34].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[34].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[34].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[34].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[34].stationList = [CS501HBA0] -Observation.Beam[0].TiedArrayBeam[35].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[35].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[35].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[35].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[35].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[35].stationList = [CS501HBA1] -Observation.Beam[0].TiedArrayBeam[36].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[36].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[36].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[36].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[36].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[36].stationList = [DE603HBA] -Observation.Beam[0].TiedArrayBeam[37].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[37].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[37].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[37].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[37].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[37].stationList = [DE604HBA] -Observation.Beam[0].TiedArrayBeam[38].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[38].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[38].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[38].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[38].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[38].stationList = [DE605HBA] -Observation.Beam[0].TiedArrayBeam[39].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[39].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[39].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[39].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[39].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[39].stationList = [FR606HBA] -Observation.Beam[0].TiedArrayBeam[3].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[3].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[3].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[3].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[3].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[3].stationList = [CS002HBA1] -Observation.Beam[0].TiedArrayBeam[40].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[40].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[40].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[40].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[40].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[40].stationList = [RS106HBA] -Observation.Beam[0].TiedArrayBeam[41].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[41].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[41].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[41].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[41].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[41].stationList = [RS205HBA] -Observation.Beam[0].TiedArrayBeam[42].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[42].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[42].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[42].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[42].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[42].stationList = [RS208HBA] -Observation.Beam[0].TiedArrayBeam[43].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[43].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[43].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[43].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[43].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[43].stationList = [RS306HBA] -Observation.Beam[0].TiedArrayBeam[44].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[44].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[44].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[44].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[44].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[44].stationList = [RS307HBA] -Observation.Beam[0].TiedArrayBeam[45].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[45].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[45].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[45].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[45].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[45].stationList = [RS406HBA] -Observation.Beam[0].TiedArrayBeam[46].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[46].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[46].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[46].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[46].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[46].stationList = [RS503HBA] -Observation.Beam[0].TiedArrayBeam[47].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[47].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[47].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[47].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[47].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[47].stationList = [RS508HBA] -Observation.Beam[0].TiedArrayBeam[48].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[48].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[48].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[48].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[48].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[48].stationList = [RS509HBA] -Observation.Beam[0].TiedArrayBeam[49].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[49].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[49].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[49].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[49].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[49].stationList = [SE607HBA] -Observation.Beam[0].TiedArrayBeam[4].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[4].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[4].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[4].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[4].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[4].stationList = [CS003HBA0] -Observation.Beam[0].TiedArrayBeam[50].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[50].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[50].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[50].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[50].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[50].stationList = [UK608HBA] -Observation.Beam[0].TiedArrayBeam[51].angle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[51].angle2 = 0.0 -Observation.Beam[0].TiedArrayBeam[51].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[51].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[51].specificationType = manual -Observation.Beam[0].TiedArrayBeam[51].stationList = [] -Observation.Beam[0].TiedArrayBeam[5].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[5].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[5].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[5].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[5].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[5].stationList = [CS003HBA1] -Observation.Beam[0].TiedArrayBeam[6].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[6].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[6].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[6].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[6].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[6].stationList = [CS004HBA0] -Observation.Beam[0].TiedArrayBeam[7].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[7].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[7].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[7].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[7].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[7].stationList = [CS004HBA1] -Observation.Beam[0].TiedArrayBeam[8].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[8].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[8].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[8].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[8].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[8].stationList = [CS005HBA0] -Observation.Beam[0].TiedArrayBeam[9].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[9].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[9].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[9].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[9].specificationType = flyseye -Observation.Beam[0].TiedArrayBeam[9].stationList = [CS005HBA1] -Observation.Beam[0].angle1 = 3.9681245797186113 -Observation.Beam[0].angle2 = 0.9691056736093772 -Observation.Beam[0].beamletList = [0..239] -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].duration = 300 -Observation.Beam[0].maximizeDuration = false -Observation.Beam[0].momID = 31616 -Observation.Beam[0].nrTabRings = 0 -Observation.Beam[0].nrTiedArrayBeams = 52 -Observation.Beam[0].startTime = -Observation.Beam[0].subbandList = [77..316] -Observation.Beam[0].target = B1508+55 -Observation.Beamformer.stationList = [] -Observation.Campaign.CO_I = 'Pradel, Nicolas' -Observation.Campaign.PI = 'Polatidis, Dr Antonios' -Observation.Campaign.contact = 'Polatidis, Dr Antonios' -Observation.Campaign.name = LOFAROPS -Observation.Campaign.title = LOFAROPS -Observation.DataProducts.Output_Beamformed.deleted = false -Observation.DataProducts.Output_Beamformed.dirmask = L${OBSID} -Observation.DataProducts.Output_Beamformed.enabled = true -Observation.DataProducts.Output_Beamformed.filenames = [L31821_SAP000_B000_S0_P000_bf.raw,L31821_SAP000_B001_S0_P000_bf.raw,L31821_SAP000_B002_S0_P000_bf.raw,L31821_SAP000_B003_S0_P000_bf.raw,L31821_SAP000_B004_S0_P000_bf.raw,L31821_SAP000_B005_S0_P000_bf.raw,L31821_SAP000_B006_S0_P000_bf.raw,L31821_SAP000_B007_S0_P000_bf.raw,L31821_SAP000_B008_S0_P000_bf.raw,L31821_SAP000_B009_S0_P000_bf.raw,L31821_SAP000_B010_S0_P000_bf.raw,L31821_SAP000_B011_S0_P000_bf.raw,L31821_SAP000_B012_S0_P000_bf.raw,L31821_SAP000_B013_S0_P000_bf.raw,L31821_SAP000_B014_S0_P000_bf.raw,L31821_SAP000_B015_S0_P000_bf.raw,L31821_SAP000_B016_S0_P000_bf.raw,L31821_SAP000_B017_S0_P000_bf.raw,L31821_SAP000_B018_S0_P000_bf.raw,L31821_SAP000_B019_S0_P000_bf.raw,L31821_SAP000_B020_S0_P000_bf.raw,L31821_SAP000_B021_S0_P000_bf.raw,L31821_SAP000_B022_S0_P000_bf.raw,L31821_SAP000_B023_S0_P000_bf.raw,L31821_SAP000_B024_S0_P000_bf.raw,L31821_SAP000_B025_S0_P000_bf.raw,L31821_SAP000_B026_S0_P000_bf.raw,L31821_SAP000_B027_S0_P000_bf.raw,L31821_SAP000_B028_S0_P000_bf.raw,L31821_SAP000_B029_S0_P000_bf.raw,L31821_SAP000_B030_S0_P000_bf.raw,L31821_SAP000_B031_S0_P000_bf.raw,L31821_SAP000_B032_S0_P000_bf.raw,L31821_SAP000_B033_S0_P000_bf.raw,L31821_SAP000_B034_S0_P000_bf.raw,L31821_SAP000_B035_S0_P000_bf.raw,L31821_SAP000_B036_S0_P000_bf.raw,L31821_SAP000_B037_S0_P000_bf.raw,L31821_SAP000_B038_S0_P000_bf.raw,L31821_SAP000_B039_S0_P000_bf.raw,L31821_SAP000_B040_S0_P000_bf.raw,L31821_SAP000_B041_S0_P000_bf.raw,L31821_SAP000_B042_S0_P000_bf.raw,L31821_SAP000_B043_S0_P000_bf.raw,L31821_SAP000_B044_S0_P000_bf.raw,L31821_SAP000_B045_S0_P000_bf.raw,L31821_SAP000_B046_S0_P000_bf.raw,L31821_SAP000_B047_S0_P000_bf.raw,L31821_SAP000_B048_S0_P000_bf.raw,L31821_SAP000_B049_S0_P000_bf.raw,L31821_SAP000_B050_S0_P000_bf.raw] -Observation.DataProducts.Output_Beamformed.locations = [locus002:/data/L31821/,locus005:/data/L31821/,locus008:/data/L31821/,locus009:/data/L31821/,locus012:/data/L31821/,locus016:/data/L31821/,locus017:/data/L31821/,locus018:/data/L31821/,locus019:/data/L31821/,locus021:/data/L31821/,locus022:/data/L31821/,locus025:/data/L31821/,locus026:/data/L31821/,locus027:/data/L31821/,locus028:/data/L31821/,locus032:/data/L31821/,locus036:/data/L31821/,locus037:/data/L31821/,locus038:/data/L31821/,locus041:/data/L31821/,locus042:/data/L31821/,locus043:/data/L31821/,locus044:/data/L31821/,locus045:/data/L31821/,locus046:/data/L31821/,locus048:/data/L31821/,locus050:/data/L31821/,locus052:/data/L31821/,locus053:/data/L31821/,locus054:/data/L31821/,locus056:/data/L31821/,locus057:/data/L31821/,locus060:/data/L31821/,locus061:/data/L31821/,locus063:/data/L31821/,locus064:/data/L31821/,locus065:/data/L31821/,locus066:/data/L31821/,locus069:/data/L31821/,locus070:/data/L31821/,locus072:/data/L31821/,locus074:/data/L31821/,locus078:/data/L31821/,locus079:/data/L31821/,locus080:/data/L31821/,locus085:/data/L31821/,locus086:/data/L31821/,locus089:/data/L31821/,locus090:/data/L31821/,locus092:/data/L31821/,locus093:/data/L31821/] -Observation.DataProducts.Output_Beamformed.mountpoints = [locus002:/data,locus005:/data,locus008:/data,locus009:/data,locus012:/data,locus016:/data,locus017:/data,locus018:/data,locus019:/data,locus021:/data,locus022:/data,locus025:/data,locus026:/data,locus027:/data,locus028:/data,locus032:/data,locus036:/data,locus037:/data,locus038:/data,locus041:/data,locus042:/data,locus043:/data,locus044:/data,locus045:/data,locus046:/data,locus048:/data,locus050:/data,locus052:/data,locus053:/data,locus054:/data,locus056:/data,locus057:/data,locus060:/data,locus061:/data,locus063:/data,locus064:/data,locus065:/data,locus066:/data,locus069:/data,locus070:/data,locus072:/data,locus074:/data,locus078:/data,locus079:/data,locus080:/data,locus085:/data,locus086:/data,locus089:/data,locus090:/data,locus092:/data,locus093:/data] -Observation.DataProducts.Output_Beamformed.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_Beamformed.percentageWritten = [] -Observation.DataProducts.Output_Beamformed.retentiontime = 14 -Observation.DataProducts.Output_Correlated.deleted = false -Observation.DataProducts.Output_Correlated.dirmask = -Observation.DataProducts.Output_Correlated.enabled = true -Observation.DataProducts.Output_Correlated.filenames = [] -Observation.DataProducts.Output_Correlated.locations = [] -Observation.DataProducts.Output_Correlated.mountpoints = [] -Observation.DataProducts.Output_Correlated.namemask = -Observation.DataProducts.Output_Correlated.percentageWritten = [] -Observation.DataProducts.Output_Correlated.retentiontime = 14 -Observation.DataProducts.Output_Trigger.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Trigger.enabled = False -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.Dataslots.CS001HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS001HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS001HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS001HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS002HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS002HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS002HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS002HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS003HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS003HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS003HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS003HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS004HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS004HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS004HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS004HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS005HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS005HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS005HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS005HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS006HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS006HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS006HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS006HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS007HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS007HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS007HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS007HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS017HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS017HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS017HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS017HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS021HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS021HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS021HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS021HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS024HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS024HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS024HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS024HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS026HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS026HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS026HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS026HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS031HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS031HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS031HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS031HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS032HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS032HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS032HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS032HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS101HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS101HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS101HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS101HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS103HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS103HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS103HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS103HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS201HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS201HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS201HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS201HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS302HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS302HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS302HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS302HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS501HBA0.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS501HBA0.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.CS501HBA1.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.CS501HBA1.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.DE603HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.DE603HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.DE604HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.DE604HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.DE605HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.DE605HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.DataslotInfo.DataslotList = [] -Observation.Dataslots.DataslotInfo.RSPBoardList = [] -Observation.Dataslots.FR606HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.FR606HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS106HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS106HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS205HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS205HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS208HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS208HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS306HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS306HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS307HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS307HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS406HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS406HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS503HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS503HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS508HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS508HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.RS509HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.RS509HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.SE607HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.SE607HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.Dataslots.UK608HBA.DataslotList = [0..60,0..60,0..60,0..56] -Observation.Dataslots.UK608HBA.RSPBoardList = [61*0,61*1,61*2,57*3] -Observation.KSPType = surveys -Observation.ObsID = 31821 -Observation.ObservationControl.OnlineControl.ApplCtrl.application = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.procesOrder = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.processes = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.resultfile = ../log/ACC.result -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_createsubsets = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_define = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_info = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_init = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_kill = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_pause = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_quit = 10s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_recover = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_reinit = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_release = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_run = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_snapshot = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_startup = 30s -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._nodes = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo = [OLAP,PIC] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder = [] -Observation.ObservationControl.OnlineControl.CorrAppl.processes = [CorrProc] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 2.0 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputOnly = false -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputs = tcp:10.181.0.2:4000 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = true -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.nrRings = 0 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.ringSize = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle1 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle2 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrateChannels = false -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrationSteps = 16 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true -Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 -Observation.ObservationControl.OnlineControl.OLAP.nrBitsPerSample = 16 -Observation.ObservationControl.OnlineControl.OLAP.nrPencils = 1 -Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 -Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 -Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.realTime = true -Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations -Observation.ObservationControl.OnlineControl._hostname = CCU001 -Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] -Observation.ObservationControl.OnlineControl.applications = [CorrAppl] -Observation.ObservationControl.OnlineControl.inspectionHost = -Observation.ObservationControl.OnlineControl.inspectionProgram = -Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime = 0 -Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit = none -Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance = 0 -Observation.ObservationControl.StationControl.TBBControl.MinElevation = 0 -Observation.ObservationControl.StationControl.TBBControl.NoCoincChann = 0 -Observation.ObservationControl.StationControl.TBBControl.ParamExtension = -Observation.ObservationControl.StationControl._hostname = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS017,CS021,CS024,CS026,CS031,CS032,CS101,CS103,CS201,CS302,CS501,DE603,DE604,DE605,FR606,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509,SE607,UK608] -Observation.ObservationControl._hostname = MCU001 -Observation.ObservationControl.heartbeatInterval = 10 -Observation.ObserverName = unknown -Observation.ProjectName = unknown -Observation.Scheduler.contactEmail = -Observation.Scheduler.contactName = -Observation.Scheduler.contactPhone = -Observation.Scheduler.firstPossibleDay = 0 -Observation.Scheduler.fixedDay = false -Observation.Scheduler.fixedTime = false -Observation.Scheduler.lastPossibleDay = 0 -Observation.Scheduler.late = false -Observation.Scheduler.nightTimeWeightFactor = 0 -Observation.Scheduler.predMaxTimeDif = -Observation.Scheduler.predMinTimeDif = -Observation.Scheduler.predecessor = 0 -Observation.Scheduler.priority = 0.0 -Observation.Scheduler.reason = 'DE604 cannot be combined with CS011 in this HBA mode due to network configuration' -Observation.Scheduler.referenceFrame = 0 -Observation.Scheduler.reservation = 0 -Observation.Scheduler.storageSelectionMode = 1 -Observation.Scheduler.taskDuration = 300 -Observation.Scheduler.taskID = 39 -Observation.Scheduler.taskName = 'B1508+55 (HBA)' -Observation.Scheduler.taskType = 0 -Observation.Scheduler.windowMaximumTime = 0023:59:59 -Observation.Scheduler.windowMinimumTime = -Observation.TBB.TBBsetting.RCUs = [] -Observation.TBB.TBBsetting.baselevel = 127 -Observation.TBB.TBBsetting.filter = 0 -Observation.TBB.TBBsetting.filter0_coeff0 = 0 -Observation.TBB.TBBsetting.filter0_coeff1 = 0 -Observation.TBB.TBBsetting.filter0_coeff2 = 0 -Observation.TBB.TBBsetting.filter0_coeff3 = 0 -Observation.TBB.TBBsetting.filter1_coeff0 = 0 -Observation.TBB.TBBsetting.filter1_coeff1 = 0 -Observation.TBB.TBBsetting.filter1_coeff2 = 0 -Observation.TBB.TBBsetting.filter1_coeff3 = 0 -Observation.TBB.TBBsetting.operatingMode = 1 -Observation.TBB.TBBsetting.startlevel = 7 -Observation.TBB.TBBsetting.stoplevel = 7 -Observation.TBB.TBBsetting.subbandList = [] -Observation.TBB.TBBsetting.triggerMode = 1 -Observation.TBB.TBBsetting.window = 1M -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationList = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS017,CS021,CS024,CS026,CS031,CS032,CS101,CS103,CS201,CS302,CS501,DE603,DE604,DE605,FR606,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509,SE607,UK608] -Observation.VirtualInstrument.stationSet = Custom -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [locus001,locus003,locus004,locus006,locus008,locus013,locus014,locus015,locus019,locus020,locus025,locus028,locus029,locus031,locus033,locus034,locus042,locus043,locus046,locus048,locus054,locus055,locus056,locus057,locus059,locus060,locus063,locus065,locus066,locus067,locus072,locus073,locus074,locus076,locus077,locus047] -Observation.antennaArray = HBA -Observation.antennaSet = HBA_DUAL -Observation.bandFilter = HBA_110_190 -Observation.beamList = [240*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 -Observation.claimPeriod = 120 -Observation.clockMode = <<Clock200 -Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] -Observation.existingStations = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS013,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,DE601,DE602,DE603,DE604,DE605,FR606,UK608] -Observation.longBaselines = False -Observation.nrAnaBeams = 1 -Observation.nrBeamformers = 0 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 90 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation -Observation.receiverList = [] -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -Observation.rspBoardList = [61*0,61*1,61*2,57*3] -Observation.rspSlotList = [0..60,0..60,0..60,0..56] -Observation.sampleClock = 200 -Observation.samplesPerSecond = 196608 -Observation.startTime = '2011-10-13 16:21:13' -Observation.stopTime = '2011-10-13 16:26:13' -Observation.strategy = -Observation.subbandList = [77..316] -Observation.subbandWidth = 195.3125 -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.853,460938.478,5064630.667] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.278,460979.407,5064658.174] -PIC.Core.CS001HBA0.position = [3826896.278,460979.407,5064658.174] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.428,460897.549,5064603.161] -PIC.Core.CS001HBA1.position = [3826979.428,460897.549,5064603.161] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.589,460915.393,5064643.460] -PIC.Core.CS002HBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.3205,460955.708,5064894.168] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.291555e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA0.position = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.291235e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002HBA1.position = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002LBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.CS003HBA.clockCorrectionTime = 6.889990e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.624,461017.650,5064955.147] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.889845e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA0.position = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.890135e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003HBA1.position = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003LBA.clockCorrectionTime = 6.890990e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.792,460930.018,5064946.429] -PIC.Core.CS004HBA.clockCorrectionTime = 7.861759e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.5995,460891.614,5064900.503] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.861849e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA0.position = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.861669e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004HBA1.position = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004LBA.clockCorrectionTime = 7.855759e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.240,460939.528,5064842.398] -PIC.Core.CS005HBA.clockCorrectionTime = 8.513690e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.221,461005.4845,5064827.444] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.513765e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA0.position = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.513615e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005HBA1.position = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005LBA.clockCorrectionTime = 8.507690e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.794,461069.502,5064819.726] -PIC.Core.CS006HBA.clockCorrectionTime = 7.854904e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.1845,461108.321,5064842.946] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.855584e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA0.position = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.854224e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006HBA1.position = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006LBA.clockCorrectionTime = 7.850904e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.773,461145.130,5064866.950] -PIC.Core.CS007HBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.411,461126.6775,5064934.9435] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.884946e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA0.position = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.885326e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007HBA1.position = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007LBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.405,461098.918,5064918.693] -PIC.Core.CS011HBA.clockCorrectionTime = 0 -PIC.Core.CS011HBA.phaseCenter = [3826676.727219166,461257.772494646,5064796.880] -PIC.Core.CS011HBA0.clockCorrectionTime = 0 -PIC.Core.CS011HBA0.phaseCenter = [3826724.071490001,461280.290998125,5064759.307] -PIC.Core.CS011HBA1.clockCorrectionTime = 0 -PIC.Core.CS011HBA1.phaseCenter = [3826629.382948333,461235.253991167,5064834.453] -PIC.Core.CS011LBA.clockCorrectionTime = 0 -PIC.Core.CS011LBA.phaseCenter = [3826667.11249,461285.801202,5064801.564] -PIC.Core.CS013HBA.clockCorrectionTime = 0 -PIC.Core.CS013HBA.phaseCenter = [3826355.923197501,460764.034575333,5065082.424] -PIC.Core.CS013HBA0.clockCorrectionTime = 0 -PIC.Core.CS013HBA0.phaseCenter = [3826403.267468333,460786.553099666,5065044.851] -PIC.Core.CS013HBA1.clockCorrectionTime = 0 -PIC.Core.CS013HBA1.phaseCenter = [3826308.578926666,460741.516051000,5065119.997] -PIC.Core.CS013LBA.clockCorrectionTime = 0 -PIC.Core.CS013LBA.phaseCenter = [3826346.30851,460792.063179,5065087.107] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.483,461529.931,5064940.483] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.139,461507.412,5064978.055] -PIC.Core.CS017HBA0.position = [3826405.139,461507.412,5064978.055] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.827,461552.450,5064902.910] -PIC.Core.CS017HBA1.position = [3826499.827,461552.450,5064902.910] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.097,461501.902,5064935.798] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.201,460510.528,5065060.159] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.468,460533.037,5065022.644] -PIC.Core.CS021HBA0.position = [3826463.468,460533.037,5065022.644] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.857,460488.009,5065097.731] -PIC.Core.CS021HBA1.position = [3826368.857,460488.009,5065097.731] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.586,460538.556,5065064.841] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.893,461381.331,5064416.334] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.236,461403.850,5064378.761] -PIC.Core.CS024HBA0.position = [3827218.236,461403.850,5064378.761] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.547,461358.813,5064453.906] -PIC.Core.CS024HBA1.position = [3827123.547,461358.813,5064453.906] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.277,461409.360,5064421.017] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.697,461846.719,5064968.678] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.270,461805.789,5064941.170] -PIC.Core.CS026HBA0.position = [3826418.270,461805.789,5064941.170] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.122,461887.648,5064996.185] -PIC.Core.CS026HBA1.position = [3826335.122,461887.648,5064996.185] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.959,461869.804,5064955.884] -PIC.Core.CS028HBA.clockCorrectionTime = 0 -PIC.Core.CS028HBA.phaseCenter = [3825610.103179167,461232.516541042,5065599.613] -PIC.Core.CS028HBA0.clockCorrectionTime = 0 -PIC.Core.CS028HBA0.phaseCenter = [3825657.447408333,461255.035044500,5065562.040] -PIC.Core.CS028HBA1.clockCorrectionTime = 0 -PIC.Core.CS028HBA1.phaseCenter = [3825562.758950000,461209.998037583,5065637.186] -PIC.Core.CS028LBA.clockCorrectionTime = 0 -PIC.Core.CS028LBA.phaseCenter = [3825600.48845,461260.545124,5065604.296] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3825999.9912340324,460364.22492058337,5065385.136533625] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.8445088593,460323.3355244964,5065357.416324711] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.6048163464,460405.2150478815,5065412.496568461] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.3094869214,460387.3411647229,5065372.299501434] -PIC.Core.CS031HBA.clockCorrectionTime = 0 -PIC.Core.CS031HBA.phaseCenter = [3826449.654258330,460245.756645042,5065058.882] -PIC.Core.CS031HBA0.clockCorrectionTime = 0 -PIC.Core.CS031HBA0.phaseCenter = [3826496.998508332,460268.275190167,5065021.309] -PIC.Core.CS031HBA0.position = [3826496.998508332,460268.275190167,5065021.309] -PIC.Core.CS031HBA1.clockCorrectionTime = 0 -PIC.Core.CS031HBA1.phaseCenter = [3826402.310008334,460223.238099917,5065096.455] -PIC.Core.CS031HBA1.position = [3826402.310008334,460223.238099917,5065096.455] -PIC.Core.CS031LBA.clockCorrectionTime = 0 -PIC.Core.CS031LBA.phaseCenter = [3826440.03955,460273.785186,5065063.565] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.880,460410.947,5064702.470] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.306,460451.876,5064729.978] -PIC.Core.CS032HBA0.position = [3826864.306,460451.876,5064729.978] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.454,460370.018,5064674.963] -PIC.Core.CS032HBA1.position = [3826947.454,460370.018,5064674.963] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.617,460387.862,5064715.264] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825858.001,461661.462,5065374.073] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.345,461683.980,5065336.500] -PIC.Core.CS101HBA0.position = [3825905.345,461683.980,5065336.500] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.656,461638.943,5065411.645] -PIC.Core.CS101HBA1.position = [3825810.656,461638.943,5065411.645] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.387,461689.490,5065378.757] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.059,462799.955,5064947.098] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.633,462759.026,5064919.592] -PIC.Core.CS103HBA0.position = [3826331.633,462759.026,5064919.592] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.484,462840.885,5064974.605] -PIC.Core.CS103HBA1.position = [3826248.484,462840.885,5064974.605] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.323,462823.041,5064934.306] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.094,461918.643,5064731.286] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.324,461855.195,5064741.351] -PIC.Core.CS201HBA0.position = [3826679.324,461855.195,5064741.351] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.865,461982.091,5064721.221] -PIC.Core.CS201HBA1.position = [3826690.865,461982.091,5064721.221] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.972,461913.699,5064713.810] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.384,460985.233,5064240.173] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.152,461048.680,5064230.107] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.613,460921.785,5064250.237] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.506,460990.176,5064257.649] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.6956053847,459769.50630620244,5064002.778603462] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.269609978,459728.57630928187,5063975.271605821] -PIC.Core.CS302HBA0.position = [3827973.269609978,459728.57630928187,5063975.271605821] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.120600792,459810.43530312297,5064030.284601102] -PIC.Core.CS302HBA1.position = [3827890.120600792,459810.43530312297,5064030.284601102] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.959604251,459792.591307241,5063989.987604071] -PIC.Core.CS401HBA.clockCorrectionTime = 0 -PIC.Core.CS401HBA.phaseCenter = [3826790.025,460095.396,5064818.967] -PIC.Core.CS401HBA0.clockCorrectionTime = 0 -PIC.Core.CS401HBA0.phaseCenter = [3826795.796,460158.846,5064808.901] -PIC.Core.CS401HBA1.clockCorrectionTime = 0 -PIC.Core.CS401HBA1.phaseCenter = [3826784.254,460031.945,5064829.033] -PIC.Core.CS401LBA.clockCorrectionTime = 0 -PIC.Core.CS401LBA.phaseCenter = [3826766.149,460100.340,5064836.441] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.208,460670.091,5065645.428] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.863,460647.572,5065682.999] -PIC.Core.CS501HBA0.position = [3825568.863,460647.572,5065682.999] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.551,460692.610,5065607.854] -PIC.Core.CS501HBA1.position = [3825663.551,460692.610,5065607.854] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.822,460642.062,5065640.743] -PIC.Core.DE601HBA.clockCorrectionTime = -1.1e-6 -PIC.Core.DE601HBA.phaseCenter = [4034099.797,487013.365,4900229.675] -PIC.Core.DE601LBA.clockCorrectionTime = -1.1e-6 -PIC.Core.DE601LBA.phaseCenter = [4034031.15496,487014.431413,4900284.552] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.135,828789.112,4754362.246] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152561.04694,828854.648828,4754358.945] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.753,816722.816,4932394.388] -PIC.Core.DE603HBA.position = [3940295.753,816722.816,4932394.388] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940273.38771,816802.647308,4932401.720] -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.phaseCenter = [3796379.871,877614.083,5032712.500] -PIC.Core.DE604HBA.position = [3796379.871,877614.083,5032712.500] -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.phaseCenter = [3796333.91682,877579.009676,5032754.819] -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.phaseCenter = [4005718.102402811,451028.333355614,4926424.344] -PIC.Core.DE605HBA.position = [4005718.102402811,451028.333355614,4926424.344] -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.phaseCenter = [4005671.76641,450976.577352,4926465.208] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.745,165545.473,4670271.331] -PIC.Core.FR606HBA.position = [4324016.745,165545.473,4670271.331] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323988.52874,165616.853682,4670294.784] -PIC.Core.IONProc.R00[0].inputs = [CS021HBA1/RSP0,CS021HBA1/RSP1,CS021HBA1/RSP2,CS021HBA1/RSP3] -PIC.Core.IONProc.R00[10].inputs = [CS026HBA1/RSP0,CS026HBA1/RSP1,CS026HBA1/RSP2,CS026HBA1/RSP3] -PIC.Core.IONProc.R00[11].inputs = [CS201HBA1/RSP0,CS201HBA1/RSP1,CS201HBA1/RSP2,CS201HBA1/RSP3] -PIC.Core.IONProc.R00[12].inputs = [FR606HBA/RSP0,FR606HBA/RSP1,FR606HBA/RSP2,FR606HBA/RSP3] -PIC.Core.IONProc.R00[13].inputs = [SE607HBA/RSP0,SE607HBA/RSP1,SE607HBA/RSP2,SE607HBA/RSP3] -PIC.Core.IONProc.R00[14].inputs = [CS001HBA1/RSP0,CS001HBA1/RSP1,CS001HBA1/RSP2,CS001HBA1/RSP3] -PIC.Core.IONProc.R00[15].inputs = [DE605HBA/RSP0,DE605HBA/RSP1,DE605HBA/RSP2,DE605HBA/RSP3] -PIC.Core.IONProc.R00[16].inputs = [CS017HBA1/RSP0,CS017HBA1/RSP1,CS017HBA1/RSP2,CS017HBA1/RSP3] -PIC.Core.IONProc.R00[17].inputs = [] -PIC.Core.IONProc.R00[18].inputs = [DE604HBA/RSP0,DE604HBA/RSP1,DE604HBA/RSP2,DE604HBA/RSP3] -PIC.Core.IONProc.R00[19].inputs = [DE603HBA/RSP0,DE603HBA/RSP1,DE603HBA/RSP2,DE603HBA/RSP3] -PIC.Core.IONProc.R00[1].inputs = [CS005HBA1/RSP0,CS005HBA1/RSP1,CS005HBA1/RSP2,CS005HBA1/RSP3] -PIC.Core.IONProc.R00[20].inputs = [CS501HBA1/RSP0,CS501HBA1/RSP1,CS501HBA1/RSP2,CS501HBA1/RSP3] -PIC.Core.IONProc.R00[21].inputs = [] -PIC.Core.IONProc.R00[22].inputs = [CS103HBA1/RSP0,CS103HBA1/RSP1,CS103HBA1/RSP2,CS103HBA1/RSP3] -PIC.Core.IONProc.R00[23].inputs = [RS205HBA/RSP0,RS205HBA/RSP1,RS205HBA/RSP2,RS205HBA/RSP3] -PIC.Core.IONProc.R00[24].inputs = [] -PIC.Core.IONProc.R00[25].inputs = [] -PIC.Core.IONProc.R00[26].inputs = [CS302HBA0/RSP0,CS302HBA0/RSP1,CS302HBA0/RSP2,CS302HBA0/RSP3] -PIC.Core.IONProc.R00[27].inputs = [CS302HBA1/RSP0,CS302HBA1/RSP1,CS302HBA1/RSP2,CS302HBA1/RSP3] -PIC.Core.IONProc.R00[28].inputs = [] -PIC.Core.IONProc.R00[29].inputs = [UK608HBA/RSP0,UK608HBA/RSP1,UK608HBA/RSP2,UK608HBA/RSP3] -PIC.Core.IONProc.R00[2].inputs = [CS002HBA1/RSP0,CS002HBA1/RSP1,CS002HBA1/RSP2,CS002HBA1/RSP3] -PIC.Core.IONProc.R00[30].inputs = [RS406HBA/RSP0,RS406HBA/RSP1,RS406HBA/RSP2,RS406HBA/RSP3] -PIC.Core.IONProc.R00[31].inputs = [RS509HBA/RSP0,RS509HBA/RSP1,RS509HBA/RSP2,RS509HBA/RSP3] -PIC.Core.IONProc.R00[32].inputs = [CS021HBA0/RSP0,CS021HBA0/RSP1,CS021HBA0/RSP2,CS021HBA0/RSP3] -PIC.Core.IONProc.R00[33].inputs = [CS005HBA0/RSP0,CS005HBA0/RSP1,CS005HBA0/RSP2,CS005HBA0/RSP3] -PIC.Core.IONProc.R00[34].inputs = [CS002HBA0/RSP0,CS002HBA0/RSP1,CS002HBA0/RSP2,CS002HBA0/RSP3] -PIC.Core.IONProc.R00[35].inputs = [CS006HBA0/RSP0,CS006HBA0/RSP1,CS006HBA0/RSP2,CS006HBA0/RSP3] -PIC.Core.IONProc.R00[36].inputs = [CS003HBA0/RSP0,CS003HBA0/RSP1,CS003HBA0/RSP2,CS003HBA0/RSP3] -PIC.Core.IONProc.R00[37].inputs = [CS007HBA0/RSP0,CS007HBA0/RSP1,CS007HBA0/RSP2,CS007HBA0/RSP3] -PIC.Core.IONProc.R00[38].inputs = [CS004HBA0/RSP0,CS004HBA0/RSP1,CS004HBA0/RSP2,CS004HBA0/RSP3] -PIC.Core.IONProc.R00[39].inputs = [CS024HBA0/RSP0,CS024HBA0/RSP1,CS024HBA0/RSP2,CS024HBA0/RSP3] -PIC.Core.IONProc.R00[3].inputs = [CS006HBA1/RSP0,CS006HBA1/RSP1,CS006HBA1/RSP2,CS006HBA1/RSP3] -PIC.Core.IONProc.R00[40].inputs = [CS101HBA0/RSP0,CS101HBA0/RSP1,CS101HBA0/RSP2,CS101HBA0/RSP3] -PIC.Core.IONProc.R00[41].inputs = [CS032HBA0/RSP0,CS032HBA0/RSP1,CS032HBA0/RSP2,CS032HBA0/RSP3] -PIC.Core.IONProc.R00[42].inputs = [CS026HBA0/RSP0,CS026HBA0/RSP1,CS026HBA0/RSP2,CS026HBA0/RSP3] -PIC.Core.IONProc.R00[43].inputs = [CS201HBA0/RSP0,CS201HBA0/RSP1,CS201HBA0/RSP2,CS201HBA0/RSP3] -PIC.Core.IONProc.R00[44].inputs = [] -PIC.Core.IONProc.R00[45].inputs = [] -PIC.Core.IONProc.R00[46].inputs = [CS001HBA0/RSP0,CS001HBA0/RSP1,CS001HBA0/RSP2,CS001HBA0/RSP3] -PIC.Core.IONProc.R00[47].inputs = [] -PIC.Core.IONProc.R00[48].inputs = [CS017HBA0/RSP0,CS017HBA0/RSP1,CS017HBA0/RSP2,CS017HBA0/RSP3] -PIC.Core.IONProc.R00[49].inputs = [RS208HBA/RSP0,RS208HBA/RSP1,RS208HBA/RSP2,RS208HBA/RSP3] -PIC.Core.IONProc.R00[4].inputs = [CS003HBA1/RSP0,CS003HBA1/RSP1,CS003HBA1/RSP2,CS003HBA1/RSP3] -PIC.Core.IONProc.R00[50].inputs = [] -PIC.Core.IONProc.R00[51].inputs = [] -PIC.Core.IONProc.R00[52].inputs = [CS501HBA0/RSP0,CS501HBA0/RSP1,CS501HBA0/RSP2,CS501HBA0/RSP3] -PIC.Core.IONProc.R00[53].inputs = [RS503HBA/RSP0,RS503HBA/RSP1,RS503HBA/RSP2,RS503HBA/RSP3] -PIC.Core.IONProc.R00[54].inputs = [CS103HBA0/RSP0,CS103HBA0/RSP1,CS103HBA0/RSP2,CS103HBA0/RSP3] -PIC.Core.IONProc.R00[55].inputs = [RS106HBA/RSP0,RS106HBA/RSP1,RS106HBA/RSP2,RS106HBA/RSP3] -PIC.Core.IONProc.R00[56].inputs = [] -PIC.Core.IONProc.R00[57].inputs = [] -PIC.Core.IONProc.R00[58].inputs = [CS031HBA0/RSP0,CS031HBA0/RSP1,CS031HBA0/RSP2,CS031HBA0/RSP3] -PIC.Core.IONProc.R00[59].inputs = [CS031HBA1/RSP0,CS031HBA1/RSP1,CS031HBA1/RSP2,CS031HBA1/RSP3] -PIC.Core.IONProc.R00[5].inputs = [CS007HBA1/RSP0,CS007HBA1/RSP1,CS007HBA1/RSP2,CS007HBA1/RSP3] -PIC.Core.IONProc.R00[60].inputs = [RS306HBA/RSP0,RS306HBA/RSP1,RS306HBA/RSP2,RS306HBA/RSP3] -PIC.Core.IONProc.R00[61].inputs = [] -PIC.Core.IONProc.R00[62].inputs = [RS307HBA/RSP0,RS307HBA/RSP1,RS307HBA/RSP2,RS307HBA/RSP3] -PIC.Core.IONProc.R00[63].inputs = [RS508HBA/RSP0,RS508HBA/RSP1,RS508HBA/RSP2,RS508HBA/RSP3] -PIC.Core.IONProc.R00[6].inputs = [CS004HBA1/RSP0,CS004HBA1/RSP1,CS004HBA1/RSP2,CS004HBA1/RSP3] -PIC.Core.IONProc.R00[7].inputs = [CS024HBA1/RSP0,CS024HBA1/RSP1,CS024HBA1/RSP2,CS024HBA1/RSP3] -PIC.Core.IONProc.R00[8].inputs = [CS101HBA1/RSP0,CS101HBA1/RSP1,CS101HBA1/RSP2,CS101HBA1/RSP3] -PIC.Core.IONProc.R00[9].inputs = [CS032HBA1/RSP0,CS032HBA1/RSP1,CS032HBA1/RSP2,CS032HBA1/RSP3] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.641,469142.485,5062180.973] -PIC.Core.RS106HBA.position = [3829205.641,469142.485,5062180.973] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.468,469162.237,5062137.281] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205HBA.position = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.606,463435.393,5061025.437] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.353,466962.762,5048397.215] -PIC.Core.RS208HBA.position = [3847753.353,466962.762,5048397.215] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.094,466929.659,5048357.193] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.292,452761.654,5063243.153] -PIC.Core.RS306HBA.position = [3829771.292,452761.654,5063243.153] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.851,452829.800,5063221.562] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.5626099864,449627.2130233004,5057357.55606065] -PIC.Core.RS307HBA.position = [3837964.5626099864,449627.2130233004,5057357.55606065] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.9917542874,449560.70805339684,5057381.259244779] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406HBA.position = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818468.029,451974.278,5071790.337] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.6094873874,459476.92505906447,5066858.549501777] -PIC.Core.RS503HBA.position = [3824138.6094873874,459476.92505906447,5066858.549501777] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.495722555,459438.235056466,5066898.161723869] -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.phaseCenter = [3797136.52722,463114.400027542,5086651.258] -PIC.Core.RS508HBA.position = [3797136.52722,463114.400027542,5086651.258] -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.phaseCenter = [3797202.15922,463087.462032,5086605.009] -PIC.Core.RS509HBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.phaseCenter = [3783537.56865,450130.017032313,5097866.118] -PIC.Core.RS509HBA.position = [3783537.56865,450130.017032313,5097866.118] -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.phaseCenter = [3783579.17465,450178.835035000,5097830.807] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.phaseCenter = [3370271.7053,712125.8383,5349991.141] -PIC.Core.SE607HBA.position = [3370271.7053,712125.8383,5349991.141] -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.phaseCenter = [3370288.86634,712039.473313,5349992.106] -PIC.Core.Station.CS001HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS001HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS017HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS017HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS021HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS021HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS024HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS024HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS026HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS026HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS031HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS031HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS032HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS032HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS101HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS101HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS103HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS103HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS201HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS201HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS302HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS302HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS501HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS501HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.DE603HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.DE604HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.DE605HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.FR606HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS106HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS205HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS208HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS306HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS307HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS406HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS503HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS508HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS509HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.SE607HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.UK608HBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608HBA.position = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008428.362,-100303.525,4943744.070] -_DPname = LOFAR_ObsSW_TempObs0094 -_parsetPrefix = CorrAppl.CorrProc. -_processName = CorrProc diff --git a/RTCP/CNProc/test/tCN_Processing_alloc.sh b/RTCP/CNProc/test/tCN_Processing_alloc.sh deleted file mode 100755 index 9bf98f1d6b077bb6c14c2314bcdc8fba096e35af..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tCN_Processing_alloc.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tCN_Processing_alloc diff --git a/RTCP/CNProc/test/tDedispersion.cc b/RTCP/CNProc/test/tDedispersion.cc deleted file mode 100644 index 6467fb57ad147576e9ef40ca4f139d939cb5df1b..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tDedispersion.cc +++ /dev/null @@ -1,134 +0,0 @@ -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Common/Timer.h> -#include <CN_Math.h> -#include <Dedispersion.h> - -#include <cassert> -#include <cstring> - -#include <boost/lexical_cast.hpp> - - -#define BLOCK_SIZE 4096 -#define FFT_SIZE 4096 -#define DM 10 -#define NR_STATIONS 64 -#define NR_BEAMS 64 -#define NR_CHANNELS 16 - - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; - - -void init(Parset &parset) -{ - assert(BLOCK_SIZE % FFT_SIZE == 0); - - std::string stationList("[ST0"); - - for (int stat = 1; stat < NR_STATIONS; stat ++) - stationList.append(",").append(boost::lexical_cast<std::string>(stat)); - - stationList.append("]"); - - parset.add("OLAP.storageStationNames", stationList); - parset.add("Observation.Beam[0].nrTiedArrayBeams", "64"); - parset.add("Observation.channelsPerSubband", boost::lexical_cast<std::string>(NR_CHANNELS)); - parset.add("OLAP.CNProc.integrationSteps", boost::lexical_cast<std::string>(BLOCK_SIZE)); - parset.add("OLAP.CNProc.dedispersionFFTsize", boost::lexical_cast<std::string>(FFT_SIZE)); - parset.add("OLAP.CNProc.tabList", "[]"); - parset.add("Observation.bandFilter", "LBA_30_90"); - parset.add("Observation.sampleClock", "200"); - parset.add("OLAP.dispersionMeasure", boost::lexical_cast<std::string>(DM)); - parset.add("Observation.subbandList", "[50]"); -} - - -void setTestPattern(FilteredData &filteredData) -{ - memset(&filteredData.samples[0][0][0][0], 0, filteredData.samples.num_elements() * sizeof(fcomplex)); - - for (unsigned i = 0; i < BLOCK_SIZE; i ++) - filteredData.samples[0][0][i][0] = cosisin(2 * M_PI * i * 5 / BLOCK_SIZE) /* + cosisin(2 * M_PI * i * 22 / BLOCK_SIZE) */; -} - - -void setTestPattern(BeamFormedData &beamFormedData) -{ - memset(&beamFormedData.samples[0][0][0][0], 0, beamFormedData.samples.num_elements() * sizeof(fcomplex)); - - for (unsigned i = 0; i < BLOCK_SIZE; i ++) - beamFormedData.samples[0][0][i][0] = cosisin(2 * M_PI * i * 5 / BLOCK_SIZE) /* + cosisin(2 * M_PI * i * 22 / BLOCK_SIZE) */; -} - - -void plot(const FilteredData &filteredData, float r, float g, float b) -{ - std::cout << "newcurve linetype solid linethickness 3 marktype none color " << r << ' ' << g << ' ' << b << " pts" << std::endl; - - for (unsigned i = 0; i < FFT_SIZE; i ++) - std::cout << i << ' ' << real(filteredData.samples[0][0][i][0]) << std::endl; -} - - -void plot(const BeamFormedData &beamFormedData, float r, float g, float b) -{ - std::cout << "newcurve linetype solid linethickness 3 marktype none color " << r << ' ' << g << ' ' << b << " pts" << std::endl; - - for (unsigned i = 0; i < FFT_SIZE; i ++) - std::cout << i << ' ' << real(beamFormedData.samples[0][0][i][0]) << std::endl; -} - - -int main() -{ -#if defined HAVE_BGP - INIT_LOGGER_WITH_SYSINFO("tDedispersion"); -#endif - - Parset parset; - init(parset); - -#if 1 - BeamFormedData beamFormedData(NR_BEAMS, NR_CHANNELS, BLOCK_SIZE); - std::vector<unsigned> subbandIndices(1, 0); - std::vector<double> DMs(1, DM); - DedispersionAfterBeamForming dedispersion(parset, &beamFormedData, subbandIndices, DMs); - - setTestPattern(beamFormedData); - std::cout << "newgraph xaxis size 7 yaxis size 7" << std::endl; - plot(beamFormedData, 1, 0, 0); - - NSTimer timer("dedisperse total", true, true); - timer.start(); - - for (unsigned beam = 0; beam < NR_BEAMS; beam ++) - dedispersion.dedisperse(&beamFormedData, 0, beam, DMs[0]); - - timer.stop(); - - plot(beamFormedData, 0, 0, 1); -#else - FilteredData filteredData(NR_STATIONS, NR_CHANNELS, BLOCK_SIZE); - std::vector<unsigned> subbandIndices(1, 0); - std::vector<double> DMs(1, DM); - DedispersionBeforeBeamForming dedispersion(parset, &filteredData, subbandIndices, DMs); - - setTestPattern(filteredData); - std::cout << "newgraph xaxis size 7 yaxis size 7" << std::endl; - plot(filteredData, 1, 0, 0); - - NSTimer timer("dedisperse total", true, true); - timer.start(); - dedispersion.dedisperse(&filteredData, DMs[0]); - timer.stop(); - - plot(filteredData, 0, 0, 1); -#endif - - return 0; -} diff --git a/RTCP/CNProc/test/tFIR_Asm.cc b/RTCP/CNProc/test/tFIR_Asm.cc deleted file mode 100644 index f86f399f6f498fa1d0ae2c00950bf6104cc5de3a..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tFIR_Asm.cc +++ /dev/null @@ -1,83 +0,0 @@ -#include <lofar_config.h> - -#include <FIR_Asm.h> -#include <PPF.h> -#include <Common/Timer.h> - -#include <iostream> - - -#if !defined PPF_C_IMPLEMENTATION && !defined FIR_C_IMPLEMENTATION -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; -#endif - -#define SIZE 131072 - -int main() -{ -#if !defined PPF_C_IMPLEMENTATION && !defined FIR_C_IMPLEMENTATION - { - i16complex in[SIZE] = { - makei16complex(0x0100, 0x0200), - makei16complex(0x0300, 0x0400), - makei16complex(0x0500, 0x0600), - }; - - in[SIZE - 1] = makei16complex(0x0700, 0x0801); - - fcomplex out[SIZE]; - - NSTimer timer("little endian i16complex -> float", true); - timer.start(); - _convert(out, in, SIZE); - timer.stop(); - - std::cout << out[0] << ' ' << out[1] << ' ' << out[2] << ' ' << out[SIZE - 1] << std::endl; - } - - { - PPF<i8complex>::initConstantTable(); - - i8complex in[SIZE] = { - makei8complex(1, 2), - makei8complex(3, 4), - makei8complex(5, 6), - }; - - in[SIZE - 1] = makei8complex(7, 8); - - fcomplex out[SIZE]; - - NSTimer timer("little endian i8complex -> float", true); - timer.start(); - _convert(out, in, SIZE); - timer.stop(); - - std::cout << out[0] << ' ' << out[1] << ' ' << out[2] << ' ' << out[SIZE - 1] << std::endl; - } - - { - PPF<i4complex>::initConstantTable(); - - i4complex in[SIZE] = { - makei4complex(0.5, 1.5), - makei4complex(2.5, 3.5), - makei4complex(4.5, 5.5), - }; - - in[SIZE - 1] = makei4complex(-1.5, -0.5); - - fcomplex out[SIZE]; - - NSTimer timer("little endian i4complex -> float", true); - timer.start(); - _convert(out, in, SIZE); - timer.stop(); - - std::cout << out[0] << ' ' << out[1] << ' ' << out[2] << ' ' << out[SIZE - 1] << std::endl; - } -#endif - return 0; -} diff --git a/RTCP/CNProc/test/tInversePPF.cc b/RTCP/CNProc/test/tInversePPF.cc deleted file mode 100644 index d67c01d1f2b5eb75c515fdd3d4ba80843a287349..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tInversePPF.cc +++ /dev/null @@ -1,327 +0,0 @@ -#include <lofar_config.h> - -#include <Common/lofar_complex.h> -#include <Common/Timer.h> -#include <Interface/TransposedBeamFormedData.h> -#include <Interface/InverseFilteredData.h> -#include <Interface/Align.h> -#include <Interface/AlignedStdAllocator.h> -#include <vector> -#include <FilterBank.h> -#include <FIR.h> -#include <InversePPF.h> - -#include <FIR_OriginalStationPPFWeights.h> // defines originalStationPPFWeights array -#include <FIR_InvertedStationPPFWeights.h> // defines invertedStationPPFWeights array - -// #undef HAVE_FFTW3 - -// On the BG/P, FFT2 uses the double floating point units, FFT3 works, but only uses one. -#if defined HAVE_FFTW3 -#include <fftw3.h> -//#error using fftw3 -#elif defined HAVE_FFTW2 -#include <fftw.h> -#include <rfftw.h> -//#error using fftw2 -#else -#error Should have FFTW3 or FFTW2 installed -#endif - -#if defined HAVE_FFTW3 -#define fftw_real(x) ((x)[0]) -#define fftw_imag(x) ((x)[1]) -#elif defined HAVE_FFTW2 -#define fftw_real(x) (c_re(x)) -#define fftw_imag(x) (c_im(x)) -#endif - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; - -#if defined HAVE_FFTW3 -fftwf_plan plan; -#elif defined HAVE_FFTW2 -rfftw_plan plan; -#endif - -const static unsigned onStationFilterSize = 1024; -const static unsigned nrTaps = 16; - -static unsigned nrSubbands = 248; -//static unsigned nrSubbands = 4; -static unsigned nrChannels = 1; // for the NuMoon pipeline, there are no separate channels. -//static unsigned nrSamplesPerIntegration = 768 * 256 / 4; // one quarter of a second -static unsigned nrSamplesPerIntegration = 19648; // roughly 0.1 seconds -//static unsigned nrSamplesPerIntegration = 64; -static double subbandBandwidth = 195312.5; -static double centerFrequency = (nrSamplesPerIntegration / 2) * subbandBandwidth; -static double signalFrequency = centerFrequency - (0.5 * subbandBandwidth); - -float originalStationPPFWeightsFloat[1024][16]; -float* fftInData; -float* fftOutData; - -static void initFFT() { -#if defined HAVE_FFTW3 - fftInData = (float*) fftwf_malloc(onStationFilterSize * sizeof(float)); - fftOutData = (float*) fftwf_malloc(onStationFilterSize * sizeof(float)); - - plan = fftwf_plan_r2r_1d(onStationFilterSize, fftInData, fftOutData, FFTW_R2HC, FFTW_ESTIMATE); -#elif defined HAVE_FFTW2 - fftInData = (float*) malloc(onStationFilterSize * sizeof(float)); - fftOutData = (float*) malloc(onStationFilterSize * sizeof(float)); - - plan = rfftw_create_plan(onStationFilterSize, FFTW_REAL_TO_COMPLEX, FFTW_ESTIMATE); -#endif - - if (fftInData == NULL || fftOutData == NULL) { - cerr << "Out of memory" << endl; - exit(1); - } -} - -static void destroyFFT() { -#if defined HAVE_FFTW3 - fftwf_free(fftInData); - fftwf_free(fftOutData); - fftwf_destroy_plan(plan); -#elif defined HAVE_FFTW2 - free(fftInData); - free(fftOutData); - rfftw_destroy_plan(plan); -#endif -} - -static void generateInputSignal(InverseFilteredData& originalData) { - for (unsigned time = 0; time < nrSamplesPerIntegration * onStationFilterSize; time++) { - double val = sin(time/(768.0*2.0)); - originalData.samples[time] = val; - } -} - -static void performStationFFT(TransposedBeamFormedData& transposedBeamFormedData, std::vector<unsigned>& subbandList, unsigned time) { -#if defined HAVE_FFTW3 - fftwf_execute(plan); -#elif defined HAVE_FFTW2 - rfftw_one(plan, (fftw_real*) fftInData, (fftw_real*) fftOutData); -#endif - - // Put data in the right order, go from half complex to normal format - for (unsigned subbandIndex = 0; subbandIndex < subbandList.size(); subbandIndex++) { - unsigned subband = subbandList[subbandIndex]; - fcomplex sample = makefcomplex(fftOutData[subband], fftOutData[onStationFilterSize - subband - 1]); - transposedBeamFormedData.samples[subband][0 /* channel, but there is only one now */][time] = sample; - } -} - -static void performStationFilter(InverseFilteredData& originalData, std::vector<FIR<float> >& FIRs, unsigned time) { - for (unsigned minorTime = 0; minorTime < onStationFilterSize; minorTime++) { - float sample = originalData.samples[time * onStationFilterSize + minorTime]; - float result = FIRs[minorTime].processNextSample(sample); - fftInData[minorTime] = result; - } -} - -#if 0 -static void printData(InverseFilteredData& data) { - for (unsigned time = 0; time < nrSamplesPerIntegration * onStationFilterSize; time++) { - float sample = data.samples[time]; - fprintf(stdout, "%20.10lf\n", sample); - } -} -#endif - -#if 0 -static void cepFilterTest() { - // CEP filter test - FilterBank fb(true, 16, 256, KAISER); - boost::multi_array<FIR<fcomplex> , 1> firs(boost::extents[16]); - - // Init the FIR filters themselves with the weights of the filterbank. - for (unsigned chan = 0; chan < nrChannels; chan++) { - firs[chan].initFilter(&fb, chan); - } - - cout << "START CEP WEIGHTS" << endl; - fb.printWeights(); - cout << "END CEP WEIGHTS" << endl; -} -#endif - -#if 0 -static void fftTest() { - float* inputData = (float*) malloc(onStationFilterSize * sizeof(float)); - - fftwf_plan inversePlan = fftwf_plan_r2r_1d(onStationFilterSize, fftOutData, fftInData, FFTW_HC2R, FFTW_ESTIMATE); - - // generate signal - for (unsigned time = 0; time < onStationFilterSize; time++) { - double val = sin(signalFrequency * time / subbandBandwidth); - fftInData[time] = val; - inputData[time] = val; - } - -#if 0 -// cout << "START FFT TEST INPUT" << endl; - for (unsigned time = 0; time < onStationFilterSize; time++) { - float sample = fftInData[time]; - fprintf(stdout, "%20.10lf\n", sample); - } -// cout << "END FFT TEST INPUT" << endl; -#endif - - // simulate some zeros - for(unsigned int i=248; i<onStationFilterSize; i++) { - fftInData[i] = 0.0; - inputData[i] = 0.0; - } - - fftwf_execute(plan); - -#if 0 - // Put data in the right order, go from half complex to normal format - for (unsigned subband = 0; subband < nrSubbands; subband++) { - fcomplex sample = makefcomplex(fftOutData[subband], fftOutData[onStationFilterSize - subband - 1]); - transposedBeamFormedData.samples[subband][0 /* channel */][time] = sample; - } -#endif - - fftwf_execute(inversePlan); - - float maxError = 0.0f; - - for (unsigned time = 0; time < onStationFilterSize; time++) { - float error = fabsf(inputData[time] - (fftInData[time]/((float)onStationFilterSize))); // the error - if(error > maxError) { - maxError = error; - } -// fprintf(stdout, "%20.10lf\n", error); -// fprintf(stdout, "%20.10lf\n", fftInData[time]); - } - - cerr << "max error = " << maxError << endl; - free(inputData); -} -#endif - -#if 0 -// Do a station filter + inverse filter, but not the FFTs. -static void filterTest(InverseFilteredData& originalData) { - FilterBank originalStationFilterBank(true, nrTaps, onStationFilterSize, (float*) originalStationPPFWeightsFloat); - std::vector<FIR<float> > FIRs; - FIRs.resize(onStationFilterSize); // Init the FIR filters themselves with the weights of the filterbank. - for (unsigned chan = 0; chan < onStationFilterSize; chan++) { - FIRs[chan].initFilter(&originalStationFilterBank, chan); - } -// cout << "START ORIG STATION WEIGHTS" << endl; -// originalStationFilterBank.printWeights(); -// cout << "END ORIG STATION WEIGHTS" << endl; - - FilterBank invertedStationFilterBank(true, nrTaps, onStationFilterSize, (float*) invertedStationPPFWeights); - - std::vector<FIR<float> > inverseFIRs; - inverseFIRs.resize(onStationFilterSize); // Init the FIR filters themselves with the weights of the filterbank. - for (unsigned chan = 0; chan < onStationFilterSize; chan++) { - inverseFIRs[chan].initFilter(&invertedStationFilterBank, chan); - } - -// cout << "START INV STATION WEIGHTS" << endl; -// invertedStationFilterBank.printWeights(); -// cout << "END INV STATION WEIGHTS" << endl; - - for(unsigned major=0; major<nrSamplesPerIntegration; major++) { - for(unsigned minor = 0; minor < onStationFilterSize; minor++) { - float sample = originalData.samples[major * onStationFilterSize + minor]; - float result = FIRs[minor].processNextSample(sample); - float resultInv = inverseFIRs[minor].processNextSample(result); - - fprintf(stdout, "%20.10lf %20.10lf %20.10lf\n", sample, result, resultInv); - } - } -} -#endif - -int main() { - - NSTimer iPPFTimer("Full inverse PPF", true); - - // copy the integer filter constants into a float array. - for (unsigned filter = 0; filter < onStationFilterSize; filter++) { - for (unsigned tap = 0; tap < nrTaps; tap++) { - originalStationPPFWeightsFloat[filter][tap] = originalStationPPFWeights[filter][tap]; - } - } - - FilterBank originalStationFilterBank(true, nrTaps, onStationFilterSize, (float*) originalStationPPFWeightsFloat); - std::vector<FIR<float> > FIRs; - FIRs.resize(onStationFilterSize); // Init the FIR filters themselves with the weights of the filterbank. - for (unsigned chan = 0; chan < onStationFilterSize; chan++) { - FIRs[chan].initFilter(&originalStationFilterBank, chan); - } - -#if 0 - cout << "START ORIG STATION WEIGHTS" << endl; - originalStationFilterBank.printWeights(); - cout << "END ORIG STATION WEIGHTS" << endl; -#endif - - // The original data has the same data format as the original data, so reuse it here for this test - InverseFilteredData originalData(nrSamplesPerIntegration, onStationFilterSize); - TransposedBeamFormedData transposedBeamFormedData(nrSubbands, nrChannels, nrSamplesPerIntegration); - InverseFilteredData invertedFilteredData(nrSamplesPerIntegration, onStationFilterSize); - std::vector<unsigned> subbandList(nrSubbands); - - // for now, we just select the first n subbands. - for (unsigned sb = 0; sb < nrSubbands; sb ++) - subbandList[sb] = sb; - - InversePPF inversePPF(subbandList, nrSamplesPerIntegration, true); - initFFT(); - -// fftTest(); - - cerr << "generating input signal" << endl; - - generateInputSignal(originalData); - -// printData(originalData); - -// filterTest(originalData); -// exit(0); - - cerr << "simulating station filter" << endl; - - for (unsigned time = 0; time < nrSamplesPerIntegration; time++) { - performStationFilter(originalData, FIRs, time); - performStationFFT(transposedBeamFormedData, subbandList, time); - } - -#if 0 - for (unsigned sb = 0; sb < nrSubbands; sb++) - for (unsigned time = 0; time < nrSamplesPerIntegration; time++) { - fcomplex sample = transposedBeamFormedData.samples[sb][0][time]; // [sb][chan][time] - fprintf(stdout, "%20.10lf\n", real(sample)); - } -#endif - - const unsigned nIter = 1; - - cerr << "performing inversePPF " << nIter << " time(s)" << endl; - - for(unsigned i=0; i<nIter; i++) { - iPPFTimer.start(); - inversePPF.performInversePPF(transposedBeamFormedData, invertedFilteredData); - iPPFTimer.stop(); - } - - cerr << "inversePPF done" << endl; - - // cout << "result:" << endl; - -// printData(invertedFilteredData); - - destroyFFT(); - return 0; -} diff --git a/RTCP/CNProc/test/tPencilBeamFormer.cc b/RTCP/CNProc/test/tPencilBeamFormer.cc deleted file mode 100644 index 29ac5830904f88172e8ccea502b597e1b75ea42f..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tPencilBeamFormer.cc +++ /dev/null @@ -1,365 +0,0 @@ -#include <lofar_config.h> - -#include <BeamFormer.h> -#include <Common/lofar_complex.h> -#include <Interface/FilteredData.h> -#include <Interface/BeamFormedData.h> -#include <vector> -#include <boost/format.hpp> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; -using boost::format; - -#define NRSTATIONS 12 -#define NRPENCILBEAMS 12 - -#define NRCHANNELS 64 -#define NRSAMPLES 1024 // keep computation time short, 128 is minimum (see BeamFormer.cc) -#define NRSUBBANDS 3 - -#define CENTERFREQUENCY (80.0e6) -#define BASEFREQUENCY (CENTERFREQUENCY - (NRCHANNELS/2)*CHANNELBW) -#define CHANNELBW (1.0*200e6/1024/NRCHANNELS) - -#define TOLERANCE 1e-6 - -inline dcomplex phaseShift( const double frequency, const double delay ) -{ - const double phaseShift = delay * frequency; - const double phi = -2 * M_PI * phaseShift; - return cosisin(phi); -} - -inline bool same( const float a, const float b ) -{ - return abs(a-b) < TOLERANCE; -} - -Parset createParset() -{ - string stationNames = "["; - for(unsigned i = 0; i < NRSTATIONS; i++) { - if(i>0) stationNames += ", "; - - stationNames += str(format("CS%03u") % i); - } - stationNames += "]"; - - Parset p; - p.add("Observation.bandFilter", "LBA_30_70"); - p.add("Observation.channelsPerSubband", str(format("%u") % NRCHANNELS)); - p.add("OLAP.CNProc.integrationSteps", str(format("%u") % NRSAMPLES)); - p.add("Observation.sampleClock", "200"); - p.add("OLAP.storageStationNames", stationNames); - p.add("Observation.subbandList", str(format("[%u*100]") % NRSUBBANDS)); - p.add("Observation.beamList", str(format("[%u*0]") % NRSUBBANDS)); - p.add("OLAP.tiedArrayStationNames", "[]"); - p.add("OLAP.CNProc.tabList", "[]"); - p.add("Observation.Beam[0].nrTiedArrayBeams", str(format("%u") % NRPENCILBEAMS)); - - for(unsigned i = 0; i < NRPENCILBEAMS; i++) { - p.add(str(format("Observation.Beam[0].tiedArrayBeam[%u].angle1") % i), "0.0"); - p.add(str(format("Observation.Beam[0].tiedArrayBeam[%u].angle2") % i), "0.0"); - p.add(str(format("Observation.Beam[0].tiedArrayBeam[%u].stationList") % i), "[]"); - } - - return p; -} - -SubbandMetaData createSubbandMetaData( const Parset &p ) -{ - (void)p; - - SubbandMetaData metaData(NRSTATIONS, NRPENCILBEAMS); - - for (unsigned i = 0; i < NRSTATIONS; i++) { - metaData.alignmentShift(i) = 0; - - metaData.beams(i)->delayAtBegin = 0.0; - metaData.beams(i)->delayAfterEnd = 0.0; - } - - return metaData; -} - -void test_flyseye() { - std::vector<unsigned> stationMapping(0); - FilteredData in( NRSTATIONS, NRCHANNELS, NRSAMPLES ); - BeamFormedData out( NRPENCILBEAMS, NRCHANNELS, NRSAMPLES ); - - assert( NRSTATIONS == NRPENCILBEAMS ); - - // fill filtered data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - in.samples[c][s][i][p] = makefcomplex( s+1, 0 ); - } - } - } - } - - // form beams - Parset p = createParset(); - BeamFormer f = BeamFormer(p); - SubbandMetaData m = createSubbandMetaData(p); - f.mergeStations( &in ); - - for( unsigned b = 0; b < NRPENCILBEAMS; b += BeamFormer::BEST_NRBEAMS ) { - unsigned nrBeams = b + BeamFormer::BEST_NRBEAMS >= NRPENCILBEAMS - ? NRPENCILBEAMS - b - : BeamFormer::BEST_NRBEAMS; - - f.formBeams( &m, &in, &out, 0, 0, b, nrBeams ); - } - - // check beamformed data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - const unsigned b = s; - - assert( out.samples[b][c][i][p] == in.samples[c][s][i][p] ); - } - } - } - } -} - -void test_stationmerger() { - std::vector<unsigned> stationMapping(3); - FilteredData in(NRSTATIONS, NRCHANNELS, NRSAMPLES); - - // fill filtered data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - in.samples[c][s][i][p] = makefcomplex( s+1, 0 ); - } - } - } - } - - // create mapping - stationMapping[0] = 0; - stationMapping[1] = 1; - stationMapping[2] = 1; - - // form beams - Parset p = createParset(); - BeamFormer f = BeamFormer(p); - f.mergeStations( &in ); - - // check merged data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - fcomplex sums[NRSTATIONS]; - unsigned nrstations[NRSTATIONS]; - - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - sums[s] = makefcomplex(s+1,0); - nrstations[s] = 1; - } - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - if( stationMapping[s] != s ) { - sums[stationMapping[s]] += makefcomplex( s+1, 0 ); - nrstations[stationMapping[s]]++; - } - } - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - sums[s] /= nrstations[s]; - } - - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - if( !same(real(sums[s]),real(in.samples[c][s][i][p])) - || !same(imag(sums[s]),imag(in.samples[c][s][i][p])) ) { - std::cerr << in.samples[c][s][i][p] << " =/= " << sums[s] << " for station " << s << " channel " << c << " sample " << i << " pol " << p << std::endl; - exit(1); - } - } - } - } - } -} - -void test_beamformer() { - std::vector<unsigned> stationMapping(0); - FilteredData in( NRSTATIONS, NRCHANNELS, NRSAMPLES ); - BeamFormedData out( NRPENCILBEAMS, NRCHANNELS, NRSAMPLES ); - SubbandMetaData meta( NRSTATIONS, NRPENCILBEAMS ); - - // fill filtered data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - in.samples[c][s][i][p] = makefcomplex( s+1, 0 ); - } - } - } - } - - // fill weights - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - meta.beams(s)[0].delayAtBegin = - meta.beams(s)[0].delayAfterEnd = 0.0; - - for( unsigned b = 1; b < NRPENCILBEAMS; b++ ) { - meta.beams(s)[b].delayAtBegin = - meta.beams(s)[b].delayAfterEnd = 1.0 * s / b; - } - } - - // form beams - Parset p = createParset(); - BeamFormer f = BeamFormer(p); - - f.mergeStations( &in ); - - for( unsigned b = 0; b < NRPENCILBEAMS; b += 3 ) { - unsigned nrBeams = b + 3 >= NRPENCILBEAMS ? NRPENCILBEAMS - b : 3; - - f.formBeams( &meta, &in, &out, 0, 0, b, nrBeams ); - } -/* - // check beamformed data - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - for( unsigned b = 0; b < NRPENCILBEAMS; b++ ) { - assert( same( f.itsDelays[s][b], meta.beams(s)[b].delayAtBegin ) ); - } - } - - const float averagingFactor = 1.0 / NRSTATIONS; - const float factor = averagingFactor; - - for( unsigned b = 0; b < NRPENCILBEAMS; b++ ) { - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - const double frequency = BASEFREQUENCY + c * CHANNELBW; - - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - assert( !out.flags[b].test(i) ); - - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - fcomplex sum = makefcomplex( 0, 0 ); - - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - dcomplex shift = phaseShift( frequency, meta.beams(s)[b].delayAtBegin ); - const fcomplex weight = makefcomplex(shift); - - sum += in.samples[c][s][i][p] * weight; - } - - sum *= factor; - - if( !same(real(sum),real(out.samples[b][c][i][p])) - || !same(imag(sum),imag(out.samples[b][c][i][p])) ) { - std::cerr << out.samples[b][c][i][p] << " =/= " << sum << " for beam " << b << " channel " << c << " sample " << i << " pol " << p << std::endl; - exit(1); - } - } - } - } - } - */ -} - -void test_pretranspose() -{ - BeamFormedData in( 1, NRCHANNELS, NRSAMPLES ); - PreTransposeBeamFormedData out( 4, NRCHANNELS, NRSAMPLES ); - Parset p = createParset(); - BeamFormer f = BeamFormer(p); - - // fill input data - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - real(in.samples[0][c][i][0]) = 1.0f * (c + i * NRCHANNELS + 1); - imag(in.samples[0][c][i][0]) = 3.0f * (c + i * NRCHANNELS + 1); - real(in.samples[0][c][i][1]) = 5.0f * (c + i * NRCHANNELS + 1); - imag(in.samples[0][c][i][1]) = 7.0f * (c + i * NRCHANNELS + 1); - } - } - - f.preTransposeBeam( &in, &out, 0 ); - - for( unsigned st = 0; st < 4; st++ ) { - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - float &x = out.samples[st][c][i]; - float y; - - switch(st) { - case 0: - y = real(in.samples[0][c][i][0]); - break; - - case 1: - y = imag(in.samples[0][c][i][0]); - break; - - case 2: - y = real(in.samples[0][c][i][1]); - break; - - case 3: - y = imag(in.samples[0][c][i][1]); - break; - } - - if( !same(x, y) ) { - std::cerr << "preTransposeBeams: Sample doesn't match for stokes #" << st << " channel " << c << " sample " << i << std::endl; - exit(1); - } - } - } - } -} - -void test_posttranspose() -{ - TransposedBeamFormedData in( NRSUBBANDS, NRCHANNELS, NRSAMPLES ); - FinalBeamFormedData out( NRSAMPLES, NRSUBBANDS, NRCHANNELS ); - Parset p = createParset(); - BeamFormer f = BeamFormer(p); - - // fill input data - for( unsigned sb = 0; sb < NRSUBBANDS; sb++ ) { - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - in.samples[sb][c][i] = 1.0f * (sb + c * NRSUBBANDS + i * NRSUBBANDS * NRCHANNELS +1); - } - } - - f.postTransposeBeam( &in, &out, sb, NRCHANNELS, NRSAMPLES ); - } - - for( unsigned sb = 0; sb < NRSUBBANDS; sb++ ) { - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - float &x = out.samples[i][sb][c]; - - if( !same(x, in.samples[sb][c][i]) ) { - std::cerr << "postTransposeBeams: Sample doesn't match for subband " << sb << " channel " << c << " sample " << i << std::endl; - exit(1); - } - } - } - } - -} - -int main() { - //test_flyseye(); - //test_stationmerger(); - test_beamformer(); - test_pretranspose(); - test_posttranspose(); - - return 0; -} diff --git a/RTCP/CNProc/test/tPencilBeamFormer.sh b/RTCP/CNProc/test/tPencilBeamFormer.sh deleted file mode 100755 index 2fd9547d066afeda830f9d50d652d02fac10e7ec..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tPencilBeamFormer.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tPencilBeamFormer diff --git a/RTCP/CNProc/test/tStokes.cc b/RTCP/CNProc/test/tStokes.cc deleted file mode 100644 index 9042f4abedd7458d56eb1e9bc5e4aafa5980784c..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tStokes.cc +++ /dev/null @@ -1,272 +0,0 @@ -#include <lofar_config.h> - -#include <BeamFormer.h> -#include <Stokes.h> -#include <Common/lofar_complex.h> -#include <Interface/FilteredData.h> -#include <Interface/BeamFormedData.h> -#include <Interface/Parset.h> -#include <vector> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; - -#define NRSTATIONS 3 -#define NRPENCILBEAMS 3 - -#define NRCHANNELS 256 -#define NRSAMPLES 128 // keep computation time short, 128 is minimum (see BeamFormer.cc) - -#define CENTERFREQUENCY (80.0e6) -#define BASEFREQUENCY (CENTERFREQUENCY - (NRCHANNELS/2)*CHANNELBW) -#define CHANNELBW (1.0*200e6/1024/NRCHANNELS) - -#define TOLERANCE 1e-6 - -inline dcomplex phaseShift( const double frequency, const double delay ) -{ - const double phaseShift = delay * frequency; - const double phi = -2 * M_PI * phaseShift; - return cosisin(phi); -} - -template <typename T> inline T sqr( const T x ) { - return x * x; -} - -template <typename T> inline bool same( const T a, const T b ) -{ - return abs(a-b) < TOLERANCE; -} - -void test_incoherent_stokes( unsigned NRSTOKES, unsigned INTEGRATION ) { - assert( INTEGRATION == 1 ); // no INTEGRATION supported yet - - std::vector<unsigned> stationMapping(NRSTATIONS); - FilteredData in( NRSTATIONS, NRCHANNELS, NRSAMPLES ); - PreTransposeBeamFormedData out( NRSTOKES, NRCHANNELS, NRSAMPLES / INTEGRATION ); - - // fill - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - in.samples[c][s][i][p] = makefcomplex( s+1, s ); - } - - for( unsigned s = 0; s < NRSTOKES; s++ ) { - out.samples[s][c][i] = -1.0; - } - } - } - } - - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - stationMapping[s] = s; - } - - // calculate - IncoherentStokes s( NRCHANNELS, NRSAMPLES, NRSTATIONS, 1, 0, heapAllocator ); - - struct StreamInfo info; - - info.stream = 0; - info.sap = 0; - info.beam = 0; - info.coherent = false; - info.nrChannels = NRCHANNELS; - info.timeIntFactor = INTEGRATION; - info.nrStokes = NRSTOKES; - info.stokesType = NRSTOKES == 4 ? STOKES_IQUV : STOKES_I; - info.nrSamples = NRSAMPLES/INTEGRATION; - info.stokes = 0; - info.part = 0; - - if (NRSTOKES == 4) { - s.calculate<true>( &in, &out, stationMapping, info, 0, 0.0 ); - } else { - s.calculate<false>( &in, &out, stationMapping, info, 0, 0.0 ); - } - - // check - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - assert( !out.flags[0].test(i) ); - float stokesI = 0, stokesQ = 0, stokesU = 0, stokesV = 0; - - for( unsigned s = 0; s < NRSTATIONS; s++ ) { - fcomplex sums[NR_POLARIZATIONS]; - - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - sums[p] += in.samples[c][s][i][p]; - } - - double powerX = sqr( real(sums[0]) ) + sqr( imag(sums[0]) ); - double powerY = sqr( real(sums[1]) ) + sqr( imag(sums[1]) ); - - if( NRSTOKES == 1 ) { - stokesI += powerX + powerY; - } else { - assert( NRSTOKES == 4 ); - - stokesI += powerX + powerY; - stokesQ += powerX - powerY; - stokesU += 2*real( sums[0] * conj( sums[1] ) ); - stokesV += 2*imag( sums[0] * conj( sums[1] ) ); - } - } - - stokesI /= NRSTATIONS; - stokesQ /= NRSTATIONS; - stokesU /= NRSTATIONS; - stokesV /= NRSTATIONS; - - if( !same(stokesI,out.samples[0][c][i]) ) { - std::cerr << "StokesI: " << out.samples[0][c][i] << " =/= " << stokesI << " for channel " << c << " sample " << i << std::endl; - exit(1); - } - - if( NRSTOKES == 4 ) { - if( !same(stokesQ,out.samples[1][c][i]) ) { - std::cerr << "StokesQ: " << out.samples[1][c][i] << " =/= " << stokesQ << " for channel " << c << " sample " << i << std::endl; - exit(1); - } - if( !same(stokesU,out.samples[2][c][i]) ) { - std::cerr << "StokesU: " << out.samples[2][c][i] << " =/= " << stokesU << " for channel " << c << " sample " << i << std::endl; - exit(1); - } - if( !same(stokesV,out.samples[3][c][i]) ) { - std::cerr << "StokesV: " << out.samples[3][c][i] << " =/= " << stokesV << " for channel " << c << " sample " << i << std::endl; - exit(1); - } - } - } - } -} - -void test_coherent_stokes( unsigned NRSTOKES, unsigned INTEGRATION, unsigned CHANNEL_INTEGRATION ) { - BeamFormedData in( NRPENCILBEAMS, NRCHANNELS, NRSAMPLES ); - PreTransposeBeamFormedData out( NRSTOKES, NRCHANNELS/CHANNEL_INTEGRATION, NRSAMPLES ); - PreTransposeBeamFormedData out2( NRSTOKES, NRCHANNELS/CHANNEL_INTEGRATION, NRSAMPLES ); - - // fill - for( unsigned b = 0; b < NRPENCILBEAMS; b++ ) { - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0; i < NRSAMPLES; i++ ) { - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - in.samples[b][c][i][p] = makefcomplex( b+1, b ); - } - } - } - } - - CoherentStokes s( NRCHANNELS, NRSAMPLES ); - - for( unsigned b = 0; b < NRPENCILBEAMS; b++ ) { - struct StreamInfo info; - - info.stream = b * NRSTOKES; - info.sap = 0; - info.beam = b; - info.coherent = true; - info.nrChannels = NRCHANNELS/CHANNEL_INTEGRATION; - info.timeIntFactor = INTEGRATION; - info.nrStokes = NRSTOKES; - info.stokesType = NRSTOKES == 4 ? STOKES_IQUV : STOKES_I; - info.nrSamples = NRSAMPLES/INTEGRATION; - info.stokes = 0; - info.part = 0; - - // clean output arrays - for( unsigned p = 0; p < NRSTOKES; p++ ) { - for( unsigned c = 0; c < NRCHANNELS/CHANNEL_INTEGRATION; c++ ) { - for( unsigned i = 0; i < NRSAMPLES/INTEGRATION; i++ ) { - out.samples[p][c][i] = -1.0; - - out2.samples[p][c][i] = 0.0; - } - } - } - - // calculate using Stokes.cc - if (NRSTOKES == 4) { - s.calculate<true>( &in, &out, b, info ); - } else { - s.calculate<false>( &in, &out, b, info ); - } - - // calculate our own - for( unsigned c = 0; c < NRCHANNELS; c++ ) { - for( unsigned i = 0, outi = 0; i < NRSAMPLES; outi++ ) { - float stokes[4] = { 0.0, 0.0, 0.0, 0.0 }; - - for( unsigned j = 0; j < INTEGRATION; j++ ) { - fcomplex sums[NR_POLARIZATIONS]; - - for( unsigned p = 0; p < NR_POLARIZATIONS; p++ ) { - sums[p] = in.samples[b][c][i][p]; - } - - i++; - - float powerX = sqr( real(sums[0]) ) + sqr( imag(sums[0]) ); - float powerY = sqr( real(sums[1]) ) + sqr( imag(sums[1]) ); - - float stokesI = powerX + powerY; - float stokesQ = powerX - powerY; - float stokesU = 2*real( sums[0] * conj( sums[1] ) ); - float stokesV = 2*imag( sums[0] * conj( sums[1] ) ); - - stokes[0] += stokesI; - stokes[1] += stokesQ; - stokes[2] += stokesU; - stokes[3] += stokesV; - } - - unsigned outch = c / CHANNEL_INTEGRATION; - - for( unsigned s = 0; s < NRSTOKES; s++ ) { - out2.samples[s][outch][outi] += stokes[s]; - } - } - } - - // compare results - for( unsigned c = 0; c < NRCHANNELS/CHANNEL_INTEGRATION; c++ ) { - for( unsigned i = 0; i < NRSAMPLES/INTEGRATION; i++ ) { - assert( !out.flags[0].test(i) ); - - for( unsigned s = 0; s < NRSTOKES; s++ ) { - if (!same( out.samples[s][c][i], out2.samples[s][c][i] ) ) { - char stokes[] = "IQUV"; - - std::cerr << "test_coherent_stokes(" << NRSTOKES << "," << INTEGRATION << "," << CHANNEL_INTEGRATION << ") Stokes" << stokes[s] << ": " << out.samples[s][c][i] << " =/= " << out2.samples[s][c][i] << " for beam " << b << " channel " << c << " sample " << i << std::endl; - exit(1); - } - } - } - } - } -} - -int main() { - test_incoherent_stokes(1,1); - test_incoherent_stokes(4,1); - - for( unsigned c = 1; c < 16; c *= 2 ) { - test_coherent_stokes(1,1,c); - test_coherent_stokes(4,1,c); - - test_coherent_stokes(1,2,c); - test_coherent_stokes(4,2,c); - - test_coherent_stokes(1,4,c); - test_coherent_stokes(4,4,c); - - test_coherent_stokes(1,8,c); - test_coherent_stokes(4,8,c); - } - - return 0; -} diff --git a/RTCP/CNProc/test/tStokes.sh b/RTCP/CNProc/test/tStokes.sh deleted file mode 100755 index 42c0e61765dc3c30601c29e5d42006a8365ea0e8..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tStokes.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tStokes diff --git a/RTCP/CNProc/test/tStokesAsm.cc b/RTCP/CNProc/test/tStokesAsm.cc deleted file mode 100644 index b0c2765877adeda88192f55ad918b3eb1d219478..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/tStokesAsm.cc +++ /dev/null @@ -1,61 +0,0 @@ -#include <lofar_config.h> - -#include <StokesAsm.h> - -#include <iostream> - - -#if defined HAVE_BGP -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::TYPES; -#endif - - -int main() -{ -#if defined HAVE_BGP - fcomplex samples[16][2] = {{0}}; - - for (int i = 0; i < 16; i ++) - if (i != 7) { - samples[i][0] = makefcomplex(2, 3); - samples[i][1] = makefcomplex(4, 5); - } - - { - float I[16], Q[16], U[16], V[16]; - - _StokesI(I, samples, 16); - - for (int i = 0; i < 16; i ++) - std::cout << I[i] << std::endl; - - _StokesIQUV(I, Q, U, V, samples, 16); - - for (int i = 0; i < 16; i ++) - std::cout << I[i] << ' ' << Q[i] << ' ' << U[i] << ' ' << V[i] << std::endl; - } - - { - float Xr = real(samples[11][0]); - float Xi = imag(samples[11][0]); - float Yr = real(samples[11][1]); - float Yi = imag(samples[11][1]); - - float Xr2 = Xr * Xr; - float Xi2 = Xi * Xi; - float Yr2 = Yr * Yr; - float Yi2 = Yi * Yi; - - float I = Xr2 + Xi2 + Yr2 + Yi2; - float Q = Xr2 + Xi2 - Yr2 - Yi2; - float U = 2 * (Xr * Yr + Xi * Yi); - float V = 2 * (Xi * Yr - Xr * Yi); - - std::cout << I << ' ' << Q << ' ' << U << ' ' << V << std::endl; - } -#endif - - return 0; -} diff --git a/RTCP/CNProc/test/test.parset b/RTCP/CNProc/test/test.parset deleted file mode 100644 index 37055a03139d8a8bc3ecb17768a3b825ac176ecb..0000000000000000000000000000000000000000 --- a/RTCP/CNProc/test/test.parset +++ /dev/null @@ -1,13 +0,0 @@ -Observation.subbandList = [384] -Observation.nyquistZone = 1 -Observation.sampleClock = 160 -Observation.channelsPerSubband = 256 -OLAP.CNProc.nrPPFTaps = 16 -Observation.nrPolarisations = 2 -OLAP.CNProc.inputPsets = [] -OLAP.CNProc.outputPsets = [0] -OLAP.storageStationNames = ["S0", "S1", "S2", "S3", "S4", "S5"] -OLAP.IONProc.useGather = T -OLAP.subbandsPerPset = 1 -OLAP.CNProc.integrationSteps = 608 -OLAP.delayCompensation = T diff --git a/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc b/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc index 4df082be4110e1e441cc8d37b256afcbcfc225ad..968fb499f9155fe8c6aa3ca36f844f8e93c82994 100644 --- a/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc +++ b/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc @@ -53,10 +53,6 @@ namespace LOFAR { uint64 raw = data; -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &raw, 1); -#endif - s.write(&raw, sizeof raw); } @@ -67,10 +63,6 @@ namespace LOFAR s.read(&raw_nr, sizeof raw_nr); -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &raw_nr, 1); -#endif - data = raw_nr; } diff --git a/RTCP/Cobalt/CoInterface/src/Parset.cc b/RTCP/Cobalt/CoInterface/src/Parset.cc index a15518ec3813b48b486361577a8b39f1e6a576fd..795b7b8efedcaf6c68493c9f4b8895cb3d954e17 100644 --- a/RTCP/Cobalt/CoInterface/src/Parset.cc +++ b/RTCP/Cobalt/CoInterface/src/Parset.cc @@ -156,10 +156,6 @@ namespace LOFAR uint64 size; stream.read(&size, sizeof size); -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &size, 1); -#endif - // Read data std::vector<char> tmp(size + 1); stream.read(&tmp[0], size); @@ -199,15 +195,7 @@ namespace LOFAR } uint64 size = buffer.size(); - -#if !defined WORDS_BIGENDIAN - uint64 size_be = size; - dataConvert(BigEndian, &size_be, 1); - stream->write(&size_be, sizeof size_be); -#else stream->write(&size, sizeof size); -#endif - stream->write(buffer.data(), size); } @@ -289,18 +277,6 @@ namespace LOFAR return result; } - std::string Parset::renamedKey(const std::string &newname, const std::string &oldname) const { - if (isDefined(newname)) - return newname; - - if (isDefined(oldname)) { - LOG_WARN_STR("Parset: key " << oldname << " is deprecated. Please use " << newname << " instead."); - return oldname; - } - - return newname; - } - /* * operator<() for station names. * @@ -342,21 +318,21 @@ namespace LOFAR vector<double> emptyVectorDouble; // Generic information - settings.realTime = getBool(renamedKey("Cobalt.realTime", "OLAP.realTime"), false); + settings.realTime = getBool("Cobalt.realTime", false); settings.observationID = getUint32("Observation.ObsID", 0); settings.startTime = getTime("Observation.startTime", "2013-01-01 00:00:00"); settings.stopTime = getTime("Observation.stopTime", "2013-01-01 00:01:00"); settings.clockMHz = getUint32("Observation.sampleClock", 200); - settings.nrBitsPerSample = getUint32(renamedKey("Observation.nrBitsPerSample","OLAP.nrBitsPerSample"), 16); + settings.nrBitsPerSample = getUint32("Observation.nrBitsPerSample", 16); settings.nrPolarisations = 2; - settings.corrections.bandPass = getBool(renamedKey("Cobalt.correctBandPass", "OLAP.correctBandPass"), true); - settings.corrections.clock = getBool(renamedKey("Cobalt.correctClocks", "OLAP.correctClocks"), true); - settings.corrections.dedisperse = getBool(renamedKey("Cobalt.BeamFormer.coherentDedisperseChannels", "OLAP.coherentDedisperseChannels"), true); + settings.corrections.bandPass = getBool("Cobalt.correctBandPass", true); + settings.corrections.clock = getBool("Cobalt.correctClocks", true); + settings.corrections.dedisperse = getBool("Cobalt.BeamFormer.coherentDedisperseChannels", true); - settings.delayCompensation.enabled = getBool(renamedKey("Cobalt.delayCompensation", "OLAP.delayCompensation"), true); + settings.delayCompensation.enabled = getBool("Cobalt.delayCompensation", true); settings.delayCompensation.referencePhaseCenter = getDoubleVector("Observation.referencePhaseCenter", vector<double>(3,0), true); if (settings.delayCompensation.referencePhaseCenter == emptyVectorDouble) LOG_WARN("Parset: Observation.referencePhaseCenter is missing (or (0.0, 0.0, 0.0))."); @@ -410,12 +386,7 @@ namespace LOFAR settings.anaBeam.direction.angle2 = getDouble("Observation.AnaBeam[0].angle2", 0.0); } - if (isDefined("Cobalt.blockSize")) { - settings.blockSize = getUint32("Cobalt.blockSize", 196608); - } else { - // Old, fall-back configuration - settings.blockSize = getUint32("OLAP.CNProc.integrationSteps", 3072) * getUint32("Observation.channelsPerSubband", 64); - } + settings.blockSize = getUint32("Cobalt.blockSize", 196608); // Station information (used pointing information to verify settings) vector<string> stations = getStringVector("Observation.VirtualInstrument.stationList", emptyVectorString, true); @@ -434,10 +405,7 @@ namespace LOFAR struct ObservationSettings::AntennaField &antennaField = settings.antennaFields[i]; antennaField.name = fieldNames[i].fullName(); - antennaField.inputStreams = getStringVector( - renamedKey(str(format("PIC.Core.%s.RSP.ports") % antennaField.name), - str(format("PIC.Core.Station.%s.RSP.ports") % antennaField.name)), - emptyVectorString, true); + antennaField.inputStreams = getStringVector(str(format("PIC.Core.%s.RSP.ports") % antennaField.name), emptyVectorString, true); antennaField.receiver = getString(str(format("PIC.Core.%s.RSP.receiver") % antennaField.name), ""); // NOTE: Support for clockCorrectionTime can be phased out when the @@ -520,11 +488,11 @@ namespace LOFAR settings.correlator.enabled = getBool("Observation.DataProducts.Output_Correlated.enabled", false); if (settings.correlator.enabled) { - settings.correlator.nrChannels = getUint32(renamedKey("Cobalt.Correlator.nrChannelsPerSubband", "Observation.channelsPerSubband"), 64); + settings.correlator.nrChannels = getUint32("Cobalt.Correlator.nrChannelsPerSubband", 64); //settings.correlator.nrChannels = getUint32("Observation.channelsPerSubband", 64); settings.correlator.channelWidth = settings.subbandWidth() / settings.correlator.nrChannels; settings.correlator.nrSamplesPerChannel = settings.blockSize / settings.correlator.nrChannels; - settings.correlator.nrBlocksPerIntegration = getUint32(renamedKey("Cobalt.Correlator.nrBlocksPerIntegration", "OLAP.IONProc.integrationSteps"), 1); + settings.correlator.nrBlocksPerIntegration = getUint32("Cobalt.Correlator.nrBlocksPerIntegration", 1); settings.correlator.nrBlocksPerObservation = static_cast<size_t>(floor((settings.stopTime - settings.startTime) / settings.correlator.integrationTime())); // super-station beam former @@ -605,8 +573,7 @@ namespace LOFAR "Parset: Cobalt.BeamFormer.nrHighResolutionChannels must be a power of 2 and < 64k"); } - settings.beamFormer.doFlysEye = - getBool("OLAP.PencilInfo.flysEye", false); + settings.beamFormer.doFlysEye = getBool("Cobalt.BeamFormer.flysEye", false); unsigned nrDelayCompCh; if (!isDefined("Cobalt.BeamFormer.nrDelayCompensationChannels")) { @@ -639,22 +606,19 @@ namespace LOFAR // iterating twice. // TODO: This is an ugly way to do this. - string oldprefix = ""; - string newprefix = ""; + string prefix = ""; struct ObservationSettings::BeamFormer::StokesSettings *stSettings = 0; // Select coherent or incoherent for this iteration switch(i) { case 0: - oldprefix = "OLAP.CNProc_CoherentStokes"; - newprefix = "Cobalt.BeamFormer.CoherentStokes"; + prefix = "Cobalt.BeamFormer.CoherentStokes"; stSettings = &settings.beamFormer.coherentSettings; stSettings->coherent = true; break; case 1: - oldprefix = "OLAP.CNProc_IncoherentStokes"; - newprefix = "Cobalt.BeamFormer.IncoherentStokes"; + prefix = "Cobalt.BeamFormer.IncoherentStokes"; stSettings = &settings.beamFormer.incoherentSettings; stSettings->coherent = false; break; @@ -673,21 +637,14 @@ namespace LOFAR continue; // Obtain settings of selected stokes - stSettings->type = stokesType(getString( - renamedKey(newprefix + ".which", oldprefix + ".which"), - "I")); + stSettings->type = stokesType(getString(prefix + ".which", "I")); stSettings->nrStokes = nrStokes(stSettings->type); - stSettings->nrChannels = getUint32( - renamedKey(newprefix + ".nrChannelsPerSubband", oldprefix + ".channelsPerSubband"), - 1); + stSettings->nrChannels = getUint32(prefix + ".nrChannelsPerSubband", 1); ASSERT(stSettings->nrChannels > 0); - stSettings->timeIntegrationFactor = getUint32( - renamedKey(newprefix + ".timeIntegrationFactor", oldprefix + ".timeIntegrationFactor"), - 1); + + stSettings->timeIntegrationFactor = getUint32(prefix + ".timeIntegrationFactor", 1); ASSERT(stSettings->timeIntegrationFactor > 0); - stSettings->nrSubbandsPerFile = getUint32( - renamedKey(newprefix + ".subbandsPerFile", oldprefix + ".subbandsPerFile"), - 0); // 0 or a large nr is interpreted below + stSettings->nrSubbandsPerFile = getUint32(prefix + ".subbandsPerFile", 0); // 0 or a large nr is interpreted below stSettings->nrSamples = settings.blockSize / stSettings->timeIntegrationFactor / stSettings->nrChannels; } @@ -768,16 +725,8 @@ namespace LOFAR const string prefix = str(format("Observation.Beam[%u].TiedArrayBeam[%u]") % i % j); tab.direction.type = getString(prefix + ".directionType", "J2000"); - tab.direction.angle1 = getDouble(renamedKey(prefix + ".absoluteAngle1", - prefix + ".angle1"), 0.0); - tab.direction.angle2 = getDouble(renamedKey(prefix + ".absoluteAngle2", - prefix + ".angle2"), 0.0); - - // Always store absolute angles. So this is for backwards compat. - if (!isDefined(prefix + ".absoluteAngle1")) - tab.direction.angle1 += settings.SAPs[i].direction.angle1; - if (!isDefined(prefix + ".absoluteAngle2")) - tab.direction.angle2 += settings.SAPs[i].direction.angle2; + tab.direction.angle1 = getDouble(prefix + ".angle1", 0.0); + tab.direction.angle2 = getDouble(prefix + ".angle2", 0.0); tab.dispersionMeasure = getDouble(prefix + ".dispersionMeasure", 0.0); tab.coherent = getBool(prefix + ".coherent", true); @@ -866,7 +815,7 @@ namespace LOFAR } } - settings.beamFormer.dedispersionFFTsize = getUint32(renamedKey("Cobalt.BeamFormer.dedispersionFFTsize", "OLAP.CNProc.dedispersionFFTsize"), settings.correlator.nrSamplesPerChannel); + settings.beamFormer.dedispersionFFTsize = getUint32("Cobalt.BeamFormer.dedispersionFFTsize", settings.correlator.nrSamplesPerChannel); } // set output hosts diff --git a/RTCP/Cobalt/CoInterface/src/Parset.h b/RTCP/Cobalt/CoInterface/src/Parset.h index f35831c64eb4e2015129953397093b36a36aaa36..61d020ad28377829990e2e8af3fedc9be890f4c2 100644 --- a/RTCP/Cobalt/CoInterface/src/Parset.h +++ b/RTCP/Cobalt/CoInterface/src/Parset.h @@ -58,7 +58,7 @@ namespace LOFAR // Whether the observation runs at real time. Non-real time // observations are not allowed to lose data. // - // key: OLAP.realTime + // key: Cobalt.realTime bool realTime; // The SAS/MAC observation number @@ -112,17 +112,17 @@ namespace LOFAR struct Corrections { // Whether the station band pass should be corrected for // - // key: OLAP.correctBandPass + // key: Cobalt.correctBandPass bool bandPass; // Whether the station clock offsets should be corrected for // - // key: OLAP.correctClocks + // key: Cobalt.correctClocks bool clock; // Whether to dedisperse tied-array beams // - // key: OLAP.coherentDedisperseChannels + // key: Cobalt.BeamFormer.coherentDedisperseChannels bool dedisperse; }; @@ -131,7 +131,7 @@ namespace LOFAR struct DelayCompensation { // Whether geometric delays should be compensated for // - // key: OLAP.delayCompensation + // key: Cobalt.delayCompensation bool enabled; // The ITRF position to compensate delays to @@ -300,8 +300,8 @@ namespace LOFAR // Two angles within the coordinate type (RA/DEC, etc) // - // key: *.absoluteAngle1 - // key: *.absoluteAngle2 + // key: *.angle1 + // key: *.angle2 double angle1; double angle2; }; @@ -366,7 +366,7 @@ namespace LOFAR // Number of requested frequency channels per subband // - // key: Observation.channelsPerSubband + // key: Cobalt.Correlator.nrChannelsPerSubband unsigned nrChannels; // The bandwidth of a single channel, in Hz @@ -382,7 +382,7 @@ namespace LOFAR // The number of blocks to integrate to obtain the final // integration time. // - // key: OLAP.IONProc.integrationSteps + // key: Cobalt.Correlator.nrBlocksPerIntegration size_t nrBlocksPerIntegration; // The total integration time of all blocks, in seconds. @@ -562,18 +562,18 @@ namespace LOFAR // Settings for Coherent Stokes output // - // key: OLAP.CNProc_CoherentStokes.* + // key: Cobalt.BeamFormer.CoherentStokes.* struct StokesSettings coherentSettings; // Settings for Incoherent Stokes output // - // key: OLAP.CNProc_IncoherentStokes.* + // key: Cobalt.BeamFormer.IncoherentStokes.* struct StokesSettings incoherentSettings; // Size of FFT for coherent dedispersion // - // key: OLAP.CNProc.dedispersionFFTsize + // key: Cobalt.BeamFormer.dedispersionFFTsize size_t dedispersionFFTsize; }; @@ -729,13 +729,6 @@ namespace LOFAR double maxObservationFrequency(const struct ObservationSettings& settings, double subbandWidth) const; unsigned calcNrDelayCompensationChannels(const struct ObservationSettings& settings) const; - - // If a parset key is renamed, this function allows the old - // name to be used as a fall-back. - // - // Returns the name of the key in the parset, or `newname' if - // neither key is defined. - std::string renamedKey(const std::string &newname, const std::string &oldname) const; }; } // namespace Cobalt } // namespace LOFAR diff --git a/RTCP/Cobalt/CoInterface/src/StreamableData.h b/RTCP/Cobalt/CoInterface/src/StreamableData.h index 2805b731b04b8e299f30cf9b96d6e58f9405ffb7..5fe7ec3e223452ab75a27588744030f78770be4b 100644 --- a/RTCP/Cobalt/CoInterface/src/StreamableData.h +++ b/RTCP/Cobalt/CoInterface/src/StreamableData.h @@ -118,9 +118,6 @@ namespace LOFAR protected: virtual void readData(Stream *, unsigned); virtual void writeData(Stream *, unsigned); - - private: - //bool itsHaveWarnedLittleEndian; }; @@ -169,8 +166,6 @@ namespace LOFAR : samples(extents, alignment, allocator), flags(flagsExtents) // e.g., for FilteredData [nrChannels][nrStations], sparse dimension [nrSamplesPerIntegration] - - //itsHaveWarnedLittleEndian(false) { } diff --git a/RTCP/Cobalt/CoInterface/test/tParset.cc b/RTCP/Cobalt/CoInterface/test/tParset.cc index 64a9c08df5fa90899f4e50eb262f7a3e9c305b92..fb339c172b6ba9a76fd6f08088610096cd4d4ed1 100644 --- a/RTCP/Cobalt/CoInterface/test/tParset.cc +++ b/RTCP/Cobalt/CoInterface/test/tParset.cc @@ -35,7 +35,6 @@ using namespace std; using boost::format; // macros for testing true/false keys -#define TESTKEYS(new, old) for ( string k = "x", keystr = new; k != "xxx"; k += "x", keystr = old) #define TESTBOOL for( unsigned val = 0; val < 2; ++val ) #define valstr ((val) ? "true" : "false") @@ -137,13 +136,11 @@ TEST(defaultTestParset) { */ TEST(realTime) { - TESTKEYS("Cobalt.realTime", "OLAP.realTime") { - TESTBOOL { - Parset ps = makeDefaultTestParset(keystr, valstr); + TESTBOOL { + Parset ps = makeDefaultTestParset("Cobalt.realTime", valstr); - CHECK_EQUAL(val, ps.settings.realTime); - CHECK_EQUAL(val, ps.realTime()); - } + CHECK_EQUAL(val, ps.settings.realTime); + CHECK_EQUAL(val, ps.realTime()); } } @@ -230,47 +227,39 @@ TEST(nrPolarisations) { SUITE(corrections) { TEST(bandPass) { - TESTKEYS("Cobalt.correctBandPass", "OLAP.correctBandPass") { - TESTBOOL { - Parset ps = makeDefaultTestParset(keystr, valstr); + TESTBOOL { + Parset ps = makeDefaultTestParset("Cobalt.correctBandPass", valstr); - CHECK_EQUAL(val, ps.settings.corrections.bandPass); - CHECK_EQUAL(val, ps.correctBandPass()); - } + CHECK_EQUAL(val, ps.settings.corrections.bandPass); + CHECK_EQUAL(val, ps.correctBandPass()); } } TEST(clock) { - TESTKEYS("Cobalt.correctClocks", "OLAP.correctClocks") { - TESTBOOL { - Parset ps = makeDefaultTestParset(keystr, valstr); + TESTBOOL { + Parset ps = makeDefaultTestParset("Cobalt.correctClocks", valstr); - CHECK_EQUAL(val, ps.settings.corrections.clock); - CHECK_EQUAL(val, ps.correctClocks()); - } + CHECK_EQUAL(val, ps.settings.corrections.clock); + CHECK_EQUAL(val, ps.correctClocks()); } } TEST(dedisperse) { - TESTKEYS("Cobalt.BeamFormer.coherentDedisperseChannels", "OLAP.coherentDedisperseChannels") { - TESTBOOL { - Parset ps = makeDefaultTestParset(keystr, valstr); + TESTBOOL { + Parset ps = makeDefaultTestParset("Cobalt.BeamFormer.coherentDedisperseChannels", valstr); - CHECK_EQUAL(val, ps.settings.corrections.dedisperse); - } + CHECK_EQUAL(val, ps.settings.corrections.dedisperse); } } } SUITE(delayCompensation) { TEST(enabled) { - TESTKEYS("Cobalt.delayCompensation", "OLAP.delayCompensation") { - TESTBOOL { - Parset ps = makeDefaultTestParset(keystr, valstr); + TESTBOOL { + Parset ps = makeDefaultTestParset("Cobalt.delayCompensation", valstr); - CHECK_EQUAL(val, ps.settings.delayCompensation.enabled); - CHECK_EQUAL(val, ps.delayCompensation()); - } + CHECK_EQUAL(val, ps.settings.delayCompensation.enabled); + CHECK_EQUAL(val, ps.delayCompensation()); } } @@ -798,17 +787,14 @@ SUITE(correlator) { } TEST(nrChannels) { - // for now, nrChannels is also defined if the correlator is disabled - TESTKEYS("Cobalt.Correlator.nrChannelsPerSubband", "Observation.channelsPerSubband") { - Parset ps = makeDefaultTestParset(); + Parset ps = makeDefaultTestParset(); - ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); - ps.replace(keystr, "256"); - ps.updateSettings(); + ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); + ps.replace("Cobalt.Correlator.nrChannelsPerSubband", "256"); + ps.updateSettings(); - CHECK_EQUAL(256U, ps.settings.correlator.nrChannels); - CHECK_EQUAL(256U, ps.nrChannelsPerSubband()); - } + CHECK_EQUAL(256U, ps.settings.correlator.nrChannels); + CHECK_EQUAL(256U, ps.nrChannelsPerSubband()); } TEST(channelWidth) { @@ -817,7 +803,7 @@ SUITE(correlator) { Parset ps = makeDefaultTestParset(); ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); - ps.replace("Observation.channelsPerSubband", str(format("%u") % nrChannels)); + ps.replace("Cobalt.Correlator.nrChannelsPerSubband", str(format("%u") % nrChannels)); ps.updateSettings(); CHECK_CLOSE(ps.settings.subbandWidth() / nrChannels, ps.settings.correlator.channelWidth, 0.00001); @@ -826,35 +812,31 @@ SUITE(correlator) { } TEST(nrSamplesPerChannel) { - TESTKEYS("Cobalt.Correlator.nrChannelsPerSubband", "Observation.nrChannelsPerSubband") { - Parset ps = makeDefaultTestParset(); - - // set - ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); - ps.replace("Cobalt.blockSize", "256"); - ps.replace(keystr, "64"); - ps.updateSettings(); + Parset ps = makeDefaultTestParset(); + + // set + ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); + ps.replace("Cobalt.blockSize", "256"); + ps.replace("Cobalt.Correlator.nrChannelsPerSubband", "64"); + ps.updateSettings(); - // verify settings - CHECK_EQUAL(4U, ps.settings.correlator.nrSamplesPerChannel); - CHECK_EQUAL(4U, ps.CNintegrationSteps()); - CHECK_EQUAL(4U, ps.nrSamplesPerChannel()); - } + // verify settings + CHECK_EQUAL(4U, ps.settings.correlator.nrSamplesPerChannel); + CHECK_EQUAL(4U, ps.CNintegrationSteps()); + CHECK_EQUAL(4U, ps.nrSamplesPerChannel()); } TEST(nrBlocksPerIntegration) { - TESTKEYS("Cobalt.Correlator.nrBlocksPerIntegration", "OLAP.IONProc.integrationSteps") { - Parset ps = makeDefaultTestParset(); - - // set - ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); - ps.replace(keystr, "42"); - ps.updateSettings(); + Parset ps = makeDefaultTestParset(); + + // set + ps.replace("Observation.DataProducts.Output_Correlated.enabled", "true"); + ps.replace("Cobalt.Correlator.nrBlocksPerIntegration", "42"); + ps.updateSettings(); - // verify settings - CHECK_EQUAL(42U, ps.settings.correlator.nrBlocksPerIntegration); - CHECK_EQUAL(42U, ps.IONintegrationSteps()); - } + // verify settings + CHECK_EQUAL(42U, ps.settings.correlator.nrBlocksPerIntegration); + CHECK_EQUAL(42U, ps.IONintegrationSteps()); } /* TODO: test super-station beam former */ diff --git a/RTCP/Cobalt/CoInterface/test/tParset.parset_obs228591 b/RTCP/Cobalt/CoInterface/test/tParset.parset_obs228591 index 1b357df0978d2ca536280d62a71c9090f6fbd503..ee24fd500ee7520af1861b71735c53b2c56f5330 100644 --- a/RTCP/Cobalt/CoInterface/test/tParset.parset_obs228591 +++ b/RTCP/Cobalt/CoInterface/test/tParset.parset_obs228591 @@ -5526,22 +5526,22 @@ CorrAppl._hostname=cbmmaster CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=8 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=8 -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=8 +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=8 +Cobalt.BeamFormer.IncoherentStokes.which=I OLAP.Correlator.integrationTime=1 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.coherentDedisperseChannels=false +Cobalt.correctBandPass=true +Cobalt.delayCompensation=true +Cobalt.realTime=true Observation.AnaBeam[0].angle1=2.6055584070710345 Observation.AnaBeam[0].angle2=-0.109762 Observation.AnaBeam[0].directionType=J2000 @@ -5790,22 +5790,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=cbmmaster Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=8 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=8 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=8 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=8 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -5868,7 +5868,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_DUAL Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/RTCP/Cobalt/CoInterface/test/tParset.parset_obs99275 b/RTCP/Cobalt/CoInterface/test/tParset.parset_obs99275 index 7effaf60df18d5f720bfd3bf012aff0aa9a93856..f7c11b9c5114f5545867552ebe51ad3603e1bf3d 100644 --- a/RTCP/Cobalt/CoInterface/test/tParset.parset_obs99275 +++ b/RTCP/Cobalt/CoInterface/test/tParset.parset_obs99275 @@ -25,34 +25,34 @@ CorrAppl.extraInfo=["OLAP","PIC"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] OLAP.CNProc.coresPerPset=64 -OLAP.CNProc.integrationSteps=768 +Cobalt.blockSize=49152 OLAP.CNProc.nrPPFTaps=16 OLAP.CNProc.phaseOnePsets=[] OLAP.CNProc.phaseThreePsets=[] OLAP.CNProc.phaseTwoPsets=[] OLAP.CNProc.usedCores=[0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband=64 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=30 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=64 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=1 -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=64 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=30 +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=64 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=1 +Cobalt.BeamFormer.IncoherentStokes.which=I OLAP.Correlator.integrationTime=1.0 OLAP.DelayComp.nrCalcDelays=16 OLAP.DelayComp.positionType=ITRF -OLAP.IONProc.integrationSteps=30 +Cobalt.Correlator.nrBlocksPerIntegration=30 OLAP.OLAP_Conn.IONProc_CNProc_Transport=FCNP OLAP.PencilInfo.flysEye=false OLAP.StorageProc.subbandsPerMS=1 -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true +Cobalt.BeamFormer.coherentDedisperseChannels=false +Cobalt.correctBandPass=true +Cobalt.delayCompensation=true OLAP.maxNetworkDelay=0.25 OLAP.nrSecondsOfBuffer=2.5 OLAP.nrTimesInFrame=16 -OLAP.realTime=true +Cobalt.realTime=true OLAP.storageStationNames=AllStations Observation.AnaBeam.angle1=0 Observation.AnaBeam.angle2=0 @@ -61,13 +61,13 @@ Observation.AnaBeam.duration=0 Observation.AnaBeam.rank=1 Observation.AnaBeam.startTime= Observation.AnaBeam.target= -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=6.040199114275893 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=-0.10396635465921555 +Observation.Beam[0].TiedArrayBeam[0].angle1=6.040199114275893 +Observation.Beam[0].TiedArrayBeam[0].angle2=-0.10396635465921555 Observation.Beam[0].TiedArrayBeam[0].coherent=true Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1=6.040199114275893 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2=-0.10396635465921555 +Observation.Beam[0].TiedArrayBeam[1].angle1=6.040199114275893 +Observation.Beam[0].TiedArrayBeam[1].angle2=-0.10396635465921555 Observation.Beam[0].TiedArrayBeam[1].coherent=false Observation.Beam[0].TiedArrayBeam[1].directionType=J2000 Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure=0 @@ -83,13 +83,13 @@ Observation.Beam[0].startTime= Observation.Beam[0].subbandList=[102,127,152,177,202,227,252,277,302,327,352,377,402] Observation.Beam[0].tabRingSize=0.0 Observation.Beam[0].target=Sun -Observation.Beam[1].TiedArrayBeam[0].absoluteAngle1=5.822544921023853 -Observation.Beam[1].TiedArrayBeam[0].absoluteAngle2=-0.2971728484139445 +Observation.Beam[1].TiedArrayBeam[0].angle1=5.822544921023853 +Observation.Beam[1].TiedArrayBeam[0].angle2=-0.2971728484139445 Observation.Beam[1].TiedArrayBeam[0].coherent=true Observation.Beam[1].TiedArrayBeam[0].directionType=J2000 Observation.Beam[1].TiedArrayBeam[0].dispersionMeasure=0 -Observation.Beam[1].TiedArrayBeam[1].absoluteAngle1=5.822544921023853 -Observation.Beam[1].TiedArrayBeam[1].absoluteAngle2=-0.2971728484139445 +Observation.Beam[1].TiedArrayBeam[1].angle1=5.822544921023853 +Observation.Beam[1].TiedArrayBeam[1].angle2=-0.2971728484139445 Observation.Beam[1].TiedArrayBeam[1].coherent=false Observation.Beam[1].TiedArrayBeam[1].directionType=J2000 Observation.Beam[1].TiedArrayBeam[1].dispersionMeasure=0 @@ -377,28 +377,28 @@ Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets=[] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets=[] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets=[] Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores=[0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=30 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=30 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=1 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1.0 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays=16 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType=ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc.integrationSteps=30 +Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration=30 Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport=FCNP Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS=1 -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay=0.25 Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer=2.5 Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame=16 -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl.OLAP.storageStationNames=AllStations Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] @@ -466,7 +466,7 @@ Observation.antennaArray=LBA Observation.antennaSet=LBA_OUTER Observation.bandFilter=LBA_10_90 Observation.channelWidth=762.939453125 -Observation.channelsPerSubband=64 +Cobalt.Correlator.nrChannelsPerSubband=64 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.existingAntennaFields=["LBA","HBA","HBA0","HBA1"] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-127tabs.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-127tabs.parset index 64a30e88583f9946eec2d8d167b2ee940a69425d..4a00cf4401272a00f288a5e4876e1997cea31108 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-127tabs.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-127tabs.parset @@ -147,20 +147,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -176,8 +176,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -199,52 +199,52 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-200tabs.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-200tabs.parset index 907a84aa0cec2409f23fef05ee19c6dad3cc3fb7..b56ecd442d142223ee5c19d4a3c59e5297b4628e 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-200tabs.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-16ch-200tabs.parset @@ -147,20 +147,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=16 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=16 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=16 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=16 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=200 @@ -176,8 +176,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -199,52 +199,52 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-127tabs.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-127tabs.parset index 142dab0135cbd5b5c6374ac4c12fa18f22be815d..3868cd94c5088d0c8ac2859d8a66ca1efde83562 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-127tabs.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-127tabs.parset @@ -147,20 +147,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -176,8 +176,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -199,52 +199,52 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-200tabs.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-200tabs.parset index 72a8af4e34417099ec7de1d01fdf6fe77e323295..8478d3c64ce822068218c6e9c0c3e8d870291cf7 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-200tabs.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/bfcs-48st-1sb-16b-int4-1ch-200tabs.parset @@ -147,20 +147,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=200 @@ -176,8 +176,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -199,52 +199,52 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-16b-int1s-64ch.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-16b-int1s-64ch.parset index 5023dd91ee31215c3b37c25858a4e28f6bd2e1ae..14b97457078dfa21c55c10100a35ef420a76bda3 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-16b-int1s-64ch.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-16b-int1s-64ch.parset @@ -148,20 +148,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -177,8 +177,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -200,69 +200,69 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS106HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS205HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS208HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS305HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS306HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS307HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS310HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS406HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS407HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS409HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS503HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS508HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS509HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE601HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE602HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE603HBA.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] + +PIC.Core.RS106HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS205HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS208HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS305HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS306HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS307HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS310HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS406HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS407HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS409HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS503HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS508HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS509HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE601HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE602HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE603HBA.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-8b-int1s-64ch.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-8b-int1s-64ch.parset index ee8444d4ebd5fd9a9b6799e4c1895801593fefa3..3538894afed29a29406c56ce398ccc20fb7f81a3 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-8b-int1s-64ch.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-64st-1sb-8b-int1s-64ch.parset @@ -148,20 +148,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -177,8 +177,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -200,69 +200,69 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS106HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS205HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS208HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS305HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS306HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS307HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS310HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS406HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS407HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS409HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS503HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS508HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS509HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE601HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE602HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE603HBA.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] + +PIC.Core.RS106HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS205HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS208HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS305HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS306HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS307HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS310HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS406HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS407HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS409HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS503HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS508HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS509HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE601HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE602HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE603HBA.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-16b-int1s-64ch.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-16b-int1s-64ch.parset index ef54da31a0c3c3b75fb834c80fde68e079e1577c..f57d7acc887927766cf4d0a139a15149423f2f77 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-16b-int1s-64ch.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-16b-int1s-64ch.parset @@ -148,20 +148,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -177,8 +177,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -200,87 +200,87 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS106HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS205HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS208HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS305HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS306HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS307HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS310HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS406HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS407HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS409HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS503HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS508HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS509HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE601HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE602HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE603HBA.RSP.ports=[file:/dev/null] - -PIC.Core.Station.DE604HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE605HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.FR606HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.SE607HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.UK608HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.FI609HBA.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS104HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS105HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS107HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS108HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS109HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS202HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS203HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS204HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS206HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS207HBA.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] + +PIC.Core.RS106HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS205HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS208HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS305HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS306HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS307HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS310HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS406HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS407HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS409HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS503HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS508HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS509HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE601HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE602HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE603HBA.RSP.ports=[file:/dev/null] + +PIC.Core.DE604HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE605HBA.RSP.ports=[file:/dev/null] +PIC.Core.FR606HBA.RSP.ports=[file:/dev/null] +PIC.Core.SE607HBA.RSP.ports=[file:/dev/null] +PIC.Core.UK608HBA.RSP.ports=[file:/dev/null] +PIC.Core.FI609HBA.RSP.ports=[file:/dev/null] + +PIC.Core.RS104HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS105HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS107HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS108HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS109HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS202HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS203HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS204HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS206HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS207HBA.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-8b-int1s-64ch.parset b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-8b-int1s-64ch.parset index 87f0e0b9d4b5281027299ea3d07bf7551606f3ae..540b3b573b2bb39e2b53936f9267e56bdf8a9c34 100644 --- a/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-8b-int1s-64ch.parset +++ b/RTCP/Cobalt/GPUProc/doc/performance-review/parsets/corr-80st-1sb-8b-int1s-64ch.parset @@ -148,20 +148,20 @@ Cobalt.Beamformer.coherentDedisperseChannels=false # Which stokes to create [I, IQUV, XXYY] # XXYY is not supported for incoherent beams -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.which=I # Number of channels to create in the output -OLAP.CNProc_CoherentStokes.channelsPerSubband=1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband=1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=1 # Temporal data reduction -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=4 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=4 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=4 # Maximum number of subbands to store in each file -OLAP.CNProc_CoherentStokes.subbandsPerFile=488 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=488 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=488 Observation.Beam[0].nrTiedArrayBeams=127 @@ -177,8 +177,8 @@ Observation.Beam[0].ringWidth=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 @@ -200,87 +200,87 @@ Cobalt.Beamformer.dedispersionFFTsize=2048 # Read from /dev/null which blocks, so all "data" is flagged. This is fine for the intended test. -PIC.Core.Station.CS001HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS001HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS002HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS003HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS004HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS005HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS006HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS007HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS011HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS013HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS017HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS021HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS024HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS026HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS028HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS030HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS031HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS032HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS101HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS103HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS201HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS301HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS302HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS401HBA1.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA0.RSP.ports=[file:/dev/null] -PIC.Core.Station.CS501HBA1.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS106HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS205HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS208HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS305HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS306HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS307HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS310HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS406HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS407HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS409HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS503HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS508HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS509HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE601HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE602HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE603HBA.RSP.ports=[file:/dev/null] - -PIC.Core.Station.DE604HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.DE605HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.FR606HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.SE607HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.UK608HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.FI609HBA.RSP.ports=[file:/dev/null] - -PIC.Core.Station.RS104HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS105HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS107HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS108HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS109HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS202HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS203HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS204HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS206HBA.RSP.ports=[file:/dev/null] -PIC.Core.Station.RS207HBA.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS001HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS002HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS003HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS004HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS005HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS006HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS007HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS011HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS013HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS017HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS021HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS024HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS026HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS028HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS030HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS031HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS032HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS101HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS103HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS201HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS301HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS302HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS401HBA1.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA0.RSP.ports=[file:/dev/null] +PIC.Core.CS501HBA1.RSP.ports=[file:/dev/null] + +PIC.Core.RS106HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS205HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS208HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS305HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS306HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS307HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS310HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS406HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS407HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS409HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS503HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS508HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS509HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE601HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE602HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE603HBA.RSP.ports=[file:/dev/null] + +PIC.Core.DE604HBA.RSP.ports=[file:/dev/null] +PIC.Core.DE605HBA.RSP.ports=[file:/dev/null] +PIC.Core.FR606HBA.RSP.ports=[file:/dev/null] +PIC.Core.SE607HBA.RSP.ports=[file:/dev/null] +PIC.Core.UK608HBA.RSP.ports=[file:/dev/null] +PIC.Core.FI609HBA.RSP.ports=[file:/dev/null] + +PIC.Core.RS104HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS105HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS107HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS108HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS109HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS202HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS203HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS204HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS206HBA.RSP.ports=[file:/dev/null] +PIC.Core.RS207HBA.RSP.ports=[file:/dev/null] diff --git a/RTCP/Cobalt/GPUProc/etc/parset-additions.d/default/generateStationStreams.sh b/RTCP/Cobalt/GPUProc/etc/parset-additions.d/default/generateStationStreams.sh index d55557bae6c979a85f9d287f09c0bbd77ac67174..f5eb829fd574e90932f0a30033e7b17d209d6af9 100755 --- a/RTCP/Cobalt/GPUProc/etc/parset-additions.d/default/generateStationStreams.sh +++ b/RTCP/Cobalt/GPUProc/etc/parset-additions.d/default/generateStationStreams.sh @@ -12,8 +12,6 @@ # # Requires: # RSPConnections_Cobalt.dat -# MAC+IP.dat -# RSP+IP.dat # # These files are symlinks under GPUProc, but can be found in: # MAC/Deployment/data/StaticMetaData @@ -29,71 +27,64 @@ export LC_ALL=C echo "# StationStreams.parset This file is generated by generateStationStreams.sh" -cat "${in_prefix}RSPConnections_Cobalt.dat" | perl -ne ' -/^(\w+) RSP_([01]) ([^ \t\n]+)/ || next; - -$station = $1; -$board = $2; -$host = $3; - -$station =~ /^[A-Z][A-Z]([0-9]+)/; -$nr = $1; - -# only parse cobalt nodes -$host =~ /^cbt/ || next; - -if (not $cached) { - %lookup = {}; - %rlookup = {}; - %ilookup = {}; +cat "${in_prefix}RSPConnections_Cobalt.dat" | sort | awk ' +# +# Make sure that for each antenna field, there is one line +# per RSP board. We do this by repeating the same line for +# each station that has fewer than 4 (typically 1) line. +# - # MAC+IP.dat resolves hostnames to IPs and MACs - open $fh, "$ENV{in_prefix}MAC+IP.dat" - or die "Cannot open \"$ENV{in_prefix}MAC+IP.dat\""; +BEGIN { + prevstat = ""; + prevline = ""; + rsp_seen = 0; +} - while($line = <$fh>) { - next if $line =~ /^#/; - ($name, $ip, $mac) = split(/\s+/, $line); +/RSP/ { + stat = $1; + line = $0; + + if (stat == prevstat) { + rsp_seen++; + } else { + for (i = 0; i < 4 - rsp_seen; ++i) + print prevline; - $lookup{$name} = $ip; - $rlookup{$ip} = $rlookup{$ip} || $name; - } + rsp_seen = 1; + }; - close $fh; + print line; - # RSP+IP.dat lists the international station IP addresses - open $fh, "$ENV{in_prefix}RSP+IP.dat" - or die "Cannot open \"$ENV{in_prefix}RSP+IP.dat\""; + prevline = line; + prevstat = stat; +}' | perl -ne ' +/^(\w+) RSP_([01])\s+([^ \t\n]+)\s+([^ \t\n]+)/ || next; - while($line = <$fh>) { - next if $line =~ /^#/; - ($name, $ip) = split(/\s+/, $line); +# Each station is represented by 4 lines, one for each +# RSP board. We parse 4 lines, collect the destination +# IPs, and continue based on the last line for the +# rest of the information. - $ilookup{$name} = $ip; - } +$station = $1; +$board = $2; +$iface = $3; +$ip = $4; - close $fh; +$station =~ /^[A-Z][A-Z]([0-9]+)/; +$stationnr = $1; +$intl = $stationnr >= 600; - $cached = 1; +if ($rspNr <= 0 || $rspNr >= 4) { + # new station + $ips = {}; + $rspNr = 0; } -$dest = $lookup{$host}; -$iface = $rlookup{$dest}; -$baseport = 10000 + $nr * 10; - -$ips = {}; +$ips{$rspNr} = $intl ? $ip : $iface; -foreach $rspNr (0 .. 3) { - $brdname = sprintf "%s_%02d", $station, $rspNr; +next if ++$rspNr < 4; - if (exists $ilookup{$brdname}) { - # international station: IP = src IP, ending in .50 - $ips{$rspNr} = $ilookup{$brdname}; - $ips{$rspNr} =~ s/\.[0-9]+$/.50/; - } else { - $ips{$rspNr} = $iface; - } -} +$baseport = 10000 + $stationnr * 10; $portstr = sprintf "[udp:%s:%d, udp:%s:%d, udp:%s:%d, udp:%s:%d]", $ips{0}, $baseport + ($board * 6) + 0, @@ -103,8 +94,8 @@ $portstr = sprintf "[udp:%s:%d, udp:%s:%d, udp:%s:%d, udp:%s:%d]", $iface =~ /(cbt[0-9]+)-10GB0([1234])/; $host = $1; -$ifnr = $2; -$receiver = sprintf "%s_%u", $host, ($ifnr - 1)/2; +$socket = ($2 - 1)/2; # 10GB01, 10GB02 = socket 0, 10GB03, 10GB04 = socket 1 +$receiver = sprintf "%s_%u", $host, $socket; if ($board == 0) { printf "PIC.Core.%sLBA.RSP.receiver = %s\n",$station,$receiver; diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/KernelTestHelpers.cc b/RTCP/Cobalt/GPUProc/test/Kernels/KernelTestHelpers.cc index bd27b99dc1a09bebf2fa11e084ddc1439b19a3af..1d23506ce405a056a0641df6a687cfc10b97afc9 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/KernelTestHelpers.cc +++ b/RTCP/Cobalt/GPUProc/test/Kernels/KernelTestHelpers.cc @@ -145,8 +145,8 @@ void parseCommandlineParameters(int argc, char *argv[], Parset &ps, KernelParam // Create a parset with the correct parameters to run a beamformer kernel ps.add("Observation.Beam[0].TiedArrayBeam[0].directionType", "J2000"); - ps.add("Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1", "0.0"); - ps.add("Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2", "0.0"); + ps.add("Observation.Beam[0].TiedArrayBeam[0].angle1", "0.0"); + ps.add("Observation.Beam[0].TiedArrayBeam[0].angle2", "0.0"); ps.add("Observation.Beam[0].TiedArrayBeam[0].coherent", "true"); ps.add("Observation.Beam[0].angle1", "5.0690771926813865"); ps.add("Observation.Beam[0].angle2", "0.38194688387907605"); diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel.in_parset index df268c1c4a53e1713d5ebb821c03da91d8e7e62e..baa14797cab7e2c95e7ddf7df9ddbda8cb18526d 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel.in_parset @@ -1,11 +1,11 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.Beam[0].angle1 = 2.15374 Observation.Beam[0].angle2 = 0.841549 Observation.Beam[0].directionType = J2000 @@ -26,7 +26,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.nrBeams = 1 Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel2.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel2.in_parset index 38d45a66480e0742430eb9074e9a11ad60915ee2..4add9390282ac3ac51b87d4b1e1b91b61bde62b4 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel2.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tBandPassCorrectionKernel2.in_parset @@ -1,11 +1,11 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Cobalt.BeamFormer.CoherentStokes.which = I Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 1 Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 @@ -32,7 +32,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.nrBeams = 1 Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tCorrelatorKernel.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tCorrelatorKernel.in_parset index ded61d828b90b15f53118b808f8dab99e1d438d2..0a62aeed2c8dd6b850838d3499104e169b5e51d9 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tCorrelatorKernel.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tCorrelatorKernel.in_parset @@ -1,11 +1,10 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.blockSize = 49152 +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.Beam[0].angle1 = 2.15374 Observation.Beam[0].angle2 = 0.841549 Observation.Beam[0].directionType = J2000 @@ -26,7 +25,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrBeams = 1 Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.in_parset index cec8a7d9a4eec6972a0cfcd87855c5d0ae10aca7..39711300f8b1ca24aa1c683be961802a222c01be 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tDelayAndBandPassKernel2.in_parset @@ -1,15 +1,14 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.PencilInfo.flysEye = false +Cobalt.blockSize = 49152 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.IncoherentStokes.which = I +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.BeamFormer.flysEye = false OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData @@ -19,14 +18,14 @@ OLAP.Storage.sshIdentityFile = OLAP.Storage.targetDirectory = /data OLAP.Storage.userName = OLAP.StorageProc.subbandsPerMS = 1 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false OLAP.storageNodeList = [244*0,244*1] OLAP.storageStationNames = [RS106HBA] OLAP.tiedArrayStationNames = [] @@ -38,15 +37,15 @@ Observation.AnaBeam[0].maximizeDuration = false Observation.AnaBeam[0].rank = 1 Observation.AnaBeam[0].startTime = 0 Observation.AnaBeam[0].target = -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 2.15374 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0.841549 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 2.15374 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.841549 Observation.Beam[0].TiedArrayBeam[0].coherent = true Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 Observation.Beam[0].TiedArrayBeam[0].specificationType = manual Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 2.15374 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0.841549 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 2.15374 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0.841549 Observation.Beam[0].TiedArrayBeam[1].coherent = false Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 @@ -94,7 +93,7 @@ Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.claimPeriod = 25 Observation.longBaselines = false Observation.nrAnaBeams = 1 @@ -121,7 +120,7 @@ Observation.topologyID = PIC.Core.RS106HBA.clockCorrectionTime = 0 PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.position = [3829205.598,469142.533,5062181.002] -PIC.Core.Station.RS106HBA.RSP.ports = [file:/localhome/lofar/test_sets/3sec/rs106.udp] +PIC.Core.RS106HBA.RSP.ports = [file:/localhome/lofar/test_sets/3sec/rs106.udp] _DPname = LOFAR_ObsSW_TempObs0024 _parsetPrefix = CorrAppl.CorrProc. _processName = CorrProc diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tFFTShiftKernel.cc b/RTCP/Cobalt/GPUProc/test/Kernels/tFFTShiftKernel.cc index d48f08de12a8c5cd150bb1981fa9aaa32f69acea..b7a33451fded9da7c920c809d4b2e4b42f9f1e92 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tFFTShiftKernel.cc +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tFFTShiftKernel.cc @@ -66,7 +66,7 @@ struct ParsetSUT // 4 for number of stokes size_t nr_files = inrTabs * 4; parset.add("Observation.DataProducts.Output_CoherentStokes.enabled", "true"); - parset.add("OLAP.CNProc_CoherentStokes.which", stokes); + parset.add("Cobalt.BeamFormer.CoherentStokes.which", stokes); parset.add("Observation.VirtualInstrument.stationList", str(format("[%d*RS000]") % nrStations)); parset.add("Observation.antennaSet", "LBA_INNER"); diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tFFT_Kernel.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tFFT_Kernel.in_parset index ded61d828b90b15f53118b808f8dab99e1d438d2..0a62aeed2c8dd6b850838d3499104e169b5e51d9 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tFFT_Kernel.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tFFT_Kernel.in_parset @@ -1,11 +1,10 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.blockSize = 49152 +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.Beam[0].angle1 = 2.15374 Observation.Beam[0].angle2 = 0.841549 Observation.Beam[0].directionType = J2000 @@ -26,7 +25,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrBeams = 1 Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tFIR_FilterKernel.cc b/RTCP/Cobalt/GPUProc/test/Kernels/tFIR_FilterKernel.cc index 9f6550c705708dd86c8cca522855bf9ed77b0e1a..3644694248b3c0b510a05ac85990c63f27e6355c 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tFIR_FilterKernel.cc +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tFIR_FilterKernel.cc @@ -45,7 +45,7 @@ TEST(FIR_FilterKernel) ps.add("Observation.nrBeams", "1"); ps.add("Observation.Beam[0].subbandList", "[0]"); ps.add("OLAP.CNProc.integrationSteps", "128"); - ps.add("Observation.channelsPerSubband", "64"); + ps.add("Cobalt.Correlator.nrChannelsPerSubband", "64"); ps.add("Observation.DataProducts.Output_Correlated.enabled", "true"); ps.add("Observation.DataProducts.Output_Correlated.filenames", "[L12345_SAP000_SB000_uv.MS]"); ps.add("Observation.DataProducts.Output_Correlated.locations", "[localhost:.]"); @@ -131,7 +131,7 @@ TEST(HistoryFlags) ps.add("Observation.nrBeams", "1"); ps.add("Observation.Beam[0].subbandList", "[0]"); ps.add("OLAP.CNProc.integrationSteps", "128"); - ps.add("Observation.channelsPerSubband", "64"); + ps.add("Cobalt.Correlator.nrChannelsPerSubband", "64"); ps.add("Observation.DataProducts.Output_Correlated.enabled", "true"); ps.add("Observation.DataProducts.Output_Correlated.filenames", "[L12345_SAP000_SB000_uv.MS]"); ps.add("Observation.DataProducts.Output_Correlated.locations", "[localhost:.]"); diff --git a/RTCP/Cobalt/GPUProc/test/Kernels/tIntToFloatKernel.in_parset b/RTCP/Cobalt/GPUProc/test/Kernels/tIntToFloatKernel.in_parset index ded61d828b90b15f53118b808f8dab99e1d438d2..87c41a646d74869a04fd7f78dbbc2f038e8cc853 100644 --- a/RTCP/Cobalt/GPUProc/test/Kernels/tIntToFloatKernel.in_parset +++ b/RTCP/Cobalt/GPUProc/test/Kernels/tIntToFloatKernel.in_parset @@ -1,11 +1,11 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.Beam[0].angle1 = 2.15374 Observation.Beam[0].angle2 = 0.841549 Observation.Beam[0].directionType = J2000 @@ -26,7 +26,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrBeams = 1 Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] diff --git a/RTCP/Cobalt/GPUProc/test/Pipelines/tCorrelatorPipelineProcessObs.parset b/RTCP/Cobalt/GPUProc/test/Pipelines/tCorrelatorPipelineProcessObs.parset index 7e8b41ad14fe5822905518a81abc206e414ab40c..3a6bd36d6b612172aca5773b88d705d25c183714 100644 --- a/RTCP/Cobalt/GPUProc/test/Pipelines/tCorrelatorPipelineProcessObs.parset +++ b/RTCP/Cobalt/GPUProc/test/Pipelines/tCorrelatorPipelineProcessObs.parset @@ -1,5 +1,5 @@ OLAP.CNProc.integrationSteps = 1024 -OLAP.correctBandPass = T +Cobalt.correctBandPass = T Observation.nrBitsPerSample = 8 OLAP.CNProc.nrPPFTaps = 16 Observation.VirtualInstrument.stationList = [CS001, CS002, CS002, CS004] @@ -8,9 +8,9 @@ Observation.nrBeams = 1 Observation.Beam[0].subbandList = [300..307] Observation.rspBoardList = [8*0] Observation.rspSlotList = [0..7] -OLAP.delayCompensation = T +Cobalt.delayCompensation = T Observation.nrPolarisations = 2 -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.sampleClock = 200 Observation.DataProducts.Output_Correlated.enabled = T Observation.DataProducts.Output_Correlated.locations = [8*:.] diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset index 96c98c1dc29f7009afc5a545695ef093bfac78d0..f31176772ce7c5b44daa443cd9fe08ee5e709ac0 100644 --- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset +++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tBeamFormerSubbandProcProcessSb.parset @@ -10,11 +10,11 @@ Observation.antennaSet = HBA_ZERO Observation.nrBeams = 1 Observation.Beam[0].subbandList = [300] Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 Observation.Beam[0].TiedArrayBeam[0].coherent = F -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 Observation.Beam[0].TiedArrayBeam[1].coherent = T Cobalt.BeamFormer.CoherentStokes.which = I # IQUV diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCoherentStokesBeamFormerSubbandProcProcessSb.parset b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCoherentStokesBeamFormerSubbandProcProcessSb.parset index e37e3c9b385073ed2478bd066b26b623888ff8f2..98293a55c5fdd11ffa2c58caa7d12a16e24310f7 100644 --- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCoherentStokesBeamFormerSubbandProcProcessSb.parset +++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCoherentStokesBeamFormerSubbandProcProcessSb.parset @@ -11,20 +11,20 @@ Observation.antennaSet = HBA_ZERO Observation.nrBeams = 1 Observation.Beam[0].subbandList = [300] Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 Observation.Beam[0].TiedArrayBeam[0].coherent = T -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 Observation.Beam[0].TiedArrayBeam[1].coherent = T Observation.Beam[0].nrTiedArrayBeams = 2 -OLAP.CNProc_CoherentStokes.which = I # IQUV / XXYY -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 1 # if > 1 the coherentStokesPPF == true -OLAP.CNProc_IncoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 1 +Cobalt.BeamFormer.CoherentStokes.which = I # IQUV / XXYY +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 1 # if > 1 the coherentStokesPPF == true +Cobalt.BeamFormer.IncoherentStokes.which = I # IQUV +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 1 Observation.rspBoardList = [0] Observation.rspSlotList = [0] diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCorrelatorSubbandProcProcessSb.parset b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCorrelatorSubbandProcProcessSb.parset index 2e2d2ec996298b78c378a730f84db25852952d73..a56e0c6d1b99db919b58eace8db85ae6a790230c 100644 --- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCorrelatorSubbandProcProcessSb.parset +++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tCorrelatorSubbandProcProcessSb.parset @@ -1,6 +1,6 @@ OLAP.CNProc.integrationSteps = 256 -OLAP.IONProc.integrationSteps = 4 -OLAP.correctBandPass = F +Cobalt.Correlator.nrBlocksPerIntegration = 4 +Cobalt.correctBandPass = F Observation.nrBitsPerSample = 8 OLAP.CNProc.nrPPFTaps = 16 Observation.VirtualInstrument.stationList = [CS002] @@ -9,13 +9,13 @@ Observation.nrBeams = 1 Observation.Beam[0].subbandList = [300..301] Observation.rspBoardList = [0, 0] Observation.rspSlotList = [0, 1] -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.which = I # IQUV -OLAP.delayCompensation = F +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.CoherentStokes.which = I # IQUV +Cobalt.BeamFormer.IncoherentStokes.which = I # IQUV +Cobalt.delayCompensation = F Observation.nrPolarisations = 2 -Observation.channelsPerSubband = 1 +Cobalt.Correlator.nrChannelsPerSubband = 1 Observation.sampleClock = 200 diff --git a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tFlysEyeBeamFormerSubbandProcProcessSb.parset b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tFlysEyeBeamFormerSubbandProcProcessSb.parset index 5c5ca7e2334298d7ff77fff3657578c5bf4a7f17..5ac016d7adb3ade0daa304b2d55fc0bf751545c5 100644 --- a/RTCP/Cobalt/GPUProc/test/SubbandProcs/tFlysEyeBeamFormerSubbandProcProcessSb.parset +++ b/RTCP/Cobalt/GPUProc/test/SubbandProcs/tFlysEyeBeamFormerSubbandProcProcessSb.parset @@ -10,20 +10,20 @@ Observation.antennaSet = HBA_ZERO Observation.nrBeams = 1 Observation.Beam[0].subbandList = [300] Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 + + Observation.Beam[0].TiedArrayBeam[0].coherent = T -Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 + + Observation.Beam[0].TiedArrayBeam[1].coherent = T -OLAP.CNProc_CoherentStokes.which = I # IQUV -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 1 -OLAP.CNProc_IncoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 1 -OLAP.PencilInfo.flysEye = T +Cobalt.BeamFormer.CoherentStokes.which = I # IQUV +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 1 +Cobalt.BeamFormer.IncoherentStokes.which = I # IQUV +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 1 +Cobalt.BeamFormer.flysEye = T Observation.rspBoardList = [0] Observation.rspSlotList = [0] diff --git a/RTCP/Cobalt/GPUProc/test/cuda/tFFT_leakage.in_.parset b/RTCP/Cobalt/GPUProc/test/cuda/tFFT_leakage.in_.parset index 18b03a458bcc0af5800e8b84380237fcbc442111..c205724fdb3811378778a8da908f9c25708713ee 100644 --- a/RTCP/Cobalt/GPUProc/test/cuda/tFFT_leakage.in_.parset +++ b/RTCP/Cobalt/GPUProc/test/cuda/tFFT_leakage.in_.parset @@ -1,31 +1,31 @@ Observation.ObsID = 0 OLAP.CNProc.phaseTwoPsets = [0..76] #OLAP.CNProc.phaseTwoPsets = [0..7] -OLAP.nrBitsPerSample = 16 +Observation.nrBitsPerSample = 16 OLAP.nrTimesInFrame = 16 Observation.nrSlotsInFrame = 122 OLAP.nrSecondsOfBuffer = 1.2 OLAP.CNProc.nrPPFTaps = 16 -OLAP.realTime = false +Cobalt.realTime = false Observation.startTime = '2010-04-28 17:25:03' Observation.stopTime = '2010-04-28 17:25:05' OLAP.storageStationNames = [ST00 ] Observation.subbandList = [12 ] Observation.bandFilter = LBA_10_90 -Observation.channelsPerSubband = 256 +Cobalt.Correlator.nrChannelsPerSubband = 256 OLAP.CNProc.integrationSteps = 256 # FIXME: rename Observation.sampleClock = 200 Observation.beamList = [0] -OLAP.correctBandPass = true +Cobalt.correctBandPass = true Observation.nrBeams = 1 Observation.Beam[0].angle1 = 0 Observation.Beam[0].angle2 = 0 Observation.Beam[0].directionType = J2000 Observation.Beam[0].nrTiedArrayBeams= 1 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -OLAP.delayCompensation = true +Cobalt.delayCompensation = true OLAP.CNProc.partition = PartitionName PIC.Core.IONProc.PartitionName[0].inputs = [ST00/RSP0..ST00/RSP3] PIC.Core.IONProc.PartitionName[1].inputs = [ST01/RSP0..ST01/RSP3] @@ -104,87 +104,87 @@ PIC.Core.IONProc.PartitionName[73].inputs = [ST73/RSP0..ST73/RSP3] PIC.Core.IONProc.PartitionName[74].inputs = [ST74/RSP0..ST74/RSP3] PIC.Core.IONProc.PartitionName[75].inputs = [ST75/RSP0..ST75/RSP3] PIC.Core.IONProc.PartitionName[76].inputs = [ST76/RSP0..ST76/RSP3] -PIC.Core.Station.ST00.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST01.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST02.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST03.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST04.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST05.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST06.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST07.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST08.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST09.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST10.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST11.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST12.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST13.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST14.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST15.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST16.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST17.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST18.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST19.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST20.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST21.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST22.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST23.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST24.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST25.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST26.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST27.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST28.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST29.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST30.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST31.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST32.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST33.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST34.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST35.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST36.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST37.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST38.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST39.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST40.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST41.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST42.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST43.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST44.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST45.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST46.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST47.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST48.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST49.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST50.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST51.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST52.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST53.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST54.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST55.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST56.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST57.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST58.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST59.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST60.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST61.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST62.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST63.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST64.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST65.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST66.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST67.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST68.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST69.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST70.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST71.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST72.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST73.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST74.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST75.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST76.RSP.ports = [ 4 * null: ] -OLAP.CNProc_CoherentStokes.which = IQUV # FIXME: conditional -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional -OLAP.CNProc_IncoherentStokes.which = IQUV # FIXME: conditional -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional +PIC.Core.ST00.RSP.ports = [ 4 * null: ] +PIC.Core.ST01.RSP.ports = [ 4 * null: ] +PIC.Core.ST02.RSP.ports = [ 4 * null: ] +PIC.Core.ST03.RSP.ports = [ 4 * null: ] +PIC.Core.ST04.RSP.ports = [ 4 * null: ] +PIC.Core.ST05.RSP.ports = [ 4 * null: ] +PIC.Core.ST06.RSP.ports = [ 4 * null: ] +PIC.Core.ST07.RSP.ports = [ 4 * null: ] +PIC.Core.ST08.RSP.ports = [ 4 * null: ] +PIC.Core.ST09.RSP.ports = [ 4 * null: ] +PIC.Core.ST10.RSP.ports = [ 4 * null: ] +PIC.Core.ST11.RSP.ports = [ 4 * null: ] +PIC.Core.ST12.RSP.ports = [ 4 * null: ] +PIC.Core.ST13.RSP.ports = [ 4 * null: ] +PIC.Core.ST14.RSP.ports = [ 4 * null: ] +PIC.Core.ST15.RSP.ports = [ 4 * null: ] +PIC.Core.ST16.RSP.ports = [ 4 * null: ] +PIC.Core.ST17.RSP.ports = [ 4 * null: ] +PIC.Core.ST18.RSP.ports = [ 4 * null: ] +PIC.Core.ST19.RSP.ports = [ 4 * null: ] +PIC.Core.ST20.RSP.ports = [ 4 * null: ] +PIC.Core.ST21.RSP.ports = [ 4 * null: ] +PIC.Core.ST22.RSP.ports = [ 4 * null: ] +PIC.Core.ST23.RSP.ports = [ 4 * null: ] +PIC.Core.ST24.RSP.ports = [ 4 * null: ] +PIC.Core.ST25.RSP.ports = [ 4 * null: ] +PIC.Core.ST26.RSP.ports = [ 4 * null: ] +PIC.Core.ST27.RSP.ports = [ 4 * null: ] +PIC.Core.ST28.RSP.ports = [ 4 * null: ] +PIC.Core.ST29.RSP.ports = [ 4 * null: ] +PIC.Core.ST30.RSP.ports = [ 4 * null: ] +PIC.Core.ST31.RSP.ports = [ 4 * null: ] +PIC.Core.ST32.RSP.ports = [ 4 * null: ] +PIC.Core.ST33.RSP.ports = [ 4 * null: ] +PIC.Core.ST34.RSP.ports = [ 4 * null: ] +PIC.Core.ST35.RSP.ports = [ 4 * null: ] +PIC.Core.ST36.RSP.ports = [ 4 * null: ] +PIC.Core.ST37.RSP.ports = [ 4 * null: ] +PIC.Core.ST38.RSP.ports = [ 4 * null: ] +PIC.Core.ST39.RSP.ports = [ 4 * null: ] +PIC.Core.ST40.RSP.ports = [ 4 * null: ] +PIC.Core.ST41.RSP.ports = [ 4 * null: ] +PIC.Core.ST42.RSP.ports = [ 4 * null: ] +PIC.Core.ST43.RSP.ports = [ 4 * null: ] +PIC.Core.ST44.RSP.ports = [ 4 * null: ] +PIC.Core.ST45.RSP.ports = [ 4 * null: ] +PIC.Core.ST46.RSP.ports = [ 4 * null: ] +PIC.Core.ST47.RSP.ports = [ 4 * null: ] +PIC.Core.ST48.RSP.ports = [ 4 * null: ] +PIC.Core.ST49.RSP.ports = [ 4 * null: ] +PIC.Core.ST50.RSP.ports = [ 4 * null: ] +PIC.Core.ST51.RSP.ports = [ 4 * null: ] +PIC.Core.ST52.RSP.ports = [ 4 * null: ] +PIC.Core.ST53.RSP.ports = [ 4 * null: ] +PIC.Core.ST54.RSP.ports = [ 4 * null: ] +PIC.Core.ST55.RSP.ports = [ 4 * null: ] +PIC.Core.ST56.RSP.ports = [ 4 * null: ] +PIC.Core.ST57.RSP.ports = [ 4 * null: ] +PIC.Core.ST58.RSP.ports = [ 4 * null: ] +PIC.Core.ST59.RSP.ports = [ 4 * null: ] +PIC.Core.ST60.RSP.ports = [ 4 * null: ] +PIC.Core.ST61.RSP.ports = [ 4 * null: ] +PIC.Core.ST62.RSP.ports = [ 4 * null: ] +PIC.Core.ST63.RSP.ports = [ 4 * null: ] +PIC.Core.ST64.RSP.ports = [ 4 * null: ] +PIC.Core.ST65.RSP.ports = [ 4 * null: ] +PIC.Core.ST66.RSP.ports = [ 4 * null: ] +PIC.Core.ST67.RSP.ports = [ 4 * null: ] +PIC.Core.ST68.RSP.ports = [ 4 * null: ] +PIC.Core.ST69.RSP.ports = [ 4 * null: ] +PIC.Core.ST70.RSP.ports = [ 4 * null: ] +PIC.Core.ST71.RSP.ports = [ 4 * null: ] +PIC.Core.ST72.RSP.ports = [ 4 * null: ] +PIC.Core.ST73.RSP.ports = [ 4 * null: ] +PIC.Core.ST74.RSP.ports = [ 4 * null: ] +PIC.Core.ST75.RSP.ports = [ 4 * null: ] +PIC.Core.ST76.RSP.ports = [ 4 * null: ] +Cobalt.BeamFormer.CoherentStokes.which = IQUV # FIXME: conditional +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional +Cobalt.BeamFormer.IncoherentStokes.which = IQUV # FIXME: conditional +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional OLAP.tiedArrayStationNames = [ST00 .. ST76] # FIXME???: conditional Observation.referencePhaseCenter = [3826577.066, 461022.948, 5064892.786] PIC.Core.ST00.phaseCenter = [3826577.066, 461022.948, 5064892.786] diff --git a/RTCP/Cobalt/GPUProc/test/cuda/tKernelOccupancy.parset b/RTCP/Cobalt/GPUProc/test/cuda/tKernelOccupancy.parset index 442aef0db68973ddc2b001a2a79704354084e605..ad3981317a5c88f8c2ed07aa486a9ecd5828a35c 100644 --- a/RTCP/Cobalt/GPUProc/test/cuda/tKernelOccupancy.parset +++ b/RTCP/Cobalt/GPUProc/test/cuda/tKernelOccupancy.parset @@ -1,7 +1,7 @@ Observation.nrBitsPerSample = 8 Observation.sampleClock = 200 Observation.nrPolarisations = 2 -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.VirtualInstrument.stationList = [CS001] Observation.antennaSet = LBA_INNER Observation.Dataslots.CS001LBA.RSPBoardList = [0] diff --git a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.77_Stations b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.77_Stations index 4dc07768782b58afaad665ff894527649bdf4229..962a73e65a83c7564701aecf319cc88d105fc62f 100644 --- a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.77_Stations +++ b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.77_Stations @@ -1,22 +1,22 @@ Observation.ObsID = 0 OLAP.CNProc.phaseTwoPsets = [0..76] #OLAP.CNProc.phaseTwoPsets = [0..7] -OLAP.nrBitsPerSample = 8 +Observation.nrBitsPerSample = 8 OLAP.nrTimesInFrame = 16 Observation.nrSlotsInFrame = 122 OLAP.nrSecondsOfBuffer = 1.2 OLAP.CNProc.nrPPFTaps = 16 -OLAP.realTime = false +Cobalt.realTime = false Observation.startTime = '2010-04-28 17:25:03' Observation.stopTime = '2010-04-28 17:25:05' OLAP.storageStationNames = [ST00 .. ST76] #OLAP.storageStationNames = [ST00 .. ST07] Observation.subbandList = [12 .. 499] Observation.bandFilter = LBA_10_90 -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 OLAP.CNProc.integrationSteps = 3072 # FIXME: rename Observation.sampleClock = 200 -OLAP.correctBandPass = true +Cobalt.correctBandPass = true Observation.beamList = [488 * 0] Observation.nrBeams = 1 Observation.Beam[0].angle1 = 0 @@ -26,7 +26,7 @@ Observation.Beam[0].nrTiedArrayBeams= 1 Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0 Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0 Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -OLAP.delayCompensation = true +Cobalt.delayCompensation = true OLAP.CNProc.partition = PartitionName PIC.Core.IONProc.PartitionName[0].inputs = [ST00/RSP0..ST00/RSP3] PIC.Core.IONProc.PartitionName[1].inputs = [ST01/RSP0..ST01/RSP3] @@ -105,87 +105,87 @@ PIC.Core.IONProc.PartitionName[73].inputs = [ST73/RSP0..ST73/RSP3] PIC.Core.IONProc.PartitionName[74].inputs = [ST74/RSP0..ST74/RSP3] PIC.Core.IONProc.PartitionName[75].inputs = [ST75/RSP0..ST75/RSP3] PIC.Core.IONProc.PartitionName[76].inputs = [ST76/RSP0..ST76/RSP3] -PIC.Core.Station.ST00.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST01.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST02.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST03.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST04.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST05.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST06.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST07.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST08.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST09.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST10.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST11.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST12.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST13.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST14.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST15.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST16.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST17.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST18.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST19.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST20.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST21.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST22.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST23.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST24.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST25.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST26.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST27.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST28.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST29.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST30.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST31.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST32.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST33.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST34.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST35.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST36.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST37.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST38.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST39.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST40.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST41.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST42.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST43.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST44.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST45.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST46.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST47.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST48.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST49.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST50.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST51.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST52.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST53.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST54.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST55.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST56.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST57.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST58.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST59.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST60.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST61.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST62.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST63.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST64.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST65.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST66.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST67.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST68.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST69.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST70.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST71.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST72.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST73.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST74.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST75.RSP.ports = [ 4 * null: ] -PIC.Core.Station.ST76.RSP.ports = [ 4 * null: ] -OLAP.CNProc_CoherentStokes.which = IQUV # FIXME: conditional -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional -OLAP.CNProc_IncoherentStokes.which = IQUV # FIXME: conditional -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional +PIC.Core.ST00.RSP.ports = [ 4 * null: ] +PIC.Core.ST01.RSP.ports = [ 4 * null: ] +PIC.Core.ST02.RSP.ports = [ 4 * null: ] +PIC.Core.ST03.RSP.ports = [ 4 * null: ] +PIC.Core.ST04.RSP.ports = [ 4 * null: ] +PIC.Core.ST05.RSP.ports = [ 4 * null: ] +PIC.Core.ST06.RSP.ports = [ 4 * null: ] +PIC.Core.ST07.RSP.ports = [ 4 * null: ] +PIC.Core.ST08.RSP.ports = [ 4 * null: ] +PIC.Core.ST09.RSP.ports = [ 4 * null: ] +PIC.Core.ST10.RSP.ports = [ 4 * null: ] +PIC.Core.ST11.RSP.ports = [ 4 * null: ] +PIC.Core.ST12.RSP.ports = [ 4 * null: ] +PIC.Core.ST13.RSP.ports = [ 4 * null: ] +PIC.Core.ST14.RSP.ports = [ 4 * null: ] +PIC.Core.ST15.RSP.ports = [ 4 * null: ] +PIC.Core.ST16.RSP.ports = [ 4 * null: ] +PIC.Core.ST17.RSP.ports = [ 4 * null: ] +PIC.Core.ST18.RSP.ports = [ 4 * null: ] +PIC.Core.ST19.RSP.ports = [ 4 * null: ] +PIC.Core.ST20.RSP.ports = [ 4 * null: ] +PIC.Core.ST21.RSP.ports = [ 4 * null: ] +PIC.Core.ST22.RSP.ports = [ 4 * null: ] +PIC.Core.ST23.RSP.ports = [ 4 * null: ] +PIC.Core.ST24.RSP.ports = [ 4 * null: ] +PIC.Core.ST25.RSP.ports = [ 4 * null: ] +PIC.Core.ST26.RSP.ports = [ 4 * null: ] +PIC.Core.ST27.RSP.ports = [ 4 * null: ] +PIC.Core.ST28.RSP.ports = [ 4 * null: ] +PIC.Core.ST29.RSP.ports = [ 4 * null: ] +PIC.Core.ST30.RSP.ports = [ 4 * null: ] +PIC.Core.ST31.RSP.ports = [ 4 * null: ] +PIC.Core.ST32.RSP.ports = [ 4 * null: ] +PIC.Core.ST33.RSP.ports = [ 4 * null: ] +PIC.Core.ST34.RSP.ports = [ 4 * null: ] +PIC.Core.ST35.RSP.ports = [ 4 * null: ] +PIC.Core.ST36.RSP.ports = [ 4 * null: ] +PIC.Core.ST37.RSP.ports = [ 4 * null: ] +PIC.Core.ST38.RSP.ports = [ 4 * null: ] +PIC.Core.ST39.RSP.ports = [ 4 * null: ] +PIC.Core.ST40.RSP.ports = [ 4 * null: ] +PIC.Core.ST41.RSP.ports = [ 4 * null: ] +PIC.Core.ST42.RSP.ports = [ 4 * null: ] +PIC.Core.ST43.RSP.ports = [ 4 * null: ] +PIC.Core.ST44.RSP.ports = [ 4 * null: ] +PIC.Core.ST45.RSP.ports = [ 4 * null: ] +PIC.Core.ST46.RSP.ports = [ 4 * null: ] +PIC.Core.ST47.RSP.ports = [ 4 * null: ] +PIC.Core.ST48.RSP.ports = [ 4 * null: ] +PIC.Core.ST49.RSP.ports = [ 4 * null: ] +PIC.Core.ST50.RSP.ports = [ 4 * null: ] +PIC.Core.ST51.RSP.ports = [ 4 * null: ] +PIC.Core.ST52.RSP.ports = [ 4 * null: ] +PIC.Core.ST53.RSP.ports = [ 4 * null: ] +PIC.Core.ST54.RSP.ports = [ 4 * null: ] +PIC.Core.ST55.RSP.ports = [ 4 * null: ] +PIC.Core.ST56.RSP.ports = [ 4 * null: ] +PIC.Core.ST57.RSP.ports = [ 4 * null: ] +PIC.Core.ST58.RSP.ports = [ 4 * null: ] +PIC.Core.ST59.RSP.ports = [ 4 * null: ] +PIC.Core.ST60.RSP.ports = [ 4 * null: ] +PIC.Core.ST61.RSP.ports = [ 4 * null: ] +PIC.Core.ST62.RSP.ports = [ 4 * null: ] +PIC.Core.ST63.RSP.ports = [ 4 * null: ] +PIC.Core.ST64.RSP.ports = [ 4 * null: ] +PIC.Core.ST65.RSP.ports = [ 4 * null: ] +PIC.Core.ST66.RSP.ports = [ 4 * null: ] +PIC.Core.ST67.RSP.ports = [ 4 * null: ] +PIC.Core.ST68.RSP.ports = [ 4 * null: ] +PIC.Core.ST69.RSP.ports = [ 4 * null: ] +PIC.Core.ST70.RSP.ports = [ 4 * null: ] +PIC.Core.ST71.RSP.ports = [ 4 * null: ] +PIC.Core.ST72.RSP.ports = [ 4 * null: ] +PIC.Core.ST73.RSP.ports = [ 4 * null: ] +PIC.Core.ST74.RSP.ports = [ 4 * null: ] +PIC.Core.ST75.RSP.ports = [ 4 * null: ] +PIC.Core.ST76.RSP.ports = [ 4 * null: ] +Cobalt.BeamFormer.CoherentStokes.which = IQUV # FIXME: conditional +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional +Cobalt.BeamFormer.IncoherentStokes.which = IQUV # FIXME: conditional +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 # FIXME: conditional OLAP.tiedArrayStationNames = [ST00 .. ST76] # FIXME???: conditional Observation.referencePhaseCenter = [3826577.066, 461022.948, 5064892.786] PIC.Core.ST00.phaseCenter = [3826577.066, 461022.948, 5064892.786] diff --git a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.AARTFAAC b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.AARTFAAC index c8988e2fbca11c74b78a3b7704bcc5c3d4ebc6a3..f93f92e31d0ede5a6fdd8ee03271e13d9f307dc2 100644 --- a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.AARTFAAC +++ b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.AARTFAAC @@ -8,11 +8,11 @@ OLAP.CNProc.phaseOneTwoCores = [0..19] OLAP.CNProc.phaseThreeCores = [] OLAP.CNProc.partition = PartitionName OLAP.CNProc.tabList = [] -OLAP.realTime = F +Cobalt.realTime = F OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = T -OLAP.nrBitsPerSample = 8 +Cobalt.correctClocks = T +Cobalt.correctBandPass = T +Observation.nrBitsPerSample = 8 OLAP.nrTimesInFrame = 16 OLAP.nrSecondsOfBuffer = 0.5 OLAP.CNProc.nrPPFTaps = 16 @@ -31,15 +31,15 @@ Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 6.3336866848083394 # Cygnu Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 1.91094251447010637 # Cygnus + 1.2 Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 6.5336866848083394 # Cygnus + 1.3 Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 2.11094251447010637 # Cygnus + 1.4 -OLAP.IONProc.integrationSteps = 2 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.which = I # IQUV +Cobalt.Correlator.nrBlocksPerIntegration = 2 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.which = I # IQUV +Cobalt.BeamFormer.IncoherentStokes.which = I # IQUV OLAP.PencilInfo.storageNodeList = [] -OLAP.delayCompensation = F +Cobalt.delayCompensation = F OLAP.DelayComp.positionType = ITRF OLAP.DelayComp.nrCalcDelays = 16 OLAP.dispersionMeasure = 2 @@ -57,7 +57,7 @@ Observation.subbandList = [300..315] Observation.beamList = [16*0] Observation.rspBoardList = [16*0] Observation.rspSlotList = [0..15] -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.sampleClock = 200 Observation.nrSlotsInFrame = 16 Observation.ObsID = 1000000 @@ -387,294 +387,294 @@ PIC.Core.IONProc.PartitionName[284].inputs = [CS007D44/RSP0] PIC.Core.IONProc.PartitionName[285].inputs = [CS007D45/RSP0] PIC.Core.IONProc.PartitionName[286].inputs = [CS007D46/RSP0] PIC.Core.IONProc.PartitionName[287].inputs = [CS007D47/RSP0] -PIC.Core.Station.CS002D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D00.raw] -PIC.Core.Station.CS002D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D01.raw] -PIC.Core.Station.CS002D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D02.raw] -PIC.Core.Station.CS002D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D03.raw] -PIC.Core.Station.CS002D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D04.raw] -PIC.Core.Station.CS002D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D05.raw] -PIC.Core.Station.CS002D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D06.raw] -PIC.Core.Station.CS002D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D07.raw] -PIC.Core.Station.CS002D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D08.raw] -PIC.Core.Station.CS002D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D09.raw] -PIC.Core.Station.CS002D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D10.raw] -PIC.Core.Station.CS002D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D11.raw] -PIC.Core.Station.CS002D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D12.raw] -PIC.Core.Station.CS002D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D13.raw] -PIC.Core.Station.CS002D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D14.raw] -PIC.Core.Station.CS002D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D15.raw] -PIC.Core.Station.CS002D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D16.raw] -PIC.Core.Station.CS002D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D17.raw] -PIC.Core.Station.CS002D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D18.raw] -PIC.Core.Station.CS002D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D19.raw] -PIC.Core.Station.CS002D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D20.raw] -PIC.Core.Station.CS002D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D21.raw] -PIC.Core.Station.CS002D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D22.raw] -PIC.Core.Station.CS002D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D23.raw] -PIC.Core.Station.CS002D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D24.raw] -PIC.Core.Station.CS002D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D25.raw] -PIC.Core.Station.CS002D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D26.raw] -PIC.Core.Station.CS002D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D27.raw] -PIC.Core.Station.CS002D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D28.raw] -PIC.Core.Station.CS002D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D29.raw] -PIC.Core.Station.CS002D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D30.raw] -PIC.Core.Station.CS002D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D31.raw] -PIC.Core.Station.CS002D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D32.raw] -PIC.Core.Station.CS002D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D33.raw] -PIC.Core.Station.CS002D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D34.raw] -PIC.Core.Station.CS002D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D35.raw] -PIC.Core.Station.CS002D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D36.raw] -PIC.Core.Station.CS002D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D37.raw] -PIC.Core.Station.CS002D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D38.raw] -PIC.Core.Station.CS002D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D39.raw] -PIC.Core.Station.CS002D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D40.raw] -PIC.Core.Station.CS002D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D41.raw] -PIC.Core.Station.CS002D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D42.raw] -PIC.Core.Station.CS002D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D43.raw] -PIC.Core.Station.CS002D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D44.raw] -PIC.Core.Station.CS002D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D45.raw] -PIC.Core.Station.CS002D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D46.raw] -PIC.Core.Station.CS002D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D47.raw] -PIC.Core.Station.CS003D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D00.raw] -PIC.Core.Station.CS003D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D01.raw] -PIC.Core.Station.CS003D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D02.raw] -PIC.Core.Station.CS003D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D03.raw] -PIC.Core.Station.CS003D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D04.raw] -PIC.Core.Station.CS003D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D05.raw] -PIC.Core.Station.CS003D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D06.raw] -PIC.Core.Station.CS003D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D07.raw] -PIC.Core.Station.CS003D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D08.raw] -PIC.Core.Station.CS003D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D09.raw] -PIC.Core.Station.CS003D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D10.raw] -PIC.Core.Station.CS003D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D11.raw] -PIC.Core.Station.CS003D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D12.raw] -PIC.Core.Station.CS003D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D13.raw] -PIC.Core.Station.CS003D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D14.raw] -PIC.Core.Station.CS003D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D15.raw] -PIC.Core.Station.CS003D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D16.raw] -PIC.Core.Station.CS003D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D17.raw] -PIC.Core.Station.CS003D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D18.raw] -PIC.Core.Station.CS003D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D19.raw] -PIC.Core.Station.CS003D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D20.raw] -PIC.Core.Station.CS003D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D21.raw] -PIC.Core.Station.CS003D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D22.raw] -PIC.Core.Station.CS003D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D23.raw] -PIC.Core.Station.CS003D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D24.raw] -PIC.Core.Station.CS003D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D25.raw] -PIC.Core.Station.CS003D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D26.raw] -PIC.Core.Station.CS003D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D27.raw] -PIC.Core.Station.CS003D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D28.raw] -PIC.Core.Station.CS003D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D29.raw] -PIC.Core.Station.CS003D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D30.raw] -PIC.Core.Station.CS003D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D31.raw] -PIC.Core.Station.CS003D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D32.raw] -PIC.Core.Station.CS003D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D33.raw] -PIC.Core.Station.CS003D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D34.raw] -PIC.Core.Station.CS003D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D35.raw] -PIC.Core.Station.CS003D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D36.raw] -PIC.Core.Station.CS003D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D37.raw] -PIC.Core.Station.CS003D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D38.raw] -PIC.Core.Station.CS003D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D39.raw] -PIC.Core.Station.CS003D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D40.raw] -PIC.Core.Station.CS003D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D41.raw] -PIC.Core.Station.CS003D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D42.raw] -PIC.Core.Station.CS003D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D43.raw] -PIC.Core.Station.CS003D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D44.raw] -PIC.Core.Station.CS003D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D45.raw] -PIC.Core.Station.CS003D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D46.raw] -PIC.Core.Station.CS003D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D47.raw] -PIC.Core.Station.CS004D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D00.raw] -PIC.Core.Station.CS004D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D01.raw] -PIC.Core.Station.CS004D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D02.raw] -PIC.Core.Station.CS004D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D03.raw] -PIC.Core.Station.CS004D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D04.raw] -PIC.Core.Station.CS004D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D05.raw] -PIC.Core.Station.CS004D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D06.raw] -PIC.Core.Station.CS004D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D07.raw] -PIC.Core.Station.CS004D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D08.raw] -PIC.Core.Station.CS004D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D09.raw] -PIC.Core.Station.CS004D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D10.raw] -PIC.Core.Station.CS004D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D11.raw] -PIC.Core.Station.CS004D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D12.raw] -PIC.Core.Station.CS004D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D13.raw] -PIC.Core.Station.CS004D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D14.raw] -PIC.Core.Station.CS004D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D15.raw] -PIC.Core.Station.CS004D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D16.raw] -PIC.Core.Station.CS004D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D17.raw] -PIC.Core.Station.CS004D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D18.raw] -PIC.Core.Station.CS004D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D19.raw] -PIC.Core.Station.CS004D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D20.raw] -PIC.Core.Station.CS004D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D21.raw] -PIC.Core.Station.CS004D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D22.raw] -PIC.Core.Station.CS004D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D23.raw] -PIC.Core.Station.CS004D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D24.raw] -PIC.Core.Station.CS004D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D25.raw] -PIC.Core.Station.CS004D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D26.raw] -PIC.Core.Station.CS004D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D27.raw] -PIC.Core.Station.CS004D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D28.raw] -PIC.Core.Station.CS004D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D29.raw] -PIC.Core.Station.CS004D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D30.raw] -PIC.Core.Station.CS004D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D31.raw] -PIC.Core.Station.CS004D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D32.raw] -PIC.Core.Station.CS004D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D33.raw] -PIC.Core.Station.CS004D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D34.raw] -PIC.Core.Station.CS004D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D35.raw] -PIC.Core.Station.CS004D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D36.raw] -PIC.Core.Station.CS004D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D37.raw] -PIC.Core.Station.CS004D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D38.raw] -PIC.Core.Station.CS004D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D39.raw] -PIC.Core.Station.CS004D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D40.raw] -PIC.Core.Station.CS004D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D41.raw] -PIC.Core.Station.CS004D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D42.raw] -PIC.Core.Station.CS004D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D43.raw] -PIC.Core.Station.CS004D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D44.raw] -PIC.Core.Station.CS004D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D45.raw] -PIC.Core.Station.CS004D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D46.raw] -PIC.Core.Station.CS004D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D47.raw] -PIC.Core.Station.CS005D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D00.raw] -PIC.Core.Station.CS005D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D01.raw] -PIC.Core.Station.CS005D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D02.raw] -PIC.Core.Station.CS005D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D03.raw] -PIC.Core.Station.CS005D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D04.raw] -PIC.Core.Station.CS005D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D05.raw] -PIC.Core.Station.CS005D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D06.raw] -PIC.Core.Station.CS005D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D07.raw] -PIC.Core.Station.CS005D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D08.raw] -PIC.Core.Station.CS005D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D09.raw] -PIC.Core.Station.CS005D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D10.raw] -PIC.Core.Station.CS005D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D11.raw] -PIC.Core.Station.CS005D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D12.raw] -PIC.Core.Station.CS005D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D13.raw] -PIC.Core.Station.CS005D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D14.raw] -PIC.Core.Station.CS005D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D15.raw] -PIC.Core.Station.CS005D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D16.raw] -PIC.Core.Station.CS005D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D17.raw] -PIC.Core.Station.CS005D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D18.raw] -PIC.Core.Station.CS005D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D19.raw] -PIC.Core.Station.CS005D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D20.raw] -PIC.Core.Station.CS005D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D21.raw] -PIC.Core.Station.CS005D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D22.raw] -PIC.Core.Station.CS005D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D23.raw] -PIC.Core.Station.CS005D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D24.raw] -PIC.Core.Station.CS005D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D25.raw] -PIC.Core.Station.CS005D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D26.raw] -PIC.Core.Station.CS005D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D27.raw] -PIC.Core.Station.CS005D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D28.raw] -PIC.Core.Station.CS005D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D29.raw] -PIC.Core.Station.CS005D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D30.raw] -PIC.Core.Station.CS005D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D31.raw] -PIC.Core.Station.CS005D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D32.raw] -PIC.Core.Station.CS005D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D33.raw] -PIC.Core.Station.CS005D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D34.raw] -PIC.Core.Station.CS005D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D35.raw] -PIC.Core.Station.CS005D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D36.raw] -PIC.Core.Station.CS005D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D37.raw] -PIC.Core.Station.CS005D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D38.raw] -PIC.Core.Station.CS005D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D39.raw] -PIC.Core.Station.CS005D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D40.raw] -PIC.Core.Station.CS005D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D41.raw] -PIC.Core.Station.CS005D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D42.raw] -PIC.Core.Station.CS005D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D43.raw] -PIC.Core.Station.CS005D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D44.raw] -PIC.Core.Station.CS005D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D45.raw] -PIC.Core.Station.CS005D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D46.raw] -PIC.Core.Station.CS005D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D47.raw] -PIC.Core.Station.CS006D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D00.raw] -PIC.Core.Station.CS006D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D01.raw] -PIC.Core.Station.CS006D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D02.raw] -PIC.Core.Station.CS006D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D03.raw] -PIC.Core.Station.CS006D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D04.raw] -PIC.Core.Station.CS006D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D05.raw] -PIC.Core.Station.CS006D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D06.raw] -PIC.Core.Station.CS006D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D07.raw] -PIC.Core.Station.CS006D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D08.raw] -PIC.Core.Station.CS006D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D09.raw] -PIC.Core.Station.CS006D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D10.raw] -PIC.Core.Station.CS006D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D11.raw] -PIC.Core.Station.CS006D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D12.raw] -PIC.Core.Station.CS006D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D13.raw] -PIC.Core.Station.CS006D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D14.raw] -PIC.Core.Station.CS006D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D15.raw] -PIC.Core.Station.CS006D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D16.raw] -PIC.Core.Station.CS006D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D17.raw] -PIC.Core.Station.CS006D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D18.raw] -PIC.Core.Station.CS006D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D19.raw] -PIC.Core.Station.CS006D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D20.raw] -PIC.Core.Station.CS006D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D21.raw] -PIC.Core.Station.CS006D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D22.raw] -PIC.Core.Station.CS006D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D23.raw] -PIC.Core.Station.CS006D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D24.raw] -PIC.Core.Station.CS006D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D25.raw] -PIC.Core.Station.CS006D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D26.raw] -PIC.Core.Station.CS006D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D27.raw] -PIC.Core.Station.CS006D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D28.raw] -PIC.Core.Station.CS006D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D29.raw] -PIC.Core.Station.CS006D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D30.raw] -PIC.Core.Station.CS006D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D31.raw] -PIC.Core.Station.CS006D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D32.raw] -PIC.Core.Station.CS006D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D33.raw] -PIC.Core.Station.CS006D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D34.raw] -PIC.Core.Station.CS006D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D35.raw] -PIC.Core.Station.CS006D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D36.raw] -PIC.Core.Station.CS006D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D37.raw] -PIC.Core.Station.CS006D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D38.raw] -PIC.Core.Station.CS006D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D39.raw] -PIC.Core.Station.CS006D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D40.raw] -PIC.Core.Station.CS006D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D41.raw] -PIC.Core.Station.CS006D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D42.raw] -PIC.Core.Station.CS006D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D43.raw] -PIC.Core.Station.CS006D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D44.raw] -PIC.Core.Station.CS006D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D45.raw] -PIC.Core.Station.CS006D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D46.raw] -PIC.Core.Station.CS006D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D47.raw] -PIC.Core.Station.CS007D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D00.raw] -PIC.Core.Station.CS007D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D01.raw] -PIC.Core.Station.CS007D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D02.raw] -PIC.Core.Station.CS007D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D03.raw] -PIC.Core.Station.CS007D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D04.raw] -PIC.Core.Station.CS007D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D05.raw] -PIC.Core.Station.CS007D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D06.raw] -PIC.Core.Station.CS007D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D07.raw] -PIC.Core.Station.CS007D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D08.raw] -PIC.Core.Station.CS007D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D09.raw] -PIC.Core.Station.CS007D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D10.raw] -PIC.Core.Station.CS007D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D11.raw] -PIC.Core.Station.CS007D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D12.raw] -PIC.Core.Station.CS007D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D13.raw] -PIC.Core.Station.CS007D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D14.raw] -PIC.Core.Station.CS007D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D15.raw] -PIC.Core.Station.CS007D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D16.raw] -PIC.Core.Station.CS007D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D17.raw] -PIC.Core.Station.CS007D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D18.raw] -PIC.Core.Station.CS007D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D19.raw] -PIC.Core.Station.CS007D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D20.raw] -PIC.Core.Station.CS007D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D21.raw] -PIC.Core.Station.CS007D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D22.raw] -PIC.Core.Station.CS007D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D23.raw] -PIC.Core.Station.CS007D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D24.raw] -PIC.Core.Station.CS007D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D25.raw] -PIC.Core.Station.CS007D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D26.raw] -PIC.Core.Station.CS007D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D27.raw] -PIC.Core.Station.CS007D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D28.raw] -PIC.Core.Station.CS007D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D29.raw] -PIC.Core.Station.CS007D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D30.raw] -PIC.Core.Station.CS007D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D31.raw] -PIC.Core.Station.CS007D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D32.raw] -PIC.Core.Station.CS007D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D33.raw] -PIC.Core.Station.CS007D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D34.raw] -PIC.Core.Station.CS007D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D35.raw] -PIC.Core.Station.CS007D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D36.raw] -PIC.Core.Station.CS007D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D37.raw] -PIC.Core.Station.CS007D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D38.raw] -PIC.Core.Station.CS007D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D39.raw] -PIC.Core.Station.CS007D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D40.raw] -PIC.Core.Station.CS007D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D41.raw] -PIC.Core.Station.CS007D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D42.raw] -PIC.Core.Station.CS007D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D43.raw] -PIC.Core.Station.CS007D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D44.raw] -PIC.Core.Station.CS007D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D45.raw] -PIC.Core.Station.CS007D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D46.raw] -PIC.Core.Station.CS007D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D47.raw] +PIC.Core.CS002D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D00.raw] +PIC.Core.CS002D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D01.raw] +PIC.Core.CS002D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D02.raw] +PIC.Core.CS002D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D03.raw] +PIC.Core.CS002D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D04.raw] +PIC.Core.CS002D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D05.raw] +PIC.Core.CS002D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D06.raw] +PIC.Core.CS002D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D07.raw] +PIC.Core.CS002D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D08.raw] +PIC.Core.CS002D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D09.raw] +PIC.Core.CS002D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D10.raw] +PIC.Core.CS002D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D11.raw] +PIC.Core.CS002D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D12.raw] +PIC.Core.CS002D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D13.raw] +PIC.Core.CS002D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D14.raw] +PIC.Core.CS002D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D15.raw] +PIC.Core.CS002D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D16.raw] +PIC.Core.CS002D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D17.raw] +PIC.Core.CS002D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D18.raw] +PIC.Core.CS002D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D19.raw] +PIC.Core.CS002D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D20.raw] +PIC.Core.CS002D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D21.raw] +PIC.Core.CS002D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D22.raw] +PIC.Core.CS002D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D23.raw] +PIC.Core.CS002D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D24.raw] +PIC.Core.CS002D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D25.raw] +PIC.Core.CS002D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D26.raw] +PIC.Core.CS002D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D27.raw] +PIC.Core.CS002D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D28.raw] +PIC.Core.CS002D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D29.raw] +PIC.Core.CS002D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D30.raw] +PIC.Core.CS002D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D31.raw] +PIC.Core.CS002D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D32.raw] +PIC.Core.CS002D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D33.raw] +PIC.Core.CS002D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D34.raw] +PIC.Core.CS002D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D35.raw] +PIC.Core.CS002D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D36.raw] +PIC.Core.CS002D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D37.raw] +PIC.Core.CS002D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D38.raw] +PIC.Core.CS002D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D39.raw] +PIC.Core.CS002D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D40.raw] +PIC.Core.CS002D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D41.raw] +PIC.Core.CS002D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D42.raw] +PIC.Core.CS002D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D43.raw] +PIC.Core.CS002D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D44.raw] +PIC.Core.CS002D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D45.raw] +PIC.Core.CS002D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D46.raw] +PIC.Core.CS002D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D47.raw] +PIC.Core.CS003D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D00.raw] +PIC.Core.CS003D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D01.raw] +PIC.Core.CS003D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D02.raw] +PIC.Core.CS003D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D03.raw] +PIC.Core.CS003D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D04.raw] +PIC.Core.CS003D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D05.raw] +PIC.Core.CS003D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D06.raw] +PIC.Core.CS003D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D07.raw] +PIC.Core.CS003D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D08.raw] +PIC.Core.CS003D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D09.raw] +PIC.Core.CS003D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D10.raw] +PIC.Core.CS003D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D11.raw] +PIC.Core.CS003D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D12.raw] +PIC.Core.CS003D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D13.raw] +PIC.Core.CS003D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D14.raw] +PIC.Core.CS003D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D15.raw] +PIC.Core.CS003D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D16.raw] +PIC.Core.CS003D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D17.raw] +PIC.Core.CS003D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D18.raw] +PIC.Core.CS003D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D19.raw] +PIC.Core.CS003D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D20.raw] +PIC.Core.CS003D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D21.raw] +PIC.Core.CS003D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D22.raw] +PIC.Core.CS003D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D23.raw] +PIC.Core.CS003D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D24.raw] +PIC.Core.CS003D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D25.raw] +PIC.Core.CS003D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D26.raw] +PIC.Core.CS003D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D27.raw] +PIC.Core.CS003D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D28.raw] +PIC.Core.CS003D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D29.raw] +PIC.Core.CS003D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D30.raw] +PIC.Core.CS003D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D31.raw] +PIC.Core.CS003D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D32.raw] +PIC.Core.CS003D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D33.raw] +PIC.Core.CS003D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D34.raw] +PIC.Core.CS003D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D35.raw] +PIC.Core.CS003D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D36.raw] +PIC.Core.CS003D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D37.raw] +PIC.Core.CS003D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D38.raw] +PIC.Core.CS003D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D39.raw] +PIC.Core.CS003D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D40.raw] +PIC.Core.CS003D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D41.raw] +PIC.Core.CS003D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D42.raw] +PIC.Core.CS003D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D43.raw] +PIC.Core.CS003D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D44.raw] +PIC.Core.CS003D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D45.raw] +PIC.Core.CS003D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D46.raw] +PIC.Core.CS003D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D47.raw] +PIC.Core.CS004D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D00.raw] +PIC.Core.CS004D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D01.raw] +PIC.Core.CS004D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D02.raw] +PIC.Core.CS004D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D03.raw] +PIC.Core.CS004D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D04.raw] +PIC.Core.CS004D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D05.raw] +PIC.Core.CS004D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D06.raw] +PIC.Core.CS004D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D07.raw] +PIC.Core.CS004D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D08.raw] +PIC.Core.CS004D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D09.raw] +PIC.Core.CS004D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D10.raw] +PIC.Core.CS004D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D11.raw] +PIC.Core.CS004D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D12.raw] +PIC.Core.CS004D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D13.raw] +PIC.Core.CS004D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D14.raw] +PIC.Core.CS004D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D15.raw] +PIC.Core.CS004D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D16.raw] +PIC.Core.CS004D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D17.raw] +PIC.Core.CS004D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D18.raw] +PIC.Core.CS004D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D19.raw] +PIC.Core.CS004D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D20.raw] +PIC.Core.CS004D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D21.raw] +PIC.Core.CS004D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D22.raw] +PIC.Core.CS004D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D23.raw] +PIC.Core.CS004D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D24.raw] +PIC.Core.CS004D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D25.raw] +PIC.Core.CS004D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D26.raw] +PIC.Core.CS004D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D27.raw] +PIC.Core.CS004D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D28.raw] +PIC.Core.CS004D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D29.raw] +PIC.Core.CS004D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D30.raw] +PIC.Core.CS004D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D31.raw] +PIC.Core.CS004D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D32.raw] +PIC.Core.CS004D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D33.raw] +PIC.Core.CS004D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D34.raw] +PIC.Core.CS004D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D35.raw] +PIC.Core.CS004D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D36.raw] +PIC.Core.CS004D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D37.raw] +PIC.Core.CS004D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D38.raw] +PIC.Core.CS004D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D39.raw] +PIC.Core.CS004D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D40.raw] +PIC.Core.CS004D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D41.raw] +PIC.Core.CS004D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D42.raw] +PIC.Core.CS004D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D43.raw] +PIC.Core.CS004D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D44.raw] +PIC.Core.CS004D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D45.raw] +PIC.Core.CS004D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D46.raw] +PIC.Core.CS004D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D47.raw] +PIC.Core.CS005D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D00.raw] +PIC.Core.CS005D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D01.raw] +PIC.Core.CS005D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D02.raw] +PIC.Core.CS005D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D03.raw] +PIC.Core.CS005D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D04.raw] +PIC.Core.CS005D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D05.raw] +PIC.Core.CS005D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D06.raw] +PIC.Core.CS005D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D07.raw] +PIC.Core.CS005D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D08.raw] +PIC.Core.CS005D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D09.raw] +PIC.Core.CS005D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D10.raw] +PIC.Core.CS005D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D11.raw] +PIC.Core.CS005D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D12.raw] +PIC.Core.CS005D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D13.raw] +PIC.Core.CS005D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D14.raw] +PIC.Core.CS005D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D15.raw] +PIC.Core.CS005D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D16.raw] +PIC.Core.CS005D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D17.raw] +PIC.Core.CS005D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D18.raw] +PIC.Core.CS005D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D19.raw] +PIC.Core.CS005D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D20.raw] +PIC.Core.CS005D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D21.raw] +PIC.Core.CS005D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D22.raw] +PIC.Core.CS005D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D23.raw] +PIC.Core.CS005D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D24.raw] +PIC.Core.CS005D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D25.raw] +PIC.Core.CS005D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D26.raw] +PIC.Core.CS005D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D27.raw] +PIC.Core.CS005D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D28.raw] +PIC.Core.CS005D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D29.raw] +PIC.Core.CS005D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D30.raw] +PIC.Core.CS005D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D31.raw] +PIC.Core.CS005D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D32.raw] +PIC.Core.CS005D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D33.raw] +PIC.Core.CS005D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D34.raw] +PIC.Core.CS005D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D35.raw] +PIC.Core.CS005D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D36.raw] +PIC.Core.CS005D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D37.raw] +PIC.Core.CS005D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D38.raw] +PIC.Core.CS005D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D39.raw] +PIC.Core.CS005D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D40.raw] +PIC.Core.CS005D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D41.raw] +PIC.Core.CS005D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D42.raw] +PIC.Core.CS005D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D43.raw] +PIC.Core.CS005D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D44.raw] +PIC.Core.CS005D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D45.raw] +PIC.Core.CS005D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D46.raw] +PIC.Core.CS005D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D47.raw] +PIC.Core.CS006D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D00.raw] +PIC.Core.CS006D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D01.raw] +PIC.Core.CS006D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D02.raw] +PIC.Core.CS006D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D03.raw] +PIC.Core.CS006D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D04.raw] +PIC.Core.CS006D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D05.raw] +PIC.Core.CS006D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D06.raw] +PIC.Core.CS006D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D07.raw] +PIC.Core.CS006D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D08.raw] +PIC.Core.CS006D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D09.raw] +PIC.Core.CS006D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D10.raw] +PIC.Core.CS006D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D11.raw] +PIC.Core.CS006D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D12.raw] +PIC.Core.CS006D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D13.raw] +PIC.Core.CS006D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D14.raw] +PIC.Core.CS006D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D15.raw] +PIC.Core.CS006D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D16.raw] +PIC.Core.CS006D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D17.raw] +PIC.Core.CS006D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D18.raw] +PIC.Core.CS006D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D19.raw] +PIC.Core.CS006D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D20.raw] +PIC.Core.CS006D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D21.raw] +PIC.Core.CS006D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D22.raw] +PIC.Core.CS006D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D23.raw] +PIC.Core.CS006D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D24.raw] +PIC.Core.CS006D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D25.raw] +PIC.Core.CS006D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D26.raw] +PIC.Core.CS006D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D27.raw] +PIC.Core.CS006D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D28.raw] +PIC.Core.CS006D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D29.raw] +PIC.Core.CS006D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D30.raw] +PIC.Core.CS006D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D31.raw] +PIC.Core.CS006D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D32.raw] +PIC.Core.CS006D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D33.raw] +PIC.Core.CS006D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D34.raw] +PIC.Core.CS006D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D35.raw] +PIC.Core.CS006D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D36.raw] +PIC.Core.CS006D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D37.raw] +PIC.Core.CS006D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D38.raw] +PIC.Core.CS006D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D39.raw] +PIC.Core.CS006D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D40.raw] +PIC.Core.CS006D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D41.raw] +PIC.Core.CS006D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D42.raw] +PIC.Core.CS006D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D43.raw] +PIC.Core.CS006D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D44.raw] +PIC.Core.CS006D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D45.raw] +PIC.Core.CS006D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D46.raw] +PIC.Core.CS006D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D47.raw] +PIC.Core.CS007D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D00.raw] +PIC.Core.CS007D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D01.raw] +PIC.Core.CS007D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D02.raw] +PIC.Core.CS007D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D03.raw] +PIC.Core.CS007D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D04.raw] +PIC.Core.CS007D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D05.raw] +PIC.Core.CS007D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D06.raw] +PIC.Core.CS007D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D07.raw] +PIC.Core.CS007D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D08.raw] +PIC.Core.CS007D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D09.raw] +PIC.Core.CS007D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D10.raw] +PIC.Core.CS007D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D11.raw] +PIC.Core.CS007D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D12.raw] +PIC.Core.CS007D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D13.raw] +PIC.Core.CS007D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D14.raw] +PIC.Core.CS007D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D15.raw] +PIC.Core.CS007D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D16.raw] +PIC.Core.CS007D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D17.raw] +PIC.Core.CS007D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D18.raw] +PIC.Core.CS007D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D19.raw] +PIC.Core.CS007D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D20.raw] +PIC.Core.CS007D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D21.raw] +PIC.Core.CS007D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D22.raw] +PIC.Core.CS007D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D23.raw] +PIC.Core.CS007D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D24.raw] +PIC.Core.CS007D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D25.raw] +PIC.Core.CS007D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D26.raw] +PIC.Core.CS007D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D27.raw] +PIC.Core.CS007D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D28.raw] +PIC.Core.CS007D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D29.raw] +PIC.Core.CS007D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D30.raw] +PIC.Core.CS007D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D31.raw] +PIC.Core.CS007D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D32.raw] +PIC.Core.CS007D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D33.raw] +PIC.Core.CS007D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D34.raw] +PIC.Core.CS007D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D35.raw] +PIC.Core.CS007D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D36.raw] +PIC.Core.CS007D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D37.raw] +PIC.Core.CS007D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D38.raw] +PIC.Core.CS007D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D39.raw] +PIC.Core.CS007D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D40.raw] +PIC.Core.CS007D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D41.raw] +PIC.Core.CS007D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D42.raw] +PIC.Core.CS007D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D43.raw] +PIC.Core.CS007D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D44.raw] +PIC.Core.CS007D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D45.raw] +PIC.Core.CS007D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D46.raw] +PIC.Core.CS007D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D47.raw] PIC.Core.CS002D00.clockCorrectionTime = 8.291395e-06 PIC.Core.CS002D01.clockCorrectionTime = 8.291395e-06 PIC.Core.CS002D02.clockCorrectionTime = 8.291395e-06 diff --git a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.small-test b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.small-test index 059372dc6807fd2327d2f24c3f0157e1ea02b551..d82a2dc4296ce67f8f90843a410b806331dbb43f 100644 --- a/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.small-test +++ b/RTCP/Cobalt/GPUProc/test/opencl/RTCP_UnitTest.parset.small-test @@ -2,11 +2,11 @@ OLAP.CNProc.phaseTwoPsets = [0..7] OLAP.CNProc.integrationSteps = 1536 OLAP.CNProc.partition = PartitionName OLAP.CNProc.tabList = [] -OLAP.realTime = F +Cobalt.realTime = F OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = T -OLAP.nrBitsPerSample = 8 +Cobalt.correctClocks = T +Cobalt.correctBandPass = T +Observation.nrBitsPerSample = 8 OLAP.nrTimesInFrame = 16 OLAP.nrSecondsOfBuffer = 3.5 OLAP.CNProc.nrPPFTaps = 16 @@ -24,15 +24,15 @@ Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 6.3336866848083394 # Cygnu Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 1.91094251447010637 # Cygnus + 1.2 Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 6.4336866848083394 # Cygnus + 1.3 Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 2.11094251447010637 # Cygnus + 1.4 -OLAP.IONProc.integrationSteps = 2 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.which = I # IQUV -OLAP.CNProc_IncoherentStokes.which = I # IQUV +Cobalt.Correlator.nrBlocksPerIntegration = 2 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 1 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.which = I # IQUV +Cobalt.BeamFormer.IncoherentStokes.which = I # IQUV OLAP.PencilInfo.storageNodeList = [] -OLAP.delayCompensation = T +Cobalt.delayCompensation = T OLAP.DelayComp.positionType = ITRF OLAP.DelayComp.nrCalcDelays = 16 OLAP.dispersionMeasure = 2 @@ -50,7 +50,7 @@ Observation.subbandList = [300..309] Observation.beamList = [10*0] Observation.rspBoardList = [10*0] Observation.rspSlotList = [0..9] -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.sampleClock = 200 Observation.nrSlotsInFrame = 10 Observation.ObsID = 1000000 @@ -380,294 +380,294 @@ PIC.Core.IONProc.PartitionName[284].inputs = [CS007D44/RSP0] PIC.Core.IONProc.PartitionName[285].inputs = [CS007D45/RSP0] PIC.Core.IONProc.PartitionName[286].inputs = [CS007D46/RSP0] PIC.Core.IONProc.PartitionName[287].inputs = [CS007D47/RSP0] -PIC.Core.Station.CS002D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D00.raw] -PIC.Core.Station.CS002D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D01.raw] -PIC.Core.Station.CS002D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D02.raw] -PIC.Core.Station.CS002D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D03.raw] -PIC.Core.Station.CS002D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D04.raw] -PIC.Core.Station.CS002D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D05.raw] -PIC.Core.Station.CS002D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D06.raw] -PIC.Core.Station.CS002D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D07.raw] -PIC.Core.Station.CS002D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D08.raw] -PIC.Core.Station.CS002D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D09.raw] -PIC.Core.Station.CS002D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D10.raw] -PIC.Core.Station.CS002D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D11.raw] -PIC.Core.Station.CS002D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D12.raw] -PIC.Core.Station.CS002D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D13.raw] -PIC.Core.Station.CS002D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D14.raw] -PIC.Core.Station.CS002D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D15.raw] -PIC.Core.Station.CS002D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D16.raw] -PIC.Core.Station.CS002D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D17.raw] -PIC.Core.Station.CS002D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D18.raw] -PIC.Core.Station.CS002D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D19.raw] -PIC.Core.Station.CS002D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D20.raw] -PIC.Core.Station.CS002D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D21.raw] -PIC.Core.Station.CS002D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D22.raw] -PIC.Core.Station.CS002D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D23.raw] -PIC.Core.Station.CS002D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D24.raw] -PIC.Core.Station.CS002D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D25.raw] -PIC.Core.Station.CS002D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D26.raw] -PIC.Core.Station.CS002D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D27.raw] -PIC.Core.Station.CS002D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D28.raw] -PIC.Core.Station.CS002D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D29.raw] -PIC.Core.Station.CS002D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D30.raw] -PIC.Core.Station.CS002D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D31.raw] -PIC.Core.Station.CS002D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D32.raw] -PIC.Core.Station.CS002D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D33.raw] -PIC.Core.Station.CS002D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D34.raw] -PIC.Core.Station.CS002D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D35.raw] -PIC.Core.Station.CS002D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D36.raw] -PIC.Core.Station.CS002D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D37.raw] -PIC.Core.Station.CS002D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D38.raw] -PIC.Core.Station.CS002D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D39.raw] -PIC.Core.Station.CS002D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D40.raw] -PIC.Core.Station.CS002D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D41.raw] -PIC.Core.Station.CS002D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D42.raw] -PIC.Core.Station.CS002D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D43.raw] -PIC.Core.Station.CS002D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D44.raw] -PIC.Core.Station.CS002D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D45.raw] -PIC.Core.Station.CS002D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D46.raw] -PIC.Core.Station.CS002D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D47.raw] -PIC.Core.Station.CS003D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D00.raw] -PIC.Core.Station.CS003D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D01.raw] -PIC.Core.Station.CS003D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D02.raw] -PIC.Core.Station.CS003D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D03.raw] -PIC.Core.Station.CS003D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D04.raw] -PIC.Core.Station.CS003D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D05.raw] -PIC.Core.Station.CS003D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D06.raw] -PIC.Core.Station.CS003D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D07.raw] -PIC.Core.Station.CS003D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D08.raw] -PIC.Core.Station.CS003D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D09.raw] -PIC.Core.Station.CS003D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D10.raw] -PIC.Core.Station.CS003D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D11.raw] -PIC.Core.Station.CS003D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D12.raw] -PIC.Core.Station.CS003D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D13.raw] -PIC.Core.Station.CS003D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D14.raw] -PIC.Core.Station.CS003D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D15.raw] -PIC.Core.Station.CS003D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D16.raw] -PIC.Core.Station.CS003D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D17.raw] -PIC.Core.Station.CS003D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D18.raw] -PIC.Core.Station.CS003D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D19.raw] -PIC.Core.Station.CS003D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D20.raw] -PIC.Core.Station.CS003D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D21.raw] -PIC.Core.Station.CS003D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D22.raw] -PIC.Core.Station.CS003D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D23.raw] -PIC.Core.Station.CS003D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D24.raw] -PIC.Core.Station.CS003D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D25.raw] -PIC.Core.Station.CS003D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D26.raw] -PIC.Core.Station.CS003D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D27.raw] -PIC.Core.Station.CS003D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D28.raw] -PIC.Core.Station.CS003D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D29.raw] -PIC.Core.Station.CS003D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D30.raw] -PIC.Core.Station.CS003D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D31.raw] -PIC.Core.Station.CS003D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D32.raw] -PIC.Core.Station.CS003D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D33.raw] -PIC.Core.Station.CS003D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D34.raw] -PIC.Core.Station.CS003D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D35.raw] -PIC.Core.Station.CS003D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D36.raw] -PIC.Core.Station.CS003D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D37.raw] -PIC.Core.Station.CS003D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D38.raw] -PIC.Core.Station.CS003D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D39.raw] -PIC.Core.Station.CS003D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D40.raw] -PIC.Core.Station.CS003D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D41.raw] -PIC.Core.Station.CS003D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D42.raw] -PIC.Core.Station.CS003D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D43.raw] -PIC.Core.Station.CS003D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D44.raw] -PIC.Core.Station.CS003D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D45.raw] -PIC.Core.Station.CS003D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D46.raw] -PIC.Core.Station.CS003D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D47.raw] -PIC.Core.Station.CS004D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D00.raw] -PIC.Core.Station.CS004D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D01.raw] -PIC.Core.Station.CS004D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D02.raw] -PIC.Core.Station.CS004D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D03.raw] -PIC.Core.Station.CS004D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D04.raw] -PIC.Core.Station.CS004D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D05.raw] -PIC.Core.Station.CS004D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D06.raw] -PIC.Core.Station.CS004D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D07.raw] -PIC.Core.Station.CS004D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D08.raw] -PIC.Core.Station.CS004D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D09.raw] -PIC.Core.Station.CS004D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D10.raw] -PIC.Core.Station.CS004D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D11.raw] -PIC.Core.Station.CS004D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D12.raw] -PIC.Core.Station.CS004D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D13.raw] -PIC.Core.Station.CS004D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D14.raw] -PIC.Core.Station.CS004D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D15.raw] -PIC.Core.Station.CS004D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D16.raw] -PIC.Core.Station.CS004D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D17.raw] -PIC.Core.Station.CS004D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D18.raw] -PIC.Core.Station.CS004D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D19.raw] -PIC.Core.Station.CS004D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D20.raw] -PIC.Core.Station.CS004D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D21.raw] -PIC.Core.Station.CS004D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D22.raw] -PIC.Core.Station.CS004D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D23.raw] -PIC.Core.Station.CS004D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D24.raw] -PIC.Core.Station.CS004D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D25.raw] -PIC.Core.Station.CS004D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D26.raw] -PIC.Core.Station.CS004D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D27.raw] -PIC.Core.Station.CS004D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D28.raw] -PIC.Core.Station.CS004D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D29.raw] -PIC.Core.Station.CS004D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D30.raw] -PIC.Core.Station.CS004D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D31.raw] -PIC.Core.Station.CS004D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D32.raw] -PIC.Core.Station.CS004D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D33.raw] -PIC.Core.Station.CS004D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D34.raw] -PIC.Core.Station.CS004D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D35.raw] -PIC.Core.Station.CS004D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D36.raw] -PIC.Core.Station.CS004D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D37.raw] -PIC.Core.Station.CS004D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D38.raw] -PIC.Core.Station.CS004D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D39.raw] -PIC.Core.Station.CS004D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D40.raw] -PIC.Core.Station.CS004D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D41.raw] -PIC.Core.Station.CS004D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D42.raw] -PIC.Core.Station.CS004D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D43.raw] -PIC.Core.Station.CS004D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D44.raw] -PIC.Core.Station.CS004D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D45.raw] -PIC.Core.Station.CS004D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D46.raw] -PIC.Core.Station.CS004D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D47.raw] -PIC.Core.Station.CS005D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D00.raw] -PIC.Core.Station.CS005D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D01.raw] -PIC.Core.Station.CS005D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D02.raw] -PIC.Core.Station.CS005D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D03.raw] -PIC.Core.Station.CS005D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D04.raw] -PIC.Core.Station.CS005D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D05.raw] -PIC.Core.Station.CS005D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D06.raw] -PIC.Core.Station.CS005D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D07.raw] -PIC.Core.Station.CS005D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D08.raw] -PIC.Core.Station.CS005D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D09.raw] -PIC.Core.Station.CS005D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D10.raw] -PIC.Core.Station.CS005D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D11.raw] -PIC.Core.Station.CS005D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D12.raw] -PIC.Core.Station.CS005D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D13.raw] -PIC.Core.Station.CS005D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D14.raw] -PIC.Core.Station.CS005D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D15.raw] -PIC.Core.Station.CS005D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D16.raw] -PIC.Core.Station.CS005D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D17.raw] -PIC.Core.Station.CS005D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D18.raw] -PIC.Core.Station.CS005D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D19.raw] -PIC.Core.Station.CS005D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D20.raw] -PIC.Core.Station.CS005D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D21.raw] -PIC.Core.Station.CS005D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D22.raw] -PIC.Core.Station.CS005D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D23.raw] -PIC.Core.Station.CS005D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D24.raw] -PIC.Core.Station.CS005D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D25.raw] -PIC.Core.Station.CS005D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D26.raw] -PIC.Core.Station.CS005D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D27.raw] -PIC.Core.Station.CS005D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D28.raw] -PIC.Core.Station.CS005D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D29.raw] -PIC.Core.Station.CS005D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D30.raw] -PIC.Core.Station.CS005D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D31.raw] -PIC.Core.Station.CS005D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D32.raw] -PIC.Core.Station.CS005D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D33.raw] -PIC.Core.Station.CS005D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D34.raw] -PIC.Core.Station.CS005D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D35.raw] -PIC.Core.Station.CS005D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D36.raw] -PIC.Core.Station.CS005D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D37.raw] -PIC.Core.Station.CS005D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D38.raw] -PIC.Core.Station.CS005D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D39.raw] -PIC.Core.Station.CS005D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D40.raw] -PIC.Core.Station.CS005D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D41.raw] -PIC.Core.Station.CS005D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D42.raw] -PIC.Core.Station.CS005D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D43.raw] -PIC.Core.Station.CS005D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D44.raw] -PIC.Core.Station.CS005D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D45.raw] -PIC.Core.Station.CS005D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D46.raw] -PIC.Core.Station.CS005D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D47.raw] -PIC.Core.Station.CS006D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D00.raw] -PIC.Core.Station.CS006D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D01.raw] -PIC.Core.Station.CS006D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D02.raw] -PIC.Core.Station.CS006D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D03.raw] -PIC.Core.Station.CS006D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D04.raw] -PIC.Core.Station.CS006D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D05.raw] -PIC.Core.Station.CS006D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D06.raw] -PIC.Core.Station.CS006D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D07.raw] -PIC.Core.Station.CS006D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D08.raw] -PIC.Core.Station.CS006D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D09.raw] -PIC.Core.Station.CS006D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D10.raw] -PIC.Core.Station.CS006D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D11.raw] -PIC.Core.Station.CS006D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D12.raw] -PIC.Core.Station.CS006D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D13.raw] -PIC.Core.Station.CS006D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D14.raw] -PIC.Core.Station.CS006D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D15.raw] -PIC.Core.Station.CS006D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D16.raw] -PIC.Core.Station.CS006D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D17.raw] -PIC.Core.Station.CS006D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D18.raw] -PIC.Core.Station.CS006D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D19.raw] -PIC.Core.Station.CS006D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D20.raw] -PIC.Core.Station.CS006D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D21.raw] -PIC.Core.Station.CS006D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D22.raw] -PIC.Core.Station.CS006D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D23.raw] -PIC.Core.Station.CS006D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D24.raw] -PIC.Core.Station.CS006D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D25.raw] -PIC.Core.Station.CS006D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D26.raw] -PIC.Core.Station.CS006D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D27.raw] -PIC.Core.Station.CS006D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D28.raw] -PIC.Core.Station.CS006D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D29.raw] -PIC.Core.Station.CS006D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D30.raw] -PIC.Core.Station.CS006D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D31.raw] -PIC.Core.Station.CS006D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D32.raw] -PIC.Core.Station.CS006D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D33.raw] -PIC.Core.Station.CS006D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D34.raw] -PIC.Core.Station.CS006D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D35.raw] -PIC.Core.Station.CS006D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D36.raw] -PIC.Core.Station.CS006D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D37.raw] -PIC.Core.Station.CS006D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D38.raw] -PIC.Core.Station.CS006D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D39.raw] -PIC.Core.Station.CS006D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D40.raw] -PIC.Core.Station.CS006D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D41.raw] -PIC.Core.Station.CS006D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D42.raw] -PIC.Core.Station.CS006D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D43.raw] -PIC.Core.Station.CS006D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D44.raw] -PIC.Core.Station.CS006D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D45.raw] -PIC.Core.Station.CS006D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D46.raw] -PIC.Core.Station.CS006D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D47.raw] -PIC.Core.Station.CS007D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D00.raw] -PIC.Core.Station.CS007D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D01.raw] -PIC.Core.Station.CS007D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D02.raw] -PIC.Core.Station.CS007D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D03.raw] -PIC.Core.Station.CS007D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D04.raw] -PIC.Core.Station.CS007D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D05.raw] -PIC.Core.Station.CS007D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D06.raw] -PIC.Core.Station.CS007D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D07.raw] -PIC.Core.Station.CS007D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D08.raw] -PIC.Core.Station.CS007D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D09.raw] -PIC.Core.Station.CS007D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D10.raw] -PIC.Core.Station.CS007D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D11.raw] -PIC.Core.Station.CS007D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D12.raw] -PIC.Core.Station.CS007D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D13.raw] -PIC.Core.Station.CS007D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D14.raw] -PIC.Core.Station.CS007D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D15.raw] -PIC.Core.Station.CS007D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D16.raw] -PIC.Core.Station.CS007D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D17.raw] -PIC.Core.Station.CS007D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D18.raw] -PIC.Core.Station.CS007D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D19.raw] -PIC.Core.Station.CS007D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D20.raw] -PIC.Core.Station.CS007D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D21.raw] -PIC.Core.Station.CS007D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D22.raw] -PIC.Core.Station.CS007D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D23.raw] -PIC.Core.Station.CS007D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D24.raw] -PIC.Core.Station.CS007D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D25.raw] -PIC.Core.Station.CS007D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D26.raw] -PIC.Core.Station.CS007D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D27.raw] -PIC.Core.Station.CS007D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D28.raw] -PIC.Core.Station.CS007D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D29.raw] -PIC.Core.Station.CS007D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D30.raw] -PIC.Core.Station.CS007D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D31.raw] -PIC.Core.Station.CS007D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D32.raw] -PIC.Core.Station.CS007D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D33.raw] -PIC.Core.Station.CS007D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D34.raw] -PIC.Core.Station.CS007D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D35.raw] -PIC.Core.Station.CS007D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D36.raw] -PIC.Core.Station.CS007D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D37.raw] -PIC.Core.Station.CS007D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D38.raw] -PIC.Core.Station.CS007D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D39.raw] -PIC.Core.Station.CS007D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D40.raw] -PIC.Core.Station.CS007D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D41.raw] -PIC.Core.Station.CS007D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D42.raw] -PIC.Core.Station.CS007D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D43.raw] -PIC.Core.Station.CS007D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D44.raw] -PIC.Core.Station.CS007D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D45.raw] -PIC.Core.Station.CS007D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D46.raw] -PIC.Core.Station.CS007D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D47.raw] +PIC.Core.CS002D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D00.raw] +PIC.Core.CS002D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D01.raw] +PIC.Core.CS002D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D02.raw] +PIC.Core.CS002D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D03.raw] +PIC.Core.CS002D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D04.raw] +PIC.Core.CS002D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D05.raw] +PIC.Core.CS002D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D06.raw] +PIC.Core.CS002D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D07.raw] +PIC.Core.CS002D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D08.raw] +PIC.Core.CS002D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D09.raw] +PIC.Core.CS002D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D10.raw] +PIC.Core.CS002D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D11.raw] +PIC.Core.CS002D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D12.raw] +PIC.Core.CS002D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D13.raw] +PIC.Core.CS002D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D14.raw] +PIC.Core.CS002D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D15.raw] +PIC.Core.CS002D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D16.raw] +PIC.Core.CS002D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D17.raw] +PIC.Core.CS002D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D18.raw] +PIC.Core.CS002D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D19.raw] +PIC.Core.CS002D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D20.raw] +PIC.Core.CS002D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D21.raw] +PIC.Core.CS002D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D22.raw] +PIC.Core.CS002D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D23.raw] +PIC.Core.CS002D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D24.raw] +PIC.Core.CS002D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D25.raw] +PIC.Core.CS002D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D26.raw] +PIC.Core.CS002D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D27.raw] +PIC.Core.CS002D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D28.raw] +PIC.Core.CS002D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D29.raw] +PIC.Core.CS002D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D30.raw] +PIC.Core.CS002D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D31.raw] +PIC.Core.CS002D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D32.raw] +PIC.Core.CS002D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D33.raw] +PIC.Core.CS002D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D34.raw] +PIC.Core.CS002D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D35.raw] +PIC.Core.CS002D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D36.raw] +PIC.Core.CS002D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D37.raw] +PIC.Core.CS002D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D38.raw] +PIC.Core.CS002D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D39.raw] +PIC.Core.CS002D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D40.raw] +PIC.Core.CS002D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D41.raw] +PIC.Core.CS002D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D42.raw] +PIC.Core.CS002D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D43.raw] +PIC.Core.CS002D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D44.raw] +PIC.Core.CS002D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D45.raw] +PIC.Core.CS002D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D46.raw] +PIC.Core.CS002D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS002D47.raw] +PIC.Core.CS003D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D00.raw] +PIC.Core.CS003D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D01.raw] +PIC.Core.CS003D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D02.raw] +PIC.Core.CS003D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D03.raw] +PIC.Core.CS003D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D04.raw] +PIC.Core.CS003D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D05.raw] +PIC.Core.CS003D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D06.raw] +PIC.Core.CS003D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D07.raw] +PIC.Core.CS003D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D08.raw] +PIC.Core.CS003D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D09.raw] +PIC.Core.CS003D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D10.raw] +PIC.Core.CS003D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D11.raw] +PIC.Core.CS003D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D12.raw] +PIC.Core.CS003D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D13.raw] +PIC.Core.CS003D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D14.raw] +PIC.Core.CS003D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D15.raw] +PIC.Core.CS003D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D16.raw] +PIC.Core.CS003D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D17.raw] +PIC.Core.CS003D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D18.raw] +PIC.Core.CS003D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D19.raw] +PIC.Core.CS003D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D20.raw] +PIC.Core.CS003D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D21.raw] +PIC.Core.CS003D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D22.raw] +PIC.Core.CS003D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D23.raw] +PIC.Core.CS003D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D24.raw] +PIC.Core.CS003D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D25.raw] +PIC.Core.CS003D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D26.raw] +PIC.Core.CS003D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D27.raw] +PIC.Core.CS003D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D28.raw] +PIC.Core.CS003D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D29.raw] +PIC.Core.CS003D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D30.raw] +PIC.Core.CS003D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D31.raw] +PIC.Core.CS003D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D32.raw] +PIC.Core.CS003D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D33.raw] +PIC.Core.CS003D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D34.raw] +PIC.Core.CS003D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D35.raw] +PIC.Core.CS003D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D36.raw] +PIC.Core.CS003D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D37.raw] +PIC.Core.CS003D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D38.raw] +PIC.Core.CS003D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D39.raw] +PIC.Core.CS003D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D40.raw] +PIC.Core.CS003D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D41.raw] +PIC.Core.CS003D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D42.raw] +PIC.Core.CS003D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D43.raw] +PIC.Core.CS003D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D44.raw] +PIC.Core.CS003D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D45.raw] +PIC.Core.CS003D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D46.raw] +PIC.Core.CS003D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS003D47.raw] +PIC.Core.CS004D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D00.raw] +PIC.Core.CS004D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D01.raw] +PIC.Core.CS004D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D02.raw] +PIC.Core.CS004D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D03.raw] +PIC.Core.CS004D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D04.raw] +PIC.Core.CS004D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D05.raw] +PIC.Core.CS004D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D06.raw] +PIC.Core.CS004D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D07.raw] +PIC.Core.CS004D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D08.raw] +PIC.Core.CS004D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D09.raw] +PIC.Core.CS004D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D10.raw] +PIC.Core.CS004D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D11.raw] +PIC.Core.CS004D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D12.raw] +PIC.Core.CS004D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D13.raw] +PIC.Core.CS004D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D14.raw] +PIC.Core.CS004D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D15.raw] +PIC.Core.CS004D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D16.raw] +PIC.Core.CS004D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D17.raw] +PIC.Core.CS004D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D18.raw] +PIC.Core.CS004D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D19.raw] +PIC.Core.CS004D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D20.raw] +PIC.Core.CS004D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D21.raw] +PIC.Core.CS004D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D22.raw] +PIC.Core.CS004D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D23.raw] +PIC.Core.CS004D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D24.raw] +PIC.Core.CS004D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D25.raw] +PIC.Core.CS004D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D26.raw] +PIC.Core.CS004D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D27.raw] +PIC.Core.CS004D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D28.raw] +PIC.Core.CS004D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D29.raw] +PIC.Core.CS004D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D30.raw] +PIC.Core.CS004D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D31.raw] +PIC.Core.CS004D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D32.raw] +PIC.Core.CS004D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D33.raw] +PIC.Core.CS004D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D34.raw] +PIC.Core.CS004D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D35.raw] +PIC.Core.CS004D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D36.raw] +PIC.Core.CS004D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D37.raw] +PIC.Core.CS004D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D38.raw] +PIC.Core.CS004D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D39.raw] +PIC.Core.CS004D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D40.raw] +PIC.Core.CS004D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D41.raw] +PIC.Core.CS004D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D42.raw] +PIC.Core.CS004D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D43.raw] +PIC.Core.CS004D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D44.raw] +PIC.Core.CS004D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D45.raw] +PIC.Core.CS004D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D46.raw] +PIC.Core.CS004D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS004D47.raw] +PIC.Core.CS005D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D00.raw] +PIC.Core.CS005D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D01.raw] +PIC.Core.CS005D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D02.raw] +PIC.Core.CS005D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D03.raw] +PIC.Core.CS005D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D04.raw] +PIC.Core.CS005D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D05.raw] +PIC.Core.CS005D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D06.raw] +PIC.Core.CS005D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D07.raw] +PIC.Core.CS005D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D08.raw] +PIC.Core.CS005D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D09.raw] +PIC.Core.CS005D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D10.raw] +PIC.Core.CS005D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D11.raw] +PIC.Core.CS005D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D12.raw] +PIC.Core.CS005D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D13.raw] +PIC.Core.CS005D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D14.raw] +PIC.Core.CS005D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D15.raw] +PIC.Core.CS005D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D16.raw] +PIC.Core.CS005D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D17.raw] +PIC.Core.CS005D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D18.raw] +PIC.Core.CS005D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D19.raw] +PIC.Core.CS005D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D20.raw] +PIC.Core.CS005D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D21.raw] +PIC.Core.CS005D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D22.raw] +PIC.Core.CS005D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D23.raw] +PIC.Core.CS005D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D24.raw] +PIC.Core.CS005D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D25.raw] +PIC.Core.CS005D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D26.raw] +PIC.Core.CS005D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D27.raw] +PIC.Core.CS005D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D28.raw] +PIC.Core.CS005D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D29.raw] +PIC.Core.CS005D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D30.raw] +PIC.Core.CS005D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D31.raw] +PIC.Core.CS005D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D32.raw] +PIC.Core.CS005D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D33.raw] +PIC.Core.CS005D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D34.raw] +PIC.Core.CS005D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D35.raw] +PIC.Core.CS005D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D36.raw] +PIC.Core.CS005D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D37.raw] +PIC.Core.CS005D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D38.raw] +PIC.Core.CS005D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D39.raw] +PIC.Core.CS005D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D40.raw] +PIC.Core.CS005D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D41.raw] +PIC.Core.CS005D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D42.raw] +PIC.Core.CS005D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D43.raw] +PIC.Core.CS005D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D44.raw] +PIC.Core.CS005D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D45.raw] +PIC.Core.CS005D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D46.raw] +PIC.Core.CS005D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS005D47.raw] +PIC.Core.CS006D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D00.raw] +PIC.Core.CS006D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D01.raw] +PIC.Core.CS006D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D02.raw] +PIC.Core.CS006D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D03.raw] +PIC.Core.CS006D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D04.raw] +PIC.Core.CS006D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D05.raw] +PIC.Core.CS006D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D06.raw] +PIC.Core.CS006D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D07.raw] +PIC.Core.CS006D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D08.raw] +PIC.Core.CS006D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D09.raw] +PIC.Core.CS006D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D10.raw] +PIC.Core.CS006D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D11.raw] +PIC.Core.CS006D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D12.raw] +PIC.Core.CS006D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D13.raw] +PIC.Core.CS006D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D14.raw] +PIC.Core.CS006D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D15.raw] +PIC.Core.CS006D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D16.raw] +PIC.Core.CS006D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D17.raw] +PIC.Core.CS006D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D18.raw] +PIC.Core.CS006D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D19.raw] +PIC.Core.CS006D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D20.raw] +PIC.Core.CS006D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D21.raw] +PIC.Core.CS006D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D22.raw] +PIC.Core.CS006D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D23.raw] +PIC.Core.CS006D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D24.raw] +PIC.Core.CS006D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D25.raw] +PIC.Core.CS006D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D26.raw] +PIC.Core.CS006D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D27.raw] +PIC.Core.CS006D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D28.raw] +PIC.Core.CS006D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D29.raw] +PIC.Core.CS006D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D30.raw] +PIC.Core.CS006D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D31.raw] +PIC.Core.CS006D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D32.raw] +PIC.Core.CS006D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D33.raw] +PIC.Core.CS006D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D34.raw] +PIC.Core.CS006D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D35.raw] +PIC.Core.CS006D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D36.raw] +PIC.Core.CS006D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D37.raw] +PIC.Core.CS006D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D38.raw] +PIC.Core.CS006D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D39.raw] +PIC.Core.CS006D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D40.raw] +PIC.Core.CS006D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D41.raw] +PIC.Core.CS006D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D42.raw] +PIC.Core.CS006D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D43.raw] +PIC.Core.CS006D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D44.raw] +PIC.Core.CS006D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D45.raw] +PIC.Core.CS006D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D46.raw] +PIC.Core.CS006D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS006D47.raw] +PIC.Core.CS007D00.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D00.raw] +PIC.Core.CS007D01.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D01.raw] +PIC.Core.CS007D02.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D02.raw] +PIC.Core.CS007D03.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D03.raw] +PIC.Core.CS007D04.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D04.raw] +PIC.Core.CS007D05.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D05.raw] +PIC.Core.CS007D06.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D06.raw] +PIC.Core.CS007D07.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D07.raw] +PIC.Core.CS007D08.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D08.raw] +PIC.Core.CS007D09.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D09.raw] +PIC.Core.CS007D10.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D10.raw] +PIC.Core.CS007D11.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D11.raw] +PIC.Core.CS007D12.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D12.raw] +PIC.Core.CS007D13.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D13.raw] +PIC.Core.CS007D14.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D14.raw] +PIC.Core.CS007D15.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D15.raw] +PIC.Core.CS007D16.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D16.raw] +PIC.Core.CS007D17.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D17.raw] +PIC.Core.CS007D18.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D18.raw] +PIC.Core.CS007D19.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D19.raw] +PIC.Core.CS007D20.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D20.raw] +PIC.Core.CS007D21.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D21.raw] +PIC.Core.CS007D22.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D22.raw] +PIC.Core.CS007D23.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D23.raw] +PIC.Core.CS007D24.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D24.raw] +PIC.Core.CS007D25.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D25.raw] +PIC.Core.CS007D26.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D26.raw] +PIC.Core.CS007D27.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D27.raw] +PIC.Core.CS007D28.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D28.raw] +PIC.Core.CS007D29.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D29.raw] +PIC.Core.CS007D30.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D30.raw] +PIC.Core.CS007D31.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D31.raw] +PIC.Core.CS007D32.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D32.raw] +PIC.Core.CS007D33.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D33.raw] +PIC.Core.CS007D34.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D34.raw] +PIC.Core.CS007D35.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D35.raw] +PIC.Core.CS007D36.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D36.raw] +PIC.Core.CS007D37.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D37.raw] +PIC.Core.CS007D38.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D38.raw] +PIC.Core.CS007D39.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D39.raw] +PIC.Core.CS007D40.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D40.raw] +PIC.Core.CS007D41.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D41.raw] +PIC.Core.CS007D42.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D42.raw] +PIC.Core.CS007D43.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D43.raw] +PIC.Core.CS007D44.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D44.raw] +PIC.Core.CS007D45.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D45.raw] +PIC.Core.CS007D46.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D46.raw] +PIC.Core.CS007D47.RSP.ports = [file:/local/AARTFAAC-dataset/CS007D47.raw] PIC.Core.CS002D00.clockCorrectionTime = 8.291395e-06 PIC.Core.CS002D01.clockCorrectionTime = 8.291395e-06 PIC.Core.CS002D02.clockCorrectionTime = 8.291395e-06 diff --git a/RTCP/Cobalt/GPUProc/test/tMPIReceive.in_parset b/RTCP/Cobalt/GPUProc/test/tMPIReceive.in_parset index c8a86941c60acad0c89d39015273794c797b8120..ca9be19c63f919588a820559174443d3162adaf1 100644 --- a/RTCP/Cobalt/GPUProc/test/tMPIReceive.in_parset +++ b/RTCP/Cobalt/GPUProc/test/tMPIReceive.in_parset @@ -1,8 +1,5 @@ Cobalt.BeamFormer.nrDelayCompensationChannels = 64 Cobalt.BeamFormer.nrHighResolutionChannels = 64 -ApplCtrl.application=CorrAppl -ApplCtrl.processes=[CorrProc] -ApplCtrl.resultfile=/opt/lofar/var/run/ACC_CCU001:OnlineControl[0]{192676}_CorrAppl_result.param Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=1 Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 @@ -20,31 +17,8 @@ Cobalt.correctBandPass=true Cobalt.correctClocks=true Cobalt.delayCompensation=true Cobalt.realTime=false -CorrAppl.CorrProc._executable=CN_Processing -CorrAppl.CorrProc._hostname=bgstfen -CorrAppl.CorrProc._nodes=[] -CorrAppl.CorrProc._startstopType=bgl -CorrAppl.CorrProc.workingdir=/opt/lofar/bin/ -CorrAppl._hostname=bgstfen -CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] -CorrAppl.procesOrder=[] -CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_IncoherentStokes.which=I -OLAP.Correlator.integrationTime=1 -OLAP.Correlator.nrBlocksPerIntegration=1 -OLAP.Correlator.nrChannelsPerSubband=1 -OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.flysEye=false +Cobalt.BeamFormer.coherentDedisperseChannels=false Observation.AnaBeam[0].angle1=5.0690771926813865 Observation.AnaBeam[0].angle2=0.38194688387907605 Observation.AnaBeam[0].directionType=J2000 @@ -52,10 +26,10 @@ Observation.AnaBeam[0].duration=300 Observation.AnaBeam[0].rank=1 Observation.AnaBeam[0].startTime= Observation.AnaBeam[0].target= -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=5.06907719268139 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.381946883879076 -Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=5.06907719268139 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.381946883879076 + + Observation.Beam[0].TiedArrayBeam[0].coherent=true Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0 @@ -75,46 +49,6 @@ Observation.Campaign.PI="Pizzo, Dr. Roberto Francesco" Observation.Campaign.contact="Pizzo, Dr. Roberto Francesco" Observation.Campaign.name="2013LOFAROBS" Observation.Campaign.title="2013LOFAROBS" -Observation.DataProducts.Input_CoherentStokes.dirmask= -Observation.DataProducts.Input_CoherentStokes.enabled=false -Observation.DataProducts.Input_CoherentStokes.filenames=[] -Observation.DataProducts.Input_CoherentStokes.identifications=[] -Observation.DataProducts.Input_CoherentStokes.locations=[] -Observation.DataProducts.Input_CoherentStokes.mountpoints=[] -Observation.DataProducts.Input_CoherentStokes.namemask= -Observation.DataProducts.Input_CoherentStokes.skip=[] -Observation.DataProducts.Input_Correlated.dirmask= -Observation.DataProducts.Input_Correlated.enabled=false -Observation.DataProducts.Input_Correlated.filenames=[] -Observation.DataProducts.Input_Correlated.identifications=[] -Observation.DataProducts.Input_Correlated.locations=[] -Observation.DataProducts.Input_Correlated.mountpoints=[] -Observation.DataProducts.Input_Correlated.namemask= -Observation.DataProducts.Input_Correlated.skip=[] -Observation.DataProducts.Input_IncoherentStokes.dirmask= -Observation.DataProducts.Input_IncoherentStokes.enabled=false -Observation.DataProducts.Input_IncoherentStokes.filenames=[] -Observation.DataProducts.Input_IncoherentStokes.identifications=[] -Observation.DataProducts.Input_IncoherentStokes.locations=[] -Observation.DataProducts.Input_IncoherentStokes.mountpoints=[] -Observation.DataProducts.Input_IncoherentStokes.namemask= -Observation.DataProducts.Input_IncoherentStokes.skip=[] -Observation.DataProducts.Input_InstrumentModel.dirmask= -Observation.DataProducts.Input_InstrumentModel.enabled=false -Observation.DataProducts.Input_InstrumentModel.filenames=[] -Observation.DataProducts.Input_InstrumentModel.identifications=[] -Observation.DataProducts.Input_InstrumentModel.locations=[] -Observation.DataProducts.Input_InstrumentModel.mountpoints=[] -Observation.DataProducts.Input_InstrumentModel.namemask= -Observation.DataProducts.Input_InstrumentModel.skip=[] -Observation.DataProducts.Input_SkyImage.dirmask= -Observation.DataProducts.Input_SkyImage.enabled=false -Observation.DataProducts.Input_SkyImage.filenames=[] -Observation.DataProducts.Input_SkyImage.identifications=[] -Observation.DataProducts.Input_SkyImage.locations=[] -Observation.DataProducts.Input_SkyImage.mountpoints=[] -Observation.DataProducts.Input_SkyImage.namemask= -Observation.DataProducts.Input_SkyImage.skip=[] Observation.DataProducts.Output_CoherentStokes.archived=false Observation.DataProducts.Output_CoherentStokes.deleted=false Observation.DataProducts.Output_CoherentStokes.dirmask=L${OBSID} @@ -151,30 +85,6 @@ Observation.DataProducts.Output_IncoherentStokes.namemask=L${OBSID}_SAP${SAP}_B$ Observation.DataProducts.Output_IncoherentStokes.percentageWritten=[] Observation.DataProducts.Output_IncoherentStokes.retentiontime=14 Observation.DataProducts.Output_IncoherentStokes.skip=[] -Observation.DataProducts.Output_InstrumentModel.archived=false -Observation.DataProducts.Output_InstrumentModel.deleted=false -Observation.DataProducts.Output_InstrumentModel.dirmask= -Observation.DataProducts.Output_InstrumentModel.enabled=false -Observation.DataProducts.Output_InstrumentModel.filenames=[] -Observation.DataProducts.Output_InstrumentModel.identifications=[] -Observation.DataProducts.Output_InstrumentModel.locations=[] -Observation.DataProducts.Output_InstrumentModel.mountpoints=[] -Observation.DataProducts.Output_InstrumentModel.namemask= -Observation.DataProducts.Output_InstrumentModel.percentageWritten=[] -Observation.DataProducts.Output_InstrumentModel.retentiontime=14 -Observation.DataProducts.Output_InstrumentModel.skip=[] -Observation.DataProducts.Output_SkyImage.archived=false -Observation.DataProducts.Output_SkyImage.deleted=false -Observation.DataProducts.Output_SkyImage.dirmask= -Observation.DataProducts.Output_SkyImage.enabled=false -Observation.DataProducts.Output_SkyImage.filenames=[] -Observation.DataProducts.Output_SkyImage.identifications=[] -Observation.DataProducts.Output_SkyImage.locations=[] -Observation.DataProducts.Output_SkyImage.mountpoints=[] -Observation.DataProducts.Output_SkyImage.namemask= -Observation.DataProducts.Output_SkyImage.percentageWritten=[] -Observation.DataProducts.Output_SkyImage.retentiontime=14 -Observation.DataProducts.Output_SkyImage.skip=[] Observation.Dataslots.CS002HBA0.DataslotList=[0..19] Observation.Dataslots.CS002HBA0.RSPBoardList=[20*0] Observation.Dataslots.CS501HBA0.DataslotList=[0..19] @@ -182,126 +92,17 @@ Observation.Dataslots.CS501HBA0.RSPBoardList=[20*0] Observation.Dataslots.DataslotInfo.DataslotList=[] Observation.Dataslots.DataslotInfo.RSPBoardList=[] Observation.ObsID=192676 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I -Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.Cobalt.Correlator.integrationTime=1.00663 -Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration=1 -Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrChannelsPerSubband=16 -Observation.ObservationControl.OnlineControl.Cobalt.blockSize=196608 -Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true -Observation.ObservationControl.OnlineControl.Cobalt.correctClocks=true -Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true -Observation.ObservationControl.OnlineControl.Cobalt.realTime=true -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._executable=CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._hostname=bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._nodes=[] -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._startstopType=bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc.workingdir=/opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] -Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 -Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 -Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true -Observation.ObservationControl.OnlineControl._hostname=CCU001 -Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] -Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] -Observation.ObservationControl.OnlineControl.inspectionHost=lhn001.cep2.lofar -Observation.ObservationControl.OnlineControl.inspectionProgram=/opt/cep/pyautoplot/bin/launch-msplots.sh -Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime=0 -Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit=none -Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance=0 -Observation.ObservationControl.StationControl.TBBControl.MinElevation=0 -Observation.ObservationControl.StationControl.TBBControl.NoCoincChann=0 -Observation.ObservationControl.StationControl.TBBControl.ParamExtension= -Observation.ObservationControl.StationControl._hostname=[CS302,CS031,CS024,CS501,CS201,CS002,CS028,CS021,CS026,CS101,CS030,CS001,CS007,CS006,CS017,CS401,CS301,CS011,CS103,CS003,CS032,CS004,CS005] -Observation.ObservationControl.StationControl.tbbPiggybackAllowed=true -Observation.ObservationControl._hostname=MCU001 -Observation.ObservationControl.heartbeatInterval=10 -Observation.Scheduler.contactEmail= -Observation.Scheduler.contactName= -Observation.Scheduler.contactPhone= -Observation.Scheduler.firstPossibleDay=0 -Observation.Scheduler.fixedDay=false -Observation.Scheduler.fixedTime=false -Observation.Scheduler.lastPossibleDay=0 -Observation.Scheduler.late=false -Observation.Scheduler.nightTimeWeightFactor=0 -Observation.Scheduler.predMaxTimeDif= -Observation.Scheduler.predMinTimeDif= -Observation.Scheduler.predecessors=[] -Observation.Scheduler.priority=0.0 -Observation.Scheduler.reason= -Observation.Scheduler.referenceFrame=0 -Observation.Scheduler.reservation=0 -Observation.Scheduler.storageSelectionMode=1 -Observation.Scheduler.taskDuration=300 -Observation.Scheduler.taskID=1021 -Observation.Scheduler.taskName=B1919+21 -Observation.Scheduler.taskType=0 -Observation.Scheduler.windowMaximumTime= -Observation.Scheduler.windowMinimumTime= -Observation.TBB.TBBsetting.RCUs=[] -Observation.TBB.TBBsetting.baselevel=127 -Observation.TBB.TBBsetting.filter=0 -Observation.TBB.TBBsetting.filter0_coeff0=0 -Observation.TBB.TBBsetting.filter0_coeff1=0 -Observation.TBB.TBBsetting.filter0_coeff2=0 -Observation.TBB.TBBsetting.filter0_coeff3=0 -Observation.TBB.TBBsetting.filter1_coeff0=0 -Observation.TBB.TBBsetting.filter1_coeff1=0 -Observation.TBB.TBBsetting.filter1_coeff2=0 -Observation.TBB.TBBsetting.filter1_coeff3=0 -Observation.TBB.TBBsetting.operatingMode=1 -Observation.TBB.TBBsetting.startlevel=7 -Observation.TBB.TBBsetting.stoplevel=7 -Observation.TBB.TBBsetting.subbandList=[] -Observation.TBB.TBBsetting.triggerMode=1 -Observation.TBB.TBBsetting.window=1M -Observation.VirtualInstrument.minimalNrStations=1 -Observation.VirtualInstrument.partitionList=["R00"] Observation.VirtualInstrument.stationList=[CS002,CS501] -Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_ZERO Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 -Observation.claimPeriod=25 -Observation.clockMode=<<Clock200 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.nrAnaBeams=1 Observation.nrBeams=1 Observation.nrBitsPerSample=16 -Observation.nrTBBSettings=0 -Observation.preparePeriod=25 -Observation.processSubtype=Beam Observation -Observation.processType=Observation Observation.sampleClock=200 Observation.startTime=2013-12-05 14:15:00 Observation.stopTime=2013-12-05 14:15:03 -Observation.strategy=default -Observation.topologyID=mom.M329819.fO _DPname=LOFAR_ObsSW_TempObs0045 PIC.Core.CS002HBA0.RSP.ports=[file:/localhome/lofar/test_sets/3sec/raw-b1919-hba-CS002HBA0-0.udp] PIC.Core.CS501HBA0.RSP.ports=[file:/localhome/lofar/test_sets/3sec/raw-b1919-hba-CS501HBA0-0.udp] -Cobalt.Tuning.finalMetaDataTimeout = 1 diff --git a/RTCP/Cobalt/GPUProc/test/t_cpu_utils.in_parset b/RTCP/Cobalt/GPUProc/test/t_cpu_utils.in_parset index 861eb382d1cb7cd13f12fd3224d8216b380508c4..6e369348ab001ceaf2a9d9ea7077794557d0a02d 100644 --- a/RTCP/Cobalt/GPUProc/test/t_cpu_utils.in_parset +++ b/RTCP/Cobalt/GPUProc/test/t_cpu_utils.in_parset @@ -1,14 +1,14 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -39,7 +39,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrAnaBeams = 1 Observation.nrBeamformers = 0 Observation.nrBeams = 1 diff --git a/RTCP/Cobalt/InputProc/test/tDelays.cc b/RTCP/Cobalt/InputProc/test/tDelays.cc index 7f6da43659c33e1a4fe157020eab127bab02efd1..5bb2cca2454b5da5fdecd80c81d78d13ac6037d3 100644 --- a/RTCP/Cobalt/InputProc/test/tDelays.cc +++ b/RTCP/Cobalt/InputProc/test/tDelays.cc @@ -103,8 +103,8 @@ TEST(TiedArrayBeam) { ps.add( "Observation.Beam[1].angle2", "0" ); ps.add( "Observation.Beam[1].nrTiedArrayBeams", "1" ); ps.add( "Observation.Beam[1].TiedArrayBeam[0].directionType", "J2000" ); - ps.add( "Observation.Beam[1].TiedArrayBeam[0].absoluteAngle1", "1" ); // Observation.Beam[1].angle1 + 0 - ps.add( "Observation.Beam[1].TiedArrayBeam[0].absoluteAngle2", "1" ); // Observation.Beam[1].angle2 + 1 + ps.add( "Observation.Beam[1].TiedArrayBeam[0].angle1", "1" ); // Observation.Beam[1].angle1 + 0 + ps.add( "Observation.Beam[1].TiedArrayBeam[0].angle2", "1" ); // Observation.Beam[1].angle2 + 1 ps.add( "Observation.Beam[1].TiedArrayBeam[0].coherent", "true" ); ps.updateSettings(); diff --git a/RTCP/Cobalt/InputProc/test/tRSP.cc b/RTCP/Cobalt/InputProc/test/tRSP.cc index b239096cc113cd4ac8a86ae5f4db344954ea9a9c..9c7ade0a0289f8bc1d260d218926b795ce0ea7b1 100644 --- a/RTCP/Cobalt/InputProc/test/tRSP.cc +++ b/RTCP/Cobalt/InputProc/test/tRSP.cc @@ -46,12 +46,6 @@ void report( const string &filename ) // read header f.read( &packet.header, sizeof (RSP::Header) ); -#ifdef WORDS_BIGENDIAN - dataConvert(LittleEndian, packet.header.configuration); - dataConvert(LittleEndian, packet.header.timestamp); - dataConvert(LittleEndian, packet.header.blockSequenceNumber); -#endif - cout << "RSP version: " << (int)packet.header.version << endl; cout << "RSP board nr: " << packet.rspBoard() << endl; cout << "Payload OK: " << (packet.payloadError() ? "NO" : "YES") << endl; diff --git a/RTCP/Cobalt/OutputProc/test/RTCP.parset b/RTCP/Cobalt/OutputProc/test/RTCP.parset deleted file mode 100644 index 8bc07b6a4e135895779c8c79cd24bce58a10db8b..0000000000000000000000000000000000000000 --- a/RTCP/Cobalt/OutputProc/test/RTCP.parset +++ /dev/null @@ -1,101 +0,0 @@ -OLAP.OLAP_Conn.BGLProc_Storage_Ports = [8300..8363] - -# should be one of FCNP, TCP, NULL. This works for IONProc, but not for -# BGLProc, since BGLProc does not open the parset file! -OLAP.OLAP_Conn.IONProc_BGLProc_Transport = FCNP - -OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] - -OLAP.realTime = T -# OLAP.BGLProc.integrationSteps = 608 #768 at 200MHz (generated) -OLAP.BGLProc.nrPPFTaps=16 -OLAP.BGLProc.coresPerPset = 64 - -# OLAP.IONProc.integrationSteps = 1 (generated) - -# OLAP.StorageProc.integrationSteps = 60 (generated) -OLAP.StorageProc.subbandsPerMS = 1 -Observation.MSNameMask = /data/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS - -# Variables for the DelayCompensation -OLAP.DelayComp.positionType = ITRF # should be ITRF -OLAP.DelayComp.nrCalcDelays = 16 - -OLAP.IPHeaderSize = 32 -OLAP.EPAHeaderSize = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSlotsInFrame = 36 -OLAP.nrBitsPerSample=16 -OLAP.nrSecondsOfBuffer = 4 -OLAP.maxNetworkDelay = 0.5 -OLAP.delayCompensation = F -OLAP.correctBandPass = T - -# Observation.sampleClock = 160 - -#Observation.bandFilter = LBL_10_80 -#Observation.bandFilter = LBL_30_80 -#Observation.bandFilter = LBH_10_80 -#Observation.bandFilter = LBH_30_80 -Observation.bandFilter = HB_100_190 -#Observation.bandFilter = HB_170_230 -#Observation.bandFilter = HB_210_240 - -# Eg. tiedArray beamforming -#Observation.Beamformer[0].stationList = "B01_0,B01_1" -#Observation.Beamformer[1].stationList = "B01_2,B01_3" - -Observation.Beam[0].angle1 = 0 # NCP -Observation.Beam[0].angle2 = 1.570796327 -Observation.Beam[1].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[1].angle2 = 0.71094251447010637 -Observation.Beam[2].angle1 = 6.1234876806221052 # Cas A -Observation.Beam[2].angle2 = 1.0265153995604648 -Observation.Beam[3].angle1 = 0.9293405574 # pulsar -Observation.Beam[3].angle2 = 0.9525774347 -Observation.Beam[4].angle1 = 4.5192832066722115 # Jupiter -Observation.Beam[4].angle2 = 5.893698795 -Observation.Beam[5].angle1 = 1.4596748494230258 # Taurus -Observation.Beam[5].angle2 = 0.38422502336661052 - -Observation.Beam[0].directionType = J2000 -Observation.Beam[1].directionType = J2000 -Observation.Beam[2].directionType = J2000 - -# Eg. [ 300..303, 40 ] --> [ 300,301,302,303,40 ] -# [ 10*0 ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -# [ 3*(0;1;2;3) ] --> [ 0,1,2,3,0,1,2,3,0,1,2,3 ] -# [ 3*(300..303) ] --> [ 300,301,302,303,300,301,302,303,300,301,302,303 ] -# [ 2*(5*0) ] --> [ 0,0,0,0,0,0,0,0,0,0 ] - -#Observation.subbandList = [300..335] -Observation.beamList = [36*0] -Observation.rspBoardList = [36*0] -Observation.rspSlotList = [0..35] - -#Observation.subbandList = [300] -#Observation.beamList = [0] -#Observation.rspBoardList = [0] -#Observation.rspSlotList = [0] - -#Observation.subbandList = [300..331] -#Observation.beamList = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] -#Observation.rspBoardList = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3] -#Observation.rspSlotList = [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] - -# Eg. SAS/MAC: uStation mode: -#Observation.Beam[0].subbandList = [300..335,300..335,300..335,300..335] -#Observation.Beam[0].beamletList = [0..35,36..71,72..107,108..143] - -Observation.Beam[0].subbandList = [300..335] -Observation.Beam[0].beamletList = [0..35] - -# Eg. SAS/MAC: station mode: -#Observation.Beam[0].subbandList = [300..331] -#Observation.Beam[0].beamletList = [0..7,36..43,72..79,108..115] - - -Observation.channelsPerSubband = 256 -Observation.nrPolarisations = 2 - -OLAP.psetsPerStorage = 1 diff --git a/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.parset b/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.parset index 256fc983e4d12ee42f454775a985b18c1e4452cf..02aa1df06a91155248ab53309ad3179961276879 100644 --- a/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.parset +++ b/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.parset @@ -1,11 +1,11 @@ OLAP.CNProc.integrationSteps = 768 OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 64 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 4 -OLAP.CNProc_CoherentStokes.which = I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 64 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 244 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 4 +Cobalt.BeamFormer.CoherentStokes.which = I OLAP.Correlator.integrationTime = 1.0 -OLAP.IONProc.integrationSteps = 4 +Cobalt.Correlator.nrBlocksPerIntegration = 4 OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData @@ -14,23 +14,23 @@ OLAP.Storage.msWriter = /globalhome/mol/projects/LOFAR/installed/gnu_opt/bin/Sto OLAP.Storage.sshIdentityFile = /globalhome/mol/.ssh/id_rsa OLAP.Storage.targetDirectory = /data OLAP.Storage.userName = mol -OLAP.coherentDedisperseChannels = T -OLAP.correctBandPass = T -OLAP.correctClocks = T -OLAP.delayCompensation = T +Cobalt.BeamFormer.coherentDedisperseChannels = T +Cobalt.correctBandPass = T +Cobalt.correctClocks = T +Cobalt.delayCompensation = T OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.5 Observation.nrBitsPerSample = 16 -OLAP.realTime = T -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 5.2336866848083394 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0.71094251447010637 +Cobalt.realTime = T +Observation.Beam[0].TiedArrayBeam[0].angle1 = 5.2336866848083394 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.71094251447010637 Observation.Beam[0].TiedArrayBeam[0].coherent = T Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 Observation.Beam[0].TiedArrayBeam[0].specificationType = manual Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 5.2336866848083394 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0.71094251447010637 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 5.2336866848083394 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0.71094251447010637 Observation.Beam[0].TiedArrayBeam[1].coherent = T Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 @@ -59,7 +59,7 @@ Observation.ProjectName = Development Observation.VirtualInstrument.stationList = [CS001,CS002] Observation.antennaSet = LBA Observation.bandFilter = LBA_30_90 -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.nrBeams = 1 Observation.nrPolarisations = 2 Observation.nrSlotsInFrame = 61 diff --git a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-j2000 b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-j2000 index 04bcd58b0820fe17f36c3c8ff3322e28b2629621..64c15dd3b2cca2dc8b307e6fda85f60196d66b67 100644 --- a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-j2000 +++ b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-j2000 @@ -60,7 +60,7 @@ OLAP.IONProc._executable = IONProc OLAP.IONProc._hostname = bgfen1 OLAP.IONProc._nodes = [] OLAP.IONProc._startstopType = cmdline -OLAP.IONProc.integrationSteps = 2 +Cobalt.Correlator.nrBlocksPerIntegration = 2 OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP @@ -87,9 +87,9 @@ OLAP.Storage.subbandsPerPart = 240 OLAP.Storage.targetDirectory = /data3 OLAP.Storage.userName = lofarsys OLAP.StorageProc.subbandsPerMS = 1 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 Observation.nrBitsPerSample = 16 @@ -103,7 +103,7 @@ OLAP.outputCoherentStokes = true OLAP.outputCorrelatedData = false OLAP.outputFilteredData = false OLAP.outputIncoherentStokes = true -OLAP.realTime = true +Cobalt.realTime = true OLAP.storageNodeList = [120*0,120*1] OLAP.storageStationNames = [CS002HBA0,CS002HBA1,CS003HBA0,CS003HBA1,CS004HBA0,CS004HBA1,CS005HBA0,CS005HBA1,CS006HBA0,CS006HBA1,CS007HBA0,CS007HBA1] OLAP.subbandsPerPset = 4 @@ -226,8 +226,8 @@ Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrateChannels = fal Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrationSteps = 16 Observation.ObservationControl.OnlineControl.OLAP.Stokes.which = I Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass = true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation = true Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 Observation.ObservationControl.OnlineControl.OLAP.nrPencils = 1 @@ -239,7 +239,7 @@ Observation.ObservationControl.OnlineControl.OLAP.outputCoherentStokes = true Observation.ObservationControl.OnlineControl.OLAP.outputCorrelatedData = false Observation.ObservationControl.OnlineControl.OLAP.outputFilteredData = false Observation.ObservationControl.OnlineControl.OLAP.outputIncoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.realTime = true +Observation.ObservationControl.OnlineControl.Cobalt.realTime = true Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations Observation.ObservationControl.OnlineControl._hostname = CCU001 Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] @@ -303,7 +303,7 @@ Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [240*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.claimPeriod = 120 Observation.clockMode = <<Clock200 Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] @@ -669,18 +669,18 @@ PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.Station.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] diff --git a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-sun b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-sun index cec1563696fa016de206d047ae28d4642a4dc8cd..5c48c6a505176ab5fe9e2e6c52f45e73feed2a29 100644 --- a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-sun +++ b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.parset-sun @@ -60,7 +60,7 @@ OLAP.IONProc._executable = IONProc OLAP.IONProc._hostname = bgfen1 OLAP.IONProc._nodes = [] OLAP.IONProc._startstopType = cmdline -OLAP.IONProc.integrationSteps = 2 +Cobalt.Correlator.nrBlocksPerIntegration = 2 OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP @@ -87,9 +87,9 @@ OLAP.Storage.subbandsPerPart = 240 OLAP.Storage.targetDirectory = /data3 OLAP.Storage.userName = lofarsys OLAP.StorageProc.subbandsPerMS = 1 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 Observation.nrBitsPerSample = 16 @@ -103,7 +103,7 @@ OLAP.outputCoherentStokes = true OLAP.outputCorrelatedData = false OLAP.outputFilteredData = false OLAP.outputIncoherentStokes = true -OLAP.realTime = true +Cobalt.realTime = true OLAP.storageNodeList = [120*0,120*1] OLAP.storageStationNames = [CS002HBA0,CS002HBA1,CS003HBA0,CS003HBA1,CS004HBA0,CS004HBA1,CS005HBA0,CS005HBA1,CS006HBA0,CS006HBA1,CS007HBA0,CS007HBA1] OLAP.subbandsPerPset = 4 @@ -226,8 +226,8 @@ Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrateChannels = fal Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrationSteps = 16 Observation.ObservationControl.OnlineControl.OLAP.Stokes.which = I Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass = true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation = true Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 Observation.ObservationControl.OnlineControl.OLAP.nrPencils = 1 @@ -239,7 +239,7 @@ Observation.ObservationControl.OnlineControl.OLAP.outputCoherentStokes = true Observation.ObservationControl.OnlineControl.OLAP.outputCorrelatedData = false Observation.ObservationControl.OnlineControl.OLAP.outputFilteredData = false Observation.ObservationControl.OnlineControl.OLAP.outputIncoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.realTime = true +Observation.ObservationControl.OnlineControl.Cobalt.realTime = true Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations Observation.ObservationControl.OnlineControl._hostname = CCU001 Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] @@ -303,7 +303,7 @@ Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [240*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.claimPeriod = 120 Observation.clockMode = <<Clock200 Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] @@ -669,18 +669,18 @@ PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.Station.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] +PIC.Core.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] diff --git a/RTCP/Cobalt/OutputProc/test/tOutputThread.cc b/RTCP/Cobalt/OutputProc/test/tOutputThread.cc index 4dbdde358f4062cb2fd44811a30edf60e4fe316f..17908fe518f87fdd578227ee609f5c644eef7293 100644 --- a/RTCP/Cobalt/OutputProc/test/tOutputThread.cc +++ b/RTCP/Cobalt/OutputProc/test/tOutputThread.cc @@ -24,6 +24,7 @@ #include <CoInterface/Parset.h> #include <CoInterface/Exceptions.h> #include <OutputProc/MSWriterNull.h> +#include <Common/LofarLogger.h> #include <iostream> #include <UnitTest++.h> @@ -37,24 +38,23 @@ TEST(testCorrelatorOutputThreadThrowsStorageException) cout << "testCorrelatorOutputThreadThrowsStorageException" << endl; Parset par; par.add("Observation.startTime","2011-03-22 18:16:00"); - par.add("OLAP.CNProc.integrationSteps","256"); - par.add("OLAP.IONProc.integrationSteps", "4"); - par.add("OLAP.correctBandPass", "F"); + par.add("Cobalt.blockSize","256"); + par.add("Cobalt.Correlator.nrBlocksPerIntegration", "4"); + par.add("Cobalt.correctBandPass", "F"); par.add("Observation.nrBitsPerSample", "8"); - par.add("OLAP.CNProc.nrPPFTaps", "16"); par.add("Observation.VirtualInstrument.stationList", "[CS002]"); par.add("Observation.antennaSet", "HBA_DUAL"); par.add("Observation.nrBeams", "1"); par.add("Observation.Beam[0].subbandList", "[300..301]"); par.add("Observation.rspBoardList", "[0, 0]"); par.add("Observation.rspSlotList", "[0, 1]"); - par.add("OLAP.CNProc_CoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_CoherentStokes.which", "I"); - par.add("OLAP.CNProc_IncoherentStokes.which", "I"); - par.add("OLAP.delayCompensation", "F"); + par.add("Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.CoherentStokes.which", "I"); + par.add("Cobalt.BeamFormer.IncoherentStokes.which", "I"); + par.add("Cobalt.delayCompensation", "F"); par.add("Observation.nrPolarisations", "2"); - par.add("Observation.channelsPerSubband", "1"); + par.add("Cobalt.Correlator.nrChannelsPerSubband", "1"); par.add("Observation.sampleClock", "200"); par.add("Observation.DataProducts.Output_Correlated.enabled", "true"); par.add("Observation.DataProducts.Output_Correlated.filenames", "[2*L173014_SAP000_SB000_uv.MS]"); @@ -110,24 +110,23 @@ TEST(testCorrelatorOutputThreadRealtimeThrowsNoException) cout << "testCorrelatorOutputThreadRealtimeThrowsNoException" << endl; Parset par; par.add("Observation.startTime", "2011-03-22 18:16:00"); - par.add("OLAP.CNProc.integrationSteps", "256"); - par.add("OLAP.IONProc.integrationSteps", "4"); - par.add("OLAP.correctBandPass", "F"); + par.add("Cobalt.blockSize", "256"); + par.add("Cobalt.Correlator.nrBlocksPerIntegration", "4"); + par.add("Cobalt.correctBandPass", "F"); par.add("Observation.nrBitsPerSample", "8"); - par.add("OLAP.CNProc.nrPPFTaps", "16"); par.add("Observation.VirtualInstrument.stationList", "[CS002]"); par.add("Observation.antennaSet", "HBA_DUAL"); par.add("Observation.nrBeams", "1"); par.add("Observation.Beam[0].subbandList", "[300..301]"); par.add("Observation.rspBoardList", "[0, 0]"); par.add("Observation.rspSlotList", "[0, 1]"); - par.add("OLAP.CNProc_CoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_CoherentStokes.which", "I"); - par.add("OLAP.CNProc_IncoherentStokes.which", "I"); - par.add("OLAP.delayCompensation", "F"); + par.add("Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.CoherentStokes.which", "I"); + par.add("Cobalt.BeamFormer.IncoherentStokes.which", "I"); + par.add("Cobalt.delayCompensation", "F"); par.add("Observation.nrPolarisations", "2"); - par.add("Observation.channelsPerSubband", "1"); + par.add("Cobalt.Correlator.nrChannelsPerSubband", "1"); par.add("Observation.sampleClock", "200"); par.add("Observation.DataProducts.Output_Correlated.enabled", "true"); par.add("Observation.DataProducts.Output_Correlated.filenames", "[2*L173014_SAP000_SB000_uv.MS]"); @@ -160,24 +159,23 @@ TEST(testBeamformerOutputThreadThrowsStorageException) cout << "testCorrelatorOutputThreadThrowsStorageException" << endl; Parset par; par.add("Observation.startTime", "2011-03-22 18:16:00"); - par.add("OLAP.CNProc.integrationSteps", "256"); - par.add("OLAP.IONProc.integrationSteps", "4"); - par.add("OLAP.correctBandPass", "F"); + par.add("Cobalt.blockSize", "256"); + par.add("Cobalt.Correlator.nrBlocksPerIntegration", "4"); + par.add("Cobalt.correctBandPass", "F"); par.add("Observation.nrBitsPerSample", "8"); - par.add("OLAP.CNProc.nrPPFTaps", "16"); par.add("Observation.VirtualInstrument.stationList", "[CS002]"); par.add("Observation.antennaSet", "HBA_DUAL"); par.add("Observation.nrBeams", "1"); par.add("Observation.Beam[0].subbandList", "[300..301]"); par.add("Observation.rspBoardList", "[0, 0]"); par.add("Observation.rspSlotList", "[0, 1]"); - par.add("OLAP.CNProc_CoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_CoherentStokes.which", "I"); - par.add("OLAP.CNProc_IncoherentStokes.which", "I"); - par.add("OLAP.delayCompensation", "F"); + par.add("Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.CoherentStokes.which", "I"); + par.add("Cobalt.BeamFormer.IncoherentStokes.which", "I"); + par.add("Cobalt.delayCompensation", "F"); par.add("Observation.nrPolarisations", "2"); - par.add("Observation.channelsPerSubband", "1"); + par.add("Cobalt.Correlator.nrChannelsPerSubband", "1"); par.add("Observation.sampleClock", "200"); par.add("Observation.DataProducts.Output_Correlated.enabled", "true"); par.add("Observation.DataProducts.Output_Correlated.filenames", "[2*L173014_SAP000_SB000_uv.MS]"); @@ -235,28 +233,27 @@ TEST(testBeamformerOutputThreadRealtimeThrowsNoException) cout << "testCorrelatorOutputThreadRealtimeThrowsNoException" << endl; Parset par; par.add("Observation.startTime", "2011-03-22 18:16:00"); - par.add("OLAP.CNProc.integrationSteps", "256"); - par.add("OLAP.IONProc.integrationSteps", "4"); - par.add("OLAP.correctBandPass", "F"); + par.add("Cobalt.blockSize", "256"); + par.add("Cobalt.Correlator.nrBlocksPerIntegration", "4"); + par.add("Cobalt.correctBandPass", "F"); par.add("Observation.nrBitsPerSample", "8"); - par.add("OLAP.CNProc.nrPPFTaps", "16"); par.add("Observation.VirtualInstrument.stationList", "[CS002]"); par.add("Observation.antennaSet", "HBA_DUAL"); par.add("Observation.nrBeams", "1"); par.add("Observation.Beam[0].subbandList", "[300]"); par.add("Observation.Beam[0].nrTiedArrayBeams", "1"); - par.add("Observation.Beam[1].TiedArrayBeam[0].absoluteAngle1", "0"); - par.add("Observation.Beam[1].TiedArrayBeam[0].absoluteAngle2", "0"); + par.add("Observation.Beam[1].TiedArrayBeam[0].angle1", "0"); + par.add("Observation.Beam[1].TiedArrayBeam[0].angle2", "0"); par.add("Observation.Beam[1].TiedArrayBeam[0].coherent", "T"); par.add("Observation.rspBoardList", "[0, 0]"); par.add("Observation.rspSlotList", "[0, 1]"); - par.add("OLAP.CNProc_CoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor", "1"); - par.add("OLAP.CNProc_CoherentStokes.which", "I"); - par.add("OLAP.CNProc_IncoherentStokes.which", "I"); - par.add("OLAP.delayCompensation", "F"); + par.add("Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor", "1"); + par.add("Cobalt.BeamFormer.CoherentStokes.which", "I"); + par.add("Cobalt.BeamFormer.IncoherentStokes.which", "I"); + par.add("Cobalt.delayCompensation", "F"); par.add("Observation.nrPolarisations", "2"); - par.add("Observation.channelsPerSubband", "1"); + par.add("Cobalt.Correlator.nrChannelsPerSubband", "1"); par.add("Observation.sampleClock", "200"); par.add("Observation.DataProducts.Output_CoherentStokes.enabled", "true"); par.add("Observation.DataProducts.Output_CoherentStokes.filenames", "[tab1.raw]"); @@ -283,8 +280,8 @@ TEST(testBeamformerOutputThreadRealtimeThrowsNoException) int main() { + INIT_LOGGER("tOutputThread"); return UnitTest::RunAllTests() > 0; - return 0; } diff --git a/RTCP/Cobalt/OutputProc/test/tTBB_Writer-spectral.parset b/RTCP/Cobalt/OutputProc/test/tTBB_Writer-spectral.parset index 5a6b9b3d5fd4dcd8f6ff0e8fc8a450818e87cc5d..f066c4325bb4d5b9a07ad40463c28a88c963a0cb 100644 --- a/RTCP/Cobalt/OutputProc/test/tTBB_Writer-spectral.parset +++ b/RTCP/Cobalt/OutputProc/test/tTBB_Writer-spectral.parset @@ -38,25 +38,25 @@ OLAP.CNProc.phaseThreePsets = [0..63] OLAP.CNProc.phaseTwoPsets = [0..63] OLAP.CNProc.tabList = [] OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_IncoherentStokes.which = I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 244 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 64 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 244 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 64 +Cobalt.BeamFormer.IncoherentStokes.which = I OLAP.Correlator.integrationTime = 1 OLAP.DelayComp.nrCalcDelays = 16 OLAP.DelayComp.positionType = ITRF OLAP.IONProc.PLC_controlled = T -OLAP.IONProc.integrationSteps = 4 +Cobalt.Correlator.nrBlocksPerIntegration = 4 OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] OLAP.IncoherentStokesAreTransposed = True OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP OLAP.PPF = True -OLAP.PencilInfo.flysEye = false +Cobalt.BeamFormer.flysEye = false OLAP.PencilInfo.storageNodeList = [0,1] OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf @@ -67,10 +67,10 @@ OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa OLAP.Storage.targetDirectory = /data OLAP.Storage.userName = lofarsys OLAP.StorageProc.subbandsPerMS = 1 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 Observation.nrBitsPerSample = 16 @@ -78,7 +78,7 @@ OLAP.nrPsets = 64 OLAP.nrSecondsOfBuffer = 2.5 OLAP.nrSubbandsPerFrame = 61 OLAP.nrTimesInFrame = 16 -OLAP.realTime = true +Cobalt.realTime = true OLAP.storageNodeList = [122*0,122*1] OLAP.storageStationNames = [CS001LBA,CS002LBA,CS003LBA,CS004LBA,CS005LBA,CS006LBA,CS007LBA,CS011LBA,CS017LBA,CS021LBA,CS024LBA,CS026LBA,CS028LBA,CS030LBA,CS031LBA,CS032LBA,CS101LBA,CS103LBA,CS201LBA,CS301LBA,CS302LBA,CS401LBA,CS501LBA,RS106LBA,RS205LBA,RS208LBA,RS306LBA,RS307LBA,RS406LBA,RS503LBA,RS508LBA,RS509LBA] OLAP.tiedArrayStationNames = [] @@ -90,15 +90,15 @@ Observation.AnaBeam.maximizeDuration = false Observation.AnaBeam.rank = 1 Observation.AnaBeam.startTime = Observation.AnaBeam.target = -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 Observation.Beam[0].TiedArrayBeam[0].coherent = true Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 Observation.Beam[0].TiedArrayBeam[0].specificationType = manual Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 0.9293449206762021 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0.9525764650544495 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 0.9293449206762021 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0.9525764650544495 Observation.Beam[0].TiedArrayBeam[1].coherent = false Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 @@ -351,30 +351,30 @@ Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which = I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 244 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which = I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 244 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which = I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 1 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc.integrationSteps = 30 +Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration = 30 Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye = false Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels = false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels = false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass = true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation = true Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.realTime = true +Observation.ObservationControl.OnlineControl.Cobalt.realTime = true Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations Observation.ObservationControl.OnlineControl._hostname = CCU001 Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] @@ -451,7 +451,7 @@ Observation.antennaSet = LBA_INNER Observation.bandFilter = LBA_10_90 Observation.beamList = [244*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.claimPeriod = 50 Observation.clockMode = <<Clock200 Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] @@ -894,38 +894,38 @@ PIC.Core.SE607HBA.clockCorrectionTime = 0 PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] PIC.Core.SE607LBA.clockCorrectionTime = 0 PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] diff --git a/RTCP/Cobalt/OutputProc/test/tTBB_Writer-transient.parset b/RTCP/Cobalt/OutputProc/test/tTBB_Writer-transient.parset index 8c9efd20d93382e29f47dada494d32c2d78381f8..f79495fdb130d6d16d34d5179bab52d95d700a77 100644 --- a/RTCP/Cobalt/OutputProc/test/tTBB_Writer-transient.parset +++ b/RTCP/Cobalt/OutputProc/test/tTBB_Writer-transient.parset @@ -38,25 +38,25 @@ OLAP.CNProc.phaseThreePsets = [0..63] OLAP.CNProc.phaseTwoPsets = [0..63] OLAP.CNProc.tabList = [] OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_IncoherentStokes.which = I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 244 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 64 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 244 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 64 +Cobalt.BeamFormer.IncoherentStokes.which = I OLAP.Correlator.integrationTime = 1 OLAP.DelayComp.nrCalcDelays = 16 OLAP.DelayComp.positionType = ITRF OLAP.IONProc.PLC_controlled = T -OLAP.IONProc.integrationSteps = 4 +Cobalt.Correlator.nrBlocksPerIntegration = 4 OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] OLAP.IncoherentStokesAreTransposed = True OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP OLAP.PPF = True -OLAP.PencilInfo.flysEye = false +Cobalt.BeamFormer.flysEye = false OLAP.PencilInfo.storageNodeList = [0,1] OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf @@ -67,10 +67,10 @@ OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa OLAP.Storage.targetDirectory = /data OLAP.Storage.userName = lofarsys OLAP.StorageProc.subbandsPerMS = 1 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 OLAP.maxNetworkDelay = 0.25 Observation.nrBitsPerSample = 16 @@ -78,7 +78,7 @@ OLAP.nrPsets = 64 OLAP.nrSecondsOfBuffer = 2.5 OLAP.nrSubbandsPerFrame = 61 OLAP.nrTimesInFrame = 16 -OLAP.realTime = true +Cobalt.realTime = true OLAP.storageNodeList = [122*0,122*1] OLAP.storageStationNames = [CS001LBA,CS002LBA,CS003LBA,CS004LBA,CS005LBA,CS006LBA,CS007LBA,CS011LBA,CS017LBA,CS021LBA,CS024LBA,CS026LBA,CS028LBA,CS030LBA,CS031LBA,CS032LBA,CS101LBA,CS103LBA,CS201LBA,CS301LBA,CS302LBA,CS401LBA,CS501LBA,RS106LBA,RS205LBA,RS208LBA,RS306LBA,RS307LBA,RS406LBA,RS503LBA,RS508LBA,RS509LBA] OLAP.tiedArrayStationNames = [] @@ -90,15 +90,15 @@ Observation.AnaBeam.maximizeDuration = false Observation.AnaBeam.rank = 1 Observation.AnaBeam.startTime = Observation.AnaBeam.target = -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2 = 0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 Observation.Beam[0].TiedArrayBeam[0].coherent = true Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 Observation.Beam[0].TiedArrayBeam[0].specificationType = manual Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle1 = 0.9293449206762021 -Observation.Beam[0].TiedArrayBeam[1].absoluteAngle2 = 0.9525764650544495 +Observation.Beam[0].TiedArrayBeam[1].angle1 = 0.9293449206762021 +Observation.Beam[0].TiedArrayBeam[1].angle2 = 0.9525764650544495 Observation.Beam[0].TiedArrayBeam[1].coherent = false Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 @@ -351,30 +351,30 @@ Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which = I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 244 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which = I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 244 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which = I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 1 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc.integrationSteps = 30 +Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration = 30 Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye = false Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels = false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels = false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass = true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation = true Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.realTime = true +Observation.ObservationControl.OnlineControl.Cobalt.realTime = true Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations Observation.ObservationControl.OnlineControl._hostname = CCU001 Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] @@ -445,7 +445,7 @@ Observation.antennaSet = LBA_INNER Observation.bandFilter = LBA_10_90 Observation.beamList = [244*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.claimPeriod = 50 Observation.clockMode = <<Clock200 Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] @@ -888,38 +888,38 @@ PIC.Core.SE607HBA.clockCorrectionTime = 0 PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] PIC.Core.SE607LBA.clockCorrectionTime = 0 PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] +PIC.Core.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] diff --git a/RTCP/FCNP/CMakeLists.txt b/RTCP/FCNP/CMakeLists.txt deleted file mode 100644 index b17c365b054633523535f16d45de060b64bda236..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -lofar_package(FCNP 1.0 DEPENDS Common) - -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/FCNP/package.dox b/RTCP/FCNP/package.dox deleted file mode 100644 index ada7ebebcd4c1d3cae606728cb3da1ca4c526d21..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/package.dox +++ /dev/null @@ -1,4 +0,0 @@ -// \ingroup RTCP -// \defgroup FCNP FCNP -// -// ... description ... diff --git a/RTCP/FCNP/src/CMakeLists.txt b/RTCP/FCNP/src/CMakeLists.txt deleted file mode 100644 index 190984276a9ffa4ff8e2544a316c17f64be3d284..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -# Create symbolic link to include directory. -execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME}) - -# Add libraries -lofar_add_library(fcnp_cn Package__Version.cc fcnp_cn.cc) -lofar_add_library(fcnp_ion Package__Version.cc fcnp_ion.cc) - -# Add executable -lofar_add_bin_program(versionfcnp versionfcnp.cc) diff --git a/RTCP/FCNP/src/fcnp_cn.cc b/RTCP/FCNP/src/fcnp_cn.cc deleted file mode 100644 index 026419f22ed9f9f8a113f55aeaba8e096f367f97..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/fcnp_cn.cc +++ /dev/null @@ -1,548 +0,0 @@ -#include <lofar_config.h> - -#if defined HAVE_BGP_CN - -#include <Common/LofarLogger.h> - -#include <sys/types.h> -#include <sys/mman.h> -#include <fcntl.h> -#include <unistd.h> - -#include <cassert> -#include <iostream> - -#include <bpcore/bgp_collective_inlines.h> -#include <common/bgp_personality_inlines.h> -#include <spi/kernel_interface.h> -#include <spi/lockbox_interface.h> - -#include "fcnp_cn.h" -#include "protocol.h" - - -namespace FCNP_CN { - -static unsigned nextMutex = LOCKBOX_RESERVED_LOCKID; // TODO: deallocate mutexes - - -class Semaphore -{ - public: - Semaphore(unsigned value = 0) - { - if (LockBox_AllocateCounter(-- nextMutex, &level, 0, 4, 0) < 0) { - LOG_FATAL("Could not allocate lockbox"); - exit(1); - } - - LockBox_Write(level, value); - } - - ~Semaphore() - { - // TODO - } - - void up() - { - LockBox_FetchAndInc(level); - } - - void down() - { - while (LockBox_FetchAndDec(level) == 0) - ; - } - - bool tryDown() - { - return LockBox_FetchAndDec(level) != 0; - } - - private: - LockBox_Counter_t level; -}; - - - -static _BGP_Personality_t personality; -static LockBox_Mutex_t sendMutex, stateMutex; -static Semaphore shmEmpty(1); -static _BGP_TreeHwHdr requestHeader, dataHeader; -static unsigned myCore, myRankInPSet; -static int shmFD; - -static struct Shm { - RequestPacket reply; // keep 16-byte aligned - volatile unsigned minimumNumberOfFreeSendFIFOslots; - volatile unsigned minimumNumberOfFilledReceiveFIFOslots; - volatile bool recvFifoLocked, replyAvailable[4]; - volatile bool initialized; -} *shm; -void *unalignedShmPtr; - - -// Reading the tree status words seems to be expensive. These wrappers -// minimize the number of status word reads. Do not read/send packets -// without consulting these functions! - -static inline void waitForFreeSendSlot() -{ -#if 1 - _BGP_TreeFifoStatus stat; - - do - _bgp_TreeGetStatusVC0(&stat); - while (stat.InjPyldCount > (_BGP_TREE_STATUS_MAX_PKTS - 1) * 16); -#else - // only use this function while sendMutex locked! - unsigned slotsFree = shm->minimumNumberOfFreeSendFIFOslots; - - while (slotsFree == 0) { - _BGP_TreeFifoStatus stat; - - _bgp_TreeGetStatusVC0(&stat); - slotsFree = _BGP_TREE_STATUS_MAX_PKTS - std::max(stat.InjHdrCount, (stat.InjPyldCount + 15) / 16); - } - shm->minimumNumberOfFreeSendFIFOslots = slotsFree - 1; -#endif -} - - -static inline bool checkForIncomingPacket() -{ -#if 1 - _BGP_TreeFifoStatus stat; - - _bgp_TreeGetStatusVC0(&stat); - return stat.RecPyldCount >= 16; -#else - // only use this function while recvMutex locked! - unsigned slotsFilled = shm->minimumNumberOfFilledReceiveFIFOslots; - - if (slotsFilled == 0) { - _BGP_TreeFifoStatus stat; - - _bgp_TreeGetStatusVC0(&stat); - slotsFilled = std::min(stat.RecHdrCount, stat.RecPyldCount / 16); - - if (slotsFilled == 0) - return false; - } - - shm->minimumNumberOfFilledReceiveFIFOslots = slotsFilled - 1; - return true; -#endif -} - - -static inline void waitForIncomingPacket() -{ - // only use this function while recvMutex locked! - - while (!checkForIncomingPacket()) - ; -} - - -static void sendRequest(/*const*/ RequestPacket *request) -{ - LockBox_MutexLock(sendMutex); - waitForFreeSendSlot(); - _bgp_TreeRawSendPacketVC0(&requestHeader, request); - LockBox_MutexUnlock(sendMutex); -} - - -static void waitForReply() -{ -//std::clog << "before lock(stateMutex) A" << std::endl; - LockBox_MutexLock(stateMutex); -//std::clog << "passed lock(stateMutex) A, replyAvailable[" << myCore << "] = " << shm->replyAvailable[myCore] << ", recvFifoLocked = " << shm->recvFifoLocked << std::endl; - - while (!shm->replyAvailable[myCore]) { - if (!shm->recvFifoLocked) { - shm->recvFifoLocked = true; - - do { - LockBox_MutexUnlock(stateMutex); - -//std::clog << "before shmEmpty.down() B" << std::endl; - shmEmpty.down(); -//std::clog << "passed shmEmpty.down() B" << std::endl; - - do { - waitForIncomingPacket(); - - _BGP_TreeHwHdr replyHeader; - _bgp_TreeRawReceivePacketVC0(&replyHeader, &shm->reply); - - assert(replyHeader.PtpHdr.Irq); - assert(shm->reply.rank == personality.Network_Config.Rank); -if (shm->reply.type == RequestPacket::RESET) std::clog << "ignored reset ack" << std::endl; - } while (shm->reply.type == RequestPacket::RESET); // ignore - -//std::clog << "before lock(stateMutex) C, shm->core = " << shm->reply.core << ", shm->type = " << shm->reply.type << std::endl; - LockBox_MutexLock(stateMutex); -//std::clog << "passed lock(stateMutex) C" << std::endl; - shm->replyAvailable[shm->reply.core] = true; - } while (shm->reply.core != myCore && shm->reply.type == RequestPacket::ZERO_COPY_WRITE); - - if (shm->reply.core == myCore && shm->reply.type == RequestPacket::ZERO_COPY_WRITE) - shm->recvFifoLocked = false; - } else { - LockBox_MutexUnlock(stateMutex); - - for (uint64_t time = _bgp_GetTimeBase() + 1000; _bgp_GetTimeBase() < time;) - ; - - LockBox_MutexLock(stateMutex); - } - } - - assert(shm->reply.core == myCore); - shm->replyAvailable[myCore] = false; // reset for next request - LockBox_MutexUnlock(stateMutex); -//std::clog << "received reply" << std::endl; -} - - -static void receiveData(char *ptr) -{ - unsigned firstBytes = shm->reply.size % _BGP_TREE_PKT_MAX_BYTES; - memcpy(ptr, shm->reply.messageHead, firstBytes); - ptr += firstBytes; - char *end = ptr + (shm->reply.size & ~(_BGP_TREE_PKT_MAX_BYTES - 1)); - - shmEmpty.up(); - - // now receive the remaining data, which must be a multiple of the packet size - assert((end - ptr) % _BGP_TREE_PKT_MAX_BYTES == 0); - - while (ptr < end) { - _BGP_TreeHwHdr replyHeader; - - waitForIncomingPacket(); - _bgp_TreeRawReceivePacketVC0(&replyHeader, ptr); - - if (replyHeader.PtpHdr.Irq) { - if (reinterpret_cast<RequestPacket *>(ptr)->type == RequestPacket::RESET) { -std::clog << "ignored reset ack (2)" << std::endl; - continue; // ignore - } - -//std::clog << "before shmEmpty.down() D" << std::endl; - shmEmpty.down(); -//std::clog << "passed shmEmpty.down() D" << std::endl; - memcpy(&shm->reply, ptr, _BGP_TREE_PKT_MAX_BYTES); - - if (shm->reply.rank != personality.Network_Config.Rank) - std::clog << "BAD PACKET: type = " << shm->reply.type << ", rank = " << shm->reply.rank << ", core = " << shm->reply.core << ", rankInPSet = " << shm->reply.rankInPSet << ", size = " << shm->reply.size << "; my rank = " << personality.Network_Config.Rank << std::endl; - - assert(shm->reply.rank == personality.Network_Config.Rank); - assert(shm->reply.core != myCore); - assert(shm->reply.type == RequestPacket::ZERO_COPY_WRITE); // assured by ION - - LockBox_MutexLock(stateMutex); - shm->replyAvailable[shm->reply.core] = true; - LockBox_MutexUnlock(stateMutex); - } else { - ptr += _BGP_TREE_PKT_MAX_BYTES; - } - } - - LockBox_MutexLock(stateMutex); - shm->recvFifoLocked = false; - LockBox_MutexUnlock(stateMutex); -} - - -void IONtoCN_ZeroCopy(unsigned channel, void *ptr, size_t size) -{ - //std::cout << "IONtoCN_ZeroCopy(" << ptr << ", " << size << ")" << std::endl; - - assert(size % 16 == 0 && (size_t) ptr % 16 == 0); - assert(channel < MAX_CHANNELS); - - char *dst = static_cast<char *>(ptr); - - while (size > 0) { - RequestPacket request __attribute__ ((aligned(16))); - - request.type = RequestPacket::ZERO_COPY_READ; - request.rank = personality.Network_Config.Rank; - request.core = myCore; - request.rankInPSet = myRankInPSet; - request.channel = channel; - request.size = size; - - sendRequest(&request); - waitForReply(); - assert(shm->reply.type == RequestPacket::ZERO_COPY_READ); - - size_t ackdSize = shm->reply.size; // ION may ack fewer bytes than requested - //std::cout << "read: " << ackdSize << " bytes" << std::endl; - receiveData(dst); // may not read shm->reply after this call - size -= ackdSize; - dst += ackdSize; - } -} - - -static void sendData(const char *ptr, size_t size) -{ - assert(size % _BGP_TREE_PKT_MAX_BYTES == 0); - //LockBox_MutexUnlock(shmMutex); - shmEmpty.up(); - - for (const char *end = ptr + size; ptr < end;) { - // TODO: do not grab mutex every time - LockBox_MutexLock(sendMutex); - waitForFreeSendSlot(); - _bgp_TreeRawSendPacketVC0(&dataHeader, const_cast<char *>(ptr)); - ptr += _BGP_TREE_PKT_MAX_BYTES; - LockBox_MutexUnlock(sendMutex); - } -} - - -void CNtoION_ZeroCopy(unsigned channel, const void *ptr, size_t size) -{ - //std::cout << "CNtoION_ZeroCopy(" << ptr << ", " << size << ")" << std::endl; - - assert(size % 16 == 0 && (size_t) ptr % 16 == 0); - assert(channel < MAX_CHANNELS); - - const char *src = static_cast<const char *>(ptr); - - while (size > 0) { - RequestPacket request __attribute__ ((aligned(16))); - - request.type = RequestPacket::ZERO_COPY_WRITE; - request.rank = personality.Network_Config.Rank; - request.core = myCore; - request.rankInPSet = myRankInPSet; - request.channel = channel; - request.size = size; - - memcpy(request.messageHead, src, std::min(size, sizeof request.messageHead)); - sendRequest(&request); - waitForReply(); - assert(shm->reply.type == RequestPacket::ZERO_COPY_WRITE); - - size_t ackdSize = shm->reply.size; // ION may ack fewer bytes than requested - //std::cout << "write: " << ackdSize << " bytes" << std::endl; - - sendData(src + ackdSize % _BGP_TREE_PKT_MAX_BYTES, ackdSize & ~(_BGP_TREE_PKT_MAX_BYTES - 1)); - size -= ackdSize; - src += ackdSize; - } -} - - -static void getPersonality() -{ - if (Kernel_GetPersonality(&personality, sizeof personality) != 0) { - std::cerr << "could not get personality" << std::endl; - exit(1); - } -} - - -static void openShm() -{ - size_t shmSize = (sizeof *shm + 15) & ~15; - - if (Kernel_ProcessCount() > 1) { - if ((shmFD = shm_open("pkt", O_RDWR, 0600)) < 0) { - perror("shm_open"); - exit(1); - } - - if (ftruncate(shmFD, shmSize) < 0) { - perror("ftruncate shm"); - exit(1); - } - - if ((unalignedShmPtr = mmap(0, shmSize, PROT_READ | PROT_WRITE, MAP_SHARED, shmFD, 0)) == MAP_FAILED) { - perror("mmap shm"); - exit(1); - } - - } else { - unalignedShmPtr = new char[shmSize]; - } - - shm = reinterpret_cast<Shm *>((reinterpret_cast<size_t>(unalignedShmPtr) + 15 ) & ~15); - //shm->minimumNumberOfFreeSendFIFOslots = 0; // force reevaluation - //shm->minimumNumberOfFilledReceiveFIFOslots = 0; -} - -#if 0 -static void closeShm() -{ - if (Kernel_ProcessCount() > 1) { - if (munmap(shm, (sizeof *shm + 15) & ~15) < 0) { - perror("munmap shm"); - exit(1); - } - - close(shmFD); - - if (shm_unlink("pkt") < 0) { - perror("shm_unlink"); - exit(1); - } - } else { - delete [] static_cast<char *>(unalignedShmPtr); - } -} -#endif - -static void allocateMutexes() -{ - if (LockBox_AllocateMutex(-- nextMutex, &sendMutex, 0, 4, LOCKBOX_ORDERED_ALLOC) < 0 || - LockBox_AllocateMutex(-- nextMutex, &stateMutex, 0, 4, LOCKBOX_ORDERED_ALLOC) < 0) { - std::cerr << "Could not allocate lockbox" << std::endl; - exit(1); - } -} - - -static void initHeaders() -{ - requestHeader.PtpHdr.Class = 0; - requestHeader.PtpHdr.Ptp = 1; - requestHeader.PtpHdr.Irq = 1; - requestHeader.PtpHdr.PtpTarget = BGP_Personality_treeIONodeP2PAddr(&personality); - requestHeader.PtpHdr.CsumMode = _BGP_TREE_CSUM_NONE; - - dataHeader = requestHeader; - dataHeader.PtpHdr.Irq = 0; -} - - -static void getConfiguration() -{ - unsigned xPos = personality.Network_Config.Xcoord; - unsigned yPos = personality.Network_Config.Ycoord; - unsigned zPos = personality.Network_Config.Zcoord; - - unsigned xPsetSize, yPsetSize, zPsetSize; - unsigned psetSize = personality.Network_Config.PSetSize; - - switch (psetSize) { - case 16 : xPsetSize = 4, yPsetSize = 2, zPsetSize = 2; - break; - - case 32 : xPsetSize = 4, yPsetSize = 4, zPsetSize = 2; - break; - - case 64 : xPsetSize = 4, yPsetSize = 4, zPsetSize = 4; - break; - - case 128 : xPsetSize = 4, yPsetSize = 4, zPsetSize = 8; - break; - - case 256 : xPsetSize = 8, yPsetSize = 4, zPsetSize = 8; - break; - - case 512 : xPsetSize = 8, yPsetSize = 8, zPsetSize = 8; - break; - - default : std::cerr << "FCNP: cannot determine PSet dimensions" << std::endl; - exit(1); - } - - unsigned xPsetPos = xPos % xPsetSize; - unsigned yPsetPos = yPos % yPsetSize; - unsigned zPsetPos = zPos % zPsetSize; - - unsigned pos = ((zPsetPos * yPsetSize + yPsetPos) * xPsetSize) + xPsetPos; - - myCore = Kernel_PhysicalProcessorID(); - myRankInPSet = psetSize * myCore + pos; -} - - -static void drainFIFO() -{ - // check if previous run crashed halfway sending a message - - _BGP_TreeFifoStatus stat; - - _bgp_TreeGetStatusVC0(&stat); - - if (stat.RecPyldCount % 16 != 0 || stat.InjPyldCount % 16 != 0) { - // TODO: recover from this - std::cerr << "previous run crashed while sending or receiving a message -- please reboot partition" << std::endl; - exit(1); - } - - // drain lingering packets from previous jobs - - LockBox_MutexLock(stateMutex); - - if (!shm->initialized) { - shm->initialized = true; // only one core needs to drain the FIFO - - _BGP_TreeHwHdr header; - uint64_t time = _bgp_GetTimeBase() + 850000000; - unsigned dropped = 0; - - while (_bgp_GetTimeBase() < time) - if (checkForIncomingPacket()) { - _bgp_TreeRawReceiveHeader(0, &header); - _bgp_TreeRawReceivePacketNoHdrNoStore(0); // drop everything - ++ dropped; - } - - if (dropped > 0) - std::clog << "dropped " << dropped << " lingering packets from previous job" << std::endl; - - // now send RESET request - RequestPacket request __attribute__ ((aligned(16))); - - request.type = RequestPacket::RESET; - request.rank = personality.Network_Config.Rank; - request.rankInPSet = myRankInPSet; - - do { - sendRequest(&request); // may even block FIFO; ION will eventually drain it - usleep(250000); - } while (!checkForIncomingPacket()); - - // wait for RESET reply - _bgp_TreeRawReceivePacketVC0(&header, &request); // reuse space for reply - - assert(header.PtpHdr.Irq); - assert(request.type == RequestPacket::RESET); - } - - LockBox_MutexUnlock(stateMutex); -} - - -void init() -{ - getPersonality(); - openShm(); - getConfiguration(); - initHeaders(); - allocateMutexes(); - drainFIFO(); - -#if 0 - //std::cout << "RankInPSet = " << personality.Network_Config.RankInPSet; - std::cout << "RankInPSet = " << myRankInPSet; - std::cout << ", PSetNum = " << personality.Network_Config.PSetNum; - std::cout << ", Rank = " << personality.Network_Config.Rank; - std::cout << ", Kernel_PhysicalProcessorID = " << Kernel_PhysicalProcessorID() << std::endl; - exit(0); -#endif -} - -} // namespace FCNP_CN - -#endif // defined HAVE_BGP_CN diff --git a/RTCP/FCNP/src/fcnp_cn.h b/RTCP/FCNP/src/fcnp_cn.h deleted file mode 100644 index 0a3bb7f59b0a49776fa1501f2b7c994aacfab1b0..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/fcnp_cn.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef FCNP_CN_H -#define FCNP_CN_H - -#include <cstddef> -#include <vector> - - -namespace FCNP_CN -{ - void init(); - - // ptr and size must be a multiple of 16! - void CNtoION_ZeroCopy(unsigned channel, const void *ptr, size_t size); - void IONtoCN_ZeroCopy(unsigned channel, void *ptr, size_t size); -} - -#endif diff --git a/RTCP/FCNP/src/fcnp_ion.cc b/RTCP/FCNP/src/fcnp_ion.cc deleted file mode 100644 index 16ebe9bcd4ebea92a9b568199934650c8e495bca..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/fcnp_ion.cc +++ /dev/null @@ -1,693 +0,0 @@ -#include <lofar_config.h> - -#if defined HAVE_BGP_ION - -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Mutex.h> -#include <Common/LofarLogger.h> - -#include <fcntl.h> -#include <sys/file.h> -#include <sys/mman.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <sched.h> - -#include <bpcore/bgp_collective_inlines.h> -#include <bpcore/bgp_atomic_ops.h> -#include <bpcore/ppc450_inlines.h> - -#include <cassert> -#include <cstddef> -#include <cstdlib> -#include <iostream> -#include <vector> - -#include <pthread.h> -#include <signal.h> - -#include "fcnp_ion.h" -#include "protocol.h" - -#define USE_SPIN_LOCKS -#undef USE_TIMER - - -namespace FCNP_ION { - -using LOFAR::Semaphore; -using LOFAR::Mutex; - - -class Handshake { - public: - struct CnRequest { - RequestPacket packet __attribute__ ((aligned(16))); - Semaphore slotFilled; - - CnRequest() : slotFilled(0) {} - } cnRequest; - - struct IonRequest { - size_t size; - char *ptr; - -#if 0 - pthread_mutex_t mutex; - - IonRequest() - { - pthread_mutex_init(&mutex, 0); - } - - ~IonRequest() - { - pthread_mutex_destroy(&mutex); - } -#endif - } ionRequest; - - Semaphore writeFinished; - - Handshake() : writeFinished(0) {} -}; - -static Handshake handshakes[MAX_CORES][MAX_CHANNELS][2] __attribute__ ((aligned(16))); // FIXME: variable size -static bool useInterrupts; -static bool initialized[256]; // FIXME -static std::vector<Handshake *> scheduledWriteRequests; -static uint32_t vc0; -static int fd; - -#if defined USE_SPIN_LOCKS -static _BGP_Atomic sendMutex = {0}; -#else -static Mutex sendMutex; -#endif - -static Mutex scheduledRequestsLock; -static Mutex recvMutex; -static volatile bool stop, stopped; - -static _BGP_Atomic nrMatchedWriteRequest = _BGP_ATOMIC_INIT(0); - - -static void setAffinity() -{ - cpu_set_t cpu_set; - - CPU_ZERO(&cpu_set); - - for (unsigned cpu = 1; cpu <= 3; cpu ++) - CPU_SET(cpu, &cpu_set); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) { - std::cerr << "WARNING: sched_setaffinity failed" << std::endl; - perror("sched_setaffinity"); - } -} - - -static void raisePriority() -{ - struct sched_param sched_param; - - sched_param.sched_priority = sched_get_priority_max(SCHED_RR); - - if (pthread_setschedparam(pthread_self(), SCHED_RR, &sched_param) < 0) - perror("pthread_setschedparam"); -} - - -// Reading the tree status words seems to be expensive. These wrappers -// minimize the number of status word reads. Do not read/send packets -// without consulting these functions! - -static inline void waitForFreeSendSlot() -{ -#if 1 - _BGP_TreeFifoStatus stat; - - do - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - while (stat.InjPyldCount > (_BGP_TREE_STATUS_MAX_PKTS - 1) * 16); -#else - // only use this function while sendMutex locked! - - static unsigned minimumNumberOfFreeSendFIFOslots; - - while (minimumNumberOfFreeSendFIFOslots == 0) { - _BGP_TreeFifoStatus stat; - - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - minimumNumberOfFreeSendFIFOslots = _BGP_TREE_STATUS_MAX_PKTS - std::max(stat.InjHdrCount, (stat.InjPyldCount + 15) / 16); - } - - -- minimumNumberOfFreeSendFIFOslots; -#endif -} - - -#if 0 -static unsigned minimumNumberOfFilledReceiveFIFOslots; -#endif - - -static inline void waitForIncomingPacket() -{ -#if 1 - _BGP_TreeFifoStatus stat; - - do - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - while (stat.RecPyldCount < 16); -#else - while (minimumNumberOfFilledReceiveFIFOslots == 0) { - _BGP_TreeFifoStatus stat; - - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - minimumNumberOfFilledReceiveFIFOslots = std::min(stat.RecHdrCount, stat.RecPyldCount / 16); - } - - -- minimumNumberOfFilledReceiveFIFOslots; -#endif -} - - -static inline bool checkForIncomingPacket() -{ -#if 1 - _BGP_TreeFifoStatus stat; - - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - return stat.RecPyldCount >= 16; -#else - if (minimumNumberOfFilledReceiveFIFOslots == 0) { - _BGP_TreeFifoStatus stat; - - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - minimumNumberOfFilledReceiveFIFOslots = std::min(stat.RecHdrCount, stat.RecPyldCount / 16); - - if (minimumNumberOfFilledReceiveFIFOslots == 0) - return false; - } - - -- minimumNumberOfFilledReceiveFIFOslots; - return true; -#endif -} - - -inline static void copyPacket(RequestPacket *dst, const RequestPacket *src) -{ - unsigned sixteen; - - asm volatile ( - "lfpdx 0,0,%1;" - "lfpdux 1,%1,%2;" - "lfpdux 2,%1,%2;" - "lfpdux 3,%1,%2;" - "lfpdux 4,%1,%2;" - "lfpdux 5,%1,%2;" - "stfpdx 0,0,%0;" - "stfpdux 1,%0,%2;" - "stfpdux 2,%0,%2;" - "lfpdux 6,%1,%2;" - "lfpdux 7,%1,%2;" - "lfpdux 0,%1,%2;" - "stfpdux 3,%0,%2;" - "stfpdux 4,%0,%2;" - "stfpdux 5,%0,%2;" - "lfpdux 1,%1,%2;" - "lfpdux 2,%1,%2;" - "lfpdux 3,%1,%2;" - "stfpdux 6,%0,%2;" - "stfpdux 7,%0,%2;" - "stfpdux 0,%0,%2;" - "lfpdux 4,%1,%2;" - "lfpdux 5,%1,%2;" - "lfpdux 6,%1,%2;" - "stfpdux 1,%0,%2;" - "stfpdux 2,%0,%2;" - "stfpdux 3,%0,%2;" - "lfpdux 7,%1,%2;" - "stfpdux 4,%0,%2;" - "stfpdux 5,%0,%2;" - "stfpdux 6,%0,%2;" - "stfpdux 7,%0,%2;" - : "=b" (dst), "=b" (src), "=r" (sixteen) - : "0" (dst), "1" (src), "2" (16) - : "fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7", "memory" - ); -} - - -inline static void handshakeComplete(Handshake *handshake) -{ - scheduledRequestsLock.lock(); - scheduledWriteRequests.push_back(handshake); - scheduledRequestsLock.unlock(); -} - - -static inline void lockSendFIFO() -{ -#if defined USE_SPIN_LOCKS - while (!_bgp_test_and_set(&sendMutex, 1)) - ; -#else - sendMutex.lock(); -#endif -} - - -static inline void unlockSendFIFO() -{ -#if defined USE_SPIN_LOCKS - _bgp_msync(); - sendMutex.atom = 0; -#else - sendMutex.unlock(); -#endif -} - - -static inline void sendPacketNoLocking(_BGP_TreePtpHdr *header, const void *ptr) -{ - waitForFreeSendSlot(); - _bgp_vcX_pkt_inject(&header->word, const_cast<void *>(ptr), vc0); -} - - -static inline void sendPacket(_BGP_TreePtpHdr *header, const void *ptr) -{ - lockSendFIFO(); - sendPacketNoLocking(header, ptr); - unlockSendFIFO(); -} - - -// Grabbing the sendMutex for each packet is too expensive on the ION. -// Provide a function that grabs one lock for 16 packets. - -static inline void send16Packets(_BGP_TreePtpHdr *header, void *ptr) -{ - lockSendFIFO(); - - for (char *p = (char *) ptr, *end = p + 16 * _BGP_TREE_PKT_MAX_BYTES; p < end; p += _BGP_TREE_PKT_MAX_BYTES) { - waitForFreeSendSlot(); - _bgp_vcX_pkt_inject(&header->word, p, vc0); - } - - unlockSendFIFO(); -} - - -static void sendAck(const RequestPacket *ack) -{ - _BGP_TreePtpHdr header; - -#if 0 - header.Class = 0; - header.Ptp = 1; - header.Irq = 1; - header.PtpTarget = ack->rank; - header.CsumMode = _BGP_TREE_CSUM_NONE; -#else - header.word = (1 << 27) | (1 << 26) | (ack->rank << 2); -#endif - - sendPacket(&header, ack); -} - - -static void handleRequest(const RequestPacket *request) -{ - Handshake::CnRequest *cnRequest = &handshakes[request->rankInPSet][request->channel][request->type].cnRequest; - - //std::cout << "handleRequest: rank = " << request->rank << ", core = " << request->core << ", rankInPSet = " << request->rankInPSet << ", type = " << request->type << ", size = " << request->size << std::endl; - - if (request->type == RequestPacket::RESET) { - if (!initialized[request->rankInPSet]) { - initialized[request->rankInPSet] = true; - sendAck(request); - } - } else { - copyPacket(&cnRequest->packet, request); // TODO: avoid "large" memcpy - cnRequest->slotFilled.up(); - } -} - - -static size_t handleReadRequest(RequestPacket *request, const char *ptr, size_t requestedSize) -{ - assert(requestedSize % 16 == 0 && request->size % 16 == 0); - -#if defined USE_TIMER - unsigned long long start_time = _bgp_GetTimeBase(); -#endif - - size_t negotiatedSize = std::min(request->size, requestedSize); - - request->size = negotiatedSize; - memcpy(request->messageHead, ptr, negotiatedSize % _BGP_TREE_PKT_MAX_BYTES); - - const char *end = ptr + negotiatedSize; - ptr += negotiatedSize % _BGP_TREE_PKT_MAX_BYTES; - - sendAck(request); - - // now send the remaining data, which must be a multiple of the packet size - - _BGP_TreePtpHdr header; - -#if 0 - header.Class = 0; - header.Ptp = 1; - header.Irq = 0; - header.PtpTarget = request->rank; - header.CsumMode = _BGP_TREE_CSUM_NONE; -#else - header.word = (1 << 27) | (request->rank << 2); -#endif - - for (; ptr < end - 15 * _BGP_TREE_PKT_MAX_BYTES; ptr += 16 * _BGP_TREE_PKT_MAX_BYTES) - send16Packets(&header, (void *) ptr); - - lockSendFIFO(); - - for (; ptr < end; ptr += _BGP_TREE_PKT_MAX_BYTES) - sendPacketNoLocking(&header, (void *) ptr); - - unlockSendFIFO(); - -#if defined USE_TIMER - unsigned long long stop_time = _bgp_GetTimeBase(); - std::cout << "read " << negotiatedSize << " bytes to " << request->rankInPSet << " @ " << (8 * negotiatedSize / ((stop_time - start_time) / 850e6) / 1e9) << " Gib/s" << std::endl; -#endif - - return negotiatedSize; -} - - -static size_t handleWriteRequest(RequestPacket *request, char *ptr, size_t requestedSize) -{ - assert(requestedSize % 16 == 0 && request->size % 16 == 0); - -#if defined USE_TIMER - unsigned long long start_time = _bgp_GetTimeBase(); -#endif - - size_t negotiatedSize = std::min(request->size, requestedSize); - - request->size = negotiatedSize; - memcpy(ptr, request->messageHead, negotiatedSize % _BGP_TREE_PKT_MAX_BYTES); - - const char *end = ptr + negotiatedSize; - ptr += negotiatedSize % _BGP_TREE_PKT_MAX_BYTES; - - sendAck(request); - - // now receive the remaining data, which must be a multiple of the packet size - - while (ptr < end) { - _BGP_TreePtpHdr header; - - waitForIncomingPacket(); - _bgp_vcX_pkt_receive(&header.word, ptr, vc0); - - if (header.Irq) - handleRequest(reinterpret_cast<RequestPacket *>(ptr)); - else - ptr += _BGP_TREE_PKT_MAX_BYTES; - } - -#if defined USE_TIMER - unsigned long long stop_time = _bgp_GetTimeBase(); - std::cout << "write " << negotiatedSize << " bytes from " << request->rankInPSet << " @ " << (8 * negotiatedSize / ((stop_time - start_time) / 850e6) / 1e9) << " Gib/s" << std::endl; -#endif - - return negotiatedSize; -} - - -static void *pollThread(void *) -{ - setAffinity(); - raisePriority(); - - _BGP_TreePtpHdr header; - _BGP_TreeFifoStatus stat; - RequestPacket request __attribute__((aligned(16))); - unsigned nrInterrupts = 0; - - while (!stop) { - if (useInterrupts) { - unsigned long long maxWaitTime = _bgp_GetTimeBase() + 50 * 850; // 50 us - - do - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - while (stat.RecHdrCount == 0 && _bgp_GetTimeBase() < maxWaitTime); - - if (stat.RecHdrCount == 0) { - int word; - - read(fd, &word, sizeof word); // wait for Irq packet - ++ nrInterrupts; - } - } - - if (_BGP_ATOMIC_READ((&nrMatchedWriteRequest)) == 0) { - recvMutex.lock(); - - if (checkForIncomingPacket()) { - _bgp_vcX_pkt_receive(&header.word, &request, vc0); - recvMutex.unlock(); - - assert(header.Irq); - handleRequest(&request); - } else { - recvMutex.unlock(); - } - } - } - - if (useInterrupts) { - LOG_DEBUG_STR( "FCNP: Received " << nrInterrupts << " vc0 interrupts" ); - stopped = true; - } - - return 0; -} - - -void IONtoCN_ZeroCopy(unsigned rankInPSet, unsigned channel, const void *ptr, size_t size) -{ - assert(size % 16 == 0 && (size_t) ptr % 16 == 0); - assert(channel < MAX_CHANNELS); - assert(rankInPSet < MAX_CORES); - - Handshake *handshake = &handshakes[rankInPSet][channel][RequestPacket::ZERO_COPY_READ]; - //pthread_mutex_lock(&handshake->ionRequest.mutex); - - while (size > 0) { - handshake->cnRequest.slotFilled.down(); - - // handle all read requests sequentially (and definitely those from multiple - // cores from the same node!) - static Mutex streamingSendMutex; - - streamingSendMutex.lock(); - size_t negotiatedSize = handleReadRequest(&handshake->cnRequest.packet, static_cast<const char *>(ptr), size); - streamingSendMutex.unlock(); - - size -= negotiatedSize; - ptr = (const void *) ((const char *) ptr + negotiatedSize); - } - - //pthread_mutex_unlock(&handshake->ionRequest.mutex); -} - - -void CNtoION_ZeroCopy(unsigned rankInPSet, unsigned channel, void *ptr, size_t size) -{ - assert(size % 16 == 0 && (size_t) ptr % 16 == 0); - assert(channel < MAX_CHANNELS); - assert(rankInPSet < MAX_CORES); - - Handshake *handshake = &handshakes[rankInPSet][channel][RequestPacket::ZERO_COPY_WRITE]; - //pthread_mutex_lock(&handshake->ionRequest.mutex); - - while (size > 0) { - handshake->ionRequest.size = size; - handshake->ionRequest.ptr = static_cast<char *>(ptr); - - handshake->cnRequest.slotFilled.down(); - - _bgp_fetch_and_add(&nrMatchedWriteRequest, 1); - recvMutex.lock(); - size_t negotiatedSize = handleWriteRequest(&handshake->cnRequest.packet, handshake->ionRequest.ptr, handshake->ionRequest.size); - recvMutex.unlock(); - _bgp_fetch_and_add(&nrMatchedWriteRequest, -1); - - size -= negotiatedSize; - ptr = (void *) ((char *) ptr + negotiatedSize); - } - - //pthread_mutex_unlock(&handshake->ionRequest.mutex); -} - - -#if 0 -void writeUnaligned(unsigned rankInPSet, const void *ptr, size_t size) -{ - const char *src = static_cast<const char *>(ptr); - - while (size > 0) { - size_t chunkSize = size % sizeof buffer; - - memcpy(buffer, src, chunkSize); - src += chunkSize; - size -= chunkSize; - - CNtoION_ZeroCopy(rankInPSet, buffer, chunkSize); - } -} -#endif - - -static void openVC0() -{ - fd = open("/dev/tree0", O_RDWR); - - if (fd < 0) { - perror("could not open /dev/tree0"); - exit(1); - } - - if (flock(fd, LOCK_EX | LOCK_NB) < 0) { - perror("flock on /dev/tree0"); - exit(1); - } - - vc0 = (uint32_t) mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - - if (vc0 == (uint32_t) MAP_FAILED) { - perror("could not mmap /dev/tree0"); - exit(1); - } -} - - -static void drainFIFO() -{ - // check if previous run crashed halfway receiving a message - - _BGP_TreeFifoStatus stat; - - // Try to figure out how many quads are lingering around. This cannot be - // done 100% reliable (incoming packets do not increase RecHdrCount and - // RecPyldCount atomically), so accept the answer if it is 16 times the same. - - int quadsToRead, previousQuadsToRead = -1; - - for (unsigned consistentAnswers = 0; consistentAnswers < 16;) { - stat.status_word = _bgp_In32((uint32_t *) (vc0 + _BGP_TRx_Sx)); - quadsToRead = stat.RecPyldCount - 16 * stat.RecHdrCount; - - if (quadsToRead == previousQuadsToRead) { - ++ consistentAnswers; - } else { - previousQuadsToRead = quadsToRead; - consistentAnswers = 0; - } - } - - if (quadsToRead > 0) - LOG_DEBUG_STR( "FCNP: Dropped " << quadsToRead << " lingering quadwords from packets of a previous job" ); - - while (-- quadsToRead >= 0) - _bgp_QuadLoad(vc0 + _BGP_TRx_Sx, 0); - - // check if previous run crashed halfway sending a message - - if (stat.InjPyldCount % 16 != 0) { - // TODO: recover from this - std::cerr << "previous run crashed while sending a message -- please reboot partition" << std::endl; - exit(1); - } - - // drain lingering packets from previous jobs - - uint64_t time = _bgp_GetTimeBase() + 850000000; - unsigned dropped = 0; - - while (_bgp_GetTimeBase() < time) - if (checkForIncomingPacket()) { - _BGP_TreePtpHdr header; - _bgp_vcX_hdr_receive(&header.word, vc0); - _bgp_vcX_pkt_receiveNoHdrNoStore(0, vc0); // drop everything - ++ dropped; - } - - if (dropped > 0) - LOG_DEBUG_STR( "FCNP: Dropped " << dropped << " lingering packets from previous job" ); -} - - -static pthread_t thread; - - -static void sigHandler(int) -{ -} - - -void init(bool enableInterrupts) -{ - if (enableInterrupts) { - struct sigaction sa; - - sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - sa.sa_handler = sigHandler; - - if (sigaction(SIGUSR1, &sa, 0) != 0) - perror("sigaction"); - } - - useInterrupts = enableInterrupts; - - openVC0(); - drainFIFO(); - - if (pthread_create(&thread, 0, pollThread, 0) != 0) { - perror("pthread_create"); - exit(1); - } -} - - -void end() -{ - stop = true; - - if (useInterrupts) - while (!stopped) { - if (pthread_kill(thread, SIGUSR1) != 0) - perror("pthread_kill"); - - usleep(25000); - } - - if (pthread_join(thread, 0) != 0) { - perror("pthread_join"); - exit(1); - } - - close(vc0); -} - -} // namespace FCNP_ION - -#endif // defined HAVE_BGP_ION diff --git a/RTCP/FCNP/src/fcnp_ion.h b/RTCP/FCNP/src/fcnp_ion.h deleted file mode 100644 index c1e5eea880385bbd6f949d33c72407720362f4b0..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/fcnp_ion.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef FCNP_ION_H -#define FCNP_ION_H - -#include <cstddef> - - -namespace FCNP_ION -{ - // rankInPSet is the logical rank; not the incomprehensible BG/P number! - // ptr and size must be a multiple of 16! - - void init(bool enableInterrupts); - void end(); - - void IONtoCN_ZeroCopy(unsigned rankInPSet, unsigned channel, const void *ptr, size_t size); - void CNtoION_ZeroCopy(unsigned rankInPSet, unsigned channel, void *ptr, size_t size); -} - -#endif diff --git a/RTCP/FCNP/src/protocol.h b/RTCP/FCNP/src/protocol.h deleted file mode 100644 index 04df07c09cb48cb056034130d13aa4dc59a14a58..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/src/protocol.h +++ /dev/null @@ -1,22 +0,0 @@ -#if !defined FORMAT_H -#define FORMAT_H - -#define MAX_CORES 64 -#define MAX_CHANNELS 8 - - -struct RequestPacket { - enum { - ZERO_COPY_READ, - ZERO_COPY_WRITE, - RESET - } type; - unsigned short rank; - unsigned short core; - unsigned short rankInPSet; // logical; not the incomprehensible BG/P number! - unsigned short channel; - unsigned size; - char messageHead[240]; -}; - -#endif diff --git a/RTCP/FCNP/test/CMakeLists.txt b/RTCP/FCNP/test/CMakeLists.txt deleted file mode 100644 index 907441a4bf631813cd9ee411e0b1c89b68ae7b72..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/test/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -include(LofarCTest) - -lofar_add_test(tBandwidth_cn tBandwidth_cn.cc) -lofar_add_test(tBandwidth_ion tBandwidth_ion.cc) diff --git a/RTCP/FCNP/test/tBandwidth_cn.cc b/RTCP/FCNP/test/tBandwidth_cn.cc deleted file mode 100644 index cb760bebf51bd8385d8780eda760b3181e69d285..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/test/tBandwidth_cn.cc +++ /dev/null @@ -1,92 +0,0 @@ -#include <lofar_config.h> - -#if defined HAVE_BGP_CN - -#include <mpi.h> -#include <cstring> -#include <iostream> - -#include <bpcore/ppc450_inlines.h> - -#include <FCNP/fcnp_cn.h> - - -static char largeBuffer[128 * 1024 * 1024] __attribute__((aligned(16))); - - -int main(int argc, char **argv) -{ - int rank; - - MPI_Init(&argc, &argv); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - - FCNP_CN::init(); - - if (rank <= 1) { - memset(largeBuffer, 0, sizeof largeBuffer); - - if (rank == 0) - std::cout << "bidirectional" << std::endl; - - for (unsigned i = 0; i < 17; i ++) - if (rank == 0) - FCNP_CN::IONtoCN_ZeroCopy(0, largeBuffer, 128 * 1024 * 1024); - else - FCNP_CN::CNtoION_ZeroCopy(0, largeBuffer, 128 * 1024 * 1024); - } - - if (rank == 0) { - unsigned long long times[28]; - - std::cout << "CN -> ION (Mb/s)" << std::endl; - - for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) - for (unsigned i = 0; i < 16; i ++) - FCNP_CN::IONtoCN_ZeroCopy(0, largeBuffer, size); - - for (unsigned logsize = 4; logsize <= 27; logsize ++) { - size_t size = 1 << logsize; - FCNP_CN::CNtoION_ZeroCopy(0, largeBuffer, size); - - unsigned long long time = 0; - - for (unsigned i = 1; i < 16; i ++) { - //usleep(10000); // wait until ION is ready to receive - - time -= _bgp_GetTimeBase(); - FCNP_CN::CNtoION_ZeroCopy(0, largeBuffer, size); - time += _bgp_GetTimeBase(); - } - - times[logsize] = time; - } - - for (unsigned logsize = 4; logsize <= 27; logsize ++) { - size_t size = 1 << logsize; - std::cout << size << ' ' << (15 * 8.0 * size / (times[logsize] / 850.0)) << std::endl; - } - - double smallMsg = times[4] / 850e6 / 15; - double largeMsg = times[27] / 850e6 / 15; - - double bandwidth = (128 * 1024 * 1024 - 16) / (largeMsg - smallMsg); - double latency = smallMsg - 16 / bandwidth; - - std::cout << "latency = " << latency * 1e6 << " us, bandwidth = " << bandwidth / 1e9 << " GB/s" << std::endl; - abort(); // force exit - } - - MPI_Finalize(); - - return 0; -} - -#else - -int main() -{ - return 0; -} - -#endif // defined HAVE_BGP_CN diff --git a/RTCP/FCNP/test/tBandwidth_ion.cc b/RTCP/FCNP/test/tBandwidth_ion.cc deleted file mode 100644 index a866654890b2cb64a9ea567a473071982a19bafa..0000000000000000000000000000000000000000 --- a/RTCP/FCNP/test/tBandwidth_ion.cc +++ /dev/null @@ -1,137 +0,0 @@ -#include <lofar_config.h> - -#if defined HAVE_BGP_ION - -#include <iostream> -#include <pthread.h> -#include <sched.h> - -#include <bpcore/ppc450_inlines.h> - -#include <FCNP/fcnp_ion.h> - - -static char largeBuffer[128 * 1024 * 1024] __attribute__((aligned(16))); - - -static void setAffinity() -{ - cpu_set_t cpu_set; - - CPU_ZERO(&cpu_set); - - for (unsigned core = 1; core < 4; core ++) - CPU_SET(core, &cpu_set); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) { - std::cerr << "WARNING: sched_setaffinity failed" << std::endl; - perror("sched_setaffinity"); - } -} - - -void *bidirectional(void *arg) -{ - setAffinity(); - - if (arg == 0) - FCNP_ION::IONtoCN_ZeroCopy(0, 0, largeBuffer, 128 * 1024 * 1024); - else - FCNP_ION::CNtoION_ZeroCopy(1, 0, largeBuffer, 128 * 1024 * 1024); - - unsigned long long start_time = _bgp_GetTimeBase(); - - for (unsigned i = 0; i < 16; i ++) - if (arg == 0) - FCNP_ION::IONtoCN_ZeroCopy(0, 0, largeBuffer, 128 * 1024 * 1024); - else - FCNP_ION::CNtoION_ZeroCopy(1, 0, largeBuffer, 128 * 1024 * 1024); - - unsigned long long stop_time = _bgp_GetTimeBase(); - double time = (stop_time - start_time) / 850e6; - - std::cout << "bidirectional " << (arg ? "ION->CN" : "CN->ION") << ": " << 16ULL * 128 * 1024 * 1024 / time / 1000000 << " MB/s" << std::endl; - return 0; -} - - -int main(int argc, char **argv) -{ - setAffinity(); - memset(largeBuffer, 0, sizeof largeBuffer); - - if (argc != 2) { - std::cerr << "Usage: " << argv[0] << " 0|1 (0 = polling, 1 = interrupts)" << std::endl; - exit(1); - } - - FCNP_ION::init(atoi(argv[1]) != 0); - std::cout << "bidirectional" << std::endl; - - pthread_t thread[2]; - - for (unsigned i = 0; i < 2; i ++) - if (pthread_create(&thread[i], 0, bidirectional, (void *) i) != 0) { - perror("pthread_create"); - exit(1); - } - - for (unsigned i = 0; i < 2; i ++) - if (pthread_join(thread[i], 0) != 0) { - perror("pthread_join"); - exit(1); - } - - std::cout << "ION -> CN (Mb/s)" << std::endl; - - unsigned long long times[28]; - - for (unsigned logsize = 4; logsize <= 27; logsize ++) { - size_t size = 1 << logsize; - - FCNP_ION::IONtoCN_ZeroCopy(0, 0, largeBuffer, size); - - unsigned long long time = 0; - - for (unsigned i = 0; i < 15; i ++) { - //usleep(10000); // wait until the CN sent a request - - time -= _bgp_GetTimeBase(); - FCNP_ION::IONtoCN_ZeroCopy(0, 0, largeBuffer, size); - time += _bgp_GetTimeBase(); - } - - times[logsize] = time; - } - - for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) { - for (unsigned i = 0; i < 16; i ++) - FCNP_ION::CNtoION_ZeroCopy(0, 0, largeBuffer, size); - } - - for (unsigned logsize = 4; logsize <= 27; logsize ++) { - size_t size = 1 << logsize; - std::cout << size << ' ' << (15 * 8.0 * size / (times[logsize] / 850.0)) << std::endl; - } - - double smallMsg = times[4] / 850e6 / 15; - double largeMsg = times[27] / 850e6 / 15; - - double bandwidth = (128 * 1024 * 1024 - 16) / (largeMsg - smallMsg); - double latency = smallMsg - 16 / bandwidth; - - std::cout << "latency = " << latency * 1e6 << " us, bandwidth = " << bandwidth / 1e9 << " GB/s" << std::endl; - - FCNP_ION::end(); - - return 0; -} - -#else - -int main() -{ - return 0; -} - -#endif // defined HAVE_BGP_ION diff --git a/RTCP/IONProc/CMakeLists.txt b/RTCP/IONProc/CMakeLists.txt deleted file mode 100644 index 59dfa7b36fa014481c792428a432035ca0137d35..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -# $Id$ - -lofar_package(IONProc 1.0 - DEPENDS Common ApplCommon Stream Interface FCNP) - -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED) -lofar_find_package(LibSSH2 REQUIRED) -lofar_find_package(OpenSSL REQUIRED) -lofar_find_package(Valgrind) -lofar_find_package(Casacore COMPONENTS measures REQUIRED) - -if(USE_VALGRIND) - add_definitions(-DUSE_VALGRIND) -endif(USE_VALGRIND) - -enable_language(ASM-BGP) - -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/IONProc/src/BeamletBuffer.cc b/RTCP/IONProc/src/BeamletBuffer.cc deleted file mode 100644 index 0709cc6037be92a53da0833a0c1b2c8b63b7c5e3..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/BeamletBuffer.cc +++ /dev/null @@ -1,417 +0,0 @@ -//# BeamletBuffer.cc: one line description -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Interface/Align.h> -#include <Interface/Exceptions.h> -#include <BeamletBuffer.h> -#include <ION_Allocator.h> -#include <InputThreadAsm.h> -#include <RSP.h> - -#include <boost/lexical_cast.hpp> -#include <cstring> -#include <stdexcept> - -#include <boost/format.hpp> -using boost::format; - - -namespace LOFAR { -namespace RTCP { - -template<typename SAMPLE_TYPE> const unsigned BeamletBuffer<SAMPLE_TYPE>::itsNrTimesPerPacket; - - -// The buffer size is a multiple of the input packet size. By setting -// itsOffset to a proper value, we can assure that input packets never -// wrap around the circular buffer - -template<typename SAMPLE_TYPE> BeamletBuffer<SAMPLE_TYPE>::BeamletBuffer(const Parset *ps, string &stationName, unsigned rspBoard) -: - itsRSPboard(rspBoard), - itsNrSubbands(ps->nrSlotsInFrame()), - itsPacketSize(sizeof(struct RSP::Header) + itsNrTimesPerPacket * itsNrSubbands * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE)), - itsSize(align(ps->inputBufferSize(), itsNrTimesPerPacket)), - itsHistorySize(ps->nrHistorySamples()), - itsIsRealTime(ps->realTime()), - itsSynchronizedReaderWriter(itsIsRealTime ? 0 : new SynchronizedReaderAndWriter(itsSize)), // FIXME: does not work for multiple observations - itsLockedRanges(itsSize), - itsSBBuffers(boost::extents[itsNrSubbands][itsSize][NR_POLARIZATIONS], 128, hugeMemoryAllocator), - itsOffset(0), - itsPreviousTimeStamp(0), - itsPreviousI(0), - itsCurrentTimeStamp(0), - itsCurrentI(0), -#if defined HAVE_BGP && !defined USE_VALGRIND - itsStride(itsSBBuffers[0].num_elements() * sizeof(SAMPLE_TYPE)), -#else - itsStride(itsSBBuffers[0].num_elements()), -#endif - itsReadTimer("buffer read", true, true), - itsWriteTimer("buffer write", true, true) -{ - itsLogPrefix = str(format("[station %s board %u] ") % stationName % rspBoard); - - if (ps->getUint32("OLAP.nrTimesInFrame", 16) != itsNrTimesPerPacket) - THROW(IONProcException, "OLAP.nrTimesInFrame should be " << boost::lexical_cast<std::string>(itsNrTimesPerPacket)); - -#if 0 - if (ps->realTime()) - itsSynchronizedReaderWriter = new TimeSynchronizedReader(ps->maxNetworkDelay()); - else - itsSynchronizedReaderWriter = new SynchronizedReaderAndWriter(itsSize); -#endif - -#if defined USE_VALGRIND - memset(itsSBBuffers.origin(), 0, itsSBBuffers.num_elements() * sizeof(SAMPLE_TYPE)); -#endif - - LOG_DEBUG_STR(itsLogPrefix << "Circular buffer at " << itsSBBuffers.origin() << "; contains " << itsSize << " samples"); -} - - -#if defined HAVE_BGP && !defined USE_VALGRIND - -template<> inline void BeamletBuffer<i4complex>::writePacket(i4complex *dst, const i4complex *src) -{ - _copy_pkt_to_bbuffer_32_bytes(dst, itsStride, src, itsNrSubbands); -} - -template<> inline void BeamletBuffer<i8complex>::writePacket(i8complex *dst, const i8complex *src) -{ - _copy_pkt_to_bbuffer_64_bytes(dst, itsStride, src, itsNrSubbands); -} - -template<> inline void BeamletBuffer<i16complex>::writePacket(i16complex *dst, const i16complex *src) -{ - _copy_pkt_to_bbuffer_128_bytes(dst, itsStride, src, itsNrSubbands); -} - -#endif - - -template<typename SAMPLE_TYPE> inline void BeamletBuffer<SAMPLE_TYPE>::writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src) -{ - for (unsigned sb = 0; sb < itsNrSubbands; sb ++) { - for (unsigned i = 0; i < itsNrTimesPerPacket * NR_POLARIZATIONS; i ++) - dst[i] = *src ++; - - dst += itsStride; - } -} - - -template<typename SAMPLE_TYPE> inline void BeamletBuffer<SAMPLE_TYPE>::updateValidData(const TimeStamp &begin, const TimeStamp &end) -{ - ScopedLock sl(itsValidDataMutex); - - itsValidData.exclude(0, end - itsSize); // forget old ValidData - - // add new ValidData (except if range list will grow too long, to avoid long - // computations) - - const SparseSet<TimeStamp>::Ranges &ranges = itsValidData.getRanges(); - - if (ranges.size() < 64 || ranges.back().end == begin) - itsValidData.include(begin, end); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writeConsecutivePackets(unsigned count) -{ - unsigned nrTimes = count * itsNrTimesPerPacket; - TimeStamp begin = itsCurrentTimeStamp, end = begin + nrTimes; - unsigned startI = itsCurrentI, endI = startI + nrTimes; - - if (endI >= itsSize) - endI -= itsSize; - - SAMPLE_TYPE *dst = itsSBBuffers[0][startI].origin(); - - // in synchronous mode, do not overrun tail of reader - if (!itsIsRealTime) - itsSynchronizedReaderWriter->startWrite(begin, end); - - // do not write in circular buffer section that is being read - itsLockedRanges.lock(startI, endI); - - while (itsCurrentI != endI) { - writePacket(dst, reinterpret_cast<const SAMPLE_TYPE *>(itsCurrentPacketPtr)); - itsCurrentPacketPtr += itsPacketSize; - dst += itsNrTimesPerPacket * NR_POLARIZATIONS; - - if ((itsCurrentI += itsNrTimesPerPacket) == itsSize) { - itsCurrentI = 0; - dst = itsSBBuffers.origin(); - } - } - - itsCurrentTimeStamp = end; - updateValidData(begin, end); - - itsLockedRanges.unlock(startI, endI); - - if (!itsIsRealTime) - itsSynchronizedReaderWriter->finishedWrite(end); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::resetCurrentTimeStamp(const TimeStamp &newTimeStamp) -{ - // A packet with unexpected timestamp was received. Handle accordingly. - bool firstPacket = !itsCurrentTimeStamp; // the first timestamp is always unexpected - - itsCurrentTimeStamp = newTimeStamp; - itsCurrentI = mapTime2Index(newTimeStamp); - - if (!aligned(itsCurrentI, itsNrTimesPerPacket)) { - // RSP board reset? Recompute itsOffset and clear the entire buffer. - - ScopedLock sl(itsReadMutex); // avoid reset while other thread reads - - int oldOffset = itsOffset; - itsOffset = - (newTimeStamp % itsNrTimesPerPacket); - itsCurrentI = mapTime2Index(newTimeStamp); - assert(aligned(itsCurrentI, itsNrTimesPerPacket)); - - { - ScopedLock sl(itsValidDataMutex); - itsValidData.reset(); - } - - if (!firstPacket) { - LOG_WARN_STR(itsLogPrefix << "Reset BeamletBuffer at " << newTimeStamp << "; itsOffset was " << oldOffset << " and becomes " << itsOffset); - } - } -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &timeStamps) -{ - itsWriteTimer.start(); - itsCurrentPacketPtr = reinterpret_cast<const char *>(rspData) + sizeof(struct RSP::Header); - - for (unsigned first = 0, last; first < timeStamps.size();) { - if (timeStamps[first] != itsCurrentTimeStamp) - resetCurrentTimeStamp(timeStamps[first]); - - // find a series of consecutively timed packets - for (last = first + 1; last < timeStamps.size() && timeStamps[last] == timeStamps[last - 1] + itsNrTimesPerPacket; last ++) - ; - - writeConsecutivePackets(last - first); - first = last; - } - - itsWriteTimer.stop(); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin) -{ - itsWriteTimer.start(); - - TimeStamp end = begin + itsNrTimesPerPacket; - - // cache previous index, to avoid expensive mapTime2Index() - unsigned startI; - - if (begin == itsPreviousTimeStamp) { - startI = itsPreviousI; - } else { - startI = mapTime2Index(begin); - - if (!aligned(startI, itsNrTimesPerPacket)) { - // RSP board reset? Recompute itsOffset and clear the entire buffer. - itsOffset = - (startI % itsNrTimesPerPacket); - startI = mapTime2Index(begin); - - { - ScopedLock sl(itsValidDataMutex); - itsValidData.reset(); - } - } - - //LOG_DEBUG_STR(""timestamp = " << (uint64_t) begin << ", itsOffset = " << itsOffset"); - } - - unsigned endI = startI + itsNrTimesPerPacket; - - if (endI >= itsSize) - endI -= itsSize; - - itsPreviousTimeStamp = end; - itsPreviousI = endI; - - // in synchronous mode, do not overrun tail of reader - if (!itsIsRealTime) - itsSynchronizedReaderWriter->startWrite(begin, end); - - // do not write in circular buffer section that is being read - itsLockedRanges.lock(startI, endI); - - writePacket(itsSBBuffers[0][startI].origin(), data); - - // forget old ValidData - { - ScopedLock sl(itsValidDataMutex); - itsValidData.exclude(0, end - itsSize); - - unsigned rangesSize = itsValidData.getRanges().size(); - - // add new ValidData (except if range list will grow too long, to avoid long - // computations) - if (rangesSize < 64 || itsValidData.getRanges()[rangesSize - 1].end == begin) - itsValidData.include(begin, end); - } - - itsLockedRanges.unlock(startI, endI); - - if (!itsIsRealTime) - itsSynchronizedReaderWriter->finishedWrite(end); - - itsWriteTimer.stop(); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements) -{ - // in synchronous mode, do not overrun writer - if (!itsIsRealTime) { - TimeStamp minBegin = *std::min_element(begin.begin(), begin.end()); - TimeStamp maxEnd = *std::max_element(begin.begin(), begin.end()) + nrElements; - itsSynchronizedReaderWriter->startRead(minBegin, maxEnd); - } - - itsReadMutex.lock(); // only one reader per BeamletBuffer allowed - itsReadTimer.start(); - - unsigned nrBeams = begin.size(); - - itsEnd.resize(nrBeams); - itsStartI.resize(nrBeams); - itsEndI.resize(nrBeams); - - itsBegin = begin; - - for (unsigned beam = 0; beam < begin.size(); beam ++) { - itsEnd[beam] = begin[beam] + nrElements; - itsStartI[beam] = mapTime2Index(begin[beam]); - itsEndI[beam] = mapTime2Index(itsEnd[beam]); - } - - itsMinEnd = *std::min_element(itsEnd.begin(), itsEnd.end()); - itsMinStartI = *std::min_element(itsStartI.begin(), itsStartI.end()); - itsMaxEndI = *std::max_element(itsEndI.begin(), itsEndI.end()); - - // do not read from circular buffer section that is being written - itsLockedRanges.lock(itsMinStartI, itsMaxEndI); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::sendSubband(Stream *str, unsigned subband, unsigned beam) const -{ - // Align to 32 bytes and make multiple of 32 bytes by prepending/appending - // extra data. Always send 32 bytes extra, even if data was already aligned. - unsigned startI = align(itsStartI[beam] - itsAlignment + 1, itsAlignment); // round down - unsigned endI = align(itsEndI[beam] + 1, itsAlignment); // round up, possibly adding 32 bytes - - if (endI < startI) { - // the data wraps around the allocated memory, so copy in two parts - unsigned firstChunk = itsSize - startI; - - str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS])); - str->write(itsSBBuffers[subband][0].origin(), sizeof(SAMPLE_TYPE[endI][NR_POLARIZATIONS])); - } else { - str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[endI - startI][NR_POLARIZATIONS])); - } -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::sendUnalignedSubband(Stream *str, unsigned subband, unsigned beam) const -{ - if (itsEndI[beam] < itsStartI[beam]) { - // the data wraps around the allocated memory, so copy in two parts - unsigned firstChunk = itsSize - itsStartI[beam]; - - str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS])); - str->write(itsSBBuffers[subband][0].origin(), sizeof(SAMPLE_TYPE[itsEndI[beam]][NR_POLARIZATIONS])); - } else { - str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[itsEndI[beam] - itsStartI[beam]][NR_POLARIZATIONS])); - } -} - - -template<typename SAMPLE_TYPE> SparseSet<unsigned> BeamletBuffer<SAMPLE_TYPE>::readFlags(unsigned beam) -{ - itsValidDataMutex.lock(); - SparseSet<TimeStamp> validTimes = itsValidData.subset(itsBegin[beam], itsEnd[beam]); - itsValidDataMutex.unlock(); - - SparseSet<unsigned> flags; - flags.include(0, static_cast<unsigned>(itsEnd[beam] - itsBegin[beam])); - - for (SparseSet<TimeStamp>::const_iterator it = validTimes.getRanges().begin(); it != validTimes.getRanges().end(); it ++) - flags.exclude(static_cast<unsigned>(it->begin - itsBegin[beam]), - static_cast<unsigned>(it->end - itsBegin[beam])); - - return flags; -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::stopReadTransaction() -{ - itsLockedRanges.unlock(itsMinStartI, itsMaxEndI); - - if (!itsIsRealTime) - itsSynchronizedReaderWriter->finishedRead(itsMinEnd - (itsHistorySize + 16)); - // subtract 16 extra; due to alignment restrictions and the changing delays, - // it is hard to predict where the next read will begin. - - itsReadTimer.stop(); - itsReadMutex.unlock(); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::noMoreReading() -{ - if (!itsIsRealTime) - itsSynchronizedReaderWriter->noMoreReading(); -} - - -template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::noMoreWriting() -{ - if (!itsIsRealTime) - itsSynchronizedReaderWriter->noMoreWriting(); -} - - -template class BeamletBuffer<i4complex>; -template class BeamletBuffer<i8complex>; -template class BeamletBuffer<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/BeamletBuffer.h b/RTCP/IONProc/src/BeamletBuffer.h deleted file mode 100644 index 56ac4e914c7d8e803bc4054259a117341057bae5..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/BeamletBuffer.h +++ /dev/null @@ -1,133 +0,0 @@ -//# BeamletBuffer.h: a cyclic buffer that holds the beamlets from the rspboards -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_BEAMLET_BUFFER_H -#define LOFAR_IONPROC_BEAMLET_BUFFER_H - -// \file -// a cyclic buffer that holds the beamlets from the rspboards - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Common/lofar_vector.h> -#include <Common/lofar_complex.h> -#include <Common/Timer.h> -#include <Interface/Config.h> -#include <Interface/MultiDimArray.h> -#include <Interface/Parset.h> -#include <Interface/RSPTimeStamp.h> -#include <Interface/SmartPtr.h> -#include <Interface/SparseSet.h> -#include <LockedRanges.h> -#include <ReaderWriterSynchronization.h> -#include <Stream/Stream.h> -#include <Common/Thread/Mutex.h> - -#include <vector> -#include <string> - - -namespace LOFAR { -namespace RTCP { - -// define a "simple" type of which the size equals the size of two samples -// (X and Y polarizations) - - -template<typename SAMPLE_TYPE> class BeamletBuffer -{ - public: - BeamletBuffer(const Parset *, std::string &stationName, unsigned rspBoard); - - void writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin); - void writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &); - - void startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements); - void sendSubband(Stream *, unsigned subband, unsigned currentBeam) const; - void sendUnalignedSubband(Stream *, unsigned subband, unsigned currentBeam) const; - unsigned alignmentShift(unsigned beam) const; - SparseSet<unsigned> readFlags(unsigned beam); - void stopReadTransaction(); - - void noMoreReading(); - void noMoreWriting(); - - const static unsigned itsNrTimesPerPacket = 16; - - private: - unsigned mapTime2Index(TimeStamp time) const; - - std::string itsLogPrefix; - - Mutex itsValidDataMutex; - SparseSet<TimeStamp> itsValidData; - unsigned itsRSPboard; - unsigned itsNrSubbands; - size_t itsPacketSize; - unsigned itsSize, itsHistorySize; - bool itsIsRealTime; - SmartPtr<SynchronizedReaderAndWriter> itsSynchronizedReaderWriter; - LockedRanges itsLockedRanges; - Cube<SAMPLE_TYPE> itsSBBuffers; - int itsOffset; - const static unsigned itsAlignment = 32 / (NR_POLARIZATIONS * sizeof(SAMPLE_TYPE)); - - // read internals - std::vector<TimeStamp> itsBegin, itsEnd; - std::vector<size_t> itsStartI, itsEndI; - size_t itsMinStartI, itsMaxEndI; - TimeStamp itsMinEnd; - Mutex itsReadMutex; - - // write internals - void writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src); - void updateValidData(const TimeStamp &begin, const TimeStamp &end); - void writeConsecutivePackets(unsigned count); - void resetCurrentTimeStamp(const TimeStamp &); - - TimeStamp itsPreviousTimeStamp; - unsigned itsPreviousI; - TimeStamp itsCurrentTimeStamp; - unsigned itsCurrentI; - size_t itsStride; - const char *itsCurrentPacketPtr; - - NSTimer itsReadTimer, itsWriteTimer; -}; - - -template<typename SAMPLE_TYPE> inline unsigned BeamletBuffer<SAMPLE_TYPE>::alignmentShift(unsigned beam) const -{ - return itsStartI[beam] % itsAlignment; -} - -template<typename SAMPLE_TYPE> inline unsigned BeamletBuffer<SAMPLE_TYPE>::mapTime2Index(TimeStamp time) const -{ - // TODO: this is very slow because of the % - return (time + itsOffset) % itsSize; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/BeamletBufferToComputeNode.cc b/RTCP/IONProc/src/BeamletBufferToComputeNode.cc deleted file mode 100644 index 808e82573d13b95f52e876539b6dffd3cbd26e80..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/BeamletBufferToComputeNode.cc +++ /dev/null @@ -1,415 +0,0 @@ -//# BeamletBufferToComputeNode.cc: Catch RSP ethernet frames and synchronize RSP inputs -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <Common/Timer.h> -#include <Common/PrettyUnits.h> -#include <BeamletBufferToComputeNode.h> -#include <BeamletBuffer.h> -#include <ION_Allocator.h> -#include <Scheduling.h> -#include <GlobalVars.h> -#include <Interface/AlignedStdAllocator.h> -#include <Interface/CN_Command.h> -#include <Interface/CN_Mapping.h> -#include <Interface/Stream.h> -#include <Interface/Exceptions.h> - -#include <sys/time.h> - -#include <cstdio> -#include <stdexcept> -#include <iomanip> - -#include <boost/format.hpp> - - -namespace LOFAR { -namespace RTCP { - - -template<typename SAMPLE_TYPE> const unsigned BeamletBufferToComputeNode<SAMPLE_TYPE>::itsMaximumDelay; - - -template<typename SAMPLE_TYPE> BeamletBufferToComputeNode<SAMPLE_TYPE>::BeamletBufferToComputeNode(const Parset &ps, const Matrix<Stream *> &phaseOneTwoStreams, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned psetNumber, unsigned firstBlockNumber) -: - itsPhaseOneTwoStreams(phaseOneTwoStreams), - itsNrPhaseOneTwoCoresPerPset(phaseOneTwoStreams[0].size()), - itsPS(ps), - itsNrInputs(beamletBuffers.size()), - itsPsetNumber(psetNumber), - itsBeamletBuffers(beamletBuffers), - itsBlockNumber(firstBlockNumber), - itsDelayTimer("delay consumer", true, true) -{ - bool haveStationInput = itsNrInputs > 0; - string stationName = haveStationInput ? ps.getStationNamesAndRSPboardNumbers(psetNumber)[0].station : "none"; // TODO: support more than one station - - itsLogPrefix = str(boost::format("[obs %u station %s] ") % ps.observationID() % stationName); - - itsSubbandBandwidth = ps.subbandBandwidth(); - itsNrSubbands = ps.nrSubbands(); - itsNrSubbandsPerPset = ps.nrSubbandsPerPset(); - itsNrSamplesPerSubband = ps.nrSamplesPerSubband(); - itsNrBeams = ps.nrBeams(); - itsMaxNrTABs = ps.maxNrTABs(); - itsNrTABs = ps.nrTABs(); - itsNrPhaseTwoPsets = ps.phaseTwoPsets().size(); - itsCurrentPhaseOneTwoComputeCore = (itsBlockNumber * itsNrSubbandsPerPset) % itsNrPhaseOneTwoCoresPerPset; - itsSampleDuration = ps.sampleDuration(); - itsDelayCompensation = ps.delayCompensation(); - itsCorrectClocks = ps.correctClocks(); - itsNeedDelays = (itsDelayCompensation || itsMaxNrTABs > 1 || itsCorrectClocks) && itsNrInputs > 0; - itsSubbandToSAPmapping = ps.subbandToSAPmapping(); - - if (haveStationInput) { - itsSubbandToRSPboardMapping = ps.subbandToRSPboardMapping(stationName); - itsSubbandToRSPslotMapping = ps.subbandToRSPslotMapping(stationName); - } - - itsCurrentTimeStamp = TimeStamp(static_cast<int64>(ps.startTime() * itsSubbandBandwidth + itsBlockNumber * itsNrSamplesPerSubband), ps.clockSpeed()); - - itsIsRealTime = ps.realTime(); - itsMaxNetworkDelay = ps.maxNetworkDelay(); - itsNrHistorySamples = ps.nrHistorySamples(); - itsObservationID = ps.observationID(); - - LOG_DEBUG_STR(itsLogPrefix << "nrSubbands = " << itsNrSubbands); - LOG_DEBUG_STR(itsLogPrefix << "nrChannelsPerSubband = " << ps.nrChannelsPerSubband()); - LOG_DEBUG_STR(itsLogPrefix << "nrStations = " << ps.nrStations()); - LOG_DEBUG_STR(itsLogPrefix << "nrBitsPerSample = " << ps.nrBitsPerSample()); - LOG_DEBUG_STR(itsLogPrefix << "maxNetworkDelay = " << itsMaxNetworkDelay << " samples"); - - if (haveStationInput && itsNeedDelays) { - itsDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1); - itsDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1); - itsBeamDirectionsAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1); - itsBeamDirectionsAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1); - - if (itsDelayCompensation || itsMaxNrTABs > 1) { - itsDelays = new Delays(ps, stationName, itsCurrentTimeStamp); - itsDelays->start(); - } - - if (itsCorrectClocks) - itsClockCorrectionTime = ps.clockCorrectionTime(stationName); - - computeNextDelays(); // initialize itsDelaysAfterEnd before we really start - } - - itsDelayedStamps.resize(itsNrBeams); - itsSamplesDelay.resize(itsNrBeams); - itsFineDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1); - itsFineDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1); - itsFlags.resize(boost::extents[itsNrInputs][itsNrBeams]); - -#if defined HAVE_BGP_ION // FIXME: not in preprocess - doNotRunOnCore0(); - setPriority(3); -#endif -} - - -template<typename SAMPLE_TYPE> BeamletBufferToComputeNode<SAMPLE_TYPE>::~BeamletBufferToComputeNode() -{ - LOG_DEBUG_STR(itsLogPrefix << "BeamletBufferToComputeNode::~BeamletBufferToComputeNode"); - - for (unsigned rsp = 0; rsp < itsNrInputs; rsp ++) - itsBeamletBuffers[rsp]->noMoreReading(); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeNextDelays() -{ - // track source - -#ifdef USE_VALGRIND - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++) - itsDelaysAfterEnd[beam][pencil] = 0; -#endif - - if (itsDelays != 0) - itsDelays->getNextDelays(itsBeamDirectionsAfterEnd, itsDelaysAfterEnd); - else - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++) - itsDelaysAfterEnd[beam][pencil] = 0; - - // apply clock correction due to cable differences - - if (itsCorrectClocks) - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++) - itsDelaysAfterEnd[beam][pencil] += itsClockCorrectionTime; -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::limitFlagsLength(SparseSet<unsigned> &flags) -{ - const SparseSet<unsigned>::Ranges &ranges = flags.getRanges(); - - if (ranges.size() > 16) - flags.include(ranges[15].begin, ranges.back().end); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeDelays() -{ - itsDelayTimer.start(); - - // begin of this integration is end of previous integration - itsDelaysAtBegin = itsDelaysAfterEnd; - itsBeamDirectionsAtBegin = itsBeamDirectionsAfterEnd; - - computeNextDelays(); - - for (unsigned beam = 0; beam < itsNrBeams; beam ++) { - // The coarse delay is determined for the center of the current - // time interval and is expressed in an entire amount of samples. - // - // We use the central pencil beam (#0) for the coarse delay compensation. - signed int coarseDelay = static_cast<signed int>(floor(0.5 * (itsDelaysAtBegin[beam][0] + itsDelaysAfterEnd[beam][0]) * itsSubbandBandwidth + 0.5)); - - // The fine delay is determined for the boundaries of the current - // time interval and is expressed in seconds. - double d = coarseDelay * itsSampleDuration; - - itsDelayedStamps[beam] -= coarseDelay; - itsSamplesDelay[beam] = -coarseDelay; - - for (unsigned pencil = 0; pencil < itsNrTABs[beam] + 1; pencil ++) { - // we don't do coarse delay compensation for the individual pencil beams to avoid complexity and overhead - itsFineDelaysAtBegin[beam][pencil] = static_cast<float>(itsDelaysAtBegin[beam][pencil] - d); - itsFineDelaysAfterEnd[beam][pencil] = static_cast<float>(itsDelaysAfterEnd[beam][pencil] - d); - } - } - - itsDelayTimer.stop(); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::startTransaction() -{ - for (unsigned rsp = 0; rsp < itsNrInputs; rsp ++) { - itsBeamletBuffers[rsp]->startReadTransaction(itsDelayedStamps, itsNrSamplesPerSubband + itsNrHistorySamples); - - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - /*if (itsMustComputeFlags[rsp][beam])*/ { // TODO - itsFlags[rsp][beam] = itsBeamletBuffers[rsp]->readFlags(beam); - limitFlagsLength(itsFlags[rsp][beam]); - } - } -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::writeLogMessage() const -{ - std::stringstream logStr; - - logStr << itsLogPrefix << itsCurrentTimeStamp; - - if (itsIsRealTime) { - struct timeval tv; - - gettimeofday(&tv, 0); - - double currentTime = tv.tv_sec + tv.tv_usec / 1e6; - double expectedTime = itsCorrelationStartTime * itsSampleDuration; - double recordingTime = itsCurrentTimeStamp * itsSampleDuration; - - logStr << ", age: " << PrettyTime(currentTime - recordingTime) << ", late: " << PrettyTime(currentTime - expectedTime); - } - - if (itsNeedDelays) { - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam][0], 7); - //logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam], 7) << " = " << itsSamplesDelay[beam] << " samples + " << PrettyTime(itsFineDelaysAtBegin[beam], 7); - - logStr << "]"; - } - - for (unsigned rsp = 0; rsp < itsNrInputs; rsp ++) - logStr << ", flags " << rsp << ": " << itsFlags[rsp][0] << '(' << std::setprecision(3) << (100.0 * itsFlags[rsp][0].count() / (itsNrSamplesPerSubband + itsNrHistorySamples)) << "%)"; // not really correct; beam(0) may be shifted - - LOG_INFO(logStr.str()); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::setMetaData( SubbandMetaData &metaData, unsigned psetIndex, unsigned subband ) -{ - unsigned rspBoard = itsSubbandToRSPboardMapping[subband]; - unsigned beam = itsSubbandToSAPmapping[subband]; - - if (itsNeedDelays) { - for (unsigned p = 0; p < itsNrTABs[beam] + 1; p ++) { - struct SubbandMetaData::beamInfo &beamInfo = metaData.beams(psetIndex)[p]; - - beamInfo.delayAtBegin = itsFineDelaysAtBegin[beam][p]; - beamInfo.delayAfterEnd = itsFineDelaysAfterEnd[beam][p]; - - // extract the carthesian coordinates - const casa::Vector<double> &beamDirBegin = itsBeamDirectionsAtBegin[beam][p].getValue(); - const casa::Vector<double> &beamDirEnd = itsBeamDirectionsAfterEnd[beam][p].getValue(); - - for (unsigned i = 0; i < 3; i ++) { - beamInfo.beamDirectionAtBegin[i] = beamDirBegin[i]; - beamInfo.beamDirectionAfterEnd[i] = beamDirEnd[i]; - } - } - } - - metaData.alignmentShift(psetIndex) = itsBeamletBuffers[rspBoard]->alignmentShift(beam); - metaData.setFlags(psetIndex, itsFlags[rspBoard][beam]); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::sendSubband( Stream *stream, unsigned subband ) -{ - unsigned rspBoard = itsSubbandToRSPboardMapping[subband]; - unsigned rspSlot = itsSubbandToRSPslotMapping[subband]; - unsigned beam = itsSubbandToSAPmapping[subband]; - - itsBeamletBuffers[rspBoard]->sendSubband(stream, rspSlot, beam); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::toComputeNodes() -{ - CN_Command command(CN_Command::PROCESS, itsBlockNumber ++); - - if (itsNrPhaseOneTwoCoresPerPset > 0) { - // If the total number of subbands is not dividable by the nrSubbandsPerPset, - // we may have to send dummy process commands, without sending subband data. - - for (unsigned subbandBase = 0; subbandBase < itsNrSubbandsPerPset; subbandBase ++) { - Stream *controlStream = itsPhaseOneTwoStreams[myPsetNumber][itsCurrentPhaseOneTwoComputeCore]; - - // tell CN to process data - command.write(controlStream); - - if (itsNrInputs > 0) { -#ifdef CLUSTER_SCHEDULING - // transpose the data and send it to the correct compute nodes directly - for (unsigned psetIndex = 0; psetIndex < itsNrPhaseTwoPsets; psetIndex ++) { - unsigned subband = itsNrSubbandsPerPset * psetIndex + subbandBase; - if (subband >= itsNrSubbands) - continue; - - Stream *stream = itsPhaseOneTwoStreams[psetIndex][itsCurrentPhaseOneTwoComputeCore]; - - SubbandMetaData metaData(1, itsMaxNrTABs + 1); - - setMetaData(metaData, 0, subband); - metaData.write(stream); - sendSubband(stream, subband); - } - } -#else - // create and send all metadata in one "large" message, since initiating a message - // has significant overhead in FCNP. - SubbandMetaData metaData(itsNrPhaseTwoPsets, itsMaxNrTABs + 1); - - for (unsigned psetIndex = 0; psetIndex < itsNrPhaseTwoPsets; psetIndex ++) { - unsigned subband = itsNrSubbandsPerPset * psetIndex + subbandBase; - - if (subband >= itsNrSubbands) - continue; - - setMetaData(metaData, psetIndex, subband); - } - - metaData.write(controlStream); - - // now send all subband data - for (unsigned psetIndex = 0; psetIndex < itsNrPhaseTwoPsets; psetIndex ++) { - unsigned subband = itsNrSubbandsPerPset * psetIndex + subbandBase; - - if (subband >= itsNrSubbands) - continue; - - sendSubband(controlStream, subband); - } - } -#endif - - if (++ itsCurrentPhaseOneTwoComputeCore == itsNrPhaseOneTwoCoresPerPset) - itsCurrentPhaseOneTwoComputeCore = 0; - } - } -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::stopTransaction() -{ - for (unsigned rsp = 0; rsp < itsNrInputs; rsp ++) - itsBeamletBuffers[rsp]->stopReadTransaction(); -} - - -template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::process() -{ - // stay in sync with other psets even if there are no inputs to allow a synchronised early abort - - if (itsNrInputs > 0) - for (unsigned beam = 0; beam < itsNrBeams; beam ++) - itsDelayedStamps[beam] = itsCurrentTimeStamp - itsNrHistorySamples; - - if (itsNeedDelays) - computeDelays(); - - if (itsIsRealTime) { - itsCorrelationStartTime = itsCurrentTimeStamp + itsNrSamplesPerSubband + itsMaxNetworkDelay + itsMaximumDelay; - - itsWallClock.waitUntil(itsCorrelationStartTime); - } - - if (itsNrInputs > 0) { - startTransaction(); - writeLogMessage(); - } - - NSTimer timer; - timer.start(); - - toComputeNodes(); - - if (itsNrInputs > 0) { - stopTransaction(); - } - - itsCurrentTimeStamp += itsNrSamplesPerSubband; - timer.stop(); - - if (itsNrInputs > 0) - LOG_DEBUG_STR(itsLogPrefix << " ION->CN: " << PrettyTime(timer.getElapsed())); -} - -template class BeamletBufferToComputeNode<i4complex>; -template class BeamletBufferToComputeNode<i8complex>; -template class BeamletBufferToComputeNode<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/BeamletBufferToComputeNode.h b/RTCP/IONProc/src/BeamletBufferToComputeNode.h deleted file mode 100644 index 07d0fa3c08604889c772d31b4ccf417c13c9b127..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/BeamletBufferToComputeNode.h +++ /dev/null @@ -1,132 +0,0 @@ -//# BeamletBufferToComputeNode.h: Catch RSP ethernet frames and synchronize RSP inputs -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_BEAMLET_BUFFER_TO_COMPUTE_NODE_H -#define LOFAR_IONPROC_BEAMLET_BUFFER_TO_COMPUTE_NODE_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Interface/MultiDimArray.h> -#include <Interface/Parset.h> -#include <Interface/RSPTimeStamp.h> -#include <Interface/SmartPtr.h> -#include <Interface/SubbandMetaData.h> -#include <Stream/Stream.h> -#include <BeamletBuffer.h> -#include <Delays.h> - -#include <casa/Quanta/MVDirection.h> - -#include <boost/multi_array.hpp> -#include <pthread.h> - -#include <string> -#include <vector> - - -namespace LOFAR { -namespace RTCP { - -template <typename SAMPLE_TYPE> class BeamletBufferToComputeNode { - public: - BeamletBufferToComputeNode(const Parset &ps, const Matrix<Stream *> &phaseOneTwoStreams, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned psetNumber, unsigned firstBlockNumber); - ~BeamletBufferToComputeNode(); - - void process(); - - TimeStamp getCurrentTimeStamp() const { return itsCurrentTimeStamp; } - - private: - static void limitFlagsLength(SparseSet<unsigned> &flags); - - void computeDelays(), computeNextDelays(); - - void setMetaData( SubbandMetaData &metaData, unsigned psetIndex, unsigned subband ); - void sendSubband( Stream *stream, unsigned subband ); - - - void startTransaction(); - void writeLogMessage() const; - void toComputeNodes(); - void stopTransaction(); - - std::string itsLogPrefix; - - bool itsDelayCompensation; - bool itsCorrectClocks; - bool itsNeedDelays; - bool itsIsRealTime; - std::vector<unsigned> itsSubbandToSAPmapping; - std::vector<unsigned> itsSubbandToRSPboardMapping; - std::vector<unsigned> itsSubbandToRSPslotMapping; - - const Matrix<Stream *> &itsPhaseOneTwoStreams; - const unsigned itsNrPhaseOneTwoCoresPerPset; - - const Parset &itsPS; - - TimeStamp itsCurrentTimeStamp; - - Matrix<double> itsDelaysAtBegin; - Matrix<double> itsDelaysAfterEnd; - Matrix<casa::MVDirection> itsBeamDirectionsAtBegin; - Matrix<casa::MVDirection> itsBeamDirectionsAfterEnd; - unsigned itsNrPhaseTwoPsets; - unsigned itsObservationID; - - unsigned itsMaxNetworkDelay; // in samples - unsigned itsNrSubbands; - unsigned itsNrSubbandsPerPset; - unsigned itsNrSamplesPerSubband; - unsigned itsNrHistorySamples; - unsigned itsNrInputs; - unsigned itsNrBeams; - unsigned itsMaxNrTABs; - std::vector<unsigned> itsNrTABs; - - unsigned itsCurrentPhaseOneTwoComputeCore; - unsigned itsPsetNumber; - - const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &itsBeamletBuffers; - unsigned itsBlockNumber; - SmartPtr<Delays> itsDelays; - double itsSubbandBandwidth, itsSampleDuration; - double itsClockCorrectionTime; - - std::vector<TimeStamp> itsDelayedStamps; - std::vector<signed int> itsSamplesDelay; - boost::multi_array<SparseSet<unsigned>, 2> itsFlags; - - Matrix<float> itsFineDelaysAtBegin, itsFineDelaysAfterEnd; - - static const unsigned itsMaximumDelay = 1000; // samples; roughly 1500 km - TimeStamp itsCorrelationStartTime; - WallClockTime itsWallClock; - - NSTimer itsDelayTimer; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/CMakeLists.txt b/RTCP/IONProc/src/CMakeLists.txt deleted file mode 100644 index 993c44a604c94b4e055dcb82300da2bfdfc51a80..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -# Create symbolic link to include directory. -execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME}) - -# Add current source directory to -I path. This is needed because IONProc uses -# angle brackets for internal header files, instead of quotes. -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - -lofar_add_library(ionproc - Package__Version.cc - BeamletBuffer.cc - BeamletBufferToComputeNode.cc - CommandServer.cc - ControlPhase3Cores.cc - Delays.cc - GlobalVars.cc - InputSection.cc - InputThread.cc - InputThreadAsm.S - ION_Allocator.cc - Job.cc - JobQueue.cc - LogThread.cc - OutputThread.cc - OutputSection.cc - ReaderWriterSynchronization.cc - Scheduling.cc - StorageProcesses.cc - StreamMultiplexer.cc - SSH.cc - FCNP_ServerStream.cc) - -install(PROGRAMS - recreateFeedback.sh - DESTINATION bin) - -lofar_add_bin_program(versionionproc versionionproc.cc) -lofar_add_bin_program(ION_Processing ION_main.cc) -lofar_add_bin_program(generateDelays generateDelays.cc) diff --git a/RTCP/IONProc/src/CommandServer.cc b/RTCP/IONProc/src/CommandServer.cc deleted file mode 100644 index 730378c978cb57db24030da001f941b0e5bc3b76..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/CommandServer.cc +++ /dev/null @@ -1,197 +0,0 @@ -//# ION_main.cc: -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - -#include <lofar_config.h> - -#include <CommandServer.h> -#include <Common/Exceptions.h> -#include <Common/LofarLogger.h> -#include <Common/SystemCallException.h> -#include <GlobalVars.h> -#include <Job.h> -#include <JobQueue.h> -#include <Scheduling.h> -#include <Stream/SocketStream.h> - -#include <string> -#include <boost/lexical_cast.hpp> - -//#if defined HAVE_MPI -//#include <mpi.h> -//#endif - - -namespace LOFAR { -namespace RTCP { - - -void CommandServer::handleCommand(const std::string &command) -{ - //LOG_DEBUG_STR("command \"" << command << "\" received"); - - if (command.compare(0, 7, "cancel ") == 0) { - if (myPsetNumber == 0) { - if (command.compare(0, 10, "cancel all") == 0) - jobQueue.cancelAll(); - else - jobQueue.cancel(boost::lexical_cast<unsigned>(command.substr(7))); - } - } else if (command == "list_jobs") { - if (myPsetNumber == 0) - jobQueue.listJobs(); - } else if (command.compare(0, 7, "parset ") == 0) { - jobQueue.insert(new Job(command.substr(7).c_str())); - itsNrJobsCreated.up(); - } else if (command == "quit") { - itsQuit = true; - } else if (command == "threads") { - ThreadMap::instance().report(); -#if defined HAVE_BGP - } else if (command == "debug") { - LOGCOUT_SETLEVEL(8); - } else if (command == "nodebug") { - LOGCOUT_SETLEVEL(4); -#endif - } else if (command == "") { - // quietly drop empty commands - } else if (myPsetNumber == 0) { - LOG_ERROR_STR("command \"" << command << "\" not understood"); - } -} - - -void CommandServer::commandMaster() -{ -#if defined HAVE_BGP_ION - //doNotRunOnCore0(); - runOnCore0(); -#endif - - std::vector<SmartPtr<MultiplexedStream> > ionStreams(nrPsets); - - for (unsigned ion = 1; ion < nrPsets; ion ++) - ionStreams[ion] = new MultiplexedStream(*allIONstreamMultiplexers[ion], 0); - -#if defined HAVE_BGP - SocketStream sk("0.0.0.0", 4000, SocketStream::TCP, SocketStream::Server); -#else - SocketStream sk("0.0.0.0", 3999, SocketStream::TCP, SocketStream::Server); -#endif - - LOG_INFO("Command server ready"); - - while (!itsQuit) { - std::string command; - - try { - command = sk.readLine(); - LOG_INFO_STR("read command: " << command); - } catch (Stream::EndOfStreamException &) { - sk.reaccept(); - continue; - } - - unsigned size = command.size() + 1; - - //MPI_Bcast(&size, sizeof size, MPI_INT, 0, MPI_COMM_WORLD); - //MPI_Bcast(const_cast<char *>(command.c_str()), size, MPI_CHAR, 0, MPI_COMM_WORLD); - for (unsigned ion = 1; ion < nrPsets; ion ++) { - ionStreams[ion]->write(&size, sizeof size); - ionStreams[ion]->write(command.c_str(), size); - } - - try { - handleCommand(command); - } catch (Exception &ex) { - LOG_ERROR_STR("handleCommand caught Exception: " << ex); - } catch (std::exception &ex) { - LOG_ERROR_STR("handleCommand caught std::exception: " << ex.what()); - } catch (...) { - LOG_ERROR("handleCommand caught non-std::exception: "); - throw; - } - } -} - - -void CommandServer::commandSlave() -{ - MultiplexedStream streamFromMaster(*allIONstreamMultiplexers[0], 0); - - while (!itsQuit) { - unsigned size; - - //MPI_Bcast(&size, sizeof size, MPI_INT, 0, MPI_COMM_WORLD); - streamFromMaster.read(&size, sizeof size); - - std::vector<char> command(size); - //MPI_Bcast(command, size, MPI_CHAR, 0, MPI_COMM_WORLD); - streamFromMaster.read(&command[0], size); - - try { - handleCommand(&command[0]); - } catch (Exception &ex) { - LOG_ERROR_STR("handleCommand caught Exception: " << ex); - } catch (std::exception &ex) { - LOG_ERROR_STR("handleCommand caught std::exception: " << ex.what()); - } catch (...) { - LOG_ERROR("handleCommand caught non-std::exception: "); - throw; - } - } -} - - -void CommandServer::jobCleanUpThread() -{ - while (itsNrJobsCreated.down()) { - Job *job = finishedJobs.remove(); - jobQueue.remove(job); - delete job; - } -} - - -CommandServer::CommandServer() -: - itsQuit(false) -{ -} - - -void CommandServer::start() -{ - itsJobCleanUpThread = new Thread(this, &CommandServer::jobCleanUpThread, "JobCleanUpThread", 65536); - - if (myPsetNumber == 0) - commandMaster(); - else - commandSlave(); -} - - -CommandServer::~CommandServer() -{ - itsNrJobsCreated.noMore(); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/CommandServer.h b/RTCP/IONProc/src/CommandServer.h deleted file mode 100644 index 8676258914e8a1d3fd3f2816ede9e00bc9b19c5b..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/CommandServer.h +++ /dev/null @@ -1,59 +0,0 @@ -//# CommandServer.h -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#if !defined LOFAR_RTCP_COMMAND_SERVER_H -#define LOFAR_RTCP_COMMAND_SERVER_H - -#include <string> - -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> -#include <Interface/SmartPtr.h> - - -namespace LOFAR { -namespace RTCP { - -class CommandServer -{ - public: - CommandServer(); - ~CommandServer(); - - void start(); - - private: - void commandMaster(), commandSlave(); - void handleCommand(const std::string &); - - void jobCleanUpThread(); - - bool itsQuit; - Semaphore itsNrJobsCreated; - SmartPtr<Thread> itsJobCleanUpThread; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/ControlPhase3Cores.cc b/RTCP/IONProc/src/ControlPhase3Cores.cc deleted file mode 100644 index 088169558a69149b72ad3231b632c64622b9886e..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ControlPhase3Cores.cc +++ /dev/null @@ -1,113 +0,0 @@ -//# BeamletBufferToComputeNode.cc: Catch RSP ethernet frames and synchronize RSP inputs -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <ControlPhase3Cores.h> -#include <Interface/CN_Command.h> -#include <Scheduling.h> - -#include <boost/format.hpp> -using boost::format; - - -namespace LOFAR { -namespace RTCP { - - -ControlPhase3Cores::ControlPhase3Cores(const Parset &parset, const std::vector<Stream *> &phaseThreeStreams, unsigned firstBlock) -: - itsLogPrefix(str(format("[obs %u] ") % parset.observationID())), - itsPhaseThreeStreams(phaseThreeStreams), - itsMaxNrStreamsPerPset(parset.nrPhase3StreamsPerPset()), - itsFirstBlock(firstBlock), - itsAmNeeded(!itsPhaseThreeStreams.empty() && parset.phaseThreeDisjunct()) -{ - // psets dedicated to phase 3 have a different schedule -- they iterate over - // beams instead of subbands, and never need station data as input - - // Psets with both phase 2 and phase 3 either use different cores for both phases, or - // have phase 2 automatically transition into phase 3 for all cores. - - // If different cores are used, both sets need to be sent a PROCESS command. Also, - // this command must be sent AFTER phase 2 cores are activated, because communication - // with the compute cores is synchronous, but cores for phase 3 might not be ready yet - // even though phase 2 cores can already be started. - - // If the same cores are used for phases 2 and 3, only the cores in phase 2 need to be - // sent a PROCESS command, which is done in BeamletBufferToComputeNode.cc. -} - - -void ControlPhase3Cores::start() -{ - // starting needs to be deferred, because our thread will access *this immediately, which is - // not valid until after the constructor - - if (itsAmNeeded) { - itsThread = new Thread(this, &ControlPhase3Cores::mainLoop, "[ControlPhase3Cores] ", 65536); - } -} - - -ControlPhase3Cores::~ControlPhase3Cores() -{ - itsNrIterationsToDo.noMore(); -} - - -void ControlPhase3Cores::addIterations(unsigned count) -{ - itsNrIterationsToDo.up(count); -} - - -void ControlPhase3Cores::mainLoop() -{ -#if defined HAVE_BGP_ION - //doNotRunOnCore0(); - runOnCore0(); -#endif - - unsigned block = itsFirstBlock; - unsigned nrPhaseThreeComputeCores = itsPhaseThreeStreams.size(); - unsigned currentPhaseThreeComputeCore = block % nrPhaseThreeComputeCores; - - while (itsNrIterationsToDo.down()) { - CN_Command command(CN_Command::PROCESS, block ++); - - for (unsigned beam = 0; beam < itsMaxNrStreamsPerPset; beam ++) { - Stream *stream = itsPhaseThreeStreams[currentPhaseThreeComputeCore]; - - // tell CN to process data - command.write(stream); - - if (++ currentPhaseThreeComputeCore == nrPhaseThreeComputeCores) - currentPhaseThreeComputeCore = 0; - } - } -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/ControlPhase3Cores.h b/RTCP/IONProc/src/ControlPhase3Cores.h deleted file mode 100644 index 249c05e477bf79678005969101fe1796ff65d09d..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ControlPhase3Cores.h +++ /dev/null @@ -1,67 +0,0 @@ -//# ControlPhase3Cores.h: Send PROCESS commands to dedicated phase 3 cores -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_CONTROL_PHASE3_CORES_H -#define LOFAR_IONPROC_CONTROL_PHASE3_CORES_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Interface/SmartPtr.h> -#include <Interface/Parset.h> -#include <Stream/Stream.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> - -#include <string> -#include <vector> - -namespace LOFAR { -namespace RTCP { - -class ControlPhase3Cores { - public: - ControlPhase3Cores(const Parset &, const std::vector<Stream *> &phaseThreeStreams, unsigned firstBlock); - ~ControlPhase3Cores(); - - void start(); - - void addIterations(unsigned count); - - private: - void mainLoop(); - - const std::string itsLogPrefix; - - const std::vector<Stream *> &itsPhaseThreeStreams; - const unsigned itsMaxNrStreamsPerPset; - const unsigned itsFirstBlock; - const bool itsAmNeeded; - - Semaphore itsNrIterationsToDo; - SmartPtr<Thread> itsThread; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/Delays.cc b/RTCP/IONProc/src/Delays.cc deleted file mode 100644 index 03a7ec970ecbd8c4c90143dcccd0dac2e8b4187c..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Delays.cc +++ /dev/null @@ -1,332 +0,0 @@ -//# Delays.cc: Workholder for the delay compensation. -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Delays.h> -#include <Scheduling.h> -#include <Common/LofarLogger.h> -#include <Common/PrettyUnits.h> -#include <Interface/Exceptions.h> -#include <Interface/BeamCoordinates.h> -#include <Common/Thread/Mutex.h> -#include <Common/Thread/Cancellation.h> - -#include <measures/Measures/MEpoch.h> -#include <measures/Measures/MCDirection.h> -#include <casa/Exceptions/Error.h> - -#include <pthread.h> -#include <memory> -#include <cstdlib> -#include <boost/format.hpp> - - -namespace LOFAR { -namespace RTCP { - -using namespace casa; - -static LOFAR::Mutex casacoreMutex; // casacore is not thread safe - -//##---------------- Public methods ----------------##// - -bool Casacore_Init() -{ - // set up AIPS++ configuration - const char *lofarroot = getenv("LOFARROOT"); - if (!lofarroot) { - LOG_ERROR("Please set $LOFARROOT"); - return false; - } - - std::string casarcfiles = str(boost::format("%s/etc/casarc") % lofarroot); - - LOG_DEBUG_STR("CASARCFILES = " << casarcfiles); - setenv("CASARCFILES", casarcfiles.c_str(), 1); - - return true; -} - -Delays::Delays(const Parset &parset, const string &stationName, const TimeStamp &startTime) -: - itsParset(parset), - stop(false), - // we need an extra entry for the central beam - itsBuffer(bufferSize, parset.nrBeams(), parset.maxNrTABs() + 1), - head(0), - tail(0), - bufferFree(bufferSize), - bufferUsed(0), - itsNrCalcDelays(parset.nrCalcDelays()), - itsNrBeams(parset.nrBeams()), - itsMaxNrTABs(parset.maxNrTABs()), - itsNrTABs(parset.nrTABs()), - itsStartTime(startTime), - itsNrSamplesPerSec(parset.nrSamplesPerSubband()), - itsSampleDuration(parset.sampleDuration()), - itsStationName(stationName), - itsDelayTimer("delay producer", true, true) -{ -} - - -void Delays::start() -{ - itsThread = new Thread(this, &Delays::mainLoop, "[DelayCompensation] "); -} - - -Delays::~Delays() -{ - ScopedDelayCancellation dc; // Semaphores provide cancellation points - - // trigger mainLoop and force it to stop - stop = true; - bufferFree.up(itsNrCalcDelays); -} - - -// convert a time in samples to a (day,fraction) pair in UTC in a CasaCore format -MVEpoch Delays::toUTC(int64 timeInSamples) -{ - double utc_sec = (timeInSamples * itsSampleDuration) / MVEpoch::secInDay; - double day = floor(utc_sec); - double frac = utc_sec - day; - - // (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT) - return MVEpoch(day + 40587., frac); -} - - -void Delays::init() -{ - setBeamDirections(itsParset); - setPositionDiff(itsParset); - - // We need bufferSize to be a multiple of batchSize to avoid wraparounds in - // the middle of the batch calculations. This makes life a lot easier and there is no - // need to support other cases. - - if (bufferSize % itsNrCalcDelays > 0) - THROW(IONProcException, "nrCalcDelays (" << itsNrCalcDelays << ") must divide bufferSize (" << bufferSize << ")"); - - ScopedLock lock(casacoreMutex); - ScopedDelayCancellation dc; - - // Set an initial epoch for the itsFrame - itsFrame.set(MEpoch(toUTC(itsStartTime), MEpoch::UTC)); - - // Set the position for the itsFrame. - itsFrame.set(itsPhaseCentre); - - // Set-up the conversion engines, using reference direction ITRF. - for (unsigned beam = 0; beam < itsNrBeams; beam++) { - const casa::MDirection::Types &dirtype = itsDirectionTypes[beam]; - - if (itsConverters.find(dirtype) == itsConverters.end()) - itsConverters[dirtype] = MDirection::Convert(dirtype, MDirection::Ref(MDirection::ITRF, itsFrame)); - } -} - - -void Delays::mainLoop() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); -#endif - - LOG_DEBUG("Delay compensation thread running"); - -#if defined HAVE_BGP_ION - runOnCore0(); -#endif - - init(); - - // the current time, in samples - int64 currentTime = itsStartTime; - - try { - while (!stop) { - bufferFree.down(itsNrCalcDelays); - - itsDelayTimer.start(); - - // Calculate itsNrCalcDelays seconds worth of delays. Technically, we do not have - // to calculate that many at the end of the run, but there is no need to - // prevent the few excess delays from being calculated. - - { - ScopedLock lock(casacoreMutex); - ScopedDelayCancellation dc; - - // For each given moment in time ... - for (uint i = 0; i < itsNrCalcDelays; i ++) { - // Set the instant in time in the itsFrame (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT) - itsFrame.resetEpoch(toUTC(currentTime)); - - // Check whether we will store results in a valid place - ASSERTSTR(tail < bufferSize, tail << " < " << bufferSize); - - // For each given direction in the sky ... - for (uint b = 0; b < itsNrBeams; b ++) { - MDirection::Convert &converter = itsConverters[itsDirectionTypes[b]]; - - for (uint p = 0; p < itsNrTABs[b] + 1; p ++) { - // Define the astronomical direction as a J2000 direction. - MVDirection &sky = itsBeamDirections[b][p]; - - // Convert this direction, using the conversion engine. - MDirection dir = converter(sky); - - // Add to the return vector - itsBuffer[tail][b][p] = dir.getValue(); - } - } - - // Advance time for the next calculation - currentTime += itsNrSamplesPerSec; - - // Advance to the next result set. - // since bufferSize % itsNrCalcDelays == 0, wrap - // around can only occur between runs - ++ tail; - } - } - // check for wrap around for the next run - if (tail >= bufferSize) - tail = 0; - - itsDelayTimer.stop(); - - bufferUsed.up(itsNrCalcDelays); - } - } catch (AipsError &ex) { - // trigger getNextDelays and force it to stop - stop = true; - bufferUsed.up(1); - - THROW(IONProcException, "AipsError: " << ex.what()); - } - - LOG_DEBUG("Delay compensation thread stopped"); -} - - -void Delays::getNextDelays(Matrix<MVDirection> &directions, Matrix<double> &delays) -{ - ASSERTSTR(directions.num_elements() == itsNrBeams * (itsMaxNrTABs + 1), - directions.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1)); - - ASSERTSTR(delays.num_elements() == itsNrBeams * (itsMaxNrTABs + 1), - delays.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1)); - - ASSERT(itsThread); - - bufferUsed.down(); - - if (stop) - THROW(IONProcException, "Cannot obtain delays -- delay thread stopped running"); - - // copy the directions at itsBuffer[head] into the provided buffer, - // and calculate the respective delays - for (unsigned b = 0; b < itsNrBeams; b ++) { - for (unsigned p = 0; p < itsNrTABs[b] + 1; p ++) { - const MVDirection &dir = itsBuffer[head][b][p]; - - directions[b][p] = dir; - delays[b][p] = dir * itsPhasePositionDiff * (1.0 / speedOfLight); - } - } - - // increment the head pointer - if (++ head == bufferSize) - head = 0; - - bufferFree.up(); -} - - -void Delays::setBeamDirections(const Parset &parset) -{ - // TODO: For now, we include pencil beams for all regular beams, - // and use the pencil beam offsets as offsets in J2000. - // To do the coordinates properly, the offsets should be applied - // in today's coordinates (JMEAN/JTRUE?), not J2000. - - itsBeamDirections.resize(itsNrBeams, itsMaxNrTABs + 1); - itsDirectionTypes.resize(itsNrBeams); - - for (unsigned beam = 0; beam < itsNrBeams; beam ++) { - const string type = toUpper(parset.getBeamDirectionType(beam)); - - if (!MDirection::getType(itsDirectionTypes[beam], type)) - THROW(IONProcException, "Beam direction type unknown: " << type); - } - - // Get the source directions from the parameter set. - // Split the \a dir vector into separate Direction objects. - for (unsigned beam = 0; beam < itsNrBeams; beam ++) { - const vector<double> beamDir = parset.getBeamDirection(beam); - const BeamCoordinates& TABs = parset.TABs(beam); - - // add central beam coordinates for non-beamforming pipelines - itsBeamDirections[beam][0] = MVDirection(beamDir[0], beamDir[1]); - - for (unsigned pencil = 0; pencil < itsNrTABs[beam]; pencil ++) { - // obtain pencil coordinate - const BeamCoord3D &pencilCoord = TABs[pencil]; - - // apply angle modification - const double angle1 = beamDir[0] + pencilCoord[0]; - const double angle2 = beamDir[1] + pencilCoord[1]; - - // store beam - itsBeamDirections[beam][pencil + 1] = MVDirection(angle1, angle2); - } - } -} - - -void Delays::setPositionDiff(const Parset &parset) -{ - // Calculate the station to reference station position difference of apply station. - - // Station positions must be given in ITRF - string str = toUpper(parset.positionType()); - - if (str != "ITRF") - THROW(IONProcException, "OLAP.DelayComp.positionType must be ITRF"); - - // Get the antenna positions from the parameter set. The antenna - // positions are stored as one large vector of doubles. - const MVPosition pRef(parset.getRefPhaseCentre()); - const MVPosition phaseCentre(parset.getPhaseCentreOf(itsStationName)); - - itsPhaseCentre = MPosition(phaseCentre, MPosition::ITRF); - itsPhasePositionDiff = phaseCentre - pRef; -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/Delays.h b/RTCP/IONProc/src/Delays.h deleted file mode 100644 index 931513cb29105ad153df59da6f13866898739fb6..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Delays.h +++ /dev/null @@ -1,170 +0,0 @@ -//# Delays.h: Calculate delay compensation for all stations. -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_DELAYS_H -#define LOFAR_IONPROC_DELAYS_H - -// \file -// Calculate delay compensation for all stations. - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Common/Timer.h> -#include <Interface/MultiDimArray.h> -#include <Interface/Parset.h> -#include <Interface/RSPTimeStamp.h> -#include <Interface/SmartPtr.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> - -#include <measures/Measures/MeasConvert.h> -#include <measures/Measures/MDirection.h> -#include <measures/Measures/MPosition.h> -#include <casa/Quanta/MVDirection.h> -#include <casa/Quanta/MVPosition.h> -#include <casa/Quanta/MVEpoch.h> - -namespace LOFAR { -namespace RTCP { - - // Speed of light in vacuum, in m/s. -const double speedOfLight = 299792458; - -// Workholder for calculating the delay compensation that must be applied -// per beam per station. We start by calculating the path length -// difference for beam \f$\mathbf{b}_i\f$ between station \f$j\f$ at -// position \f$\mathbf{p}_j\f$ and the reference station 0 at position -// \f$\mathbf{p}_0\f$. -// \f[ -// d_{ij} - d_{i0} = \mathbf{b}_i \cdot \mathbf{p}_j -// - \mathbf{b}_i \cdot \mathbf{p}_0 -// = \mathbf{b}_i \cdot (\mathbf{p}_j - \mathbf{p}_0) -// \f] -// The choice of reference station is arbitrary, so we simply choose the -// first station from the parameter set. From the equation above it is -// clear that we can reduce the number of dot products if we precalculate -// the position difference vectors \f$\mathbf{p}_j - \mathbf{p}_0$\f, -// which we will store in \c itsPositionDiffs. -// -// The geometrical delay is easily obtained by dividing the path length -// difference by the speed of light in vacuum. We don't need to know the -// speed of light in the atmosphere, because the AZEL directions that -// we've calculated are valid for vacuum (only!). This is the delay that -// must be compensated for. -// -// The calculated delay compensation must be split into a coarse (whole -// sample) delay and a fine (subsample) delay. The coarse delay will be -// applied in the input section as a true time delay, by shifting the -// input samples. The fine delay will be applied in the correlator as a -// phase shift in each frequency channel. -class Delays -{ - public: - Delays(const Parset &ps, const string &stationName, const TimeStamp &startTime); - ~Delays(); - - void start(); - - // get the set of directions (ITRF) and delays for the beams, for the next CN integration time - // Both matrices must have dimensions [itsNrBeams][itsMaxNrTABs+1] - void getNextDelays(Matrix<casa::MVDirection> &directions, Matrix<double> &delays); - - private: - casa::MVEpoch toUTC(int64 timeInSamples); - - void init(); - - // do the delay compensation calculations in a separate thread to allow bulk - // calculations and to avoid blocking other threads - void mainLoop(); - - const Parset &itsParset; - - volatile bool stop; - - // the circular buffer to hold the moving beam directions for every second of data - Cube<casa::MVDirection> itsBuffer; - size_t head, tail; - - // two semaphores are used: one to trigger the producer that free space is available, - // another to trigger the consumer that data is available. - Semaphore bufferFree, bufferUsed; - - // the number of seconds to maintain in the buffer - static const size_t bufferSize = 128; - - // the number of delays to calculate in a single run - const unsigned itsNrCalcDelays; - - // Get the source directions from the parameter file and initialize \c - // itsBeamDirections. Beam positions must be specified as - // <tt>(longitude, latitude, direction-type)</tt>. The direction angles - // are in radians; the direction type must be one of J2000, ITRF, or - // AZEL. - void setBeamDirections(const Parset &); - - // Set the station to reference station position differences for - // all stations. CS002LBA is the reference station, even if it - // does not take part in the observation. The position - // differences are stored in \c itsPositionDiffs. In other - // words: we store \f$\mathbf{p}_j - \mathbf{p}_0\f$, where - // \f$\mathbf{p}_0\f$ is the position of the reference station - // and \f$\mathbf{p}_j\f$ is the position of station \f$j\f$. - void setPositionDiff(const Parset &); - - // Beam info. - const unsigned itsNrBeams; - const unsigned itsMaxNrTABs; - const std::vector<unsigned> itsNrTABs; - Vector<casa::MDirection::Types> itsDirectionTypes; - Matrix<casa::MVDirection> itsBeamDirections; // [itsNrBeams][itsMaxNrTABs+1] - - // Sample timings. - const TimeStamp itsStartTime; - const unsigned itsNrSamplesPerSec; - const double itsSampleDuration; - - // Station Name. - const string itsStationName; - casa::MeasFrame itsFrame; - std::map<casa::MDirection::Types, casa::MDirection::Convert> itsConverters; - - // Station phase centre. - casa::MPosition itsPhaseCentre; - - // Station to reference station position difference vector. - casa::MVPosition itsPhasePositionDiff; - - NSTimer itsDelayTimer; - - SmartPtr<Thread> itsThread; -}; - -// Initalialise casacore (call at beginning of program). Returns whether -// initialisation was succesful. -bool Casacore_Init(); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/FCNP_ServerStream.cc b/RTCP/IONProc/src/FCNP_ServerStream.cc deleted file mode 100644 index 266662e655c173cf5fc9b12b01c535d2f8232fc8..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/FCNP_ServerStream.cc +++ /dev/null @@ -1,102 +0,0 @@ -//# FCNP.cc: Fast Collective Network Protocol -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#if defined HAVE_FCNP && defined __PPC__ - -#include <Common/Timer.h> -#include <Interface/Align.h> -#include <Interface/AlignedStdAllocator.h> -#include <FCNP/fcnp_ion.h> -#include <FCNP_ServerStream.h> - -#include <algorithm> -#include <cstring> -#include <vector> - - -namespace LOFAR { -namespace RTCP { - - -std::vector<FCNP_ServerStream *> FCNP_ServerStream::allStreams; - - -FCNP_ServerStream::FCNP_ServerStream(unsigned core, unsigned channel) -: - itsCore(core), - itsChannel(channel) -{ - if (allStreams.size() <= core) - allStreams.resize(core + 1); - - allStreams[core] = this; -} - - -FCNP_ServerStream::~FCNP_ServerStream() -{ - *std::find(allStreams.begin(), allStreams.end(), this) = 0; -} - - -size_t FCNP_ServerStream::tryWrite(const void *buf, size_t size) -{ - //LOG_DEBUG_STR("FCNP_ServerStream::write(" << std::hex << buf << ", " << std::dec << size << ") to " << itsCore); - - if (!aligned(buf, 16) || !aligned(size, 16)) { - size_t alignedSize = align(size, 16); - std::vector<char, AlignedStdAllocator<char, 16> > alignedBuffer(alignedSize); - - memcpy(&alignedBuffer[0], buf, size); - FCNP_ION::IONtoCN_ZeroCopy(itsCore, itsChannel, &alignedBuffer[0], alignedSize); - } else { - FCNP_ION::IONtoCN_ZeroCopy(itsCore, itsChannel, buf, size); - } - - return size; -} - - -size_t FCNP_ServerStream::tryRead(void *buf, size_t size) -{ - //LOG_DEBUG_STR(std::dec << "FCNP_ServerStream::read(" << std::hex << buf << ", " << std::dec << size << ") from " << itsCore); - - if (!aligned(buf, 16) || !aligned(size, 16)) { - size_t alignedSize = align(size, 16); - std::vector<char, AlignedStdAllocator<char, 16> > alignedBuffer(alignedSize); - - FCNP_ION::CNtoION_ZeroCopy(itsCore, itsChannel, &alignedBuffer[0], alignedSize); - memcpy(buf, &alignedBuffer[0], size); - } else { - FCNP_ION::CNtoION_ZeroCopy(itsCore, itsChannel, buf, size); - } - - return size; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/FCNP_ServerStream.h b/RTCP/IONProc/src/FCNP_ServerStream.h deleted file mode 100644 index 553c9465e390d60aa595fd25a448902e9ed31232..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/FCNP_ServerStream.h +++ /dev/null @@ -1,54 +0,0 @@ -//# TH_FCNP_Server.h: TransportHolder that implements FCNP protocol -//# -//# Copyright (C) 2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_SERVER_STREAM_H -#define LOFAR_IONPROC_SERVER_STREAM_H - -#if defined HAVE_FCNP && defined __PPC__ - -#include <Stream/Stream.h> -#include <vector> - -namespace LOFAR { -namespace RTCP { - -class FCNP_ServerStream : public Stream -{ - public: - FCNP_ServerStream(unsigned core, unsigned channel); - virtual ~FCNP_ServerStream(); - - virtual size_t tryRead(void *ptr, size_t size); - virtual size_t tryWrite(const void *ptr, size_t size); - - private: - static std::vector<FCNP_ServerStream *> allStreams; - - unsigned itsCore; - unsigned itsChannel; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif -#endif diff --git a/RTCP/IONProc/src/GlobalVars.cc b/RTCP/IONProc/src/GlobalVars.cc deleted file mode 100644 index be174d44012b3ad6d5d89cc3a85d25f2371d861c..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/GlobalVars.cc +++ /dev/null @@ -1,65 +0,0 @@ -//# GlobalVars.cc: global variables -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - -#include <lofar_config.h> - -#include <GlobalVars.h> -#include <Interface/CN_Mapping.h> -#include <Interface/SmartPtr.h> -#include <Interface/Stream.h> -#include <boost/multi_array.hpp> - -#if defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND -#include <FCNP/fcnp_ion.h> -#include <FCNP_ServerStream.h> -#endif - -namespace LOFAR { -namespace RTCP { - -unsigned myPsetNumber, nrPsets, nrCNcoresInPset; -std::vector<SmartPtr<Stream> > allIONstreams; -Matrix<SmartPtr<Stream> > allCNstreams; - -std::vector<SmartPtr<StreamMultiplexer> > allIONstreamMultiplexers; - -const char *cnStreamType; - -Stream *createCNstream(unsigned pset, unsigned core, unsigned channel) -{ - // translate logical to physical core number - core = CN_Mapping::mapCoreOnPset(core, myPsetNumber); - -#if defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND - ASSERT( pset == myPsetNumber ); - - if (strcmp(cnStreamType, "FCNP") == 0) - return new FCNP_ServerStream(core, channel); -#endif - - string descriptor = getStreamDescriptorBetweenIONandCN(cnStreamType, myPsetNumber, pset, core, nrPsets, nrCNcoresInPset, channel); - - return createStream(descriptor, true); -} - - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/IONProc/src/GlobalVars.h b/RTCP/IONProc/src/GlobalVars.h deleted file mode 100644 index 19817223c904df50c1f9796e1f235b1a859e5346..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/GlobalVars.h +++ /dev/null @@ -1,48 +0,0 @@ -//# GlobalVars.h -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#if !defined LOFAR_RTCP_GLOBALVARS_H -#define LOFAR_RTCP_GLOBALVARS_H - -#include <StreamMultiplexer.h> -#include <Interface/SmartPtr.h> -#include <Interface/MultiDimArray.h> - -#include <vector> - -namespace LOFAR { -namespace RTCP { - - -extern std::vector<SmartPtr<Stream> > allIONstreams; -extern Matrix<SmartPtr<Stream> > allCNstreams; -extern std::vector<SmartPtr<StreamMultiplexer> > allIONstreamMultiplexers; -extern unsigned myPsetNumber, nrPsets, nrCNcoresInPset; - -extern const char *cnStreamType; -extern Stream *createCNstream(unsigned pset, unsigned core, unsigned channel); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/IONProc.log_prop b/RTCP/IONProc/src/IONProc.log_prop deleted file mode 100644 index c8288c9751c7b475e3d48b75a94ce6a8c2018978..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/IONProc.log_prop +++ /dev/null @@ -1,14 +0,0 @@ -# Configure the rootLogger -log4cplus.rootLogger=INFO, STDOUT -log4cplus.LCS.Common=INFO, STDOUT -log4cplus.logger.TRC=TRACE, NOLOG -log4cplus.logger.TRC.additivity=false -log4cplus.additivity=false -# Define the STDOUT appender -log4cplus.appender.STDOUT=log4cplus::ConsoleAppender -log4cplus.appender.STDOUT.Threshhold=TRACE2 -log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout -log4cplus.appender.STDOUT.layout.ConversionPattern=%-5p [%x]%c{3} - %m%n -log4cplus.appender.STDOUT.logToStdErr=false -log4cplus.appender.STDOUT.ImmediateFlush=true -log4cplus.appender.NOLOG=log4cplus::NullAppender diff --git a/RTCP/IONProc/src/IONProc.supp b/RTCP/IONProc/src/IONProc.supp deleted file mode 100644 index 0f3039f9dfb1f81d54f900a82a9e0e4440728722..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/IONProc.supp +++ /dev/null @@ -1,119 +0,0 @@ -{ - MPI uninitialised memory usage - Memcheck:Param - sched_setaffinity(mask) - fun:syscall - fun:opal_paffinity_linux_plpa_api_probe_init - fun:opal_paffinity_linux_plpa_have_topology_information - fun:linux_module_init - fun:opal_paffinity_base_select - fun:opal_init - fun:orte_init - fun:ompi_mpi_init - fun:PMPI_Init - fun:main -} -{ - MPI leak - Memcheck:Leak - ... - fun:ompi_mpi_init -} -{ - MPI leak - Memcheck:Leak - ... - fun:mca_pml_base_open -} -{ - MPI leak - Memcheck:Leak - ... - fun:PMPI_Init - fun:main -} -{ - MPI leak - Memcheck:Leak - ... - fun:PMPI_Finalize - fun:main -} -{ - MPI leak - Memcheck:Leak - ... - fun:orte_init -} -{ - MPI leak - Memcheck:Leak - ... - fun:orte_ess_base_app_setup -} -{ - MPI leak - Memcheck:Leak - ... - fun:rte_init -} -{ - pthread stack cache - Memcheck:Leak - ... - fun:_dl_allocate_tls - fun:pthread_create* - ... -} -{ - casacore static variables - Memcheck:Leak - fun:_Znwj - fun:_ZNK4casa9LogFilter5cloneEv - ... -} -{ - casacore static variables - Memcheck:Leak - fun:_Znwj - fun:_ZN4casa7LogSinkC1ENS_10LogMessage8PriorityEb - ... -} -{ - casacore static variables - Memcheck:Leak - fun:_Znwj - fun:_ZN4casa10CountedPtrINS_16LogSinkInterfaceEEC1EPS1_b - ... -} -{ - casacore static variables - Memcheck:Leak - fun:_Znaj - fun:_ZN4casa8MeasIERS8openNoteEPFvvE - ... -} -{ - casacore static variables - Memcheck:Leak - fun:_Znaj - fun:_ZN4casa9MeasTable4dUTCEd - ... -} -{ - LogCout static variables - Memcheck:Leak - fun:_Znwj - fun:_ZN5LOFAR7LFDebug8setLevelERKSsi - ... -} -{ - LogCout static variables - Memcheck:Leak - fun:_Znwj - fun:_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_ - fun:_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE13insert_uniqueERKS2_ - fun:_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE13insert_uniqueESt17_Rb_tree_iteratorIS2_ERKS2_ - fun:_ZN5LOFAR7LFDebug8setLevelERKSsi - ... -} diff --git a/RTCP/IONProc/src/ION_Allocator.cc b/RTCP/IONProc/src/ION_Allocator.cc deleted file mode 100644 index e2a5a28d7940fe12dc04a12d490117b95bf71532..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ION_Allocator.cc +++ /dev/null @@ -1,61 +0,0 @@ -//# ION_Allocator.cc: Class that allocates memory in the large-TLB area of the -//# I/O Node -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Interface/Allocator.h> -#include <ION_Allocator.h> - -#include <cstdlib> -#include <iostream> - -namespace LOFAR { -namespace RTCP { - -#if defined FLAT_MEMORY -/* - * Flat memory: - * Total size: 1.6 GByte - * - * Input section: - * 4 * nrSlotsInFrame * nrSecondsOfBuffer * sampleRate * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE) (BeamletBuffer.cc) - * <= 4 * 61 * 2.5 * 200e6/1024 * 2 * 2 - * = 476562500 bytes < 455 MByte - * - * Output section: - * ~ 1.1 Gbyte left - * IONProc can output at most 1.1 GByte/s if it handles input (limited by CPU power) - * -> 1 second of buffer @ highest data rate - * - * For lower data rates, we likely want to buffer more (f.e. CorrelatedData with an integration time of 1 second) - */ -static FixedArena arena(reinterpret_cast<void *>(0x50000000), 0x60000000); -SparseSetAllocator hugeMemoryAllocator(arena); -#else -HeapAllocator &hugeMemoryAllocator = heapAllocator; -#endif - - -} // end namespace RTCP -} // end namespace LOFAR diff --git a/RTCP/IONProc/src/ION_Allocator.h b/RTCP/IONProc/src/ION_Allocator.h deleted file mode 100644 index bb59096a21bcfbc5d6462ef493499bef21a37d7d..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ION_Allocator.h +++ /dev/null @@ -1,45 +0,0 @@ -//# ION_Allocator.h: Class that allocates memory in the large-TLB area of the -//# I/O Node -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_ION_ALLOCATOR_H -#define LOFAR_IONPROC_ION_ALLOCATOR_H - -#include <Interface/Allocator.h> - -#if defined HAVE_BGP && !defined USE_VALGRIND -# define FLAT_MEMORY -#endif - -namespace LOFAR { -namespace RTCP { - -#if defined FLAT_MEMORY -extern SparseSetAllocator hugeMemoryAllocator; -#else -extern HeapAllocator &hugeMemoryAllocator; -#endif - -} // end namespace RTCP -} // end namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/ION_main.cc b/RTCP/IONProc/src/ION_main.cc deleted file mode 100644 index 09994df02e68571b362c29794b3d612c43eb8148..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ION_main.cc +++ /dev/null @@ -1,428 +0,0 @@ -//# ION_main.cc: -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> -#include <GlobalVars.h> - -#include <CommandServer.h> -#include <Common/LofarLogger.h> -#include <Common/CasaLogSink.h> -#include <Common/NewHandler.h> -#include <Common/SystemCallException.h> -#include <Interface/CN_Command.h> -#include <Interface/CN_Mapping.h> -#include <Interface/Exceptions.h> -#include <Interface/SmartPtr.h> -#include <Interface/Stream.h> -#include <Interface/Parset.h> -#include <ION_Allocator.h> -#include <Delays.h> -#include <SSH.h> -#include <Stream/SocketStream.h> -#include <StreamMultiplexer.h> -#include <IONProc/Package__Version.h> - -#include <boost/multi_array.hpp> -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <execinfo.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/resource.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <sys/mman.h> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> - -#if defined HAVE_MPI -#include <mpi.h> -#endif - -#if defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND -#include <FCNP/fcnp_ion.h> -#include <FCNP_ServerStream.h> -#endif - -#ifdef USE_VALGRIND -extern "C" { -#include <valgrind/valgrind.h> - -/* - * Valgrind wrappers to replace functions which use Double Hummer instructions, - * since valgrind can't cope with them. - * - * Outside valgrind, these functions are not used. - */ - -void *I_WRAP_SONAME_FNNAME_ZZ(Za,memcpy)( void *b, const void *a, size_t n) { - char *s1 = static_cast<char*>(b); - const char *s2 = static_cast<const char*>(a); - for(; 0<n; --n)*s1++ = *s2++; - return b; -} - -void *I_WRAP_SONAME_FNNAME_ZZ(Za,memset)( void *dest, int val, size_t len) { - unsigned char *ptr = static_cast<unsigned char*>(dest); - while (len-- > 0) - *ptr++ = val; - return dest; -} - -} -#endif - -// install a new handler to produce backtraces for std::bad_alloc -LOFAR::NewHandler h(LOFAR::BadAllocException::newHandler); - -// Use a terminate handler that can produce a backtrace. -LOFAR::Exception::TerminateHandler t(LOFAR::Exception::terminate); - - -namespace LOFAR { -namespace RTCP { - -static boost::multi_array<char, 2> ipAddresses; - -#if defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND -static struct InitFCNP { - InitFCNP() { FCNP_ION::init(true); } - ~InitFCNP() { FCNP_ION::end(); } -} initFCNP; -#endif - -static void createAllCNstreams() -{ - LOG_DEBUG_STR("Create streams to CN nodes ..."); - - const char *streamType = getenv("CN_STREAM_TYPE"); - - if (streamType != 0) - cnStreamType = streamType; - else -#if !defined HAVE_BGP_ION - cnStreamType = "NULL"; -#elif defined HAVE_FCNP && defined __PPC__ && !defined USE_VALGRIND - cnStreamType = "FCNP"; -#else - cnStreamType = "TCPKEY"; -#endif - - allCNstreams.resize(nrPsets,nrCNcoresInPset); - -#ifdef CLUSTER_SCHEDULING - for (unsigned pset = 0; pset < nrPsets; pset ++) - for (unsigned core = 0; core < nrCNcoresInPset; core ++) - allCNstreams[pset][core] = createCNstream(pset, core, 0); -#else - for (unsigned core = 0; core < nrCNcoresInPset; core ++) - allCNstreams[myPsetNumber][core] = createCNstream(myPsetNumber, core, 0); -#endif - - LOG_DEBUG_STR("Create streams to CN nodes done"); -} - - -static void stopCNs() -{ - LOG_DEBUG_STR("Stopping " << nrCNcoresInPset << " cores ..."); - - CN_Command command(CN_Command::STOP); - - for (unsigned core = 0; core < nrCNcoresInPset; core ++) - command.write(allCNstreams[myPsetNumber][core]); - - LOG_DEBUG_STR("Stopping " << nrCNcoresInPset << " cores: done"); -} - - -static void createAllIONstreams() -{ - LOG_DEBUG_STR("Create streams between I/O nodes ..."); - - if (myPsetNumber == 0) { - allIONstreams.resize(nrPsets); - allIONstreamMultiplexers.resize(nrPsets); - - for (unsigned ion = 1; ion < nrPsets; ion ++) { - allIONstreams[ion] = new SocketStream(ipAddresses[ion].origin(), 4000 + ion, SocketStream::TCP, SocketStream::Client); - allIONstreamMultiplexers[ion] = new StreamMultiplexer(*allIONstreams[ion]); - allIONstreamMultiplexers[ion]->start(); - } - } else { - allIONstreams.push_back(new SocketStream(ipAddresses[myPsetNumber].origin(), 4000 + myPsetNumber, SocketStream::TCP, SocketStream::Server)); - allIONstreamMultiplexers.push_back(new StreamMultiplexer(*allIONstreams[0])); - allIONstreamMultiplexers[0]->start(); - } - - LOG_DEBUG_STR("Create streams between I/O nodes: done"); -} - - -static void enableCoreDumps() -{ - struct rlimit rlimit; - - rlimit.rlim_cur = RLIM_INFINITY; - rlimit.rlim_max = RLIM_INFINITY; - - if (setrlimit(RLIMIT_CORE, &rlimit) < 0) - perror("warning: setrlimit on unlimited core size failed"); - -#if defined HAVE_BGP - if (system("echo /tmp/%e.core >/proc/sys/kernel/core_pattern") < 0) - LOG_WARN("Could not change /proc/sys/kernel/core_pattern"); -#endif - - LOG_DEBUG("Coredumps enabled"); -} - - -static void abortHandler(int sig) -{ - (void)sig; - - abort(); -} - - -static void installSigHandlers() -{ - // ignore SIGPIPE - if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) - perror("warning: ignoring SIGPIPE failed"); - - // force abort() on a few signals, as OpenMPI appears to be broken in this regard - if (signal(SIGBUS, abortHandler) == SIG_ERR) - perror("warning: rerouting SIGBUS failed"); - if (signal(SIGSEGV, abortHandler) == SIG_ERR) - perror("warning: rerouting SIGSEGV failed"); - if (signal(SIGILL, abortHandler) == SIG_ERR) - perror("warning: rerouting SIGILL failed"); - if (signal(SIGFPE, abortHandler) == SIG_ERR) - perror("warning: rerouting SIGFPE failed"); -} - - -#if defined FLAT_MEMORY - -static void *flatMemoryAddress = reinterpret_cast<void *>(0x50000000); -static size_t flatMemorySize = 1536 * 1024 * 1024; - -static void mmapFlatMemory() -{ - // mmap a fixed area of flat memory space to increase performance. - // currently only 1.5 GiB can be allocated, we mmap() the maximum - // available amount - int fd = open("/dev/flatmem", O_RDONLY); - - if (fd < 0) { - perror("open(\"/dev/flatmem\", O_RDONLY)"); - exit(1); - } - - if (mmap(flatMemoryAddress, flatMemorySize, PROT_READ, MAP_PRIVATE | MAP_FIXED, fd, 0) == MAP_FAILED) { - perror("mmap flat memory"); - exit(1); - } - - close(fd); - - LOG_DEBUG_STR("Mapped " << flatMemorySize << " bytes of fast memory at " << flatMemoryAddress); -} - -static void unmapFlatMemory() -{ - if (munmap(flatMemoryAddress, flatMemorySize) < 0) - perror("munmap flat memory"); -} - -#endif - - -static void master_thread() -{ -#if !defined HAVE_PKVERSION - std::string type = "brief"; - Version::show<IONProcVersion> (std::clog, "IONProc", type); -#endif - - LOG_DEBUG("Master thread running"); - - enableCoreDumps(); - installSigHandlers(); - - try { - -#if defined FLAT_MEMORY - mmapFlatMemory(); -#endif - - if (getenv("AIPSPATH") == 0) - setenv("AIPSPATH", "/globalhome/lofarsystem/packages/root/bgp_ion/", 0); - -#if defined HAVE_BGP - // TODO: how to figure these out? - nrCNcoresInPset = 64; - - // nrPsets is communicated by MPI -#else - const char *nr_psets = getenv("NR_PSETS"); - const char *pset_size = getenv("PSET_SIZE"); - - if (nr_psets == 0) - throw IONProcException("environment variable NR_PSETS must be defined", THROW_ARGS); - - if (pset_size == 0) - throw IONProcException("environment variable PSET_SIZE must be defined", THROW_ARGS); - - nrPsets = boost::lexical_cast<unsigned>(nr_psets); - nrCNcoresInPset = boost::lexical_cast<unsigned>(pset_size); -#endif - - createAllCNstreams(); - createAllIONstreams(); - { CommandServer s; s.start(); } - - stopCNs(); - -#if defined FLAT_MEMORY - unmapFlatMemory(); -#endif - - } catch (Exception &ex) { - LOG_FATAL_STR("Master thread caught Exception: " << ex); - } catch (std::exception &ex) { - LOG_FATAL_STR("Master thread caught std::exception: " << ex.what()); - } catch (...) { - LOG_FATAL("Master thread caught non-std::exception: "); - } - - LOG_DEBUG("Master thread stopped"); -} - - -} // namespace RTCP -} // namespace LOFAR - - -int main(int argc, char **argv) -{ - using namespace LOFAR; - using namespace LOFAR::RTCP; - -#if defined HAVE_MPI -#if 1 - if (MPI_Init(&argc, &argv) != MPI_SUCCESS) { - std::cerr << "MPI_Init failed" << std::endl; - exit(1); - } -#else - int provided; - - MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); - - if (provided != MPI_THREAD_MULTIPLE) { - std::cerr << "MPI does not provide MPI_THREAD_MULTIPLE" << std::endl; - exit(1); - } -#endif - - MPI_Comm_rank(MPI_COMM_WORLD, reinterpret_cast<int *>(&myPsetNumber)); - MPI_Comm_size(MPI_COMM_WORLD, reinterpret_cast<int *>(&nrPsets)); -#else - (void) argc; - (void) argv; -#endif - -#if defined HAVE_MPI - ipAddresses.resize(boost::extents[nrPsets][16]); - -#if defined HAVE_BGP_ION - ParameterSet personality("/proc/personality.sh"); -#if 0 - unsigned realPsetNumber = personality.getUint32("BG_PSETNUM"); - - if (myPsetNumber != realPsetNumber) { - std::cerr << "myPsetNumber (" << myPsetNumber << ") != realPsetNumber (" << realPsetNumber << ')' << std::endl; - exit(1); - } -#endif - - std::string myIPaddress = personality.getString("BG_IP"); - strcpy(ipAddresses[myPsetNumber].origin(), myIPaddress.c_str()); -#else - const char *uri = getenv("OMPI_MCA_orte_local_daemon_uri"); - - if (uri == 0) { - std::cerr << "\"OMPI_MCA_orte_local_daemon_uri\" not in environment" << std::endl; - exit(1); - } - - if (sscanf(uri, "%*u.%*u;tcp://%[0-9.]:%*u", ipAddresses[myPsetNumber].origin()) != 1) { - std::cerr << "could not parse environment variable \"OMPI_MCA_orte_local_daemon_uri\"" << std::endl; - exit(1); - } -#endif - - for (unsigned root = 0; root < nrPsets; root ++) - if (MPI_Bcast(ipAddresses[root].origin(), sizeof(char [16]), MPI_CHAR, root, MPI_COMM_WORLD) != MPI_SUCCESS) { - std::cerr << "MPI_Bcast failed" << std::endl; - exit(1); - } -#endif - -#if defined HAVE_BGP - INIT_LOGGER_WITH_SYSINFO(str(boost::format("IONProc@%02d") % myPsetNumber)); - bool isProduction = argc > 1 && argv[1][0] == '1'; - LOGCOUT_SETLEVEL(isProduction ? 4 : 8); // do (not) show debug info -#elif defined HAVE_LOG4CPLUS - // do nothing -#elif defined HAVE_LOG4CXX - Context::initialize(); - setLevel("Global", 8); -#else - INIT_LOGGER_WITH_SYSINFO(str(boost::format("IONProc@%02d") % myPsetNumber)); -#endif - - if (!SSH_Init()) { - std::cerr << "SSH subsystem init failed" << std::endl; - exit(1); - } - - if (!Casacore_Init()) { - std::cerr << "Casacore subsystem init failed" << std::endl; - exit(1); - } - - //CasaLogSink::attach(); - - master_thread(); - - SSH_Finalize(); - -#if defined HAVE_MPI - MPI_Finalize(); -#endif - - return 0; -} diff --git a/RTCP/IONProc/src/InputSection.cc b/RTCP/IONProc/src/InputSection.cc deleted file mode 100644 index 3476dbc54411fa3d4e3985501cc901baaa4f0fc4..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputSection.cc +++ /dev/null @@ -1,127 +0,0 @@ -//# InputSection.cc: Catch RSP ethernet frames and synchronize RSP inputs -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <InputSection.h> -#include <Stream/SocketStream.h> -#include <Interface/Stream.h> - -#include <boost/format.hpp> -using boost::format; - -namespace LOFAR { -namespace RTCP { - - -template<typename SAMPLE_TYPE> InputSection<SAMPLE_TYPE>::InputSection(const Parset &parset, unsigned psetNumber) -{ - std::vector<Parset::StationRSPpair> inputs = parset.getStationNamesAndRSPboardNumbers(psetNumber); - string stationName = inputs.size() > 0 ? inputs[0].station : "none"; // TODO: support more than one station - itsNrRSPboards = inputs.size(); - - itsLogPrefix = str(format("[station %s] ") % stationName); - - itsBeamletBuffers.resize(itsNrRSPboards); - - for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++) - itsBeamletBuffers[rsp] = new BeamletBuffer<SAMPLE_TYPE>(&parset, inputs[rsp].station, inputs[rsp].rsp); - - createInputStreams(parset, inputs); - createInputThreads(parset, inputs); -} - - -template<typename SAMPLE_TYPE> InputSection<SAMPLE_TYPE>::~InputSection() -{ - LOG_DEBUG_STR(itsLogPrefix << "InputSection::~InputSection()"); -} - - -template<typename SAMPLE_TYPE> void InputSection<SAMPLE_TYPE>::createInputStreams(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs) -{ - itsInputStreams.resize(itsNrRSPboards); - - for (unsigned i = 0; i < itsNrRSPboards; i ++) { - const std::string &station = inputs[i].station; - unsigned rsp = inputs[i].rsp; - std::string streamName = parset.getInputStreamName(station, rsp); - - LOG_DEBUG_STR(itsLogPrefix << "input " << i << ": RSP board " << rsp << ", reads from \"" << streamName << '"'); - - if (station != inputs[0].station) - THROW(IONProcException, "inputs from multiple stations on one I/O node not supported (yet)"); - - try { - itsInputStreams[i] = createStream(streamName, true); - } catch(SystemCallException &ex) { - LOG_ERROR_STR( "Could not open input stream " << streamName << ", using null stream instead: " << ex); - - itsInputStreams[i] = createStream("null:", true); - } - - SocketStream *sstr = dynamic_cast<SocketStream *>(itsInputStreams[i].get()); - - if (sstr != 0) - sstr->setReadBufferSize(8 * 1024 * 1024); // stupid kernel multiplies this by 2 - } -} - - -template<typename SAMPLE_TYPE> void InputSection<SAMPLE_TYPE>::createInputThreads(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs) -{ - itsLogThread = new LogThread(itsNrRSPboards, inputs.size() > 0 ? inputs[0].station : "none"); - itsLogThread->start(); - - /* start up thread which writes RSP data from ethernet link - into cyclic buffers */ - - typename InputThread<SAMPLE_TYPE>::ThreadArgs args; - - args.nrTimesPerPacket = parset.getInt32("OLAP.nrTimesInFrame", 16); - args.nrSlotsPerPacket = parset.nrSlotsInFrame(); - args.isRealTime = parset.realTime(); - args.startTime = TimeStamp(static_cast<int64>(parset.startTime() * parset.subbandBandwidth()), parset.clockSpeed()); - - itsInputThreads.resize(itsNrRSPboards); - - for (unsigned thread = 0; thread < itsNrRSPboards; thread ++) { - args.threadID = thread; - args.stream = itsInputStreams[thread]; - args.BBuffer = itsBeamletBuffers[thread]; - args.packetCounters = &itsLogThread->itsCounters[thread]; - args.logPrefix = str(format("[station %s board %s] ") % inputs[thread].station % inputs[thread].rsp); - - itsInputThreads[thread] = new InputThread<SAMPLE_TYPE>(args); - itsInputThreads[thread]->start(); - } -} - - -template class InputSection<i4complex>; -template class InputSection<i8complex>; -template class InputSection<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/InputSection.h b/RTCP/IONProc/src/InputSection.h deleted file mode 100644 index 0b8dd667cd0b854189344ba6f0a406d7866d9067..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputSection.h +++ /dev/null @@ -1,71 +0,0 @@ -//# InputSection.h: Catch RSP ethernet frames and synchronize RSP inputs -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_INPUTSECTION_H -#define LOFAR_IONPROC_INPUTSECTION_H - -// \file -// Catch RSP ethernet frames and synchronize RSP inputs - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Stream/Stream.h> -#include <BeamletBuffer.h> -#include <InputThread.h> -#include <LogThread.h> - -#include <boost/multi_array.hpp> -#include <pthread.h> - - -namespace LOFAR { -namespace RTCP { - -template <typename SAMPLE_TYPE> class InputSection -{ - public: - InputSection(const Parset &, unsigned psetNumber); - ~InputSection(); - - std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > itsBeamletBuffers; - - private: - void createInputStreams(const Parset &, const std::vector<Parset::StationRSPpair> &inputs); - void createInputThreads(const Parset &, const std::vector<Parset::StationRSPpair> &inputs); - - std::string itsLogPrefix; - - std::vector<SmartPtr<Stream > > itsInputStreams; - - unsigned itsNrRSPboards; - - SmartPtr<LogThread> itsLogThread; - std::vector<SmartPtr<InputThread<SAMPLE_TYPE> > > itsInputThreads; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/InputThread.cc b/RTCP/IONProc/src/InputThread.cc deleted file mode 100644 index 73eff30f57d81d9b717decd065aad06d34e32d8c..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputThread.cc +++ /dev/null @@ -1,206 +0,0 @@ -//# InputThread.cc: the thread that reads from a Stream and places data into -//# the buffer of the input section -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <Common/DataConvert.h> -#include <Common/LofarLogger.h> -#include <Common/SystemCallException.h> -#include <Common/Timer.h> -#include <Interface/AlignedStdAllocator.h> -#include <Interface/Exceptions.h> -#include <Interface/SmartPtr.h> -#include <Stream/NullStream.h> -#include <Stream/SocketStream.h> -#include <BeamletBuffer.h> -#include <InputThread.h> -#include <RSP.h> -#include <Scheduling.h> -#include <Common/Thread/Cancellation.h> - -#include <cstddef> - -#include <boost/multi_array.hpp> - - -namespace LOFAR { -namespace RTCP { - - -template <typename SAMPLE_TYPE> InputThread<SAMPLE_TYPE>::InputThread(ThreadArgs args /* call by value! */) -: - itsArgs(args) -{ - LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::InputThread(...)"); -} - - -template <typename SAMPLE_TYPE> void InputThread<SAMPLE_TYPE>::start() -{ - itsThread = new Thread(this, &InputThread<SAMPLE_TYPE>::mainLoop, itsArgs.logPrefix + "[InputThread] ", 65536); -} - - -template <typename SAMPLE_TYPE> InputThread<SAMPLE_TYPE>::~InputThread() -{ - LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::~InputThread()"); - - if (itsThread) - itsThread->cancel(); -} - - -template <typename SAMPLE_TYPE> void InputThread<SAMPLE_TYPE>::mainLoop() -{ -#if 0 && defined HAVE_BGP_ION - if (0 && itsArgs.threadID == 0) - runOnCore0(); - else - doNotRunOnCore0(); -#endif - -#if 1 && defined HAVE_BGP_ION - doNotRunOnCore0(); -#endif - - const unsigned maxNrPackets = 128; - TimeStamp actualstamp = itsArgs.startTime - itsArgs.nrTimesPerPacket; - unsigned packetSize = sizeof(struct RSP::Header) + itsArgs.nrSlotsPerPacket * itsArgs.nrTimesPerPacket * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE); - - std::vector<TimeStamp> timeStamps(maxNrPackets); - boost::multi_array<char, 2, AlignedStdAllocator<char, 32> > packets(boost::extents[maxNrPackets][packetSize]); - //boost::multi_array<char, 2, FlatMemoryAllocator<char> > packets(boost::extents[maxNrPackets][packetSize]); - - char *currentPacketPtr = packets.origin(); - unsigned currentPacket = 0; - - unsigned previousSeqid = 0; - bool previousSeqidIsAccepted = false; - - bool dataShouldContainValidStamp = dynamic_cast<NullStream *>(itsArgs.stream) == 0; - bool isUDPstream = dynamic_cast<SocketStream *>(itsArgs.stream) != 0 && dynamic_cast<SocketStream *>(itsArgs.stream)->protocol == SocketStream::UDP; - WallClockTime wallClockTime; - - LOG_DEBUG_STR(itsArgs.logPrefix << " input thread " << itsArgs.threadID << " entering loop"); - - while (true) { - try { - // cancelable read, to allow stopping this thread even if the station - // does not send data - - if (isUDPstream) { - if (itsArgs.stream->tryRead(currentPacketPtr, packetSize) != packetSize) { - ++ itsArgs.packetCounters->received; - ++ itsArgs.packetCounters->badSize; - continue; - } - } else { - Cancellation::point(); // allow cancellation from null: - itsArgs.stream->read(currentPacketPtr, packetSize); - } - } catch (Stream::EndOfStreamException &) { - break; - } catch (SystemCallException &ex) { - if (ex.error == EINTR) - break; - else - throw; - } - - ++ itsArgs.packetCounters->received; - - if (dataShouldContainValidStamp) { -#if defined __PPC__ - unsigned seqid, blockid; - - asm volatile ("lwbrx %0,%1,%2" : "=r" (seqid) : "b" (currentPacketPtr), "r" (offsetof(RSP, header.timestamp))); - asm volatile ("lwbrx %0,%1,%2" : "=r" (blockid) : "b" (currentPacketPtr), "r" (offsetof(RSP, header.blockSequenceNumber))); -#else - unsigned seqid = reinterpret_cast<RSP *>(currentPacketPtr)->header.timestamp; - unsigned blockid = reinterpret_cast<RSP *>(currentPacketPtr)->header.blockSequenceNumber; - -#if defined WORDS_BIGENDIAN - seqid = byteSwap(seqid); - blockid = byteSwap(blockid); -#endif -#endif - - //if the seconds counter is 0xFFFFFFFF, the data cannot be trusted. - if (seqid == ~0U) { - ++ itsArgs.packetCounters->badTimeStamp; - continue; - } - - // Sanity check on seqid. Note, that seqid is in seconds, - // so a value which is greater than the previous one with more - // than (say) 10 seconds probably means that the sequence number - // in the packet is wrong. This can happen, since communication is not - // reliable. - if (seqid >= previousSeqid + 10 && previousSeqidIsAccepted) { - previousSeqidIsAccepted = false; - ++ itsArgs.packetCounters->badTimeStamp; - continue; - } - - // accept seqid - previousSeqidIsAccepted = true; - previousSeqid = seqid; - - actualstamp.setStamp(seqid, blockid); - } else { - actualstamp += itsArgs.nrTimesPerPacket; - - if (itsArgs.isRealTime) - wallClockTime.waitUntil(actualstamp); - } - - // expected packet received so write data into corresponding buffer - //itsArgs.BBuffer->writePacketData(reinterpret_cast<SAMPLE_TYPE *>(&packet.data), actualstamp); - - timeStamps[currentPacket] = actualstamp; - currentPacketPtr += packetSize; - - if (++ currentPacket == maxNrPackets) { - itsArgs.BBuffer->writeMultiplePackets(packets.origin(), timeStamps); - // pthread_yield(); - currentPacket = 0; - currentPacketPtr = packets.origin(); - } - } - - timeStamps.resize(currentPacket); - itsArgs.BBuffer->writeMultiplePackets(packets.origin(), timeStamps); - itsArgs.BBuffer->noMoreWriting(); - - LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::mainLoop() exiting"); -} - - -template class InputThread<i4complex>; -template class InputThread<i8complex>; -template class InputThread<i16complex>; - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/InputThread.h b/RTCP/IONProc/src/InputThread.h deleted file mode 100644 index b15c76488708993c950f509b38718be3cee30221..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputThread.h +++ /dev/null @@ -1,78 +0,0 @@ -//# InputThread.h: The thread that reads from a TH and places data into the buffer of the input section -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_INPUTTHREAD_H -#define LOFAR_IONPROC_INPUTTHREAD_H - -// \file -// The thread that reads from a Stream and places data into the buffer of the input section - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Common/lofar_vector.h> -#include <Interface/RSPTimeStamp.h> -#include <Interface/SmartPtr.h> -#include <Common/Thread/Thread.h> - -#include <BeamletBuffer.h> -#include <LogThread.h> - - -namespace LOFAR { -namespace RTCP { - -template<typename SAMPLE_TYPE> class InputThread -{ - public: - struct ThreadArgs { - BeamletBuffer<SAMPLE_TYPE> *BBuffer; - Stream *stream; - - unsigned threadID; - unsigned nrTimesPerPacket; - unsigned nrSlotsPerPacket; - LogThread::Counters *packetCounters; - bool isRealTime; - TimeStamp startTime; - - std::string logPrefix; - }; - - InputThread(ThreadArgs args); - ~InputThread(); - - void start(); - - static const unsigned packetBuffersSize = 128; - - private: - void mainLoop(); - - ThreadArgs itsArgs; - SmartPtr<Thread> itsThread; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/InputThreadAsm.S b/RTCP/IONProc/src/InputThreadAsm.S deleted file mode 100644 index 68b6d99354ade0b8dc7e9fcd6955d3543cab8928..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputThreadAsm.S +++ /dev/null @@ -1,136 +0,0 @@ -# InputThreadAsm.S: fast packet->BBuffer copy routines -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# $Id$ - -#if defined HAVE_BGP && !defined USE_VALGRIND - -.global _copy_pkt_to_bbuffer_32_bytes -_copy_pkt_to_bbuffer_32_bytes: - - srwi 7,6,2 - andi. 10,6,3 - cmpwi 1,7,1 - subi 7,7,1 - - subi 4,4,1*16 - sub 3,3,4 - subi 5,5,16 - li 8,16 - - blt 1,2f # branch if nrSubbands < 4 - - lfpdux 0,5,8 # prologue - lfpdux 1,5,8 - lfpdux 2,5,8 - lfpdux 3,5,8 - lfpdux 4,5,8 - lfpdux 5,5,8 - lfpdux 6,5,8 - lfpdux 7,5,8 - - beq 1,1f # skip loop if nrSubbands < 8 - mtctr 7 - -0: stfpdux 0,3,4 # unroll four times - lfpdux 0,5,8 - stfpdux 1,3,8 - lfpdux 1,5,8 - stfpdux 2,3,4 - lfpdux 2,5,8 - stfpdux 3,3,8 - lfpdux 3,5,8 - stfpdux 4,3,4 - lfpdux 4,5,8 - stfpdux 5,3,8 - lfpdux 5,5,8 - stfpdux 6,3,4 - lfpdux 6,5,8 - stfpdux 7,3,8 - lfpdux 7,5,8 - bdnz 0b - -1: stfpdux 0,3,4 # epilogue - stfpdux 1,3,8 - stfpdux 2,3,4 - stfpdux 3,3,8 - stfpdux 4,3,4 - stfpdux 5,3,8 - stfpdux 6,3,4 - stfpdux 7,3,8 - -2: beqlr 0 - - mtctr 10 - -3: lfpdux 0,5,8 # last subbands, in case nrSubbands not divisible by 4 - lfpdux 1,5,8 - stfpdux 0,3,4 - stfpdux 1,3,8 - bdnz 3b - - blr - -.global _copy_pkt_to_bbuffer_64_bytes -_copy_pkt_to_bbuffer_64_bytes: - - addi 4,4,-3*16 - mtctr 6 - li 8,16 - addi 5,5,-16 - sub 3,3,4 - -1: lfpdux 0,5,8 - lfpdux 1,5,8 - lfpdux 2,5,8 - lfpdux 3,5,8 - stfpdux 0,3,4 - stfpdux 1,3,8 - stfpdux 2,3,8 - stfpdux 3,3,8 - bdnz 1b - blr - -.global _copy_pkt_to_bbuffer_128_bytes -_copy_pkt_to_bbuffer_128_bytes: - - addi 4,4,-7*16 - mtctr 6 - li 8,16 - addi 5,5,-16 - sub 3,3,4 - -1: lfpdux 0,5,8 - lfpdux 1,5,8 - lfpdux 2,5,8 - lfpdux 3,5,8 - lfpdux 4,5,8 - lfpdux 5,5,8 - lfpdux 6,5,8 - lfpdux 7,5,8 - stfpdux 0,3,4 - stfpdux 1,3,8 - stfpdux 2,3,8 - stfpdux 3,3,8 - stfpdux 4,3,8 - stfpdux 5,3,8 - stfpdux 6,3,8 - stfpdux 7,3,8 - bdnz 1b - blr - -#endif diff --git a/RTCP/IONProc/src/InputThreadAsm.h b/RTCP/IONProc/src/InputThreadAsm.h deleted file mode 100644 index f46f4792c7dee0b11138f9828eec39d25a8e750f..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/InputThreadAsm.h +++ /dev/null @@ -1,33 +0,0 @@ -//# InputThreadAsm.h: fast packet->BBuffer copy routines -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_INPUT_THREAD_ASM_H -#define LOFAR_IONPROC_INPUT_THREAD_ASM_H - -#if defined HAVE_BGP - -extern "C" { - void _copy_pkt_to_bbuffer_32_bytes(void *dst, size_t stride, const void *src, unsigned nrSubbands); - void _copy_pkt_to_bbuffer_64_bytes(void *dst, size_t stride, const void *src, unsigned nrSubbands); - void _copy_pkt_to_bbuffer_128_bytes(void *dst, size_t stride, const void *src, unsigned nrSubbands); -}; - -#endif -#endif diff --git a/RTCP/IONProc/src/Job.cc b/RTCP/IONProc/src/Job.cc deleted file mode 100644 index 667df50ae0e90f775194e958fd350d16ec311ec1..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Job.cc +++ /dev/null @@ -1,648 +0,0 @@ -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - -#include <lofar_config.h> - -#include <BeamletBufferToComputeNode.h> -#include <ControlPhase3Cores.h> -#include <Common/LofarLogger.h> -#include <Stream/PortBroker.h> -#include <Interface/Stream.h> -#include <Interface/CN_Command.h> -#include <Interface/Exceptions.h> -#include <Interface/PrintVector.h> -#include <Interface/RSPTimeStamp.h> -#include <InputSection.h> -#include <ION_Allocator.h> -#include <Scheduling.h> -#include <GlobalVars.h> -#include <Job.h> -#include <Scheduling.h> -#include <OutputSection.h> -#include <StreamMultiplexer.h> -#include <Stream/SocketStream.h> -#include <Stream/PortBroker.h> - -#include <unistd.h> -#include <time.h> - -#include <boost/format.hpp> - - -#define LOG_CONDITION (myPsetNumber == 0) - -namespace LOFAR { -namespace RTCP { - -unsigned Job::nextJobID = 1; -void *Job::theInputSection; -Mutex Job::theInputSectionMutex; -unsigned Job::theInputSectionRefCount = 0; - -Queue<Job *> finishedJobs; - - -Job::Job(const char *parsetName) -: - itsParset(parsetName), - itsJobID(nextJobID ++), // no need to make thread safe - itsObservationID(itsParset.observationID()), - itsLogPrefix(str(boost::format("[obs %d] ") % itsParset.observationID())), - itsIsRunning(false), - itsDoCancel(false), - itsBlockNumber(0), - itsRequestedStopTime(0.0), - itsStopTime(0.0), - itsStorageProcesses(itsParset, itsLogPrefix) -{ - // fill the cache to avoid regenerating it many times over - itsParset.write(NULL); - - if (LOG_CONDITION) { - // Handle PVSS (CEPlogProcessor) communication -- report PVSS name in the first log line to allow CEPlogProcessor to resolve obsIDs - if (itsParset.PVSS_TempObsName() != "") - LOG_INFO_STR(itsLogPrefix << "PVSS name: " << itsParset.PVSS_TempObsName()); - - LOG_INFO_STR(itsLogPrefix << "----- Creating new job"); - LOG_DEBUG_STR(itsLogPrefix << "usedCoresInPset = " << itsParset.usedCoresInPset()); - } - - LOG_DEBUG_STR(itsLogPrefix << "Running from " << (unsigned long)itsParset.startTime() << " to " << (unsigned long)itsParset.stopTime()); - - // check enough parset settings just to get to the coordinated check in jobThread safely - if (itsParset.CNintegrationTime() <= 0) - THROW(IONProcException,"CNintegrationTime must be bigger than 0"); - - // synchronize roughly every 5 seconds to see if the job is cancelled - itsNrBlockTokensPerBroadcast = static_cast<unsigned>(ceil(5.0 / itsParset.CNintegrationTime())); - itsNrBlockTokens = 1; // trigger a rendez-vous immediately to sync latest stoptime info - - itsHasPhaseOne = itsParset.phaseOnePsetIndex(myPsetNumber) >= 0; - itsHasPhaseTwo = itsParset.phaseTwoPsetIndex(myPsetNumber) >= 0; - itsHasPhaseThree = itsParset.phaseThreePsetIndex(myPsetNumber) >= 0; - - itsJobThread = new Thread(this, &Job::jobThread, itsLogPrefix + "[JobThread] ", 65536); -} - - -Job::~Job() -{ - // stop any started Storage processes - if (myPsetNumber == 0) - itsStorageProcesses.stop(0); - - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Job " << (itsIsRunning ? "finished" : "cancelled") << " successfully"); -} - - -void Job::createIONstreams() -{ - if (myPsetNumber == 0) { - std::vector<unsigned> involvedPsets = itsParset.usedPsets(); - - for (unsigned i = 0; i < involvedPsets.size(); i ++) { - ASSERT(involvedPsets[i] < allIONstreamMultiplexers.size()); - - if (involvedPsets[i] != 0) // do not send to itself - itsIONstreams.push_back(new MultiplexedStream(*allIONstreamMultiplexers[involvedPsets[i]], itsJobID)); - } - } else { - itsIONstreams.push_back(new MultiplexedStream(*allIONstreamMultiplexers[0], itsJobID)); - } -} - - -void Job::barrier() -{ - char byte = 0; - - if (myPsetNumber == 0) { - for (unsigned i = 0; i < itsIONstreams.size(); i ++) { - itsIONstreams[i]->read(&byte, sizeof byte); - itsIONstreams[i]->write(&byte, sizeof byte); - } - } else { - itsIONstreams[0]->write(&byte, sizeof byte); - itsIONstreams[0]->read(&byte, sizeof byte); - } -} - - -// returns true iff all psets supply true -bool Job::agree(bool iAgree) -{ - bool allAgree = iAgree; // pset 0 needs to start with its own decision, for other psets this value is ignored - - if (myPsetNumber == 0) - for (unsigned i = 0; i < itsIONstreams.size(); i ++) { - bool youAgree; - itsIONstreams[i]->read(&youAgree, sizeof youAgree); - - allAgree = allAgree && youAgree; - } - else - itsIONstreams[0]->write(&iAgree, sizeof iAgree); - - broadcast(allAgree); - - return allAgree; -} - - -template <typename T> void Job::broadcast(T &value) -{ - if (myPsetNumber == 0) - for (unsigned i = 0; i < itsIONstreams.size(); i ++) - itsIONstreams[i]->write(&value, sizeof value); - else - itsIONstreams[0]->read(&value, sizeof value); -} - - -void Job::waitUntilCloseToStartOfObservation(time_t secondsPriorToStart) -{ - time_t closeToStart = static_cast<time_t>(itsParset.startTime()) - secondsPriorToStart; - char buf[26]; - - ctime_r(&closeToStart, buf); - buf[24] = '\0'; - - LOG_INFO_STR(itsLogPrefix << "Waiting for job to start: sleeping until " << buf); - - itsWallClockTime.waitUntil(closeToStart); -} - - -void Job::cancel() -{ - // note that JobQueue holds lock, so that this function executes atomically - - if (itsDoCancel) { - LOG_WARN_STR(itsLogPrefix << "Observation already cancelled"); - } else { - LOG_WARN_STR(itsLogPrefix << "Cancelling observation"); - itsDoCancel = true; - //jobQueue.itsReevaluate.broadcast(); - - if (itsParset.realTime()) - itsWallClockTime.cancelWait(); - } -} - - -void Job::claimResources() -{ - ScopedLock scopedLock(jobQueue.itsMutex); - - while (!itsDoCancel) { - bool conflict = false; - - for (std::vector<Job *>::iterator job = jobQueue.itsJobs.begin(); job != jobQueue.itsJobs.end(); job ++) { - std::stringstream error; - - if ((*job)->itsIsRunning && (*job)->itsParset.conflictingResources(itsParset, error)) { - conflict = true; - LOG_WARN_STR(itsLogPrefix << "Postponed due to resource conflict with job " << (*job)->itsObservationID << ": " << error.str()); - } - } - - if (!conflict) { - itsIsRunning = true; - return; - } - - jobQueue.itsReevaluate.wait(jobQueue.itsMutex); - } -} - - -void Job::jobThread() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); -#endif - - if (myPsetNumber == 0 || itsHasPhaseOne || itsHasPhaseTwo || itsHasPhaseThree) { - createCNstreams(); - createIONstreams(); - - if (myPsetNumber == 0) { - // DEFINE phase - bool canStart = true; - - if (!checkParset()) { - canStart = false; - } - - // obey the stop time in the parset -- the first startBlock() will broadcast it - if (!pause(itsParset.stopTime())) { - LOG_ERROR_STR(itsLogPrefix << "Could not set observation stop time"); - canStart = false; - } - - if (canStart) { - // INIT phase - if (itsParset.realTime()) - waitUntilCloseToStartOfObservation(20); - - claimResources(); - - // we could start Storage before claiming resources - if (itsIsRunning && itsParset.hasStorage()) - itsStorageProcesses.start(); - } - } - - broadcast(itsIsRunning); - - if (itsIsRunning) { - // RUN phase - - if (itsParset.realTime()) { - // if we started after itsParset.startTime(), we want to skip ahead to - // avoid data loss caused by having to catch up. - if (myPsetNumber == 0) { - time_t earliest_start = time(0L) + 5; - - if (earliest_start > itsParset.startTime()) { - itsBlockNumber = static_cast<unsigned>((earliest_start - itsParset.startTime()) / itsParset.CNintegrationTime()); - - LOG_WARN_STR(itsLogPrefix << "Skipping the first " << itsBlockNumber << " blocks to catch up"); - } else { - itsBlockNumber = 0; - } - } - - broadcast(itsBlockNumber); - } - - // each node is expected to: - // 1. agree() on starting, to allow the compute nodes to complain in preprocess() - // 2. call startBlock() until the end of the observation to synchronise the - // stop time. - - if (itsHasPhaseOne || itsHasPhaseTwo || itsHasPhaseThree) { - switch (itsParset.nrBitsPerSample()) { - case 4 : doObservation<i4complex>(); - break; - - case 8 : doObservation<i8complex>(); - break; - - case 16 : doObservation<i16complex>(); - break; - } - } else { - if (agree(true)) { // we always agree on the fact that we can start - // force pset 0 to broadcast itsIsRunning periodically - while (startBlock()) - endBlock(); - } - } - - // PAUSE phase - barrier(); - - // RELEASE phase - itsIsRunning = false; - jobQueue.itsReevaluate.broadcast(); - - if (myPsetNumber == 0) { - itsStorageProcesses.forwardFinalMetaData(time(0) + 240); - - // all InputSections and OutputSections have finished their processing, so - // Storage should be done any second now. - - itsStorageProcesses.stop(time(0) + 300); - } - - // Augment the LTA feedback logging - if (myPsetNumber == 0) { - ParameterSet feedbackLTA; - feedbackLTA.add("Observation.DataProducts.nrOfOutput_Beamformed_", str(boost::format("%u") % itsParset.nrStreams(BEAM_FORMED_DATA))); - feedbackLTA.add("Observation.DataProducts.nrOfOutput_Correlated_", str(boost::format("%u") % itsParset.nrStreams(CORRELATED_DATA))); - - for (ParameterSet::const_iterator i = feedbackLTA.begin(); i != feedbackLTA.end(); ++i) - LOG_INFO_STR(itsLogPrefix << "LTA FEEDBACK: " << i->first << " = " << i->second); - } - } - } - - finishedJobs.append(this); -} - - -void Job::createCNstreams() -{ - std::vector<unsigned> usedCoresInPset = itsParset.usedCoresInPset(); - - itsCNstreams.resize(usedCoresInPset.size()); - - for (unsigned core = 0; core < usedCoresInPset.size(); core ++) { - ASSERT(usedCoresInPset[core] < nrCNcoresInPset); - itsCNstreams[core] = allCNstreams[myPsetNumber][usedCoresInPset[core]]; - } - - if (itsHasPhaseOne || itsHasPhaseTwo) { - std::vector<unsigned> phaseOneTwoCores = itsParset.phaseOneTwoCores(); - - itsPhaseOneTwoCNstreams.resize(nrPsets, phaseOneTwoCores.size()); - -#ifdef CLUSTER_SCHEDULING - for (unsigned pset = 0; pset < nrPsets; pset ++) -#else - unsigned pset = myPsetNumber; -#endif - { - for (unsigned core = 0; core < phaseOneTwoCores.size(); core ++) { - ASSERT(phaseOneTwoCores[core] < nrCNcoresInPset); - itsPhaseOneTwoCNstreams[pset][core] = allCNstreams[pset][phaseOneTwoCores[core]]; - } - } - } - - if (itsHasPhaseThree) { - std::vector<unsigned> phaseThreeCores = itsParset.phaseThreeCores(); - - itsPhaseThreeCNstreams.resize(phaseThreeCores.size()); - - for (unsigned core = 0; core < phaseThreeCores.size(); core ++) { - ASSERT(phaseThreeCores[core] < nrCNcoresInPset); - itsPhaseThreeCNstreams[core] = allCNstreams[myPsetNumber][phaseThreeCores[core]]; - } - } -} - - -template <typename SAMPLE_TYPE> void Job::attachToInputSection() -{ - ScopedLock scopedLock(theInputSectionMutex); - - if (theInputSectionRefCount == 0) { - theInputSection = new InputSection<SAMPLE_TYPE>(itsParset, myPsetNumber); - ++ theInputSectionRefCount; - } -} - - -template <typename SAMPLE_TYPE> void Job::detachFromInputSection() -{ - ScopedLock scopedLock(theInputSectionMutex); - - if (-- theInputSectionRefCount == 0) - delete static_cast<InputSection<SAMPLE_TYPE> *>(theInputSection); -} - - -bool Job::configureCNs() -{ - bool success = true; - - CN_Command command(CN_Command::PREPROCESS, itsBlockNumber); - - LOG_DEBUG_STR(itsLogPrefix << "Configuring cores " << itsParset.usedCoresInPset() << " ..."); - - for (unsigned core = 0; core < itsCNstreams.size(); core ++) { - command.write(itsCNstreams[core]); - itsParset.write(itsCNstreams[core]); - } - -#if 0 // FIXME: leads to deadlock when using TCP - for (unsigned core = 0; core < itsCNstreams.size(); core ++) { - char failed; - itsCNstreams[core]->read(&failed, sizeof failed); - - if (failed) { - LOG_ERROR_STR(itsLogPrefix << "Core " << core << " failed to initialise"); - success = false; - } - } -#endif - - LOG_DEBUG_STR(itsLogPrefix << "Configuring cores " << itsParset.usedCoresInPset() << " done"); - - return success; -} - - -void Job::unconfigureCNs() -{ - CN_Command command(CN_Command::POSTPROCESS); - - LOG_DEBUG_STR(itsLogPrefix << "Unconfiguring cores " << itsParset.usedCoresInPset() << " ..."); - - for (unsigned core = 0; core < itsCNstreams.size(); core ++) - command.write(itsCNstreams[core]); - - LOG_DEBUG_STR(itsLogPrefix << "Unconfiguring cores " << itsParset.usedCoresInPset() << " done"); -} - - -bool Job::startBlock() -{ - if (-- itsNrBlockTokens == 0) { - itsNrBlockTokens = itsNrBlockTokensPerBroadcast; - - // only consider cancelling at itsNrBlockTokensPerBroadcast boundaries - itsIsRunning = !itsDoCancel; - - // only allow pset 0 to actually decide whether or not to stop - broadcast(itsIsRunning); - - // sync updated stop times -- abuse atomicity of copying itsRequestedStopTime - itsStopTime = itsRequestedStopTime; - broadcast(itsStopTime); - } - -// LOG_INFO_STR("anotherRun: itsBlockNumber = " << itsBlockNumber); - - bool done = !itsIsRunning; - - if (itsStopTime > 0.0) { - // the end time of this block must still be within the observation - double currentTime = itsParset.startTime() + (itsBlockNumber + 1) * itsParset.CNintegrationTime(); - - done = done || currentTime > itsStopTime; - } - -// LOG_INFO_STR("anotherRun: done = " << done); - - return !done; -} - -void Job::endBlock() -{ - itsBlockNumber++; -} - - -template <typename SAMPLE_TYPE> void Job::doObservation() -{ - std::vector<OutputSection *> outputSections; - - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Observation start"); - - // first: send configuration to compute nodes so they know what to expect - if (!agree(configureCNs())) { - unconfigureCNs(); - - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Observation finished"); - - return; - } - - if (itsHasPhaseOne) - attachToInputSection<SAMPLE_TYPE>(); - - if (itsHasPhaseTwo) { - if (itsParset.outputCorrelatedData()) - outputSections.push_back(new CorrelatedDataOutputSection(itsParset, itsBlockNumber)); - } - - if (itsHasPhaseThree) { - if (itsParset.outputBeamFormedData()) - outputSections.push_back(new BeamFormedDataOutputSection(itsParset, itsBlockNumber)); - - if (itsParset.outputTrigger()) - outputSections.push_back(new TriggerDataOutputSection(itsParset, itsBlockNumber)); - } - - // start the threads - for (unsigned i = 0; i < outputSections.size(); i ++) - outputSections[i]->start(); - - LOG_DEBUG_STR(itsLogPrefix << "doObservation processing input start"); - - { // separate scope to ensure that the beamletbuffertocomputenode objects - // only exist if the beamletbuffers exist in the inputsection - std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > noInputs; - BeamletBufferToComputeNode<SAMPLE_TYPE> beamletBufferToComputeNode(itsParset, itsPhaseOneTwoCNstreams, itsHasPhaseOne ? static_cast<InputSection<SAMPLE_TYPE> *>(theInputSection)->itsBeamletBuffers : noInputs, myPsetNumber, itsBlockNumber); - - ControlPhase3Cores controlPhase3Cores(itsParset, itsPhaseThreeCNstreams, itsBlockNumber); - controlPhase3Cores.start(); // start the thread - - while (startBlock()) { - for (unsigned i = 0; i < outputSections.size(); i ++) - outputSections[i]->addIterations(1); - - controlPhase3Cores.addIterations(1); - - beamletBufferToComputeNode.process(); - - endBlock(); - } - - LOG_DEBUG_STR(itsLogPrefix << "doObservation processing input done"); - } - - for (unsigned i = 0; i < outputSections.size(); i ++) - outputSections[i]->noMoreIterations(); - - for (unsigned i = 0; i < outputSections.size(); i ++) - delete outputSections[i]; - - if (itsHasPhaseOne) - detachFromInputSection<SAMPLE_TYPE>(); - - unconfigureCNs(); - - if (LOG_CONDITION) - LOG_INFO_STR(itsLogPrefix << "----- Observation finished"); -} - - -bool Job::checkParset() const -{ - // any error detected by the python environment, invalidating this parset - string pythonParsetError = itsParset.getString("OLAP.IONProc.parsetError",""); - - if (pythonParsetError != "" ) { - LOG_ERROR_STR(itsLogPrefix << "Early detected parset error: " << pythonParsetError ); - return false; - } - - try { - itsParset.check(); - } catch( InterfaceException &ex ) { - LOG_ERROR_STR(itsLogPrefix << "Parset check failed on " << ex.what() ); - return false; - } - - if (itsParset.nrCoresPerPset() > nrCNcoresInPset) { - LOG_ERROR_STR(itsLogPrefix << "nrCoresPerPset (" << itsParset.nrCoresPerPset() << ") cannot exceed " << nrCNcoresInPset); - return false; - } - - return true; -} - - -void Job::printInfo() const -{ - LOG_INFO_STR(itsLogPrefix << "JobID = " << itsJobID << ", " << (itsIsRunning ? "running" : "not running")); -} - - -bool Job::pause(const double &when) -{ - char buf[26]; - time_t whenRounded = static_cast<time_t>(when); - - ctime_r(&whenRounded, buf); - buf[24] = '\0'; - - LOG_DEBUG_STR(itsLogPrefix << "Job: pause(): pause observation at " << buf); - - // make sure we don't interfere with queue dynamics - ScopedLock scopedLock(jobQueue.itsMutex); - - if (itsParset.realTime() && (when == 0 || when <= itsParset.startTime())) { // yes we can compare a double to 0 - // make sure we also stop waiting for the job to start - - if (!itsDoCancel) - cancel(); - } else { - LOG_WARN_STR(itsLogPrefix << "Non-real time mode blablabla"); - itsRequestedStopTime = when; - } - - return true; -} - - -bool Job::quit() -{ - LOG_DEBUG_STR(itsLogPrefix << "Job: quit(): end observation"); - // stop now - - if (!itsDoCancel) { - ScopedLock scopedLock(jobQueue.itsMutex); - - cancel(); - } - - return true; -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/Job.h b/RTCP/IONProc/src/Job.h deleted file mode 100644 index c7cc1dba03f047aec29613e2c187ccaad6749b5d..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Job.h +++ /dev/null @@ -1,122 +0,0 @@ -//# Job.h -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#if !defined LOFAR_RTCP_JOB_H -#define LOFAR_RTCP_JOB_H - -#include <InputSection.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/MultiDimArray.h> -#include <JobQueue.h> -#include <Stream/Stream.h> -#include <WallClockTime.h> -#include <StorageProcesses.h> -#include <Common/Thread/Mutex.h> -#include <Common/Thread/Queue.h> -#include <Common/Thread/Thread.h> -#include <Common/Thread/Semaphore.h> - -#include <sys/time.h> - -#include <vector> -#include <string> - - -namespace LOFAR { -namespace RTCP { - - -class Job -{ - public: - Job(const char *parsetName); - ~Job(); - - void cancel(); - void printInfo() const; - - const Parset itsParset; - const unsigned itsJobID, itsObservationID; - - bool pause(const double &when); - bool quit(); - - private: - bool checkParset() const; - void createCNstreams(); - bool configureCNs(); - void unconfigureCNs(); - - void createIONstreams(); - void barrier(); - bool agree(bool iAgree); - template <typename T> void broadcast(T &); - - void claimResources(); - - bool startBlock(); // returns true if another block is to be processed - void endBlock(); - - void jobThread(); - template <typename SAMPLE_TYPE> void doObservation(); - - template <typename SAMPLE_TYPE> void attachToInputSection(); - template <typename SAMPLE_TYPE> void detachFromInputSection(); - - - void waitUntilCloseToStartOfObservation(time_t secondsPriorToStart); - - const std::string itsLogPrefix; - - std::vector<Stream *> itsCNstreams, itsPhaseThreeCNstreams; - Matrix<Stream *> itsPhaseOneTwoCNstreams; - std::vector<SmartPtr<Stream> > itsIONstreams; - bool itsHasPhaseOne, itsHasPhaseTwo, itsHasPhaseThree; - bool itsIsRunning, itsDoCancel; - - unsigned itsBlockNumber; - double itsRequestedStopTime, itsStopTime; - unsigned itsNrBlockTokens, itsNrBlockTokensPerBroadcast; - - StorageProcesses itsStorageProcesses; - - static unsigned nextJobID; - - WallClockTime itsWallClockTime; - - static void *theInputSection; - static Mutex theInputSectionMutex; - static unsigned theInputSectionRefCount; - - SmartPtr<Thread> itsJobThread; -}; - - -extern Queue<Job *> finishedJobs; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/JobQueue.cc b/RTCP/IONProc/src/JobQueue.cc deleted file mode 100644 index 34592ad31b52c9788e69570c2cd557615fb3f4ab..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/JobQueue.cc +++ /dev/null @@ -1,85 +0,0 @@ -//# JobQueue.cc: -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Job.h> - -#include <algorithm> - - - -namespace LOFAR { -namespace RTCP { - - -JobQueue jobQueue; - - -void JobQueue::insert(Job *job) -{ - ScopedLock scopedLock(itsMutex); - itsJobs.push_back(job); -} - - -void JobQueue::remove(Job *job) -{ - ScopedLock scopedLock(itsMutex); - itsJobs.erase(find(itsJobs.begin(), itsJobs.end(), job)); - itsReevaluate.broadcast(); -} - - -void JobQueue::cancel(unsigned observationID) -{ - ScopedLock scopedLock(itsMutex); - - for (std::vector<Job *>::iterator job = itsJobs.begin(); job != itsJobs.end(); job ++) - if ((*job)->itsObservationID == observationID) { - (*job)->cancel(); - return; - } - - LOG_WARN_STR("[obs " << observationID << "] Could not cancel: not found"); -} - - -void JobQueue::cancelAll() -{ - ScopedLock scopedLock(itsMutex); - - for (std::vector<Job *>::iterator job = itsJobs.begin(); job != itsJobs.end(); job ++) - (*job)->cancel(); -} - - -void JobQueue::listJobs() const -{ - ScopedLock scopedLock(itsMutex); - - for (std::vector<Job *>::const_iterator job = itsJobs.begin(); job != itsJobs.end(); job ++) - (*job)->printInfo(); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/JobQueue.h b/RTCP/IONProc/src/JobQueue.h deleted file mode 100644 index 0df26941cee96813cab422310eb89221df54fddf..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/JobQueue.h +++ /dev/null @@ -1,67 +0,0 @@ -//# JobQueue.h -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: ION_main.cc 15296 2010-03-24 10:19:41Z romein $ - - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#if !defined LOFAR_RTCP_JOB_QUEUE_H -#define LOFAR_RTCP_JOB_QUEUE_H - -#include <Common/Thread/Condition.h> -#include <Common/Thread/Mutex.h> - -#include <vector> - - -namespace LOFAR { -namespace RTCP { - - -class Job; - -class JobQueue -{ - public: - void insert(Job *), remove(Job *); - - void cancel(unsigned observationID); - void cancelAll(); - - void listJobs() const; - - void waitUntilAllJobsAreFinished(); - - private: - friend class Job; - - std::vector<Job *> itsJobs; - - mutable Mutex itsMutex; - Condition itsReevaluate; -}; - - -extern JobQueue jobQueue; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/LockedRanges.h b/RTCP/IONProc/src/LockedRanges.h deleted file mode 100644 index 9a40c8a2a34b1d3d2666f24d2187c19a417d2bed..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/LockedRanges.h +++ /dev/null @@ -1,95 +0,0 @@ -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_LOCKED_RANGES_H -#define LOFAR_IONPROC_LOCKED_RANGES_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Common/LofarLogger.h> -#include <Interface/SparseSet.h> -#include <Common/Thread/Condition.h> -#include <Common/Thread/Mutex.h> - - -namespace LOFAR { -namespace RTCP { - -class LockedRanges -{ - public: - LockedRanges(unsigned bufferSize); - - void lock(unsigned begin, unsigned end); - void unlock(unsigned begin, unsigned end); - - private: - SparseSet<unsigned> itsLockedRanges; - Mutex itsMutex; - Condition itsRangeUnlocked; - const unsigned itsBufferSize; -}; - - -inline LockedRanges::LockedRanges(unsigned bufferSize) -: - itsBufferSize(bufferSize) -{ -} - - -inline void LockedRanges::lock(unsigned begin, unsigned end) -{ - ScopedLock scopedLock(itsMutex); - - if (begin < end) { - while (itsLockedRanges.subset(begin, end).count() > 0) { - LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges); - itsRangeUnlocked.wait(itsMutex); - } - - itsLockedRanges.include(begin, end); - } else { - while (itsLockedRanges.subset(begin, itsBufferSize).count() > 0 || itsLockedRanges.subset(0, end).count() > 0) { - LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges); - itsRangeUnlocked.wait(itsMutex); - } - - itsLockedRanges.include(begin, itsBufferSize).include(0, end); - } -} - - -inline void LockedRanges::unlock(unsigned begin, unsigned end) -{ - ScopedLock scopedLock(itsMutex); - - if (begin < end) - itsLockedRanges.exclude(begin, end); - else - itsLockedRanges.exclude(end, itsBufferSize).exclude(0, begin); - - itsRangeUnlocked.broadcast(); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/LogThread.cc b/RTCP/IONProc/src/LogThread.cc deleted file mode 100644 index ccf585bbec17a030d7f0a816cf0bc36e32fc9d93..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/LogThread.cc +++ /dev/null @@ -1,203 +0,0 @@ -//# LogThread.cc: -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <LogThread.h> -#include <Scheduling.h> -#include <Interface/PrintVector.h> -#include <Common/LofarLogger.h> -#include <Common/Thread/Cancellation.h> - -#include <algorithm> -#include <cstdio> -#include <sstream> - -#include <unistd.h> - - -namespace LOFAR { -namespace RTCP { - - -// log from separate thread, since printing from a signal handler causes deadlocks - -LogThread::LogThread(unsigned nrRspBoards, std::string stationName) -: - itsCounters(nrRspBoards), - itsStationName(stationName) -{ -} - - -void LogThread::start() -{ - itsThread = new Thread(this, &LogThread::mainLoop, "[LogThread] ", 65536); -} - - -LogThread::~LogThread() -{ - if (itsThread) - itsThread->cancel(); - - LOG_DEBUG_STR("[LogThread] finished"); -} - - -#if defined HAVE_BGP_ION - -bool LogThread::readCPUstats(struct CPUload &load) -{ - FILE *file = fopen("/proc/stat", "r"); - int retval; - - if (file == 0) - return false; - - // make sure the file is always closed -- even on cancellation (fscanf CAN be a cancellation point) - struct D { - ~D() { - fclose(file); - } - - FILE *file; - } onDestruct = { file }; - (void)onDestruct; - - do - retval = fscanf(file, "cpu %llu %*u %llu %llu %*u %*u %llu %*u\n", &load.user, &load.system, &load.idle, &load.interrupt); - while (retval != 4 && retval != EOF); - - do - retval = fscanf(file, "cpu0 %*u %*u %*u %llu %*u %*u %*u %*u\n", &load.idle0); - while (retval != 1 && retval != EOF); - - return retval != EOF; -} - - -void LogThread::writeCPUstats(std::stringstream &str) -{ - struct CPUload load; - struct timeval tv; - - static size_t lowIdleCount = 0; - - if (readCPUstats(load)) { - gettimeofday( &tv, 0 ); - - float timediff = (tv.tv_sec - previousTimeval.tv_sec) + (tv.tv_usec - previousTimeval.tv_usec)/1.0e6; - - unsigned idle0 = static_cast<unsigned>((load.idle0 - previousLoad.idle0) / timediff); - if (idle0 < 10) - lowIdleCount++; - else - lowIdleCount = 0; - - // TODO: Don't print this error in non-realtime mode - if (lowIdleCount == 5) - LOG_ERROR("CPU load critical on core 0"); - - //str << ", us/sy/in/id: [" - str << ", us/sy/in/id(0): [" - << fixed << setprecision(0) - << (unsigned(load.user - previousLoad.user) + 2) / 4 / timediff << '/' - << (unsigned(load.system - previousLoad.system) + 2) / 4 / timediff << '/' - << (unsigned(load.interrupt - previousLoad.interrupt) + 2) / 4 / timediff << '/' - << (unsigned(load.idle - previousLoad.idle) + 2) / 4 / timediff << '(' - << idle0 << ")]"; -#if 0 - << "], id: [" - << (unsigned(load.idlePerCore[0] - previousLoad.idlePerCore[0]) << '/' - - for (unsigned cpu = 0; cpu < 4; cpu ++) - str << unsigned(load.idle[cpu] - previousLoad.idle[cpu]) - << (cpu == 3 ? ']' : ','); -#endif - - previousLoad = load; - previousTimeval = tv; - } else { - str << ", no CPU load info"; - } -} - -#endif - - -void LogThread::mainLoop() -{ -#if defined HAVE_BGP_ION - //doNotRunOnCore0(); - runOnCore0(); - readCPUstats(previousLoad); - gettimeofday(&previousTimeval,0); -#endif - - //LOG_DEBUG("LogThread running"); - - // non-atomic updates from other threads cause race conditions, but who cares - - while (true) { - std::stringstream logStr; - std::vector<unsigned> counts(itsCounters.size()); - - for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) { - counts[rsp] = itsCounters[rsp].received; - itsCounters[rsp].received = 0; - } - - logStr << "[station " << itsStationName << "] "; - - logStr << "received packets = " << counts; - - for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) { - counts[rsp] = itsCounters[rsp].badSize; - itsCounters[rsp].badSize = 0; - } - - if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size()) - logStr << ", bad size = " << counts; - - for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) { - counts[rsp] = itsCounters[rsp].badTimeStamp; - itsCounters[rsp].badTimeStamp = 0; - } - - if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size()) - logStr << ", bad timestamps = " << counts; - -#if defined HAVE_BGP_ION - writeCPUstats(logStr); -#endif - - LOG_INFO_STR(logStr.str()); - sleep(15); - } - - //LOG_DEBUG("LogThread stopped"); -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/LogThread.h b/RTCP/IONProc/src/LogThread.h deleted file mode 100644 index 2c7b4e5aa5cb64fa96a90c78da153fc55a236ee2..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/LogThread.h +++ /dev/null @@ -1,80 +0,0 @@ -//# LogThread.h: log from separate thread, since printing from a signal -//# handler causes deadlocks -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_LOG_THREAD_H -#define LOFAR_IONPROC_LOG_THREAD_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - - -#include <Common/Thread/Thread.h> -#include <Interface/SmartPtr.h> - -#include <vector> -#include <string> -#include <sys/time.h> - -namespace LOFAR { -namespace RTCP { - -class LogThread -{ - public: - LogThread(unsigned nrRspBoards, std::string stationName); - ~LogThread(); - - void start(); - - struct Counters { - unsigned received, badTimeStamp, badSize; - unsigned pad[5]; // pad to cache line size to avoid false sharing - }; - - std::vector<Counters> itsCounters; - - private: - void mainLoop(); - - std::string itsStationName; - - SmartPtr<Thread> itsThread; - -#if defined HAVE_BGP_ION - struct CPUload { - //unsigned long long user, system, interrupt, idle, idlePerCore[4]; - unsigned long long user, system, interrupt, idle, idle0; - } previousLoad; - - struct timeval previousTimeval; - - bool readCPUstats(struct CPUload &load); - void writeCPUstats(std::stringstream &str); -#endif - }; - - // @} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/OutputSection.cc b/RTCP/IONProc/src/OutputSection.cc deleted file mode 100644 index 342141bb7cb6daad4a2aa5dc319dc47610c271d0..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/OutputSection.cc +++ /dev/null @@ -1,296 +0,0 @@ -//# OldOutputSection.cc: Collects data from CNs and sends data to Storage -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Interface/Allocator.h> -#include <Interface/DataFactory.h> -#include <Interface/BeamFormedData.h> -#include <Interface/SmartPtr.h> -#include <Common/Thread/Cancellation.h> -#include <ApplCommon/Observation.h> - -#include <ION_Allocator.h> -#include <GlobalVars.h> -#include <OutputSection.h> -#include <Scheduling.h> - -#include <boost/format.hpp> - -namespace LOFAR { -namespace RTCP { - - -OutputSection::OutputSection(const Parset &parset, - OutputType outputType, - unsigned firstBlockNumber, - const std::vector<unsigned> &cores, - int psetIndex, - bool integratable, - bool variableDataSize) -: - itsLogPrefix(str(boost::format("[obs %u type %u") % parset.observationID() % outputType)), // no trailing "] " so we can add subband info for some log messages - itsVariableDataSize(variableDataSize), - itsTranspose2Logic(parset.transposeLogic()), - itsNrComputeCores(cores.size()), - itsNrCoresPerIteration(parset.maxNrStreamsPerPset(outputType)), - itsNrCoresSkippedPerIteration(parset.phaseThreeDisjunct() ? 0 : parset.maxNrStreamsPerPset(CORRELATED_DATA,true) - itsNrCoresPerIteration), // if phase 1+2=phase 3, we iterate over the #subbands, not over #streams produced in phase 3 - itsFirstStreamNr(psetIndex * itsNrCoresPerIteration), - itsNrStreams(psetIndex < 0 || itsFirstStreamNr >= parset.nrStreams(outputType) ? 0 : std::min(itsNrCoresPerIteration, parset.nrStreams(outputType) - itsFirstStreamNr)), - itsCurrentComputeCore((firstBlockNumber * (itsNrCoresPerIteration + itsNrCoresSkippedPerIteration)) % itsNrComputeCores), - itsNrIntegrationSteps(integratable ? parset.IONintegrationSteps() : 1), - itsCurrentIntegrationStep(firstBlockNumber % itsNrIntegrationSteps), - itsNrSamplesPerIntegration(parset.CNintegrationSteps()), - itsSequenceNumber(firstBlockNumber), - itsIsRealTime(parset.realTime()), - itsDroppedCount(itsNrStreams), - itsTotalDroppedCount(itsNrStreams), - itsStreamsFromCNs(cores.size()), - itsTmpSum(newStreamableData(parset, outputType, -1, hugeMemoryAllocator)) -{ - // lookup the PVSS adders to use in our reports - Observation obs(&parset, false, parset.totalNrPsets()); - itsAdders.resize(itsNrStreams); - - for (unsigned i = 0; i < itsNrStreams; i ++) { - for (unsigned j = 0; j < obs.streamsToStorage.size(); j++) { - Observation::StreamToStorage &s = obs.streamsToStorage[j]; - - if (s.dataProductNr == static_cast<unsigned>(outputType) && s.streamNr == itsFirstStreamNr + i) { - itsAdders[i] = s.adderNr; - break; - } - } - } - - if (itsNrIntegrationSteps > 1) - for (unsigned i = 0; i < itsNrStreams; i ++) - itsSums.push_back(newStreamableData(parset, outputType, itsFirstStreamNr + i, hugeMemoryAllocator)); - - for (unsigned i = 0; i < itsNrStreams; i ++) { - itsOutputThreads.push_back(new OutputThread(parset, outputType, itsFirstStreamNr + i, itsAdders[i])); - - itsOutputThreads[i]->start(); - } - - LOG_DEBUG_STR(itsLogPrefix << "] Creating streams between compute nodes and OutputSection..."); - - for (unsigned i = 0; i < cores.size(); i ++) - itsStreamsFromCNs[i] = createCNstream(myPsetNumber, cores[i], outputType); - - LOG_DEBUG_STR(itsLogPrefix << "] Creating streams between compute nodes and OutputSection: done"); - -} - - -void OutputSection::start() -{ - itsThread = new Thread(this, &OutputSection::mainLoop, itsLogPrefix + "] [OutputSection] ", 65536); -} - - -PhaseTwoOutputSection::PhaseTwoOutputSection(const Parset &parset, OutputType outputType, unsigned firstBlockNumber, bool integratable) -: - OutputSection( - parset, - outputType, - firstBlockNumber, - parset.phaseOneTwoCores(), - parset.phaseTwoPsetIndex(myPsetNumber), - integratable, - false - ) -{ -} - - -PhaseThreeOutputSection::PhaseThreeOutputSection(const Parset &parset, OutputType outputType, unsigned firstBlockNumber) -: - OutputSection( - parset, - outputType, - firstBlockNumber, - parset.phaseThreeCores(), - parset.phaseThreePsetIndex(myPsetNumber), - false, - true - ) -{ -} - - -CorrelatedDataOutputSection::CorrelatedDataOutputSection(const Parset &parset, unsigned firstBlockNumber) -: - PhaseTwoOutputSection(parset, CORRELATED_DATA, firstBlockNumber, true) -{ -} - - -BeamFormedDataOutputSection::BeamFormedDataOutputSection(const Parset &parset, unsigned firstBlockNumber) -: - PhaseThreeOutputSection(parset, BEAM_FORMED_DATA, firstBlockNumber) -{ -} - - -TriggerDataOutputSection::TriggerDataOutputSection(const Parset &parset, unsigned firstBlockNumber) -: - PhaseThreeOutputSection(parset, TRIGGER_DATA, firstBlockNumber) -{ -} - - -OutputSection::~OutputSection() -{ - ScopedDelayCancellation dc; // TODO: make the code below cancellable? - - delete itsThread.release(); - - struct timespec timeout; - - timeout.tv_sec = time(0) + 10; - timeout.tv_nsec = 0; - - for (unsigned i = 0; i < itsOutputThreads.size(); i ++) { - if (itsIsRealTime && !itsOutputThreads[i]->itsThread->wait(timeout)) { - LOG_WARN_STR(itsLogPrefix << str(boost::format(" stream %3u adder %3u] ") % (itsFirstStreamNr + i) % itsAdders[i]) << "cancelling output thread"); - itsOutputThreads[i]->itsThread->cancel(); - } - - itsOutputThreads[i]->itsThread->wait(); - - if (itsOutputThreads[i]->itsSendQueue.size() > 0) - itsDroppedCount[i] += itsOutputThreads[i]->itsSendQueue.size() - 1; // // the final null pointer does not count - - notDroppingData(i); // for final warning message - } -} - - -void OutputSection::readData( Stream *stream, StreamableData *data, unsigned streamNr ) -{ - if (itsVariableDataSize) { - ASSERT( dynamic_cast<FinalBeamFormedData*>(data) ); - - const StreamInfo &info = itsTranspose2Logic.streamInfo[itsFirstStreamNr + streamNr]; - - data->setDimensions(info.nrSamples, info.subbands.size(), info.nrChannels); - } - - data->read(stream, false); -} - - -void OutputSection::addIterations(unsigned count) -{ - itsNrIterationsToDo.up(count); -} - - -void OutputSection::noMoreIterations() -{ - itsNrIterationsToDo.noMore(); -} - - -void OutputSection::droppingData(unsigned stream) -{ - if (itsDroppedCount[stream] ++ == 0) - LOG_WARN_STR(itsLogPrefix << str(boost::format(" stream %3u adder %3u] ") % (itsFirstStreamNr + stream) % itsAdders[stream]) << "Dropping data"); -} - - -void OutputSection::notDroppingData(unsigned stream) -{ - if (itsDroppedCount[stream] > 0) { - itsTotalDroppedCount[stream] += itsDroppedCount[stream]; - - LOG_WARN_STR(itsLogPrefix << str(boost::format(" stream %3u adder %3u] ") % (itsFirstStreamNr + stream) % itsAdders[stream]) << "Dropped " << itsDroppedCount[stream] << " blocks this time and " << itsTotalDroppedCount[stream] << " blocks since start" ); - - itsDroppedCount[stream] = 0; - } -} - - -void OutputSection::mainLoop() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); - //runOnCore0(); - setPriority(2); -#endif - - while (itsNrIterationsToDo.down()) { - bool firstTime = itsCurrentIntegrationStep == 0; - bool lastTime = itsCurrentIntegrationStep == itsNrIntegrationSteps - 1; - - // process data from current core, even if we don't have a subband for this - // core (to stay in sync with other psets). - for (unsigned i = 0; i < itsNrCoresPerIteration; i ++) { - if (i < itsNrStreams) { - //LOG_DEBUG_STR(itsLogPrefix << "] Reading data from core " << itsCurrentComputeCore); - - if (lastTime) { - if (itsIsRealTime && itsOutputThreads[i]->itsFreeQueue.empty()) { - droppingData(i); - readData(itsStreamsFromCNs[itsCurrentComputeCore].get(), itsTmpSum.get(), i); - } else { - notDroppingData(i); - SmartPtr<StreamableData> data(itsOutputThreads[i]->itsFreeQueue.remove()); - - readData(itsStreamsFromCNs[itsCurrentComputeCore].get(), data.get(), i); - - if (!firstTime) - *dynamic_cast<IntegratableData *>(data.get()) += *dynamic_cast<IntegratableData *>(itsSums[i].get()); - - data->setSequenceNumber(itsSequenceNumber); - itsOutputThreads[i]->itsSendQueue.append(data.release()); - } - } else if (firstTime) { - readData(itsStreamsFromCNs[itsCurrentComputeCore].get(), itsSums[i].get(), i); - } else { - readData(itsStreamsFromCNs[itsCurrentComputeCore].get(), itsTmpSum.get(), i); - *dynamic_cast<IntegratableData *>(itsSums[i].get()) += *dynamic_cast<IntegratableData *>(itsTmpSum.get()); - } - } - - if (++ itsCurrentComputeCore == itsNrComputeCores) - itsCurrentComputeCore = 0; - } - - if (itsNrCoresSkippedPerIteration > 0) - itsCurrentComputeCore = (itsCurrentComputeCore + itsNrCoresSkippedPerIteration) % itsNrComputeCores; - - if (++ itsCurrentIntegrationStep == itsNrIntegrationSteps) { - itsCurrentIntegrationStep = 0; - itsSequenceNumber++; - } - } - - for (unsigned i = 0; i < itsOutputThreads.size(); i ++) - itsOutputThreads[i]->itsSendQueue.append(0); // no more data - - LOG_DEBUG_STR(itsLogPrefix << "] OutputSection::mainLoop() finished"); -} - - -} -} diff --git a/RTCP/IONProc/src/OutputSection.h b/RTCP/IONProc/src/OutputSection.h deleted file mode 100644 index d6ead4b92c7805947f741d50280aa187e5a394db..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/OutputSection.h +++ /dev/null @@ -1,130 +0,0 @@ -//# OldOutputSection.h: Collects data from CNs and sends data to Storage -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_OUTPUT_SECTION_H -#define LOFAR_IONPROC_OUTPUT_SECTION_H - -#include <Interface/OutputTypes.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <IONProc/OutputThread.h> -#include <Stream/Stream.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> - -#include <vector> -#include <string> - - -namespace LOFAR { -namespace RTCP { - -class OutputSection -{ - public: - ~OutputSection(); - - void start(); - - void addIterations(unsigned count); - void noMoreIterations(); - - protected: - OutputSection(const Parset &, OutputType, unsigned firstBlockNumber, const std::vector<unsigned> &cores, int psetIndex, bool integratable, bool variableNrSubbands); - - private: - - void readData(Stream *, StreamableData *, unsigned steamNr); - - void mainLoop(); - - void droppingData(unsigned subband); - void notDroppingData(unsigned subband); - - const std::string itsLogPrefix; - const bool itsVariableDataSize; - const Transpose2 &itsTranspose2Logic; - - const unsigned itsNrComputeCores; - const unsigned itsNrCoresPerIteration, itsNrCoresSkippedPerIteration, itsFirstStreamNr, itsNrStreams; - unsigned itsCurrentComputeCore; - - const unsigned itsNrIntegrationSteps; - unsigned itsCurrentIntegrationStep; - const unsigned itsNrSamplesPerIntegration; - unsigned itsSequenceNumber; - - const bool itsIsRealTime; - std::vector<unsigned> itsDroppedCount; // [subband] - std::vector<unsigned> itsTotalDroppedCount; // [subband] - std::vector<SmartPtr<OutputThread> > itsOutputThreads; // [subband] - - std::vector<SmartPtr<Stream> > itsStreamsFromCNs; - - std::vector<SmartPtr<StreamableData> > itsSums; - SmartPtr<StreamableData> itsTmpSum; - - Semaphore itsNrIterationsToDo; - - SmartPtr<Thread> itsThread; - - std::vector<unsigned> itsAdders; // [subband] -}; - - -class PhaseTwoOutputSection : public OutputSection -{ - protected: - PhaseTwoOutputSection(const Parset &, OutputType, unsigned firstBlockNumber, bool integratable); -}; - - -class PhaseThreeOutputSection : public OutputSection -{ - protected: - PhaseThreeOutputSection(const Parset &, OutputType, unsigned firstBlockNumber); -}; - - -class CorrelatedDataOutputSection : public PhaseTwoOutputSection -{ - public: - CorrelatedDataOutputSection(const Parset &, unsigned firstBlockNumber); -}; - - -class BeamFormedDataOutputSection : public PhaseThreeOutputSection -{ - public: - BeamFormedDataOutputSection(const Parset &, unsigned firstBlockNumber); -}; - - -class TriggerDataOutputSection : public PhaseThreeOutputSection -{ - public: - TriggerDataOutputSection(const Parset &, unsigned firstBlockNumber); -}; - - -} -} - -#endif diff --git a/RTCP/IONProc/src/OutputThread.cc b/RTCP/IONProc/src/OutputThread.cc deleted file mode 100644 index e6f05a97ecdf8bfd476b1c0c2de91f7d00454e9a..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/OutputThread.cc +++ /dev/null @@ -1,83 +0,0 @@ -//# OldOutputThread.cc: -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/SystemCallException.h> -#include <ION_Allocator.h> -#include <OutputThread.h> -#include <Scheduling.h> -#include <Interface/DataFactory.h> -#include <Interface/SmartPtr.h> -#include <Interface/Stream.h> -#include <Stream/SocketStream.h> - -#include <boost/format.hpp> - - -namespace LOFAR { -namespace RTCP { - - -OutputThread::OutputThread(const Parset &parset, OutputType outputType, unsigned streamNr, unsigned adderNr) -: - itsLogPrefix(str(boost::format("[obs %u type %u stream %3u adder %3u] ") % parset.observationID() % outputType % streamNr % adderNr)), - itsOutputDescriptor(getStreamDescriptorBetweenIONandStorage(parset, outputType, streamNr)), - itsDeadline(parset.realTime() ? parset.stopTime() : 0) -{ - for (unsigned i = 0; i < maxSendQueueSize; i ++) - itsFreeQueue.append(newStreamableData(parset, outputType, streamNr, hugeMemoryAllocator)); -} - - -void OutputThread::start() -{ - itsThread = new Thread(this, &OutputThread::mainLoop, itsLogPrefix + "[OutputThread] ", 65536); -} - - -void OutputThread::mainLoop() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); - //nice(19); - //runOnCore0(); -#endif - - try { - LOG_DEBUG_STR(itsLogPrefix << "Creating connection to " << itsOutputDescriptor << "..."); - SmartPtr<Stream> streamToStorage(createStream(itsOutputDescriptor, false, static_cast<time_t>(itsDeadline))); - LOG_DEBUG_STR(itsLogPrefix << "Creating connection to " << itsOutputDescriptor << ": done"); - - for (SmartPtr<StreamableData> data; (data = itsSendQueue.remove()) != 0; itsFreeQueue.append(data.release())) - data->write(streamToStorage, true); // write data, including serial nr - } catch (SystemCallException &ex) { - LOG_WARN_STR(itsLogPrefix << "Connection to " << itsOutputDescriptor << " failed: " << ex.text()); - } catch (SocketStream::TimeOutException &ex) { - LOG_WARN_STR(itsLogPrefix << "Connection to " << itsOutputDescriptor << " timed out"); - } -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/OutputThread.h b/RTCP/IONProc/src/OutputThread.h deleted file mode 100644 index 4a34677461aefb27f1e504dd552ea820a19e091b..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/OutputThread.h +++ /dev/null @@ -1,67 +0,0 @@ -//# OldOutputThread.h -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_OUTPUT_THREAD_H -#define LOFAR_IONPROC_OUTPUT_THREAD_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Interface/Parset.h> -#include <Interface/OutputTypes.h> -#include <Interface/SmartPtr.h> -#include <Interface/StreamableData.h> -#include <Common/Thread/Queue.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> - -#include <string> - - -namespace LOFAR { -namespace RTCP { - -class OutputThread -{ - public: - OutputThread(const Parset &, OutputType outputType, unsigned streamNr, unsigned adderNr); - - void start(); - - static const unsigned maxSendQueueSize = 4; // use 2 if you run out of memory, but test carefully to avoid data loss - - Queue<SmartPtr<StreamableData> > itsFreeQueue, itsSendQueue; - - private: - void mainLoop(); - - const std::string itsLogPrefix; - const std::string itsOutputDescriptor; - const double itsDeadline; - - public: - SmartPtr<Thread> itsThread; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/RSP.h b/RTCP/IONProc/src/RSP.h deleted file mode 100644 index b76634ba3beb6ae598a4ef31310b3b73260199da..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/RSP.h +++ /dev/null @@ -1,192 +0,0 @@ -//# RSP: RSP data format -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_RSP_H -#define LOFAR_IONPROC_RSP_H - -#include <Common/LofarTypes.h> -#include <complex> - -namespace LOFAR { -namespace RTCP { - -#include <cstddef> - - -// WARNING: All data is in Little Endian format! -// -// Note that C++ bit fields are implementation dependent, -// so we cannot use them. - -/* A structure fit for the maximum payload size. When reading UDP, - * just read them straight into this struct, and ::read() will return - * the size of the packet. - * - * When reading packets from file, make sure you read the right number - * of bytes (see packetSize()). - */ - -struct RSP { - // ---------------------------------------------------------------------- - // Header and payload, in little endian! - // ---------------------------------------------------------------------- - - struct Header { - // 2: Beamlet Data Interface 5.0 - // 3: Beamlet Data Interface 6.0 (8- and 4-bit mode support) - uint8 version; - - // bit (0=LSB) - // - // 4:0 RSP board number - // 5 (reserved, set to 0) - // 6 0: payload ok, 1: payload has data errors - // 7 0: 160 MHz 1: 200 MHz - uint8 sourceInfo1; - - // bit (0=LSB) - // - // 1:0 0: 16-bit 1: 8-bit 2: 4-bit - // 7:2 (reserved, set to 0) - uint8 sourceInfo2; - - // identifiers - uint8 configuration; - uint16 station; - - // number of beamlets, typically at maximum: - // 16-bit: 61 - // 8-bit: 122 - // 4-bit: 244 - uint8 nrBeamlets; - - // number of Xr+Xi+Yr+Yi samples per beamlet, typically 16 - uint8 nrBlocks; - - // UNIX timestamp in UTC (= # seconds since 1970-01-01 00:00:00) - // 0xFFFFFFFF = clock not initialised - uint32 timestamp; - - // Sample offset within the timestamp. - // - // 160 MHz: 160M/1024 = 156250 samples/second. - // - // 200 MHz: 200M/1024 = 195212.5 samples/second. - // Even seconds have 195213 samples, - // odd seconds have 195212 samples. - uint32 blockSequenceNumber; - } header; - - // Payload, allocated for maximum size. - union { - char data[8130]; - - // samples are structured as samples[nrBlocks][nrBeamlets], - // so first all blocks of the first beamlet, then all blocks of the second - // beamlet, etc. - // - // for 4-bit mode: - // low octet: real (2's complement) - // high octet: imaginary (2's complement) - - struct { int16 Xr, Xi, Yr, Yi; } samples16bit[61 * 16]; - struct { int8 Xr, Xi, Yr, Yi; } samples8bit[122 * 16]; - struct { int8 X, Y; } samples4bit[244 * 16]; - } payload; - - - // ---------------------------------------------------------------------- - // Helper functions - // ---------------------------------------------------------------------- - - unsigned rspBoard() const { - return header.sourceInfo1 & 0x1F; - } - - bool payloadError() const { - return header.sourceInfo1 & 0x40; - } - - unsigned clockMHz() const { - return header.sourceInfo1 & 0x80 ? 200 : 160; - } - - unsigned bitMode() const { - switch (header.sourceInfo2 & 0x3) { - default: - case 0x0: return 16; - case 0x1: return 8; - case 0x2: return 4; - } - } - - size_t packetSize() const { - return sizeof(RSP::Header) + header.nrBlocks * header.nrBeamlets * 2 * 2 * bitMode() / 8; - } - - - // ---------------------------------------------------------------------- - // Payload decoding (for debug purposes, assumes data is converted to native - // endianness) - // ---------------------------------------------------------------------- - std::complex<int> sample( unsigned beamlet, unsigned block, char polarisation /* 'X' or 'Y' */) const { - const unsigned offset = beamlet * header.nrBlocks + block; - - switch( bitMode() ) { - default: - case 16: - return polarisation == 'X' ? std::complex<int>(payload.samples16bit[offset].Xr, - payload.samples16bit[offset].Xi) - : std::complex<int>(payload.samples16bit[offset].Yr, - payload.samples16bit[offset].Yi); - - case 8: - return polarisation == 'X' ? std::complex<int>(payload.samples8bit[offset].Xr, - payload.samples8bit[offset].Xi) - : std::complex<int>(payload.samples8bit[offset].Yr, - payload.samples8bit[offset].Yi); - - case 4: - return polarisation == 'X' ? decode4bit(payload.samples4bit[offset].X) - : decode4bit(payload.samples4bit[offset].Y); - } - } - -private: - - // decode the 4-bit complex type. - static std::complex<int> decode4bit( int8 sample ) { - int8 re = (sample << 4) >> 4; // preserve sign - int8 im = (sample ) >> 4; // preserve sign - - // balance range to [-7..7], subject to change! - if (re == -8) re = -7; - if (im == -8) im = -7; - - return std::complex<int>(re, im); - } -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/ReaderWriterSynchronization.cc b/RTCP/IONProc/src/ReaderWriterSynchronization.cc deleted file mode 100644 index 62b41a98170a92b1c20fd39f222eb234260e6f5a..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ReaderWriterSynchronization.cc +++ /dev/null @@ -1,124 +0,0 @@ -//# -//# -//# Copyright (C) 2000, 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <ReaderWriterSynchronization.h> - - -namespace LOFAR { -namespace RTCP { - - -ReaderAndWriterSynchronization::~ReaderAndWriterSynchronization() -{ -} - - - - -SynchronizedReaderAndWriter::SynchronizedReaderAndWriter(unsigned bufferSize) -: - itsBufferSize(bufferSize) -{ -} - - -SynchronizedReaderAndWriter::~SynchronizedReaderAndWriter() -{ -} - - -void SynchronizedReaderAndWriter::startRead(const TimeStamp &begin, const TimeStamp &end) -{ - itsReadPointer.advanceTo(begin); - itsWritePointer.waitFor(end); -} - - -void SynchronizedReaderAndWriter::finishedRead(const TimeStamp &advanceTo) -{ - itsReadPointer.advanceTo(advanceTo); -} - - -void SynchronizedReaderAndWriter::startWrite(const TimeStamp &begin, const TimeStamp &end) -{ - itsWritePointer.advanceTo(begin); - itsReadPointer.waitFor(end - itsBufferSize); -} - - -void SynchronizedReaderAndWriter::finishedWrite(const TimeStamp &advanceTo) -{ - itsWritePointer.advanceTo(advanceTo); -} - - -void SynchronizedReaderAndWriter::noMoreReading() -{ - // advance read pointer to infinity, to unblock thread that waits in startWrite - itsReadPointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL)); // we only use this TimeStamp for comparison so clockSpeed does not matter -} - - -void SynchronizedReaderAndWriter::noMoreWriting() -{ - itsWritePointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL)); -} - - -TimeSynchronizedReader::TimeSynchronizedReader(unsigned maximumNetworkLatency) -: - itsMaximumNetworkLatency(maximumNetworkLatency) -{ -} - - -TimeSynchronizedReader::~TimeSynchronizedReader() -{ -} - - -void TimeSynchronizedReader::startRead(const TimeStamp & /*begin*/, const TimeStamp &end) -{ - itsWallClock.waitUntil(end + itsMaximumNetworkLatency); -} - - -void TimeSynchronizedReader::finishedRead(const TimeStamp & /*advanceTo*/) -{ -} - - -void TimeSynchronizedReader::startWrite(const TimeStamp & /*begin*/, const TimeStamp & /*end*/) -{ -} - - -void TimeSynchronizedReader::finishedWrite(const TimeStamp & /*advanceTo*/) -{ -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/ReaderWriterSynchronization.h b/RTCP/IONProc/src/ReaderWriterSynchronization.h deleted file mode 100644 index 046cf2d683599cd5a0971a39fd379a74337358c6..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/ReaderWriterSynchronization.h +++ /dev/null @@ -1,93 +0,0 @@ -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_READER_WRITER_SYNCHRONIZATION -#define LOFAR_IONPROC_READER_WRITER_SYNCHRONIZATION - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Interface/RSPTimeStamp.h> -#include <SlidingPointer.h> -#include <WallClockTime.h> - -#include <pthread.h> - - -namespace LOFAR { -namespace RTCP { - - -class ReaderAndWriterSynchronization -{ - public: - virtual ~ReaderAndWriterSynchronization(); - - virtual void startRead(const TimeStamp &begin, const TimeStamp &end) = 0; - virtual void finishedRead(const TimeStamp &advanceTo) = 0; - - virtual void startWrite(const TimeStamp &begin, const TimeStamp &end) = 0; - virtual void finishedWrite(const TimeStamp &advanceTo) = 0; -}; - - -class SynchronizedReaderAndWriter : public ReaderAndWriterSynchronization -{ - public: - SynchronizedReaderAndWriter(unsigned bufferSize); - ~SynchronizedReaderAndWriter(); - - virtual void startRead(const TimeStamp &begin, const TimeStamp &end); - virtual void finishedRead(const TimeStamp &advanceTo); - - virtual void startWrite(const TimeStamp &begin, const TimeStamp &end); - virtual void finishedWrite(const TimeStamp &advanceTo); - - void noMoreReading(); - void noMoreWriting(); - - private: - SlidingPointer<TimeStamp> itsReadPointer, itsWritePointer; - unsigned itsBufferSize; -}; - - -class TimeSynchronizedReader : public ReaderAndWriterSynchronization -{ - public: - TimeSynchronizedReader(unsigned maximumNetworkLatency); - ~TimeSynchronizedReader(); - - virtual void startRead(const TimeStamp &begin, const TimeStamp &end); - virtual void finishedRead(const TimeStamp &advanceTo); - - virtual void startWrite(const TimeStamp &begin, const TimeStamp &end); - virtual void finishedWrite(const TimeStamp &advanceTo); - - private: - WallClockTime itsWallClock; - unsigned itsMaximumNetworkLatency; -}; - - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/SSH.cc b/RTCP/IONProc/src/SSH.cc deleted file mode 100644 index 9674c252f0653e0c0d3c233d10b58b74590a668f..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/SSH.cc +++ /dev/null @@ -1,670 +0,0 @@ -//# SSH.cc: setup an SSH connection using libssh2 -//# -//# Copyright (C) 2012 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: SSH.cc 18226 2012-06-09 12:56:47Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> -#include <SSH.h> - -#include <Common/Thread/Cancellation.h> -#include <Common/Thread/Mutex.h> -#include <Common/SystemCallException.h> -#include <Common/LofarLogger.h> -#include <string.h> -#include <time.h> -#include <vector> -#include <string> -#include <sstream> - -#include <Scheduling.h> -#include <Interface/SmartPtr.h> -#include <sys/select.h> -#include <Stream/SocketStream.h> -#include <openssl/crypto.h> - -using namespace std; - -namespace LOFAR { -namespace RTCP { - -// HAVE_LOG4COUT is not defined, but derived -#if !defined HAVE_LOG4CPLUS && !defined HAVE_LOG4CXX -#define HAVE_LOG4COUT -#endif - -#ifndef HAVE_LOG4COUT -Mutex coutMutex; -#endif - -void free_session( LIBSSH2_SESSION *session ) -{ - ScopedDelayCancellation dc; - - if (!session) - return; - - libssh2_session_free(session); -} - -void free_channel( LIBSSH2_CHANNEL *channel ) -{ - ScopedDelayCancellation dc; - - if (!channel) - return; - - libssh2_channel_free(channel); -} - -typedef SmartPtr<LIBSSH2_SESSION, SmartPtrFreeFunc<LIBSSH2_SESSION, free_session> > session_t; -typedef SmartPtr<LIBSSH2_CHANNEL, SmartPtrFreeFunc<LIBSSH2_CHANNEL, free_channel> > channel_t; - -/* - * Make sure we ScopedDelayCancellation around calls to libssh2 because - * it is an external library. - * - * Note that waitsocket() is a forced cancellation point. - */ - -SSHconnection::SSHconnection(const string &logPrefix, const string &hostname, const string &commandline, const string &username, const string &sshkey, bool captureStdout) -: - itsLogPrefix(logPrefix), - itsHostName(hostname), - itsCommandLine(commandline), - itsUserName(username), - itsSSHKey(sshkey), - itsCaptureStdout(captureStdout) -{ -} - - -SSHconnection::~SSHconnection() -{ - if (itsThread.get()) - cancel(); -} - - -void SSHconnection::start() -{ - itsThread = new Thread(this, &SSHconnection::commThread, itsLogPrefix + "[SSH Thread] ", 65536); -} - - -bool SSHconnection::isDone() -{ - return itsThread && itsThread->isDone(); -} - - -void SSHconnection::cancel() -{ - ASSERT(itsThread.get()); - - itsThread->cancel(); - - itsThread->wait(); -} - - -void SSHconnection::wait() -{ - ASSERT(itsThread.get()); - - itsThread->wait(); -} - - -void SSHconnection::wait( const struct timespec &deadline ) -{ - ASSERT(itsThread.get()); - - if (!itsThread->wait(deadline)) { - itsThread->cancel(); - - itsThread->wait(); - } -} - - -std::string SSHconnection::stdoutBuffer() const -{ - return itsStdoutBuffer.str(); -} - -LIBSSH2_SESSION *SSHconnection::open_session( FileDescriptorBasedStream &sock ) -{ - ScopedDelayCancellation dc; - - int rc; - - /* Create a session instance */ - session_t session = libssh2_session_init(); - if (!session.get()) { - LOG_ERROR_STR( itsLogPrefix << "Cannot create SSH session object" ); - return 0; - } - - /* tell libssh2 we want it all done non-blocking */ - libssh2_session_set_blocking(session, 0); - - /* ... start it up. This will trade welcome banners, exchange keys, - * and setup crypto, compression, and MAC layers - */ - while ((rc = libssh2_session_handshake(session, sock.fd)) == - LIBSSH2_ERROR_EAGAIN) { - waitsocket(session, sock); - } - - /* NOTE: libssh2 now holds a copy of sock.fd, so don't invalidate it! */ - - if (rc) { - LOG_ERROR_STR( itsLogPrefix << "Failure establishing SSH session: " << rc << " (" << explainLibSSH2Error(rc) << ")"); - return NULL; - } - - /* Authenticate by public key */ - while ((rc = libssh2_userauth_publickey_fromfile(session, - itsUserName.c_str(), // remote username - NULL, // public key filename - itsSSHKey.c_str(), // private key filename - NULL // password - )) == - LIBSSH2_ERROR_EAGAIN) { - waitsocket(session, sock); - } - - if (rc) { - LOG_ERROR_STR( itsLogPrefix << "Authentication by public key failed: " << rc << " (" << explainLibSSH2Error(rc) << ")"); - - // unrecoverable errors - if (rc == LIBSSH2_ERROR_FILE) - THROW(SSHException, "Error reading read key file " << itsSSHKey); - - return NULL; - } - - return session.release(); -} - -void SSHconnection::close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ) -{ - ScopedDelayCancellation dc; - - int rc; - - while ((rc = libssh2_session_disconnect(session, "Normal Shutdown, Thank you for playing")) == - LIBSSH2_ERROR_EAGAIN) { - waitsocket(session, sock); - } - - if (rc) - { - LOG_ERROR_STR( itsLogPrefix << "Failure closing session: " << rc << " (" << explainLibSSH2Error(rc) << ")"); - return; - } -} - -LIBSSH2_CHANNEL *SSHconnection::open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ) -{ - ScopedDelayCancellation dc; - - channel_t channel; - - /* Exec non-blocking on the remote host */ - while( (channel = libssh2_channel_open_session(session)) == NULL && - libssh2_session_last_error(session,NULL,NULL,0) == - LIBSSH2_ERROR_EAGAIN ) - { - waitsocket(session, sock); - } - - if (!channel.get()) - { - LOG_ERROR_STR( itsLogPrefix << "Could not set up SSH channel" ); - return NULL; - } - - return channel.release(); -} - -void SSHconnection::close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock ) -{ - ScopedDelayCancellation dc; - - int rc; - - while( (rc = libssh2_channel_close(channel)) == LIBSSH2_ERROR_EAGAIN ) { - waitsocket(session, sock); - } - - if (rc) - { - LOG_ERROR_STR( itsLogPrefix << "Failure closing channel: " << rc << " (" << explainLibSSH2Error(rc) << ")"); - return; - } -} - -bool SSHconnection::waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ) -{ - // we manually control the cancellation points, so make sure - // cancellation is actually disabled. - ScopedDelayCancellation dc; - - struct timeval timeout; - int rc; - fd_set fd; - fd_set *writefd = NULL; - fd_set *readfd = NULL; - int dir; - - timeout.tv_sec = 10; - timeout.tv_usec = 0; - - FD_ZERO(&fd); - - FD_SET(sock.fd, &fd); - - /* now make sure we wait in the correct direction */ - dir = libssh2_session_block_directions(session); - - if(dir & LIBSSH2_SESSION_BLOCK_INBOUND) - readfd = &fd; - - if(dir & LIBSSH2_SESSION_BLOCK_OUTBOUND) - writefd = &fd; - - { - Cancellation::enable(); - - // select() is a cancellation point - rc = ::select(sock.fd + 1, readfd, writefd, NULL, &timeout); - - Cancellation::disable(); - } - - return rc > 0; -} - -void SSHconnection::commThread() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); - //runOnCore0(); - //nice(19); -#endif - - int rc; - int exitcode; - char *exitsignal = 0; - - // WARNING: Make sure sock stays alive while a session is active, because the session - // will retain a copy of sock.fd so we can't invalidate it. We don't want to - // (for example) send a libssh2_session_disconnect to a sock.fd that has been - // reused by the system! - - // Declaring sock before session will cause ~sock to be called after - // ~session. - - SmartPtr<SocketStream> sock; - session_t session; - channel_t channel; - - for(;;) { - // keep trying to connect - sock = new SocketStream( itsHostName, 22, SocketStream::TCP, SocketStream::Client, 0 ); - - LOG_DEBUG_STR( itsLogPrefix << "Connected" ); - - /* Prevent cancellation from here on -- we manually insert cancellation points to avoid - screwing up libssh2's internal administration. */ - { - ScopedDelayCancellation dc; - - Cancellation::point(); - - // TODO: add a delay if opening session or channel fails - - session = open_session(*sock); - - if (!session.get()) - continue; - - channel = open_channel(session, *sock); - - if (!channel.get()) { - close_session(session, *sock); - - session = 0; - continue; - } - } - - break; - } - - LOG_DEBUG_STR( itsLogPrefix << "Starting remote command: " << itsCommandLine); - - while( (rc = libssh2_channel_exec(channel, itsCommandLine.c_str())) == - LIBSSH2_ERROR_EAGAIN ) - { - waitsocket(session, *sock); - } - - if (rc) - { - LOG_ERROR_STR( itsLogPrefix << "Failure starting remote command: " << rc << " (" << explainLibSSH2Error(rc) << ")"); - return; - } - - LOG_DEBUG_STR( itsLogPrefix << "Remote command started, waiting for output" ); - - Cancellation::disable(); - Cancellation::point(); - -#define NRSTREAMS 2 - - // raw input buffer - char data[NRSTREAMS][0x1000]; - - // the current line (or line remnant) - string line[NRSTREAMS]; - - // how many streams still provide data - unsigned nrOpenStreams = NRSTREAMS; - - // which streams still provide data - bool isOpen[NRSTREAMS]; - - for (unsigned s = 0; s < NRSTREAMS; ++s) - isOpen[s] = true; - - /* Session I/O */ - while( nrOpenStreams > 0 ) - { - for (unsigned s = 0; s < NRSTREAMS; ++s) { - if (!isOpen[s]) - continue; - - /* loop until we block */ - do { - rc = libssh2_channel_read_ex(channel, s, data[s], sizeof data[s]); - if( rc > 0 ) - { - if (s == 0 && itsCaptureStdout) { - // save stdout verbatim in our buffer - - LOG_DEBUG_STR( itsLogPrefix << "Appending " << rc << " bytes to stdout buffer, which contains " << itsStdoutBuffer.rdbuf()->in_avail() << " bytes" ); - - itsStdoutBuffer.write( data[s], rc ); - } else { - // print stream to stdout (TODO: to logger) - - // create a buffer for line + data - stringstream buffer; - - buffer << line[s]; - buffer.write( data[s], rc ); - - /* extract and log lines */ - for( ;; ) - { - Cancellation::point(); - - std::getline( buffer, line[s] ); - - if (!buffer.good()) { - // 'line' now holds the remnant - - if (line[s].size() > 10240) { - LOG_ERROR_STR( itsLogPrefix << "Line too long (" << line[s].size() << "); truncated: " << line[s] ); - line[s] = ""; - } - break; - } - - // TODO: Use logger somehow (we'd duplicate the prefix if we just use LOG_* macros..) - { -#ifdef HAVE_LOG4COUT - ScopedLock sl(LFDebug::mutex); -#else - ScopedLock sl(coutMutex); -#endif - // use clog, just like log4cout - clog << line[s] << endl; - } - } - } - } else { - if( rc < 0 && rc != LIBSSH2_ERROR_EAGAIN ) { - /* no need to output this for the EAGAIN case */ - LOG_ERROR_STR( itsLogPrefix << "libssh2_channel_read_ex returned " << rc << " (" << explainLibSSH2Error(rc) << ") for channel " << s); - } - } - } while( rc > 0 ); - - /* this is due to blocking that would occur otherwise so we loop on - this condition */ - if( rc != LIBSSH2_ERROR_EAGAIN ) - { - /* EOF */ - --nrOpenStreams; - } - } - - if (nrOpenStreams > 0) - waitsocket(session, *sock); - } - - LOG_DEBUG_STR( itsLogPrefix << "Disconnecting" ); - - close_channel(session, channel, *sock); - - if (rc == 0) - { - exitcode = libssh2_channel_get_exit_status(channel); - libssh2_channel_get_exit_signal(channel, &exitsignal, - NULL, NULL, NULL, NULL, NULL); - } else { - exitcode = 127; - } - - close_session(session, *sock); - - if (exitsignal) { - LOG_ERROR_STR(itsLogPrefix << "SSH was killed by signal " << exitsignal); - } else if(exitcode > 0) { - LOG_ERROR_STR(itsLogPrefix << "Exited with exit code " << exitcode << " (" << explainExitStatus(exitcode) << ")" ); - } else { - LOG_INFO_STR(itsLogPrefix << "Terminated normally"); - } -} - - -const char *explainLibSSH2Error( int error ) -{ - const char *explanation; - - switch(error) { - default: - explanation = "??"; - break; - - case LIBSSH2_ERROR_NONE: explanation ="LIBSSH2_ERROR_NONE"; break; - case LIBSSH2_ERROR_SOCKET_NONE: explanation ="LIBSSH2_ERROR_SOCKET_NONE"; break; - case LIBSSH2_ERROR_BANNER_RECV: explanation ="LIBSSH2_ERROR_BANNER_RECV"; break; - case LIBSSH2_ERROR_BANNER_SEND: explanation ="LIBSSH2_ERROR_BANNER_SEND"; break; - case LIBSSH2_ERROR_INVALID_MAC: explanation ="LIBSSH2_ERROR_INVALID_MAC"; break; - case LIBSSH2_ERROR_KEX_FAILURE: explanation ="LIBSSH2_ERROR_KEX_FAILURE"; break; - case LIBSSH2_ERROR_ALLOC: explanation ="LIBSSH2_ERROR_ALLOC"; break; - case LIBSSH2_ERROR_SOCKET_SEND: explanation ="LIBSSH2_ERROR_SOCKET_SEND"; break; - case LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE: explanation ="LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE"; break; - case LIBSSH2_ERROR_TIMEOUT: explanation ="LIBSSH2_ERROR_TIMEOUT"; break; - case LIBSSH2_ERROR_HOSTKEY_INIT: explanation ="LIBSSH2_ERROR_HOSTKEY_INIT"; break; - case LIBSSH2_ERROR_HOSTKEY_SIGN: explanation ="LIBSSH2_ERROR_HOSTKEY_SIGN"; break; - case LIBSSH2_ERROR_DECRYPT: explanation ="LIBSSH2_ERROR_DECRYPT"; break; - case LIBSSH2_ERROR_SOCKET_DISCONNECT: explanation ="LIBSSH2_ERROR_SOCKET_DISCONNECT"; break; - case LIBSSH2_ERROR_PROTO: explanation ="LIBSSH2_ERROR_PROTO"; break; - case LIBSSH2_ERROR_PASSWORD_EXPIRED: explanation ="LIBSSH2_ERROR_PASSWORD_EXPIRED"; break; - case LIBSSH2_ERROR_FILE: explanation ="LIBSSH2_ERROR_FILE"; break; - case LIBSSH2_ERROR_METHOD_NONE: explanation ="LIBSSH2_ERROR_METHOD_NONE"; break; - case LIBSSH2_ERROR_AUTHENTICATION_FAILED: explanation ="LIBSSH2_ERROR_AUTHENTICATION_FAILED"; break; - //case LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED: explanation ="LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED"; break; - case LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED: explanation ="LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED"; break; - case LIBSSH2_ERROR_CHANNEL_OUTOFORDER: explanation ="LIBSSH2_ERROR_CHANNEL_OUTOFORDER"; break; - case LIBSSH2_ERROR_CHANNEL_FAILURE: explanation ="LIBSSH2_ERROR_CHANNEL_FAILURE"; break; - case LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED: explanation ="LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED"; break; - case LIBSSH2_ERROR_CHANNEL_UNKNOWN: explanation ="LIBSSH2_ERROR_CHANNEL_UNKNOWN"; break; - case LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED: explanation ="LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED"; break; - case LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED: explanation ="LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED"; break; - case LIBSSH2_ERROR_CHANNEL_CLOSED: explanation ="LIBSSH2_ERROR_CHANNEL_CLOSED"; break; - case LIBSSH2_ERROR_CHANNEL_EOF_SENT: explanation ="LIBSSH2_ERROR_CHANNEL_EOF_SENT"; break; - case LIBSSH2_ERROR_SCP_PROTOCOL: explanation ="LIBSSH2_ERROR_SCP_PROTOCOL"; break; - case LIBSSH2_ERROR_ZLIB: explanation ="LIBSSH2_ERROR_ZLIB"; break; - case LIBSSH2_ERROR_SOCKET_TIMEOUT: explanation ="LIBSSH2_ERROR_SOCKET_TIMEOUT"; break; - case LIBSSH2_ERROR_SFTP_PROTOCOL: explanation ="LIBSSH2_ERROR_SFTP_PROTOCOL"; break; - case LIBSSH2_ERROR_REQUEST_DENIED: explanation ="LIBSSH2_ERROR_REQUEST_DENIED"; break; - case LIBSSH2_ERROR_METHOD_NOT_SUPPORTED: explanation ="LIBSSH2_ERROR_METHOD_NOT_SUPPORTED"; break; - case LIBSSH2_ERROR_INVAL: explanation ="LIBSSH2_ERROR_INVAL"; break; - case LIBSSH2_ERROR_INVALID_POLL_TYPE: explanation ="LIBSSH2_ERROR_INVALID_POLL_TYPE"; break; - case LIBSSH2_ERROR_PUBLICKEY_PROTOCOL: explanation ="LIBSSH2_ERROR_PUBLICKEY_PROTOCOL"; break; - case LIBSSH2_ERROR_EAGAIN: explanation ="LIBSSH2_ERROR_EAGAIN"; break; - case LIBSSH2_ERROR_BUFFER_TOO_SMALL: explanation ="LIBSSH2_ERROR_BUFFER_TOO_SMALL"; break; - case LIBSSH2_ERROR_BAD_USE: explanation ="LIBSSH2_ERROR_BAD_USE"; break; - case LIBSSH2_ERROR_COMPRESS: explanation ="LIBSSH2_ERROR_COMPRESS"; break; - case LIBSSH2_ERROR_OUT_OF_BOUNDARY: explanation ="LIBSSH2_ERROR_OUT_OF_BOUNDARY"; break; - case LIBSSH2_ERROR_AGENT_PROTOCOL: explanation ="LIBSSH2_ERROR_AGENT_PROTOCOL"; break; - case LIBSSH2_ERROR_SOCKET_RECV: explanation ="LIBSSH2_ERROR_SOCKET_RECV"; break; - case LIBSSH2_ERROR_ENCRYPT: explanation ="LIBSSH2_ERROR_ENCRYPT"; break; - case LIBSSH2_ERROR_BAD_SOCKET: explanation ="LIBSSH2_ERROR_BAD_SOCKET"; break; -// case LIBSSH2_ERROR_KNOWN_HOSTS: explanation ="LIBSSH2_ERROR_KNOWN_HOSTS"; break; - //case LIBSSH2_ERROR_BANNER_NONE: explanation ="LIBSSH2_ERROR_BANNER_NONE"; break; - } - - return explanation; -} - -std::vector< SmartPtr<Mutex> > openssl_mutexes; - -static void lock_callback(int mode, int type, const char *file, int line) -{ - (void)file; - (void)line; - - if (mode & CRYPTO_LOCK) - openssl_mutexes[type]->lock(); - else - openssl_mutexes[type]->unlock(); -} - -static unsigned long thread_id_callback() -{ - return static_cast<unsigned long>(pthread_self()); -} - - -bool SSH_Init() { - // initialise openssl - openssl_mutexes.resize(CRYPTO_num_locks()); - for (size_t i = 0; i < openssl_mutexes.size(); ++i) - openssl_mutexes[i] = new Mutex; - - CRYPTO_set_id_callback(&thread_id_callback); - CRYPTO_set_locking_callback(&lock_callback); - - // initialise libssh2 - int rc = libssh2_init(0); - - if (rc) - return false; - - return true; -} - -void SSH_Finalize() { - // exit libssh2 - libssh2_exit(); - - // exit openssl - CRYPTO_set_locking_callback(NULL); - CRYPTO_set_id_callback(NULL); - - openssl_mutexes.clear(); -} - - -const char *explainExitStatus( int exitstatus ) -{ - const char *explanation; - - switch (exitstatus) { - default: - explanation = "??"; - break; - - case 255: - explanation = "Network or authentication error"; - break; - case 127: - explanation = "BASH: command/library not found"; - break; - case 126: - explanation = "BASH: command found but could not be executed (wrong architecture?)"; - break; - - case 128 + SIGHUP: - explanation = "killed by SIGHUP"; - break; - case 128 + SIGINT: - explanation = "killed by SIGINT (Ctrl-C)"; - break; - case 128 + SIGQUIT: - explanation = "killed by SIGQUIT"; - break; - case 128 + SIGILL: - explanation = "illegal instruction"; - break; - case 128 + SIGABRT: - explanation = "killed by SIGABRT"; - break; - case 128 + SIGKILL: - explanation = "killed by SIGKILL"; - break; - case 128 + SIGSEGV: - explanation = "segmentation fault"; - break; - case 128 + SIGPIPE: - explanation = "broken pipe"; - break; - case 128 + SIGALRM: - explanation = "killed by SIGALRM"; - break; - case 128 + SIGTERM: - explanation = "killed by SIGTERM"; - break; - } - - return explanation; -} - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/IONProc/src/SSH.h b/RTCP/IONProc/src/SSH.h deleted file mode 100644 index e12be5df574d6aa23c2276c0899fbd2212f60cc3..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/SSH.h +++ /dev/null @@ -1,89 +0,0 @@ -//# SSH.h -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: SSH.h 15296 2010-03-24 10:19:41Z mol $ - - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#ifndef LOFAR_RTCP_SSH_H -#define LOFAR_RTCP_SSH_H - -#include <string> - -#include <Common/Thread/Thread.h> -#include <Common/Exception.h> -#include <Stream/FileDescriptorBasedStream.h> -#include <libssh2.h> -#include <Interface/SmartPtr.h> -#include <time.h> -#include <string> -#include <sstream> - -namespace LOFAR { -namespace RTCP { - -bool SSH_Init(); -void SSH_Finalize(); - -class SSHconnection { -public: - EXCEPTION_CLASS(SSHException, LOFAR::Exception); - - SSHconnection(const std::string &logPrefix, const std::string &hostname, const std::string &commandline, const std::string &username, const std::string &sshkey, bool captureStdout = false); - - ~SSHconnection(); - - void start(); - void cancel(); - void wait(); - void wait( const struct timespec &deadline ); - - bool isDone(); - - std::string stdoutBuffer() const; - -private: - const string itsLogPrefix; - const string itsHostName; - const string itsCommandLine; - const string itsUserName; - const string itsSSHKey; - - SmartPtr<Thread> itsThread; - const bool itsCaptureStdout; - std::stringstream itsStdoutBuffer; - - bool waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ); - - LIBSSH2_SESSION *open_session( FileDescriptorBasedStream &sock ); - void close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ); - LIBSSH2_CHANNEL *open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock ); - void close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock ); - - void commThread(); -}; - -const char *explainLibSSH2Error( int error ); -const char *explainExitStatus( int exitstatus ); - -} // namespace RTCP -} // namespace LOFAR - - -#endif diff --git a/RTCP/IONProc/src/Scheduling.cc b/RTCP/IONProc/src/Scheduling.cc deleted file mode 100644 index 9a3a6df69e81ee5412042dc9f3ec745ce97ddd2d..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Scheduling.cc +++ /dev/null @@ -1,85 +0,0 @@ -//# Scheduling.cc: -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#if defined HAVE_BGP_ION - -#include <IONProc/Scheduling.h> -#include <Common/LofarLogger.h> - -#include <iostream> -#include <cstdio> - -#include <sched.h> - - -namespace LOFAR { -namespace RTCP { - -void doNotRunOnCore0() -{ - cpu_set_t cpu_set; - - CPU_ZERO(&cpu_set); - - for (unsigned cpu = 1; cpu < 4; cpu ++) - CPU_SET(cpu, &cpu_set); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) { - LOG_WARN("sched_setaffinity failed"); - perror("sched_setaffinity"); - } -} - - -void runOnCore0() -{ - cpu_set_t cpu_set; - - CPU_ZERO(&cpu_set); - CPU_SET(0, &cpu_set); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) { - LOG_WARN("sched_setaffinity failed"); - perror("sched_setaffinity"); - } -} - - -void setPriority(unsigned priority) -{ - // priority 0: non-real time - // priority 1-99: real time - struct sched_param sched_param; - - sched_param.sched_priority = priority; - - if (pthread_setschedparam(pthread_self(), priority ? SCHED_RR : SCHED_OTHER, &sched_param) < 0) - perror("pthread_setschedparam"); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/Scheduling.h b/RTCP/IONProc/src/Scheduling.h deleted file mode 100644 index f31a71fe387577f2c5a396a6b35686f09bcecb24..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/Scheduling.h +++ /dev/null @@ -1,44 +0,0 @@ -//# OutputThread.h -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_SCHEDULING_H -#define LOFAR_IONPROC_SCHEDULING_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -namespace LOFAR { -namespace RTCP { - -#if defined HAVE_BGP_ION -// Core 0 handles all ethernet and tree interrupts. Do not run time-critical -// threads on this core. -extern void doNotRunOnCore0(); -extern void runOnCore0(); - -// set thread priority. 0 = normal, 1 - 99 = real time -extern void setPriority(unsigned priority); -#endif - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/SlidingPointer.h b/RTCP/IONProc/src/SlidingPointer.h deleted file mode 100644 index 6ea1ae3dadc1267c73f91c5b5dd4490b7f673467..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/SlidingPointer.h +++ /dev/null @@ -1,94 +0,0 @@ -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_SLIDING_POINTER_H -#define LOFAR_IONPROC_SLIDING_POINTER_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Common/Thread/Condition.h> -#include <Common/Thread/Mutex.h> - - -namespace LOFAR { -namespace RTCP { - - -template <typename T> class SlidingPointer -{ - public: - SlidingPointer(); - SlidingPointer(const T &); - - void advanceTo(const T &); - void waitFor(const T &); - - private: - T itsValue, itsWaitingForValue; - Mutex itsMutex; - Condition itsAwaitedValueReached; - bool itsIsWaiting; -}; - - -template <typename T> inline SlidingPointer<T>::SlidingPointer() -: - itsIsWaiting(false) -{ -} - - -template <typename T> inline SlidingPointer<T>::SlidingPointer(const T &value) -: - itsValue(value), - itsIsWaiting(false) -{ -} - - -template <typename T> inline void SlidingPointer<T>::advanceTo(const T &value) -{ - ScopedLock lock(itsMutex); - - if (value > itsValue) { - itsValue = value; - - if (itsIsWaiting && value >= itsWaitingForValue) - itsAwaitedValueReached.signal(); - } -} - - -template <typename T> inline void SlidingPointer<T>::waitFor(const T &value) -{ - ScopedLock lock(itsMutex); - - while (itsValue < value) { - itsIsWaiting = true; - itsWaitingForValue = value; - itsAwaitedValueReached.wait(itsMutex); - itsIsWaiting = false; - } -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/StorageProcesses.cc b/RTCP/IONProc/src/StorageProcesses.cc deleted file mode 100644 index c496d2beec1d558e106b48f519dedbfb58dd2003..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/StorageProcesses.cc +++ /dev/null @@ -1,258 +0,0 @@ -#include "lofar_config.h" -#include <StorageProcesses.h> -#include <sys/time.h> -#include <unistd.h> -#include <Common/Thread/Thread.h> -#include <Stream/PortBroker.h> -#include <SSH.h> -#include <boost/format.hpp> - -namespace LOFAR { -namespace RTCP { - -using namespace std; -using boost::format; - -/* - * Manage a Storage_main process (RTCP/Storage). The control sequence is as follows: - * - * hostList = "OLAP.Storage.hosts" - * - * 1. Create a StorageProcesses manager object: - * manager = StorageProcesses(parset, logprefix) - * 2. Spawn all Storage processes: - * manager.start() - * Which will ssh to all hosts in hostList and start Storage_main, - * and establish a control channel to each. - * 3. Let your application connect to whatever is indicated by - * getStreamDescriptorBetweenIONandStorage(parset, outputType, streamNr) - * 4. After the observation, generate and forward the final metadata by calling - * manager.forwardFinalMetaData( deadline ) - * 5. Optionally, wait for the Storage_main processes to finish with a given - * deadline: - * manager.stop( deadline ) - */ - - -StorageProcess::StorageProcess( StorageProcesses &manager, const Parset &parset, const string &logPrefix, int rank, const string &hostname ) -: - itsManager(manager), - itsParset(parset), - itsLogPrefix(str(boost::format("%s [StorageWriter rank %2d host %s] ") % logPrefix % rank % hostname)), - itsRank(rank), - itsHostname(hostname) -{ -} - - -StorageProcess::~StorageProcess() -{ - // cancel the control thread in case it is still active - itsThread->cancel(); -} - - -void StorageProcess::start() -{ - std::string userName = itsParset.getString("OLAP.Storage.userName"); - std::string sshKey = itsParset.getString("OLAP.Storage.sshIdentityFile"); - std::string executable = itsParset.getString("OLAP.Storage.msWriter"); - - char cwd[1024]; - - if (getcwd(cwd, sizeof cwd) == 0) - THROW_SYSCALL("getcwd"); - - std::string commandLine = str(boost::format("cd %s && %s%s %u %d %u 2>&1") - % cwd -#if defined USE_VALGRIND - % "valgrind --leak-check=full " -#else - % "" -#endif - % executable - % itsParset.observationID() - % itsRank -#if defined WORDS_BIGENDIAN - % 1 -#else - % 0 -#endif - ); - - itsSSHconnection = new SSHconnection(itsLogPrefix, itsHostname, commandLine, userName, sshKey, 0); - itsSSHconnection->start(); - - itsThread = new Thread(this, &StorageProcess::controlThread, itsLogPrefix + "[ControlThread] ", 65535); -} - - -void StorageProcess::stop(struct timespec deadline) -{ - if (!itsSSHconnection) { - // never started - return; - } - - itsSSHconnection->wait(deadline); - - itsThread->cancel(); -} - - -bool StorageProcess::isDone() -{ - return itsSSHconnection->isDone(); -} - - -void StorageProcess::controlThread() -{ - // Connect - LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connecting..."); - std::string resource = getStorageControlDescription(itsParset.observationID(), itsRank); - PortBroker::ClientStream stream(itsHostname, storageBrokerPort(itsParset.observationID()), resource, 0); - - // Send parset - LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connected -- sending parset"); - itsParset.write(&stream); - LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent parset"); - - // Send final meta data once it is available - itsManager.itsFinalMetaDataAvailable.down(); - - LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sending final meta data"); - itsManager.itsFinalMetaData.write(stream); - LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent final meta data"); -} - - -StorageProcesses::StorageProcesses( const Parset &parset, const std::string &logPrefix ) -: - itsParset(parset), - itsLogPrefix(logPrefix) -{ -} - -StorageProcesses::~StorageProcesses() -{ - // never let any processes linger - stop(0); -} - - -void StorageProcesses::start() -{ - vector<string> hostnames = itsParset.getStringVector("OLAP.Storage.hosts"); - - itsStorageProcesses.resize(hostnames.size()); - - LOG_DEBUG_STR(itsLogPrefix << "Starting " << itsStorageProcesses.size() << " Storage processes"); - - for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank ++) { - itsStorageProcesses[rank] = new StorageProcess(*this, itsParset, itsLogPrefix, rank, hostnames[rank]); - itsStorageProcesses[rank]->start(); - } -} - - -void StorageProcesses::stop( time_t deadline ) -{ - LOG_DEBUG_STR(itsLogPrefix << "Stopping storage processes"); - - size_t nrRunning = 0; - - for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank ++) - if (itsStorageProcesses[rank].get()) - nrRunning++; - - while(nrRunning > 0) { - for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank ++) { - if (!itsStorageProcesses[rank].get()) - continue; - - if (itsStorageProcesses[rank]->isDone() || time(0) >= deadline) { - struct timespec immediately = { 0, 0 }; - - itsStorageProcesses[rank]->stop(immediately); - itsStorageProcesses[rank] = 0; - - nrRunning--; - } - } - - if (nrRunning > 0) - sleep(1); - } - - itsStorageProcesses.clear(); - - LOG_DEBUG_STR(itsLogPrefix << "Storage processes are stopped"); -} - - -void StorageProcesses::forwardFinalMetaData( time_t deadline ) -{ - struct timespec deadline_ts = { deadline, 0 }; - - Thread thread(this, &StorageProcesses::finalMetaDataThread, itsLogPrefix + "[FinalMetaDataThread] ", 65536); - - // abort the thread if deadline passes - try { - if (!thread.wait(deadline_ts)) { - LOG_WARN_STR(itsLogPrefix << "Cancelling FinalMetaDataThread"); - - thread.cancel(); - } - } catch(...) { - thread.cancel(); - throw; - } -} - - -void StorageProcesses::finalMetaDataThread() -{ - std::string hostName = itsParset.getString("OLAP.FinalMetaDataGatherer.host"); - std::string userName = itsParset.getString("OLAP.FinalMetaDataGatherer.userName"); - std::string sshKey = itsParset.getString("OLAP.FinalMetaDataGatherer.sshIdentityFile"); - std::string executable = itsParset.getString("OLAP.FinalMetaDataGatherer.executable"); - - char cwd[1024]; - - if (getcwd(cwd, sizeof cwd) == 0) - THROW_SYSCALL("getcwd"); - - std::string commandLine = str(boost::format("cd %s && %s %d 2>&1") - % cwd - % executable - % itsParset.observationID() - ); - - // Start the remote process - SSHconnection sshconn(itsLogPrefix + "[FinalMetaData] ", hostName, commandLine, userName, sshKey); - sshconn.start(); - - // Connect - LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connecting..."); - std::string resource = getStorageControlDescription(itsParset.observationID(), -1); - PortBroker::ClientStream stream(hostName, storageBrokerPort(itsParset.observationID()), resource, 0); - - // Send parset - LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connected -- sending parset"); - itsParset.write(&stream); - LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] sent parset"); - - // Receive final meta data - itsFinalMetaData.read(stream); - LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] obtained final meta data"); - - // Notify clients - itsFinalMetaDataAvailable.up(itsStorageProcesses.size()); - - // Wait for or end the remote process - sshconn.wait(); -} - -} -} diff --git a/RTCP/IONProc/src/StorageProcesses.h b/RTCP/IONProc/src/StorageProcesses.h deleted file mode 100644 index 3f2ab3525f2ebfb4927492aa381d26ab0ee555af..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/StorageProcesses.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef LOFAR_RTCP_STORAGE_PROCESSES -#define LOFAR_RTCP_STORAGE_PROCESSES - -#include <sys/time.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/Stream.h> -#include <Interface/FinalMetaData.h> -#include <SSH.h> -#include <string> -#include <vector> - -namespace LOFAR { -namespace RTCP { - -class StorageProcesses; - -/* A single Storage process */ - -class StorageProcess { - public: - StorageProcess( StorageProcesses &manager, const Parset &parset, const std::string &logPrefix, int rank, const std::string &hostname ); - ~StorageProcess(); - - void start(); - void stop( struct timespec deadline ); - bool isDone(); - - private: - void controlThread(); - - StorageProcesses &itsManager; - - SmartPtr<SSHconnection> itsSSHconnection; - - const Parset &itsParset; - const std::string itsLogPrefix; - - const int itsRank; - const std::string itsHostname; - - SmartPtr<Thread> itsThread; -}; - -/* - * Manage a Storage_main process (RTCP/Storage). The control sequence is as follows: - * - * hostList = "OLAP.Storage.hosts" - * - * for(host in hostList): - * spawnThread("ssh host <storage process>") - * (TODO) - */ - -class StorageProcesses { -public: - StorageProcesses( const Parset &parset, const std::string &logPrefix ); - ~StorageProcesses(); - - void start(); - void stop( time_t deadline ); - - void forwardFinalMetaData( time_t deadline ); - -private: - const Parset &itsParset; - const std::string itsLogPrefix; - - std::vector<SmartPtr<StorageProcess> > itsStorageProcesses; - FinalMetaData itsFinalMetaData; - Semaphore itsFinalMetaDataAvailable; - - void finalMetaDataThread(); - - friend class StorageProcess; -}; - -} -} - -#endif diff --git a/RTCP/IONProc/src/StreamMultiplexer.cc b/RTCP/IONProc/src/StreamMultiplexer.cc deleted file mode 100644 index b17ff5c5dd47bf2695898b1b26f2dad0494e09b8..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/StreamMultiplexer.cc +++ /dev/null @@ -1,222 +0,0 @@ -//# StreamMultiplexer.cc: -//# -//# Copyright (C) 2010 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: FileDescriptorBasedStream.cc 14333 2009-10-28 08:43:36Z romein $ - -#include <lofar_config.h> - -#include <StreamMultiplexer.h> -#include <Scheduling.h> -#include <Common/Thread/Cancellation.h> -#include <Common/LofarLogger.h> - -#include <cstring> - - -namespace LOFAR { -namespace RTCP { - - -template <typename K, typename V> void StreamMultiplexer::Map<K, V>::insert(K key, V value) -{ - ScopedLock sl(itsMutex); - - itsMap[key] = value; - itsReevaluate.broadcast(); -} - - -template <typename K, typename V> V StreamMultiplexer::Map<K, V>::remove(K key) -{ - ScopedLock sl(itsMutex); - - std::map<unsigned, Request *>::iterator it; - - while ((it = itsMap.find(key)) == itsMap.end()) - itsReevaluate.wait(itsMutex); - - V v = it->second; - itsMap.erase(it); - - return v; -} - - -StreamMultiplexer::StreamMultiplexer(Stream &stream) -: - itsStream(stream) -{ -} - - -void StreamMultiplexer::start() -{ - itsReceiveThread = new Thread(this, &StreamMultiplexer::receiveThread, "[StreamMultiplexer] ", 65536); -} - - -StreamMultiplexer::~StreamMultiplexer() -{ - RequestMsg msg; - -#if defined USE_VALGRIND - memset(&msg, 0, sizeof msg); -#endif - - msg.type = RequestMsg::STOP_REQ; - - { - ScopedLock sl(itsSendMutex); - ScopedDelayCancellation dc; - - itsStream.write(&msg, sizeof msg); - } -} - - -void StreamMultiplexer::registerChannel(MultiplexedStream *stream, unsigned channel) -{ - RequestMsg msg; - -#if defined USE_VALGRIND - memset(&msg, 0, sizeof msg); -#endif - - msg.type = RequestMsg::REGISTER; - msg.reqPtr = &stream->itsRequest; - msg.size = channel; // FIXME: abuse size field - - { - ScopedLock sl(itsSendMutex); - itsStream.write(&msg, sizeof msg); - } - - stream->itsPeerRequestAddr = itsOutstandingRegistrations.remove(channel); -} - - -void StreamMultiplexer::receiveThread() -{ -#if defined HAVE_BGP_ION - doNotRunOnCore0(); -#endif - - while (1) { - RequestMsg msg; - - try { - itsStream.read(&msg, sizeof msg); - } catch(Stream::EndOfStreamException &) { - LOG_FATAL("[StreamMultiplexer] Connection reset by peer"); - return; - } - - switch (msg.type) { - case RequestMsg::RECV_REQ : msg.reqPtr->msg = msg; - msg.reqPtr->received.up(); - break; - - case RequestMsg::RECV_ACK : itsStream.read(msg.recvPtr, msg.size); - *msg.sizePtr = msg.size; - msg.recvFinished->up(); - break; - - case RequestMsg::REGISTER : itsOutstandingRegistrations.insert(msg.size, msg.reqPtr); - break; - - case RequestMsg::STOP_REQ : return; - } - } -} - - -size_t StreamMultiplexer::tryRead(MultiplexedStream *stream, void *ptr, size_t size) -{ - Semaphore recvFinished; - RequestMsg msg; - -#if defined USE_VALGRIND - memset(&msg, 0, sizeof msg); -#endif - - msg.type = RequestMsg::RECV_REQ; - msg.size = size; - msg.reqPtr = stream->itsPeerRequestAddr; - msg.sizePtr = &size; - msg.recvPtr = ptr; - msg.recvFinished = &recvFinished; - - { - ScopedLock sl(itsSendMutex); - itsStream.write(&msg, sizeof msg); - } - - recvFinished.down(); - - return size; -} - - -size_t StreamMultiplexer::tryWrite(MultiplexedStream *stream, const void *ptr, size_t size) -{ - stream->itsRequest.received.down(); - - RequestMsg ack = stream->itsRequest.msg; - - ack.type = RequestMsg::RECV_ACK; - ack.size = std::min(size, ack.size); - - { - ScopedLock sl(itsSendMutex); - itsStream.write(&ack, sizeof ack); - itsStream.write(ptr, ack.size); - } - - return ack.size; -} - - -MultiplexedStream::MultiplexedStream(StreamMultiplexer &multiplexer, unsigned channel) -: - itsMultiplexer(multiplexer) -{ - itsMultiplexer.registerChannel(this, channel); -} - - -MultiplexedStream::~MultiplexedStream() -{ -} - - -size_t MultiplexedStream::tryRead(void *ptr, size_t size) -{ - return itsMultiplexer.tryRead(this, ptr, size); -} - - -size_t MultiplexedStream::tryWrite(const void *ptr, size_t size) -{ - return itsMultiplexer.tryWrite(this, ptr, size); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/IONProc/src/StreamMultiplexer.h b/RTCP/IONProc/src/StreamMultiplexer.h deleted file mode 100644 index e55fe1725481b208295edcde7fde11c15181908a..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/StreamMultiplexer.h +++ /dev/null @@ -1,116 +0,0 @@ -//# StreamMultiplexer.h: -//# -//# Copyright (C) 2010 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: Stream.h 14333 2009-10-28 08:43:36Z romein $ - -#ifndef LOFAR_LCS_STREAM_STREAM_MULTIPLEXER_H -#define LOFAR_LCS_STREAM_STREAM_MULTIPLEXER_H - -#include <Stream/Stream.h> -#include <Common/Thread/Condition.h> -#include <Common/Thread/Mutex.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Thread.h> -#include <Interface/SmartPtr.h> - -#include <map> - - -namespace LOFAR { -namespace RTCP { - -class MultiplexedStream; - -class StreamMultiplexer -{ - public: - StreamMultiplexer(Stream &); - ~StreamMultiplexer(); - - void start(); - - void registerChannel(MultiplexedStream *, unsigned channel); - - size_t tryRead(MultiplexedStream *, void *ptr, size_t size); - size_t tryWrite(MultiplexedStream *, const void *ptr, size_t size); - - private: - friend class MultiplexedStream; - - void receiveThread(); - - struct Request; - - struct RequestMsg { - enum { RECV_REQ, RECV_ACK, REGISTER, STOP_REQ } type; - size_t size; - Request *reqPtr; // in addr space of callee - size_t *sizePtr; // in addr space of caller - void *recvPtr; // in addr space of caller - Semaphore *recvFinished; // in addr space of caller - }; - - struct Request { - RequestMsg msg; - Semaphore received; - }; - - Stream &itsStream; - Mutex itsSendMutex; - - template <typename K, typename V> class Map { - public: - void insert(K, V); - V remove(K); - - private: - std::map<K, V> itsMap; - Mutex itsMutex; - Condition itsReevaluate; - }; - - Map<unsigned, Request *> itsOutstandingRegistrations; - - SmartPtr<Thread> itsReceiveThread; -}; - - -class MultiplexedStream : public Stream -{ - public: - MultiplexedStream(StreamMultiplexer &, unsigned channel); - virtual ~MultiplexedStream(); - - virtual size_t tryRead(void *ptr, size_t size); - virtual size_t tryWrite(const void *ptr, size_t size); - - private: - friend class StreamMultiplexer; - - StreamMultiplexer &itsMultiplexer; - unsigned itsChannel; - - StreamMultiplexer::Request itsRequest, *itsPeerRequestAddr; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/WallClockTime.h b/RTCP/IONProc/src/WallClockTime.h deleted file mode 100644 index cdc4313cb6c376e37fe6305c0df5e5046ec1d151..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/WallClockTime.h +++ /dev/null @@ -1,108 +0,0 @@ -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_IONPROC_WALL_CLOCK_TIME_H -#define LOFAR_IONPROC_WALL_CLOCK_TIME_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Interface/RSPTimeStamp.h> -#include <Common/Thread/Condition.h> -#include <Common/Thread/Mutex.h> - -#include <errno.h> -#include <time.h> - - -namespace LOFAR { -namespace RTCP { - - -class WallClockTime -{ - public: - WallClockTime(); - - bool waitUntil(const struct timespec &); - bool waitUntil(time_t); - bool waitUntil(const TimeStamp &); - void waitForever(); - - void cancelWait(); - - private: - Mutex itsMutex; - Condition itsCondition; - bool itsCancelled; -}; - - -inline WallClockTime::WallClockTime() -: - itsCancelled(false) -{ -} - - -inline bool WallClockTime::waitUntil(const struct timespec ×pec) -{ - ScopedLock scopedLock(itsMutex); - - while (!itsCancelled && itsCondition.wait(itsMutex, timespec)) - ; - - return !itsCancelled; -} - - -inline bool WallClockTime::waitUntil(time_t timestamp) -{ - struct timespec timespec = { timestamp, 0 }; - - return waitUntil(timespec); -} - - -inline bool WallClockTime::waitUntil(const TimeStamp ×tamp) -{ - return waitUntil(static_cast<struct timespec>(timestamp)); -} - -inline void WallClockTime::waitForever() -{ - ScopedLock scopedLock(itsMutex); - - while (!itsCancelled) - itsCondition.wait(itsMutex); -} - -inline void WallClockTime::cancelWait() -{ - ScopedLock scopedLock(itsMutex); - - itsCancelled = true; - itsCondition.broadcast(); -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/IONProc/src/casarc b/RTCP/IONProc/src/casarc deleted file mode 100644 index 1fbe25778bc6dbaf2c47d636ba5298cf78d6c037..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/casarc +++ /dev/null @@ -1,4 +0,0 @@ -measures.directory: /opt/casacore/data - -# use nutation tables for increased (and needed) accuracy -measures.nutation.b_usejpl: true diff --git a/RTCP/IONProc/src/generateDelays.cc b/RTCP/IONProc/src/generateDelays.cc deleted file mode 100644 index f0f0b8b464d633010a2913a35016edd88fcafcef..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/generateDelays.cc +++ /dev/null @@ -1,173 +0,0 @@ -//# Copyright (C) 2012 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Delays.h> -#include <Interface/Parset.h> -#include <Common/Exception.h> -#include <Common/LofarLogger.h> -#include <Interface/RSPTimeStamp.h> -#include <Common/lofar_math.h> -#include <Common/Exception.h> - -#include <string> -#include <vector> -#include <iostream> -#include <iomanip> -#include <cmath> - -#include <unistd.h> -#include <stdlib.h> -#include <time.h> -#include <cstdio> -#include <cstring> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -bool print_tabs = false; -bool ascii_ts = false; - -void generateDelays( const string &parsetFilename, const string &station ) -{ - Parset parset(parsetFilename); - - unsigned nrBeams = parset.nrBeams(); - unsigned maxNrTABs = parset.maxNrTABs(); - vector<unsigned> nrTABs = parset.nrTABs(); - - double startTime = parset.startTime(); - double stopTime = parset.stopTime(); - double sampleFreq = parset.subbandBandwidth(); - unsigned samplesPerBlock = parset.nrSamplesPerSubband(); - double blockSize = parset.CNintegrationTime(); - unsigned nrBlocks = static_cast<unsigned>(floor((stopTime - startTime) / blockSize)); - - unsigned seconds = static_cast<unsigned>(floor(startTime)); - unsigned samples = static_cast<unsigned>((startTime - floor(startTime)) * sampleFreq); - - TimeStamp ts = TimeStamp(seconds, samples, parset.clockSpeed()); - - Delays w(parset, station, ts); - w.start(); - - Matrix<double> delays(nrBeams, maxNrTABs + 1); - Matrix<casa::MVDirection> prev_directions(nrBeams, maxNrTABs + 1), directions(nrBeams, maxNrTABs + 1); - - for( unsigned block = 0; block < nrBlocks; block++ ) { - w.getNextDelays(directions, delays); - struct timespec spec = ts; - - if (ascii_ts) { - time_t seconds = spec.tv_sec; - - char buf[26]; - ctime_r(&seconds, buf); - buf[strlen(buf) - 1] = 0; // remove trailing \n - - cout << buf << " sample " << ts.getBlockId() << " delay "; - } else { - double seconds = 1.0 * spec.tv_sec + spec.tv_nsec / 1.0e9; - cout << fixed << setprecision(9) << seconds << " delay "; - } - - for( unsigned beam = 0; beam < nrBeams; beam++ ) { - unsigned nr_delays = print_tabs ? nrTABs[beam] + 1 : 1; - - for( unsigned pencil = 0; pencil < nr_delays; pencil++ ) - cout << fixed << setprecision(12) << delays[beam][pencil] << " "; - } - - cout << endl; - - ts += samplesPerBlock; - } -} - -void print_usage() -{ - cout << "Usage: generateDelays -p parset -s station [-t]" << endl; - cout << endl; - cout << "-p parset The filename of the parset to use" << endl; - cout << "-s station The name of the station (f.e. UK608HBA)" << endl; - cout << "-t Print delays for the tied-array beams" << endl; - cout << "-a Print ASCII timestamps" << endl; -} - - -int main(int argc, char *argv[]) -{ - INIT_LOGGER("generateDelays"); - - try { - int opt; - - char *parset = 0; - char *station = 0; - - while ((opt = getopt(argc, argv, "p:s:ta")) != -1) { - switch (opt) { - case 'p': - parset = strdup(optarg); - break; - - case 's': - station = strdup(optarg); - break; - - case 't': - print_tabs = true; - break; - - case 'a': - ascii_ts = true; - break; - - default: - print_usage(); - exit(1); - } - } - - if (!parset || !station) { - print_usage(); - exit(1); - } - - if (!Casacore_Init()) { - cerr << "Casacore subsystem init failed." << endl; - exit(1); - } - - generateDelays(parset, station); - - free(station); - free(parset); - } catch (Exception &ex) { - cerr << "Caught Exception: " << ex << endl; - return 1; - } - - return 0; -} diff --git a/RTCP/IONProc/src/recreateFeedback.sh b/RTCP/IONProc/src/recreateFeedback.sh deleted file mode 100755 index 4990d92b7ed8462c8f9f5e27cb0697c43d18a866..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/src/recreateFeedback.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Usage: ./recreateFeedback < *.log -# -# This script (re)generates the Observation12345_feedback files -# from IONProc.log files. Feedback is APPENDED to existing -# Observation*_feedback files. - -perl -e ' -%feedback_lines = (); - -while(<>) { - # find feedback log lines - /obs ([0-9]+) .* LTA FEEDBACK: (.*)$/ || next; - - # store the info we wanted - $obs = $1; - $feedback = $2; - - # append to feedback file - open(FEEDBACK, ">>Observation" . $obs . "_feedback"); - print FEEDBACK $feedback . "\n"; - close(FEEDBACK); - - # update logs - $feedback_lines{$obs} = $feedback_lines{$obs} + 1; -} - -# print logs -foreach $obs (keys %feedback_lines) -{ - print "Observation " . $obs . ": found " . $feedback_lines{$obs} . " feedback lines.\n" -} -' diff --git a/RTCP/IONProc/test/CMakeLists.txt b/RTCP/IONProc/test/CMakeLists.txt deleted file mode 100644 index 2d26313f9cbe9ba121234cc09cd38d04f2d0104d..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# $Id: CMakeLists.txt 13414 2009-06-16 22:15:37Z loose $ - -include(LofarCTest) - -# Add project's source directory to -I path. -include_directories(${PACKAGE_SOURCE_DIR}/src) - -lofar_add_test(tDelayCompensation tDelayCompensation.cc) -# commented out to prevent name clashes with InputProc/GPUProc tests -#lofar_add_test(tRSP tRSP.cc) -#lofar_add_test(tSSH tSSH.cc) -#lofar_add_test(tRSPTimeStamp tRSPTimeStamp.cc) diff --git a/RTCP/IONProc/test/RTCP.parset b/RTCP/IONProc/test/RTCP.parset deleted file mode 100644 index 3cfafd160556bc41b11fae9a048878847f4a2a92..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/RTCP.parset +++ /dev/null @@ -1,117 +0,0 @@ -OLAP.CNProc.integrationSteps = 768 -OLAP.CNProc.phaseOnePsets = [0..4] -OLAP.CNProc.phaseTwoPsets = [0..4] -OLAP.CNProc.phaseThreePsets = [0..4] -OLAP.CNProc.phaseOneTwoCores = [0,1,2] -OLAP.CNProc.phaseThreeCores = [0,1,2] -OLAP.CNProc.partition = PartitionName -OLAP.CNProc.tabList = [] -OLAP.realTime = F -OLAP.maxNetworkDelay = .1 -OLAP.correctClocks = T -OLAP.correctBandPass = T -OLAP.nrBitsPerSample = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSecondsOfBuffer = 3.5 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.Storage.userName = mol -OLAP.Storage.sshIdentityFile = /home/mol/.ssh/id_dsa -OLAP.Storage.msWriter = Storage_main -OLAP.storageNodeList = [5*0] -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = F -OLAP.storageStationNames = [CS004LBA,CS006LBA,RS205LBA,RS208LBA,RS306LBA] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].nrTiedArrayBeams = 1 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 1.1 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 1.2 -Observation.Beam[0].TiedArrayBeam[0].coherent = T -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0.0 -OLAP.IONProc.integrationSteps = 1 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 256 -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 256 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.which = XXYY # I, IQUV, XXYY -OLAP.CNProc_IncoherentStokes.which = I # IQUV -OLAP.PencilInfo.storageNodeList = [] -OLAP.delayCompensation = T -OLAP.DelayComp.positionType = ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.dispersionMeasure = 2 -Observation.ObserverName = John -Observation.Campaign.name = Test -Observation.Campaign.title = dr. -Observation.Campaign.contact = Jan David -Observation.Campaign.PI = John -Observation.Campaign.CO_I = John -Observation.ProjectName = BG/P->PC port -Observation.nrPolarisations = 2 -Observation.antennaSet = LBA_OUTER -Observation.bandFilter = LBA_30_90 -Observation.subbandList = [138,183,256,282,283] -Observation.beamList = [5*0] -Observation.rspBoardList = [5*0] -Observation.rspSlotList = [0..4] -Observation.channelsPerSubband = 256 -Observation.sampleClock = 200 -Observation.nrSlotsInFrame = 5 -Observation.ObsID = 1000000 -Observation.startTime = '2010-04-28 17:25:03' -Observation.stopTime = '2010-04-28 17:25:13' -Observation.nrBeams = 1 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.AnaBeam[0].angle2 = 0.71094251447010637 -Observation.AnaBeam[0].target = Cygnus A -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].target = Cygnus A -#Observation.MSNameMask = /tmp/romein${RAID}/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -OLAP.Storage.hosts = [localhost] -Observation.DataProducts.Output_Correlated.enabled = T -Observation.DataProducts.Output_Correlated.locations = [5*localhost:/tmp] -Observation.DataProducts.Output_Correlated.filenames = [SB000.MS,SB001.MS,SB002.MS,SB003.MS,SB004.MS] -Observation.DataProducts.Output_Beamformed.enabled = T -Observation.DataProducts.Output_Beamformed.locations = [4*localhost:/tmp] -Observation.DataProducts.Output_Beamformed.filenames = [CV001.Xr,CV001.Xi,CV002.Yr,CV002.Yi] -Observation.DataProducts.Output_Trigger.enabled = F -Observation.DataProducts.Output_Trigger.locations = [] -Observation.DataProducts.Output_Trigger.filenames = [] -OLAP.Storage.subbandsPerPart = 5 -OLAP.Storage.partsPerStokes = 1 -PIC.Core.IONProc.PartitionName[0].inputs = [CS004LBA/RSP0] -PIC.Core.IONProc.PartitionName[1].inputs = [CS006LBA/RSP0] -PIC.Core.IONProc.PartitionName[2].inputs = [RS205LBA/RSP0] -PIC.Core.IONProc.PartitionName[3].inputs = [RS208LBA/RSP0] -PIC.Core.IONProc.PartitionName[4].inputs = [RS306LBA/RSP0] -#PIC.Core.Station.CS004LBA.RSP.ports = [file:/var/scratch/romein/LOFAR-dataset-raw-2010-04-28/CS004.raw] -#PIC.Core.Station.CS006LBA.RSP.ports = [file:/var/scratch/romein/LOFAR-dataset-raw-2010-04-28/CS006.raw] -#PIC.Core.Station.RS205LBA.RSP.ports = [file:/var/scratch/romein/LOFAR-dataset-raw-2010-04-28/RS205.raw] -#PIC.Core.Station.RS208LBA.RSP.ports = [file:/var/scratch/romein/LOFAR-dataset-raw-2010-04-28/RS208.raw] -#PIC.Core.Station.RS306LBA.RSP.ports = [file:/var/scratch/romein/LOFAR-dataset-raw-2010-04-28/RS306.raw] -PIC.Core.Station.CS004LBA.RSP.ports = [null:] -PIC.Core.Station.CS006LBA.RSP.ports = [null:] -PIC.Core.Station.RS205LBA.RSP.ports = [null:] -PIC.Core.Station.RS208LBA.RSP.ports = [null:] -PIC.Core.Station.RS306LBA.RSP.ports = [null:] -PIC.Core.CS004LBA.clockCorrectionTime = -1e-6 -PIC.Core.CS006LBA.clockCorrectionTime = 1e-6 -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.clockCorrectionTime = 0 -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.CS004LBA.phaseCenter = [3826654.240, 460939.528, 5064842.398] -PIC.Core.CS006LBA.phaseCenter = [3826596.773, 461145.130, 5064866.950] -PIC.Core.RS205LBA.phaseCenter = [3831438.606, 463435.393, 5061025.437] -PIC.Core.RS208LBA.phaseCenter = [3847810.094, 466929.659, 5048357.193] -PIC.Core.RS306LBA.phaseCenter = [3829791.851, 452829.800, 5063221.562] -PIC.Core.CS004LBA.position = [3826654.240, 460939.528, 5064842.398] -PIC.Core.CS006LBA.position = [3826596.773, 461145.130, 5064866.950] -PIC.Core.RS205LBA.position = [3831438.606, 463435.393, 5061025.437] -PIC.Core.RS208LBA.position = [3847810.094, 466929.659, 5048357.193] -PIC.Core.RS306LBA.position = [3829791.851, 452829.800, 5063221.562] diff --git a/RTCP/IONProc/test/tDelayCompensation.cc b/RTCP/IONProc/test/tDelayCompensation.cc deleted file mode 100644 index 598244b6ff73cc65a0706216cd5c52f395ef7b36..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tDelayCompensation.cc +++ /dev/null @@ -1,101 +0,0 @@ -//# tDelayCompensation.cc: stand-alone test program for Delays -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Delays.h> -#include <Interface/Parset.h> -#include <Common/Exception.h> -#include <Interface/RSPTimeStamp.h> -#include <Common/lofar_math.h> - -#include <cassert> - -using namespace LOFAR; -using namespace LOFAR::RTCP; - -double lat( casa::MVDirection &d ) -{ - return d.get()[1]; -} - -double lng( casa::MVDirection &d ) -{ - return d.get()[0]; -} - -void doTest() -{ - unsigned psetNumber = 0; - - Parset parset("tDelayCompensation.parset"); - - std::vector<Parset::StationRSPpair> inputs = parset.getStationNamesAndRSPboardNumbers(psetNumber); - - unsigned nrBeams = parset.nrBeams(); - double startTime = parset.startTime(); - double sampleFreq = parset.subbandBandwidth(); - unsigned seconds = static_cast<unsigned>(floor(startTime)); - unsigned samples = static_cast<unsigned>((startTime - floor(startTime)) * sampleFreq); - - TimeStamp ts = TimeStamp(seconds, samples, parset.clockSpeed()); - - Delays w(parset, inputs[0].station, ts); - w.start(); - - unsigned nrTABs = 0; - Matrix<double> delays(nrBeams, nrTABs + 1); - Matrix<casa::MVDirection> prev_directions(nrBeams, nrTABs + 1), directions(nrBeams, nrTABs + 1); - - for (unsigned i = 0; i < 256; i ++) { - prev_directions = directions; - - w.getNextDelays(directions, delays); - cout << "Directions & Delay: (" << lng(directions[0][0]) << ", " << lat(directions[0][0]) << "), " << delays[0][0] << endl; - - assert(!isnan(delays[0][0])); - - // source (NCP) should traverse with decreasing longitude and latitude - if (i > 0) { - assert(lng(directions[0][0]) < lng(prev_directions[0][0])); - assert(lat(directions[0][0]) < lat(prev_directions[0][0])); - } - } -} - - -int main() -{ - try { - doTest(); - } catch (Exception &ex) { - std::cerr << "Caught Exception: " << ex.what() << std::endl; - return 1; - } catch (std::exception &ex) { - std::cerr << "Caught std::exception: " << ex.what() << std::endl; - return 1; - } catch (...) { - std::cerr << "Caught unknown exception" << std::endl; - return 1; - } - - return 0; -} diff --git a/RTCP/IONProc/test/tDelayCompensation.parset b/RTCP/IONProc/test/tDelayCompensation.parset deleted file mode 100644 index 08103448986df1fa401c94dacb73d94e46043e07..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tDelayCompensation.parset +++ /dev/null @@ -1,47 +0,0 @@ -Observation.subbandList = [384] -Observation.nyquistZone = 1 -Observation.sampleClock = 160 -Observation.channelsPerSubband = 256 -OLAP.CNProc.nrPPFTaps = 16 -Observation.nrPolarisations = 2 -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.inputPsets = [] -OLAP.CNProc.outputPsets = [0] -OLAP.storageStationNames = ["CS001"] -OLAP.IONProc.useGather = T -OLAP.subbandsPerPset = 1 -OLAP.CNProc.integrationSteps = 608 -OLAP.delayCompensation = T -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF - -Observation.nrSlotsInFrame = 36 -Observation.beamList = [0,1] -Observation.rspBoardList = [0,0] -Observation.rspSlotList = [0,1] - -Observation.startTime = 2009-01-01 00:00:00.000 - -OLAP.CNProc.partition = R00-M0-N00-256 -PIC.Core.IONProc.R00-M0-N00-256[0].inputs = ["CS001/RSP0"] - -# NCP -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].nrTiedArrayBeams = 0 -Observation.Beam[0].angle1 = 0 -Observation.Beam[0].angle2 = 1.570796327 - -# SUN -Observation.Beam[1].directionType = SUN -Observation.Beam[1].nrTiedArrayBeams = 0 -Observation.Beam[1].angle1 = 0 -Observation.Beam[1].angle2 = 0 - -OLAP.nrPencils = 0 -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0 - -PIC.Core.CS001.phaseCenter = [3826967.298, 460904.345, 5064613.055] -PIC.Core.CS001.position = [3826967.298, 460904.345, 5064613.055] - -Observation.referencePhaseCenter = [3826577.110, 461022.900, 5064892.758] diff --git a/RTCP/IONProc/test/tDelayCompensation.sh b/RTCP/IONProc/test/tDelayCompensation.sh deleted file mode 100755 index 0c042e9c87fa1952eb1b73ee1222fc53c0f03a90..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tDelayCompensation.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tDelayCompensation diff --git a/RTCP/IONProc/test/tRSP.cc b/RTCP/IONProc/test/tRSP.cc deleted file mode 100644 index 1f729eace5e7554e603d00a2a3dda6324d6769f2..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tRSP.cc +++ /dev/null @@ -1,86 +0,0 @@ -//# tRSP.cc: stand-alone test program for RSP packet structure -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <RSP.h> -#include <Interface/RSPTimeStamp.h> -#include <Common/LofarLogger.h> -#include <Common/DataConvert.h> -#include <Stream/FileStream.h> - -#include <string> -#include <iostream> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -void report( const string &filename ) -{ - cout << "---- Checking " << filename << endl; - FileStream f(filename); - - struct RSP packet; - - // read header - f.read( &packet.header, sizeof (RSP::Header) ); - -#ifdef WORDS_BIGENDIAN - dataConvert(LittleEndian, packet.header.configuration); - dataConvert(LittleEndian, packet.header.timestamp); - dataConvert(LittleEndian, packet.header.blockSequenceNumber); -#endif - - cout << "RSP version: " << (int)packet.header.version << endl; - cout << "RSP board nr: " << packet.rspBoard() << endl; - cout << "Payload OK: " << (packet.payloadError() ? "NO" : "YES") << endl; - cout << "Clock: " << packet.clockMHz() << " MHz" << endl; - cout << "Bit mode: " << packet.bitMode() << " bit" << endl; - cout << "Blocks: " << (int)packet.header.nrBlocks << endl; - cout << "Beamlets: " << (int)packet.header.nrBeamlets << endl; - - // read payload - f.read( &packet.payload, packet.packetSize() - sizeof (RSP::Header) ); - -#ifdef WORDS_BIGENDIAN - if (packet.bitMode() == 16) - dataConvert(LittleEndian, (int16*)&packet.payload, packet.header.nrBlocks * packet.header.nrBeamlets * 2 * 2); -#endif - - cout << "Sample 4 of beamlet 2: X = " << packet.sample(2, 4, 'X') << endl; - cout << "Sample 4 of beamlet 2: Y = " << packet.sample(2, 4, 'Y') << endl; -} - -int main() -{ - INIT_LOGGER("tRSP"); - - try { - report( "tRSP.in_16bit" ); - report( "tRSP.in_8bit" ); - } catch (Exception &ex) { - LOG_FATAL_STR("Caught exception: " << ex); - return 1; - } - - return 0; -} diff --git a/RTCP/IONProc/test/tRSP.in_16bit b/RTCP/IONProc/test/tRSP.in_16bit deleted file mode 100644 index 548175c8a2d6ec09a42aedf0e6248086ba6234db..0000000000000000000000000000000000000000 Binary files a/RTCP/IONProc/test/tRSP.in_16bit and /dev/null differ diff --git a/RTCP/IONProc/test/tRSP.in_8bit b/RTCP/IONProc/test/tRSP.in_8bit deleted file mode 100644 index b69e78c30f0002a31e8f82c59086f94715412979..0000000000000000000000000000000000000000 Binary files a/RTCP/IONProc/test/tRSP.in_8bit and /dev/null differ diff --git a/RTCP/IONProc/test/tRSP.sh b/RTCP/IONProc/test/tRSP.sh deleted file mode 100755 index 7f4caa36e96a630be38e7029708ffff24dfb0afc..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tRSP.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tRSP diff --git a/RTCP/IONProc/test/tRSP.stdout b/RTCP/IONProc/test/tRSP.stdout deleted file mode 100644 index cc274b6f9e6208dadfcbc8db06d806affda73544..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tRSP.stdout +++ /dev/null @@ -1,20 +0,0 @@ ----- Checking tRSP.in_16bit -RSP version: 3 -RSP board nr: 0 -Payload OK: YES -Clock: 200 MHz -Bit mode: 16 bit -Blocks: 16 -Beamlets: 61 -Sample 4 of beamlet 2: X = (-6,-20) -Sample 4 of beamlet 2: Y = (-18,-41) ----- Checking tRSP.in_8bit -RSP version: 3 -RSP board nr: 1 -Payload OK: YES -Clock: 200 MHz -Bit mode: 8 bit -Blocks: 16 -Beamlets: 122 -Sample 4 of beamlet 2: X = (3,0) -Sample 4 of beamlet 2: Y = (0,0) diff --git a/RTCP/IONProc/test/tSSH.cc b/RTCP/IONProc/test/tSSH.cc deleted file mode 100644 index 3f434159676e1b60a76c2976c9a3bd9a0ec6f9c0..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tSSH.cc +++ /dev/null @@ -1,71 +0,0 @@ -#include <lofar_config.h> - -#include <SSH.h> -#include <unistd.h> -#include <time.h> -#include <cstdlib> -#include <cstdio> -#include <Stream/SocketStream.h> -#include <Common/LofarLogger.h> - -// some useful environment variables -char *USER; -char *HOME; - -// the existence of $HOME/.ssh/id_rsa is assumed, -// as well as the fact that it can be used to -// authenticate on localhost. -char privkey[1024]; - -using namespace LOFAR; -using namespace RTCP; - - -void test_SSHconnection( const char *cmd, bool capture ) { -#ifdef HAVE_LIBSSH2 - SSHconnection ssh("", "localhost", cmd, USER, privkey, capture); - - ssh.start(); - - struct timespec ts; - ts.tv_sec = time(0) + 10; - ts.tv_nsec = 0; - - ssh.wait(ts); - - if (capture) - cout << "Captured [" << ssh.stdoutBuffer() << "]" << endl; -#endif -} - -int main() { - INIT_LOGGER( "tSSH" ); - - USER = getenv("USER"); - HOME = getenv("HOME"); - snprintf(privkey, sizeof privkey, "%s/.ssh/id_rsa", HOME); - - // can we even ssh to localhost? - char sshcmd[1024]; - snprintf(sshcmd, sizeof sshcmd, "ssh %s@localhost -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o NoHostAuthenticationForLocalhost=yes -i %s echo system success", USER, privkey); - int ret = system(sshcmd); - if (ret < 0 || WEXITSTATUS(ret) != 0) { - // no -- mark this test as unrunnable and don't attempt to try with libssh then - return 3; - } - - SSH_Init(); - - test_SSHconnection( "echo stdout read [stdout]", false ); - test_SSHconnection( "echo stderr read [stderr] 1>&2", false ); - - test_SSHconnection( "echo capture stdout [stdout]", true ); - test_SSHconnection( "echo capture stdout [stdout]; echo but not capture stderr [stderr] 1>&2", true ); - - test_SSHconnection( "echo stderr first [stderr] 1>&2; echo stdout second [stdout]", false ); - test_SSHconnection( "echo stdout first [stdout]; echo stderr second [stderr] 1>&2", false ); - - SSH_Finalize(); - - return 0; -} diff --git a/RTCP/IONProc/test/tSSH.sh b/RTCP/IONProc/test/tSSH.sh deleted file mode 100755 index d40c5ea507ad9ed43f73be6861c8f606b7673a9c..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tSSH.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tSSH diff --git a/RTCP/IONProc/test/tSSH.stdout b/RTCP/IONProc/test/tSSH.stdout deleted file mode 100644 index e877288ba195d7cbdb1f44b9857372fd389038c0..0000000000000000000000000000000000000000 --- a/RTCP/IONProc/test/tSSH.stdout +++ /dev/null @@ -1,12 +0,0 @@ -system success -stdout read [stdout] -stderr read [stderr] -Captured [capture stdout [stdout] -] -but not capture stderr [stderr] -Captured [capture stdout [stdout] -] -stderr first [stderr] -stdout second [stdout] -stdout first [stdout] -stderr second [stderr] diff --git a/RTCP/Interface/CMakeLists.txt b/RTCP/Interface/CMakeLists.txt deleted file mode 100644 index ae4324024abe9661d1a4c2dc57990a02a7941b2d..0000000000000000000000000000000000000000 --- a/RTCP/Interface/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ - -lofar_package(Interface 1.0 DEPENDS ApplCommon Common Stream) - -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED COMPONENTS date_time) -lofar_find_package(Valgrind) - -if(USE_VALGRIND) - add_definitions(-DUSE_VALGRIND) -endif(USE_VALGRIND) - -enable_language(ASM-BGP) - -add_subdirectory(include/Interface) -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/Interface/include/Interface/Align.h b/RTCP/Interface/include/Interface/Align.h deleted file mode 100644 index c7549eea896f7a46d65a6750880b1882d10bd7ba..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Align.h +++ /dev/null @@ -1,100 +0,0 @@ -//# Align.h -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_ALIGN_H -#define LOFAR_INTERFACE_ALIGN_H - -#include <cstddef> - -namespace LOFAR { -namespace RTCP { - - -/* - * Returns true iff n is a power of two. - */ -template <typename T> inline static bool powerOfTwo(T n) -{ - return (n | (n - 1)) == 2 * n - 1; -} - - -/* - * Returns the first power of two higher than n. - */ -template <typename T> inline static T nextPowerOfTwo(T n) -{ - T p; - - for (p = 1; p < n; p <<= 1) - ; - - return p; -} - - -/* - * Returns `value' rounded up to `alignment'. - */ -template <typename T> inline static T align(T value, size_t alignment) -{ -#if defined __GNUC__ - if (__builtin_constant_p(alignment) && powerOfTwo(alignment)) - return (value + alignment - 1) & ~(alignment - 1); - else -#endif - return (value + alignment - 1) / alignment * alignment; -} - - -/* - * Returns `value' rounded up to `alignment', in bytes. - */ -template <typename T> inline static T *align(T *value, size_t alignment) -{ - return reinterpret_cast<T *>(align(reinterpret_cast<size_t>(value), alignment)); -} - - -/* - * Returns true if `value' is aligned to `alignment'. - */ -template <typename T> inline static bool aligned(T value, size_t alignment) -{ - return value % alignment == 0; -} - - -/* - * Returns true if `value' is aligned to `alignment', in bytes. - */ -template <typename T> inline static bool aligned(T *value, size_t alignment) -{ - return reinterpret_cast<size_t>(value) % alignment == 0; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif - diff --git a/RTCP/Interface/include/Interface/AlignedStdAllocator.h b/RTCP/Interface/include/Interface/AlignedStdAllocator.h deleted file mode 100644 index edc7dca9249feea38b0279a8961ed8dfa3829e21..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/AlignedStdAllocator.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef LOFAR_INTERFACE_ALIGNED_ALLOCATOR_H -#define LOFAR_INTERFACE_ALIGNED_ALLOCATOR_H - -#include <Interface/Allocator.h> -#include <memory> - -namespace LOFAR { -namespace RTCP { - -template <typename T, size_t ALIGNMENT> class AlignedStdAllocator : public std::allocator<T> -{ - // NOTE: An std::allocator cannot hold *any* state because they're - // constructed and destructed at will by the STL. The STL does not - // even guarantee that the same allocator object will allocate and - // deallocate a certain pointer. - public: - typedef typename std::allocator<T>::size_type size_type; - typedef typename std::allocator<T>::pointer pointer; - typedef typename std::allocator<T>::const_pointer const_pointer; - - template <class U> struct rebind - { - typedef AlignedStdAllocator<U, ALIGNMENT> other; - }; - - pointer allocate(size_type size, const_pointer /*hint*/ = 0) - { - return static_cast<pointer>(heapAllocator.allocate(size * sizeof(T), ALIGNMENT)); - } - - void deallocate(pointer ptr, size_type /*size*/) - { - heapAllocator.deallocate(ptr); - } -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/Allocator.h b/RTCP/Interface/include/Interface/Allocator.h deleted file mode 100644 index 4bf2788ff4e1c452ba1ee58612b5269e2ca6a3c7..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Allocator.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef LOFAR_INTERFACE_ALLOCATOR_H -#define LOFAR_INTERFACE_ALLOCATOR_H - -#include <Interface/SparseSet.h> -#include <Common/Thread/Mutex.h> - -#include <map> - -namespace LOFAR { -namespace RTCP { - -// There is a strict separation between a memory allocator and the physical -// memory (arena) that it manages. - -/* - * Arena owns a chunk of memory for SparseSetAllocator to play in. - */ -class Arena -{ - public: - void *begin() const { return itsBegin; } - size_t size() const { return itsSize; } - - protected: - void *itsBegin; - size_t itsSize; -}; - - -/* - * MallocedArena allocates memory using malloc. - */ -class MallocedArena: public Arena -{ - public: - MallocedArena(size_t size, size_t alignment); - ~MallocedArena(); -}; - - -/* - * FixedArena represents an externally allocated - * piece of memory. - */ -class FixedArena : public Arena -{ - public: - FixedArena(void *begin, size_t size); -}; - - -/* - * An Allocator can both allocate and deallocate pointers. - */ -class Allocator -{ - public: - virtual ~Allocator(); - - virtual void *allocate(size_t size, size_t alignment = 1) = 0; - virtual void deallocate(void *) = 0; - - /* - * Allows TYPE *foo = allocator.allocateTyped() without type-casting. - */ - class TypedAllocator { - public: - TypedAllocator(Allocator &allocator, size_t alignment): allocator(allocator), alignment(alignment) {} - - // cast-operator overloading is the only way to let C++ automatically deduce the type that we want - // to return. - template<typename T> operator T* () { - return static_cast<T*>(allocator.allocate(sizeof(T), alignment)); - } - private: - Allocator &allocator; - const size_t alignment; - }; - - TypedAllocator allocateTyped(size_t alignment = 1) { return TypedAllocator(*this, alignment); } -}; - - -/* - * Allocates memory on the heap. - */ -class HeapAllocator : public Allocator -{ - public: - virtual ~HeapAllocator(); - - virtual void *allocate(size_t size, size_t alignment = 1); - virtual void deallocate(void *); -}; - -extern HeapAllocator heapAllocator; - - -/* - * Allocates memory within an Arena, using a simple - * memory manager based on a SparseSet. - * - * The allocator is deterministic. - */ -class SparseSetAllocator : public Allocator -{ - public: - SparseSetAllocator(const Arena &); - - virtual void *allocate(size_t size, size_t alignment = 1); - virtual void deallocate(void *); - - bool empty() { ScopedLock sl(mutex); return sizes.empty(); } - - private: - Mutex mutex; - - SparseSet<void *> freeList; - std::map<void *, size_t> sizes; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/BGPAsm.h b/RTCP/Interface/include/Interface/BGPAsm.h deleted file mode 100644 index 8a1c9a2faae1cd9fc318ae5aa670d8680cc26094..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/BGPAsm.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef LOFAR_INTERFACE_BGPASM_H -#define LOFAR_INTERFACE_BGPASM_H - -#if defined HAVE_BGP - -#include <cstring> - -namespace LOFAR { -namespace RTCP { - -extern "C" { - -// all float * must be aligned to 8 bytes - -void _add_2_single_precision_vectors( - /* r3 */ float *dst, - /* r4 */ const float *src1, - /* r5 */ const float *src2, - /* r6 */ unsigned count /* non-zero; multiple of 16 */ -); - -void _add_3_single_precision_vectors( - /* r3 */ float *dst, - /* r4 */ const float *src1, - /* r5 */ const float *src2, - /* r6 */ const float *src3, - /* r7 */ unsigned count /* non-zero; multiple of 16 */ -); - -void _add_4_single_precision_vectors( - /* r3 */ float *dst, - /* r4 */ const float *src1, - /* r5 */ const float *src2, - /* r6 */ const float *src3, - /* r7 */ const float *src4, - /* r8 */ unsigned count /* non-zero; multiple of 16 */ -); - -void _add_5_single_precision_vectors( - /* r3 */ float *dst, - /* r4 */ const float *src1, - /* r5 */ const float *src2, - /* r6 */ const float *src3, - /* r7 */ const float *src4, - /* r8 */ const float *src5, - /* r9 */ unsigned count /* non-zero; multiple of 16 */ -); - -void _add_6_single_precision_vectors( - /* r3 */ float *dst, - /* r4 */ const float *src1, - /* r5 */ const float *src2, - /* r6 */ const float *src3, - /* r7 */ const float *src4, - /* r8 */ const float *src5, - /* r9 */ const float *src6, - /* r10 */ unsigned count /* non-zero; multiple of 16 */ -); - -} // extern "C" - -// Similar functions that do not need or have an ASM version - -// defined just to aid the use of macros -static inline void _add_1_single_precision_vectors( - float *dst, - const float *src1, - unsigned count /* non-zero; multiple of 16 */ -) { - // nothing to add, so just copy the values - memcpy( dst, src1, count * sizeof(float) ); -} - -static inline void _add_7_single_precision_vectors( - float *dst, - const float *src1, - const float *src2, - const float *src3, - const float *src4, - const float *src5, - const float *src6, - const float *src7, - unsigned count /* non-zero; multiple of 16 */ -) { - _add_4_single_precision_vectors( dst, src1, src2, src3, src4, count ); - _add_4_single_precision_vectors( dst, dst, src5, src6, src7, count ); -} - -} // namespace LOFAR::RTCP -} // namespace LOFAR - -#endif - -#endif diff --git a/RTCP/Interface/include/Interface/BeamCoordinates.h b/RTCP/Interface/include/Interface/BeamCoordinates.h deleted file mode 100644 index cb2214fd581d3a4e9f92c9b6834cf384e8995b18..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/BeamCoordinates.h +++ /dev/null @@ -1,189 +0,0 @@ -#ifndef LOFAR_INTERFACE_BEAMCOORDINATES_H -#define LOFAR_INTERFACE_BEAMCOORDINATES_H - -#include <Interface/MultiDimArray.h> -#include <Common/DataConvert.h> -#include <Stream/Stream.h> -#include <vector> -#include <cmath> -#include <ostream> - -namespace LOFAR { -namespace RTCP { - -// Beam coordinates are offsets for pencil beams (tied array beams) relative to the center -// of the station/beamformer beam. - -class BeamCoord3D { - public: - BeamCoord3D(double ra, double dec) { - itsXYZ[0] = ra; - itsXYZ[1] = dec; - itsXYZ[2] = sqrt(1.0 - ra * ra - dec * dec); - /* - // (ra,dec) is a spherical direction, but the station positions - // and phase centers are cartesian (x,y,z with origin close to the geocenter). - // Spherical coordinates are converted to cartesian as follows: - // - // phi = .5pi - DEC, theta = RA (in parset: angle1=RA, angle2=DEC) - // rho = 1 (distance), since we need to construct a unit vector - // - // then: x = rho*sin(phi)*cos(theta), y = rho*sin(phi)*sin(theta), z = rho*cos(theta) - // - // NOTE: The use of the letters phi and theta differ or are swapped between sources. - - // in this case, phi is relative to the original beam, so .5pi is already compensated for. The - // direction of DEC is still important, so we have to use phi = -dec to get the proper relative change - // in angle. - const double phi = -dec; - const double theta = ra; - - itsXYZ[0] = sin(phi)*cos(theta); - itsXYZ[1] = sin(phi)*sin(theta); - itsXYZ[2] = cos(theta); - */ - } - - BeamCoord3D(double x, double y, double z) { - itsXYZ[0] = x; - itsXYZ[1] = y; - itsXYZ[2] = z; - } - - BeamCoord3D(const double xyz[3]) { - itsXYZ[0] = xyz[0]; - itsXYZ[1] = xyz[1]; - itsXYZ[2] = xyz[2]; - } - - BeamCoord3D(std::vector<double> xyz) { - itsXYZ[0] = xyz[0]; - itsXYZ[1] = xyz[1]; - itsXYZ[2] = xyz[2]; - } - - inline BeamCoord3D& operator-= (const BeamCoord3D &rhs) - { - itsXYZ[0] -= rhs.itsXYZ[0]; - itsXYZ[1] -= rhs.itsXYZ[1]; - itsXYZ[2] -= rhs.itsXYZ[2]; - - return *this; - } - - inline BeamCoord3D& operator+= (const BeamCoord3D &rhs) - { - itsXYZ[0] += rhs.itsXYZ[0]; - itsXYZ[1] += rhs.itsXYZ[1]; - itsXYZ[2] += rhs.itsXYZ[2]; - - return *this; - } - - inline BeamCoord3D& operator*= (double a) - { - itsXYZ[0] *= a; - itsXYZ[1] *= a; - itsXYZ[2] *= a; - - return *this; - } - - inline double operator[] (unsigned i) const - { - return itsXYZ[i]; - } - - inline double &operator[] (unsigned i) - { - return itsXYZ[i]; - } - - friend double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs); - friend std::ostream& operator<< (std::ostream &os, const BeamCoord3D &c); - - void read(Stream *); - void write(Stream *) const; - - private: - double itsXYZ[3]; -}; - - -// BeamCoordinates are coordinates of the pencil beams that need to -// be formed. Each coordinate is a normalised vector, relative to the -// center beam. -// -// The center beam has to be included as the first coordinate of (0,0,1). -class BeamCoordinates -{ - public: - BeamCoordinates() {} - BeamCoordinates(const std::vector<BeamCoord3D> &coordinates): itsCoordinates(coordinates) {} - BeamCoordinates(const Matrix<double> &coordinates); - - inline std::vector<BeamCoord3D>& getCoordinates() - { return itsCoordinates; } - - inline size_t size() const - { return itsCoordinates.size(); } - - inline const BeamCoord3D &operator[] (unsigned nr) const - { return itsCoordinates[nr]; } - - void read(Stream *s); - void write(Stream *s) const; - - BeamCoordinates& operator += (const BeamCoordinates &rhs); - BeamCoordinates& operator += (const BeamCoord3D &rhs); - - friend std::ostream& operator<< (std::ostream &os, const BeamCoordinates &c); - -private: - std::vector<BeamCoord3D> itsCoordinates; -}; - -inline double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs) -{ - double sum = 0; - - sum += lhs.itsXYZ[0] * rhs.itsXYZ[0]; - sum += lhs.itsXYZ[1] * rhs.itsXYZ[1]; - sum += lhs.itsXYZ[2] * rhs.itsXYZ[2]; - return sum; -} - -inline BeamCoord3D& operator- (const BeamCoord3D &lhs, const BeamCoord3D &rhs) -{ - return BeamCoord3D(lhs) -= rhs; -} - -inline BeamCoord3D& operator+ (const BeamCoord3D &lhs, const BeamCoord3D &rhs) -{ - return BeamCoord3D(lhs) += rhs; -} - -inline BeamCoord3D& operator* (double a, const BeamCoord3D &rhs) -{ - return BeamCoord3D(rhs) *= a; -} - -inline BeamCoord3D& operator* (const BeamCoord3D &lhs, double a) -{ - return BeamCoord3D(lhs) *= a; -} - -inline std::ostream& operator << (std::ostream& os, const BeamCoord3D &c) -{ - return os << "(" << c.itsXYZ[0] << "," << c.itsXYZ[1] << "," << c.itsXYZ[2] << ")"; -} - -inline std::ostream& operator << (std::ostream &os, const BeamCoordinates &c) -{ - return os << c.itsCoordinates; -} - -} -} - -#endif diff --git a/RTCP/Interface/include/Interface/BeamFormedData.h b/RTCP/Interface/include/Interface/BeamFormedData.h deleted file mode 100644 index 02ddba5efc2d61498b382bb07749c91731038da0..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/BeamFormedData.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef LOFAR_INTERFACE_BEAMFORMED_DATA_H -#define LOFAR_INTERFACE_BEAMFORMED_DATA_H - -#include <Common/lofar_complex.h> -#include <Stream/Stream.h> -#include <Interface/Align.h> -#include <Interface/Config.h> -#include <Interface/MultiDimArray.h> -#include <Interface/SparseSet.h> -#include <Interface/StreamableData.h> - -namespace LOFAR { -namespace RTCP { - -/* - * Data flow: - * - * BeamFormedData -> PreTransposeBeamFormedData -> TransposedBeamFormedData -> FinalBeamFormedData - * - * The separate steps are necessary since the data is required or produced in different orders - * by different processes. The transpose wants to split beams and polarizations and puts subbands - & in the highest dimension in exchange. The final data product however wants time to be the - * highest dimension. - * - */ - -class BeamFormedData: public SampleData<fcomplex,4,2> -{ - public: - typedef SampleData<fcomplex,4,2> SuperType; - - BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator); -}; - - -class PreTransposeBeamFormedData: public SampleData<float,3,1> -{ - public: - typedef SampleData<float,3,1> SuperType; - - PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator); -}; - - -class TransposedBeamFormedData: public SampleData<float,3,2> -{ - public: - typedef SampleData<float,3,2> SuperType; - - TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator); - - virtual void setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples); -}; - - -class FinalBeamFormedData: public SampleData<float,3,2> -{ - public: - typedef SampleData<float,3,2> SuperType; - - FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator & = heapAllocator); - - virtual void setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels); -}; - - -inline BeamFormedData::BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator) - // The "| 2" significantly improves transpose speeds for particular - // numbers of stations due to cache conflict effects. The extra memory - // is not used. -: - SuperType::SampleData(boost::extents[nrBeams][nrChannels][nrSamples | 2][NR_POLARIZATIONS], boost::extents[nrBeams][nrChannels], allocator) -{ -} - - -inline PreTransposeBeamFormedData::PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator) -: - SuperType::SampleData(boost::extents[nrStokes][nrChannels][nrSamples | 2], boost::extents[nrChannels], allocator) -{ -} - - -inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator) -: - SuperType(boost::extents[nrSubbands][nrChannels][nrSamples | 2], boost::extents[nrSubbands][nrChannels], allocator) -{ -} - - -inline void TransposedBeamFormedData::setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples) -{ - samples.resizeInplace(boost::extents[nrSubbands][nrChannels][nrSamples | 2]); -} - - -inline FinalBeamFormedData::FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator &allocator) -: - SuperType(boost::extents[nrSamples | 2][nrSubbands][nrChannels], boost::extents[nrSubbands][nrChannels], allocator) -{ -} - - -inline void FinalBeamFormedData::setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels) -{ - samples.resizeInplace(boost::extents[nrSamples | 2][nrSubbands][nrChannels]); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/CMakeLists.txt b/RTCP/Interface/include/Interface/CMakeLists.txt deleted file mode 100644 index abec53f584b7e2d5d3159c0f5f945a672ce47b74..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -# List of header files that will be installed. -set(inst_HEADERS - Align.h - AlignedStdAllocator.h - Allocator.h - BeamCoordinates.h - BeamFormedData.h - BGPAsm.h - CN_Command.h - CN_Mapping.h - Stream.h - CorrelatedData.h - Config.h - FilteredData.h - FakeData.h - MultiDimArray.h - Parset.h - SubbandMetaData.h - PrintVector.h - RSPTimeStamp.h - SparseSet.h - Exceptions.h - StreamableData.h - TransposedData.h - TriggerData.h - InverseFilteredData.h - InputData.h) - -# Create symbolic link to include directory. -execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME}) - -# Install header files. -install(FILES ${inst_HEADERS} DESTINATION include/${PACKAGE_NAME}) diff --git a/RTCP/Interface/include/Interface/CN_Command.h b/RTCP/Interface/include/Interface/CN_Command.h deleted file mode 100644 index c5bb034e9bcc7755376c2da357239bc95f91a9bc..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/CN_Command.h +++ /dev/null @@ -1,109 +0,0 @@ -//# CN_Command.h: -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_CN_COMMAND_H -#define LOFAR_INTERFACE_CN_COMMAND_H - -#include <Stream/Stream.h> -#include <string> - - -namespace LOFAR { -namespace RTCP { - -class CN_Command -{ - public: - enum Command { - PREPROCESS = 0x406e7404, - PROCESS, - POSTPROCESS, - STOP, - }; - - CN_Command(); - CN_Command(enum Command, unsigned param = 0); - - enum Command &value(); - unsigned ¶m(); - - void read(Stream *); - void write(Stream *) const; - - std::string name() const; - - private: - struct MarshalledData - { - enum Command value; - unsigned param; - } itsMarshalledData; -}; - - -inline CN_Command::CN_Command() -{ -} - -inline CN_Command::CN_Command(enum Command value, unsigned param) -{ - itsMarshalledData.value = value; - itsMarshalledData.param = param; -} - -inline enum CN_Command::Command &CN_Command::value() -{ - return itsMarshalledData.value; -} - -inline unsigned &CN_Command::param() -{ - return itsMarshalledData.param; -} - -inline void CN_Command::read(Stream *str) -{ - str->read(&itsMarshalledData, sizeof itsMarshalledData); -} - -inline void CN_Command::write(Stream *str) const -{ - str->write(&itsMarshalledData, sizeof itsMarshalledData); -} - -inline std::string CN_Command::name() const -{ - switch(itsMarshalledData.value) { - case PREPROCESS: return "PREPROCESS"; - case PROCESS: return "PROCESS"; - case POSTPROCESS: return "POSTPROCESS"; - case STOP: return "STOP"; - } - - return "BAD COMMAND"; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/CN_Mapping.h b/RTCP/Interface/include/Interface/CN_Mapping.h deleted file mode 100644 index 1e968169d66d8ef3d2c3f620bb5906058323f8d5..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/CN_Mapping.h +++ /dev/null @@ -1,48 +0,0 @@ -//# SparseSet.h: portable <bitset> adaptation -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - - -#ifndef LOFAR_INTERFACE_CN_MAPPING_H -#define LOFAR_INTERFACE_CN_MAPPING_H - - -namespace LOFAR { -namespace RTCP { - -class CN_Mapping -{ - public: - // Reshuffle cores within different psets differently, to make the transpose - // over the 3D-torus much more efficient. Without reshuffling, transposing - // cores often communicate in the same line or plane in the torus, causing - // severe bottlenecks over a few links. With reshuffling, there are more - // redundant links, significantly improving the bandwidth. TODO: improve - // the reshuffling function further, to minimize transpose times. - - static unsigned mapCoreOnPset(unsigned core, unsigned pset); - static unsigned reverseMapCoreOnPset(unsigned core, unsigned pset); -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/Config.h b/RTCP/Interface/include/Interface/Config.h deleted file mode 100644 index 18a7d2908cfcb9bd8a622cfab3387d050dcae3fa..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Config.h +++ /dev/null @@ -1,31 +0,0 @@ -//# Config.h: configuration file with compile-time constants -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_CONFIG_H -#define LOFAR_INTERFACE_CONFIG_H - -/* This is included by C++ and assembly files. Do not put anything but - constants here! */ -#define NR_POLARIZATIONS 2 -#define NR_TAPS 16 - -#endif diff --git a/RTCP/Interface/include/Interface/CorrelatedData.h b/RTCP/Interface/include/Interface/CorrelatedData.h deleted file mode 100644 index 5f66183ddb459b2f1b88ee4bcc9ddaac21e364b9..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/CorrelatedData.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef LOFAR_INTERFACE_CORRELATED_DATA_H -#define LOFAR_INTERFACE_CORRELATED_DATA_H - -#include <Common/lofar_complex.h> -#include <Common/DataConvert.h> -#include <Interface/Align.h> -#include <Interface/Allocator.h> -#include <Interface/Config.h> -#include <Interface/StreamableData.h> -#include <Interface/BGPAsm.h> -#include <Interface/MultiDimArray.h> -#include <Stream/Stream.h> - - -namespace LOFAR { -namespace RTCP { - -class CorrelatedData : public StreamableData, public IntegratableData -{ - public: - CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator & = heapAllocator, unsigned alignment = 512); - CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator & = heapAllocator, unsigned alignment = 512); - - virtual IntegratableData &operator += (const IntegratableData &); - - unsigned nrValidSamples(unsigned bl, unsigned ch) const; - void setNrValidSamples(unsigned bl, unsigned ch, unsigned value); - - const unsigned itsAlignment; - const unsigned itsNrBaselines; - - MultiDimArray<fcomplex, 4> visibilities; //[nrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS] - - const unsigned itsNrBytesPerNrValidSamples; - Matrix<uint32_t> itsNrValidSamples4; //[nrBaselines][nrChannels] - Matrix<uint16_t> itsNrValidSamples2; //[nrBaselines][nrChannels] - Matrix<uint8_t> itsNrValidSamples1; //[nrBaselines][nrChannels] - - protected: - virtual void readData(Stream *); - virtual void writeData(Stream *); - - private: - void init(unsigned nrChannels, Allocator &allocator); -}; - - -inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator &allocator, unsigned alignment) -: - itsAlignment(alignment), - itsNrBaselines(nrStations * (nrStations + 1) / 2), - visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], itsAlignment, allocator, true), - itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4) -{ - init(nrChannels, allocator); -} - - -inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator &allocator, unsigned alignment) -: - itsAlignment(alignment), - itsNrBaselines(nrStations * (nrStations + 1) / 2), - visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], visibilities, false), - itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4) -{ - ASSERT(this->visibilities.num_elements() == nrVisibilities); - - init(nrChannels, allocator); -} - -inline void CorrelatedData::init(unsigned nrChannels, Allocator &allocator) -{ - switch (itsNrBytesPerNrValidSamples) { - case 4 : itsNrValidSamples4.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true); - break; - - case 2 : itsNrValidSamples2.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true); - break; - - case 1 : itsNrValidSamples1.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true); - break; - } -} - - -inline unsigned CorrelatedData::nrValidSamples(unsigned bl, unsigned ch) const -{ - switch (itsNrBytesPerNrValidSamples) { - case 4 : return itsNrValidSamples4[bl][ch]; - case 2 : return itsNrValidSamples2[bl][ch]; - case 1 : return itsNrValidSamples1[bl][ch]; - } - - return 0; -} - - -inline void CorrelatedData::setNrValidSamples(unsigned bl, unsigned ch, unsigned value) -{ - switch (itsNrBytesPerNrValidSamples) { - case 4 : itsNrValidSamples4[bl][ch] = value; - break; - - case 2 : itsNrValidSamples2[bl][ch] = value; - break; - - case 1 : itsNrValidSamples1[bl][ch] = value; - break; - } -} - - -inline void CorrelatedData::readData(Stream *str) -{ - str->read(visibilities.origin(), align(visibilities.num_elements() * sizeof(fcomplex), itsAlignment)); - - switch (itsNrBytesPerNrValidSamples) { - case 4 : str->read(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment)); - break; - - case 2 : str->read(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment)); - break; - - case 1 : str->read(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment)); - break; - } -} - - -inline void CorrelatedData::writeData(Stream *str) -{ - str->write(visibilities.origin(), align(visibilities.num_elements() * sizeof *visibilities.origin(), itsAlignment)); - - switch (itsNrBytesPerNrValidSamples) { - case 4 : str->write(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment)); - break; - - case 2 : str->write(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment)); - break; - - case 1 : str->write(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment)); - break; - } -} - - -template <typename T> inline void addNrValidSamples(T * __restrict__ dst, const T * __restrict__ src, unsigned count) -{ - for (unsigned i = 0; i < count; i ++) - dst[i] += src[i]; -} - - -template<> inline void addNrValidSamples<uint16_t>(uint16_t * __restrict__ dst, const uint16_t * __restrict__ src, unsigned count) -{ - addNrValidSamples<uint32_t>(reinterpret_cast<uint32_t*>(dst), reinterpret_cast<const uint32_t*>(src), count / 2); - - if (count & 1) - dst[count - 1] += src[count - 1]; -} - - -template<> inline void addNrValidSamples<uint8_t>(uint8_t * __restrict__ dst, const uint8_t * __restrict__ src, unsigned count) -{ - addNrValidSamples<uint16_t>(reinterpret_cast<uint16_t*>(dst), reinterpret_cast<const uint16_t*>(src), count / 2); - - if (count & 1) - dst[count - 1] += src[count - 1]; -} - - -inline IntegratableData &CorrelatedData::operator += (const IntegratableData &other_) -{ - const CorrelatedData &other = static_cast<const CorrelatedData &>(other_); - - // add visibilities - { - fcomplex *dst = visibilities.origin(); - const fcomplex *src = other.visibilities.origin(); - unsigned count = visibilities.num_elements(); -#ifdef HAVE_BGP - unsigned fastcopyfloats = (count * 2) & ~0xF; - unsigned remainder = count % 8; - - for (unsigned i = 0; i < remainder; i ++) - dst[i] += src[i]; - - if (fastcopyfloats > 0) - _add_2_single_precision_vectors( reinterpret_cast<float*>(dst + remainder), reinterpret_cast<float*>(dst + remainder), reinterpret_cast<const float*>(src + remainder), fastcopyfloats ); -#else - for (unsigned i = 0; i < count; i ++) - dst[i] += src[i]; -#endif - } - - // add nr. valid samples - switch (itsNrBytesPerNrValidSamples) { - case 4 : addNrValidSamples(itsNrValidSamples4.origin(), other.itsNrValidSamples4.origin(), itsNrValidSamples4.num_elements()); - break; - - case 2 : addNrValidSamples(itsNrValidSamples2.origin(), other.itsNrValidSamples2.origin(), itsNrValidSamples2.num_elements()); - break; - - case 1 : addNrValidSamples(itsNrValidSamples1.origin(), other.itsNrValidSamples1.origin(), itsNrValidSamples1.num_elements()); - break; - } - - return *this; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/DataFactory.h b/RTCP/Interface/include/Interface/DataFactory.h deleted file mode 100644 index 04fa52d0e00d381d1ec5731f59983140a238bb11..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/DataFactory.h +++ /dev/null @@ -1,40 +0,0 @@ -//# DataFactory.h -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: PrintVector.h 16765 2010-11-25 13:27:09Z mol $ - -#ifndef LOFAR_INTERFACE_DATA_FACTORY_H -#define LOFAR_INTERFACE_DATA_FACTORY_H - -#include <Interface/Allocator.h> -#include <Interface/OutputTypes.h> -#include <Interface/Parset.h> -#include <Interface/StreamableData.h> - - -namespace LOFAR { -namespace RTCP { - -StreamableData *newStreamableData(const Parset &, OutputType, int streamNr = -1, Allocator & = heapAllocator); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/Exceptions.h b/RTCP/Interface/include/Interface/Exceptions.h deleted file mode 100644 index 051e850f67a763a859dde7efb61e1dc2ade20552..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Exceptions.h +++ /dev/null @@ -1,65 +0,0 @@ -//# Exceptions.h: -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_EXCEPTIONS_H -#define LOFAR_INTERFACE_EXCEPTIONS_H - -#include <Common/Exception.h> -#include <Common/Exceptions.h> - - -namespace LOFAR { -namespace RTCP { - // - // This exception will be thrown when an rtcp fails. - // - EXCEPTION_CLASS(RTCPException, LOFAR::Exception); - - // - // This exception will be thrown when an an Interface error occurs. - // - EXCEPTION_CLASS(InterfaceException, RTCPException); - - // - // This exception will be thrown when an an IONProc error occurs. - // - EXCEPTION_CLASS(IONProcException, RTCPException); - - // - // This exception will be thrown when an an CNProc error occurs. - // - EXCEPTION_CLASS(CNProcException, RTCPException); - - // - // This exception will be thrown when an an GPUProc error occurs. - // - EXCEPTION_CLASS(GPUProcException, RTCPException); - - // - // This exception will be thrown when an an Storage error occurs. - // - EXCEPTION_CLASS(StorageException, RTCPException); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/FakeData.h b/RTCP/Interface/include/Interface/FakeData.h deleted file mode 100644 index 3efd59db0d481ebae9cdde719ee3cbc286f78896..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/FakeData.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef LOFAR_INTERFACE_FAKE_DATA_H -#define LOFAR_INTERFACE_FAKE_DATA_H - -#include <Interface/FilteredData.h> -#include <Interface/BeamFormedData.h> -#include <Interface/Parset.h> -#include <Common/LofarLogger.h> -#include <Common/LofarTypes.h> -#include <cmath> - -namespace LOFAR { -namespace RTCP { - -class FakeData { - public: - FakeData( const Parset &parset ): itsParset(parset) {} - - void fill( FilteredData *data, unsigned subband ) const; - void check( const FilteredData *data ) const; - void check( const FinalBeamFormedData *data, unsigned pol ) const; - - void check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const; - - private: - const Parset &itsParset; - static const double TOLERANCE = 1e-6; - - template<typename T> bool equal( const T a, const T b ) const { return a == b; } -}; - -template<> bool FakeData::equal( const float a, const float b ) const { - return fabsf(a - b) < TOLERANCE; -} - -template<> bool FakeData::equal( const double a, const double b ) const { - return fabs(a - b) < TOLERANCE; -} - -template<> bool FakeData::equal( const fcomplex a, const fcomplex b ) const { - return equal(real(a), real(b)) && equal(imag(a), imag(b)); -} - -void FakeData::fill( FilteredData *data, unsigned subband ) const -{ - for (unsigned s = 0; s < itsParset.nrStations(); s++) { - for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) { - for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) { - const float base = 1000 * subband; - data->samples[c][s][t][0] = makefcomplex(base + 1 * t, base + 2 * t); - data->samples[c][s][t][1] = makefcomplex(base + 3 * t, base + 5 * t); - } - data->flags[c][s].reset(); - } - } -} - -void FakeData::check( const FilteredData *data ) const -{ - for (unsigned s = 0; s < itsParset.nrStations(); s++) { - for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) { - for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) { - ASSERT( equal( data->samples[c][s][t][0], makefcomplex(1 * t, 2 * t) ) ); - ASSERT( equal( data->samples[c][s][t][1], makefcomplex(3 * t, 5 * t) ) ); - } - ASSERT( data->flags[c][s].count() == 0 ); - } - } -} - -void FakeData::check( const FinalBeamFormedData* /* data */, unsigned /* pol */) const -{ - // TODO: support other configurations than just 1 station equal to reference phase center -/* - for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) { - for (unsigned s = 0; s < itsParset.nrSubbands(); s++) { - for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) { - switch (pol) { - case 0: // Xr - ASSERT( equal( data->samples[t][s][c], 1.0f * t ) ); - break; - case 1: // Xi - ASSERT( equal( data->samples[t][s][c], 2.0f * t ) ); - break; - case 2: // Yr - ASSERT( equal( data->samples[t][s][c], 3.0f * t ) ); - break; - case 3: // Yi - ASSERT( equal( data->samples[t][s][c], 5.0f * t ) ); - break; - } - } - } - } -*/ -} - -void FakeData::check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const -{ - switch (outputType) { - case BEAM_FORMED_DATA: - check( static_cast<const FinalBeamFormedData *>(data), streamNr % NR_POLARIZATIONS ); - break; - - default: - return; - } -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/FilteredData.h b/RTCP/Interface/include/Interface/FilteredData.h deleted file mode 100644 index 8501de13635edffed7e5298cb6f8d0c1532e193b..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/FilteredData.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef LOFAR_INTERFACE_FILTERED_DATA_H -#define LOFAR_INTERFACE_FILTERED_DATA_H - -#include <Common/lofar_complex.h> -#include <Stream/Stream.h> -#include <Interface/Align.h> -#include <Interface/Config.h> -#include <Interface/MultiDimArray.h> -#include <Interface/SparseSet.h> -#include <Interface/StreamableData.h> - -namespace LOFAR { -namespace RTCP { - -class FilteredData : public SampleData<fcomplex, 4, 2> -{ - public: - typedef SampleData<fcomplex, 4, 2> SuperType; - - FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator & = heapAllocator); - - void resetFlags(void); -}; - - -inline FilteredData::FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator &allocator) -: - // The "| 2" significantly improves transpose speeds for particular - // numbers of stations due to cache conflict effects. The extra memory - // is not used. - SuperType::SampleData(boost::extents[nrChannels][nrStations][nrSamplesPerIntegration | 2][NR_POLARIZATIONS], boost::extents[nrChannels][nrStations], allocator) -{ -} - - -inline void FilteredData::resetFlags(void) -{ - for(unsigned c=0; c < flags.shape()[0]; c++) { - for(unsigned s=0; s < flags.shape()[1]; s++) { - flags[c][s].reset(); - } - } -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/FinalMetaData.h b/RTCP/Interface/include/Interface/FinalMetaData.h deleted file mode 100644 index d548653eb9c304b279bf999b3dbdb56171deecf2..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/FinalMetaData.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LOFAR_INTERFACE_FINAL_METADATA_H -#define LOFAR_INTERFACE_FINAL_METADATA_H - -#include <Stream/Stream.h> -#include <string> -#include <vector> -#include <cstddef> -#include <ostream> - -namespace LOFAR { -namespace RTCP { - -class FinalMetaData -{ - public: - struct BrokenRCU { - std::string station; // CS001, etc - std::string type; // RCU, LBA, HBA - size_t seqnr; // RCU/antenna number - std::string time; // date time of break - - BrokenRCU() {} - BrokenRCU(const std::string &station, const std::string &type, size_t seqnr, const std::string &time): - station(station), type(type), seqnr(seqnr), time(time) {} - - bool operator==(const BrokenRCU &other) const { - return station == other.station && type == other.type && seqnr == other.seqnr && time == other.time; - } - }; - - std::vector<BrokenRCU> brokenRCUsAtBegin, brokenRCUsDuring; - - void write(Stream &s); - void read(Stream &s); -}; - -std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu); - -std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/InputData.h b/RTCP/Interface/include/Interface/InputData.h deleted file mode 100644 index 8ea4e34c1c62db98b4a1099ec2857eb551092c4e..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/InputData.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef LOFAR_CNPROC_INPUT_DATA_H -#define LOFAR_CNPROC_INPUT_DATA_H - -#include <Common/lofar_complex.h> -#include <Common/DataConvert.h> -#include <Interface/Align.h> -#include <Interface/Allocator.h> -#include <Interface/MultiDimArray.h> -#include <Interface/Config.h> -#include <Interface/StreamableData.h> -#include <Stream/Stream.h> - -#include <Interface/Allocator.h> - -#include <vector> - - -namespace LOFAR { -namespace RTCP { - -template <typename SAMPLE_TYPE> class InputData: public SampleData<SAMPLE_TYPE,3,1> -{ - public: - typedef SampleData<SAMPLE_TYPE,3,1> SuperType; - - InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator); - - // used for asynchronous transpose - void readOne(Stream *str, unsigned subbandPosition); - - protected: - virtual void checkEndianness(); -}; - - -template <typename SAMPLE_TYPE> inline InputData<SAMPLE_TYPE>::InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator) -: - SuperType(boost::extents[nrSubbands][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator) -{ -} - -// used for asynchronous transpose -template <typename SAMPLE_TYPE> inline void InputData<SAMPLE_TYPE>::readOne(Stream *str, unsigned subbandPosition) -{ - str->read(SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements() * sizeof(SAMPLE_TYPE)); - -#if defined C_IMPLEMENTATION && defined WORDS_BIGENDIAN - dataConvert(LittleEndian, SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements()); -#endif -} - -template <typename SAMPLE_TYPE> inline void InputData<SAMPLE_TYPE>::checkEndianness() -{ -#if defined C_IMPLEMENTATION && defined WORDS_BIGENDIAN - dataConvert(LittleEndian, SuperType::samples.origin(), SuperType::samples.num_elements()); -#endif -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/InverseFilteredData.h b/RTCP/Interface/include/Interface/InverseFilteredData.h deleted file mode 100644 index 66a34b4e558f29cac1cdd94fd6e01b970b99ef54..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/InverseFilteredData.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LOFAR_INTERFACE_INVERSE_FILTERED_DATA_H -#define LOFAR_INTERFACE_INVERSE_FILTERED_DATA_H - -#include <Common/lofar_complex.h> -#include <Stream/Stream.h> -#include <Interface/Align.h> -#include <Interface/Config.h> -#include <Interface/MultiDimArray.h> -#include <Interface/SparseSet.h> -#include <Interface/StreamableData.h> - -namespace LOFAR { -namespace RTCP { - -// This assumes the nrChannels == 1 -// We store the data for only 1 beam, 1 polarization. -// nrSamplesPerIntegration is the original nrSamplesPerIntegration, and now becomes the "major time" index. -// The stationFilterSize is the minor time index. - -class InverseFilteredData: public SampleData<float,1,1> -{ - public: - typedef SampleData<float,1,1> SuperType; - - InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize); - - protected: - const unsigned itsNrSamplesPerIntegration; - const unsigned itsStationFilterSize; - -}; - -inline InverseFilteredData::InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize) -: - SuperType::SampleData(boost::extents[nrSamplesPerIntegration*stationFilterSize], boost::extents[1]), - itsNrSamplesPerIntegration(nrSamplesPerIntegration), - itsStationFilterSize(stationFilterSize) -{ -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/MultiDimArray.h b/RTCP/Interface/include/Interface/MultiDimArray.h deleted file mode 100644 index ec77a47d091244d05eace9c8b6821bfec9231d46..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/MultiDimArray.h +++ /dev/null @@ -1,463 +0,0 @@ -#ifndef LOFAR_INTERFACE_MULTI_DIM_ARRAY_H -#define LOFAR_INTERFACE_MULTI_DIM_ARRAY_H - -#include <Interface/Align.h> -#include <Interface/Allocator.h> -#include <Interface/Exceptions.h> -#include <Common/LofarLogger.h> -#include <boost/multi_array.hpp> - -#include <memory> -#include <ostream> -#include <stdexcept> - -#if _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 -#include <cstdlib> -#else -#include <malloc.h> -#endif - - -namespace LOFAR { -namespace RTCP { - - -/* - * MultiDimArray wraps a boost::multi_array_ref to provide enhanced allocation, - * alignment, resize, and reshape functionality. - */ -template <typename T, unsigned DIM> class MultiDimArray : public boost::multi_array_ref<T, DIM> -{ - public: - typedef boost::multi_array_ref<T, DIM> SuperType; - typedef boost::detail::multi_array::extent_gen<DIM> ExtentList; - - /* - * Default constructor. Creates an array of size 0 in all dimensions. - */ - MultiDimArray(Allocator &allocator = heapAllocator) - : - SuperType(0, boost::detail::multi_array::extent_gen<DIM>()), - allocator(&allocator), - allocated_num_elements(0), - alignment(0), - padToAlignment(false), - construct(true) - { - } - - /* - * In-place constructor. Casts a MultiDimArray onto pre-allocated memory. - * - * extents: dimensions of array - * ptr: pointer to memory - * construct: true: construct (and later destruct) the elements - * false: elements are already constructed (view) - */ - MultiDimArray(const ExtentList &extents, T *ptr, bool construct = true) - : - // Use 'placement new' to force initialisation through constructors if T is a class - - // TODO: Not sure how to handle an exception raised by the constructor of T. The placement - // delete[] will be called, but that's an empty stub. - SuperType(construct ? new(ptr)T[nrElements(extents)] : ptr, extents), - allocator(0), - allocated_num_elements(nrElements(extents)), - alignment(alignment), - padToAlignment(padToAlignment), - construct(construct) - { - // NOTE: Elements are not destructed even if construct == true! - } - - - /* - * Create an array, including memory allocation. - * - * extents: dimensions of array - * alignment: alignment of first element - * allocator: allocator to use for allocation - * padToAlignment: if true, the size of the allocated memory is also padded - * to `alignment'. - * construct: true: construct (and later destruct) the elements - * false: elements are already constructed (view) - */ - MultiDimArray(const ExtentList &extents, size_t alignment = defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false, bool construct = true) - : - // Use 'placement new' to force initialisation through constructors if T is a class - - // TODO: Not sure how to handle an exception raised by the constructor of T. The placement - // delete[] will be called, but that's an empty stub. - SuperType(allocate(nrElements(extents), alignment, allocator, padToAlignment, construct), extents), - allocator(&allocator), - allocated_num_elements(nrElements(extents)), - alignment(alignment), - padToAlignment(padToAlignment), - construct(construct) - { - } - - /* - * Copy constructor. Uses other.allocator to allocate a copy. - */ - MultiDimArray(const MultiDimArray<T,DIM> &other) - : - SuperType(other.num_elements_ && other.allocator ? allocate(other.num_elements_, other.alignment, *other.allocator, other.padToAlignment, other.construct) : 0, other.extent_list_), -//new(other.allocator->allocate(padToAlignment ? align(other.num_elements_ * sizeof(T), other.alignment) : other.num_elements_ * sizeof(T), other.alignment))T[other.num_elements_] : 0, other.extent_list_), - allocator(other.allocator), - allocated_num_elements(other.num_elements_), - alignment(other.alignment), - padToAlignment(other.padToAlignment), - construct(true) - { - ASSERTSTR(other.allocator, "Cannot copy MultiDimArray that does not have an allocator."); - - *this = other; - } - - ~MultiDimArray() - { - destructElements(); - - if (allocator) { - allocator->deallocate(this->base_); - } - } - - /* - * Assignment operator. Works on any two arrays of the same dimensionality, - * type, and total number of elements. - */ - MultiDimArray<T,DIM> &operator= (const MultiDimArray<T,DIM> &other) - { - if (other.num_elements_ != this->num_elements_) - THROW(InterfaceException, "Tried to assign an array with " << other.num_elements_ << " elements to an array with " << this->num_elements_ << "elements."); - - T *me = this->origin(); - const T *him = other.origin(); - - for (size_t i = 0; i < this->num_elements_; i ++) - *(me++) = *(him++); - - return *this; - } - - /* - * Resize the array by allocating new memory. - * - * extents: new dimensions of array - * alignment: alignment of first element - * allocator: allocator to use for allocation - * padToAlignment: if true, the size of the allocated memory is also padded - * to `alignment'. - * construct: true: construct (and later destruct) the elements - * false: elements are already constructed (view) - */ - void resize(const ExtentList &extents, size_t alignment, Allocator &allocator, bool padToAlignment = false, bool construct = true) - { - MultiDimArray newArray(extents, alignment, allocator, padToAlignment, construct); - std::swap(this->base_, newArray.base_); - std::swap(this->storage_, newArray.storage_); - std::swap(this->extent_list_, newArray.extent_list_); - std::swap(this->stride_list_, newArray.stride_list_); - std::swap(this->index_base_list_, newArray.index_base_list_); - std::swap(this->origin_offset_, newArray.origin_offset_); - std::swap(this->directional_offset_, newArray.directional_offset_); - std::swap(this->num_elements_, newArray.num_elements_); - std::swap(this->allocator, newArray.allocator); - std::swap(this->allocated_num_elements, newArray.allocated_num_elements); - std::swap(this->alignment, newArray.alignment); - std::swap(this->padToAlignment, newArray.padToAlignment); - std::swap(this->construct, newArray.construct); - } - - /* - * Resize the array by allocating new memory. Requires the allocator to be - * set. - * - * extents: new dimensions of array - * alignment: alignment of first element - */ - void resize(const ExtentList &extents, size_t alignment = defaultAlignment()) - { - ASSERTSTR(allocator, "Cannot resize MultiDimArray that does not have an allocator."); - - resize(extents, alignment, *allocator); - } - - /* - * Resize the array in-place (reshape). Cannot resize the array beyond the - * memory that was originally allocated. - * - * extents: new dimensions of array - */ - void resizeInplace(const ExtentList &extents) - { - unsigned new_num_elements = nrElements(extents); - - if (new_num_elements > allocated_num_elements) - THROW(InterfaceException, "MultiDimArray::resizeInplace: requested to resize to " << new_num_elements << " elements, but only " << allocated_num_elements << " are allocated"); - - // only destruct and construct all elements if the number of elements actually changes - if (new_num_elements != this->num_elements_ && construct) { - destructElements(); - (void)new(this->base_)T[new_num_elements]; - } - - // regenerate the metadata, and use it. - // Our metadata will be freed due to the swap, but our data won't, because - // newArray.allocator == 0. Nor will our data be destructed, because - // newArray.construct == false. - MultiDimArray newArray(*this, extents); - //std::swap(this->base_, newArray.base_); - std::swap(this->storage_, newArray.storage_); - std::swap(this->extent_list_, newArray.extent_list_); - std::swap(this->stride_list_, newArray.stride_list_); - std::swap(this->index_base_list_, newArray.index_base_list_); - std::swap(this->origin_offset_, newArray.origin_offset_); - std::swap(this->directional_offset_, newArray.directional_offset_); - std::swap(this->num_elements_, newArray.num_elements_); - //std::swap(this->allocator, newArray.allocator); - //std::swap(this->allocated_num_elements, newArray.allocated_num_elements); - //std::swap(this->alignment, newArray.alignment); - } - - /* - * Resize the array in-place (reshape) by changing only a single dimension. - * Cannot resize the array beyond the memory that was originally allocated. - * - * dimNr: dimension number to change. - * newSize: new size of dimension. - */ - void resizeOneDimensionInplace(unsigned dimNr, size_t newSize) - { - ASSERTSTR(dimNr < DIM, "Cannot resize dimension " << dimNr << " because there are only " << DIM << " dimensions."); - - ExtentList newDims; - - for (size_t i = 0; i < DIM; i++) - newDims.ranges_[i] = this->extent_list_[i]; - - newDims.ranges_[dimNr] = newSize; - - resizeInplace(newDims); - } - - - static size_t defaultAlignment() - { - return sizeof(T) < 16 ? 8 : sizeof(T) < 32 ? 16 : 32; - } - - - static size_t nrElements(const ExtentList &extents) - { - size_t size = 1; - - for (unsigned i = 0; i < extents.ranges_.size(); i ++) - size *= extents.ranges_[i].size(); - - return size; - } - - private: - // All members need to be mutable to be able to swap them in resize() - - // Allocator with which the array was allocated, or NULL if the memory - // was externally allocated. - Allocator *allocator; - - // Number of elements that were originally allocated. - size_t allocated_num_elements; - - // Alignment for the first element. - unsigned alignment; - - // If padToAlignment is true, the memory allocated is also padded towards - // the specified alignment. - bool padToAlignment; - - // If construct is true, the elements have been constructed by us. - // If construct is false, the elements have been constructed externally. - bool construct; - - T *allocate(size_t nrElements, size_t alignment, Allocator &allocator, bool padToAlignment, bool construct) const { - size_t dataSize = padToAlignment - ? align(nrElements * sizeof(T), alignment) - : nrElements * sizeof(T); - - T *ptr = static_cast<T*>(allocator.allocate(dataSize, alignment)); - - return construct ? new(ptr)T[nrElements] : ptr; - } - - // a MultiDimArray made to replace another, using a different shape. Assumes - // the original MultiDimArray allocated enough memory to hold the new - // dimensions. - MultiDimArray(const MultiDimArray<T,DIM> &other, const ExtentList &extents) - : - // Use 'placement new' to force initialisation through constructors if T is a class - - // TODO: Not sure how to handle an exception raised by the constructor of T. The placement - // delete[] will be called, but that's an empty stub. - SuperType(other.base_, extents), - allocator(0), // we did not allocate this - allocated_num_elements(0), - alignment(other.alignment), - padToAlignment(other.padToAlignment), - construct(false) // construction was done by an external source - { - } - - - void destructElements() - { - if (!construct) - return; - - // explicitly call the destructors in the 'placement new' array since C++ - // cannot do this for us. The delete[] operator cannot know the size of the - // array, and the placement delete[] operator exists (since new()[] will look - // for it) but does nothing. - T *elem = this->origin(); - - for (size_t i = 0; i < this->num_elements_; i ++) - (elem++)->~T(); - } -}; - - -template <typename T> class Vector : public MultiDimArray<T, 1> -{ - public: - typedef MultiDimArray<T, 1> SuperType; - typedef typename SuperType::ExtentList ExtentList; - - Vector(Allocator &allocator = heapAllocator) - : - SuperType(allocator) - { - } - - Vector(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator) - : - SuperType(boost::extents[x], alignment, allocator) - { - } - - Vector(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator) - : - SuperType(extents, alignment, allocator) - { - } - - using SuperType::resize; - - void resize(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false) - { - SuperType::resize(boost::extents[x], alignment, allocator, padToAlignment); - } -}; - - -template <typename T> class Matrix : public MultiDimArray<T, 2> -{ - public: - typedef MultiDimArray<T, 2> SuperType; - typedef typename SuperType::ExtentList ExtentList; - - Matrix(Allocator &allocator = heapAllocator) - : - SuperType(allocator) - { - } - - Matrix(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false) - : - SuperType(boost::extents[x][y], alignment, allocator, padToAlignment) - { - } - - Matrix(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false) - : - SuperType(extents, alignment, allocator, padToAlignment) - { - } - - using SuperType::resize; - - void resize(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false) - { - SuperType::resize(boost::extents[x][y], alignment, allocator, padToAlignment); - } -}; - - -template <typename T> class Cube : public MultiDimArray<T, 3> -{ - public: - typedef MultiDimArray<T, 3> SuperType; - typedef typename SuperType::ExtentList ExtentList; - - Cube(Allocator &allocator = heapAllocator) - : - SuperType(allocator) - { - } - - Cube(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator) - : - SuperType(boost::extents[x][y][z], alignment, allocator) - { - } - - Cube(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator) - : - SuperType(extents, alignment, allocator) - { - } - - using SuperType::resize; - - void resize(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false) - { - SuperType::resize(boost::extents[x][y][z], alignment, allocator, padToAlignment); - } -}; - -// output function for full MultiDimArrays -template <typename T, unsigned DIM> inline std::ostream &operator<< (std::ostream& str, const MultiDimArray<T,DIM> &array) -{ - str << "[ "; - - for (size_t i = 0; i < array.size(); i ++) { - if (i > 0) - str << ", "; - - str << array[i]; - } - - str << " ]"; - return str; -} - -// output function for subdimensions of MultiDimArrays -template <typename T, unsigned DIM, typename TPtr> inline std::ostream &operator<< (std::ostream& str, const typename boost::detail::multi_array::const_sub_array<T,DIM,TPtr> &array) -{ - str << "[ "; - - for (size_t i = 0; i < array.size(); i ++) { - if (i > 0) - str << ", "; - - str << array[i]; - } - - str << " ]"; - return str; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/OutputTypes.h b/RTCP/Interface/include/Interface/OutputTypes.h deleted file mode 100644 index 3f0f8f1ad92ddb23391ed1199974b6df2e12ab69..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/OutputTypes.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef LOFAR_RTCP_INTERFACE_OUTPUT_TYPES_H -#define LOFAR_RTCP_INTERFACE_OUTPUT_TYPES_H - -namespace LOFAR { -namespace RTCP { - -enum OutputType -{ - CORRELATED_DATA = 1, - BEAM_FORMED_DATA, - TRIGGER_DATA, - - // define LAST and FIRST in the enum to make them valid values within the - // allocated range for the enum (=minimal number of bits to store all values) - LAST_OUTPUT_TYPE, - FIRST_OUTPUT_TYPE = 1 -}; - -inline OutputType operator ++ (OutputType &outputType) // prefix ++ -{ - return (outputType = static_cast<OutputType>(outputType + 1)); -} - - -inline OutputType operator ++ (OutputType &outputType, int) // postfix ++ -{ - return static_cast<OutputType>((outputType = static_cast<OutputType>(outputType + 1)) - 1); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/Parset.h b/RTCP/Interface/include/Interface/Parset.h deleted file mode 100644 index 1e33e1c2e09563c25a0edba9399de0a45af5618a..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Parset.h +++ /dev/null @@ -1,373 +0,0 @@ -//# Parset.h: class/struct that holds the Parset information -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_PARSET_H -#define LOFAR_INTERFACE_PARSET_H - -// \file -// class/struct that holds the Parset information - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -//# Includes -#include <Common/ParameterSet.h> -#include <Common/LofarBitModeInfo.h> -#include <Common/StreamUtil.h> -#include <Common/StringUtil.h> -#include <Common/LofarLogger.h> -#include <Interface/BeamCoordinates.h> -#include <Interface/Config.h> -#include <Interface/OutputTypes.h> -#include <Interface/SmartPtr.h> -#include <Stream/Stream.h> -#include <Interface/PrintVector.h> - -#include <algorithm> -#include <numeric> -#include <sstream> -#include <vector> -#include <string> - -namespace LOFAR { -namespace RTCP { - -class Transpose2; -class CN_Transpose2; - -enum StokesType { STOKES_I = 0, STOKES_IQUV, STOKES_XXYY, INVALID_STOKES = -1 }; - - -// The Parset class is a public struct that can be used as base-class -// for holding Parset related information. -// It can be instantiated with a parset containing Parset information. -class Parset: public ParameterSet -{ - public: - Parset(); - Parset(const std::string &name); - Parset(Stream *); - - - std::string name() const; - void check() const; - - void write(Stream *) const; - - unsigned observationID() const; - double startTime() const; - double stopTime() const; - - unsigned nrCorrelatedBlocks() const; - unsigned nrBeamFormedBlocks() const; - - unsigned nrStations() const; - unsigned nrTabStations() const; - unsigned nrMergedStations() const; - std::vector<std::string> mergedStationNames() const; - unsigned nrBaselines() const; - unsigned nrCrossPolarisations() const; - unsigned clockSpeed() const; // Hz - double subbandBandwidth() const; - double sampleDuration() const; - unsigned nrBitsPerSample() const; - size_t nrBytesPerComplexSample() const; - std::vector<double> positions() const; - std::string positionType() const; - std::vector<double> getRefPhaseCentre() const; - std::vector<double> getPhaseCentreOf(const std::string &name) const; - unsigned dedispersionFFTsize() const; - unsigned CNintegrationSteps() const; - unsigned IONintegrationSteps() const; - unsigned integrationSteps() const; - unsigned coherentStokesTimeIntegrationFactor() const; - unsigned coherentStokesNrSubbandsPerFile() const; - unsigned incoherentStokesTimeIntegrationFactor() const; - unsigned coherentStokesChannelsPerSubband() const; - unsigned incoherentStokesChannelsPerSubband() const; - unsigned incoherentStokesNrSubbandsPerFile() const; - double CNintegrationTime() const; - double IONintegrationTime() const; - unsigned nrSamplesPerChannel() const; - unsigned nrSamplesPerSubband() const; - unsigned nrSubbandsPerPset() const; - unsigned nrPhase3StreamsPerPset() const; - unsigned nrHistorySamples() const; - unsigned nrSamplesToCNProc() const; - unsigned inputBufferSize() const; // in samples - unsigned maxNetworkDelay() const; - unsigned nrPPFTaps() const; - unsigned nrChannelsPerSubband() const; - unsigned nrCoresPerPset() const; - std::vector<unsigned> usedCoresInPset() const; - std::vector<unsigned> phaseOneTwoCores() const; - std::vector<unsigned> phaseThreeCores() const; - double channelWidth() const; - bool delayCompensation() const; - unsigned nrCalcDelays() const; - bool correctClocks() const; - double clockCorrectionTime(const std::string &station) const; - bool correctBandPass() const; - bool hasStorage() const; - std::string stationName(int index) const; - int stationIndex(const std::string &name) const; - std::vector<std::string> allStationNames() const; - unsigned nrPsetsPerStorage() const; - unsigned getLofarStManVersion() const; - std::vector<unsigned> phaseOnePsets() const; - std::vector<unsigned> phaseTwoPsets() const; - std::vector<unsigned> phaseThreePsets() const; - std::vector<unsigned> usedPsets() const; // union of phasePsets - unsigned totalNrPsets() const; // nr psets in the partition - bool phaseThreeDisjunct() const; // if phase 3 does not overlap with phase 1 or 2 in psets or cores - std::vector<unsigned> tabList() const; - bool conflictingResources(const Parset &otherParset, std::stringstream &error) const; - - int phaseOnePsetIndex(unsigned pset) const; - int phaseTwoPsetIndex(unsigned pset) const; - int phaseThreePsetIndex(unsigned pset) const; - int phaseOneCoreIndex(unsigned core) const; - int phaseTwoCoreIndex(unsigned core) const; - int phaseThreeCoreIndex(unsigned core) const; - - std::string getTransportType(const std::string &prefix) const; - - bool outputFilteredData() const; - bool outputCorrelatedData() const; - bool outputBeamFormedData() const; - bool outputTrigger() const; - bool outputThisType(OutputType) const; - - bool onlineFlagging() const; - bool onlinePreCorrelationFlagging() const; - bool onlinePreCorrelationNoChannelsFlagging() const; - bool onlinePostCorrelationFlagging() const; - bool onlinePostCorrelationFlaggingDetectBrokenStations() const; - unsigned onlinePreCorrelationFlaggingIntegration() const; - std::string onlinePreCorrelationFlaggingType(std::string defaultVal) const; - std::string onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const; - std::string onlinePostCorrelationFlaggingType(std::string defaultVal) const; - std::string onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const; - - unsigned nrStreams(OutputType, bool force=false) const; - unsigned maxNrStreamsPerPset(OutputType, bool force=false) const; - static std::string keyPrefix(OutputType); - std::string getHostName(OutputType, unsigned streamNr) const; - std::string getFileName(OutputType, unsigned streamNr) const; - std::string getDirectoryName(OutputType, unsigned streamNr) const; - - bool fakeInputData() const; - bool checkFakeInputData() const; - - std::string coherentStokes() const; - std::string incoherentStokes() const; - std::string bandFilter() const; - std::string antennaSet() const; - - size_t nrCoherentStokes() const { return coherentStokes().size(); } - size_t nrIncoherentStokes() const { return incoherentStokes().size(); } - - unsigned nrBeams() const; - std::string beamTarget(unsigned beam) const; - double beamDuration(unsigned beam) const; - - unsigned nrTABs(unsigned beam) const; - std::vector<unsigned> nrTABs() const; - unsigned totalNrTABs() const; - unsigned maxNrTABs() const; - bool isCoherent(unsigned beam, unsigned pencil) const; - BeamCoordinates TABs(unsigned beam) const; - double dispersionMeasure(unsigned beam=0,unsigned pencil=0) const; - std::vector<std::string> TABStationList(unsigned beam=0,unsigned pencil=0, bool raw=false) const; - - std::vector<unsigned> subbandList() const; - unsigned nrSubbands() const; - unsigned nrSubbandsPerSAP(unsigned sap) const; - unsigned nyquistZone() const; - - std::vector<unsigned> subbandToSAPmapping() const; - std::vector<double> subbandToFrequencyMapping() const; - std::vector<unsigned> subbandToRSPboardMapping(const std::string &stationName) const; - std::vector<unsigned> subbandToRSPslotMapping(const std::string &stationName) const; - - double channel0Frequency( size_t subband ) const; - - unsigned nrSlotsInFrame() const; - std::string partitionName() const; - bool realTime() const; - - std::vector<double> getBeamDirection(unsigned beam) const; - std::string getBeamDirectionType(unsigned beam) const; - - bool haveAnaBeam() const; - std::vector<double> getAnaBeamDirection() const; - std::string getAnaBeamDirectionType() const; - - struct StationRSPpair { - std::string station; - unsigned rsp; - }; - - std::vector<StationRSPpair> getStationNamesAndRSPboardNumbers(unsigned psetNumber) const; - - std::string getInputStreamName(const string &stationName, unsigned rspBoardNumber) const; - - std::vector<double> itsStPositions; - - std::string PVSS_TempObsName() const; - - std::string AntennaSetsConf() const; - std::string AntennaFieldsDir() const; - std::string HBADeltasDir() const; - - const Transpose2 &transposeLogic() const; - const CN_Transpose2 &CN_transposeLogic( unsigned pset, unsigned core ) const; - -private: - const std::string itsName; - - mutable std::string itsWriteCache; - - mutable SmartPtr<const Transpose2> itsTransposeLogic; - mutable SmartPtr<const CN_Transpose2> itsCN_TransposeLogic; - - void checkVectorLength(const std::string &key, unsigned expectedSize) const; - void checkInputConsistency() const; - - std::vector<double> getTAB(unsigned beam, unsigned pencil) const; - - void addPosition(string stName); - double getTime(const char *name) const; - static int findIndex(unsigned pset, const vector<unsigned> &psets); - - std::vector<double> centroidPos(const string &stations) const; - - bool compatibleInputSection(const Parset &otherParset, std::stringstream &error) const; - bool disjointCores(const Parset &, std::stringstream &error) const; -}; - -// -// All of the logic for the second transpose. -// - -struct StreamInfo { - unsigned stream; - - unsigned sap; - unsigned beam; - - bool coherent; - unsigned nrChannels; // channels per subband - unsigned timeIntFactor; // time integration factor - unsigned nrStokes; // total # stokes for this beam - StokesType stokesType; - unsigned nrSamples; // # samples/channel, after temporal integration - - unsigned stokes; - unsigned part; - - std::vector<unsigned> subbands; - - void log() const; -}; - -class Transpose2 { -public: - Transpose2( const Parset &parset ); - - unsigned nrStreams() const; - - // compose and decompose a stream number - unsigned stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt = 0) const; - void decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const; - - std::vector<unsigned> subbands( unsigned stream ) const; - unsigned nrSubbands( unsigned stream ) const; - unsigned maxNrSubbands() const; - unsigned maxNrChannels() const; - unsigned maxNrSamples() const; - - size_t subbandSize( unsigned stream ) const; - - // the pset/core which processes a certain block of a certain subband - // note: AsyncTransposeBeams applied the mapping of phaseThreePsets - unsigned sourceCore( unsigned subband, unsigned block ) const; - unsigned sourcePset( unsigned subband, unsigned block ) const; - - // the pset/core which processes a certain block of a certain stream - // note: AsyncTransposeBeams applied the mapping of phaseTwoPsets - unsigned destCore( unsigned stream, unsigned block ) const; - unsigned destPset( unsigned stream, unsigned block ) const; - - // if phase2 == phase3, each block in phase3 is processed by more cores (more cores idle to align phases 2 and 3) - unsigned phaseThreeGroupSize() const; - - const bool phaseThreeDisjunct; - - const unsigned nrChannels; - const unsigned nrCoherentChannels; - const unsigned nrIncoherentChannels; - const unsigned nrSamples; - const unsigned coherentTimeIntFactor; - const unsigned incoherentTimeIntFactor; - - const unsigned nrBeams; - const unsigned coherentNrSubbandsPerFile; - const unsigned incoherentNrSubbandsPerFile; - - const unsigned nrPhaseTwoPsets; - const unsigned nrPhaseTwoCores; - const unsigned nrPhaseThreePsets; - const unsigned nrPhaseThreeCores; - - const unsigned nrSubbandsPerPset; - - const std::vector<struct StreamInfo> streamInfo; - - const unsigned nrStreamsPerPset; - -private: - std::vector<struct StreamInfo> generateStreamInfo( const Parset &parset ) const; -}; - -class CN_Transpose2: public Transpose2 { -public: - CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore ); - - // the stream to process on (myPset, myCore) - int myStream( unsigned block ) const; - - // the part number of a subband with an absolute index - unsigned myPart( unsigned subband, bool coherent ) const; - - const unsigned myPset; - const unsigned myCore; - - const int phaseTwoPsetIndex; - const int phaseTwoCoreIndex; - const int phaseThreePsetIndex; - const int phaseThreeCoreIndex; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/PrintVector.h b/RTCP/Interface/include/Interface/PrintVector.h deleted file mode 100644 index 6fdc3f6cf1f497991eed2099f2859ad09dfc7484..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/PrintVector.h +++ /dev/null @@ -1,56 +0,0 @@ -//# PrintVector.h -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_PRINT_VECTOR_H -#define LOFAR_INTERFACE_PRINT_VECTOR_H - -#include <iostream> -#include <vector> - -namespace LOFAR { -namespace RTCP { - -template<typename T> inline std::ostream &operator << (std::ostream &str, const std::vector<T> &v) -{ - str << '['; - - for (typename std::vector<T>::const_iterator it = v.begin(); it != v.end(); it ++) { - if (it != v.begin()) - str << ','; - - str << *it; - } - - return str << ']'; -} - - -template<typename T, typename U> inline std::ostream &operator << (std::ostream &str, const std::pair<T,U> &p) -{ - return str << '(' << p.first << ',' << p.second << ')'; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/RSPTimeStamp.h b/RTCP/Interface/include/Interface/RSPTimeStamp.h deleted file mode 100644 index d2cc0c22c5aab4348f95c383f8dcdb82a82731bd..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/RSPTimeStamp.h +++ /dev/null @@ -1,242 +0,0 @@ -//# RSPTimeStamp.h: Small class to hold the timestamps from RSP -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_RSPTIMESTAMP_H -#define LOFAR_INTERFACE_RSPTIMESTAMP_H - -#include <Common/lofar_iosfwd.h> -#include <Common/LofarTypes.h> -#include <Common/LofarLogger.h> - -#define EVEN_SECOND_HAS_MORE_SAMPLES - -namespace LOFAR { - namespace RTCP { - - class TimeStamp { - public: - TimeStamp(); // empty constructor to be able to create vectors of TimeStamps - TimeStamp(int64 time); // for conversion from ints, used to convert values like 0x7FFFFFFF and 0x0 for special cases. - TimeStamp(int64 time, unsigned clockSpeed); - TimeStamp(unsigned seqId, unsigned blockId, unsigned clockSpeed); - - TimeStamp &setStamp(unsigned seqId, unsigned blockId); - unsigned getSeqId() const; - unsigned getBlockId() const; - unsigned getClock() const { return itsClockSpeed; } - - template <typename T> TimeStamp &operator += (T increment); - template <typename T> TimeStamp &operator -= (T decrement); - TimeStamp operator ++ (int); // postfix - TimeStamp &operator ++ (); // prefix - TimeStamp operator -- (int); - TimeStamp &operator -- (); - - template <typename T> TimeStamp operator + (T) const; - template <typename T> TimeStamp operator - (T) const; - int64 operator - (const TimeStamp &) const; - - bool operator > (const TimeStamp &) const; - bool operator < (const TimeStamp &) const; - bool operator >= (const TimeStamp &) const; - bool operator <= (const TimeStamp &) const; - bool operator == (const TimeStamp &) const; - bool operator != (const TimeStamp &) const; - bool operator ! () const; - - operator int64 () const; - operator struct timespec () const; - - friend ostream &operator << (ostream &os, const TimeStamp &ss); - - protected: - int64 itsTime; - unsigned itsClockSpeed; - }; - - inline TimeStamp::TimeStamp(): - itsTime(0), - itsClockSpeed(0) - { - } - - inline TimeStamp::TimeStamp(int64 time): - itsTime(time), - itsClockSpeed(0) - { - } - - inline TimeStamp::TimeStamp(int64 time, unsigned clockSpeed): - itsTime(time), - itsClockSpeed(clockSpeed) - { - } - - inline TimeStamp::TimeStamp(unsigned seqId, unsigned blockId, unsigned clockSpeed) - { - itsClockSpeed = clockSpeed; - -#ifdef EVEN_SECOND_HAS_MORE_SAMPLES - itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId; -#else - itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId; -#endif - } - - inline TimeStamp &TimeStamp::setStamp(unsigned seqId, unsigned blockId) - { -#ifdef EVEN_SECOND_HAS_MORE_SAMPLES - itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId; -#else - itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId; -#endif - return *this; - } - - inline unsigned TimeStamp::getSeqId() const - { -#ifdef EVEN_SECOND_HAS_MORE_SAMPLES - return (unsigned) (1024 * itsTime / itsClockSpeed); -#else - return (unsigned) ((1024 * itsTime + 512) / itsClockSpeed); -#endif - } - - inline unsigned TimeStamp::getBlockId() const - { -#ifdef EVEN_SECOND_HAS_MORE_SAMPLES - return (unsigned) (1024 * itsTime % itsClockSpeed / 1024); -#else - return (unsigned) ((1024 * itsTime + 512) % itsClockSpeed / 1024); -#endif - } - - template <typename T> inline TimeStamp &TimeStamp::operator += (T increment) - { - itsTime += increment; - return *this; - } - - template <typename T> inline TimeStamp &TimeStamp::operator -= (T decrement) - { - itsTime -= decrement; - return *this; - } - - inline TimeStamp &TimeStamp::operator ++ () - { - ++ itsTime; - return *this; - } - - inline TimeStamp TimeStamp::operator ++ (int) - { - TimeStamp tmp = *this; - ++ itsTime; - return tmp; - } - - inline TimeStamp &TimeStamp::operator -- () - { - -- itsTime; - return *this; - } - - inline TimeStamp TimeStamp::operator -- (int) - { - TimeStamp tmp = *this; - -- itsTime; - return tmp; - } - - template <typename T> inline TimeStamp TimeStamp::operator + (T increment) const - { - return TimeStamp(itsTime + increment, itsClockSpeed); - } - - template <typename T> inline TimeStamp TimeStamp::operator - (T decrement) const - { - return TimeStamp(itsTime - decrement, itsClockSpeed); - } - - inline int64 TimeStamp::operator - (const TimeStamp &other) const - { - return itsTime - other.itsTime; - } - - inline bool TimeStamp::operator ! () const - { - return itsTime == 0; - } - - inline TimeStamp::operator int64 () const - { - return itsTime; - } - - inline TimeStamp::operator struct timespec () const - { - int64 ns = (int64) (itsTime * 1024 * 1e9 / itsClockSpeed); - struct timespec ts; - - ts.tv_sec = ns / 1000000000ULL; - ts.tv_nsec = ns % 1000000000ULL; - - return ts; - } - - inline bool TimeStamp::operator > (const TimeStamp &other) const - { - return itsTime > other.itsTime; - } - - inline bool TimeStamp::operator >= (const TimeStamp &other) const - { - return itsTime >= other.itsTime; - } - - inline bool TimeStamp::operator < (const TimeStamp &other) const - { - return itsTime < other.itsTime; - } - - inline bool TimeStamp::operator <= (const TimeStamp &other) const - { - return itsTime <= other.itsTime; - } - - inline bool TimeStamp::operator == (const TimeStamp &other) const - { - return itsTime == other.itsTime; - } - - inline bool TimeStamp::operator != (const TimeStamp &other) const - { - return itsTime != other.itsTime; - } - - } // namespace RTCP - -} // namespace LOFAR - -#endif - diff --git a/RTCP/Interface/include/Interface/SetOperations.h b/RTCP/Interface/include/Interface/SetOperations.h deleted file mode 100644 index c298950829e89efc0bce501d5f19102bdeef0285..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/SetOperations.h +++ /dev/null @@ -1,54 +0,0 @@ -//# VectorOps.h -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: PrintVector.h 16765 2010-11-25 13:27:09Z mol $ - -#ifndef LOFAR_INTERFACE_SET_OPERATIONS_H -#define LOFAR_INTERFACE_SET_OPERATIONS_H - -#include <algorithm> - -namespace LOFAR { -namespace RTCP { - -template <typename T> T operator & (T a, T b) -{ - sort(a.begin(), a.end()); - sort(b.begin(), b.end()); - - T c(a.size() + b.size()); - c.resize(set_intersection(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin()); - return c; -} - -template <typename T> T operator | (T a, T b) -{ - sort(a.begin(), a.end()); - sort(b.begin(), b.end()); - - T c(a.size() + b.size()); - c.resize(set_union(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin()); - return c; -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/SmartPtr.h b/RTCP/Interface/include/Interface/SmartPtr.h deleted file mode 100644 index 1f6fc5190b7ddc222457889bc081087b38745cb9..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/SmartPtr.h +++ /dev/null @@ -1,160 +0,0 @@ -//# SmartPtr.h: -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: Parset.h 17623 2011-03-23 13:40:56Z mol $ - -#ifndef LOFAR_INTERFACE_SMART_PTR_H -#define LOFAR_INTERFACE_SMART_PTR_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <stdlib.h> - -namespace LOFAR { -namespace RTCP { - -template <typename T> class SmartPtrDelete; - -// T is the type of pointer (such as SmartPtr<int> to emulate int*) -// D is the deletion strategy (to choose between delete/delete[]/free) -template <typename T, class D = SmartPtrDelete<T> > class SmartPtr -{ - public: - SmartPtr(T * = NULL); - SmartPtr(const SmartPtr<T,D> &orig); // WARNING: move semantics; orig no longer contains pointer - - ~SmartPtr(); - - operator T * () const; - T & operator * () const; - T * operator -> () const; - - bool operator ! () const; - - SmartPtr<T,D> & operator = (T *); - SmartPtr<T,D> & operator = (const SmartPtr<T,D> &); - - T *get(); - T *release(); - - private: - T *ptr; -}; - -// Deletion strategies -template <typename T> class SmartPtrDelete { -public: - static void free( T *ptr ) { delete ptr; } -}; - -template <typename T> class SmartPtrDeleteArray { -public: - static void free( T *ptr ) { delete[] ptr; } -}; - -template <typename T> class SmartPtrFree { -public: - static void free( T *ptr ) { ::free(ptr); } -}; - -template <typename T, void (*F)(T*) > class SmartPtrFreeFunc { -public: - static void free( T *ptr ) { F(ptr); } -}; - -template <typename T, class D> inline SmartPtr<T,D>::SmartPtr(T *orig) -: - ptr(orig) -{ -} - -template <typename T, class D> inline SmartPtr<T,D>::SmartPtr(const SmartPtr<T,D> &orig) -: - ptr(orig.ptr) -{ - const_cast<T *&>(orig.ptr) = 0; -} - - -template <typename T, class D> inline SmartPtr<T,D>::~SmartPtr() -{ - D::free(ptr); -} - - -template <typename T, class D> inline SmartPtr<T,D>::operator T * () const -{ - return ptr; -} - - -template <typename T, class D> inline T &SmartPtr<T,D>::operator * () const -{ - return *ptr; -} - - -template <typename T, class D> inline T *SmartPtr<T,D>::operator -> () const -{ - return ptr; -} - - -template <typename T, class D> inline bool SmartPtr<T,D>::operator ! () const -{ - return ptr == 0; -} - - -template <typename T, class D> inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (T *orig) -{ - D::free(ptr); - ptr = orig; - return *this; -} - - -template <typename T, class D> inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (const SmartPtr<T,D> &orig) -{ - D::free(ptr); - ptr = orig; - const_cast<T *&>(orig.ptr) = 0; - return *this; -} - - -template <typename T, class D> inline T *SmartPtr<T,D>::get() -{ - return ptr; -} - - -template <typename T, class D> inline T *SmartPtr<T,D>::release() -{ - T *tmp = ptr; - ptr = 0; - return tmp; -} - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/SparseSet.h b/RTCP/Interface/include/Interface/SparseSet.h deleted file mode 100644 index 1ff26e9c9fdcc1f01e2adde36adf42d96d2aa4c6..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/SparseSet.h +++ /dev/null @@ -1,380 +0,0 @@ -//# SparseSet.h: portable <bitset> adaptation -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - - -#ifndef LOFAR_INTERFACE_SPARSESET_H -#define LOFAR_INTERFACE_SPARSESET_H - -#include <sys/types.h> -#include <stdint.h> - -#include <algorithm> -#include <cassert> -#include <cstring> -#include <cmath> -#include <iostream> -#include <vector> - - -namespace LOFAR { - -/* - * A SparseSet<T> represents a sorted vector of [from, to) pairs of type - * T representing a boolean presence. - */ -template <typename T> class SparseSet { - public: - struct range { - range() {} - range(T begin, T end) : begin(begin), end(end) {} - T begin, end; - }; - - typedef typename std::vector<range> Ranges; - typedef typename Ranges::iterator iterator; - typedef typename Ranges::const_iterator const_iterator; - - // Add `index' to the set. - SparseSet<T> &include(T index); - - // Add [first, last) to the set. - SparseSet<T> &include(T first /* inclusive */, T last /* exclusive */); - - // Remove `index' from the set. - SparseSet<T> &exclude(T index); - - // Remove [first, last) from the set. - SparseSet<T> &exclude(T first /* inclusive */, T last /* exclusive */); - - // Clear the set. - SparseSet<T> &reset(); - - // Returns the number of elements in the set. - T count() const; - - // Returns true if `index' is in the set. - bool test(T index) const; - - // Return the union of two sets. - SparseSet<T> operator | (const SparseSet<T> &) const; - SparseSet<T> &operator |= (const SparseSet<T> &); - - // Increase all indices in the set by `count'. - SparseSet<T> &operator += (size_t count); - - // Decrease all indices in the set by `count'. - SparseSet<T> &operator -= (size_t count); - - // Divide all indices by `shrinkFactor'. Fractions are rounded in favor - // of including more elements. - SparseSet<T> &operator /= (size_t shrinkFactor); - - // Return the inverse of the set, considering the [first, last) range. - // These parameters are needed because a SparseSet has no inherent - // knowledge of the set's boundaries. - SparseSet<T> invert(T first, T last) const; - - // Return the subset within [first, last). - SparseSet<T> subset(T first, T last) const; - - // Returns the range vector, useful for iteration. - const Ranges &getRanges() const; - - // Write the set to *ptr, using at most maxSize bytes. - // Returns the number of marshalled bytes, or -1 - // if maxSize was too small. - ssize_t marshall(void *ptr, size_t maxSize) const; - - // Read the SparseSet from *ptr. - void unmarshall(const void *ptr); - - private: - Ranges ranges; - - struct less { - bool operator() (const range &x, const range &y) - { - return x.end < y.begin; - } - }; - - struct less_equal { - bool operator() (const range &x, const range &y) - { - return x.end <= y.begin; - } - }; -}; - -template <typename T> std::ostream &operator << (std::ostream &str, const SparseSet<T> &set); - - -template <typename T> inline SparseSet<T> &SparseSet<T>::include(T index) -{ - return include(index, index + 1); -} - - -template <typename T> inline SparseSet<T> &SparseSet<T>::exclude(T index) -{ - return exclude(index, index + 1); -} - - -template <typename T> inline SparseSet<T> &SparseSet<T>::reset() -{ - ranges.resize(0); - return *this; -} - - -template <typename T> inline SparseSet<T> &SparseSet<T>::operator |= (const SparseSet<T> &other) -{ - ranges = (*this | other).ranges; - return *this; -} - - -template <typename T> inline SparseSet<T> SparseSet<T>::invert(T first, T last) const -{ - SparseSet<T> inverted; - - for (const_iterator it = ranges.begin(); it != ranges.end(); it ++) { - inverted.include(first, it->begin); - first = it->end; - } - - inverted.include(first, last); - - return inverted; -} - - -template <typename T> inline SparseSet<T> SparseSet<T>::subset(T first, T last) const -{ - return SparseSet<T>(*this).exclude(last, ~0U).exclude(0, first); -} - - -//template <typename T> inline const std::vector<typename SparseSet<T>::range> &SparseSet<T>::getRanges() const -template <typename T> inline const typename SparseSet<T>::Ranges &SparseSet<T>::getRanges() const -{ - return ranges; -} - - -template <typename T> SparseSet<T> &SparseSet<T>::include(T first, T last) -{ - if (first < last) { - // find two iterators that mark the first resp. last involved ranges - range r(first, last); - std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), r, less()); - - if (iters.first == iters.second) { - // insert new tuple - ranges.insert(iters.first, r); - } else { - // combine with existing tuple(s) - iters.first->begin = std::min(first, iters.first->begin); - iters.first->end = std::max(last , iters.second[-1].end); - - ranges.erase(iters.first + 1, iters.second); - } - } - - return *this; -} - - -template <typename T> SparseSet<T> &SparseSet<T>::exclude(T first, T last) -{ - if (first < last) { - // find two iterators that mark the first resp. last involved ranges - // unlike in include(), a range that is adjacent to first or last is not - // considered to be involved, hence the use of less_equal() - std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), range(first, last), less_equal()); - - if (iters.first != iters.second) { // check if there are tuples involved - if (iters.second - iters.first == 1 && first > iters.first->begin && last < iters.first->end) { - // split tuple - range r(last, iters.first->end); - iters.first->end = first; - ranges.insert(iters.second, r); - } else { - // possibly erase tuples - if (first > iters.first->begin) - (iters.first ++)->end = first; // adjust first tuple; do not erase - - if (last < iters.second[-1].end) - (-- iters.second)->begin = last; // adjust last tuple; do not erase - - ranges.erase(iters.first, iters.second); - } - } - } - - return *this; -} - - -template <typename T> T SparseSet<T>::count() const -{ - T count = 0; - - for (const_iterator it = ranges.begin(); it != ranges.end(); it ++) - count += it->end - it->begin; - - return count; -} - - -template <typename T> bool SparseSet<T>::test(T index) const -{ - const_iterator it = lower_bound(ranges.begin(), ranges.end(), range(index, index + 1), less_equal()); - return it != ranges.end() && index >= it->begin; -} - - -template <typename T> SparseSet<T> SparseSet<T>::operator | (const SparseSet<T> &other) const -{ - // iterate with two iterators over both sets, comparing the ranges to decide - // what to do: include a range from the first set, include a range from the - // second set, or merge (multiple) ranges from both sets. - - SparseSet<T> union_set; - const_iterator it1 = ranges.begin(), it2 = other.ranges.begin(); - - while (it1 != ranges.end() && it2 != other.ranges.end()) { - if (it1->end < it2->begin) { - union_set.ranges.push_back(*it1 ++); // no overlap; *it1 is the smallest - } else if (it2->end < it1->begin) { - union_set.ranges.push_back(*it2 ++); // no overlap; *it2 is the smallest - } else { // there is overlap, or it1 and it2 are contiguous - T new_begin = std::min(it1->begin, it2->begin); - - // check if subsequent ranges from set1 and set2 must be joined as well - while (1) { - if (it1 + 1 != ranges.end() && it1[1].begin <= it2->end) { - ++ it1; - } else if (it2 + 1 != other.ranges.end() && it2[1].begin <= it1->end) { - ++ it2; - } else { - break; - } - } - - union_set.ranges.push_back(range(new_begin, std::max(it1->end, it2->end))); - ++ it1, ++ it2; - } - } - - // possibly append the remainder of the set that we have not finished yet - union_set.ranges.insert(union_set.ranges.end(), it1, ranges.end()); - union_set.ranges.insert(union_set.ranges.end(), it2, other.ranges.end()); - return union_set; -} - - -template <typename T> SparseSet<T> &SparseSet<T>::operator += (size_t count) -{ - for (iterator it = ranges.begin(); it != ranges.end(); it ++) - it->begin += count, it->end += count; - - return *this; -} - - -template <typename T> SparseSet<T> &SparseSet<T>::operator -= (size_t count) -{ - assert(ranges.size() == 0 || ranges[0].begin >= count); - - for (iterator it = ranges.begin(); it != ranges.end(); it ++) - it->begin -= count, it->end -= count; - - return *this; -} - -template <typename T> SparseSet<T> &SparseSet<T>::operator /= (size_t shrinkFactor) -{ - iterator prev = ranges.end(); - - if (shrinkFactor == 1) { - /* nothing changes */ - return *this; - } - - for (iterator it = ranges.begin(); it != ranges.end(); it ++) { - it->begin = static_cast<T>(floor(static_cast<double>(it->begin) / shrinkFactor)); - it->end = static_cast<T>(ceil(static_cast<double>(it->end) / shrinkFactor)); - - /* The gap between two ranges might have disappeared. The ranges can - even overlap due to the differences in rounding. */ - if (prev != ranges.end() && prev->end >= it->begin) { - /* combine tuples */ - it->begin = prev->begin; - - /* it would be invalidated by the erase, so reobtain it */ - it = ranges.erase(prev); - } - - prev = it; - } - - return *this; -} - - -template <typename T> ssize_t SparseSet<T>::marshall(void *ptr, size_t maxSize) const -{ - size_t size = sizeof(uint32_t) + ranges.size() * sizeof(range); - - if (size > maxSize) - return -1; - - * (uint32_t *) ptr = ranges.size(); - memcpy((uint32_t *) ptr + 1, &ranges[0], ranges.size() * sizeof(range)); - - return size; -} - - -template <typename T> void SparseSet<T>::unmarshall(const void *ptr) -{ - ranges.resize(* (uint32_t *) ptr); - memcpy(&ranges[0], (uint32_t *) ptr + 1, ranges.size() * sizeof(range)); -} - - -template <typename T> std::ostream &operator << (std::ostream &str, const SparseSet<T> &set) -{ - for (typename SparseSet<T>::const_iterator it = set.getRanges().begin(); it != set.getRanges().end(); it ++) - if (it->end == it->begin + 1) - str << '[' << it->begin << "] "; - else - str << '[' << it->begin << ".." << it->end << "> "; - - return str; -} - -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/Stream.h b/RTCP/Interface/include/Interface/Stream.h deleted file mode 100644 index 8111b8e0284d8447a303240318bd0fca31ec0120..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/Stream.h +++ /dev/null @@ -1,49 +0,0 @@ -//# Stream.h: functions to construct streams between ION/CN/Storage -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: Stream.h 16488 2010-10-07 10:06:14Z mol $ - -#ifndef LOFAR_INTERFACE_STREAM_H -#define LOFAR_INTERFACE_STREAM_H - -#include <Interface/OutputTypes.h> -#include <Interface/Parset.h> -#include <Stream/Stream.h> - -#include <string> - -namespace LOFAR { -namespace RTCP { - -// Create a stream from a descriptor -Stream *createStream(const std::string &descriptor, bool asReader, time_t deadline = 0); - -// Return a string descriptor, for all supported streamTypes except FCNP -std::string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel); - -uint16 storageBrokerPort(int observationID); -std::string getStorageControlDescription(int observationID, int rank); - -std::string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr); - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/StreamableData.h b/RTCP/Interface/include/Interface/StreamableData.h deleted file mode 100644 index e6f2a6716cc18175141956072900643f77a9684c..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/StreamableData.h +++ /dev/null @@ -1,181 +0,0 @@ -#ifndef LOFAR_INTERFACE_STREAMABLE_DATA_H -#define LOFAR_INTERFACE_STREAMABLE_DATA_H - -#include <Stream/Stream.h> -#include <Common/LofarLogger.h> -#include <Common/LofarTypes.h> -#include <Interface/Parset.h> -#include <Interface/MultiDimArray.h> -#include <Interface/SparseSet.h> -#include <Interface/Allocator.h> -#include <Interface/Align.h> -#include <Common/DataConvert.h> - -#include <cstring> - -namespace LOFAR { -namespace RTCP { - -// Data which needs to be transported between CN, ION and Storage. -// Apart from read() and write() functionality, the data is augmented -// with a sequence number in order to detect missing data. Furthermore, -// an integration operator += can be defined to reduce the data. - -// Endianness: -// * Endianness is defined by the correlator. -// * Both Data and sequence number will have endianness of the -// correlator -// -// WARNING: We consider all data streams to have the endianness of the -// correlator. No conversion is done here. - -class IntegratableData -{ - public: - virtual ~IntegratableData() {} - - virtual IntegratableData &operator += (const IntegratableData &) = 0; -}; - - -class StreamableData -{ - public: - static const uint32_t magic = 0xda7a; -#ifdef HAVE_BGP - static const size_t alignment = 32; -#else - static const size_t alignment = 512; -#endif - - // the CPU which fills the datastructure sets the peerMagicNumber, - // because other CPUs will overwrite it with a read(s,true) call from - // either disk or network. - StreamableData(): peerMagicNumber(magic), rawSequenceNumber(0) {} - virtual ~StreamableData() {} - - void read(Stream *, bool withSequenceNumber, unsigned align = 0); - void write(Stream *, bool withSequenceNumber, unsigned align = 0); - - bool shouldByteSwap() const - { return peerMagicNumber != magic; } - - uint32_t sequenceNumber(bool raw=false) const { - if (shouldByteSwap() && !raw) { - uint32_t seqno = rawSequenceNumber; - - byteSwap32(&seqno); - - return seqno; - } else { - return rawSequenceNumber; - } - } - - void setSequenceNumber(uint32_t seqno) { - if (shouldByteSwap()) - byteSwap32(&seqno); - - rawSequenceNumber = seqno; - } - - virtual void setDimensions(unsigned, unsigned, unsigned) { } - - uint32_t peerMagicNumber; /// magic number received from peer - - protected: - // a subclass should override these to marshall its data - virtual void readData(Stream *) = 0; - virtual void writeData(Stream *) = 0; - - private: - uint32_t rawSequenceNumber; /// possibly needs byte swapping -}; - - -// A typical data set contains a MultiDimArray of tuples and a set of flags. -template <typename T = fcomplex, unsigned DIM = 4, unsigned FLAGS_DIM = 2> class SampleData : public StreamableData -{ - public: - typedef typename MultiDimArray<T,DIM>::ExtentList ExtentList; - typedef typename MultiDimArray<SparseSet<unsigned>,FLAGS_DIM>::ExtentList FlagsExtentList; - - SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator & = heapAllocator); - - MultiDimArray<T,DIM> samples; - MultiDimArray<SparseSet<unsigned>,FLAGS_DIM> flags; - - protected: - virtual void readData(Stream *); - virtual void writeData(Stream *); - - private: - //bool itsHaveWarnedLittleEndian; -}; - - -inline void StreamableData::read(Stream *str, bool withSequenceNumber, unsigned alignment) -{ - if (withSequenceNumber) { - std::vector<char> header(alignment > 2*sizeof(uint32_t) ? alignment : 2*sizeof(uint32_t)); - uint32_t &magicValue = * reinterpret_cast<uint32_t *>(&header[0]); - uint32_t &seqNo = * reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]); - - str->read(&header[0], header.size()); - - peerMagicNumber = magicValue; - rawSequenceNumber = seqNo; - } - - readData(str); -} - - -inline void StreamableData::write(Stream *str, bool withSequenceNumber, unsigned alignment) -{ - - if (withSequenceNumber) { -/* std::vector<char> header(alignment > sizeof(uint32_t) ? alignment : sizeof(uint32_t)); */ - std::vector<char> header(alignment > 2*sizeof(uint32_t) ? alignment : 2*sizeof(uint32_t)); - uint32_t &magicValue = * reinterpret_cast<uint32_t *>(&header[0]); - uint32_t &seqNo = * reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]); - -#if defined USE_VALGRIND - memset(&header[0], 0, header.size()); -#endif - - magicValue = peerMagicNumber; - seqNo = rawSequenceNumber; - - str->write(&header[0], header.size()); - } - - writeData(str); -} - - -template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline SampleData<T,DIM,FLAGS_DIM>::SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator &allocator) -: - samples(extents, alignment, allocator), - flags(flagsExtents) // e.g., for FilteredData [nrChannels][nrStations], sparse dimension [nrSamplesPerIntegration] - - //itsHaveWarnedLittleEndian(false) -{ -} - - -template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline void SampleData<T,DIM,FLAGS_DIM>::readData(Stream *str) -{ - str->read(samples.origin(), samples.num_elements() * sizeof(T)); -} - - -template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline void SampleData<T,DIM,FLAGS_DIM>::writeData(Stream *str) -{ - str->write(samples.origin(), samples.num_elements() * sizeof(T)); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/SubbandMetaData.h b/RTCP/Interface/include/Interface/SubbandMetaData.h deleted file mode 100644 index 93e0f90bc98f6b2780fe2503534edf6d1af11254..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/SubbandMetaData.h +++ /dev/null @@ -1,177 +0,0 @@ -//# SubbandMetaData.h: -//# -//# Copyright (C) 2007 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_INTERFACE_SUBBAND_META_DATA_H -#define LOFAR_INTERFACE_SUBBAND_META_DATA_H - -#include <Interface/Align.h> -#include <Interface/Allocator.h> -#include <Interface/MultiDimArray.h> -#include <Interface/SparseSet.h> -#include <Common/LofarLogger.h> -#include <Stream/Stream.h> - -#include <cassert> -#include <cstring> - - -namespace LOFAR { -namespace RTCP { - -// Note: struct must remain copyable to avoid ugly constructions when passing it around -struct SubbandMetaData -{ - public: - SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator = heapAllocator); - ~SubbandMetaData(); - - struct beamInfo { - float delayAtBegin, delayAfterEnd; - double beamDirectionAtBegin[3], beamDirectionAfterEnd[3]; - }; - - struct marshalledData { - unsigned char flagsBuffer[132]; - unsigned alignmentShift; - - // nrBeams elements will really be allocated, so this array needs to - // be the last element. Also, ISO C++ forbids zero-sized arrays, so we use size 1. - struct beamInfo beams[1]; - }; - - SparseSet<unsigned> getFlags(unsigned subband) const; - void setFlags(unsigned subband, const SparseSet<unsigned> &); - - unsigned alignmentShift(unsigned subband) const; - unsigned &alignmentShift(unsigned subband); - - struct beamInfo *beams(unsigned subband) const; - struct beamInfo *beams(unsigned subband); - - struct marshalledData &subbandInfo(unsigned subband) const; - struct marshalledData &subbandInfo(unsigned subband); - - void read(Stream *str); - void write(Stream *str) const; - - // size of the information for one subband - const unsigned itsSubbandInfoSize; - - private: - // size of the information for all subbands - const unsigned itsMarshalledDataSize; - - // the pointer to all our data, which consists of struct marshalledData[itsNrSubbands], - // except for the fact that the elements are spaces apart more than sizeof(struct marshalledData) - // to make room for extra beams which are not defined in the marshalledData structure. - // - // Access elements through subbandInfo(subband). - char *const itsMarshalledData; - - Allocator &itsAllocator; -}; - - -inline SubbandMetaData::SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator) -: - // Size of the data we need to allocate. Note that marshalledData already contains - // the size of one beamInfo. - itsSubbandInfoSize(sizeof(struct marshalledData) + (nrBeams - 1) * sizeof(struct beamInfo)), - itsMarshalledDataSize(align(nrSubbands * itsSubbandInfoSize, 16)), - itsMarshalledData(static_cast<char*>(allocator.allocate(itsMarshalledDataSize, 16))), - itsAllocator(allocator) -{ -#if defined USE_VALGRIND - memset(itsMarshalledData, 0, itsMarshalledDataSize); -#endif -} - -inline SubbandMetaData::~SubbandMetaData() -{ - itsAllocator.deallocate(itsMarshalledData); -} - -inline SparseSet<unsigned> SubbandMetaData::getFlags(unsigned subband) const -{ - SparseSet<unsigned> flags; - - flags.unmarshall(subbandInfo(subband).flagsBuffer); - return flags; -} - -inline void SubbandMetaData::setFlags(unsigned subband, const SparseSet<unsigned> &flags) -{ - ssize_t size = flags.marshall(&subbandInfo(subband).flagsBuffer, sizeof subbandInfo(subband).flagsBuffer); - - assert(size >= 0); -} - -inline unsigned SubbandMetaData::alignmentShift(unsigned subband) const -{ - return subbandInfo(subband).alignmentShift; -} - -inline unsigned &SubbandMetaData::alignmentShift(unsigned subband) -{ - return subbandInfo(subband).alignmentShift; -} - -inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband) const -{ - return &subbandInfo(subband).beams[0]; -} - -inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband) -{ - return &subbandInfo(subband).beams[0]; -} - -inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband) const -{ - // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements - return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize)); -} - -inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband) -{ - // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements - return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize)); -} - -inline void SubbandMetaData::read(Stream *str) -{ - // TODO: endianness - - str->read(itsMarshalledData, itsMarshalledDataSize); -} - -inline void SubbandMetaData::write(Stream *str) const -{ - // TODO: endianness - - str->write(itsMarshalledData, itsMarshalledDataSize); -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/TransposedBeamFormedData.h b/RTCP/Interface/include/Interface/TransposedBeamFormedData.h deleted file mode 100644 index 2d3f18bad32e16536e346285693846066edd57f2..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/TransposedBeamFormedData.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef LOFAR_CNPROC_TRANSPOSED_BEAMFORMED_DATA_H -#define LOFAR_CNPROC_TRANSPOSED_BEAMFORMED_DATA_H - -#include <Common/lofar_complex.h> -#include <Interface/StreamableData.h> - -#include <vector> - - -namespace LOFAR { -namespace RTCP { - -// Polarizations are separated, otherwise the buffers do not fit in memory. - -class TransposedBeamFormedData: public SampleData<fcomplex,3,1> -{ - public: - typedef SampleData<fcomplex,3,1> SuperType; - - TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration); -}; - - -inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration) -: - SuperType(boost::extents[nrSubbands][nrChannels][nrSamplesPerIntegration | 2], boost::extents[1]) -{ -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/TransposedData.h b/RTCP/Interface/include/Interface/TransposedData.h deleted file mode 100644 index fecdb41d486ad746d6017e82a1da4ea06ac47f7e..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/TransposedData.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef LOFAR_CNPROC_TRANSPOSED_DATA_H -#define LOFAR_CNPROC_TRANSPOSED_DATA_H - -#include <Interface/Config.h> -#include <Interface/Allocator.h> -#include <Interface/StreamableData.h> - - -namespace LOFAR { -namespace RTCP { - -template <typename SAMPLE_TYPE> class TransposedData: public SampleData<SAMPLE_TYPE,3,1> -{ - public: - typedef SampleData<SAMPLE_TYPE,3,1> SuperType; - - TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator); -}; - - -template <typename SAMPLE_TYPE> inline TransposedData<SAMPLE_TYPE>::TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator) -: - SuperType(boost::extents[nrStations][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator) -{ -} - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/include/Interface/TriggerData.h b/RTCP/Interface/include/Interface/TriggerData.h deleted file mode 100644 index 246e34301ce89d8991dd6c8d331db7a927910d03..0000000000000000000000000000000000000000 --- a/RTCP/Interface/include/Interface/TriggerData.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef LOFAR_INTERFACE_TRIGGER_DATA_H -#define LOFAR_INTERFACE_TRIGGER_DATA_H - -#include <Stream/Stream.h> -#include <Interface/StreamableData.h> - - -namespace LOFAR { -namespace RTCP { - - -class TriggerData: public StreamableData -{ - public: - TriggerData() : trigger(false) {} - - bool trigger; - - protected: - virtual void readData(Stream *str) { str->read(&trigger, sizeof trigger); } - virtual void writeData(Stream *str) { str->write(&trigger, sizeof trigger); } -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Interface/package.dox b/RTCP/Interface/package.dox deleted file mode 100644 index 16b5b602f0fa8f6b23b83d59e2ee5fd4a316e003..0000000000000000000000000000000000000000 --- a/RTCP/Interface/package.dox +++ /dev/null @@ -1,8 +0,0 @@ -/** - -\ingroup RTCP -\defgroup Interface Interface - -The RTCP Interface package contains classes and interface definitions used by the different RTCP packages. - -*/ diff --git a/RTCP/Interface/src/Allocator.cc b/RTCP/Interface/src/Allocator.cc deleted file mode 100644 index 9c38ab665e20858b7ac77358ed1c05166a8af389..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/Allocator.cc +++ /dev/null @@ -1,138 +0,0 @@ -#include <lofar_config.h> - -#include <Interface/Align.h> -#include <Interface/Allocator.h> -#include <Interface/Exceptions.h> -#include <Common/NewHandler.h> -#include <Common/LofarLogger.h> - -#include <malloc.h> - - -namespace LOFAR { -namespace RTCP { - - -MallocedArena::MallocedArena(size_t size, size_t alignment) -{ - itsBegin = heapAllocator.allocate(size, alignment); - itsSize = size; -} - - -MallocedArena::~MallocedArena() -{ - heapAllocator.deallocate(itsBegin); -} - - -FixedArena::FixedArena(void *begin, size_t size) -{ - itsBegin = begin; - itsSize = size; -} - - -Allocator::~Allocator() -{ -} - - -HeapAllocator::~HeapAllocator() -{ -} - - -void *HeapAllocator::allocate(size_t size, size_t alignment) -{ - void *ptr; - - if (alignment == 1) { - // no alignment requirements, so divert to malloc - ptr = malloc(size); - - if (!ptr) - THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes"); - } else { - ASSERT(alignment != 0); - -#if _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 - // required by posix_memalign - ASSERT(alignment % sizeof(void*) == 0); - - if (posix_memalign(&ptr, alignment, size) != 0) - THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes"); -#else - // required by memalign - ASSERT(powerOfTwo(alignment)); - - if ((ptr = memalign(alignment, size)) == 0) - THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes"); -#endif - } - - return ptr; -} - - -void HeapAllocator::deallocate(void *ptr) -{ - free(ptr); -} - - -HeapAllocator heapAllocator; - - -SparseSetAllocator::SparseSetAllocator(const Arena &arena) -{ - // mark full arena as free - freeList.include(arena.begin(), (void *) ((char *) arena.begin() + arena.size())); -} - - -void *SparseSetAllocator::allocate(size_t size, size_t alignment) -{ - ScopedLock sl(mutex); - - // look for a free range large enough - for (SparseSet<void *>::const_iterator it = freeList.getRanges().begin(); it != freeList.getRanges().end(); it ++) { - void *begin = align(it->begin, alignment); - - if ((char *) it->end - (char *) begin >= (ptrdiff_t) size) { - // enough space -- reserve it - freeList.exclude(begin, (void *) ((char *) begin + size)); - - // register pointer - sizes[begin] = size; - - return begin; - } - } - - THROW(InterfaceException,"SparseSetAllocator could not allocate " << size << " bytes"); -} - - -void SparseSetAllocator::deallocate(void *ptr) -{ - if (ptr != 0) { - ScopedLock sl(mutex); - - // look up pointer - std::map<void *, size_t>::iterator index = sizes.find(ptr); - - if (index == sizes.end()) - THROW(InterfaceException,"Pointer was not allocated"); - - // free allocated space - freeList.include(ptr, (void *) ((char *) ptr + index->second)); - - // unregister pointer - sizes.erase(index); - } -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/src/BGPAsm.S b/RTCP/Interface/src/BGPAsm.S deleted file mode 100644 index db7a73cbd830a19320174eabf1b63954fc07cdfe..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/BGPAsm.S +++ /dev/null @@ -1,762 +0,0 @@ -#if defined HAVE_BGP - -.global _add_2_single_precision_vectors -_add_2_single_precision_vectors: - - li 0,-16 - stfpdux 14,1,0 - stfpdux 15,1,0 - - srwi 6,6,4 - li 11,8 - subi 6,6,1 - mtctr 6 - - cmpwi 0,6,0 - lfpsx 0,0,4 - lfpsx 1,0,5 - lfpsux 2,4,11 - lfpsux 3,5,11 - lfpsux 4,4,11 - lfpsux 5,5,11 - lfpsux 6,4,11 - lfpsux 7,5,11 - lfpsux 8,4,11 - lfpsux 9,5,11 - lfpsux 10,4,11 - lfpsux 11,5,11 - fpadd 0,0,1 - lfpsux 12,4,11 - lfpsux 13,5,11 - fpadd 2,2,3 - lfpsux 14,4,11 - lfpsux 15,5,11 - stfpsx 0,0,3 - fpadd 4,4,5 - beq- 0,1f - -0: lfpsux 0,4,11 - lfpsux 1,5,11 - stfpsux 2,3,11 - fpadd 6,6,7 - lfpsux 2,4,11 - lfpsux 3,5,11 - stfpsux 4,3,11 - fpadd 8,8,9 - lfpsux 4,4,11 - lfpsux 5,5,11 - stfpsux 6,3,11 - fpadd 10,10,11 - lfpsux 6,4,11 - lfpsux 7,5,11 - stfpsux 8,3,11 - fpadd 12,12,13 - lfpsux 8,4,11 - lfpsux 9,5,11 - stfpsux 10,3,11 - fpadd 14,14,15 - lfpsux 10,4,11 - lfpsux 11,5,11 - stfpsux 12,3,11 - fpadd 0,0,1 - lfpsux 12,4,11 - lfpsux 13,5,11 - stfpsux 14,3,11 - fpadd 2,2,3 - lfpsux 14,4,11 - lfpsux 15,5,11 - stfpsux 0,3,11 - fpadd 4,4,5 - bdnz 0b - -1: stfpsux 2,3,11 - fpadd 6,6,7 - stfpsux 4,3,11 - fpadd 8,8,9 - stfpsux 6,3,11 - fpadd 10,10,11 - stfpsux 8,3,11 - fpadd 12,12,13 - stfpsux 10,3,11 - fpadd 14,14,15 - stfpsux 12,3,11 - stfpsux 14,3,11 - - li 0,16 # restore call-saved registers - lfpdx 15,0,1 - lfpdux 14,1,0 - addi 1,1,16 - - blr - - -.global _add_3_single_precision_vectors -_add_3_single_precision_vectors: - - li 0,-16 - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 20,1,0 - stfpdux 21,1,0 - stfpdux 22,1,0 - stfpdux 23,1,0 - - srwi 7,7,4 - li 11,8 - subi 7,7,1 - mtctr 7 - - cmpwi 0,7,0 - lfpsx 0,0,4 - lfpsx 1,0,5 - lfpsx 2,0,6 - lfpsux 3,4,11 - lfpsux 4,5,11 - lfpsux 5,6,11 - lfpsux 6,4,11 - lfpsux 7,5,11 - lfpsux 8,6,11 - lfpsux 9,4,11 - lfpsux 10,5,11 - lfpsux 11,6,11 - lfpsux 12,4,11 - lfpsux 13,5,11 - lfpsux 14,6,11 - lfpsux 15,4,11 - lfpsux 16,5,11 - fpadd 0,0,1 - lfpsux 17,6,11 - lfpsux 18,4,11 - lfpsux 19,5,11 - fpadd 3,3,4 - lfpsux 20,6,11 - fpadd 0,0,2 - lfpsux 21,4,11 - lfpsux 22,5,11 - fpadd 6,6,7 - lfpsux 23,6,11 - fpadd 3,3,5 - stfpsx 0,0,3 - beq- 0,1f - li 10,32 - -0: lfpsux 0,4,11 - lfpsux 1,5,11 - dcbt 4,10 - fpadd 9,9,10 - lfpsux 2,6,11 - fpadd 6,6,8 - stfpsux 3,3,11 - lfpsux 3,4,11 - lfpsux 4,5,11 - fpadd 12,12,13 - lfpsux 5,6,11 - fpadd 9,9,11 - stfpsux 6,3,11 - lfpsux 6,4,11 - lfpsux 7,5,11 - fpadd 15,15,16 - lfpsux 8,6,11 - fpadd 12,12,14 - stfpsux 9,3,11 - lfpsux 9,4,11 - lfpsux 10,5,11 - fpadd 18,18,19 - lfpsux 11,6,11 - fpadd 15,15,17 - stfpsux 12,3,11 - lfpsux 12,4,11 - lfpsux 13,5,11 - fpadd 21,21,22 - lfpsux 14,6,11 - fpadd 18,18,20 - stfpsux 15,3,11 - lfpsux 15,4,11 - lfpsux 16,5,11 - fpadd 0,0,1 - lfpsux 17,6,11 - fpadd 21,21,23 - stfpsux 18,3,11 - lfpsux 18,4,11 - lfpsux 19,5,11 - fpadd 3,3,4 - lfpsux 20,6,11 - fpadd 0,0,2 - stfpsux 21,3,11 - lfpsux 21,4,11 - lfpsux 22,5,11 - fpadd 6,6,7 - lfpsux 23,6,11 - fpadd 3,3,5 - stfpsux 0,3,11 - bdnz 0b - -1: fpadd 9,9,10 - fpadd 6,6,8 - stfpsux 3,3,11 - fpadd 12,12,13 - fpadd 9,9,11 - stfpsux 6,3,11 - fpadd 15,15,16 - fpadd 12,12,14 - stfpsux 9,3,11 - fpadd 18,18,19 - fpadd 15,15,17 - stfpsux 12,3,11 - fpadd 21,21,22 - fpadd 18,18,20 - stfpsux 15,3,11 - fpadd 21,21,23 - stfpsux 18,3,11 - stfpsux 21,3,11 - - li 0,16 # restore call-saved registers - lfpdx 23,0,1 - lfpdux 22,1,0 - lfpdux 21,1,0 - lfpdux 20,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - addi 1,1,16 - - blr - - -.global _add_4_single_precision_vectors -_add_4_single_precision_vectors: - - li 0,-16 - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 20,1,0 - stfpdux 21,1,0 - stfpdux 22,1,0 - stfpdux 23,1,0 - stfpdux 24,1,0 - stfpdux 25,1,0 - stfpdux 26,1,0 - stfpdux 27,1,0 - stfpdux 28,1,0 - stfpdux 29,1,0 - stfpdux 30,1,0 - stfpdux 31,1,0 - - srwi 8,8,4 - li 11,8 - subi 8,8,1 - mtctr 8 - - cmpwi 0,8,0 - lfpsx 0,0,4 - lfpsx 1,0,5 - lfpsx 2,0,6 - lfpsx 3,0,7 - lfpsux 4,4,11 - lfpsux 5,5,11 - lfpsux 6,6,11 - lfpsux 7,7,11 - lfpsux 8,4,11 - lfpsux 9,5,11 - lfpsux 10,6,11 - lfpsux 11,7,11 - lfpsux 12,4,11 - lfpsux 13,5,11 - lfpsux 14,6,11 - lfpsux 15,7,11 - lfpsux 16,4,11 - lfpsux 17,5,11 - lfpsux 18,6,11 - lfpsux 19,7,11 - lfpsux 20,4,11 - lfpsux 21,5,11 - fpadd 0,0,1 - fpadd 2,2,3 - lfpsux 22,6,11 - lfpsux 23,7,11 - lfpsux 24,4,11 - lfpsux 25,5,11 - fpadd 4,4,5 - fpadd 6,6,7 - lfpsux 26,6,11 - lfpsux 27,7,11 - fpadd 0,0,2 - lfpsux 28,4,11 - lfpsux 29,5,11 - fpadd 8,8,9 - fpadd 10,10,11 - lfpsux 30,6,11 - lfpsux 31,7,11 - - stfpsx 0,0,3 - fpadd 4,4,6 - beq- 0,1f - -0: lfpsux 0,4,11 - lfpsux 1,5,11 - fpadd 12,12,13 - fpadd 14,14,15 - lfpsux 2,6,11 - lfpsux 3,7,11 - - stfpsux 4,3,11 - fpadd 8,8,10 - - lfpsux 4,4,11 - lfpsux 5,5,11 - fpadd 16,16,17 - fpadd 18,18,19 - lfpsux 6,6,11 - lfpsux 7,7,11 - - stfpsux 8,3,11 - fpadd 12,12,14 - - lfpsux 8,4,11 - lfpsux 9,5,11 - fpadd 20,20,21 - fpadd 22,22,23 - lfpsux 10,6,11 - lfpsux 11,7,11 - - stfpsux 12,3,11 - fpadd 16,16,18 - - lfpsux 12,4,11 - lfpsux 13,5,11 - fpadd 24,24,25 - fpadd 26,26,27 - lfpsux 14,6,11 - lfpsux 15,7,11 - - stfpsux 16,3,11 - fpadd 20,20,22 - - lfpsux 16,4,11 - lfpsux 17,5,11 - fpadd 28,28,29 - fpadd 30,30,31 - lfpsux 18,6,11 - lfpsux 19,7,11 - - stfpsux 20,3,11 - fpadd 24,24,26 - - lfpsux 20,4,11 - lfpsux 21,5,11 - fpadd 0,0,1 - fpadd 2,2,3 - lfpsux 22,6,11 - lfpsux 23,7,11 - - stfpsux 24,3,11 - fpadd 28,28,30 - - lfpsux 24,4,11 - lfpsux 25,5,11 - fpadd 4,4,5 - fpadd 6,6,7 - lfpsux 26,6,11 - lfpsux 27,7,11 - - stfpsux 28,3,11 - fpadd 0,0,2 - - lfpsux 28,4,11 - lfpsux 29,5,11 - fpadd 8,8,9 - fpadd 10,10,11 - lfpsux 30,6,11 - lfpsux 31,7,11 - - stfpsux 0,3,11 - fpadd 4,4,6 - - bdnz 0b - -1: fpadd 12,12,13 - fpadd 14,14,15 - - stfpsux 4,3,11 - fpadd 8,8,10 - - fpadd 16,16,17 - fpadd 18,18,19 - - stfpsux 8,3,11 - fpadd 12,12,14 - - fpadd 20,20,21 - fpadd 22,22,23 - - stfpsux 12,3,11 - fpadd 16,16,18 - - fpadd 24,24,25 - fpadd 26,26,27 - - stfpsux 16,3,11 - fpadd 20,20,22 - - lfpsux 16,4,11 - lfpsux 17,5,11 - fpadd 28,28,29 - fpadd 30,30,31 - stfpsux 20,3,11 - fpadd 24,24,26 - stfpsux 24,3,11 - fpadd 28,28,30 - stfpsux 28,3,11 - - li 0,16 # restore call-saved registers - lfpdx 31,0,1 - lfpdux 30,1,0 - lfpdux 29,1,0 - lfpdux 28,1,0 - lfpdux 27,1,0 - lfpdux 26,1,0 - lfpdux 25,1,0 - lfpdux 24,1,0 - lfpdux 23,1,0 - lfpdux 22,1,0 - lfpdux 21,1,0 - lfpdux 20,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - addi 1,1,16 - - blr - - -.global _add_5_single_precision_vectors -_add_5_single_precision_vectors: - - li 0,-16 - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 24,1,0 - stfpdux 25,1,0 - stfpdux 26,1,0 - stfpdux 27,1,0 - stfpdux 28,1,0 - stfpdux 29,1,0 - - srwi 9,9,3 - li 11,8 - subi 9,9,1 - mtctr 9 - subi 3,3,8 - - cmpwi 0,9,0 - - lfpsx 0,0,4 - lfpsx 1,0,5 - lfpsx 2,0,6 - lfpsx 3,0,7 - lfpsx 4,0,8 - - lfpsux 5,4,11 - lfpsux 6,5,11 - lfpsux 7,6,11 - lfpsux 8,7,11 - lfpsux 9,8,11 - - lfpsux 10,4,11 - lfpsux 11,5,11 - lfpsux 12,6,11 - lfpsux 13,7,11 - lfpsux 14,8,11 - fpadd 24,0,1 - fpadd 25,2,3 - - lfpsux 15,4,11 - lfpsux 16,5,11 - lfpsux 17,6,11 - fpadd 24,24,25 - lfpsux 18,7,11 - lfpsux 19,8,11 - fpadd 27,5,6 - fpadd 28,7,8 - - beq- 0,1f - li 10,48 - -0: - dcbt 4,10 - lfpsux 0,4,11 - fpadd 24,24,4 - lfpsux 1,5,11 - lfpsux 2,6,11 - fpadd 27,27,28 - lfpsux 3,7,11 - lfpsux 4,8,11 - stfpsux 24,3,11 - fpadd 24,10,11 - dcbt 5,10 - fpadd 25,12,13 - - lfpsux 5,4,11 - fpadd 27,27,9 - lfpsux 6,5,11 - lfpsux 7,6,11 - fpadd 24,24,25 - lfpsux 8,7,11 - lfpsux 9,8,11 - stfpsux 27,3,11 - fpadd 27,15,16 - dcbt 6,10 - fpadd 28,17,18 - - lfpsux 10,4,11 - fpadd 24,24,14 - lfpsux 11,5,11 - lfpsux 12,6,11 - fpadd 27,27,28 - lfpsux 13,7,11 - lfpsux 14,8,11 - stfpsux 24,3,11 - fpadd 24,0,1 - dcbt 7,10 - fpadd 25,2,3 - - lfpsux 15,4,11 - fpadd 27,27,19 - lfpsux 16,5,11 - lfpsux 17,6,11 - fpadd 24,24,25 - dcbt 8,10 - lfpsux 18,7,11 - lfpsux 19,8,11 - stfpsux 27,3,11 - fpadd 27,5,6 - fpadd 28,7,8 - - bdnz 0b - -1: - fpadd 24,24,4 - fpadd 27,27,28 - stfpsux 24,3,11 - fpadd 24,10,11 - fpadd 25,12,13 - - fpadd 27,27,9 - fpadd 24,24,25 - stfpsux 27,3,11 - fpadd 27,15,16 - fpadd 28,17,18 - - fpadd 24,24,14 - fpadd 27,27,28 - stfpsux 24,3,11 - - fpadd 27,27,19 - stfpsux 27,3,11 - - li 0,16 # restore call-saved registers - lfpdx 29,0,1 - lfpdux 28,1,0 - lfpdux 27,1,0 - lfpdux 26,1,0 - lfpdux 25,1,0 - lfpdux 24,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - addi 1,1,16 - blr - - -.global _add_6_single_precision_vectors -_add_6_single_precision_vectors: - - li 0,-16 - stfpdux 14,1,0 - stfpdux 15,1,0 - stfpdux 16,1,0 - stfpdux 17,1,0 - stfpdux 18,1,0 - stfpdux 19,1,0 - stfpdux 20,1,0 - stfpdux 21,1,0 - stfpdux 22,1,0 - stfpdux 23,1,0 - stfpdux 24,1,0 - stfpdux 25,1,0 - stfpdux 26,1,0 - stfpdux 27,1,0 - stfpdux 28,1,0 - stfpdux 29,1,0 - - srwi 10,10,3 - li 11,8 - subi 10,10,1 - mtctr 10 - subi 3,3,8 - - cmpwi 0,10,0 - - lfpsx 0,0,4 - lfpsx 1,0,5 - lfpsx 2,0,6 - lfpsx 3,0,7 - lfpsx 4,0,8 - lfpsx 5,0,9 - - lfpsux 6,4,11 - lfpsux 7,5,11 - lfpsux 8,6,11 - lfpsux 9,7,11 - lfpsux 10,8,11 - lfpsux 11,9,11 - - lfpsux 12,4,11 - lfpsux 13,5,11 - lfpsux 14,6,11 - lfpsux 15,7,11 - lfpsux 16,8,11 - lfpsux 17,9,11 - fpadd 24,0,1 - fpadd 25,2,3 - - lfpsux 18,4,11 - lfpsux 19,5,11 - lfpsux 20,6,11 - fpadd 26,4,5 - fpadd 24,24,25 - lfpsux 21,7,11 - lfpsux 22,8,11 - lfpsux 23,9,11 - fpadd 27,6,7 - fpadd 28,8,9 - - beq- 0,1f - li 10,48 - -0: - dcbt 4,10 - lfpsux 0,4,11 - fpadd 24,24,26 - lfpsux 1,5,11 - lfpsux 2,6,11 - fpadd 29,10,11 - fpadd 27,27,28 - lfpsux 3,7,11 - lfpsux 4,8,11 - lfpsux 5,9,11 - dcbt 5,10 - stfpsux 24,3,11 - fpadd 24,12,13 - fpadd 25,14,15 - - lfpsux 6,4,11 - fpadd 27,27,29 - lfpsux 7,5,11 - lfpsux 8,6,11 - dcbt 6,10 - fpadd 26,16,17 - fpadd 24,24,25 - lfpsux 9,7,11 - lfpsux 10,8,11 - lfpsux 11,9,11 - stfpsux 27,3,11 - fpadd 27,18,19 - fpadd 28,20,21 - - dcbt 7,10 - lfpsux 12,4,11 - fpadd 24,24,26 - lfpsux 13,5,11 - lfpsux 14,6,11 - fpadd 29,22,23 - fpadd 27,27,28 - lfpsux 15,7,11 - lfpsux 16,8,11 - lfpsux 17,9,11 - dcbt 8,10 - stfpsux 24,3,11 - fpadd 24,0,1 - fpadd 25,2,3 - - lfpsux 18,4,11 - fpadd 27,27,29 - lfpsux 19,5,11 - lfpsux 20,6,11 - dcbt 9,10 - fpadd 26,4,5 - fpadd 24,24,25 - lfpsux 21,7,11 - lfpsux 22,8,11 - lfpsux 23,9,11 - stfpsux 27,3,11 - fpadd 27,6,7 - fpadd 28,8,9 - - bdnz 0b - -1: - fpadd 24,24,26 - fpadd 29,10,11 - fpadd 27,27,28 - stfpsux 24,3,11 - fpadd 24,12,13 - fpadd 25,14,15 - - fpadd 27,27,29 - fpadd 26,16,17 - fpadd 24,24,25 - stfpsux 27,3,11 - fpadd 27,18,19 - fpadd 28,20,21 - - fpadd 24,24,26 - fpadd 29,22,23 - fpadd 27,27,28 - stfpsux 24,3,11 - - fpadd 27,27,29 - stfpsux 27,3,11 - - li 0,16 # restore call-saved registers - lfpdx 29,0,1 - lfpdux 28,1,0 - lfpdux 27,1,0 - lfpdux 26,1,0 - lfpdux 25,1,0 - lfpdux 24,1,0 - lfpdux 23,1,0 - lfpdux 22,1,0 - lfpdux 21,1,0 - lfpdux 20,1,0 - lfpdux 19,1,0 - lfpdux 18,1,0 - lfpdux 17,1,0 - lfpdux 16,1,0 - lfpdux 15,1,0 - lfpdux 14,1,0 - addi 1,1,16 - blr - -#endif diff --git a/RTCP/Interface/src/BeamCoordinates.cc b/RTCP/Interface/src/BeamCoordinates.cc deleted file mode 100644 index 480485e899b9a2bf2713e8509d1f589557779e0e..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/BeamCoordinates.cc +++ /dev/null @@ -1,102 +0,0 @@ -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Interface/BeamCoordinates.h> -#include <Common/DataConvert.h> - -#ifndef M_SQRT3 - #define M_SQRT3 1.73205080756887719000 -#endif - -namespace LOFAR { -namespace RTCP { - -void BeamCoord3D::read(Stream *s) -{ - s->read(&itsXYZ, sizeof itsXYZ); - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, static_cast<double*>(itsXYZ), sizeof itsXYZ); -#endif -} - -void BeamCoord3D::write(Stream *s) const -{ -#if !defined WORDS_BIGENDIAN - // create a copy to avoid modifying our own values - double coordinates[sizeof itsXYZ]; - - for (unsigned i = 0; i < sizeof itsXYZ; i ++) - coordinates[i] = itsXYZ[i]; - - dataConvert(LittleEndian, static_cast<double*>(coordinates), sizeof coordinates); - s->write(&coordinates, sizeof coordinates); -#else - s->write(&itsXYZ, sizeof itsXYZ); -#endif -} - -void BeamCoordinates::read(Stream *s) -{ - unsigned numCoordinates; - - s->read(&numCoordinates, sizeof numCoordinates); - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &numCoordinates, 1); -#endif - - itsCoordinates.clear(); - - - for (unsigned i = 0; i < numCoordinates; i ++) { - BeamCoord3D coord(0, 0, 0); - - coord.read(s); - - *this += coord; - } -} - -void BeamCoordinates::write(Stream *s) const -{ - unsigned numCoordinates = itsCoordinates.size(); - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &numCoordinates, 1); -#endif - - s->write(&numCoordinates, sizeof numCoordinates); - - for (unsigned i = 0; i < numCoordinates; i ++) - itsCoordinates[i].write(s); -} - -BeamCoordinates& BeamCoordinates::operator+= (const BeamCoordinates &rhs) -{ - itsCoordinates.reserve(itsCoordinates.size() + rhs.size()); - - for (unsigned i = 0; i < rhs.size(); i ++) - itsCoordinates.push_back(rhs.itsCoordinates[i]); - - return *this; -} - -BeamCoordinates& BeamCoordinates::operator+= (const BeamCoord3D &rhs) -{ - itsCoordinates.push_back(rhs); - - return *this; -} - -BeamCoordinates::BeamCoordinates(const Matrix<double> &coordinates) -{ - itsCoordinates.reserve(coordinates.size()); - - for (unsigned i = 0; i < coordinates.size(); i ++) - itsCoordinates.push_back(BeamCoord3D(coordinates[i][0], coordinates[i][1])); -} - - -} -} diff --git a/RTCP/Interface/src/CMakeLists.txt b/RTCP/Interface/src/CMakeLists.txt deleted file mode 100644 index 80c47ec36d535f6bef5ea3d6995d85c30916afa7..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -set(interface_LIB_SRCS - Package__Version.cc - Allocator.cc - BeamCoordinates.cc - CN_Mapping.cc - DataFactory.cc - FinalMetaData.cc - Stream.cc - Parset.cc - RSPTimeStamp.cc) - -# Maybe we shoud use LOFAR_COMPILER_SUITE, because ASM-BGP_COMPILER_WORKS -# is not reliable: i.e. -#if(LOFAR_COMPILER_SUITE STREQUAL BGPCN) -if(CMAKE_ASM-BGP_COMPILER_WORKS) - list(APPEND interface_LIB_SRCS - BGPAsm.S) -endif(CMAKE_ASM-BGP_COMPILER_WORKS) -#endif(LOFAR_COMPILER_SUITE STREQUAL BGPCN) - -lofar_add_library(interface ${interface_LIB_SRCS}) - -lofar_add_bin_program(versioninterface versioninterface.cc) - diff --git a/RTCP/Interface/src/CN_Mapping.cc b/RTCP/Interface/src/CN_Mapping.cc deleted file mode 100644 index b1f4f104d617cff4adc28ed10ea40160cf47e432..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/CN_Mapping.cc +++ /dev/null @@ -1,58 +0,0 @@ -//# CN_Mapping.cc: map work to cores on BG/L psets -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> - -#include <Interface/CN_Mapping.h> - -namespace LOFAR { -namespace RTCP { - -unsigned CN_Mapping::mapCoreOnPset(unsigned core, unsigned pset) -{ -#if defined HAVE_BGP - //return core ^ ((pset & 0x1) << 2) ^ ((pset & 0x02) >> 1) ^ ((pset & 0x04) >> 1) ^ ((pset & 0x08)) ^ ((pset & 0x10) >> 1) ^ ((pset & 0x20) >> 3); - - // TODO: there may be better mappings for partitions larger than one rack - static unsigned char mapX[] = { 0, 12 }; - static unsigned char mapY[] = { 0, 2, 10, 8 }; - static unsigned char mapZ[] = { 0, 1, 3, 2, 6, 7, 5, 4 }; - - return core ^ - mapX[((pset & 0x08) >> 3)] ^ - mapY[((pset & 0x01) >> 0) | ((pset & 0x10) >> 3)] ^ - mapZ[((pset & 0x03) >> 1) | ((pset & 0x20) >> 3)]; - -#else - (void)pset; - - return core; -#endif -} - -unsigned CN_Mapping::reverseMapCoreOnPset(unsigned core, unsigned pset) -{ - // just the same function - return mapCoreOnPset(core, pset); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/src/DataFactory.cc b/RTCP/Interface/src/DataFactory.cc deleted file mode 100644 index 96503a7d43f51ec628dc2611261002a4bd030ba2..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/DataFactory.cc +++ /dev/null @@ -1,61 +0,0 @@ -//# Stream.cc: one line descriptor -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: Stream.cc 16396 2010-09-27 12:12:24Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Interface/BeamFormedData.h> -#include <Interface/CorrelatedData.h> -#include <Interface/DataFactory.h> -#include <Interface/FilteredData.h> -#include <Interface/TriggerData.h> - - -namespace LOFAR { -namespace RTCP { - - -StreamableData *newStreamableData(const Parset &parset, OutputType outputType, int streamNr, Allocator &allocator) -{ - switch (outputType) { - case CORRELATED_DATA : return new CorrelatedData(parset.nrMergedStations(), parset.nrChannelsPerSubband(), parset.integrationSteps(), allocator); - - case BEAM_FORMED_DATA : { - const Transpose2 &beamFormLogic = parset.transposeLogic(); - - unsigned nrSubbands = streamNr == -1 ? beamFormLogic.maxNrSubbands() : beamFormLogic.streamInfo[streamNr].subbands.size(); - unsigned nrChannels = streamNr == -1 ? beamFormLogic.maxNrChannels() : beamFormLogic.streamInfo[streamNr].nrChannels; - unsigned nrSamples = streamNr == -1 ? beamFormLogic.maxNrSamples() : beamFormLogic.streamInfo[streamNr].nrSamples; - - return new FinalBeamFormedData(nrSamples, nrSubbands, nrChannels, allocator); - } - - case TRIGGER_DATA : return new TriggerData; - - default : THROW(InterfaceException, "unsupported output type"); - } - -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/src/FinalMetaData.cc b/RTCP/Interface/src/FinalMetaData.cc deleted file mode 100644 index c9773ddb91866a2a84b72c091a1347f64843e004..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/FinalMetaData.cc +++ /dev/null @@ -1,177 +0,0 @@ -//# FinalMetaData.cc: -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Interface/FinalMetaData.h> -#include <Common/LofarTypes.h> -#include <Common/DataConvert.h> - -namespace LOFAR { -namespace RTCP { - -// TODO: Export these functions to be globally available - -template<typename T> class StreamWriter { - public: - static void write( Stream &s, const T &data ); - static void read( Stream &s, T &data ); -}; - -template<typename T> class StreamWriter< std::vector<T> > { - public: - static void write( Stream &s, const std::vector<T> &data ); - static void read( Stream &s, std::vector<T> &data ); -}; - -template<> void StreamWriter<size_t>::write( Stream &s, const size_t &data ) -{ - uint64 raw = data; - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &raw, 1); -#endif - - s.write(&raw, sizeof raw); -} - -template<> void StreamWriter<size_t>::read( Stream &s, size_t &data ) -{ - uint64 raw_nr; - - s.read(&raw_nr, sizeof raw_nr); - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &raw_nr, 1); -#endif - - data = raw_nr; -} - -template<> void StreamWriter<std::string>::write( Stream &s, const std::string &data ) -{ - size_t len = data.size(); - - StreamWriter<size_t>::write(s, len); - - if (len > 0) - s.write(data.data(), len); -} - -template<> void StreamWriter<std::string>::read( Stream &s, std::string &data ) -{ - size_t len; - - StreamWriter<size_t>::read(s, len); - - std::vector<char> buffer(len); - s.read(&buffer[0], len); - - data.assign(&buffer[0], len); -} - -template<typename T> void StreamWriter< std::vector<T> >::write( Stream &s, const std::vector<T> &data ) -{ - size_t len = data.size(); - - StreamWriter<size_t>::write(s, len); - - for (size_t i = 0; i < len; ++i) - StreamWriter<T>::write(s, data[i]); -} - -template<typename T> void StreamWriter< std::vector<T> >::read( Stream &s, std::vector<T> &data ) -{ - size_t len; - - StreamWriter<size_t>::read(s, len); - - data.resize(len); - - for (size_t i = 0; i < len; ++i) - StreamWriter<T>::read(s, data[i]); -} - -template<> void StreamWriter<struct FinalMetaData::BrokenRCU>::write( Stream &s, const struct FinalMetaData::BrokenRCU &data ) -{ - StreamWriter<std::string>::write(s, data.station); - StreamWriter<std::string>::write(s, data.type); - StreamWriter<size_t> ::write(s, data.seqnr); - StreamWriter<std::string>::write(s, data.time); -} - -template<> void StreamWriter<struct FinalMetaData::BrokenRCU>::read( Stream &s, struct FinalMetaData::BrokenRCU &data ) -{ - StreamWriter<std::string>::read(s, data.station); - StreamWriter<std::string>::read(s, data.type); - StreamWriter<size_t> ::read(s, data.seqnr); - StreamWriter<std::string>::read(s, data.time); -} - -void FinalMetaData::write(Stream &s) -{ - StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsAtBegin); - StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsDuring); -} - -void FinalMetaData::read(Stream &s) -{ - StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsAtBegin); - StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsDuring); -} - -std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu) -{ - os << "(" << rcu.station << " " << rcu.type << " " << rcu.seqnr << " " << rcu.time << ")"; - - return os; -} - -std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData) -{ - os << "Broken RCUs at begin of obs: "; - - for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) { - const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i]; - - if (i > 0) - os << ", "; - - os << rcu; - } - - os << " Broken RCUs during obs: "; - - for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) { - const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i]; - - if (i > 0) - os << ", "; - - os << rcu; - } - - return os; -} - -} -} diff --git a/RTCP/Interface/src/Parset.cc b/RTCP/Interface/src/Parset.cc deleted file mode 100644 index b71833e96bad693e905756c4496615bd6b8f73bb..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/Parset.cc +++ /dev/null @@ -1,1606 +0,0 @@ -//# Parset.cc: one line description -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Common/DataConvert.h> -#include <Common/LofarBitModeInfo.h> -#include <ApplCommon/PosixTime.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/Exceptions.h> -#include <Interface/PrintVector.h> -#include <Interface/SetOperations.h> - -#include <boost/algorithm/string/classification.hpp> -#include <boost/format.hpp> -#include <boost/date_time/posix_time/posix_time.hpp> -#include <boost/lexical_cast.hpp> -#include <boost/algorithm/string/split.hpp> -#include <boost/algorithm/string.hpp> - -#include <cstdio> -#include <set> - - -namespace LOFAR { -namespace RTCP { - - -static StokesType stokesType( const std::string &name ) { - if (name == "I") - return STOKES_I; - - if (name == "IQUV") - return STOKES_IQUV; - - if (name == "XXYY") - return STOKES_XXYY; - - return INVALID_STOKES; -}; - - -Parset::Parset() -{ -} - - -Parset::Parset(const string &name) -: - ParameterSet(name.c_str()), - itsName(name) -{ - // we check the parset once we can communicate any errors - //check(); -} - - -Parset::Parset(Stream *stream) -{ - uint64 size; - stream->read(&size, sizeof size); - -#if !defined WORDS_BIGENDIAN - dataConvert(LittleEndian, &size, 1); -#endif - - std::vector<char> tmp(size + 1); - stream->read(&tmp[0], size); - tmp[size] = '\0'; - - std::string buffer(&tmp[0], size); - adoptBuffer(buffer); -} - - -void Parset::write(Stream *stream) const -{ - // stream == NULL fills the cache, - // causing subsequent write()s to use it - bool readCache = !itsWriteCache.empty(); - bool writeCache = !stream; - - std::string newbuffer; - std::string &buffer = readCache || writeCache ? itsWriteCache : newbuffer; - - if (buffer.empty()) - writeBuffer(buffer); - - if (!stream) { - // we only filled the cache - return; - } - - uint64 size = buffer.size(); - -#if !defined WORDS_BIGENDIAN - uint64 size_be = size; - dataConvert(BigEndian, &size_be, 1); - stream->write(&size_be, sizeof size_be); -#else - stream->write(&size, sizeof size); -#endif - - stream->write(buffer.data(), size); -} - - -void Parset::checkVectorLength(const std::string &key, unsigned expectedSize) const -{ - unsigned actualSize = getStringVector(key, true).size(); - - if (actualSize != expectedSize) - THROW(InterfaceException, "Key \"" << string(key) << "\" contains wrong number of entries (expected: " << expectedSize << ", actual: " << actualSize << ')'); -} - - -#if 0 -void Parset::checkPsetAndCoreConfiguration() const -{ - std::vector<unsigned> phaseOnePsets = phaseOnePsets(); - std::vector<unsigned> phaseTwoPsets = phaseTwoPsets(); - std::vector<unsigned> phaseThreePsets = phaseThreePsets(); - std::vector<unsigned> phaseOneTwoCores = phaseOneTwoCores(); - std::vector<unsigned> phaseThreeCores = phaseThreeCores(); - - if (phaseOnePsets.size() == 0 || -} -#endif - - -void Parset::checkInputConsistency() const -{ - using std::set; - - map<string, set<unsigned> > allRSPboards; - vector<unsigned> inputs = phaseOnePsets(); - - for (vector<unsigned>::const_iterator pset = inputs.begin(); pset != inputs.end(); pset ++) { - vector<StationRSPpair> stationRSPpairs = getStationNamesAndRSPboardNumbers(*pset); - - for (vector<StationRSPpair>::const_iterator pair = stationRSPpairs.begin(); pair != stationRSPpairs.end(); pair ++) { - const string &station = pair->station; - unsigned rsp = pair->rsp; - - map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.find(station); - - if (stationRSPs != allRSPboards.end() && stationRSPs->second.find(rsp) != stationRSPs->second.end()) - THROW(InterfaceException, station << "/RSP" << rsp << " multiple times defined in \"PIC.Core.IONProc.*.inputs\""); - - allRSPboards[station].insert(rsp); - } - } - - for (map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.begin(); stationRSPs != allRSPboards.end(); stationRSPs ++) { - const string &station = stationRSPs->first; - const set<unsigned> &rsps = stationRSPs->second; - - vector<unsigned> rspsOfStation = subbandToRSPboardMapping(station); - vector<unsigned> slotsOfStation = subbandToRSPslotMapping(station); - - if (rspsOfStation.size() != nrSubbands()) - THROW(InterfaceException, string("the size of \"Observation.Dataslots.") + station + ".RSPBoardList\" does not equal the number of subbands"); - - if (slotsOfStation.size() != nrSubbands()) - THROW(InterfaceException, string("the size of \"Observation.Dataslots.") + station + ".DataslotList\" does not equal the number of subbands"); - - for (int subband = nrSubbands(); -- subband >= 0;) { - if (rsps.find(rspsOfStation[subband]) == rsps.end()) - THROW(InterfaceException, "\"Observation.Dataslots." << station << ".RSPBoardList\" mentions RSP board " << rspsOfStation[subband] << ", which does not exist"); - - if (slotsOfStation[subband] >= nrSlotsInFrame()) - THROW(InterfaceException, "\"Observation.Dataslots." << station << ".DataslotList\" mentions RSP slot " << slotsOfStation[subband] << ", which is more than the number of slots in a frame"); - } - } -} - -void Parset::check() const -{ - //checkPsetAndCoreConfiguration(); - checkInputConsistency(); - checkVectorLength("Observation.beamList", nrSubbands()); - - for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++) - if (outputThisType(outputType)) { - std::string prefix = keyPrefix(outputType); - unsigned expected = nrStreams(outputType); - - checkVectorLength(prefix + ".locations", expected); - checkVectorLength(prefix + ".filenames", expected); - } - - if (CNintegrationSteps() % dedispersionFFTsize() != 0) - THROW(InterfaceException, "OLAP.CNProc.integrationSteps (" << CNintegrationSteps() << ") must be divisible by OLAP.CNProc.dedispersionFFTsize (" << dedispersionFFTsize() << ')'); - - if (outputThisType(BEAM_FORMED_DATA) || outputThisType(TRIGGER_DATA)) { - // second transpose is performed - - if (nrSubbands() > phaseTwoPsets().size() * phaseOneTwoCores().size() ) - THROW(InterfaceException, "For the second transpose to function, there need to be at least nrSubbands cores in phase 2 (requested: " << nrSubbands() << " subbands on " << (phaseTwoPsets().size() * phaseOneTwoCores().size()) << " cores)"); - } - - // check whether the beam forming parameters are valid - const Transpose2 &logic = transposeLogic(); - - for (unsigned i = 0; i < logic.nrStreams(); i++) { - const StreamInfo &info = logic.streamInfo[i]; - - if ( info.timeIntFactor == 0 ) - THROW(InterfaceException, "Temporal integration factor needs to be > 0 (it is set to 0 for " << (info.coherent ? "coherent" : "incoherent") << " beams)."); - - if ( info.coherent - && info.stokesType == STOKES_XXYY - && info.timeIntFactor != 1 ) - THROW(InterfaceException, "Cannot perform temporal integration if calculating Coherent Stokes XXYY. Integration factor needs to be 1, but is set to " << info.timeIntFactor); - } -} - - -vector<Parset::StationRSPpair> Parset::getStationNamesAndRSPboardNumbers(unsigned psetNumber) const -{ - vector<string> inputs = getStringVector(str(boost::format("PIC.Core.IONProc.%s[%u].inputs") % partitionName() % psetNumber), true); - vector<StationRSPpair> stationsAndRSPs(inputs.size()); - - for (unsigned i = 0; i < inputs.size(); i ++) { - vector<string> split = StringUtil::split(inputs[i], '/'); - - if (split.size() != 2 || split[1].substr(0, 3) != "RSP") - THROW(InterfaceException, string("expected stationname/RSPn pair in \"") << inputs[i] << '"'); - - stationsAndRSPs[i].station = split[0]; - stationsAndRSPs[i].rsp = boost::lexical_cast<unsigned>(split[1].substr(3)); - } - - return stationsAndRSPs; -} - - -bool Parset::correctClocks() const -{ - if (!isDefined("OLAP.correctClocks")) { - LOG_WARN("\"OLAP.correctClocks\" should really be defined in the parset --- assuming FALSE"); - return false; - } else { - return getBool("OLAP.correctClocks"); - } -} - - -string Parset::getInputStreamName(const string &stationName, unsigned rspBoardNumber) const -{ - return getStringVector(string("PIC.Core.Station.") + stationName + ".RSP.ports", true)[rspBoardNumber]; -} - - -std::string Parset::keyPrefix(OutputType outputType) -{ - switch (outputType) { - case CORRELATED_DATA: return "Observation.DataProducts.Output_Correlated"; - case BEAM_FORMED_DATA: return "Observation.DataProducts.Output_Beamformed"; - case TRIGGER_DATA: return "Observation.DataProducts.Output_Trigger"; - default: THROW(InterfaceException, "Unknown output type"); - } -} - - -std::string Parset::getHostName(OutputType outputType, unsigned streamNr) const -{ - return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[0]; -} - - -std::string Parset::getFileName(OutputType outputType, unsigned streamNr) const -{ - const std::string keyname = keyPrefix(outputType) + ".filenames"; - if (!isDefined(keyname)) - THROW(InterfaceException, "Could not find filename key: " << keyname); - - const std::vector<std::string> filenames = getStringVector(keyname, true); - - if (streamNr >= filenames.size()) - THROW(InterfaceException, "Filename index out of bounds for key " << keyname << ": " << streamNr << " >= " << filenames.size()); - - return filenames[streamNr]; -} - - -std::string Parset::getDirectoryName(OutputType outputType, unsigned streamNr) const -{ - return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[1]; -} - - -unsigned Parset::nrStreams(OutputType outputType, bool force) const -{ - if (!outputThisType(outputType) && !force) - return 0; - - switch (outputType) { - case CORRELATED_DATA : return nrSubbands(); - case BEAM_FORMED_DATA : // FALL THROUGH - case TRIGGER_DATA : return transposeLogic().nrStreams(); - default: THROW(InterfaceException, "Unknown output type"); - } -} - - -unsigned Parset::maxNrStreamsPerPset(OutputType outputType, bool force) const -{ - unsigned nrOutputStreams = nrStreams(outputType, force); - unsigned nrPsets; - - switch (outputType) { - case CORRELATED_DATA : nrPsets = phaseTwoPsets().size(); - break; - - case BEAM_FORMED_DATA : // FALL THROUGH - case TRIGGER_DATA : nrPsets = phaseThreePsets().size(); - break; - - default: THROW(InterfaceException, "Unknown output type"); - } - - return nrPsets == 0 ? 0 : (nrOutputStreams + nrPsets - 1) / nrPsets; -} - -size_t Parset::nrBytesPerComplexSample() const -{ - return 2 * nrBitsPerSample() / 8; -} - -unsigned Parset::nyquistZone() const -{ - std::string bandFilter = getString("Observation.bandFilter"); - - if (bandFilter == "LBA_10_70" || - bandFilter == "LBA_30_70" || - bandFilter == "LBA_10_90" || - bandFilter == "LBA_30_90" ) - return 1; - - if (bandFilter == "HBA_110_190") - return 2; - - if (bandFilter == "HBA_170_230" || - bandFilter == "HBA_210_250") - return 3; - - THROW(InterfaceException, std::string("unknown band filter \"" + bandFilter + '"')); -} - - -unsigned Parset::nrBeams() const -{ - std::vector<unsigned> sapMapping = subbandToSAPmapping(); - - if (sapMapping.empty()) - return 0; - - return *std::max_element(sapMapping.begin(), sapMapping.end()) + 1; -} - - -std::vector<double> Parset::subbandToFrequencyMapping() const -{ - unsigned subbandOffset = 512 * (nyquistZone() - 1); - - std::vector<unsigned> subbandIds = getUint32Vector("Observation.subbandList", true); - std::vector<double> subbandFreqs(subbandIds.size()); - - for (unsigned subband = 0; subband < subbandIds.size(); subband ++) - subbandFreqs[subband] = subbandBandwidth() * (subbandIds[subband] + subbandOffset); - - return subbandFreqs; -} - - -std::vector<double> Parset::centroidPos(const std::string &stations) const -{ - std::vector<double> Centroid, posList, pos; - Centroid.resize(3); - - vector<string> stationList = StringUtil::split(stations, '+'); - for (unsigned i = 0; i < stationList.size(); i++) - { - pos = getDoubleVector("PIC.Core." + stationList[i] + ".position"); - posList.insert(posList.end(), pos.begin(), pos.end()); - } - - for (unsigned i = 0; i < posList.size() / 3; i ++) - { - Centroid[0] += posList[3*i]; // x in m - Centroid[1] += posList[3*i+1]; // y in m - Centroid[2] += posList[3*i+2]; // z in m - } - - Centroid[0] /= posList.size() / 3; - Centroid[1] /= posList.size() / 3; - Centroid[2] /= posList.size() / 3; - - return Centroid; -} - - -vector<double> Parset::positions() const -{ - vector<string> stNames; - vector<double> pos, list; - unsigned nStations; - - if (nrTabStations() > 0) { - stNames = getStringVector("OLAP.tiedArrayStationNames", true); - nStations = nrTabStations(); - } else { - stNames = getStringVector("OLAP.storageStationNames", true); - nStations = nrStations(); - } - - for (uint i = 0; i < nStations; i++) { - if (stNames[i].find("+") != string::npos) - pos = centroidPos(stNames[i]); - else - pos = getDoubleVector("PIC.Core." + stNames[i] + ".position"); - - list.insert(list.end(), pos.begin(), pos.end()); - } - - return list; -} - - -std::vector<double> Parset::getRefPhaseCentre() const -{ - return getDoubleVector("Observation.referencePhaseCenter"); -} - - -std::vector<double> Parset::getPhaseCentreOf(const string &name) const -{ - return getDoubleVector(str(boost::format("PIC.Core.%s.phaseCenter") % name)); -} -/* -std::vector<double> Parset::getPhaseCorrection(const string &name, char pol) const -{ - return getDoubleVector(str(boost::format("PIC.Core.%s.%s.phaseCorrection.%c") % name % antennaSet() % pol)); -} -*/ - -string Parset::beamTarget(unsigned beam) const -{ - string key = str(boost::format("Observation.Beam[%u].target") % beam); - - return getString(key, ""); -} - -double Parset::beamDuration(unsigned beam) const -{ - string key = str(boost::format("Observation.Beam[%u].duration") % beam); - double val = getDouble(key, 0.0); - - // a sane default - if (val == 0.0) - val = stopTime() - startTime(); - - return val; -} - - -std::vector<double> Parset::getTAB(unsigned beam, unsigned pencil) const -{ - std::vector<double> TAB(2); - - TAB[0] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle1") % beam % pencil)); - TAB[1] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle2") % beam % pencil)); - - return TAB; -} - - -bool Parset::isCoherent(unsigned beam, unsigned pencil) const -{ - string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].coherent") % beam % pencil); - - return getBool(key, true); -} - - -double Parset::dispersionMeasure(unsigned beam, unsigned pencil) const -{ - if (!getBool("OLAP.coherentDedisperseChannels",true)) - return 0.0; - - string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].dispersionMeasure") % beam % pencil); - - return getDouble(key, 0.0); -} - - -std::vector<string> Parset::TABStationList(unsigned beam, unsigned pencil, bool raw) const -{ - string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].stationList") % beam % pencil); - std::vector<string> stations; - - if (isDefined(key)) - stations = getStringVector(key,true); - - if (raw) - return stations; - - // default to all stations - if (stations.empty()) - stations = mergedStationNames(); - - return stations; -} - - -std::vector<double> Parset::getBeamDirection(unsigned beam) const -{ - std::vector<double> beamDirs(2); - - beamDirs[0] = getDouble(str(boost::format("Observation.Beam[%u].angle1") % beam)); - beamDirs[1] = getDouble(str(boost::format("Observation.Beam[%u].angle2") % beam)); - - return beamDirs; -} - - -std::string Parset::getBeamDirectionType(unsigned beam) const -{ - char buf[50]; - string beamDirType; - - snprintf(buf, sizeof buf, "Observation.Beam[%d].directionType", beam); - beamDirType = getString(buf); - - return beamDirType; -} - - -bool Parset::haveAnaBeam() const -{ - return antennaSet().substr(0,3) == "HBA"; -} - - -std::vector<double> Parset::getAnaBeamDirection() const -{ - std::vector<double> anaBeamDirections(2); - - anaBeamDirections[0] = getDouble("Observation.AnaBeam[0].angle1"); - anaBeamDirections[1] = getDouble("Observation.AnaBeam[0].angle2"); - - return anaBeamDirections; -} - - -std::string Parset::getAnaBeamDirectionType() const -{ - return getString("Observation.AnaBeam[0].directionType"); -} - - -std::vector<unsigned> Parset::usedCoresInPset() const -{ - return phaseOneTwoCores() | phaseThreeCores(); -} - - -std::vector<unsigned> Parset::usedPsets() const -{ - return phaseOnePsets() | phaseTwoPsets() | phaseThreePsets(); -} - - -bool Parset::phaseThreeDisjunct() const -{ - return (phaseOneTwoCores() & phaseThreeCores()).empty() && ((phaseOnePsets() | phaseTwoPsets()) & phaseThreePsets()).empty(); -} - - -bool Parset::disjointCores(const Parset &otherParset, std::stringstream &error) const -{ - // return false if jobs (partially) use same cores within psets - - std::vector<unsigned> overlappingPsets = usedPsets() & otherParset.usedPsets(); - std::vector<unsigned> overlappingCores = usedCoresInPset() & otherParset.usedCoresInPset(); - - if (overlappingPsets.empty() || overlappingCores.empty()) - return true; - - error << "cores " << overlappingCores << " within psets " << overlappingPsets << " overlap;"; - return false; -} - - -bool Parset::compatibleInputSection(const Parset &otherParset, std::stringstream &error) const -{ - bool overlappingStations = !(phaseOnePsets() & otherParset.phaseOnePsets()).empty(); - bool good = true; - - if (overlappingStations) { - if (nrBitsPerSample() != otherParset.nrBitsPerSample()) { - error << " uses " << nrBitsPerSample() << " instead of " << otherParset.nrBitsPerSample() << " bits;"; - good = false; - } - - if (clockSpeed() != otherParset.clockSpeed()) { - error << " uses " << clockSpeed() / 1e6 << " instead of " << otherParset.clockSpeed() / 1e6 << " MHz clock;"; - good = false; - } - - if (nrSlotsInFrame() != otherParset.nrSlotsInFrame()) { - error << " uses " << nrSlotsInFrame() << " instead of " << otherParset.nrSlotsInFrame() << " slots per frame;"; - good = false; - } - } - - return good; -} - - -bool Parset::conflictingResources(const Parset &otherParset, std::stringstream &error) const -{ - return !disjointCores(otherParset, error) | !compatibleInputSection(otherParset, error); // no McCarthy evaluation -} - - -vector<unsigned> Parset::subbandToRSPboardMapping(const string &stationName) const -{ - std::string key = std::string("Observation.Dataslots.") + stationName + ".RSPBoardList"; - - if (!isDefined(key)) { - //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspBoardList\""); - key = "Observation.rspBoardList"; - } - - if (!isDefined(key)) { - LOG_WARN_STR('"' << key << "\" not defined, falling back to default"); - - /* Map the subbands linearly onto the RSP boards */ - size_t n = nrSubbands(); - size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample()); - - vector<unsigned> rspBoards(n); - - for (size_t i = 0; i < n; i++) - rspBoards[i] = i / beamletsPerRSP; - - return rspBoards; - } - - return getUint32Vector(key, true); -} - - -vector<unsigned> Parset::subbandToRSPslotMapping(const string &stationName) const -{ - std::string key = std::string("Observation.Dataslots.") + stationName + ".DataslotList"; - - if (!isDefined(key)) { - //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspSlotList\""); - key = "Observation.rspSlotList"; - } - - if (!isDefined(key)) { - LOG_WARN_STR('"' << key << "\" not defined, falling back to default"); - - /* Map the subbands linearly onto the RSP boards */ - size_t n = nrSubbands(); - size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample()); - - vector<unsigned> rspSlots(n); - - for (size_t i = 0; i < n; i++) - rspSlots[i] = i % beamletsPerRSP; - - return rspSlots; - } - - return getUint32Vector(key, true); -} - - -int Parset::findIndex(unsigned pset, const vector<unsigned> &psets) -{ - unsigned index = std::find(psets.begin(), psets.end(), pset) - psets.begin(); - - return index != psets.size() ? static_cast<int>(index) : -1; -} - -double Parset::getTime(const char *name) const -{ - return to_time_t(boost::posix_time::time_from_string(getString(name))); -} - -unsigned Parset::nrTABs(unsigned beam) const -{ - using boost::format; - return getUint32(str(format("Observation.Beam[%u].nrTiedArrayBeams") % beam)); -} - -std::string Parset::name() const -{ - return itsName; -} - -const Transpose2 &Parset::transposeLogic() const -{ - if (!itsTransposeLogic) - itsTransposeLogic = new Transpose2(*this); - - return *itsTransposeLogic; -} - -const CN_Transpose2 &Parset::CN_transposeLogic( unsigned pset, unsigned core ) const -{ - if (!itsCN_TransposeLogic) - itsCN_TransposeLogic = new CN_Transpose2(*this, pset, core); - - return *itsCN_TransposeLogic; -} - - -unsigned Parset::observationID() const -{ - return getUint32("Observation.ObsID"); -} - -double Parset::startTime() const -{ - return getTime("Observation.startTime"); -} - -double Parset::stopTime() const -{ - return getTime("Observation.stopTime"); -} - -unsigned Parset::nrCorrelatedBlocks() const -{ - return static_cast<unsigned>(floor( (stopTime() - startTime()) / IONintegrationTime())); -} - -unsigned Parset::nrBeamFormedBlocks() const -{ - return static_cast<unsigned>(floor( (stopTime() - startTime()) / CNintegrationTime())); -} - -string Parset::stationName(int index) const -{ - return allStationNames()[index]; -} - -int Parset::stationIndex(const std::string &name) const -{ - std::vector<std::string> names = allStationNames(); - for (unsigned i = 0; i < names.size(); i++) - if (names[i] == name) - return i; - - return -1; -} - -std::vector<std::string> Parset::allStationNames() const -{ - return getStringVector("OLAP.storageStationNames",true); -} - -bool Parset::hasStorage() const -{ - return getString("OLAP.OLAP_Conn.IONProc_Storage_Transport") != "NULL"; -} - -string Parset::getTransportType(const string& prefix) const -{ - return getString(prefix + "_Transport"); -} - -unsigned Parset::nrStations() const -{ - return allStationNames().size(); -} - -unsigned Parset::nrTabStations() const -{ - return getStringVector("OLAP.tiedArrayStationNames",true).size(); -} - -std::vector<std::string> Parset::mergedStationNames() const -{ - std::vector<string> tabStations = getStringVector("OLAP.tiedArrayStationNames",true); - - if (tabStations.empty()) - return getStringVector("OLAP.storageStationNames",true); - else - return tabStations; -} - -unsigned Parset::nrMergedStations() const -{ - const std::vector<unsigned> list = tabList(); - - if (list.empty()) - return nrStations(); - - return *std::max_element( list.begin(), list.end() ) + 1; -} - -unsigned Parset::nrBaselines() const -{ - unsigned stations; - - if (nrTabStations() > 0) - stations = nrTabStations(); - else - stations = nrStations(); - - return stations * (stations + 1) / 2; -} - -unsigned Parset::nrCrossPolarisations() const -{ - return (getUint32("Observation.nrPolarisations", 2) * getUint32("Observation.nrPolarisations", 2)); -} - -unsigned Parset::clockSpeed() const -{ - return getUint32("Observation.sampleClock") * 1000000; -} - -double Parset::subbandBandwidth() const -{ - return 1.0 * clockSpeed() / 1024; -} - -double Parset::sampleDuration() const -{ - return 1.0 / subbandBandwidth(); -} - -unsigned Parset::dedispersionFFTsize() const -{ - return isDefined("OLAP.CNProc.dedispersionFFTsize") ? getUint32("OLAP.CNProc.dedispersionFFTsize") : CNintegrationSteps(); -} - -unsigned Parset::nrBitsPerSample() const -{ - const std::string key = "Observation.nrBitsPerSample"; - - if (isDefined(key)) { - return getUint32(key); - } else { -#ifndef HAVE_BGP_CN - LOG_WARN_STR( "Missing key " << key << ", using the depricated key OLAP.nrBitsPerSample"); -#endif - return getUint32("OLAP.nrBitsPerSample", 16); - } -} - -unsigned Parset::CNintegrationSteps() const -{ - return getUint32("OLAP.CNProc.integrationSteps"); -} - -unsigned Parset::IONintegrationSteps() const -{ - return getUint32("OLAP.IONProc.integrationSteps"); -} - -unsigned Parset::integrationSteps() const -{ - return CNintegrationSteps() * IONintegrationSteps(); -} - -unsigned Parset::coherentStokesTimeIntegrationFactor() const -{ - return getUint32("OLAP.CNProc_CoherentStokes.timeIntegrationFactor"); -} - -unsigned Parset::incoherentStokesTimeIntegrationFactor() const -{ - return getUint32("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor"); -} - -unsigned Parset::coherentStokesChannelsPerSubband() const -{ - unsigned numch = getUint32("OLAP.CNProc_CoherentStokes.channelsPerSubband"); - - if (numch == 0) - return nrChannelsPerSubband(); - else - return numch; -} - -unsigned Parset::incoherentStokesChannelsPerSubband() const -{ - unsigned numch = getUint32("OLAP.CNProc_IncoherentStokes.channelsPerSubband"); - - if (numch == 0) - return nrChannelsPerSubband(); - else - return numch; -} - -std::string Parset::coherentStokes() const -{ - return getString("OLAP.CNProc_CoherentStokes.which"); -} - -std::string Parset::incoherentStokes() const -{ - return getString("OLAP.CNProc_IncoherentStokes.which"); -} - -bool Parset::outputFilteredData() const -{ - return getBool("Observation.DataProducts.Output_FilteredData.enabled", false); -} - -bool Parset::outputCorrelatedData() const -{ - return getBool("Observation.DataProducts.Output_Correlated.enabled", false); -} - -bool Parset::outputBeamFormedData() const -{ - return getBool("Observation.DataProducts.Output_Beamformed.enabled", false); -} - -bool Parset::outputTrigger() const -{ - return getBool("Observation.DataProducts.Output_Trigger.enabled", false); -} - -bool Parset::outputThisType(OutputType outputType) const -{ - return getBool(keyPrefix(outputType) + ".enabled", false); -} - -bool Parset::onlineFlagging() const -{ - return getBool("OLAP.CNProc.onlineFlagging", false); -} - -bool Parset::onlinePreCorrelationFlagging() const -{ - return getBool("OLAP.CNProc.onlinePreCorrelationFlagging", false); -} - -bool Parset::onlinePreCorrelationNoChannelsFlagging() const -{ - return getBool("OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging", false); -} - -bool Parset::onlinePostCorrelationFlagging() const -{ - return getBool("OLAP.CNProc.onlinePostCorrelationFlagging", false); -} - - unsigned Parset::onlinePreCorrelationFlaggingIntegration() const -{ - return getUint32("OLAP.CNProc.onlinePostCorrelationFlaggingIntegration", 0); -} - - -string Parset::onlinePreCorrelationFlaggingType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePreCorrelationFlaggingType", defaultVal); -} - -string Parset::onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType", defaultVal); -} - -string Parset::onlinePostCorrelationFlaggingType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePostCorrelationFlaggingType", defaultVal); -} - -string Parset::onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType", defaultVal); -} - -bool Parset::onlinePostCorrelationFlaggingDetectBrokenStations() const -{ - return getBool("OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations", false); -} - -bool Parset::fakeInputData() const -{ - return getBool("OLAP.CNProc.fakeInputData", false); -} - -bool Parset::checkFakeInputData() const -{ - return getBool("OLAP.CNProc.checkFakeInputData", false); -} - -double Parset::CNintegrationTime() const -{ - return nrSamplesPerSubband() / subbandBandwidth(); -} - -double Parset::IONintegrationTime() const -{ - return CNintegrationTime() * IONintegrationSteps(); -} - -unsigned Parset::nrSamplesPerSubband() const -{ - return CNintegrationSteps() * nrChannelsPerSubband(); -} - -unsigned Parset::nrSamplesPerChannel() const -{ - return CNintegrationSteps(); -} - -unsigned Parset::nrHistorySamples() const -{ - return nrChannelsPerSubband() > 1 ? (nrPPFTaps() - 1) * nrChannelsPerSubband() : 0; -} - -unsigned Parset::nrSamplesToCNProc() const -{ - return nrSamplesPerSubband() + nrHistorySamples() + 32 / (NR_POLARIZATIONS * 2 * nrBitsPerSample() / 8); -} - -unsigned Parset::inputBufferSize() const -{ - return (unsigned) (getDouble("OLAP.nrSecondsOfBuffer", 2.5) * subbandBandwidth()); -} - -unsigned Parset::maxNetworkDelay() const -{ - return (unsigned) (getDouble("OLAP.maxNetworkDelay", 0.25) * subbandBandwidth()); -} - -unsigned Parset::nrSubbandsPerPset() const -{ - unsigned psets = phaseTwoPsets().size(); - unsigned subbands = nrSubbands(); - - return (psets == 0 ? 0 : subbands + psets - 1) / psets; -} - -unsigned Parset::coherentStokesNrSubbandsPerFile() const -{ - return std::min( getUint32("OLAP.CNProc_CoherentStokes.subbandsPerFile"), nrSubbands() ); -} - -unsigned Parset::incoherentStokesNrSubbandsPerFile() const -{ - return std::min( getUint32("OLAP.CNProc_IncoherentStokes.subbandsPerFile"), nrSubbands() ); -} - -unsigned Parset::nrPhase3StreamsPerPset() const -{ - return maxNrStreamsPerPset(BEAM_FORMED_DATA) + maxNrStreamsPerPset(TRIGGER_DATA); -} - -unsigned Parset::nrPPFTaps() const -{ - return getUint32("OLAP.CNProc.nrPPFTaps", 16); -} - -unsigned Parset::nrChannelsPerSubband() const -{ - return getUint32("Observation.channelsPerSubband"); -} - -std::vector<unsigned> Parset::phaseOneTwoCores() const -{ - return getUint32Vector("OLAP.CNProc.phaseOneTwoCores", true); -} - -std::vector<unsigned> Parset::phaseThreeCores() const -{ - return getUint32Vector("OLAP.CNProc.phaseThreeCores",true); -} - -unsigned Parset::nrCoresPerPset() const -{ - return usedCoresInPset().size(); -} - -vector<unsigned> Parset::subbandList() const -{ - return getUint32Vector("Observation.subbandList",true); -} - -unsigned Parset::nrSubbands() const -{ - return getUint32Vector("Observation.subbandList",true).size(); -} - -unsigned Parset::nrSubbandsPerSAP(unsigned sap) const -{ - std::vector<unsigned> mapping = subbandToSAPmapping(); - - return std::count(mapping.begin(), mapping.end(), sap); -} - -std::vector<unsigned> Parset::subbandToSAPmapping() const -{ - return getUint32Vector("Observation.beamList",true); -} - -double Parset::channelWidth() const -{ - return subbandBandwidth() / nrChannelsPerSubband(); -} - -bool Parset::delayCompensation() const -{ - return getBool("OLAP.delayCompensation", true); -} - -unsigned Parset::nrCalcDelays() const -{ - return getUint32("OLAP.DelayComp.nrCalcDelays", 16); -} - -string Parset::positionType() const -{ - return getString("OLAP.DelayComp.positionType", "ITRF"); -} - -double Parset::clockCorrectionTime(const std::string &station) const -{ - return getDouble(std::string("PIC.Core.") + station + ".clockCorrectionTime",0.0); -} - -bool Parset::correctBandPass() const -{ - return getBool("OLAP.correctBandPass"); -} - -unsigned Parset::nrPsetsPerStorage() const -{ - return getUint32("OLAP.psetsPerStorage"); -} - -unsigned Parset::getLofarStManVersion() const -{ - return getUint32("OLAP.LofarStManVersion", 2); -} - -vector<unsigned> Parset::phaseOnePsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseOnePsets",true); -} - -vector<unsigned> Parset::phaseTwoPsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseTwoPsets",true); -} - -vector<unsigned> Parset::phaseThreePsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseThreePsets",true); -} - -unsigned Parset::totalNrPsets() const -{ - const std::string key = "OLAP.IONProc.psetList"; - - if (isDefined(key)) { - return getStringVector(key,true).size(); - } else { - LOG_WARN_STR( "Missing key " << key << ", using the used psets as a fallback"); - return usedPsets().size(); - } -} - -vector<unsigned> Parset::tabList() const -{ - return getUint32Vector("OLAP.CNProc.tabList",true); -} - -int Parset::phaseOnePsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseOnePsets()); -} - -int Parset::phaseTwoPsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseTwoPsets()); -} - -int Parset::phaseThreePsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseThreePsets()); -} - -int Parset::phaseOneCoreIndex(unsigned core) const -{ - return findIndex(core, phaseOneTwoCores()); -} - -int Parset::phaseTwoCoreIndex(unsigned core) const -{ - return findIndex(core, phaseOneTwoCores()); -} - -int Parset::phaseThreeCoreIndex(unsigned core) const -{ - return findIndex(core, phaseThreeCores()); -} - -double Parset::channel0Frequency(size_t subband) const -{ - double sbFreq = subbandToFrequencyMapping()[subband]; - - if (nrChannelsPerSubband() == 1) - return sbFreq; - - // if the 2nd PPF is used, the subband is shifted half a channel - // downwards, so subtracting half a subband results in the - // center of channel 0 (instead of the bottom). - return sbFreq - 0.5 * subbandBandwidth(); -} - -unsigned Parset::nrSlotsInFrame() const -{ - unsigned nrSlots = 0; - - nrSlots = getUint32("Observation.nrSlotsInFrame", 0); - - if (nrSlots == 0) { - // return default - return maxBeamletsPerRSP(nrBitsPerSample()); - } - - return nrSlots; -} - -string Parset::partitionName() const -{ - return getString("OLAP.CNProc.partition"); -} - -bool Parset::realTime() const -{ - return getBool("OLAP.realTime", true); -} - -std::vector<unsigned> Parset::nrTABs() const -{ - std::vector<unsigned> counts(nrBeams()); - - for (unsigned beam = 0; beam < nrBeams(); beam++) - counts[beam] = nrTABs(beam); - - return counts; -} - -unsigned Parset::totalNrTABs() const -{ - std::vector<unsigned> beams = nrTABs(); - - return std::accumulate(beams.begin(), beams.end(), 0); -} - -unsigned Parset::maxNrTABs() const -{ - std::vector<unsigned> beams = nrTABs(); - - return *std::max_element(beams.begin(), beams.end()); -} - -BeamCoordinates Parset::TABs(unsigned beam) const -{ - BeamCoordinates coordinates; - - for (unsigned pencil = 0; pencil < nrTABs(beam); pencil ++) { - const std::vector<double> coords = getTAB(beam, pencil); - - // assume ra,dec - coordinates += BeamCoord3D(coords[0],coords[1]); - } - - return coordinates; -} - -string Parset::bandFilter() const -{ - return getString("Observation.bandFilter"); -} - -string Parset::antennaSet() const -{ - return getString("Observation.antennaSet"); -} - -string Parset::PVSS_TempObsName() const -{ - return getString("_DPname",""); -} - -string Parset::AntennaSetsConf() const -{ - return getString("OLAP.Storage.AntennaSetsConf",""); -} - -string Parset::AntennaFieldsDir() const -{ - return getString("OLAP.Storage.AntennaFieldsDir",""); -} - -string Parset::HBADeltasDir() const -{ - return getString("OLAP.Storage.HBADeltasDir",""); -} - -void StreamInfo::log() const -{ - LOG_DEBUG_STR( "Stream " << stream << " is sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part << " consisting of subbands " << subbands ); -} - -static unsigned divideRoundUp( unsigned a, unsigned b ) -{ - return b == 0 ? 0 : (a + b - 1) / b; -} - -Transpose2::Transpose2( const Parset &parset ) -: - phaseThreeDisjunct( parset.phaseThreeDisjunct() ), - - nrChannels( parset.nrChannelsPerSubband() ), - nrCoherentChannels( parset.coherentStokesChannelsPerSubband() ), - nrIncoherentChannels( parset.incoherentStokesChannelsPerSubband() ), - nrSamples( parset.CNintegrationSteps() ), - coherentTimeIntFactor( parset.coherentStokesTimeIntegrationFactor() ), - incoherentTimeIntFactor( parset.incoherentStokesTimeIntegrationFactor() ), - - nrBeams( parset.totalNrTABs() ), - coherentNrSubbandsPerFile( parset.coherentStokesNrSubbandsPerFile() ), - incoherentNrSubbandsPerFile( parset.incoherentStokesNrSubbandsPerFile() ), - - nrPhaseTwoPsets( parset.phaseTwoPsets().size() ), - nrPhaseTwoCores( parset.phaseOneTwoCores().size() ), - nrPhaseThreePsets( parset.phaseThreePsets().size() ), - nrPhaseThreeCores( parset.phaseThreeCores().size() ), - - nrSubbandsPerPset( parset.nrSubbandsPerPset() ), - streamInfo( generateStreamInfo(parset) ), - nrStreamsPerPset( divideRoundUp( nrStreams(), parset.phaseThreePsets().size() ) ) -{ -} - -unsigned Transpose2::nrStreams() const -{ - return streamInfo.size(); -} - -// compose and decompose a stream number -unsigned Transpose2::stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt ) const -{ - for (unsigned i = startAt; i < streamInfo.size(); i++) { - const struct StreamInfo &info = streamInfo[i]; - - if (sap == info.sap && beam == info.beam && stokes == info.stokes && part == info.part) - return i; - } - - // shouldn't reach this point - ASSERTSTR(false, "Requested non-existing sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part); - - return 0; -} - -void Transpose2::decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const -{ - const struct StreamInfo &info = streamInfo[stream]; - - sap = info.sap; - beam = info.beam; - stokes = info.stokes; - part = info.part; -} - -std::vector<unsigned> Transpose2::subbands( unsigned stream ) const -{ - ASSERT(stream < streamInfo.size()); - - return streamInfo[stream].subbands; -} - -unsigned Transpose2::nrSubbands( unsigned stream ) const -{ - return stream >= streamInfo.size() ? 0 : subbands(stream).size(); -} - -static bool streamInfoSubbandsComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.subbands.size() < b.subbands.size(); -} - -unsigned Transpose2::maxNrSubbands() const -{ - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSubbandsComp )->subbands.size(); -} - -static bool streamInfoChannelsComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.nrChannels < b.nrChannels; -} - -unsigned Transpose2::maxNrChannels() const { - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoChannelsComp )->nrChannels; -} - -static bool streamInfoSamplesComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.nrSamples < b.nrSamples; -} - -unsigned Transpose2::maxNrSamples() const -{ - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSamplesComp )->nrSamples; -} - -size_t Transpose2::subbandSize( unsigned stream ) const -{ - const StreamInfo &info = streamInfo[stream]; - - return (size_t)info.nrChannels * (info.nrSamples|2) * sizeof(float); -} - -unsigned Transpose2::sourceCore( unsigned subband, unsigned block ) const -{ - return (block * nrSubbandsPerPset + subband % nrSubbandsPerPset) % nrPhaseTwoCores; -} - -unsigned Transpose2::sourcePset( unsigned subband, unsigned block ) const -{ - (void)block; - return subband / nrSubbandsPerPset; -} - -unsigned Transpose2::destCore( unsigned stream, unsigned block ) const -{ - return (block * phaseThreeGroupSize() + stream % nrStreamsPerPset) % nrPhaseThreeCores; -} - -unsigned Transpose2::destPset( unsigned stream, unsigned block ) const -{ - (void)block; - return stream / nrStreamsPerPset; -} - -unsigned Transpose2::phaseThreeGroupSize() const -{ - return phaseThreeDisjunct ? nrStreamsPerPset : nrSubbandsPerPset; -} - - -std::vector<struct StreamInfo> Transpose2::generateStreamInfo( const Parset &parset ) const -{ - // get all info from parset, since we will be called while constructing our members - - // ParameterSets are SLOW, so cache any info we need repeatedly - - std::vector<struct StreamInfo> infoset; - const std::vector<unsigned> sapMapping = parset.subbandToSAPmapping(); - const unsigned nrSAPs = parset.nrBeams(); - const unsigned nrSubbands = parset.nrSubbands(); - const unsigned nrCoherentSubbandsPerFile = parset.coherentStokesNrSubbandsPerFile(); - const unsigned nrIncoherentSubbandsPerFile = parset.incoherentStokesNrSubbandsPerFile(); - - const unsigned nrCoherentStokes = parset.coherentStokes().size(); - const StokesType coherentType = stokesType( parset.coherentStokes() ); - const unsigned nrCoherentChannels = parset.coherentStokesChannelsPerSubband(); - const unsigned nrCoherentTimeIntFactor = parset.coherentStokesTimeIntegrationFactor(); - - const unsigned nrIncoherentStokes = parset.incoherentStokes().size(); - const StokesType incoherentType = stokesType( parset.incoherentStokes() ); - const unsigned nrIncoherentChannels = parset.incoherentStokesChannelsPerSubband(); - const unsigned nrIncoherentTimeIntFactor = parset.incoherentStokesTimeIntegrationFactor(); - - const unsigned nrSamples = parset.CNintegrationSteps(); - - struct StreamInfo info; - info.stream = 0; - - for (unsigned sap = 0; sap < nrSAPs; sap++) { - const unsigned nrBeams = parset.nrTABs(sap); - - info.sap = sap; - - std::vector<unsigned> sapSubbands; - - for (unsigned sb = 0; sb < nrSubbands; sb++) - if (sapMapping[sb] == sap) - sapSubbands.push_back(sb); - - for (unsigned beam = 0; beam < nrBeams; beam++) { - info.beam = beam; - - const bool coherent = parset.isCoherent(sap, beam); - const unsigned nrStokes = coherent ? nrCoherentStokes : nrIncoherentStokes; - - info.coherent = coherent; - info.nrChannels = coherent ? nrCoherentChannels : nrIncoherentChannels; - info.timeIntFactor = coherent ? nrCoherentTimeIntFactor : nrIncoherentTimeIntFactor; - info.nrStokes = nrStokes; - info.stokesType = coherent ? coherentType : incoherentType; - info.nrSamples = nrSamples / info.timeIntFactor; - - const unsigned nrSubbandsPerFile = coherent ? nrCoherentSubbandsPerFile : nrIncoherentSubbandsPerFile; - - for (unsigned stokes = 0; stokes < nrStokes; stokes++) { - info.stokes = stokes; - info.part = 0; - - // split into parts of at most nrSubbandsPerFile - for (unsigned sb = 0; sb < sapSubbands.size(); sb += nrSubbandsPerFile ) { - for (unsigned i = 0; sb + i < sapSubbands.size() && i < nrSubbandsPerFile; i++) - info.subbands.push_back(sapSubbands[sb + i]); - - infoset.push_back(info); - - info.subbands.clear(); - info.part++; - info.stream++; - } - } - } - } - - return infoset; -} - -CN_Transpose2::CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore ) -: - Transpose2( parset ), - myPset( myPset ), - myCore( myCore ), - - phaseTwoPsetIndex( parset.phaseTwoPsetIndex(myPset) ), - phaseTwoCoreIndex( parset.phaseTwoCoreIndex(myCore) ), - phaseThreePsetIndex( parset.phaseThreePsetIndex(myPset) ), - phaseThreeCoreIndex( parset.phaseThreeCoreIndex(myCore) ) -{ -} - -int CN_Transpose2::myStream( unsigned block ) const -{ - unsigned first = phaseThreePsetIndex * nrStreamsPerPset; - unsigned blockShift = (phaseThreeGroupSize() * block) % nrPhaseThreeCores; - unsigned relative = (nrPhaseThreeCores + phaseThreeCoreIndex - blockShift) % nrPhaseThreeCores; - - // such a stream does not exist - if (first + relative >= nrStreams()) - return -1; - - // we could handle this stream, but it's handled by a subsequent pset - if (relative >= nrStreamsPerPset) - return -1; - - return first + relative; -} - -unsigned CN_Transpose2::myPart( unsigned subband, bool coherent ) const -{ - for (unsigned i = 0; i < streamInfo.size(); i++) { - const struct StreamInfo &info = streamInfo[i]; - - if ( info.coherent == coherent - && info.subbands[0] <= subband - && info.subbands[info.subbands.size()-1] >= subband ) - return info.part; - } - - // we reach this point if there are no beams of this coherency - return 0; -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/src/RSPTimeStamp.cc b/RTCP/Interface/src/RSPTimeStamp.cc deleted file mode 100644 index 83cb551bf6874dff82e01e6452ea43290e8e3850..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/RSPTimeStamp.cc +++ /dev/null @@ -1,35 +0,0 @@ -//# RSPTimeStamp.cc: Small class to hold the timestamps from RSP -//# -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> - -#include <Interface/RSPTimeStamp.h> -#include <Common/lofar_iostream.h> - -namespace LOFAR { -namespace RTCP { - -ostream &operator << (ostream &os, const TimeStamp &ts) -{ - return os << "[" << ts.getSeqId() << "s, " << ts.getBlockId() << "]"; -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/src/Stream.cc b/RTCP/Interface/src/Stream.cc deleted file mode 100644 index dc67003b4462667a19d8e9d78cdf0fe80dfcc003..0000000000000000000000000000000000000000 --- a/RTCP/Interface/src/Stream.cc +++ /dev/null @@ -1,151 +0,0 @@ -//# Stream.cc: one line descriptor -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: Stream.cc 16396 2010-09-27 12:12:24Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -//# Includes -#include <Common/LofarLogger.h> -#include <Interface/Exceptions.h> -#include <Interface/Stream.h> -#include <Common/StringUtil.h> - -#include <Stream/FileStream.h> -#include <Stream/NullStream.h> -#include <Stream/SocketStream.h> -#include <Stream/PortBroker.h> -#include <Stream/NamedPipeStream.h> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> - -#include <time.h> -#include <vector> - -using boost::format; -using namespace std; - -namespace LOFAR { -namespace RTCP { - -Stream *createStream(const string &descriptor, bool asServer, time_t deadline) -{ - vector<string> split = StringUtil::split(descriptor, ':'); - - if (deadline > 0 && deadline <= time(0)) - THROW(SocketStream::TimeOutException, "Deadline already passed at start"); - - if (descriptor == "null:") - return new NullStream; - else if (split.size() == 3 && split[0] == "udp") - return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline); - else if (split.size() == 3 && split[0] == "tcp") - return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline); - else if (split.size() == 3 && split[0] == "udpkey") - return new SocketStream(split[1].c_str(), 0, SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str()); -#ifdef USE_THREADS - else if (split.size() == 4 && split[0] == "tcpbroker") - return asServer ? static_cast<Stream*>(new PortBroker::ServerStream(split[3])) : static_cast<Stream*>(new PortBroker::ClientStream(split[1], boost::lexical_cast<unsigned short>(split[2]), split[3])); -#endif - else if (split.size() == 3 && split[0] == "tcpkey") -#if defined CLUSTER_SCHEDULING - return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, 30000, split[2].c_str()); -#else - return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str()); -#endif - else if (split.size() == 2 && split[0] == "file") - return asServer ? new FileStream(split[1].c_str()) : new FileStream(split[1].c_str(), 0666); - else if (split.size() == 2 && split[0] == "pipe") - return new NamedPipeStream(split[1].c_str(), asServer); - else if (split.size() == 2) - return new SocketStream(split[0].c_str(), boost::lexical_cast<unsigned short>(split[1]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline); - else if (split.size() == 1) - return asServer ? new FileStream(split[0].c_str()) : new FileStream(split[0].c_str(), 0666); - else - THROW(InterfaceException, string("unrecognized connector format: \"" + descriptor + '"')); -} - - -string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel) -{ - string descriptor; - - if (strcmp(streamType, "NULL") == 0) { - descriptor = "null:"; - } else if (strcmp(streamType, "TCP") == 0) { - // DEPRICATED -- use TCPKEY instead - usleep(10000 * core); // do not connect all at the same time - - unsigned port = 5000 + (channel * numpsets + pset) * numcores + core; - descriptor = str(format("tcp:127.0.0.1:%u") % port); - } else if (strcmp(streamType, "TCPKEY") == 0) { - usleep(10000 * core); // do not connect all at the same time - - // FIXME: do not use fixed IP address - descriptor = str(format("tcpkey:10.149.5.23:ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel); - } else if (strcmp(streamType, "PIPE") == 0) { - descriptor = str(format("pipe:/tmp/ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel); - } else { - THROW(InterfaceException, "unknown Stream type between ION and CN"); - } - - LOG_DEBUG_STR("Creating stream " << descriptor << " from ionode " << ionode << " to pset " << pset << " core " << core << " channel " << channel); - - return descriptor; -} - -uint16 storageBrokerPort(int observationID) -{ - return 7000 + observationID % 1000; -} - - -string getStorageControlDescription(int observationID, int rank) -{ - return str(format("[obs %d rank %d] control") % observationID % rank); -} - - -string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr) -{ - string connectionType = parset.getString("OLAP.OLAP_Conn.IONProc_Storage_Transport"); - - if (connectionType == "NULL") { - return "null:"; - } else if (connectionType == "TCP") { -#if defined USE_THREADS - string host = parset.getHostName(outputType, streamNr); - uint16 port = storageBrokerPort(parset.observationID()); - return str(format("tcpbroker:%s:%u:ion-storage-obs-%u-type-%u-stream-%u") % host % port % parset.observationID() % outputType % streamNr); -#else - string host = parset.getHostName(outputType, streamNr); - return str(format("tcpkey:%s:ion-storage-obs-%u-type-%u-stream-%u") % host % parset.observationID() % outputType % streamNr); -#endif - } else if (connectionType == "FILE") { - return str(format("file:out-obs-%u-type-%u-stream-%u") % parset.observationID() % outputType % streamNr); - } else { - THROW(InterfaceException, "unsupported ION->Storage stream type: " << connectionType); - } -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Interface/test/CMakeLists.txt b/RTCP/Interface/test/CMakeLists.txt deleted file mode 100644 index 8b3aebbb1163527cff84418275134bffd7eaa033..0000000000000000000000000000000000000000 --- a/RTCP/Interface/test/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -include(LofarCTest) - -#lofar_add_test(tCorrelatedData tCorrelatedData.cc) -#lofar_add_test(tMultiDimArray tMultiDimArray.cc) -#lofar_add_test(tSparseSet tSparseSet.cc) -#lofar_add_test(tRSPTimeStamp tRSPTimeStamp.cc) diff --git a/RTCP/Interface/test/tCorrelatedData.cc b/RTCP/Interface/test/tCorrelatedData.cc deleted file mode 100644 index ded003c78f00b668efc71043d6c96214a9ef5a0a..0000000000000000000000000000000000000000 --- a/RTCP/Interface/test/tCorrelatedData.cc +++ /dev/null @@ -1,86 +0,0 @@ -#include <lofar_config.h> - -#include <Common/Timer.h> - -#include <Interface/CorrelatedData.h> - -#include <cassert> -#include <iostream> - - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -int main(void) -{ - NSTimer timer("addition", true, false); - - unsigned nr_maxsamples[] = { 255, 65535, 1000000 }; // encode using 1, 2, 4 bytes, respectively - unsigned nr_channels[] = { 1, 16, 64, 256 }; - unsigned nr_stations[] = { 1, 2, 3, 4, 5, 24 }; - - for( unsigned s = 0; s < sizeof nr_maxsamples / sizeof nr_maxsamples[0]; ++s ) - for( unsigned ch = 0; ch < sizeof nr_channels / sizeof nr_channels[0]; ++ch ) - for( unsigned st = 0; st < sizeof nr_stations / sizeof nr_stations[0]; ++st ) { - unsigned ns = nr_maxsamples[s]; - unsigned nch = nr_channels[ch]; - unsigned nst = nr_stations[st]; - unsigned nbl = nst * (nst + 1) / 2; - - cout << nst << " stations (= " << nbl << " baselines), " << nch << " channels, " << ns << " samples" << endl; - - // we will test whether data1 + data2 = data3 - CorrelatedData data1(nst, nch, ns), data2(nst, nch, ns), data3(nst, nch, ns); - - // initialise data - cout << "init" << endl; - unsigned n = 0; - - for( unsigned i = 0; i < nbl; i++ ) { - for( unsigned j = 0; j < nch; j++ ) { - n++; - - data1.setNrValidSamples(i, j, (n*1) % (ns/2)); - data2.setNrValidSamples(i, j, (n*2) % (ns/2)); - data3.setNrValidSamples(i, j, ((n*1) % (ns/2)) + ((n*2) % (ns/2))); - - for( unsigned k = 0; k < 2; k++ ) { - for( unsigned l = 0; l < 2; l++ ) { - data1.visibilities[i][j][k][l] = 1 * ((i + j) * 10 + k * 2 + l); - data2.visibilities[i][j][k][l] = 1000 * ((i + j) * 10 + k * 2 + l); - data3.visibilities[i][j][k][l] = 1001 * ((i + j) * 10 + k * 2 + l); - } - } - } - } - - // add - cout << "add" << endl; - timer.start(); - data1 += data2; - timer.stop(); - - // verify - cout << "verify" << endl; - for( unsigned i = 0; i < nbl; i++ ) { - for( unsigned j = 0; j < nch; j++ ) { - //cout << data1.nrValidSamples(i, j) << " == " << data3.nrValidSamples(i, j) << endl; - assert(data1.nrValidSamples(i, j) == data3.nrValidSamples(i, j)); - - for( unsigned k = 0; k < 2; k++ ) { - for( unsigned l = 0; l < 2; l++ ) { - assert( - data1.visibilities[i][j][k][l] == - data3.visibilities[i][j][k][l] - ); - } - } - } - } - - cout << "ok" << endl; - } - - return 0; -} diff --git a/RTCP/Interface/test/tMultiDimArray.cc b/RTCP/Interface/test/tMultiDimArray.cc deleted file mode 100644 index ff31aa9c790846dd10e38d8a2522f90085791456..0000000000000000000000000000000000000000 --- a/RTCP/Interface/test/tMultiDimArray.cc +++ /dev/null @@ -1,196 +0,0 @@ -#include <lofar_config.h> -#include <Interface/MultiDimArray.h> -#include <Common/LofarLogger.h> - -using namespace LOFAR; -using namespace RTCP; -using namespace boost; - -// A class that keeps track of the number of live objects. -struct Object { - Object() { val = nrObjects++; } - ~Object() { nrObjects--; } - - bool operator==(const Object &other) const { return val == other.val; } - - static size_t nrObjects; - - size_t val; -}; - -size_t Object::nrObjects = 0; - -template<unsigned DIM> struct Tester { - typedef MultiDimArray<Object,DIM> ArrayType; - typedef typename ArrayType::ExtentList ExtentList; - - void test(const ExtentList &extents); - - void half(ExtentList &extents); - - void assert_live_elements(size_t n); -}; - -template<unsigned DIM> void Tester<DIM>::test(const Tester<DIM>::ExtentList &extents) -{ - size_t nrElements = ArrayType::nrElements(extents); - - LOG_INFO_STR("Test on " << DIM << " dimensions, " << nrElements << " elements"); - - // We assume to start with an empty list - assert_live_elements(0); - - // Test the constructors - LOG_INFO_STR("Test default constructor"); - { - ArrayType array; - } - assert_live_elements(0); - - LOG_INFO_STR("Test (extents) constructor"); - { - ArrayType array(extents); - - ASSERT(array.num_elements() == nrElements); - assert_live_elements(nrElements); - } - assert_live_elements(0); - - LOG_INFO_STR("Test (extents, ptr, construct=false) constructor"); - { - Object *data = new Object[ArrayType::nrElements(extents)]; - - ArrayType array(extents, data, false); - - ASSERT(array.num_elements() == nrElements); - assert_live_elements(nrElements); - - delete[] data; - } - assert_live_elements(0); - - LOG_INFO_STR("Test (extents, ptr, construct=true) constructor"); - { - char *data = new char[nrElements * sizeof(Object)]; - - ArrayType array(extents, reinterpret_cast<Object*>(data), true); - - ASSERT(array.num_elements() == nrElements); - assert_live_elements(nrElements); - - delete[] data; - } - assert_live_elements(0); - - LOG_INFO_STR("Test copy constructor"); - { - ArrayType array1(extents); - ArrayType array2(array1); - - assert_live_elements(nrElements * 2); - } - assert_live_elements(0); - - // Test assignment (TODO: deep check) - LOG_INFO_STR("Test assignment operator"); - { - ArrayType array1(extents); - ArrayType array2(extents); - - array2 = array1; - - assert_live_elements(nrElements * 2); - - // compare all elements - for (size_t i = 0; i < nrElements; i++) - ASSERTSTR( *(array1.origin() + i) == *(array2.origin() + i), "Element " << i << " differs." ); - } - assert_live_elements(0); - - // Test resizing - ExtentList alternate_extents(extents); - half(alternate_extents); - - size_t alternate_nrElements(ArrayType::nrElements(alternate_extents)); - - LOG_INFO_STR("Test resize(extents)"); - { - ArrayType array(extents); - - array.resize(alternate_extents); - - ASSERT(array.num_elements() == alternate_nrElements); - assert_live_elements(alternate_nrElements); - } - assert_live_elements(0); - - // Test resizing in place - LOG_INFO_STR("Test resizeInplace(extents)"); - { - ArrayType array(extents); - - array.resizeInplace(alternate_extents); - - ASSERT(array.num_elements() == alternate_nrElements); - assert_live_elements(alternate_nrElements); - - // try resizing back to original size - array.resizeInplace(extents); - - ASSERT(array.num_elements() == nrElements); - assert_live_elements(nrElements); - } - assert_live_elements(0); - - LOG_INFO_STR("Test resizeInplace(extents) on array with external data (we provide both the memory and the object construction)"); - { - Object *data = new Object[nrElements]; - - ArrayType array(extents, reinterpret_cast<Object*>(data), false); - - array.resizeInplace(alternate_extents); - - // We do the construction, so MultiDimArray cannot change anything. - assert_live_elements(nrElements); - - delete[] data; - } - assert_live_elements(0); - - LOG_INFO_STR("Test resizeInplace(extents) on array with external memory (we provide the memory, the array constructs the objects)"); - { - char *data = new char[nrElements * sizeof(Object)]; - - ArrayType array(extents, reinterpret_cast<Object*>(data), true); - - array.resizeInplace(alternate_extents); - - // MultiDimArray does the construction, so MultiDimArray can change the - // number of objects as well. - assert_live_elements(alternate_nrElements); - - delete[] data; - } - assert_live_elements(0); -} - -template<unsigned DIM> void Tester<DIM>::half(Tester<DIM>::ExtentList &extents) -{ - for (size_t i = 0; i < DIM; i++) - extents.ranges_[i] = extents.ranges_[i].size() / 2; -} - -template<unsigned DIM> void Tester<DIM>::assert_live_elements(size_t n) -{ - ASSERTSTR( Object::nrObjects == n, "Expected " << n << " live objects, but encountered " << Object::nrObjects ); -} - -int main() -{ - INIT_LOGGER("tMultiDimArray"); - - { Tester<1> tester; tester.test(extents[10]); } - { Tester<2> tester; tester.test(extents[10][10]); } - { Tester<3> tester; tester.test(extents[10][10][10]); } - { Tester<4> tester; tester.test(extents[10][10][10][10]); } -} diff --git a/RTCP/Interface/test/tRSPTimeStamp.cc b/RTCP/Interface/test/tRSPTimeStamp.cc deleted file mode 100644 index fa85987c5b8c2eef7caca4de9f926300fe750d6e..0000000000000000000000000000000000000000 --- a/RTCP/Interface/test/tRSPTimeStamp.cc +++ /dev/null @@ -1,49 +0,0 @@ -//# tRSPTimeStamp.cc: test for the RSPTimeStamp -//# -//# Copyright (C) 2006 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> -#include <Common/LofarLogger.h> -#include <stdint.h> - -#include <Interface/RSPTimeStamp.h> - -#define SAMPLERATE 195312.5 -// start the test at INT32_MAX * SAMPLERATE -#define TESTSTART static_cast<int64>(0x7fffffff * SAMPLERATE) -// we don't want the test to take too long -#define TESTEND static_cast<int64>(0x7fffff00 * SAMPLERATE) - -using namespace LOFAR; -using LOFAR::RTCP::TimeStamp; - -int main() -{ - unsigned clock = static_cast<unsigned>(1024 * SAMPLERATE); - - for (int64 timecounter = TESTSTART; timecounter >= TESTEND; timecounter--) { - TimeStamp one(timecounter, clock); - TimeStamp other(one.getSeqId(), one.getBlockId(), clock); - ASSERTSTR(one == other, one << " == " << other << " counter was " << timecounter); - } - - return 0; -} diff --git a/RTCP/Interface/test/tSparseSet.cc b/RTCP/Interface/test/tSparseSet.cc deleted file mode 100644 index e6373c7abb02c67aaa4f6c905cc937465384fc2a..0000000000000000000000000000000000000000 --- a/RTCP/Interface/test/tSparseSet.cc +++ /dev/null @@ -1,82 +0,0 @@ -#include <lofar_config.h> - -#include "Interface/SparseSet.h" - -#include <cassert> -#include <bitset> -#include <iostream> - - -#define BITSET_SIZE 4096 - - -using namespace LOFAR; -using namespace std; - -bool equal(const SparseSet<unsigned> &sset, const bitset<BITSET_SIZE> &bset) -{ - if (sset.count() != bset.count()) - return false; - - for (unsigned i = 0; i < BITSET_SIZE; i ++) - if (sset.test(i) != bset.test(i)) - return false; - - return true; -} - -int main(void) -{ - //SparseSet sset; - //sset.include(7, 11).include(12, 15).include(17).include(20, 23); - //std::cout << sset << '\n'; - - for (unsigned i = 0; i < 100; i ++) { - SparseSet<unsigned> sset, sset_union; - bitset<BITSET_SIZE> bset, bset_union; - - for (unsigned j = 0; j < 100; j ++) { - unsigned first = (unsigned) (drand48() * (BITSET_SIZE - 100)); - unsigned last = (unsigned) (drand48() * 100) + first + 1; - - if (drand48() > .4) { - sset.include(first, last); - - for (unsigned k = first; k < last; k ++) - bset.set(k); - } else { - sset.exclude(first, last); - - for (unsigned k = first; k < last; k ++) - bset.reset(k); - } - - assert(equal(sset, bset)); - - if (drand48() < .1) { - sset_union |= sset; - bset_union |= bset; - assert(equal(sset_union, bset_union)); - sset.reset(); - bset.reset(); - } - } - } - - for (int i = 0; i < 23; i ++) { - { - SparseSet<unsigned> sset; - bitset<BITSET_SIZE> bset(0x00727780 >> i); - sset.include(7, 11).include(12, 15).include(17).include(20, 23).exclude(0, i) -= i; - assert(equal(sset, bset)); - } - { - SparseSet<unsigned> sset; - bitset<BITSET_SIZE> bset(0x00727780ULL); bset <<= i; - sset.include(7, 11).include(12, 15).include(17).include(20, 23) += i; - assert(equal(sset, bset)); - } - } - - return 0; -} diff --git a/RTCP/MetaDataGatherer/CMakeLists.txt b/RTCP/MetaDataGatherer/CMakeLists.txt deleted file mode 100644 index cae4d0d207636f1e7b014978819c8911a684d858..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# $Id: CMakeLists.txt 22563 2012-10-30 18:50:15Z mol $ - -lofar_package(MetaDataGatherer 1.0 DEPENDS Common Stream OTDB Interface Storage) - -include(LofarFindPackage) -lofar_find_package(Casacore COMPONENTS casa measures REQUIRED) -lofar_find_package(Boost REQUIRED date_time) - -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/MetaDataGatherer/src/CMakeLists.txt b/RTCP/MetaDataGatherer/src/CMakeLists.txt deleted file mode 100644 index de38820fa1cc9afcb129338b78188787cf89584a..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/src/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -lofar_add_library(metadatagatherer - Package__Version.cc) - -install(FILES - FinalMetaDataGatherer.log_prop - DESTINATION etc) - -lofar_add_bin_program(FinalMetaDataGatherer FinalMetaDataGatherer.cc) -lofar_add_bin_program(failedtilesinfo failedtilesinfo.cc) diff --git a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc b/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc deleted file mode 100644 index 1d7220e15618d2e1a8a78fb0dd891d4b7c02dafc..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc +++ /dev/null @@ -1,279 +0,0 @@ -//# FinalMetaDataGatherer.cc: -//# Copyright (C) 2012-2014 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -// LOFAR -#include <Common/ParameterSet.h> -#include <Common/LofarLogger.h> -#include <Common/StringUtil.h> // needed for split -#include <Common/Exception.h> // THROW macro for exceptions -#include <Common/CasaLogSink.h> -#include <Common/Exceptions.h> -#include <Common/NewHandler.h> -#include <Interface/Exceptions.h> -#include <Interface/Parset.h> -#include <Interface/Stream.h> -#include <Interface/FinalMetaData.h> -#include <Stream/PortBroker.h> - -// SAS -#include <OTDB/OTDBconstants.h> -#include <OTDB/OTDBconnection.h> -#include <OTDB/OTDBnode.h> -#include <OTDB/TreeMaintenance.h> -#include <OTDB/TreeValue.h> -#include <OTDB/ClassifConv.h> -#include <OTDB/Converter.h> -#include <OTDB/TreeTypeConv.h> - -// STL / C -#include <iostream> -#include <stdexcept> -#include <string> -#include <vector> -#include <cstdio> -#include <unistd.h> - -// boost -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> -#include <boost/date_time/posix_time/posix_time.hpp> - -// Casacore -#include <measures/Measures/MEpoch.h> -#include <casa/Quanta/MVTime.h> - -// install a new handler to produce backtraces for bad_alloc -LOFAR::NewHandler h(LOFAR::BadAllocException::newHandler); - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace LOFAR::OTDB; -using namespace std; -using namespace casa; -using namespace boost::posix_time; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -string logPrefix; - -// Convert a casacore time string time YYYY-Mon-DD TT:MM:SS.ss to an MVEpoch -MVEpoch toCasaTime (const string& time) -{ - ASSERT(!time.empty()); - - // e.g. 2011-Mar-19 21:17:06.514000 - Double casaTime = 0.0; // casacore MVEpoch time to be returned - Quantity result(casaTime, "s"); // set quantity unit to seconds - MVTime::read(result, time); - return result; -} - -string fromCasaTime (const MVEpoch& epoch) -{ - MVTime t (epoch.get()); - return t.getTime().ISODate(); -} - -vector<OTDBvalue> getHardwareTree(OTDBconnection &conn, const string &timeStart, const string &timeEnd = string()) -{ - // Get OTDB info. - TreeTypeConv TTconv(&conn); // TreeType converter object - ClassifConv CTconv(&conn); // converter - vector<OTDBvalue> valueList; // OTDB value list - vector<OTDBtree> treeList = conn.getTreeList(TTconv.get("hardware"), - CTconv.get("operational")); - ASSERTSTR(treeList.size(), "No hardware tree found, run tPICtree first"); - - treeIDType treeID = treeList[treeList.size()-1].treeID(); - LOG_DEBUG_STR (logPrefix << "Using tree " << treeID); - - OTDBtree treeInfo = conn.getTreeInfo(treeID); - LOG_DEBUG_STR(logPrefix << treeInfo); - - LOG_DEBUG_STR(logPrefix << "Constructing a TreeValue object"); - TreeValue tv(&conn, treeID); - - // Get list of all broken hardware from SAS for timestamp - LOG_DEBUG_STR(logPrefix << "Searching for a Hardware tree"); - - if (timeEnd == "") - valueList = tv.getBrokenHardware(time_from_string(timeStart)); - else - valueList = tv.getBrokenHardware(time_from_string(timeStart), time_from_string(timeEnd)); - - return valueList; -} - -// Get information about broken tiles from SAS database -void parseBrokenHardware (const vector<OTDBvalue> &hardware, vector<struct FinalMetaData::BrokenRCU> &brokenrcus) -{ - // Don't mess up our counts below - ASSERT(brokenrcus.empty()); - - // Write entry in valuelist with broken hardware - // A broken antenna element/tile entry must contain .status_state - - for (size_t i = 0; i < hardware.size(); i++) { - try { - if (hardware[i].name.find(".status_state") != string::npos) { - LOG_DEBUG_STR(logPrefix << "Hardware status line '" << hardware[i].name << "'"); - - vector<string> parts = StringUtil::split (hardware[i].name, '.'); - - // parts[3] is station name (f.e. CS001) - string station = parts.size() > 3 ? parts[3] : ""; - - // parts[4] is tile name/number (f.e. HBA1 or LBA3) - string tile = parts.size() > 4 ? parts[4] : ""; - - // parts[7] is RCU name/number (f.e. RCU20) - string rcu = parts.size() > 7 ? parts[7] : ""; - - string tiletype = tile.substr(0,3); - string rcutype = rcu.substr(0,3); - - string type = ""; - int seqnr = 0; - - if (tiletype == "LBA" || tiletype == "HBA") { - // broken tile - type = tiletype; - seqnr = boost::lexical_cast<int>(tile.substr(3)); - } else if (rcutype == "RCU") { - // broken rcu - type = rcutype; - seqnr = boost::lexical_cast<int>(rcu.substr(3)); - } - - if (type != "") { - struct FinalMetaData::BrokenRCU info; - - info.station = station; - info.type = type; - info.seqnr = seqnr; - info.time = to_simple_string(hardware[i].time); - - brokenrcus.push_back(info); - - LOG_DEBUG_STR(logPrefix << "Found broken " << info.station << " " << info.type << " antenna " << seqnr << " at " << info.time); - } - } - } catch(std::out_of_range &ex) { - LOG_ERROR_STR(logPrefix << "Error parsing name '" << hardware[i].name << "' time '" << hardware[i].time << "': " << ex.what()); - } - } - - LOG_INFO_STR(logPrefix << "Found " << brokenrcus.size() << " broken rcus/tiles"); -} - -char stdoutbuf[1024], stderrbuf[1024]; - -int main(int argc, char *argv[]) -{ - INIT_LOGGER("FinalMetaDataGatherer"); - - // Set trigger for self-destruct - alarm(300); - - CasaLogSink::attach(); - - try { - if (argc != 2) - throw StorageException(str(boost::format("usage: %s obsid") % argv[0]), THROW_ARGS); - - setvbuf(stdout, stdoutbuf, _IOLBF, sizeof stdoutbuf); - setvbuf(stderr, stderrbuf, _IOLBF, sizeof stderrbuf); - - LOG_DEBUG_STR("Started: " << argv[0] << ' ' << argv[1]); - - int observationID = boost::lexical_cast<int>(argv[1]); - - // Ugly hack to get a different port than outputProc; needed when both - // processes run on localhost. - PortBroker::createInstance(storageBrokerPort(observationID + 1)); - - // retrieve the parset - string resource = getStorageControlDescription(observationID, -1); - PortBroker::ServerStream controlStream(resource); - - Parset parset(&controlStream); - logPrefix = str(boost::format("[FinalMetaDataGatherer obs %u] ") % parset.observationID()); - - string host = parset.getString("Cobalt.FinalMetaDataGatherer.database.host", ""); - if (host.empty()) { - // TODO: remove case with last OLAP key when BG/P is gone - host = parset.getString("OLAP.FinalMetaDataGatherer.database.host", ""); - } - if (host.empty()) - host = "sasdb"; - - string db = parset.getString("Cobalt.FinalMetaDataGatherer.database.name", ""); - if (db.empty()) - db = "LOFAR_4"; - - string user = parset.getString("Cobalt.FinalMetaDataGatherer.database.username", ""); - string password; // in the code is bad enough; don't also put it in a config parset (and thus .MS) - if (user.empty()) { - // When can we finally get rid of this silliness?!? - user = "paulus"; - password = "boskabouter"; - } - - string port = parset.getString("Cobalt.FinalMetaDataGatherer.database.port", ""); - if (port.empty()) - port = "5432"; - - // TODO: use actual run times - string timeStart = parset.getString("Observation.startTime"); - string timeEnd = parset.getString("Observation.stopTime"); - - FinalMetaData finalMetaData; - - LOG_INFO_STR (logPrefix << "Connecting to SAS database " << db << " on " << host); - - OTDBconnection conn(user, password, db, host, port); - bool connected = conn.connect(); - ASSERTSTR(connected, "FinalMetaDataGatherer: Connnection failed"); - - LOG_INFO_STR (logPrefix << "Retrieving hardware broken at observation start"); - vector<OTDBvalue> hardwareBrokenAtBegin = getHardwareTree(conn, timeStart); - parseBrokenHardware(hardwareBrokenAtBegin, finalMetaData.brokenRCUsAtBegin); - - LOG_INFO_STR (logPrefix << "Retrieving hardware broken during the observation"); - vector<OTDBvalue> hardwareBrokenDuring = getHardwareTree(conn, timeStart, timeEnd); - parseBrokenHardware(hardwareBrokenDuring, finalMetaData.brokenRCUsDuring); - - LOG_INFO_STR (logPrefix << "Uploading all information"); - finalMetaData.write(controlStream); - - } catch (Exception &ex) { - LOG_FATAL_STR("[FinalMetaDataGatherer obs unknown] Caught Exception: " << ex); - return 1; - } - - LOG_INFO_STR("[FinalMetaDataGatherer obs unknown] Program end"); - return 0; -} - diff --git a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.log_prop b/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.log_prop deleted file mode 100644 index 3d46179d269ba4b755029cce75af58c2e416468f..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.log_prop +++ /dev/null @@ -1,29 +0,0 @@ - -# Configure the loggers -log4cplus.rootLogger=INFO, STDOUT -log4cplus.logger.TRC=INFO - -# prevent debug messages: accept >=WARN only, and don't forward messages to the rootLogger -log4cplus.logger.LCS.ApplCommon=WARN, STDOUT -log4cplus.additivity.LCS.ApplCommon=false -log4cplus.logger.LCS.MSLofar=WARN, STDOUT -log4cplus.additivity.LCS.MSLofar=false - -# Define the appenders -log4cplus.appender.STDOUT=log4cplus::ConsoleAppender -log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout -log4cplus.appender.STDOUT.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %m%n - -#log4cplus.appender.STDERR=log4cplus::ConsoleAppender -#log4cplus.appender.STDERR.layout=log4cplus::PatternLayout -#log4cplus.appender.STDERR.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %c{3} - %m [%.25l]%n -#log4cplus.appender.STDERR.logToStdErr=true - -#log4cplus.appender.FILE=log4cplus::RollingFileAppender -#log4cplus.appender.FILE.File=${LOG4CPLUS_LOGFILENAME}.log -#log4cplus.appender.FILE.MaxFileSize=10MB -#log4cplus.appender.FILE.MaxBackupIndex=2 -#log4cplus.appender.FILE.layout=log4cplus::PatternLayout -#log4cplus.appender.FILE.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %c{3} - %m [%.25l]%n - -log4cplus.appender.DUMP=log4cplus::NullAppender diff --git a/RTCP/MetaDataGatherer/src/failedtilesinfo.cc b/RTCP/MetaDataGatherer/src/failedtilesinfo.cc deleted file mode 100644 index 788665e6e8a83febe74d4c4abad38bb82d00f6f4..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/src/failedtilesinfo.cc +++ /dev/null @@ -1,221 +0,0 @@ -//# failedtilesinfo.cc: extract failed tiles info from the SAS database -//# Copyright (C) 2012-2013 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id$ - -#include <lofar_config.h> - -// LOFAR -#include <Common/ParameterSet.h> -#include <Common/LofarLogger.h> -#include <Common/SystemUtil.h> // needed for basename -#include <Common/StringUtil.h> // needed for split -#include <Common/Exception.h> // THROW macro for exceptions - -// SAS -#include <OTDB/OTDBconstants.h> -#include <OTDB/OTDBconnection.h> -#include <OTDB/OTDBnode.h> -#include <OTDB/TreeMaintenance.h> -#include <OTDB/TreeValue.h> -#include <OTDB/ClassifConv.h> -#include <OTDB/Converter.h> -#include <OTDB/TreeTypeConv.h> - -// STL -#include <iostream> - -// Casacore -#include <measures/Measures/MEpoch.h> -#include <casa/Quanta/MVTime.h> - -// Boost -#include <boost/date_time/posix_time/posix_time.hpp> - -using namespace std; -using namespace LOFAR; -using namespace LOFAR::OTDB; -using namespace casa; -using namespace boost::posix_time; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -// Time converter helper functions -MVEpoch toCasaTime (const string& time); -string fromCasaTime (const MVEpoch& epoch); - -// Get the failed tile info before the given date (if end=0) -// or between the dates. -void getFailedTilesInfo(OTDBconnection& conn, - const string& filename, - const string& timeStart, - const string& timeEnd=string()); - - -int main (int argc, char* argv[]) -{ - // Init logger - string progName = LOFAR::basename(argv[0]); - INIT_LOGGER(progName); - try { - // Get the parset name; use default if not given as first argument. - string parsetName = "failedtilesinfo.parset"; - if (argc > 1) { - parsetName = argv[1]; - } - ParameterSet parset(parsetName); - // Get the parameters. - ///string host = parset.getString("host", "sas.control.lofar.eu"); - string host = parset.getString("host", "RS005.astron.nl"); - string db = parset.getString("db", "TESTLOFAR_4"); - string user = parset.getString("user", "paulus"); - string password = parset.getString("password", "boskabouter"); - string port = parset.getString("port", "5432"); - // Files to save SAS hardware strings of broken and failed tiles. - // Failed means tiles failing during the observations. - // Broken means tiles already broken at the start of the observation. - string failedfilename = parset.getString("FailedTilesFile", - "failedTiles.txt"); - string brokenfilename = parset.getString("BrokenTilesFile", - "brokenTiles.txt"); - string startTimeString = parset.getString("StartTime", ""); - string endTimeString = parset.getString("EndTime", ""); - ASSERT (!(failedfilename.empty() || brokenfilename.empty())); - ASSERT (!(startTimeString.empty() || endTimeString.empty())); - MVEpoch startTime = toCasaTime(startTimeString); - MVEpoch endTime = toCasaTime(endTimeString); - if (startTime.get() > endTime.get()) { - THROW(Exception, "starttime " << startTimeString - << " must be <= end time " << endTimeString); - } - // Convert to time format (ISO) that Boost understands. - startTimeString = fromCasaTime(startTime); - endTimeString = fromCasaTime(endTime); - - LOG_DEBUG_STR("Getting SAS antenna health information"); - OTDBconnection conn(user, password, db, host, port); - LOG_DEBUG("Trying to connect to the database"); - ASSERTSTR(conn.connect(), "Connnection failed"); - LOG_DEBUG_STR("Connection succesful: " << conn); - // Get broken hardware strings from SAS - getFailedTilesInfo (conn, brokenfilename, startTimeString); - getFailedTilesInfo (conn, failedfilename, startTimeString, endTimeString); - - } catch (Exception& x) { - LOG_FATAL_STR("Unexpected exception: " << x); - return 1; - } - return 0; -} - -// Convert a casacore time string time YYYY-Mon-DD TT:MM:SS.ss to an MVEpoch -MVEpoch toCasaTime (const string& time) -{ - // e.g. 2011-Mar-19 21:17:06.514000 - Quantity result; - ASSERT(!time.empty()); - MVTime::read(result, time); - return result; -} - -string fromCasaTime (const MVEpoch& epoch) -{ - MVTime t (epoch.get()); - return t.getTime().ISODate(); -} - - -// Get information about broken tiles from SAS database and store it in -// an ASCII text file -void getFailedTilesInfo (OTDBconnection& conn, - const string& filename, - const string& timeStart, - const string& timeEnd) -{ - ASSERT(!filename.empty()); - // Get OTDB info. - TreeTypeConv TTconv(&conn); // TreeType converter object - ClassifConv CTconv(&conn); // converter - vector<OTDBvalue> valueList; // OTDB value list - vector<OTDBtree> treeList = conn.getTreeList(TTconv.get("hardware"), - CTconv.get("operational")); - ASSERTSTR(treeList.size(), "No hardware tree found, run tPICtree first"); - treeIDType treeID = treeList[treeList.size()-1].treeID(); - LOG_DEBUG_STR ("Using tree " << treeID); - OTDBtree treeInfo = conn.getTreeInfo(treeID); - LOG_DEBUG_STR(treeInfo); - LOG_DEBUG("Constructing a TreeValue object"); - TreeValue tv(&conn, treeID); - // Create the output file. - fstream outfile; - outfile.open(filename.c_str(), ios::out); - - // Get list of all broken hardware from SAS for timestamp - LOG_DEBUG("Searching for a Hardware tree"); - - if (timeEnd.empty()) { - // Getting tiles broken at beginning. - valueList = tv.getBrokenHardware (time_from_string(timeStart)); - } else { - // Getting tiles failed during observation. - LOG_INFO_STR ("Getting failed hardware from " - << timeStart << " to " << timeEnd); - valueList = tv.getBrokenHardware (time_from_string(timeStart), - time_from_string(timeEnd)); - } - - if (valueList.empty()) { - LOG_INFO_STR ("No failed hardware found."); - } else { - // Write entry in valuelist with broken hardware to file. - // A broken antenna element/tile entry must contain .status_state - int nrtile = 0; - int nrrcu = 0; - for (unsigned int i=0; i<valueList.size(); i++) { - if (valueList[i].name.find(".status_state") != string::npos) { - vector<string> parts = StringUtil::split (valueList[i].name, '.'); - bool match = false; - if (parts.size() > 4 && parts[4].size() > 3) { - // parts[3] is station name; parts[4] is tile name/number - string type = parts[4].substr(0,3); - if (type == "LBA" || type == "HBA") { - outfile << parts[3] + ' ' + parts[4] << ' ' - << valueList[i].time << endl; - nrtile++; - match = true; - } - } - if (!match && parts.size() > 7 && parts[7].size() > 3) { - // parts[3] is station name; parts[7] is RCU name/number - string type = parts[7].substr(0,3); - if (type == "RCU") { - outfile << parts[3] + ' ' + parts[7] << ' ' - << valueList[i].time << endl; - nrrcu++; - } - } - } - } - LOG_INFO_STR ("Found " << nrtile << " broken tiles and " - << nrrcu << " broken rcus"); - } - outfile.close(); -} - diff --git a/RTCP/MetaDataGatherer/test/CMakeLists.txt b/RTCP/MetaDataGatherer/test/CMakeLists.txt deleted file mode 100644 index 34f58a80b6e9389684f07bd89ee21788cb63f5f2..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -# $Id: CMakeLists.txt 17479 2011-09-20 12:04:10Z duscha $ - -include(LofarCTest) - -#lofar_add_test(tfailedtilesinfo) diff --git a/RTCP/MetaDataGatherer/test/debugbeaminfo.py b/RTCP/MetaDataGatherer/test/debugbeaminfo.py deleted file mode 100755 index f4d4ec520a0dff253bb604c8dffa94fb28fff191..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/debugbeaminfo.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python - -# Script for debugging addbeaminfo -# deletes entries and sets element flags back -# -# File: debugbeaminfo.py -# Author: Sven Duscha (duscha@astron.nl) -# Date: 2011-12-06 -# Last change: 2011-12-06 - - -import sys -import pyrap.tables as pt - -MS="/Users/duscha/Cluster/L2011_24380/L24380_SB030_uv.MS.dppp.dppp" - - -# Remove LOFAR_FAILED_ELEMENTS entries -# -def removeFailedElements(antennaFieldId): - print "removeFailedElements()" # DEBUG - - failedElementsTab=pt.table(MS+"/LOFAR_ELEMENT_FAILURE", readonly=False) - nrows=failedElementsTab.nrows() - - print MS+"/LOFAR_ELEMENT_FAILURE has nrows = ", nrows # DEBUG - - if nrows > 0: - print "removing rows 0 to ", nrows - if antennaFieldId=="": # remove all - while nrows > 0: - print "removing row = ", nrows - failedElementsTab.removerows(nrows-1) - nrows=failedElementsTab.nrows() - else: # remove only those for particular station - antennaFieldIdCol=failedElementsTab.getcol("ANTENNA_FIELD_ID") - for i in range(0, nrows): - if antennaFieldIdCol[i]==antennaFieldId: - failedElementsTab.removerows(i) - - -# Set ELEMENT_FLAGS for particular antennaField from indexLow to -# indexHigh in the ELEMENT_FLAGS array -# -def setElementFlags(antennaFieldId, indexLow, indexHigh): - print "setElementFlags()" # DEBUG - - antennaFieldTab=pt.table(MS+"/LOFAR_ANTENNA_FIELD", readonly=False) - - # find ELEMENT_FLAGS array in row with corresponding antennaFieldId - - -def main(): - antennaFieldId="" - - # If we a command argument - if len(sys.argv) > 1: - antennaFieldId=sys.argv[1] - - tab=pt.table(MS, readonly=False) - - removeFailedElements(antennaFieldId) - - - -if __name__=="__main__": - main() diff --git a/RTCP/MetaDataGatherer/test/failedtilesinfo.parset b/RTCP/MetaDataGatherer/test/failedtilesinfo.parset deleted file mode 100644 index 2368095394630e282f31915cf20e91278768a282..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/failedtilesinfo.parset +++ /dev/null @@ -1,7 +0,0 @@ -StartTime = 2011/05/15/16:59:08.0 -EndTime = 2011/05/21/22:59:06.0 -BrokenTilesFile = brokenTilesFile -FailedTilesFile = failedTilesFile -host = RS005.astron.nl -db = TESTLOFAR_4 -port = 5432 diff --git a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.run b/RTCP/MetaDataGatherer/test/tfailedtilesinfo.run deleted file mode 100755 index 364091d176a5546561ea7764c27596bde790e452..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.run +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# Exit with skipped status if unable to reach RS005. -ping -c 1 RS005.astron.nl > /dev/null 2>&1 || exit 3 - -# Create the parset for this test. -# The start and end times have to match those in the SAS data base. -cat > tfailedtilesinfo_tmp.parset <<EOF -StartTime = 2011/05/15/16:59:08.0 -EndTime = 2012/10/21/22:59:06.0 -BrokenTilesFile = tfailedtilesinfo_tmp.before -FailedTilesFile = tfailedtilesinfo_tmp.during -host = RS005.astron.nl -db = TESTLOFAR_4 -port = 5432 -EOF - -# Get the failed tile info. -../src/failedtilesinfo tfailedtilesinfo_tmp.parset - -# Print the output, so it will be compared by assay. -echo "Failed before:" -cat tfailedtilesinfo_tmp.before -echo -echo "Failed during:" -cat tfailedtilesinfo_tmp.during diff --git a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.sh b/RTCP/MetaDataGatherer/test/tfailedtilesinfo.sh deleted file mode 100755 index 50e8eedf22dea8bf2c05252f3d5bbc03cf52cdb8..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tfailedtilesinfo diff --git a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.stdout b/RTCP/MetaDataGatherer/test/tfailedtilesinfo.stdout deleted file mode 100644 index 25fe487c72d055242cf4ffdcb3bd54845a91dd0d..0000000000000000000000000000000000000000 --- a/RTCP/MetaDataGatherer/test/tfailedtilesinfo.stdout +++ /dev/null @@ -1,29 +0,0 @@ -Failed before: -CS013.RCU86. 2011-Mar-04 09:56:05.496000 -CS026.RCU58. 2011-Mar-04 09:55:54.096000 -CS026.RCU59. 2011-Mar-04 09:56:05.496000 -CS026.RCU69. 2011-Mar-04 09:55:34.239000 -RS208.RCU53. 2011-Mar-04 12:16:54.317000 -RS208.RCU54. 2011-Mar-04 12:17:06.514000 -RS208.RCU59. 2011-Mar-04 11:08:15.719000 -RS208.RCU60. 2011-Mar-04 11:08:27.322000 -RS208.RCU67. 2011-Mar-04 12:18:17.987000 -RS208.RCU68. 2011-Mar-04 12:18:29.275000 -RS503.RCU55. 2011-Mar-04 12:00:36.614000 -RS503.RCU56. 2011-Mar-04 12:01:25.298000 -RS503.RCU57. 2011-Mar-04 12:24:49.665000 -RS503.RCU58. 2011-Mar-04 12:01:37.782000 -RS503.RCU65. 2011-Mar-04 12:01:51.709000 -RS503.RCU66. 2011-Mar-04 12:01:59.900000 -RS503.RCU79. 2011-Mar-04 12:25:22.066000 -RS503.RCU80. 2011-Mar-04 12:02:53.574000 -RS503.RCU85. 2011-Mar-04 12:02:25.409000 -RS503.RCU86. 2011-Mar-04 12:25:57.172000 -RS503.RCU95. 2011-Mar-04 12:03:44.517000 - -Failed during: -CS003.RCU94. 2011-May-19 21:33:33.010000 -RS106.RCU18. 2011-May-19 22:59:05.500000 -CS101.RCU66. 2011-May-20 10:00:05 -RS106.RCU0. 2011-May-20 10:00:05 -CS001.RCU0. 2011-May-20 17:24:56.115000 diff --git a/RTCP/RTCPTools/CMakeLists.txt b/RTCP/RTCPTools/CMakeLists.txt deleted file mode 100644 index 1e5a1625fe5c75aa13feb1f97afe9c9e7a6a124b..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -lofar_package(RTCPTools 1.0) - -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED) - -add_subdirectory(src) diff --git a/RTCP/RTCPTools/package.dox b/RTCP/RTCPTools/package.dox deleted file mode 100644 index 052d1259392459e6ca9d4481460f23fa05f83629..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/package.dox +++ /dev/null @@ -1,2 +0,0 @@ -// \ingroup CS1 -// \defgroup CS1_Tools CS1_Tools Description diff --git a/RTCP/RTCPTools/src/CMakeLists.txt b/RTCP/RTCPTools/src/CMakeLists.txt deleted file mode 100644 index 98a50c16b393474c95044c8d9225e6ab5bfcfc70..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/src/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# $Id$ - -find_library(M_LIBRARY m) -find_library() - -add_executable(generator generator.c) -target_link_libraries(generator ${M_LIBRARY}) - -add_executable(udp-copy udp-copy.c) - -add_executable(tbb-crc-test tbb-crc-test.cc) -add_executable(tbb-dumpframes tbb-dumpframes.cc) - diff --git a/RTCP/RTCPTools/src/generator.c b/RTCP/RTCPTools/src/generator.c deleted file mode 100644 index ec971ede64b299e3a739aeb2af63eb5510e423da..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/src/generator.c +++ /dev/null @@ -1,110 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <netdb.h> -#include <netinet/in.h> -#include <sys/socket.h> -#include <sys/time.h> -#include <sys/types.h> - - -volatile unsigned long long current_time; -double rate; -char packet[9000]; -unsigned message_size; -int sk; -struct sockaddr_in sa; -unsigned packets_sent, errors; - - -void create_socket(const char *destination_ip, const char *destination_port) -{ - struct hostent *host; - - if ((sk = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { - perror("socket"); - exit(1); - } - - if ((host = gethostbyname(destination_ip)) == 0) { - perror("gethostbyname"); - exit(1); - } - - memset(&sa, 0, sizeof sa); - sa.sin_family = AF_INET; - sa.sin_port = htons(atoi(destination_port)); - memcpy(&sa.sin_addr, host->h_addr, host->h_length); - - if (connect(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - perror("connect"); - exit(1); - } -} - - -void send_packet() -{ - // FIXME take care of endianness - * (int *) (packet + 8) = current_time / rate; - * (int *) (packet + 12) = fmod(current_time, rate); - - ++ packets_sent; - -#if 1 - if (send(sk, packet, message_size, 0) < 0) { - ++ errors; - perror("send"); - sleep(1); - } -#endif -} - - -int main(int argc, char **argv) -{ - time_t last_time; - - if (argc < 5 || argc > 6) { - fprintf(stderr, "usage: %s dest-ip dest-port rate subbands [samples-per-frame]\n", argv[0]); - exit(1); - } - - create_socket(argv[1], argv[2]); - unsigned subbands = atoi(argv[4]); - unsigned samples_per_frame = argc == 6 ? atoi(argv[5]) : 16; - message_size = 16 + samples_per_frame * subbands * 8; - - struct timeval tv; - rate = atof(argv[3]); - - double interval = 1.0 / rate; - tv.tv_sec = interval; - tv.tv_usec = 1e6 * (interval - floor(interval)); - - printf("timer: %lu sec, %lu usec\n", tv.tv_sec, tv.tv_usec); - - while (1) { - unsigned long long new_time; - - do { - gettimeofday(&tv, 0); - new_time = (tv.tv_sec /*- 7200*/ + tv.tv_usec / 1000000.0) * rate; - } while (new_time < current_time + samples_per_frame); - - current_time = new_time / samples_per_frame * samples_per_frame; - send_packet(); - - time_t current_wtime = time(0); - - if (current_wtime != last_time) { - last_time = current_wtime; - fprintf(stderr, "sent %u packets to %s:%s, errors = %u\n", packets_sent, argv[1], argv[2], errors); - packets_sent = errors = 0; - } - } - - return 0; -} diff --git a/RTCP/RTCPTools/src/tbb-crc-test.cc b/RTCP/RTCPTools/src/tbb-crc-test.cc deleted file mode 100644 index f1d6b730619f901143523d03c3a7179b59411342..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/src/tbb-crc-test.cc +++ /dev/null @@ -1,296 +0,0 @@ -/* tbb-crc-test.cpp - * Author: Alexander S. van Amesfoort, ASTRON - * with code based on Python crc routines received from Gijs Schoonderbeek, ASTRON - * Last-modified: July 2012 - * build: g++ -Wall -o tbb-crc-test tbb-crc-test.cc - */ - -#include <stdint.h> -#include <string.h> -#include <endian.h> -#if __BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN -#error Byte order is neither big endian nor little endian: not supported -#endif -#include <byteswap.h> - -#include <iostream> -#include <fstream> - -#include <boost/crc.hpp> - -using namespace std; - -struct TBB_Header { - uint8_t stationId; - uint8_t rspID; - uint8_t rcuID; - uint8_t sampleFreq; - - uint32_t seqNr; - uint32_t time; - - union { - uint32_t sampleNr; - uint32_t bandsliceNr; - }; - - uint16_t nOfSamplesPerFrame; - uint16_t nOfFreqBands; - - uint8_t bandSel[64]; - - uint16_t spare; - uint16_t crc16; -}; - -#define MAX_TRANSIENT_NSAMPLES 1298 // based on frames stored by TBB and (un)packing -#define DEFAULT_TRANSIENT_NSAMPLES 1024 // int16_t -#define DEFAULT_SPECTRAL_NSAMPLES 487 // complex int16_t -struct TBB_Payload { - // For transient data, we typically receive 1024 samples per frame. - // uint32_t crc comes right after, so cannot easily declare it after data[], hence + 2. - int16_t data[MAX_TRANSIENT_NSAMPLES + 2]; -}; - -struct TBB_Frame { - TBB_Header header; - TBB_Payload payload; -}; - - -// Same truncated polynomials as standard crc16 and crc32, but with initial_remainder=0, final_xor_value=0, reflected_input=false, reflected_remainder_output=false. -// The boost::crc_optimal<> declarations precompute lookup tables, so do not declare inside the checking routine. -static boost::crc_optimal<16, 0x8005 /*, 0, 0, false, false*/> crc16tbbgen; // instead of crc_16_type -//boost::crc_basic<16> crc16tbbgen(0x8005/*, 0, 0, false, false*/); // non-opt variant - -static boost::crc_optimal<32, 0x04C11DB7/*, 0, 0, false, false*/> crc32tbbgen; // instead of crc_32_type -//boost::crc_basic<32> crc32gen(0x04C11DB7/*, 0, 0, false, false*/); // non-opt variant - -/* - * Assumes that the seqNr field in the TBB_Frame at buf has been zeroed. - * Takes a ptr to a complete header. (Drop too small frames earlier.) - */ -static bool crc16tbb_boost(const TBB_Header* header) { - crc16tbbgen.reset(); - - /* - * The header checksum is done like the data, i.e. on 16 bit little endian blocks at a time. - * As with the data, both big and little endian CPUs need to byte swap. - */ - const int16_t* ptr = reinterpret_cast<const int16_t*>(header); - size_t i; - for (i = 0; i < (sizeof(*header) - sizeof(header->crc16)) / sizeof(int16_t); i++) { - int16_t val = __bswap_16(ptr[i]); - crc16tbbgen.process_bytes(&val, sizeof(int16_t)); - } - - // Byte swap the little endian checksum on big endian only. - // It is also possible to process header->crc16 and see if checksum() equals 0. - uint16_t crc16val = header->crc16; -#if __BYTE_ORDER == __BIG_ENDIAN - crc16val = __bswap_16(crc16val); -#endif - return crc16tbbgen.checksum() == crc16val; -} - -/* - * Note: The nsamples arg is without the space taken by the crc32 in payload. (Drop too small frames earlier.) - */ -static bool crc32tbb_boost(const TBB_Payload* payload, size_t nsamples) { - crc32tbbgen.reset(); - - /* - * Both little and big endian CPUs need to byte swap, because the data always arrives - * in little and the boost routines treat it as uint8_t[] (big). - */ - const int16_t* ptr = reinterpret_cast<const int16_t*>(payload->data); - size_t i; - for (i = 0; i < nsamples; i++) { - int16_t val = __bswap_16(ptr[i]); - crc32tbbgen.process_bytes(&val, sizeof(int16_t)); - } - - // Byte swap the little endian checksum on big endian only. - // It is also possible to process crc32val and see if checksum() equals 0. - uint32_t crc32val = *reinterpret_cast<const uint32_t*>(&ptr[nsamples]); -#if __BYTE_ORDER == __BIG_ENDIAN - crc32val = __bswap_32(crc32val); -#endif - return crc32tbbgen.checksum() == crc32val; -} - -#if __BYTE_ORDER != __LITTLE_ENDIAN -#warning Original crc routines were only developed for little endian. Skipping those. -#else -/* - * This code is translated from the Python ref/test code received from Gijs Schoonderbeek. - * It assumes that the seqNr field (buf[1]) has been zeroed. - * Do not call this function with len < 1; reject too small headers earlier. - */ -static uint16_t crc16tbb(const uint16_t* buf, size_t len) { - uint16_t CRC = 0; - const uint32_t CRC_poly = 0x18005; - const uint16_t bits = 16; - uint32_t data = 0; - const uint32_t CRCDIV = (CRC_poly & 0x7fffffff) << 15; - - data = (buf[0] & 0x7fffffff) << 16; - for (uint32_t i = 1; i < len; i++) { - data += buf[i]; - for (uint16_t j = 0; j < bits; j++) { - if ((data & 0x80000000) != 0) { - data = data ^ CRCDIV; - } - data = data & 0x7fffffff; - data = data << 1; - } - } - CRC = data >> 16; - return CRC; -} - -/* - * This code is translated from the Python ref/test code received from Gijs Schoonderbeek. - * It computes a 32 bit result, 16 bits at a time. - * Do not call this function with len < 2; reject too small payloads earlier. - */ -static uint32_t crc32tbb(const uint16_t* buf, size_t len) { - uint32_t CRC = 0; - const uint64_t CRC_poly = 0x104C11DB7ULL; - const uint16_t bits = 16; - uint64_t data = 0; - const uint64_t CRCDIV = (CRC_poly & 0x7fffffffffffULL) << 15; - - data = buf[0]; - data = data & 0x7fffffffffffULL; - data = data << 16; - data = data + buf[1]; - data = data & 0x7fffffffffffULL; - data = data << 16; - uint32_t i = 2; - for ( ; i < len-2; i++) { - data = data + buf[i]; - for (uint32_t j = 0; j < bits; j++) { - if (data & 0x800000000000ULL) { - data = data ^ CRCDIV; - } - data = data & 0x7fffffffffffULL; - data = data << 1; - } - } - - // Do the 32 bit checksum separately. - // Process the two 16 bit halves in reverse order, but keep the i < len cond. - for (buf += 1; i < len; i++, buf -= 2) { - data = data + buf[i]; - for (uint32_t j = 0; j < bits; j++) { - if (data & 0x800000000000ULL) { - data = data ^ CRCDIV; - } - data = data & 0x7fffffffffffULL; - data = data << 1; - } - } - - CRC = (uint32_t)(data >> 16); - return CRC; -} -#endif - -static int verify_crc(TBB_Frame& frame, size_t frameSize) { - int err = 0; - - // Zero sequence number field before verification. - // It is set by TBB after the checksum has been computed. We do not need it later. - frame.header.seqNr = 0; - -#if __BYTE_ORDER == __LITTLE_ENDIAN - uint16_t headercrc = crc16tbb( reinterpret_cast<uint16_t*>(&frame.header), sizeof(TBB_Header) / sizeof(uint16_t) ); - if (headercrc != 0) { - cerr << "crc16tbb(): Incorrect header crc: " << hex << headercrc << endl; - err = 1; - } -#endif - if (!crc16tbb_boost(&frame.header)) { - cerr << "crc16tbb_boost(): Incorrect header crc" << endl; - err = 1; - } - - -#if __BYTE_ORDER == __LITTLE_ENDIAN - uint32_t payloadcrc = crc32tbb( reinterpret_cast<uint16_t*>(frame.payload.data), ( frameSize - sizeof(TBB_Header) ) / sizeof(uint16_t) ); - if (payloadcrc != 0) { - cerr << "crc32tbb(): Incorrect payload crc: " << hex << payloadcrc << endl; - err = 1; - } -#endif - if (!crc32tbb_boost( &frame.payload, ( frameSize - sizeof(TBB_Header) - sizeof(uint32_t) ) / sizeof(int16_t) )) { - cerr << "crc32tbb_boost(): Incorrect payload crc" << endl; - err = 1; - -#if 0 // this guessing doesn't work: the wrong crc32 is different every time, even on the same data - TBB_Payload p; - unsigned i; - for (i = 0; i < 487; i++) { - memcpy(&p, &frame.payload, i * 2 * sizeof(int16_t)); // data - memcpy((char*)&p + i * 2 * sizeof(int16_t), (char*)(&frame.payload.data[2*487 + 2]) - sizeof(uint32_t), sizeof(uint32_t)); // crc32 - if (crc32tbb_boost(&p, 2 * i)) { - cerr << "found it: i=" << i << endl; - break; - } else { - cerr << "doesn't work either: " << i << endl; - } - } -#endif - - } - - return err; -} - -int main(int argc, char* argv[]) { - if (argc < 2) { - cout << "Usage: " << argv[0] << " rawtbbframes.dat" << endl; - return 1; - } - - bool transient; - ifstream iftype(argv[1], ios_base::binary); - if (!iftype) { - cerr << "Failed to open file " << argv[1] << endl; - return 1; - } - TBB_Header header; - iftype.read(reinterpret_cast<char*>(&header), sizeof header); - if (!iftype) { - cerr << "Failed to read first frame to determine transient or spectral mode" << endl; - return 1; - } - iftype.close(); - transient = header.nOfFreqBands == 0; - - - ifstream ifs(argv[1], ios_base::binary); - if (!ifs) { - cerr << "Failed to open file " << argv[1] << endl; - return 1; - } - - int err = 0; - - TBB_Frame frame; - size_t frameSize; - if (transient) { - frameSize = sizeof(TBB_Header) + DEFAULT_TRANSIENT_NSAMPLES * sizeof(int16_t) + sizeof(uint32_t); - } else { // spectral - frameSize = sizeof(TBB_Header) + DEFAULT_SPECTRAL_NSAMPLES * 2 * sizeof(int16_t) + sizeof(uint32_t); - } - - while (ifs.read(reinterpret_cast<char*>(&frame), frameSize)) { - err |= verify_crc(frame, frameSize); - } - - ifs.close(); - return err; -} - diff --git a/RTCP/RTCPTools/src/tbb-dumpframes.cc b/RTCP/RTCPTools/src/tbb-dumpframes.cc deleted file mode 100644 index 7a4404353396c15f9788915dc0276da06b33f96e..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/src/tbb-dumpframes.cc +++ /dev/null @@ -1,240 +0,0 @@ -/* tbb-dumpframes.cc - * Author: Alexander S. van Amesfoort, ASTRON - * Last-modified: Jun 2013 - * build: g++ -Wall -o tbb-dumpframes tbb-dumpframes.cc - */ - -#include <stdint.h> -#include <cstdlib> -#include <cstring> - -#include <string> -#include <iostream> -#include <fstream> -#include <sstream> - -using namespace std; - -struct TBB_Header { - uint8_t stationID; // Data source station identifier - uint8_t rspID; // Data source RSP board identifier - uint8_t rcuID; // Data source RCU board identifier - uint8_t sampleFreq; // Sample frequency in MHz of the RCU boards - - uint32_t seqNr; // Used internally by TBB. Set to 0 by RSP (but written again before we receive it) - uint32_t time; // Time instance in seconds of the first sample in payload - // The time field is relative, but if used as UNIX time, uint32_t will wrap at 06:28:15 UTC on 07 Feb 2106 (int32_t wraps at 03:14:08 UTC on 19 Jan 2038). - - union { - // In transient mode indicates sample number of the first payload sample in current seconds interval. - uint32_t sampleNr; - - // In spectral mode indicates frequency band and slice (transform block of 1024 samples) of first payload sample. - uint32_t bandSliceNr; // bandNr[9:0] and sliceNr[31:10]. - // Avoid bit fields, (portable) compilation support is messy. Instead use mask and shift to decode. -#define TBB_BAND_NR_MASK ((1 << 10) - 1) -#define TBB_SLICE_NR_SHIFT 10 - }; - - uint16_t nOfSamplesPerFrame; // Total number of samples in the frame payload - uint16_t nOfFreqBands; // Number of frequency bands for each spectrum in spectral mode. Is set to 0 for transient mode. - - uint8_t bandSel[64]; // Each bit in the band selector field indicates whether the band with the bit index is present in the spectrum or not. - - uint16_t spare; // For future use. Set to 0. - uint16_t crc16; // CRC16 over frame header, with seqNr set to 0. -}; - -void timeToStr(time_t t, char* out, size_t out_sz) { - struct tm *tm = gmtime(&t); - // Format: Mo, 15-06-2009 20:20:00 - strftime(out, out_sz, "%a, %d-%m-%Y %H:%M:%S", tm); -} - -void printHeader(const TBB_Header& h) { - cout << "Station ID: " << (uint32_t)h.stationID << endl; - cout << "RSP ID: " << (uint32_t)h.rspID << endl; - cout << "RCU ID: " << (uint32_t)h.rcuID << endl; - cout << "Sample Freq: " << (uint32_t)h.sampleFreq << endl; - cout << "Seq Nr: " << h.seqNr << endl; - char buf[32]; - timeToStr(h.time, buf, 32); - cout << "Time: " << h.time << " (dd-mm-yyyy: " << buf << " UTC)" << endl; - bool transient = h.nOfFreqBands == 0; - if (transient) { - cout << "Transient" << endl; - cout << "Sample Nr: " << h.sampleNr << endl; - } else { - cout << "Spectral" << endl; - cout << "Band Nr: " << (h.bandSliceNr & TBB_BAND_NR_MASK) << endl; - cout << "Slice Nr: " << (h.bandSliceNr >> TBB_SLICE_NR_SHIFT) << endl; - } - cout << "NSamples/fr: " << h.nOfSamplesPerFrame << endl; - if (!transient) { - cout << "NFreq Bands: " << h.nOfFreqBands << endl; - - bool anyBandsPresent = false; - cout << "Band(s) present(?): "; - for (unsigned i = 0; i < 64; ++i) { - for (unsigned j = 8; j > 0; ) { - --j; - if (h.bandSel[i] & (1 << j)) { - cout << 8 * i + (8-1-j) << " "; - anyBandsPresent = true; - } - } - } - if (!anyBandsPresent) { - cout << "Warning: Spectral data, but no band present!" << endl; - } else { - cout << endl; - } - } - - cout << "Spare (0): " << h.spare << endl; - cout << "crc16: " << h.crc16 << endl; -} - -void printPayload(const int16_t* payload, size_t payload_len) { - size_t data_len = payload_len - sizeof(uint32_t) / sizeof(int16_t); // - crc32 - unsigned i; - - if (data_len == 1024) { // transient has 1024 samples + crc32 - for (i = 0; i < data_len; i++) { - cout << payload[i] << " "; - } - } else { // spectral has up to 487 complex samples + crc32 - for (i = 0; i < data_len; i += 2) { - cout << '(' << payload[i] << ' ' << payload[i+1] << ") "; // assumes data_len is even - } - } - cout << endl; - - cout << "crc32: " << reinterpret_cast<uint32_t*>(payload[i]) << endl; -} - -void printFakeInput() { - TBB_Header hdr0; - - hdr0.stationID = 1; - hdr0.rspID = 2; - hdr0.rcuID = 3; - hdr0.sampleFreq = 200; - hdr0.seqNr = 10000; - hdr0.time = 1380240059; - hdr0.bandSliceNr = (17 << 10) | 11; // sliceNr=17; bandNr is 11 - hdr0.nOfSamplesPerFrame = 487; - hdr0.nOfFreqBands = 487/8 * 7 + 7; // 427, as set in the sb bitmap below - - // subband bitmap - // I'm not 100% if the bits are populated from most to least significant... - int i; - for (i = 0; i < 487/8; i++) - hdr0.bandSel[i] = 0x7f; - hdr0.bandSel[i++] = 0xfe; // remaining 7 bits to cover all 487 meaningful bits - for ( ; i < 64; i++) - hdr0.bandSel[i] = 0; - - hdr0.spare = 0; - hdr0.crc16 = 1; - - printHeader(hdr0); -} - -int main(int argc, char* argv[]) { - bool printData = false; - bool fakeInput = false; - const char* filename = "/dev/stdin"; - int nprinted = 8; - - cout << "Usage: " << argv[0] << " [-d] [-t] [data/tbbdata.raw] [nframes]" << endl; - - int argi = 1; - if (argc > argi) { - if (strcmp(argv[argi], "-d") == 0) { - printData = true; - argi += 1; - } - - if (strcmp(argv[argi], "-t") == 0) { - fakeInput = true; - argi += 1; - } - - if (argc > argi) { - filename = argv[argi]; - argi += 1; - } - - if (argc > argi) { - nprinted = std::atoi(argv[argi]); - argi += 1; - if (nprinted < 0) { - cerr << "Bad nframes argument" << endl; - return 1; - } - } - } - - - if (fakeInput) { - printFakeInput(); - exit(0); - } - - ifstream ifs(filename); - if (!ifs) { - cerr << "Failed to open " << filename << endl; - return 1; - } - - cout << "Default frame size:" << " header=" << sizeof(TBB_Header) << - " transient=" << sizeof(TBB_Header) + 1024 * sizeof(int16_t) + sizeof(uint32_t) << - " spectral=" << sizeof(TBB_Header) + 487 * 2 * sizeof(int16_t) + sizeof(uint32_t) << endl << endl; - - int exit_status = 0; - - // This doesn't work directly with data from message-oriented streams like udp, - // because header and payload need to be read using a single read() under linux. - // We don't need that for dumping data from a file; buffers are separate here. - TBB_Header h; - int16_t* payload = NULL; - for (int i = 0; i < nprinted; i++) { - ifs.read(reinterpret_cast<char*>(&h), sizeof h); - if (!ifs || static_cast<size_t>(ifs.gcount()) < sizeof h) { - cerr << "Failed to read " << sizeof h << " frame header bytes from " << filename << endl; - exit_status = 1; - goto out; - } - - printHeader(h); - - - size_t payload_len = h.nOfSamplesPerFrame; - if (h.nOfFreqBands != 0) { - payload_len *= 2; // spectral has complex nrs, so 2 * int16_t - } - payload_len += sizeof(uint32_t) / sizeof(int16_t); // crc32 - if (payload == NULL) { - // assume this is enough for all future frames; this program is for formatted frame dumps, not for the real thing anyway - payload = new int16_t[payload_len]; // data + crc32 - } - - ifs.read(reinterpret_cast<char*>(payload), payload_len * sizeof(int16_t)); - if (!ifs) { - cerr << "Failed to read " << payload_len * sizeof(int16_t) << " frame payload from " << filename << endl; - exit_status = 1; - goto out; - } - if (printData) { - printPayload(payload, payload_len); - } - - cout << "----------------------------" << endl; - } - -out: // too lazy to use proper objects in this test prog, but avoid mem leaks..... - delete[] payload; - return exit_status; -} - diff --git a/RTCP/RTCPTools/src/udp-copy.c b/RTCP/RTCPTools/src/udp-copy.c deleted file mode 100644 index c8c3c00501ffa528ad01c756b584961a555b7cbb..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/src/udp-copy.c +++ /dev/null @@ -1,212 +0,0 @@ -/* Copyright 2007, John W. Romein, Stichting ASTRON - * - * This program 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 of the License, or - * (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#define _FILE_OFFSET_BITS 64 - -#include <features.h> -#include <errno.h> -#include <fcntl.h> -#include <netdb.h> -#include <netinet/in.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <sys/types.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - - -enum proto { UDP, TCP, File } input_proto, output_proto; - -int sk_in, sk_out; -char *source, *destination; - - -void setSendBufferSize(int sk, size_t size) -{ -} - - -int create_IP_socket(char *arg, int is_output, enum proto proto) -{ - char *colon; - struct sockaddr_in sa; - struct hostent *host; - int sk, old_sk, buffer_size = 8 * 1024 * 1024; - unsigned short port; - - if ((colon = strchr(arg, ':')) == 0) { - fprintf(stderr, "badly formatted IP:PORT address"); - exit(1); - } - - port = colon[1] != '\0' ? atoi(colon + 1) : 0; - *colon = '\0'; - - if ((host = gethostbyname(arg)) == 0) { - perror("gethostbyname"); - exit(1); - } - - memset(&sa, 0, sizeof sa); - sa.sin_family = AF_INET; - sa.sin_port = htons(port); - memcpy(&sa.sin_addr, host->h_addr, host->h_length); - - if ((sk = socket(AF_INET, proto == UDP ? SOCK_DGRAM : SOCK_STREAM, proto == UDP ? IPPROTO_UDP : IPPROTO_TCP)) < 0) { - perror("socket"); - exit(1); - } - - if (is_output) { - while (connect(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - if (errno == ECONNREFUSED) { - sleep(1); - } else { - perror("connect"); - exit(1); - } - } - - if (setsockopt(sk, SOL_SOCKET, SO_SNDBUF, &buffer_size, sizeof buffer_size) < 0) - perror("setsockopt failed"); - } else { - if (bind(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - perror("bind"); - exit(1); - } - - if (proto == TCP) { - listen(sk, 5); - old_sk = sk; - - if ((sk = accept(sk, 0, 0)) < 0) { - perror("accept"); - exit(1); - } - - close(old_sk); - } - - if (setsockopt(sk, SOL_SOCKET, SO_RCVBUF, &buffer_size, sizeof buffer_size) < 0) - perror("setsockopt failed"); - } - - return sk; -} - - -int create_file(char *arg, int is_output) -{ - int fd; - - if (!strcmp(arg,"-")) { - return is_output ? 1 : 0; - } - - if ((fd = open(arg, is_output ? O_CREAT | O_WRONLY : O_RDONLY, 0666)) < 0) { - perror("opening input file"); - exit(1); - } - - return fd; -} - - -int create_fd(char *arg, int is_output, enum proto *proto) -{ - if (strncmp(arg, "udp:", 4) == 0 || strncmp(arg, "UDP:", 4) == 0) { - *proto = UDP; - arg += 4; - } else if (strncmp(arg, "tcp:", 4) == 0 || strncmp(arg, "TCP:", 4) == 0) { - *proto = TCP; - arg += 4; - } else if (strncmp(arg, "file:", 5) == 0 || strncmp(arg, "FILE:", 5) == 0) { - *proto = File; - arg += 5; - } else if (strchr(arg, ':') != 0) { - *proto = UDP; - } else { - *proto = File; - } - - if (is_output) - destination = arg; - else - source = arg; - - switch (*proto) { - case UDP : - case TCP : return create_IP_socket(arg, is_output, *proto); - - case File : return create_file(arg, is_output); - } -} - - -void init(int argc, char **argv) -{ - if (argc != 3) { - fprintf(stderr, "Usage: \"%s src-addr dest-addr\", where addr is [tcp:|udp:]ip-addr:port or [file:]filename\n", argv[0]); - exit(1); - } - - sk_in = create_fd(argv[1], 0, &input_proto); - sk_out = create_fd(argv[2], 1, &output_proto); - - setlinebuf(stdout); -} - - -int main(int argc, char **argv) -{ - time_t previous_time = 0, current_time; - unsigned i, nr_packets = 0, nr_bytes = 0; - char buffer[1024 * 1024]; - int size; - - init(argc, argv); - - while ((size = read(sk_in, buffer, 1024 * 1024)) != 0) { - if (size < 0) { - perror("read"); - sleep(1); - } else if (write(sk_out, buffer, size) < size) { - perror("write"); - sleep(1); - } else { - nr_bytes += size; - } - - ++ nr_packets; - - if ((current_time = time(0)) != previous_time) { - previous_time = current_time; - - if (input_proto == UDP) - printf("copied %u bytes (= %u packets) from %s to %s\n", nr_bytes, nr_packets, source, destination); - else - printf("copied %u bytes from %s to %s\n", nr_bytes, source, destination); - nr_packets = nr_bytes = 0; - } - } - - return 0; -} diff --git a/RTCP/RTCPTools/tools/RTCP.sh b/RTCP/RTCPTools/tools/RTCP.sh deleted file mode 100755 index 0e55b1c9363658ff29e6ba701cafed246a5db3e4..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/RTCP.sh +++ /dev/null @@ -1,176 +0,0 @@ -#!/bin/bash -# -# CorrAppl: a start/stop/status script for swlevel -# -# Copyright (C) 2007 -# ASTRON (Netherlands Foundation for Research in Astronomy) -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -# -# This program 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 of the License, or -# (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# Syntax: CorrAppl start|stop|status -# -# $Id$ -# - -# -# SyntaxError msg -# -SyntaxError() -{ - Msg=$1 - - [ -z "${Msg}" ] || echo "ERROR: ${Msg}" - echo "" - echo "Syntax: $(basename $0) start | stop | status" - echo "" - exit 1 -} - -# -# Start the program when it exists -# -start_prog() -{ - # put here your code to start your program - echo 'start_prog()' -} - -# -# Stop the program when it is running -# -stop_prog() -{ - # put here your code to stop your program - killall ApplController - ps -ef | grep -v grep | grep -v ACDaemon[^\ ] | grep ACDaemon 2>&1 >/dev/null - if [ $? -ne 0 ]; then - if [ -f ../etc/ACD.admin ]; then - rm ../etc/ACD.admin - fi - fi - echo '' - echo 'Terminate the job and to free the resources' - echo 'occupied by this job.' - killall -9 mpirun - echo '' - echo 'Terminate IONProc on the IONodes.' - for i in 33 34 37 38 41 42 45 46 49 50 53 54 57 58 61 62; do ssh 10.170.0.$i killall -9 IONProc; done; - echo '' - echo 'Terminate Storage on the StorageNodes.' - ssh listfen cexec :0,1 killall -9 Storage orted - echo '' - echo 'Terminate mpirun (listfen).' - ssh listfen killall -9 mpirun - echo '' - echo 'Killed old process.' - pid=`ps -ef |grep '\-[w]dir' |grep -v 'sh \-c'|awk '{ print $2 }'` - if [ "${pid}" != "" ]; then - kill -9 ${pid} - else - echo 'no process to killed' - fi -} - -# -# show status of program -# -# arg1 = levelnr -# -status_prog() -{ - # put here code to figure out the status of your program and - # fill the variables prog and pid with the right information - - levelnr=$1 - # status: Storage - prog='Storage' - - firstTime=1 - pid=DOWN - for i in 1 2; do - ssh list00$i ps -C Storage 2>$1 1>/dev/null - if [ $? -eq 0 ]; then - if [ ${firstTime} -eq 1 ]; then - firstTime=0 - prog=${prog}'(list00'$i - pid=`ssh list00$i ps --no-headers -C Storage | awk '{ print $1 }'` - else - prog=${prog}',list00'$i - pid=${pid}':'`ssh list00$i ps --no-headers -C Storage | awk '{ print $1 }'` - fi - fi - done - - if [ ${firstTime} -eq 0 ]; then - prog=${prog}')' - fi - - echo ${levelnr} ${prog} ${pid} | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' - # status: IONProc - prog='IONProc' - firstTime=1 - pid=DOWN - cnpid=DOWN - - for i in 33 34 37 38 41 42 45 46 49 50 53 54 57 58 61 62; do - ssh '10.170.0.'$i ps --no-headers -C IONProc 2>$1 1>/dev/null - if [ $? -eq 0 ]; then - if [ ${firstTime} -eq 1 ]; then - firstTime=0 - prog=${prog}'(10.170.0.'$i - pid=`ssh '10.170.0.'$i ps --no-headers -C IONProc | awk '{ print $1 }'` - else - prog=${prog}',10.170.0.'$i - pid=${pid}':'`ssh '10.170.0.'$i ps --no-headers -C IONProc | awk '{ print $1 }'` - fi - fi - done - - if [ ${firstTime} -eq 0 ]; then - prog=${prog}')' - cnpid=UP - fi - echo ${levelnr} ${prog} ${pid} | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' - - # status: CNProc - prog='CNProc' - echo ${levelnr} ${prog} ${cnpid} | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' - # this line should be left in, it shows the status in the right format - #echo ${levelnr} ${prog} ${pid} | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' - #echo ${levelnr} ${prog} ${status} | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' - #echo ${levelnr} ${prog} `ssh $USER@bglsn /opt/lofar/bin/stopBGL.py --status=true` | awk '{ printf "%s : %-25s %s\n", $1, $2, $3 }' -} - -# -# MAIN -# - -# when no argument is given show syntax error. -if [ -z "$1" ]; then - SyntaxError -fi - -# first power down to this level -case $1 in - start) start_prog - ;; - stop) stop_prog - ;; - status) status_prog $2 - ;; - *) SyntaxError - ;; -esac diff --git a/RTCP/RTCPTools/tools/startAP.sh b/RTCP/RTCPTools/tools/startAP.sh deleted file mode 100755 index f7edeca412c3a3f411895f616c9938dc8ac231e9..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/startAP.sh +++ /dev/null @@ -1,21 +0,0 @@ -# startBGL.sh jobName partition executable workingDir paramfile noNodes -# -# jobName -# partition -# executable executable file (should be in a place that is readable from BG/L) -# workingDir directory for output files (should be readable by BG/L) -# parameterfile jobName.ps -# noNodes number of nodes of the partition to use -# -# start the job and stores the jobID in jobName.jobID -# -# all ACC processes expect to be started with "ACC" as first parameter - -# start process - -partition=`Run/src/getPartition.py --parset=IONProc.parset` -stationlist=`Run/src/getStations.py --parset=IONProc.parset` -clock=`Run/src/getSampleClock.py --parset=IONProc.parset` -integrationtime=`Run/src/getIntegrationtime.py --parset=IONProc.parset` - -Run/src/Run.IONProc.py --partition=$partition --stationlist=$stationlist --integrationtime=$integrationtime --clock=$clock 1 >/dev/null 2>&1 & diff --git a/RTCP/RTCPTools/tools/startBGL.sh b/RTCP/RTCPTools/tools/startBGL.sh deleted file mode 100755 index ba21d6dd351e42cb87373e30d6dcdfb2f9abe764..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/startBGL.sh +++ /dev/null @@ -1,21 +0,0 @@ -# startBGL.sh jobName partition executable workingDir paramfile noNodes -# -# jobName -# partition -# executable executable file (should be in a place that is readable from BG/L) -# workingDir directory for output files (should be readable by BG/L) -# parameterfile jobName.ps -# noNodes number of nodes of the partition to use -# -# start the job and stores the jobID in jobName.jobID -# -# all ACC processes expect to be started with "ACC" as first parameter - -# start process - -partition=`Run/src/getPartition.py --parset=CNProc.parset` -stationlist=`Run/src/getStations.py --parset=CNProc.parset` -clock=`Run/src/getSampleClock.py --parset=CNProc.parset` -integrationtime=`Run/src/getIntegrationtime.py --parset=CNProc.parset` - -Run/src/Run.CNProc.py --partition=$partition --stationlist=$stationlist --integrationtime=$integrationtime --clock=$clock 1 >/dev/null 2>&1 & diff --git a/RTCP/RTCPTools/tools/startMPI.sh b/RTCP/RTCPTools/tools/startMPI.sh deleted file mode 100755 index 8393266fc433808488eedc986e25172ba31d935a..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/startMPI.sh +++ /dev/null @@ -1,23 +0,0 @@ -# startMPI.sh jobName machinefile executable paramfile noNodes -# -# $1 jobName identifier for this job -# $2 machinefile procID.machinefile -# $3 executable processname -# $4 parameterfile procID.ps -# $5 numberOfNodes -# -# calls mpirun and remembers the pid -# - -# now all ACC processes expect to be started with ACC as first parameter - -# start process -# TODO: on some hosts, mpirun has a different name (or a specific path) -# on some hosts, we should use -hostfile instead of -machinefile - -partition=`Run/src/getPartition.py --parset=Storage.parset` -stationlist=`Run/src/getStations.py --parset=Storage.parset` -clock=`Run/src/getSampleClock.py --parset=Storage.parset` -integrationtime=`Run/src/getIntegrationtime.py --parset=Storage.parset` - -Run/src/Run.Storage.py --partition=$partition --stationlist=$stationlist --integrationtime=$integrationtime --clock=$clock 1 >/dev/null 2>&1 & diff --git a/RTCP/RTCPTools/tools/stopAP.sh b/RTCP/RTCPTools/tools/stopAP.sh deleted file mode 100755 index 8dce8b62307f4e981801758289bac89f3bc8ac7c..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/stopAP.sh +++ /dev/null @@ -1,14 +0,0 @@ -# stopAP.sh partition jobName -# -# partition BG/L partition the job is running on -# jobName The name of the job -# - -for i in 33 34 37 38 41 42 45 46 49 50 53 54 57 58 61 62; do ssh 10.170.0.$i killall -9 IONProc; done; - -pid=`ps -ef |grep '\-[w]dir' |grep -v 'sh \-c'|awk '{ print $2 }'` -if [ "${pid}" != "" ]; then - kill -9 ${pid} -else - echo 'no process to killed' -fi diff --git a/RTCP/RTCPTools/tools/stopBGL.sh b/RTCP/RTCPTools/tools/stopBGL.sh deleted file mode 100755 index a6313fd00a8f2c24d7cf509467ab0cbb9de26648..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/stopBGL.sh +++ /dev/null @@ -1,14 +0,0 @@ -# stopAP.sh partition jobName -# -# partition BG/L partition the job is running on -# jobName The name of the job -# - -killall -9 mpirun - -pid=`ps -ef |grep '\-[w]dir' |grep -v 'sh \-c'|awk '{ print $2 }'` -if [ "${pid}" != "" ]; then - kill -9 ${pid} -else - echo 'no process to killed' -fi diff --git a/RTCP/RTCPTools/tools/stopMPI.sh b/RTCP/RTCPTools/tools/stopMPI.sh deleted file mode 100755 index 5f642e0291072f344e68b7394a47c6db573d8b87..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/stopMPI.sh +++ /dev/null @@ -1,22 +0,0 @@ -# stopMPI.sh execName -# -# -# Stops the given process by killing the process whose pid is in the -# proces.pid file. - -# TODO: for some mpi versions it is not enough to kill mpirun -# we could "killall executable", but that would also kill -# processes started by another ApplicationController - -ssh listfen cexec :0-1 killall -9 Storage orted - -ssh listfen killall -9 mpirun - -rm -f $1*.ps - -pid=`ps -ef |grep '\-[w]dir' |grep -v 'sh \-c'|awk '{ print $2 }'` -if [ "${pid}" != "" ]; then - kill -9 ${pid} -else - echo 'no process to killed' -fi diff --git a/RTCP/RTCPTools/tools/swlevel.conf b/RTCP/RTCPTools/tools/swlevel.conf deleted file mode 100644 index a6eb1b3da5e4c6bddcca5fcef17549e36ddd387b..0000000000000000000000000000000000000000 --- a/RTCP/RTCPTools/tools/swlevel.conf +++ /dev/null @@ -1,11 +0,0 @@ -# -# swlevel.conf -# -# Table to manage the progrma that should be started and stopped -# level : up : down : root : mpi : program -# - -1:u:d:::ACDaemon -6::d:::ApplController -6::d:::RTCP - diff --git a/RTCP/Run/CMakeLists.txt b/RTCP/Run/CMakeLists.txt deleted file mode 100644 index d66aec30b05337f063a0dd983635d4f0c6af992c..0000000000000000000000000000000000000000 --- a/RTCP/Run/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# $Id: CMakeLists.txt 15535 2010-04-23 11:41:06Z romein $ - -lofar_package(Run 1.0 - DEPENDS MACIO) - -add_subdirectory(src) diff --git a/RTCP/Run/package.dox b/RTCP/Run/package.dox deleted file mode 100644 index e7ac83e80629adbb21dc05cbe5c4a61a9f486166..0000000000000000000000000000000000000000 --- a/RTCP/Run/package.dox +++ /dev/null @@ -1 +0,0 @@ -// \defgroup CS1_Run CS1_Run Description diff --git a/RTCP/Run/src/BGPPartition.sh b/RTCP/Run/src/BGPPartition.sh deleted file mode 100755 index 38b9bd926c24205b94b28558b70cca0950d656ea..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/BGPPartition.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -. locations.sh - -function start() { - mpirun -partition $PARTITION -timeout 300 -nofree -exe /bgsys/tools/hello >/dev/null -} - -function stop() { - mpirun -partition $PARTITION -free wait -} - -function getpid() { - STATUS=`cd /;bgpartstatus $PARTITION </dev/null` - - case $STATUS in - busy) PID="UP [$PARTITION]" - ;; - *) PID="DOWN [$PARTITION]" - ;; - esac -} - -function setpid() { - true -} - -function delpid() { - true -} - -. controller.sh diff --git a/RTCP/Run/src/BlueGeneCheck.sh b/RTCP/Run/src/BlueGeneCheck.sh deleted file mode 100755 index 0451d652c7bb4f5a06e856a575e5bd9d8431fd8f..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/BlueGeneCheck.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -CONFIG=/opt/lofar/etc/BlueGeneControl.conf - -. $CONFIG - -SCRIPTDIR=$BINPATH/LOFAR -RASLOG=/bgsys/logs/BGP/bgsn-bgdb0-mmcs_db_server-current.log - -# ##### HARDWARE ##### - -function reachable { - IP=$1 - - ping $IP -c 1 -w 2 -q >/dev/null 2>&1 - if [ $? -eq 0 ] - then - echo yes - else - echo no - fi -} - -# ----- Partition information - -echo partition $PARTITION - -PARTITION_STATUS=`bgpartstatus $PARTITION` -PARTITION_OWNER=`bgbusy | grep $PARTITION | awk '{ print $5; }'` - -echo '# partition status should be "busy"' -echo partition_status $PARTITION_STATUS - -echo '# partition owner should be "'$USER'"' -echo partition_owner $PARTITION_OWNER - -# ----- I/O node information - -IONODES=`$SCRIPTDIR/Partitions.py -l $PARTITION` - -echo '# a list of I/O node IP addresses' -echo ionode_list $IONODES - -echo '# all I/O nodes should be reachable' -for i in $IONODES -do - echo ionode_reachable $i `reachable $i` - echo ionode_mac $i `/sbin/arp -n $i | awk '/ether/ { print $3; }'` -done - -echo '# the service node (bgsn) should be reachable' -echo service_node_reachable `reachable bgsn` - -# ----- RAS events - -# can't access logs on bgfen, cheat using an I/O node -echo '# the latest RAS events for this partition and the current owner' -FIRST_IONODE=`echo $IONODES | awk '{ print $1; }'` -ssh -q $FIRST_IONODE grep RasEvent $RASLOG 2>&1 | grep $PARTITION_OWNER:$PARTITION | perl -ne ' -/time="([^"]+)".*BG_LOC="([^"]+)".*BG_MSG="([^"]+)".*BG_SEV="([^"]+)"/ || next; -print "rasevent $2 $1 $4 $3\n"; -' - -# ##### SOFTWARE ##### - -# ----- Job information - -JOB_STATUS_LONG=`bgjobs -s -u $PARTITION_OWNER | grep $PARTITION` - -if [ "$JOB_STATUS_LONG" == "" ] -then - # no job running - JOB_NAME=none - JOB_STATUS=none -else - JOB_NAME=`echo $JOB_STATUS_LONG | awk '{ print $4; }'` - JOB_STATUS=`echo $JOB_STATUS_LONG | awk '{ print $6; }'` -fi - -echo '# job name should be "CN_Processing"' -echo cn_job_name $JOB_NAME - -echo '# job status should be "running"' -echo cn_job_status $JOB_STATUS - diff --git a/RTCP/Run/src/BlueGeneControl.conf b/RTCP/Run/src/BlueGeneControl.conf deleted file mode 100644 index cafdf81fc35dae046a53459afb65feb620a69b0f..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/BlueGeneControl.conf +++ /dev/null @@ -1,22 +0,0 @@ -# Reroute observations to Cobalt? -# 0: No, process observations on the BG/P -# 1: Yes, reroute observations to Cobalt (mol@cbm001) -ROUTE_TO_COBALT=0 - -# Determine the BG/P partition to use -if [ "$USER" == "lofarsys" ] -then - if [ "`basename $HOME`" == "lofartest" ] - then - PARTITION=R00 # production partition - # PARTITION=R01-M0-N00-32 # test partition NOW OBSOLETED! - else - PARTITION=R00 # production partition - fi -fi - -if [ -z "$PARTITION" ] -then - echo Please define \$PARTITION. >&2 - exit -fi diff --git a/RTCP/Run/src/CEPlogProcessorSettings.cc b/RTCP/Run/src/CEPlogProcessorSettings.cc deleted file mode 100644 index 1adc6d83ae072667d4e8ef2b0b2bd45f1b32294c..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/CEPlogProcessorSettings.cc +++ /dev/null @@ -1,10 +0,0 @@ -#include <lofar_config.h> -#include <MACIO/MACServiceInfo.h> - -#include <iostream> - -int main() -{ - std::cout << "production: " << "ccu001:" << CEP_LOGPROC_LOGGING << std::endl; - std::cout << "test: " << "ccu099:" << CEP_LOGPROC_LOGGING << std::endl; -} diff --git a/RTCP/Run/src/CMakeLists.txt b/RTCP/Run/src/CMakeLists.txt deleted file mode 100644 index d158f63cad17369ee92a55bc0ac55561b972de06..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -# $Id: CMakeLists.txt 14273 2009-10-16 10:08:29Z loose $ - -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/locations.sh.in - ${CMAKE_CURRENT_BINARY_DIR}/locations.sh - @ONLY) - -install(PROGRAMS - routeToCobalt - startBGL.sh - stopBGL.sh - BGPPartition.sh - CNProcessing.sh - IONProcessing.sh - LogArchiver.sh - controller.sh - gracefullyStopBGProcessing.sh - ${CMAKE_CURRENT_BINARY_DIR}/locations.sh - watchlogs.sh - commandOLAP.py - DESTINATION bin) - -install(FILES - BlueGeneControl.conf - casarc - multitail-olap.conf - OLAP.parset - MAC+IP.dat - RSPConnections.dat - DESTINATION etc) - -lofar_add_bin_program(CEPlogProcessorSettings CEPlogProcessorSettings.cc) - -add_subdirectory(LOFAR) -add_subdirectory(util) -add_subdirectory(tools) diff --git a/RTCP/Run/src/CNProcessing.sh b/RTCP/Run/src/CNProcessing.sh deleted file mode 100755 index b8f07788ac10af6c661b824e0c515223358cb797..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/CNProcessing.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -source locations.sh - -function start() { - set_psetinfo - - # make sure the log dir exists - mkdir -p "$LOGDIR" - - TMPDIR="`mktemp -d`" - PIDFILE="$TMPDIR/pid" - - # use a fifo to avoid race conditions - mkfifo "$PIDFILE" - - (mpirun -noallocate -mode VN -partition "$PARTITION" -env DCMF_COLLECTIVES=0 -env BG_MAPPING=XYZT -env LD_LIBRARY_PATH=/bgsys/drivers/ppcfloor/comm/lib:/bgsys/drivers/ppcfloor/runtime/SPI:/globalhome/romein/lib.bgp -cwd "$RUNDIR" -exe "$CNPROC" 2>&1 & - echo $! > "$PIDFILE") | LOFAR/Logger.py $LOGPARAMS "$LOGDIR/CNProc.log" & - - PID=`cat "$PIDFILE"` - rm -f "$PIDFILE" - rmdir "$TMPDIR" - - if [ -z "$PID" ] - then - PID=DOWN - fi -} - -function stop() { - set_psetinfo - - # graceful exit - alarm 10 gracefullyStopBGProcessing.sh - - # ungraceful exit - [ -e /proc/$PID ] && ( - # mpikill only works when mpirun has started running the application - mpikill "$PID" || - - # ask DNA to kill the job - (cd /;bgjobs -u $USER -s | awk "/$PARTITION/ { print \$1; }" | xargs -L 1 bgkilljob) || - - # kill -9 is the last resort - kill -9 "$PID" - ) && sleep 10 - - # wait for job to die - TIMEOUT=10 - - while true - do - JOBSTATUS=`cd /;bgjobs -u $USER -s | awk "/$PARTITION/ { print \\$6; }"` - JOBID=`cd /;bgjobs -u $USER -s | awk "/$PARTITION/ { print \\$1; }"` - - if [ -z "$JOBID" ] - then - # job is gone - break - fi - - case "$JOBSTATUS" in - dying) - sleep 1 - continue ;; - - running) - sleep 1 - - if [ $((--TIMEOUT)) -ge 0 ] - then - continue - fi - ;; - esac - - echo "Failed to kill BG/P job $JOBID. Status is $JOBSTATUS" - break - done -} - -. controller.sh diff --git a/RTCP/Run/src/IONProcessing.sh b/RTCP/Run/src/IONProcessing.sh deleted file mode 100755 index 7873a9657468f989e1fa643bdcb2900eaa9847f4..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/IONProcessing.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -source locations.sh - -function start() { - set_psetinfo - - # make sure the log dir exists - mkdir -p "$LOGDIR" - - TMPDIR=`mktemp -d` - PIDFILE="$TMPDIR/pid" - - # use a fifo to avoid race conditions - mkfifo "$PIDFILE" - - (/bgsys/LOFAR/openmpi-ion/bin/mpirun -x LOFARROOT=`readlink -f $LOFARROOT` -host "$PSETS" --pernode -wd "$RUNDIR" "$IONPROC" "$ISPRODUCTION" 2>&1 & - echo $! > "$PIDFILE") | LOFAR/Logger.py $LOGPARAMS "$LOGDIR/IONProc.log" & - - PID=`cat $PIDFILE` - rm -f "$PIDFILE" - rmdir "$TMPDIR" - - if [ -z "$PID" ] - then - PID=DOWN - fi -} - -function stop() { - # graceful exit - alarm 10 gracefullyStopBGProcessing.sh - - # ungraceful exit - [ -e /proc/$PID ] && kill -15 "$PID" && (sleep 2; [ -e /proc/$PID ] && kill -9 "$PID") -} - -. controller.sh diff --git a/RTCP/Run/src/LOFAR/CMakeLists.txt b/RTCP/Run/src/LOFAR/CMakeLists.txt deleted file mode 100644 index 833c0da88049668b580641d747076d68fab42363..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# $Id: CMakeLists.txt 14273 2009-10-16 10:08:29Z loose $ - -install(PROGRAMS - __init__.py - CommandClient.py - Logger.py - LogValidators.py - ObservationID.py - Parset.py - ParsetTester.py - Partitions.py - RingCoordinates.py - Stations.py - DESTINATION bin/LOFAR) diff --git a/RTCP/Run/src/LOFAR/CommandClient.py b/RTCP/Run/src/LOFAR/CommandClient.py deleted file mode 100644 index 18f6232ab2c4f439fdbc7e9bf3a1c203d7e0b95e..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/CommandClient.py +++ /dev/null @@ -1,34 +0,0 @@ -from Partitions import PartitionPsets -import socket -import os - -class CommandClient: - def __init__( self, partition, port = 4000 ): - self.partition = partition - self.server = PartitionPsets[partition][0] - self.port = port - - self.fd = -1 - - self.connect() - - def connect( self ): - self.fd = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) - - try: - self.fd.connect( (self.server, self.port ) ) - except socket.error, msg: - self.close() - raise - - def send( self, str ): - self.fd.send( "%s\n" % (str,) ) - - def close( self ): - self.fd.close() - self.fd = -1 - -def sendCommand( partition, command ): - cc = CommandClient( partition ) - cc.send( command ) - cc.close() diff --git a/RTCP/Run/src/LOFAR/LogValidators.py b/RTCP/Run/src/LOFAR/LogValidators.py deleted file mode 100644 index 288b454dd4a622c4953a7ee03889dc9992c4c9b4..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/LogValidators.py +++ /dev/null @@ -1,61 +0,0 @@ -import re - -class ValidationError(Exception): - pass - -class LogValidator: - """ Validates a log file. """ - - def __init__(self): - self.ok = True - - def begin(self): - pass - - def parse(self,line): - parts = line.split(" ",4) - if len(parts) != 5: - self.parseLine(line) - else: - self.parseLogLine(*parts) - - def parseLogLine(self,proc,date,time,level,msg): - pass - - def parseLine(self,line): - pass - - def end(self): - pass - - def valid(self): - return self.ok - -class AlwaysValid(LogValidator): - """ Considers a log to be always valid. """ - pass - -class NoErrors(LogValidator): - """ Considers a log valid if there are no errors or exceptions. """ - - def parseLogLine(self,proc,date,time,level,msg): - if level in ["FATAL","ERROR","EXCEPTION"]: - raise ValidationError( "Encountered an %s" % (level,) ) - -class NoDrops(LogValidator): - """ Considers a log valid if there is no dropped data reported. """ - - def parseLogLine(self,proc,date,time,level,msg): - if proc.startswith("IONProc") and "Dropping data" in msg: - raise ValidationError( "Dropped data" ) - - if proc.startswith("Storage") and "OutputThread dropped" in msg: - raise ValidationError( "Dropped data" ) - -class RealTime(LogValidator): - """ Considers a log valid if the pipeline seems to operate in real time. """ - - def parseLogLine(self,proc,date,time,level,msg): - if proc.startswith("IONProc") and re.search("late: +[0-9.]+ +s",msg): - raise ValidationError( "Non-realtime behaviour" ) - diff --git a/RTCP/Run/src/LOFAR/Logger.py b/RTCP/Run/src/LOFAR/Logger.py deleted file mode 100644 index 4089e3ef96c6d75c25869d5c14a0985e75ae19e4..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/Logger.py +++ /dev/null @@ -1,293 +0,0 @@ -#!/usr/bin/python - -import sys -import os -from time import strftime,localtime,sleep -import logging -from logging.handlers import TimedRotatingFileHandler -from traceback import format_exception -from itertools import count -import socket -from struct import pack -import Queue -from threading import Thread - -DEBUG=False - -class reconnecting_socket: - """ A socket that keeps reconnecting if the connection is lost. Data is sent - asynchronously, with a buffer which drops messages if full. """ - - def __init__( self, host, port, retry_timeout=10, socket_timeout=5, bufsize=256 ): - self.host = host - self.port = port - self.socket_timeout = socket_timeout - self.retry_timeout = retry_timeout - self.socket = None - self.done = False - - self.writebuf = Queue.Queue( bufsize ) - - self.iothread = Thread( target=self.iothread_main, name="I/O thread for %s:%s" % (host,port) ) - self.iothread.start() - - def iothread_main( self ): - def close(): - self.socket.close() - self.socket = None - - def reconnect(): - self.socket = socket.socket() - self.socket.settimeout( self.socket_timeout ) - - while not self.done: - try: - self.socket.connect( (self.host,self.port) ) - self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_LINGER, pack('ii', 1, self.socket_timeout) ) - except socket.error: - pass - except socket.timeout: - pass - else: - # connected! - break - - # sleep, but do stop when told - for i in xrange( self.retry_timeout ): - if self.done: - return - sleep( 1 ) - - def write( data ): - written = 0 - - while written < len(data): - if self.socket is None: - reconnect() - - if self.done: - return - - try: - written += self.socket.send( data[written:] ) - except socket.error: - close() - continue - except socket.timeout: - close() - continue - - # start with a connection - if self.socket is None: - reconnect() - - while True: - try: - data = self.writebuf.get( timeout=1 ) - except Queue.Empty: - # TODO: we can't keep a close check on our socket, delaying - # closing and reconnecting and keeping the line open - continue - - if data is None: - # close request - break - - write( data ) - - def write( self, data ): - if self.done: - return - - try: - self.writebuf.put_nowait( data ) - except Queue.Full: - # queue full -- drop data - pass - - def close( self ): - self.done = True # abort any reconnection attempts - self.writebuf.put( None ) # prod the deque, wait if necessary - - self.iothread.join() - -def my_excepthook( etype, value, tb ): - """ Replacement for default exception handler, which uses the logger instead of stderr. """ - - lines = format_exception( etype, value, tb ) - - for l in lines: - for m in l.split("\n")[:-1]: - logging.critical( m ) - -def initLogger(): - if DEBUG: - minloglevel = logging.DEBUG - else: - minloglevel = logging.INFO - - logging.basicConfig( level = minloglevel, - format = "OLAP %(asctime)s.%(msecs)03d %(levelname)-5s %(message)s", - datefmt = "%d-%m-%y %H:%M:%S", - ) - - logging.raiseExceptions = False - - loglevels = { - "DEBUG": logging.DEBUG, - "INFO": logging.INFO, - "WARN": logging.WARNING, - "ERROR": logging.ERROR, - "FATAL": logging.CRITICAL - } - - for name,level in loglevels.iteritems(): - logging.addLevelName( level, name ) - - sys.excepthook = my_excepthook - -class TimedSizeRotatingFileHandler(TimedRotatingFileHandler): - """ - Rolls over both at midnight and after the log has reached a certain size. - """ - def __init__(self, filename): - TimedRotatingFileHandler.__init__( self, filename, when = "midnight", interval = 1, backupCount = 0 ) - - self.maxBytes = 1024*1024*1024 - self.fileCount = 1 - - def shouldRollover(self, record): - if TimedRotatingFileHandler.shouldRollover(self, record): - return 1 - - msg = "%s\n" % self.format(record) - - if self.stream.tell() + len(msg) >= self.maxBytes: - return 1 - - return 0 - - def doRollover(self): - def rename(f,t): - if not os.path.exists(f): - return - - if os.path.exists(t): - os.remove(t) - os.rename(f,t) - - t = self.rolloverAt - self.interval - timeTuple = localtime(t) - - base = self.baseFilename + "." + strftime(self.suffix, timeTuple) - - if os.path.exists( base ): - # increment the suffix number of older logfiles, since TimedRotatingFileHandler - # will overwrite "base" - for b in xrange( self.fileCount, -1, -1 ): - if b == 0: - sfn = base - else: - sfn = base + "." + str(b) - - dfn = base + "." + str(b+1) - - rename( sfn, dfn ) - - self.fileCount += 1 - else: - self.fileCount = 1 - - TimedRotatingFileHandler.doRollover(self) - -def rotatingLogger( appname, filename ): - logger = logging.getLogger( appname ) - - handler = TimedSizeRotatingFileHandler( filename ) - - logger.propagate = False - logger.addHandler( handler ) - - return logger - -if __name__ == "__main__": - import sys - - if len(sys.argv) < 2: - print "Usage: %s outputfilename [maxfilesize]" % (sys.argv[0],) - sys.exit(1) - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - - parser = OptionParser( usage = """usage: %prog [options] outputfilename - """ ) - - parser.add_option( "-s", "--server", - dest = "server", - type = "string", - help = "output to logserver (host:port)" ) - parser.add_option( "-v", "--verbose", - dest = "verbose", - action = "store_true", - default = False, - help = "output to stdout [%default]" ) - parser.add_option( "-t", "--timestamp", - dest = "timestamp", - action = "store_true", - default = False, - help = "prefix each line with the current date/time [%default]" ) - parser.add_option( "-m", "--maxmb", - dest = "maxmb", - type = "int", - default = 512, - help = "maximum file size in megabytes [%default]" ) - - # parse arguments - (options, args) = parser.parse_args() - - if not args: - parser.print_help() - sys.exit(1) - - initLogger() - - logfilename = args[0] - logger = rotatingLogger( "foo", logfilename ) - logger.handlers[0].maxBytes = options.maxmb * 1024 * 1024 - - verbose = options.verbose - add_time = options.timestamp - if options.server: - host,port = options.server.split(":") - port = int(port) - - if port == 0: - print "Invalid port number: %s" % (sys.argv[2],) - sys.exit(1) - - server = reconnecting_socket(host, port) - else: - server = None - - # 'for line in sys.stdin' buffers input, which - # is not what we want at all, so we use - # sys.stdin.readline instead. - for line in iter(sys.stdin.readline, ""): - if server: - server.write(line) - - line = line[:-1] # strip trailing \n - - if add_time: - line = strftime("%Y-%m-%d %H:%M:%S ") + line - - logger.info( "%s", line ) - - if verbose: - print line - - - if server: - server.close() - diff --git a/RTCP/Run/src/LOFAR/ObservationID.py b/RTCP/Run/src/LOFAR/ObservationID.py deleted file mode 100644 index 5b9bd03678d472207fb5d8541e4e05fe4f92f528..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/ObservationID.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python - -from util.Hosts import ropen - -# do not modify any files if DRYRUN is True -DRYRUN = False - -""" - The following files exist to aid the creation of observation IDs: - - nextMSnumber contains the next free observation ID (integer) -""" - -class ObservationID: - def __init__( self ): - self.obsid = 0 - - def generateID( self, nextMSnumber = "/globalhome/lofarsystem/log/nextMSNumber" ): - """ Returns an unique observation ID to use and reserve it. """ - - if self.obsid: - # already reserved an observation ID - return self.obsid - - # read the next ms number - f = ropen( nextMSnumber, "r" ) - obsid = int(f.readline()) - f.close() - - if not DRYRUN: - # increment it and save - f = ropen( nextMSnumber, "w" ) - print >>f, "%s" % (obsid+1) - f.close() - - self.obsid = obsid - - return self.obsid - -if __name__ == "__main__": - obsID = ObservationID() - print obsID.generateID() - diff --git a/RTCP/Run/src/LOFAR/Parset.py b/RTCP/Run/src/LOFAR/Parset.py deleted file mode 100644 index 326be0bdd4dd482f822f5fce8c6de3154734b70c..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/Parset.py +++ /dev/null @@ -1,941 +0,0 @@ -#!/usr/bin/python -import sys,os - -# allow ../util to be found, a bit of a hack -sys.path += [(os.path.dirname(__file__) or ".")+"/.."] - -import util.Parset -import os -from itertools import count -from Partitions import PartitionPsets -from Stations import Stations, overrideRack -from RingCoordinates import RingCoordinates -from util.dateutil import parse,format,parseDuration,timestamp -from logging import error,warn -import math -from sets import Set - -# if True, reroute all traffic from first IO node to all but the last storage node, -# and the rest to the last storage node -PERFORMANCE_TEST = False - -NRRSPBOARDS=4 -NRBOARDBEAMLETS=61 - -class Parset(util.Parset.Parset): - def __init__(self): - util.Parset.Parset.__init__(self) - - self.stations = [] - self.storagenodes = [] - self.partition = "" - self.psets = [] - - self.filename = "" - - def applyAntennaSet( self, station, antennaset = None ): - if antennaset is None: - antennaset = self["Observation.antennaSet"] - - if antennaset == "": - # useful for manually entered complete station names like CS302HBA1 - suffix = [""] - elif antennaset in ["LBA_INNER","LBA_OUTER","LBA_X","LBA_Y","LBA_SPARSE_EVEN","LBA_SPARSE_ODD"]: - suffix = ["LBA"] - elif station.startswith("CS"): - if antennaset in ["HBA_ZERO","HBA_ZERO_INNER"]: - suffix = ["HBA0"] - elif antennaset in ["HBA_ONE","HBA_ONE_INNER"]: - suffix = ["HBA1"] - elif antennaset in ["HBA_JOINED","HBA_JOINED_INNER"]: - suffix = ["HBA"] - elif antennaset in ["HBA_DUAL","HBA_DUAL_INNER"]: - suffix = ["HBA0","HBA1"] - else: - assert false, "Unknown antennaSet: %s" % (antennaset,) - else: - suffix = ["HBA"] - - return "+".join(["%s%s" % (station,s) for s in suffix]) - - - def setFilename( self, filename ): - self.filename = filename - - def getFilename( self ): - return self.filename - - def save(self): - self.writeFile( self.filename ) - - def distillStations(self, key="Observation.VirtualInstrument.stationList"): - """ Distill station names to use from the parset file and return them. """ - - if key not in self: - return "+".join(self.get('OLAP.storageStationNames',"")) - - # translate station name + antenna set to CEP comprehensable names - antennaset = self["Observation.antennaSet"] - - return "+".join( [self.applyAntennaSet(s) for s in self[key]] ) - - def distillPartition(self, key="OLAP.CNProc.partition"): - """ Distill partition to use from the parset file and return it. """ - - if key not in self: - return "" - - return self[key] - - def distillStorageNodes(self, key="OLAP.Storage.hosts"): - """ Distill storage nodes to use from the parset file and return it. """ - - if key in self: - return self.getStringVector(key) - - outputnames = ["Correlated","Beamformed","Trigger"] + ["CoherentStokes","IncoherentStokes"] # still parse Coherent and Incoherent because the scheduler still sets them. While we collapse them into Beamformed later on, this code is needed before that - locationkeys = ["Observation.DataProducts.Output_%s.locations" % p for p in outputnames] - - storagenodes = set() - - for k in locationkeys: - if k not in self: - continue - - locations = self.getStringVector(k) - hostnames = [x.split(":")[0] for x in locations] - storagenodes.update( set(hostnames) ) - - return list(storagenodes) - - def postRead(self): - """ Distill values for our internal variables from the parset. """ - - # partition - partition = self.distillPartition() - if partition: - self.setPartition( partition ) - - if self.partition and self.partition != "R00R01" and self.partition != "LOFARTEST": - overrideRack( Stations, int(self.partition[2]) ) - - # storage nodes - storagenodes = self.distillStorageNodes() or [] - self.setStorageNodes( storagenodes ) - - # stations - stationStr = self.distillStations() - if stationStr: - stationList = Stations.parse( stationStr ) - self.setStations( stationList ) - - def addMissingKeys(self): - """ Sets some default values which SAS does not yet contain. """ - - # meta data - self.setdefault("Observation.ObserverName","unknown") - self.setdefault("Observation.ProjectName","unknown") - - self.setdefault("Observation.DataProducts.Output_Trigger.enabled",False) - - if 'OLAP.PPF' in self: - if not self['OLAP.PPF']: - self["Observation.channelsPerSubband"] = 1 - else: - self['OLAP.PPF'] = int(self["Observation.channelsPerSubband"]) > 1 - - for k in ["OLAP.CNProc_CoherentStokes.channelsPerSubband", "OLAP.CNProc_IncoherentStokes.channelsPerSubband"]: - if k not in self or int(self[k]) == 0: - self[k] = self["Observation.channelsPerSubband"] - self.setdefault('Observation.DataProducts.Output_Beamformed.namemask','L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw') - self.setdefault('Observation.DataProducts.Output_Correlated.namemask','L${OBSID}_SB${SUBBAND}_uv.MS') - self.setdefault('Observation.DataProducts.Output_Trigger.namemask','L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger') - self.setdefault('OLAP.dispersionMeasure', 0); - - self.setdefault('Observation.DataProducts.Output_Beamformed.dirmask','L${YEAR}_${OBSID}') - self.setdefault('Observation.DataProducts.Output_Correlated.dirmask','L${YEAR}_${OBSID}') - self.setdefault('Observation.DataProducts.Output_Trigger.dirmask','L${YEAR}_${OBSID}') - - # default beamlet settings, derived from subbandlist, for development - if "Observation.subbandList" in self: - nrSubbands = len(self.getInt32Vector("Observation.subbandList")) - else: - nrSubbands = NRRSPBOARDS*NRBOARDBEAMLETS - - if "Observation.nrBitsPerSample" in self: - bitmode = int(self["Observation.nrBitsPerSample"]) - elif "OLAP.nrBitsPerSample" in self: - bitmode = int(self["OLAP.nrBitsPerSample"]) - else: - bitmode = 16 - - if "Observation.nrSlotsInFrame" in self: - slots = int(self["Observation.nrSlotsInFrame"]) - else: - slots = 16/bitmode * NRBOARDBEAMLETS - - self.setdefault("Observation.subbandList", [151+s for s in xrange(nrSubbands)]) - self.setdefault("Observation.beamList", [0 for s in xrange(nrSubbands)]) - - def convertSASkeys(self): - """ Convert keys generated by SAS to those used by OLAP. """ - - def delIfEmpty( k ): - if k in self and not self[k]: - del self[k] - - # SAS cannot omit keys, so assume that empty keys means 'use default' - delIfEmpty( "OLAP.CNProc.phaseOnePsets" ) - delIfEmpty( "OLAP.CNProc.phaseTwoPsets" ) - delIfEmpty( "OLAP.CNProc.phaseThreePsets" ) - - # make sure these values will be recalculated in finalise() - del self['OLAP.IONProc.integrationSteps'] - del self['OLAP.CNProc.integrationSteps'] - - # convert pencil rings and fly's eye to more coordinates - for b in count(): - if "Observation.Beam[%s].angle1" % (b,) not in self: - break - - self.setdefault("Observation.Beam[%s].nrTabRings" % (b,),0) - self.setdefault("Observation.Beam[%s].tabRingSize" % (b,),0.0) - - dirtype = self["Observation.Beam[%s].directionType" % (b,)] - center_angle1 = float(self["Observation.Beam[%s].angle1" % (b,)]) - center_angle2 = float(self["Observation.Beam[%s].angle2" % (b,)]) - dm = int(self.get("OLAP.dispersionMeasure",0)) - - nrrings = int(self["Observation.Beam[%s].nrTabRings" % (b,)]) - width = float(self["Observation.Beam[%s].tabRingSize" % (b,)]) - ringcoordinates = RingCoordinates( nrrings, width, (center_angle1, center_angle2), dirtype ) - ringset = [ - { "angle1": angle1, - "angle2": angle2, - "directionType": dirtype, - "dispersionMeasure": dm, - "stationList": [], - "specificationType": "ring", - "coherent": True, - } for (angle1,angle2) in ringcoordinates.coordinates() - ] - - flyseyeset = [] - - if self.getBool("OLAP.PencilInfo.flysEye"): - allStationNames = [st.getName() for st in self.stations] - - for s in allStationNames: - flyseyeset.append( - { "angle1": 0, - "angle2": 0, - "directionType": dirtype, - "dispersionMeasure": dm, - "stationList": [s], - "specificationType": "flyseye", - "coherent": True, - } - ) - - manualset = [] - - for m in count(): - if "Observation.Beam[%s].TiedArrayBeam[%s].angle1" % (b,m) not in self: - break - - manualset.append( - { "angle1": self["Observation.Beam[%s].TiedArrayBeam[%s].angle1" % (b,m)], - "angle2": self["Observation.Beam[%s].TiedArrayBeam[%s].angle2" % (b,m)], - "directionType": self["Observation.Beam[%s].TiedArrayBeam[%s].directionType" % (b,m)], - "dispersionMeasure": self["Observation.Beam[%s].TiedArrayBeam[%s].dispersionMeasure" % (b,m)], - "stationList": [], - "specificationType": "manual", - "coherent": self["Observation.Beam[%s].TiedArrayBeam[%s].coherent" % (b,m)], - } - ) - - # first define the rings, then the manual beams (which thus get shifted in number!) - allsets = manualset + ringset + flyseyeset - for m,s in enumerate(allsets): - prefix = "Observation.Beam[%s].TiedArrayBeam[%s]" % (b,m) - - for k,v in s.iteritems(): - self["%s.%s" % (prefix,k)] = v - - self["Observation.Beam[%s].nrTiedArrayBeams" % (b,)] = len(allsets) - - # SAS specifies beams differently - if "Observation.subbandList" not in self: - # convert beam configuration - allSubbands = [] - - for b in count(): - if "Observation.Beam[%s].angle1" % (b,) not in self: - break - - beamSubbands = self.getInt32Vector("Observation.Beam[%s].subbandList" % (b,)) # the actual subband number (0..511) - - for subband in beamSubbands: - allSubbands.append( { - "beam": b, - "subband": subband, - } ) - - - # order subbands according to beamlet id, for more human-friendly reading - sortedSubbands = sorted( allSubbands ) - - # populate OLAP lists - self["Observation.subbandList"] = [s["subband"] for s in sortedSubbands] - self["Observation.beamList"] = [s["beam"] for s in sortedSubbands] - - # The Scheduler creates three lists of files (for beamformed, coherent and incoherent), - # but we collapse this into one list (beamformed) - - def getlist( dataproduct ): - enabled = self.getBool("Observation.DataProducts.Output_%s.enabled" % (dataproduct,), False) - - if True or enabled: # scheduler can still set filenames without the corresponding enabled flag - filenames = self.get("Observation.DataProducts.Output_%s.filenames" % (dataproduct,), []) - locations = self.get("Observation.DataProducts.Output_%s.locations" % (dataproduct,), []) - else: - filenames = [] - locations = [] - - return (filenames, locations) - - beamformedFiles = getlist("Beamformed") - coherentFiles = getlist("CoherentStokes") - incoherentFiles = getlist("IncoherentStokes") - - # either coherent or beamformed are set as they are mutually exclusive - if coherentFiles == ([], []): - coherentFiles = beamformedFiles - - # if nothing is set, the filenames and locations are generated preWrite - if coherentFiles != ([], []) or incoherentFiles != ([], []): - # this will be the final list - beamformedFiles = ([], []) - - # reconstruct the full list - for b in count(): - if "Observation.Beam[%s].angle1" % (b,) not in self: - break - - for t in count(): - if "Observation.Beam[%s].TiedArrayBeam[%s].angle1" % (b,t) not in self: - break - - coherent = self.getBool("Observation.Beam[%s].TiedArrayBeam[%s].coherent" % (b,t)) - - nrstokes = self.getNrStokes(coherent) - nrparts = self.getNrParts(b, coherent) - - for s in xrange(nrstokes): - for p in xrange(nrparts): - if coherent: - filename = coherentFiles[0].pop(0) - location = coherentFiles[1].pop(0) - else: - filename = incoherentFiles[0].pop(0) - location = incoherentFiles[1].pop(0) - - beamformedFiles[0].append(filename) - beamformedFiles[1].append(location) - - self["Observation.DataProducts.Output_Beamformed.enabled"] = True - self["Observation.DataProducts.Output_Beamformed.filenames"] = beamformedFiles[0] - self["Observation.DataProducts.Output_Beamformed.locations"] = beamformedFiles[1] - - if beamformedFiles != ([], []): - # fix a scheduler bug causing this boolean not to be set - self["Observation.DataProducts.Output_Beamformed.enabled"] = True - - - def preWrite(self): - """ Derive some final keys and finalise any parameters necessary - before writing the parset to disk. """ - - self.convertSASkeys(); - self.addMissingKeys(); - - # Versioning info - self["OLAP.BeamsAreTransposed"] = True - self["OLAP.IncoherentStokesAreTransposed"] = True - - # TODO: we use self.setdefault, but this can create inconsistencies if we - # set one value but not the other in a pair of interdependent parameters. - # This should possibly be detected in the check routine, but it seems - # sloppy to let it pass through here unnoticed. - - # tied-array beam forming - superStations = [] - - for index in count(): - if "Observation.Beamformer[%s].stationList" % (index,) not in self: - break - - stations = self.getStringVector('Observation.Beamformer[%s].stationList' % (index,)) - - stations = [self.applyAntennaSet(st) for st in stations] - - superStations.append(stations) - - if superStations != []: - # tied-array beamforming will occur - - # add remaining stations to the list - allStationNames = [st.getName() for st in self.stations] - beamFormedStations = sum(superStations, []) - individualStations = [st for st in allStationNames if st not in beamFormedStations] - - - allTabs = superStations + [[st] for st in individualStations] - # sorting is important: because the original station list is sorted, a sorted tabList makes sure that no slot is overwritten before it is needed (data is always generated before or at the slot of the source station) - allTabs.sort() - - def findTabStation( st ): - for nr,tab in enumerate(allTabs): - if st in tab: - return nr - - tabList = map( findTabStation, allStationNames ) - - # make sure this tabList can be processed by going from element 0 to n-1 (dest slot is always at or after source slot) - for st,nr in enumerate(tabList): - assert st >= nr, "Station %s is at position %u in the station list but at position %u in the tab list, which could lead to data corruption" % (allStationNames[st],st,nr) - - self.setdefault('OLAP.tiedArrayStationNames', ["+".join(x) for x in allTabs]) - self.setdefault('OLAP.CNProc.tabList', tabList) - else: - # no super-station beam forming - self.setdefault('OLAP.tiedArrayStationNames', []) - self.setdefault('OLAP.CNProc.tabList', []) - - # input flow configuration - for station in self.stations: - self.setdefault('PIC.Core.Station.%s.RSP.ports' % (station.name,), station.inputs) - - stationName = station.name.split("_")[0] # remove specific antenna or array name (_hba0 etc) if present - self.setdefault("PIC.Core.%s.position" % (stationName,), self["PIC.Core.%s.phaseCenter" % (stationName,)]) - - for pset in xrange(len(self.psets)): - self.setdefault('PIC.Core.IONProc.%s[%s].inputs' % (self.partition,pset), [ - "%s/RSP%s" % (station.name,rsp) for station in self.stations - if station.getPsetIndex(self.partition) == pset - for rsp in xrange(len(station.inputs))] ) - - - # output flow configuration - self['OLAP.storageStationNames'] = [s.name for s in self.stations] - self['Observation.VirtualInstrument.stationList'] = [s.name for s in self.stations] - - self.setdefault('OLAP.OLAP_Conn.IONProc_Storage_Transport','TCP'); - self.setdefault('OLAP.OLAP_Conn.IONProc_CNProc_Transport','FCNP'); - - # subband configuration - if "Observation.subbandList" in self: - nrSubbands = len(self.getInt32Vector("Observation.subbandList")) - else: - nrSubbands = 248 - - for nrBeams in count(): - if "Observation.Beam[%s].angle1" % (nrBeams,) not in self: - break - - self.setdefault("Observation.Beam[%s].target" % (nrBeams,),"") - self.setdefault("Observation.Beam[%s].directionType" % (nrBeams,),"J2000") - - self.setdefault('Observation.nrBeams', nrBeams) - - # Pset configuration - self['OLAP.CNProc.partition'] = self.partition - self['OLAP.IONProc.psetList'] = self.psets - - nrPsets = len(self.psets) - nrStorageNodes = self.getNrUsedStorageNodes() - nrBeamFiles = self.getNrBeamFiles() - - # set storage hostnames - self["OLAP.Storage.hosts"] = self.storagenodes[:] - - self.setdefault('OLAP.nrPsets', nrPsets) - self.setdefault('OLAP.CNProc.phaseOnePsets', [s.getPsetIndex(self.partition) for s in self.stations]) - self.setdefault('OLAP.CNProc.phaseTwoPsets', range(nrPsets)) - if self.phaseThreeExists(): - self.setdefault('OLAP.CNProc.phaseThreePsets', self['OLAP.CNProc.phaseTwoPsets']) - else: - self.setdefault('OLAP.CNProc.phaseThreePsets', []) - - if 'OLAP.CNProc.usedCoresInPset' in self: - cores = self.getInt32Vector("OLAP.CNProc.usedCoresInPset") - else: - cores = range(64) - - self.setdefault('OLAP.CNProc.phaseOneTwoCores',cores) - self.setdefault('OLAP.CNProc.phaseThreeCores',cores) - - # what will be stored where? - # outputSubbandPsets may well be set before finalize() - subbandsPerPset = int( math.ceil(1.0 * nrSubbands / max( 1, len(self["OLAP.CNProc.phaseTwoPsets"]) ) ) ) - beamsPerPset = int( math.ceil(1.0 * nrBeamFiles / max( 1, len(self["OLAP.CNProc.phaseThreePsets"]) ) ) ) - - def _sn( sb, sb_pset0, nr_sb ): - if nrStorageNodes <= 1: - return 0 - - if PERFORMANCE_TEST: - if sb < sb_pset0: - return sb % (nrStorageNodes - 1) - else: - return nrStorageNodes - 1 - else: - return sb//int(math.ceil(1.0 * nr_sb/nrStorageNodes)); - - self.setdefault('OLAP.storageNodeList',[_sn(i,subbandsPerPset,nrSubbands) for i in xrange(nrSubbands)]) - - self.setdefault('OLAP.PencilInfo.storageNodeList',[_sn(i,beamsPerPset,nrBeamFiles) for i in xrange(nrBeamFiles)]) - - self.setdefault('OLAP.Storage.targetDirectory','/data') - - # generate filenames to produce - phase 2 - nodelist = self.getInt32Vector( "OLAP.storageNodeList" ); - products = ["Correlated"] - outputkeys = ["Correlated"] - - for p,o in zip(products,outputkeys): - outputkey = "Observation.DataProducts.Output_%s.enabled" % (o,) - if not self.getBool(outputkey): - continue - - maskkey = "Observation.DataProducts.Output_%s.namemask" % p - mask = self["OLAP.Storage.targetDirectory"] + "/" + self["Observation.DataProducts.Output_%s.dirmask" % p] + "/" + self[maskkey] - locationkey = "Observation.DataProducts.Output_%s.locations" % p - filenameskey = "Observation.DataProducts.Output_%s.filenames" % p - - if locationkey in self and filenameskey in self: - continue - - paths = [ self.parseMask( mask, subband = i ) for i in xrange(nrSubbands) ] - filenames = map( os.path.basename, paths ) - dirnames = map( os.path.dirname, paths ) - - if self.storagenodes: - locations = [ "%s:%s" % (self.storagenodes[nodelist[i]], dirnames[i]) for i in xrange(nrSubbands) ] - else: - locations = [ "" for i in xrange(nrSubbands) ] - - self.setdefault( locationkey, locations ) - self.setdefault( filenameskey, filenames ) - - # generate filenames to produce - phase 3 - nodelist = self.getInt32Vector( "OLAP.PencilInfo.storageNodeList" ); - products = ["Beamformed","Trigger"] - outputkeys = ["Beamformed","Trigger"] - - for p,o in zip(products,outputkeys): - outputkey = "Observation.DataProducts.Output_%s.enabled" % (o,) - if not self.getBool(outputkey): - continue - - maskkey = "Observation.DataProducts.Output_%s.namemask" % p - mask = self["OLAP.Storage.targetDirectory"] + "/" + self["Observation.DataProducts.Output_%s.dirmask" % p] + "/" + self[maskkey] - locationkey = "Observation.DataProducts.Output_%s.locations" % p - filenameskey = "Observation.DataProducts.Output_%s.filenames" % p - - if locationkey in self and filenameskey in self: - continue - - # python iterates over last 'for' first! - # this is the order generated by the IO nodes (see IONProc/src/Job.cc) - paths = [ self.parseMask( mask, sap = sap, beam = b, stokes = s, part = p ) - for sap in xrange(self.getNrSAPs()) - for b in xrange(self.getNrBeams(sap)) - for s in xrange(self.getNrStokes(self.isCoherent(sap, b))) - for p in xrange(self.getNrParts(sap, self.isCoherent(sap, b))) - ] - filenames = map( os.path.basename, paths ) - dirnames = map( os.path.dirname, paths ) - - if self.storagenodes: - locations = [ "%s:%s" % (self.storagenodes[nodelist[i]], dirnames[i]) for i in xrange(self.getNrBeamFiles())] - else: - locations = [ "" for i in xrange(nrSubbands) ] - - self.setdefault( locationkey, locations ) - self.setdefault( filenameskey, filenames ) - - # calculation configuration - - # integration times of CNProc and IONProc, based on self.integrationtime - # maximum amount of time CNProc can integrate due to memory constraints - if self.phaseThreeExists(): - maxCnIntegrationTime = 0.25 - defaultCnIntegrationTime = 0.25 - else: - maxCnIntegrationTime = 1.0 - defaultCnIntegrationTime = 1.0 - - # (minimal) number of times the IONProc will have to integrate - integrationtime = float( self["OLAP.Correlator.integrationTime"] ) or defaultCnIntegrationTime - ionIntegrationSteps = int(math.ceil(integrationtime / maxCnIntegrationTime)) - self.setdefault('OLAP.IONProc.integrationSteps', ionIntegrationSteps) - - # the amount of time CNProc will integrate, translated into samples - cnIntegrationTime = integrationtime / int(self["OLAP.IONProc.integrationSteps"]) - nrSamplesPerSecond = int(self['Observation.sampleClock']) * 1e6 / 1024 / int(self['Observation.channelsPerSubband']) - - def gcd( a, b ): - while b > 0: - a, b = b, a % b - return a - - def lcm( a, b ): - if b == 0: return a - if a == 0: return b - return a * b / gcd(a, b) - - def lcmlist( l ): - return reduce(lcm, l, 1) - - def roundTo( x, y ): - """ Round x to a multiple of y. """ - return max(int(round(x/y))*y,y) - - def increase_factors(n): - # increase the factors of n; returns a value close to n (<10% off for n<=195312) - if n < 4: return n - - factors = [] - - while n > 1: - for f in [2,3,5,7]: - if n % f == 0: - factors += [f] - n /= f - break - else: - n += 1 - factors += [3] - n /= 3 - - prod = lambda l: reduce(lambda x,y: x*y,l,1) - return prod(factors) - - # cnIntegrationSteps MUST be a multiple of these values - forced_factors = lcmlist( [ - 16, - int(self["OLAP.CNProc_CoherentStokes.timeIntegrationFactor"]), - int(self["OLAP.CNProc_IncoherentStokes.timeIntegrationFactor"]), - int(self.get("OLAP.CNProc.dedispersionFFTsize",1)), - ] ) - - if self.getBool("Observation.DataProducts.Output_Correlated.enabled"): - # if doing imaging, don't mess with the block size too much - cnIntegrationSteps = roundTo( nrSamplesPerSecond * cnIntegrationTime, forced_factors ) - else: - # make sure that the remainder is easily factorisable for easier post-processing - cnIntegrationSteps = forced_factors * increase_factors( int(round(nrSamplesPerSecond * cnIntegrationTime / forced_factors)) ) - - cnIntegrationSteps = max(forced_factors, cnIntegrationSteps) - - self.setdefault('OLAP.CNProc.integrationSteps', cnIntegrationSteps) - - def setStations(self,stations): - """ Set the array of stations to use (used internally). """ - - def name( s ): - try: - return s.name - except: - return s - - self.stations = sorted( stations, cmp=lambda x,y: cmp(name(x),name(y)) ) - - def setPartition(self,partition): - """ Define the partition to use. """ - - assert partition in PartitionPsets, "Partition %s unknown. Run LOFAR/Partitions.py to get a list of valid partitions." % (partition,) - - self.partition = partition - self.psets = PartitionPsets[partition] - - def setStorageNodes(self,storagenodes): - """ Define the list of storage nodes to use. """ - - # do not resolve host names, since the resolve depends on the need (i.e. NIC needed) - self.storagenodes = sorted(storagenodes) - - # OLAP needs IP addresses from the backend - self["OLAP.Storage.hosts"] = self.storagenodes[:] - - def setObsID(self,obsid): - self.setdefault("Observation.ObsID", obsid) - - def getObsID(self): - if "Observation.ObsID" not in self: - return None - - return int(self["Observation.ObsID"]) - - def getNrUsedStorageNodes(self): - return len(self.storagenodes) - - def parseMask( self, mask, sap = 0, subband = 0, beam = 0, stokes = 0, part = 0 ): - """ Fills a mask. """ - - assert "Observation.ObsID" in self, "Observation ID not generated yet." - - # obtain settings - date = parse( self["Observation.startTime"] ).timetuple() - - # fill in the mask - datenames = [ "YEAR", "MONTH", "DAY", "HOURS", "MINUTES", "SECONDS" ] # same order as in time tuple - for index,d in enumerate(datenames): - mask = mask.replace( "${%s}" % d, "%02d" % (date[index],) ) - - mask = mask.replace( "${OBSID}", "%05d" % (self.getObsID(),) ) - mask = mask.replace( "${MSNUMBER}", "%05d" % (self.getObsID(),) ) - mask = mask.replace( "${SUBBAND}", "%03d" % (subband,) ) - mask = mask.replace( "${SAP}", "%03d" % (sap,) ) - mask = mask.replace( "${PART}", "%03d" % (part,) ) - mask = mask.replace( "${BEAM}", "%03d" % (beam,) ) - mask = mask.replace( "${STOKES}", "%01d" % (stokes,) ) - - return mask - - def setStartStopTime( self, starttime, stoptime ): - start = timestamp( parse( starttime ) ) - stop = timestamp( parse( stoptime ) ) - - self["Observation.startTime"] = format( start ) - self["Observation.stopTime"] = format( stop ) - - def setStartRunTime( self, starttime, duration ): - start = timestamp( parse( starttime ) ) - stop = start + parseDuration( duration ) - - self["Observation.startTime"] = format( start ) - self["Observation.stopTime"] = format( stop ) - - def getNrSAPs( self ): - return int(self["Observation.nrBeams"]) - - def getNrSubbands( self, sap ): - return sum([1 for s in self.getInt32Vector("Observation.beamList") if s == sap]) - - def isCoherent( self, sap, tab ): - return self.getBool("Observation.Beam[%s].TiedArrayBeam[%s].coherent" % (sap, tab)) - - def getNrParts( self, sap, coherent ): - if coherent: - prefix = "OLAP.CNProc_CoherentStokes" - else: - prefix = "OLAP.CNProc_IncoherentStokes" - - subbands = self.getNrSubbands(sap) - subbandsPerFile = int(self.get("%s.subbandsPerFile" % (prefix,),subbands)) - return int(math.ceil(1.0 * subbands / subbandsPerFile)) - - def getNrBeams( self, sap ): - return self["Observation.Beam[%u].nrTiedArrayBeams" % (sap,)] - - def getNrMergedStations( self ): - tabList = self["OLAP.CNProc.tabList"] - - if not tabList: - return len(self.stations) - - return max(tabList) + 1 - - def getNrStokes( self, coherent ): - if coherent: - prefix = "OLAP.CNProc_CoherentStokes" - else: - prefix = "OLAP.CNProc_IncoherentStokes" - - return len(self["%s.which" % (prefix,)]) # todo: recombine Xi+Xr and Yi+Yr for trigger - - def getNrBeamFiles( self ): - files = 0 - for sap in xrange(self.getNrSAPs()): - for tab in xrange(self.getNrBeams(sap)): - coherent = self.isCoherent(sap, tab) - - files += self.getNrStokes(coherent) * self.getNrParts(sap, coherent) - - return files - - def phaseThreeExists( self ): - output_keys = [ - "Observation.DataProducts.Output_Beamformed.enabled", - "Observation.DataProducts.Output_Trigger.enabled", - ] - - for k in output_keys: - if k in self and self.getBool(k): - return True - - return False - - def phaseThreePsetDisjunct( self ): - phase1 = set(self.getInt32Vector("OLAP.CNProc.phaseOnePsets")) - phase2 = set(self.getInt32Vector("OLAP.CNProc.phaseTwoPsets")) - phase3 = set(self.getInt32Vector("OLAP.CNProc.phaseThreePsets")) - - return len(phase1.intersection(phase3)) == 0 and len(phase2.intersection(phase3)) == 0 - - def phaseThreeCoreDisjunct( self ): - phase12 = set(self.getInt32Vector("OLAP.CNProc.phaseOneTwoCores")) - phase3 = set(self.getInt32Vector("OLAP.CNProc.phaseThreeCores")) - - return len(phase12.intersection(phase3)) == 0 - - def phaseTwoThreePsetEqual( self ): - phase2 = self.getInt32Vector("OLAP.CNProc.phaseTwoPsets") - phase3 = self.getInt32Vector("OLAP.CNProc.phaseThreePsets") - - return phase2 == phase3 - - def phaseOneTwoThreeCoreEqual( self ): - phase12 = self.getInt32Vector("OLAP.CNProc.phaseOneTwoCores") - phase3 = self.getInt32Vector("OLAP.CNProc.phaseThreeCores") - - return phase12 == phase3 - - def outputPrefixes( self ): - return [ - "Observation.DataProducts.Output_Correlated", - "Observation.DataProducts.Output_Beamformed", - "Observation.DataProducts.Output_Trigger", - ] - - def getNrOutputs( self ): - output_keys = [ "%s.enabled" % (p,) for p in self.outputPrefixes() ] - - return sum( (1 for k in output_keys if k in self and self.getBool(k)) ) - - def check( self ): - """ Check the Parset configuration for inconsistencies. """ - - def getBool(k): - """ A getBool() routine with False as a default value. """ - return k in self and self.getBool(k) - - try: - assert self["Observation.nrBeams"] > 0, "No SAPs (beams) specified." - assert self.getNrOutputs() > 0, "No data output selected." - assert len(self.stations) > 0, "No stations selected." - assert len(self.getInt32Vector("Observation.subbandList")) > 0, "No subbands selected." - - # phase 2 and 3 are either disjunct or equal - assert self.phaseThreePsetDisjunct() or self.phaseTwoThreePsetEqual(), "Phase 2 and 3 should use either disjunct or the same psets." - assert self.phaseThreeCoreDisjunct() or self.phaseOneTwoThreeCoreEqual(), "Phase 1+2 and 3 should use either disjunct or the same cores." - assert not (self.phaseThreePsetDisjunct() and self.phaseThreeCoreDisjunct()), "Phase 3 should use either disjunct psets or cores." - - # verify psets used - nrPsets = len(self.psets) - for k in [ - "OLAP.CNProc.phaseOnePsets", - "OLAP.CNProc.phaseTwoPsets", - "OLAP.CNProc.phaseThreePsets", - ]: - psets = self.getInt32Vector( k ) - for p in psets: - assert p < nrPsets, "Use of pset %d requested in key %s, but only psets [0..%d] are available" % (p,k,nrPsets-1) - - # restrictions on #samples and integration in beam forming modes - if self.getBool("Observation.DataProducts.Output_Beamformed.enabled"): - if self["OLAP.CNProc_CoherentStokes.which"] == "XXYY": - assert int(self["OLAP.CNProc_CoherentStokes.timeIntegrationFactor"]) == 1, "Cannot integrate complex voltages (stokes XXYY) but temporal integration was requested" - assert int(self["OLAP.CNProc_CoherentStokes.channelsPerSubband"]) in [0, int(self["Observation.channelsPerSubband"])], "Cannot integrate complex voltages (stokes XXYY) but channel collapse was requested" - - # beamforming needs a multiple of 16 samples - assert int(self["OLAP.CNProc.integrationSteps"]) % 16 == 0, "OLAP.CNProc.integrationSteps should be dividable by 16" - - assert int(self["OLAP.CNProc.integrationSteps"]) % int(self["OLAP.CNProc_CoherentStokes.timeIntegrationFactor"]) == 0, "OLAP.CNProc.integrationSteps should be dividable by OLAP.CNProc_CoherentStokes.timeIntegrationFactor" - assert int(self["OLAP.CNProc.integrationSteps"]) % int(self["OLAP.CNProc_IncoherentStokes.timeIntegrationFactor"]) == 0, "OLAP.CNProc.integrationSteps should be dividable by OLAP.CNProc_IncoherentStokes.timeIntegrationFactor" - if not self.phaseThreePsetDisjunct() and not self.phaseThreeCoreDisjunct(): - assert self.getNrBeamFiles() <= len(self.getInt32Vector("Observation.subbandList")), "Cannot create more files than there are subbands." - - # create at least 1 beam - #assert self.getNrBeams( True ) > 0, "Beam forming requested, but no beams defined. Add at least one beam." - - assert int(self["OLAP.CNProc_CoherentStokes.channelsPerSubband"]) <= int(self["Observation.channelsPerSubband"]), "Coherent Stokes should have the same number or fewer channels than specified for the full observation." - assert int(self["Observation.channelsPerSubband"]) % int(self["OLAP.CNProc_CoherentStokes.channelsPerSubband"]) == 0, "Coherent Stokes channels should be a whole fraction of the total number of channels." - - assert int(self["OLAP.CNProc_IncoherentStokes.channelsPerSubband"]) <= int(self["Observation.channelsPerSubband"]), "Incoherent Stokes should have the same number or fewer channels than specified for the full observation." - assert int(self["Observation.channelsPerSubband"]) % int(self["OLAP.CNProc_IncoherentStokes.channelsPerSubband"]) == 0, "Incoherent Stokes channels should be a whole fraction of the total number of channels." - - # verify start/stop times - assert self["Observation.startTime"] < self["Observation.stopTime"], "Start time (%s) must be before stop time (%s)" % (self["Observation.startTime"],self["Observation.stopTime"]) - - # verify stations - for s in self.stations: - stationName = s.name.split("_")[0] # remove specific antenna or array name (_hba0 etc) if present - assert "PIC.Core.%s.phaseCenter" % (stationName,) in self, "Phase center of station '%s' not present in parset." % (stationName,) - except AssertionError,e: - error(e); - - self["OLAP.IONProc.parsetError"] = "%s" % (e,) - return False - else: - self["OLAP.IONProc.parsetError"] = "" - return True - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import sys - - # parse the command line - parser = OptionParser( "usage: %prog [options] parset [parset ...]" ) - - opgroup = OptionGroup( parser, "Request" ) - opgroup.add_option( "-k", "--key", - dest="key", - type="string", - default="", - help="print the given key from the resulting parset" ) - opgroup.add_option( "-P", "--partition", - dest="partition", - type="string", - default=os.environ.get("PARTITION",""), - help="use this partition [%default%]" ) - opgroup.add_option( "-r", "--runtime", - dest="runtime", - type="string", - default="", - help="starttime,runtime" ) - parser.add_option_group( opgroup ) - - # parse arguments - (options, args) = parser.parse_args() - - if not args: - parser.print_help() - sys.exit(0) - - parset = Parset() - - for files in args: - parset.readFile( files ) - - if options.partition: - parset.setPartition( options.partition ) - - if options.runtime: - starttime, runtime = options.runtime.split(",") - parset.setStartRunTime( starttime, runtime ) - - parset.postRead() - parset.preWrite() - parset.check() - - if options.key: - print parset[options.key] - else: - # default: print whole parset - parset.writeFile( "-" ) - - sys.exit(0) - diff --git a/RTCP/Run/src/LOFAR/ParsetTester.py b/RTCP/Run/src/LOFAR/ParsetTester.py deleted file mode 100755 index 29ac56265b79de03b9e4995f5f2f933447523568..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/ParsetTester.py +++ /dev/null @@ -1,258 +0,0 @@ -import Logger -from logging import debug,info,warning,error,critical - -from Core import runCorrelator,buildParset -from Parset import Parset -from CommandClient import sendCommand -from LogValidators import ValidationError -from Locations import Locations -from Partitions import PartitionPsets -from util.Commands import SyncCommand -from util.Hosts import runlink -from threading import Thread -from time import sleep -import os - -class ParsetTester: - """ Tests a parset by starting the correlator in a separate process and inserting the parset. - - Usage example: - - pt = ParsetTester( "RTCP.parset", partition, "name of test" ) - - # adjust the parset at will -- it has been read but not post-processed - pt.setNrSubbands( 248 ) - pt.parset["Observation.outputCorrelatedData"] = True - - # run it and validate the logs - pt.runParset() - pt.validate( [NoErrors()] ) - - # clean up logs and data products (if desired) - pt.cleanup() - """ - - def __init__( self, parsetFilename, partition, testname ): - self.partition = partition - self.testname = testname - - # configure the correlator before the parsets are added such that they will use the right paths - testfilename = self.testname - - for c in " :": - testfilename = testfilename.replace(c,"_") - - self.logdir = "%s/%s" % (Locations.files["logdir"],testfilename) - - self.results = { - "started": False, - "terminated": False, - "logdir": self.logdir, - } - - self.parset = Parset() - self.olapparset_filename = "%s/OLAP.parset" % (Locations.files["configdir"],) - self.rtcpparset_filename = parsetFilename - - for f in [self.olapparset_filename, self.rtcpparset_filename]: - self.parset.readFile( Locations.resolvePath( f ) ) - - def setNrSubbands( self, nrSubbands ): - """ Use subbands 0 .. nrSubbands. """ - - subbands = [i for i in xrange(nrSubbands)] - beams = [0 for i in xrange(nrSubbands)] - rspboards = [i//61 for i in xrange(nrSubbands)] - rspslots = [i%61 for i in xrange(nrSubbands)] - - override_keys = { - "Observation.subbandList": subbands, - "Observation.beamList": beams, - "Observation.rspBoardList": rspboards, - "Observation.rspSlotList": rspslots, - } - - for k,v in override_keys.iteritems(): - self.parset[k] = v - - def setNrStations( self, nrStations ): - """ Use fake stations 0 .. nrStations which map to this partition. Uses at most |partition| stations. """ - - psets = PartitionPsets[self.partition][:nrStations] - ipsuffixes = [ip.split(".")[3] for ip in psets] - stations = ["S%s" % (s,) for s in ipsuffixes] - - del self.parset["OLAP.CNProc.phaseOnePsets"] - - self.parset.forceStations( stations ) - - - def setNrPencilBeams( self, nrBeams, sap = 0 ): - """ Use nrBeams fake beams. """ - - self.parset["Observation.Beam[%d].nrTiedArrayBeams" % (sap,)] = nrBeams - for n in xrange(nrBeams): - self.parset["Observation.Beam[%d].TiedArrayBeam[%d].angle1" % (sap,n)] = 0 - self.parset["Observation.Beam[%d].TiedArrayBeam[%d].angle2" % (sap,n)] = n - - def runParset( self, starttimeout = 30, runtime = 60, stoptimeout = 120, parsetstartdelay = 30 ): - # finalise and check parset BEFORE we start doing anything fancy - self.parset = buildParset( parset=self.parset, args="start=+%d,run=%d" % (parsetstartdelay,runtime,), partition=self.partition ) - self.parset.preWrite() - self.parset.check() - - self.results["started"] = True - - class CorrelatorThread(Thread): - def __init__(self,partition): - Thread.__init__(self) - self.partition = partition - - def run(self): - runCorrelator( self.partition ) - - info( "********** Starting test '%s' **********" % (self.testname,) ) - - try: - # start the correlator (ni a separate process to allow full control in runCorrelator - info( "Starting correlator." ) - pid = os.fork() - if pid == 0: - # child process - try: - Locations.files["logdir"] = self.logdir - info("Logdir = %s" % (self.logdir,)) - try: - os.makedirs( self.logdir ) - except OSError,e: - warning( "Error creating directory %s: %s" % (self.logdir,e) ) - - runCorrelator( self.partition ) - except: - error( "Correlator aborted." ) - os._exit(1) - else: - info( "Correlator stopped." ) - os._exit(0) - else: - # parent process - for i in xrange( starttimeout ): - sleep( 1 ) - try: - sendCommand( self.partition, "" ) - except: - continue - else: - break - else: - raise Exception("Correlator did not start.") - - # inject the parset - self.parset.setFilename( Locations.resolvePath( "%s/RTCP-${OBSID}.parset" % (self.logdir,), self.parset ) ); - info( "Sending parset '%s' to correlator." % (self.parset.filename,) ) - self.parset.save() - sendCommand( self.partition, "parset %s" % (self.parset.filename,) ) - - # quit immediately after processing the parset - sendCommand( self.partition, "quit" ) - - # wait for correlator to finish - def isStopped(): - ret = os.waitpid( pid, os.WNOHANG ) - - if ret[1] > 0: - raise Exception("Correlator did not start.") - - return ret != (0,0) - - for i in xrange( runtime + stoptimeout ): - sleep( 1 ) - - if isStopped(): - stopped = True - break - else: - stopped = False - - # process outcome - if stopped: - info( "Correlator terminated succesfully." ); - self.results["terminated"] = True - else: - error( "Correlator did not terminate." ); - except Exception,e: - error( "Exception: %s" % (e,) ) - - def validate(self,validators,continue_on_error = False): - """ Run a set of validators on the logfiles produced by an earlier runParset run. """ - - valid = True - logfiles = ["run.CNProc.log","run.IONProc.log"] - - for v in validators: - v.begin() - - for f in logfiles: - fname = "%s/%s" % (self.results["logdir"],f) - - try: - fd = file(fname) - except IOError,e: - error( "Could not open %s: %s" % (fname,e) ) - valid = False - else: - for linenr,l in enumerate(fd): - for v in validators: - try: - v.parse(l) - except ValidationError,e: - error( "Validation error in %s:%s: %s" % (fname,linenr,e) ) - error( "Offending line: %s" % (l,) ) - valid = False - - if not continue_on_error: - return - - for v in validators: - try: - v.end() - except ValidationError,e: - error( "Validation error in %s: %s" % (fname,e) ) - valid = False - - if not continue_on_error: - return - - if valid and self.results["terminated"]: - info( "********** Test '%s': OK **********" % (self.testname,) ) - return True - else: - error( "********** Test '%s': Not OK **********" % (self.testname,) ) - return False - - def cleanup(self): - # clean up logs and parsets - info( "Removing log files in %s." % (self.logdir,) ) - SyncCommand("rm -f %s/run.CNProc.log %s/run.IONProc.log" % (self.logdir,self.logdir)) - - info( "Removing parset %s." % (self.parset.filename,) ) - SyncCommand("rm -f %s" % (self.parset.filename,)) - - info( "Removing log directory %s." % (self.logdir,) ) - SyncCommand("rmdir %s" % (self.logdir,)) - - # clean up data products - info( "Removing data" ) - for p in self.parset.outputPrefixes(): - if not self.parset.getBool("%s.enabled" % (p,)): - continue - - files = self.parset.getStringVector( "%s.filenames" % (p,) ) - locations = self.parset.getStringVector( "%s.locations" % (p,) ) - fullpaths = ["%s%s" % (path,file) for (path,file) in zip( locations, files )] - - # TODO: remove created parent directories instead of just the files - - for f in fullpaths: - runlink( f, recursive = True ) - diff --git a/RTCP/Run/src/LOFAR/Partitions.py b/RTCP/Run/src/LOFAR/Partitions.py deleted file mode 100755 index d23f1e183949750711e6b925de0ae19609e96878..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/Partitions.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env python - -__all__ = [ "PartitionPsets" ] - -import os -import sys - -# allow ../util to be found, a bit of a hack -sys.path += [os.path.abspath(os.path.dirname(__file__)+"/..")] - -# PartitionPsets: A dict which maps partitions to I/O node IP addresses. -# the pset hierarchy is is analogue to: -# R00-M0-N00-J00 = R00-M0-N00-J00-16 consists of a single pset -# R00-M0-N00-32 = R00-M0-N00-J00 + R00-M0-N00-J01 -# R00-M0-N00-64 = R00-M0-N00-32 + R00-M0-N01-32 -# R00-M0-N00-128 = R00-M0-N00-64 + R00-M0-N02-64 -# R00-M0-N00-256 = R00-M0-N00-128 + R00-M0-N04-128 -# R00-M0 = R00-M0-N00-256 + R00-M0-N08-256 -# R00 = R00-M0 + R00-M1 - -# LOFARTEST = R01-M0-N00-J00 + R01-M0-N08-J00 - -PartitionPsets = {} -for R in xrange(3): - rack = "R%02d" % R - for M in xrange(2): - midplane = "%s-M%01d" % (rack,M) - - # individual psets - for N in xrange(16): - nodecard = "%s-N%02d" % (midplane,N) - for J in xrange(2): - # ip address for this pset - ip = "10.170.%d.%d" % (R,(1+M*128+N*4+J)) - - pset = "%s-J%02d" % (nodecard,J) - if R == 0: PartitionPsets[pset] = [ip] # single psets without -16 suffix only work on R00 - PartitionPsets["%s-16" % (pset,)] = [ip] - - # groups smaller than a midplane - for groupsize in (1,2,4,8): - for N in xrange(0,16,groupsize): - nodecard = "%s-N%02d" % (midplane,N) - - PartitionPsets["%s-%d" % (nodecard,32*groupsize)] = sum( [ - PartitionPsets["%s-N%02d-J00-16" % (midplane,x)] + PartitionPsets["%s-N%02d-J01-16" % (midplane,x)] - for x in xrange( N, N+groupsize) ], [] ) - - # a midplane - PartitionPsets[midplane] = PartitionPsets["%s-N00-256" % midplane] + PartitionPsets["%s-N08-256" % midplane] - - # a rack - PartitionPsets[rack] = PartitionPsets["%s-M0" % rack] + PartitionPsets["%s-M1" % rack] - -PartitionPsets["R00R01"] = PartitionPsets["R00"] + PartitionPsets["R01"] -PartitionPsets["LOFARTEST"] = PartitionPsets["R01-M0-N00-J00-16"] + PartitionPsets["R01-M0-N08-J00-16"] - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import sys - - # parse the command line - parser = OptionParser( "usage: %prog [options] partition" ) - parser.add_option( "-l", "--list", - dest = "list", - action = "store_true", - default = False, - help = "list the psets in the partition" ) - - # parse arguments - (options, args) = parser.parse_args() - errorOccurred = False - - if not args: - parser.print_help() - sys.exit(0) - - for partition in args: - assert partition in PartitionPsets,"Partition unknown: %s" % (partition,) - - if options.list: - # print the psets of a single partition - for ip in PartitionPsets[partition]: - print ip - - sys.exit(int(errorOccurred)) - diff --git a/RTCP/Run/src/LOFAR/RingCoordinates.py b/RTCP/Run/src/LOFAR/RingCoordinates.py deleted file mode 100644 index 4e39c947ea14c56c6b3d61713de2b6b2fa95ddff..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/RingCoordinates.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/python - -from math import sqrt, cos, pi - -class RingCoordinates: - def __init__(self, numrings, width, center, dirtype): - self.numrings = numrings - self.width = width - self.center = center - self.dirtype = dirtype - - def cos_adjust(self, offset): - if self.dirtype != "J2000" and self.dirtype != "B1950": - return offset - - # warp coordinates closer to the NCP - - cos_dec = cos(self.center[1] + offset[1]) - epsilon = 0.0001 - - if cos_dec > epsilon: - return (offset[0]/cos_dec, offset[1]) - else: - return offset - - - def len_edge(self): - """ - _ - / \ - \_/ - |.| - """ - return self.width / sqrt(3) - - def len_width(self): - """ - _ - / \ - \_/ - |...| - """ - return 2 * self.len_edge() - - def len_height(self): - """ - _ _ - / \ : - \_/ _ - - """ - return self.len_width() - - def delta_width(self): - """ - _ - / \_ - \_/ \ - \_/ - |.| - """ - return 1.5 * self.len_edge() - - def delta_height(self): - """ - _ - / \_ - - \_/ \ - - \_/ - """ - return 0.5 * self.len_width() - - def coordinates(self): - if self.numrings == 0: - return [] - - coordinates = [(0,0)] # start with central beam - - # stride for each side, starting from the top, clock-wise - dl = [0] * 6 - dm = [0] * 6 - - # _ - # / \_ - # \_/ \ - # \_/ - dl[0] = self.delta_width() - dm[0] = -self.delta_height() - - # _ - # / \ - # \_/ - # / \ - # \_/ - dl[1] = 0 - dm[1] = -self.len_height() - - # _ - # _/ \ - # / \_/ - # \_/ - dl[2] = -self.delta_width() - dm[2] = -self.delta_height() - - # _ - # / \_ - # \_/ \ - # \_/ - dl[3] = -self.delta_width() - dm[3] = self.delta_height() - - # _ - # / \ - # \_/ - # / \ - # \_/ - dl[4] = 0 - dm[4] = self.len_height() - - # _ - # _/ \ - # / \_/ - # \_/ - dl[5] = self.delta_width() - dm[5] = self.delta_height() - - # ring 1-n: create the pencil beams from the inner ring outwards - for r in xrange(1,self.numrings+1): - # start from the top - l = 0.0 - m = self.len_height() * r - - for side in xrange(6): - # every side has length r - for b in xrange(r): - coordinates.append( (l,m) ) - l += dl[side] - m += dm[side] - - return map(self.cos_adjust, coordinates) - diff --git a/RTCP/Run/src/LOFAR/Stations.py b/RTCP/Run/src/LOFAR/Stations.py deleted file mode 100755 index 2e48165c6df42708331bc693fb0ee3fc598a0e04..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LOFAR/Stations.py +++ /dev/null @@ -1,348 +0,0 @@ -#!/usr/bin/env python - -from Partitions import PartitionPsets -import os -import sys - -# allow ../util to be found, a bit of a hack -sys.path += [(os.path.dirname(__file__) or ".")+"/.."] - -from util.Commands import backquote - -__all__ = ["packetAnalysis","Stations","overrideRack"] - -def overrideRack( stations, rack ): - """ Set the rack that will be used (0,1,2) for all stations provided. """ - - assert rack in [0,1,2] - - for s in stations: - for t in stations[s]: - octets = t.ionode.split(".") - if octets[0] == "10" and octets[1] == "170": # only process stations connected to BG/P - t.ionode = "%s.%s.%s.%s" % (octets[0],octets[1],rack,octets[3]) - -def packetAnalysis( name, ip, port ): - location = os.popen("which packetanalysis").read().strip() - - if not location or "no packetanalysis in" in location: - return "ERROR: Could not find `packetanalysis' binary" - - mainAnalysis = backquote( "ssh -tq %s %s %s" % (ip,location,port), 5) - - if not mainAnalysis or " 0.00 pps" in mainAnalysis: - # something went wrong -- don't run tcpdump - return mainAnalysis - - # do a tcpdump analysis to obtain source mac address - """ tcpdump: The following information will be received from stations: - -08:30:23.175116 10:fa:00:01:01:01 > 00:14:5e:7d:19:71, ethertype IPv4 (0x0800), length 6974: 10.159.1.2.4347 > 10.170.0.1.4347: UDP, length 6928 - """ - tcpdump = backquote("ssh -q %s /opt/lofar/bin/tcpdump -i eth0 -c 10 -e -n udp 2>/dev/null" % (ip,), 2).split("\n") - macaddress = "UNKNOWN" - for p in tcpdump: - if not p: continue - - try: - f = p.split() - srcmac = f[1] - dstip = f[-4] - - dstip,dstport = dstip[:-1].rsplit(".",1) - if dstport != port: - continue - except ValueError: - continue - - macaddress = srcmac - - if macaddress in [ - "00:12:f2:c3:3a:00", # Effelsberg - ]: - macline = " OK Source MAC address: %s (known router)" % (macaddress,) - elif macaddress == "UNKNOWN" or not macaddress.startswith("00:22:86:"): - macline = "NOK Source MAC address: %s (no LOFAR station)" % (macaddress,) - else: - rscs,nr,field = name[0:2],name[2:5],name[5:] - nr1,nr2,nr3 = nr - - # the station number is the 4th and the 5th field of the MAC address, encoded in hex per two digits (i.e. 302 => 03:02 and 032 => 00:20) - macnrs = map( lambda x: int(x,16), macaddress.split(":") ) - srcnr = "%01d%02d" % (macnrs[3],macnrs[4]) - - try: - if str(nr) == srcnr: - macline = " OK Source MAC address: %s" % (macaddress,) - else: - macline = "NOK Source MAC address: %s (station %d?)" % (macaddress,srcnr) - except ValueError: - macline = "NOK Source MAC address: %s" % (macaddress,) - - return "%s\n%s" % (macline,mainAnalysis) - -def allInputs( station ): - """ Generates a list of name,ip,port tuples for all inputs for a certain station. """ - - for name,input,ionode in sum( ([(s.name,i,s.ionode)] for s in station for i in s.inputs), [] ): - # skip non-network inputs - if input == "null:": - continue - - if input.startswith( "file:" ): - continue - - # strip tcp: - if input.startswith( "tcp:" ): - input = input[4:] - - # only process ip:port combinations - if ":" in input: - ip,port = input.split(":") - if ip in ["0.0.0.0","0"]: - ip = ionode - yield (name,ip,port) - -class UnknownStationError(StandardError): - pass - -class Station(object): - """ - Represents a real or virtual station. - """ - def __init__(self, name, ionode, inputs): - self.name = name - self.ionode = ionode - self.inputs = inputs - - def getPsetIndex(self, partition): - assert partition in PartitionPsets, "Unknown partition: %s" % (partition,) - - psets = PartitionPsets[partition] - - assert self.ionode in psets, "IONode %s not in partition %s" % (self.ionode,partition) - - return psets.index(self.ionode) - - def getName(self): - return self.name - -class Stations(dict): - def __init__(self): - self.stations = {} - - def parse( self, str ): - """ Parse a string defining a set of stations, such as 'CS001 + CS010'. """ - - # use no globals to avoid eval adding "__builtins__" to self, and thus as a station - try: - return eval( str, {}, self ) - except Exception,e: - raise UnknownStationError("%s (while parsing '%s')" % (e,str)) - - def parseAll( self ): - """ Parse all station definitions that were given as a string and replace them with Station lists. """ - - changed = True - - # not everything parses in one go due to interdependencies - while changed: - changed = False - for k,v in self.items(): - if isinstance( v, str ): - try: - self[k] = self.parse( v ) - except UnknownStationError: - continue - else: - changed = True - - # reparse all strings left to trigger any exceptions that are left - for k,v in self.items(): - if isinstance( v, str ): - self[k] = self.parse( v ) - -def defineStations( s ): - # Actual, physical stations. """ - - def ports( portnrs ): - return ['0.0.0.0:%s' % (port,) for port in portnrs] - def boards( boardnrs ): - return ['0.0.0.0:%s' % (4346+board,) for board in boardnrs] - - # default port numbers - defaultPorts = { - "RSP_0": boards( [0, 1, 2, 3] ), - "RSP_1": boards( [6, 7, 8, 9] ), - } - defaultFields = { - "RSP_0": ["LBA","HBA","HBA0"], - "RSP_1": ["HBA1"], - } - - lofarroot = os.environ["LOFARROOT"] or "/opt/lofar" - configdir = "%s/etc" % (lofarroot,) - - # parse hostname <-> ip translation, since not all hostnames - # are ionodes (foreign stations send to a router) - knownhosts = {} - for l in file("%s/MAC+IP.dat" % (configdir,)): - l = l.split("#")[0].strip() # strip comments and whitespace - - info = l.split() - if len(info) < 3: continue # need HOSTNAME IP MAC - - hostname,ip,mac = info[:3] - knownhosts[hostname] = ip - - # see MAC/Deployment/data/StaticMetaData/RSPConnections.dat - # for a mapping of station -> io node - # and LOFAR/Stations.py -l for a mapping of io node -> ip address - - # parse RSPConnections.dat. - for l in file("%s/RSPConnections.dat" % (configdir,)): - l = l.split("#")[0].strip() # strip comments and whitespace - - info = l.split() - if len(info) < 3: continue # need at least NAME BOARD IONODE - - station,board,ionode = info[:3] - - ip = knownhosts[ionode] - portlist = defaultPorts[board] - fieldlist = defaultFields[board] - - for f in fieldlist: - s.update( { - "%s%s" % (station,f): [Station("%s%s" % (station,f), ip, portlist )], - } ) - - # to change the ports of CS302HBA0 for example, use - # s["CS302HBA0"][0].inputs = boards( [0, 1, 2, 4] ) - - # Simulated stations for experimentation. - - # IP suffixes of all psets - psetsuffixes = [1,2,5,6,9,10,13,14,17,18,21,22,25,26,29,30,33,34,37,38,41,42,45,46,49,50,53,54,57,58,61,62,129,130,133,134,137,138,141,142,145,146,149,150,153,154,157,158,161,162,165,166,169,170,173,174,177,178,181,182,185,186,189,190] - - for suffix in psetsuffixes: - # Rack R00 - ip = "10.170.0.%s" % (suffix,) - - # sXX_1, sXX: 1 full station (1 RSP board), starting from 10.170.0.XX, input received from station - inputs = ports( [4346] ) - s["s%s_1" % (suffix,)] = [Station("S%s" % (suffix,), ip, inputs)] - s["s%s" % (suffix,)] = [Station("S%s" % (suffix,), ip, inputs)] - - # SXX_1, SXX: 1 full station (4 RSP boards), starting from 10.170.0.XX, input received from station - inputs = defaultPorts['RSP_0'] - s["S%s_1" % (suffix,)] = [Station("S%s" % (suffix,), ip, inputs)] - s["S%s" % (suffix,)] = [Station("S%s" % (suffix,), ip, inputs)] - - # Rack R01 - ip = "10.170.1.%s" % (suffix,) - - # tXX_1: 1 full station (1 RSP board), starting from 10.170.1.XX, input received from station - inputs = ports( [4346] ) - s["t%s_1" % (suffix,)] = [Station("T%s" % (suffix,), ip, inputs)] - - # TXX_1: 1 full station (4 RSP boards), starting from 10.170.1.XX, input received from station - inputs = defaultPorts['RSP_0'] - s["T%s_1" % (suffix,)] = [Station("T%s" % (suffix,), ip, inputs)] - s["T%s" % (suffix,)] = [Station("T%s" % (suffix,), ip, inputs)] - - # define sets of various sizes - for setsize in xrange(2,65): - for first_index in xrange( 0, len(psetsuffixes)-setsize+1 ): - suffixes = psetsuffixes[first_index:first_index+setsize] - - for prefix in ["s","S","t","T"]: - s["%s%s_%s" % (prefix,suffixes[0],setsize)] = sum( (s["%s%s_1" % (prefix,suffix,)] for suffix in suffixes), [] ) - - # Special stations, one-time stations, etc. - s.update( { - } ) - - # Standard configurations - s.update( { - } ) - -# Construct everything - -Stations = Stations() -defineStations( Stations ) -Stations.parseAll() - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import sys - - # parse the command line - parser = OptionParser( "usage: %prog [options] station" ) - parser.add_option( "-P", "--partition", - dest = "partition", - type = "string", - default = "R00", - help = "the partition to use [%default]" ) - parser.add_option( "-i", "--inputs", - dest = "inputs", - action = "store_true", - default = False, - help = "list the inputs for the station" ) - parser.add_option( "-c", "--check", - dest = "check", - action = "store_true", - default = False, - help = "check whether the station provide correct data" ) - parser.add_option( "-a", "--analyze", - dest = "analyze", - action = "store_true", - default = False, - help = "run datarate analyzer (assumes 200 MHz clock, 61 subbands, 16 beamlets)" ) - parser.add_option( "-l", "--list", - dest = "list", - action = "store_true", - default = False, - help = "list all known stations" ) - - # parse arguments - (options, args) = parser.parse_args() - errorOccurred = False - - if options.list: - print "\n".join(sorted(Stations.keys())) - sys.exit(0) - - if not args: - parser.print_help() - sys.exit(0) - - if options.partition != "R00R01": - overrideRack( Stations, int(options.partition[2]) ) - - for stationName in args: - # print the inputs of a single station - if options.inputs: - for s in Stations[stationName]: - print "Station: %s" % (s.name,) - print "IONode: %s" % (s.ionode,) - print "Inputs: %s" % (" ".join(s.inputs),) - - # check stations if requested so - if options.check: - if stationName not in Stations: - # unknown station - errorOccurred = True - print "NOK Station name unknown: %s" % (stationName,) - continue - - for name,ip,port in allInputs( Stations[stationName] ): - print "---- Packet analysis for %s %s:%s" % (name,ip,port) - print packetAnalysis( name, ip, port ) - - if options.analyze: - # ssh 10.170.0.182 "echo 0.0.0.0:4346 0.0.0.0:4347 0.0.0.0:4348 0.0.0.0:4349 | xargs -n 1 -P 4 `which analyzer`" 2>&1 | awk '{ print "DE602LBA ",$0; }' - s = Stations[stationName][0] - os.system('ssh %s "echo %s | xargs -n 1 -P 4 `which analyzer`" 2>&1 | awk \'{ print "%s",$0; }\'' % (s.ionode, " ".join(s.inputs), s.name)) - - sys.exit(int(errorOccurred)) diff --git a/RTCP/Run/src/LOFAR/__init__.py b/RTCP/Run/src/LOFAR/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/RTCP/Run/src/LogArchiver.sh b/RTCP/Run/src/LogArchiver.sh deleted file mode 100755 index 015bae67d2ee91a50d57edffb08e027be429578f..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/LogArchiver.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# -# LogArchiver.sh: a script to automatically archive old log files and parsets. -# -# This script is meant to be run fully automatic from a cron job -# - -# cron jobs don't set $PATH, so construct our own. -export PATH=$PATH:/bin:/usr/bin:/opt/lofar/bin - -source locations.sh - -# source and destination for archiving -SRCDIR="$LOGDIR" -DESTDIR="$LOGBACKUPDIR" - -# which file patterns to archive -PATTERNS=("CNProc.log.*" "IONProc.log.*" "startBGL.log.*" "*.parset") - -# how old the last change to the file has to be (seconds) -MINAGE="7 * 24 * 60 * 60" - - - - -# expand patterns like "foo.*" to nothing if no file matches it -shopt -s nullglob - -# create a sane environment -if [ "$SRCDIR" == "$DESTDIR" ] -then - echo "Nothing to do: SRCDIR == DESTDIR == $SRCDIR" - exit -fi - -mkdir -p $DESTDIR || exit - -# make a staging directory to avoid racing -# conditions if this script runs twice simultaneously -STAGEDIR=`mktemp -d "$SRCDIR/LogArchiver.sh-staging-XXXXXX"` - -if [ -z "$STAGEDIR" ] -then - echo "Could not create staging directory inside $SRCDIR" - exit -fi - -function age { - # prints the age of the provided file, in seconds - FILE=$1 - - if [ -e "$FILE" ] - then - echo $((`date +%s` - `stat -c %Y "$FILE"`)) - else - echo 0 - fi -} - -function shouldarchive { - # prints 1 iff the given file sould be archived - FILE=$1 - - if [ `age "$f"` -le $(($MINAGE)) ] - then - echo 0 - return - fi - - echo 1 -} - -function archive { - # considers the files matching the given pattern for archiveing - FILES=$1 - - echo ">>> request to archive $FILES" - - for f in $FILES - do - echo considering $f - if [ `shouldarchive "$f"` -eq 1 ] - then - echo "++++" archiving: $f - mv "$f" "$STAGEDIR" && gzip "$STAGEDIR/`basename "$f"`" && mv "$STAGEDIR/`basename "$f"`.gz" "$DESTDIR" - else - echo "----" not archiving: $f - fi - done -} - -# archive all files matching the pattern -for k in ${!PATTERNS[*]} -do - archive "$SRCDIR/${PATTERNS[$k]}" -done - -rmdir $STAGEDIR - diff --git a/RTCP/Run/src/MAC+IP.dat b/RTCP/Run/src/MAC+IP.dat deleted file mode 100644 index 07431239f8d2681aa3398d2f7bc8abfb3834061a..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/MAC+IP.dat +++ /dev/null @@ -1,290 +0,0 @@ -# -# MAP + IP -# -# - Gives the Ip address and MAC address of each BG/P I/O node -# -# For foreign stations this is different: -# - Gives MAC address of local switch to connect to, and -# IP address of BG/P I/O node where the data should be -# sent to (see stationBGPconnection sheets in the Wiki). -# -# IMPORTANT !!!!!! BEWARE -# -# The items in the seperate lines of this file must be seperated by either a SINGLE whitespace or a single tab!!!! -# Furthermore, this file is read by PVSS controllers to fill in the database, ANY change could possibly have an impact -# on PVSS, so please double check. In case of doubt, contact the PVSS maintainer -# -# node IP MAC -#----------------------------------------------- -R00-M0-N00-J00 10.170.0.1 00:14:5E:7D:33:75 -R00-M0-N00-J01 10.170.0.2 00:14:5E:7D:33:76 -R00-M0-N01-J00 10.170.0.5 00:14:5E:7D:95:B0 -R00-M0-N01-J01 10.170.0.6 00:14:5E:7D:95:B1 -R00-M0-N02-J00 10.170.0.9 00:14:5E:7D:1B:A9 -R00-M0-N02-J01 10.170.0.10 00:14:5E:7D:1B:AA -R00-M0-N03-J00 10.170.0.13 00:14:5E:7D:1E:47 -R00-M0-N03-J01 10.170.0.14 00:14:5E:7D:1E:48 -R00-M0-N04-J00 10.170.0.17 00:14:5E:7D:18:17 -R00-M0-N04-J01 10.170.0.18 00:14:5E:7D:18:18 -R00-M0-N05-J00 10.170.0.21 00:14:5E:7D:16:0D -R00-M0-N05-J01 10.170.0.22 00:14:5E:7D:16:0E -R00-M0-N06-J00 10.170.0.25 00:14:5E:7D:1C:7D -R00-M0-N06-J01 10.170.0.26 00:14:5E:7D:1C:7E -R00-M0-N07-J00 10.170.0.29 00:14:5E:7D:17:7B -R00-M0-N07-J01 10.170.0.30 00:14:5E:7D:17:7C -R00-M0-N08-J00 10.170.0.33 00:14:5E:7D:95:58 -R00-M0-N08-J01 10.170.0.34 00:14:5E:7D:95:59 -R00-M0-N09-J00 10.170.0.37 00:14:5E:7D:08:51 -R00-M0-N09-J01 10.170.0.38 00:14:5E:7D:08:52 -R00-M0-N10-J00 10.170.0.41 00:14:5E:7D:1C:09 -R00-M0-N10-J01 10.170.0.42 00:14:5E:7D:1C:0A -R00-M0-N11-J00 10.170.0.45 00:14:5E:7D:18:CF -R00-M0-N11-J01 10.170.0.46 00:14:5E:7D:18:D0 -R00-M0-N12-J00 10.170.0.49 00:14:5E:7D:33:E3 -R00-M0-N12-J01 10.170.0.50 00:14:5E:7D:33:E4 -R00-M0-N13-J00 10.170.0.53 00:14:5E:7D:90:E4 -R00-M0-N13-J01 10.170.0.54 00:14:5E:7D:90:E5 -R00-M0-N14-J00 10.170.0.57 00:14:5E:7D:94:7A -R00-M0-N14-J01 10.170.0.58 00:14:5E:7D:94:7B -R00-M0-N15-J00 10.170.0.61 00:14:5E:7D:9A:90 -R00-M0-N15-J01 10.170.0.62 00:14:5E:7D:9A:91 -R00-M1-N00-J00 10.170.0.129 00:14:5E:7D:1D:4D -R00-M1-N00-J01 10.170.0.130 00:14:5E:7D:1D:4E -R00-M1-N01-J00 10.170.0.133 00:14:5E:7D:0C:FB -R00-M1-N01-J01 10.170.0.134 00:14:5E:7D:0C:FC -R00-M1-N02-J00 10.170.0.137 00:14:5E:7D:34:13 -R00-M1-N02-J01 10.170.0.138 00:14:5E:7D:34:14 -R00-M1-N03-J00 10.170.0.141 00:14:5E:7D:33:DF -R00-M1-N03-J01 10.170.0.142 00:14:5E:7D:33:E0 -R00-M1-N04-J00 10.170.0.145 00:14:5E:7D:95:F0 -R00-M1-N04-J01 10.170.0.146 00:14:5E:7D:95:F1 -R00-M1-N05-J00 10.170.0.149 00:14:5E:7D:16:83 -R00-M1-N05-J01 10.170.0.150 00:14:5E:7D:16:84 -R00-M1-N06-J00 10.170.0.153 00:14:5E:7D:19:7B -R00-M1-N06-J01 10.170.0.154 00:14:5E:7D:19:7C -R00-M1-N07-J00 10.170.0.157 00:14:5E:7D:95:3C -R00-M1-N07-J01 10.170.0.158 00:14:5E:7D:95:3D -R00-M1-N08-J00 10.170.0.161 00:14:5E:7D:94:46 -R00-M1-N08-J01 10.170.0.162 00:14:5E:7D:94:47 -R00-M1-N09-J00 10.170.0.165 00:14:5E:7D:95:52 -R00-M1-N09-J01 10.170.0.166 00:14:5E:7D:95:53 -R00-M1-N10-J00 10.170.0.169 00:14:5E:7D:95:3E -R00-M1-N10-J01 10.170.0.170 00:14:5E:7D:95:3F -R00-M1-N11-J00 10.170.0.173 00:14:5E:7D:95:54 -R00-M1-N11-J01 10.170.0.174 00:14:5E:7D:95:55 -R00-M1-N12-J00 10.170.0.177 00:14:5E:7D:94:7C -R00-M1-N12-J01 10.170.0.178 00:14:5E:7D:94:7D -R00-M1-N13-J00 10.170.0.181 00:14:5E:7D:95:40 -R00-M1-N13-J01 10.170.0.182 00:14:5E:7D:95:41 -R00-M1-N14-J00 10.170.0.185 00:14:5E:7D:94:A0 -R00-M1-N14-J01 10.170.0.186 00:14:5E:7D:94:A1 -R00-M1-N15-J00 10.170.0.189 00:14:5E:7D:94:A6 -R00-M1-N15-J01 10.170.0.190 00:14:5E:7D:94:A7 -R01-M0-N00-J00 10.170.1.1 00:14:5E:7D:1E:53 -R01-M0-N00-J01 10.170.1.2 00:14:5E:7D:1E:54 -R01-M0-N01-J00 10.170.1.5 00:14:5E:7D:94:60 -R01-M0-N01-J01 10.170.1.6 00:14:5E:7D:94:61 -R01-M0-N02-J00 10.170.1.9 00:14:5E:7D:1C:DD -R01-M0-N02-J01 10.170.1.10 00:14:5E:7D:1C:DE -R01-M0-N03-J00 10.170.1.13 00:14:5E:7D:34:37 -R01-M0-N03-J01 10.170.1.14 00:14:5E:7D:34:38 -R01-M0-N04-J00 10.170.1.17 00:14:5E:7D:96:38 -R01-M0-N04-J01 10.170.1.18 00:14:5E:7D:96:39 -R01-M0-N05-J00 10.170.1.21 00:14:5E:7D:94:80 -R01-M0-N05-J01 10.170.1.22 00:14:5E:7D:94:81 -R01-M0-N06-J00 10.170.1.25 00:14:5E:7D:33:5B -R01-M0-N06-J01 10.170.1.26 00:14:5E:7D:33:5C -R01-M0-N07-J00 10.170.1.29 00:14:5E:7D:95:04 -R01-M0-N07-J01 10.170.1.30 00:14:5E:7D:95:05 -R01-M0-N08-J00 10.170.1.33 00:14:5E:7D:1D:1B -R01-M0-N08-J01 10.170.1.34 00:14:5E:7D:1D:1C -R01-M0-N09-J00 10.170.1.37 00:14:5E:7D:93:1E -R01-M0-N09-J01 10.170.1.38 00:14:5E:7D:93:1F -R01-M0-N10-J00 10.170.1.41 00:14:5E:7D:92:AE -R01-M0-N10-J01 10.170.1.42 00:14:5E:7D:92:AF -R01-M0-N11-J00 10.170.1.45 00:14:5E:7D:17:CD -R01-M0-N11-J01 10.170.1.46 00:14:5E:7D:17:CE -R01-M0-N12-J00 10.170.1.49 00:14:5E:7D:92:C6 -R01-M0-N12-J01 10.170.1.50 00:14:5E:7D:92:C7 -R01-M0-N13-J00 10.170.1.53 00:14:5E:7D:97:BA -R01-M0-N13-J01 10.170.1.54 00:14:5E:7D:97:BB -R01-M0-N14-J00 10.170.1.57 00:14:5E:7D:1C:CB -R01-M0-N14-J01 10.170.1.58 00:14:5E:7D:1C:CC -R01-M0-N15-J00 10.170.1.61 00:14:5E:7D:96:36 -R01-M0-N15-J01 10.170.1.62 00:14:5E:7D:96:37 -R01-M1-N00-J00 10.170.1.129 00:14:5E:7D:94:5E -R01-M1-N00-J01 10.170.1.130 00:14:5E:7D:94:5F -R01-M1-N01-J00 10.170.1.133 00:14:5E:7D:1A:CF -R01-M1-N01-J01 10.170.1.134 00:14:5E:7D:1A:D0 -R01-M1-N02-J00 10.170.1.137 00:14:5E:7D:95:56 -R01-M1-N02-J01 10.170.1.138 00:14:5E:7D:95:57 -R01-M1-N03-J00 10.170.1.141 00:14:5E:7D:1B:91 -R01-M1-N03-J01 10.170.1.142 00:14:5E:7D:1B:92 -R01-M1-N04-J00 10.170.1.145 00:14:5E:7D:94:86 -R01-M1-N04-J01 10.170.1.146 00:14:5E:7D:94:87 -R01-M1-N05-J00 10.170.1.149 00:14:5E:7D:1B:7D -R01-M1-N05-J01 10.170.1.150 00:14:5E:7D:1B:7E -R01-M1-N06-J00 10.170.1.153 00:14:5E:7D:1B:77 -R01-M1-N06-J01 10.170.1.154 00:14:5E:7D:1B:78 -R01-M1-N07-J00 10.170.1.157 00:14:5E:7D:94:A4 -R01-M1-N07-J01 10.170.1.158 00:14:5E:7D:94:A5 -R01-M1-N08-J00 10.170.1.161 00:14:5E:7D:8D:02 -R01-M1-N08-J01 10.170.1.162 00:14:5E:7D:8D:03 -R01-M1-N09-J00 10.170.1.165 00:14:5E:7D:34:09 -R01-M1-N09-J01 10.170.1.166 00:14:5E:7D:34:0A -R01-M1-N10-J00 10.170.1.169 00:14:5E:7D:95:DE -R01-M1-N10-J01 10.170.1.170 00:14:5E:7D:95:DF -R01-M1-N11-J00 10.170.1.173 00:14:5E:7D:97:98 -R01-M1-N11-J01 10.170.1.174 00:14:5E:7D:97:99 -R01-M1-N12-J00 10.170.1.177 00:14:5E:7D:33:7D -R01-M1-N12-J01 10.170.1.178 00:14:5E:7D:33:7E -R01-M1-N13-J00 10.170.1.181 00:14:5E:7D:97:12 -R01-M1-N13-J01 10.170.1.182 00:14:5E:7D:97:13 -R01-M1-N14-J00 10.170.1.185 00:14:5E:7D:96:82 -R01-M1-N14-J01 10.170.1.186 00:14:5E:7D:96:83 -R01-M1-N15-J00 10.170.1.189 00:14:5E:7D:96:84 -R01-M1-N15-J01 10.170.1.190 00:14:5E:7D:96:85 -R02-M0-N00-J00 10.170.2.1 00:14:5E:7D:91:00 -R02-M0-N00-J01 10.170.2.2 00:14:5E:7D:91:01 -R02-M0-N01-J00 10.170.2.5 00:14:5E:7D:19:23 -R02-M0-N01-J01 10.170.2.6 00:14:5E:7D:19:24 -R02-M0-N02-J00 10.170.2.9 00:14:5E:7D:19:15 -R02-M0-N02-J01 10.170.2.10 00:14:5E:7D:19:16 -R02-M0-N03-J00 10.170.2.13 00:14:5E:7D:93:4A -R02-M0-N03-J01 10.170.2.14 00:14:5E:7D:93:4B -R02-M0-N04-J00 10.170.2.17 00:14:5E:7D:8D:48 -R02-M0-N04-J01 10.170.2.18 00:14:5E:7D:8D:49 -R02-M0-N05-J00 10.170.2.21 00:14:5E:7D:16:F3 -R02-M0-N05-J01 10.170.2.22 00:14:5E:7D:16:F4 -R02-M0-N06-J00 10.170.2.25 00:14:5E:7D:92:5C -R02-M0-N06-J01 10.170.2.26 00:14:5E:7D:92:5D -R02-M0-N07-J00 10.170.2.29 00:14:5E:7D:17:81 -R02-M0-N07-J01 10.170.2.30 00:14:5E:7D:17:82 -R02-M0-N08-J00 10.170.2.33 00:14:5E:7D:17:A5 -R02-M0-N08-J01 10.170.2.34 00:14:5E:7D:17:A6 -R02-M0-N09-J00 10.170.2.37 00:14:5E:7D:17:A1 -R02-M0-N09-J01 10.170.2.38 00:14:5E:7D:17:A2 -R02-M0-N10-J00 10.170.2.41 00:14:5E:7D:95:5E -R02-M0-N10-J01 10.170.2.42 00:14:5E:7D:95:5F -R02-M0-N11-J00 10.170.2.45 00:14:5E:7D:17:A7 -R02-M0-N11-J01 10.170.2.46 00:14:5E:7D:17:A8 -R02-M0-N12-J00 10.170.2.49 00:14:5E:7D:17:39 -R02-M0-N12-J01 10.170.2.50 00:14:5E:7D:17:3A -R02-M0-N13-J00 10.170.2.53 00:14:5E:7D:17:47 -R02-M0-N13-J01 10.170.2.54 00:14:5E:7D:17:48 -R02-M0-N14-J00 10.170.2.57 00:14:5E:7D:17:99 -R02-M0-N14-J01 10.170.2.58 00:14:5E:7D:17:9A -R02-M0-N15-J00 10.170.2.61 00:14:5E:7D:1B:33 -R02-M0-N15-J01 10.170.2.62 00:14:5E:7D:1B:34 -R02-M1-N00-J00 10.170.2.129 00:14:5E:7D:8F:F0 -R02-M1-N00-J01 10.170.2.130 00:14:5E:7D:8F:F1 -R02-M1-N01-J00 10.170.2.133 00:14:5E:7D:17:73 -R02-M1-N01-J01 10.170.2.134 00:14:5E:7D:17:74 -R02-M1-N02-J00 10.170.2.137 00:14:5E:7D:17:3B -R02-M1-N02-J01 10.170.2.138 00:14:5E:7D:17:3C -R02-M1-N03-J00 10.170.2.141 00:14:5E:7D:1A:DF -R02-M1-N03-J01 10.170.2.142 00:14:5E:7D:1A:E0 -R02-M1-N04-J00 10.170.2.145 00:14:5E:7D:17:B3 -R02-M1-N04-J01 10.170.2.146 00:14:5E:7D:17:B4 -R02-M1-N05-J00 10.170.2.149 00:14:5E:7D:1D:57 -R02-M1-N05-J01 10.170.2.150 00:14:5E:7D:1D:58 -R02-M1-N06-J00 10.170.2.153 00:14:5E:7D:04:9F -R02-M1-N06-J01 10.170.2.154 00:14:5E:7D:04:A0 -R02-M1-N07-J00 10.170.2.157 00:14:5E:7D:17:D7 -R02-M1-N07-J01 10.170.2.158 00:14:5E:7D:17:D8 -R02-M1-N08-J00 10.170.2.161 00:14:5E:7D:1C:B5 -R02-M1-N08-J01 10.170.2.162 00:14:5E:7D:1C:B6 -R02-M1-N09-J00 10.170.2.165 00:14:5E:7D:1C:A3 -R02-M1-N09-J01 10.170.2.166 00:14:5E:7D:1C:A4 -R02-M1-N10-J00 10.170.2.169 00:14:5E:7D:17:BD -R02-M1-N10-J01 10.170.2.170 00:14:5E:7D:17:BE -R02-M1-N11-J00 10.170.2.173 00:14:5E:7D:95:CE -R02-M1-N11-J01 10.170.2.174 00:14:5E:7D:95:CF -R02-M1-N12-J00 10.170.2.177 00:14:5E:7D:17:63 -R02-M1-N12-J01 10.170.2.178 00:14:5E:7D:17:64 -R02-M1-N13-J00 10.170.2.181 00:14:5E:7D:9E:6C -R02-M1-N13-J01 10.170.2.182 00:14:5E:7D:9E:6D -R02-M1-N14-J00 10.170.2.185 00:14:5E:7D:23:DB -R02-M1-N14-J01 10.170.2.186 00:14:5E:7D:23:DC -R02-M1-N15-J00 10.170.2.189 00:14:5E:7D:1D:51 -R02-M1-N15-J01 10.170.2.190 00:14:5E:7D:1D:52 - -R00-BG3-DE601 10.170.0.29 00:12:F2:C6:BB:00 -R00-BG1-DE602 10.170.0.182 00:12:F2:C6:C1:00 -R00-BG1-DE603 10.170.0.38 00:12:F2:C6:C1:00 -R00-BG1-DE604 10.170.0.37 00:12:F2:C6:C1:00 -R00-BG3-DE605 10.170.0.30 00:12:F2:C6:BB:00 -R00-BG2-FR606 10.170.0.25 00:12:F2:C4:C6:00 -R00-BG2-SE607 10.170.0.26 00:12:F2:C4:C6:00 -R00-BG2-UK608 10.170.0.58 00:12:F2:C4:C6:00 - -R01-BG3-DE601 10.170.1.29 00:12:F2:C6:BB:00 -R01-BG1-DE602 10.170.1.182 00:12:F2:C6:C1:00 -R01-BG1-DE603 10.170.1.38 00:12:F2:C6:C1:00 -R01-BG1-DE604 10.170.1.37 00:12:F2:C6:C1:00 -R01-BG3-DE605 10.170.1.30 00:12:F2:C6:BB:00 -R01-BG2-FR606 10.170.1.25 00:12:F2:C4:C6:00 -R01-BG2-SE607 10.170.1.26 00:12:F2:C4:C6:00 -R01-BG2-UK608 10.170.1.58 00:12:F2:C4:C6:00 - -# International stations need to be given the -# IP address of the destination IO node, but -# the MAC address of the first router/switch -# in our network. Currently, that is CBT3 for -# all international stations. - -R00-CBT3-DE601 10.170.0.50 00:01:E8:D7:93:A7 -R00-CBT3-DE602 10.170.0.182 00:01:E8:D7:93:A7 -R00-CBT3-DE603 10.170.0.38 00:01:E8:D7:93:A7 -R00-CBT3-DE604 10.170.0.142 00:01:E8:D7:93:A7 -R00-CBT3-DE605 10.170.0.174 00:01:E8:D7:93:A7 -R00-CBT3-FR606 10.170.0.14 00:01:E8:D7:93:A7 -R00-CBT3-SE607 10.170.0.26 00:01:E8:D7:93:A7 -R00-CBT3-UK608 10.170.0.58 00:01:E8:D7:93:A7 - -R01-CBT3-DE601 10.170.1.50 00:01:E8:D7:93:A7 -R01-CBT3-DE602 10.170.1.182 00:01:E8:D7:93:A7 -R01-CBT3-DE603 10.170.1.38 00:01:E8:D7:93:A7 -R01-CBT3-DE604 10.170.1.142 00:01:E8:D7:93:A7 -R01-CBT3-DE605 10.170.1.174 00:01:E8:D7:93:A7 -R01-CBT3-FR606 10.170.1.14 00:01:E8:D7:93:A7 -R01-CBT3-SE607 10.170.1.26 00:01:E8:D7:93:A7 -R01-CBT3-UK608 10.170.1.58 00:01:E8:D7:93:A7 - -cbt001-10GB01 10.168.96.1 A0:36:9F:1F:78:A4 -cbt001-10GB02 10.168.96.2 A0:36:9F:1F:78:A6 -cbt001-10GB03 10.168.96.3 A0:36:9F:1F:7B:44 -cbt001-10GB04 10.168.96.4 A0:36:9F:1F:7B:46 -cbt002-10GB01 10.168.97.1 A0:36:9F:1F:73:40 -cbt002-10GB02 10.168.97.2 A0:36:9F:1F:73:42 -cbt002-10GB03 10.168.97.3 A0:36:9F:1F:79:A0 -cbt002-10GB04 10.168.97.4 A0:36:9F:1F:79:A2 -cbt003-10GB01 10.168.98.1 A0:36:9F:1F:78:0C -cbt003-10GB02 10.168.98.2 A0:36:9F:1F:78:0E -cbt003-10GB03 10.168.98.3 A0:36:9F:1F:7B:40 -cbt003-10GB04 10.168.98.4 A0:36:9F:1F:7B:42 -cbt004-10GB01 10.168.99.1 A0:36:9F:1F:79:94 -cbt004-10GB02 10.168.99.2 A0:36:9F:1F:79:96 -cbt004-10GB03 10.168.99.3 A0:36:9F:1F:7A:04 -cbt004-10GB04 10.168.99.4 A0:36:9F:1F:7A:06 -cbt005-10GB01 10.168.100.1 A0:36:9F:1F:7B:74 -cbt005-10GB02 10.168.100.2 A0:36:9F:1F:7B:76 -cbt005-10GB03 10.168.100.3 A0:36:9F:1F:79:E0 -cbt005-10GB04 10.168.100.4 A0:36:9F:1F:79:E2 -cbt006-10GB01 10.168.101.1 A0:36:9F:1F:79:A4 -cbt006-10GB02 10.168.101.2 A0:36:9F:1F:79:A6 -cbt006-10GB03 10.168.101.3 A0:36:9F:1F:7A:34 -cbt006-10GB04 10.168.101.4 A0:36:9F:1F:7A:36 -cbt007-10GB01 10.168.102.1 A0:36:9F:1F:79:04 -cbt007-10GB02 10.168.102.2 A0:36:9F:1F:79:06 -cbt007-10GB03 10.168.102.3 A0:36:9F:1F:7B:3C -cbt007-10GB04 10.168.102.4 A0:36:9F:1F:7B:3E -cbt008-10GB01 10.168.103.1 A0:36:9F:1F:79:00 -cbt008-10GB02 10.168.103.2 A0:36:9F:1F:79:02 -cbt008-10GB03 10.168.103.3 A0:36:9F:1F:7B:68 -cbt008-10GB04 10.168.103.4 A0:36:9F:1F:7B:6A -cbt009-10GB01 10.168.104.1 A0:36:9F:1F:36:E4 -cbt009-10GB02 10.168.104.2 A0:36:9F:1F:36:E6 -cbt009-10GB03 10.168.104.3 A0:36:9F:1F:78:64 -cbt009-10GB04 10.168.104.4 A0:36:9F:1F:78:66 - diff --git a/RTCP/Run/src/OLAP.parset b/RTCP/Run/src/OLAP.parset deleted file mode 100644 index 4d72752fd979c7d1c7069ece24e7bd2bbf3a102d..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/OLAP.parset +++ /dev/null @@ -1,350 +0,0 @@ -# -# Hardcoded (temporary) keys -# -OLAP.correctClocks = T - -# -# Fibre length corrections for core stations using -# a single clock. -# - - - -PIC.Core.CS001HBA.clockCorrectionTime = 4.644254e-06 -PIC.Core.CS001HBA0.clockCorrectionTime = 4.655944e-06 -PIC.Core.CS001HBA1.clockCorrectionTime = 4.655978e-06 -PIC.Core.CS001LBA.clockCorrectionTime = 4.640447e-06 -PIC.Core.CS002HBA.clockCorrectionTime = 6.948069e-06 -PIC.Core.CS002HBA0.clockCorrectionTime = 6.876068e-06 -PIC.Core.CS002HBA1.clockCorrectionTime = 6.875945e-06 -PIC.Core.CS002LBA.clockCorrectionTime = 6.951830e-06 -PIC.Core.CS003HBA.clockCorrectionTime = 5.547399e-06 -PIC.Core.CS003HBA0.clockCorrectionTime = 5.470972e-06 -PIC.Core.CS003HBA1.clockCorrectionTime = 5.470796e-06 -PIC.Core.CS003LBA.clockCorrectionTime = 5.550944e-06 -PIC.Core.CS004HBA.clockCorrectionTime = 6.519233e-06 -PIC.Core.CS004HBA0.clockCorrectionTime = 6.451670e-06 -PIC.Core.CS004HBA1.clockCorrectionTime = 6.451372e-06 -PIC.Core.CS004LBA.clockCorrectionTime = 6.514347e-06 -PIC.Core.CS005HBA.clockCorrectionTime = 7.171442e-06 -PIC.Core.CS005HBA0.clockCorrectionTime = 7.101835e-06 -PIC.Core.CS005HBA1.clockCorrectionTime = 7.102188e-06 -PIC.Core.CS005LBA.clockCorrectionTime = 7.167328e-06 -PIC.Core.CS006HBA.clockCorrectionTime = 6.512650e-06 -PIC.Core.CS006HBA0.clockCorrectionTime = 6.446956e-06 -PIC.Core.CS006HBA1.clockCorrectionTime = 6.447241e-06 -PIC.Core.CS006LBA.clockCorrectionTime = 6.510205e-06 -PIC.Core.CS007HBA.clockCorrectionTime = 6.542640e-06 -PIC.Core.CS007HBA0.clockCorrectionTime = 6.476004e-06 -PIC.Core.CS007HBA1.clockCorrectionTime = 6.476265e-06 -PIC.Core.CS007LBA.clockCorrectionTime = 6.545958e-06 -PIC.Core.CS011HBA.clockCorrectionTime = 7.443020e-06 -PIC.Core.CS011HBA0.clockCorrectionTime = 7.468555e-06 -PIC.Core.CS011HBA1.clockCorrectionTime = 7.468466e-06 -PIC.Core.CS011LBA.clockCorrectionTime = 7.439500e-06 -PIC.Core.CS013HBA.clockCorrectionTime = 8.683600e-06 -PIC.Core.CS013HBA0.clockCorrectionTime = 8.789082e-06 -PIC.Core.CS013HBA1.clockCorrectionTime = 8.789163e-06 -PIC.Core.CS013LBA.clockCorrectionTime = 8.683600e-06 -PIC.Core.CS017HBA.clockCorrectionTime = 1.529545e-05 -PIC.Core.CS017HBA0.clockCorrectionTime = 1.532122e-05 -PIC.Core.CS017HBA1.clockCorrectionTime = 1.532124e-05 -PIC.Core.CS017LBA.clockCorrectionTime = 1.529262e-05 -PIC.Core.CS021HBA.clockCorrectionTime = 5.934130e-06 -PIC.Core.CS021HBA0.clockCorrectionTime = 5.958881e-06 -PIC.Core.CS021HBA1.clockCorrectionTime = 5.958987e-06 -PIC.Core.CS021LBA.clockCorrectionTime = 5.928835e-06 -PIC.Core.CS024HBA.clockCorrectionTime = 4.543070e-06 -PIC.Core.CS024HBA0.clockCorrectionTime = 4.555112e-06 -PIC.Core.CS024HBA1.clockCorrectionTime = 4.554948e-06 -PIC.Core.CS024LBA.clockCorrectionTime = 4.547850e-06 -PIC.Core.CS026HBA.clockCorrectionTime = 1.608398e-05 -PIC.Core.CS026HBA0.clockCorrectionTime = 1.610978e-05 -PIC.Core.CS026HBA1.clockCorrectionTime = 1.610975e-05 -PIC.Core.CS026LBA.clockCorrectionTime = 1.608932e-05 -PIC.Core.CS028HBA.clockCorrectionTime = 1.684707e-05 -PIC.Core.CS028HBA0.clockCorrectionTime = 1.685850e-05 -PIC.Core.CS028HBA1.clockCorrectionTime = 1.685840e-05 -PIC.Core.CS028LBA.clockCorrectionTime = 1.685155e-05 -PIC.Core.CS030HBA.clockCorrectionTime = 9.600558e-06 -PIC.Core.CS030HBA0.clockCorrectionTime = 9.625220e-06 -PIC.Core.CS030HBA1.clockCorrectionTime = 9.625306e-06 -PIC.Core.CS030LBA.clockCorrectionTime = 9.595558e-06 -PIC.Core.CS031HBA.clockCorrectionTime = 6.254590e-06 -PIC.Core.CS031HBA0.clockCorrectionTime = 6.264745e-06 -PIC.Core.CS031HBA1.clockCorrectionTime = 6.264743e-06 -PIC.Core.CS031LBA.clockCorrectionTime = 6.260033e-06 -PIC.Core.CS032HBA.clockCorrectionTime = 8.430755e-06 -PIC.Core.CS032HBA0.clockCorrectionTime = 8.455934e-06 -PIC.Core.CS032HBA1.clockCorrectionTime = 8.455896e-06 -PIC.Core.CS032LBA.clockCorrectionTime = 8.426175e-06 -PIC.Core.CS101HBA.clockCorrectionTime = 1.504247e-05 -PIC.Core.CS101HBA0.clockCorrectionTime = 1.505345e-05 -PIC.Core.CS101HBA1.clockCorrectionTime = 1.505347e-05 -PIC.Core.CS101LBA.clockCorrectionTime = 1.503997e-05 -PIC.Core.CS103HBA.clockCorrectionTime = 3.538542e-05 -PIC.Core.CS103HBA0.clockCorrectionTime = 3.549699e-05 -PIC.Core.CS103HBA1.clockCorrectionTime = 3.549696e-05 -PIC.Core.CS103LBA.clockCorrectionTime = 3.538771e-05 -PIC.Core.CS201HBA.clockCorrectionTime = 1.733374e-05 -PIC.Core.CS201HBA0.clockCorrectionTime = 1.735944e-05 -PIC.Core.CS201HBA1.clockCorrectionTime = 1.735918e-05 -PIC.Core.CS201LBA.clockCorrectionTime = 1.733889e-05 -PIC.Core.CS301HBA.clockCorrectionTime = 7.574931e-06 -PIC.Core.CS301HBA0.clockCorrectionTime = 7.600279e-06 -PIC.Core.CS301HBA1.clockCorrectionTime = 7.600270e-06 -PIC.Core.CS301LBA.clockCorrectionTime = 7.569749e-06 -PIC.Core.CS302HBA.clockCorrectionTime = 1.220610e-05 -PIC.Core.CS302HBA0.clockCorrectionTime = 1.223213e-05 -PIC.Core.CS302HBA1.clockCorrectionTime = 1.223202e-05 -PIC.Core.CS302LBA.clockCorrectionTime = 1.220150e-05 -PIC.Core.CS401HBA.clockCorrectionTime = 7.942137e-06 -PIC.Core.CS401HBA0.clockCorrectionTime = 7.833069e-06 -PIC.Core.CS401HBA1.clockCorrectionTime = 7.833096e-06 -PIC.Core.CS401LBA.clockCorrectionTime = 7.936700e-06 -PIC.Core.CS501HBA.clockCorrectionTime = 1.646870e-05 -PIC.Core.CS501HBA0.clockCorrectionTime = 1.649378e-05 -PIC.Core.CS501HBA1.clockCorrectionTime = 1.649352e-05 -PIC.Core.CS501LBA.clockCorrectionTime = 1.646420e-05 - -# -# Stations outside of the core (no correction needed) -# -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS210LBA.clockCorrectionTime = 0 -PIC.Core.RS210HBA.clockCorrectionTime = 0 -PIC.Core.RS305LBA.clockCorrectionTime = 0 -PIC.Core.RS305HBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS310LBA.clockCorrectionTime = 0 -PIC.Core.RS310HBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS407LBA.clockCorrectionTime = 0 -PIC.Core.RS407HBA.clockCorrectionTime = 0 -PIC.Core.RS409LBA.clockCorrectionTime = 0 -PIC.Core.RS409HBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.clockCorrectionTime = 0 - -# DE601 has a clock offset for unknown reasons -PIC.Core.DE601LBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601HBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.clockCorrectionTime = 0 - - -# -# Phase centers -# -Observation.referencePhaseCenter = [3826577.066, 461022.948, 5064892.786] - -PIC.Core.CS001LBA.phaseCenter = [3826923.546, 460915.441, 5064643.489] -PIC.Core.CS001HBA.phaseCenter = [3826937.810, 460938.526, 5064630.696] -PIC.Core.CS001HBA0.phaseCenter = [3826896.235, 460979.455, 5064658.203] -PIC.Core.CS001HBA1.phaseCenter = [3826979.384, 460897.597, 5064603.189] - -PIC.Core.CS002LBA.phaseCenter = [3826577.066, 461022.948, 5064892.786] -PIC.Core.CS002HBA.phaseCenter = [3826583.278, 460955.756, 5064894.197] -PIC.Core.CS002HBA0.phaseCenter = [3826600.961, 460953.402, 5064881.136] -PIC.Core.CS002HBA1.phaseCenter = [3826565.594, 460958.110, 5064907.258] - -PIC.Core.CS003LBA.phaseCenter = [3826516.748, 460930.066, 5064946.457] -PIC.Core.CS003HBA.phaseCenter = [3826494.580, 461017.698, 5064955.176] -PIC.Core.CS003HBA0.phaseCenter = [3826471.348, 461000.138, 5064974.201] -PIC.Core.CS003HBA1.phaseCenter = [3826517.812, 461035.258, 5064936.150] - -PIC.Core.CS004LBA.phaseCenter = [3826654.197, 460939.576, 5064842.426] -PIC.Core.CS004HBA.phaseCenter = [3826582.556, 460891.662, 5064900.532] -PIC.Core.CS004HBA0.phaseCenter = [3826585.626, 460865.844, 5064900.561] -PIC.Core.CS004HBA1.phaseCenter = [3826579.486, 460917.480, 5064900.502] - -PIC.Core.CS005LBA.phaseCenter = [3826668.750, 461069.550, 5064819.754] -PIC.Core.CS005HBA.phaseCenter = [3826666.177, 461005.533, 5064827.472] -PIC.Core.CS005HBA0.phaseCenter = [3826701.160, 460989.250, 5064802.685] -PIC.Core.CS005HBA1.phaseCenter = [3826631.194, 461021.815, 5064852.259] - -PIC.Core.CS006LBA.phaseCenter = [3826596.730, 461145.178, 5064866.978] -PIC.Core.CS006HBA.phaseCenter = [3826633.141, 461108.369, 5064842.975] -PIC.Core.CS006HBA0.phaseCenter = [3826653.783, 461136.440, 5064824.943] -PIC.Core.CS006HBA1.phaseCenter = [3826612.499, 461080.298, 5064861.006] - -PIC.Core.CS007LBA.phaseCenter = [3826533.361, 461098.966, 5064918.721] -PIC.Core.CS007HBA.phaseCenter = [3826508.368, 461126.726, 5064934.972] -PIC.Core.CS007HBA0.phaseCenter = [3826478.715, 461083.720, 5064961.117] -PIC.Core.CS007HBA1.phaseCenter = [3826538.021, 461169.731, 5064908.827] - -PIC.Core.CS011LBA.phaseCenter = [3826667.069, 461285.849, 5064801.592] -PIC.Core.CS011HBA.phaseCenter = [3826643.191, 461290.793, 5064819.069] -PIC.Core.CS011HBA0.phaseCenter = [3826637.421, 461227.345, 5064829.134] -PIC.Core.CS011HBA1.phaseCenter = [3826648.961, 461354.241, 5064809.003] - -PIC.Core.CS013LBA.phaseCenter = [3826346.265, 460792.111, 5065087.136] -PIC.Core.CS013HBA.phaseCenter = [3826360.529, 460815.196, 5065074.343] -PIC.Core.CS013HBA0.phaseCenter = [3826318.954, 460856.125, 5065101.850] -PIC.Core.CS013HBA1.phaseCenter = [3826402.103, 460774.267, 5065046.836] - -PIC.Core.CS017LBA.phaseCenter = [3826462.054, 461501.950, 5064935.827] -PIC.Core.CS017HBA.phaseCenter = [3826452.439, 461529.979, 5064940.511] -PIC.Core.CS017HBA0.phaseCenter = [3826405.095, 461507.460, 5064978.083] -PIC.Core.CS017HBA1.phaseCenter = [3826499.783, 461552.498, 5064902.938] - -PIC.Core.CS021LBA.phaseCenter = [3826406.543, 460538.604, 5065064.870] -PIC.Core.CS021HBA.phaseCenter = [3826416.158, 460510.576, 5065060.187] -PIC.Core.CS021HBA0.phaseCenter = [3826463.502, 460533.094, 5065022.614] -PIC.Core.CS021HBA1.phaseCenter = [3826368.813, 460488.057, 5065097.759] - -PIC.Core.CS024LBA.phaseCenter = [3827161.234, 461409.408, 5064421.046] -PIC.Core.CS024HBA.phaseCenter = [3827170.849, 461381.379, 5064416.362] -PIC.Core.CS024HBA0.phaseCenter = [3827218.193, 461403.898, 5064378.790] -PIC.Core.CS024HBA1.phaseCenter = [3827123.504, 461358.861, 5064453.935] - -PIC.Core.CS026LBA.phaseCenter = [3826390.916, 461869.852, 5064955.913] -PIC.Core.CS026HBA.phaseCenter = [3826376.653, 461846.767, 5064968.706] -PIC.Core.CS026HBA0.phaseCenter = [3826418.227, 461805.837, 5064941.199] -PIC.Core.CS026HBA1.phaseCenter = [3826335.078, 461887.696, 5064996.213] - -PIC.Core.CS028LBA.phaseCenter = [3825600.445, 461260.593, 5065604.325] -PIC.Core.CS028HBA.phaseCenter = [3825614.709, 461283.678, 5065591.532] -PIC.Core.CS028HBA0.phaseCenter = [3825573.134, 461324.607, 5065619.039] -PIC.Core.CS028HBA1.phaseCenter = [3825656.283, 461242.749, 5065564.025] - -PIC.Core.CS030LBA.phaseCenter = [3826014.266, 460387.389, 5065372.328] -PIC.Core.CS030HBA.phaseCenter = [3826000.003, 460364.303, 5065385.121] -PIC.Core.CS030HBA0.phaseCenter = [3826041.577, 460323.374, 5065357.614] -PIC.Core.CS030HBA1.phaseCenter = [3825958.428, 460405.233, 5065412.628] - -PIC.Core.CS031LBA.phaseCenter = [3826439.996, 460273.833, 5065063.594] -PIC.Core.CS031HBA.phaseCenter = [3826430.381, 460301.862, 5065068.278] -PIC.Core.CS031HBA0.phaseCenter = [3826383.037, 460279.343, 5065105.850] -PIC.Core.CS031HBA1.phaseCenter = [3826477.725, 460324.381, 5065030.705] - -PIC.Core.CS032LBA.phaseCenter = [3826891.573, 460387.910, 5064715.292] -PIC.Core.CS032HBA.phaseCenter = [3826905.837, 460410.995, 5064702.499] -PIC.Core.CS032HBA0.phaseCenter = [3826864.262, 460451.924, 5064730.006] -PIC.Core.CS032HBA1.phaseCenter = [3826947.411, 460370.066, 5064674.992] - -PIC.Core.CS101LBA.phaseCenter = [3825843.018, 461704.416, 5065381.461] -PIC.Core.CS101HBA.phaseCenter = [3825852.633, 461676.388, 5065376.778] -PIC.Core.CS101HBA0.phaseCenter = [3825899.977, 461698.906, 5065339.205] -PIC.Core.CS101HBA1.phaseCenter = [3825805.288, 461653.869, 5065414.350] - -PIC.Core.CS103LBA.phaseCenter = [3826304.279, 462823.089, 5064934.334] -PIC.Core.CS103HBA.phaseCenter = [3826290.016, 462800.003, 5064947.127] -PIC.Core.CS103HBA0.phaseCenter = [3826331.590, 462759.074, 5064919.620] -PIC.Core.CS103HBA1.phaseCenter = [3826248.441, 462840.933, 5064974.634] - -PIC.Core.CS201LBA.phaseCenter = [3826708.929, 461913.747, 5064713.838] -PIC.Core.CS201HBA.phaseCenter = [3826685.051, 461918.691, 5064731.315] -PIC.Core.CS201HBA0.phaseCenter = [3826679.281, 461855.243, 5064741.380] -PIC.Core.CS201HBA1.phaseCenter = [3826690.821, 461982.139, 5064721.249] - -PIC.Core.CS301LBA.phaseCenter = [ 3827412.917, 460992.310, 5064269.932] -PIC.Core.CS301HBA.phaseCenter = [ 3827436.795, 460987.367, 5064252.456] -PIC.Core.CS301HBA0.phaseCenter = [ 3827442.564, 461050.814, 5064242.391] -PIC.Core.CS301HBA1.phaseCenter = [ 3827431.025, 460923.919, 5064262.521] - -PIC.Core.CS302LBA.phaseCenter = [3827945.916, 459792.639, 5063990.016] -PIC.Core.CS302HBA.phaseCenter = [3827931.652, 459769.554, 5064002.807] -PIC.Core.CS302HBA0.phaseCenter = [3827973.226, 459728.624, 5063975.300] -PIC.Core.CS302HBA1.phaseCenter = [3827890.077, 459810.483, 5064030.313] - -PIC.Core.CS401LBA.phaseCenter = [3826766.106, 460100.388, 5064836.470] -PIC.Core.CS401HBA.phaseCenter = [3826789.982, 460095.444, 5064818.996] -PIC.Core.CS401HBA0.phaseCenter = [3826795.752, 460158.894, 5064808.929] -PIC.Core.CS401HBA1.phaseCenter = [3826784.211, 460031.993, 5064829.062] - -PIC.Core.CS501LBA.phaseCenter = [3825625.779, 460642.110, 5065640.772] -PIC.Core.CS501HBA.phaseCenter = [3825616.164, 460670.139, 5065645.456] -PIC.Core.CS501HBA0.phaseCenter = [3825568.820, 460647.620, 5065683.028] -PIC.Core.CS501HBA1.phaseCenter = [3825663.508, 460692.658, 5065607.883] - -PIC.Core.DE601LBA.phaseCenter = [4034038.256, 487026.579, 4900280.346] -PIC.Core.DE601HBA.phaseCenter = [4034101.522, 487012.757, 4900230.499] - -PIC.Core.DE602LBA.phaseCenter = [4152560.658, 828869.076, 4754357.155] -PIC.Core.DE602HBA.phaseCenter = [4152568.006, 828789.153, 4754362.203] - -PIC.Core.DE603LBA.phaseCenter = [3940284.908, 816802.334, 4932393.021] -PIC.Core.DE603HBA.phaseCenter = [3940295.706, 816722.865, 4932394.416] - -PIC.Core.DE604LBA.phaseCenter = [3796327.178, 877591.636, 5032757.508] -PIC.Core.DE604HBA.phaseCenter = [3796379.823, 877614.130, 5032712.528] - -PIC.Core.DE605LBA.phaseCenter = [4005681.355, 450968.621, 4926457.941] -PIC.Core.DE605HBA.phaseCenter = [4005681.020, 450968.643, 4926458.211] - -PIC.Core.FR606LBA.phaseCenter = [4323979.809, 165608.773, 4670303.094] -PIC.Core.FR606HBA.phaseCenter = [4324016.708, 165545.525, 4670271.363] - -PIC.Core.RS106LBA.phaseCenter = [3829261.425, 469162.285, 5062137.310] -PIC.Core.RS106HBA.phaseCenter = [3829205.598, 469142.533, 5062181.002] - -PIC.Core.RS205LBA.phaseCenter = [3831438.563, 463435.440, 5061025.466] -PIC.Core.RS205HBA.phaseCenter = [3831479.670, 463487.529, 5060989.903] - -PIC.Core.RS208LBA.phaseCenter = [3847810.051, 466929.706, 5048357.222] -PIC.Core.RS208HBA.phaseCenter = [3847753.310, 466962.809, 5048397.244] - -PIC.Core.RS210LBA.phaseCenter = [3877847.44687, 467456.926958, 5025437.607] -PIC.Core.RS210HBA.phaseCenter = [3877827.56186, 467536.604956, 5025445.584] - -PIC.Core.RS305LBA.phaseCenter = [3828720.768, 454781.428, 5063851.101] -PIC.Core.RS305HBA.phaseCenter = [3828732.721, 454692.421, 5063850.334] - -PIC.Core.RS306LBA.phaseCenter = [3829791.808, 452829.848, 5063221.590] -PIC.Core.RS306HBA.phaseCenter = [3829771.249, 452761.702, 5063243.181] - -PIC.Core.RS307LBA.phaseCenter = [3837940.949, 449560.756, 5057381.288] -PIC.Core.RS307HBA.phaseCenter = [3837964.520, 449627.261, 5057357.585] - -PIC.Core.RS310LBA.phaseCenter = [3845433.052, 413580.888, 5054756.170] -PIC.Core.RS310HBA.phaseCenter = [3845376.290, 413616.564, 5054796.341] - -PIC.Core.RS406LBA.phaseCenter = [3818467.634, 451974.601, 5071790.597] -PIC.Core.RS406HBA.phaseCenter = [3818424.939, 452020.269, 5071817.644] - -PIC.Core.RS407LBA.phaseCenter = [3811595.861, 453444.681, 5076770.429] -PIC.Core.RS407HBA.phaseCenter = [3811649.455, 453459.894, 5076728.952] - -PIC.Core.RS409LBA.phaseCenter = [3824755.853, 426178.847, 5069289.868] -PIC.Core.RS409HBA.phaseCenter = [3824812.621, 426130.330, 5069251.754] - -PIC.Core.RS503LBA.phaseCenter = [3824090.452, 459438.282, 5066898.190] -PIC.Core.RS503HBA.phaseCenter = [3824138.566, 459476.972, 5066858.578] - -PIC.Core.RS508LBA.phaseCenter = [3797202.116, 463087.509, 5086605.037] -PIC.Core.RS508HBA.phaseCenter = [3797136.484, 463114.447, 5086651.286] - -PIC.Core.RS509LBA.phaseCenter = [3783579.131, 450178.882, 5097830.835] -PIC.Core.RS509HBA.phaseCenter = [3783537.525, 450130.064, 5097866.146] - -PIC.Core.SE607LBA.phaseCenter = [3370286.931, 712053.871, 5349991.459] -PIC.Core.SE607HBA.phaseCenter = [3370271.657, 712125.881, 5349991.165] - -PIC.Core.UK608LBA.phaseCenter = [4008438.457, -100309.725, 4943735.828] -PIC.Core.UK608HBA.phaseCenter = [4008461.941, -100376.609, 4943716.874] diff --git a/RTCP/Run/src/RSPConnections.dat b/RTCP/Run/src/RSPConnections.dat deleted file mode 100644 index af653873da91aa1b683c592870123c23de26ceeb..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/RSPConnections.dat +++ /dev/null @@ -1,143 +0,0 @@ -# -# RSPConnections -# -# $Id: $ -# -# List of Connections between RSP boards and the BG/P at CEP. -# Each station can have four RSP boards broadcasting at the same -# time; they all connect to the same BG/P I/O node. Thence, there -# is only one entry per station. -# -# The Core stations have two possible connections: one for -# 1x48 HBA tiles, one for 2x24 HBA tiles. These have two separate -# entries in this file. -# -# IMPORTANT !!!!!! BEWARE -# -# The items in the seperate lines of this file must be seperated by either a SINGLE whitespace or a single tab!!!! -# Furthermore, this file is read by PVSS controllers to fill in the database, ANY change could possibly have an impact -# on PVSS, so please double check. In case of doubt, contact the PVSS maintainer -# -# board I/O node -CS001 RSP_0 R00-M1-N07-J00 -CS001 RSP_1 R00-M0-N07-J00 - -CS002 RSP_0 R00-M1-N01-J00 -CS002 RSP_1 R00-M0-N01-J00 - -CS003 RSP_0 R00-M1-N02-J00 -CS003 RSP_1 R00-M0-N02-J00 - -CS004 RSP_0 R00-M1-N03-J00 -CS004 RSP_1 R00-M0-N03-J00 - -CS005 RSP_0 R00-M1-N00-J01 -CS005 RSP_1 R00-M0-N00-J01 - -CS006 RSP_0 R00-M1-N01-J01 -CS006 RSP_1 R00-M0-N01-J01 - -CS007 RSP_0 R00-M1-N02-J01 -CS007 RSP_1 R00-M0-N02-J01 - -CS011 RSP_0 R00-M1-N09-J00 -CS011 RSP_1 R00-M0-N09-J00 - -CS013 RSP_0 R00-M0-N10-J01 -CS013 RSP_1 R00-M0-N14-J01 - -CS017 RSP_0 R00-M1-N08-J00 -CS017 RSP_1 R00-M0-N08-J00 - -CS021 RSP_0 R00-M1-N00-J00 -CS021 RSP_1 R00-M0-N00-J00 - -CS024 RSP_0 R00-M1-N03-J01 -CS024 RSP_1 R00-M0-N03-J01 - -CS026 RSP_0 R00-M1-N05-J00 -CS026 RSP_1 R00-M0-N05-J00 - -CS028 RSP_0 R00-M1-N09-J01 -CS028 RSP_1 R00-M0-N09-J01 - -CS030 RSP_0 R00-M1-N06-J00 -CS030 RSP_1 R00-M0-N06-J00 - -CS031 RSP_0 R00-M1-N13-J00 -CS031 RSP_1 R00-M1-N13-J01 - -CS032 RSP_0 R00-M1-N04-J01 -CS032 RSP_1 R00-M0-N04-J01 - -CS101 RSP_0 R00-M1-N04-J00 -CS101 RSP_1 R00-M0-N04-J00 - -CS103 RSP_0 R00-M1-N11-J00 -CS103 RSP_1 R00-M0-N11-J00 - -CS201 RSP_0 R00-M1-N05-J01 -CS201 RSP_1 R00-M0-N05-J01 - -CS301 RSP_0 R00-M1-N06-J01 -CS301 RSP_1 R00-M0-N06-J01 - -CS302 RSP_0 R00-M0-N13-J00 -CS302 RSP_1 R00-M0-N13-J01 - -CS401 RSP_0 R00-M1-N07-J01 -CS401 RSP_1 R00-M0-N07-J01 - -CS501 RSP_0 R00-M1-N10-J00 -CS501 RSP_1 R00-M0-N10-J00 - -# Remote stations - -RS104 RSP_0 R00-M0-N08-J01 - -RS106 RSP_0 R00-M1-N11-J01 - -RS205 RSP_0 R00-M0-N11-J01 - -RS208 RSP_0 R00-M1-N08-J01 - -RS210 RSP_0 R00-M1-N14-J01 - -RS305 RSP_0 R00-M0-N14-J00 - -RS306 RSP_0 R00-M1-N14-J00 - -RS307 RSP_0 R00-M1-N15-J00 - -RS310 RSP_0 R00-M0-N12-J01 - -RS406 RSP_0 R00-M0-N15-J00 - -RS407 RSP_0 R00-M1-N12-J00 - -RS409 RSP_0 R00-M1-N12-J01 - -RS410 RSP_0 R00-M0-N12-J00 - -RS503 RSP_0 R00-M1-N10-J01 - -RS508 RSP_0 R00-M1-N15-J01 - -RS509 RSP_0 R00-M0-N15-J01 - -DE601 RSP_0 R00-BG3-DE601 - -DE602 RSP_0 R00-BG1-DE602 - -DE603 RSP_0 R00-BG1-DE603 - -DE604 RSP_0 R00-BG1-DE604 - -DE605 RSP_0 R00-BG3-DE605 - -FR606 RSP_0 R00-BG2-FR606 - -SE607 RSP_0 R00-BG2-SE607 - -UK608 RSP_0 R00-BG2-UK608 - diff --git a/RTCP/Run/src/RTCP.parset b/RTCP/Run/src/RTCP.parset deleted file mode 100644 index 528a67bc22bc12699ff74ca69d4750820b9cd548..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/RTCP.parset +++ /dev/null @@ -1,188 +0,0 @@ -# ----- Generic information -Observation.ObserverName = "Developer" -Observation.ProjectName = "Development" -Observation.Campaign.CO_I = "" -Observation.Campaign.PI = "Developer" -Observation.Campaign.contact = "" -Observation.Campaign.name = "Development" -Observation.Campaign.title = "Development" - -# ----- Input streams -Observation.VirtualInstrument.stationList = [S33] -#Observation.antennaSet=LBA_INNER -#Observation.antennaSet=LBA_OUTER -#Observation.antennaSet=LBA_X -#Observation.antennaSet=LBA_Y -#Observation.antennaSet=LBA_SPARSE_EVEN -#Observation.antennaSet=LBA_SPARSE_ODD -#Observation.antennaSet=HBA_ZERO -#Observation.antennaSet=HBA_ONE -#Observation.antennaSet=HBA_DUAL -#Observation.antennaSet=HBA_JOINED -#Observation.antennaSet=LBA_INNER -Observation.antennaSet= - -OLAP.realTime = T # T when reading data from stations, F when reading from disk - -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 # the number of subbands -OLAP.nrTimesInFrame = 16 - -# Eg. [ 300..303, 40 ] --> [ 300,301,302,303,40 ] -# [ 10*0 ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -# [ 3*(0;1;2;3) ] --> [ 0,1,2,3,0,1,2,3,0,1,2,3 ] -# [ 3*(300..303) ] --> [ 300,301,302,303,300,301,302,303,300,301,302,303 ] -# [ 2*(5*0) ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -Observation.subbandList = [100..110] -Observation.sampleClock = 200 -Observation.nrBitsPerSample = 16 - -# Observation.{beamList,rspBoardList,rspSlotList} are automatically derived from Observation.subbandList -#Observation.beamList = [244*0] -#Observation.rspBoardList = [61*0,61*1,61*2,61*3] -#Observation.rspSlotList = [0..60,0..60,0..60,0..60] - - -# Common coordinates are included at the bottom -Observation.nrBeams = 1 -Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].directionType = J2000 - -Observation.Beam[0].nrTiedArrayBeams = 0 -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[0].coherent = T -#Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -#Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 -#Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 -#Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 1.2 -#Observation.Beam[0].TiedArrayBeam[2].angle1 = 0 -#Observation.Beam[0].TiedArrayBeam[2].angle2 = 0 -#Observation.Beam[0].TiedArrayBeam[2].directionType = J2000 -#Observation.Beam[0].TiedArrayBeam[2].dispersionMeasure = 1.3 - -# ----- Output streams -OLAP.Storage.hosts = [locus095] -OLAP.Storage.targetDirectory = /data # will be appended with dirmask and filenammask - -Observation.DataProducts.Output_Beamformed.enabled = F -Observation.DataProducts.Output_Correlated.enabled = T -Observation.DataProducts.Output_Trigger.enabled = F - -Observation.DataProducts.Output_Correlated.namemask = L${OBSID}_SB${SUBBAND}_uv.MS -Observation.DataProducts.Output_Beamformed.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger - -Observation.channelsPerSubband = 1 - -OLAP.delayCompensation = F -OLAP.coherentDedisperseChannels = F - -OLAP.correctBandPass = F -#Observation.bandFilter = LBA_10_90 -Observation.bandFilter = LBA_30_90 -#Observation.bandFilter = HBA_110_190 -#Observation.bandFilter = HBA_170_230 -#Observation.bandFilter = HBA_210_250 - -OLAP.Correlator.integrationTime = 1.0 -#OLAP.IONProc.integrationSteps = 1 # (generated) -#OLAP.CNProc.integrationSteps = 768 # (generated, multiple of 128 for pencil beams) - -OLAP.CNProc_CoherentStokes.subbandsPerFile = 15 -OLAP.CNProc_CoherentStokes.which = XXYY # I or IQUV or XXYY -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 1 # time integration -OLAP.CNProc_CoherentStokes.channelsPerSubband = 0 # 0 = same as observation - -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.which = I # I or IQUV or XXYY -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 # time integration -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 0 # 0 = same as observation - -# ----- Beam forming -OLAP.PencilInfo.flysEye = T # don't form pencil beams, but turn stations - # into pencil beams - -OLAP.PencilInfo.nrRings = 0 # 0 = just the central beam -OLAP.PencilInfo.ringSize = 0.01 - -# Eg. tiedArray beamforming -#Observation.Beamformer[0].stationList = "B01_0,B01_1" -#Observation.Beamformer[1].stationList = "B01_2,B01_3" - -# ----- CNProc internals -# Transports should be one of FCNP, TCP, NULL. This works for IONProc, but not for -# CNProc, since CNProc does not open the parset file! -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP - -# generate fake station input, overriding any real data -OLAP.CNProc.fakeInputData = T -OLAP.CNProc.checkFakeInputData = F - -OLAP.CNProc.nrPPFTaps = 16 - -# Phase 1: Handle input from stations. The stations used determine which psets -# are in phase 1, so typically, the python environment will fill this in. -#OLAP.CNProc.phaseOnePsets = [0] - -# Phase 2: Performs the correlation and beam forming. Outputs imaging data. -# (FilteredData and CorrelatedData). Any set of psets can be used for this phase. -#OLAP.CNProc.phaseTwoPsets = [0] - -# Phase 3: Transposed beam formed data and operations on them. Psets used in phase -# 3 are either disjunct from those in phase 1 and 2, or the same as the psets for -# phase 1+2. -#OLAP.CNProc.phaseThreePsets = [0] - -# Define which cores to use in the psets. usedCoresInPset defines the total set -# of cores reserved for this observation. phaseOneTwoCores and phaseThreeCores are -# subsets of usedCoresInPset, and are either equal or disjunct. -OLAP.CNProc.usedCoresInPset = [0..63] -#OLAP.CNProc.phaseOneTwoCores = [0..63] -#OLAP.CNProc.phaseThreeCores = [0..63] - -# NOTE: Phase 3 is expected to use one out of the following configurations: -# 1) Which psets and cores equal with phase 1+2, i.e. -# phaseThreePsets = phaseTwoPsets -# phaseThreeCores = phaseOneTwoCores = usedCoresInPset -# 2) Disjunct psets, all phases use all cores: -# |phaseTwoPsets+phaseThreePsets| = |phaseTwoPsets| + |phaseThreePsets| -# phaseThreeCores = phaseOneTwoCores = usedCoresInPset -# 3) Disjunct cores, all phases use the same psets: -# phaseThreePsets = phaseTwoPsets -# |phaseOneTwoCores+phaseThreeCores| = |phaseOneTwoCores| + |phaseThreeCores| = usedCoresInPset -# Not all cores in usedCoresInPset have to be used, but it makes no sense not to. - -# ----- IONProc internals -OLAP.DelayComp.positionType = ITRF # should be ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.maxNetworkDelay = 0.5 - -# ----- Storage internals -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -#OLAP.OLAP_Conn.IONProc_Storage_Ports = [6300..7291] # only define this if you want specific ports to be used - -# ----- Coordinates of common sources -#Observation.Beam[0].angle1 = 0 # NCP -#Observation.Beam[0].angle2 = 1.570796327 -#Observation.Beam[0].angle1 = 5.0690771897724982 # PSR B1919+21 -#Observation.Beam[0].angle2 = 0.38194712046815321 -#Observation.Beam[0].angle1 = 0.9293418663522305 # PSR B0329+54 -#Observation.Beam[0].angle2 = 0.9525792284909524 -#Observation.Beam[0].angle1 = 3.314704691633744 # Pulsar -#Observation.Beam[0].angle2 = 0.434535060205780 -#Observation.Beam[0].angle1 = 6.1234876806221052 # Cas A -#Observation.Beam[0].angle2 = 1.0265153995604648 -#Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -#Observation.Beam[0].angle2 = 0.71094251447010637 -#Observation.Beam[2].angle1 = 0.9293418663522305 # pulsar -#Observation.Beam[2].angle2 = 0.9525792284909524 -#Observation.Beam[0].angle1 = 5.62942569373173 # Jupiter -#Observation.Beam[0].angle2 = -0.268760827446199 -#Observation.Beam[0].angle1 = 1.4596748494230258 # Taurus -#Observation.Beam[0].angle2 = 0.38422502336661052 - diff --git a/RTCP/Run/src/casarc b/RTCP/Run/src/casarc deleted file mode 100644 index 25f74c476c1b4034f2967a7c3b2ec8b73ce6e5f3..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/casarc +++ /dev/null @@ -1,2 +0,0 @@ -# use nutation tables for increased (and needed) accuracy -measures.nutation.b_usejpl: true diff --git a/RTCP/Run/src/commandOLAP.py b/RTCP/Run/src/commandOLAP.py deleted file mode 100755 index bc781e3fa0ff820e0bafe9e40ed97ac68fd5c089..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/commandOLAP.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python - -from LOFAR import Logger -from logging import debug,info,warning,error,critical -from LOFAR.CommandClient import sendCommand -import sys -import socket - -DRYRUN = False - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import os - import time - - # parse the command line - parser = OptionParser( usage = """usage: %prog -P partition command - - where 'command' is one of the following: - - parset FILE send the parset FILE to the correlator - cancel OBSID cancel or abort observation OBSID - quit stop the correlator after the last observation - """ ) - - opgroup = OptionGroup(parser, "Output" ) - opgroup.add_option( "-v", "--verbose", - dest = "verbose", - action = "store_true", - default = False, - help = "be verbose [%default]" ) - opgroup.add_option( "-q", "--quiet", - dest = "quiet", - action = "store_true", - default = False, - help = "be quiet [%default]" ) - parser.add_option_group( opgroup ) - - hwgroup = OptionGroup(parser, "Hardware" ) - hwgroup.add_option( "-P", "--partition", - dest = "partition", - type = "string", - help = "name of the BlueGene partition [%default]" ) - parser.add_option_group( hwgroup ) - - # parse arguments - (options, args) = parser.parse_args() - - # ========== Global options - - if not args or not options.partition: - parser.print_help() - sys.exit(1) - - if options.verbose: - Logger.DEBUG = True - - if not options.quiet: - DEBUG = True - - Logger.initLogger() - - # connect and send command - try: - sendCommand( options.partition, " ".join(args) ) - except socket.error, msg: - critical( "Socket error: %s" % (msg,) ) diff --git a/RTCP/Run/src/controller.sh b/RTCP/Run/src/controller.sh deleted file mode 100755 index 4f1371f788820aabc14ee186e982e97023bd8df7..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/controller.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -COMMAND=$1 - -# helper function to limit the execution time of a command. usage: -# alarm timeout cmd arg1 arg2 -function alarm() { - perl -e 'alarm shift; exec @ARGV' "$@"; -} - -type getpid >&/dev/null || function getpid() { - PID=DOWN - PIDFILE="/tmp/`procname`-$USER.pid" - - if [ -f "$PIDFILE" ] - then - PID=`cat -- "$PIDFILE"` - fi - - if [ ! -e /proc/$PID ] - then - PID=DOWN - fi -} - -function isstarted() { - # assume started if "DOWN" does not appear in $PID - PID=$PID </dev/null awk 'END { exit !(index(ENVIRON["PID"],"DOWN") == 0) }' -} - -type setpid >&/dev/null || function setpid() { - PID=$1 - PIDFILE="/tmp/`procname`-$USER.pid" - - if [ "x$PID" == "x" ] - then - exit - fi - - echo "$PID" > "$PIDFILE" -} - -type delpid >&/dev/null || function delpid() { - PIDFILE="/tmp/`procname`-$USER.pid" - rm -f -- "$PIDFILE" -} - -function procname() { - # the basename of this script, without its extension - basename -- "$0" | sed 's/[.][^.]*$//g' -} - -type start >&/dev/null || function start() { - tail -F / >&/dev/null & -} - -type stop >&/dev/null || function stop() { - kill -15 "$PID" -} - -getpid - -case $COMMAND in - start) if ! isstarted - then - PID= - - start || exit $! - - FUNCPID=$! - if [ -z "$PID" ] - then - PID=$FUNCPID - fi - setpid $PID - fi - ;; - - stop) if isstarted - then - stop || exit $! - delpid - fi - ;; - - status) - SWLEVEL=$2 - printf "%d : %-25s %s\n" "$SWLEVEL" "`procname`" "$PID" - ;; - - *) echo "usage: $0 {start|stop|status}" - ;; -esac - diff --git a/RTCP/Run/src/deploy/Makefile b/RTCP/Run/src/deploy/Makefile deleted file mode 100644 index 0937b398e52de8204bc41702f9333d46de5661b7..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/deploy/Makefile +++ /dev/null @@ -1,228 +0,0 @@ -# -# This script should be used to create and deploy a new release branch for OLAP. The script -# can also be used to rebuild en redeploy an existing release. -# -# A typical evocation: -# lofarsys@bgfen0:~> RELEASE=current make -# -# All variables below which are set using ?= are meant to be -# optionally overruled. -# -# Various useful commands. RELEASE must be one of: -# - set to a date denoting a previous release -# - "new" -- create a new release, stamped today -# - "current" -- denotes the release currently active on bgfen. -# - "trunk" -- no release will be created, but the trunk -# will be rolled out directly. -# -# make install - compiles and installs the sources (default) -# make activate - activate the install -# make all - make install + make activate -# -# make restart - restart OLAP (swlevel 0 && swlevel 6) -# -# make prev - switch back to the previous release -# make sync - sync the locus nodes to the current release -# -# Other optional environment settings: -# LOCUS_NODES - the set of storage nodes to act on (cexec notation, i.e. :0-1 or locus: (default)) -# -# COMMON_FLAGS - extra CMake flags to use for all packages -# ION_FLAGS - extra CMake flags to use for IONProc compilation -# CN_FLAGS - extra CMake flags to use for CNProc compilation -# BGFEN_FLAGS - extra CMake flags to use for building software running on bgfen0/1 (ApplController, ACDaemon, RTCP/Run, etc) -# STORAGE_FLAGS - extra CMake flags to use for Storage compilation -# -# BUGNR - the bugzilla bug number under which to file the new release branch checkin -# DEVELOPER - the subversion user which commits a new relase branch -# - -ifeq "${RELEASE}" "new" - RELEASE := $(shell date +%Y%m%d) -endif - -ifeq "${RELEASE}" "current" - RELEASE := $(shell basename `readlink -f ${HOME}/production/lofar` 2>/dev/null | cut -d- -f2) -endif - -ifeq "${RELEASE}" "" - $(error $$RELEASE was not set, or could not determine current install. Use export RELEASE=`date +%Y%m%d` for a new release or export RELEASE=current to work with the current release) -endif - -ifneq "${USER}" "lofarsys" - # the software needs to be installed as user lofarsys - $(error Please run as lofarsys) -endif - -ifneq "${HOST}" "bgfen0" - ifneq "${HOST}" "bgfen1" - # the software needs to be installed on bgfen0 and/or bgfen1 - $(error Please run on bgfen0 or bgfen1) - endif -endif - -ifeq "$(shell basename ${HOME})" "lofartest" - TESTENV := 1 -endif - -# The developer under which a release is branched off -DEVELOPER ?= mol - -# The bug number under which the release branch is filed -BUGNR ?= 1362 - -# Compilation flagsq -COMMON_FLAGS += -DLOFAR_SVN_UPDATE=ON -DBUILD_TESTING=OFF -ION_FLAGS += -CN_FLAGS += -BGFEN_FLAGS += -DUSE_LOG4CPLUS=ON -STORAGE_FLAGS += -DDAL_ROOT_DIR=/globalhome/lofarsystem/packages/root/lhn/lda -DUSE_MPI=OFF -DUSE_LOG4CPLUS=ON - -# Extra powers for Storage_main -STORAGE_CAPABILITIES = cap_sys_admin,cap_sys_nice,cap_ipc_lock - -# Subversion configuration -SVN = svn --non-interactive --username ${DEVELOPER} -SVN_TRUNK = https://svn.astron.nl/LOFAR/trunk -ifeq "${RELEASE}" "trunk" - SVN_BRANCH = ${SVN_TRUNK} -else - SVN_BRANCH ?= https://svn.astron.nl/LOFAR/branches/LOFAR-Release-${RELEASE} -endif - -# Directory structure -SOURCE_DIR = ${HOME}/source/lofar-${RELEASE} -BUILD_DIR = ${HOME}/build/lofar-${RELEASE} -INSTALL_DIR ?= ${HOME}/production/lofar-${RELEASE} - -ifdef TESTENV - LOCUS_HOME = /data/home/lofartest -else - LOCUS_HOME = /data/home/lofarsys -endif - -LOCUS_INSTALL_DIR ?= ${LOCUS_HOME}/production/lofar-${RELEASE} - -# Host names -LHN_HOST = lhn001.cep2.lofar -ifeq "${HOST}" "bgfen0" - LOCUS_NODES ?= locus:0-93 -else - LOCUS_NODES ?= locus:94-99 -endif - -# Determine if the requested release is already active -CURRENT_INSTALL := $(shell readlink -f ${HOME}/production/lofar) -PREV_INSTALL := $(shell readlink -f ${HOME}/production/lofar-prev) -MY_INSTALL := ${INSTALL_DIR} - -# Descriptive names for targets -CHECKOUT = ${SOURCE_DIR}/LOFAR/CMakeLists.txt -INSTALL_ION = ${INSTALL_DIR}/bgpion/bin/ION_Processing -INSTALL_CN = ${INSTALL_DIR}/bgpcn/bin/CN_Processing -INSTALL_LHN = ${INSTALL_DIR}/lhn/bin/Storage_main -INSTALL_BGFEN = ${INSTALL_DIR}/bgfen/bin/ApplController - -.DEFAULT: install -.PHONY: all install activate prev sync -all: install activate -install: install_ion install_cn install_bgfen install_lhn -activate: activate_bgfen activate_locus -prev: prev_bgfen prev_locus -sync: activate_locus - -.PHONY: checkout configure install_ion install_cn install_bgfen install_lhn - -checkout: ${CHECKOUT} -install_ion: ${INSTALL_ION} -install_cn: ${INSTALL_CN} -install_bgfen: ${INSTALL_BGFEN} -install_lhn: ${INSTALL_LHN} - -.PHONY: restart -restart: - swlevel 0 && swlevel 6 - -.PHONY: clean -clean: - rm -rf ${BUILD_DIR} ${SOURCE_DIR} # never clean install - - -# Create a release branch, if it does not yet exist. -.PHONY: release_branch -release_branch: - ${SVN} info ${SVN_BRANCH} &>/dev/null || ${SVN} copy -m "bug 1362: New release: ${RELEASE}" ${SVN_TRUNK} ${SVN_BRANCH} - -# Checkout the release branch into the source directory, but only LOFAR/* and LOFAR/CMake/*, as cmake will pull in the rest. -${CHECKOUT}: release_branch - mkdir -p ${SOURCE_DIR} - test -d ${SOURCE_DIR}/LOFAR || ${SVN} checkout -q --depth=files ${SVN_BRANCH} ${SOURCE_DIR}/LOFAR - ${SVN} update -q --depth=files ${SOURCE_DIR}/LOFAR - ${SVN} update -q ${SOURCE_DIR}/LOFAR/CMake - -# Configure all packages -# cmake needs to pull in additional packages from subversion. A parallel build would pull the same directories to the same destinations in parallel, -# which subversion doesn't allow. -configure: checkout - mkdir -p ${BUILD_DIR}/bgpion_opt - cd ${BUILD_DIR}/bgpion_opt && cmake ${SOURCE_DIR}/LOFAR -DBUILD_PACKAGES=IONProc ${COMMON_FLAGS} ${ION_FLAGS} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/bgp_ion - - mkdir -p ${BUILD_DIR}/bgpcn_opt - cd ${BUILD_DIR}/bgpcn_opt && cmake ${SOURCE_DIR}/LOFAR -DBUILD_PACKAGES=CNProc ${COMMON_FLAGS} ${CN_FLAGS} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/bgp_cn - - mkdir -p ${BUILD_DIR}/bgfen/gnu_opt - cd ${BUILD_DIR}/bgfen/gnu_opt && cmake ${SOURCE_DIR}/LOFAR -DBUILD_PACKAGES="Appl_Controller;APLCommon;Run" ${COMMON_FLAGS} ${BGFEN_FLAGS} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/bgfen - - mkdir -p ${BUILD_DIR}/lhn/gnu_opt - # remove /data/sys: on lhn, /opt is a symlink for /data/sys/opt, which cmake resolves for us. However, on locus, - # we really need it as /opt. - ssh ${LHN_HOST} 'cd ${BUILD_DIR}/lhn/gnu_opt && cmake ${SOURCE_DIR}/LOFAR -DBUILD_PACKAGES="Storage;StaticMetaData" ${COMMON_FLAGS} ${STORAGE_FLAGS} -DCMAKE_INSTALL_PREFIX=${LOCUS_INSTALL_DIR}' - -# Build and install ION_Processing -${INSTALL_ION}: configure - cd ${BUILD_DIR}/bgpion_opt && make -j16 install - -# Build and install CN_Processing -${INSTALL_CN}: configure - cd ${BUILD_DIR}/bgpcn_opt && make -j16 install - -# Build and install support software on bgfen -${INSTALL_BGFEN}: configure - cd ${BUILD_DIR}/bgfen/gnu_opt && make -j16 install - - cd ${HOME}/production && cp ${PREV_INSTALL}/bgfen/etc/*.debug ${INSTALL_DIR}/bgfen/etc - - ln -sfT ${HOME}/log ${INSTALL_DIR}/bgfen/log - -# Build and install Storage_main -${INSTALL_LHN}: configure - ssh ${LHN_HOST} 'cd ${BUILD_DIR}/lhn/gnu_opt && make -j16 install' - ssh ${LHN_HOST} 'for d in `ldd ${LOCUS_INSTALL_DIR}/bin/Storage_main | awk "/=> \// { print \\$$3; }"`; do echo "Scanning dependency $$d"; if [ "`stat -f -c %T $$d`" == "nfs" ]; then echo "Copying dependency $$d from NFS to local disk"; cp $$d ${LOCUS_INSTALL_DIR}/lib; fi; done' - ssh ${LHN_HOST} "cexec ${LOCUS_NODES} 'mkdir -p `dirname ${LOCUS_INSTALL_DIR}` && time scp -rq ${LHN_HOST}:${LOCUS_INSTALL_DIR} `dirname ${LOCUS_INSTALL_DIR}` && sudo /sbin/setcap ${STORAGE_CAPABILITIES}=ep ${LOCUS_INSTALL_DIR}/bin/Storage_main'" - -# Activate the installation -.PHONY: activate_bgfen activate_locus -activate_bgfen: install_ion install_cn install_bgfen -ifneq "${CURRENT_INSTALL}" "${MY_INSTALL}" - ln -sfT ${CURRENT_INSTALL} ${HOME}/production/lofar-prev - ln -sfT ${MY_INSTALL} ${HOME}/production/lofar -endif - -activate_locus: install_lhn -ifneq "${CURRENT_INSTALL}" "${MY_INSTALL}" - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${CURRENT_INSTALL}` ${LOCUS_HOME}/production/lofar-prev - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${MY_INSTALL}` ${LOCUS_HOME}/production/lofar - -else - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${PREV_INSTALL}` ${LOCUS_HOME}/production/lofar-prev - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${CURRENT_INSTALL}` ${LOCUS_HOME}/production/lofar -endif - -# Swap previous and current release -.PHONY: prev_bgfen prev_locus -prev_bgfen: - ln -sfT ${CURRENT_INSTALL} ${HOME}/production/lofar-prev - ln -sfT ${PREV_INSTALL} ${HOME}/production/lofar - -prev_locus: - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${CURRENT_INSTALL}` ${LOCUS_HOME}/production/lofar-prev - ssh ${LHN_HOST} cexec ${LOCUS_NODES} ln -sfT ${LOCUS_HOME}/production/`basename ${PREV_INSTALL}` ${LOCUS_HOME}/production/lofar - diff --git a/RTCP/Run/src/generate_OLAP.parset.pl b/RTCP/Run/src/generate_OLAP.parset.pl deleted file mode 100755 index 55964939df813f8258baffdbd607d164a2b2186c..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/generate_OLAP.parset.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/perl -# -# usage: -# -# ./generate_OLAP.parset *-AntennaField.conf > OLAP.parset -# -# The AntennaField configuration files are in -# MAC/Deployment/data/StaticMetaData/AntennaFields/ - - -while(<>) { - # "AntennaPositions for CS001" - $station = $1 if /AntennaPositions for ([A-Z0-9]+)/; - - # "LBA" - $field = $1 if /^(LBA|HBA|HBA0|HBA1)$/; - - # empty line moves to next field - $field = "" if /^\s+$/; - next if $field eq ""; - - # "3 [ 3826923.589520000 460915.393221000 5064643.461 ]" - /3\s+\[\s+([0-9.-]+)\s+([0-9.-]+)\s+([0-9.-]+)\s+\]/ || next; - $x = $1; - $y = $2; - $z = $3; - - printf "PIC.Core.%s%s.phaseCenter = [%.3f, %.3f, %.3f]\n", $station, $field, $x, $y, $z; -} - diff --git a/RTCP/Run/src/gracefullyStopBGProcessing.sh b/RTCP/Run/src/gracefullyStopBGProcessing.sh deleted file mode 100644 index 5e7eeb016992c26953b09a98d01c058124d4cb1d..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/gracefullyStopBGProcessing.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source locations.sh - -set_psetinfo - -echo "cancel all" > /dev/tcp/$FIRSTPSET/4000 2>/dev/null && -echo "quit" > /dev/tcp/$FIRSTPSET/4000 2>/dev/null && -sleep 10 # allow processes to quit diff --git a/RTCP/Run/src/locations.sh.in b/RTCP/Run/src/locations.sh.in deleted file mode 100644 index bc64dbcc0a9022852b43bfcd19427205ee4ab85f..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/locations.sh.in +++ /dev/null @@ -1,143 +0,0 @@ -function isproduction() { - [ "lofarsys" == "$USER" ] -} - -TIMESTAMP=`date +%Y-%m-%d_%H%M%S` - -if [ -z "$LOFARROOT" ] -then - LOFARROOT=/opt/lofar -fi - -if [ -z "$OBSID" ] -then - OBSID='${OBSID}' -fi - -ETCDIR=$LOFARROOT/etc - -source $ETCDIR/BlueGeneControl.conf - -if isproduction -then - ISPRODUCTION=1 - - if [ "`basename $HOME`" == "lofartest" ] - then - ISTESTENV=1 - STORAGE_HOME=/data/home/lofartest - OTDB_HOST=sasdbtest - - IONPROC_PARSET="/lofar/lofarsys/parsets/T$OBSID.parset" - STORAGE_PARSET="/globalhome/lofarsystem/log/T$OBSID.parset" - LOGPARAMS="-s `CEPlogProcessorSettings | awk '/test/ { print $2; }'`" - else - ISTESTENV=0 - STORAGE_HOME=/data/home/lofarsys - OTDB_HOST=sasdb - - IONPROC_PARSET="/lofar/lofarsys/parsets/L$OBSID.parset" - STORAGE_PARSET="/globalhome/lofarsystem/log/L$OBSID.parset" - LOGPARAMS="-s `CEPlogProcessorSettings | awk '/production/ { print $2; }'`" - fi - - CNPROC=$HOME/production/lofar/bgp_cn/bin/CN_Processing - IONPROC=$HOME/production/lofar/bgp_ion/bin/ION_Processing - STORAGE=$STORAGE_HOME/production/lofar/bin/Storage_main - FINALMETADATAGATHERER=$STORAGE_HOME/production/lofar/bin/FinalMetaDataGatherer - - LOGDIR=/localhome/log - RUNDIR=$HOME - LOGBACKUPDIR=$HOME/log-archive - - EXTRA_KEYS=" -OLAP.Storage.userName = lofarsys -OLAP.Storage.sshIdentityFile = /root/.ssh/id_rsa.lofarsys -OLAP.Storage.msWriter=$STORAGE -OLAP.Storage.AntennaSetsConf = $STORAGE_HOME/production/lofar/etc/AntennaSets.conf -OLAP.Storage.AntennaFieldsDir = $STORAGE_HOME/production/lofar/etc/StaticMetaData -OLAP.Storage.HBADeltasDir = $STORAGE_HOME/production/lofar/etc/StaticMetaData - -OLAP.FinalMetaDataGatherer.host = lhn001 -OLAP.FinalMetaDataGatherer.userName = lofarsys -OLAP.FinalMetaDataGatherer.sshIdentityFile = /root/.ssh/id_rsa.lofarsys -OLAP.FinalMetaDataGatherer.executable = LD_LIBRARY_PATH= $FINALMETADATAGATHERER - -OLAP.FinalMetaDataGatherer.database.host = $OTDB_HOST - -OLAP.CNProc.partition = $PARTITION - " -else - ISPRODUCTION=0 - - CNPROC=$HOME/projects/LOFAR/installed/bgpcn_opt/bin/CN_Processing - IONPROC=$HOME/projects/LOFAR/installed/bgpion_opt/bin/ION_Processing - STORAGE=$HOME/projects/LOFAR/installed/gnu_opt/bin/Storage_main - FINALMETADATAGATHERER=$HOME/projects/LOFAR/installed/gnu_opt/bin/FinalMetaDataGatherer - - LOGDIR=$HOME/projects/LOFAR/log - RUNDIR=$LOGDIR - LOGBACKUPDIR=$LOGDIR - LOGPARAMS="-v" - - IONPROC_PARSET="$LOGDIR/L$OBSID.parset" - EXTRA_KEYS=" -OLAP.Storage.userName = $USER -OLAP.Storage.sshIdentityFile = $HOME/id_rsa -OLAP.Storage.msWriter = $STORAGE -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData - -OLAP.FinalMetaDataGatherer.host = lhn001 -OLAP.FinalMetaDataGatherer.userName = $USER -OLAP.FinalMetaDataGatherer.sshIdentityFile = $HOME/id_rsa -OLAP.FinalMetaDataGatherer.executable = LD_LIBRARY_PATH= $FINALMETADATAGATHERER - -OLAP.FinalMetaDataGatherer.database.host = sasdb - -OLAP.CNProc.partition = $PARTITION - " -fi - - -function set_psetinfo() { - if [ "$PARTITION" == "LOFARTEST" ] - then - PSETS="10.170.1.1,10.170.1.33" - FIRSTPSET="10.170.1.1" - - return - fi - if [ "$PARTITION" == "R01-M0-N00-J00-16" ] - then - PSETS="10.170.1.1" - FIRSTPSET="10.170.1.1" - - return - fi - if [ "$PARTITION" == "R01-M0-N00-32" ] - then - PSETS="10.170.1.1,10.170.1.2" - FIRSTPSET="10.170.1.1" - - return - fi - - # list both the partition directly (small partitions) and recursively (large partitions) to get all -32 subpartitions - # bghierarchy needs a valid stdin for some reason and will read from it, so provide a fake one - if [ "$PARTITION" == "R00R01" ] - then - SUBPARTITIONS="`(cd /;bghierarchy -s R00 R01;bghierarchy -s \`bghierarchy -s R00 R01\`) </dev/null`" - else - SUBPARTITIONS="`(cd /;bghierarchy -s $PARTITION;bghierarchy -s \`bghierarchy -s $PARTITION\`) </dev/null`" - fi - - # a comma-separated list of all psets in $PARTITION - # xxx-32 means both xxx-J00 and xxx-J01 - PSETS=`for i in $SUBPARTITIONS; do echo $i; done|grep -- "-32$"|sort -u|sed 's/-32$/-J00/;p;s/-J00$/-J01/'|xargs -L 1 host -4|cut -d\ -f 4|tr '\n' ','` - - # the address of the first pset in the $PARTITION - FIRSTPSET=`for i in $SUBPARTITIONS; do echo $i; done|grep -- "-32$"|sort -u|sed 's/-32$/-J00/;p;s/-J00$/-J01/'|xargs -L 1 host -4|cut -d\ -f 4|head -n 1` -} - diff --git a/RTCP/Run/src/multitail-olap.conf b/RTCP/Run/src/multitail-olap.conf deleted file mode 100644 index 10c32680744a749ebc5e30d66bd1878d3d379f19..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/multitail-olap.conf +++ /dev/null @@ -1,61 +0,0 @@ -colorscheme:olap:OLAP log files (CNProc/IONProc/Storage) - -# ----- errors and warnings - -# MPI errors -mcsre:red:BE_MPI.*|^mpirun noticed.*exited on signal.*|^MPI_.*|^Abort\(1\)|^\[bgfen.* mca_oob_tcp_msg_recv:||Assertion `.*' failed. - -# crashing IO Node -mcsre:red:.* Signal:.*$ - -# OLAP error messages -mcsre:red:ERROR|FATAL|EXCEPTION|(Un)?[Cc]aught.*|Assertion.*failed.$ -mcsre:yellow:WARN - -# startBGL python error messages -mcsre:red:[A-Za-z.]+Error: - -# ----- messages by 'tail' (used by multitail) -# examples: -# tail: `/globalhome/lofarsystem/log/latest/run.CNProc.log' has appeared; following end of new file -# --------------------------------------------------- file got truncated /globalhome/lofarsystem/log/latest/run.CNProc.log --------------------------------------------------- -# tail: `/globalhome/lofarsystem/log/latest/run.CNProc.log' has become inaccessible: No such file or directory -# tail: `/globalhome/lofarsystem/log/latest/run.CNProc.log' has appeared; following end of new file -mcsre:yellow:tail:.* - -# ----- line prefixes -# timestamps of OLAP log lines -mcsre:magenta: [0-9:.]{12} -# timestamps of MPI error messages -mcsre_s:magenta: ([0-9:.]{15})> -# first 4 fields of the log (APPNAME DATE TIME LEVEL) -mcsre:cyan:^([^ ]+ ){4} - -# ----- flags -# any station with >0% flags -mcsre_s:red:(station [A-Z0-9]+).*\([0-9.]{2,5}%\) -# don't color 0% flags -mcsre:white:\(0%\) -# color all other flag percentages -mcsre:red:\([0-9.]+%\) - -# ----- station/observation prefixes -mcsre:green:\[station [^[]+\] -mcsre_s:green:(\[obs [^[]+\]) - -# ----- define filters and rewrite rules to show only errors -filterscheme:errors:Only show severe errors -rule:em:ERROR|FATAL.*[Cc]aught|EXCEPTION|BE_MPI|FATAL \w+Error:|^mpirun noticed.*exited on signal|Assertion.*failed.$| Signal: |^MPI_.*|^Abort\(1\).*|^\[bgfen.* mca_oob_tcp_msg_recv:.*|Assertion `.*' failed.|[A-Za-z.]+Error: - -filterscheme:flags:Only show >0% flagging -rule:em:flags.*\([0-9.]{2,5}%\) - -editscheme:flags:Filter flag lines -editrule:ke:late[^,]+, -editrule:ke:delays: \[.*]+, -editrule:ke:\[[0-9.]+> - -# ----- general default configuration values -scheme:olap:(CNProc|IONProc).log.* -check_mail:0 - diff --git a/RTCP/Run/src/routeToCobalt b/RTCP/Run/src/routeToCobalt deleted file mode 100755 index 07d8bdcefa092a79da109b1608d2ffe8f6c97e44..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/routeToCobalt +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -CONFFILE=/opt/lofar/etc/BlueGeneControl.conf - -if [ "$1" == "yes" -o "$1" == "cobalt" ] -then - # Route to Cobalt - sed -i 's/ROUTE_TO_COBALT\w*=.*$/ROUTE_TO_COBALT=1/' $CONFFILE -elif [ "$1" == "no" -o "$1" == "BGP" ] -then - # Route to BG/P - sed -i 's/ROUTE_TO_COBALT\w*=.*$/ROUTE_TO_COBALT=0/' $CONFFILE -fi - -# Report -source $CONFFILE - -if [ $ROUTE_TO_COBALT -eq 1 ] -then - DEST="Cobalt" -else - DEST="BG/P" -fi - -echo "Observations are processed by: $DEST" diff --git a/RTCP/Run/src/startBGL.sh b/RTCP/Run/src/startBGL.sh deleted file mode 100755 index 9d49a453b794a5124faf6158c1e529d4eb982cfc..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/startBGL.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# startBGL.sh jobName partition executable workingDir paramfile noNodes -# -# jobName -# executable executable file (should be in a place that is readable from BG/L) -# workingDir directory for output files (should be readable by BG/L) -# parameterfile jobName.ps -# observationID observation number -# noNodes number of nodes of the partition to use -# -# start the job and stores the jobID in jobName.jobID -# -# all ACC processes expect to be started with "ACC" as first parameter - -JOBNAME=$1 -PARSET=$4 -OBSID=$5 - -source /opt/lofar/bin/locations.sh - - -( - -echo "---------------" -date -echo starting obs $OBSID -echo "---------------" - -if [ "$ROUTE_TO_COBALT" -eq 1 ] -then - # Reroute to Cobalt - echo "Rerouting to Cobalt" - - # Copy parset to Cobalt - echo "Transferring parset to Cobalt..." - COBALT_PARSET="/opt/lofar/var/run/`basename $PARSET`" - scp $PARSET "10.168.96.1:$COBALT_PARSET" - - # Copy the parset to NFS for post processing - cp $PARSET $STORAGE_PARSET - - # Make the /opt/lofar/var/log/latest symlink - ln -sfT `dirname $STORAGE_PARSET` /opt/lofar/var/log/latest - - # Start the observation on Cobalt - echo "Signalling start to Cobalt..." - ssh 10.168.96.1 startBGL.sh 1 2 3 "$COBALT_PARSET" $OBSID - - # And.. done! - echo "Done" - exit 0 -fi - -# Convert keys where needed -/opt/lofar/bin/LOFAR/Parset.py -P $PARTITION $PARSET /opt/lofar/etc/OLAP.parset <(echo "$EXTRA_KEYS") > $IONPROC_PARSET && - -# Copy the parset to NFS for post processing -(cp $IONPROC_PARSET $STORAGE_PARSET || true) && - -# Make the /opt/lofar/var/log/latest symlink -(ln -sfT `dirname $STORAGE_PARSET` /opt/lofar/var/log/latest || true) && - -# Make the /opt/lofar/var/log/latest.parset symlink -(ln -sfT $STORAGE_PARSET /globalhome/lofarsystem/log/latest.parset || true) && - -# Inject the parset into the correlator -/opt/lofar/bin/commandOLAP.py -P $PARTITION parset $IONPROC_PARSET - -) 2>&1 | /opt/lofar/bin/LOFAR/Logger.py -t "$LOGDIR/startBGL.log" diff --git a/RTCP/Run/src/stopBGL.sh b/RTCP/Run/src/stopBGL.sh deleted file mode 100755 index 71aa8c15b75b7f8b71a547b10fe697be0096219d..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/stopBGL.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# stopAP.sh partition jobName -# -# jobName The name of the job -# observationID Observation number -# - -#echo -n "Killing job " $2 -#killjob $1 `cat $2.jobID` -#rm -f $2.pid $2.ps - -source /opt/lofar/bin/locations.sh - -JOB=$1 -OBSID=$2 - -# stopBGL.sh is used both to abort an observation and at the end of -# an observation. Sleep a bit so that OLAP can temrinate on its own -# in the latter case. - -if [ $ROUTE_TO_COBALT -eq 1 ] -then - # Reroute to Cobalt - echo "Rerouting to Cobalt" - - # Stop the observation on Cobalt - # (TODO: disabled because MAC calls stopBGL before we're finished) - #ssh mol@10.168.96.1 stopBGL.sh 1 $OBSID - - # And.. done! - exit 0 -fi - -/opt/lofar/bin/commandOLAP.py -P $PARTITION cancel $OBSID diff --git a/RTCP/Run/src/tools/CMakeLists.txt b/RTCP/Run/src/tools/CMakeLists.txt deleted file mode 100644 index 217c34b4e1191bbfd2597d16d277e290de5f1d3a..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# $Id: CMakeLists.txt 14273 2009-10-16 10:08:29Z loose $ - -lofar_add_bin_program(packetanalysis packetanalysis.c) -lofar_add_bin_program(analyzer common.c analyzer.c) - -if(USE_THREADS) - lofar_add_bin_program(udp-copy common.c udp-copy.c) - lofar_add_bin_program(generator common.c generator.c) -endif(USE_THREADS) - diff --git a/RTCP/Run/src/tools/analyzer.c b/RTCP/Run/src/tools/analyzer.c deleted file mode 100644 index a069ad5bfc05953c04c1173d9fa2ac0e2e92ba54..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/analyzer.c +++ /dev/null @@ -1,157 +0,0 @@ -#include "common.h" - -#include <byteswap.h> -#include <stdio.h> -#include <stdlib.h> -#include <time.h> -#include <unistd.h> -#include <sys/time.h> -#include <sys/types.h> - - -double rate = 195312.5; -unsigned subbands = 61; -unsigned samples_per_frame = 16; -unsigned bits_per_sample = 16; - -char name[64]; -unsigned message_size; -int sk; -unsigned packets_received, missed, out_of_order, errors, bad_timestamps; -unsigned clock_speed; -unsigned long long expected_time; - - -int receive_packet() -{ - char packet[9000]; - size_t bytes_received; - - for (bytes_received = 0; bytes_received < message_size;) { - ssize_t retval = read(sk, packet + bytes_received, message_size - bytes_received); - - if (retval < 0) { - ++ errors; - perror("read"); - sleep(1); - } else if (retval == 0) { - return 0; - } else { - bytes_received += retval; - } - } - - ++ packets_received; - -#if defined __BIG_ENDIAN__ - unsigned seconds = __bswap_32(* (int *) (packet + 8)); - unsigned fraction = __bswap_32(* (int *) (packet + 12)); -#else - unsigned seconds = * (int *) (packet + 8); - unsigned fraction = * (int *) (packet + 12); -#endif - - if (seconds == 0xFFFFFFFF) { - ++ bad_timestamps; - } else { - unsigned long long time = ((unsigned long long) seconds * clock_speed + 512) / 1024 + fraction; - - if (expected_time != time && expected_time != 0) - missed += (time - expected_time) / samples_per_frame; - - if (time < expected_time) - ++ out_of_order; - - expected_time = time + samples_per_frame; - } - - return 1; -} - - -void parse_args(int argc, char **argv) -{ - if (argc == 1) { - fprintf(stderr, "usage: %s [-f frequency (default 195312.5)] [-s subbands (default 61)] [-t times_per_frame (default 16)] [udp:ip:port | tcp:ip:port | file:name | null: | - ] ... \n", argv[0]); - exit(1); - } - - int arg; - - for (arg = 1; arg < argc && argv[arg][0] == '-'; arg ++) - switch (argv[arg][1]) { - case 'a': set_affinity(argument(&arg, argv)); - break; - - case 'b': bits_per_sample = atoi(argument(&arg, argv)); - break; - - case 'f': rate = atof(argument(&arg, argv)); - break; - - case 'r': set_real_time_priority(); - break; - - case 's': subbands = atoi(argument(&arg, argv)); - break; - - case 't': samples_per_frame = atoi(argument(&arg, argv)); - break; - - default : fprintf(stderr, "unrecognized option '%c'\n", argv[arg][1]); - exit(1); - } - - if (arg == argc) - exit(0); - - enum proto proto; - sk = create_fd(argv[arg], 0, &proto, name, sizeof name); -} - - -void print_message() -{ - fprintf(stderr, "received %u packets from %s", packets_received, name); - - if (missed > 0) - fprintf(stderr, ", missed = %u", missed); - - if (out_of_order > 0) - fprintf(stderr, ", out of order = %u", out_of_order); - - if (errors > 0) - fprintf(stderr, ", read errors = %u", errors); - - if (bad_timestamps > 0) - fprintf(stderr, ", bad timestamps = %u", bad_timestamps); - - fputc('\n', stderr); - - packets_received = missed = out_of_order = errors = bad_timestamps = 0; -} - - -int main(int argc, char **argv) -{ - if_BGP_set_default_affinity(); - setvbuf(stderr, 0, _IOLBF, 0); - parse_args(argc, argv); - - message_size = 16 + samples_per_frame * subbands * bits_per_sample / 2; - clock_speed = (unsigned) (1024 * rate); - - time_t last_time; - - while (receive_packet()) { - time_t current_wtime = time(0); - - if (current_wtime != last_time) { - last_time = current_wtime; - print_message(); - } - } - - print_message(); - return 0; -} diff --git a/RTCP/Run/src/tools/common.c b/RTCP/Run/src/tools/common.c deleted file mode 100644 index 84ff772f68e105049b7193b1508e821ee0114e30..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/common.c +++ /dev/null @@ -1,541 +0,0 @@ -/* Copyright 2008, John W. Romein, Stichting ASTRON - * - * This program 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 of the License, or - * (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#undef USE_RING_BUFFER - -#define _GNU_SOURCE -#include "common.h" - -#include <errno.h> -#include <fcntl.h> -#include <netdb.h> -#include <netinet/in.h> -#include <poll.h> -#include <pthread.h> -#include <sched.h> -#include <sys/mman.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/syscall.h> -#include <sys/types.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#if defined __linux__ -#include <linux/if_ether.h> -#include <linux/if_packet.h> -#include <linux/filter.h> -#include <linux/version.h> - -#define IOPRIO_BITS (16) -#define IOPRIO_CLASS_SHIFT (13) -#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1) - -#define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT) -#define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK) -#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data) - -#define IOPRIO_WHO_PROCESS 1 -#define IOPRIO_WHO_PGRP 2 -#define IOPRIO_WHO_USER 3 - -#define IOPRIO_CLASS_NONE 0 -#define IOPRIO_CLASS_RT 1 -#define IOPRIO_CLASS_BE 2 -#define IOPRIO_CLASS_IDLE 3 -#else -#define KERNEL_VERSION(X,Y,Z) 0 -#endif - - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - - -int create_IP_socket(const char *arg, int is_output, enum proto proto) -{ - char *colon; - struct sockaddr_in sa; - struct hostent *host; - int sk, old_sk, buffer_size = 8 * 1024 * 1024; - unsigned short port; - - if ((colon = strchr(arg, ':')) == 0) { - fprintf(stderr, "badly formatted IP:PORT address"); - exit(1); - } - - port = colon[1] != '\0' ? strtol(colon + 1, 0, 0) : 0; - *colon = '\0'; - - pthread_mutex_lock(&mutex); - - if ((host = gethostbyname(arg)) == 0) { - perror("gethostbyname"); - exit(1); - } - - pthread_mutex_unlock(&mutex); - - memset(&sa, 0, sizeof sa); - sa.sin_family = AF_INET; - sa.sin_port = htons(port); - memcpy(&sa.sin_addr, host->h_addr, host->h_length); - - if ((sk = socket(AF_INET, proto == UDP ? SOCK_DGRAM : SOCK_STREAM, proto == UDP ? IPPROTO_UDP : IPPROTO_TCP)) < 0) { - perror("socket"); - exit(1); - } - - if (is_output) { - while (connect(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - if (errno == ECONNREFUSED) { - sleep(1); - } else { - perror("connect"); - exit(1); - } - } - -#if 1 - if (setsockopt(sk, SOL_SOCKET, SO_SNDBUF, &buffer_size, sizeof buffer_size) < 0) - perror("setsockopt failed"); -#endif - } else { - if (bind(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - perror("bind"); - exit(1); - } - - if (proto == TCP) { - listen(sk, 5); - old_sk = sk; - - if ((sk = accept(sk, 0, 0)) < 0) { - perror("accept"); - exit(1); - } - - close(old_sk); - } - -#if 0 - if (setsockopt(sk, SOL_SOCKET, SO_RCVBUF, &buffer_size, sizeof buffer_size) < 0) - perror("setsockopt failed"); -#endif - } - -#if 0 && defined USE_RING_BUFFER - struct tpacket_req req; - - req.tp_block_size = 16384; - req.tp_block_nr = 64; - req.tp_frame_size = 8192; - req.tp_frame_nr = req.tp_block_size / req.tp_frame_size * req.tp_block_nr; - - if (setsockopt(sk, SOL_SOCKET, PACKET_RX_RING, &req, sizeof req) < 0) { - perror("ring buffer setsockopt"); - exit(1); - } -#endif - -#if 0 - int *buf; - - if ((buf = mmap(0, req.tp_block_size * req.tp_block_nr, PROT_READ|PROT_WRITE, MAP_SHARED, sk, 0)) == MAP_FAILED) { - perror("ring buffer mmap"); - exit(1); - } - - printf("%d %d %d %d\n", buf[0], buf[1], buf[2], buf[3]); -#endif - - return sk; -} - - -int create_file(const char *arg, int is_output) -{ - int fd; - - if ((fd = open(arg, is_output ? O_CREAT | O_WRONLY : O_RDONLY, 0666)) < 0) { - perror("opening input file"); - exit(1); - } - - return fd; -} - - -int create_stdio(int is_output, enum proto proto) -{ - switch (proto) { - case StdIn : if (is_output) { - fprintf(stderr, "Cannot write to stdin\n"); - exit(1); - } - - return dup(0); - - case StdOut : if (!is_output) { - fprintf(stderr, "Cannot read from stdout\n"); - exit(1); - } - - return dup(1); - - case StdErr : if (!is_output) { - fprintf(stderr, "Cannot read from stdout\n"); - exit(1); - } - - return dup(2); - default : fprintf(stderr, "Cannot create stdio with proto %d\n", proto), exit(1); - } -} - - -void read_mac(const char *arg, char mac[6]) -{ - if (sscanf(arg, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", mac, mac + 1, mac + 2, mac + 3, mac + 4, mac + 5) != 6) { - fprintf(stderr, "bad MAC address"); - exit(1); - } -} - - -int create_raw_eth_socket(const char *desc, int is_output) -{ - char *copy = strdup(desc), *arg = copy; - int sk; - - if ((sk = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) < 0) { - perror("raw socket"); - exit(1); - } - - char src_mac[6], dst_mac[6], proto; - short type, dst_port; - int has_src_mac = 0, has_dst_mac = 0, has_type = 0, has_proto = 0; - int has_dst_port = 0; - - if (strtok(arg, ",") != 0) { - do { - if (strncmp("src=", arg, 4) == 0) { - read_mac(arg + 4, src_mac); - has_src_mac = 1; - } else if (strncmp("dst=", arg, 4) == 0) { - read_mac(arg + 4, dst_mac); - has_dst_mac = 1; - } else if (strncmp("type=", arg, 5) == 0) { - type = strtol(arg + 5, 0, 0); - has_type = 1; - } else if (strncmp("proto=", arg, 6) == 0) { - proto = strtol(arg + 6, 0, 0); - has_proto = 1; - } else if (strncmp("dst_port=", arg, 9) == 0) { - dst_port = strtol(arg + 9, 0, 0); - has_dst_port = 1; - } else { - fprintf(stderr, "unknown option \"%s\"\n", arg); - exit(1); - } - } while ((arg = strtok(0, ",")) != 0); - -#define MAX_FILTER_LENGTH 16 - struct sock_filter mac_filter_insn[MAX_FILTER_LENGTH], *prog = mac_filter_insn + MAX_FILTER_LENGTH; - unsigned jump_offset = 1; - - // FILTER IS CONSTRUCTED IN REVERSED ORDER! - // - * -- prog = (struct sock_filter) BPF_STMT(BPF_RET + BPF_K, 0); // wrong packet; ret 0 - * -- prog = (struct sock_filter) BPF_STMT(BPF_RET + BPF_K, 65535); // right packet; ret everything - - if (has_proto) { - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, proto, 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_B + BPF_ABS , 14 + 9); - jump_offset += 2; - } - - if (has_type) { - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htons(type), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_H + BPF_ABS , 12); - jump_offset += 2; - } - - if (has_dst_port) { - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htons(dst_port), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_H + BPF_ABS , 14 + 20 + 2); - jump_offset += 2; - } - - if (has_src_mac) { - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htonl(* (int *) (src_mac + 2)), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_W + BPF_ABS , 8); - jump_offset += 2; - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htons(* (short *) src_mac), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_H + BPF_ABS , 6); - jump_offset += 2; - } - - if (has_dst_mac) { - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htons(* (short *) (dst_mac + 4)), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_H + BPF_ABS , 4); - jump_offset += 2; - * -- prog = (struct sock_filter) BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, htonl(* (int *) dst_mac), 0 , jump_offset); - * -- prog = (struct sock_filter) BPF_STMT(BPF_LD + BPF_W + BPF_ABS , 0); - jump_offset += 2; - } - - struct sock_fprog filter; - memset(&filter, 0, sizeof(struct sock_fprog)); - filter.filter = prog; - filter.len = mac_filter_insn + MAX_FILTER_LENGTH - prog; - - if (setsockopt(sk, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)) < 0) { - perror("error creating filter"); - exit(1); - } - } - -#if defined USE_RING_BUFFER - struct tpacket_req req; - - req.tp_block_size = 131072; - req.tp_block_nr = 64; - req.tp_frame_size = 8192; - req.tp_frame_nr = req.tp_block_size / req.tp_frame_size * req.tp_block_nr; - - if (setsockopt(sk, SOL_PACKET, PACKET_RX_RING, &req, sizeof req) < 0) { - perror("ring buffer setsockopt"); - exit(1); - } - - if ((ring_buffer = mmap(0, req.tp_block_size * req.tp_block_nr, PROT_READ|PROT_WRITE, MAP_SHARED, sk, 0)) == MAP_FAILED) { - perror("ring buffer mmap"); - exit(1); - } -#endif - - free(copy); - return sk; -} - - -int create_fd(const char *arg, int is_output, enum proto *proto, char *name, size_t max_name_size) -{ - if (strncmp(arg, "udp:", 4) == 0 || strncmp(arg, "UDP:", 4) == 0) { - *proto = UDP; - arg += 4; - } else if (strncmp(arg, "tcp:", 4) == 0 || strncmp(arg, "TCP:", 4) == 0) { - *proto = TCP; - arg += 4; - } else if (strncmp(arg, "file:", 5) == 0) { - *proto = File; - arg += 5; - } else if (strncmp(arg, "eth:", 4) == 0) { - *proto = Eth; - arg += 4; - } else if (strcmp(arg, "null:") == 0) { - *proto = File; - arg = "/dev/null"; - } else if (strcmp(arg, "zero:") == 0) { - *proto = File; - arg = "/dev/zero"; - } else if (strcmp(arg, "stdin:") == 0) { - *proto = StdIn; - arg = "stdin"; - } else if (strcmp(arg, "stdout:") == 0) { - *proto = StdOut; - arg = "stdout"; - } else if (strcmp(arg, "stderr:") == 0) { - *proto = StdErr; - arg = "stderr"; - } else if (strchr(arg, ':') != 0) { - *proto = UDP; - } else if (strcmp(arg, "-") == 0) { - *proto = is_output ? StdOut : StdIn; - arg = is_output ? "stdout" : "stdin"; - } else { - *proto = File; - } - - if (name != 0) - strncpy(name, arg, max_name_size); - - switch (*proto) { - case UDP : - case TCP : return create_IP_socket(arg, is_output, *proto); - - case File : return create_file(arg, is_output); - - case Eth : return create_raw_eth_socket(arg, is_output); - - case StdIn : - case StdOut: - case StdErr : return create_stdio(is_output, *proto); - default : fprintf(stderr, "Cannot create fd for unknown proto %d\n", *proto), exit(1); - } -} - - -static int is_BGP() -{ - FILE *file = fopen("/proc/cpuinfo", "r"); - - if (file != 0) { - char buffer[256]; - - while (fgets(buffer, sizeof buffer, file) != 0) - if (strcmp(buffer, "cpu\t\t: 450 Blue Gene/P DD2\n") == 0) { - fclose(file); - return 1; - } - - fclose(file); - } - - return 0; -} - - -void set_affinity(const char *arg) -{ - cpu_set_t cpu_set; - - CPU_ZERO(&cpu_set); - - do { - unsigned begin, end; - - switch (sscanf(arg, "%u-%u", &begin, &end)) { - unsigned cpu; - - case 0 : fprintf(stderr, "parse error in CPU affinity set\n"); - exit(1); - - case 1 : CPU_SET(begin, &cpu_set); - break; - - case 2 : for (cpu = begin; cpu <= end; cpu ++) - CPU_SET(cpu, &cpu_set); - - break; - } - } while ((arg = strchr(arg, ',') + 1) != (char *) 1); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) - perror("sched_setaffinity"); -} - - -void if_BGP_set_default_affinity() -{ - if (is_BGP()) - set_affinity("1-3"); -} - - -void set_real_time_priority() -{ -#if defined __linux__ && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13) - if (syscall(SYS_ioprio_set, IOPRIO_WHO_PROCESS, getpid(), IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 7)) < 0) - perror("ioprio_set"); -#else - fprintf(stderr, "warning: kernel does not support IO priority\n"); -#endif - -#if defined __linux__ && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) - struct sched_param sp; - sp.sched_priority = sched_get_priority_min(SCHED_RR); - - if (sched_setscheduler(0, SCHED_RR, &sp) < 0) - perror("sched_setscheduler"); -#else - fprintf(stderr, "warning: kernel does not support RT scheduler\n"); -#endif - -#if defined __linux__ - if (mlockall(MCL_CURRENT | MCL_FUTURE) < 0) - perror("mlockall"); -#else - fprintf(stderr, "warning: kernel cannot lock application in memory\n"); -#endif -} - - -char *argument(int *arg, char **argv) -{ - if (argv[*arg][2] != '\0') - return &argv[*arg][2]; - - if (argv[*arg + 1] != 0) - return &argv[++ *arg][0]; - - fprintf(stderr, "-%c requires argument\n", argv[*arg][1]); - exit(1); -} - - -ssize_t readAll(int fd, void *ptr, size_t size) -{ - ssize_t retval; - size_t received; - - for (received = 0; received < size; received += retval) - if ((retval = read(fd, (char *) ptr + received, size - received)) <= 0) - return retval; - - return size; -} - - -ssize_t writeAll(int fd, const void *ptr, size_t size) -{ - ssize_t retval; - size_t sent; - - for (sent = 0; sent < size; sent += retval) - if ((retval = write(fd, (const char *) ptr + sent, size - sent)) <= 0) - return retval; - - return size; -} - - -#if 0 -static unsigned offset = 0; - -size_t get_packet() -{ - void *frame = ((char *) ring_buffer + offset * 8192); - struct tpacket_hdr *hdr = frame; - unsigned char *data = (char *) frame + hdr->tp_net; - return hdr->tp_snaplen; -} - -void packet_done() -{ - hdr->tp_status = TP_STATUS_KERNEL; - - if (++ offset == 1024) - offset = 0; -} -#endif - diff --git a/RTCP/Run/src/tools/common.h b/RTCP/Run/src/tools/common.h deleted file mode 100644 index 60e03f6e57585d7b4bede76e8a89ba66bfb6d153..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/common.h +++ /dev/null @@ -1,17 +0,0 @@ -#if !defined STREAM_H -#define STREAM_H - -#include <stddef.h> - - -enum proto { UDP, TCP, File, Eth, StdIn, StdOut, StdErr }; - -extern int create_fd(const char *desc, int is_output, enum proto *proto, char *name, size_t max_name_size); -void if_BGP_set_default_affinity(); -void set_affinity(const char *arg); -void set_real_time_priority(); -char *argument(int *arg, char **argv); -//ssize_t readAll(int fd, void *ptr, size_t size); -//ssize_t writeAll(int fd, const void *ptr, size_t size); - -#endif diff --git a/RTCP/Run/src/tools/generator.c b/RTCP/Run/src/tools/generator.c deleted file mode 100644 index 6d5bd1a51dc7058070e4cac0b00a8d29d4ec594e..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/generator.c +++ /dev/null @@ -1,170 +0,0 @@ -#define _BSD_SOURCE - -#include "common.h" - -#include <byteswap.h> -#include <math.h> -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/time.h> - -#define MAX_SOCKETS 64 - - -double rate = 195312.5; -unsigned subbands = 61; -unsigned samples_per_frame = 16; -unsigned bits_per_sample = 16; -char packet[9000]; -unsigned message_size; -int sockets[MAX_SOCKETS]; -unsigned nr_sockets = 0; -unsigned packets_sent[MAX_SOCKETS], skipped, errors[MAX_SOCKETS]; -char names[MAX_SOCKETS][64]; - - -void *log_thread(void *arg) -{ - while (1) { - unsigned socket_nr; - - sleep(1); - - for (socket_nr = 0; socket_nr < nr_sockets; socket_nr ++) - if (packets_sent[socket_nr] > 0 || errors[socket_nr] > 0) { - fprintf(stderr, "sent %u packets to %s, skipped = %u, errors = %u\n", packets_sent[socket_nr], names[socket_nr], skipped, errors[socket_nr]); - packets_sent[socket_nr] = errors[socket_nr] = 0; // ignore race - } - - skipped = 0; - } - - return 0; -} - - -void send_packet(unsigned socket_nr, unsigned seconds, unsigned fraction) -{ -#if defined __BIG_ENDIAN__ - * (int *) (packet + 8) = __bswap_32(seconds); - * (int *) (packet + 12) = __bswap_32(fraction); -#else - * (int *) (packet + 8) = seconds; - * (int *) (packet + 12) = fraction; -#endif - - ++ packets_sent[socket_nr]; - -#if 1 - unsigned bytes_written; - - for (bytes_written = 0; bytes_written < message_size;) { - ssize_t retval = write(sockets[socket_nr], packet + bytes_written, message_size - bytes_written); - - if (retval < 0) { - ++ errors[socket_nr]; - perror("write"); - sleep(1); - break; - } else { - bytes_written += retval; - } - } -#endif -} - - -void parse_args(int argc, char **argv) -{ - if (argc == 1) { - fprintf(stderr, "usage: %s [-f frequency (default 195312.5)] [-s subbands (default 61)] [-t times_per_frame (default 16)] [udp:ip:port | tcp:ip:port | file:name | null: | - ] ... \n", argv[0]); - exit(1); - } - - int arg; - - for (arg = 1; arg < argc && argv[arg][0] == '-'; arg ++) - switch (argv[arg][1]) { - case 'a': set_affinity(argument(&arg, argv)); - break; - - case 'b': bits_per_sample = atoi(argument(&arg, argv)); - break; - - case 'f': rate = atof(argument(&arg, argv)); - break; - - case 'r': set_real_time_priority(); - break; - - case 's': subbands = atoi(argument(&arg, argv)); - break; - - case 't': samples_per_frame = atoi(argument(&arg, argv)); - break; - - default : fprintf(stderr, "unrecognized option '%c'\n", argv[arg][1]); - exit(1); - } - - if (arg == argc) - exit(0); - - enum proto proto; - - for (nr_sockets = 0; arg != argc && nr_sockets < MAX_SOCKETS; arg ++, nr_sockets ++) - sockets[nr_sockets] = create_fd(argv[arg], 1, &proto, names[nr_sockets], sizeof names[nr_sockets]); - - if (arg != argc) - fprintf(stderr, "Warning: too many sockets specified\n"); -} - - -int main(int argc, char **argv) -{ - if_BGP_set_default_affinity(); - parse_args(argc, argv); - message_size = 16 + samples_per_frame * subbands * bits_per_sample / 2; - - pthread_t thread; - - if (pthread_create(&thread, 0, log_thread, 0) != 0) { - perror("pthread_create"); - exit(1); - } - - unsigned clock_speed = 1024 * rate; - struct timeval now; - gettimeofday(&now, 0); - unsigned long long packet_time = (now.tv_sec + now.tv_usec / 1e6) * rate; - - while (1) { - packet_time += samples_per_frame; - - gettimeofday(&now, 0); - unsigned long long now_us = 1000000ULL * now.tv_sec + now.tv_usec; - unsigned long long pkt_us = 1000000ULL * (packet_time / rate); - - long long wait_us = pkt_us - now_us; - - if (wait_us > 10) - usleep(wait_us); - else if (pkt_us + 100000 < now_us) { - unsigned skip = (unsigned long long) (-wait_us * 1e-6 * rate) / samples_per_frame; - skipped += skip; - packet_time += skip * samples_per_frame; // skip packets; keep modulo(samples_per_frame) - } - - unsigned seconds = 1024 * packet_time / clock_speed; - unsigned fraction = 1024 * packet_time % clock_speed / 1024; - unsigned socket_nr; - - for (socket_nr = 0; socket_nr < nr_sockets; socket_nr ++) - send_packet(socket_nr, seconds, fraction); - } - - return 0; -} diff --git a/RTCP/Run/src/tools/packetanalysis.c b/RTCP/Run/src/tools/packetanalysis.c deleted file mode 100644 index 6c73bfa14f995284f784665d5a5dc529624112e0..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/packetanalysis.c +++ /dev/null @@ -1,424 +0,0 @@ -#define _GNU_SOURCE -#include <stdio.h> -#include <sched.h> -#include <stdlib.h> -#include <string.h> -#include <stddef.h> -#include <unistd.h> -#include <sys/socket.h> -#include <sys/select.h> -#include <sys/types.h> -#include <sys/time.h> -#include <netinet/in.h> -#include <time.h> -#include <netdb.h> -#include <assert.h> - -/* max size of a packet we support */ -#define MAX_PACKETSIZE 8960 - -/* sizes of headers are specified seperately since sizeof() may add padding */ - -#define IP_HEADERSIZE 20 -struct IP_header { - /* expected or typical value (in hex) */ - unsigned version: 4; /* 4 */ - unsigned headerlength: 4; /* 5 or 6 (# of 32-bit words)*/ - unsigned: 8; /* 00 (differentiated services) */ - unsigned totallength: 16; /* 1f30 = 7984 decimal */ - unsigned: 16; /* 0000 (identification) */ - unsigned: 1; /* 0 (reserved flag) */ - unsigned dontfragment: 1; /* 1 */ - unsigned morefragments: 1; /* 0 */ - unsigned: 13; /* 0 (fragment offset) */ - unsigned ttl: 8; /* 80 */ - unsigned protocol: 8; /* 11 = UDP */ - unsigned headercrc: 16; - unsigned char sourceIP[4]; - unsigned char destIP[4]; -}; - -#define UDP_HEADERSIZE 8 -struct UDP_header { - uint16_t sourcePort; /* 10fa = 4346d or higher */ - uint16_t destPort; /* = sourcePort */ - uint16_t length; /* = 8 * #beamlets * #times + 16 */ - uint16_t crc; /* 0000 = disabled */ -}; - -/* see also RTCP/IONProc/src/RSP.h */ -#define EPA_HEADERSIZE 16 -struct EPA_header { - /* little endian! */ - uint16_t version; - uint16_t configuration; - uint16_t station; - unsigned char beamlets; /* 61 */ - unsigned char times; /* 16 */ - time_t RSPtimestamp; /* time() in UTC */ - uint32_t blockSequenceNumber; -}; - -unsigned char packet[MAX_PACKETSIZE]; - -/* shortcuts for various headers */ -#define IP (*(struct IP_header *)packet) -#define UDP (*(struct UDP_header *)((char*)packet + IP.headerlength * 4)) -#define EPA (*(struct EPA_header *)((char*)&UDP + UDP_HEADERSIZE)) -#define DATA8 ((uint8_t *)((char*)&EPA + EPA_HEADERSIZE)) -#define DATA16 ((uint16_t *)((char*)&EPA + EPA_HEADERSIZE)) -#define DATA32 ((uint32_t *)((char*)&EPA + EPA_HEADERSIZE)) - -#define PAYLOAD_SIZE (UDP.length - EPA_HEADERSIZE - UDP_HEADERSIZE) -#define EXPECTED_PPS(clock) (1.0*clock*1e6/1024/EPA.times) - -/* a filter for the packets we're looking for */ -#define PACKETFILTER(port) (IP.protocol == 0x11 && UDP.destPort == port) - -#define MIN(a,b) (a<b?a:b) /* warning: may evaluate a twice */ - -void swap32( char *nr ) { - char tmp; - - tmp = nr[0]; - nr[0] = nr[3]; - nr[3] = tmp; - - tmp = nr[1]; - nr[1] = nr[2]; - nr[2] = tmp; -} - -void swap16( char *nr ) { - char tmp; - - tmp = nr[0]; - nr[0] = nr[1]; - nr[1] = tmp; -} - - -int create_socket( int port ) -{ - struct sockaddr_in sa; - int sk; - struct hostent *host; - - if ( !(host = gethostbyname("0")) ) { - perror("gethostbyname"); - exit(1); - } - - memset(&sa, 0, sizeof sa); - sa.sin_family = AF_INET; - sa.sin_port = htons(port); - memcpy(&sa.sin_addr, host->h_addr, host->h_length); - - if ((sk = socket(AF_INET, SOCK_RAW, IPPROTO_UDP)) < 0) { - perror("socket"); - exit(1); - } - - if (bind(sk, (struct sockaddr *) &sa, sizeof sa) < 0) { - perror("bind"); - exit(1); - } - - return sk; -} - -/* crude, but works on BG/P */ -uint32_t hostname() -{ - char name[255]; - struct hostent *host; - - gethostname(name,sizeof name); - host=gethostbyname(name); - - return ((struct in_addr*)host->h_addr)->s_addr; -} - -void set_affinity( char *cpus ) -{ - cpu_set_t cpu_set; - unsigned cpu; - - CPU_ZERO(&cpu_set); - - for (cpu = 0; cpu < strlen(cpus); cpu ++) - CPU_SET(cpus[cpu]-'0', &cpu_set); - - if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) - perror("sched_setaffinity"); -} - -// can (prev_ts,prev_bs) be followed by (next_ts,next_bs) when there is no loss? -// this function returns the offset difference -unsigned diff( struct EPA_header *prev, struct EPA_header *next, uint16_t clock ) -{ - const time_t prev_ts = prev->RSPtimestamp; - const time_t next_ts = next->RSPtimestamp; - - const uint32_t prev_bs = prev->blockSequenceNumber; - const uint32_t next_bs = next->blockSequenceNumber; - - const unsigned char prev_times = prev->times; - - if( next_ts == prev_ts ) { - /* same timestamp -- compare block sequence numbers */ - - if( prev_bs > next_bs ) { - /* packets were received out of order? ignore */ - return 0; - } - - return (next_bs - prev_bs) / prev_times; - } else { - /* seconds differ */ - uint64_t prev_time, next_time; - - prev_time = ((uint64_t) prev_ts * clock * 1e6 + 512)/1024 + prev_bs; - next_time = ((uint64_t) next_ts * clock * 1e6 + 512)/1024 + next_bs; - - if( prev_time > next_time ) { - /* packets were received out of order? ignore (clock is probably wrong) */ - return 0; - } - - return (next_time - prev_time) / prev_times; - } -} - -float get_packetrate( int fd, int port, float seconds, float *lossrate ) { - struct timeval tv; - unsigned long now,end_time; - unsigned nr; - struct EPA_header prev; - unsigned loss = 0; - - memset( &prev, 0, sizeof prev ); - - nr = 0; - gettimeofday( &tv, NULL ); - now = tv.tv_sec * 1000000 + tv.tv_usec; - end_time = now + seconds * 1000000; - - tv.tv_sec = seconds; - tv.tv_usec = 0; - - while( 1 ) { - int retval; - fd_set rfds; - - FD_ZERO( &rfds ); - FD_SET( fd, &rfds ); - - gettimeofday( &tv, NULL ); - now = tv.tv_sec * 1000000 + tv.tv_usec; - if( now >= end_time ) { - break; - } - - tv.tv_sec = (end_time-now) / 1000000; - tv.tv_usec = (end_time-now) % 1000000; - retval = select( fd+1, &rfds, NULL, NULL, &tv ); - - if( retval == -1 ) { - perror("select"); - exit(1); - } else if( retval ) { - recv( fd, &packet, sizeof packet, 0 ); - if( PACKETFILTER( port ) ) { - swap32( (char*)&EPA.RSPtimestamp ); - swap32( (char*)&EPA.blockSequenceNumber ); - - if( nr > 0 ) { - unsigned diff200 = diff( &prev, &EPA, 200 ); - unsigned diff160 = diff( &prev, &EPA, 160 ); - unsigned diff = - diff200 ? - diff160 ? - /* both clocks could be valid -- use best one */ - MIN( diff200, diff160 ) - : diff200 /* 160 clock not valid */ - : diff160 /* 200 clock not valid -- 160 may not be valid either */; - - if( diff > 0 ) { - loss += diff - 1; - } - } - - nr++; - prev = EPA; - } - } else { - break; - } - } - - if( lossrate ) { - *lossrate = 1.0*loss/seconds; - } - - return 1.0*nr/seconds; -} - - -int main( int argc, char **argv ) { - int fd; - int port; - float rate; - float lossrate; - - /* weird things happen if RSPtimestamp is not the same size as the input - for localtime() */ - assert( sizeof(time_t)==4 ); - - if( argc < 2 ) { - printf("Outputs the number of UDP packets received per second.\n\nUsage: %s port\n", argv[0] ); - exit(1); - } - - port = atoi( argv[1] ); - - /* avoid core 0 since it handles the massive number of eth0 interrupts */ - set_affinity( "123" ); - - fd = create_socket( port ); - - rate = get_packetrate( fd, atoi( argv[1] ), 0.5, &lossrate ); - if( rate < 1.0 ) { - printf("NOK Packet rate: %.2f pps\n",rate); - } else { - int zeros = 0; - int i; - int elementbits = 0; - signed elements; - - do { - recv( fd, &packet, sizeof packet, 0 ); - } while( !PACKETFILTER( port ) ); - - elements = EPA.beamlets * EPA.times * 2 /* polarizations */; - if( elements == 0 ) elements = 1; /* avoid dividing by 0 */ - - /* little endian -> big endian */ - swap16( (char*)&EPA.station ); - swap32( (char*)&EPA.RSPtimestamp ); - - if( PAYLOAD_SIZE == elements * 4 ) { /* i16complex */ - elementbits = 16; - - for( i = 0; i < elements; i ++ ) { - if( !(DATA32[i] & 0xffff) ) { - zeros++; - } - if( !(DATA32[i] >> 16) ) { - zeros++; - } - } - } else if( PAYLOAD_SIZE == elements * 2 ) { /* i8complex */ - elementbits = 8; - - for( i = 0; i < elements; i ++ ) { - if( !(DATA16[i] & 0xff) ) { - zeros++; - } - if( !(DATA16[i] >> 8) ) { - zeros++; - } - } - } else if( PAYLOAD_SIZE == elements ) { /* i4complex */ - elementbits = 4; - - for( i = 0; i < elements; i ++ ) { - if( !(DATA8[i] & 0x0f) ) { - zeros++; - } - if( !(DATA8[i] >> 4) ) { - zeros++; - } - } - } - - elements *= 2 ; /* compensate for real/imag */ - - union { - uint32_t integer; - unsigned char parts[4]; - } myip; - myip.integer = hostname(); - - int destipok = 1; - - for( i = 0; i < 4; i++ ) { - if( myip.parts[i] != IP.destIP[i] ) { - destipok = 0; - } - } - - /*printf("Source: %d.%d.%d.%d:%d\n",IP.sourceIP[0],IP.sourceIP[1],IP.sourceIP[2],IP.sourceIP[3],UDP.sourcePort);*/ - - if( destipok ) { - printf(" OK Dest: %d.%d.%d.%d:%d\n",IP.destIP[0],IP.destIP[1],IP.destIP[2],IP.destIP[3],UDP.destPort); - } else { - printf("NOK Dest: %d.%d.%d.%d:%d (my ip: %d.%d.%d.%d)\n",IP.destIP[0],IP.destIP[1],IP.destIP[2],IP.destIP[3],UDP.destPort,myip.parts[0],myip.parts[1],myip.parts[2],myip.parts[3]); - } - - if( EPA.beamlets == 61 ) { - printf(" OK Beamlets: %d\n",EPA.beamlets); - } else { - printf("NOK Beamlets: %d (should be 61?)\n",EPA.beamlets); - } - - if( EPA.times == 16 ) { - printf(" OK Time samples: %d\n",EPA.times); - } else { - printf("NOK Time samples: %d (should be 16?)\n",EPA.times); - } - - if( elementbits == 0 ) { - printf("NOK Sample type: UNKNOWN (payload = %d, expected samples = #beamlets * #times * 2 * 2 = %d)\n",PAYLOAD_SIZE,elements); - } else { - printf(" OK Sample type: i%dcomplex\n",elementbits); - } - - - if( EPA.RSPtimestamp == -1 ) { - printf("NOK Timestamp UTC: UNDEFINED (0xffffffff)\n"); - } else { - time_t offset = time(NULL) - EPA.RSPtimestamp; - if( offset < -5 || offset > 5 ) { - printf("NOK Timestamp UTC: %s",asctime(localtime(&EPA.RSPtimestamp))); - } else { - printf(" OK Timestamp UTC: %s",asctime(localtime(&EPA.RSPtimestamp))); - } - } - - if( zeros == elements ) { - printf("NOK Zeros in payload: %.f %%\n",100.0*zeros/elements); - } else if( zeros > 0.1 * elements ) { - printf("NOK Zeros in payload: %.f %% (did you set up %d beamlets?)\n",100.0*zeros/elements,EPA.beamlets); - } else { - printf(" OK Zeros in payload: %.f %%\n",100.0*zeros/elements); - } - - if( rate < 0.99 * EXPECTED_PPS(160) - || (rate > 1.01 * EXPECTED_PPS(160) && - rate < 0.99 * EXPECTED_PPS(200)) ) { - printf("NOK Packet rate: %.f pps (200 MHz: ~%.f; 160 MHz: ~%.f)\n",rate,EXPECTED_PPS(200),EXPECTED_PPS(160)); - } else { - printf(" OK Packet rate: %.f pps (200 MHz: ~%.f; 160 MHz: ~%.f)\n",rate,EXPECTED_PPS(200),EXPECTED_PPS(160)); - } - - if( lossrate > 0.0 ) { - printf("NOK Packet loss: %.f pps\n", lossrate ); - } else { - printf(" OK Packet loss: %.f pps\n", lossrate ); - } - } - - - return 0; -} diff --git a/RTCP/Run/src/tools/udp-copy.c b/RTCP/Run/src/tools/udp-copy.c deleted file mode 100644 index 0dda3b083a36ba88ac6f447a17fa5e2106a39a92..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/tools/udp-copy.c +++ /dev/null @@ -1,244 +0,0 @@ -/* Copyright 2008, John W. Romein, Stichting ASTRON - * - * This program 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 of the License, or - * (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#define _GNU_SOURCE -#include "common.h" - -// allow opening >2GB files on 32-bit architectures -#define _FILE_OFFSET_BITS 64 - -#include <features.h> -#include <sched.h> -#include <errno.h> -#include <fcntl.h> -#include <linux/if_ether.h> -#include <linux/if_packet.h> -#include <linux/filter.h> -#include <netdb.h> -#include <netinet/in.h> -#include <assert.h> -#include <poll.h> -#include <pthread.h> -#include <sys/mman.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <sys/types.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> -#include <unistd.h> - - -enum proto input_proto, output_proto; -char source[64], destination[64]; - -int sk_in, sk_out; -size_t nr_packets = 0, nr_bytes = 0; - -struct speed { - struct timeval current_time; - struct timeval previous_time; -}; - -void init_speed( struct speed *s ) { - gettimeofday(&s->current_time, NULL); - s->previous_time = s->current_time; -} - -void update_speed( struct speed *s, double *speedptr, const char **suffixptr, size_t bytes ) { - gettimeofday(&s->current_time, NULL); - - double current = 1.0 * s->current_time.tv_sec + s->current_time.tv_usec / 1.0e6; - double prev = 1.0 * s->previous_time.tv_sec + s->previous_time.tv_usec / 1.0e6; - - double speed = current == prev ? 0.0 : 8.0 * bytes / (current - prev); - const char *suffix; - - if( speed > 1000*1000*1000 ) { - speed /= 1000*1000*1000; - suffix = "Gbit/s"; - } else if( speed > 1000*1000 ) { - speed /= 1000*1000; - suffix = "Mbit/s"; - } else if( speed > 1000 ) { - speed /= 1000; - suffix = "Kbit/s"; - } else { - suffix = "bit/s"; - } - - *speedptr = speed; - *suffixptr = suffix; - - s->previous_time = s->current_time; -} - - -void *log_thread(void *arg) -{ - struct speed speed; - double speedval; - const char *suffix; - - init_speed(&speed); - - while (1) { - sleep(1); - - size_t bytes = nr_bytes; - size_t packets = nr_packets; - - nr_packets = nr_bytes = 0; - - update_speed(&speed, &speedval, &suffix, bytes); - - if (packets > 0) { - if (input_proto == UDP || input_proto == Eth) - fprintf(stderr, "copied %zu bytes (= %zu packets) from %s to %s (%.2f %s)\n", bytes, packets, source, destination, speedval, suffix); - else - fprintf(stderr, "copied %zu bytes from %s to %s (%.2f %s)\n", bytes, source, destination, speedval, suffix); - } - } - - return 0; -} - - -void init(int argc, char **argv) -{ - int arg; - - for (arg = 1; arg < argc && argv[arg][0] == '-' && argv[arg][1] != '\0'; arg ++) - switch (argv[arg][1]) { - case 'r': set_real_time_priority(); - break; - } - - if (arg + 2 != argc) { - fprintf(stderr, "Usage: \"%s [-r] src-addr dest-addr\", where -r sets RT priority and addr is [tcp:|udp:]ip-addr:port or [file:]filename\n", argv[0]); - exit(1); - } - - sk_in = create_fd(argv[arg], 0, &input_proto, source, sizeof source); - sk_out = create_fd(argv[arg + 1], 1, &output_proto, destination, sizeof destination); - - setlinebuf(stdout); - if_BGP_set_default_affinity(); -} - - -int main(int argc, char **argv) -{ - char buffer[1024 * 1024] __attribute__ ((aligned(16))); - size_t read_size, write_size; - - init(argc, argv); - -#if defined USE_RING_BUFFER - time_t previous_time = 0, current_time; - - if (input_proto == Eth) { - unsigned offset = 0; - while (1) { - void *frame = ((char *) ring_buffer + offset * 8192); - struct tpacket_hdr *hdr = frame; - -#if 1 - if (hdr->tp_status == TP_STATUS_KERNEL) { - struct pollfd pfd; - - pfd.fd = sk_in; - pfd.revents = 0; - pfd.events = POLLIN|POLLERR; - - if (poll(&pfd, 1, -1) < 0) - perror("poll"); - } -#else - while (* (volatile long *) &hdr->tp_status == TP_STATUS_KERNEL) - ; -#endif - - assert((hdr->tp_status & 1) == TP_STATUS_USER); // FIXME - - //printf("status = %d %d %d %d %d %d %d\n", hdr->tp_status, hdr->tp_len, hdr->tp_snaplen, hdr->tp_mac, hdr->tp_net, hdr->tp_sec, hdr->tp_usec); - unsigned char *mac = (char *) frame + hdr->tp_mac; - //printf("mac = %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - unsigned char *data = (char *) frame + hdr->tp_net; - //printf("data ="); - //unsigned i; - //for (i = 0; i < 48; i ++) - //printf(" %hhx", ((unsigned char *) data)[i]); - //printf("\n"); - - if (write(sk_out, data, hdr->tp_snaplen) < hdr->tp_snaplen) { - perror("write"); - sleep(1); - } else { - nr_bytes += hdr->tp_snaplen; - } - - ++ nr_packets; - - if ((current_time = time(0)) != previous_time) { - previous_time = current_time; - - fprintf(stderr, "ok: copied %u bytes (= %u packets) from %s to %s\n", nr_bytes, nr_packets, source, destination); - nr_packets = nr_bytes = 0; - } - - hdr->tp_status = TP_STATUS_KERNEL; - - if (++ offset == 1024) - offset = 0; - } - } -#endif - pthread_t thread; - - if (pthread_create(&thread, 0, log_thread, 0) != 0) { - perror("pthread_create"); - exit(1); - } - - size_t max_size = output_proto == UDP ? 8960 : sizeof buffer; - - while ((read_size = read(sk_in, buffer, max_size)) != 0) { - if (read_size < 0) { - perror("read"); - sleep(1); - } else { - while (read_size > 0) { - if ((write_size = write(sk_out, buffer, read_size)) < 0) { - perror("write"); - sleep(1); - } else { - read_size -= write_size; - nr_bytes += write_size; - } - } - } - - ++ nr_packets; - - } - - return 0; -} diff --git a/RTCP/Run/src/util/Aborter.py b/RTCP/Run/src/util/Aborter.py deleted file mode 100644 index 9f6ee251528529cbe6116b34f321796e1d1f83d5..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/Aborter.py +++ /dev/null @@ -1,65 +0,0 @@ -import signal - -__all__ = ["runUntilSuccess","runFunc"] - -class Aborter: - """ Abort commands using a sequence of kill commands, which are kept in check with a timeout. """ - - def installHandler( self ): - """ Installs our custom alarm handler. """ - - self.oldhandler = signal.getsignal( signal.SIGALRM ) - if self.oldhandler is None: - self.oldhandler = signal.SIG_DFL - - signal.signal( signal.SIGALRM, self.sigHandler ) - - def removeHandler( self ): - """ Removes our custom alarm handler. """ - - signal.signal( signal.SIGALRM, self.oldhandler ) - - def sigHandler( self, signum, frame ): - """ Our custom alarm handler. """ - - raise KeyboardInterrupt - - def resetAlarm( self ): - """ Reset a raised alarm, if any. """ - - self.alarmraised = False - - def runFunc( self, func, timeout ): - """ Run a function, which is aborted either through a timeout or a KeyboardInterrupt. """ - - self.alarmraised = False - self.installHandler() - - try: - try: - signal.alarm( timeout ) - - func() - except KeyboardInterrupt: - self.alarmraised = True - finally: - signal.alarm( 0 ) - - self.removeHandler() - - return not self.alarmraised - - def runUntilSuccess( self, funclist, timeout ): - """ Run functions from funclist sequentially until one does not time out. """ - - for f in funclist: - success = self.runFunc( f, timeout ) - - if success: - return True - - return False - -Aborter = Aborter() -runUntilSuccess = Aborter.runUntilSuccess -runFunc = Aborter.runFunc diff --git a/RTCP/Run/src/util/CMakeLists.txt b/RTCP/Run/src/util/CMakeLists.txt deleted file mode 100644 index c53024b8d49d5f9a6201f88b95fdfeea6d43264f..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# $Id: CMakeLists.txt 14273 2009-10-16 10:08:29Z loose $ - -install(PROGRAMS - __init__.py - Aborter.py - Commands.py - dateutil.py - Hosts.py - Parset.py - shlex.py - DESTINATION bin/util) diff --git a/RTCP/Run/src/util/Commands.py b/RTCP/Run/src/util/Commands.py deleted file mode 100644 index 6f9cf8d27db93b498dd013b66713b57528a59044..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/Commands.py +++ /dev/null @@ -1,29 +0,0 @@ -from subprocess import Popen,STDOUT,PIPE -from Aborter import runFunc - -# define our own PIPE as an alias to subprocess.PIPE -PIPE=PIPE - -def backquote( cmdline, timeout = 0 ): - """ Run a command line and return the output. """ - - debug("RUN backquote: %s" % (cmdline,) ) - class process: - def __init__(self): - self.output = "" - - def run(self): - self.output = Popen( cmdline.split(), stdout=PIPE, stderr=STDOUT ).communicate()[0] - - p = process() - if timeout: - runFunc( p.run, timeout ) - else: - p.run() - - return p.output - -def debug( str ): - """ Override with custom logging function. """ - - pass diff --git a/RTCP/Run/src/util/Hosts.py b/RTCP/Run/src/util/Hosts.py deleted file mode 100644 index 1ec7c412e2a9685fae3a6863b4d2107f8cf78c29..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/Hosts.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python - -__all__ = ["ropen","rmkdir","rexists","runlink","rsymlink"] - -import os -import sys -import subprocess - -HOSTNAME = os.environ.get("HOSTNAME") - -def correct_hostname( host ): - """ Translates the hostname such that bgfen can resolve it. """ - - if host.startswith("locus") and "." not in host: - return "%s.cep2.lofar" % (host,) - - return host - -def split( filename ): - """ Internally used: split a filename into host,file. Host == '' if pointing to localhost. """ - - if ":" not in filename: - return "",filename - else: - host,file = filename.split(":",1) - - if host in ["localhost",HOSTNAME]: - host = "" - - return host,file - -def ropen( filename, mode = "r", buffering = -1 ): - """ Open a local or a remote file for reading or writing. A remote file - has the syntax host:filename or tcp:<ip>:<port>. """ - - assert mode in "rwa", "Invalid mode: %s" % (mode,) - - host,file = split( filename ) - - if host == "": - # a local file - if file == "-": - if mode == "r": - return sys.stdin - else: - return sys.stdout - - return open(file, mode, buffering) - - modelist = { - "r": "cat %s" % (file,), - "w": "cat - > %s" % (file,), - "a": "cat - >> %s" % (file,), - } - - primitive = { - "r": "r", - "w": "w", - "a": "w", - } - - assert mode in modelist, "Invalid mode: %s" % (mode,) - - if mode in "wa": - # writing - return subprocess.Popen( ["ssh",correct_hostname(host),modelist[mode]], bufsize=buffering, stdin=subprocess.PIPE ).stdin - else: - # reading - return subprocess.Popen( ["ssh",correct_hostname(host),modelist[mode]], bufsize=buffering, stdout=subprocess.PIPE ).stdout - -def rmkdir( dirname ): - """ Make a local or a remote directory. A remote directory name - has the syntax host:filename. """ - - host,dir = split( dirname ) - - if host == "": - # a local file - return os.path.exists( dir ) or os.mkdir( dir ) - - # only create directory if it does not exist - subprocess.call( ["ssh",host,"[ ! -e %s ] && mkdir %s" % (dir,dir)] ) - -def rexists( filename ): - """ Checks for the availability of a local or a remote file. A remote - file has the syntax host:filename. """ - - host,file = split( filename ) - - if host == "": - # a local file - return os.path.exists( file ) - - return int(subprocess.Popen( ["ssh",correct_hostname(host),"[ ! -e %s ]; echo $?" % (file,)], stdout=subprocess.PIPE ).stdout.read()) == 1 - -def runlink( filename, recursive = False ): - """ Deletes a local or a remote file. A remote - file has the syntax host:filename. """ - - host,file = split( filename ) - - if host == "": - # a local file - return os.unlink( file ) - - flags = "-f" - - if recursive: - flags += " -r" - - return int(subprocess.Popen( ["ssh",correct_hostname(host),"rm %s -- '%s'" % (flags,file,)], stdout=subprocess.PIPE ).stdout.read()) == 1 - -def rsymlink( src, dest ): - """ Create a symlink at src, pointing to dest. - src/dest have the syntax host:filename, but dest should not point at a different host. """ - - srchost,srcfile = split( src ) - desthost,destfile = split( dest ) - - assert srchost == desthost, "rsymlink( %s, %s ) requires a link across machines" % (src,dest) - - if srchost == "": - # a local file - return os.symlink( dest, src ) - - return int(subprocess.Popen( ["ssh",correct_hostname(srchost),"ln -s '%s' '%s'" % (destfile,srcfile,)], stdout=subprocess.PIPE ).stdout.read()) == 1 - diff --git a/RTCP/Run/src/util/Parset.py b/RTCP/Run/src/util/Parset.py deleted file mode 100644 index b161f410bb22e0f3bb5f9e6dcf280cbc34a69cca..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/Parset.py +++ /dev/null @@ -1,305 +0,0 @@ -from Hosts import ropen -import shlex - -__all__ = ["Parset"] - -TRUE_VALUES = ["T","t","1","Y","y","true","True",1,True] -FALSE_VALUES = ["F","f","0","N","n","false","False",0,False] - -def isinteger( x ): - """ Returns whether x is numerical (and an integer). """ - try: - int(x) - except ValueError: - return False - except TypeError: - return False - except AttributeError: # for example, when x == AssertionError() - return False - - return True - -def isnumeric( x ): - """ Returns whether x is numerical. """ - try: - float(x) - except ValueError: - return False - except TypeError: - return False - except AttributeError: # for example, when x == AssertionError() - return False - - return True - -def isbool( x ): - return (x in TRUE_VALUES) or (x in FALSE_VALUES) - -def decode(s): - """ decode a string s into an array of values (possibly one). """ - - # (xxx) = xxx - if s[0] == "(" and s[-1] == ")": - s = s[1:-1] - - # x;x;x = x,x,x - if ";" in s: - # warning: not safe in case of () recursion - return sum( map(decode, s.split(";")), [] ) - - # 2*xxx = [xxx,xxx] - if "*" in s: - num,s = s.split("*",1) - return decode(s) * int(num) - - # 1..3 = [1,2,3] - if ".." in s: - a,b = s.split("..",1) - if isnumeric(a) and isnumeric(b): - return range(int(a),int(b)+1) - - # a single value - return [unstrfy(s)] - -def unstrfy( s ): - # 'xxx' = xxx - if s[0] == "'" and s[-1] == "'": - s = s[1:-1] - # "xxx" = xxx - elif s[0] == '"' and s[-1] == '"': - s = s[1:-1] - - return s - -def encode( v ): - """ Compress a value v: if v is an array, try using ... or * to shorten ranges. """ - - def strfy( x ): - if isnumeric( x ) or isbool( x ) or type(x) != str: - return str(x) - elif reduce( lambda x,y: x or y, map( lambda y: y in x, """ []'",""" ), False ): - # if some characters given are present, quote the string - if "'" not in x: - return "'%s'" % (x,) - elif '"' not in x: - return '"%s"' % (x,) - else: - # both single and double quotes: use single quotes and escape - # existing single quotes with '"'"'. - return "'%s'" % (str.replace( "'", """'"'"'""", x )) - else: - return x - - if type(v) != list: - # can only compress lists - return strfy(v) - - if len(v) < 3: - # length 0, 1 or 2 is not worth analysing - return "[%s]" % (",".join(map( strfy, v )),) - - i = 0 - dst = [] - while i < len(v): - # make sure each value is processed only once - written = False - - # compress equal values - for j in xrange(i,len(v)+1): - if j == len(v) or str(v[j]) != str(v[i]): - if j-i-1 > 1: - dst.append( "%s*%s" % (j-i,strfy(v[i])) ) - i = j - written = True - break - - if written: - continue - - # compress ranges - for j in xrange(i,len(v)+1): - if j == len(v) or not isinteger(v[j]) or int(v[j]) != int(v[i])+j-i: - if j-i-1 > 2: - dst.append( "%s..%s" % (str(v[i]),str(int(v[i])+j-i-1) ) ) - i = j - written = True - break - - if written: - continue - - dst.append( strfy(v[i]) ) - i += 1 - - return "[%s]" % (",".join(dst),) - - -class Parset(dict): - def __init__(self, defaults = dict() ): - self.update ( defaults.copy() ) - - def readFile(self, filename): - """ Read a parset to disk, and merge it with the current settings. """ - - f = ropen( filename, "r" ) - - self._readFile(f, filename) - - def parse(self, str): - self._readFile( str, "" ) - - def _readFile(self, f, filename): - lexer = shlex.shlex( f, filename ) - lexer.whitespace = "" # we have to discard our own whitespace, since whitespace can be significant within values - basic_wordchars = lexer.wordchars + ".:+-!@$%^&*/{}" - key_wordchars = basic_wordchars + "[]()" - value_wordchars = basic_wordchars + "=" - token = lexer.get_token - - whitespace = " \t\r\n" - - errormsg = lambda t: "%s%s"% (lexer.error_leader(),t) - - def token(skip=whitespace): - for t in lexer: - if t in skip: - continue - - return t - - def tokengen(skip=whitespace): - while True: - t = token(skip) - if t is None: - return - - yield t - - def peek(skip=whitespace): - t = token(skip) - if t is None: return t - - lexer.push_token(t) - return t - - lexer.wordchars = key_wordchars - for t in tokengen(): - # read a KEY = VALUE pair - key = t - - assert token() == "=",errormsg(t) - - # read the value - lexer.wordchars = value_wordchars - t = token(" \t") # also catch newlines for empty values - if t == "\n": - # empty value - value = "" - elif t == "[": - # read array - value = [] - - if peek() == "]": - token() # discard ] - else: - # non-empty array - - # accumulate tokens as a single value, - # and keep track of [] and () pairs as - # part of a value - cur = "" - parentheses, brackets = 0, 0 - for t in tokengen(""): - if t == "(": - assert parentheses == 0, errormsg("nested parentheses not supported") - parentheses += 1 - elif t == ")": - assert parentheses > 0, errormsg("unmatched parentheses") - parentheses -= 1 - if t == "[": - assert parentheses == 0, errormsg("cannot put brackets inside parentheses") - brackets += 1 - elif t == "]": - if not brackets: - # end of array - value.extend(decode(cur.strip())) - break - - brackets -= 1 - elif t == ",": - if not brackets and not parentheses: - value.extend(decode(cur.strip())) - cur = "" - continue - - cur += t - else: - assert False,errormsg("unterminated array") - else: - # read everything until the newline, including spaces - tokens = [t] - - for t in tokengen(""): - if t == "\n": - break - - tokens.append(t) - - value = unstrfy( "".join(tokens).strip() ) - - # store the key,value pair - self[key] = value - - lexer.wordchars = key_wordchars - - def writeFile(self, filename): - """ Write the parset to disk. """ - - outf = ropen(filename, 'w') - - # construct strings from key,value pairs - lines = ["%s = %s" % (str(k),encode(v)) for k,v in self.iteritems()] - - # sort them for easy lookup - lines.sort() - - # write them to file - outf.write( "\n".join( lines ) ) - if lines: - outf.write( "\n" ) - - def __delitem__(self, key): - # avoid KeyErrors - if key in self: dict.__delitem__(self,key) - - def getBool(self, key, default = False): - if key not in self: return default - - return self[key] in TRUE_VALUES - - def getString(self, key): - return str(self[key]) - - def getInt32(self, key): - return int(self[key]) - - def getFloat(self, key): - return float(self[key]) - - def getStringVector(self, key): - return map(str,self[key]) - - def getInt32Vector(self, key): - return map(int,self[key]) - - def getFloatVector(self, key): - return map(float,self[key]) - -if __name__ == "__main__": - import sys - - for f in sys.argv[1:]: - p = Parset() - p.readFile( f ) - for k in sorted(p.keys()): - print "%s = %s" % (k,p[k]) diff --git a/RTCP/Run/src/util/__init__.py b/RTCP/Run/src/util/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/RTCP/Run/src/util/dateutil.py b/RTCP/Run/src/util/dateutil.py deleted file mode 100644 index 5343940fb86e745e62e91955c4461b78096f6a5d..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/dateutil.py +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python - -import datetime -import time - -__all__ = ["parse","parseDuration","format","timestamp"] - -def parse( str ): - """ Accept: a timestamp, HH:MM:SS, YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, +HH:MM:SS or +seconds. Returns: a datetime object. """ - - str = str.strip() - - if str[0] == "+": - # +HH:MM:SS or +seconds, use it as offset from now() - return datetime.datetime.now() + datetime.timedelta( 0, parseDuration( str[1:] ) ) - elif "-" in str: - # assume YYYY-MM-DD HH:MM:SS, but time elements are optional - try: - date,time = str.split() - except ValueError: - date,time = str,"00:00:00" - - def conv_month(m): - """ Convert month 'm', which is either a string or a number. """ - months = ["Jan","Feb","Mar", - "Apr","May","Jun", - "Jul","Aug","Sep", - "Oct","Nov","Dec"] - - try: - return months.index(m) + 1 - except ValueError: - return int(m) - - y,m,d = date.split("-") - date_elements = [int(y), conv_month(m), int(d)] - - h,m,s = time.split(":") - - try: - s,ms = s.split(".") - - # convert to 6 digits - digits = 6 # microsecond precision in datetime objects - ms = ms[:digits] - ms = ms + "0" * (digits-len(ms)) # left align the digits! - except: - s,ms = s,0 - - time_elements = map( int, [h,m,s,ms] ) - - return datetime.datetime( *(date_elements + time_elements) ) - elif ":" in str: - # assume HH:MM:SS, and use today as the date - now = datetime.datetime.now() - time_elements = map( int, str.split(":") ) - - return datetime.datetime( now.year, now.month, now.day, *(time_elements) ) - else: - # a timestamp - return datetime.datetime.fromtimestamp( int(str) ) - -def parseDuration( str ): - """ Accept: a number of seconds, HH:MM:SS. Returns: an integer. """ - str = str.strip() - - def toSeconds( h, m = 0, s = 0 ): - return h * 3600 + m * 60 + s; - - if ":" in str: - # assume HH:MM:SS - time_elements = map( int, str.split(":") ) - return toSeconds( *(time_elements) ) - else: - # a number of seconds - return float( str ) - -def format( dt ): - """ Convert either a datetime object or a timestamp to YYYY-MM-DD HH:MM:SS. """ - - if isinstance( dt, int ) or isinstance( dt, float ): - dt = datetime.datetime.fromtimestamp( dt ) - - return dt.strftime("%F %T") - -def timestamp( dt ): - """ Returns the UTC timestamp corresponding to the provided datetime object. """ - - return float(time.mktime( dt.utctimetuple() )) - -if __name__ == "__main__": - """ Convert whatever parse() accepts into UNIX timestamps and a proper date/time string. """ - - import sys - - if len(sys.argv) == 1: - print """usage: %s str [str] ... - -Where "str" can be anything accepted by parse(), which is described by: - -%s""" % (sys.argv[0],parse.__doc__) - sys.exit(1) - - for s in sys.argv[1:]: - parsed = parse(s) - print "%s = %s / %s" % (s,timestamp(parsed),format(parsed)) - diff --git a/RTCP/Run/src/util/shlex.py b/RTCP/Run/src/util/shlex.py deleted file mode 100644 index 1ac6c84b7aa5e1025da16ac0818ee1243a445d46..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/util/shlex.py +++ /dev/null @@ -1,302 +0,0 @@ -# -*- coding: iso-8859-1 -*- -"""A lexical analyzer class for simple shell-like syntaxes.""" - -# Module and documentation by Eric S. Raymond, 21 Dec 1998 -# Input stacking and error message cleanup added by ESR, March 2000 -# push_source() and pop_source() made explicit by ESR, January 2001. -# Posix compliance, split(), string arguments, and -# iterator interface by Gustavo Niemeyer, April 2003. - -# 2009-10-09: Jan David Mol: Return newlines as tokens if they're not whitespace. They were discarded after comments. - -import os.path -import sys -from collections import deque - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -__all__ = ["shlex", "split"] - -class shlex: - "A lexical analyzer class for simple shell-like syntaxes." - def __init__(self, instream=None, infile=None, posix=False): - if isinstance(instream, basestring): - instream = StringIO(instream) - if instream is not None: - self.instream = instream - self.infile = infile - else: - self.instream = sys.stdin - self.infile = None - self.posix = posix - if posix: - self.eof = None - else: - self.eof = '' - self.commenters = '#' - self.wordchars = ('abcdfeghijklmnopqrstuvwxyz' - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_') - if self.posix: - self.wordchars += ('��������������������������������' - '������������������������������') - self.whitespace = ' \t\r\n' - self.whitespace_split = False - self.quotes = '\'"' - self.escape = '\\' - self.escapedquotes = '"' - self.state = ' ' - self.pushback = deque() - self.lineno = 1 - self.debug = 0 - self.token = '' - self.filestack = deque() - self.source = None - if self.debug: - print 'shlex: reading from %s, line %d' \ - % (self.instream, self.lineno) - - def push_token(self, tok): - "Push a token onto the stack popped by the get_token method" - if self.debug >= 1: - print "shlex: pushing token " + repr(tok) - self.pushback.appendleft(tok) - - def push_source(self, newstream, newfile=None): - "Push an input source onto the lexer's input source stack." - if isinstance(newstream, basestring): - newstream = StringIO(newstream) - self.filestack.appendleft((self.infile, self.instream, self.lineno)) - self.infile = newfile - self.instream = newstream - self.lineno = 1 - if self.debug: - if newfile is not None: - print 'shlex: pushing to file %s' % (self.infile,) - else: - print 'shlex: pushing to stream %s' % (self.instream,) - - def pop_source(self): - "Pop the input source stack." - self.instream.close() - (self.infile, self.instream, self.lineno) = self.filestack.popleft() - if self.debug: - print 'shlex: popping to %s, line %d' \ - % (self.instream, self.lineno) - self.state = ' ' - - def get_token(self): - "Get a token from the input stream (or from stack if it's nonempty)" - if self.pushback: - tok = self.pushback.popleft() - if self.debug >= 1: - print "shlex: popping token " + repr(tok) - return tok - # No pushback. Get a token. - raw = self.read_token() - # Handle inclusions - if self.source is not None: - while raw == self.source: - spec = self.sourcehook(self.read_token()) - if spec: - (newfile, newstream) = spec - self.push_source(newstream, newfile) - raw = self.get_token() - # Maybe we got EOF instead? - while raw == self.eof: - if not self.filestack: - return self.eof - else: - self.pop_source() - raw = self.get_token() - # Neither inclusion nor EOF - if self.debug >= 1: - if raw != self.eof: - print "shlex: token=" + repr(raw) - else: - print "shlex: token=EOF" - return raw - - def read_token(self): - quoted = False - escapedstate = ' ' - while True: - nextchar = self.instream.read(1) - if nextchar == '\n': - self.lineno = self.lineno + 1 - if self.debug >= 3: - print "shlex: in state", repr(self.state), \ - "I see character:", repr(nextchar) - if self.state is None: - self.token = '' # past end of file - break - elif self.state == ' ': - if not nextchar: - self.state = None # end of file - break - elif nextchar in self.commenters: - remainder = self.instream.readline() - self.lineno = self.lineno + 1 - - if not remainder: - self.state = None # end of file - break - - # continue parsing the newline as any other character - nextchar = '\n' - - if nextchar in self.whitespace: - if self.debug >= 2: - print "shlex: I see whitespace in whitespace state" - if self.token or (self.posix and quoted): - break # emit current token - else: - continue - elif self.posix and nextchar in self.escape: - escapedstate = 'a' - self.state = nextchar - elif nextchar in self.wordchars: - self.token = nextchar - self.state = 'a' - elif nextchar in self.quotes: - if not self.posix: - self.token = nextchar - self.state = nextchar - elif self.whitespace_split: - self.token = nextchar - self.state = 'a' - else: - self.token = nextchar - if self.token or (self.posix and quoted): - break # emit current token - else: - continue - elif self.state in self.quotes: - quoted = True - if not nextchar: # end of file - if self.debug >= 2: - print "shlex: I see EOF in quotes state" - # XXX what error should be raised here? - raise ValueError, "No closing quotation" - if nextchar == self.state: - if not self.posix: - self.token = self.token + nextchar - self.state = ' ' - break - else: - self.state = 'a' - elif self.posix and nextchar in self.escape and \ - self.state in self.escapedquotes: - escapedstate = self.state - self.state = nextchar - else: - self.token = self.token + nextchar - elif self.state in self.escape: - if not nextchar: # end of file - if self.debug >= 2: - print "shlex: I see EOF in escape state" - # XXX what error should be raised here? - raise ValueError, "No escaped character" - # In posix shells, only the quote itself or the escape - # character may be escaped within quotes. - if escapedstate in self.quotes and \ - nextchar != self.state and nextchar != escapedstate: - self.token = self.token + self.state - self.token = self.token + nextchar - self.state = escapedstate - elif self.state == 'a': - if not nextchar: - self.state = None # end of file - break - elif nextchar in self.whitespace: - if self.debug >= 2: - print "shlex: I see whitespace in word state" - self.state = ' ' - if self.token or (self.posix and quoted): - break # emit current token - else: - continue - elif nextchar in self.commenters: - self.instream.readline() - self.lineno = self.lineno + 1 - if self.posix: - self.state = ' ' - if self.token or (self.posix and quoted): - break # emit current token - else: - continue - elif self.posix and nextchar in self.quotes: - self.state = nextchar - elif self.posix and nextchar in self.escape: - escapedstate = 'a' - self.state = nextchar - elif nextchar in self.wordchars or nextchar in self.quotes \ - or self.whitespace_split: - self.token = self.token + nextchar - else: - self.pushback.appendleft(nextchar) - if self.debug >= 2: - print "shlex: I see punctuation in word state" - self.state = ' ' - if self.token: - break # emit current token - else: - continue - result = self.token - self.token = '' - if self.posix and not quoted and result == '': - result = None - if self.debug > 1: - if result: - print "shlex: raw token=" + repr(result) - else: - print "shlex: raw token=EOF" - return result - - def sourcehook(self, newfile): - "Hook called on a filename to be sourced." - if newfile[0] == '"': - newfile = newfile[1:-1] - # This implements cpp-like semantics for relative-path inclusion. - if isinstance(self.infile, basestring) and not os.path.isabs(newfile): - newfile = os.path.join(os.path.dirname(self.infile), newfile) - return (newfile, open(newfile, "r")) - - def error_leader(self, infile=None, lineno=None): - "Emit a C-compiler-like, Emacs-friendly error-message leader." - if infile is None: - infile = self.infile - if lineno is None: - lineno = self.lineno - return "\"%s\", line %d: " % (infile, lineno) - - def __iter__(self): - return self - - def next(self): - token = self.get_token() - if token == self.eof: - raise StopIteration - return token - -def split(s, comments=False): - lex = shlex(s, posix=True) - lex.whitespace_split = True - if not comments: - lex.commenters = '' - return list(lex) - -if __name__ == '__main__': - if len(sys.argv) == 1: - lexer = shlex() - else: - file = sys.argv[1] - lexer = shlex(open(file), file) - while 1: - tt = lexer.get_token() - if tt: - print "Token: " + repr(tt) - else: - break diff --git a/RTCP/Run/src/watchlogs.sh b/RTCP/Run/src/watchlogs.sh deleted file mode 100755 index 458ffb305bf8ef32455de890b855f3f966158e29..0000000000000000000000000000000000000000 --- a/RTCP/Run/src/watchlogs.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -source locations.sh - -FLAGS="-n 10000" - -CNPROC_LOG=$LOGDIR/CNProc.log -IONPROC_LOG=$LOGDIR/IONProc.log - -echo Reading logs from $LOGDIR -echo Reading multitail configuration from $ETCDIR - -ERRORLOGS= - -if [ $ISPRODUCTION -eq 1 ] -then - for l in $LOGDIR/BlueGeneControl.log $LOGDIR/startBGL.log - do - echo Reading additional error log $l - ERRORLOGS="$ERRORLOGS $FLAGS -cS olap -fr errors -I $l" - done -fi - -multitail --no-mark-change --follow-all --retry-all -m 10240 --basename -F $ETCDIR/multitail-olap.conf \ - $FLAGS -t "-- FLAGS --" -fr flags -ks flags -i $IONPROC_LOG \ - $FLAGS -t "-- ERRORS --" -fr errors -i $IONPROC_LOG \ - $FLAGS -fr errors -I $CNPROC_LOG \ - $ERRORLOGS \ - $FLAGS -t "IONProc/Storage" -i $IONPROC_LOG \ - $FLAGS -t "CNProc" -wh 5 -i $CNPROC_LOG - diff --git a/RTCP/Run/test/OLAP.parset b/RTCP/Run/test/OLAP.parset deleted file mode 100644 index 710fb375f8deb895a88ac30f28e247be2cf277ce..0000000000000000000000000000000000000000 --- a/RTCP/Run/test/OLAP.parset +++ /dev/null @@ -1,392 +0,0 @@ -# -# Hardcoded (temporary) keys -# -OLAP.correctClocks = T - -# -# Fibre length corrections for superterp stations using -# a single clock. -# -PIC.Core.CS002LBA.clockCorrectionTime = 8.2724449975934222e-06 -PIC.Core.CS002HBA0.clockCorrectionTime = 8.2724449975934222e-06 -PIC.Core.CS002HBA1.clockCorrectionTime = 8.2724449975934222e-06 - -PIC.Core.CS003LBA.clockCorrectionTime = 6.8756447631247787e-06 -PIC.Core.CS003HBA0.clockCorrectionTime = 6.8756447631247787e-06 -PIC.Core.CS003HBA1.clockCorrectionTime = 6.8756447631247787e-06 - -PIC.Core.CS004LBA.clockCorrectionTime = 7.8462185662334179e-06 -PIC.Core.CS004HBA0.clockCorrectionTime = 7.8462185662334179e-06 -PIC.Core.CS004HBA1.clockCorrectionTime = 7.8462185662334179e-06 - -PIC.Core.CS005LBA.clockCorrectionTime = 8.4978152695672203e-06 -PIC.Core.CS005HBA0.clockCorrectionTime = 8.4978152695672203e-06 -PIC.Core.CS005HBA1.clockCorrectionTime = 8.4978152695672203e-06 - -PIC.Core.CS006LBA.clockCorrectionTime = 7.8374740231534724e-06 -PIC.Core.CS006HBA0.clockCorrectionTime = 7.8374740231534724e-06 -PIC.Core.CS006HBA1.clockCorrectionTime = 7.8374740231534724e-06 - -PIC.Core.CS007LBA.clockCorrectionTime = 7.8673363857885218e-06 -PIC.Core.CS007HBA0.clockCorrectionTime = 7.8673363857885218e-06 -PIC.Core.CS007HBA1.clockCorrectionTime = 7.8673363857885218e-06 - -# -# Stations outside of the superterp (no correction needed) -# -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.clockCorrectionTime = 0 - -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.clockCorrectionTime = 0 - -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.clockCorrectionTime = 0 - -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.clockCorrectionTime = 0 - -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.clockCorrectionTime = 0 - -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.clockCorrectionTime = 0 - -PIC.Core.DE601LBA.clockCorrectionTime = 0 -PIC.Core.DE601HBA.clockCorrectionTime = 0 - -PIC.Core.DE602LBA.clockCorrectionTime = 0 - -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.clockCorrectionTime = 0 - -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA.clockCorrectionTime = 0 - -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.clockCorrectionTime = 0 - -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.clockCorrectionTime = 0 - -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA.clockCorrectionTime = 0 - -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA.clockCorrectionTime = 0 - -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA.clockCorrectionTime = 0 - -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA.clockCorrectionTime = 0 - -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.clockCorrectionTime = 0 - -PIC.Core.CS401LBA.clockCorrectionTime = 0 -PIC.Core.CS401HBA0.clockCorrectionTime = 0 -PIC.Core.CS401HBA1.clockCorrectionTime = 0 -PIC.Core.CS401HBA.clockCorrectionTime = 0 - -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA.clockCorrectionTime = 0 - -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA.clockCorrectionTime = 0 - -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA.clockCorrectionTime = 0 - -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA.clockCorrectionTime = 0 - -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA.clockCorrectionTime = 0 - -# -# Phase centers -# -Observation.referencePhaseCenter = [3826577.110, 461022.900, 5064892.758] - -PIC.Core.RS106LBA.phaseCenter = [3829261.468 , 469162.237 , 5062137.281 ] -PIC.Core.RS106HBA.phaseCenter = [3829205.641 , 469142.485 , 5062180.973 ] - -PIC.Core.RS205LBA.phaseCenter = [3831438.606, 463435.393, 5061025.437] -PIC.Core.RS205HBA.phaseCenter = [3831479.714, 463487.482, 5060989.875] - -PIC.Core.RS208LBA.phaseCenter = [3847810.094 , 466929.659 , 5048357.193 ] -PIC.Core.RS208HBA.phaseCenter = [3847753.353 , 466962.762 , 5048397.215 ] - -PIC.Core.RS306LBA.phaseCenter = [3829791.851, 452829.800, 5063221.562] -PIC.Core.RS306HBA.phaseCenter = [3829771.292, 452761.654, 5063243.153] - -PIC.Core.RS307LBA.phaseCenter = [3837940.9917542874, 449560.70805339684, 5057381.259244779] -PIC.Core.RS307HBA.phaseCenter = [3837964.5626099864, 449627.2130233004, 5057357.55606065] - -PIC.Core.RS503LBA.phaseCenter = [3824090.495722555, 459438.235056466, 5066898.161723869] -PIC.Core.RS503HBA.phaseCenter = [3824138.6094873874, 459476.92505906447, 5066858.549501777] - -PIC.Core.DE601LBA.phaseCenter = [4034036.771, 487026.037, 4900278.814] -PIC.Core.DE601HBA.phaseCenter = [4034099.797, 487013.365, 4900229.675] - -PIC.Core.DE602LBA.phaseCenter = [4152561.219, 828868.251, 4754356.662] - -PIC.Core.DE603LBA.phaseCenter = [3940284.668, 816802.076, 4932393.236] -PIC.Core.DE603HBA.phaseCenter = [3940295.753, 816722.816, 4932394.388] - -PIC.Core.CS001LBA.phaseCenter = [3826923.589, 460915.393, 5064643.460] -PIC.Core.CS001HBA0.phaseCenter = [3826896.278, 460979.407, 5064658.174] -PIC.Core.CS001HBA1.phaseCenter = [3826979.428, 460897.549, 5064603.161] -PIC.Core.CS001HBA.phaseCenter = [3826937.853, 460938.478, 5064630.667] - -PIC.Core.CS002LBA.phaseCenter = [3826577.110, 461022.900, 5064892.758] -PIC.Core.CS002HBA0.phaseCenter = [3826601.004, 460953.354, 5064881.107] -PIC.Core.CS002HBA1.phaseCenter = [3826565.637, 460958.062, 5064907.229] - -PIC.Core.CS003LBA.phaseCenter = [3826516.792, 460930.018, 5064946.429] -PIC.Core.CS003HBA0.phaseCenter = [3826471.391, 461000.090, 5064974.172] -PIC.Core.CS003HBA1.phaseCenter = [3826517.856, 461035.210, 5064936.122] - -PIC.Core.CS004LBA.phaseCenter = [3826654.240, 460939.528, 5064842.398] -PIC.Core.CS004HBA0.phaseCenter = [3826585.669, 460865.796, 5064900.532] -PIC.Core.CS004HBA1.phaseCenter = [3826579.530, 460917.432, 5064900.474] - -PIC.Core.CS005LBA.phaseCenter = [3826668.794, 461069.502, 5064819.726] -PIC.Core.CS005HBA0.phaseCenter = [3826701.204, 460989.202, 5064802.657] -PIC.Core.CS005HBA1.phaseCenter = [3826631.238, 461021.767, 5064852.231] - -PIC.Core.CS006LBA.phaseCenter = [3826596.773, 461145.130, 5064866.950] -PIC.Core.CS006HBA0.phaseCenter = [3826653.826, 461136.392, 5064824.914] -PIC.Core.CS006HBA1.phaseCenter = [3826612.543, 461080.250, 5064860.978] - -PIC.Core.CS007LBA.phaseCenter = [3826533.405, 461098.918, 5064918.693] -PIC.Core.CS007HBA0.phaseCenter = [3826478.758, 461083.672, 5064961.088] -PIC.Core.CS007HBA1.phaseCenter = [3826538.064, 461169.683, 5064908.799] - -PIC.Core.CS021LBA.phaseCenter = [3826406.586, 460538.556, 5065064.841] -PIC.Core.CS021HBA0.phaseCenter = [3826463.468, 460533.037, 5065022.644] -PIC.Core.CS021HBA1.phaseCenter = [3826368.857, 460488.009, 5065097.731] - -PIC.Core.CS030LBA.phaseCenter = [3826014.3094869214, 460387.3411647229, 5065372.299501434] -PIC.Core.CS030HBA.phaseCenter = [3825999.9912340324, 460364.22492058337, 5065385.136533625] -PIC.Core.CS030HBA0.phaseCenter = [3826041.8445088593, 460323.3355244964, 5065357.416324711] -PIC.Core.CS030HBA1.phaseCenter = [3825958.6048163464, 460405.2150478815, 5065412.496568461] - -PIC.Core.CS103LBA.phaseCenter = [3826304.323, 462823.041, 5064934.306] -PIC.Core.CS103HBA0.phaseCenter = [3826331.633, 462759.026, 5064919.592] -PIC.Core.CS103HBA1.phaseCenter = [3826248.484, 462840.885, 5064974.605] -PIC.Core.CS103HBA.phaseCenter = [3826290.059, 462799.955, 5064947.098] - -PIC.Core.CS024LBA.phaseCenter = [3827161.277, 461409.360, 5064421.017] -PIC.Core.CS024HBA0.phaseCenter = [3827218.236, 461403.850, 5064378.761] -PIC.Core.CS024HBA1.phaseCenter = [3827123.547, 461358.813, 5064453.906] -PIC.Core.CS024HBA.phaseCenter = [3827170.893, 461381.331, 5064416.334] - -PIC.Core.CS032LBA.phaseCenter = [3826891.617, 460387.862, 5064715.264] -PIC.Core.CS032HBA0.phaseCenter = [3826864.306, 460451.876, 5064729.978] -PIC.Core.CS032HBA1.phaseCenter = [3826947.454, 460370.018, 5064674.963] -PIC.Core.CS032HBA.phaseCenter = [3826905.880, 460410.947, 5064702.470] - -PIC.Core.CS301LBA.phaseCenter = [3827429.506, 460990.176, 5064257.649] -PIC.Core.CS301HBA0.phaseCenter = [3827459.152, 461048.680, 5064230.107] -PIC.Core.CS301HBA1.phaseCenter = [3827447.613, 460921.785, 5064250.237] -PIC.Core.CS301HBA.phaseCenter = [3827453.384, 460985.233, 5064240.173] - -PIC.Core.CS302LBA.phaseCenter = [3827945.959604251, 459792.591307241, 5063989.987604071] -PIC.Core.CS302HBA0.phaseCenter = [3827973.269609978, 459728.57630928187, 5063975.271605821] -PIC.Core.CS302HBA.phaseCenter = [3827931.6956053847, 459769.50630620244, 5064002.778603462] -PIC.Core.CS302HBA1.phaseCenter = [3827890.120600792, 459810.43530312297, 5064030.284601102] - -PIC.Core.CS401LBA.phaseCenter = [3826766.149, 460100.340, 5064836.441] -PIC.Core.CS401HBA0.phaseCenter = [3826795.796, 460158.846, 5064808.901] -PIC.Core.CS401HBA1.phaseCenter = [3826784.254, 460031.945, 5064829.033] -PIC.Core.CS401HBA.phaseCenter = [3826790.025, 460095.396, 5064818.967] - -PIC.Core.CS101LBA.phaseCenter = [3825848.387, 461689.490, 5065378.757] -PIC.Core.CS101HBA0.phaseCenter = [3825905.345, 461683.980, 5065336.500] -PIC.Core.CS101HBA1.phaseCenter = [3825810.656, 461638.943, 5065411.645] -PIC.Core.CS101HBA.phaseCenter = [3825858.001, 461661.462, 5065374.073] - -PIC.Core.CS201LBA.phaseCenter = [3826708.972, 461913.699, 5064713.810] -PIC.Core.CS201HBA0.phaseCenter = [3826679.324, 461855.195, 5064741.351] -PIC.Core.CS201HBA1.phaseCenter = [3826690.865, 461982.091, 5064721.221] -PIC.Core.CS201HBA.phaseCenter = [3826685.094, 461918.643, 5064731.286] - -PIC.Core.CS501LBA.phaseCenter = [3825625.822, 460642.062, 5065640.743] -PIC.Core.CS501HBA0.phaseCenter = [3825568.863, 460647.572, 5065682.999] -PIC.Core.CS501HBA1.phaseCenter = [3825663.551, 460692.610, 5065607.854] -PIC.Core.CS501HBA.phaseCenter = [3825616.208, 460670.091, 5065645.428] - -PIC.Core.CS026LBA.phaseCenter = [3826390.959, 461869.804, 5064955.884] -PIC.Core.CS026HBA0.phaseCenter = [3826418.270, 461805.789, 5064941.170] -PIC.Core.CS026HBA1.phaseCenter = [3826335.122, 461887.648, 5064996.185] -PIC.Core.CS026HBA.phaseCenter = [3826376.697, 461846.719, 5064968.678] - -PIC.Core.CS017LBA.phaseCenter = [3826462.097, 461501.902, 5064935.798] -PIC.Core.CS017HBA0.phaseCenter = [3826405.139, 461507.412, 5064978.055] -PIC.Core.CS017HBA1.phaseCenter = [3826499.827, 461552.450, 5064902.910] -PIC.Core.CS017HBA.phaseCenter = [3826452.483, 461529.931, 5064940.483] - -# -# Experimental part: -# - -PIC.Core.S1.phaseCenter = [3826615.56096, 460986.585898, 5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S10.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S17.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S170.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] - -PIC.Core.T1.phaseCenter = [3826615.56096, 460986.585898, 5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T10.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T17.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T170.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713, 460904.072585, 5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096, 460986.585898, 5064718.84237] - -# -# End of experimental part -# diff --git a/RTCP/Run/test/RTCP-validate.parset b/RTCP/Run/test/RTCP-validate.parset deleted file mode 100644 index 7c2b3ecf12984e5d8e54861a5b542ed2a07165af..0000000000000000000000000000000000000000 --- a/RTCP/Run/test/RTCP-validate.parset +++ /dev/null @@ -1,154 +0,0 @@ -# ----- Generic information -Observation.ObserverName = "Developer" -Observation.ProjectName = "Development" - -# ----- Input streams -Observation.VirtualInstrument.stationList = [S22,S17] -#Observation.antennaSet=LBA_INNER -#Observation.antennaSet=LBA_OUTER -#Observation.antennaSet=LBA_X -#Observation.antennaSet=HBA_ZERO -#Observation.antennaSet=HBA_ONE -#Observation.antennaSet=HBA_DUAL -#Observation.antennaSet=HBA_JOINED -Observation.antennaSet= - -OLAP.realTime = T # T when reading data from stations, F when reading from disk - -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 62 # the number of subbands -OLAP.nrTimesInFrame = 16 - -# Eg. [ 300..303, 40 ] --> [ 300,301,302,303,40 ] -# [ 10*0 ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -# [ 3*(0;1;2;3) ] --> [ 0,1,2,3,0,1,2,3,0,1,2,3 ] -# [ 3*(300..303) ] --> [ 300,301,302,303,300,301,302,303,300,301,302,303 ] -# [ 2*(5*0) ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -#Observation.subbandList = [1..248] -#Observation.beamList = [248*0] -#Observation.rspBoardList = [62*0,62*1,62*2,62*3] -#Observation.rspSlotList = [0..61,0..61,0..61,0..61] - -Observation.subbandList = [1..248] -Observation.beamList = [248*0] -Observation.rspBoardList = [62*0,62*1,62*2,62*3] -Observation.rspSlotList = [0..61,0..61,0..61,0..61] - -#OLAP.CNProc.phaseOnePsets = [2] -#OLAP.CNProc.phaseTwoPsets = [0..3] -#OLAP.CNProc.phaseThreePsets = [0..3] - -OLAP.CNProc.phaseOneTwoCores = [0..40] -OLAP.CNProc.phaseThreeCores = [41..63] - -#Observation.subbandList = [1..5] -#Observation.beamList = [5*0] -#Observation.rspBoardList = [5*0] -#Observation.rspSlotList = [0..4] - -#Observation.subbandList = [154] -#Observation.beamList = [0] -#Observation.rspBoardList = [0] -#Observation.rspSlotList = [0] -Observation.sampleClock = 200 -OLAP.nrBitsPerSample = 16 - -OLAP.CNProc.usedCoresInPset = [0..63] -#OLAP.CNProc.phaseOnePsets = [0] -#OLAP.CNProc.phaseTwoPsets = [0] -#OLAP.CNProc.phaseThreePsets = [0] - -# Common coordinates are included at the bottom -Observation.nrBeams = 1 -Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].directionType = J2000 - -# ----- Output streams -Observation.MSNameMask = /data1/D${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -Observation.VirtualInstrument.storageNodeList = [lse019,lse020,lse021] - -OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.174.0.1:4000] # output data go to lse001 -OLAP.OLAP_Conn.rawDataOutputOnly = F - -OLAP.outputFilteredData = F -OLAP.outputBeamFormedData = F -OLAP.outputCorrelatedData = T -OLAP.outputCoherentStokes = F -OLAP.outputIncoherentStokes = F - -Observation.channelsPerSubband = 256 - -OLAP.delayCompensation = T - -OLAP.correctBandPass = T -#Observation.bandFilter = LBA_10_90 -Observation.bandFilter = LBA_30_90 -#Observation.bandFilter = HBA_110_190 -#Observation.bandFilter = HBA_170_230 -#Observation.bandFilter = HBA_210_250 - -OLAP.Correlator.integrationTime = 0.5 -#OLAP.IONProc.integrationSteps = 1 # (generated) -#OLAP.CNProc.integrationSteps = 768 # (generated, multiple of 128 for pencil beams) - -OLAP.Stokes.which = I # I or IQUV -OLAP.Stokes.integrationSteps = 1 # time integration - -# ----- Beam forming -OLAP.PencilInfo.flysEye = F # don't form pencil beams, but turn stations - # into pencil beams - -OLAP.PencilInfo.nrRings = 0 # 0 = just the central beam -OLAP.PencilInfo.ringSize = 0.01 -OLAP.Storage.nrSubbandsPerBeam = 248 -OLAP.nrPencils = 1 -OLAP.Pencil[0].angle1 = 0.01745329251994329576 -OLAP.Pencil[0].angle2 = 0 - -# Eg. tiedArray beamforming -#Observation.Beamformer[0].stationList = "B01_0,B01_1" -#Observation.Beamformer[1].stationList = "B01_2,B01_3" - -# ----- CNProc internals -# Transports should be one of FCNP, TCP, NULL. This works for IONProc, but not for -# CNProc, since CNProc does not open the parset file! -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -#OLAP.CNProc.partition = R00 # (generated) - -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.coresPerPset = 64 - -# ----- IONProc internals -OLAP.DelayComp.positionType = ITRF # should be ITRF -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.nrSecondsOfBuffer = 4 -OLAP.maxNetworkDelay = 0.5 - -# ----- Storage internals -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP - -# ----- Global internals -OLAP.log2SasMac = F -OLAP.OLAP_Conn.log2SasMacOutputs = [tcp:0.0.0.0:24500] - -# ----- Coordinates of common sources -#Observation.Beam[0].angle1 = 0 # NCP -#Observation.Beam[0].angle2 = 1.570796327 -#Observation.Beam[0].angle1 = 5.0690771897724982 # PSR B1919+21 -#Observation.Beam[0].angle2 = 0.38194712046815321 -#Observation.Beam[0].angle1 = 0.9293418663522305 # PSR B0329+54 -#Observation.Beam[0].angle2 = 0.9525792284909524 -#Observation.Beam[0].angle1 = 3.314704691633744 # Pulsar -#Observation.Beam[0].angle2 = 0.434535060205780 -#Observation.Beam[0].angle1 = 6.1234876806221052 # Cas A -#Observation.Beam[0].angle2 = 1.0265153995604648 -#Observation.Beam[0].angle1 = 5.2336866848083394 # Cygnus -#Observation.Beam[0].angle2 = 0.71094251447010637 -#Observation.Beam[2].angle1 = 0.9293418663522305 # pulsar -#Observation.Beam[2].angle2 = 0.9525792284909524 -#Observation.Beam[0].angle1 = 5.62942569373173 # Jupiter -#Observation.Beam[0].angle2 = -0.268760827446199 -#Observation.Beam[0].angle1 = 1.4596748494230258 # Taurus -#Observation.Beam[0].angle2 = 0.38422502336661052 - diff --git a/RTCP/Run/test/test.py b/RTCP/Run/test/test.py deleted file mode 100755 index 0612007b890f10cc6f93b7436ff2f09ffb3ac8c8..0000000000000000000000000000000000000000 --- a/RTCP/Run/test/test.py +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/python -import sys -sys.path = sys.path + ["../src"] - -from LOFAR.ParsetTester import ParsetTester -from LOFAR.LogValidators import NoErrors,NoDrops,RealTime -from LOFAR.Locations import Locations -from LOFAR.Partitions import PartitionPsets -from LOFAR import Logger - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import os - import sys - - # parse the command line - parser = OptionParser( usage = """usage: %prog -P partition [options]""" ) - - opgroup = OptionGroup(parser, "Output" ) - opgroup.add_option( "-v", "--verbose", - dest = "verbose", - action = "store_true", - default = False, - help = "be verbose [%default]" ) - opgroup.add_option( "-q", "--quiet", - dest = "quiet", - action = "store_true", - default = False, - help = "be quiet [%default]" ) - opgroup.add_option( "-k", "--keeplogs", - dest = "keeplogs", - action = "store_true", - default = False, - help = "keep log files and data products of successful tests [%default]" ) - parser.add_option_group( opgroup ) - - hwgroup = OptionGroup(parser, "Hardware" ) - hwgroup.add_option( "-P", "--partition", - dest = "partition", - type = "string", - help = "name of the BlueGene partition [%default]" ) - parser.add_option_group( hwgroup ) - - dirgroup = OptionGroup(parser, "Directory and file locations") - dirgroup.add_option( "--basedir", - dest = "basedir", - default = Locations.files["basedir"], - help = "base directory [%default]" ) - dirgroup.add_option( "--logdir", - dest = "logdir", - default = "%s/test-${TIMESTAMP}" % (os.getcwd(),), - help = "log directory (syntax: [host:]path) [%default]" ) - dirgroup.add_option( "--rundir", - dest = "rundir", - default = "${LOGDIR}", - help = "run directory [%default]" ) - dirgroup.add_option( "--cnproc", - dest = "cnproc", - default = Locations.files["cnproc"], - help = "CNProc executable [%default]" ) - dirgroup.add_option( "--ionproc", - dest = "ionproc", - default = Locations.files["ionproc"], - help = "IONProc executable [%default]" ) - parser.add_option_group( dirgroup ) - - testgroup = OptionGroup(parser, "Test parameters" ) - testgroup.add_option( "--parset", - dest = "parset", - default = "RTCP.parset", - help = "Parset to use [%default]" ), - testgroup.add_option( "--name", - dest = "name", - default = "test", - help = "Name of this test [%default]" ), - testgroup.add_option( "-A", "--nrstations", - dest = "nrstations", - type = "int", - default = 0, - help = "If >0, override the number of stations to use [%default]" ) - testgroup.add_option( "-B", "--nrbeams", - dest = "nrbeams", - type = "int", - default = 0, - help = "If >0, override the number of pencil beams to use [%default]" ) - testgroup.add_option( "-S", "--nrsubbands", - dest = "nrsubbands", - type = "int", - default = 0, - help = "If >0, override the number of subbands to use [%default]" ) - testgroup.add_option( "-r", "--runtime", - dest = "runtime", - default = 30, - type = "int", - help = "Duration of the observation in seconds [%default]" ) - testgroup.add_option( "-o", "--option", - dest = "option", - action = "append", - default = [], - type = "string", - help = "Additional parset key=value pairs." ) - - parser.add_option_group( testgroup ) - - valgroup = OptionGroup(parser, "Validation parameters" ) - valgroup.add_option( "-d", "--nodrops", - dest = "nodrops", - action = "store_true", - default = False, - help = "do not allow any data to be dropped [%default]" ) - - # parse arguments - (options, args) = parser.parse_args() - - if not options.partition: - parser.print_help() - sys.exit(1) - - Logger.initLogger() - - for opt in dirgroup.option_list: - Locations.setFilename( opt.dest, getattr( options, opt.dest ) ) - - Locations.resolveAllPaths() - - pt = ParsetTester( options.parset, options.partition, options.name ) - if options.nrsubbands > 0: pt.setNrSubbands( options.nrsubbands ) - if options.nrbeams > 0: pt.setNrPencilBeams( options.nrbeams ) - if options.nrstations > 0: pt.setNrStations( options.nrstations ) - for o in options.option: - pt.parset.parse(o) - - pt.runParset( runtime=options.runtime, parsetstartdelay=50 ) - - validators = [NoErrors(),RealTime()] - if options.nodrops: - validators.append( NoDrops() ) - - success = pt.validate( validators ) - - if success and not options.keeplogs: - pt.cleanup() - - sys.exit(int(not success)) - diff --git a/RTCP/Run/test/validate.py b/RTCP/Run/test/validate.py deleted file mode 100755 index 377793b7b2ca55075e05918ca04327e421caca1e..0000000000000000000000000000000000000000 --- a/RTCP/Run/test/validate.py +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/python -import sys -sys.path = sys.path + ["../src"] - -from LOFAR.ParsetTester import ParsetTester -from LOFAR.LogValidators import NoErrors -from LOFAR.Locations import Locations -from LOFAR.Partitions import PartitionPsets -from LOFAR import Logger -from random import sample - -parsetFile = "RTCP-validate.parset" - -if __name__ == "__main__": - from optparse import OptionParser,OptionGroup - import os - import sys - - # parse the command line - parser = OptionParser( usage = """usage: %prog -P partition [options]""" ) - - opgroup = OptionGroup(parser, "Output" ) - opgroup.add_option( "-v", "--verbose", - dest = "verbose", - action = "store_true", - default = False, - help = "be verbose [%default]" ) - opgroup.add_option( "-q", "--quiet", - dest = "quiet", - action = "store_true", - default = False, - help = "be quiet [%default]" ) - opgroup.add_option( "-k", "--keeplogs", - dest = "keeplogs", - action = "store_true", - default = False, - help = "keep log files and data products of successful tests [%default]" ) - parser.add_option_group( opgroup ) - - hwgroup = OptionGroup(parser, "Hardware" ) - hwgroup.add_option( "-P", "--partition", - dest = "partition", - type = "string", - help = "name of the BlueGene partition [%default]" ) - parser.add_option_group( hwgroup ) - - dirgroup = OptionGroup(parser, "Directory and file locations") - dirgroup.add_option( "--basedir", - dest = "basedir", - default = Locations.files["basedir"], - help = "base directory [%default]" ) - dirgroup.add_option( "--logdir", - dest = "logdir", - default = "%s/VALIDATION-${TIMESTAMP}" % (os.getcwd(),), - help = "log directory (syntax: [host:]path) [%default]" ) - dirgroup.add_option( "--rundir", - dest = "rundir", - default = "${LOGDIR}", - help = "run directory [%default]" ) - dirgroup.add_option( "--cnproc", - dest = "cnproc", - default = Locations.files["cnproc"], - help = "CNProc executable [%default]" ) - dirgroup.add_option( "--ionproc", - dest = "ionproc", - default = Locations.files["ionproc"], - help = "IONProc executable [%default]" ) - parser.add_option_group( dirgroup ) - - testgroup = OptionGroup(parser, "Tests to run (or all tests if nothing is specified)") - testgroup.add_option( "--clock", - dest = "clock", - action = "store_true", - default = False, - help = "run clock tests" ) - testgroup.add_option( "--oneoutput", - dest = "oneoutput", - action = "store_true", - default = False, - help = "run tests for individual outputs" ) - testgroup.add_option( "--subbandrun", - dest = "subbandrun", - action = "store_true", - default = False, - help = "run tests for varying number of subbands" ) - testgroup.add_option( "--beamrun", - dest = "beamrun", - action = "store_true", - default = False, - help = "run tests for varying number of beams and subbands" ) - testgroup.add_option( "--stationrun", - dest = "stationrun", - action = "store_true", - default = False, - help = "run tests for varying number of beams and stations" ) - testgroup.add_option( "--tabrun", - dest = "tabrun", - action = "store_true", - default = False, - help = "run tests for merging stations" ) - parser.add_option_group( testgroup ) - - # parse arguments - (options, args) = parser.parse_args() - - if not options.partition: - parser.print_help() - sys.exit(1) - - Logger.initLogger() - - for opt in dirgroup.option_list: - Locations.setFilename( opt.dest, getattr( options, opt.dest ) ) - - Locations.resolveAllPaths() - - run_all = not reduce( lambda x,y: x or getattr( options, y.dest ), testgroup.option_list, False ) - - def initParset( name ): - return ParsetTester( parsetFile, options.partition, name ) - - def testParset( pt, validators ): - pt.runParset() - - success = pt.validate( validators ) - - if success and not options.keeplogs: - pt.cleanup() - - return success - - # clocks - if run_all or options.clock: - for clock in [160,200]: - p = initParset( "%d MHz clock" % (clock,) ) - p.parset["Observation.sampleCock"] = clock - - if not testParset( p, [NoErrors()] ): - sys.exit(1) - - # individual outputs - if run_all or options.oneoutput: - for output in ["CorrelatedData","CoherentStokes","IncoherentStokes"]: - p = initParset( "output %s only" % (output,) ) - - p.parset["Observation.output%s" % (output,)] = True - - if not testParset( p, [NoErrors()] ): - sys.exit(1) - - # test 2 outputs, various number of subbands (for 2nd transpose) - if run_all or options.subbandrun: - nrBeams = 1 - - for nrSubbands in [1,2,3,4,8,10,11,13,16,32,62,63,64,128,248]: - if nrSubbands < nrBeams: - continue - - p = initParset( "%d subbands" % (nrSubbands,) ) - p.setNrSubbands( nrSubbands ) - - p.parset["Observation.outputCorrelatedData"] = True - p.parset["Observation.outputCoherentStokes"] = True - - if not testParset( p, [NoErrors()] ): - sys.exit(1) - - # test 2 outputs, various number of subbands (for 2nd transpose), multiple beams - if run_all or options.beamrun: - for nrBeams in [2,4,7,9,16,32,64]: - for nrSubbands in [1,2,3,4,8,10,11,13,16,32,62,63,64,128,248]: - if nrSubbands < nrBeams: - continue - - p = initParset( "%d beams %d subbands" % (nrBeams,nrSubbands,) ) - p.setNrSubbands( nrSubbands ) - p.setNrPencilBeams( nrBeams ) - p.setNrStations( 2 ) - - p.parset["Observation.outputCorrelatedData"] = True - p.parset["Observation.outputCoherentStokes"] = True - - if not testParset( p, [NoErrors()] ): - sys.exit(1) - - # test 2 outputs, various number of subbands (for 2nd transpose), multiple beams - if run_all or options.stationrun: - for nrStations in [2,4,8,16,32,62,64]: - for nrBeams in [8,9,16]: - if nrStations > len(PartitionPsets[options.partition]): - continue - - p = initParset( "%d beams %d stations" % (nrBeams,nrStations,) ) - p.setNrStations( nrStations ) - p.setNrPencilBeams( nrBeams ) - - p.parset["Observation.outputCorrelatedData"] = True - p.parset["Observation.outputCoherentStokes"] = True - - if not testParset( p, [NoErrors()] ): - sys.exit(1) - - if run_all or options.tabrun: - # max nr stations - nrStations = len(PartitionPsets[options.partition]) - for nrTabStations in xrange(2,nrStations+1): - p = initParset( "%d merged stations" % (nrTabStations,) ) - p.setNrStations( nrStations ) - - allStationNames = p.parset.stations - - # combine random stations - tabList = sample( allStationNames,nrTabStations ) - p.parset["Observation.Beamformer[0].stationList"] = ",".join(tabList) - - if not testParset( p, [NoErrors()] ): - sys.exit(1) diff --git a/RTCP/Storage/CMakeLists.txt b/RTCP/Storage/CMakeLists.txt deleted file mode 100644 index cb43c00703f619687d3070b31e5d45fc1de9dd53..0000000000000000000000000000000000000000 --- a/RTCP/Storage/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# $Id$ - -lofar_package(Storage 1.0 DEPENDS Common ApplCommon Stream Interface MSLofar LofarStMan) - -include(LofarFindPackage) -lofar_find_package(Casacore COMPONENTS casa ms tables REQUIRED) -lofar_find_package(DAL REQUIRED) -lofar_find_package(HDF5 REQUIRED) -lofar_find_package(Boost REQUIRED) - -add_subdirectory(include/Storage) -add_subdirectory(src) -add_subdirectory(test) diff --git a/RTCP/Storage/include/Storage/CMakeLists.txt b/RTCP/Storage/include/Storage/CMakeLists.txt deleted file mode 100644 index bb24ef7a85aee0d9d9cdae80e1df4232d440bc92..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# List of header files that will be installed. -set(inst_HEADERS) - -# Create symbolic link to include directory. -execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/include/${PACKAGE_NAME}) - -# Install header files. -install(FILES ${inst_HEADERS} DESTINATION include/${PACKAGE_NAME}) diff --git a/RTCP/Storage/include/Storage/ExitOnClosedStdin.h b/RTCP/Storage/include/Storage/ExitOnClosedStdin.h deleted file mode 100644 index bbe9846b368344e953ff68685b9103bebf80bdf3..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/ExitOnClosedStdin.h +++ /dev/null @@ -1,32 +0,0 @@ -//# ExitOnClosedStdin.h: Exit program if stdin closes. -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: $ - -#ifndef LOFAR_STORAGE_EXIT_ON_CLOSED_STDIN_H -#define LOFAR_STORAGE_EXIT_ON_CLOSED_STDIN_H - -#include <Common/Thread/Thread.h> - -namespace LOFAR { -namespace RTCP { - -class ExitOnClosedStdin -{ - public: - ExitOnClosedStdin(); - ~ExitOnClosedStdin(); - - private: - void mainLoop(); - Thread itsThread; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif - diff --git a/RTCP/Storage/include/Storage/FastFileStream.h b/RTCP/Storage/include/Storage/FastFileStream.h deleted file mode 100644 index c4368dbd9cd011cc16125d0af58fa6b4bf0082c1..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/FastFileStream.h +++ /dev/null @@ -1,73 +0,0 @@ -// FastFileStream.h: a FileStream using O_DIRECT -// -// Copyright (C) 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id: MSWriterImpl.h 11891 2008-10-14 13:43:51Z gels $ -// -////////////////////////////////////////////////////////////////////// - - -#ifndef LOFAR_STORAGE_FASTFILESTREAM_H -#define LOFAR_STORAGE_FASTFILESTREAM_H - - -#include <Stream/FileStream.h> -#include <Interface/SmartPtr.h> -#include <string> - - -namespace LOFAR { -namespace RTCP { - -class FastFileStream : public FileStream -{ - public: - FastFileStream(const std::string &name, int flags, int mode); // rd/wr; create file - - virtual size_t tryWrite(const void *ptr, size_t size); - virtual ~FastFileStream(); - - virtual void skip( size_t bytes ); - - virtual size_t size(); - - // formally, the required alignment for O_DIRECT is determined by the file system - static const unsigned alignment = 512; - private: - // writes the remainder, padded with zeros if needed. Returns the number of bytes written. - size_t writeRemainder(); - - // we only support writing - virtual size_t tryRead(void *, size_t size) { return size; } - - // enlarge the buffer if needed - void ensureBuffer(size_t newsize); - - // use the FileStream to force these data to disk - void forceWrite(const void *ptr, size_t size); - - size_t bufsize; - SmartPtr<char, SmartPtrFree<char> > buffer; - size_t remainder; -}; - -} -} - -#endif diff --git a/RTCP/Storage/include/Storage/Format.h b/RTCP/Storage/include/Storage/Format.h deleted file mode 100644 index 13dabbea290a66a1a26c396208d9a53debacaa3e..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/Format.h +++ /dev/null @@ -1,28 +0,0 @@ -//# Format.h: Virtual baseclass -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: $ - -#ifndef LOFAR_STORAGE_FORMAT_H -#define LOFAR_STORAGE_FORMAT_H - -#include <string> - -namespace LOFAR { -namespace RTCP { - -class Format -{ - public: - virtual ~Format(); - - virtual void addSubband(const std::string MSname, unsigned subband, bool isBigEndian) = 0; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Storage/include/Storage/HDF5Attributes.h b/RTCP/Storage/include/Storage/HDF5Attributes.h deleted file mode 100644 index 1c3c821f283d6794df8e3e66c0682a37942382e3..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/HDF5Attributes.h +++ /dev/null @@ -1,180 +0,0 @@ -// HDF5Attributes.h: a wrapper around HDF5 attribute writing functionality -// -// Copyright (C) 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// -////////////////////////////////////////////////////////////////////// - -#ifndef LOFAR_STORAGE_HDF5ATTRIBUTES_H -#define LOFAR_STORAGE_HDF5ATTRIBUTES_H - -#ifdef HAVE_HDF5 - -#include <hdf5.h> - -namespace LOFAR { -namespace RTCP { - -// C->HDF5 translations of native types (Storage endianness) -template<typename T> hid_t h5nativeType(); - -template<> hid_t h5nativeType<float>() { return H5T_NATIVE_FLOAT; } -template<> hid_t h5nativeType<double>() { return H5T_NATIVE_DOUBLE; } -template<> hid_t h5nativeType<unsigned>() { return H5T_NATIVE_UINT; } -template<> hid_t h5nativeType<int>() { return H5T_NATIVE_INT; } -template<> hid_t h5nativeType<bool>() { return H5T_NATIVE_CHAR; } // assuming sizeof(bool) == 1 - -// C->HDF5 translations of types to use in header (ICD 003) -template<typename T> hid_t h5writeType(); - -template<> hid_t h5writeType<float>() { return H5T_IEEE_F32LE; } -template<> hid_t h5writeType<double>() { return H5T_IEEE_F64LE; } -template<> hid_t h5writeType<unsigned>() { return H5T_STD_U32LE; } -template<> hid_t h5writeType<int>() { return H5T_STD_I32LE; } -template<> hid_t h5writeType<bool>() { return H5T_STD_I32LE; } // emulate bool with a 32-bit int - -// C->HDF5 translations of types to use for data (CNProc endianness) -template<typename T> hid_t h5dataType( bool bigEndian ); - -template<> hid_t h5dataType<float>( bool bigEndian ) { - return bigEndian ? H5T_IEEE_F32BE : H5T_IEEE_F32LE; -} - -template<> hid_t h5dataType<LOFAR::fcomplex>( bool bigEndian ) { - // emulate fcomplex with a 64-bit bitfield - return bigEndian ? H5T_STD_B64BE : H5T_STD_B64LE; -} - -// Autocloses hid_t types using closefunc() on destruction -class h5auto -{ -public: - h5auto( hid_t hid, hid_t (*closefunc)(hid_t) ): hid(hid), closefunc(closefunc) {} - ~h5auto() { - if (hid>0) - closefunc(hid); - } - - operator hid_t() const { return hid; } -private: - hid_t hid; - hid_t (*closefunc)(hid_t); -}; - -hid_t h5scalar() -{ - hid_t dataspace; - - dataspace = H5Screate( H5S_SCALAR ); - ASSERT( dataspace > 0 ); - - return dataspace; -} - -hid_t h5array( hsize_t count ) -{ - hsize_t dims[1] = { count }; - - hid_t dataspace = H5Screate_simple( 1, dims, NULL ); - ASSERT( dataspace > 0 ); - - return dataspace; -} - -hid_t h5stringType() -{ - hid_t datatype = H5Tcopy( H5T_C_S1 ); - ASSERT( datatype > 0 ); - - hid_t ret = H5Tset_size( datatype, H5T_VARIABLE ); - ASSERT( ret >= 0 ); - - return datatype; -} - -template<typename T> void writeAttribute( hid_t loc, const char *name, T value ) -{ - h5auto dataspace(h5scalar(), H5Sclose); - - h5auto attr(H5Acreate2( loc, name, h5writeType<T>(), dataspace, H5P_DEFAULT, H5P_DEFAULT ), H5Aclose); - ASSERT( attr > 0 ); - - hid_t ret = H5Awrite( attr, h5nativeType<T>(), &value ); - ASSERT( ret >= 0 ); -} - -template<typename U> void writeAttributeV( hid_t loc, const char *name, std::vector<U> value ) -{ - h5auto dataspace(h5array(value.size()), H5Sclose); - - h5auto attr(H5Acreate2( loc, name, h5writeType<U>(), dataspace, H5P_DEFAULT, H5P_DEFAULT ), H5Aclose); - ASSERT( attr > 0 ); - - hid_t ret = H5Awrite( attr, h5nativeType<U>(), &value[0] ); - ASSERT( ret >= 0 ); -} - - -template<> void writeAttribute( hid_t loc, const char *name, char const *value ) -{ - h5auto dataspace(h5scalar(), H5Sclose); - h5auto datatype(h5stringType(), H5Tclose); - - h5auto attr(H5Acreate2( loc, name, datatype, dataspace, H5P_DEFAULT, H5P_DEFAULT ), H5Aclose); - ASSERT( attr > 0 ); - - hid_t ret = H5Awrite( attr, datatype, &value ); - ASSERT( ret >= 0 ); -} - - -template<> void writeAttribute( hid_t loc, const char *name, const std::string value ) -{ - writeAttribute(loc, name, value.c_str()); -} - -template<> void writeAttributeV( hid_t loc, const char *name, std::vector<const char *> value ) -{ - h5auto dataspace(h5array(value.size()), H5Sclose); - h5auto datatype(h5stringType(), H5Tclose); - - h5auto attr(H5Acreate2( loc, name, datatype, dataspace, H5P_DEFAULT, H5P_DEFAULT ), H5Aclose); - ASSERT( attr > 0 ); - - hid_t ret = H5Awrite( attr, datatype, &value[0] ); - ASSERT( ret >= 0 ); -} - -template<> void writeAttributeV( hid_t loc, const char *name, std::vector<std::string> value ) -{ - // convert to C-style strings - std::vector<const char *> cstrs(value.size()); - for (unsigned i = 0; i < value.size(); i++) - cstrs[i] = value[i].c_str(); - - writeAttributeV(loc, name, cstrs); -} - -} -} - -#endif - -#endif - diff --git a/RTCP/Storage/include/Storage/IOPriority.h b/RTCP/Storage/include/Storage/IOPriority.h deleted file mode 100644 index 02a909c616fe94f3e9df6020b69527c7a58babeb..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/IOPriority.h +++ /dev/null @@ -1,158 +0,0 @@ -//# IOPriority.h: define some Linux specific IO priority macro's -//# -//# Copyright (C) 2002-2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id:$ - -#ifndef LOFAR_STORAGE_IOPRIORITY_H -#define LOFAR_STORAGE_IOPRIORITY_H - -#define IOPRIO_BITS (16) -#define IOPRIO_CLASS_SHIFT (13) -#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1) - -#define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT) -#define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK) -#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data) - -#include <pwd.h> -#include <sched.h> -#include <stdio.h> -#include <errno.h> -#include <unistd.h> -#include <sys/time.h> -#include <sys/mman.h> -#include <sys/types.h> -#include <sys/syscall.h> /* For SYS_xxx definitions */ -#include <sys/resource.h> - -#if defined __linux__ -#include <linux/version.h> -#endif - -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP, - IOPRIO_WHO_USER, -}; - - -enum { - IOPRIO_CLASS_NONE, - IOPRIO_CLASS_RT, - IOPRIO_CLASS_BE, - IOPRIO_CLASS_IDLE, -}; - - -inline int ioprio_set(int which, int who, int ioprio) -{ -#if defined __linux__ - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)) - return syscall(SYS_ioprio_set, which, who, ioprio); - #else - return -1; - #endif -#else - return -1; -#endif -} - -inline int ioprio_get(int which, int who) -{ -#if defined __linux__ - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)) - return syscall(SYS_ioprio_get, which, who); - #else - return -1; - #endif -#else - return -1; -#endif -} - -inline void setIOpriority() -{ - if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT,7)) != 0) { - switch (errno) { - case EPERM: - { - struct passwd *user = getpwnam("lofarsys"); - if ((user != NULL) && (getuid() != user->pw_uid)) - LOG_WARN_STR("Failed to set IO priority, permission denied"); - else - LOG_ERROR_STR("Failed to set IO priority, capability CAP_SYS_ADMIN not set?"); - } break; - case EINVAL: - case ESRCH: - default: - LOG_ERROR_STR("Failed to set IO priority: " << errno); - } - } -} - - -inline void setRTpriority() -{ - int priority = sched_get_priority_min(SCHED_RR); - struct sched_param sp; - sp.sched_priority = priority; - - if (sched_setscheduler(0, SCHED_RR, &sp) < 0) { - switch (errno) { - case EPERM: - { - struct passwd *user = getpwnam("lofarsys"); - if ((user != NULL) && (getuid() != user->pw_uid)) - LOG_WARN_STR("Failed to set RT priority, permission denied"); - else - LOG_ERROR_STR("Failed to set RT priority, capability CAP_SYS_NICE not set?"); - } break; - - case EINVAL: - case ESRCH: - default: - LOG_ERROR_STR("Failed to set RT priority: " << errno); - } - } -} - - -inline void lockInMemory() -{ - if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0) { - switch (errno) { - case ENOMEM: - case EPERM: - { - struct passwd *user = getpwnam("lofarsys"); - if ((user != NULL) && (getuid() != user->pw_uid)) - LOG_WARN_STR("Failed to lock application in memory, permission denied"); - else - LOG_ERROR_STR("Failed to lock application in memory, capability CAP_IPC_LOCK not set?"); - } break; - case EINVAL: - default: - LOG_ERROR_STR("Failed to lock application in memory: flags invalid"); - } - } -} - - -#endif diff --git a/RTCP/Storage/include/Storage/InputThread.h b/RTCP/Storage/include/Storage/InputThread.h deleted file mode 100644 index 587084b61e3dc124b2c11e02d6aaec5bb8be5ef8..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/InputThread.h +++ /dev/null @@ -1,63 +0,0 @@ -//# InputThread.h -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_RTCP_STORAGE_INPUT_THREAD_H -#define LOFAR_RTCP_STORAGE_INPUT_THREAD_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Interface/OutputTypes.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/StreamableData.h> -#include <Common/Thread/Queue.h> -#include <Common/Thread/Thread.h> - -#include <string> - - -namespace LOFAR { -namespace RTCP { - - -class InputThread -{ - public: - InputThread(const Parset &parset, OutputType index, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix); - - void start(); - void cancel(); - - private: - void mainLoop(); - - const std::string itsLogPrefix, itsInputDescriptor; - Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue; - SmartPtr<Thread> itsThread; - const double itsDeadline; -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Storage/include/Storage/MSWriter.h b/RTCP/Storage/include/Storage/MSWriter.h deleted file mode 100644 index 70f186d3115b7350a3959c88db7f1730b4f8dc00..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MSWriter.h +++ /dev/null @@ -1,62 +0,0 @@ -// MSMriter.h: Base class MSWriter -// -// Copyright (C) 2008 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id$ -// -////////////////////////////////////////////////////////////////////// - -#ifndef LOFAR_STORAGE_MSWRITER_H -#define LOFAR_STORAGE_MSWRITER_H - -#include <Interface/StreamableData.h> -#include <Interface/FinalMetaData.h> -#include <Common/ParameterSet.h> - -namespace LOFAR { -namespace RTCP { - - -class MSWriter -{ - public: - MSWriter(); - virtual ~MSWriter(); - - virtual void write(StreamableData *) = 0; - - virtual void augment(const FinalMetaData &finalMetaData); - - virtual size_t getDataSize(); - - ParameterSet configuration() const; - - unsigned percentageWritten() const; - - protected: - size_t itsNrBlocksWritten; - size_t itsNrExpectedBlocks; - ParameterSet itsConfiguration; -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Storage/include/Storage/MSWriterCorrelated.h b/RTCP/Storage/include/Storage/MSWriterCorrelated.h deleted file mode 100644 index ed72d67d1edd5d3c0e5eef60dc23654b4a14fe98..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MSWriterCorrelated.h +++ /dev/null @@ -1,65 +0,0 @@ -// MSMriterCorrelated.h: a writer for correlated visibilities -// -// Copyright (C) 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id: MSWriterImpl.h 11891 2008-10-14 13:43:51Z gels $ -// -////////////////////////////////////////////////////////////////////// - - -#ifndef LOFAR_STORAGE_MSWRITERCORRELATED_H -#define LOFAR_STORAGE_MSWRITERCORRELATED_H - -#include <Storage/MSWriterFile.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> - -#include <string> -#include <vector> - -namespace LOFAR { -namespace RTCP { - - -class MSWriterCorrelated : public MSWriterFile -{ - public: - MSWriterCorrelated(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian); - ~MSWriterCorrelated(); - - virtual void write(StreamableData *data); - - virtual void augment(const FinalMetaData &finalMetaData); - - protected: - const std::string itsLogPrefix; - const std::string itsMSname; - const Parset &itsParset; - - SmartPtr<FileStream> itsSequenceNumbersFile; - - private: - void makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian); -}; - - -} -} - -#endif diff --git a/RTCP/Storage/include/Storage/MSWriterDAL.h b/RTCP/Storage/include/Storage/MSWriterDAL.h deleted file mode 100644 index 7c65146e883c40a104d768c4a7b26dd713eea433..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MSWriterDAL.h +++ /dev/null @@ -1,64 +0,0 @@ -// MSMriterDAL.h: implementation of MSWriter using the DAL to write HDF5 -// -// Copyright (C) 2011 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id: MSWriterDAL.h 11891 2011-10-14 13:43:51Z gels $ -// -////////////////////////////////////////////////////////////////////// - - -#ifndef LOFAR_STORAGE_MSWRITERDAL_H -#define LOFAR_STORAGE_MSWRITERDAL_H - -//# Includes -#include <Common/LofarTypes.h> -#include <Common/ParameterSet.h> - -#include <Interface/Parset.h> -#include <Interface/StreamableData.h> -#include <Storage/MSWriter.h> -#include <Storage/MSWriterFile.h> - -#include <vector> - -namespace LOFAR -{ - - namespace RTCP - { - template<typename T, unsigned DIM> class MSWriterDAL : public MSWriterFile - { - public: - MSWriterDAL(const string &filename, const Parset &parset, unsigned fileno, bool isBigEndian); - ~MSWriterDAL(); - virtual void write(StreamableData *data); - private: - const Parset &itsParset; - const Transpose2 &itsTransposeLogic; - const StreamInfo &itsInfo; - const unsigned itsNrChannels; - const unsigned itsNrSamples; - unsigned itsNextSeqNr; - - const unsigned itsBlockSize; // the size of StreamableData::samples, in T - }; - } -} - -#endif diff --git a/RTCP/Storage/include/Storage/MSWriterFile.h b/RTCP/Storage/include/Storage/MSWriterFile.h deleted file mode 100644 index 8dab0423c5e435352561ce00d64da5cb667b821c..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MSWriterFile.h +++ /dev/null @@ -1,56 +0,0 @@ -// MSMriterNull.h: null implementation of MSWriter -// -// Copyright (C) 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id: MSWriterImpl.h 11891 2008-10-14 13:43:51Z gels $ -// -////////////////////////////////////////////////////////////////////// - - -#ifndef LOFAR_STORAGE_MSWRITERFILE_H -#define LOFAR_STORAGE_MSWRITERFILE_H - - -#include <Storage/MSWriter.h> -#include <Storage/FastFileStream.h> - - -namespace LOFAR { -namespace RTCP { - - -class MSWriterFile : public MSWriter -{ - public: - MSWriterFile(const string &msName); - ~MSWriterFile(); - - virtual void write(StreamableData *data); - - virtual size_t getDataSize(); - - protected: - FastFileStream itsFile; -}; - - -} -} - -#endif diff --git a/RTCP/Storage/include/Storage/MSWriterNull.h b/RTCP/Storage/include/Storage/MSWriterNull.h deleted file mode 100644 index efcfbed0bfe4d904d873531034923b7b91e06d4e..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MSWriterNull.h +++ /dev/null @@ -1,50 +0,0 @@ -// MSMriterNull.h: null implementation of MSWriter -// -// Copyright (C) 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id: MSWriterImpl.h 11891 2008-10-14 13:43:51Z gels $ -// -////////////////////////////////////////////////////////////////////// - - -#ifndef LOFAR_STORAGE_MSWRITERNULL_H -#define LOFAR_STORAGE_MSWRITERNULL_H - - -#include <Storage/MSWriter.h> - - -namespace LOFAR { -namespace RTCP { - - -class MSWriterNull : public MSWriter -{ - public: - MSWriterNull(); - ~MSWriterNull(); - - virtual void write(StreamableData *); -}; - - -} -} - -#endif diff --git a/RTCP/Storage/include/Storage/MeasurementSetFormat.h b/RTCP/Storage/include/Storage/MeasurementSetFormat.h deleted file mode 100644 index 6a8b8793fe27feadb1b5ee2e96c7e57fd023116f..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/MeasurementSetFormat.h +++ /dev/null @@ -1,82 +0,0 @@ -//# Format.h: defines the format of the RAW datafile -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: Storage_main.cc 12953 2009-03-26 17:10:42Z nieuwpoort $ - -#ifndef LOFAR_STORAGEFORMAT_H -#define LOFAR_STORAGEFORMAT_H - -#include <Common/Thread/Mutex.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> - -#include <casa/aips.h> -#include <casa/Utilities/DataType.h> -#include <casa/Arrays/IPosition.h> - -#include <Storage/Format.h> - -#include <string> - -//# Forward Declarations -namespace casa -{ - class TableDesc; - class MPosition; - template<class T> class Block; -} - - -namespace LOFAR { - //# Forward Declarations - class MSLofar; - -namespace RTCP { - -class MeasurementSetFormat : public Format -{ - public: - MeasurementSetFormat(const Parset &, uint32 alignment = 1); - virtual ~MeasurementSetFormat(); - - virtual void addSubband(const string MSname, unsigned subband, bool isBigEndian); - - // casacore/measurementset mutex - static Mutex sharedMutex; - - private: - const Parset &itsPS; - - const vector<string> stationNames; - const vector<double> antPos; - - const unsigned itsNrAnt; - uint32 itsNrTimes; - - double itsStartTime; - double itsTimeStep; - - - SmartPtr<MSLofar> itsMS; - - const uint32 itsAlignment; - - void createMSTables(const string &MSname, unsigned subband); - void createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian); - - void fillFeed(); - void fillAntenna(const casa::Block<casa::MPosition>& antMPos); - void fillField(unsigned subarray); - void fillPola(); - void fillDataDesc(); - void fillSpecWindow(unsigned subband); - void fillObs(unsigned subarray); - void fillHistory(); -}; - -} //RTCP -} //LOFAR -#endif // LOFAR_STORAGEFORMAT_H diff --git a/RTCP/Storage/include/Storage/OutputThread.h b/RTCP/Storage/include/Storage/OutputThread.h deleted file mode 100644 index 094e86c486b87ce69d7000fc2b77205ff4b9fa64..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/OutputThread.h +++ /dev/null @@ -1,84 +0,0 @@ -//# OutputThread.h -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: OutputThread.h 14194 2009-10-06 09:54:51Z romein $ - -#ifndef LOFAR_RTCP_STORAGE_OUTPUT_THREAD_H -#define LOFAR_RTCP_STORAGE_OUTPUT_THREAD_H - -//# Never #include <config.h> or #include <lofar_config.h> in a header file! - -#include <Interface/OutputTypes.h> -#include <Interface/SmartPtr.h> -#include <Interface/StreamableData.h> -#include <Interface/FinalMetaData.h> -#include <Storage/MSWriter.h> -#include <Stream/FileStream.h> -#include <Common/Thread/Queue.h> -#include <Common/Thread/Thread.h> - -#include <string> -#include <vector> - - -namespace LOFAR { -namespace RTCP { - - -class OutputThread -{ - public: - OutputThread(const Parset &, OutputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory = ""); - - void start(); - - // needed in createHeaders.cc - void createMS(); - void cleanUp(); - - void augment(const FinalMetaData &finalMetaData); - - private: - void checkForDroppedData(StreamableData *); - void doWork(); - void mainLoop(); - - const Parset &itsParset; - const OutputType itsOutputType; - const unsigned itsStreamNr; - const bool itsIsBigEndian; - const std::string itsLogPrefix; - const bool itsCheckFakeData; - const std::string itsTargetDirectory; - - Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue; - - unsigned itsBlocksWritten, itsBlocksDropped; - unsigned itsNrExpectedBlocks; - unsigned itsNextSequenceNumber; - SmartPtr<MSWriter> itsWriter; - SmartPtr<Thread> itsThread; -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Storage/include/Storage/SubbandWriter.h b/RTCP/Storage/include/Storage/SubbandWriter.h deleted file mode 100644 index a8179870b10b8bf2debcd1e8b3e8591a790d142a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/SubbandWriter.h +++ /dev/null @@ -1,62 +0,0 @@ -//# SubbandWriter.h: Write subband(s) in an AIPS++ Measurement Set -//# -//# Copyright (C) 2002-2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#ifndef LOFAR_STORAGE_SUBBANDWRITER_H -#define LOFAR_STORAGE_SUBBANDWRITER_H - -#include <Interface/OutputTypes.h> -#include <Interface/Parset.h> -#include <Interface/SmartPtr.h> -#include <Interface/StreamableData.h> -#include <Interface/FinalMetaData.h> -#include <Storage/InputThread.h> -#include <Storage/OutputThread.h> -#include <Common/Thread/Queue.h> - -#include <string> - - -namespace LOFAR { -namespace RTCP { - - -class SubbandWriter -{ - public: - SubbandWriter(const Parset &, OutputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix); - - void augment(const FinalMetaData &finalMetaData); - - private: - static const unsigned maxReceiveQueueSize = 30; - - Queue<SmartPtr<StreamableData> > itsFreeQueue, itsReceiveQueue; - - SmartPtr<InputThread> itsInputThread; - SmartPtr<OutputThread> itsOutputThread; -}; - - -} // namespace RTCP -} // namespace LOFAR - -#endif diff --git a/RTCP/Storage/include/Storage/TBB_StaticMapping.h b/RTCP/Storage/include/Storage/TBB_StaticMapping.h deleted file mode 100644 index b12a89f7014fdf45d8f36bdf9a343ed3eb31ec2a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/TBB_StaticMapping.h +++ /dev/null @@ -1,59 +0,0 @@ -//# TBB_StaticMapping.h: TBB static station-node mapping class -//# Can be used to parse LOFAR/MAC/Deployment/data/StaticMetaData/TBBConnections.dat -//# -//# Copyright (C) 2012 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: TBB_StaticMapping.h 2278 2012-03-12 20:01:54Z amesfoort $ - -#ifndef TBB_STATIC_MAPPING_H -#define TBB_STATIC_MAPPING_H 1 - -#include <string> -#include <vector> -#include <map> - -namespace LOFAR { - -class TBB_StaticMapping { -public: - TBB_StaticMapping(); - - // These two throw a LOFAR::IOException if filename could not be opened. - explicit TBB_StaticMapping(const std::string& filename); - void parseStaticMapping(const std::string& filename); - - std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator begin() const; - std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator end() const; - size_t size() const; - bool empty() const; - std::vector<std::string> getStationNames(const std::string& nodeName) const; - std::vector<std::string> getBoardNames(const std::string& nodeName) const; - -private: - // Max line len in file is now 52, but need a bit more if >1 stations per dest node. - static const size_t parseBufSize = 256; - - // Maps from node name to (station name, board name). - std::multimap<std::string, std::pair<std::string, std::string> > itsMapping; -}; - - -} // ns LOFAR - -#endif // TBB_CONNECTIONS_H diff --git a/RTCP/Storage/include/Storage/TBB_Writer.h b/RTCP/Storage/include/Storage/TBB_Writer.h deleted file mode 100644 index 6a1ed8d160b5682d0c5c009884069effcfe8d5d9..0000000000000000000000000000000000000000 --- a/RTCP/Storage/include/Storage/TBB_Writer.h +++ /dev/null @@ -1,358 +0,0 @@ -/* TBB_Writer.h - * - * Copyright (C) 2012 - * ASTRON (Netherlands Institute for Radio Astronomy) - * P.O.Box 2, 7990 AA Dwingeloo, The Netherlands - * - * This file is part of the LOFAR software suite. - * The LOFAR software suite 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 3 of the License, or - * (at your option) any later version. - * - * The LOFAR software suite 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. - * - * You should have received a copy of the GNU General Public License along - * with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. - * - * $Id: TBB_Writer.h 14188 2012-09-07 15:41:22Z amesfoort $ - */ - -#ifndef LOFAR_STORAGE_TBB_WRITER_H -#define LOFAR_STORAGE_TBB_WRITER_H 1 - -#include <stdint.h> - -#include <string> -#include <vector> -#include <map> - -#include <boost/crc.hpp> - -#include <Common/LofarTypes.h> -#ifndef USE_THREADS -#error The TBB writer needs USE_THREADS to operate. You can also define it by hand and link to the right LOFAR lib(s). -#endif -#include <Common/Thread/Thread.h> -#include <Common/Thread/Queue.h> -#include <Stream/FileStream.h> -#include <Interface/Parset.h> - -/* - * Package__Version.h is generated by cmake. You also need to link with Package__Version.cc.o, etc. - * Or hand-compile with -DTBB_WRITER_VERSION=\"x.y.z\". You'll receive the warning below twice and the - * HDF5 'SYSTEM_VERSION' field is set to "x.y.z". The program options --help/--version show it too. - */ -#ifndef TBB_WRITER_VERSION -#include <Storage/Package__Version.h> -#else -#warning TBB_Writer version not derived from the cmake build system, but hard-coded using the TBB_WRITER_VERSION symbol. -#endif - -#include <dal/lofar/TBB_File.h> - -namespace LOFAR { -namespace RTCP { - -/* - * Incoming UDP frame format. - * From 'TBB Design Description.doc', Doc.id: LOFAR-ASTRON-SDD-047, rev. 2.8 (2009-11-30), by Arie Doorduin, Wietse Poiesz - * available at: http://www.lofar.org/project/lofardoc/document.php - * Old rev. 2.0 (2006-10-3): http://lus.lofar.org/wiki/lib/exe/fetch.php?media=documents:sdd:lofar-astron-sdd-047_tbb_design_description.pdf - * - * There are two types of data that can be transferred: transient data and spectral (subband) data. Everything is in little-endian byte order. - */ -struct TBB_Header { - uint8_t stationID; // Data source station identifier - uint8_t rspID; // Data source RSP board identifier - uint8_t rcuID; // Data source RCU board identifier - uint8_t sampleFreq; // Sample frequency in MHz of the RCU boards - - uint32_t seqNr; // Used internally by TBB. Set to 0 by RSP (but written again before we receive it) - uint32_t time; // Time instance in seconds of the first sample in payload - // The time field is relative, but if used as UNIX time, uint32_t will wrap at 06:28:15 UTC on 07 Feb 2106 (int32_t wraps at 03:14:08 UTC on 19 Jan 2038). - - union { - // In transient mode indicates sample number of the first payload sample in current seconds interval. - uint32_t sampleNr; - - // In spectral mode indicates frequency band and slice (transform block of 1024 samples) of first payload sample. - uint32_t bandSliceNr; // bandNr[9:0] and sliceNr[31:10]. -#define TBB_BAND_NR_MASK ((1 << 10) - 1) -#define TBB_SLICE_NR_SHIFT 10 - }; - - uint16_t nOfSamplesPerFrame; // Total number of samples in the frame payload - uint16_t nOfFreqBands; // Number of frequency bands for each spectrum in spectral mode. Is set to 0 for transient mode. - - uint8_t bandSel[64]; // Each bit in the band selector field indicates whether the band with the bit index is present in the spectrum or not. - - uint16_t spare; // For future use. Set to 0. - uint16_t crc16; // CRC16 over frame header, with seqNr set to 0. -}; - -struct TBB_Payload { - /* - * In transient mode, a sample is a signed 12 bit integer. In spectral mode, it is a complex int16_t. - * In the TBBs, transient samples are packed (2 samples per 3 bytes) with the checksum all the way at the end. This changes on transfer. - * - * TBB stores a frame in 2040 bytes (actually, 2048 with preamble and gaps). It sends a frame at a time, so derive our max from it. - */ -#define MAX_TBB_DATA_SIZE (2040 - sizeof(TBB_Header) - sizeof(uint32_t)) // 1948: TBB frame size without header and payload crc32. - -#define MAX_TBB_TRANSIENT_NSAMPLES (MAX_TBB_DATA_SIZE / 3 * 2) // 1298 (.666: 1 byte padding when indeed 1298 samples would ever be stored in TBB) -#define MAX_TBB_SPECTRAL_NSAMPLES (MAX_TBB_DATA_SIZE / (2 * sizeof(int16_t))) // 487 - - // Unpacked, sign-extended (for transient) samples without padding, i.e. as received. - // Frames might not be full; the doc says the crc32 is always sent right after (no padding), (but this is false for spectral), - // so we include the crc32 in 'data', but note that the crc32 is a little endian uint32_t, hence ' + 2'. -#ifndef MAX -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif - int16_t data[MAX(MAX_TBB_TRANSIENT_NSAMPLES, 2 * MAX_TBB_SPECTRAL_NSAMPLES) + 2]; - - // For transient, TBB always sends sends 1024 samples per frame (from the spec and from the data). - // For spectral, it depends on the nr of subbands (max is equal to MAX_TBB_SPECTRAL_NSAMPLES). - // TBB sends as many samples for all subbands as it can fit; e.g. with 5 subbands, each frame has 485 samples. - -#define SPECTRAL_TRANSFORM_SIZE 1024 // RSP FFT block size - -#define DEFAULT_TBB_TRANSIENT_NSAMPLES 1024 // for spectral it depends on #subbands -}; - -struct TBB_Frame { - TBB_Header header; - TBB_Payload payload; -}; - -// Station meta data from other sources than the parset. -struct StationMetaData { - // If we receive data from a station not in the obs, we won't have all the meta data. - bool available; - - // from the antenna field files - std::vector<double> antPositions; - std::vector<double> normalVector; // [3] - std::vector<double> rotationMatrix; // [3, 3] row-major order - - // from the station calibration table files - //... -}; - -// From station ID to a vector of antenna position coordinate components. -typedef std::map<unsigned, StationMetaData> StationMetaDataMap; - -struct SubbandInfo { - std::vector<double> centralFreqs; // empty in transient mode - std::vector<unsigned> storageIndices; // idem -}; - - -class TBB_Dipole { - LOFAR::FileStream* itsRawOut; - dal::TBB_Dataset<short>* itsDataset; - std::vector<dal::Range> itsFlagOffsets; - - uint32_t itsSampleFreq; // Hz - unsigned itsNrSubbands; // spectral mode only, 0 in transient mode - - uint32_t itsTime; // seconds - union { - uint32_t itsExpSampleNr; // transient mode - uint32_t itsExpSliceNr; // spectral mode - }; - ssize_t itsDatasetLen; - - // Same truncated polynomial as standard crc32, but with initial_remainder=0, final_xor_value=0, reflected_input=false, reflected_remainder_output=false. - // The boost::crc_optimal<> declarations precompute lookup tables, so do not declare inside the checking routine. (Still, for every TBB_Dipole...) - boost::crc_optimal<32, 0x04C11DB7/*, 0, 0, false, false*/> itsCrc32gen; - - // do not use - TBB_Dipole& operator=(const TBB_Dipole& rhs); - -public: - TBB_Dipole(); - TBB_Dipole(const TBB_Dipole& rhs); // do not use; only for TBB_Station vector<TBB_Dipole>(N) constr - ~TBB_Dipole(); - - // Output threads - bool isInitialized() const; - - // All TBB_Dipole objects are default constructed in a vector, so have init(). - void init(const TBB_Header& header, const Parset& parset, const StationMetaData& stationMetaData, - const SubbandInfo& subbandInfo, const std::string& rawFilename, dal::TBB_Station& station, - Mutex& h5Mutex); - - void processTransientFrameData(const TBB_Frame& frame); - void processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo); - -private: - void appendFlags(size_t offset, size_t len); - // initTBB_DipoleDataset() must be called with the global h5Mutex held. - void initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset, - const StationMetaData& stationMetaData, const SubbandInfo& subbandInfo, - const std::string& rawFilename, dal::TBB_Station& station); - bool hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const; - bool crc32tbb(const TBB_Payload* payload, size_t nTrSamples); -}; - -class TBB_Station { - dal::TBB_File itsH5File; - Mutex& itsH5Mutex; - dal::TBB_Station itsStation; - std::vector<TBB_Dipole> itsDipoles; - const Parset& itsParset; - const StationMetaData& itsStationMetaData; - const SubbandInfo itsSubbandInfo; // for spectral mode - const std::string itsH5Filename; - - double getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const; - SubbandInfo getSubbandInfo(const Parset& parset) const; - std::string getRawFilename(unsigned rspID, unsigned rcuID) const; - - // do not use - TBB_Station(); - TBB_Station(const TBB_Station& station); - TBB_Station& operator=(const TBB_Station& rhs); - -public: - // This constructor must be called with the h5Mutex already held. - // The caller must still unlock after the return, the constructor does not use the passed ref to unlock. - TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset, - const StationMetaData& stationMetaData, const std::string& h5Filename); - ~TBB_Station(); - - // Output threads - void processPayload(const TBB_Frame& frame); - -private: - std::string utcTimeStr(double time) const; - double toMJD(double time) const; - - void initCommonLofarAttributes(); - void initTBB_RootAttributesAndGroups(const std::string& stName); - void initStationGroup(dal::TBB_Station& st, const std::string& stName, - const std::string& stFullName, const std::vector<double>& stPosition); - void initTriggerGroup(dal::TBB_Trigger& tg); -}; - -class TBB_Writer; - -class TBB_StreamWriter { - /* - * - The input thread receives incoming TBB frame headers, checks the header CRC, and puts them in a frameQueue. - * - The output thread checks the data CRC, creates an HDF5 file per station, creates groups and datasets, - * writes the data, and returns empty frame pointers through the emptyQueue back to the input thread. - * - * On timeouts for all input threads, the main thread sends C++ thread cancellations. Input appends a NULL msg to notify output. - * This isolates (soft) real-time input from HDF5/disk latencies, and the HDF5 C library from C++ cancellation exceptions. - */ - - /* - * Queue size: With PRINT_QUEUE_LEN defined, the max used buffer size observed was 343. - * This was for 1 udp stream (instead of 6 or 12) from 1 station. Having 1024 buffers per thread seems reasonable. - */ - static const unsigned nrFrameBuffers = 1024; - - TBB_Frame* itsFrameBuffers; - - // Queue pointers point into itsFrameBuffers. - Queue<TBB_Frame*> itsReceiveQueue; // input -> output thread - Queue<TBB_Frame*> itsFreeQueue; // output -> input thread - - TBB_Writer& itsWriter; - const std::string& itsInputStreamName; - const unsigned itsExpFrameSize; - const std::string& itsLogPrefix; - int& itsInExitStatus; - int& itsOutExitStatus; - - // See TBB_Writer_main.cc::doTBB_Run() why this is used racily for now. - // Inflate struct timeval to 64 bytes (typical LEVEL1_DCACHE_LINESIZE). Unnecessary... - struct timeval itsTimeoutStamp __attribute__((aligned(64))); - - boost::crc_optimal<16, 0x8005/*, 0, 0, false, false*/> itsCrc16gen; - -#ifdef DUMP_RAW_STATION_FRAMES - LOFAR::FileStream* itsRawStationData; -#endif - - // Thread objects must be last in TBB_StreamWriter for safe destruction. - Thread* itsOutputThread; - Thread* itsInputThread; - - // do not use - TBB_StreamWriter(); - TBB_StreamWriter(const TBB_StreamWriter& rhs); - TBB_StreamWriter& operator=(const TBB_StreamWriter& rhs); - -public: - TBB_StreamWriter(TBB_Writer& writer, const std::string& inputStreamName, - size_t expNTrSamples, const std::string& logPrefix, - int& inExitStatus, int& outExitStatus); - ~TBB_StreamWriter(); - - // Main thread - time_t getTimeoutStampSec() const; - -private: - // Input threads - void frameHeaderLittleToHost(TBB_Header& fh) const; - void correctSampleNr(TBB_Header& header) const; - bool crc16tbb(const TBB_Header* header); - void processHeader(TBB_Header& header, size_t recvPayloadSize); - void mainInputLoop(); - - // Output threads - void mainOutputLoop(); -}; - -class TBB_Writer { - // Usually, we handle only 1 station, but users have request to support multiple concurrently. - // The LOFAR system could better use different input streams (udp ports), but we/they are busy. - // map from stationID to a TBB_Station* - std::map<unsigned, TBB_Station*> itsStations; - Mutex itsStationsMutex; - - // Global H5 mutex. All HDF5 operations go under a single mutex, incl file creation: - // don't depend on the HDF5 lib being compiled with --thread-safe. - Mutex itsH5Mutex; - - const Parset& itsParset; - const StationMetaDataMap& itsStationMetaDataMap; - StationMetaData itsUnknownStationMetaData; // referred to for data from unknown stations (fallback) - const std::string& itsOutDir; - - unsigned itsRunNr; - - std::vector<TBB_StreamWriter*> itsStreamWriters; - // NOTE: do not add vars here; leave itsStreamWriters last for safe thread destruction! - - // do not use - TBB_Writer(); - TBB_Writer(const TBB_Writer& writer); - TBB_Writer& operator=(const TBB_Writer& rhs); - -public: - TBB_Writer(const std::vector<std::string>& inputStreamNames, const Parset& parset, - const StationMetaDataMap& stationMetaDataMap, const std::string& outDir, - const std::string& logPrefix, vector<int>& thrExitStatus); - ~TBB_Writer(); - - // Output threads - TBB_Station* getStation(const TBB_Header& header); - // Must be called holding itsStationsMutex. - std::string createNewTBB_H5Filename(const TBB_Header& header, const std::string& stationName); - - // Main thread - time_t getTimeoutStampSec(unsigned streamWriterNr) const; -}; - -} // namespace RTCP -} // namespace LOFAR - -#endif // LOFAR_STORAGE_TBB_WRITER_H - diff --git a/RTCP/Storage/package.dox b/RTCP/Storage/package.dox deleted file mode 100644 index 0b0609dd243ef28265a5cc790c3ab8ff5d171a0a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/package.dox +++ /dev/null @@ -1,2 +0,0 @@ -// \ingroup RTCP -// \defgroup Storage Storage Description diff --git a/RTCP/Storage/scripts/ReadObservation.m b/RTCP/Storage/scripts/ReadObservation.m deleted file mode 100755 index fdd563e145c21308fd3f4eb7ac8c8651a000ffc4..0000000000000000000000000000000000000000 --- a/RTCP/Storage/scripts/ReadObservation.m +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/octave --silent -# this is a script that is used for making a simple plot -# of the auto and crosscorrelations -# it is not userfriendly, it is only meant to be used on the CDR - - -if (size(argv)(1) > 0) - argv - InputFile = argv(1) -else - InputFile = "vis.dat"; -endif - -NoSubbands = 7; -BaseLines = 3; # including autocorrelations -TimeSteps = 60; -Polarisations = 4; -ChannelsPerSubband = 1; # is always 1 for now - -# the 2 is because of the 2 floats per complex<float> -datashape = [2, Polarisations, ChannelsPerSubband, BaseLines, TimeSteps, NoSubbands]; -NoVis = TimeSteps * NoSubbands * BaseLines * ChannelsPerSubband * \ - Polarisations; - -printf("Reading file %s\n", InputFile); -fid = fopen(InputFile, "rb"); -rawdata = fread(fid, NoVis * 2, "float"); -printf("No Visibilities = %d\n", NoVis) - -data = reshape (rawdata, datashape); - -c = 1; # there is only 1 channel -if (0==1) - for t = 1:TimeSteps - for s = 1:NoSubbands - for b = 1:BaseLines - printf("TimeStep %6d - Subband %2d - BaseLine %1d ", t, s, b); - printf("POLS (XX, XY, YX, YY): "); - for p = 1:Polarisations - printf("(%f, %f)", data(1, p, c, b, t, s), data(2, p, c, b, t, s)); - endfor - printf("\n") - endfor - endfor - endfor -endif - -subband=1; -printf("Plotting subband %d\n", subband); - -for t = 1:TimeSteps - auto1 = data(1, 1, 1, 1, t, subband); - auto2 = data(1, 1, 1, 3, t, subband); - crossreal = data(1, 1, 1, 2, t, subband); - crossimag = data(2, 1, 1, 2, t, subband); - crosspower = sqrt(crossreal.^2 + crossimag.^2); - plotdatalog(t,:) = 10* log10([auto1, auto2, abs(crossreal)]); - plotdatalin(t,:) = [auto1, auto2, crossreal, crossimag]; -endfor -# plotdata - -#subplot(2,1,1) -#plot(plotdatalin, [';autocor(1x);'; ';autocor(2x);'; ';real(cross(1x,2x));'; ';imag(cross(1x,2x));']) -#title('linear auto and cross correlation versus time') -#xlabel('time (s)') -#ylabel('power') -#subplot(2,1,2) -plot(plotdatalog, [';autocor(1);'; ';autocor(2);'; ';real(cross(1,2));']) -title('auto and cross correlation versus time') -xlabel('time (s)') -ylabel('power (dB)') -pause diff --git a/RTCP/Storage/scripts/readFile.sh b/RTCP/Storage/scripts/readFile.sh deleted file mode 100755 index 478c1289dee41942cb453df5c4735e5f86a51f57..0000000000000000000000000000000000000000 --- a/RTCP/Storage/scripts/readFile.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# This script takes the output file of the TFlopCorrelator -# splits it and copies the file containing the raw data to -# the current directory -# it is only meant to be used for the CDR - -MSNAME=ObservationA.MS -NEWFILE=vis.dat.`date +%F_%k:%M` - -export PATH=`pwd`:$PATH -. /lofarbuild/aips++/dev/aipsinit.sh -echo "mssplit('$MSNAME', 1); exit" | glish -l ../libexec/glish/mssplit.g -cp ${MSNAME}_p1/vis.dat $NEWFILE -echo -echo "created $NEWFILE" - diff --git a/RTCP/Storage/src/CMakeLists.txt b/RTCP/Storage/src/CMakeLists.txt deleted file mode 100644 index 235c84dbf14e14da73e1e7f4f8d52d3137670033..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -# $Id$ - -include(LofarPackageVersion) - -lofar_add_library(storage - Package__Version.cc - ExitOnClosedStdin.cc - FastFileStream.cc - InputThread.cc - OutputThread.cc - SubbandWriter.cc - MSWriter.cc - MSWriterCorrelated.cc - MSWriterDAL.cc - MSWriterNull.cc - MSWriterFile.cc - Format.cc - MeasurementSetFormat.cc - TBB_StaticMapping.cc -# TBB_Writer.cc -) - -#install(PROGRAMS -# gnuplotMS.sh -# DESTINATION bin) - -install(FILES - Storage_main.log_prop - DESTINATION etc) - -lofar_add_bin_program(Storage_main Storage_main.cc) -#lofar_add_bin_program(createHeaders createHeaders.cc) -#lofar_add_bin_program(plotMS plotMS.cc) -lofar_add_bin_program(versionstorage versionstorage.cc) -#lofar_add_bin_program(TBB_Writer_main TBB_Writer_main.cc) - diff --git a/RTCP/Storage/src/ExitOnClosedStdin.cc b/RTCP/Storage/src/ExitOnClosedStdin.cc deleted file mode 100644 index 6c29df95638f73d3c0bdb54db95150d5bc711cc4..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/ExitOnClosedStdin.cc +++ /dev/null @@ -1,63 +0,0 @@ -#include <lofar_config.h> -#include <Storage/ExitOnClosedStdin.h> - -#include <Interface/Exceptions.h> -#include <Common/SystemCallException.h> -#include <unistd.h> - -namespace LOFAR { -namespace RTCP { - - -ExitOnClosedStdin::ExitOnClosedStdin() -: - itsThread(this, &ExitOnClosedStdin::mainLoop, "[obs unknown] [stdinWatcherThread] ", 65535) -{ -} - - -ExitOnClosedStdin::~ExitOnClosedStdin() -{ - itsThread.cancel(); -} - - -void ExitOnClosedStdin::mainLoop() -{ - // an empty read on stdin means the SSH connection closed, which indicates that we should abort - - while (true) { - fd_set fds; - - FD_ZERO(&fds); - FD_SET(0, &fds); - - struct timeval timeval; - - timeval.tv_sec = 1; - timeval.tv_usec = 0; - - switch (select(1, &fds, 0, 0, &timeval)) { - case -1 : THROW_SYSCALL("select"); - case 0 : continue; - } - - char buf[1]; - ssize_t numbytes; - numbytes = ::read(0, buf, sizeof buf); - - if (numbytes == 0) { - LOG_FATAL("Lost stdin -- aborting"); // this most likely won't arrive, since stdout/stderr are probably closed as well - exit(1); - } else { - // slow down reading data (IONProc will be spamming us with /dev/zero) - if (usleep(999999) < 0) - THROW_SYSCALL("usleep"); - } - } -} - -} -} - - diff --git a/RTCP/Storage/src/FastFileStream.cc b/RTCP/Storage/src/FastFileStream.cc deleted file mode 100644 index 36ef93a798833afec691c97227cb6a5c21c5618f..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/FastFileStream.cc +++ /dev/null @@ -1,222 +0,0 @@ - -//# FastFileStream.cc: a file writer using O_DIRECT -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Storage/FastFileStream.h> -#include <Interface/SmartPtr.h> -#include <Interface/Exceptions.h> -#include <Common/LofarLogger.h> -#include <Common/SystemCallException.h> - -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> -#include <errno.h> -#include <cstring> - -namespace LOFAR { -namespace RTCP { - - -FastFileStream::FastFileStream(const std::string &name, int flags, int mode) -: - FileStream(name.c_str(), flags | O_DIRECT | O_SYNC, mode), - bufsize(0), - buffer(0), - remainder(0) -{ - // alignment must be a power of two for easy calculations - ASSERT( (alignment & (alignment-1)) == 0 ); - - // alignment must be a multiple of sizeof(void*) for posix_memalign to work - ASSERT( alignment % sizeof(void*) == 0 ); -} - -FastFileStream::~FastFileStream() -{ - // truncate the file to the exact right length - try { - errno = 0; - - off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end - size_t origremainder = remainder; - - // lseek can return -1 as a valid file position, so check errno as well - if (curlen == (off_t)-1 && errno) - THROW_SYSCALL("lseek"); - - writeRemainder(); - - if (ftruncate(fd, curlen + origremainder) < 0) - THROW_SYSCALL("ftruncate"); - } catch (Exception &ex) { - LOG_ERROR_STR("Exception in destructor: " << ex); - } - -} - -size_t FastFileStream::writeRemainder() -{ - if (remainder) { - // pad with zeroes - ensureBuffer(alignment); - memset(buffer.get() + remainder, 0, alignment - remainder); - forceWrite(buffer, alignment); - - remainder = 0; - - return alignment; - } - - return 0; -} - -void FastFileStream::ensureBuffer(size_t newsize) -{ - if (newsize <= bufsize) - return; - - void *buf; - - if (posix_memalign(&buf, alignment, newsize) != 0) - THROW( StorageException, "Not enough memory to allocate " << newsize << " bytes for fast writing"); - - if (remainder) { - ASSERT( buffer.get() ); - ASSERT( newsize >= remainder ); - - memcpy(buf, buffer.get(), remainder); - } - - buffer = static_cast<char*>(buf); // SmartPtr will take care of deleting the old buffer - bufsize = newsize; -} - -void FastFileStream::forceWrite(const void *ptr, size_t size) -{ - // emulate Stream::write using FileStream::write to make sure all bytes are written - while (size > 0) { - ASSERT( (size & (alignment-1)) == 0 ); - ASSERT( (reinterpret_cast<size_t>(ptr) & (alignment-1)) == 0 ); - - size_t bytes = FileStream::tryWrite(ptr, size); - - size -= bytes; - ptr = static_cast<const char *>(ptr) + bytes; - } -} - -size_t FastFileStream::tryWrite(const void *ptr, size_t size) -{ - const size_t orig_size = size; - - if (!remainder && (reinterpret_cast<size_t>(ptr) & (alignment-1)) == 0) { - // pointer is aligned and we can write from it immediately - - ensureBuffer(alignment); // although remainder is enough, we want to avoid reallocating every time remainder grows slightly - - // save the remainder - remainder = size & (alignment-1); - memcpy(buffer.get(), static_cast<const char*>(ptr) + size - remainder, remainder); - - // write bulk - forceWrite(ptr, size - remainder); - } else { - // not everything is aligned or there is a remainder -- use the buffer - - // move data to our buffer, and recompute new sizes - ensureBuffer(alignment + size); // although remainder + size is enough, we want to avoid reallocating every time remainder grows slightly - memcpy(buffer.get() + remainder, ptr, size); - - size += remainder; - remainder = size & (alignment-1); - - // write bulk - forceWrite(buffer.get(), size - remainder); - - // move remainder to the front - memmove(buffer.get(), buffer.get() + size - remainder, remainder); - } - - // lie about how many bytes we've written, since we might be caching - // a remainder which we can't write to disk. - return orig_size; -} - - -void FastFileStream::skip(size_t bytes) -{ - // make sure that the file pointer remains - // at a full block boundary, so catch any - // remainders. - - if (bytes == 0) - return; - - // get rid of the old remainder first - if (bytes + remainder >= alignment) { - bytes -= (writeRemainder() - remainder); - - if (bytes >= alignment ) { - // skip whole number of blocks - size_t newremainder = bytes & (alignment - 1); - size_t fullblocks = bytes - newremainder; - - FileStream::skip(fullblocks); - - bytes = newremainder; - } - } - - if (bytes > 0) { - ASSERT( bytes < alignment ); - - char zeros[bytes]; - - tryWrite(&zeros, sizeof zeros); - } -} - - -size_t FastFileStream::size() -{ - // size we might have skip()ed and have some remaining data to write, - // we cannot rely on FileStream::size(), which would report the current - // file size, without skips or remainders in our buffer. - - errno = 0; - - off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end - - // lseek can return -1 as a valid file position, so check errno as well - if (curlen == (off_t)-1 && errno) - THROW_SYSCALL("lseek"); - - return curlen + remainder; -} - - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/Format.cc b/RTCP/Storage/src/Format.cc deleted file mode 100644 index 6f43da01d5c814265ed5c0ab0249cadde3a21623..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/Format.cc +++ /dev/null @@ -1,19 +0,0 @@ -//# Format.cc: Virtual baseclass for MeasurementSetFormat -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: $ - -#include <Storage/Format.h> - -namespace LOFAR { -namespace RTCP { - -Format::~Format() -{ -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Storage/src/InputThread.cc b/RTCP/Storage/src/InputThread.cc deleted file mode 100644 index 2a0cbd0c4c0e4c9469a4b90dc887ad5cc2c0e662..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/InputThread.cc +++ /dev/null @@ -1,99 +0,0 @@ -//# InputThread.cc: -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/Timer.h> -#include <Interface/Stream.h> -#include <Storage/InputThread.h> -#include <Stream/NullStream.h> -#include <Stream/SocketStream.h> - - -namespace LOFAR { -namespace RTCP { - - -InputThread::InputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix) -: - itsLogPrefix(logPrefix + "[InputThread] "), - itsInputDescriptor(getStreamDescriptorBetweenIONandStorage(parset, outputType, streamNr)), - itsFreeQueue(freeQueue), - itsReceiveQueue(receiveQueue), - itsDeadline(parset.realTime() ? parset.stopTime() : 0) -{ -} - - -void InputThread::start() -{ - itsThread = new Thread(this, &InputThread::mainLoop, itsLogPrefix); -} - - -void InputThread::cancel() -{ - if (itsThread) - itsThread->cancel(); -} - - -void InputThread::mainLoop() -{ - try { - LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << "..." ); - SmartPtr<Stream> streamFromION(createStream(itsInputDescriptor, true, itsDeadline)); - LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << ": done" ); - - // limit reads from NullStream to 10 blocks; otherwise unlimited - bool nullInput = dynamic_cast<NullStream *>(streamFromION.get()) != 0; - - for (unsigned count = 0; !nullInput || count < 10; count ++) { - SmartPtr<StreamableData> data(itsFreeQueue.remove()); - - data->read(streamFromION, true); - - if (nullInput) - data->setSequenceNumber(count); - - LOG_DEBUG_STR(itsLogPrefix << "Read block with seqno = " << data->sequenceNumber()); - - itsReceiveQueue.append(data.release()); - } - } catch (SocketStream::TimeOutException &) { - LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " timed out"); - } catch (Stream::EndOfStreamException &) { - LOG_INFO_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " closed"); - } catch (SystemCallException &ex) { - LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " failed: " << ex.text()); - } catch (...) { - itsReceiveQueue.append(0); // no more data - throw; - } - - itsReceiveQueue.append(0); // no more data -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Storage/src/MSWriter.cc b/RTCP/Storage/src/MSWriter.cc deleted file mode 100644 index 310b385b02d0f69d8a66a8fc69b9a0d963e845e2..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MSWriter.cc +++ /dev/null @@ -1,87 +0,0 @@ -// MSMriter.cc: Base classs for MS writer -// -// Copyright (C) 2008 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -// -// This program 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 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// $Id$ -// -////////////////////////////////////////////////////////////////////// - -#include <lofar_config.h> - -#include <Storage/MSWriter.h> -#include <algorithm> - - -namespace LOFAR { -namespace RTCP { - -MSWriter::MSWriter() -: - itsNrBlocksWritten(0), - itsNrExpectedBlocks(0) -{ -} - - -MSWriter::~MSWriter() -{ -} - -void MSWriter::augment(const FinalMetaData &finalMetaData) -{ - (void)finalMetaData; -} - - -size_t MSWriter::getDataSize() -{ - return 0; -} - -ParameterSet MSWriter::configuration() const -{ - return itsConfiguration; -} - - -/* Returns a percentage based on a current and a target value, - * with the following rounding: - * - * 0 -> current == 0 - * 1..99 -> 0 < current < target - * 100 -> current == target - */ - -unsigned MSWriter::percentageWritten() const -{ - size_t current = itsNrBlocksWritten; - size_t target = itsNrExpectedBlocks; - - if (current == target || target == 0) - return 100; - - if (current == 0) - return 0; - - return std::min(std::max(100 * current / target, static_cast<size_t>(1)), static_cast<size_t>(99)); -} - - -} -} diff --git a/RTCP/Storage/src/MSWriterCorrelated.cc b/RTCP/Storage/src/MSWriterCorrelated.cc deleted file mode 100644 index aef987a61186d7a59d918c3b47013c4b5b7bdcaf..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MSWriterCorrelated.cc +++ /dev/null @@ -1,190 +0,0 @@ -//# MSWriterCorrelated: a writer for correlated visibilities -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> -#include <Interface/CorrelatedData.h> -#include <MSLofar/FailedTileInfo.h> -#include <Common/SystemUtil.h> -#include <Storage/MSWriterCorrelated.h> -#include <Storage/MeasurementSetFormat.h> -#include <tables/Tables/Table.h> -#include <casa/Quanta/MVTime.h> -#include <vector> -#include <string> -#include <fcntl.h> -#include <sys/types.h> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> -using boost::format; -using namespace casa; - - -namespace LOFAR { -namespace RTCP { - -MSWriterCorrelated::MSWriterCorrelated (const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian) -: - MSWriterFile( - (makeMeasurementSet(logPrefix, msName, parset, subbandIndex, isBigEndian), - str(format("%s/table.f0data") % msName))), - itsLogPrefix(logPrefix), - itsMSname(msName), - itsParset(parset) -{ - if (itsParset.getLofarStManVersion() > 1) { - string seqfilename = str(format("%s/table.f0seqnr") % msName); - - try { - itsSequenceNumbersFile = new FileStream(seqfilename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - } catch (...) { - LOG_WARN_STR(itsLogPrefix << "Could not open sequence numbers file " << seqfilename); - } - } - - // derive baseline names - std::vector<std::string> stationNames = parset.mergedStationNames(); - std::vector<std::string> baselineNames(parset.nrBaselines()); - unsigned nrStations = stationNames.size(); - - // order of baselines as station indices: - // 0-0, 1-0, 1-1, 2-0, 2-1, 2-2 ... (see RTCP/CNProc/Correlator.cc) - - unsigned bl = 0; - - for(unsigned s1 = 0; s1 < nrStations; s1++) - for(unsigned s2 = 0; s2 <= s1; s2++) - baselineNames[bl++] = str(format("%s_%s") % stationNames[s1] % stationNames[s2]); - - const vector<unsigned> subbands = itsParset.subbandList(); - const vector<unsigned> SAPs = itsParset.subbandToSAPmapping(); - const vector<double> frequencies = itsParset.subbandToFrequencyMapping(); - - itsConfiguration.add("fileFormat", "AIPS++/CASA"); - itsConfiguration.add("filename", LOFAR::basename(msName)); - itsConfiguration.add("size", "0"); - //itsConfiguration.add("location", parset.getHostName(CORRELATED_DATA, subbandIndex) + ":" + LOFAR::dirname(msName)); - itsConfiguration.add("location", parset.getHostName(CORRELATED_DATA, subbandIndex) + ":" + parset.getDirectoryName(CORRELATED_DATA, subbandIndex)); - - itsConfiguration.add("percentageWritten", "0"); - itsConfiguration.add("startTime", parset.getString("Observation.startTime")); - itsConfiguration.add("duration", "0"); - itsConfiguration.add("integrationInterval", str(format("%f") % parset.IONintegrationTime())); - itsConfiguration.add("centralFrequency", str(format("%f") % frequencies[subbandIndex])); - itsConfiguration.add("channelWidth", str(format("%f") % parset.channelWidth())); - itsConfiguration.add("channelsPerSubband", str(format("%u") % parset.nrChannelsPerSubband())); - itsConfiguration.add("stationSubband", str(format("%u") % subbands[subbandIndex])); - itsConfiguration.add("subband", str(format("%u") % subbandIndex)); - itsConfiguration.add("SAP", str(format("%u") % SAPs[subbandIndex])); -} - - -MSWriterCorrelated::~MSWriterCorrelated() -{ -} - - -void MSWriterCorrelated::makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian) -{ -#if defined HAVE_AIPSPP - MeasurementSetFormat myFormat(parset, 512); - - myFormat.addSubband(msName, subbandIndex, isBigEndian); - - LOG_INFO_STR(logPrefix << "MeasurementSet created"); -#endif // defined HAVE_AIPSPP -} - - -void MSWriterCorrelated::write(StreamableData *data) -{ - CorrelatedData *cdata = dynamic_cast<CorrelatedData*>(data); - - ASSERT( data ); - ASSERT( cdata ); - - // Write data - MSWriterFile::write(data); - - // Write sequence number - if (itsSequenceNumbersFile != 0) { - // quick fix: always write to maintain integrity - unsigned seqnr = data->sequenceNumber(true); - - itsSequenceNumbersFile->write(&seqnr, sizeof seqnr); - } - - itsNrBlocksWritten++; - - itsConfiguration.replace("size", str(format("%u") % getDataSize())); - itsConfiguration.replace("duration", str(format("%f") % ((data->sequenceNumber() + 1) * itsParset.IONintegrationTime()))); - itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten())); -} - - -static MVEpoch datetime2epoch(const string &datetime) -{ - Quantity q; - - if (!MVTime::read(q, datetime)) - return MVEpoch(0); - - return MVEpoch(q); -} - - -void MSWriterCorrelated::augment(const FinalMetaData &finalMetaData) -{ - ScopedLock sl(MeasurementSetFormat::sharedMutex); - - map<string, FailedTileInfo::VectorFailed> brokenBefore, brokenDuring; - - // fill set of broken hardware at beginning of observation - for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) { - const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i]; - - brokenBefore[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr)); - } - - // fill set of hardware that broke during the observation - for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) { - const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i]; - - brokenDuring[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr)); - } - - LOG_INFO_STR(itsLogPrefix << "Reopening MeasurementSet"); - - Table ms(itsMSname, Table::Update); - - vector<FailedTileInfo::VectorFailed> before(FailedTileInfo::antennaConvert(ms, brokenBefore)); - vector<FailedTileInfo::VectorFailed> during(FailedTileInfo::antennaConvert(ms, brokenDuring)); - - LOG_INFO_STR(itsLogPrefix << "Writing broken hardware information to MeasurementSet"); - - FailedTileInfo::writeFailed(ms, before, during); -} - - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/MSWriterDAL.cc b/RTCP/Storage/src/MSWriterDAL.cc deleted file mode 100644 index 75c01dbac798f3bc51bb3e30724f754b3fe7fdc3..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MSWriterDAL.cc +++ /dev/null @@ -1,614 +0,0 @@ -//# MSWriterDAL: an implementation of MSWriter using the DAL to write HDF5 -//# -//# Copyright (C) 2011 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Common/LofarLogger.h> - -#include <Storage/MSWriter.h> -#include <Storage/MSWriterDAL.h> -#include <Storage/Package__Version.h> - -#include <dal/lofar/BF_File.h> -#include <dal/dal_version.h> - -using namespace dal; -using namespace std; - -#include <Common/Thread/Mutex.h> -#include <Interface/StreamableData.h> -#include <iostream> -#include <sstream> -#include <ctime> -#include <cmath> -#include <algorithm> -#include <numeric> - -#include <boost/format.hpp> -using boost::format; - -#ifdef basename // some glibc have this as a macro -#undef basename -#endif -#include <Common/SystemUtil.h> -#include <Common/StreamUtil.h> - -static string timeStr( double time ) -{ - time_t timeSec = static_cast<time_t>(floor(time)); - unsigned long timeNSec = static_cast<unsigned long>(round( (time-floor(time))*1e9 )); - - char utcstr[50]; - if (strftime( utcstr, sizeof utcstr, "%Y-%m-%dT%H:%M:%S", gmtime(&timeSec) ) == 0) - return ""; - - return str(format("%s.%09lu") % utcstr % timeNSec); -} - -static string toUTC( double time ) -{ - return timeStr(time) + "Z"; -} - -static double toMJD( double time ) -{ - // 40587 modify Julian day number = 00:00:00 January 1, 1970, GMT - return 40587.0 + time / (24*60*60); -} - -static string stripextension( const string filename ) -{ - return filename.substr(0,filename.rfind('.')); -} - -static string forceextension( const string filename, const string extension ) -{ - return stripextension(filename) + extension; -} - -namespace LOFAR -{ - - namespace RTCP - { - // Prevent concurrent access to HDF5, which may not be compiled thread-safe. The Thread-safe version - // uses global locks too anyway. - static Mutex HDF5Mutex; - - template <typename T,unsigned DIM> MSWriterDAL<T,DIM>::MSWriterDAL (const string &filename, const Parset &parset, unsigned fileno, bool isBigEndian) - : - MSWriterFile(forceextension(string(filename),".raw")), - itsParset(parset), - itsTransposeLogic(parset.transposeLogic()), - itsInfo(itsTransposeLogic.streamInfo[fileno]), - itsNrChannels(itsInfo.nrChannels * itsInfo.subbands.size()), - itsNrSamples(itsInfo.nrSamples), - itsNextSeqNr(0), - itsBlockSize(itsNrSamples * itsNrChannels) - { - itsNrExpectedBlocks = itsParset.nrBeamFormedBlocks(); - - string h5filename = forceextension(string(filename),".h5"); - string rawfilename = forceextension(string(filename),".raw"); - - ScopedLock sl(HDF5Mutex); - -#if 0 - // install our own error handler - H5Eset_auto_stack(H5E_DEFAULT, my_hdf5_error_handler, NULL); -#endif - - unsigned sapNr, beamNr, stokesNr, partNr; - - itsTransposeLogic.decompose( fileno, sapNr, beamNr, stokesNr, partNr ); - - unsigned nrBlocks = parset.nrBeamFormedBlocks(); - unsigned nrSubbands = itsInfo.subbands.size(); - const vector<unsigned> &subbandIndices = itsInfo.subbands; - const vector<unsigned> allSubbands = parset.subbandList(); - - vector<unsigned> subbands(nrSubbands, 0); // actual subbands written in this file - - for (unsigned sb = 0; sb < nrSubbands; sb++) - subbands[sb] = allSubbands[subbandIndices[sb]]; - - vector<string> stokesVars; - vector<string> stokesVars_LTA; - - - switch (itsInfo.stokesType) { - case STOKES_I: - stokesVars.push_back("I"); - stokesVars_LTA = stokesVars; - break; - - case STOKES_IQUV: - stokesVars.push_back("I"); - stokesVars.push_back("Q"); - stokesVars.push_back("U"); - stokesVars.push_back("V"); - stokesVars_LTA = stokesVars; - break; - - case STOKES_XXYY: - stokesVars.push_back("Xr"); - stokesVars.push_back("Xi"); - stokesVars.push_back("Yr"); - stokesVars.push_back("Yi"); - stokesVars_LTA.push_back("Xre"); - stokesVars_LTA.push_back("Xim"); - stokesVars_LTA.push_back("Yre"); - stokesVars_LTA.push_back("Yim"); - break; - - case INVALID_STOKES: - LOG_ERROR("MSWriterDAL asked to write INVALID_STOKES"); - return; - } - - LOG_DEBUG_STR("MSWriterDAL: opening " << filename); - - // create the top structure - BF_File file(h5filename, BF_File::CREATE); - - // Common Attributes - file.groupType().value = "Root"; - //file.fileName() is set by DAL - //file.fileDate() is set by DAL - - //file.fileType() is set by DAL - //file.telescope() is set by DAL - - file.projectID() .value = parset.getString("Observation.Campaign.name", ""); - file.projectTitle() .value = parset.getString("Observation.Scheduler.taskName", ""); - file.projectPI() .value = parset.getString("Observation.Campaign.PI", ""); - ostringstream oss; - // Use ';' instead of ',' to pretty print, because ',' already occurs in names (e.g. Smith, J.). - writeVector(oss, parset.getStringVector("Observation.Campaign.CO_I", ""), "; ", "", ""); - file.projectCOI() .value = oss.str(); - file.projectContact().value = parset.getString("Observation.Campaign.contact", ""); - - file.observationID() .value = str(format("%u") % parset.observationID()); - - file.observationStartUTC().value = toUTC(parset.startTime()); - file.observationStartMJD().value = toMJD(parset.startTime()); - - // The stop time can be a bit further than the one actually specified, because we process in blocks. - double stopTime = parset.startTime() + nrBlocks * parset.CNintegrationTime(); - - file.observationEndUTC().value = toUTC(stopTime); - file.observationEndMJD().value = toMJD(stopTime); - - file.observationNofStations().value = parset.nrStations(); // TODO: SS beamformer? - file.observationStationsList().value = parset.allStationNames(); // TODO: SS beamformer? - - double subbandBandwidth = parset.subbandBandwidth(); - double channelBandwidth = parset.channelWidth(); - - // if PPF is used, the frequencies are shifted down by half a channel - // We'll annotate channel 0 to be below channel 1, but in reality it will - // contain frequencies from both the top and the bottom half-channel. - double frequencyOffsetPPF = parset.nrChannelsPerSubband() > 1 ? 0.5 * channelBandwidth : 0.0; - - const vector<double> subbandCenterFrequencies = parset.subbandToFrequencyMapping(); - - double min_centerfrequency = *min_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() ); - double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() ); - double sum_centerfrequencies = accumulate( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end(), 0.0 ); - - file.observationFrequencyMax() .value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6; - file.observationFrequencyMin() .value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6; - file.observationFrequencyCenter().value = (sum_centerfrequencies / subbandCenterFrequencies.size() - frequencyOffsetPPF) / 1e6; - file.observationFrequencyUnit() .value = "MHz"; - - file.observationNofBitsPerSample().value = parset.nrBitsPerSample(); - file.clockFrequency() .value = parset.clockSpeed() / 1e6; - file.clockFrequencyUnit() .value = "MHz"; - - file.antennaSet() .value = parset.antennaSet(); - file.filterSelection().value = parset.getString("Observation.bandFilter", ""); - - unsigned nrSAPs = parset.nrBeams(); - vector<string> targets(nrSAPs); - - for (unsigned sap = 0; sap < nrSAPs; sap++) - targets[sap] = parset.beamTarget(sap); - - file.targets().value = targets; - - file.systemVersion().value = StorageVersion::getVersion(); // LOFAR version - - //file.docName() is set by DAL - //file.docVersion() is set by DAL - - file.notes().value = ""; - - // BF_File specific root group parameters - - file.createOfflineOnline().value = "Online"; - file.BFFormat().value = "TAB"; - file.BFVersion().value = str(format("RTCP/Storage %s r%s using DAL %s and HDF5 %s") % StorageVersion::getVersion() % StorageVersion::getRevision() % dal::version().to_string() % dal::version_hdf5().to_string()); - - file.totalIntegrationTime() .value = nrBlocks * parset.CNintegrationTime(); - file.totalIntegrationTimeUnit().value = "s"; - - //file.subArrayPointingDiameter().value = 0.0; - //file.subArrayPointingDiameterUnit().value = "arcmin"; - file.bandwidth() .value = parset.nrSubbands() * subbandBandwidth / 1e6; - file.bandwidthUnit() .value = "MHz"; - //file.beamDiameter() .value = 0.0; - //file.beamDiameterUnit() .value = "arcmin"; - - file.observationNofSubArrayPointings().value = parset.nrBeams(); - file.nofSubArrayPointings().value = 1; - - // SysLog group -- empty for now - file.sysLog().create(); - - // information about the station beam (SAP) - BF_SubArrayPointing sap = file.subArrayPointing(sapNr); - sap.create(); - sap.groupType() .value = "SubArrayPointing"; - - sap.expTimeStartUTC().value = toUTC(parset.startTime()); - sap.expTimeStartMJD().value = toMJD(parset.startTime()); - - sap.expTimeEndUTC().value = toUTC(stopTime); - sap.expTimeEndMJD().value = toMJD(stopTime); - - // TODO: fix the system to use the parset.beamDuration(sapNr), but OLAP - // does not work that way yet (beamDuration is currently unsupported). - sap.totalIntegrationTime().value = nrBlocks * parset.CNintegrationTime(); - sap.totalIntegrationTimeUnit().value = "s"; - - // TODO: non-J2000 pointings - if( parset.getBeamDirectionType(sapNr) != "J2000" ) - LOG_WARN("HDF5 writer does not record positions of non-J2000 observations yet."); - - vector<double> beamDir = parset.getBeamDirection(sapNr); - sap.pointRA() .value = beamDir[0] * 180.0 / M_PI; - sap.pointRAUnit().value = "deg"; - sap.pointDEC().value = beamDir[1] * 180.0 / M_PI; - sap.pointDECUnit().value = "deg"; - - sap.observationNofBeams().value = parset.nrTABs(sapNr); - sap.nofBeams() .value = 1; - - BF_ProcessingHistory sapHistory = sap.processHistory(); - sapHistory.create(); - sapHistory.groupType() .value = "ProcessingHistory"; - - Attribute<string> sapObservationParset(sapHistory, "OBSERVATION_PARSET"); - string parsetAsString; - parset.writeBuffer(parsetAsString); - - sapObservationParset.value = parsetAsString; - - // information about the pencil beam - - BF_BeamGroup beam = sap.beam(beamNr); - beam.create(); - beam.groupType() .value = "Beam"; - - vector<string> beamStationList = parset.TABStationList(sapNr, beamNr); - beam.nofStations() .value = beamStationList.size(); - beam.stationsList().value = beamStationList; - - const vector<string> beamtargets(1, targets[sapNr]); - - beam.targets() .value = beamtargets; - beam.tracking().value = parset.getBeamDirectionType(sapNr); - - BeamCoordinates pbeamDirs = parset.TABs(sapNr); - BeamCoord3D pbeamDir = pbeamDirs[beamNr]; - beam.pointRA() .value = (beamDir[0] + pbeamDir[0]) * 180.0 / M_PI; - beam.pointRAUnit() .value = "deg"; - beam.pointDEC() .value = (beamDir[1] + pbeamDir[1]) * 180.0 / M_PI; - beam.pointDECUnit() .value = "deg"; - beam.pointOffsetRA() .value = pbeamDir[0] * 180.0 / M_PI; - beam.pointOffsetRAUnit() .value = "deg"; - beam.pointOffsetDEC() .value = pbeamDir[1] * 180.0 / M_PI; - beam.pointOffsetDECUnit().value = "deg"; - - - beam.subbandWidth() .value = subbandBandwidth; - beam.subbandWidthUnit() .value = "Hz"; - - - beam.beamDiameterRA() .value = 0; - beam.beamDiameterRAUnit() .value = "arcmin"; - beam.beamDiameterDEC() .value = 0; - beam.beamDiameterDECUnit().value = "arcmin"; - - beam.nofSamples() .value = itsNrSamples * nrBlocks; - beam.samplingRate() .value = parset.subbandBandwidth() / parset.nrChannelsPerSubband() / itsInfo.timeIntFactor; - beam.samplingRateUnit() .value = "Hz"; - beam.samplingTime() .value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor; - beam.samplingTimeUnit() .value = "s"; - - beam.channelsPerSubband().value = itsInfo.nrChannels; - beam.channelWidth() .value = channelBandwidth * (parset.nrChannelsPerSubband() / itsInfo.nrChannels); - beam.channelWidthUnit() .value = "Hz"; - - vector<double> beamCenterFrequencies(nrSubbands, 0.0); - - for (unsigned sb = 0; sb < nrSubbands; sb++) - beamCenterFrequencies[sb] = subbandCenterFrequencies[subbandIndices[sb]]; - - double beamCenterFrequencySum = accumulate(beamCenterFrequencies.begin(), beamCenterFrequencies.end(), 0.0); - - beam.beamFrequencyCenter() .value = (beamCenterFrequencySum / nrSubbands - frequencyOffsetPPF) / 1e6; - beam.beamFrequencyCenterUnit().value = "MHz"; - - double DM = parset.dispersionMeasure(sapNr, beamNr); - - beam.foldedData() .value = false; - beam.foldPeriod() .value = 0.0; - beam.foldPeriodUnit() .value = "s"; - - beam.dedispersion() .value = DM == 0.0 ? "NONE" : "COHERENT"; - beam.dispersionMeasure() .value = DM; - beam.dispersionMeasureUnit() .value = "pc/cm^3"; - - beam.barycentered() .value = false; - - beam.observationNofStokes() .value = itsInfo.nrStokes; - beam.nofStokes() .value = 1; - - vector<string> stokesComponents(1, stokesVars[stokesNr]); - - beam.stokesComponents() .value = stokesComponents; - beam.complexVoltage() .value = itsInfo.stokesType == STOKES_XXYY; - beam.signalSum() .value = itsInfo.coherent ? "COHERENT" : "INCOHERENT"; - - beam.stokesComponents() .value = stokesComponents; - beam.complexVoltage() .value = itsInfo.stokesType == STOKES_XXYY; - beam.signalSum() .value = itsInfo.coherent ? "COHERENT" : "INCOHERENT"; - - BF_ProcessingHistory beamHistory = beam.processHistory(); - beamHistory.create(); - - Attribute<string> beamObservationParset(beamHistory, "OBSERVATION_PARSET"); - - beamObservationParset.value = parsetAsString; - - CoordinatesGroup coordinates = beam.coordinates(); - coordinates.create(); - coordinates.groupType().value = "Coordinates"; - - coordinates.refLocationValue().value = parset.getRefPhaseCentre(); - coordinates.refLocationUnit().value = vector<string>(3,"m"); - coordinates.refLocationFrame().value = "ITRF"; - - coordinates.refTimeValue().value = toMJD(parset.startTime()); - coordinates.refTimeUnit().value = "d"; - coordinates.refTimeFrame().value = "MJD"; - - coordinates.nofCoordinates().value = 2; - coordinates.nofAxes() .value = 2; - - vector<string> coordinateTypes(2); - coordinateTypes[0] = "Time"; // or TimeCoord ? - coordinateTypes[1] = "Spectral"; // or SpectralCoord ? - coordinates.coordinateTypes().value = coordinateTypes; - - vector<double> unitvector(1,1); - - SmartPtr<TimeCoordinate> timeCoordinate = dynamic_cast<TimeCoordinate*>(coordinates.coordinate(0)); - timeCoordinate.get()->create(); - timeCoordinate.get()->groupType() .value = "TimeCoord"; - - timeCoordinate.get()->coordinateType().value = "Time"; - timeCoordinate.get()->storageType() .value = vector<string>(1,"Linear"); - timeCoordinate.get()->nofAxes() .value = 1; - timeCoordinate.get()->axisNames() .value = vector<string>(1,"Time"); - timeCoordinate.get()->axisUnits() .value = vector<string>(1,"us"); - - // linear coordinates: - // referenceValue = offset from starting time, in axisUnits - // referencePixel = offset from first sample - // increment = time increment for each sample - // pc = scaling factor (?) - - timeCoordinate.get()->referenceValue().value = 0; - timeCoordinate.get()->referencePixel().value = 0; - timeCoordinate.get()->increment() .value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor; - timeCoordinate.get()->pc() .value = unitvector; - - timeCoordinate.get()->axisValuesPixel().value = vector<unsigned>(1, 0); // not used - timeCoordinate.get()->axisValuesWorld().value = vector<double>(1, 0.0); // not used - - SmartPtr<SpectralCoordinate> spectralCoordinate = dynamic_cast<SpectralCoordinate*>(coordinates.coordinate(1)); - spectralCoordinate.get()->create(); - spectralCoordinate.get()->groupType() .value = "SpectralCoord"; - - spectralCoordinate.get()->coordinateType().value = "Spectral"; - spectralCoordinate.get()->storageType() .value = vector<string>(1,"Tabular"); - spectralCoordinate.get()->nofAxes() .value = 1; - spectralCoordinate.get()->axisNames() .value = vector<string>(1,"Frequency"); - spectralCoordinate.get()->axisUnits() .value = vector<string>(1,"MHz"); - - spectralCoordinate.get()->referenceValue().value = 0; // not used - spectralCoordinate.get()->referencePixel().value = 0; // not used - spectralCoordinate.get()->increment() .value = 0; // not used - spectralCoordinate.get()->pc() .value = unitvector; // not used - - // tabular coordinates: - // axisValuePixel = data indices - // axisValueWorld = corresponding (central) frequencies - - vector<unsigned> spectralPixels; - vector<double> spectralWorld; - - for(unsigned sb = 0; sb < nrSubbands; sb++) { - const double subbandBeginFreq = parset.channel0Frequency( subbandIndices[sb] ); - - // NOTE: channel 0 will be wrongly annotated if nrChannels > 1, because it is a combination of the - // highest and the lowest frequencies (half a channel each). - - for(unsigned ch = 0; ch < itsInfo.nrChannels; ch++) { - spectralPixels.push_back(spectralPixels.size()); - spectralWorld .push_back(subbandBeginFreq + ch * channelBandwidth); - } - } - - spectralCoordinate.get()->axisValuesPixel().value = spectralPixels; - spectralCoordinate.get()->axisValuesWorld().value = spectralWorld; - - BF_StokesDataset stokesDS = beam.stokes(stokesNr); - - vector<ssize_t> dims(2), maxdims(2); - - dims[0] = itsNrSamples * nrBlocks; - dims[1] = itsNrChannels; - - maxdims[0] = -1; - maxdims[1] = itsNrChannels; - - stokesDS.create(dims, maxdims, LOFAR::basename(rawfilename), isBigEndian ? BF_StokesDataset::BIG : BF_StokesDataset::LITTLE); - stokesDS.groupType().value = "bfData"; - stokesDS.dataType() .value = "float"; - - stokesDS.stokesComponent().value = stokesVars[stokesNr]; - stokesDS.nofChannels() .value = vector<unsigned>(nrSubbands, itsInfo.nrChannels); - stokesDS.nofSubbands() .value = nrSubbands; - stokesDS.nofSamples() .value = dims[0]; - - // construct feedback for LTA -- Implements Output_Beamformed_.comp - - string type = ""; - - // FIXME: specifiedNrStations == 1 only implies Fly's Eye when Parset.py generates the stationList - size_t specifiedNrStations = parset.TABStationList(sapNr, beamNr, true).size(); - - if (itsInfo.coherent) - if (specifiedNrStations != 1) - type = "CoherentStokesBeam"; - else - type = "FlysEyeBeam"; - else - type = "IncoherentStokesBeam"; - - itsConfiguration.add("fileFormat", "HDF5"); - itsConfiguration.add("filename", LOFAR::basename(h5filename)); - itsConfiguration.add("size", "0"); - itsConfiguration.add("location", parset.getHostName(BEAM_FORMED_DATA, fileno) + ":" + parset.getDirectoryName(BEAM_FORMED_DATA, fileno)); - itsConfiguration.add("percentageWritten", "0"); - - itsConfiguration.add("nrOfCoherentStokesBeams", "0"); - itsConfiguration.add("nrOfIncoherentStokesBeams", "0"); - itsConfiguration.add("nrOfFlysEyeBeams", "0"); - itsConfiguration.replace(str(format("nrOf%ss") % type), "1"); - - itsConfiguration.add("beamTypes", "[]"); - - string prefix = str(format("%s[0].") % type); - - itsConfiguration.add(prefix + "SAP", str(format("%u") % itsInfo.sap)); - itsConfiguration.add(prefix + "TAB", str(format("%u") % itsInfo.beam)); - itsConfiguration.add(prefix + "samplingTime", str(format("%f") % (parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor))); - itsConfiguration.add(prefix + "dispersionMeasure", str(format("%f") % DM)); - itsConfiguration.add(prefix + "nrSubbands", str(format("%u") % nrSubbands)); - - ostringstream centralFreqsStr; - centralFreqsStr << "["; - for (size_t i = 0; i < beamCenterFrequencies.size(); ++i) { - if( i > 0 ) - centralFreqsStr << ", "; - centralFreqsStr << str(format("%.4lf") % beamCenterFrequencies[i]); - } - centralFreqsStr << "]"; - - itsConfiguration.add(prefix + "centralFrequencies", centralFreqsStr.str()); - - ostringstream stationSubbandsStr; - stationSubbandsStr << "["; - for (size_t i = 0; i < subbands.size(); ++i) { - if( i > 0 ) - stationSubbandsStr << ", "; - stationSubbandsStr << str(format("%u") % subbands[i]); - } - stationSubbandsStr << "]"; - - itsConfiguration.add(prefix + "stationSubbands", stationSubbandsStr.str()); - - itsConfiguration.add(prefix + "channelWidth", str(format("%f") % channelBandwidth)); - itsConfiguration.add(prefix + "channelsPerSubband",str(format("%u") % itsInfo.nrChannels)); - itsConfiguration.add(prefix + "stokes", str(format("[%s]") % stokesVars_LTA[stokesNr])); - - if (type == "CoherentStokesBeam") { - itsConfiguration.add(prefix + "Pointing.equinox", "J2000"); - itsConfiguration.add(prefix + "Pointing.coordType", "RA-DEC"); - itsConfiguration.add(prefix + "Pointing.angle1", str(format("%f") % (beamDir[0] + pbeamDir[0]))); - itsConfiguration.add(prefix + "Pointing.angle2", str(format("%f") % (beamDir[1] + pbeamDir[1]))); - - itsConfiguration.add(prefix + "Offset.equinox", "J2000"); - itsConfiguration.add(prefix + "Offset.coordType", "RA-DEC"); - itsConfiguration.add(prefix + "Offset.angle1", str(format("%f") % pbeamDir[0])); - itsConfiguration.add(prefix + "Offset.angle2", str(format("%f") % pbeamDir[1])); - } - - if (type == "FlysEyeBeam") { - string olapname = beamStationList[0]; - string stationName = olapname.substr(0,5); - string antennaFieldName = olapname.size() > 5 ? olapname.substr(5) : ""; - - itsConfiguration.add(prefix + "stationName", stationName); - itsConfiguration.add(prefix + "antennaFieldName", antennaFieldName); - } - } - - template <typename T,unsigned DIM> MSWriterDAL<T,DIM>::~MSWriterDAL() - { - } - - template <typename T,unsigned DIM> void MSWriterDAL<T,DIM>::write(StreamableData *data) - { - SampleData<T,DIM> *sdata = dynamic_cast<SampleData<T,DIM> *>(data); - - ASSERT( data ); - ASSERT( sdata ); - ASSERTSTR( sdata->samples.num_elements() >= itsBlockSize, "A block is at least " << itsBlockSize << " elements, but provided sdata only has " << sdata->samples.num_elements() << " elements" ); - - unsigned seqNr = data->sequenceNumber(); - unsigned bytesPerBlock = itsBlockSize * sizeof(T); - - // fill in zeroes for lost blocks - if (itsNextSeqNr < seqNr) - itsFile.skip((seqNr - itsNextSeqNr) * bytesPerBlock); - - // make sure we skip |2 in the highest dimension - itsFile.write(sdata->samples.origin(), bytesPerBlock); - - itsNextSeqNr = seqNr + 1; - itsNrBlocksWritten++; - - itsConfiguration.replace("size", str(format("%u") % getDataSize())); - itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten())); - } - - // specialisation for FinalBeamFormedData - template class MSWriterDAL<float,3>; - - } // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/MSWriterFile.cc b/RTCP/Storage/src/MSWriterFile.cc deleted file mode 100644 index ed3a8ee5f627d96ea3782972e26c184610d438f9..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MSWriterFile.cc +++ /dev/null @@ -1,61 +0,0 @@ -//# MSWriterFile: a raw file writer -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Storage/MSWriterFile.h> - -#include <sys/types.h> -#include <fcntl.h> - -namespace LOFAR { -namespace RTCP { - - -MSWriterFile::MSWriterFile (const string &msName) -: - itsFile(msName, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) -{ -} - - -MSWriterFile::~MSWriterFile() -{ -} - - -void MSWriterFile::write(StreamableData *data) -{ - data->write(&itsFile, true, FastFileStream::alignment); -} - - -size_t MSWriterFile::getDataSize() -{ - return itsFile.size(); -} - - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/MSWriterNull.cc b/RTCP/Storage/src/MSWriterNull.cc deleted file mode 100644 index 0fe37d1d2746e6c7670a2bbef81f91849cc49954..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MSWriterNull.cc +++ /dev/null @@ -1,49 +0,0 @@ -//# MSWriterNull: a null MSWriter -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Storage/MSWriterNull.h> - - -namespace LOFAR { -namespace RTCP { - - -MSWriterNull::MSWriterNull () -{ -} - - -MSWriterNull::~MSWriterNull() -{ -} - - -void MSWriterNull::write(StreamableData *) -{ -} - - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/MeasurementSetFormat.cc b/RTCP/Storage/src/MeasurementSetFormat.cc deleted file mode 100644 index d9ff09f5b82bb0fad0f08774b68961c8c9972271..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/MeasurementSetFormat.cc +++ /dev/null @@ -1,572 +0,0 @@ -//# MeasurementSetFormat.cc: Creates required infrastructure for -//# a LofarStMan MeasurementSet. -//# -//# Copyright (C) 2009 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: $ - - -#include <lofar_config.h> - -#include <Storage/MeasurementSetFormat.h> -#include <Storage/Package__Version.h> - -#include <string> -#include <fstream> -#include <iostream> -#include <algorithm> - -#include <linux/limits.h> - -#include <tables/Tables/TableDesc.h> -#include <tables/Tables/SetupNewTab.h> -#include <tables/Tables/Table.h> -#include <tables/Tables/TableLock.h> -#include <tables/Tables/TableRecord.h> -#include <tables/Tables/ScaColDesc.h> -#include <tables/Tables/ArrColDesc.h> -#include <tables/Tables/ScalarColumn.h> -#include <tables/Tables/ArrayColumn.h> -//#include <tables/Tables/StandardStMan.h> -#include <casa/Arrays/Array.h> -#include <casa/Arrays/ArrayMath.h> -#include <casa/Arrays/ArrayIO.h> -#include <casa/Arrays/ArrayLogical.h> -#include <casa/Containers/BlockIO.h> -#include <casa/OS/RegularFile.h> -#include <casa/Utilities/Assert.h> -#include <casa/IO/RegularFileIO.h> -#include <casa/IO/RawIO.h> -#include <casa/IO/CanonicalIO.h> -#include <casa/OS/HostInfo.h> -#include <casa/Exceptions/Error.h> -#include <casa/iostream.h> -#include <casa/sstream.h> -#include <casa/BasicSL/Constants.h> - -#include <ms/MeasurementSets.h> - -#include <MSLofar/MSLofar.h> -#include <MSLofar/MSLofarField.h> -#include <MSLofar/MSLofarAntenna.h> -#include <MSLofar/MSLofarObservation.h> -#include <MSLofar/MSLofarAntennaColumns.h> -#include <MSLofar/MSLofarFieldColumns.h> -#include <MSLofar/MSLofarObsColumns.h> -#include <MSLofar/BeamTables.h> -#include <LofarStMan/LofarStMan.h> -#include <Interface/Exceptions.h> - - -using namespace casa; - -namespace LOFAR { -namespace RTCP { - - -Mutex MeasurementSetFormat::sharedMutex; - - -// unix time to mjd time (in seconds instead of days) -static double toMJDs( double time ) -{ - // 40587 modify Julian day number = 00:00:00 January 1, 1970, GMT - return 40587.0 * 24 * 60 * 60 + time; -} - - -MeasurementSetFormat::MeasurementSetFormat(const Parset &ps, unsigned alignment) -: - itsPS(ps), - stationNames(itsPS.mergedStationNames()), - antPos(itsPS.positions()), - itsNrAnt(stationNames.size()), - itsMS(0), - itsAlignment(alignment) -{ - if (itsPS.nrTabStations() > 0) { - ASSERTSTR(antPos.size() == 3 * itsPS.nrTabStations(), - antPos.size() << " == " << 3 * itsPS.nrTabStations()); - } else { - ASSERTSTR(antPos.size() == 3 * itsPS.nrStations(), - antPos.size() << " == " << 3 * itsPS.nrStations()); - } - - itsStartTime = toMJDs(itsPS.startTime()); - - itsTimeStep = itsPS.IONintegrationTime(); - itsNrTimes = itsPS.nrCorrelatedBlocks(); -} - - -MeasurementSetFormat::~MeasurementSetFormat() -{ -} - - -void MeasurementSetFormat::addSubband(const string MSname, unsigned subband, bool isBigEndian) -{ - ScopedLock scopedLock(sharedMutex); - - /// First create a valid MeasurementSet with all required - /// tables. Note that the MS object is destroyed immediately. - createMSTables(MSname, subband); - /// Next make a metafile which describes the raw datafile we're - /// going to write - createMSMetaFile(MSname, subband, isBigEndian); -} - - -void MeasurementSetFormat::createMSTables(const string &MSname, unsigned subband) -{ - try { - TableDesc td = MS::requiredTableDesc(); - MS::addColumnToDesc(td, MS::DATA, 2); - MS::addColumnToDesc(td, MS::WEIGHT_SPECTRUM, 2); - // Set the reference frame of UVW to J2000. - // Note it must be done here, because the UVW column in the MS is readonly - // (because LofarStMan is used). - { - ColumnDesc &col(td.rwColumnDesc("UVW")); - TableRecord rec = col.keywordSet().asRecord("MEASINFO"); - rec.define("Ref", "J2000"); - col.rwKeywordSet().defineRecord("MEASINFO", rec); - } - - SetupNewTable newtab(MSname, td, Table::New); - LofarStMan lofarstman; - newtab.bindAll(lofarstman); - - itsMS = new MSLofar(newtab); - itsMS->createDefaultSubtables(Table::New); - - Block<MPosition> antMPos(itsNrAnt); - - try { - for (unsigned i = 0; i < itsNrAnt; i ++) { - antMPos[i] = MPosition(MVPosition(antPos[3 * i], - antPos[3 * i + 1], - antPos[3 * i + 2]), - MPosition::ITRF); - } - } catch (AipsError &ex) { - LOG_FATAL_STR("AipsError: " << ex.what()); - } - - // Get subarray id (formerly known as beam). - const vector<unsigned> subbandToSAPmapping = itsPS.subbandToSAPmapping(); - int subarray = subbandToSAPmapping[subband]; - - fillAntenna(antMPos); - fillFeed(); - fillField(subarray); - fillPola(); - fillDataDesc(); - fillSpecWindow(subband); - fillObs(subarray); - fillHistory(); - - try { - // Fill the tables containing the beam info. - BeamTables::fill(*itsMS, - itsPS.antennaSet(), - itsPS.AntennaSetsConf(), - itsPS.AntennaFieldsDir(), - itsPS.HBADeltasDir()); - } catch (LOFAR::AssertError &ex) { - LOG_WARN_STR("Ignoring exception from BeamTables::fill(): " << ex.what()); - } - } catch (AipsError &ex) { - THROW(StorageException, "AIPS/CASA error: " << ex.getMesg()); - } - - // Flush the MS to make sure all tables are written - itsMS->flush(); - // Delete the MS object, since we don't need it anymore -} - - -void MeasurementSetFormat::fillAntenna(const Block<MPosition>& antMPos) -{ - // Determine constants for the ANTENNA subtable. - casa::Vector<Double> antOffset(3); - antOffset = 0; - casa::Vector<Double> phaseRef(3); - - // Fill the ANTENNA subtable. - MSLofarAntenna msant = itsMS->antenna(); - MSLofarAntennaColumns msantCol(msant); - msant.addRow (itsNrAnt); - - for (unsigned i = 0; i < itsNrAnt; i ++) { - msantCol.name().put(i, stationNames[i]); - msantCol.stationId().put(i, 0); - msantCol.station().put(i, "LOFAR"); - msantCol.type().put(i, "GROUND-BASED"); - msantCol.mount().put(i, "X-Y"); - msantCol.positionMeas().put(i, antMPos[i]); - msantCol.offset().put(i, antOffset); - msantCol.dishDiameter().put(i, 0); - vector<double> psPhaseRef = - itsPS.getDoubleVector("PIC.Core."+stationNames[i]+".phaseCenter"); - ASSERTSTR(psPhaseRef.size() == 3, - "phaseCenter in parset of station " << stationNames[i]); - std::copy(psPhaseRef.begin(), psPhaseRef.end(), phaseRef.begin()); - msantCol.phaseReference().put(i, phaseRef); - msantCol.flagRow().put(i, False); - } - - msant.flush(); -} - - -void MeasurementSetFormat::fillFeed() -{ - // Determine constants for the FEED subtable. - unsigned nRec = 2; - casa::Matrix<Double> feedOffset(2,nRec); - feedOffset = 0; - casa::Matrix<Complex> feedResponse(nRec,nRec); - feedResponse = Complex(0.0,0.0); - - for (unsigned rec = 0; rec < nRec; rec ++) - feedResponse(rec,rec) = Complex(1.0, 0.0); - - casa::Vector<String> feedType(nRec); - feedType(0) = "X"; - feedType(1) = "Y"; - casa::Vector<Double> feedPos(3); - feedPos = 0.0; - casa::Vector<Double> feedAngle(nRec); - feedAngle = -C::pi_4; // 0 for parallel dipoles - - // Fill the FEED subtable. - MSFeed msfeed = itsMS->feed(); - MSFeedColumns msfeedCol(msfeed); - msfeed.addRow(itsNrAnt); - - for (unsigned i = 0; i < itsNrAnt; i ++) { - msfeedCol.antennaId().put(i, i); - msfeedCol.feedId().put(i, 0); - msfeedCol.spectralWindowId().put(i, -1); - msfeedCol.time().put(i, itsStartTime + itsNrTimes * itsTimeStep / 2.); - msfeedCol.interval().put(i, itsNrTimes * itsTimeStep); - msfeedCol.beamId().put(i, -1); - msfeedCol.beamOffset().put(i, feedOffset); - msfeedCol.polarizationType().put(i, feedType); - msfeedCol.polResponse().put(i, feedResponse); - msfeedCol.position().put(i, feedPos); - msfeedCol.receptorAngle().put(i, feedAngle); - msfeedCol.numReceptors().put(i, 2); - } - - msfeed.flush(); -} - - -void MeasurementSetFormat::fillField(unsigned subarray) -{ - - // Beam direction - MVDirection radec(Quantity(itsPS.getBeamDirection(subarray)[0], "rad"), - Quantity(itsPS.getBeamDirection(subarray)[1], "rad")); - MDirection::Types beamDirectionType; - MDirection::getType(beamDirectionType, itsPS.getBeamDirectionType(subarray)); - MDirection indir(radec, beamDirectionType); - casa::Vector<MDirection> outdir(1); - outdir(0) = indir; - - // AnaBeam direction type - MDirection::Types anaBeamDirectionType; - if (itsPS.haveAnaBeam()) - MDirection::getType(anaBeamDirectionType, itsPS.getAnaBeamDirectionType()); - - // Put the direction into the FIELD subtable. - MSLofarField msfield = itsMS->field(); - MSLofarFieldColumns msfieldCol(msfield); - - uInt rownr = msfield.nrow(); - ASSERT(rownr == 0); // can only set directionType on first row, so only one field per MeasurementSet for now - - if (itsPS.haveAnaBeam()) - msfieldCol.setDirectionRef(beamDirectionType, anaBeamDirectionType); - else - msfieldCol.setDirectionRef(beamDirectionType); - - msfield.addRow(); - msfieldCol.name().put(rownr, "BEAM_" + String::toString(subarray)); - msfieldCol.code().put(rownr, ""); - msfieldCol.time().put(rownr, itsStartTime); - msfieldCol.numPoly().put(rownr, 0); - - msfieldCol.delayDirMeasCol().put(rownr, outdir); - msfieldCol.phaseDirMeasCol().put(rownr, outdir); - msfieldCol.referenceDirMeasCol().put(rownr, outdir); - - msfieldCol.sourceId().put(rownr, -1); - msfieldCol.flagRow().put(rownr, False); - - if (itsPS.haveAnaBeam()) { - // Analog beam direction - MVDirection radec_AnaBeamDirection(Quantity(itsPS.getAnaBeamDirection()[0], "rad"), - Quantity(itsPS.getAnaBeamDirection()[1], "rad")); - MDirection anaBeamDirection(radec_AnaBeamDirection, anaBeamDirectionType); - msfieldCol.tileBeamDirMeasCol().put(rownr, anaBeamDirection); - } else { - msfieldCol.tileBeamDirMeasCol().put(rownr, outdir(0)); - } -} - - -void MeasurementSetFormat::fillPola() -{ - const unsigned npolarizations = itsPS.nrCrossPolarisations(); - - MSPolarization mspol = itsMS->polarization(); - MSPolarizationColumns mspolCol(mspol); - uInt rownr = mspol.nrow(); - casa::Vector<Int> corrType(npolarizations); - corrType(0) = Stokes::XX; - - if (npolarizations == 2) { - corrType(1) = Stokes::YY; - } else if (npolarizations == 4) { - corrType(1) = Stokes::XY; - corrType(2) = Stokes::YX; - corrType(3) = Stokes::YY; - } - - casa::Matrix<Int> corrProduct(2, npolarizations); - - for (unsigned i = 0; i < npolarizations; i++) { - corrProduct(0,i) = Stokes::receptor1(Stokes::type(corrType(i))); - corrProduct(1,i) = Stokes::receptor2(Stokes::type(corrType(i))); - } - - // Fill the columns. - mspol.addRow(); - mspolCol.numCorr().put(rownr, npolarizations); - mspolCol.corrType().put(rownr, corrType); - mspolCol.corrProduct().put(rownr, corrProduct); - mspolCol.flagRow().put(rownr, False); - mspol.flush(); -} - - -void MeasurementSetFormat::fillDataDesc() -{ - MSDataDescription msdd = itsMS->dataDescription(); - MSDataDescColumns msddCol(msdd); - - msdd.addRow(); - - msddCol.spectralWindowId().put(0, 0); - msddCol.polarizationId().put(0, 0); - msddCol.flagRow().put(0, False); - - msdd.flush(); -} - - -void MeasurementSetFormat::fillObs(unsigned subarray) -{ - // Get start and end time. - casa::Vector<Double> timeRange(2); - timeRange[0] = itsStartTime; - timeRange[1] = itsStartTime + itsNrTimes*itsTimeStep; - - // Get minimum and maximum frequency. - vector<double> freqs = itsPS.subbandToFrequencyMapping(); - ASSERT( freqs.size() > 0 ); - - double minFreq = *std::min_element( freqs.begin(), freqs.end() ); - double maxFreq = *std::max_element( freqs.begin(), freqs.end() ); - - size_t nchan = itsPS.nrChannelsPerSubband(); - - if( nchan > 1 ) { - // 2nd PPF shifts frequencies downwards by half a channel - double width = itsPS.channelWidth(); - - minFreq -= 0.5 * nchan * width; - maxFreq -= 0.5 * nchan * width; - } - - casa::Vector<String> corrSchedule(1); - corrSchedule = "corrSchedule"; - - vector<string> targets(itsPS.getStringVector - ("Observation.Beam[" + String::toString(subarray) + "].target")); - casa::Vector<String> ctargets(targets.size()); - - for (uint i = 0; i < targets.size(); ++ i) - ctargets[i] = targets[i]; - - vector<string> cois(itsPS.getStringVector("Observation.Campaign.CO_I")); - casa::Vector<String> ccois(cois.size()); - - for (uint i = 0; i < cois.size(); ++ i) - ccois[i] = cois[i]; - - double releaseDate = timeRange(1) + 365.25 * 24 * 60 * 60; - - MSLofarObservation msobs = itsMS->observation(); - MSLofarObservationColumns msobsCol(msobs); - - msobs.addRow(); - - msobsCol.telescopeName().put(0, "LOFAR"); - msobsCol.timeRange().put(0, timeRange); - msobsCol.observer().put(0, "unknown"); - msobsCol.scheduleType().put(0, "LOFAR"); - msobsCol.schedule().put(0, corrSchedule); - msobsCol.project().put(0, itsPS.getString("Observation.Campaign.name")); - msobsCol.releaseDate().put(0, releaseDate); - msobsCol.flagRow().put(0, False); - msobsCol.projectTitle().put(0, itsPS.getString("Observation.Campaign.title")); - msobsCol.projectPI().put(0, itsPS.getString("Observation.Campaign.PI")); - msobsCol.projectCoI().put(0, ccois); - msobsCol.projectContact().put(0, itsPS.getString("Observation.Campaign.contact")); - msobsCol.observationId().put(0, String::toString(itsPS.observationID())); - msobsCol.observationStart().put(0, timeRange[0]); - msobsCol.observationEnd().put(0, timeRange[1]); - msobsCol.observationFrequencyMaxQuant().put(0, Quantity(maxFreq, "Hz")); - msobsCol.observationFrequencyMinQuant().put(0, Quantity(minFreq, "Hz")); - msobsCol.observationFrequencyCenterQuant().put(0, Quantity(0.5*(minFreq+maxFreq), "Hz")); - msobsCol.subArrayPointing().put(0, subarray); - msobsCol.nofBitsPerSample().put(0, itsPS.nrBitsPerSample()); - msobsCol.antennaSet().put(0, itsPS.antennaSet()); - msobsCol.filterSelection().put(0, itsPS.bandFilter()); - msobsCol.clockFrequencyQuant().put(0, Quantity(itsPS.clockSpeed(), "Hz")); - msobsCol.target().put(0, ctargets); - msobsCol.systemVersion().put(0, Version::getInfo<StorageVersion>("Storage", - "brief")); - msobsCol.pipelineName().put(0, String()); - msobsCol.pipelineVersion().put(0, String()); - msobsCol.filename().put(0, Path(itsMS->tableName()).baseName()); - msobsCol.filetype().put(0, "uv"); - msobsCol.filedate().put(0, timeRange[0]); - - msobs.flush(); -} - -void MeasurementSetFormat::fillSpecWindow(unsigned subband) { - const double refFreq = itsPS.subbandToFrequencyMapping()[subband]; - const size_t nchan = itsPS.nrChannelsPerSubband(); - const double chanWidth = itsPS.channelWidth(); - const double totalBW = nchan * chanWidth; - const double channel0freq = itsPS.channel0Frequency(subband); - - casa::Vector<double> chanWidths(nchan, chanWidth); - casa::Vector<double> chanFreqs(nchan); - indgen (chanFreqs, channel0freq, chanWidth); - - MSSpectralWindow msspw = itsMS->spectralWindow(); - MSSpWindowColumns msspwCol(msspw); - - msspw.addRow(); - - msspwCol.numChan().put(0, nchan); - msspwCol.name().put(0, "SB-" + String::toString(subband)); - msspwCol.refFrequency().put(0, refFreq); - msspwCol.chanFreq().put(0, chanFreqs); - - msspwCol.chanWidth().put(0, chanWidths); - msspwCol.measFreqRef().put(0, MFrequency::TOPO); - msspwCol.effectiveBW().put(0, chanWidths); - msspwCol.resolution().put(0, chanWidths); - msspwCol.totalBandwidth().put(0, totalBW); - msspwCol.netSideband().put(0, 0); - msspwCol.ifConvChain().put(0, 0); - msspwCol.freqGroup().put(0, 0); - msspwCol.freqGroupName().put(0, ""); - msspwCol.flagRow().put(0, False); - - msspw.flush(); -} - - -void MeasurementSetFormat::fillHistory() -{ - Table histtab(itsMS->keywordSet().asTable("HISTORY")); - histtab.reopenRW(); - ScalarColumn<double> time (histtab, "TIME"); - ScalarColumn<int> obsId (histtab, "OBSERVATION_ID"); - ScalarColumn<String> message (histtab, "MESSAGE"); - ScalarColumn<String> application (histtab, "APPLICATION"); - ScalarColumn<String> priority (histtab, "PRIORITY"); - ScalarColumn<String> origin (histtab, "ORIGIN"); - ArrayColumn<String> parms (histtab, "APP_PARAMS"); - ArrayColumn<String> cli (histtab, "CLI_COMMAND"); - - // Put all parset entries in a Vector<String>. - casa::Vector<String> appvec; - casa::Vector<String> clivec; - appvec.resize (itsPS.size()); - casa::Array<String>::contiter viter = appvec.cbegin(); - for (ParameterSet::const_iterator iter = itsPS.begin(); iter != itsPS.end(); ++iter, ++viter) { - *viter = iter->first + '=' + iter->second.get(); - } - uint rownr = histtab.nrow(); - histtab.addRow(); - time.put (rownr, Time().modifiedJulianDay()*24.*3600.); - obsId.put (rownr, 0); - message.put (rownr, "parameters"); - application.put (rownr, "OLAP"); - priority.put (rownr, "NORMAL"); - origin.put (rownr, Version::getInfo<StorageVersion>("Storage", "full")); - parms.put (rownr, appvec); - cli.put (rownr, clivec); -} - - -void MeasurementSetFormat::createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian) -{ - (void) subband; - - Block<Int> ant1(itsPS.nrBaselines()); - Block<Int> ant2(itsPS.nrBaselines()); - uInt inx = 0; - uInt nStations = itsPS.nrTabStations() > 0 ? itsPS.nrTabStations() : itsPS.nrStations(); - - for (uInt i = 0; i < nStations; ++ i) { - for (uInt j = 0; j <= i; ++ j) { - - if (itsPS.getLofarStManVersion() == 1) { - ant1[inx] = j; - ant2[inx] = i; - ++ inx; - } else { - // switch order of stations to fix write of complex conjugate data in V1 - ant1[inx] = i; - ant2[inx] = j; - ++ inx; - } - } - } - - string filename = MSname + "/table.f0meta"; - - AipsIO aio(filename, ByteIO::New); - aio.putstart("LofarStMan", itsPS.getLofarStManVersion()); - aio << ant1 << ant2 - << itsStartTime - << itsPS.IONintegrationTime() - << itsPS.nrChannelsPerSubband() - << itsPS.nrCrossPolarisations() - << static_cast<double>(itsPS.CNintegrationSteps() * itsPS.IONintegrationSteps()) - << itsAlignment - << isBigEndian; - if (itsPS.getLofarStManVersion() > 1) { - uInt itsNrBytesPerNrValidSamples = - itsPS.integrationSteps() < 256 ? 1 : itsPS.integrationSteps() < 65536 ? 2 : 4; - aio << itsNrBytesPerNrValidSamples; - } - aio.close(); -} - - -} // namespace RTCP -} // namepsace LOFAR diff --git a/RTCP/Storage/src/OutputThread.cc b/RTCP/Storage/src/OutputThread.cc deleted file mode 100644 index a45c982c46363b5c64b641eaf181af87d4334541..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/OutputThread.cc +++ /dev/null @@ -1,308 +0,0 @@ -//# OutputThread.cc: -//# -//# Copyright (C) 2008 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: OutputThread.cc 14194 2009-10-06 09:54:51Z romein $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/StringUtil.h> -#include <Storage/MSWriterFile.h> -#include <Storage/MSWriterCorrelated.h> -#include <Storage/MSWriterDAL.h> -#include <Storage/MSWriterNull.h> -#include <Storage/OutputThread.h> -#include <Common/Thread/Semaphore.h> -#include <Common/Thread/Cancellation.h> - -#include <boost/format.hpp> - -#include <errno.h> -#include <iomanip> -#include <time.h> -#include <sys/stat.h> -#include <sys/types.h> - -#if defined HAVE_AIPSPP -#include <casa/Exceptions/Error.h> -#endif - - -namespace LOFAR { -namespace RTCP { - -static Mutex makeDirMutex; -static Mutex casacoreMutex; - -using namespace std; - -static void makeDir(const string &dirname, const string &logPrefix) -{ - ScopedLock scopedLock(makeDirMutex); - struct stat s; - - if (stat(dirname.c_str(), &s) == 0) { - // path already exists - if ((s.st_mode & S_IFMT) != S_IFDIR) { - LOG_WARN_STR(logPrefix << "Not a directory: " << dirname); - } - } else if (errno == ENOENT) { - // create directory - LOG_DEBUG_STR(logPrefix << "Creating directory " << dirname); - - if (mkdir(dirname.c_str(), 0777) != 0 && errno != EEXIST) { - THROW_SYSCALL(string("mkdir ") + dirname); - } - } else { - // something else went wrong - THROW_SYSCALL(string("stat ") + dirname); - } -} - - -/* create a directory as well as all its parent directories */ -static void recursiveMakeDir(const string &dirname, const string &logPrefix) -{ - using namespace boost; - - string curdir; - vector<string> splitName; - - split(splitName, dirname, is_any_of("/")); - - for (unsigned i = 0; i < splitName.size(); i++) { - curdir += splitName[i] + '/'; - makeDir(curdir, logPrefix); - } -} - - -OutputThread::OutputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory) -: - itsParset(parset), - itsOutputType(outputType), - itsStreamNr(streamNr), - itsIsBigEndian(isBigEndian), - itsLogPrefix(logPrefix + "[OutputThread] "), - itsCheckFakeData(parset.checkFakeInputData()), - itsTargetDirectory(targetDirectory), - itsFreeQueue(freeQueue), - itsReceiveQueue(receiveQueue), - itsBlocksWritten(0), - itsBlocksDropped(0), - itsNrExpectedBlocks(0), - itsNextSequenceNumber(0) -{ -} - - -void OutputThread::start() -{ - itsThread = new Thread(this, &OutputThread::mainLoop, itsLogPrefix); -} - - -void OutputThread::createMS() -{ - // even the HDF5 writer accesses casacore, to perform conversions - ScopedLock sl(casacoreMutex); - ScopedDelayCancellation dc; // don't cancel casacore calls - - std::string directoryName = itsTargetDirectory == "" ? itsParset.getDirectoryName(itsOutputType, itsStreamNr) : itsTargetDirectory; - std::string fileName = itsParset.getFileName(itsOutputType, itsStreamNr); - std::string path = directoryName + "/" + fileName; - - recursiveMakeDir(directoryName, itsLogPrefix); - LOG_INFO_STR(itsLogPrefix << "Writing to " << path); - - try { - // HDF5 writer requested - switch (itsOutputType) { - case CORRELATED_DATA: - itsWriter = new MSWriterCorrelated(itsLogPrefix, path, itsParset, itsStreamNr, itsIsBigEndian); - break; - - case BEAM_FORMED_DATA: - itsWriter = new MSWriterDAL<float,3>(path, itsParset, itsStreamNr, itsIsBigEndian); - break; - - default: - itsWriter = new MSWriterFile(path); - break; - } - } catch (Exception &ex) { - LOG_ERROR_STR(itsLogPrefix << "Cannot open " << path << ": " << ex); - itsWriter = new MSWriterNull; - } - - // log some core characteristics for CEPlogProcessor for feedback to MoM/LTA - switch (itsOutputType) { - case CORRELATED_DATA: - itsNrExpectedBlocks = itsParset.nrCorrelatedBlocks(); - - { - const vector<unsigned> subbands = itsParset.subbandList(); - const vector<unsigned> SAPs = itsParset.subbandToSAPmapping(); - const vector<double> frequencies = itsParset.subbandToFrequencyMapping(); - - LOG_INFO_STR(itsLogPrefix << "Characteristics: " - << "SAP " << SAPs[itsStreamNr] - << ", subband " << subbands[itsStreamNr] - << ", centralfreq " << setprecision(8) << frequencies[itsStreamNr]/1e6 << " MHz" - << ", duration " << setprecision(8) << itsNrExpectedBlocks * itsParset.IONintegrationTime() << " s" - << ", integration " << setprecision(8) << itsParset.IONintegrationTime() << " s" - << ", channels " << itsParset.nrChannelsPerSubband() - << ", channelwidth " << setprecision(8) << itsParset.channelWidth()/1e3 << " kHz" - ); - } - break; - case BEAM_FORMED_DATA: - itsNrExpectedBlocks = itsParset.nrBeamFormedBlocks(); - break; - - default: - break; - } -} - - -void OutputThread::checkForDroppedData(StreamableData *data) -{ - // TODO: check for dropped data at end of observation - - unsigned droppedBlocks = data->sequenceNumber() - itsNextSequenceNumber; - - if (droppedBlocks > 0) { - itsBlocksDropped += droppedBlocks; - - LOG_WARN_STR(itsLogPrefix << "OutputThread dropped " << droppedBlocks << (droppedBlocks == 1 ? " block" : " blocks")); - } - - itsNextSequenceNumber = data->sequenceNumber() + 1; - itsBlocksWritten ++; -} - - -static Semaphore writeSemaphore(300); - - -void OutputThread::doWork() -{ - time_t prevlog = 0; - - for (SmartPtr<StreamableData> data; (data = itsReceiveQueue.remove()) != 0; itsFreeQueue.append(data.release())) { - //NSTimer writeTimer("write data", false, false); - - //writeTimer.start(); - writeSemaphore.down(); - - try { - itsWriter->write(data); - checkForDroppedData(data); - } catch (SystemCallException &ex) { - LOG_WARN_STR(itsLogPrefix << "OutputThread caught non-fatal exception: " << ex.what()); - } catch (...) { - writeSemaphore.up(); - throw; - } - - writeSemaphore.up(); - //writeTimer.stop(); - - time_t now = time(0L); - - if (now > prevlog + 5) { - // print info every 5 seconds - LOG_INFO_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped"); - - prevlog = now; - } else { - // print debug info for the other blocks - LOG_DEBUG_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped"); - } - } -} - - -void OutputThread::cleanUp() -{ - float dropPercent = itsBlocksWritten + itsBlocksDropped == 0 ? 0.0 : (100.0 * itsBlocksDropped) / (itsBlocksWritten + itsBlocksDropped); - - LOG_INFO_STR(itsLogPrefix << "Finished writing: " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped: " << std::setprecision(3) << dropPercent << "% lost" ); - - // log some final characteristics for CEPlogProcessor for feedback to MoM/LTA - ParameterSet feedbackLTA = itsWriter->configuration(); - string prefix = "UNKNOWN"; - - switch (itsOutputType) { - case CORRELATED_DATA: - prefix = formatString("Observation.DataProducts.Output_Correlated_[%u].", itsStreamNr); - break; - - case BEAM_FORMED_DATA: - prefix = formatString("Observation.DataProducts.Output_Beamformed_[%u].", itsStreamNr); - break; - - default: - break; - } - - // For now, transport feedback parset through log lines - for (ParameterSet::const_iterator i = feedbackLTA.begin(); i != feedbackLTA.end(); ++i) - LOG_INFO_STR(itsLogPrefix << "LTA FEEDBACK: " << prefix << i->first << " = " << i->second); -} - - -void OutputThread::augment( const FinalMetaData &finalMetaData ) -{ - // wait for writer thread to finish, so we'll have an itsWriter - ASSERT(itsThread.get()); - - itsThread = 0; - - // augment the data product - ASSERT(itsWriter.get()); - - itsWriter->augment(finalMetaData); -} - - -void OutputThread::mainLoop() -{ - LOG_DEBUG_STR(itsLogPrefix << "OutputThread::mainLoop() entered"); - - try { - createMS(); - doWork(); -#if defined HAVE_AIPSPP - } catch (casa::AipsError &ex) { - LOG_ERROR_STR(itsLogPrefix << "Caught AipsError: " << ex.what()); - cleanUp(); -#endif - } catch (...) { - cleanUp(); // Of course, C++ does not need "finally" >:( - throw; - } - - cleanUp(); -} - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Storage/src/PropertyInterface.conf b/RTCP/Storage/src/PropertyInterface.conf deleted file mode 100644 index d31fe4cb6fc591ca62c240dd5398d7ba90dc5c9a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/PropertyInterface.conf +++ /dev/null @@ -1,6 +0,0 @@ -mac.top.GCF-PI-RTC.client.remoteservice=GCF-PA:provider -mac.top.GCF-PI-CEP.client.remoteservice=GCF-PA:provider -mac.ns.GCF-PI.rtc-provider.type=TCP -mac.ns.GCF-PI.cep-provider.type=TCP -mac.ns.GCF-PI.cep-provider.host=lofar30 -mac.ns.GCF-PI.cep-provider.port=23002 diff --git a/RTCP/Storage/src/Storage_main.cc b/RTCP/Storage/src/Storage_main.cc deleted file mode 100644 index 911d225c362cfc3e014230f60bdb8c74289f2923..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/Storage_main.cc +++ /dev/null @@ -1,163 +0,0 @@ -//# Storage_main.cc: -//# -//# Copyright (C) 2002-2004 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Common/CasaLogSink.h> -#include <Common/StringUtil.h> -#include <Common/Exceptions.h> -#include <Common/NewHandler.h> -#include <ApplCommon/Observation.h> -#include <Interface/Exceptions.h> -#include <Interface/Parset.h> -#include <Interface/Stream.h> -#include <Interface/FinalMetaData.h> -#include <Common/Thread/Thread.h> -#include <Stream/PortBroker.h> -#include <Storage/SubbandWriter.h> -#include <Storage/IOPriority.h> -#include <Storage/Package__Version.h> - -#if defined HAVE_MPI -#include <mpi.h> -#endif - -#include <sys/select.h> -#include <unistd.h> -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <libgen.h> - -#include <stdexcept> -#include <string> -#include <vector> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> - - -// install a new handler to produce backtraces for bad_alloc -LOFAR::NewHandler h(LOFAR::BadAllocException::newHandler); - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -char stdoutbuf[1024], stderrbuf[1024]; - -int main(int argc, char *argv[]) -{ -#if defined HAVE_LOG4CPLUS - char *dirc = strdup(argv[0]); - - INIT_LOGGER(string(getenv("LOFARROOT") ? : dirname(dirc)) + "/../etc/Storage_main.log_prop"); - - free(dirc); -#elif defined HAVE_LOG4CXX - #error LOG4CXX support is broken (nonsensical?) -- please fix this code if you want to use it - Context::initialize(); - setLevel("Global",8); -#else - INIT_LOGGER_WITH_SYSINFO(str(boost::format("Storage@%02d") % (argc > 2 ? atoi(argv[2]) : -1))); -#endif - - CasaLogSink::attach(); - - try { - if (argc != 4) - throw StorageException(str(boost::format("usage: %s obsid rank is_bigendian") % argv[0]), THROW_ARGS); - - setvbuf(stdout, stdoutbuf, _IOLBF, sizeof stdoutbuf); - setvbuf(stderr, stderrbuf, _IOLBF, sizeof stderrbuf); - - LOG_DEBUG_STR("Started: " << argv[0] << ' ' << argv[1] << ' ' << argv[2] << ' ' << argv[3]); - - int observationID = boost::lexical_cast<int>(argv[1]); - unsigned myRank = boost::lexical_cast<unsigned>(argv[2]); - bool isBigEndian = boost::lexical_cast<bool>(argv[3]); - - setIOpriority(); - setRTpriority(); - lockInMemory(); - - PortBroker::createInstance(storageBrokerPort(observationID)); - - // retrieve the parset - string resource = getStorageControlDescription(observationID, myRank); - PortBroker::ServerStream controlStream(resource); - - Parset parset(&controlStream); - Observation obs(&parset, false, parset.totalNrPsets()); - - vector<string> hostnames = parset.getStringVector("OLAP.Storage.hosts", true); - ASSERT(myRank < hostnames.size()); - string myHostName = hostnames[myRank]; - - string obsLogPrefix = str(boost::format("[obs %u] ") % parset.observationID()); - - { - // make sure "parset" stays in scope for the lifetime of the SubbandWriters - - vector<SmartPtr<SubbandWriter> > subbandWriters; - - for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++) { - for (unsigned streamNr = 0; streamNr < parset.nrStreams(outputType); streamNr ++) { - if (parset.getHostName(outputType, streamNr) == myHostName) { - unsigned writerNr = 0; - - // lookup PVSS writer number for this file - for (unsigned i = 0; i < obs.streamsToStorage.size(); i++) { - Observation::StreamToStorage &s = obs.streamsToStorage[i]; - - if (s.dataProductNr == static_cast<unsigned>(outputType) && s.streamNr == streamNr) { - writerNr = s.writerNr; - break; - } - } - - string sbLogPrefix = str(boost::format("[obs %u type %u stream %3u writer %3u] ") % parset.observationID() % outputType % streamNr % writerNr); - - try { - subbandWriters.push_back(new SubbandWriter(parset, outputType, streamNr, isBigEndian, sbLogPrefix)); - } catch (Exception &ex) { - LOG_WARN_STR(sbLogPrefix << "Could not create writer: " << ex); - } catch (exception &ex) { - LOG_WARN_STR(sbLogPrefix << "Could not create writer: " << ex.what()); - } - } - } - } - - // Add final meta data (broken tile information, etc) - // that is obtained after the end of an observation. - LOG_INFO_STR(obsLogPrefix << "Waiting for final meta data"); - FinalMetaData finalMetaData; - finalMetaData.read(controlStream); - - LOG_INFO_STR(obsLogPrefix << "Processing final meta data"); - for (size_t i = 0; i < subbandWriters.size(); ++i) - try { - subbandWriters[i]->augment(finalMetaData); - } catch (Exception &ex) { - LOG_WARN_STR(obsLogPrefix << "Could not add final meta data: " << ex); - } - } - } catch (Exception &ex) { - LOG_FATAL_STR("[obs unknown] Caught Exception: " << ex); - return 1; - } - - LOG_INFO_STR("[obs unknown] Program end"); - return 0; -} diff --git a/RTCP/Storage/src/Storage_main.log_prop b/RTCP/Storage/src/Storage_main.log_prop deleted file mode 100644 index 3d46179d269ba4b755029cce75af58c2e416468f..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/Storage_main.log_prop +++ /dev/null @@ -1,29 +0,0 @@ - -# Configure the loggers -log4cplus.rootLogger=INFO, STDOUT -log4cplus.logger.TRC=INFO - -# prevent debug messages: accept >=WARN only, and don't forward messages to the rootLogger -log4cplus.logger.LCS.ApplCommon=WARN, STDOUT -log4cplus.additivity.LCS.ApplCommon=false -log4cplus.logger.LCS.MSLofar=WARN, STDOUT -log4cplus.additivity.LCS.MSLofar=false - -# Define the appenders -log4cplus.appender.STDOUT=log4cplus::ConsoleAppender -log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout -log4cplus.appender.STDOUT.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %m%n - -#log4cplus.appender.STDERR=log4cplus::ConsoleAppender -#log4cplus.appender.STDERR.layout=log4cplus::PatternLayout -#log4cplus.appender.STDERR.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %c{3} - %m [%.25l]%n -#log4cplus.appender.STDERR.logToStdErr=true - -#log4cplus.appender.FILE=log4cplus::RollingFileAppender -#log4cplus.appender.FILE.File=${LOG4CPLUS_LOGFILENAME}.log -#log4cplus.appender.FILE.MaxFileSize=10MB -#log4cplus.appender.FILE.MaxBackupIndex=2 -#log4cplus.appender.FILE.layout=log4cplus::PatternLayout -#log4cplus.appender.FILE.layout.ConversionPattern=%x %D{%d-%m-%y %H:%M:%S.%q} %-5p %c{3} - %m [%.25l]%n - -log4cplus.appender.DUMP=log4cplus::NullAppender diff --git a/RTCP/Storage/src/SubbandWriter.cc b/RTCP/Storage/src/SubbandWriter.cc deleted file mode 100644 index 4ffe477725be487d566bd2cd28ee3cff95d8184c..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/SubbandWriter.cc +++ /dev/null @@ -1,58 +0,0 @@ -//# SubbandWriter.cc: Writes visibilities in an AIPS++ measurement set -//# -//# Copyright (C) 2002-2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -#include <lofar_config.h> - -#include <Interface/DataFactory.h> -#include <Storage/SubbandWriter.h> - - -namespace LOFAR { -namespace RTCP { - - -SubbandWriter::SubbandWriter(const Parset &parset, OutputType outputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix) -{ - itsInputThread = new InputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix); - itsInputThread->start(); - - try { - itsOutputThread = new OutputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix, isBigEndian); - itsOutputThread->start(); - } catch (...) { - itsInputThread->cancel(); - throw; - } - - for (unsigned i = 0; i < maxReceiveQueueSize; i ++) - itsFreeQueue.append(newStreamableData(parset, outputType, streamNr)); - -} - -void SubbandWriter::augment( const FinalMetaData &finalMetaData ) -{ - itsOutputThread->augment(finalMetaData); -} - - -} // namespace RTCP -} // namespace LOFAR diff --git a/RTCP/Storage/src/TBB_StaticMapping.cc b/RTCP/Storage/src/TBB_StaticMapping.cc deleted file mode 100644 index b7076476a50a6f7ab18f313ef58826a97a66ad3c..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/TBB_StaticMapping.cc +++ /dev/null @@ -1,106 +0,0 @@ -//# TBB_StaticMapping.cc: read out the TBB static station-node mapping -//# -//# Copyright (C) 2012 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: TBB_StaticMapping.cc 3375 2012-03-12 20:01:54Z amesfoort $ - -#include <lofar_config.h> - -#include <Storage/TBB_StaticMapping.h> -#include <Common/StringUtil.h> -#include <Common/Exceptions.h> - -#include <fstream> - -using namespace std; - -namespace LOFAR { - -TBB_StaticMapping::TBB_StaticMapping() { -} - -TBB_StaticMapping::TBB_StaticMapping(const string& filename) { - parseStaticMapping(filename); -} - -void TBB_StaticMapping::parseStaticMapping(const string& filename) { - char buf[parseBufSize]; - const string ws(" \t"); - ifstream ifile(filename.c_str()); - if (!ifile) { - throw IOException("Failed to open TBB static meta data file with station to node mapping"); - } - - while (ifile.getline(buf, parseBufSize).good()) { - string sbuf(buf); - - size_t pos = sbuf.find('#'); // line comments - sbuf = sbuf.substr(0, pos); - vector<string> tokens(StringUtil::tokenize(sbuf, ws)); - - // We expect 3 tokens (columns): stationName (0), board (1), destNode (2); ignore other tokens and "empty" lines. - if (tokens.size() >= 3) { - itsMapping.insert(make_pair(tokens[2], make_pair(tokens[0], tokens[1]))); - } - } -} - -multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::begin() const { - return itsMapping.begin(); -} - -multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::end() const { - return itsMapping.end(); -} - -size_t TBB_StaticMapping::size() const { - return itsMapping.size(); -} - -bool TBB_StaticMapping::empty() const { - return itsMapping.empty(); -} - -vector<string> TBB_StaticMapping::getStationNames(const string& nodeName) const { - vector<string> mapping; - - for (pair<multimap<string, pair<string, string> >::const_iterator, - multimap<string, pair<string, string> >::const_iterator> iters( - itsMapping.equal_range(nodeName)); - iters.first != iters.second; ++iters.first) { - mapping.push_back((*iters.first).second.first); - } - - return mapping; -} - -vector<string> TBB_StaticMapping::getBoardNames(const string& nodeName) const { - vector<string> mapping; - - for (pair<multimap<string, pair<string, string> >::const_iterator, - multimap<string, pair<string, string> >::const_iterator> iters( - itsMapping.equal_range(nodeName)); - iters.first != iters.second; ++iters.first) { - mapping.push_back((*iters.first).second.second); - } - - return mapping; -} - -} // ns LOFAR diff --git a/RTCP/Storage/src/TBB_Writer.cc b/RTCP/Storage/src/TBB_Writer.cc deleted file mode 100644 index 95227d4f335340f4e6474abad82eb247d97f4b3a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/TBB_Writer.cc +++ /dev/null @@ -1,1232 +0,0 @@ -/* TBB_Writer.cc: Write TBB data into an HDF5 file - * - * Copyright (C) 2012 - * ASTRON (Netherlands Institute for Radio Astronomy) - * P.O.Box 2, 7990 AA Dwingeloo, The Netherlands - * - * This file is part of the LOFAR software suite. - * The LOFAR software suite 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 3 of the License, or - * (at your option) any later version. - * - * The LOFAR software suite 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. - * - * You should have received a copy of the GNU General Public License along - * with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. - * - * $Id: TBB_Writer.cc 47912 2012-09-07 11:54:53Z amesfoort $ - */ - -#include <lofar_config.h> - -#define _FILE_OFFSET_BITS 64 -#include <cstddef> -#include <cstring> -#include <csignal> -#include <ctime> -#include <cerrno> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <unistd.h> -#include <endian.h> -#if __BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN -#error Byte order is neither big endian nor little endian: not supported -#endif - -#include <iostream> -#include <sstream> -#include <algorithm> - -#include <Storage/TBB_Writer.h> -#include <Common/LofarConstants.h> -#include <Common/LofarLogger.h> -#ifdef basename // some glibc have this as a macro -#undef basename -#endif -#include <Common/SystemUtil.h> -#include <Common/SystemCallException.h> -#include <Common/StringUtil.h> -#include <Common/StreamUtil.h> -#include <ApplCommon/AntField.h> -#include <Stream/SocketStream.h> -#include <Interface/Exceptions.h> -#include <Interface/Stream.h> - -#include <dal/lofar/StationNames.h> - -#define TBB_TRANSIENT_MODE 1 -#define TBB_SPECTRAL_MODE 2 - -#define RSP_NR_SUBBANDS 512 - -namespace LOFAR { -namespace RTCP { - -using namespace std; - -EXCEPTION_CLASS(TBB_MalformedFrameException, StorageException); - -// The output_format is without seconds. The output_size is including the terminating NUL char. -static string formatFilenameTimestamp(const struct timeval& tv, const char* output_format, - const char* output_format_secs, size_t output_size) { - struct tm tm; - ::gmtime_r(&tv.tv_sec, &tm); - double secs = tm.tm_sec + tv.tv_usec / 1000000.0; - - vector<char> date(output_size); - - size_t nwritten = ::strftime(&date[0], output_size, output_format, &tm); - if (nwritten == 0) { - date[0] = '\0'; - } - (void)::snprintf(&date[0] + nwritten, output_size - nwritten, output_format_secs, secs); - - return string(&date[0]); -} - -// FileStream doesn't do pwrite(2). -static size_t tryPWrite(int fd, const void *ptr, size_t size, off_t offset) { - ssize_t bytes = ::pwrite(fd, ptr, size, offset); - if (bytes < 0) - THROW_SYSCALL("pwrite"); - return bytes; -} - -static void pwrite(int fd, const void *ptr, size_t size, off_t offset) { - while (size > 0) { - size_t bytes = tryPWrite(fd, ptr, size, offset); - size -= bytes; - offset += bytes; - ptr = static_cast<const char *>(ptr) + bytes; - } -} - -static ostream& operator<<(ostream& out, const TBB_Header& h) { - out << (unsigned)h.stationID << " " << (unsigned)h.rspID << " " << (unsigned)h.rcuID << " " << (unsigned)h.sampleFreq << - " " << h.seqNr << " " << h.time << " " << (h.nOfFreqBands == 0 ? h.sampleNr : h.bandSliceNr) << " " << h.nOfSamplesPerFrame << - " " << h.nOfFreqBands << " " << h.spare << " " << h.crc16; // casts uin8_t to unsigned to avoid printing as char - return out; -} - -////////////////////////////////////////////////////////////////////////////// - -TBB_Dipole::TBB_Dipole() -: itsRawOut(NULL) // needed, setting the others is superfluous -, itsDataset(NULL) -, itsFlagOffsets() -, itsSampleFreq(0) -, itsNrSubbands(0) -, itsTime(0) -, itsExpSampleNr(0) -, itsDatasetLen(0) -{ -} - -// Do not use. Only needed for vector<TBB_Dipole>(N). -TBB_Dipole::TBB_Dipole(const TBB_Dipole& rhs) -: itsRawOut(NULL) // idem. FileStream has no copy constr, but only copied before really set, so NULL is fine. -, itsDataset(rhs.itsDataset) -, itsFlagOffsets(rhs.itsFlagOffsets) -, itsSampleFreq(rhs.itsSampleFreq) -, itsNrSubbands(rhs.itsNrSubbands) -, itsTime(rhs.itsTime) -, itsExpSampleNr(rhs.itsExpSampleNr) -, itsDatasetLen(rhs.itsDatasetLen) -{ -} - -TBB_Dipole::~TBB_Dipole() { - // Executed by the main thread after joined with all workers, so no need to lock or delay cancellation. - if (isInitialized()) { - try { - if (itsNrSubbands == 0) { // transient mode - itsDataset->resize1D(itsDatasetLen); - } else { // spectral mode - vector<ssize_t> newDims(2); - newDims[0] = itsDatasetLen; - newDims[1] = itsNrSubbands; // only the 1st dim can be extended - itsDataset->resize(newDims); - } - } catch (exception& exc) { // dal::DALException, or std::bad_alloc from vector constr - LOG_WARN_STR("TBB: failed to resize HDF5 dipole dataset to external data size: " << exc.what()); - } - - try { - itsDataset->dataLength().value = static_cast<unsigned long long>(itsDatasetLen); - } catch (dal::DALException& exc) { - LOG_WARN_STR("TBB: failed to set dipole DATA_LENGTH attribute: " << exc.what()); - } - try { - itsDataset->flagOffsets().create(itsFlagOffsets.size()).set(itsFlagOffsets); - } catch (dal::DALException& exc) { - LOG_WARN_STR("TBB: failed to set dipole FLAG_OFFSETS attribute: " << exc.what()); - } - - delete itsDataset; - delete itsRawOut; - } -} - -void TBB_Dipole::init(const TBB_Header& header, const Parset& parset, - const StationMetaData& stationMetaData, - const SubbandInfo& subbandInfo, const string& rawFilename, - dal::TBB_Station& station, Mutex& h5Mutex) { - itsSampleFreq = static_cast<uint32_t>(header.sampleFreq) * 1000000; - itsNrSubbands = header.nOfFreqBands; - if (itsNrSubbands > subbandInfo.centralFreqs.size()) { - throw StorageException("TBB: dropping frame with invalid nOfFreqBands"); - } - - itsRawOut = new FileStream(rawFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH); - - { - ScopedLock h5OutLock(h5Mutex); - try { - initTBB_DipoleDataset(header, parset, stationMetaData, subbandInfo, rawFilename, station); - } catch (exception& ) { - /* - * This nonsense is needed, because FileStream has no FileStream() and open() (and swap()), - * and since we know the filename only at runtime (timestamp), we need itsRawOut to be a raw ptr. - * We already have a raw ptr for the dataset and >1 raw ptr in 1 C++ class becomes buggy or messy. - */ - delete itsRawOut; - itsRawOut = NULL; - throw; - } - } - - itsTime = header.time; - if (itsNrSubbands == 0) { // transient mode - itsExpSampleNr = header.sampleNr; - } else { // spectral mode - itsExpSliceNr = header.bandSliceNr >> TBB_SLICE_NR_SHIFT; - } - itsDatasetLen = 0; // already 0, for completeness -} - -bool TBB_Dipole::isInitialized() const { - return itsRawOut != NULL; -} - -// Add a new flag range at the end or extend the last stored flag range. 'len' may not be 0. -void TBB_Dipole::appendFlags(size_t offset, size_t len) { - if (itsFlagOffsets.empty() || offset > itsFlagOffsets.back().end) { - itsFlagOffsets.push_back(dal::Range(offset, offset + len)); - } else { // extend - itsFlagOffsets.back().end += len; - } -} - -void TBB_Dipole::processTransientFrameData(const TBB_Frame& frame) { - /* - * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup, - * but let us know if it ever happens, then we will adapt this code and appendFlags(). - */ - if (frame.header.time < itsTime || (frame.header.time == itsTime && frame.header.sampleNr < itsExpSampleNr)) { - LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " << - (unsigned)frame.header.stationID << " " << (unsigned)frame.header.rspID << " " << (unsigned)frame.header.rcuID << - " " << frame.header.time << " " << itsTime << " " << frame.header.sampleNr << " " << itsExpSampleNr); - return; - } - - off_t offset = 0; - if (frame.header.time == itsTime) { - offset = itsDatasetLen + frame.header.sampleNr - itsExpSampleNr; - } else { // crossed a seconds boundary, potentially more than once on excessive frame loss - // A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples. - if (itsDatasetLen < (int32_t)itsSampleFreq) { - offset = itsDatasetLen; - itsTime++; - } - offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq; - - uint32_t newSecSampleNr0 = frame.header.sampleNr & (frame.header.nOfSamplesPerFrame - 1); // 0, or 512 by correctSampleNr() - offset += frame.header.sampleNr - newSecSampleNr0; - } - - /* - * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples. - * This cannot detect lost frames at the end of a dataset. - */ - size_t nskipped = offset - itsDatasetLen; - if (nskipped > 0) { - appendFlags(itsDatasetLen, nskipped); - itsRawOut->skip(nskipped * sizeof(frame.payload.data[0])); // skip space of lost frame(s) - } - - /* - * On a data checksum error, flag these samples. - * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb. - */ - if (!crc32tbb(&frame.payload, frame.header.nOfSamplesPerFrame)) { - appendFlags(offset, frame.header.nOfSamplesPerFrame); - uint32_t crc32; - memcpy(&crc32, &frame.payload.data[frame.header.nOfSamplesPerFrame], sizeof crc32); // strict-aliasing safe - LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32); - } else if (hasAllZeroDataSamples(frame.payload, frame.header.nOfSamplesPerFrame)) { - appendFlags(offset, frame.header.nOfSamplesPerFrame); - } - - // Since we are writing around HDF5, there is no need to lock. Resize the HDF5 dataset at the end (destr). - itsRawOut->write(frame.payload.data, static_cast<size_t>(frame.header.nOfSamplesPerFrame) * sizeof(frame.payload.data[0])); - - itsTime = frame.header.time; - itsExpSampleNr = frame.header.sampleNr + frame.header.nOfSamplesPerFrame; - itsDatasetLen = offset + frame.header.nOfSamplesPerFrame; -} - -void TBB_Dipole::processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo) { - /* - * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup, - * but let us know if it ever happens, then we will adapt this code and appendFlags(). - */ - uint32_t sliceNr = frame.header.bandSliceNr >> TBB_SLICE_NR_SHIFT; // cannot sanitize fully: too large values indicate lost data: flag - if (frame.header.time < itsTime || (frame.header.time == itsTime && sliceNr < itsExpSliceNr)) { - LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " << - (unsigned)frame.header.stationID << " " << (unsigned)frame.header.rspID << " " << (unsigned)frame.header.rcuID << - " " << frame.header.time << " " << itsTime << " " << frame.header.bandSliceNr << " " << itsExpSliceNr); - return; - } - - off_t offset = 0; - if (frame.header.time == itsTime) { - offset = itsDatasetLen + sliceNr - itsExpSliceNr; - } else { // crossed a seconds boundary, potentially more than once on excessive frame loss - // A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples. - if (itsDatasetLen < (int32_t)itsSampleFreq) { - offset = itsDatasetLen; - itsTime++; - } - offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq + sliceNr; - } - - /* - * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples (fine). - * This cannot detect lost frames at the end of a dataset. - */ - size_t nskipped = offset - itsDatasetLen; - if (nskipped > 0) { - appendFlags(itsDatasetLen, nskipped); // no need to skip/lseek; we use pwrite() below - } - - /* - * On a data checksum error, flag these samples. - * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb. - * - * TBB Design Doc states the crc32 is computed for transient data only, but it is also valid for spectral data. - * Except that it looks invalid for the first spectral frame each second, so skip checking those. // TODO: enable 'sliceNr != 0 && ' below after verifying with recent real data - */ - unsigned nSamplesPerSubband = frame.header.nOfSamplesPerFrame / itsNrSubbands; // any remainder is zeroed until the crc32 - if (/*sliceNr != 0 && */!crc32tbb(&frame.payload, 2 * MAX_TBB_SPECTRAL_NSAMPLES)) { - appendFlags(offset, nSamplesPerSubband); - uint32_t crc32; - memcpy(&crc32, &frame.payload.data[2 * MAX_TBB_SPECTRAL_NSAMPLES], sizeof crc32); // strict-aliasing safe - LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32); - } else if (hasAllZeroDataSamples(frame.payload, 2 * frame.header.nOfSamplesPerFrame)) { - appendFlags(offset, nSamplesPerSubband); - } - - /* - * In practice, each frame contains the same number of samples for all subbands, so the received band number is always 0. - * Hence, disable support for cross-frame slices, such that in spectral mode we can also store flags in 1D. - */ - /*unsigned bandNr = frame.header.bandSliceNr & TBB_BAND_NR_MASK; - if (bandNr + itsNrSubbands >= RSP_NR_SUBBANDS) { - LOG_WARN("TBB: Incorrect band number has been corrected to 0"); - bandNr = 0; // safe default - }*/ - // Data arrives interleaved, so reorder, one sample at a time. Esp. inefficient if only 1 subband, but fast enough. - for (unsigned i = 0; i < nSamplesPerSubband; ++i) { - for (unsigned j = 0; j < itsNrSubbands; ++j) { - off_t sampleOffset = (offset + subbandInfo.storageIndices[j/*(bandNr + j) % itsNrSubbands*/] * SPECTRAL_TRANSFORM_SIZE) * 2 * sizeof(frame.payload.data[0]); - pwrite(itsRawOut->fd, &frame.payload.data[2 * (i * itsNrSubbands + j)], 2 * sizeof(frame.payload.data[0]), sampleOffset); - } - offset += 1; - } - - itsTime = frame.header.time; - itsExpSliceNr = sliceNr + nSamplesPerSubband; - itsDatasetLen = offset; -} - -void TBB_Dipole::initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset, - const StationMetaData& stationMetaData, - const SubbandInfo& subbandInfo, - const string& rawFilename, dal::TBB_Station& station) { - // Override endianess. TBB data is always stored little endian and also received as such, so written as-is on any platform. - if (subbandInfo.centralFreqs.empty()) { // transient mode - dal::TBB_DipoleDataset* dpDataset = new dal::TBB_DipoleDataset(station.dipole(header.stationID, header.rspID, header.rcuID)); - itsDataset = static_cast<dal::TBB_Dataset<short>*>(dpDataset); - - itsDataset->create1D(0, -1, LOFAR::basename(rawFilename), itsDataset->LITTLE); - - dpDataset->sampleNumber().value = header.sampleNr; - } else { // spectral mode - dal::TBB_SubbandsDataset* sbDataset = new dal::TBB_SubbandsDataset(station.subbands(header.stationID, header.rspID, header.rcuID)); - itsDataset = reinterpret_cast<dal::TBB_Dataset<short>*>(sbDataset); // not so nice - - vector<ssize_t> dims(2), maxdims(2); - dims[0] = 0; - dims[1] = itsNrSubbands; - maxdims[0] = -1; // only the 1st dim can be extendible - maxdims[1] = itsNrSubbands; - itsDataset->create(dims, maxdims, LOFAR::basename(rawFilename), itsDataset->LITTLE); - - sbDataset->sliceNumber() .value = header.bandSliceNr >> TBB_SLICE_NR_SHIFT; - sbDataset->spectralNofBands() .value = itsNrSubbands; - sbDataset->spectralBands().create(itsNrSubbands).set(subbandInfo.centralFreqs); - sbDataset->spectralBandsUnit().value = "MHz"; - } - - itsDataset->groupType().value = "DipoleDataset"; - itsDataset->stationID().value = header.stationID; - itsDataset->rspID() .value = header.rspID; - itsDataset->rcuID() .value = header.rcuID; - - itsDataset->sampleFrequency() .value = header.sampleFreq; - itsDataset->sampleFrequencyUnit().value = "MHz"; - - itsDataset->time().value = header.time; // in seconds - - itsDataset->samplesPerFrame().value = header.nOfSamplesPerFrame; // possibly sanitized - //itsDataset->dataLength().value is set at the end (destr) - //itsDataset->flagOffsets().value is set at the end (destr) // TODO: attrib -> 1D dataset - itsDataset->nyquistZone().value = parset.nyquistZone(); - -//#include "MAC/APL/PIC/RSP_Driver/src/CableSettings.h" or "RCUCables.h" - // Cable delays (optional) from static meta data. - //itsDataset->cableDelay().value = ???; // TODO - //itsDataset->cableDelayUnit().value = "ns"; - -/* -> No DIPOLE_CALIBRATION_DELAY_VALUE -> No DIPOLE_CALIBRATION_DELAY_UNIT -These can be calculated from the values in the LOFAR calibration -tables, but we can do that ourselves as long as the calibration table -values for each dipole are written to the new keyword. Sander: please put them in; see the code ref below. -DIPOLE_CALIBRATION_GAIN_CURVE. - -// Use StaticMetaData/CalTables - -calibration delay value en unit zijn nuttiger -en is het beste om die er gelijk in te schrijven -momenteel -In /opt/cep/lus/daily/Mon/src/code/src/PyCRTools/modules/metadata.py -heb ik code om de calibratie tabellen uit te lezen -De functie: getStationPhaseCalibration -elke .dat file bevat 96*512*2 doubles -voor 96 rcus, 512 frequenties, een complexe waarde -maar nu vraag ik me wel weer af of de frequenties of de rcus eerst komen -*/ -//NL stations: 768 kB, Int'l: 1.5 MB. Drop optional ASCI header. See also Station/StationCal/writeCalTable.m - //itsDataset->dipoleCalibrationDelay().value = ???; // Pim can compute this from the GainCurve below - //itsDataset->dipoleCalibrationDelayUnit().value = 's'; - //itsDataset->dipoleCalibrationGainCurve().create(???.size()).set(???); // st cal table -//write cal tables into proper n-dimensional h5 data set, not attribute! Add access functions to DAL? - - // Skip if station is not participating in the observation (should not happen). - if (stationMetaData.available && 2u * 3u * header.rcuID + 2u < stationMetaData.antPositions.size()) { - /*TODO - * Selecting the right positions depends on the antenna set. Checking vs the tables in - * lhn001:/home/veen/lus/src/code/data/lofar/antennapositions/ can help, but their repos may be outdated. - */ - vector<double> antPos(3); - antPos[0] = stationMetaData.antPositions[2u * 3u * header.rcuID]; - antPos[1] = stationMetaData.antPositions[2u * 3u * header.rcuID + 1u]; - antPos[2] = stationMetaData.antPositions[2u * 3u * header.rcuID + 2u]; - itsDataset->antennaPosition().create(antPos.size()).set(antPos); // absolute position - - itsDataset->antennaPositionUnit() .value = "m"; - itsDataset->antennaPositionFrame().value = parset.positionType(); // "ITRF" - - /* - * The normal vector and rotation matrix are actually per antenna field, - * but given the HBA0/HBA1 "ears" depending on antenna set, it was - * decided to store them per antenna. - */ - itsDataset->antennaNormalVector() .create(stationMetaData.normalVector.size()).set(stationMetaData.normalVector); // 3 doubles - itsDataset->antennaRotationMatrix().create(stationMetaData.rotationMatrix.size()).set(stationMetaData.rotationMatrix); // 9 doubles, 3x3, row-major - } - - // Tile beam is the analog beam. Only HBA can have one analog beam; optional. - if (parset.haveAnaBeam()) { - vector<double> anaBeamDir(parset.getAnaBeamDirection()); - itsDataset->tileBeam() .create(anaBeamDir.size()).set(anaBeamDir); // always for beam 0 - itsDataset->tileBeamUnit() .value = "m"; - itsDataset->tileBeamFrame().value = parset.getAnaBeamDirectionType(); // idem - - //itsDataset->tileBeamDipoles().create(???.size()).set(???); - - //itsDataset->tileCoefUnit().value = ???; - //itsDataset->tileBeamCoefs().value = ???; - - // Relative position within the tile. - //itsDataset->tileDipolePosition().value = ???; - //itsDataset->tileDipolePositionUnit().value = ???; - //itsDataset->tileDipolePositionFrame().value = ???; - } - - itsDataset->dispersionMeasure() .value = parset.dispersionMeasure(0, 0); // beam, pencil TODO: adapt too if >1 beam? - itsDataset->dispersionMeasureUnit().value = "pc/cm^3"; -} - -bool TBB_Dipole::hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const { - /* - * Good data only has a few consecutive zero values, so this loop terminates - * quickly, unless the antenna is broken or disabled, which happens sometimes. - */ - for (size_t i = 0; i < nTrSamples; i++) { - if (payload.data[i] != 0) { - return false; - } - } - - return true; -} - -////////////////////////////////////////////////////////////////////////////// - -TBB_Station::TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset, - const StationMetaData& stationMetaData, const string& h5Filename) -: itsH5File(dal::TBB_File(h5Filename, dal::TBB_File::CREATE)) -, itsH5Mutex(h5Mutex) -, itsStation(itsH5File.station(stationName)) -, itsDipoles(MAX_RSPBOARDS/* = per station*/ * NR_RCUS_PER_RSPBOARD) // = 192 for int'l stations -, itsParset(parset) -, itsStationMetaData(stationMetaData) -, itsSubbandInfo(getSubbandInfo(parset)) -, itsH5Filename(h5Filename) -{ - initCommonLofarAttributes(); - initTBB_RootAttributesAndGroups(stationName); -} - -TBB_Station::~TBB_Station() { - /* - * Apart from the main thread, also potentially (rarely) executed by an output thread on failed - * to insert new TBB_Station object into an std::map. For the output thread case, do dc and slH5. - */ - ScopedDelayCancellation dc; - try { - ScopedLock slH5(itsH5Mutex); - itsStation.nofDipoles().value = itsStation.dipoles().size(); - } catch (exception& exc) { // dal::DALException or worse - LOG_WARN_STR("TBB: failed to set station NOF_DIPOLES attribute: " << exc.what()); - } -} - -double TBB_Station::getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const { - return (nyquistZone - 1 + (double)subbandNr / RSP_NR_SUBBANDS) * sampleFreq / 2.0; -} - -SubbandInfo TBB_Station::getSubbandInfo(const Parset& parset) const { - SubbandInfo info; - - int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0); - if (operatingMode == TBB_SPECTRAL_MODE) { - vector<unsigned> tbbSubbandList(parset.getUint32Vector("Observation.TBB.TBBsetting.subbandList", true)); - if (tbbSubbandList.empty() || tbbSubbandList.size() > MAX_TBB_SPECTRAL_NSAMPLES) { - throw InterfaceException("TBB: spectral mode selected, but empty or too long subband list provided"); - } - sort(tbbSubbandList.begin(), tbbSubbandList.end()); - - unsigned nyquistZone = parset.nyquistZone(); - unsigned sampleFreq = parset.clockSpeed() / 1000000; - info.centralFreqs.reserve(tbbSubbandList.size()); - for (size_t i = 0; i < tbbSubbandList.size(); ++i) { - info.centralFreqs.push_back(getSubbandCentralFreq(tbbSubbandList[i], nyquistZone, sampleFreq)); - } - - // "Invert" tbbSubbandList, such that we can later simply lookup where to store a subband. - info.storageIndices.resize(RSP_NR_SUBBANDS, (unsigned)-1); - for (unsigned i = 0; i < tbbSubbandList.size(); ++i) { - unsigned sbNr = tbbSubbandList[i]; - if (sbNr >= RSP_NR_SUBBANDS) { - throw InterfaceException("TBB: indicated subband number too high"); - } - info.storageIndices[sbNr] = i; - } - } - - return info; -} - -string TBB_Station::getRawFilename(unsigned rspID, unsigned rcuID) const { - string rawFilename(itsH5Filename); - string rsprcuStr(formatString("_%03u%03u", rspID, rcuID)); - size_t pos = rawFilename.find('_', rawFilename.find('_') + 1); - rawFilename.insert(pos, rsprcuStr); // insert _rsp/rcu IDs after station name (2nd '_') - rawFilename.resize(rawFilename.size() - (sizeof(".h5") - 1)); - rawFilename.append(".raw"); - return rawFilename; -} - -void TBB_Station::processPayload(const TBB_Frame& frame) { - // Guard against bogus incoming rsp/rcu IDs with at(). - TBB_Dipole& dipole(itsDipoles.at(frame.header.rspID * NR_RCUS_PER_RSPBOARD + frame.header.rcuID)); - - // Each dipole stream is sent to a single port (thread), so no need to grab a mutex here to avoid double init. - if (!dipole.isInitialized()) { - string rawFilename(getRawFilename(frame.header.rspID, frame.header.rcuID)); - // Do pass a ref to the h5 mutex for when writing into the HDF5 file. - dipole.init(frame.header, itsParset, itsStationMetaData, itsSubbandInfo, - rawFilename, itsStation, itsH5Mutex); - } - - if (itsSubbandInfo.centralFreqs.empty()) { // transient mode - dipole.processTransientFrameData(frame); - } else { // spectral mode - dipole.processSpectralFrameData(frame, itsSubbandInfo); - } -} - -string TBB_Station::utcTimeStr(double time) const { - time_t timeSec = static_cast<time_t>(floor(time)); - unsigned long timeNSec = static_cast<unsigned long>(round( (time-floor(time))*1e9 )); - - char utc_str[50]; - struct tm tm; - gmtime_r(&timeSec, &tm); - if (strftime(utc_str, sizeof(utc_str), "%Y-%m-%dT%H:%M:%S", &tm) == 0) { - return ""; - } - - return formatString("%s.%09luZ", utc_str, timeNSec); -} - -double TBB_Station::toMJD(double time) const { - // January 1st, 1970, 00:00:00 (GMT) equals 40587.0 Modify Julian Day number - return 40587.0 + time / (24*60*60); -} - -void TBB_Station::initCommonLofarAttributes() { - itsH5File.groupType().value = "Root"; - - //itsH5File.fileName() is set by DAL - //itsH5File.fileDate() is set by DAL - //itsH5File.fileType() is set by DAL - //itsH5File.telescope() is set by DAL - - itsH5File.projectID() .value = itsParset.getString("Observation.Campaign.name", ""); - itsH5File.projectTitle().value = itsParset.getString("Observation.Scheduler.taskName", ""); - itsH5File.projectPI() .value = itsParset.getString("Observation.Campaign.PI", ""); - ostringstream oss; - // Use ';' instead of ',' to pretty print, because ',' already occurs in names (e.g. Smith, J.). - writeVector(oss, itsParset.getStringVector("Observation.Campaign.CO_I", ""), "; ", "", ""); - itsH5File.projectCOI() .value = oss.str(); - itsH5File.projectContact().value = itsParset.getString("Observation.Campaign.contact", ""); - - itsH5File.observationID() .value = formatString("%u", itsParset.observationID()); - - itsH5File.observationStartUTC().value = utcTimeStr(itsParset.startTime()); - itsH5File.observationStartMJD().value = toMJD(itsParset.startTime()); - - // The stop time can be a bit further than the one actually specified, because we process in blocks. - unsigned nrBlocks = floor((itsParset.stopTime() - itsParset.startTime()) / itsParset.CNintegrationTime()); // TODO: check vs bf: unsigned nrBlocks = parset.nrBeamFormedBlocks(); - double stopTime = itsParset.startTime() + nrBlocks * itsParset.CNintegrationTime(); - - itsH5File.observationEndUTC().value = utcTimeStr(stopTime); - itsH5File.observationEndMJD().value = toMJD(stopTime); - - itsH5File.observationNofStations().value = itsParset.nrStations(); // TODO: SS beamformer? - // For the observation attribs, dump all stations participating in the observation (i.e. allStationNames(), not mergedStationNames()). - // This may not correspond to which station HDF5 groups will be written for TBB, but that is true anyway, regardless of any merging. - vector<string> allStNames(itsParset.allStationNames()); - itsH5File.observationStationsList().create(allStNames.size()).set(allStNames); // TODO: SS beamformer? - - double subbandBandwidth = itsParset.subbandBandwidth(); - double channelBandwidth = itsParset.channelWidth(); - - // if PPF is used, the frequencies are shifted down by half a channel - // We'll annotate channel 0 to be below channel 1, but in reality it will - // contain frequencies from both the top and the bottom half-channel. - double frequencyOffsetPPF = itsParset.nrChannelsPerSubband() > 1 ? 0.5 * channelBandwidth : 0.0; - - const vector<double> subbandCenterFrequencies(itsParset.subbandToFrequencyMapping()); - - double min_centerfrequency = *min_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() ); - double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() ); - double sum_centerfrequencies = accumulate( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end(), 0.0 ); - - itsH5File.observationFrequencyMax() .value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6; - itsH5File.observationFrequencyMin() .value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6; - itsH5File.observationFrequencyCenter().value = (sum_centerfrequencies / subbandCenterFrequencies.size() - frequencyOffsetPPF) / 1e6; - itsH5File.observationFrequencyUnit() .value = "MHz"; - - itsH5File.observationNofBitsPerSample().value = itsParset.nrBitsPerSample(); - itsH5File.clockFrequency() .value = itsParset.clockSpeed() / 1e6; - itsH5File.clockFrequencyUnit() .value = "MHz"; - - itsH5File.antennaSet() .value = itsParset.antennaSet(); - itsH5File.filterSelection().value = itsParset.getString("Observation.bandFilter", ""); - - unsigned nrSAPs = itsParset.nrBeams(); - vector<string> targets(nrSAPs); - - for (unsigned sap = 0; sap < nrSAPs; sap++) { - targets[sap] = itsParset.beamTarget(sap); - } - - itsH5File.targets().create(targets.size()).set(targets); - -#ifndef TBB_WRITER_VERSION - itsH5File.systemVersion().value = LOFAR::StorageVersion::getVersion(); -#else - itsH5File.systemVersion().value = TBB_WRITER_VERSION; -#endif - - //itsH5File.docName() is set by DAL - //itsH5File.docVersion() is set by DAL - - itsH5File.notes().value = ""; -} - -// The writer creates one HDF5 file per station, so create only one Station Group here. -void TBB_Station::initTBB_RootAttributesAndGroups(const string& stName) { - int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0); - if (operatingMode == TBB_SPECTRAL_MODE) { - itsH5File.operatingMode().value = "spectral"; - itsH5File.spectralTransformSize().value = SPECTRAL_TRANSFORM_SIZE; - } else { - itsH5File.operatingMode().value = "transient"; - } - - itsH5File.nofStations().value = 1u; - - // Find the station name we are looking for and retrieve its pos using the found idx. - vector<double> stPos; - - vector<string> obsStationNames(itsParset.allStationNames()); - vector<string>::const_iterator nameIt(obsStationNames.begin()); - - vector<double> stationPositions(itsParset.positions()); // len must be (is generated as) 3x #stations - vector<double>::const_iterator posIt(stationPositions.begin()); - string stFullName; - for ( ; nameIt != obsStationNames.end(); ++nameIt, posIt += 3) { - stFullName = *nameIt; - if (stName == stFullName.substr(0, stName.size())) { // for TBB, consider "CS001" == "CS001HBA0" etc - break; - } - } - if (nameIt != obsStationNames.end() && posIt < stationPositions.end()) { // found? - stPos.assign(posIt, posIt + 3); - } else { // N/A, but create the group anyway to be able to store incoming data. - stFullName.clear(); - } - itsStation.create(); - initStationGroup(itsStation, stName, stFullName, stPos); - - // Trigger Group - dal::TBB_Trigger tg(itsH5File.trigger()); - tg.create(); - initTriggerGroup(tg); -} - -void TBB_Station::initStationGroup(dal::TBB_Station& st, const string& stName, - const string& stFullName, const vector<double>& stPosition) { - st.groupType() .value = "StationGroup"; - st.stationName().value = stName; - - if (!stPosition.empty()) { - st.stationPosition() .create(stPosition.size()).set(stPosition); - st.stationPositionUnit() .value = "m"; - st.stationPositionFrame().value = itsParset.positionType(); - } - - // digital beam(s) - if (itsParset.nrBeams() > 0) { // TODO: adapt DAL, so we can write all digital beams, analog too if tiles (HBA) - vector<double> beamDir(itsParset.getBeamDirection(0)); - st.beamDirection() .create(beamDir.size()).set(beamDir); - st.beamDirectionUnit() .value = "m"; - st.beamDirectionFrame().value = itsParset.getBeamDirectionType(0); - } - - // Parset clockCorrectionTime() also returns 0.0 if stFullName is unknown. Avoid this ambiguity. - try { - double clockCorr = itsParset.getDouble(string("PIC.Core.") + stFullName + ".clockCorrectionTime"); - st.clockOffset() .value = clockCorr; - st.clockOffsetUnit().value = "s"; - } catch (APSException& exc) { - LOG_WARN_STR("TBB: failed to write station clock offset and unit attributes: " << exc); - } - - //st.nofDipoles.value is set at the end (destr) -} - -void TBB_Station::initTriggerGroup(dal::TBB_Trigger& tg) { - tg.groupType() .value = "TriggerGroup"; - tg.triggerType() .value = "Unknown"; - tg.triggerVersion().value = 0; // There is no trigger algorithm info available to us yet. - - // Trigger parameters (how to decide if there is a trigger; per obs) - try { - tg.paramCoincidenceChannels().value = itsParset.getInt ("Observation.ObservationControl.StationControl.TBBControl.NoCoincChann"); - tg.paramCoincidenceTime() .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime"); - tg.paramDirectionFit() .value = itsParset.getString("Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit"); - tg.paramElevationMin() .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MinElevation"); - tg.paramFitVarianceMax() .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance"); - } catch (APSException& exc) { - LOG_WARN_STR("TBB: Failed to write trigger parameters: " << exc); - } - - // Trigger data (per trigger) - // N/A atm - - /* - * It is very likely that the remaining (optional) attributes and the trigger alg - * will undergo many changes. TBB user/science applications will have to retrieve and - * set the remaining fields "by hand" for a while using e.g. DAL by checking and - * specifying each attribute name presumed available. - * Until it is clear what is needed and available, this cannot be standardized. - * - * If you add fields using parset getTYPE(), catch the possible APSException as above. - */ - -} - -////////////////////////////////////////////////////////////////////////////// - -TBB_StreamWriter::TBB_StreamWriter(TBB_Writer& writer, const string& inputStreamName, - size_t expNTrSamples, const string& logPrefix, - int& inExitStatus, int& outExitStatus) -: itsWriter(writer) -, itsInputStreamName(inputStreamName) -, itsExpFrameSize(sizeof(TBB_Header) + expNTrSamples * sizeof(int16_t) + sizeof(uint32_t)) -, itsLogPrefix(logPrefix) -, itsInExitStatus(inExitStatus) -, itsOutExitStatus(outExitStatus) -{ - itsFrameBuffers = new TBB_Frame[nrFrameBuffers]; - //itsReceiveQueue.reserve(nrFrameBuffers); // Queue does not support this... - try { - for (unsigned i = nrFrameBuffers; i > 0; ) { - itsFreeQueue.append(&itsFrameBuffers[--i]); - } - } catch (exception& exc) { - delete[] itsFrameBuffers; - throw; - } - - itsTimeoutStamp.tv_sec = 0; - itsTimeoutStamp.tv_usec = 0; - - itsOutputThread = NULL; - try { - itsOutputThread = new Thread(this, &TBB_StreamWriter::mainOutputLoop, logPrefix + "OutputThread: "); - itsInputThread = new Thread(this, &TBB_StreamWriter::mainInputLoop, logPrefix + "InputThread: "); - } catch (exception& exc) { - if (itsOutputThread != NULL) { - try { - itsReceiveQueue.append(NULL); // tell output thread to stop - } catch (exception& exc) { - LOG_WARN_STR("TBB: failed to notify output thread to terminate: " << exc.what()); - } - delete itsOutputThread; - } - delete[] itsFrameBuffers; - throw; - } - -#ifdef DUMP_RAW_STATION_FRAMES - struct timeval ts; - ::gettimeofday(&ts, NULL); - string rawStDataFilename("tbb_raw_station_frames_" + formatString("%ld_%p", ts.tv_sec, (void*)itsFrameBuffers) + ".fraw"); - try { - itsRawStationData = new FileStream(rawStDataFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH); - } catch (exception& exc) { - LOG_WARN_STR("Failed to open raw station data file: " << exc.what()); - } -#endif -} - -TBB_StreamWriter::~TBB_StreamWriter() { - // Only cancel the input thread, which will notify the output thread. - itsInputThread->cancel(); - -#ifdef DUMP_RAW_STATION_FRAMES - delete itsRawStationData; -#endif - delete itsInputThread; - delete itsOutputThread; - delete[] itsFrameBuffers; -} - -time_t TBB_StreamWriter::getTimeoutStampSec() const { - return itsTimeoutStamp.tv_sec; // racy read (and no access once guarantee), but only to terminate after timeout -} - -void TBB_StreamWriter::frameHeaderLittleToHost(TBB_Header& header) const { - header.seqNr = le32toh(header.seqNr); // set to 0 for crc16, otherwise unused - header.time = le32toh(header.time); - header.sampleNr = le32toh(header.sampleNr); - header.nOfSamplesPerFrame = le16toh(header.nOfSamplesPerFrame); - header.nOfFreqBands = le16toh(header.nOfFreqBands); - header.spare = le16toh(header.spare); // unused - header.crc16 = le16toh(header.crc16); -} - -void TBB_StreamWriter::correctSampleNr(TBB_Header& header) const { - /* - * LOFAR uses a sample rate of either 200 or 160 MHz. - * In transient mode, at 200 MHz we get 1024 samples per frame, and thus 195213.5 frames per second. - * This means that every 2 seconds, a frame overlaps a seconds boundary. But the sample values generated - * by the RSPs start at zero for each second, even if it should start at 512 for odd timestamps at 200 MHz. - * At 160 MHz sample rate, an integer number of frames fits in a second (156250), so no correction is needed. - */ - if (header.sampleFreq == 200 && header.time & 1) { - header.sampleNr += DEFAULT_TBB_TRANSIENT_NSAMPLES / 2; - } -} - -/* - * Assumes that the seqNr field in the TBB_Frame at buf has been zeroed. - * Takes a ptr to a complete header. (Drop too small frames earlier.) - */ -bool TBB_StreamWriter::crc16tbb(const TBB_Header* header) { - itsCrc16gen.reset(); - - const char* ptr = reinterpret_cast<const char*>(header); // to char* for strict-aliasing - for (unsigned i = 0; i < sizeof(*header) - sizeof(header->crc16); i += 2) { - int16_t val; - memcpy(&val, &ptr[i], sizeof val); // strict-aliasing safe - val = __bswap_16(val); - itsCrc16gen.process_bytes(&val, sizeof val); - } - - // It is also possible to process header->crc16 and see if checksum() equals 0. - uint16_t crc16val = header->crc16; -#if __BYTE_ORDER == __BIG_ENDIAN || defined WORDS_BIGENDIAN // for cross-compilation on little endian; fails for big->little - crc16val = __bswap_16(crc16val); -#endif - return itsCrc16gen.checksum() == crc16val; -} - -/* - * Note: The nTrSamples arg is without the space taken by the crc32 in payload (drop too small frames earlier) - * and in terms of the transient sample size, i.e. sizeof(int16_t). - */ -bool TBB_Dipole::crc32tbb(const TBB_Payload* payload, size_t nTrSamples) { - itsCrc32gen.reset(); - - const char* ptr = reinterpret_cast<const char*>(payload->data); // to char* for strict-aliasing - for (unsigned i = 0; i < nTrSamples * sizeof(int16_t); i += 2) { - int16_t val; - memcpy(&val, &ptr[i], sizeof val); // strict-aliasing safe - val = __bswap_16(val); - itsCrc32gen.process_bytes(&val, sizeof val); - } - - // It is also possible to process crc32val and see if checksum() equals 0. - uint32_t crc32val; - memcpy(&crc32val, &ptr[nTrSamples * sizeof(int16_t)], sizeof crc32val); // idem -#if __BYTE_ORDER == __BIG_ENDIAN || defined WORDS_BIGENDIAN // for cross-compilation on little endian; fails for big->little - crc32val = __bswap_32(crc32val); -#endif - return itsCrc32gen.checksum() == crc32val; -} - -/* - * Process the incoming TBB header. - * Note that this function may update the header, but not its crc, so you cannot re-verify it. - */ -void TBB_StreamWriter::processHeader(TBB_Header& header, size_t recvPayloadSize) { - header.seqNr = 0; // For the header crc. Don't save/restore it as we don't need this field. - if (!crc16tbb(&header)) { - /* - * The TBB spec states that each frame has the same fixed length, so the previous values are a good base guess if the header crc fails. - * But it is not clear if it is worth the effort to try to guess to fix something up. For now, drop and log. - */ - THROW(TBB_MalformedFrameException, "crc16: " << header); // header not yet bswapped on _big_ endian - } - - /* - * Use received size instead of received nOfSamplesPerFrame header field to access data, to be safe. - * Just write it into the header; it's most likely already there. - */ - if (recvPayloadSize < 2 * sizeof(int16_t) + sizeof(uint32_t)) { - // Drop it. The data crc routine only works for at least 2 transient or 1 spectral sample(s) + a crc32. - THROW(TBB_MalformedFrameException, "dropping too small frame: " << recvPayloadSize); - } - frameHeaderLittleToHost(header); - // Verify indicated sample freq, also to reject zeroed headers, which the crc16tbb does not reject. - if (header.sampleFreq != 200 && header.sampleFreq != 160) { - THROW(TBB_MalformedFrameException, "dropping frame with invalid sample frequency in frame header: " << header.sampleFreq); - } - - size_t sampleSize; - if (header.nOfFreqBands == 0) { // transient mode TODO: do not rely on data to check data size! - correctSampleNr(header); - sampleSize = sizeof(int16_t); - } else { // spectral mode - sampleSize = 2 * sizeof(int16_t); - } - // Div with a bad recvPayloadSize could round. Causes crc32 error at worst, but avoids wrong or misaligned memory access. - header.nOfSamplesPerFrame = (recvPayloadSize - sizeof(uint32_t)) / sampleSize; -} - -void TBB_StreamWriter::mainInputLoop() { - // Always (try to) notify output thread to stop at the end, else we may hang. - class NotifyOutputThread { - Queue<TBB_Frame*>& queue; - public: - NotifyOutputThread(Queue<TBB_Frame*>& queue) : queue(queue) { } - ~NotifyOutputThread() { - try { - queue.append(NULL); - } catch (exception& exc) { - LOG_WARN_STR("TBB: may have failed to notify output thread to terminate: " << exc.what()); - } - } - } notifyOutThr(itsReceiveQueue); - - Stream* stream; - try { - stream = createStream(itsInputStreamName, true); - } catch (Exception& exc) { // SystemCallException or InterfaceException (or TimeOutException) - LOG_WARN_STR(itsLogPrefix << exc); - itsInExitStatus = 1; - return; - } - LOG_INFO_STR(itsLogPrefix << "reading incoming data from " << itsInputStreamName); - - while (1) { - TBB_Frame* frame; - - try { - frame = itsFreeQueue.remove(); - - size_t nread = stream->tryRead(frame, itsExpFrameSize); // read() once for udp - - // Notify master that we are still busy. (Racy, but ok, see the timeoutstamp decl.) - ::gettimeofday(&itsTimeoutStamp, NULL); - -#ifdef DUMP_RAW_STATION_FRAMES - try { - itsRawStationData->write(frame, nread); - } catch (exception& exc) { /* open() probably failed, don't spam */ } -#endif - - if (nread < sizeof(TBB_Header)) { - throw TBB_MalformedFrameException("dropping too small frame"); - } - processHeader(frame->header, nread - sizeof(TBB_Header)); - - itsReceiveQueue.append(frame); - - } catch (TBB_MalformedFrameException& mffExc) { - LOG_WARN_STR(itsLogPrefix << mffExc); - try { - itsFreeQueue.append(frame); - } catch (exception& exc) { - LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (1): " << exc.what()); - } - } catch (Stream::EndOfStreamException& ) { // after end of stream, for input from file or pipe - break; - } catch (exception& exc) { - LOG_FATAL_STR(itsLogPrefix << exc.what()); - itsInExitStatus = 1; - break; - } catch (...) { // thread cancellation exc induced after timeout, for input from udp - delete stream; - throw; // mandatory - } - } - - delete stream; -} - -void TBB_StreamWriter::mainOutputLoop() { - bool running = true; - while (running) { - TBB_Frame* frame; - try { - frame = NULL; - frame = itsReceiveQueue.remove(); - if (frame == NULL) { - break; - } - -#ifdef PRINT_QUEUE_LEN - LOG_INFO_STR(itsLogPrefix << "recvqsz=" << itsReceiveQueue.size()); -#endif - - TBB_Station* station = itsWriter.getStation(frame->header); - station->processPayload(*frame); - - // Tolerate the following exceptions. Maybe next rsp/rcu is ok; probably fatal too... - } catch (SystemCallException& exc) { - LOG_WARN_STR(itsLogPrefix << exc); - } catch (StorageException& exc) { - LOG_WARN_STR(itsLogPrefix << exc); - } catch (dal::DALException& exc) { - LOG_WARN_STR(itsLogPrefix << exc.what()); - } catch (out_of_range& exc) { - LOG_WARN_STR(itsLogPrefix << exc.what()); - - // Config/parset and other errors are fatal. - } catch (exception& exc) { - LOG_FATAL_STR(itsLogPrefix << exc.what()); - itsOutExitStatus = 1; - running = false; - } - - if (frame != NULL) { - try { - itsFreeQueue.append(frame); - } catch (exception& exc) { - LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (2): " << exc.what()); - } - } - } -} - -////////////////////////////////////////////////////////////////////////////// - -TBB_Writer::TBB_Writer(const vector<string>& inputStreamNames, const Parset& parset, - const StationMetaDataMap& stationMetaDataMap, - const string& outDir, const string& logPrefix, - vector<int>& thrExitStatus) -: itsParset(parset) -, itsStationMetaDataMap(stationMetaDataMap) -, itsOutDir(outDir) -, itsRunNr(0) -{ - // Mask all signals to inherit for workers. This forces signals to be delivered to the main thread. - struct SigMask { - sigset_t sigset_old; - - SigMask() { - sigset_t sigset_all_masked; - ::sigfillset(&sigset_all_masked); - if (::pthread_sigmask(SIG_SETMASK, &sigset_all_masked, &sigset_old) != 0) { - LOG_WARN_STR("TBB: pthread_sigmask() failed to mask signals to inherit for worker threads."); - } - } - - ~SigMask() { - if (::pthread_sigmask(SIG_SETMASK, &sigset_old, NULL) != 0) { - LOG_WARN_STR("TBB: pthread_sigmask() failed to restore signals. We may be deaf to signals."); - } - } - } sigm; - - itsUnknownStationMetaData.available = false; - - size_t expNTrSamples; // in terms of the transient sample size - int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0); - if (operatingMode == TBB_TRANSIENT_MODE) { - expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES; - } else if (operatingMode == TBB_SPECTRAL_MODE) { - expNTrSamples = 2 * MAX_TBB_SPECTRAL_NSAMPLES; - } else { - expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES; - LOG_WARN("TBB: Failed to get operating mode from parset, assuming transient"); - } - - itsStreamWriters.reserve(inputStreamNames.size()); - for (unsigned i = 0; i < inputStreamNames.size(); i++) { - itsStreamWriters.push_back(new TBB_StreamWriter(*this, inputStreamNames[i], expNTrSamples, - logPrefix, thrExitStatus[2*i], thrExitStatus[2*i+1])); - } -} - -TBB_Writer::~TBB_Writer() { - for (unsigned i = itsStreamWriters.size(); i > 0; ) { - delete itsStreamWriters[--i]; - } - - map<unsigned, TBB_Station* >::iterator it(itsStations.begin()); - for ( ; it != itsStations.end(); ++it) { - delete it->second; - } -} - -TBB_Station* TBB_Writer::getStation(const TBB_Header& header) { - ScopedLock sl(itsStationsMutex); // protect against insert below - map<unsigned, TBB_Station*>::iterator stIt(itsStations.find(header.stationID)); - if (stIt != itsStations.end()) { - return stIt->second; // common case - } - - // Create new station with HDF5 file and station HDF5 group. - string stationName(dal::stationIDToName(header.stationID)); - string h5Filename(createNewTBB_H5Filename(header, stationName)); - StationMetaDataMap::const_iterator stMdIt(itsStationMetaDataMap.find(header.stationID)); - // If not found, station is not participating in the observation. Should not happen, but don't panic. - const StationMetaData& stMetaData = stMdIt == itsStationMetaDataMap.end() ? itsUnknownStationMetaData : stMdIt->second; - - TBB_Station* station; - { - ScopedLock slH5(itsH5Mutex); - station = new TBB_Station(stationName, itsH5Mutex, itsParset, stMetaData, h5Filename); - } - - try { - return itsStations.insert(make_pair(header.stationID, station)).first->second; - } catch (exception& exc) { - delete station; - throw; - } -} - -string TBB_Writer::createNewTBB_H5Filename(const TBB_Header& header, const string& stationName) { - const string typeExt("tbb.h5"); - string obsIDStr(formatString("%u", itsParset.observationID())); - - // Use the recording time of the first (received) frame as timestamp. - struct timeval tv; - tv.tv_sec = header.time; - unsigned long usecNr; - if (header.nOfFreqBands == 0) { // transient mode - usecNr = header.sampleNr; - } else { // spectral mode - usecNr = header.bandSliceNr >> TBB_SLICE_NR_SHIFT; - } - tv.tv_usec = static_cast<unsigned long>(round( static_cast<double>(usecNr) / header.sampleFreq )); - - // Generate the output filename, because for TBB it is not in the parset. - // From LOFAR-USG-ICD005 spec named "LOFAR Data Format ICD File Naming Conventions", by A. Alexov et al. - const char output_format[] = "D%Y%m%dT%H%M"; // without secs - const char output_format_secs[] = "%06.3fZ"; // total width of ss.sss is 6 - const char output_format_example[] = "DYYYYMMDDTHHMMSS.SSSZ"; - string triggerDateTime(formatFilenameTimestamp(tv, output_format, output_format_secs, sizeof(output_format_example))); - string h5Filename(itsOutDir + "L" + obsIDStr + "_" + stationName + "_" + triggerDateTime + "_" + typeExt); - - // If the file already exists, add a run nr and retry. (might race and doesn't check .raw, but good enough) - // If >1 stations per node, start at the prev run nr if any (hence itsRunNr). - if (itsRunNr == 0) { - if (::access(h5Filename.c_str(), F_OK) != 0 && errno == ENOENT) { - // Does not exist (or broken dir after all, or dangling sym link...). Try this one. - return h5Filename; - } else { // exists, inc run number - itsRunNr = 1; - } - } - - size_t pos = h5Filename.size() - typeExt.size(); - string runNrStr(formatString("R%03u_", itsRunNr)); - h5Filename.insert(pos, runNrStr); - while (itsRunNr < 1000 && ( ::access(h5Filename.c_str(), F_OK) == 0 || errno != ENOENT )) { - itsRunNr += 1; - runNrStr = formatString("R%03u_", itsRunNr); - h5Filename.replace(pos, runNrStr.size(), runNrStr); - } - if (itsRunNr == 1000) { // run number is supposed to fit in 3 digits - throw StorageException("failed to generate new .h5 filename after trying 1000 filenames."); - } - - return h5Filename; -} - -time_t TBB_Writer::getTimeoutStampSec(unsigned streamWriterNr) const { - return itsStreamWriters[streamWriterNr]->getTimeoutStampSec(); -} - -} // namespace RTCP -} // namespace LOFAR - diff --git a/RTCP/Storage/src/TBB_Writer_main.cc b/RTCP/Storage/src/TBB_Writer_main.cc deleted file mode 100644 index 1eb69712a4484bae18b7e049a5cd30d5aeb7a6cc..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/TBB_Writer_main.cc +++ /dev/null @@ -1,580 +0,0 @@ -/* TBB_Writer_main.cc - * - * LOFAR Transient Buffer Boards (TBB) Data Writer Copyright (C) 2012 - * ASTRON (Netherlands Institute for Radio Astronomy) - * P.O. Box 2, 7990 AA Dwingeloo, The Netherlands. - * - * This program 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 3 of the License, or - * (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License along - * with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. - * - * $Id: TBB_Writer_main.cc 17261 2012-09-07 18:58:53Z amesfoort $ - */ - -/* @author Alexander S. van Amesfoort - * Parts derived from the BF writer written by Jan David Mol, and from - * TBB writers written by Lars Baehren, Andreas Horneffer, and Joseph Masters. - */ - -#include <lofar_config.h> // before any other include - -#define _FILE_OFFSET_BITS 64 -#include <cstddef> -#include <cstdlib> -#include <csignal> -#include <cstring> -#include <cerrno> -#include <libgen.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <unistd.h> -#include <getopt.h> - -#include <iostream> -#include <sstream> - -#include <boost/lexical_cast.hpp> - -#include <Storage/TBB_Writer.h> -#include <Common/LofarLogger.h> -#include <Common/StringUtil.h> -#include <Common/NewHandler.h> -#include <ApplCommon/StationConfig.h> -#include <ApplCommon/AntField.h> -#include <Interface/Exceptions.h> -#include <Storage/IOPriority.h> - -#include <dal/lofar/StationNames.h> - -#define TBB_DEFAULT_BASE_PORT 0x7bb0 // i.e. tbb0 -#define TBB_DEFAULT_LAST_PORT 0x7bbb // 0x7bbf for NL, 0x7bbb for int'l stations - -#define STDLOG_BUFFER_SIZE 1024 - -using namespace std; - -struct progArgs { - string parsetFilename; - string stCalTablesDir; - string antFieldDir; - string outputDir; - string input; - uint16_t port; - struct timeval timeoutVal; - bool keepRunning; -}; - -static char stdoutbuf[STDLOG_BUFFER_SIZE]; -static char stderrbuf[STDLOG_BUFFER_SIZE]; - -LOFAR::NewHandler badAllocExcHandler(LOFAR::BadAllocException::newHandler); - -static bool sigint_seen; - -static void termSigsHandler(int sig_nr) { - if (sig_nr == SIGINT) { - /* - * For graceful user abort. Signal might be missed, but timeout - * catches it later, so don't bother with cascaded signals. - */ - sigint_seen = true; - } -} - -/* - * Register signal handlers for SIGINT and SIGTERM to gracefully terminate early, - * so we can break out of blocking system calls and exit without corruption of already written output. - * Leave SIGQUIT (Ctrl-\) untouched, so users can still easily quit immediately. - */ -static void setTermSigsHandler() { - struct sigaction sa; - - sa.sa_handler = termSigsHandler; - sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - int err = sigaction(SIGINT, &sa, NULL); // keyb INT (typically Ctrl-C) - err |= sigaction(SIGTERM, &sa, NULL); - err |= sigaction(SIGALRM, &sa, NULL); // for setitimer(); don't use sleep(3) and friends - if (err != 0) { - LOG_WARN("TBB: Failed to register SIGINT/SIGTERM handler to allow manual, early, graceful program termination."); - } -} - -static vector<string> getTBB_InputStreamNames(const string& input, uint16_t portsBase) { - int nTbbBoards; - try { - LOFAR::StationConfig stConf; - nTbbBoards = stConf.nrTBBs; - } catch (LOFAR::AssertError& ) { // config file not found - LOG_DEBUG_STR("Falling back to at most " << TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1 << " input streams (1 per board)"); - nTbbBoards = TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1; // fallback - } - - vector<string> allInputStreamNames; - if (input == "udp" || input == "tcp") { - for (uint16_t port = portsBase; port <= portsBase + nTbbBoards; ++port) { - // 0.0.0.0: could restrict to station IPs/network, but need netmask lookup and allow localhost. Not critical: data arrives on a separate VLAN. - string streamName(input + ":0.0.0.0:" + LOFAR::formatString("%hu", port)); - allInputStreamNames.push_back(streamName); - } - } else { // file or named pipe input - size_t colonPos = input.find(':'); - if (colonPos == string::npos) { - return allInputStreamNames; - } - size_t placeholderPos = input.find_last_of('%'); - if (placeholderPos == string::npos) { // single input, no expansion needed - if (access(input.c_str() + colonPos + 1, R_OK) == 0) { - allInputStreamNames.push_back(input); - } - } else { // expand e.g. file:x%y-%.raw into {file:x%y-0.raw, file:x%y-1.raw, ..., file:x%y-11.raw} - for (int i = 0; i < nTbbBoards; ++i) { - string streamName(input); - streamName.replace(placeholderPos, 1, LOFAR::formatString("%u", i)); - if (access(streamName.c_str() + colonPos + 1, R_OK) == 0) { - allInputStreamNames.push_back(streamName); - } - } - } - } - - return allInputStreamNames; -} - -static void retrieveStationCalTables(string& stCalTablesDir) { - /* - * Users need the station calibration tables included. This is a major pain, because - * we figure out which station(s) we receive from at runtime (relying on the static - * mapping is a disaster waiting to happen), we cannot ask the stations and the - * alternative, from svn, is unreliable and races with (few) Science Support updates. - * Not all users care about the race, a few do. Also, auth, and this exposes an internal - * interface (cal tables) to users... Still do it: TBB is too low prio to get stuff nice. - * - * Get tables from all stations for the right cal mode (i.e. usually only verifies svn local copy), - * Run 'svn cleanup' and 'svn upgrade' when needed, otherwise remove the local copies and re-retrieve. - * - - */ - -//svn checkout https://svn.astron.nl/Station/trunk/CalTables -//but only the needed files -//svn update -//Ctrl-C doesn't seem to kill svn co/up (only pause/halt), so use Ctrl-\ (QUIT), then svn cleanup - -//svn: Working copy '.' locked -//svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) -//svn cleanup - -//rm -rf CalTables - -// Note: include the entire cal table as-is, because that easily allows users to just resort to the raw files - -// - if stCalTablesDir.empty(): - -// - get station names, st cal mode -// - fork process (sh script), do data writes -// - sh script does svn checkout/update on req files only into ~/TBB_Writer-Station-CalTabs-localcopy/Station/CalTables/* -// - listen for tbb data. When data writes done, do timed wait() on script pid, and if ok, add cal tables. -// - if not ok: if timeout { signal script to abort and run svn cleanup, wait()}. Skip writing cal tabs, log warning + script output. - -} - -static int antSetName2AntFieldIndex(const string& antSetName) { - int idx; - - if (strncmp(antSetName.c_str(), "LBA", sizeof("LBA")-1) == 0) { - idx = LOFAR::AntField::LBA_IDX; - } else if (strncmp(antSetName.c_str(), "HBA_ZERO", sizeof("HBA_ZERO")-1) == 0) { - idx = LOFAR::AntField::HBA0_IDX; - } else if (strncmp(antSetName.c_str(), "HBA_ONE", sizeof("HBA_ONE")-1) == 0) { - idx = LOFAR::AntField::HBA1_IDX; - } else if (strncmp(antSetName.c_str(), "HBA", sizeof("HBA")-1) == 0) { - idx = LOFAR::AntField::HBA_IDX; - } else { - throw LOFAR::RTCP::StorageException("unknown antenna set name"); - } - - return idx; -} - -static LOFAR::RTCP::StationMetaDataMap getExternalStationMetaData(const LOFAR::RTCP::Parset& parset, const string& antFieldDir) { - LOFAR::RTCP::StationMetaDataMap stMdMap; - - try { - // Find path to antenna field files. If not a prog arg, try via $LOFARROOT, else via parset. - // LOFAR repos location: MAC/Deployment/data/StaticMetaData/AntennaFields/ - string antFieldPath(antFieldDir); - if (antFieldPath.empty()) { - char* lrpath = getenv("LOFARROOT"); - if (lrpath != NULL) { - antFieldPath = string(lrpath) + "/etc/StaticMetaData/"; - } else { // parset typically gives "/data/home/lofarsys/production/lofar/etc/StaticMetaData" - antFieldPath = parset.AntennaFieldsDir(); // doesn't quite do what its name suggests, so append a component - if (!antFieldPath.empty()) { - antFieldPath.push_back('/'); - } - } - antFieldPath.append("AntennaFields/"); - } - - int fieldIdx = antSetName2AntFieldIndex(parset.antennaSet()); - - vector<string> stationNames(parset.allStationNames()); - for (vector<string>::const_iterator it(stationNames.begin()); - it != stationNames.end(); ++it) { - - string stName(it->substr(0, sizeof("CS001")-1)); // drop any "HBA0"-like suffix - string antFieldFilename(antFieldPath + stName + "-AntennaField.conf"); - - // Tries to locate the filename if no abs path is given, else throws AssertError exc. - LOFAR::AntField antField(antFieldFilename); - - // Compute absolute antenna positions from centre + relative. - // See AntField.h in ApplCommon for the AFArray typedef and contents (first is shape, second is values). - LOFAR::RTCP::StationMetaData stMetaData; - stMetaData.available = true; - stMetaData.antPositions = antField.AntPos(fieldIdx).second; - for (size_t i = 0; i < stMetaData.antPositions.size(); i += 3) { - stMetaData.antPositions.at(i+2) += antField.Centre(fieldIdx).second.at(2); - stMetaData.antPositions[i+1] += antField.Centre(fieldIdx).second[1]; - stMetaData.antPositions[i] += antField.Centre(fieldIdx).second[0]; - } - - stMetaData.normalVector = antField.normVector(fieldIdx).second; - stMetaData.rotationMatrix = antField.rotationMatrix(fieldIdx).second; - - stMdMap.insert(make_pair(dal::stationNameToID(stName), stMetaData)); - } - } catch (LOFAR::AssertError& exc) { - // Throwing AssertError already sends a message to the logger. - } catch (dal::DALValueError& exc) { - throw LOFAR::RTCP::StorageException(exc.what()); - } - - return stMdMap; -} - -static int doTBB_Run(const vector<string>& inputStreamNames, const LOFAR::RTCP::Parset& parset, - const LOFAR::RTCP::StationMetaDataMap& stMdMap, struct progArgs& args) { - string logPrefix("TBB obs " + LOFAR::formatString("%u", parset.observationID()) + ": "); - - vector<int> thrExitStatus(2 * inputStreamNames.size(), 0); - int err = 1; - try { - // When this obj goes out of scope, worker threads are cancelled and joined with. - LOFAR::RTCP::TBB_Writer writer(inputStreamNames, parset, stMdMap, args.outputDir, logPrefix, thrExitStatus); - - /* - * We don't know how much data comes in, so cancel workers when all are idle for a while (timeoutVal). - * In some situations, threads can become active again after idling a bit, so periodically monitor thread timeout stamps. - * Poor man's sync, but per-thread timers to break read() to notify us of idleness does not work. - * This (sucks and :)) could be improved once the LOFAR system tells us how much data will be dumped, or when done. - */ - struct itimerval timer = {args.timeoutVal, args.timeoutVal}; - if (setitimer(ITIMER_REAL, &timer, NULL) != 0) { - THROW_SYSCALL("setitimer"); - } - - bool anyFrameReceived = false; // don't quit if there is no data immediately after starting - size_t nrWorkersDone; - do { - pause(); - if (sigint_seen) { // typically Ctrl-C - args.keepRunning = false; // for main(), not for worker threads - break; - } - - nrWorkersDone = 0; - for (size_t i = 0; i < inputStreamNames.size(); i++) { - struct timeval now; - gettimeofday(&now, NULL); - time_t lastActive_sec = writer.getTimeoutStampSec(i); - if (lastActive_sec != 0) { - anyFrameReceived = true; - } - if (anyFrameReceived && lastActive_sec <= now.tv_sec - args.timeoutVal.tv_sec) { - nrWorkersDone += 1; - } - } - } while (nrWorkersDone < inputStreamNames.size()); - err = 0; - } catch (LOFAR::Exception& exc) { - LOG_FATAL_STR(logPrefix << "LOFAR::Exception: " << exc); - } catch (exception& exc) { - LOG_FATAL_STR(logPrefix << "std::exception: " << exc.what()); - } - - // Propagate exit status != 0 from any input or output worker thread. - for (unsigned i = 0; i < thrExitStatus.size(); ++i) { - if (thrExitStatus[i] != 0) { - err = 1; - break; - } - } - - return err; -} - -static int isExistingDirname(const string& dirname) { - struct stat st; - - if (stat(dirname.c_str(), &st) != 0) { - return errno; - } - - // Check if the last component is a dir too (stat() did the rest). - if (!S_ISDIR(st.st_mode)) { - return ENOTDIR; - } - - return 0; -} - -static void printUsage(const char* progname) { - cout << "LOFAR TBB_Writer version: "; -#ifndef TBB_WRITER_VERSION - cout << LOFAR::StorageVersion::getVersion(); -#else - cout << TBB_WRITER_VERSION; -#endif - cout << endl; - cout << "Write incoming LOFAR TBB data with meta data to storage in HDF5 format." << endl; - cout << "Usage: " << progname << " -p parsets/L12345.parset [OPTION]..." << endl; - cout << endl; - cout << "Options:" << endl; - cout << " -p, --parset=L12345.parset path to file with observation settings (mandatory)" << endl; - cout << endl; - cout << " -c, --stcaltablesdir=/c/CalTables path to override SVN retrieval of station calibration tables (like CS001/CalTable_001_mode1.dat)" << endl; - cout << " -a, --antfielddir=/a/AntennaFields path to override $LOFARROOT and parset path for antenna field files (like CS001-AntennaField.conf)" << endl; - cout << " -o, --outputdir=tbbout existing output directory" << endl; - cout << " -i, --input=tcp|udp input stream(s) or type (default: udp)" << endl; - cout << " file:raw.dat if file or pipe name has a '%'," << endl; - cout << " pipe:named-%.pipe then the last '%' is replaced by 0, 1, ..., 11" << endl; - cout << " -b, --portbase=31665 start of range of 12 consecutive udp/tcp ports to receive from" << endl; - cout << " -t, --timeout=10 seconds of input inactivity until dump is considered completed" << endl; - cout << endl; - cout << " -k, --keeprunning[=true|false] accept new input after a dump completed (default: true)" << endl; - cout << endl; - cout << " -h, --help print program name, version number and this info, then exit" << endl; - cout << " -v, --version same as --help" << endl; -} - -static int parseArgs(int argc, char *argv[], struct progArgs* args) { - int status = 0; - - // Default values - args->parsetFilename = ""; // there is no default parset filename, so not passing it is fatal - args->stCalTablesDir = ""; // idem, but otherwise, retrieve from svn and not fatal - args->antFieldDir = ""; // idem, but otherwise, detect and not fatal - - args->outputDir = ""; - args->input = "udp"; - args->port = TBB_DEFAULT_BASE_PORT; - args->timeoutVal.tv_sec = 10; // after this default of inactivity cancel all input threads and close output files - args->timeoutVal.tv_usec = 0; - args->keepRunning = true; - - static const struct option long_opts[] = { - // NOTE: If you change this, then also change the code below AND the printUsage() code above! - // {const char *name, int has_arg, int *flag, int val} - {"parset", required_argument, NULL, 'p'}, - {"stcaltablesdir", required_argument, NULL, 'c'}, // station calibration tables - {"antfielddir", required_argument, NULL, 'a'}, // antenna field info - {"outputdir", required_argument, NULL, 'o'}, - {"input", required_argument, NULL, 'i'}, - {"portbase", required_argument, NULL, 'b'}, // port (b)ase - {"timeout", required_argument, NULL, 't'}, - - {"keeprunning", optional_argument, NULL, 'k'}, - - {"help", no_argument, NULL, 'h'}, - {"version", no_argument, NULL, 'v'}, - - {NULL, 0, NULL, 0} - }; - - opterr = 0; // prevent error printing to stderr by getopt_long() - int opt, err; - while ((opt = getopt_long(argc, argv, "hvs:a:o:p:b:t:k::", long_opts, NULL)) != -1) { - switch (opt) { - case 'p': - args->parsetFilename = optarg; - break; - case 'c': - args->stCalTablesDir = optarg; - if (args->stCalTablesDir[0] != '\0' && args->stCalTablesDir[args->stCalTablesDir.size() - 1] != '/') { - args->stCalTablesDir.push_back('/'); - } - if ((err = isExistingDirname(args->stCalTablesDir)) != 0) { - LOG_FATAL_STR("TBB: station cal tab dir argument value " << optarg << ": " << strerror(err)); - status = 1; - } - break; - case 'a': - args->antFieldDir = optarg; - if (args->antFieldDir[0] != '\0' && args->antFieldDir[args->antFieldDir.size() - 1] != '/') { - args->antFieldDir.push_back('/'); - } - if ((err = isExistingDirname(args->antFieldDir)) != 0) { - LOG_FATAL_STR("TBB: antenna field dir argument value " << optarg << ": " << strerror(err)); - status = 1; - } - break; - case 'o': - args->outputDir = optarg; - if (args->outputDir[0] != '\0' && args->outputDir[args->outputDir.size() - 1] != '/') { - args->outputDir.push_back('/'); - } - if ((err = isExistingDirname(args->outputDir)) != 0) { - LOG_FATAL_STR("TBB: output dir argument value " << optarg << ": " << strerror(err)); - status = 1; - } - break; - case 'i': - if (strcmp(optarg, "tcp") == 0 || strcmp(optarg, "udp") == 0 || - strncmp(optarg, "file:", sizeof("file:")-1) == 0 || - strncmp(optarg, "pipe:", sizeof("pipe:")-1) == 0) { - args->input = optarg; - } else { - LOG_FATAL_STR("TBB: Invalid input argument value: " << optarg); - status = 1; - } - break; - case 'b': - try { - args->port = boost::lexical_cast<uint16_t>(optarg); - if (args->port > 65536 - (TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT)) { - throw boost::bad_lexical_cast(); // abuse exc type to have single catch - } - } catch (boost::bad_lexical_cast& /*exc*/) { - LOG_FATAL_STR("TBB: Invalid port argument value: " << optarg); - status = 1; - } - break; - case 't': - try { - args->timeoutVal.tv_sec = boost::lexical_cast<unsigned long>(optarg); - } catch (boost::bad_lexical_cast& /*exc*/) { - LOG_FATAL_STR("TBB: Invalid timeout argument value: " << optarg); - status = 1; - } - break; - case 'k': - if (optarg == NULL || optarg[0] == '\0') { - args->keepRunning = true; - break; - } - try { - args->keepRunning = boost::lexical_cast<bool>(optarg); - } catch (boost::bad_lexical_cast& /*exc*/) { - LOG_FATAL_STR("TBB: Invalid keeprunning argument value: " << optarg); - status = 1; - } - break; - case 'h': - case 'v': - if (status == 0) { - status = 2; - } - break; - default: // '?' - LOG_FATAL_STR("TBB: Invalid program argument or missing argument value: " << argv[optind-1]); - status = 1; - } - } - - if (optind < argc) { - ostringstream oss; - oss << "TBB: Failed to recognize arguments:"; - while (optind < argc) { - oss << " " << argv[optind++]; // good enough - } - LOG_FATAL_STR(oss.str()); - status = 1; - } - - return status; -} - -int main(int argc, char* argv[]) { - struct progArgs args; - int err; - -#if defined HAVE_LOG4CPLUS || defined HAVE_LOG4CXX - struct Log { - Log(const char* argv0) { - char *dirc = strdup(argv0); // dirname() may clobber its arg - if (dirc != NULL) { - INIT_LOGGER(string(getenv("LOFARROOT") ? : dirname(dirc)) + "/../etc/Storage_main.log_prop"); - free(dirc); - } - } - - ~Log() { - LOGGER_EXIT_THREAD(); // destroys NDC created by INIT_LOGGER() - } - } logger(argv[0]); -#endif - - err = setvbuf(stdout, stdoutbuf, _IOLBF, sizeof stdoutbuf); - err |= setvbuf(stderr, stderrbuf, _IOLBF, sizeof stderrbuf); - if (err != 0) { - LOG_WARN("TBB: failed to change stdout and/or stderr output buffers"); - } - - if ((err = parseArgs(argc, argv, &args)) != 0) { - if (err == 2) err = 0; - printUsage(argv[0]); - return err; - } - - setTermSigsHandler(); - - const vector<string> inputStreamNames(getTBB_InputStreamNames(args.input, args.port)); - if (inputStreamNames.empty()) { - LOG_FATAL("TBB: none of the input streams is accessible to read from"); - return 1; - } - - retrieveStationCalTables(args.stCalTablesDir); - - // We don't run alone, so try to increase the QoS we get from the OS to decrease the chance of data loss. - setIOpriority(); // reqs CAP_SYS_NICE or CAP_SYS_ADMIN - setRTpriority(); // reqs CAP_SYS_NICE - lockInMemory(); // reqs CAP_IPC_LOCK - - err = 1; - try { - LOFAR::RTCP::Parset parset(args.parsetFilename); - LOFAR::RTCP::StationMetaDataMap stMdMap(getExternalStationMetaData(parset, args.antFieldDir)); - - err = 0; - do { - err += doTBB_Run(inputStreamNames, parset, stMdMap, args); - } while (args.keepRunning && err < 1000); - if (err == 1000) { // Nr of dumps per obs was estimated to fit in 3 digits. - LOG_FATAL("TBB: Reached max nr of errors seen. Shutting down to avoid filling up storage with logging crap."); - } - - // Config exceptions (opening or parsing) are fatal. Too bad we cannot have it in one type. - } catch (LOFAR::RTCP::InterfaceException& exc) { - LOG_FATAL_STR("TBB: Required parset key/values missing: " << exc); - } catch (LOFAR::APSException& exc) { - LOG_FATAL_STR("TBB: Parameterset error: " << exc); - } catch (LOFAR::RTCP::StorageException& exc) { - LOG_FATAL_STR("TBB: Antenna field files: " << exc); - } - - return err == 0 ? 0 : 1; -} - diff --git a/RTCP/Storage/src/createHeaders.cc b/RTCP/Storage/src/createHeaders.cc deleted file mode 100644 index 824ffe4d65a3ee7240fb31c270e3d695735d87b4..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/createHeaders.cc +++ /dev/null @@ -1,102 +0,0 @@ -//# createHeaders.cc: Generates all .h5/.MS files given a (OLAP) parset -//# -//# Copyright (C) 2002-2004 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: createHeaders.cc 21558 2012-07-12 09:35:39Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Common/CasaLogSink.h> -#include <Common/Exceptions.h> -#include <Interface/Exceptions.h> -#include <Interface/Parset.h> -#include <Storage/Package__Version.h> -#include <Storage/OutputThread.h> - -#include <string> - -#include <boost/format.hpp> -#include <boost/lexical_cast.hpp> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -int main(int argc, char *argv[]) -{ - bool isBigEndian = true; - - if (argc < 2 || argc > 3) { - cout << str(boost::format("usage: %s parset [is_bigendian]") % argv[0]) << endl; - cout << endl; - cout << "parset: the filename of the parset to convert (parset must have been produced by RTCP/Run/src/LOFAR/Parset.py, aka an 'OLAP parset')." << endl; - cout << "is_bigendian: 1 if data is written big endian (f.e. data comes from the BlueGene/P), 0 otherwise. Default: " << (int)isBigEndian << endl; - return 1; - } - -#if defined HAVE_LOG4CPLUS - INIT_LOGGER(string(getenv("LOFARROOT") ? : ".") + "/etc/createHeaders.log_prop"); -#elif defined HAVE_LOG4CXX - #error LOG4CXX support is broken (nonsensical?) -- please fix this code if you want to use it - Context::initialize(); - setLevel("Global",8); -#else - INIT_LOGGER_WITH_SYSINFO("createHeaders"); -#endif - - CasaLogSink::attach(); - - try { - Parset parset(argv[1]); - if (argc > 2) isBigEndian = boost::lexical_cast<bool>(argv[2]); - - for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++) { - const unsigned nrStreams = parset.nrStreams(outputType); - - for (unsigned streamNr = 0; streamNr < nrStreams; streamNr ++) { - const string logPrefix = str(boost::format("[obs %u type %u stream %3u] ") % parset.observationID() % outputType % streamNr); - - try { - // a dummy queue - Queue<SmartPtr<StreamableData> > queue; - - OutputThread ot(parset, outputType, streamNr, queue, queue, logPrefix, isBigEndian, "."); - - // create measurement set - ot.createMS(); - - // output LTA feedback - ot.cleanUp(); - } catch (Exception &ex) { - LOG_WARN_STR(logPrefix << "Could not create header: " << ex); - } catch (exception &ex) { - LOG_WARN_STR(logPrefix << "Could not create header: " << ex.what()); - } - } - } - - // taken from IONProc/src/Job.cc - // Augment the LTA feedback logging - { - ParameterSet feedbackLTA; - feedbackLTA.add("Observation.DataProducts.nrOfOutput_Beamformed_", str(boost::format("%u") % parset.nrStreams(BEAM_FORMED_DATA))); - feedbackLTA.add("Observation.DataProducts.nrOfOutput_Correlated_", str(boost::format("%u") % parset.nrStreams(CORRELATED_DATA))); - - for (ParameterSet::const_iterator i = feedbackLTA.begin(); i != feedbackLTA.end(); ++i) - LOG_INFO_STR("[obs " << parset.observationID() << "] LTA FEEDBACK: " << i->first << " = " << i->second); - } - } catch (Exception &ex) { - LOG_FATAL_STR("[obs unknown] Caught Exception: " << ex); - return 1; - } - - LOG_INFO_STR("[obs unknown] Program end"); - return 0; -} diff --git a/RTCP/Storage/src/gnuplotMS.sh b/RTCP/Storage/src/gnuplotMS.sh deleted file mode 100755 index a2ce5ccd1f462904d8f8c1131e4fbf5d2bf20bc7..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/gnuplotMS.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -DATA=`mktemp` -if ! `dirname $0`/plotMS $@ >$DATA -then - cat $DATA - rm $DATA - exit -fi - -OBS=`basename $PWD` -INFO=`<$DATA perl -ne 'print $1 if /# baseline (.*)/;' 2>/dev/null` -echo ' -set terminal dumb 120 30 -set key outside right -set logscale y -set title "'$OBS'\\nbaseline '$INFO'\\n" -set ylabel "power" -set xlabel "time (s)" -plot "'$DATA'" u 1:2 pt 15 t "X-X", "" u 1:3 pt 24 t "X-Y", "" u 1:4 pt 24 t "Y-X", "" u 1:5 pt 15 t "Y-Y" -' | gnuplot - -rm $DATA diff --git a/RTCP/Storage/src/plotMS.cc b/RTCP/Storage/src/plotMS.cc deleted file mode 100644 index 00e53a408262ec1e5b6ebad6580236ee4d9dd2b2..0000000000000000000000000000000000000000 --- a/RTCP/Storage/src/plotMS.cc +++ /dev/null @@ -1,188 +0,0 @@ -//# Plot_MS.cc: -//# -//# Copyright (C) 2002-2004 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id: Storage_main.cc 18363 2011-06-30 13:06:44Z mol $ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Common/StringUtil.h> -#include <Stream/FileStream.h> -#include <Interface/Parset.h> -#include <Interface/DataFactory.h> -#include <Interface/CorrelatedData.h> -#include <Common/DataConvert.h> -#include <Common/Exception.h> -#include <string> -#include <cstdio> -#include <cstdlib> -#include <unistd.h> -#include <boost/format.hpp> - -#include <casa/IO/AipsIO.h> -#include <casa/Containers/Block.h> -#include <casa/Containers/BlockIO.h> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace std; - -using boost::format; - -// Use a terminate handler that can produce a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -bool shouldSwap = false; - -float power( fcomplex s ) { - float r = real(s); - float i = imag(s); - - if (shouldSwap) { - byteSwap32(&r); - byteSwap32(&i); - } - - return r*r + i*i; -} - -static void usage(char *progname, int exitcode) -{ - printf("Usage: %s -p parset [-b baseline | -B station1-station2] [-c channel]\n", progname); - printf("\n"); - printf("Run within the MS directory of the subband to plot.\n"); - exit(exitcode); -} - -int main(int argc, char *argv[]) -{ -#if defined HAVE_LOG4CPLUS - INIT_LOGGER(string(getenv("LOFARROOT") ? : ".") + "/etc/Storage.log_prop"); -#elif defined HAVE_LOG4CXX - #error LOG4CXX support is broken (nonsensical?) -- please fix this code if you want to use it - Context::initialize(); - setLevel("Global",8); -#else - INIT_LOGGER_WITH_SYSINFO(str(boost::format("Storage@%02d") % (argc > 1 ? atoi(argv[1]) : -1))); -#endif - - try { - int opt; - const char *parset_filename = 0; - const char *table_filename = "table.f0data"; - const char *meta_filename = "table.f0meta"; - const char *baselinestr = 0; - unsigned baseline = 0; - int channel = -1; - - while ((opt = getopt(argc, argv, "p:b:B:c:")) != -1) { - switch (opt) { - case 'p': - parset_filename = strdup(optarg); - break; - - case 'b': - baseline = atoi(optarg); - break; - - case 'B': - baselinestr = strdup(optarg); - break; - - case 'c': - channel = atoi(optarg); - break; - - default: /* '?' */ - usage(argv[0], 1); - } - } - - if (!parset_filename) - usage(argv[0], 1); - - Parset parset(parset_filename); - FileStream datafile(table_filename); - CorrelatedData *data = dynamic_cast<CorrelatedData*>(newStreamableData(parset, CORRELATED_DATA)); - - if (channel == -1) - channel = parset.nrChannelsPerSubband() == 1 ? 0 : 1; // default to first useful channel - - ASSERT( data ); - ASSERT( channel >= 0 && (unsigned)channel < parset.nrChannelsPerSubband() ); - - // determine base line from string - casa::Block<int32> itsAnt1; - casa::Block<int32> itsAnt2; - - casa::AipsIO aio(meta_filename); - uint32 itsVersion = aio.getstart("LofarStMan"); - (void)itsVersion; - aio >> itsAnt1 >> itsAnt2; - aio.close(); - - std::vector<std::string> stationNames = parset.allStationNames(); - - if (baselinestr) { - std::vector<std::string> specified_stations = StringUtil::split(string(baselinestr), '-'); - ASSERTSTR( specified_stations.size() == 2, "-B: Specify as STATION1-STATION2, not " << baselinestr ); - - unsigned station1index = std::find(stationNames.begin(),stationNames.end(),specified_stations[0]) - stationNames.begin(); - unsigned station2index = std::find(stationNames.begin(),stationNames.end(),specified_stations[1]) - stationNames.begin(); - - ASSERTSTR( station1index < stationNames.size(), "Could not find station " << specified_stations[0] ); - ASSERTSTR( station2index < stationNames.size(), "Could not find station " << specified_stations[1] ); - - for (baseline=0; baseline < itsAnt1.size(); baseline++) { - if ((unsigned)itsAnt1[baseline] == station1index - && (unsigned)itsAnt2[baseline] == station2index) - break; - - if ((unsigned)itsAnt2[baseline] == station1index - && (unsigned)itsAnt1[baseline] == station2index) - break; - } - } - - ASSERTSTR( baseline < parset.nrBaselines(), "The specified baseline is not present in this measurement set." ); - - std::string firstStation = stationNames[itsAnt1[baseline]]; - std::string secondStation = stationNames[itsAnt2[baseline]]; - - printf( "# baseline %s - %s channel %d\n", firstStation.c_str(), secondStation.c_str(), channel); - printf( "# observation %u\n", parset.observationID()); - - for(;;) { - try { - data->read(&datafile, true, 512); - } catch (Stream::EndOfStreamException &) { - break; - } - //data->peerMagicNumber = 0xda7a0000; // fake wrong endianness to circumvent bug - shouldSwap = data->shouldByteSwap(); - - printf( "# valid samples: %u\n", data->nrValidSamples(baseline,channel)); - - printf( "%6d %10g %10g %10g %10g\n", - data->sequenceNumber(), - power( data->visibilities[baseline][channel][0][0] ), - power( data->visibilities[baseline][channel][0][1] ), - power( data->visibilities[baseline][channel][1][0] ), - power( data->visibilities[baseline][channel][1][1] ) ); - - } - - } catch (LOFAR::Exception &ex) { - LOG_FATAL_STR("[obs unknown] Caught LOFAR Exception: " << ex); - return 1; - } catch (casa::AipsError& ex) { - LOG_FATAL_STR("[obs unknown] Caught Aips Error: " << ex.what()); - return 1; - } - - return 0; -} diff --git a/RTCP/Storage/test/CMakeLists.txt b/RTCP/Storage/test/CMakeLists.txt deleted file mode 100644 index 5258e0a92a09981d1ccc16edbf3f46c66ea7d380..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# $Id$ - -include(LofarCTest) - -#lofar_add_test(tMeasurementSetFormat tMeasurementSetFormat.cc) -#lofar_add_test(tMSWriterDAL tMSWriterDAL.cc) -#lofar_add_test(tMSWriterCorrelated tMSWriterCorrelated.cc) -#lofar_add_test(tDAL tDAL.cc) -#lofar_add_test(tFastFileStream tFastFileStream.cc) -#lofar_add_test(tAH_TestStorage tAH_TestStorage.cc) -#lofar_add_test(tTBB_StaticMapping tTBB_StaticMapping.cc) -#lofar_add_test(tTBB_Writer) - diff --git a/RTCP/Storage/test/RTCP.parset b/RTCP/Storage/test/RTCP.parset deleted file mode 100644 index 8bc07b6a4e135895779c8c79cd24bce58a10db8b..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/RTCP.parset +++ /dev/null @@ -1,101 +0,0 @@ -OLAP.OLAP_Conn.BGLProc_Storage_Ports = [8300..8363] - -# should be one of FCNP, TCP, NULL. This works for IONProc, but not for -# BGLProc, since BGLProc does not open the parset file! -OLAP.OLAP_Conn.IONProc_BGLProc_Transport = FCNP - -OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] - -OLAP.realTime = T -# OLAP.BGLProc.integrationSteps = 608 #768 at 200MHz (generated) -OLAP.BGLProc.nrPPFTaps=16 -OLAP.BGLProc.coresPerPset = 64 - -# OLAP.IONProc.integrationSteps = 1 (generated) - -# OLAP.StorageProc.integrationSteps = 60 (generated) -OLAP.StorageProc.subbandsPerMS = 1 -Observation.MSNameMask = /data/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS - -# Variables for the DelayCompensation -OLAP.DelayComp.positionType = ITRF # should be ITRF -OLAP.DelayComp.nrCalcDelays = 16 - -OLAP.IPHeaderSize = 32 -OLAP.EPAHeaderSize = 16 -OLAP.nrTimesInFrame = 16 -OLAP.nrSlotsInFrame = 36 -OLAP.nrBitsPerSample=16 -OLAP.nrSecondsOfBuffer = 4 -OLAP.maxNetworkDelay = 0.5 -OLAP.delayCompensation = F -OLAP.correctBandPass = T - -# Observation.sampleClock = 160 - -#Observation.bandFilter = LBL_10_80 -#Observation.bandFilter = LBL_30_80 -#Observation.bandFilter = LBH_10_80 -#Observation.bandFilter = LBH_30_80 -Observation.bandFilter = HB_100_190 -#Observation.bandFilter = HB_170_230 -#Observation.bandFilter = HB_210_240 - -# Eg. tiedArray beamforming -#Observation.Beamformer[0].stationList = "B01_0,B01_1" -#Observation.Beamformer[1].stationList = "B01_2,B01_3" - -Observation.Beam[0].angle1 = 0 # NCP -Observation.Beam[0].angle2 = 1.570796327 -Observation.Beam[1].angle1 = 5.2336866848083394 # Cygnus -Observation.Beam[1].angle2 = 0.71094251447010637 -Observation.Beam[2].angle1 = 6.1234876806221052 # Cas A -Observation.Beam[2].angle2 = 1.0265153995604648 -Observation.Beam[3].angle1 = 0.9293405574 # pulsar -Observation.Beam[3].angle2 = 0.9525774347 -Observation.Beam[4].angle1 = 4.5192832066722115 # Jupiter -Observation.Beam[4].angle2 = 5.893698795 -Observation.Beam[5].angle1 = 1.4596748494230258 # Taurus -Observation.Beam[5].angle2 = 0.38422502336661052 - -Observation.Beam[0].directionType = J2000 -Observation.Beam[1].directionType = J2000 -Observation.Beam[2].directionType = J2000 - -# Eg. [ 300..303, 40 ] --> [ 300,301,302,303,40 ] -# [ 10*0 ] --> [ 0,0,0,0,0,0,0,0,0,0 ] -# [ 3*(0;1;2;3) ] --> [ 0,1,2,3,0,1,2,3,0,1,2,3 ] -# [ 3*(300..303) ] --> [ 300,301,302,303,300,301,302,303,300,301,302,303 ] -# [ 2*(5*0) ] --> [ 0,0,0,0,0,0,0,0,0,0 ] - -#Observation.subbandList = [300..335] -Observation.beamList = [36*0] -Observation.rspBoardList = [36*0] -Observation.rspSlotList = [0..35] - -#Observation.subbandList = [300] -#Observation.beamList = [0] -#Observation.rspBoardList = [0] -#Observation.rspSlotList = [0] - -#Observation.subbandList = [300..331] -#Observation.beamList = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] -#Observation.rspBoardList = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3] -#Observation.rspSlotList = [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] - -# Eg. SAS/MAC: uStation mode: -#Observation.Beam[0].subbandList = [300..335,300..335,300..335,300..335] -#Observation.Beam[0].beamletList = [0..35,36..71,72..107,108..143] - -Observation.Beam[0].subbandList = [300..335] -Observation.Beam[0].beamletList = [0..35] - -# Eg. SAS/MAC: station mode: -#Observation.Beam[0].subbandList = [300..331] -#Observation.Beam[0].beamletList = [0..7,36..43,72..79,108..115] - - -Observation.channelsPerSubband = 256 -Observation.nrPolarisations = 2 - -OLAP.psetsPerStorage = 1 diff --git a/RTCP/Storage/test/tAH_TestStorage.cc b/RTCP/Storage/test/tAH_TestStorage.cc deleted file mode 100644 index 4fb0233cced850867f3f69f099f2607274d82d4d..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tAH_TestStorage.cc +++ /dev/null @@ -1,97 +0,0 @@ -//# tAH_TestStorage.cc: -//# -//# Copyright (C) 2002-2005 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id$ - -//# Always #include <lofar_config.h> first! -#include <lofar_config.h> - -#include <Common/lofar_iostream.h> -#include <Common/LofarLogger.h> -#include <Common/LofarLocators.h> -#include <Interface/Parset.h> -#include <Interface/Exceptions.h> -#include <Storage/SubbandWriter.h> -#include <Storage/Package__Version.h> - -#if defined HAVE_MPI -#include <mpi.h> -#endif - -#include <stdexcept> - - -using namespace LOFAR; -using namespace LOFAR::RTCP; - - -int main(int argc, char *argv[]) -{ - std::string type = "brief"; - Version::show<StorageVersion> (std::cout, "Storage", type); - - ConfigLocator aCL; - string progName = basename(argv[0]); - string logPropFile(progName + ".log_prop"); - INIT_LOGGER (aCL.locate(logPropFile).c_str()); - LOG_DEBUG_STR("Initialized logsystem with: " << aCL.locate(logPropFile)); - -#if defined HAVE_MPI - int rank; - int size; - - MPI_Init(&argc, &argv); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); -#else - int rank = 0; - int size = 1; -#endif - - try { - if (argc == 3) - std::cerr << "WARNING: specifying nrRuns is deprecated --- ignored" << std::endl; - else if (argc != 2) - THROW(StorageException, std::string("usage: ") << argv[0] << " parset"); - - std::clog << "trying to use parset \"" << argv[1] << '"' << std::endl; - Parset parset(argv[1]); - parset.adoptFile("OLAP.parset"); - - SubbandWriter subbandWriter(&parset, rank, size); - - } catch (Exception &ex) { - std::cerr << "caught Exception: " << ex.what() << std::endl; - exit(1); - } catch (std::exception &ex) { - std::cerr << "caught std::exception: " << ex.what() << std::endl; - exit(1); - } catch (...) { - std::cerr << "caught unknown exception" << std::endl; - exit(1); - } - -#if defined HAVE_MPI - MPI_Finalize(); -#endif - - return 0; -} - diff --git a/RTCP/Storage/test/tDAL.cc b/RTCP/Storage/test/tDAL.cc deleted file mode 100644 index 70d77bc6698e55dd737fcb02492a94d19f482016..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tDAL.cc +++ /dev/null @@ -1,48 +0,0 @@ -//# tDAL: Test HDF5 routines through DAL -//# -//# Copyright (C) 2011 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#ifdef HAVE_DAL - -#include <dal/dal_version.h> -#include <iostream> -#include <string> - -using namespace std; -using namespace dal; - -int main() { - if (!check_hdf5_versions()) { - cerr << "HDF5 version mismatch. DAL was compiled with " << version_hdf5_headers_dal() << ", our headers are " << version_hdf5_headers_current() << ", our library is " << version_hdf5() << endl; - return 1; - } - - return 0; -} - -#else - -int main() { - return 0; -} -#endif diff --git a/RTCP/Storage/test/tFastFileStream.cc b/RTCP/Storage/test/tFastFileStream.cc deleted file mode 100644 index 6791ed6fe508a133973bf0919669090007c3ad1b..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tFastFileStream.cc +++ /dev/null @@ -1,161 +0,0 @@ -//# tFastFileStream: Test FastFileStream class -//# -//# Copyright (C) 2001 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <iostream> -#include <string> -#include <Storage/FastFileStream.h> -#include <cassert> -#include <cstdio> -#include <cstdlib> - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -using namespace std; -using namespace LOFAR; -using namespace LOFAR::RTCP; - -class TempFile { -public: - TempFile( const string &dirname = "/tmp/") { - char templ[1024]; - snprintf(templ, sizeof templ, "%stFastFileStreamXXXXXX", dirname.c_str()); - - fd = mkstemp(templ); - - filename = templ; - } - ~TempFile() { - if (filename != "") { - close(fd); - (void)unlink(filename.c_str()); - } - } - - string filename; -private: - int fd; -}; - -size_t filesize(const string &filename) -{ - int fd = open(filename.c_str(), O_RDONLY); - off_t len; - - if (fd < 0) - return 0; - - len = lseek(fd, 0, SEEK_END); - - if (close(fd) < 0) - return 0; - - if (len == (off_t)-1) - return 0; - - return len; -} - -void test_smallwrite( size_t bytes ) -{ - printf("test_smallwrite(%lu)\n", bytes); - - TempFile tmpfile; - int flags = O_RDWR | O_CREAT | O_TRUNC; - int mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - - unsigned char buf[bytes]; - - // write 'bytes' bytes - for (size_t i = 0; i < bytes; ++i) - buf[i] = i % 256; - - { - FastFileStream s(tmpfile.filename, flags, mode); - s.write(&buf, sizeof buf); - } - - // verify file size - assert(filesize(tmpfile.filename) == bytes); - - // verify contents - for (size_t i = 0; i < bytes; ++i) - buf[i] = 0; - - { - FileStream s(tmpfile.filename, O_RDONLY, mode); - s.read(&buf, sizeof buf); - } - - for (size_t i = 0; i < bytes; ++i) - assert(buf[i] == i % 256); -} - -void test_skip( size_t bytes1, size_t skip, size_t bytes2 ) -{ - printf("test_skip(%lu, %lu, %lu)\n", bytes1, skip, bytes2); - - TempFile tmpfile; - int flags = O_RDWR | O_CREAT | O_TRUNC; - int mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - - char buf1[bytes1]; - char buf2[bytes2]; - - { - FastFileStream s(tmpfile.filename, flags, mode); - s.write(&buf1, sizeof buf1); - s.skip(skip); - s.write(&buf2, sizeof buf2); - } - - assert(filesize(tmpfile.filename) == bytes1 + skip + bytes2); -} - -int main() { - const size_t blocksize = FastFileStream::alignment; - - // test write() - test_smallwrite( 1 ); - test_smallwrite( blocksize ); - test_smallwrite( blocksize - 1 ); - test_smallwrite( blocksize + 1 ); - test_smallwrite( 2 * blocksize ); - test_smallwrite( 2 * blocksize - 1 ); - test_smallwrite( 2 * blocksize + 1 ); - test_smallwrite( 409 * 16 * 4 ); - - // test write() + skip() + write() - size_t values[] = {0, 1, blocksize - 1, blocksize, blocksize + 1}; - size_t numvalues = sizeof values / sizeof values[0]; - - for (unsigned bytes1 = 0; bytes1 < numvalues; bytes1++) - for (unsigned skip = 0; skip < numvalues; skip++) - for (unsigned bytes2 = 0; bytes2 < numvalues; bytes2++) - test_skip(values[bytes1], values[skip], values[bytes2]); - - return 0; -} - diff --git a/RTCP/Storage/test/tMSWriterCorrelated.cc b/RTCP/Storage/test/tMSWriterCorrelated.cc deleted file mode 100644 index 7c79cdcb38e2dd61052ff3248663fbd9ea154e73..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.cc +++ /dev/null @@ -1,78 +0,0 @@ -//# tMSWriterDAL: Test HDF5 routines through DAL -//# -//# Copyright (C) 2011 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#include <Common/LofarLogger.h> -#include <Storage/MSWriterCorrelated.h> -#include <Interface/DataFactory.h> -#include <Interface/FinalMetaData.h> - -using namespace std; -using namespace LOFAR; -using namespace RTCP; - -#if defined WORDS_BIGENDIAN -const int bigEndian = 1; -#else -const int bigEndian = 0; -#endif - -int main() { - INIT_LOGGER("tMSWriterCorrelated"); - - Parset parset("tMSWriterCorrelated.parset"); - - { - // Create MeasurementSet - MSWriterCorrelated writer("", "tMSWriterCorrelated.in_1/SB000.MS", parset, 0, bigEndian); - - // Write some data - StreamableData *data = newStreamableData(parset, CORRELATED_DATA, 0); - - writer.write(data); - - delete data; - - // Add broken tile information - FinalMetaData fmd; - struct FinalMetaData::BrokenRCU rcu; - - rcu.station = "CS013"; - rcu.time = "2012-01-01 00:00:00"; - rcu.type = "RCU"; - rcu.seqnr = 2; - - fmd.brokenRCUsAtBegin.push_back(rcu); - - rcu.station = "CS013"; - rcu.time = "2012-01-01 00:00:00"; - rcu.type = "LBA"; - rcu.seqnr = 4; - - fmd.brokenRCUsAtBegin.push_back(rcu); - - writer.augment(fmd); - } - - return 0; -} diff --git a/RTCP/Storage/test/tMSWriterCorrelated.in_1/AntennaSets.conf b/RTCP/Storage/test/tMSWriterCorrelated.in_1/AntennaSets.conf deleted file mode 100644 index 4995d4e60333f7420fa9172d40e3800149548946..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.in_1/AntennaSets.conf +++ /dev/null @@ -1,107 +0,0 @@ -# -# AntennaSet.conf -# -# This file defines subsets of the (physical) antennafields that can be used -# in observations as 'the' antennafield. -# -# Since there are 3 different station layout each subset must be defined for -# each stationtype (Core, Remote and Europe). -# -# A Subset is defined for specifying for each stationtypes for each RCU which -# input is used. -# -# Allowed values for the RCU input selection are: -# H : HBA input -# h : LBH input -# l : LBL input -# . : RCU not included -# -# To diminish the typing-work to syntax of an rcu definition is: -# input-selector ::= H | h | l | . -# rcu_definition ::= number input-selector [ number inputselector ...] -# -# E.g. when on a station on all RCUs the HBA input must be used this can be defined as -# 192H in stead of 192 'H' after each other. -# -# Or when all even RCUs should use LBL and all even RCUs shoud use LBH: -# 96hl -# -# The total number of assigned RCUs MUST match the total number for each station: -# -# RCU counts LBA HBA -# Europe 192 192 -# Remote 96 96 -# Core 96 96 -# -# Use inner half of the LBAs on Core and Remote -LBA_INNER LBA Europe 192h -LBA_INNER LBA Remote 46hh2.. -LBA_INNER LBA Core 46hh2.. -# -# Use outer half of the LBAs on Core and Remote -LBA_OUTER LBA Europe 192h -LBA_OUTER LBA Remote 96l -LBA_OUTER LBA Core 96l -# -# Use half of inner and outer LBAs on Core and Remote [TBC] -LBA_SPARSE_EVEN LBA Europe 48hh.. -LBA_SPARSE_EVEN LBA Remote 24llhh -LBA_SPARSE_EVEN LBA Core 24llhh -# -# Use half of inner and outer LBAs on Core and Remote [TBC] -LBA_SPARSE_ODD LBA Europe 48..hh -LBA_SPARSE_ODD LBA Remote 24hhll -LBA_SPARSE_ODD LBA Core 24hhll -# -# Use X dipole of all LBAs -LBA_X LBA Europe 96h. -LBA_X LBA Remote 46hl2.l -LBA_X LBA Core 46hl2.l -# -# Use Y dipole of all LBAs -LBA_Y LBA Europe 96.h -LBA_Y LBA Remote 46lh2l. -LBA_Y LBA Core 46lh2l. - -# Note: On Core stations the Serdes splitter is always on for HBA - -# Use 'ear' 0 in Core stations (antennas 0-23) -HBA_ZERO HBA Europe 192H -HBA_ZERO HBA Remote 96H -HBA_ZERO HBA0 Core 48H48. -# -# Use 'ear' 1 in Core stations (antennas 24-47) -HBA_ONE HBA Europe 192H -HBA_ONE HBA Remote 96H -HBA_ONE HBA1 Core 48.48H -# -# Use both 'ears' in the Core (microstationmode for EOR) -HBA_DUAL HBA Europe 192H -HBA_DUAL HBA Remote 96H -HBA_DUAL HBA Core 96H -# -# Use both 'ears' in the Core added together (pulsar mode) -HBA_JOINED HBA Europe 192H -HBA_JOINED HBA Remote 96H -HBA_JOINED HBA Core 96H -# -# Use both 'ears' in the Core and 24 tiles in remote (microstationmode for EOR) -HBA_ZERO_INNER HBA Europe 192H -HBA_ZERO_INNER HBA Remote 10.4H6.8H6.12H4.12H6.8H6.4H10. -HBA_ZERO_INNER HBA0 Core 48H48. -# -# Use both 'ears' in the Core and 24 tiles in remote (microstationmode for EOR) -HBA_ONE_INNER HBA Europe 192H -HBA_ONE_INNER HBA Remote 10.4H6.8H6.12H4.12H6.8H6.4H10. -HBA_ONE_INNER HBA1 Core 48.48H -# -# Use both 'ears' in the Core and 24 tiles in remote (microstationmode for EOR) -HBA_DUAL_INNER HBA Europe 192H -HBA_DUAL_INNER HBA Remote 10.4H6.8H6.12H4.12H6.8H6.4H10. -HBA_DUAL_INNER HBA Core 96H -# -# Use both 'ears' in the Core and 24 tiles in remote (microstationmode for EOR) -HBA_JOINED_INNER HBA Europe 192H -HBA_JOINED_INNER HBA Remote 10.4H6.8H6.12H4.12H6.8H6.4H10. -HBA_JOINED_INNER HBA Core 96H - diff --git a/RTCP/Storage/test/tMSWriterCorrelated.in_1/CS013-AntennaField.conf b/RTCP/Storage/test/tMSWriterCorrelated.in_1/CS013-AntennaField.conf deleted file mode 100644 index 7b1b6134b863f150e5891f956322aaf19d8938e9..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.in_1/CS013-AntennaField.conf +++ /dev/null @@ -1,195 +0,0 @@ -# -# AntennaPositions for CS013 -# ITRF2005 target_date = 2012.5 -# Created: 2012-01-24 14:49:38 -# - -NORMAL_VECTOR LBA -3 [ 0.598753 0.072099 0.797682 ] - -ROTATION_MATRIX LBA -3 x 3 [ - -0.1195950000 -0.7919540000 0.5987530000 - 0.9928230000 -0.0954190000 0.0720990000 - 0.0000330000 0.6030780000 0.7976820000 -] - -LBA -3 [ 3826346.265120000 460792.110620000 5065087.136 ] -96 x 2 x 3 [ - 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - -2.019000 -0.243001 1.538000 -2.019000 -0.243001 1.538000 - -1.338000 2.104999 0.814000 -1.338000 2.104999 0.814000 - 0.800000 2.363000 -0.814000 0.800000 2.363000 -0.814000 - 2.019000 0.243000 -1.538000 2.019000 0.243000 -1.538000 - 1.338000 -2.105000 -0.814000 1.338000 -2.105000 -0.814000 - -0.800000 -2.363000 0.814000 -0.800000 -2.363000 0.814000 - 2.364000 -5.132000 -1.311000 2.364000 -5.132000 -1.311000 - -0.759000 -5.647000 1.081000 -0.759000 -5.647000 1.081000 - -3.528000 -3.521001 2.966000 -3.528000 -3.521001 2.966000 - -4.645000 0.252999 3.464000 -4.645000 0.252999 3.464000 - -3.589000 3.908999 2.341000 -3.589000 3.908999 2.341000 - -0.853000 5.735000 0.122000 -0.853000 5.735000 0.122000 - 2.282000 4.878000 -2.153000 2.282000 4.878000 -2.153000 - 4.349000 1.739000 -3.421000 4.349000 1.739000 -3.421000 - 4.381000 -2.215000 -3.088000 4.381000 -2.215000 -3.088000 - 6.802000 -4.299000 -4.717000 6.802000 -4.299000 -4.717000 - 5.486000 -7.466000 -3.443000 5.486000 -7.466000 -3.443000 - 2.155000 -10.074000 -0.707000 2.155000 -10.074000 -0.707000 - -3.624000 -8.747001 3.511000 -3.624000 -8.747001 3.511000 - -5.751000 -6.778001 4.929000 -5.751000 -6.778001 4.929000 - -7.565000 -3.023001 5.952000 -7.565000 -3.023001 5.952000 - -7.377000 1.199999 5.429000 -7.377000 1.199999 5.429000 - -5.394000 6.283999 3.481000 -5.394000 6.283999 3.481000 - -2.685000 9.471999 1.159000 -2.685000 9.471999 1.159000 - 0.780000 9.948000 -1.484000 0.780000 9.948000 -1.484000 - 3.565000 7.907000 -3.391000 3.565000 7.907000 -3.391000 - 6.220000 4.201000 -5.048000 6.220000 4.201000 -5.048000 - 7.371000 -0.297000 -5.506000 7.371000 -0.297000 -5.506000 - 9.954000 -7.809000 -6.766000 9.954000 -7.809000 -6.766000 - 8.384000 -10.967000 -5.302000 8.384000 -10.967000 -5.302000 - 6.162000 -12.252000 -3.518000 6.162000 -12.252000 -3.518000 - -0.152000 -13.128000 1.301000 -0.152000 -13.128000 1.301000 - -2.127000 -14.688001 2.924000 -2.127000 -14.688001 2.924000 - -6.827000 -9.732001 6.004000 -6.827000 -9.732001 6.004000 - -9.268000 -5.525001 7.456000 -9.268000 -5.525001 7.456000 --11.990000 -1.274001 9.115000 -11.990000 -1.274001 9.115000 --10.788000 1.634999 7.950000 -10.788000 1.634999 7.950000 - -9.515000 6.010999 6.599000 -9.515000 6.010999 6.599000 - -6.022000 11.234999 3.505000 -6.022000 11.234999 3.505000 - -4.306000 12.894999 2.067000 -4.306000 12.894999 2.067000 - -0.065000 13.217000 -1.146000 -0.065000 13.217000 -1.146000 - 3.084000 14.339000 -3.611000 3.084000 14.339000 -3.611000 - 8.659000 8.494000 -7.267000 8.659000 8.494000 -7.267000 - 10.195000 4.913000 -8.097000 10.195000 4.913000 -8.097000 - 11.595000 -0.358999 -8.671000 11.595000 -0.358999 -8.671000 - -7.780010 64.586999 0.002000 -7.780010 64.586999 0.002000 - 51.520000 6.207004 -39.233000 51.520000 6.207004 -39.233000 - 14.224000 -3.588999 -10.352000 14.224000 -3.588999 -10.352000 - 15.691000 -6.145999 -11.222000 15.691000 -6.145999 -11.222000 - 8.279000 -18.063000 -4.582000 8.279000 -18.063000 -4.582000 - -4.581000 -18.591001 5.119000 -4.581000 -18.591001 5.119000 - -8.390000 -17.045001 7.838000 -8.390000 -17.045001 7.838000 --13.459000 -6.389002 10.680000 -13.459000 -6.389002 10.680000 --13.522000 6.845998 9.531000 -13.522000 6.845998 9.531000 --12.131000 14.491999 7.796000 -12.131000 14.491999 7.796000 - -1.097000 18.014999 -0.805000 -1.097000 18.014999 -0.805000 - 5.427000 18.232000 -5.721000 5.427000 18.232000 -5.721000 - 11.432000 11.311001 -9.603000 11.432000 11.311001 -9.603000 - 17.909000 9.575001 -14.308000 17.909000 9.575001 -14.308000 - 19.953000 -3.272999 -14.681000 19.953000 -3.272999 -14.681000 - 16.842000 -15.289999 -11.260000 16.842000 -15.289999 -11.260000 - 13.673000 -19.923999 -8.463000 13.673000 -19.923999 -8.463000 - 8.509000 -24.999000 -4.128000 8.509000 -24.999000 -4.128000 - -5.559000 -22.465001 6.203000 -5.559000 -22.465001 6.203000 --11.450000 -18.997001 10.311000 -11.450000 -18.997001 10.311000 --19.331000 -8.752002 15.301000 -19.331000 -8.752002 15.301000 --19.869000 5.422998 14.424000 -19.869000 5.422998 14.424000 --18.025000 14.279998 12.239000 -18.025000 14.279998 12.239000 --10.873000 21.379999 6.229000 -10.873000 21.379999 6.229000 - 1.023000 26.816000 -3.192000 1.023000 26.816000 -3.192000 - 14.212000 19.348001 -12.417000 14.212000 19.348001 -12.417000 - 24.668000 14.137002 -19.794000 24.668000 14.137002 -19.794000 - 25.123000 -0.724998 -18.792000 25.123000 -0.724998 -18.792000 - 22.679000 -14.796998 -15.685000 22.679000 -14.796998 -15.685000 - 20.222000 -21.997999 -13.191000 20.222000 -21.997999 -13.191000 - 7.169000 -30.652000 -2.611000 7.169000 -30.652000 -2.611000 - -7.125000 -32.377001 8.274000 -7.125000 -32.377001 8.274000 --15.985000 -26.441002 14.389000 -15.985000 -26.441002 14.389000 --18.672000 -17.549002 15.602000 -18.672000 -17.549002 15.602000 --26.614000 -6.273003 20.544000 -26.614000 -6.273003 20.544000 --25.737000 12.574997 18.182000 -25.737000 12.574997 18.182000 --22.461000 20.300998 15.025000 -22.461000 20.300998 15.025000 --13.535000 31.074998 7.351000 -13.535000 31.074998 7.351000 - -6.980000 31.481999 2.394000 -6.980000 31.481999 2.394000 - 9.526000 30.326000 -9.891000 9.526000 30.326000 -9.891000 - 13.031000 25.015001 -12.042000 13.031000 25.015001 -12.042000 - 16.768000 28.949001 -15.203000 16.768000 28.949001 -15.203000 - 33.368000 -5.313998 -24.566000 33.368000 -5.313998 -24.566000 - 24.293000 -27.622998 -15.738000 24.293000 -27.622998 -15.738000 - 12.093000 -39.823999 -5.478000 12.093000 -39.823999 -5.478000 - -0.758000 -40.093000 4.192000 -0.758000 -40.093000 4.192000 --30.677000 -12.969003 24.199000 -30.677000 -12.969003 24.199000 --28.718000 9.050997 20.738000 -28.718000 9.050997 20.738000 --27.383000 25.180997 18.278000 -27.383000 25.180997 18.278000 - 5.088000 37.759000 -7.232000 5.088000 37.759000 -7.232000 -] - -HBA -3 [ 3826360.529120000 460815.195621000 5065074.343 ] -48 x 2 x 3 [ --50.283010 48.846996 33.328000 -50.283010 48.846996 33.328000 --47.346010 52.249996 30.816000 -47.346010 52.249996 30.816000 --50.325010 41.595996 34.015000 -50.325010 41.595996 34.015000 --47.388010 44.998996 31.502000 -47.388010 44.998996 31.502000 --44.449010 48.401996 28.989000 -44.449010 48.401996 28.989000 --41.512010 51.803996 26.477000 -41.512010 51.803996 26.477000 --50.367010 34.344996 34.702000 -50.367010 34.344996 34.702000 --47.429010 37.748996 32.189000 -47.429010 37.748996 32.189000 --44.492010 41.150996 29.677000 -44.492010 41.150996 29.677000 --41.554010 44.553996 27.164000 -41.554010 44.553996 27.164000 --38.617010 47.956997 24.651000 -38.617010 47.956997 24.651000 --35.679010 51.359997 22.138000 -35.679010 51.359997 22.138000 --47.472010 30.496996 32.876000 -47.472010 30.496996 32.876000 --44.534010 33.899996 30.363000 -44.534010 33.899996 30.363000 --41.596010 37.302996 27.851000 -41.596010 37.302996 27.851000 --38.658010 40.705997 25.338000 -38.658010 40.705997 25.338000 --35.721010 44.108997 22.826000 -35.721010 44.108997 22.826000 --32.783010 47.512997 20.313000 -32.783010 47.512997 20.313000 --41.638010 30.052996 28.538000 -41.638010 30.052996 28.538000 --38.701010 33.455997 26.025000 -38.701010 33.455997 26.025000 --35.763010 36.858997 23.512000 -35.763010 36.858997 23.512000 --32.826010 40.261997 21.000000 -32.826010 40.261997 21.000000 --35.805010 29.607997 24.199000 -35.805010 29.607997 24.199000 --32.867010 33.009997 21.687000 -32.867010 33.009997 21.687000 - 32.866000 -33.010997 -21.686000 32.866000 -33.010997 -21.686000 - 35.803000 -29.607997 -24.198000 35.803000 -29.607997 -24.198000 - 32.824000 -40.261997 -20.999000 32.824000 -40.261997 -20.999000 - 35.761000 -36.858997 -23.512000 35.761000 -36.858997 -23.512000 - 38.699000 -33.455997 -26.025000 38.699000 -33.455997 -26.025000 - 41.637000 -30.052997 -28.537000 41.637000 -30.052997 -28.537000 - 32.781000 -47.512997 -20.312000 32.781000 -47.512997 -20.312000 - 35.719000 -44.108997 -22.825000 35.719000 -44.108997 -22.825000 - 38.657000 -40.705997 -25.337000 38.657000 -40.705997 -25.337000 - 41.595000 -37.302997 -27.850000 41.595000 -37.302997 -27.850000 - 44.532000 -33.899996 -30.363000 44.532000 -33.899996 -30.363000 - 47.470000 -30.497996 -32.876000 47.470000 -30.497996 -32.876000 - 35.677000 -51.359997 -22.138000 35.677000 -51.359997 -22.138000 - 38.615000 -47.956997 -24.651000 38.615000 -47.956997 -24.651000 - 41.552000 -44.553997 -27.163000 41.552000 -44.553997 -27.163000 - 44.490000 -41.151996 -29.676000 44.490000 -41.151996 -29.676000 - 47.428000 -37.748996 -32.188000 47.428000 -37.748996 -32.188000 - 50.366000 -34.344996 -34.701000 50.366000 -34.344996 -34.701000 - 41.510000 -51.803997 -26.476000 41.510000 -51.803997 -26.476000 - 44.448000 -48.401996 -28.989000 44.448000 -48.401996 -28.989000 - 47.386000 -44.998996 -31.502000 47.386000 -44.998996 -31.502000 - 50.323000 -41.595996 -34.014000 50.323000 -41.595996 -34.014000 - 47.344000 -52.249996 -30.815000 47.344000 -52.249996 -30.815000 - 50.281000 -48.846996 -33.327000 50.281000 -48.846996 -33.327000 -] - -NORMAL_VECTOR HBA0 -3 [ 0.598753 0.072099 0.797682 ] - -ROTATION_MATRIX HBA0 -3 x 3 [ - -0.1195950000 -0.7919540000 0.5987530000 - 0.9928230000 -0.0954190000 0.0720990000 - 0.0000330000 0.6030780000 0.7976820000 -] - -HBA0 -3 [ 3826318.954110000 460856.124617000 5065101.850 ] - -NORMAL_VECTOR HBA1 -3 [ 0.598753 0.072099 0.797682 ] - -ROTATION_MATRIX HBA1 -3 x 3 [ - -0.1195950000 -0.7919540000 0.5987530000 - 0.9928230000 -0.0954190000 0.0720990000 - 0.0000330000 0.6030780000 0.7976820000 -] - -HBA1 -3 [ 3826402.103120000 460774.266624000 5065046.836 ] diff --git a/RTCP/Storage/test/tMSWriterCorrelated.parset b/RTCP/Storage/test/tMSWriterCorrelated.parset deleted file mode 100644 index 0fcc5bc8bcd1c53548693a441d653429825928e6..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.parset +++ /dev/null @@ -1,495 +0,0 @@ -OLAP.BeamsAreTransposed = True -OLAP.CNProc.checkFakeInputData = F -OLAP.CNProc.fakeInputData = F -OLAP.CNProc.integrationSteps = 768 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R01-M0-N02-64 -OLAP.CNProc.phaseOnePsets = [1,0] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreePsets = [0..3] -OLAP.CNProc.phaseTwoPsets = [0..3] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCoresInPset = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 64 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 4 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 64 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1.0 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc.PLC_controlled = F -OLAP.IONProc.integrationSteps = 4 -OLAP.IONProc.psetList = [10.170.1.9,10.170.1.10,10.170.1.13,10.170.1.14] -OLAP.IncoherentStokesAreTransposed = True -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.PPF = True -OLAP.PencilInfo.flysEye = F -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0.01 -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = tMSWriterCorrelated.in_1/ -OLAP.Storage.AntennaSetsConf = tMSWriterCorrelated.in_1/AntennaSets.conf -OLAP.Storage.HBADeltasDir = tMSWriterCorrelated.in_1/ -OLAP.Storage.hosts = [localhost] -OLAP.Storage.msWriter = /globalhome/mol/projects/LOFAR/installed/gnu_opt/bin/Storage_main -OLAP.Storage.sshIdentityFile = /globalhome/mol/.ssh/id_rsa -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = mol -OLAP.coherentDedisperseChannels = T -OLAP.correctBandPass = T -OLAP.correctClocks = T -OLAP.delayCompensation = T -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.5 -Observation.nrBitsPerSample = 16 -OLAP.nrPsets = 4 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrTimesInFrame = 16 -OLAP.realTime = T -OLAP.storageNodeList = [0] -OLAP.storageStationNames = [CS013LBA] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].angle1 = 5.2336866848083394 -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].nrTabRings = 0 -Observation.Beam[0].nrTiedArrayBeams = 0 -Observation.Beam[0].tabRingSize = 0.0 -Observation.Beam[0].target = -Observation.Campaign.CO_I = -Observation.Campaign.PI = Developer -Observation.Campaign.contact = -Observation.Campaign.name = Development -Observation.Campaign.title = Development -Observation.DataProducts.Output_Beamformed.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Beamformed.enabled = F -Observation.DataProducts.Output_Beamformed.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_Correlated.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Correlated.enabled = T -Observation.DataProducts.Output_Correlated.filenames = [L1000000_SB000_uv.MS] -Observation.DataProducts.Output_Correlated.locations = [localhost:./tMSWriterCorrelated.in_1] -Observation.DataProducts.Output_Correlated.namemask = L${OBSID}_SB${SUBBAND}_uv.MS -Observation.DataProducts.Output_Trigger.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Trigger.enabled = F -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.ObsID = 1000000 -Observation.ObserverName = Developer -Observation.ProjectName = Development -Observation.VirtualInstrument.stationList = [S10,S9] -Observation.antennaSet = LBA_INNER -Observation.bandFilter = LBA_30_90 -Observation.beamList = [0] -Observation.channelsPerSubband = 64 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] -Observation.rspBoardList = [0] -Observation.rspSlotList = [0] -Observation.sampleClock = 200 -Observation.startTime = '2012-06-29 05:31:56' -Observation.stopTime = '2012-06-29 05:32:06' -Observation.subbandList = [100] -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.810,460938.526,5064630.696] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.235,460979.455,5064658.203] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.384,460897.597,5064603.189] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.546,460915.441,5064643.489] -PIC.Core.CS002HBA.clockCorrectionTime = 8.318569e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.278,460955.756,5064894.197] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.318834e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826600.961,460953.402,5064881.136] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.318304e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.594,460958.110,5064907.258] -PIC.Core.CS002LBA.clockCorrectionTime = 8.339918e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.066,461022.948,5064892.786] -PIC.Core.CS003HBA.clockCorrectionTime = 6.917899e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.580,461017.698,5064955.176] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.917926e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.348,461000.138,5064974.201] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.917872e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.812,461035.258,5064936.150] -PIC.Core.CS003LBA.clockCorrectionTime = 6.936566e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.748,460930.066,5064946.457] -PIC.Core.CS004HBA.clockCorrectionTime = 7.889733e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.556,460891.662,5064900.532] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.889961e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.626,460865.844,5064900.561] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.889505e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.486,460917.480,5064900.502] -PIC.Core.CS004LBA.clockCorrectionTime = 7.905512e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.197,460939.576,5064842.426] -PIC.Core.CS005HBA.clockCorrectionTime = 8.541942e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.177,461005.533,5064827.472] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.542093e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.160,460989.250,5064802.685] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.541791e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.194,461021.815,5064852.259] -PIC.Core.CS005LBA.clockCorrectionTime = 8.556805e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.750,461069.550,5064819.754] -PIC.Core.CS006HBA.clockCorrectionTime = 7.882660e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.141,461108.369,5064842.975] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.882360e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.783,461136.440,5064824.943] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.882960e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.499,461080.298,5064861.006] -PIC.Core.CS006LBA.clockCorrectionTime = 7.905282e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.730,461145.178,5064866.978] -PIC.Core.CS007HBA.clockCorrectionTime = 7.913140e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.368,461126.726,5064934.972] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.913020e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.715,461083.720,5064961.117] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.913260e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.021,461169.731,5064908.827] -PIC.Core.CS007LBA.clockCorrectionTime = 7.928823e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.361,461098.966,5064918.721] -PIC.Core.CS011HBA.clockCorrectionTime = 0 -PIC.Core.CS011HBA.phaseCenter = [3826643.191,461290.793,5064819.069] -PIC.Core.CS011HBA0.clockCorrectionTime = 0 -PIC.Core.CS011HBA0.phaseCenter = [3826637.421,461227.345,5064829.134] -PIC.Core.CS011HBA1.clockCorrectionTime = 0 -PIC.Core.CS011HBA1.phaseCenter = [3826648.961,461354.241,5064809.003] -PIC.Core.CS011LBA.clockCorrectionTime = 0 -PIC.Core.CS011LBA.phaseCenter = [3826667.069,461285.849,5064801.592] -PIC.Core.CS013HBA.clockCorrectionTime = 0 -PIC.Core.CS013HBA.phaseCenter = [3826360.529,460815.196,5065074.343] -PIC.Core.CS013HBA0.clockCorrectionTime = 0 -PIC.Core.CS013HBA0.phaseCenter = [3826318.954,460856.125,5065101.850] -PIC.Core.CS013HBA1.clockCorrectionTime = 0 -PIC.Core.CS013HBA1.phaseCenter = [3826402.103,460774.267,5065046.836] -PIC.Core.CS013LBA.clockCorrectionTime = 0 -PIC.Core.CS013LBA.phaseCenter = [3826346.265,460792.111,5065087.136] -PIC.Core.CS013LBA.position = [3826346.265,460792.111,5065087.136] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.439,461529.979,5064940.511] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.095,461507.460,5064978.083] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.783,461552.498,5064902.938] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.054,461501.950,5064935.827] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.158,460510.576,5065060.187] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.502,460533.094,5065022.614] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.813,460488.057,5065097.759] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.543,460538.604,5065064.870] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.849,461381.379,5064416.362] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.193,461403.898,5064378.790] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.504,461358.861,5064453.935] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.234,461409.408,5064421.046] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.653,461846.767,5064968.706] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.227,461805.837,5064941.199] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.078,461887.696,5064996.213] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.916,461869.852,5064955.913] -PIC.Core.CS028HBA.clockCorrectionTime = 0 -PIC.Core.CS028HBA.phaseCenter = [3825614.709,461283.678,5065591.532] -PIC.Core.CS028HBA0.clockCorrectionTime = 0 -PIC.Core.CS028HBA0.phaseCenter = [3825573.134,461324.607,5065619.039] -PIC.Core.CS028HBA1.clockCorrectionTime = 0 -PIC.Core.CS028HBA1.phaseCenter = [3825656.283,461242.749,5065564.025] -PIC.Core.CS028LBA.clockCorrectionTime = 0 -PIC.Core.CS028LBA.phaseCenter = [3825600.445,461260.593,5065604.325] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3826000.003,460364.303,5065385.121] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.577,460323.374,5065357.614] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.428,460405.233,5065412.628] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.266,460387.389,5065372.328] -PIC.Core.CS031HBA.clockCorrectionTime = 0 -PIC.Core.CS031HBA.phaseCenter = [3826430.381,460301.862,5065068.278] -PIC.Core.CS031HBA0.clockCorrectionTime = 0 -PIC.Core.CS031HBA0.phaseCenter = [3826383.037,460279.343,5065105.850] -PIC.Core.CS031HBA1.clockCorrectionTime = 0 -PIC.Core.CS031HBA1.phaseCenter = [3826477.725,460324.381,5065030.705] -PIC.Core.CS031LBA.clockCorrectionTime = 0 -PIC.Core.CS031LBA.phaseCenter = [3826439.996,460273.833,5065063.594] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.837,460410.995,5064702.499] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.262,460451.924,5064730.006] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.411,460370.066,5064674.992] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.573,460387.910,5064715.292] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825857.958,461661.510,5065374.102] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.302,461684.028,5065336.529] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.613,461638.991,5065411.674] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.343,461689.538,5065378.785] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.016,462800.003,5064947.127] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.590,462759.074,5064919.620] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.441,462840.933,5064974.634] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.279,462823.089,5064934.334] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.051,461918.691,5064731.315] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.281,461855.243,5064741.380] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.821,461982.139,5064721.249] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.929,461913.747,5064713.838] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.340,460985.281,5064240.201] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.109,461048.728,5064230.136] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.570,460921.833,5064250.266] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.462,460990.224,5064257.677] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.652,459769.554,5064002.807] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.226,459728.624,5063975.300] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.077,459810.483,5064030.313] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.916,459792.639,5063990.016] -PIC.Core.CS401HBA.clockCorrectionTime = 8.069737e-06 -PIC.Core.CS401HBA.phaseCenter = [3826789.982,460095.444,5064818.996] -PIC.Core.CS401HBA0.clockCorrectionTime = 8.069604e-06 -PIC.Core.CS401HBA0.phaseCenter = [3826795.752,460158.894,5064808.929] -PIC.Core.CS401HBA1.clockCorrectionTime = 8.069870e-06 -PIC.Core.CS401HBA1.phaseCenter = [3826784.211,460031.993,5064829.062] -PIC.Core.CS401LBA.clockCorrectionTime = 8.06397e-06 -PIC.Core.CS401LBA.phaseCenter = [3826766.106,460100.388,5064836.470] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.164,460670.139,5065645.456] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.820,460647.620,5065683.028] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.508,460692.658,5065607.883] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.779,460642.110,5065640.772] -PIC.Core.DE601HBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601HBA.phaseCenter = [4034099.840,487013.425,4900229.635] -PIC.Core.DE601LBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601LBA.phaseCenter = [4034036.396,487026.791,4900279.047] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.006,828789.153,4754362.203] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152560.658,828869.076,4754357.155] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.706,816722.865,4932394.416] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.908,816802.334,4932393.021] -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.phaseCenter = [3796379.823,877614.130,5032712.528] -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.phaseCenter = [3796327.178,877591.636,5032757.508] -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.phaseCenter = [4005681.020,450968.643,4926458.211] -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.phaseCenter = [4005681.355,450968.621,4926457.941] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.708,165545.525,4670271.363] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.809,165608.773,4670303.094] -PIC.Core.IONProc.R01-M0-N02-64[0].inputs = [S9/RSP0,S9/RSP1,S9/RSP2,S9/RSP3] -PIC.Core.IONProc.R01-M0-N02-64[1].inputs = [S10/RSP0,S10/RSP1,S10/RSP2,S10/RSP3] -PIC.Core.IONProc.R01-M0-N02-64[2].inputs = [] -PIC.Core.IONProc.R01-M0-N02-64[3].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.425,469162.285,5062137.310] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.670,463487.529,5060989.903] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.563,463435.440,5061025.466] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.310,466962.809,5048397.244] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.051,466929.706,5048357.222] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.249,452761.702,5063243.181] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.808,452829.848,5063221.590] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.520,449627.261,5057357.585] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.949,449560.756,5057381.288] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818424.939,452020.269,5071817.644] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818467.634,451974.601,5071790.597] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.566,459476.972,5066858.578] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.452,459438.282,5066898.190] -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.phaseCenter = [3797136.484,463114.447,5086651.286] -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.phaseCenter = [3797202.116,463087.509,5086605.037] -PIC.Core.RS509HBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.phaseCenter = [3783537.525,450130.064,5097866.146] -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.phaseCenter = [3783579.131,450178.882,5097830.835] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S10.position = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S9.position = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.S10.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.S9.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.941,-100376.609,4943716.874] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008438.457,-100309.725,4943735.828] diff --git a/RTCP/Storage/test/tMSWriterCorrelated.run b/RTCP/Storage/test/tMSWriterCorrelated.run deleted file mode 100755 index c36e8d9d8790833a66d02b59f9fceb000c0876f1..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.run +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -./tMSWriterCorrelated - -# add path to casacore for lhn001, but don't fail if this does not work -( -. /opt/cep/login/bashrc && use LofIm -) > /dev/null 2>&1 || true - -# if taql is unavailable, don't do subsequent tests -taql --help >/dev/null 2>&1 || exit 3 - -taql 'select ELEMENT_FLAG[,0] from tMSWriterCorrelated.in_1/SB000.MS::LOFAR_ANTENNA_FIELD' - diff --git a/RTCP/Storage/test/tMSWriterCorrelated.sh b/RTCP/Storage/test/tMSWriterCorrelated.sh deleted file mode 100755 index ca655ea2ab7f8aba27236f10097c83c13c65e30d..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tMSWriterCorrelated diff --git a/RTCP/Storage/test/tMSWriterCorrelated.stdout b/RTCP/Storage/test/tMSWriterCorrelated.stdout deleted file mode 100644 index 4672275cebf5911a3ceca25466791550a1a785b0..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterCorrelated.stdout +++ /dev/null @@ -1,5 +0,0 @@ - select result of 1 rows -1 selected columns: Col_1 -Axis Lengths: [1, 96] (NB: Matrix in Row/Column order) -[0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - diff --git a/RTCP/Storage/test/tMSWriterDAL.cc b/RTCP/Storage/test/tMSWriterDAL.cc deleted file mode 100644 index 4fab7696adf3e875498aba1cb65c1611c31fc987..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterDAL.cc +++ /dev/null @@ -1,61 +0,0 @@ -//# tMSWriterDAL: Test HDF5 routines through DAL -//# -//# Copyright (C) 2011 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# This program 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 of the License, or -//# (at your option) any later version. -//# -//# 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. -//# -//# You should have received a copy of the GNU General Public License -//# along with this program; if not, write to the Free Software -//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//# -//# $Id: $ - -#include <lofar_config.h> - -#ifdef HAVE_DAL - -#include <Storage/MSWriterDAL.h> -#include <Interface/DataFactory.h> - -using namespace std; -using namespace LOFAR; -using namespace RTCP; - -#if defined WORDS_BIGENDIAN -const int bigEndian = 1; -#else -const int bigEndian = 0; -#endif - -int main() { - Parset parset("tMSWriterDAL.parset"); - - { - MSWriterDAL<float,3> writer("tMSWriterDAL_tmp.h5", parset, 0, bigEndian); - - StreamableData *data = newStreamableData(parset, BEAM_FORMED_DATA, 0); - - writer.write(data); - - delete data; - } - - return 0; -} - -#else - -int main() { - return 0; -} -#endif diff --git a/RTCP/Storage/test/tMSWriterDAL.parset b/RTCP/Storage/test/tMSWriterDAL.parset deleted file mode 100644 index 9c742a9031538bdd05cfb23e12b8892a9a8923ad..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterDAL.parset +++ /dev/null @@ -1,508 +0,0 @@ -OLAP.BeamsAreTransposed = True -OLAP.CNProc.checkFakeInputData = F -OLAP.CNProc.fakeInputData = F -OLAP.CNProc.integrationSteps = 768 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R01-M0-N02-64 -OLAP.CNProc.phaseOnePsets = [1,0] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreePsets = [0..3] -OLAP.CNProc.phaseTwoPsets = [0..3] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCoresInPset = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 64 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 4 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 64 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 1 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1.0 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc.PLC_controlled = F -OLAP.IONProc.integrationSteps = 4 -OLAP.IONProc.psetList = [10.170.1.9,10.170.1.10,10.170.1.13,10.170.1.14] -OLAP.IncoherentStokesAreTransposed = True -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.PPF = True -OLAP.PencilInfo.flysEye = F -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0.01 -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.hosts = [locus090,locus091] -OLAP.Storage.msWriter = /globalhome/mol/projects/LOFAR/installed/gnu_opt/bin/Storage_main -OLAP.Storage.sshIdentityFile = /globalhome/mol/.ssh/id_rsa -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = mol -OLAP.coherentDedisperseChannels = T -OLAP.correctBandPass = T -OLAP.correctClocks = T -OLAP.delayCompensation = T -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.5 -Observation.nrBitsPerSample = 16 -OLAP.nrPsets = 4 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrTimesInFrame = 16 -OLAP.realTime = T -OLAP.storageNodeList = [0,0,1] -OLAP.storageStationNames = [S10,S9] -OLAP.tiedArrayStationNames = [] -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[0].coherent = T -Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[0].specificationType = manual -Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[1].coherent = T -Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[1].specificationType = manual -Observation.Beam[0].TiedArrayBeam[1].stationList = [] -Observation.Beam[0].angle1 = 5.2336866848083394 -Observation.Beam[0].angle2 = 0.71094251447010637 -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].nrTabRings = 0 -Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].tabRingSize = 0.0 -Observation.Beam[0].target = -Observation.Campaign.CO_I = -Observation.Campaign.PI = Developer -Observation.Campaign.contact = -Observation.Campaign.name = Development -Observation.Campaign.title = Development -Observation.DataProducts.Output_Beamformed.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Beamformed.enabled = T -Observation.DataProducts.Output_Beamformed.filenames = [L1000000_B000_S0_P000_bf.raw,L1000000_B001_S0_P000_bf.raw] -Observation.DataProducts.Output_Beamformed.locations = [locus090:/data/L2012_1000000,locus091:/data/L2012_1000000] -Observation.DataProducts.Output_Beamformed.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_Correlated.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Correlated.enabled = F -Observation.DataProducts.Output_Correlated.namemask = L${OBSID}_SB${SUBBAND}_uv.MS -Observation.DataProducts.Output_Trigger.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Trigger.enabled = F -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.ObsID = 1000000 -Observation.ObserverName = Developer -Observation.ProjectName = Development -Observation.VirtualInstrument.stationList = [S10,S9] -Observation.antennaSet = -Observation.bandFilter = LBA_30_90 -Observation.beamList = [3*0] -Observation.channelsPerSubband = 64 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] -Observation.rspBoardList = [3*0] -Observation.rspSlotList = [0,1,2] -Observation.sampleClock = 200 -Observation.startTime = '2012-06-29 05:31:56' -Observation.stopTime = '2012-06-29 05:32:06' -Observation.subbandList = [100,101,102] -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.810,460938.526,5064630.696] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.235,460979.455,5064658.203] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.384,460897.597,5064603.189] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.546,460915.441,5064643.489] -PIC.Core.CS002HBA.clockCorrectionTime = 8.318569e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.278,460955.756,5064894.197] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.318834e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826600.961,460953.402,5064881.136] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.318304e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.594,460958.110,5064907.258] -PIC.Core.CS002LBA.clockCorrectionTime = 8.339918e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.066,461022.948,5064892.786] -PIC.Core.CS003HBA.clockCorrectionTime = 6.917899e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.580,461017.698,5064955.176] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.917926e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.348,461000.138,5064974.201] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.917872e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.812,461035.258,5064936.150] -PIC.Core.CS003LBA.clockCorrectionTime = 6.936566e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.748,460930.066,5064946.457] -PIC.Core.CS004HBA.clockCorrectionTime = 7.889733e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.556,460891.662,5064900.532] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.889961e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.626,460865.844,5064900.561] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.889505e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.486,460917.480,5064900.502] -PIC.Core.CS004LBA.clockCorrectionTime = 7.905512e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.197,460939.576,5064842.426] -PIC.Core.CS005HBA.clockCorrectionTime = 8.541942e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.177,461005.533,5064827.472] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.542093e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.160,460989.250,5064802.685] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.541791e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.194,461021.815,5064852.259] -PIC.Core.CS005LBA.clockCorrectionTime = 8.556805e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.750,461069.550,5064819.754] -PIC.Core.CS006HBA.clockCorrectionTime = 7.882660e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.141,461108.369,5064842.975] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.882360e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.783,461136.440,5064824.943] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.882960e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.499,461080.298,5064861.006] -PIC.Core.CS006LBA.clockCorrectionTime = 7.905282e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.730,461145.178,5064866.978] -PIC.Core.CS007HBA.clockCorrectionTime = 7.913140e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.368,461126.726,5064934.972] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.913020e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.715,461083.720,5064961.117] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.913260e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.021,461169.731,5064908.827] -PIC.Core.CS007LBA.clockCorrectionTime = 7.928823e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.361,461098.966,5064918.721] -PIC.Core.CS011HBA.clockCorrectionTime = 0 -PIC.Core.CS011HBA.phaseCenter = [3826643.191,461290.793,5064819.069] -PIC.Core.CS011HBA0.clockCorrectionTime = 0 -PIC.Core.CS011HBA0.phaseCenter = [3826637.421,461227.345,5064829.134] -PIC.Core.CS011HBA1.clockCorrectionTime = 0 -PIC.Core.CS011HBA1.phaseCenter = [3826648.961,461354.241,5064809.003] -PIC.Core.CS011LBA.clockCorrectionTime = 0 -PIC.Core.CS011LBA.phaseCenter = [3826667.069,461285.849,5064801.592] -PIC.Core.CS013HBA.clockCorrectionTime = 0 -PIC.Core.CS013HBA.phaseCenter = [3826360.529,460815.196,5065074.343] -PIC.Core.CS013HBA0.clockCorrectionTime = 0 -PIC.Core.CS013HBA0.phaseCenter = [3826318.954,460856.125,5065101.850] -PIC.Core.CS013HBA1.clockCorrectionTime = 0 -PIC.Core.CS013HBA1.phaseCenter = [3826402.103,460774.267,5065046.836] -PIC.Core.CS013LBA.clockCorrectionTime = 0 -PIC.Core.CS013LBA.phaseCenter = [3826346.265,460792.111,5065087.136] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.439,461529.979,5064940.511] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.095,461507.460,5064978.083] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.783,461552.498,5064902.938] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.054,461501.950,5064935.827] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.158,460510.576,5065060.187] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.502,460533.094,5065022.614] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.813,460488.057,5065097.759] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.543,460538.604,5065064.870] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.849,461381.379,5064416.362] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.193,461403.898,5064378.790] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.504,461358.861,5064453.935] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.234,461409.408,5064421.046] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.653,461846.767,5064968.706] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.227,461805.837,5064941.199] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.078,461887.696,5064996.213] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.916,461869.852,5064955.913] -PIC.Core.CS028HBA.clockCorrectionTime = 0 -PIC.Core.CS028HBA.phaseCenter = [3825614.709,461283.678,5065591.532] -PIC.Core.CS028HBA0.clockCorrectionTime = 0 -PIC.Core.CS028HBA0.phaseCenter = [3825573.134,461324.607,5065619.039] -PIC.Core.CS028HBA1.clockCorrectionTime = 0 -PIC.Core.CS028HBA1.phaseCenter = [3825656.283,461242.749,5065564.025] -PIC.Core.CS028LBA.clockCorrectionTime = 0 -PIC.Core.CS028LBA.phaseCenter = [3825600.445,461260.593,5065604.325] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3826000.003,460364.303,5065385.121] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.577,460323.374,5065357.614] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.428,460405.233,5065412.628] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.266,460387.389,5065372.328] -PIC.Core.CS031HBA.clockCorrectionTime = 0 -PIC.Core.CS031HBA.phaseCenter = [3826430.381,460301.862,5065068.278] -PIC.Core.CS031HBA0.clockCorrectionTime = 0 -PIC.Core.CS031HBA0.phaseCenter = [3826383.037,460279.343,5065105.850] -PIC.Core.CS031HBA1.clockCorrectionTime = 0 -PIC.Core.CS031HBA1.phaseCenter = [3826477.725,460324.381,5065030.705] -PIC.Core.CS031LBA.clockCorrectionTime = 0 -PIC.Core.CS031LBA.phaseCenter = [3826439.996,460273.833,5065063.594] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.837,460410.995,5064702.499] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.262,460451.924,5064730.006] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.411,460370.066,5064674.992] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.573,460387.910,5064715.292] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825857.958,461661.510,5065374.102] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.302,461684.028,5065336.529] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.613,461638.991,5065411.674] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.343,461689.538,5065378.785] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.016,462800.003,5064947.127] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.590,462759.074,5064919.620] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.441,462840.933,5064974.634] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.279,462823.089,5064934.334] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.051,461918.691,5064731.315] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.281,461855.243,5064741.380] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.821,461982.139,5064721.249] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.929,461913.747,5064713.838] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.340,460985.281,5064240.201] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.109,461048.728,5064230.136] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.570,460921.833,5064250.266] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.462,460990.224,5064257.677] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.652,459769.554,5064002.807] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.226,459728.624,5063975.300] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.077,459810.483,5064030.313] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.916,459792.639,5063990.016] -PIC.Core.CS401HBA.clockCorrectionTime = 8.069737e-06 -PIC.Core.CS401HBA.phaseCenter = [3826789.982,460095.444,5064818.996] -PIC.Core.CS401HBA0.clockCorrectionTime = 8.069604e-06 -PIC.Core.CS401HBA0.phaseCenter = [3826795.752,460158.894,5064808.929] -PIC.Core.CS401HBA1.clockCorrectionTime = 8.069870e-06 -PIC.Core.CS401HBA1.phaseCenter = [3826784.211,460031.993,5064829.062] -PIC.Core.CS401LBA.clockCorrectionTime = 8.06397e-06 -PIC.Core.CS401LBA.phaseCenter = [3826766.106,460100.388,5064836.470] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.164,460670.139,5065645.456] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.820,460647.620,5065683.028] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.508,460692.658,5065607.883] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.779,460642.110,5065640.772] -PIC.Core.DE601HBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601HBA.phaseCenter = [4034099.840,487013.425,4900229.635] -PIC.Core.DE601LBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601LBA.phaseCenter = [4034036.396,487026.791,4900279.047] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.006,828789.153,4754362.203] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152560.658,828869.076,4754357.155] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.706,816722.865,4932394.416] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.908,816802.334,4932393.021] -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.phaseCenter = [3796379.823,877614.130,5032712.528] -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.phaseCenter = [3796327.178,877591.636,5032757.508] -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.phaseCenter = [4005681.020,450968.643,4926458.211] -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.phaseCenter = [4005681.355,450968.621,4926457.941] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.708,165545.525,4670271.363] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.809,165608.773,4670303.094] -PIC.Core.IONProc.R01-M0-N02-64[0].inputs = [S9/RSP0,S9/RSP1,S9/RSP2,S9/RSP3] -PIC.Core.IONProc.R01-M0-N02-64[1].inputs = [S10/RSP0,S10/RSP1,S10/RSP2,S10/RSP3] -PIC.Core.IONProc.R01-M0-N02-64[2].inputs = [] -PIC.Core.IONProc.R01-M0-N02-64[3].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.425,469162.285,5062137.310] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.670,463487.529,5060989.903] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.563,463435.440,5061025.466] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.310,466962.809,5048397.244] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.051,466929.706,5048357.222] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.249,452761.702,5063243.181] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.808,452829.848,5063221.590] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.520,449627.261,5057357.585] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.949,449560.756,5057381.288] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818424.939,452020.269,5071817.644] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818467.634,451974.601,5071790.597] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.566,459476.972,5066858.578] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.452,459438.282,5066898.190] -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.phaseCenter = [3797136.484,463114.447,5086651.286] -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.phaseCenter = [3797202.116,463087.509,5086605.037] -PIC.Core.RS509HBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.phaseCenter = [3783537.525,450130.064,5097866.146] -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.phaseCenter = [3783579.131,450178.882,5097830.835] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S10.position = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S9.position = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.S10.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.S9.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.941,-100376.609,4943716.874] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008438.457,-100309.725,4943735.828] diff --git a/RTCP/Storage/test/tMSWriterDAL.sh b/RTCP/Storage/test/tMSWriterDAL.sh deleted file mode 100755 index 39fb2204f5e05a513bb584dbb333e4cc05f989f3..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMSWriterDAL.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tMSWriterDAL diff --git a/RTCP/Storage/test/tMeasurementSetFormat.cc b/RTCP/Storage/test/tMeasurementSetFormat.cc deleted file mode 100644 index 12438c7b36e24afea5f4a7e329ef6b96249a7076..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMeasurementSetFormat.cc +++ /dev/null @@ -1,50 +0,0 @@ -//# tMeasurementSetFormat.cc: Test program for class MeasurementSetFormat -//# -//# Copyright (C) 2011 -//# ASTRON (Netherlands Foundation for Research in Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl -//# -//# $Id$ - -#include <lofar_config.h> -#include <Storage/MeasurementSetFormat.h> -#include <Common/LofarLogger.h> -#include <Common/Exception.h> - -#include <casa/IO/RegularFileIO.h> - -using namespace LOFAR; -using namespace LOFAR::RTCP; -using namespace casa; -using namespace std; - -// Define handler that tries to print a backtrace. -Exception::TerminateHandler t(Exception::terminate); - -int main() -{ - const string suffixes[] = { "-j2000", "-sun" }; - - for( unsigned i = 0; i < sizeof suffixes / sizeof suffixes[0]; i++ ) { - try { - const string parsetName = string("tMeasurementSetFormat.parset") + suffixes[i]; - const string msName = string("tMeasurementSetFormat") + suffixes[i] + "_tmp.ms"; - - LOG_DEBUG_STR("Testing " << parsetName); - - Parset parset(parsetName.c_str()); - MeasurementSetFormat msf(parset); - msf.addSubband(msName, 0, false); - // Also create the data file, otherwise it is not a true table. - ///FILE* file= fopen ("tMeasurementSetFormat_tmp.ms/f0data", "w"); - ///fclose (file); - RegularFileIO file(String(msName+"/table.f0data"), - ByteIO::New); - } catch (LOFAR::Exception &err) { - std::cerr << "LOFAR Exception detected: " << err << std::endl; - return 1; - } - } - - return 0; -} diff --git a/RTCP/Storage/test/tMeasurementSetFormat.parset-j2000 b/RTCP/Storage/test/tMeasurementSetFormat.parset-j2000 deleted file mode 100644 index d006e100dce89446a5a317e2b462c42ef9e2f06a..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMeasurementSetFormat.parset-j2000 +++ /dev/null @@ -1,751 +0,0 @@ -ApplCtrl.application = CorrAppl -ApplCtrl.procesOrder = [] -ApplCtrl.processes = [CNProc] -ApplCtrl.resultfile = '/opt/lofar/var/run/ACC_CCU001:OnlineControl[0]{24523}_CorrAppl_result.param' -ApplCtrl.timeout_createsubsets = 3m -ApplCtrl.timeout_define = 40 -ApplCtrl.timeout_info = 30 -ApplCtrl.timeout_init = 120 -ApplCtrl.timeout_kill = 60 -ApplCtrl.timeout_pause = 100 -ApplCtrl.timeout_quit = 10 -ApplCtrl.timeout_recover = 50 -ApplCtrl.timeout_reinit = 30 -ApplCtrl.timeout_release = 30 -ApplCtrl.timeout_run = 90 -ApplCtrl.timeout_snapshot = 30 -ApplCtrl.timeout_startup = 2m -CorrAppl.CNProc._ACnode = bgfen0 -CorrAppl.CNProc._ACport = 3921 -CorrAppl.CNProc._executable = CN_Processing -CorrAppl.CNProc._hostname = bgfen1 -CorrAppl.CNProc._nodes = [] -CorrAppl.CNProc._startstopType = bgl -CorrAppl.CNProc.coresPerPset = 64 -CorrAppl.CNProc.integrationSteps = 768 -CorrAppl.CNProc.nrPPFTaps = 16 -CorrAppl.CNProc.partition = R00 -CorrAppl.CNProc.phaseOnePsets = [] -CorrAppl.CNProc.phaseThreePsets = [] -CorrAppl.CNProc.phaseTwoPsets = [] -CorrAppl.CNProc.usedCores = [0..63] -CorrAppl.CNProc.workingdir = /opt/lofar/bin/ -CorrAppl._hostname = bgfen1 -CorrAppl.extraInfo = [OLAP,PIC] -CorrAppl.procesOrder = [] -CorrAppl.processes = [CNProc] -OLAP.BeamsAreTransposed = True -OLAP.CNProc._executable = CN_Processing -OLAP.CNProc._hostname = bgfen1 -OLAP.CNProc._nodes = [] -OLAP.CNProc._startstopType = bgl -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.integrationSteps = 12208 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R00 -OLAP.CNProc.phaseOnePsets = [34,2,36,4,38,6,33,1,35,3,37,5] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreeDisjunct = False -OLAP.CNProc.phaseThreePsets = [0..63] -OLAP.CNProc.phaseTwoPsets = [0..63] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc.usedCoresInPset = [0..63] -OLAP.CNProc.workingdir = /opt/lofar/bin/ -OLAP.Correlator.integrationTime = 2.0 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc._executable = IONProc -OLAP.IONProc._hostname = bgfen1 -OLAP.IONProc._nodes = [] -OLAP.IONProc._startstopType = cmdline -OLAP.IONProc.integrationSteps = 2 -OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] -OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = false -OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] -OLAP.PencilInfo.beamsPerPset = 1 -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0.0 -OLAP.PencilInfo.storageNodeList = [0] -OLAP.Pencil[0].angle1 = 0.0 -OLAP.Pencil[0].angle2 = 0.0 -OLAP.Stokes.channelsPerSubband = 16 -OLAP.Stokes.integrateChannels = false -OLAP.Stokes.integrationSteps = 16 -OLAP.Stokes.which = I -OLAP.Storage.hosts = [lse011,lse012] -OLAP.Storage.msWriter = /globalhome/lofarsystem/production/lofar/lfe/bin/Storage_main -OLAP.Storage.partsPerStokes = 1 -OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa -OLAP.Storage.subbandsPerPart = 240 -OLAP.Storage.targetDirectory = /data3 -OLAP.Storage.userName = lofarsys -OLAP.StorageProc.subbandsPerMS = 1 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.25 -Observation.nrBitsPerSample = 16 -OLAP.nrPencils = 1 -OLAP.nrPsets = 64 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrSubbandsPerFrame = 61 -OLAP.nrTimesInFrame = 16 -OLAP.outputBeamFormedData = false -OLAP.outputCoherentStokes = true -OLAP.outputCorrelatedData = false -OLAP.outputFilteredData = false -OLAP.outputIncoherentStokes = true -OLAP.realTime = true -OLAP.storageNodeList = [120*0,120*1] -OLAP.storageStationNames = [CS002HBA0,CS002HBA1,CS003HBA0,CS003HBA1,CS004HBA0,CS004HBA1,CS005HBA0,CS005HBA1,CS006HBA0,CS006HBA1,CS007HBA0,CS007HBA1] -OLAP.subbandsPerPset = 4 -OLAP.tiedArrayStationNames = [] -Observation.AnaBeam[0].angle1 = 2.211578201341469 -Observation.AnaBeam[0].angle2 = 0.4646638064138934 -Observation.AnaBeam[0].directionType = J2000 -Observation.AnaBeam[0].duration = 600 -Observation.AnaBeam[0].rank = 1 -Observation.AnaBeam[0].startTime = 0 -Observation.AnaBeam[0].target = -Observation.Beam[0].angle1 = 2.211578201341469 -Observation.Beam[0].angle2 = 0.4646638064138934 -Observation.Beam[0].beamletList = [0..239] -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].duration = 600 -Observation.Beam[0].momID = 19393 -Observation.Beam[0].startTime = 0 -Observation.Beam[0].subbandList = [100..339] -Observation.Beam[0].target = B0823+26 -Observation.Campaign.CO_I = 'Griessmeier, Dr Jean-Mathias' -Observation.Campaign.PI = 'Hessels, Dr. Jason' -Observation.Campaign.contact = 'Hessels, Dr. Jason' -Observation.Campaign.name = Pulsars -Observation.Campaign.title = Pulsars -Observation.DataProducts.measurementSets = [] -Observation.Dataproducts.Output_Beamformed.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Beamformed.enabled = false -Observation.Dataproducts.Output_Beamformed.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.Dataproducts.Output_CoherentStokes.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_CoherentStokes.enabled = true -Observation.Dataproducts.Output_CoherentStokes.filenames = [L24523_B000_S0_P000_bf.raw] -Observation.Dataproducts.Output_CoherentStokes.locations = [lse011:/data3/L2011_24523/] -Observation.Dataproducts.Output_CoherentStokes.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.Dataproducts.Output_Correlated.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Correlated.enabled = false -Observation.Dataproducts.Output_Correlated.namemask = L${OBSID}_SB${SUBBAND}_uv.MS -Observation.Dataproducts.Output_Filtered.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Filtered.enabled = false -Observation.Dataproducts.Output_Filtered.namemask = L${OBSID}_SB${SUBBAND}.filtered -Observation.Dataproducts.Output_IncoherentStokes.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_IncoherentStokes.enabled = true -Observation.Dataproducts.Output_IncoherentStokes.filenames = [L24523_SB000_bf.incoherentstokes,L24523_SB001_bf.incoherentstokes,L24523_SB002_bf.incoherentstokes,L24523_SB003_bf.incoherentstokes,L24523_SB004_bf.incoherentstokes,L24523_SB005_bf.incoherentstokes,L24523_SB006_bf.incoherentstokes,L24523_SB007_bf.incoherentstokes,L24523_SB008_bf.incoherentstokes,L24523_SB009_bf.incoherentstokes,L24523_SB010_bf.incoherentstokes,L24523_SB011_bf.incoherentstokes,L24523_SB012_bf.incoherentstokes,L24523_SB013_bf.incoherentstokes,L24523_SB014_bf.incoherentstokes,L24523_SB015_bf.incoherentstokes,L24523_SB016_bf.incoherentstokes,L24523_SB017_bf.incoherentstokes,L24523_SB018_bf.incoherentstokes,L24523_SB019_bf.incoherentstokes,L24523_SB020_bf.incoherentstokes,L24523_SB021_bf.incoherentstokes,L24523_SB022_bf.incoherentstokes,L24523_SB023_bf.incoherentstokes,L24523_SB024_bf.incoherentstokes,L24523_SB025_bf.incoherentstokes,L24523_SB026_bf.incoherentstokes,L24523_SB027_bf.incoherentstokes,L24523_SB028_bf.incoherentstokes,L24523_SB029_bf.incoherentstokes,L24523_SB030_bf.incoherentstokes,L24523_SB031_bf.incoherentstokes,L24523_SB032_bf.incoherentstokes,L24523_SB033_bf.incoherentstokes,L24523_SB034_bf.incoherentstokes,L24523_SB035_bf.incoherentstokes,L24523_SB036_bf.incoherentstokes,L24523_SB037_bf.incoherentstokes,L24523_SB038_bf.incoherentstokes,L24523_SB039_bf.incoherentstokes,L24523_SB040_bf.incoherentstokes,L24523_SB041_bf.incoherentstokes,L24523_SB042_bf.incoherentstokes,L24523_SB043_bf.incoherentstokes,L24523_SB044_bf.incoherentstokes,L24523_SB045_bf.incoherentstokes,L24523_SB046_bf.incoherentstokes,L24523_SB047_bf.incoherentstokes,L24523_SB048_bf.incoherentstokes,L24523_SB049_bf.incoherentstokes,L24523_SB050_bf.incoherentstokes,L24523_SB051_bf.incoherentstokes,L24523_SB052_bf.incoherentstokes,L24523_SB053_bf.incoherentstokes,L24523_SB054_bf.incoherentstokes,L24523_SB055_bf.incoherentstokes,L24523_SB056_bf.incoherentstokes,L24523_SB057_bf.incoherentstokes,L24523_SB058_bf.incoherentstokes,L24523_SB059_bf.incoherentstokes,L24523_SB060_bf.incoherentstokes,L24523_SB061_bf.incoherentstokes,L24523_SB062_bf.incoherentstokes,L24523_SB063_bf.incoherentstokes,L24523_SB064_bf.incoherentstokes,L24523_SB065_bf.incoherentstokes,L24523_SB066_bf.incoherentstokes,L24523_SB067_bf.incoherentstokes,L24523_SB068_bf.incoherentstokes,L24523_SB069_bf.incoherentstokes,L24523_SB070_bf.incoherentstokes,L24523_SB071_bf.incoherentstokes,L24523_SB072_bf.incoherentstokes,L24523_SB073_bf.incoherentstokes,L24523_SB074_bf.incoherentstokes,L24523_SB075_bf.incoherentstokes,L24523_SB076_bf.incoherentstokes,L24523_SB077_bf.incoherentstokes,L24523_SB078_bf.incoherentstokes,L24523_SB079_bf.incoherentstokes,L24523_SB080_bf.incoherentstokes,L24523_SB081_bf.incoherentstokes,L24523_SB082_bf.incoherentstokes,L24523_SB083_bf.incoherentstokes,L24523_SB084_bf.incoherentstokes,L24523_SB085_bf.incoherentstokes,L24523_SB086_bf.incoherentstokes,L24523_SB087_bf.incoherentstokes,L24523_SB088_bf.incoherentstokes,L24523_SB089_bf.incoherentstokes,L24523_SB090_bf.incoherentstokes,L24523_SB091_bf.incoherentstokes,L24523_SB092_bf.incoherentstokes,L24523_SB093_bf.incoherentstokes,L24523_SB094_bf.incoherentstokes,L24523_SB095_bf.incoherentstokes,L24523_SB096_bf.incoherentstokes,L24523_SB097_bf.incoherentstokes,L24523_SB098_bf.incoherentstokes,L24523_SB099_bf.incoherentstokes,L24523_SB100_bf.incoherentstokes,L24523_SB101_bf.incoherentstokes,L24523_SB102_bf.incoherentstokes,L24523_SB103_bf.incoherentstokes,L24523_SB104_bf.incoherentstokes,L24523_SB105_bf.incoherentstokes,L24523_SB106_bf.incoherentstokes,L24523_SB107_bf.incoherentstokes,L24523_SB108_bf.incoherentstokes,L24523_SB109_bf.incoherentstokes,L24523_SB110_bf.incoherentstokes,L24523_SB111_bf.incoherentstokes,L24523_SB112_bf.incoherentstokes,L24523_SB113_bf.incoherentstokes,L24523_SB114_bf.incoherentstokes,L24523_SB115_bf.incoherentstokes,L24523_SB116_bf.incoherentstokes,L24523_SB117_bf.incoherentstokes,L24523_SB118_bf.incoherentstokes,L24523_SB119_bf.incoherentstokes,L24523_SB120_bf.incoherentstokes,L24523_SB121_bf.incoherentstokes,L24523_SB122_bf.incoherentstokes,L24523_SB123_bf.incoherentstokes,L24523_SB124_bf.incoherentstokes,L24523_SB125_bf.incoherentstokes,L24523_SB126_bf.incoherentstokes,L24523_SB127_bf.incoherentstokes,L24523_SB128_bf.incoherentstokes,L24523_SB129_bf.incoherentstokes,L24523_SB130_bf.incoherentstokes,L24523_SB131_bf.incoherentstokes,L24523_SB132_bf.incoherentstokes,L24523_SB133_bf.incoherentstokes,L24523_SB134_bf.incoherentstokes,L24523_SB135_bf.incoherentstokes,L24523_SB136_bf.incoherentstokes,L24523_SB137_bf.incoherentstokes,L24523_SB138_bf.incoherentstokes,L24523_SB139_bf.incoherentstokes,L24523_SB140_bf.incoherentstokes,L24523_SB141_bf.incoherentstokes,L24523_SB142_bf.incoherentstokes,L24523_SB143_bf.incoherentstokes,L24523_SB144_bf.incoherentstokes,L24523_SB145_bf.incoherentstokes,L24523_SB146_bf.incoherentstokes,L24523_SB147_bf.incoherentstokes,L24523_SB148_bf.incoherentstokes,L24523_SB149_bf.incoherentstokes,L24523_SB150_bf.incoherentstokes,L24523_SB151_bf.incoherentstokes,L24523_SB152_bf.incoherentstokes,L24523_SB153_bf.incoherentstokes,L24523_SB154_bf.incoherentstokes,L24523_SB155_bf.incoherentstokes,L24523_SB156_bf.incoherentstokes,L24523_SB157_bf.incoherentstokes,L24523_SB158_bf.incoherentstokes,L24523_SB159_bf.incoherentstokes,L24523_SB160_bf.incoherentstokes,L24523_SB161_bf.incoherentstokes,L24523_SB162_bf.incoherentstokes,L24523_SB163_bf.incoherentstokes,L24523_SB164_bf.incoherentstokes,L24523_SB165_bf.incoherentstokes,L24523_SB166_bf.incoherentstokes,L24523_SB167_bf.incoherentstokes,L24523_SB168_bf.incoherentstokes,L24523_SB169_bf.incoherentstokes,L24523_SB170_bf.incoherentstokes,L24523_SB171_bf.incoherentstokes,L24523_SB172_bf.incoherentstokes,L24523_SB173_bf.incoherentstokes,L24523_SB174_bf.incoherentstokes,L24523_SB175_bf.incoherentstokes,L24523_SB176_bf.incoherentstokes,L24523_SB177_bf.incoherentstokes,L24523_SB178_bf.incoherentstokes,L24523_SB179_bf.incoherentstokes,L24523_SB180_bf.incoherentstokes,L24523_SB181_bf.incoherentstokes,L24523_SB182_bf.incoherentstokes,L24523_SB183_bf.incoherentstokes,L24523_SB184_bf.incoherentstokes,L24523_SB185_bf.incoherentstokes,L24523_SB186_bf.incoherentstokes,L24523_SB187_bf.incoherentstokes,L24523_SB188_bf.incoherentstokes,L24523_SB189_bf.incoherentstokes,L24523_SB190_bf.incoherentstokes,L24523_SB191_bf.incoherentstokes,L24523_SB192_bf.incoherentstokes,L24523_SB193_bf.incoherentstokes,L24523_SB194_bf.incoherentstokes,L24523_SB195_bf.incoherentstokes,L24523_SB196_bf.incoherentstokes,L24523_SB197_bf.incoherentstokes,L24523_SB198_bf.incoherentstokes,L24523_SB199_bf.incoherentstokes,L24523_SB200_bf.incoherentstokes,L24523_SB201_bf.incoherentstokes,L24523_SB202_bf.incoherentstokes,L24523_SB203_bf.incoherentstokes,L24523_SB204_bf.incoherentstokes,L24523_SB205_bf.incoherentstokes,L24523_SB206_bf.incoherentstokes,L24523_SB207_bf.incoherentstokes,L24523_SB208_bf.incoherentstokes,L24523_SB209_bf.incoherentstokes,L24523_SB210_bf.incoherentstokes,L24523_SB211_bf.incoherentstokes,L24523_SB212_bf.incoherentstokes,L24523_SB213_bf.incoherentstokes,L24523_SB214_bf.incoherentstokes,L24523_SB215_bf.incoherentstokes,L24523_SB216_bf.incoherentstokes,L24523_SB217_bf.incoherentstokes,L24523_SB218_bf.incoherentstokes,L24523_SB219_bf.incoherentstokes,L24523_SB220_bf.incoherentstokes,L24523_SB221_bf.incoherentstokes,L24523_SB222_bf.incoherentstokes,L24523_SB223_bf.incoherentstokes,L24523_SB224_bf.incoherentstokes,L24523_SB225_bf.incoherentstokes,L24523_SB226_bf.incoherentstokes,L24523_SB227_bf.incoherentstokes,L24523_SB228_bf.incoherentstokes,L24523_SB229_bf.incoherentstokes,L24523_SB230_bf.incoherentstokes,L24523_SB231_bf.incoherentstokes,L24523_SB232_bf.incoherentstokes,L24523_SB233_bf.incoherentstokes,L24523_SB234_bf.incoherentstokes,L24523_SB235_bf.incoherentstokes,L24523_SB236_bf.incoherentstokes,L24523_SB237_bf.incoherentstokes,L24523_SB238_bf.incoherentstokes,L24523_SB239_bf.incoherentstokes] -Observation.Dataproducts.Output_IncoherentStokes.locations = [120*lse011:/data3/L2011_24523/,120*lse012:/data3/L2011_24523/] -Observation.Dataproducts.Output_IncoherentStokes.namemask = L${OBSID}_SB${SUBBAND}_bf.incoherentstokes -Observation.Dataproducts.Output_Trigger.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Trigger.enabled = False -Observation.Dataproducts.Output_Trigger.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.Dataslots.DataslotInfo.DataslotList = -Observation.Dataslots.DataslotInfo.RSPBoardList = -Observation.KSPType = surveys -Observation.MSNameMask = /data3/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -Observation.ObsID = 24523 -Observation.ObservationControl.OnlineControl.ApplCtrl.application = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.procesOrder = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.processes = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.resultfile = ../log/ACC.result -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_createsubsets = 3m -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_define = 40 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_info = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_init = 120 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_kill = 60 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_pause = 100 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_quit = 10 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_recover = 50 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_reinit = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_release = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_run = 90 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_snapshot = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_startup = 2m -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._nodes = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.integrationSteps = 768 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.partition = R00 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo = [OLAP,PIC] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder = [] -Observation.ObservationControl.OnlineControl.CorrAppl.processes = [CNProc] -Observation.ObservationControl.OnlineControl.OLAP.CNProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.OLAP.CNProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc._nodes = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.OLAP.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.partition = R01 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 2.0 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc._executable = IONProc -Observation.ObservationControl.OnlineControl.OLAP.IONProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.OLAP.IONProc._nodes = [] -Observation.ObservationControl.OnlineControl.OLAP.IONProc._startstopType = cmdline -Observation.ObservationControl.OnlineControl.OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputOnly = false -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.nrRings = 0 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.ringSize = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle1 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle2 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrateChannels = false -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrationSteps = 16 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true -Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 -Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 -Observation.ObservationControl.OnlineControl.OLAP.nrPencils = 1 -Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 -Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 -Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.outputBeamFormedData = false -Observation.ObservationControl.OnlineControl.OLAP.outputCoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.outputCorrelatedData = false -Observation.ObservationControl.OnlineControl.OLAP.outputFilteredData = false -Observation.ObservationControl.OnlineControl.OLAP.outputIncoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.realTime = true -Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations -Observation.ObservationControl.OnlineControl._hostname = CCU001 -Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] -Observation.ObservationControl.OnlineControl.applications = [CorrAppl] -Observation.ObservationControl.StationControl._hostname = [CS002,CS006,CS003,CS007,CS004,CS005] -Observation.ObservationControl._hostname = MCU001 -Observation.ObservationControl.heartbeatInterval = 10 -Observation.ObserverName = unknown -Observation.ProjectName = unknown -Observation.Scheduler.CEPProcessingUnits = 0 -Observation.Scheduler.contactEmail = -Observation.Scheduler.contactName = -Observation.Scheduler.contactPhone = -Observation.Scheduler.firstPossibleDay = 0 -Observation.Scheduler.fixedDay = false -Observation.Scheduler.fixedTime = false -Observation.Scheduler.lastPossibleDay = 0 -Observation.Scheduler.late = false -Observation.Scheduler.nightTimeWeightFactor = 0 -Observation.Scheduler.offlineProcessingUnits = 0 -Observation.Scheduler.predMaxTimeDif = -Observation.Scheduler.predMinTimeDif = -Observation.Scheduler.predecessor = 0 -Observation.Scheduler.priority = 0.0 -Observation.Scheduler.projectName = -Observation.Scheduler.referenceFrame = 0 -Observation.Scheduler.storageUnits = 0 -Observation.Scheduler.taskDuration = 600 -Observation.Scheduler.taskID = 0 -Observation.Scheduler.taskName = 'B0823+26 (HBA)' -Observation.Scheduler.taskType = 0 -Observation.Scheduler.unscheduledReason = 0 -Observation.Scheduler.windowMaximumTime = -Observation.Scheduler.windowMinimumTime = -Observation.TBB.TBBsetting.RCUs = [] -Observation.TBB.TBBsetting.baselevel = 127 -Observation.TBB.TBBsetting.filter = 0 -Observation.TBB.TBBsetting.filter0_coeff0 = 0 -Observation.TBB.TBBsetting.filter0_coeff1 = 0 -Observation.TBB.TBBsetting.filter0_coeff2 = 0 -Observation.TBB.TBBsetting.filter0_coeff3 = 0 -Observation.TBB.TBBsetting.filter1_coeff0 = 0 -Observation.TBB.TBBsetting.filter1_coeff1 = 0 -Observation.TBB.TBBsetting.filter1_coeff2 = 0 -Observation.TBB.TBBsetting.filter1_coeff3 = 0 -Observation.TBB.TBBsetting.operatingMode = 1 -Observation.TBB.TBBsetting.startlevel = 7 -Observation.TBB.TBBsetting.stoplevel = 7 -Observation.TBB.TBBsetting.subbandList = [] -Observation.TBB.TBBsetting.triggerMode = 1 -Observation.TBB.TBBsetting.window = 1M -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationList = [CS002,CS006,CS003,CS007,CS004,CS005] -Observation.VirtualInstrument.stationSet = Custom -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [lse011,lse012] -Observation.antennaArray = HBA -Observation.antennaSet = HBA_DUAL -Observation.bandFilter = HBA_110_190 -Observation.beamList = [240*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 -Observation.claimPeriod = 120 -Observation.clockMode = <<Clock200 -Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] -Observation.existingStations = [CS001..CS007,CS021,CS024,CS030,CS031,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS503,DE601..DE603] -Observation.longBaselines = False -Observation.nrAnaBeams = 1 -Observation.nrBeamformers = 0 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.preparePeriod = 120 -Observation.receiverList = [] -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -Observation.rspBoardList = [61*0,61*1,61*2,57*3] -Observation.rspSlotList = [0..60,0..60,0..60,0..56] -Observation.sampleClock = 200 -Observation.samplesPerSecond = 196608 -Observation.startTime = '2011-03-22 18:16:00' -Observation.stopTime = '2011-03-22 18:26:00' -Observation.subbandList = [100..339] -Observation.subbandWidth = 195.3125 -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.853,460938.478,5064630.667] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.278,460979.407,5064658.174] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.428,460897.549,5064603.161] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.589,460915.393,5064643.460] -PIC.Core.CS002HBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.3205,460955.708,5064894.168] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.291555e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA0.position = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.291235e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002HBA1.position = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002LBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.CS003HBA.clockCorrectionTime = 6.889990e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.624,461017.650,5064955.147] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.889845e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA0.position = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.890135e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003HBA1.position = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003LBA.clockCorrectionTime = 6.889990e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.792,460930.018,5064946.429] -PIC.Core.CS004HBA.clockCorrectionTime = 7.861759e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.5995,460891.614,5064900.503] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.861849e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA0.position = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.861669e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004HBA1.position = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004LBA.clockCorrectionTime = 7.861759e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.240,460939.528,5064842.398] -PIC.Core.CS005HBA.clockCorrectionTime = 8.513690e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.221,461005.4845,5064827.444] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.513765e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA0.position = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.513615e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005HBA1.position = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005LBA.clockCorrectionTime = 8.513690e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.794,461069.502,5064819.726] -PIC.Core.CS006HBA.clockCorrectionTime = 7.854904e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.1845,461108.321,5064842.946] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.855584e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA0.position = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.854224e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006HBA1.position = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006LBA.clockCorrectionTime = 7.854904e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.773,461145.130,5064866.950] -PIC.Core.CS007HBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.411,461126.6775,5064934.9435] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.884946e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA0.position = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.885326e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007HBA1.position = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007LBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.405,461098.918,5064918.693] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.483,461529.931,5064940.483] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.139,461507.412,5064978.055] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.827,461552.450,5064902.910] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.097,461501.902,5064935.798] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.201,460510.528,5065060.159] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.468,460533.037,5065022.644] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.857,460488.009,5065097.731] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.586,460538.556,5065064.841] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.893,461381.331,5064416.334] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.236,461403.850,5064378.761] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.547,461358.813,5064453.906] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.277,461409.360,5064421.017] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.697,461846.719,5064968.678] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.270,461805.789,5064941.170] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.122,461887.648,5064996.185] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.959,461869.804,5064955.884] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3825999.9912340324,460364.22492058337,5065385.136533625] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.8445088593,460323.3355244964,5065357.416324711] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.6048163464,460405.2150478815,5065412.496568461] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.3094869214,460387.3411647229,5065372.299501434] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.880,460410.947,5064702.470] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.306,460451.876,5064729.978] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.454,460370.018,5064674.963] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.617,460387.862,5064715.264] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825858.001,461661.462,5065374.073] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.345,461683.980,5065336.500] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.656,461638.943,5065411.645] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.387,461689.490,5065378.757] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.059,462799.955,5064947.098] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.633,462759.026,5064919.592] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.484,462840.885,5064974.605] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.323,462823.041,5064934.306] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.094,461918.643,5064731.286] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.324,461855.195,5064741.351] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.865,461982.091,5064721.221] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.972,461913.699,5064713.810] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.384,460985.233,5064240.173] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.152,461048.680,5064230.107] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.613,460921.785,5064250.237] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.506,460990.176,5064257.649] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.6956053847,459769.50630620244,5064002.778603462] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.269609978,459728.57630928187,5063975.271605821] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.120600792,459810.43530312297,5064030.284601102] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.959604251,459792.591307241,5063989.987604071] -PIC.Core.CS401HBA.clockCorrectionTime = 0 -PIC.Core.CS401HBA.phaseCenter = [3826790.025,460095.396,5064818.967] -PIC.Core.CS401HBA0.clockCorrectionTime = 0 -PIC.Core.CS401HBA0.phaseCenter = [3826795.796,460158.846,5064808.901] -PIC.Core.CS401HBA1.clockCorrectionTime = 0 -PIC.Core.CS401HBA1.phaseCenter = [3826784.254,460031.945,5064829.033] -PIC.Core.CS401LBA.clockCorrectionTime = 0 -PIC.Core.CS401LBA.phaseCenter = [3826766.149,460100.340,5064836.441] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.208,460670.091,5065645.428] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.863,460647.572,5065682.999] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.551,460692.610,5065607.854] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.822,460642.062,5065640.743] -PIC.Core.DE601HBA.clockCorrectionTime = 0 -PIC.Core.DE601HBA.phaseCenter = [4034099.797,487013.365,4900229.675] -PIC.Core.DE601LBA.clockCorrectionTime = 0 -PIC.Core.DE601LBA.phaseCenter = [4034036.771,487026.037,4900278.814] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.135,828789.112,4754362.246] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152561.219,828868.251,4754356.662] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.753,816722.816,4932394.388] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.668,816802.076,4932393.236] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.745,165545.473,4670271.331] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.974,165609.110,4670302.931] -PIC.Core.IONProc.R00[0].inputs = [] -PIC.Core.IONProc.R00[10].inputs = [] -PIC.Core.IONProc.R00[11].inputs = [] -PIC.Core.IONProc.R00[12].inputs = [] -PIC.Core.IONProc.R00[13].inputs = [] -PIC.Core.IONProc.R00[14].inputs = [] -PIC.Core.IONProc.R00[15].inputs = [] -PIC.Core.IONProc.R00[16].inputs = [] -PIC.Core.IONProc.R00[17].inputs = [] -PIC.Core.IONProc.R00[18].inputs = [] -PIC.Core.IONProc.R00[19].inputs = [] -PIC.Core.IONProc.R00[1].inputs = [CS005HBA1/RSP0,CS005HBA1/RSP1,CS005HBA1/RSP2,CS005HBA1/RSP3] -PIC.Core.IONProc.R00[20].inputs = [] -PIC.Core.IONProc.R00[21].inputs = [] -PIC.Core.IONProc.R00[22].inputs = [] -PIC.Core.IONProc.R00[23].inputs = [] -PIC.Core.IONProc.R00[24].inputs = [] -PIC.Core.IONProc.R00[25].inputs = [] -PIC.Core.IONProc.R00[26].inputs = [] -PIC.Core.IONProc.R00[27].inputs = [] -PIC.Core.IONProc.R00[28].inputs = [] -PIC.Core.IONProc.R00[29].inputs = [] -PIC.Core.IONProc.R00[2].inputs = [CS002HBA1/RSP0,CS002HBA1/RSP1,CS002HBA1/RSP2,CS002HBA1/RSP3] -PIC.Core.IONProc.R00[30].inputs = [] -PIC.Core.IONProc.R00[31].inputs = [] -PIC.Core.IONProc.R00[32].inputs = [] -PIC.Core.IONProc.R00[33].inputs = [CS005HBA0/RSP0,CS005HBA0/RSP1,CS005HBA0/RSP2,CS005HBA0/RSP3] -PIC.Core.IONProc.R00[34].inputs = [CS002HBA0/RSP0,CS002HBA0/RSP1,CS002HBA0/RSP2,CS002HBA0/RSP3] -PIC.Core.IONProc.R00[35].inputs = [CS006HBA0/RSP0,CS006HBA0/RSP1,CS006HBA0/RSP2,CS006HBA0/RSP3] -PIC.Core.IONProc.R00[36].inputs = [CS003HBA0/RSP0,CS003HBA0/RSP1,CS003HBA0/RSP2,CS003HBA0/RSP3] -PIC.Core.IONProc.R00[37].inputs = [CS007HBA0/RSP0,CS007HBA0/RSP1,CS007HBA0/RSP2,CS007HBA0/RSP3] -PIC.Core.IONProc.R00[38].inputs = [CS004HBA0/RSP0,CS004HBA0/RSP1,CS004HBA0/RSP2,CS004HBA0/RSP3] -PIC.Core.IONProc.R00[39].inputs = [] -PIC.Core.IONProc.R00[3].inputs = [CS006HBA1/RSP0,CS006HBA1/RSP1,CS006HBA1/RSP2,CS006HBA1/RSP3] -PIC.Core.IONProc.R00[40].inputs = [] -PIC.Core.IONProc.R00[41].inputs = [] -PIC.Core.IONProc.R00[42].inputs = [] -PIC.Core.IONProc.R00[43].inputs = [] -PIC.Core.IONProc.R00[44].inputs = [] -PIC.Core.IONProc.R00[45].inputs = [] -PIC.Core.IONProc.R00[46].inputs = [] -PIC.Core.IONProc.R00[47].inputs = [] -PIC.Core.IONProc.R00[48].inputs = [] -PIC.Core.IONProc.R00[49].inputs = [] -PIC.Core.IONProc.R00[4].inputs = [CS003HBA1/RSP0,CS003HBA1/RSP1,CS003HBA1/RSP2,CS003HBA1/RSP3] -PIC.Core.IONProc.R00[50].inputs = [] -PIC.Core.IONProc.R00[51].inputs = [] -PIC.Core.IONProc.R00[52].inputs = [] -PIC.Core.IONProc.R00[53].inputs = [] -PIC.Core.IONProc.R00[54].inputs = [] -PIC.Core.IONProc.R00[55].inputs = [] -PIC.Core.IONProc.R00[56].inputs = [] -PIC.Core.IONProc.R00[57].inputs = [] -PIC.Core.IONProc.R00[58].inputs = [] -PIC.Core.IONProc.R00[59].inputs = [] -PIC.Core.IONProc.R00[5].inputs = [CS007HBA1/RSP0,CS007HBA1/RSP1,CS007HBA1/RSP2,CS007HBA1/RSP3] -PIC.Core.IONProc.R00[60].inputs = [] -PIC.Core.IONProc.R00[61].inputs = [] -PIC.Core.IONProc.R00[62].inputs = [] -PIC.Core.IONProc.R00[63].inputs = [] -PIC.Core.IONProc.R00[6].inputs = [CS004HBA1/RSP0,CS004HBA1/RSP1,CS004HBA1/RSP2,CS004HBA1/RSP3] -PIC.Core.IONProc.R00[7].inputs = [] -PIC.Core.IONProc.R00[8].inputs = [] -PIC.Core.IONProc.R00[9].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.641,469142.485,5062180.973] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.468,469162.237,5062137.281] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.606,463435.393,5061025.437] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.353,466962.762,5048397.215] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.094,466929.659,5048357.193] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.292,452761.654,5063243.153] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.851,452829.800,5063221.562] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.5626099864,449627.2130233004,5057357.55606065] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.9917542874,449560.70805339684,5057381.259244779] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818468.029,451974.278,5071790.337] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.6094873874,459476.92505906447,5066858.549501777] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.495722555,459438.235056466,5066898.161723869] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.Station.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008428.362,-100303.525,4943744.070] -_parsetPrefix = CorrAppl.CNProc. -_processName = CNProc diff --git a/RTCP/Storage/test/tMeasurementSetFormat.parset-sun b/RTCP/Storage/test/tMeasurementSetFormat.parset-sun deleted file mode 100644 index 68f04a45b1e6995ba91e41218c2f38c88ec8a8e7..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMeasurementSetFormat.parset-sun +++ /dev/null @@ -1,751 +0,0 @@ -ApplCtrl.application = CorrAppl -ApplCtrl.procesOrder = [] -ApplCtrl.processes = [CNProc] -ApplCtrl.resultfile = '/opt/lofar/var/run/ACC_CCU001:OnlineControl[0]{24523}_CorrAppl_result.param' -ApplCtrl.timeout_createsubsets = 3m -ApplCtrl.timeout_define = 40 -ApplCtrl.timeout_info = 30 -ApplCtrl.timeout_init = 120 -ApplCtrl.timeout_kill = 60 -ApplCtrl.timeout_pause = 100 -ApplCtrl.timeout_quit = 10 -ApplCtrl.timeout_recover = 50 -ApplCtrl.timeout_reinit = 30 -ApplCtrl.timeout_release = 30 -ApplCtrl.timeout_run = 90 -ApplCtrl.timeout_snapshot = 30 -ApplCtrl.timeout_startup = 2m -CorrAppl.CNProc._ACnode = bgfen0 -CorrAppl.CNProc._ACport = 3921 -CorrAppl.CNProc._executable = CN_Processing -CorrAppl.CNProc._hostname = bgfen1 -CorrAppl.CNProc._nodes = [] -CorrAppl.CNProc._startstopType = bgl -CorrAppl.CNProc.coresPerPset = 64 -CorrAppl.CNProc.integrationSteps = 768 -CorrAppl.CNProc.nrPPFTaps = 16 -CorrAppl.CNProc.partition = R00 -CorrAppl.CNProc.phaseOnePsets = [] -CorrAppl.CNProc.phaseThreePsets = [] -CorrAppl.CNProc.phaseTwoPsets = [] -CorrAppl.CNProc.usedCores = [0..63] -CorrAppl.CNProc.workingdir = /opt/lofar/bin/ -CorrAppl._hostname = bgfen1 -CorrAppl.extraInfo = [OLAP,PIC] -CorrAppl.procesOrder = [] -CorrAppl.processes = [CNProc] -OLAP.BeamsAreTransposed = True -OLAP.CNProc._executable = CN_Processing -OLAP.CNProc._hostname = bgfen1 -OLAP.CNProc._nodes = [] -OLAP.CNProc._startstopType = bgl -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.integrationSteps = 12208 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R00 -OLAP.CNProc.phaseOnePsets = [34,2,36,4,38,6,33,1,35,3,37,5] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreeDisjunct = False -OLAP.CNProc.phaseThreePsets = [0..63] -OLAP.CNProc.phaseTwoPsets = [0..63] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc.usedCoresInPset = [0..63] -OLAP.CNProc.workingdir = /opt/lofar/bin/ -OLAP.Correlator.integrationTime = 2.0 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc._executable = IONProc -OLAP.IONProc._hostname = bgfen1 -OLAP.IONProc._nodes = [] -OLAP.IONProc._startstopType = cmdline -OLAP.IONProc.integrationSteps = 2 -OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] -OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.OLAP_Conn.rawDataOutputOnly = false -OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] -OLAP.PencilInfo.beamsPerPset = 1 -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.nrRings = 0 -OLAP.PencilInfo.ringSize = 0.0 -OLAP.PencilInfo.storageNodeList = [0] -OLAP.Pencil[0].angle1 = 0.0 -OLAP.Pencil[0].angle2 = 0.0 -OLAP.Stokes.channelsPerSubband = 16 -OLAP.Stokes.integrateChannels = false -OLAP.Stokes.integrationSteps = 16 -OLAP.Stokes.which = I -OLAP.Storage.hosts = [lse011,lse012] -OLAP.Storage.msWriter = /globalhome/lofarsystem/production/lofar/lfe/bin/Storage_main -OLAP.Storage.partsPerStokes = 1 -OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa -OLAP.Storage.subbandsPerPart = 240 -OLAP.Storage.targetDirectory = /data3 -OLAP.Storage.userName = lofarsys -OLAP.StorageProc.subbandsPerMS = 1 -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.25 -Observation.nrBitsPerSample = 16 -OLAP.nrPencils = 1 -OLAP.nrPsets = 64 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrSubbandsPerFrame = 61 -OLAP.nrTimesInFrame = 16 -OLAP.outputBeamFormedData = false -OLAP.outputCoherentStokes = true -OLAP.outputCorrelatedData = false -OLAP.outputFilteredData = false -OLAP.outputIncoherentStokes = true -OLAP.realTime = true -OLAP.storageNodeList = [120*0,120*1] -OLAP.storageStationNames = [CS002HBA0,CS002HBA1,CS003HBA0,CS003HBA1,CS004HBA0,CS004HBA1,CS005HBA0,CS005HBA1,CS006HBA0,CS006HBA1,CS007HBA0,CS007HBA1] -OLAP.subbandsPerPset = 4 -OLAP.tiedArrayStationNames = [] -Observation.AnaBeam[0].angle1 = 0 -Observation.AnaBeam[0].angle2 = 0 -Observation.AnaBeam[0].directionType = SUN -Observation.AnaBeam[0].duration = 600 -Observation.AnaBeam[0].rank = 1 -Observation.AnaBeam[0].startTime = 0 -Observation.AnaBeam[0].target = -Observation.Beam[0].angle1 = 0 -Observation.Beam[0].angle2 = 0 -Observation.Beam[0].beamletList = [0..239] -Observation.Beam[0].directionType = SUN -Observation.Beam[0].duration = 600 -Observation.Beam[0].momID = 19393 -Observation.Beam[0].startTime = 0 -Observation.Beam[0].subbandList = [100..339] -Observation.Beam[0].target = B0823+26 -Observation.Campaign.CO_I = 'Griessmeier, Dr Jean-Mathias' -Observation.Campaign.PI = 'Hessels, Dr. Jason' -Observation.Campaign.contact = 'Hessels, Dr. Jason' -Observation.Campaign.name = Pulsars -Observation.Campaign.title = Pulsars -Observation.DataProducts.measurementSets = [] -Observation.Dataproducts.Output_Beamformed.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Beamformed.enabled = false -Observation.Dataproducts.Output_Beamformed.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.Dataproducts.Output_CoherentStokes.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_CoherentStokes.enabled = true -Observation.Dataproducts.Output_CoherentStokes.filenames = [L24523_B000_S0_P000_bf.raw] -Observation.Dataproducts.Output_CoherentStokes.locations = [lse011:/data3/L2011_24523/] -Observation.Dataproducts.Output_CoherentStokes.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.Dataproducts.Output_Correlated.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Correlated.enabled = false -Observation.Dataproducts.Output_Correlated.namemask = L${OBSID}_SB${SUBBAND}_uv.MS -Observation.Dataproducts.Output_Filtered.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Filtered.enabled = false -Observation.Dataproducts.Output_Filtered.namemask = L${OBSID}_SB${SUBBAND}.filtered -Observation.Dataproducts.Output_IncoherentStokes.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_IncoherentStokes.enabled = true -Observation.Dataproducts.Output_IncoherentStokes.filenames = [L24523_SB000_bf.incoherentstokes,L24523_SB001_bf.incoherentstokes,L24523_SB002_bf.incoherentstokes,L24523_SB003_bf.incoherentstokes,L24523_SB004_bf.incoherentstokes,L24523_SB005_bf.incoherentstokes,L24523_SB006_bf.incoherentstokes,L24523_SB007_bf.incoherentstokes,L24523_SB008_bf.incoherentstokes,L24523_SB009_bf.incoherentstokes,L24523_SB010_bf.incoherentstokes,L24523_SB011_bf.incoherentstokes,L24523_SB012_bf.incoherentstokes,L24523_SB013_bf.incoherentstokes,L24523_SB014_bf.incoherentstokes,L24523_SB015_bf.incoherentstokes,L24523_SB016_bf.incoherentstokes,L24523_SB017_bf.incoherentstokes,L24523_SB018_bf.incoherentstokes,L24523_SB019_bf.incoherentstokes,L24523_SB020_bf.incoherentstokes,L24523_SB021_bf.incoherentstokes,L24523_SB022_bf.incoherentstokes,L24523_SB023_bf.incoherentstokes,L24523_SB024_bf.incoherentstokes,L24523_SB025_bf.incoherentstokes,L24523_SB026_bf.incoherentstokes,L24523_SB027_bf.incoherentstokes,L24523_SB028_bf.incoherentstokes,L24523_SB029_bf.incoherentstokes,L24523_SB030_bf.incoherentstokes,L24523_SB031_bf.incoherentstokes,L24523_SB032_bf.incoherentstokes,L24523_SB033_bf.incoherentstokes,L24523_SB034_bf.incoherentstokes,L24523_SB035_bf.incoherentstokes,L24523_SB036_bf.incoherentstokes,L24523_SB037_bf.incoherentstokes,L24523_SB038_bf.incoherentstokes,L24523_SB039_bf.incoherentstokes,L24523_SB040_bf.incoherentstokes,L24523_SB041_bf.incoherentstokes,L24523_SB042_bf.incoherentstokes,L24523_SB043_bf.incoherentstokes,L24523_SB044_bf.incoherentstokes,L24523_SB045_bf.incoherentstokes,L24523_SB046_bf.incoherentstokes,L24523_SB047_bf.incoherentstokes,L24523_SB048_bf.incoherentstokes,L24523_SB049_bf.incoherentstokes,L24523_SB050_bf.incoherentstokes,L24523_SB051_bf.incoherentstokes,L24523_SB052_bf.incoherentstokes,L24523_SB053_bf.incoherentstokes,L24523_SB054_bf.incoherentstokes,L24523_SB055_bf.incoherentstokes,L24523_SB056_bf.incoherentstokes,L24523_SB057_bf.incoherentstokes,L24523_SB058_bf.incoherentstokes,L24523_SB059_bf.incoherentstokes,L24523_SB060_bf.incoherentstokes,L24523_SB061_bf.incoherentstokes,L24523_SB062_bf.incoherentstokes,L24523_SB063_bf.incoherentstokes,L24523_SB064_bf.incoherentstokes,L24523_SB065_bf.incoherentstokes,L24523_SB066_bf.incoherentstokes,L24523_SB067_bf.incoherentstokes,L24523_SB068_bf.incoherentstokes,L24523_SB069_bf.incoherentstokes,L24523_SB070_bf.incoherentstokes,L24523_SB071_bf.incoherentstokes,L24523_SB072_bf.incoherentstokes,L24523_SB073_bf.incoherentstokes,L24523_SB074_bf.incoherentstokes,L24523_SB075_bf.incoherentstokes,L24523_SB076_bf.incoherentstokes,L24523_SB077_bf.incoherentstokes,L24523_SB078_bf.incoherentstokes,L24523_SB079_bf.incoherentstokes,L24523_SB080_bf.incoherentstokes,L24523_SB081_bf.incoherentstokes,L24523_SB082_bf.incoherentstokes,L24523_SB083_bf.incoherentstokes,L24523_SB084_bf.incoherentstokes,L24523_SB085_bf.incoherentstokes,L24523_SB086_bf.incoherentstokes,L24523_SB087_bf.incoherentstokes,L24523_SB088_bf.incoherentstokes,L24523_SB089_bf.incoherentstokes,L24523_SB090_bf.incoherentstokes,L24523_SB091_bf.incoherentstokes,L24523_SB092_bf.incoherentstokes,L24523_SB093_bf.incoherentstokes,L24523_SB094_bf.incoherentstokes,L24523_SB095_bf.incoherentstokes,L24523_SB096_bf.incoherentstokes,L24523_SB097_bf.incoherentstokes,L24523_SB098_bf.incoherentstokes,L24523_SB099_bf.incoherentstokes,L24523_SB100_bf.incoherentstokes,L24523_SB101_bf.incoherentstokes,L24523_SB102_bf.incoherentstokes,L24523_SB103_bf.incoherentstokes,L24523_SB104_bf.incoherentstokes,L24523_SB105_bf.incoherentstokes,L24523_SB106_bf.incoherentstokes,L24523_SB107_bf.incoherentstokes,L24523_SB108_bf.incoherentstokes,L24523_SB109_bf.incoherentstokes,L24523_SB110_bf.incoherentstokes,L24523_SB111_bf.incoherentstokes,L24523_SB112_bf.incoherentstokes,L24523_SB113_bf.incoherentstokes,L24523_SB114_bf.incoherentstokes,L24523_SB115_bf.incoherentstokes,L24523_SB116_bf.incoherentstokes,L24523_SB117_bf.incoherentstokes,L24523_SB118_bf.incoherentstokes,L24523_SB119_bf.incoherentstokes,L24523_SB120_bf.incoherentstokes,L24523_SB121_bf.incoherentstokes,L24523_SB122_bf.incoherentstokes,L24523_SB123_bf.incoherentstokes,L24523_SB124_bf.incoherentstokes,L24523_SB125_bf.incoherentstokes,L24523_SB126_bf.incoherentstokes,L24523_SB127_bf.incoherentstokes,L24523_SB128_bf.incoherentstokes,L24523_SB129_bf.incoherentstokes,L24523_SB130_bf.incoherentstokes,L24523_SB131_bf.incoherentstokes,L24523_SB132_bf.incoherentstokes,L24523_SB133_bf.incoherentstokes,L24523_SB134_bf.incoherentstokes,L24523_SB135_bf.incoherentstokes,L24523_SB136_bf.incoherentstokes,L24523_SB137_bf.incoherentstokes,L24523_SB138_bf.incoherentstokes,L24523_SB139_bf.incoherentstokes,L24523_SB140_bf.incoherentstokes,L24523_SB141_bf.incoherentstokes,L24523_SB142_bf.incoherentstokes,L24523_SB143_bf.incoherentstokes,L24523_SB144_bf.incoherentstokes,L24523_SB145_bf.incoherentstokes,L24523_SB146_bf.incoherentstokes,L24523_SB147_bf.incoherentstokes,L24523_SB148_bf.incoherentstokes,L24523_SB149_bf.incoherentstokes,L24523_SB150_bf.incoherentstokes,L24523_SB151_bf.incoherentstokes,L24523_SB152_bf.incoherentstokes,L24523_SB153_bf.incoherentstokes,L24523_SB154_bf.incoherentstokes,L24523_SB155_bf.incoherentstokes,L24523_SB156_bf.incoherentstokes,L24523_SB157_bf.incoherentstokes,L24523_SB158_bf.incoherentstokes,L24523_SB159_bf.incoherentstokes,L24523_SB160_bf.incoherentstokes,L24523_SB161_bf.incoherentstokes,L24523_SB162_bf.incoherentstokes,L24523_SB163_bf.incoherentstokes,L24523_SB164_bf.incoherentstokes,L24523_SB165_bf.incoherentstokes,L24523_SB166_bf.incoherentstokes,L24523_SB167_bf.incoherentstokes,L24523_SB168_bf.incoherentstokes,L24523_SB169_bf.incoherentstokes,L24523_SB170_bf.incoherentstokes,L24523_SB171_bf.incoherentstokes,L24523_SB172_bf.incoherentstokes,L24523_SB173_bf.incoherentstokes,L24523_SB174_bf.incoherentstokes,L24523_SB175_bf.incoherentstokes,L24523_SB176_bf.incoherentstokes,L24523_SB177_bf.incoherentstokes,L24523_SB178_bf.incoherentstokes,L24523_SB179_bf.incoherentstokes,L24523_SB180_bf.incoherentstokes,L24523_SB181_bf.incoherentstokes,L24523_SB182_bf.incoherentstokes,L24523_SB183_bf.incoherentstokes,L24523_SB184_bf.incoherentstokes,L24523_SB185_bf.incoherentstokes,L24523_SB186_bf.incoherentstokes,L24523_SB187_bf.incoherentstokes,L24523_SB188_bf.incoherentstokes,L24523_SB189_bf.incoherentstokes,L24523_SB190_bf.incoherentstokes,L24523_SB191_bf.incoherentstokes,L24523_SB192_bf.incoherentstokes,L24523_SB193_bf.incoherentstokes,L24523_SB194_bf.incoherentstokes,L24523_SB195_bf.incoherentstokes,L24523_SB196_bf.incoherentstokes,L24523_SB197_bf.incoherentstokes,L24523_SB198_bf.incoherentstokes,L24523_SB199_bf.incoherentstokes,L24523_SB200_bf.incoherentstokes,L24523_SB201_bf.incoherentstokes,L24523_SB202_bf.incoherentstokes,L24523_SB203_bf.incoherentstokes,L24523_SB204_bf.incoherentstokes,L24523_SB205_bf.incoherentstokes,L24523_SB206_bf.incoherentstokes,L24523_SB207_bf.incoherentstokes,L24523_SB208_bf.incoherentstokes,L24523_SB209_bf.incoherentstokes,L24523_SB210_bf.incoherentstokes,L24523_SB211_bf.incoherentstokes,L24523_SB212_bf.incoherentstokes,L24523_SB213_bf.incoherentstokes,L24523_SB214_bf.incoherentstokes,L24523_SB215_bf.incoherentstokes,L24523_SB216_bf.incoherentstokes,L24523_SB217_bf.incoherentstokes,L24523_SB218_bf.incoherentstokes,L24523_SB219_bf.incoherentstokes,L24523_SB220_bf.incoherentstokes,L24523_SB221_bf.incoherentstokes,L24523_SB222_bf.incoherentstokes,L24523_SB223_bf.incoherentstokes,L24523_SB224_bf.incoherentstokes,L24523_SB225_bf.incoherentstokes,L24523_SB226_bf.incoherentstokes,L24523_SB227_bf.incoherentstokes,L24523_SB228_bf.incoherentstokes,L24523_SB229_bf.incoherentstokes,L24523_SB230_bf.incoherentstokes,L24523_SB231_bf.incoherentstokes,L24523_SB232_bf.incoherentstokes,L24523_SB233_bf.incoherentstokes,L24523_SB234_bf.incoherentstokes,L24523_SB235_bf.incoherentstokes,L24523_SB236_bf.incoherentstokes,L24523_SB237_bf.incoherentstokes,L24523_SB238_bf.incoherentstokes,L24523_SB239_bf.incoherentstokes] -Observation.Dataproducts.Output_IncoherentStokes.locations = [120*lse011:/data3/L2011_24523/,120*lse012:/data3/L2011_24523/] -Observation.Dataproducts.Output_IncoherentStokes.namemask = L${OBSID}_SB${SUBBAND}_bf.incoherentstokes -Observation.Dataproducts.Output_Trigger.dirmask = L${YEAR}_${MSNUMBER} -Observation.Dataproducts.Output_Trigger.enabled = False -Observation.Dataproducts.Output_Trigger.namemask = L${OBSID}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.Dataslots.DataslotInfo.DataslotList = -Observation.Dataslots.DataslotInfo.RSPBoardList = -Observation.KSPType = surveys -Observation.MSNameMask = /data3/L${YEAR}_${MSNUMBER}/SB${SUBBAND}.MS -Observation.ObsID = 24523 -Observation.ObservationControl.OnlineControl.ApplCtrl.application = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.procesOrder = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.processes = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.resultfile = ../log/ACC.result -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_createsubsets = 3m -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_define = 40 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_info = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_init = 120 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_kill = 60 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_pause = 100 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_quit = 10 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_recover = 50 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_reinit = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_release = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_run = 90 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_snapshot = 30 -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_startup = 2m -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._nodes = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.integrationSteps = 768 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.partition = R00 -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.CorrAppl.CNProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo = [OLAP,PIC] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder = [] -Observation.ObservationControl.OnlineControl.CorrAppl.processes = [CNProc] -Observation.ObservationControl.OnlineControl.OLAP.CNProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.OLAP.CNProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc._nodes = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.OLAP.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.partition = R01 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 2.0 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc._executable = IONProc -Observation.ObservationControl.OnlineControl.OLAP.IONProc._hostname = bgfen1 -Observation.ObservationControl.OnlineControl.OLAP.IONProc._nodes = [] -Observation.ObservationControl.OnlineControl.OLAP.IONProc._startstopType = cmdline -Observation.ObservationControl.OnlineControl.OLAP.IONProc.workingdir = /cephome/lofar-prod/bin/ -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_Storage_Ports = [8300..9000] -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputOnly = false -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.rawDataOutputs = [tcp:10.181.0.2:4000] -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.nrRings = 0 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.ringSize = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle1 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Pencil[0].angle2 = 0.0 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrateChannels = false -Observation.ObservationControl.OnlineControl.OLAP.Stokes.integrationSteps = 16 -Observation.ObservationControl.OnlineControl.OLAP.Stokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true -Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 -Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 -Observation.ObservationControl.OnlineControl.OLAP.nrPencils = 1 -Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 -Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 -Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.outputBeamFormedData = false -Observation.ObservationControl.OnlineControl.OLAP.outputCoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.outputCorrelatedData = false -Observation.ObservationControl.OnlineControl.OLAP.outputFilteredData = false -Observation.ObservationControl.OnlineControl.OLAP.outputIncoherentStokes = true -Observation.ObservationControl.OnlineControl.OLAP.realTime = true -Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations -Observation.ObservationControl.OnlineControl._hostname = CCU001 -Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] -Observation.ObservationControl.OnlineControl.applications = [CorrAppl] -Observation.ObservationControl.StationControl._hostname = [CS002,CS006,CS003,CS007,CS004,CS005] -Observation.ObservationControl._hostname = MCU001 -Observation.ObservationControl.heartbeatInterval = 10 -Observation.ObserverName = unknown -Observation.ProjectName = unknown -Observation.Scheduler.CEPProcessingUnits = 0 -Observation.Scheduler.contactEmail = -Observation.Scheduler.contactName = -Observation.Scheduler.contactPhone = -Observation.Scheduler.firstPossibleDay = 0 -Observation.Scheduler.fixedDay = false -Observation.Scheduler.fixedTime = false -Observation.Scheduler.lastPossibleDay = 0 -Observation.Scheduler.late = false -Observation.Scheduler.nightTimeWeightFactor = 0 -Observation.Scheduler.offlineProcessingUnits = 0 -Observation.Scheduler.predMaxTimeDif = -Observation.Scheduler.predMinTimeDif = -Observation.Scheduler.predecessor = 0 -Observation.Scheduler.priority = 0.0 -Observation.Scheduler.projectName = -Observation.Scheduler.referenceFrame = 0 -Observation.Scheduler.storageUnits = 0 -Observation.Scheduler.taskDuration = 600 -Observation.Scheduler.taskID = 0 -Observation.Scheduler.taskName = 'B0823+26 (HBA)' -Observation.Scheduler.taskType = 0 -Observation.Scheduler.unscheduledReason = 0 -Observation.Scheduler.windowMaximumTime = -Observation.Scheduler.windowMinimumTime = -Observation.TBB.TBBsetting.RCUs = [] -Observation.TBB.TBBsetting.baselevel = 127 -Observation.TBB.TBBsetting.filter = 0 -Observation.TBB.TBBsetting.filter0_coeff0 = 0 -Observation.TBB.TBBsetting.filter0_coeff1 = 0 -Observation.TBB.TBBsetting.filter0_coeff2 = 0 -Observation.TBB.TBBsetting.filter0_coeff3 = 0 -Observation.TBB.TBBsetting.filter1_coeff0 = 0 -Observation.TBB.TBBsetting.filter1_coeff1 = 0 -Observation.TBB.TBBsetting.filter1_coeff2 = 0 -Observation.TBB.TBBsetting.filter1_coeff3 = 0 -Observation.TBB.TBBsetting.operatingMode = 1 -Observation.TBB.TBBsetting.startlevel = 7 -Observation.TBB.TBBsetting.stoplevel = 7 -Observation.TBB.TBBsetting.subbandList = [] -Observation.TBB.TBBsetting.triggerMode = 1 -Observation.TBB.TBBsetting.window = 1M -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationList = [CS002,CS006,CS003,CS007,CS004,CS005] -Observation.VirtualInstrument.stationSet = Custom -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [lse011,lse012] -Observation.antennaArray = HBA -Observation.antennaSet = HBA_DUAL -Observation.bandFilter = HBA_110_190 -Observation.beamList = [240*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 -Observation.claimPeriod = 120 -Observation.clockMode = <<Clock200 -Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] -Observation.existingStations = [CS001..CS007,CS021,CS024,CS030,CS031,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS503,DE601..DE603] -Observation.longBaselines = False -Observation.nrAnaBeams = 1 -Observation.nrBeamformers = 0 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.preparePeriod = 120 -Observation.receiverList = [] -Observation.referencePhaseCenter = [3826577.110,461022.900,5064892.758] -Observation.rspBoardList = [61*0,61*1,61*2,57*3] -Observation.rspSlotList = [0..60,0..60,0..60,0..56] -Observation.sampleClock = 200 -Observation.samplesPerSecond = 196608 -Observation.startTime = '2011-03-22 18:16:00' -Observation.stopTime = '2011-03-22 18:26:00' -Observation.subbandList = [100..339] -Observation.subbandWidth = 195.3125 -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.853,460938.478,5064630.667] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.278,460979.407,5064658.174] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.428,460897.549,5064603.161] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.589,460915.393,5064643.460] -PIC.Core.CS002HBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.3205,460955.708,5064894.168] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.291555e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA0.position = [3826601.004,460953.354,5064881.107] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.291235e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002HBA1.position = [3826565.637,460958.062,5064907.229] -PIC.Core.CS002LBA.clockCorrectionTime = 8.291395e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.110,461022.900,5064892.758] -PIC.Core.CS003HBA.clockCorrectionTime = 6.889990e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.624,461017.650,5064955.147] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.889845e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA0.position = [3826471.391,461000.090,5064974.172] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.890135e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003HBA1.position = [3826517.856,461035.210,5064936.122] -PIC.Core.CS003LBA.clockCorrectionTime = 6.889990e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.792,460930.018,5064946.429] -PIC.Core.CS004HBA.clockCorrectionTime = 7.861759e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.5995,460891.614,5064900.503] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.861849e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA0.position = [3826585.669,460865.796,5064900.532] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.861669e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004HBA1.position = [3826579.530,460917.432,5064900.474] -PIC.Core.CS004LBA.clockCorrectionTime = 7.861759e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.240,460939.528,5064842.398] -PIC.Core.CS005HBA.clockCorrectionTime = 8.513690e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.221,461005.4845,5064827.444] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.513765e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA0.position = [3826701.204,460989.202,5064802.657] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.513615e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005HBA1.position = [3826631.238,461021.767,5064852.231] -PIC.Core.CS005LBA.clockCorrectionTime = 8.513690e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.794,461069.502,5064819.726] -PIC.Core.CS006HBA.clockCorrectionTime = 7.854904e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.1845,461108.321,5064842.946] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.855584e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA0.position = [3826653.826,461136.392,5064824.914] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.854224e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006HBA1.position = [3826612.543,461080.250,5064860.978] -PIC.Core.CS006LBA.clockCorrectionTime = 7.854904e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.773,461145.130,5064866.950] -PIC.Core.CS007HBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.411,461126.6775,5064934.9435] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.884946e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA0.position = [3826478.758,461083.672,5064961.088] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.885326e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007HBA1.position = [3826538.064,461169.683,5064908.799] -PIC.Core.CS007LBA.clockCorrectionTime = 7.885136e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.405,461098.918,5064918.693] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.483,461529.931,5064940.483] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.139,461507.412,5064978.055] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.827,461552.450,5064902.910] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.097,461501.902,5064935.798] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.201,460510.528,5065060.159] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.468,460533.037,5065022.644] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.857,460488.009,5065097.731] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.586,460538.556,5065064.841] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.893,461381.331,5064416.334] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.236,461403.850,5064378.761] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.547,461358.813,5064453.906] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.277,461409.360,5064421.017] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.697,461846.719,5064968.678] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.270,461805.789,5064941.170] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.122,461887.648,5064996.185] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.959,461869.804,5064955.884] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3825999.9912340324,460364.22492058337,5065385.136533625] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.8445088593,460323.3355244964,5065357.416324711] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.6048163464,460405.2150478815,5065412.496568461] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.3094869214,460387.3411647229,5065372.299501434] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.880,460410.947,5064702.470] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.306,460451.876,5064729.978] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.454,460370.018,5064674.963] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.617,460387.862,5064715.264] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825858.001,461661.462,5065374.073] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.345,461683.980,5065336.500] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.656,461638.943,5065411.645] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.387,461689.490,5065378.757] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.059,462799.955,5064947.098] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.633,462759.026,5064919.592] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.484,462840.885,5064974.605] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.323,462823.041,5064934.306] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.094,461918.643,5064731.286] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.324,461855.195,5064741.351] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.865,461982.091,5064721.221] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.972,461913.699,5064713.810] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.384,460985.233,5064240.173] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.152,461048.680,5064230.107] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.613,460921.785,5064250.237] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.506,460990.176,5064257.649] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.6956053847,459769.50630620244,5064002.778603462] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.269609978,459728.57630928187,5063975.271605821] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.120600792,459810.43530312297,5064030.284601102] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.959604251,459792.591307241,5063989.987604071] -PIC.Core.CS401HBA.clockCorrectionTime = 0 -PIC.Core.CS401HBA.phaseCenter = [3826790.025,460095.396,5064818.967] -PIC.Core.CS401HBA0.clockCorrectionTime = 0 -PIC.Core.CS401HBA0.phaseCenter = [3826795.796,460158.846,5064808.901] -PIC.Core.CS401HBA1.clockCorrectionTime = 0 -PIC.Core.CS401HBA1.phaseCenter = [3826784.254,460031.945,5064829.033] -PIC.Core.CS401LBA.clockCorrectionTime = 0 -PIC.Core.CS401LBA.phaseCenter = [3826766.149,460100.340,5064836.441] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.208,460670.091,5065645.428] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.863,460647.572,5065682.999] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.551,460692.610,5065607.854] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.822,460642.062,5065640.743] -PIC.Core.DE601HBA.clockCorrectionTime = 0 -PIC.Core.DE601HBA.phaseCenter = [4034099.797,487013.365,4900229.675] -PIC.Core.DE601LBA.clockCorrectionTime = 0 -PIC.Core.DE601LBA.phaseCenter = [4034036.771,487026.037,4900278.814] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.135,828789.112,4754362.246] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152561.219,828868.251,4754356.662] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.753,816722.816,4932394.388] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.668,816802.076,4932393.236] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.745,165545.473,4670271.331] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.974,165609.110,4670302.931] -PIC.Core.IONProc.R00[0].inputs = [] -PIC.Core.IONProc.R00[10].inputs = [] -PIC.Core.IONProc.R00[11].inputs = [] -PIC.Core.IONProc.R00[12].inputs = [] -PIC.Core.IONProc.R00[13].inputs = [] -PIC.Core.IONProc.R00[14].inputs = [] -PIC.Core.IONProc.R00[15].inputs = [] -PIC.Core.IONProc.R00[16].inputs = [] -PIC.Core.IONProc.R00[17].inputs = [] -PIC.Core.IONProc.R00[18].inputs = [] -PIC.Core.IONProc.R00[19].inputs = [] -PIC.Core.IONProc.R00[1].inputs = [CS005HBA1/RSP0,CS005HBA1/RSP1,CS005HBA1/RSP2,CS005HBA1/RSP3] -PIC.Core.IONProc.R00[20].inputs = [] -PIC.Core.IONProc.R00[21].inputs = [] -PIC.Core.IONProc.R00[22].inputs = [] -PIC.Core.IONProc.R00[23].inputs = [] -PIC.Core.IONProc.R00[24].inputs = [] -PIC.Core.IONProc.R00[25].inputs = [] -PIC.Core.IONProc.R00[26].inputs = [] -PIC.Core.IONProc.R00[27].inputs = [] -PIC.Core.IONProc.R00[28].inputs = [] -PIC.Core.IONProc.R00[29].inputs = [] -PIC.Core.IONProc.R00[2].inputs = [CS002HBA1/RSP0,CS002HBA1/RSP1,CS002HBA1/RSP2,CS002HBA1/RSP3] -PIC.Core.IONProc.R00[30].inputs = [] -PIC.Core.IONProc.R00[31].inputs = [] -PIC.Core.IONProc.R00[32].inputs = [] -PIC.Core.IONProc.R00[33].inputs = [CS005HBA0/RSP0,CS005HBA0/RSP1,CS005HBA0/RSP2,CS005HBA0/RSP3] -PIC.Core.IONProc.R00[34].inputs = [CS002HBA0/RSP0,CS002HBA0/RSP1,CS002HBA0/RSP2,CS002HBA0/RSP3] -PIC.Core.IONProc.R00[35].inputs = [CS006HBA0/RSP0,CS006HBA0/RSP1,CS006HBA0/RSP2,CS006HBA0/RSP3] -PIC.Core.IONProc.R00[36].inputs = [CS003HBA0/RSP0,CS003HBA0/RSP1,CS003HBA0/RSP2,CS003HBA0/RSP3] -PIC.Core.IONProc.R00[37].inputs = [CS007HBA0/RSP0,CS007HBA0/RSP1,CS007HBA0/RSP2,CS007HBA0/RSP3] -PIC.Core.IONProc.R00[38].inputs = [CS004HBA0/RSP0,CS004HBA0/RSP1,CS004HBA0/RSP2,CS004HBA0/RSP3] -PIC.Core.IONProc.R00[39].inputs = [] -PIC.Core.IONProc.R00[3].inputs = [CS006HBA1/RSP0,CS006HBA1/RSP1,CS006HBA1/RSP2,CS006HBA1/RSP3] -PIC.Core.IONProc.R00[40].inputs = [] -PIC.Core.IONProc.R00[41].inputs = [] -PIC.Core.IONProc.R00[42].inputs = [] -PIC.Core.IONProc.R00[43].inputs = [] -PIC.Core.IONProc.R00[44].inputs = [] -PIC.Core.IONProc.R00[45].inputs = [] -PIC.Core.IONProc.R00[46].inputs = [] -PIC.Core.IONProc.R00[47].inputs = [] -PIC.Core.IONProc.R00[48].inputs = [] -PIC.Core.IONProc.R00[49].inputs = [] -PIC.Core.IONProc.R00[4].inputs = [CS003HBA1/RSP0,CS003HBA1/RSP1,CS003HBA1/RSP2,CS003HBA1/RSP3] -PIC.Core.IONProc.R00[50].inputs = [] -PIC.Core.IONProc.R00[51].inputs = [] -PIC.Core.IONProc.R00[52].inputs = [] -PIC.Core.IONProc.R00[53].inputs = [] -PIC.Core.IONProc.R00[54].inputs = [] -PIC.Core.IONProc.R00[55].inputs = [] -PIC.Core.IONProc.R00[56].inputs = [] -PIC.Core.IONProc.R00[57].inputs = [] -PIC.Core.IONProc.R00[58].inputs = [] -PIC.Core.IONProc.R00[59].inputs = [] -PIC.Core.IONProc.R00[5].inputs = [CS007HBA1/RSP0,CS007HBA1/RSP1,CS007HBA1/RSP2,CS007HBA1/RSP3] -PIC.Core.IONProc.R00[60].inputs = [] -PIC.Core.IONProc.R00[61].inputs = [] -PIC.Core.IONProc.R00[62].inputs = [] -PIC.Core.IONProc.R00[63].inputs = [] -PIC.Core.IONProc.R00[6].inputs = [CS004HBA1/RSP0,CS004HBA1/RSP1,CS004HBA1/RSP2,CS004HBA1/RSP3] -PIC.Core.IONProc.R00[7].inputs = [] -PIC.Core.IONProc.R00[8].inputs = [] -PIC.Core.IONProc.R00[9].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.641,469142.485,5062180.973] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.468,469162.237,5062137.281] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.714,463487.482,5060989.875] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.606,463435.393,5061025.437] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.353,466962.762,5048397.215] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.094,466929.659,5048357.193] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.292,452761.654,5063243.153] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.851,452829.800,5063221.562] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.5626099864,449627.2130233004,5057357.55606065] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.9917542874,449560.70805339684,5057381.259244779] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818425.334,452019.946,5071817.384] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818468.029,451974.278,5071790.337] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.6094873874,459476.92505906447,5066858.549501777] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.495722555,459438.235056466,5066898.161723869] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.Station.CS002HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS003HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS004HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS005HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS006HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.Station.CS007HBA0.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007HBA1.RSP.ports = [0.0.0.0:4352,0.0.0.0:4353,0.0.0.0:4354,0.0.0.0:4355] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.975,-100376.657,4943716.841] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008428.362,-100303.525,4943744.070] -_parsetPrefix = CorrAppl.CNProc. -_processName = CNProc diff --git a/RTCP/Storage/test/tMeasurementSetFormat.sh b/RTCP/Storage/test/tMeasurementSetFormat.sh deleted file mode 100755 index 930cc188f55b4d556bddfeea1f7105209a1755fb..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tMeasurementSetFormat.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./runctest.sh tMeasurementSetFormat diff --git a/RTCP/Storage/test/tTBB_StaticMapping.cc b/RTCP/Storage/test/tTBB_StaticMapping.cc deleted file mode 100644 index c488625ee5789d6dd5df616a78afeeaa7be20e01..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_StaticMapping.cc +++ /dev/null @@ -1,87 +0,0 @@ -//# tTBB_StaticMapping.cc -//# -//# Copyright (C) 2012 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: tTBB_StaticMapping.cc 2465 2012-02-28 14:24:54Z amesfoort $ - -#include <lofar_config.h> - -#include <cstdlib> -#include <iostream> - -#include <Common/Exceptions.h> -#include <Storage/TBB_StaticMapping.h> - -using namespace std; -using namespace LOFAR; - -int main(int argc, char *argv[]) { - // Locate TBB connection mapping file. - // Select from either: argv[1], $LOFARROOT/etc/StaticMetaData/TBBConnections.dat, or ./TBBConnections.dat - string tbbMappingFilename; - if (argc > 1) { - tbbMappingFilename = argv[1]; - } else { - const string defaultTbbMappingFilename("TBBConnections.dat"); - char* lrpath = getenv("LOFARROOT"); - if (lrpath != NULL) { - tbbMappingFilename = string(lrpath) + "/etc/StaticMetaData/"; - } - tbbMappingFilename.append(defaultTbbMappingFilename); - } - - try { - // Open and read in. - TBB_StaticMapping tsm(tbbMappingFilename); - - if (tsm.empty()) { - throw Exception("Opened tbb static mapping file, but list of station names is empty"); - } - - // Show all. - cout << "Found " << tsm.size() << " nodes with the following station and board names:" << endl; - for (multimap<string, pair<string, string> >::const_iterator it(tsm.begin()); it != tsm.end(); ++it) { - cout << "node: " << (*it).first << " -> (" << (*it).second.first << ", " << (*it).second.second << ")" << endl; - } - - // Select all station or board names mapped to a given node. - const string nodeName("locus029"); - - vector<string> stations(tsm.getStationNames(nodeName)); - cout << nodeName << ": "; - for (unsigned i = 0; i < stations.size(); i++) { - cout << stations[i] << " "; - } - cout << endl; - - vector<string> boards(tsm.getBoardNames(nodeName)); - cout << nodeName << ": "; - for (unsigned i = 0; i < boards.size(); i++) { - cout << boards[i] << " "; - } - cout << endl; - - } catch (Exception& exc) { - cerr << exc.what() << endl; - return 1; - } - - return 0; -} - diff --git a/RTCP/Storage/test/tTBB_StaticMapping.sh b/RTCP/Storage/test/tTBB_StaticMapping.sh deleted file mode 100755 index 4a86598df7ee9e63c6799893df4f5d605717e5fe..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_StaticMapping.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -./runctest.sh tTBB_StaticMapping - diff --git a/RTCP/Storage/test/tTBB_Writer-spectral.parset b/RTCP/Storage/test/tTBB_Writer-spectral.parset deleted file mode 100644 index 1df583842363fc76a1ec88f8857b497fe94df34b..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_Writer-spectral.parset +++ /dev/null @@ -1,999 +0,0 @@ -ApplCtrl.application = CorrAppl -ApplCtrl.procesOrder = [] -ApplCtrl.processes = [CorrProc] -ApplCtrl.resultfile = '/opt/lofar/share/ACC_CCU001:OnlineControl[0]{59640}_CorrAppl_result.param' -ApplCtrl.timeout_createsubsets = 30s -ApplCtrl.timeout_define = 30s -ApplCtrl.timeout_info = 30s -ApplCtrl.timeout_init = 30s -ApplCtrl.timeout_kill = 30s -ApplCtrl.timeout_pause = 90s -ApplCtrl.timeout_quit = 10s -ApplCtrl.timeout_recover = 30s -ApplCtrl.timeout_reinit = 30s -ApplCtrl.timeout_release = 30s -ApplCtrl.timeout_run = 90s -ApplCtrl.timeout_snapshot = 30s -ApplCtrl.timeout_startup = 30s -CorrAppl.CorrProc._ACnode = bgfen0 -CorrAppl.CorrProc._ACport = 3922 -CorrAppl.CorrProc._executable = CN_Processing -CorrAppl.CorrProc._hostname = bgstfen -CorrAppl.CorrProc._nodes = [] -CorrAppl.CorrProc._startstopType = bgl -CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -CorrAppl._hostname = bgstfen -CorrAppl.extraInfo = [OLAP,PIC] -CorrAppl.procesOrder = [] -CorrAppl.processes = [CorrProc] -OLAP.BeamsAreTransposed = True -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R00 -OLAP.CNProc.phaseOnePsets = [46,34,36,38,33,35,37,50,48,32,39,42,51,44,58,41,40,54,43,45,26,47,52,55,23,49,60,62,30,53,63,31] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreePsets = [0..63] -OLAP.CNProc.phaseTwoPsets = [0..63] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc.PLC_controlled = T -OLAP.IONProc.integrationSteps = 4 -OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] -OLAP.IncoherentStokesAreTransposed = True -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.PPF = True -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.hosts = [locus072,locus088] -OLAP.Storage.msWriter = /data/home/lofarsys/production/lofar/bin/Storage_main -OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = lofarsys -OLAP.StorageProc.subbandsPerMS = 1 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.25 -Observation.nrBitsPerSample = 16 -OLAP.nrPsets = 64 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrSubbandsPerFrame = 61 -OLAP.nrTimesInFrame = 16 -OLAP.realTime = true -OLAP.storageNodeList = [122*0,122*1] -OLAP.storageStationNames = [CS001LBA,CS002LBA,CS003LBA,CS004LBA,CS005LBA,CS006LBA,CS007LBA,CS011LBA,CS017LBA,CS021LBA,CS024LBA,CS026LBA,CS028LBA,CS030LBA,CS031LBA,CS032LBA,CS101LBA,CS103LBA,CS201LBA,CS301LBA,CS302LBA,CS401LBA,CS501LBA,RS106LBA,RS205LBA,RS208LBA,RS306LBA,RS307LBA,RS406LBA,RS503LBA,RS508LBA,RS509LBA] -OLAP.tiedArrayStationNames = [] -Observation.AnaBeam.angle1 = 0 -Observation.AnaBeam.angle2 = 0 -Observation.AnaBeam.directionType = J2000 -Observation.AnaBeam.duration = 0 -Observation.AnaBeam.maximizeDuration = false -Observation.AnaBeam.rank = 1 -Observation.AnaBeam.startTime = -Observation.AnaBeam.target = -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].coherent = true -Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[0].specificationType = manual -Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[1].coherent = false -Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[1].specificationType = manual -Observation.Beam[0].TiedArrayBeam[1].stationList = [] -Observation.Beam[0].angle1 = 0.9293449206762021 -Observation.Beam[0].angle2 = 0.9525764650544495 -Observation.Beam[0].beamletList = [] -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].duration = 900 -Observation.Beam[0].maximizeDuration = false -Observation.Beam[0].momID = 119965 -Observation.Beam[0].nrTabRings = 0 -Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].startTime = -Observation.Beam[0].subbandList = [175..418] -Observation.Beam[0].tabRingSize = 0.0 -Observation.Beam[0].target = B0329+54 -Observation.Beamformer.stationList = [] -Observation.Campaign.CO_I = 'Pizzo, Dr. Roberto Francesco' -Observation.Campaign.PI = 'Polatidis, Dr Antonios' -Observation.Campaign.contact = 'Polatidis, Dr Antonios' -Observation.Campaign.name = 2012LOFAROBS -Observation.Campaign.title = 2012LOFAROBS -Observation.DataProducts.Input_Beamformed.dirmask = -Observation.DataProducts.Input_Beamformed.enabled = false -Observation.DataProducts.Input_Beamformed.filenames = [] -Observation.DataProducts.Input_Beamformed.identifications = [] -Observation.DataProducts.Input_Beamformed.locations = [] -Observation.DataProducts.Input_Beamformed.mountpoints = [] -Observation.DataProducts.Input_Beamformed.namemask = -Observation.DataProducts.Input_Beamformed.skip = [] -Observation.DataProducts.Input_CoherentStokes.dirmask = -Observation.DataProducts.Input_CoherentStokes.enabled = false -Observation.DataProducts.Input_CoherentStokes.filenames = [] -Observation.DataProducts.Input_CoherentStokes.identifications = [] -Observation.DataProducts.Input_CoherentStokes.locations = [] -Observation.DataProducts.Input_CoherentStokes.mountpoints = [] -Observation.DataProducts.Input_CoherentStokes.namemask = -Observation.DataProducts.Input_CoherentStokes.skip = [] -Observation.DataProducts.Input_Correlated.dirmask = -Observation.DataProducts.Input_Correlated.enabled = false -Observation.DataProducts.Input_Correlated.filenames = [] -Observation.DataProducts.Input_Correlated.identifications = [] -Observation.DataProducts.Input_Correlated.locations = [] -Observation.DataProducts.Input_Correlated.mountpoints = [] -Observation.DataProducts.Input_Correlated.namemask = -Observation.DataProducts.Input_Correlated.skip = [] -Observation.DataProducts.Input_IncoherentStokes.dirmask = -Observation.DataProducts.Input_IncoherentStokes.enabled = false -Observation.DataProducts.Input_IncoherentStokes.filenames = [] -Observation.DataProducts.Input_IncoherentStokes.identifications = [] -Observation.DataProducts.Input_IncoherentStokes.locations = [] -Observation.DataProducts.Input_IncoherentStokes.mountpoints = [] -Observation.DataProducts.Input_IncoherentStokes.namemask = -Observation.DataProducts.Input_IncoherentStokes.skip = [] -Observation.DataProducts.Input_InstrumentModel.dirmask = -Observation.DataProducts.Input_InstrumentModel.enabled = false -Observation.DataProducts.Input_InstrumentModel.filenames = [] -Observation.DataProducts.Input_InstrumentModel.identifications = [] -Observation.DataProducts.Input_InstrumentModel.locations = [] -Observation.DataProducts.Input_InstrumentModel.mountpoints = [] -Observation.DataProducts.Input_InstrumentModel.namemask = -Observation.DataProducts.Input_InstrumentModel.skip = [] -Observation.DataProducts.Input_SkyImage.dirmask = -Observation.DataProducts.Input_SkyImage.enabled = false -Observation.DataProducts.Input_SkyImage.filenames = [] -Observation.DataProducts.Input_SkyImage.identifications = [] -Observation.DataProducts.Input_SkyImage.locations = [] -Observation.DataProducts.Input_SkyImage.mountpoints = [] -Observation.DataProducts.Input_SkyImage.namemask = -Observation.DataProducts.Input_SkyImage.skip = [] -Observation.DataProducts.Output_Beamformed.archived = false -Observation.DataProducts.Output_Beamformed.deleted = false -Observation.DataProducts.Output_Beamformed.dirmask = -Observation.DataProducts.Output_Beamformed.enabled = True -Observation.DataProducts.Output_Beamformed.filenames = [L59640_SAP000_B000_S0_P000_bf.raw,L59640_SAP000_B001_S0_P000_bf.raw] -Observation.DataProducts.Output_Beamformed.identifications = [] -Observation.DataProducts.Output_Beamformed.locations = [locus072:/data/L59640/,locus088:/data/L59640/] -Observation.DataProducts.Output_Beamformed.mountpoints = [] -Observation.DataProducts.Output_Beamformed.namemask = -Observation.DataProducts.Output_Beamformed.percentageWritten = [] -Observation.DataProducts.Output_Beamformed.retentiontime = 14 -Observation.DataProducts.Output_Beamformed.skip = [] -Observation.DataProducts.Output_CoherentStokes.archived = false -Observation.DataProducts.Output_CoherentStokes.deleted = false -Observation.DataProducts.Output_CoherentStokes.dirmask = L${OBSID} -Observation.DataProducts.Output_CoherentStokes.enabled = true -Observation.DataProducts.Output_CoherentStokes.filenames = [] -Observation.DataProducts.Output_CoherentStokes.identifications = [] -Observation.DataProducts.Output_CoherentStokes.locations = [] -Observation.DataProducts.Output_CoherentStokes.mountpoints = [locus072:/data] -Observation.DataProducts.Output_CoherentStokes.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_CoherentStokes.percentageWritten = [] -Observation.DataProducts.Output_CoherentStokes.retentiontime = 14 -Observation.DataProducts.Output_CoherentStokes.skip = [] -Observation.DataProducts.Output_Correlated.archived = false -Observation.DataProducts.Output_Correlated.deleted = false -Observation.DataProducts.Output_Correlated.dirmask = -Observation.DataProducts.Output_Correlated.enabled = false -Observation.DataProducts.Output_Correlated.filenames = [] -Observation.DataProducts.Output_Correlated.identifications = [] -Observation.DataProducts.Output_Correlated.locations = [] -Observation.DataProducts.Output_Correlated.mountpoints = [] -Observation.DataProducts.Output_Correlated.namemask = -Observation.DataProducts.Output_Correlated.percentageWritten = [] -Observation.DataProducts.Output_Correlated.retentiontime = 14 -Observation.DataProducts.Output_Correlated.skip = [] -Observation.DataProducts.Output_IncoherentStokes.archived = false -Observation.DataProducts.Output_IncoherentStokes.deleted = false -Observation.DataProducts.Output_IncoherentStokes.dirmask = L${OBSID} -Observation.DataProducts.Output_IncoherentStokes.enabled = true -Observation.DataProducts.Output_IncoherentStokes.filenames = [] -Observation.DataProducts.Output_IncoherentStokes.identifications = [] -Observation.DataProducts.Output_IncoherentStokes.locations = [] -Observation.DataProducts.Output_IncoherentStokes.mountpoints = [locus088:/data] -Observation.DataProducts.Output_IncoherentStokes.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_IncoherentStokes.percentageWritten = [] -Observation.DataProducts.Output_IncoherentStokes.retentiontime = 14 -Observation.DataProducts.Output_IncoherentStokes.skip = [] -Observation.DataProducts.Output_InstrumentModel.archived = false -Observation.DataProducts.Output_InstrumentModel.deleted = false -Observation.DataProducts.Output_InstrumentModel.dirmask = -Observation.DataProducts.Output_InstrumentModel.enabled = false -Observation.DataProducts.Output_InstrumentModel.filenames = [] -Observation.DataProducts.Output_InstrumentModel.identifications = [] -Observation.DataProducts.Output_InstrumentModel.locations = [] -Observation.DataProducts.Output_InstrumentModel.mountpoints = [] -Observation.DataProducts.Output_InstrumentModel.namemask = -Observation.DataProducts.Output_InstrumentModel.percentageWritten = [] -Observation.DataProducts.Output_InstrumentModel.retentiontime = 14 -Observation.DataProducts.Output_InstrumentModel.skip = [] -Observation.DataProducts.Output_SkyImage.archived = false -Observation.DataProducts.Output_SkyImage.deleted = false -Observation.DataProducts.Output_SkyImage.dirmask = -Observation.DataProducts.Output_SkyImage.enabled = false -Observation.DataProducts.Output_SkyImage.filenames = [] -Observation.DataProducts.Output_SkyImage.identifications = [] -Observation.DataProducts.Output_SkyImage.locations = [] -Observation.DataProducts.Output_SkyImage.mountpoints = [] -Observation.DataProducts.Output_SkyImage.namemask = -Observation.DataProducts.Output_SkyImage.percentageWritten = [] -Observation.DataProducts.Output_SkyImage.retentiontime = 14 -Observation.DataProducts.Output_SkyImage.skip = [] -Observation.DataProducts.Output_Trigger.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Trigger.enabled = False -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.DataProducts.nrOfOutput_BeamFormed_ = 0 -Observation.DataProducts.nrOfOutput_Correlated_ = 0 -Observation.DataProducts.nrOfOutput_InstrumentModels_ = 0 -Observation.DataProducts.nrOfOutput_SkyImages_ = 0 -Observation.Dataslots.CS001LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS001LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS002LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS002LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS003LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS003LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS004LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS004LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS005LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS005LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS006LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS006LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS007LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS007LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS011LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS011LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS017LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS017LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS021LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS021LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS024LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS024LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS026LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS026LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS028LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS028LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS030LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS030LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS031LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS031LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS032LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS032LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS101LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS101LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS103LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS103LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS201LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS201LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS301LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS301LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS302LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS302LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS401LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS401LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS501LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS501LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.DataslotInfo.DataslotList = [] -Observation.Dataslots.DataslotInfo.RSPBoardList = [] -Observation.Dataslots.RS106LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS106LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS205LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS205LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS208LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS208LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS306LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS306LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS307LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS307LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS406LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS406LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS503LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS503LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS508LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS508LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS509LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS509LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.KSPType = surveys -Observation.ObsID = 59640 -Observation.ObservationControl.OnlineControl.ApplCtrl.application = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.procesOrder = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.processes = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.resultfile = ../log/ACC.result -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_createsubsets = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_define = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_info = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_init = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_kill = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_pause = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_quit = 10s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_recover = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_reinit = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_release = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_run = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_snapshot = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_startup = 30s -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._hostname = bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._nodes = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname = bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo = [OLAP,PIC] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder = [] -Observation.ObservationControl.OnlineControl.CorrAppl.processes = [CorrProc] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.integrationSteps = 768 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 1 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc.integrationSteps = 30 -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false -Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels = false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true -Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 -Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 -Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 -Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 -Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.realTime = true -Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations -Observation.ObservationControl.OnlineControl._hostname = CCU001 -Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] -Observation.ObservationControl.OnlineControl.applications = [CorrAppl] -Observation.ObservationControl.OnlineControl.inspectionHost = -Observation.ObservationControl.OnlineControl.inspectionProgram = -Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime = 0 -Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit = none -Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance = 0 -Observation.ObservationControl.StationControl.TBBControl.MinElevation = 0 -Observation.ObservationControl.StationControl.TBBControl.NoCoincChann = 0 -Observation.ObservationControl.StationControl.TBBControl.ParamExtension = -Observation.ObservationControl.StationControl._hostname = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS032,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509] -Observation.ObservationControl.StationControl.tbbPiggybackAllowed = false -Observation.ObservationControl._hostname = MCU001 -Observation.ObservationControl.heartbeatInterval = 10 -Observation.ObserverName = unknown -Observation.ProjectName = unknown -Observation.Scheduler.contactEmail = -Observation.Scheduler.contactName = -Observation.Scheduler.contactPhone = -Observation.Scheduler.firstPossibleDay = 0 -Observation.Scheduler.fixedDay = false -Observation.Scheduler.fixedTime = false -Observation.Scheduler.lastPossibleDay = 0 -Observation.Scheduler.late = false -Observation.Scheduler.nightTimeWeightFactor = 0 -Observation.Scheduler.predMaxTimeDif = -Observation.Scheduler.predMinTimeDif = -Observation.Scheduler.predecessors = [] -Observation.Scheduler.priority = 0.0 -Observation.Scheduler.reason = -Observation.Scheduler.referenceFrame = 0 -Observation.Scheduler.reservation = 0 -Observation.Scheduler.storageSelectionMode = 1 -Observation.Scheduler.taskDuration = 900 -Observation.Scheduler.taskID = 63 -Observation.Scheduler.taskName = 'LBAm1 18-06-2012' -Observation.Scheduler.taskType = 0 -Observation.Scheduler.windowMaximumTime = -Observation.Scheduler.windowMinimumTime = -Observation.TBB.TBBsetting.RCUs = [] -Observation.TBB.TBBsetting.baselevel = 127 -Observation.TBB.TBBsetting.filter = 0 -Observation.TBB.TBBsetting.filter0_coeff0 = 0 -Observation.TBB.TBBsetting.filter0_coeff1 = 0 -Observation.TBB.TBBsetting.filter0_coeff2 = 0 -Observation.TBB.TBBsetting.filter0_coeff3 = 0 -Observation.TBB.TBBsetting.filter1_coeff0 = 0 -Observation.TBB.TBBsetting.filter1_coeff1 = 0 -Observation.TBB.TBBsetting.filter1_coeff2 = 0 -Observation.TBB.TBBsetting.filter1_coeff3 = 0 -Observation.TBB.TBBsetting.operatingMode = 2 -Observation.TBB.TBBsetting.startlevel = 7 -Observation.TBB.TBBsetting.stoplevel = 7 -Observation.TBB.TBBsetting.subbandList = [0..486] -Observation.TBB.TBBsetting.subbandList2 = [175..418] -Observation.TBB.TBBsetting.subbandListLBA30_ALL = [154-397] -Observation.TBB.TBBsetting.subbandListHBA115_ALL = [77-320] -Observation.TBB.TBBsetting.subbandListHBA148_ALL = [245-488] -Observation.TBB.TBBsetting.subbandListHBA180_ALL = [128-371] -Observation.TBB.TBBsetting.subbandListHBA210_ALL = [52-255] -Observation.TBB.TBBsetting.triggerMode = 1 -Observation.TBB.TBBsetting.window = 1M -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationList = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS032,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509] -Observation.VirtualInstrument.stationSet = Custom -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [] -Observation.antennaArray = LBA -Observation.antennaSet = LBA_INNER -Observation.bandFilter = LBA_10_90 -Observation.beamList = [244*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 -Observation.claimPeriod = 50 -Observation.clockMode = <<Clock200 -Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] -Observation.existingStations = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS013,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,DE601,DE602,DE603,DE604,DE605,FR606,UK608] -Observation.longBaselines = false -Observation.nrAnaBeams = 0 -Observation.nrBeamformers = 0 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 30 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation -Observation.receiverList = [] -Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] -Observation.rspBoardList = [244*0] -Observation.rspSlotList = [244*0] -Observation.sampleClock = 200 -Observation.samplesPerSecond = 196608 -Observation.startTime = '2012-06-19 08:00:00' -Observation.stopTime = '2012-06-19 16:15:00' -Observation.strategy = default -Observation.subbandList = [175..418] -Observation.subbandWidth = 195.3125 -Observation.topologyID = -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.810,460938.526,5064630.696] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.235,460979.455,5064658.203] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.384,460897.597,5064603.189] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.546,460915.441,5064643.489] -PIC.Core.CS001LBA.position = [3826923.546,460915.441,5064643.489] -PIC.Core.CS002HBA.clockCorrectionTime = 8.318569e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.278,460955.756,5064894.197] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.318834e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826600.961,460953.402,5064881.136] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.318304e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.594,460958.110,5064907.258] -PIC.Core.CS002LBA.clockCorrectionTime = 8.339918e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.066,461022.948,5064892.786] -PIC.Core.CS002LBA.position = [3826577.066,461022.948,5064892.786] -PIC.Core.CS003HBA.clockCorrectionTime = 6.917899e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.580,461017.698,5064955.176] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.917926e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.348,461000.138,5064974.201] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.917872e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.812,461035.258,5064936.150] -PIC.Core.CS003LBA.clockCorrectionTime = 6.936566e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.748,460930.066,5064946.457] -PIC.Core.CS003LBA.position = [3826516.748,460930.066,5064946.457] -PIC.Core.CS004HBA.clockCorrectionTime = 7.889733e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.556,460891.662,5064900.532] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.889961e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.626,460865.844,5064900.561] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.889505e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.486,460917.480,5064900.502] -PIC.Core.CS004LBA.clockCorrectionTime = 7.905512e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.197,460939.576,5064842.426] -PIC.Core.CS004LBA.position = [3826654.197,460939.576,5064842.426] -PIC.Core.CS005HBA.clockCorrectionTime = 8.541942e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.177,461005.533,5064827.472] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.542093e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.160,460989.250,5064802.685] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.541791e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.194,461021.815,5064852.259] -PIC.Core.CS005LBA.clockCorrectionTime = 8.556805e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.750,461069.550,5064819.754] -PIC.Core.CS005LBA.position = [3826668.750,461069.550,5064819.754] -PIC.Core.CS006HBA.clockCorrectionTime = 7.882660e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.141,461108.369,5064842.975] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.882360e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.783,461136.440,5064824.943] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.882960e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.499,461080.298,5064861.006] -PIC.Core.CS006LBA.clockCorrectionTime = 7.905282e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.730,461145.178,5064866.978] -PIC.Core.CS006LBA.position = [3826596.730,461145.178,5064866.978] -PIC.Core.CS007HBA.clockCorrectionTime = 7.913140e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.368,461126.726,5064934.972] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.913020e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.715,461083.720,5064961.117] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.913260e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.021,461169.731,5064908.827] -PIC.Core.CS007LBA.clockCorrectionTime = 7.928823e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.361,461098.966,5064918.721] -PIC.Core.CS007LBA.position = [3826533.361,461098.966,5064918.721] -PIC.Core.CS011HBA.clockCorrectionTime = 0 -PIC.Core.CS011HBA.phaseCenter = [3826643.191,461290.793,5064819.069] -PIC.Core.CS011HBA0.clockCorrectionTime = 0 -PIC.Core.CS011HBA0.phaseCenter = [3826637.421,461227.345,5064829.134] -PIC.Core.CS011HBA1.clockCorrectionTime = 0 -PIC.Core.CS011HBA1.phaseCenter = [3826648.961,461354.241,5064809.003] -PIC.Core.CS011LBA.clockCorrectionTime = 0 -PIC.Core.CS011LBA.phaseCenter = [3826667.069,461285.849,5064801.592] -PIC.Core.CS011LBA.position = [3826667.069,461285.849,5064801.592] -PIC.Core.CS013HBA.clockCorrectionTime = 0 -PIC.Core.CS013HBA.phaseCenter = [3826360.529,460815.196,5065074.343] -PIC.Core.CS013HBA0.clockCorrectionTime = 0 -PIC.Core.CS013HBA0.phaseCenter = [3826318.954,460856.125,5065101.850] -PIC.Core.CS013HBA1.clockCorrectionTime = 0 -PIC.Core.CS013HBA1.phaseCenter = [3826402.103,460774.267,5065046.836] -PIC.Core.CS013LBA.clockCorrectionTime = 0 -PIC.Core.CS013LBA.phaseCenter = [3826346.265,460792.111,5065087.136] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.439,461529.979,5064940.511] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.095,461507.460,5064978.083] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.783,461552.498,5064902.938] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.054,461501.950,5064935.827] -PIC.Core.CS017LBA.position = [3826462.054,461501.950,5064935.827] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.158,460510.576,5065060.187] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.502,460533.094,5065022.614] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.813,460488.057,5065097.759] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.543,460538.604,5065064.870] -PIC.Core.CS021LBA.position = [3826406.543,460538.604,5065064.870] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.849,461381.379,5064416.362] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.193,461403.898,5064378.790] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.504,461358.861,5064453.935] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.234,461409.408,5064421.046] -PIC.Core.CS024LBA.position = [3827161.234,461409.408,5064421.046] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.653,461846.767,5064968.706] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.227,461805.837,5064941.199] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.078,461887.696,5064996.213] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.916,461869.852,5064955.913] -PIC.Core.CS026LBA.position = [3826390.916,461869.852,5064955.913] -PIC.Core.CS028HBA.clockCorrectionTime = 0 -PIC.Core.CS028HBA.phaseCenter = [3825614.709,461283.678,5065591.532] -PIC.Core.CS028HBA0.clockCorrectionTime = 0 -PIC.Core.CS028HBA0.phaseCenter = [3825573.134,461324.607,5065619.039] -PIC.Core.CS028HBA1.clockCorrectionTime = 0 -PIC.Core.CS028HBA1.phaseCenter = [3825656.283,461242.749,5065564.025] -PIC.Core.CS028LBA.clockCorrectionTime = 0 -PIC.Core.CS028LBA.phaseCenter = [3825600.445,461260.593,5065604.325] -PIC.Core.CS028LBA.position = [3825600.445,461260.593,5065604.325] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3826000.003,460364.303,5065385.121] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.577,460323.374,5065357.614] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.428,460405.233,5065412.628] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.266,460387.389,5065372.328] -PIC.Core.CS030LBA.position = [3826014.266,460387.389,5065372.328] -PIC.Core.CS031HBA.clockCorrectionTime = 0 -PIC.Core.CS031HBA.phaseCenter = [3826430.381,460301.862,5065068.278] -PIC.Core.CS031HBA0.clockCorrectionTime = 0 -PIC.Core.CS031HBA0.phaseCenter = [3826383.037,460279.343,5065105.850] -PIC.Core.CS031HBA1.clockCorrectionTime = 0 -PIC.Core.CS031HBA1.phaseCenter = [3826477.725,460324.381,5065030.705] -PIC.Core.CS031LBA.clockCorrectionTime = 0 -PIC.Core.CS031LBA.phaseCenter = [3826439.996,460273.833,5065063.594] -PIC.Core.CS031LBA.position = [3826439.996,460273.833,5065063.594] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.837,460410.995,5064702.499] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.262,460451.924,5064730.006] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.411,460370.066,5064674.992] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.573,460387.910,5064715.292] -PIC.Core.CS032LBA.position = [3826891.573,460387.910,5064715.292] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825857.958,461661.510,5065374.102] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.302,461684.028,5065336.529] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.613,461638.991,5065411.674] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.343,461689.538,5065378.785] -PIC.Core.CS101LBA.position = [3825848.343,461689.538,5065378.785] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.016,462800.003,5064947.127] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.590,462759.074,5064919.620] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.441,462840.933,5064974.634] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.279,462823.089,5064934.334] -PIC.Core.CS103LBA.position = [3826304.279,462823.089,5064934.334] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.051,461918.691,5064731.315] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.281,461855.243,5064741.380] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.821,461982.139,5064721.249] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.929,461913.747,5064713.838] -PIC.Core.CS201LBA.position = [3826708.929,461913.747,5064713.838] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.340,460985.281,5064240.201] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.109,461048.728,5064230.136] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.570,460921.833,5064250.266] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.462,460990.224,5064257.677] -PIC.Core.CS301LBA.position = [3827429.462,460990.224,5064257.677] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.652,459769.554,5064002.807] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.226,459728.624,5063975.300] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.077,459810.483,5064030.313] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.916,459792.639,5063990.016] -PIC.Core.CS302LBA.position = [3827945.916,459792.639,5063990.016] -PIC.Core.CS401HBA.clockCorrectionTime = 8.069737e-06 -PIC.Core.CS401HBA.phaseCenter = [3826789.982,460095.444,5064818.996] -PIC.Core.CS401HBA0.clockCorrectionTime = 8.069604e-06 -PIC.Core.CS401HBA0.phaseCenter = [3826795.752,460158.894,5064808.929] -PIC.Core.CS401HBA1.clockCorrectionTime = 8.069870e-06 -PIC.Core.CS401HBA1.phaseCenter = [3826784.211,460031.993,5064829.062] -PIC.Core.CS401LBA.clockCorrectionTime = 8.06397e-06 -PIC.Core.CS401LBA.phaseCenter = [3826766.106,460100.388,5064836.470] -PIC.Core.CS401LBA.position = [3826766.106,460100.388,5064836.470] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.164,460670.139,5065645.456] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.820,460647.620,5065683.028] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.508,460692.658,5065607.883] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.779,460642.110,5065640.772] -PIC.Core.CS501LBA.position = [3825625.779,460642.110,5065640.772] -PIC.Core.DE601HBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601HBA.phaseCenter = [4034099.840,487013.425,4900229.635] -PIC.Core.DE601LBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601LBA.phaseCenter = [4034036.396,487026.791,4900279.047] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.006,828789.153,4754362.203] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152560.658,828869.076,4754357.155] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.706,816722.865,4932394.416] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.908,816802.334,4932393.021] -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.phaseCenter = [3796379.823,877614.130,5032712.528] -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.phaseCenter = [3796327.178,877591.636,5032757.508] -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.phaseCenter = [4005681.020,450968.643,4926458.211] -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.phaseCenter = [4005681.355,450968.621,4926457.941] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.708,165545.525,4670271.363] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.809,165608.773,4670303.094] -PIC.Core.IONProc.R00[0].inputs = [] -PIC.Core.IONProc.R00[10].inputs = [] -PIC.Core.IONProc.R00[11].inputs = [] -PIC.Core.IONProc.R00[12].inputs = [] -PIC.Core.IONProc.R00[13].inputs = [] -PIC.Core.IONProc.R00[14].inputs = [] -PIC.Core.IONProc.R00[15].inputs = [] -PIC.Core.IONProc.R00[16].inputs = [] -PIC.Core.IONProc.R00[17].inputs = [] -PIC.Core.IONProc.R00[18].inputs = [] -PIC.Core.IONProc.R00[19].inputs = [] -PIC.Core.IONProc.R00[1].inputs = [] -PIC.Core.IONProc.R00[20].inputs = [] -PIC.Core.IONProc.R00[21].inputs = [] -PIC.Core.IONProc.R00[22].inputs = [] -PIC.Core.IONProc.R00[23].inputs = [RS205LBA/RSP0,RS205LBA/RSP1,RS205LBA/RSP2,RS205LBA/RSP3] -PIC.Core.IONProc.R00[24].inputs = [] -PIC.Core.IONProc.R00[25].inputs = [] -PIC.Core.IONProc.R00[26].inputs = [CS302LBA/RSP0,CS302LBA/RSP1,CS302LBA/RSP2,CS302LBA/RSP3] -PIC.Core.IONProc.R00[27].inputs = [] -PIC.Core.IONProc.R00[28].inputs = [] -PIC.Core.IONProc.R00[29].inputs = [] -PIC.Core.IONProc.R00[2].inputs = [] -PIC.Core.IONProc.R00[30].inputs = [RS406LBA/RSP0,RS406LBA/RSP1,RS406LBA/RSP2,RS406LBA/RSP3] -PIC.Core.IONProc.R00[31].inputs = [RS509LBA/RSP0,RS509LBA/RSP1,RS509LBA/RSP2,RS509LBA/RSP3] -PIC.Core.IONProc.R00[32].inputs = [CS021LBA/RSP0,CS021LBA/RSP1,CS021LBA/RSP2,CS021LBA/RSP3] -PIC.Core.IONProc.R00[33].inputs = [CS005LBA/RSP0,CS005LBA/RSP1,CS005LBA/RSP2,CS005LBA/RSP3] -PIC.Core.IONProc.R00[34].inputs = [CS002LBA/RSP0,CS002LBA/RSP1,CS002LBA/RSP2,CS002LBA/RSP3] -PIC.Core.IONProc.R00[35].inputs = [CS006LBA/RSP0,CS006LBA/RSP1,CS006LBA/RSP2,CS006LBA/RSP3] -PIC.Core.IONProc.R00[36].inputs = [CS003LBA/RSP0,CS003LBA/RSP1,CS003LBA/RSP2,CS003LBA/RSP3] -PIC.Core.IONProc.R00[37].inputs = [CS007LBA/RSP0,CS007LBA/RSP1,CS007LBA/RSP2,CS007LBA/RSP3] -PIC.Core.IONProc.R00[38].inputs = [CS004LBA/RSP0,CS004LBA/RSP1,CS004LBA/RSP2,CS004LBA/RSP3] -PIC.Core.IONProc.R00[39].inputs = [CS024LBA/RSP0,CS024LBA/RSP1,CS024LBA/RSP2,CS024LBA/RSP3] -PIC.Core.IONProc.R00[3].inputs = [] -PIC.Core.IONProc.R00[40].inputs = [CS101LBA/RSP0,CS101LBA/RSP1,CS101LBA/RSP2,CS101LBA/RSP3] -PIC.Core.IONProc.R00[41].inputs = [CS032LBA/RSP0,CS032LBA/RSP1,CS032LBA/RSP2,CS032LBA/RSP3] -PIC.Core.IONProc.R00[42].inputs = [CS026LBA/RSP0,CS026LBA/RSP1,CS026LBA/RSP2,CS026LBA/RSP3] -PIC.Core.IONProc.R00[43].inputs = [CS201LBA/RSP0,CS201LBA/RSP1,CS201LBA/RSP2,CS201LBA/RSP3] -PIC.Core.IONProc.R00[44].inputs = [CS030LBA/RSP0,CS030LBA/RSP1,CS030LBA/RSP2,CS030LBA/RSP3] -PIC.Core.IONProc.R00[45].inputs = [CS301LBA/RSP0,CS301LBA/RSP1,CS301LBA/RSP2,CS301LBA/RSP3] -PIC.Core.IONProc.R00[46].inputs = [CS001LBA/RSP0,CS001LBA/RSP1,CS001LBA/RSP2,CS001LBA/RSP3] -PIC.Core.IONProc.R00[47].inputs = [CS401LBA/RSP0,CS401LBA/RSP1,CS401LBA/RSP2,CS401LBA/RSP3] -PIC.Core.IONProc.R00[48].inputs = [CS017LBA/RSP0,CS017LBA/RSP1,CS017LBA/RSP2,CS017LBA/RSP3] -PIC.Core.IONProc.R00[49].inputs = [RS208LBA/RSP0,RS208LBA/RSP1,RS208LBA/RSP2,RS208LBA/RSP3] -PIC.Core.IONProc.R00[4].inputs = [] -PIC.Core.IONProc.R00[50].inputs = [CS011LBA/RSP0,CS011LBA/RSP1,CS011LBA/RSP2,CS011LBA/RSP3] -PIC.Core.IONProc.R00[51].inputs = [CS028LBA/RSP0,CS028LBA/RSP1,CS028LBA/RSP2,CS028LBA/RSP3] -PIC.Core.IONProc.R00[52].inputs = [CS501LBA/RSP0,CS501LBA/RSP1,CS501LBA/RSP2,CS501LBA/RSP3] -PIC.Core.IONProc.R00[53].inputs = [RS503LBA/RSP0,RS503LBA/RSP1,RS503LBA/RSP2,RS503LBA/RSP3] -PIC.Core.IONProc.R00[54].inputs = [CS103LBA/RSP0,CS103LBA/RSP1,CS103LBA/RSP2,CS103LBA/RSP3] -PIC.Core.IONProc.R00[55].inputs = [RS106LBA/RSP0,RS106LBA/RSP1,RS106LBA/RSP2,RS106LBA/RSP3] -PIC.Core.IONProc.R00[56].inputs = [] -PIC.Core.IONProc.R00[57].inputs = [] -PIC.Core.IONProc.R00[58].inputs = [CS031LBA/RSP0,CS031LBA/RSP1,CS031LBA/RSP2,CS031LBA/RSP3] -PIC.Core.IONProc.R00[59].inputs = [] -PIC.Core.IONProc.R00[5].inputs = [] -PIC.Core.IONProc.R00[60].inputs = [RS306LBA/RSP0,RS306LBA/RSP1,RS306LBA/RSP2,RS306LBA/RSP3] -PIC.Core.IONProc.R00[61].inputs = [] -PIC.Core.IONProc.R00[62].inputs = [RS307LBA/RSP0,RS307LBA/RSP1,RS307LBA/RSP2,RS307LBA/RSP3] -PIC.Core.IONProc.R00[63].inputs = [RS508LBA/RSP0,RS508LBA/RSP1,RS508LBA/RSP2,RS508LBA/RSP3] -PIC.Core.IONProc.R00[6].inputs = [] -PIC.Core.IONProc.R00[7].inputs = [] -PIC.Core.IONProc.R00[8].inputs = [] -PIC.Core.IONProc.R00[9].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.425,469162.285,5062137.310] -PIC.Core.RS106LBA.position = [3829261.425,469162.285,5062137.310] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.670,463487.529,5060989.903] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.563,463435.440,5061025.466] -PIC.Core.RS205LBA.position = [3831438.563,463435.440,5061025.466] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.310,466962.809,5048397.244] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.051,466929.706,5048357.222] -PIC.Core.RS208LBA.position = [3847810.051,466929.706,5048357.222] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.249,452761.702,5063243.181] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.808,452829.848,5063221.590] -PIC.Core.RS306LBA.position = [3829791.808,452829.848,5063221.590] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.520,449627.261,5057357.585] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.949,449560.756,5057381.288] -PIC.Core.RS307LBA.position = [3837940.949,449560.756,5057381.288] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818424.939,452020.269,5071817.644] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818467.634,451974.601,5071790.597] -PIC.Core.RS406LBA.position = [3818467.634,451974.601,5071790.597] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.566,459476.972,5066858.578] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.452,459438.282,5066898.190] -PIC.Core.RS503LBA.position = [3824090.452,459438.282,5066898.190] -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.phaseCenter = [3797136.484,463114.447,5086651.286] -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.phaseCenter = [3797202.116,463087.509,5086605.037] -PIC.Core.RS508LBA.position = [3797202.116,463087.509,5086605.037] -PIC.Core.RS509HBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.phaseCenter = [3783537.525,450130.064,5097866.146] -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.phaseCenter = [3783579.131,450178.882,5097830.835] -PIC.Core.RS509LBA.position = [3783579.131,450178.882,5097830.835] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.941,-100376.609,4943716.874] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008438.457,-100309.725,4943735.828] -_DPname = LOFAR_ObsSW_TempObs0054 -_parsetPrefix = CorrAppl.CorrProc. -_processName = CorrProc diff --git a/RTCP/Storage/test/tTBB_Writer-transient.parset b/RTCP/Storage/test/tTBB_Writer-transient.parset deleted file mode 100644 index 243271c26488d909ed3d7554d3249e0ad75c62b0..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_Writer-transient.parset +++ /dev/null @@ -1,993 +0,0 @@ -ApplCtrl.application = CorrAppl -ApplCtrl.procesOrder = [] -ApplCtrl.processes = [CorrProc] -ApplCtrl.resultfile = '/opt/lofar/share/ACC_CCU001:OnlineControl[0]{59640}_CorrAppl_result.param' -ApplCtrl.timeout_createsubsets = 30s -ApplCtrl.timeout_define = 30s -ApplCtrl.timeout_info = 30s -ApplCtrl.timeout_init = 30s -ApplCtrl.timeout_kill = 30s -ApplCtrl.timeout_pause = 90s -ApplCtrl.timeout_quit = 10s -ApplCtrl.timeout_recover = 30s -ApplCtrl.timeout_reinit = 30s -ApplCtrl.timeout_release = 30s -ApplCtrl.timeout_run = 90s -ApplCtrl.timeout_snapshot = 30s -ApplCtrl.timeout_startup = 30s -CorrAppl.CorrProc._ACnode = bgfen0 -CorrAppl.CorrProc._ACport = 3922 -CorrAppl.CorrProc._executable = CN_Processing -CorrAppl.CorrProc._hostname = bgstfen -CorrAppl.CorrProc._nodes = [] -CorrAppl.CorrProc._startstopType = bgl -CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -CorrAppl._hostname = bgstfen -CorrAppl.extraInfo = [OLAP,PIC] -CorrAppl.procesOrder = [] -CorrAppl.processes = [CorrProc] -OLAP.BeamsAreTransposed = True -OLAP.CNProc.coresPerPset = 64 -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc.nrPPFTaps = 16 -OLAP.CNProc.partition = R00 -OLAP.CNProc.phaseOnePsets = [46,34,36,38,33,35,37,50,48,32,39,42,51,44,58,41,40,54,43,45,26,47,52,55,23,49,60,62,30,53,63,31] -OLAP.CNProc.phaseOneTwoCores = [0..63] -OLAP.CNProc.phaseThreeCores = [0..63] -OLAP.CNProc.phaseThreePsets = [0..63] -OLAP.CNProc.phaseTwoPsets = [0..63] -OLAP.CNProc.tabList = [] -OLAP.CNProc.usedCores = [0..63] -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.DelayComp.nrCalcDelays = 16 -OLAP.DelayComp.positionType = ITRF -OLAP.IONProc.PLC_controlled = T -OLAP.IONProc.integrationSteps = 4 -OLAP.IONProc.psetList = [10.170.0.1,10.170.0.2,10.170.0.5,10.170.0.6,10.170.0.9,10.170.0.10,10.170.0.13,10.170.0.14,10.170.0.17,10.170.0.18,10.170.0.21,10.170.0.22,10.170.0.25,10.170.0.26,10.170.0.29,10.170.0.30,10.170.0.33,10.170.0.34,10.170.0.37,10.170.0.38,10.170.0.41,10.170.0.42,10.170.0.45,10.170.0.46,10.170.0.49,10.170.0.50,10.170.0.53,10.170.0.54,10.170.0.57,10.170.0.58,10.170.0.61,10.170.0.62,10.170.0.129,10.170.0.130,10.170.0.133,10.170.0.134,10.170.0.137,10.170.0.138,10.170.0.141,10.170.0.142,10.170.0.145,10.170.0.146,10.170.0.149,10.170.0.150,10.170.0.153,10.170.0.154,10.170.0.157,10.170.0.158,10.170.0.161,10.170.0.162,10.170.0.165,10.170.0.166,10.170.0.169,10.170.0.170,10.170.0.173,10.170.0.174,10.170.0.177,10.170.0.178,10.170.0.181,10.170.0.182,10.170.0.185,10.170.0.186,10.170.0.189,10.170.0.190] -OLAP.IncoherentStokesAreTransposed = True -OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -OLAP.OLAP_Conn.IONProc_Storage_Transport = TCP -OLAP.PPF = True -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.hosts = [locus072,locus088] -OLAP.Storage.msWriter = /data/home/lofarsys/production/lofar/bin/Storage_main -OLAP.Storage.sshIdentityFile = /globalhome/lofarsystem/.ssh/id_rsa -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = lofarsys -OLAP.StorageProc.subbandsPerMS = 1 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.maxNetworkDelay = 0.25 -Observation.nrBitsPerSample = 16 -OLAP.nrPsets = 64 -OLAP.nrSecondsOfBuffer = 2.5 -OLAP.nrSubbandsPerFrame = 61 -OLAP.nrTimesInFrame = 16 -OLAP.realTime = true -OLAP.storageNodeList = [122*0,122*1] -OLAP.storageStationNames = [CS001LBA,CS002LBA,CS003LBA,CS004LBA,CS005LBA,CS006LBA,CS007LBA,CS011LBA,CS017LBA,CS021LBA,CS024LBA,CS026LBA,CS028LBA,CS030LBA,CS031LBA,CS032LBA,CS101LBA,CS103LBA,CS201LBA,CS301LBA,CS302LBA,CS401LBA,CS501LBA,RS106LBA,RS205LBA,RS208LBA,RS306LBA,RS307LBA,RS406LBA,RS503LBA,RS508LBA,RS509LBA] -OLAP.tiedArrayStationNames = [] -Observation.AnaBeam.angle1 = 0 -Observation.AnaBeam.angle2 = 0 -Observation.AnaBeam.directionType = J2000 -Observation.AnaBeam.duration = 0 -Observation.AnaBeam.maximizeDuration = false -Observation.AnaBeam.rank = 1 -Observation.AnaBeam.startTime = -Observation.AnaBeam.target = -Observation.Beam[0].TiedArrayBeam[0].angle1 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2 = 0.0 -Observation.Beam[0].TiedArrayBeam[0].coherent = true -Observation.Beam[0].TiedArrayBeam[0].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[0].specificationType = manual -Observation.Beam[0].TiedArrayBeam[0].stationList = [] -Observation.Beam[0].TiedArrayBeam[1].angle1 = 0 -Observation.Beam[0].TiedArrayBeam[1].angle2 = 0 -Observation.Beam[0].TiedArrayBeam[1].coherent = false -Observation.Beam[0].TiedArrayBeam[1].directionType = J2000 -Observation.Beam[0].TiedArrayBeam[1].dispersionMeasure = 0 -Observation.Beam[0].TiedArrayBeam[1].specificationType = manual -Observation.Beam[0].TiedArrayBeam[1].stationList = [] -Observation.Beam[0].angle1 = 0.9293449206762021 -Observation.Beam[0].angle2 = 0.9525764650544495 -Observation.Beam[0].beamletList = [] -Observation.Beam[0].directionType = J2000 -Observation.Beam[0].duration = 900 -Observation.Beam[0].maximizeDuration = false -Observation.Beam[0].momID = 119965 -Observation.Beam[0].nrTabRings = 0 -Observation.Beam[0].nrTiedArrayBeams = 2 -Observation.Beam[0].startTime = -Observation.Beam[0].subbandList = [175..418] -Observation.Beam[0].tabRingSize = 0.0 -Observation.Beam[0].target = B0329+54 -Observation.Beamformer.stationList = [] -Observation.Campaign.CO_I = 'Pizzo, Dr. Roberto Francesco' -Observation.Campaign.PI = 'Polatidis, Dr Antonios' -Observation.Campaign.contact = 'Polatidis, Dr Antonios' -Observation.Campaign.name = 2012LOFAROBS -Observation.Campaign.title = 2012LOFAROBS -Observation.DataProducts.Input_Beamformed.dirmask = -Observation.DataProducts.Input_Beamformed.enabled = false -Observation.DataProducts.Input_Beamformed.filenames = [] -Observation.DataProducts.Input_Beamformed.identifications = [] -Observation.DataProducts.Input_Beamformed.locations = [] -Observation.DataProducts.Input_Beamformed.mountpoints = [] -Observation.DataProducts.Input_Beamformed.namemask = -Observation.DataProducts.Input_Beamformed.skip = [] -Observation.DataProducts.Input_CoherentStokes.dirmask = -Observation.DataProducts.Input_CoherentStokes.enabled = false -Observation.DataProducts.Input_CoherentStokes.filenames = [] -Observation.DataProducts.Input_CoherentStokes.identifications = [] -Observation.DataProducts.Input_CoherentStokes.locations = [] -Observation.DataProducts.Input_CoherentStokes.mountpoints = [] -Observation.DataProducts.Input_CoherentStokes.namemask = -Observation.DataProducts.Input_CoherentStokes.skip = [] -Observation.DataProducts.Input_Correlated.dirmask = -Observation.DataProducts.Input_Correlated.enabled = false -Observation.DataProducts.Input_Correlated.filenames = [] -Observation.DataProducts.Input_Correlated.identifications = [] -Observation.DataProducts.Input_Correlated.locations = [] -Observation.DataProducts.Input_Correlated.mountpoints = [] -Observation.DataProducts.Input_Correlated.namemask = -Observation.DataProducts.Input_Correlated.skip = [] -Observation.DataProducts.Input_IncoherentStokes.dirmask = -Observation.DataProducts.Input_IncoherentStokes.enabled = false -Observation.DataProducts.Input_IncoherentStokes.filenames = [] -Observation.DataProducts.Input_IncoherentStokes.identifications = [] -Observation.DataProducts.Input_IncoherentStokes.locations = [] -Observation.DataProducts.Input_IncoherentStokes.mountpoints = [] -Observation.DataProducts.Input_IncoherentStokes.namemask = -Observation.DataProducts.Input_IncoherentStokes.skip = [] -Observation.DataProducts.Input_InstrumentModel.dirmask = -Observation.DataProducts.Input_InstrumentModel.enabled = false -Observation.DataProducts.Input_InstrumentModel.filenames = [] -Observation.DataProducts.Input_InstrumentModel.identifications = [] -Observation.DataProducts.Input_InstrumentModel.locations = [] -Observation.DataProducts.Input_InstrumentModel.mountpoints = [] -Observation.DataProducts.Input_InstrumentModel.namemask = -Observation.DataProducts.Input_InstrumentModel.skip = [] -Observation.DataProducts.Input_SkyImage.dirmask = -Observation.DataProducts.Input_SkyImage.enabled = false -Observation.DataProducts.Input_SkyImage.filenames = [] -Observation.DataProducts.Input_SkyImage.identifications = [] -Observation.DataProducts.Input_SkyImage.locations = [] -Observation.DataProducts.Input_SkyImage.mountpoints = [] -Observation.DataProducts.Input_SkyImage.namemask = -Observation.DataProducts.Input_SkyImage.skip = [] -Observation.DataProducts.Output_Beamformed.archived = false -Observation.DataProducts.Output_Beamformed.deleted = false -Observation.DataProducts.Output_Beamformed.dirmask = -Observation.DataProducts.Output_Beamformed.enabled = True -Observation.DataProducts.Output_Beamformed.filenames = [L59640_SAP000_B000_S0_P000_bf.raw,L59640_SAP000_B001_S0_P000_bf.raw] -Observation.DataProducts.Output_Beamformed.identifications = [] -Observation.DataProducts.Output_Beamformed.locations = [locus072:/data/L59640/,locus088:/data/L59640/] -Observation.DataProducts.Output_Beamformed.mountpoints = [] -Observation.DataProducts.Output_Beamformed.namemask = -Observation.DataProducts.Output_Beamformed.percentageWritten = [] -Observation.DataProducts.Output_Beamformed.retentiontime = 14 -Observation.DataProducts.Output_Beamformed.skip = [] -Observation.DataProducts.Output_CoherentStokes.archived = false -Observation.DataProducts.Output_CoherentStokes.deleted = false -Observation.DataProducts.Output_CoherentStokes.dirmask = L${OBSID} -Observation.DataProducts.Output_CoherentStokes.enabled = true -Observation.DataProducts.Output_CoherentStokes.filenames = [] -Observation.DataProducts.Output_CoherentStokes.identifications = [] -Observation.DataProducts.Output_CoherentStokes.locations = [] -Observation.DataProducts.Output_CoherentStokes.mountpoints = [locus072:/data] -Observation.DataProducts.Output_CoherentStokes.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_CoherentStokes.percentageWritten = [] -Observation.DataProducts.Output_CoherentStokes.retentiontime = 14 -Observation.DataProducts.Output_CoherentStokes.skip = [] -Observation.DataProducts.Output_Correlated.archived = false -Observation.DataProducts.Output_Correlated.deleted = false -Observation.DataProducts.Output_Correlated.dirmask = -Observation.DataProducts.Output_Correlated.enabled = false -Observation.DataProducts.Output_Correlated.filenames = [] -Observation.DataProducts.Output_Correlated.identifications = [] -Observation.DataProducts.Output_Correlated.locations = [] -Observation.DataProducts.Output_Correlated.mountpoints = [] -Observation.DataProducts.Output_Correlated.namemask = -Observation.DataProducts.Output_Correlated.percentageWritten = [] -Observation.DataProducts.Output_Correlated.retentiontime = 14 -Observation.DataProducts.Output_Correlated.skip = [] -Observation.DataProducts.Output_IncoherentStokes.archived = false -Observation.DataProducts.Output_IncoherentStokes.deleted = false -Observation.DataProducts.Output_IncoherentStokes.dirmask = L${OBSID} -Observation.DataProducts.Output_IncoherentStokes.enabled = true -Observation.DataProducts.Output_IncoherentStokes.filenames = [] -Observation.DataProducts.Output_IncoherentStokes.identifications = [] -Observation.DataProducts.Output_IncoherentStokes.locations = [] -Observation.DataProducts.Output_IncoherentStokes.mountpoints = [locus088:/data] -Observation.DataProducts.Output_IncoherentStokes.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.raw -Observation.DataProducts.Output_IncoherentStokes.percentageWritten = [] -Observation.DataProducts.Output_IncoherentStokes.retentiontime = 14 -Observation.DataProducts.Output_IncoherentStokes.skip = [] -Observation.DataProducts.Output_InstrumentModel.archived = false -Observation.DataProducts.Output_InstrumentModel.deleted = false -Observation.DataProducts.Output_InstrumentModel.dirmask = -Observation.DataProducts.Output_InstrumentModel.enabled = false -Observation.DataProducts.Output_InstrumentModel.filenames = [] -Observation.DataProducts.Output_InstrumentModel.identifications = [] -Observation.DataProducts.Output_InstrumentModel.locations = [] -Observation.DataProducts.Output_InstrumentModel.mountpoints = [] -Observation.DataProducts.Output_InstrumentModel.namemask = -Observation.DataProducts.Output_InstrumentModel.percentageWritten = [] -Observation.DataProducts.Output_InstrumentModel.retentiontime = 14 -Observation.DataProducts.Output_InstrumentModel.skip = [] -Observation.DataProducts.Output_SkyImage.archived = false -Observation.DataProducts.Output_SkyImage.deleted = false -Observation.DataProducts.Output_SkyImage.dirmask = -Observation.DataProducts.Output_SkyImage.enabled = false -Observation.DataProducts.Output_SkyImage.filenames = [] -Observation.DataProducts.Output_SkyImage.identifications = [] -Observation.DataProducts.Output_SkyImage.locations = [] -Observation.DataProducts.Output_SkyImage.mountpoints = [] -Observation.DataProducts.Output_SkyImage.namemask = -Observation.DataProducts.Output_SkyImage.percentageWritten = [] -Observation.DataProducts.Output_SkyImage.retentiontime = 14 -Observation.DataProducts.Output_SkyImage.skip = [] -Observation.DataProducts.Output_Trigger.dirmask = L${YEAR}_${OBSID} -Observation.DataProducts.Output_Trigger.enabled = False -Observation.DataProducts.Output_Trigger.namemask = L${OBSID}_SAP${SAP}_B${BEAM}_S${STOKES}_P${PART}_bf.trigger -Observation.DataProducts.nrOfOutput_BeamFormed_ = 0 -Observation.DataProducts.nrOfOutput_Correlated_ = 0 -Observation.DataProducts.nrOfOutput_InstrumentModels_ = 0 -Observation.DataProducts.nrOfOutput_SkyImages_ = 0 -Observation.Dataslots.CS001LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS001LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS002LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS002LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS003LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS003LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS004LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS004LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS005LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS005LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS006LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS006LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS007LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS007LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS011LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS011LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS017LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS017LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS021LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS021LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS024LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS024LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS026LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS026LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS028LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS028LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS030LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS030LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS031LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS031LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS032LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS032LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS101LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS101LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS103LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS103LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS201LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS201LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS301LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS301LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS302LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS302LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS401LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS401LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.CS501LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.CS501LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.DataslotInfo.DataslotList = [] -Observation.Dataslots.DataslotInfo.RSPBoardList = [] -Observation.Dataslots.RS106LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS106LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS205LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS205LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS208LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS208LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS306LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS306LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS307LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS307LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS406LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS406LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS503LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS503LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS508LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS508LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.Dataslots.RS509LBA.DataslotList = [0..60,0..60,0..60,0..60] -Observation.Dataslots.RS509LBA.RSPBoardList = [61*0,61*1,61*2,61*3] -Observation.KSPType = surveys -Observation.ObsID = 59640 -Observation.ObservationControl.OnlineControl.ApplCtrl.application = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.procesOrder = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.processes = [] -Observation.ObservationControl.OnlineControl.ApplCtrl.resultfile = ../log/ACC.result -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_createsubsets = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_define = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_info = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_init = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_kill = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_pause = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_quit = 10s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_recover = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_reinit = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_release = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_run = 90s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_snapshot = 30s -Observation.ObservationControl.OnlineControl.ApplCtrl.timeout_startup = 30s -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._executable = CN_Processing -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._hostname = bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._nodes = [] -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc._startstopType = bgl -Observation.ObservationControl.OnlineControl.CorrAppl.CorrProc.workingdir = /opt/lofar/bin/ -Observation.ObservationControl.OnlineControl.CorrAppl._hostname = bgstfen -Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo = [OLAP,PIC] -Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder = [] -Observation.ObservationControl.OnlineControl.CorrAppl.processes = [CorrProc] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.coresPerPset = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.integrationSteps = 768 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.nrPPFTaps = 16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseOnePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseThreePsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.phaseTwoPsets = [] -Observation.ObservationControl.OnlineControl.OLAP.CNProc.usedCores = [0..63] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband = 0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile = 244 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which = I -Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime = 1 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.nrCalcDelays = 16 -Observation.ObservationControl.OnlineControl.OLAP.DelayComp.positionType = ITRF -Observation.ObservationControl.OnlineControl.OLAP.IONProc.integrationSteps = 30 -Observation.ObservationControl.OnlineControl.OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye = false -Observation.ObservationControl.OnlineControl.OLAP.StorageProc.subbandsPerMS = 1 -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels = false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass = true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation = true -Observation.ObservationControl.OnlineControl.OLAP.maxNetworkDelay = 0.25 -Observation.ObservationControl.OnlineControl.Observation.nrBitsPerSample = 16 -Observation.ObservationControl.OnlineControl.OLAP.nrSecondsOfBuffer = 2.5 -Observation.ObservationControl.OnlineControl.OLAP.nrSubbandsPerFrame = 61 -Observation.ObservationControl.OnlineControl.OLAP.nrTimesInFrame = 16 -Observation.ObservationControl.OnlineControl.OLAP.realTime = true -Observation.ObservationControl.OnlineControl.OLAP.storageStationNames = AllStations -Observation.ObservationControl.OnlineControl._hostname = CCU001 -Observation.ObservationControl.OnlineControl.applOrder = [CorrAppl] -Observation.ObservationControl.OnlineControl.applications = [CorrAppl] -Observation.ObservationControl.OnlineControl.inspectionHost = -Observation.ObservationControl.OnlineControl.inspectionProgram = -Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime = 0 -Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit = none -Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance = 0 -Observation.ObservationControl.StationControl.TBBControl.MinElevation = 0 -Observation.ObservationControl.StationControl.TBBControl.NoCoincChann = 0 -Observation.ObservationControl.StationControl.TBBControl.ParamExtension = -Observation.ObservationControl.StationControl._hostname = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS032,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509] -Observation.ObservationControl.StationControl.tbbPiggybackAllowed = false -Observation.ObservationControl._hostname = MCU001 -Observation.ObservationControl.heartbeatInterval = 10 -Observation.ObserverName = unknown -Observation.ProjectName = unknown -Observation.Scheduler.contactEmail = -Observation.Scheduler.contactName = -Observation.Scheduler.contactPhone = -Observation.Scheduler.firstPossibleDay = 0 -Observation.Scheduler.fixedDay = false -Observation.Scheduler.fixedTime = false -Observation.Scheduler.lastPossibleDay = 0 -Observation.Scheduler.late = false -Observation.Scheduler.nightTimeWeightFactor = 0 -Observation.Scheduler.predMaxTimeDif = -Observation.Scheduler.predMinTimeDif = -Observation.Scheduler.predecessors = [] -Observation.Scheduler.priority = 0.0 -Observation.Scheduler.reason = -Observation.Scheduler.referenceFrame = 0 -Observation.Scheduler.reservation = 0 -Observation.Scheduler.storageSelectionMode = 1 -Observation.Scheduler.taskDuration = 900 -Observation.Scheduler.taskID = 63 -Observation.Scheduler.taskName = 'LBAm1 18-06-2012' -Observation.Scheduler.taskType = 0 -Observation.Scheduler.windowMaximumTime = -Observation.Scheduler.windowMinimumTime = -Observation.TBB.TBBsetting.RCUs = [] -Observation.TBB.TBBsetting.baselevel = 127 -Observation.TBB.TBBsetting.filter = 0 -Observation.TBB.TBBsetting.filter0_coeff0 = 0 -Observation.TBB.TBBsetting.filter0_coeff1 = 0 -Observation.TBB.TBBsetting.filter0_coeff2 = 0 -Observation.TBB.TBBsetting.filter0_coeff3 = 0 -Observation.TBB.TBBsetting.filter1_coeff0 = 0 -Observation.TBB.TBBsetting.filter1_coeff1 = 0 -Observation.TBB.TBBsetting.filter1_coeff2 = 0 -Observation.TBB.TBBsetting.filter1_coeff3 = 0 -Observation.TBB.TBBsetting.operatingMode = 1 -Observation.TBB.TBBsetting.startlevel = 7 -Observation.TBB.TBBsetting.stoplevel = 7 -Observation.TBB.TBBsetting.subbandList = [] -Observation.TBB.TBBsetting.triggerMode = 1 -Observation.TBB.TBBsetting.window = 1M -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationList = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS032,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,RS508,RS509] -Observation.VirtualInstrument.stationSet = Custom -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [] -Observation.antennaArray = LBA -Observation.antennaSet = LBA_INNER -Observation.bandFilter = LBA_10_90 -Observation.beamList = [244*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 -Observation.claimPeriod = 50 -Observation.clockMode = <<Clock200 -Observation.existingAntennaFields = [LBA,HBA,HBA0,HBA1] -Observation.existingStations = [CS001,CS002,CS003,CS004,CS005,CS006,CS007,CS011,CS013,CS017,CS021,CS024,CS026,CS028,CS030,CS031,CS101,CS103,CS201,CS301,CS302,CS401,CS501,RS106,RS205,RS208,RS306,RS307,RS406,RS503,DE601,DE602,DE603,DE604,DE605,FR606,UK608] -Observation.longBaselines = false -Observation.nrAnaBeams = 0 -Observation.nrBeamformers = 0 -Observation.nrBeams = 1 -Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 61 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 30 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation -Observation.receiverList = [] -Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] -Observation.rspBoardList = [244*0] -Observation.rspSlotList = [244*0] -Observation.sampleClock = 200 -Observation.samplesPerSecond = 196608 -Observation.startTime = '2012-06-19 08:00:00' -Observation.stopTime = '2012-06-19 16:15:00' -Observation.strategy = default -Observation.subbandList = [175..418] -Observation.subbandWidth = 195.3125 -Observation.topologyID = -PIC.Core.CS001HBA.clockCorrectionTime = 0 -PIC.Core.CS001HBA.phaseCenter = [3826937.810,460938.526,5064630.696] -PIC.Core.CS001HBA0.clockCorrectionTime = 0 -PIC.Core.CS001HBA0.phaseCenter = [3826896.235,460979.455,5064658.203] -PIC.Core.CS001HBA1.clockCorrectionTime = 0 -PIC.Core.CS001HBA1.phaseCenter = [3826979.384,460897.597,5064603.189] -PIC.Core.CS001LBA.clockCorrectionTime = 0 -PIC.Core.CS001LBA.phaseCenter = [3826923.546,460915.441,5064643.489] -PIC.Core.CS001LBA.position = [3826923.546,460915.441,5064643.489] -PIC.Core.CS002HBA.clockCorrectionTime = 8.318569e-06 -PIC.Core.CS002HBA.phaseCenter = [3826583.278,460955.756,5064894.197] -PIC.Core.CS002HBA0.clockCorrectionTime = 8.318834e-06 -PIC.Core.CS002HBA0.phaseCenter = [3826600.961,460953.402,5064881.136] -PIC.Core.CS002HBA1.clockCorrectionTime = 8.318304e-06 -PIC.Core.CS002HBA1.phaseCenter = [3826565.594,460958.110,5064907.258] -PIC.Core.CS002LBA.clockCorrectionTime = 8.339918e-06 -PIC.Core.CS002LBA.phaseCenter = [3826577.066,461022.948,5064892.786] -PIC.Core.CS002LBA.position = [3826577.066,461022.948,5064892.786] -PIC.Core.CS003HBA.clockCorrectionTime = 6.917899e-06 -PIC.Core.CS003HBA.phaseCenter = [3826494.580,461017.698,5064955.176] -PIC.Core.CS003HBA0.clockCorrectionTime = 6.917926e-06 -PIC.Core.CS003HBA0.phaseCenter = [3826471.348,461000.138,5064974.201] -PIC.Core.CS003HBA1.clockCorrectionTime = 6.917872e-06 -PIC.Core.CS003HBA1.phaseCenter = [3826517.812,461035.258,5064936.150] -PIC.Core.CS003LBA.clockCorrectionTime = 6.936566e-06 -PIC.Core.CS003LBA.phaseCenter = [3826516.748,460930.066,5064946.457] -PIC.Core.CS003LBA.position = [3826516.748,460930.066,5064946.457] -PIC.Core.CS004HBA.clockCorrectionTime = 7.889733e-06 -PIC.Core.CS004HBA.phaseCenter = [3826582.556,460891.662,5064900.532] -PIC.Core.CS004HBA0.clockCorrectionTime = 7.889961e-06 -PIC.Core.CS004HBA0.phaseCenter = [3826585.626,460865.844,5064900.561] -PIC.Core.CS004HBA1.clockCorrectionTime = 7.889505e-06 -PIC.Core.CS004HBA1.phaseCenter = [3826579.486,460917.480,5064900.502] -PIC.Core.CS004LBA.clockCorrectionTime = 7.905512e-06 -PIC.Core.CS004LBA.phaseCenter = [3826654.197,460939.576,5064842.426] -PIC.Core.CS004LBA.position = [3826654.197,460939.576,5064842.426] -PIC.Core.CS005HBA.clockCorrectionTime = 8.541942e-06 -PIC.Core.CS005HBA.phaseCenter = [3826666.177,461005.533,5064827.472] -PIC.Core.CS005HBA0.clockCorrectionTime = 8.542093e-06 -PIC.Core.CS005HBA0.phaseCenter = [3826701.160,460989.250,5064802.685] -PIC.Core.CS005HBA1.clockCorrectionTime = 8.541791e-06 -PIC.Core.CS005HBA1.phaseCenter = [3826631.194,461021.815,5064852.259] -PIC.Core.CS005LBA.clockCorrectionTime = 8.556805e-06 -PIC.Core.CS005LBA.phaseCenter = [3826668.750,461069.550,5064819.754] -PIC.Core.CS005LBA.position = [3826668.750,461069.550,5064819.754] -PIC.Core.CS006HBA.clockCorrectionTime = 7.882660e-06 -PIC.Core.CS006HBA.phaseCenter = [3826633.141,461108.369,5064842.975] -PIC.Core.CS006HBA0.clockCorrectionTime = 7.882360e-06 -PIC.Core.CS006HBA0.phaseCenter = [3826653.783,461136.440,5064824.943] -PIC.Core.CS006HBA1.clockCorrectionTime = 7.882960e-06 -PIC.Core.CS006HBA1.phaseCenter = [3826612.499,461080.298,5064861.006] -PIC.Core.CS006LBA.clockCorrectionTime = 7.905282e-06 -PIC.Core.CS006LBA.phaseCenter = [3826596.730,461145.178,5064866.978] -PIC.Core.CS006LBA.position = [3826596.730,461145.178,5064866.978] -PIC.Core.CS007HBA.clockCorrectionTime = 7.913140e-06 -PIC.Core.CS007HBA.phaseCenter = [3826508.368,461126.726,5064934.972] -PIC.Core.CS007HBA0.clockCorrectionTime = 7.913020e-06 -PIC.Core.CS007HBA0.phaseCenter = [3826478.715,461083.720,5064961.117] -PIC.Core.CS007HBA1.clockCorrectionTime = 7.913260e-06 -PIC.Core.CS007HBA1.phaseCenter = [3826538.021,461169.731,5064908.827] -PIC.Core.CS007LBA.clockCorrectionTime = 7.928823e-06 -PIC.Core.CS007LBA.phaseCenter = [3826533.361,461098.966,5064918.721] -PIC.Core.CS007LBA.position = [3826533.361,461098.966,5064918.721] -PIC.Core.CS011HBA.clockCorrectionTime = 0 -PIC.Core.CS011HBA.phaseCenter = [3826643.191,461290.793,5064819.069] -PIC.Core.CS011HBA0.clockCorrectionTime = 0 -PIC.Core.CS011HBA0.phaseCenter = [3826637.421,461227.345,5064829.134] -PIC.Core.CS011HBA1.clockCorrectionTime = 0 -PIC.Core.CS011HBA1.phaseCenter = [3826648.961,461354.241,5064809.003] -PIC.Core.CS011LBA.clockCorrectionTime = 0 -PIC.Core.CS011LBA.phaseCenter = [3826667.069,461285.849,5064801.592] -PIC.Core.CS011LBA.position = [3826667.069,461285.849,5064801.592] -PIC.Core.CS013HBA.clockCorrectionTime = 0 -PIC.Core.CS013HBA.phaseCenter = [3826360.529,460815.196,5065074.343] -PIC.Core.CS013HBA0.clockCorrectionTime = 0 -PIC.Core.CS013HBA0.phaseCenter = [3826318.954,460856.125,5065101.850] -PIC.Core.CS013HBA1.clockCorrectionTime = 0 -PIC.Core.CS013HBA1.phaseCenter = [3826402.103,460774.267,5065046.836] -PIC.Core.CS013LBA.clockCorrectionTime = 0 -PIC.Core.CS013LBA.phaseCenter = [3826346.265,460792.111,5065087.136] -PIC.Core.CS017HBA.clockCorrectionTime = 0 -PIC.Core.CS017HBA.phaseCenter = [3826452.439,461529.979,5064940.511] -PIC.Core.CS017HBA0.clockCorrectionTime = 0 -PIC.Core.CS017HBA0.phaseCenter = [3826405.095,461507.460,5064978.083] -PIC.Core.CS017HBA1.clockCorrectionTime = 0 -PIC.Core.CS017HBA1.phaseCenter = [3826499.783,461552.498,5064902.938] -PIC.Core.CS017LBA.clockCorrectionTime = 0 -PIC.Core.CS017LBA.phaseCenter = [3826462.054,461501.950,5064935.827] -PIC.Core.CS017LBA.position = [3826462.054,461501.950,5064935.827] -PIC.Core.CS021HBA.clockCorrectionTime = 0 -PIC.Core.CS021HBA.phaseCenter = [3826416.158,460510.576,5065060.187] -PIC.Core.CS021HBA0.clockCorrectionTime = 0 -PIC.Core.CS021HBA0.phaseCenter = [3826463.502,460533.094,5065022.614] -PIC.Core.CS021HBA1.clockCorrectionTime = 0 -PIC.Core.CS021HBA1.phaseCenter = [3826368.813,460488.057,5065097.759] -PIC.Core.CS021LBA.clockCorrectionTime = 0 -PIC.Core.CS021LBA.phaseCenter = [3826406.543,460538.604,5065064.870] -PIC.Core.CS021LBA.position = [3826406.543,460538.604,5065064.870] -PIC.Core.CS024HBA.clockCorrectionTime = 0 -PIC.Core.CS024HBA.phaseCenter = [3827170.849,461381.379,5064416.362] -PIC.Core.CS024HBA0.clockCorrectionTime = 0 -PIC.Core.CS024HBA0.phaseCenter = [3827218.193,461403.898,5064378.790] -PIC.Core.CS024HBA1.clockCorrectionTime = 0 -PIC.Core.CS024HBA1.phaseCenter = [3827123.504,461358.861,5064453.935] -PIC.Core.CS024LBA.clockCorrectionTime = 0 -PIC.Core.CS024LBA.phaseCenter = [3827161.234,461409.408,5064421.046] -PIC.Core.CS024LBA.position = [3827161.234,461409.408,5064421.046] -PIC.Core.CS026HBA.clockCorrectionTime = 0 -PIC.Core.CS026HBA.phaseCenter = [3826376.653,461846.767,5064968.706] -PIC.Core.CS026HBA0.clockCorrectionTime = 0 -PIC.Core.CS026HBA0.phaseCenter = [3826418.227,461805.837,5064941.199] -PIC.Core.CS026HBA1.clockCorrectionTime = 0 -PIC.Core.CS026HBA1.phaseCenter = [3826335.078,461887.696,5064996.213] -PIC.Core.CS026LBA.clockCorrectionTime = 0 -PIC.Core.CS026LBA.phaseCenter = [3826390.916,461869.852,5064955.913] -PIC.Core.CS026LBA.position = [3826390.916,461869.852,5064955.913] -PIC.Core.CS028HBA.clockCorrectionTime = 0 -PIC.Core.CS028HBA.phaseCenter = [3825614.709,461283.678,5065591.532] -PIC.Core.CS028HBA0.clockCorrectionTime = 0 -PIC.Core.CS028HBA0.phaseCenter = [3825573.134,461324.607,5065619.039] -PIC.Core.CS028HBA1.clockCorrectionTime = 0 -PIC.Core.CS028HBA1.phaseCenter = [3825656.283,461242.749,5065564.025] -PIC.Core.CS028LBA.clockCorrectionTime = 0 -PIC.Core.CS028LBA.phaseCenter = [3825600.445,461260.593,5065604.325] -PIC.Core.CS028LBA.position = [3825600.445,461260.593,5065604.325] -PIC.Core.CS030HBA.clockCorrectionTime = 0 -PIC.Core.CS030HBA.phaseCenter = [3826000.003,460364.303,5065385.121] -PIC.Core.CS030HBA0.clockCorrectionTime = 0 -PIC.Core.CS030HBA0.phaseCenter = [3826041.577,460323.374,5065357.614] -PIC.Core.CS030HBA1.clockCorrectionTime = 0 -PIC.Core.CS030HBA1.phaseCenter = [3825958.428,460405.233,5065412.628] -PIC.Core.CS030LBA.clockCorrectionTime = 0 -PIC.Core.CS030LBA.phaseCenter = [3826014.266,460387.389,5065372.328] -PIC.Core.CS030LBA.position = [3826014.266,460387.389,5065372.328] -PIC.Core.CS031HBA.clockCorrectionTime = 0 -PIC.Core.CS031HBA.phaseCenter = [3826430.381,460301.862,5065068.278] -PIC.Core.CS031HBA0.clockCorrectionTime = 0 -PIC.Core.CS031HBA0.phaseCenter = [3826383.037,460279.343,5065105.850] -PIC.Core.CS031HBA1.clockCorrectionTime = 0 -PIC.Core.CS031HBA1.phaseCenter = [3826477.725,460324.381,5065030.705] -PIC.Core.CS031LBA.clockCorrectionTime = 0 -PIC.Core.CS031LBA.phaseCenter = [3826439.996,460273.833,5065063.594] -PIC.Core.CS031LBA.position = [3826439.996,460273.833,5065063.594] -PIC.Core.CS032HBA.clockCorrectionTime = 0 -PIC.Core.CS032HBA.phaseCenter = [3826905.837,460410.995,5064702.499] -PIC.Core.CS032HBA0.clockCorrectionTime = 0 -PIC.Core.CS032HBA0.phaseCenter = [3826864.262,460451.924,5064730.006] -PIC.Core.CS032HBA1.clockCorrectionTime = 0 -PIC.Core.CS032HBA1.phaseCenter = [3826947.411,460370.066,5064674.992] -PIC.Core.CS032LBA.clockCorrectionTime = 0 -PIC.Core.CS032LBA.phaseCenter = [3826891.573,460387.910,5064715.292] -PIC.Core.CS032LBA.position = [3826891.573,460387.910,5064715.292] -PIC.Core.CS101HBA.clockCorrectionTime = 0 -PIC.Core.CS101HBA.phaseCenter = [3825857.958,461661.510,5065374.102] -PIC.Core.CS101HBA0.clockCorrectionTime = 0 -PIC.Core.CS101HBA0.phaseCenter = [3825905.302,461684.028,5065336.529] -PIC.Core.CS101HBA1.clockCorrectionTime = 0 -PIC.Core.CS101HBA1.phaseCenter = [3825810.613,461638.991,5065411.674] -PIC.Core.CS101LBA.clockCorrectionTime = 0 -PIC.Core.CS101LBA.phaseCenter = [3825848.343,461689.538,5065378.785] -PIC.Core.CS101LBA.position = [3825848.343,461689.538,5065378.785] -PIC.Core.CS103HBA.clockCorrectionTime = 0 -PIC.Core.CS103HBA.phaseCenter = [3826290.016,462800.003,5064947.127] -PIC.Core.CS103HBA0.clockCorrectionTime = 0 -PIC.Core.CS103HBA0.phaseCenter = [3826331.590,462759.074,5064919.620] -PIC.Core.CS103HBA1.clockCorrectionTime = 0 -PIC.Core.CS103HBA1.phaseCenter = [3826248.441,462840.933,5064974.634] -PIC.Core.CS103LBA.clockCorrectionTime = 0 -PIC.Core.CS103LBA.phaseCenter = [3826304.279,462823.089,5064934.334] -PIC.Core.CS103LBA.position = [3826304.279,462823.089,5064934.334] -PIC.Core.CS201HBA.clockCorrectionTime = 0 -PIC.Core.CS201HBA.phaseCenter = [3826685.051,461918.691,5064731.315] -PIC.Core.CS201HBA0.clockCorrectionTime = 0 -PIC.Core.CS201HBA0.phaseCenter = [3826679.281,461855.243,5064741.380] -PIC.Core.CS201HBA1.clockCorrectionTime = 0 -PIC.Core.CS201HBA1.phaseCenter = [3826690.821,461982.139,5064721.249] -PIC.Core.CS201LBA.clockCorrectionTime = 0 -PIC.Core.CS201LBA.phaseCenter = [3826708.929,461913.747,5064713.838] -PIC.Core.CS201LBA.position = [3826708.929,461913.747,5064713.838] -PIC.Core.CS301HBA.clockCorrectionTime = 0 -PIC.Core.CS301HBA.phaseCenter = [3827453.340,460985.281,5064240.201] -PIC.Core.CS301HBA0.clockCorrectionTime = 0 -PIC.Core.CS301HBA0.phaseCenter = [3827459.109,461048.728,5064230.136] -PIC.Core.CS301HBA1.clockCorrectionTime = 0 -PIC.Core.CS301HBA1.phaseCenter = [3827447.570,460921.833,5064250.266] -PIC.Core.CS301LBA.clockCorrectionTime = 0 -PIC.Core.CS301LBA.phaseCenter = [3827429.462,460990.224,5064257.677] -PIC.Core.CS301LBA.position = [3827429.462,460990.224,5064257.677] -PIC.Core.CS302HBA.clockCorrectionTime = 0 -PIC.Core.CS302HBA.phaseCenter = [3827931.652,459769.554,5064002.807] -PIC.Core.CS302HBA0.clockCorrectionTime = 0 -PIC.Core.CS302HBA0.phaseCenter = [3827973.226,459728.624,5063975.300] -PIC.Core.CS302HBA1.clockCorrectionTime = 0 -PIC.Core.CS302HBA1.phaseCenter = [3827890.077,459810.483,5064030.313] -PIC.Core.CS302LBA.clockCorrectionTime = 0 -PIC.Core.CS302LBA.phaseCenter = [3827945.916,459792.639,5063990.016] -PIC.Core.CS302LBA.position = [3827945.916,459792.639,5063990.016] -PIC.Core.CS401HBA.clockCorrectionTime = 8.069737e-06 -PIC.Core.CS401HBA.phaseCenter = [3826789.982,460095.444,5064818.996] -PIC.Core.CS401HBA0.clockCorrectionTime = 8.069604e-06 -PIC.Core.CS401HBA0.phaseCenter = [3826795.752,460158.894,5064808.929] -PIC.Core.CS401HBA1.clockCorrectionTime = 8.069870e-06 -PIC.Core.CS401HBA1.phaseCenter = [3826784.211,460031.993,5064829.062] -PIC.Core.CS401LBA.clockCorrectionTime = 8.06397e-06 -PIC.Core.CS401LBA.phaseCenter = [3826766.106,460100.388,5064836.470] -PIC.Core.CS401LBA.position = [3826766.106,460100.388,5064836.470] -PIC.Core.CS501HBA.clockCorrectionTime = 0 -PIC.Core.CS501HBA.phaseCenter = [3825616.164,460670.139,5065645.456] -PIC.Core.CS501HBA0.clockCorrectionTime = 0 -PIC.Core.CS501HBA0.phaseCenter = [3825568.820,460647.620,5065683.028] -PIC.Core.CS501HBA1.clockCorrectionTime = 0 -PIC.Core.CS501HBA1.phaseCenter = [3825663.508,460692.658,5065607.883] -PIC.Core.CS501LBA.clockCorrectionTime = 0 -PIC.Core.CS501LBA.phaseCenter = [3825625.779,460642.110,5065640.772] -PIC.Core.CS501LBA.position = [3825625.779,460642.110,5065640.772] -PIC.Core.DE601HBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601HBA.phaseCenter = [4034099.840,487013.425,4900229.635] -PIC.Core.DE601LBA.clockCorrectionTime = 1.1e-6 -PIC.Core.DE601LBA.phaseCenter = [4034036.396,487026.791,4900279.047] -PIC.Core.DE602HBA.clockCorrectionTime = 0 -PIC.Core.DE602HBA.phaseCenter = [4152568.006,828789.153,4754362.203] -PIC.Core.DE602LBA.clockCorrectionTime = 0 -PIC.Core.DE602LBA.phaseCenter = [4152560.658,828869.076,4754357.155] -PIC.Core.DE603HBA.clockCorrectionTime = 0 -PIC.Core.DE603HBA.phaseCenter = [3940295.706,816722.865,4932394.416] -PIC.Core.DE603LBA.clockCorrectionTime = 0 -PIC.Core.DE603LBA.phaseCenter = [3940284.908,816802.334,4932393.021] -PIC.Core.DE604HBA.clockCorrectionTime = 0 -PIC.Core.DE604HBA.phaseCenter = [3796379.823,877614.130,5032712.528] -PIC.Core.DE604LBA.clockCorrectionTime = 0 -PIC.Core.DE604LBA.phaseCenter = [3796327.178,877591.636,5032757.508] -PIC.Core.DE605HBA.clockCorrectionTime = 0 -PIC.Core.DE605HBA.phaseCenter = [4005681.020,450968.643,4926458.211] -PIC.Core.DE605LBA.clockCorrectionTime = 0 -PIC.Core.DE605LBA.phaseCenter = [4005681.355,450968.621,4926457.941] -PIC.Core.FR606HBA.clockCorrectionTime = 0 -PIC.Core.FR606HBA.phaseCenter = [4324016.708,165545.525,4670271.363] -PIC.Core.FR606LBA.clockCorrectionTime = 0 -PIC.Core.FR606LBA.phaseCenter = [4323979.809,165608.773,4670303.094] -PIC.Core.IONProc.R00[0].inputs = [] -PIC.Core.IONProc.R00[10].inputs = [] -PIC.Core.IONProc.R00[11].inputs = [] -PIC.Core.IONProc.R00[12].inputs = [] -PIC.Core.IONProc.R00[13].inputs = [] -PIC.Core.IONProc.R00[14].inputs = [] -PIC.Core.IONProc.R00[15].inputs = [] -PIC.Core.IONProc.R00[16].inputs = [] -PIC.Core.IONProc.R00[17].inputs = [] -PIC.Core.IONProc.R00[18].inputs = [] -PIC.Core.IONProc.R00[19].inputs = [] -PIC.Core.IONProc.R00[1].inputs = [] -PIC.Core.IONProc.R00[20].inputs = [] -PIC.Core.IONProc.R00[21].inputs = [] -PIC.Core.IONProc.R00[22].inputs = [] -PIC.Core.IONProc.R00[23].inputs = [RS205LBA/RSP0,RS205LBA/RSP1,RS205LBA/RSP2,RS205LBA/RSP3] -PIC.Core.IONProc.R00[24].inputs = [] -PIC.Core.IONProc.R00[25].inputs = [] -PIC.Core.IONProc.R00[26].inputs = [CS302LBA/RSP0,CS302LBA/RSP1,CS302LBA/RSP2,CS302LBA/RSP3] -PIC.Core.IONProc.R00[27].inputs = [] -PIC.Core.IONProc.R00[28].inputs = [] -PIC.Core.IONProc.R00[29].inputs = [] -PIC.Core.IONProc.R00[2].inputs = [] -PIC.Core.IONProc.R00[30].inputs = [RS406LBA/RSP0,RS406LBA/RSP1,RS406LBA/RSP2,RS406LBA/RSP3] -PIC.Core.IONProc.R00[31].inputs = [RS509LBA/RSP0,RS509LBA/RSP1,RS509LBA/RSP2,RS509LBA/RSP3] -PIC.Core.IONProc.R00[32].inputs = [CS021LBA/RSP0,CS021LBA/RSP1,CS021LBA/RSP2,CS021LBA/RSP3] -PIC.Core.IONProc.R00[33].inputs = [CS005LBA/RSP0,CS005LBA/RSP1,CS005LBA/RSP2,CS005LBA/RSP3] -PIC.Core.IONProc.R00[34].inputs = [CS002LBA/RSP0,CS002LBA/RSP1,CS002LBA/RSP2,CS002LBA/RSP3] -PIC.Core.IONProc.R00[35].inputs = [CS006LBA/RSP0,CS006LBA/RSP1,CS006LBA/RSP2,CS006LBA/RSP3] -PIC.Core.IONProc.R00[36].inputs = [CS003LBA/RSP0,CS003LBA/RSP1,CS003LBA/RSP2,CS003LBA/RSP3] -PIC.Core.IONProc.R00[37].inputs = [CS007LBA/RSP0,CS007LBA/RSP1,CS007LBA/RSP2,CS007LBA/RSP3] -PIC.Core.IONProc.R00[38].inputs = [CS004LBA/RSP0,CS004LBA/RSP1,CS004LBA/RSP2,CS004LBA/RSP3] -PIC.Core.IONProc.R00[39].inputs = [CS024LBA/RSP0,CS024LBA/RSP1,CS024LBA/RSP2,CS024LBA/RSP3] -PIC.Core.IONProc.R00[3].inputs = [] -PIC.Core.IONProc.R00[40].inputs = [CS101LBA/RSP0,CS101LBA/RSP1,CS101LBA/RSP2,CS101LBA/RSP3] -PIC.Core.IONProc.R00[41].inputs = [CS032LBA/RSP0,CS032LBA/RSP1,CS032LBA/RSP2,CS032LBA/RSP3] -PIC.Core.IONProc.R00[42].inputs = [CS026LBA/RSP0,CS026LBA/RSP1,CS026LBA/RSP2,CS026LBA/RSP3] -PIC.Core.IONProc.R00[43].inputs = [CS201LBA/RSP0,CS201LBA/RSP1,CS201LBA/RSP2,CS201LBA/RSP3] -PIC.Core.IONProc.R00[44].inputs = [CS030LBA/RSP0,CS030LBA/RSP1,CS030LBA/RSP2,CS030LBA/RSP3] -PIC.Core.IONProc.R00[45].inputs = [CS301LBA/RSP0,CS301LBA/RSP1,CS301LBA/RSP2,CS301LBA/RSP3] -PIC.Core.IONProc.R00[46].inputs = [CS001LBA/RSP0,CS001LBA/RSP1,CS001LBA/RSP2,CS001LBA/RSP3] -PIC.Core.IONProc.R00[47].inputs = [CS401LBA/RSP0,CS401LBA/RSP1,CS401LBA/RSP2,CS401LBA/RSP3] -PIC.Core.IONProc.R00[48].inputs = [CS017LBA/RSP0,CS017LBA/RSP1,CS017LBA/RSP2,CS017LBA/RSP3] -PIC.Core.IONProc.R00[49].inputs = [RS208LBA/RSP0,RS208LBA/RSP1,RS208LBA/RSP2,RS208LBA/RSP3] -PIC.Core.IONProc.R00[4].inputs = [] -PIC.Core.IONProc.R00[50].inputs = [CS011LBA/RSP0,CS011LBA/RSP1,CS011LBA/RSP2,CS011LBA/RSP3] -PIC.Core.IONProc.R00[51].inputs = [CS028LBA/RSP0,CS028LBA/RSP1,CS028LBA/RSP2,CS028LBA/RSP3] -PIC.Core.IONProc.R00[52].inputs = [CS501LBA/RSP0,CS501LBA/RSP1,CS501LBA/RSP2,CS501LBA/RSP3] -PIC.Core.IONProc.R00[53].inputs = [RS503LBA/RSP0,RS503LBA/RSP1,RS503LBA/RSP2,RS503LBA/RSP3] -PIC.Core.IONProc.R00[54].inputs = [CS103LBA/RSP0,CS103LBA/RSP1,CS103LBA/RSP2,CS103LBA/RSP3] -PIC.Core.IONProc.R00[55].inputs = [RS106LBA/RSP0,RS106LBA/RSP1,RS106LBA/RSP2,RS106LBA/RSP3] -PIC.Core.IONProc.R00[56].inputs = [] -PIC.Core.IONProc.R00[57].inputs = [] -PIC.Core.IONProc.R00[58].inputs = [CS031LBA/RSP0,CS031LBA/RSP1,CS031LBA/RSP2,CS031LBA/RSP3] -PIC.Core.IONProc.R00[59].inputs = [] -PIC.Core.IONProc.R00[5].inputs = [] -PIC.Core.IONProc.R00[60].inputs = [RS306LBA/RSP0,RS306LBA/RSP1,RS306LBA/RSP2,RS306LBA/RSP3] -PIC.Core.IONProc.R00[61].inputs = [] -PIC.Core.IONProc.R00[62].inputs = [RS307LBA/RSP0,RS307LBA/RSP1,RS307LBA/RSP2,RS307LBA/RSP3] -PIC.Core.IONProc.R00[63].inputs = [RS508LBA/RSP0,RS508LBA/RSP1,RS508LBA/RSP2,RS508LBA/RSP3] -PIC.Core.IONProc.R00[6].inputs = [] -PIC.Core.IONProc.R00[7].inputs = [] -PIC.Core.IONProc.R00[8].inputs = [] -PIC.Core.IONProc.R00[9].inputs = [] -PIC.Core.RS106HBA.clockCorrectionTime = 0 -PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] -PIC.Core.RS106LBA.clockCorrectionTime = 0 -PIC.Core.RS106LBA.phaseCenter = [3829261.425,469162.285,5062137.310] -PIC.Core.RS106LBA.position = [3829261.425,469162.285,5062137.310] -PIC.Core.RS205HBA.clockCorrectionTime = 0 -PIC.Core.RS205HBA.phaseCenter = [3831479.670,463487.529,5060989.903] -PIC.Core.RS205LBA.clockCorrectionTime = 0 -PIC.Core.RS205LBA.phaseCenter = [3831438.563,463435.440,5061025.466] -PIC.Core.RS205LBA.position = [3831438.563,463435.440,5061025.466] -PIC.Core.RS208HBA.clockCorrectionTime = 0 -PIC.Core.RS208HBA.phaseCenter = [3847753.310,466962.809,5048397.244] -PIC.Core.RS208LBA.clockCorrectionTime = 0 -PIC.Core.RS208LBA.phaseCenter = [3847810.051,466929.706,5048357.222] -PIC.Core.RS208LBA.position = [3847810.051,466929.706,5048357.222] -PIC.Core.RS306HBA.clockCorrectionTime = 0 -PIC.Core.RS306HBA.phaseCenter = [3829771.249,452761.702,5063243.181] -PIC.Core.RS306LBA.clockCorrectionTime = 0 -PIC.Core.RS306LBA.phaseCenter = [3829791.808,452829.848,5063221.590] -PIC.Core.RS306LBA.position = [3829791.808,452829.848,5063221.590] -PIC.Core.RS307HBA.clockCorrectionTime = 0 -PIC.Core.RS307HBA.phaseCenter = [3837964.520,449627.261,5057357.585] -PIC.Core.RS307LBA.clockCorrectionTime = 0 -PIC.Core.RS307LBA.phaseCenter = [3837940.949,449560.756,5057381.288] -PIC.Core.RS307LBA.position = [3837940.949,449560.756,5057381.288] -PIC.Core.RS406HBA.clockCorrectionTime = 0 -PIC.Core.RS406HBA.phaseCenter = [3818424.939,452020.269,5071817.644] -PIC.Core.RS406LBA.clockCorrectionTime = 0 -PIC.Core.RS406LBA.phaseCenter = [3818467.634,451974.601,5071790.597] -PIC.Core.RS406LBA.position = [3818467.634,451974.601,5071790.597] -PIC.Core.RS503HBA.clockCorrectionTime = 0 -PIC.Core.RS503HBA.phaseCenter = [3824138.566,459476.972,5066858.578] -PIC.Core.RS503LBA.clockCorrectionTime = 0 -PIC.Core.RS503LBA.phaseCenter = [3824090.452,459438.282,5066898.190] -PIC.Core.RS503LBA.position = [3824090.452,459438.282,5066898.190] -PIC.Core.RS508HBA.clockCorrectionTime = 0 -PIC.Core.RS508HBA.phaseCenter = [3797136.484,463114.447,5086651.286] -PIC.Core.RS508LBA.clockCorrectionTime = 0 -PIC.Core.RS508LBA.phaseCenter = [3797202.116,463087.509,5086605.037] -PIC.Core.RS508LBA.position = [3797202.116,463087.509,5086605.037] -PIC.Core.RS509HBA.clockCorrectionTime = 0 -PIC.Core.RS509HBA.phaseCenter = [3783537.525,450130.064,5097866.146] -PIC.Core.RS509LBA.clockCorrectionTime = 0 -PIC.Core.RS509LBA.phaseCenter = [3783579.131,450178.882,5097830.835] -PIC.Core.RS509LBA.position = [3783579.131,450178.882,5097830.835] -PIC.Core.S1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.S10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.S58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.S9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.SE607HBA.clockCorrectionTime = 0 -PIC.Core.SE607HBA.phaseCenter = [3370271.657,712125.881,5349991.165] -PIC.Core.SE607LBA.clockCorrectionTime = 0 -PIC.Core.SE607LBA.phaseCenter = [3370286.931,712053.871,5349991.459] -PIC.Core.Station.CS001LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS002LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS003LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS004LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS005LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS006LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS007LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS011LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS017LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS021LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS024LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS026LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS028LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS030LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS031LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS032LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS101LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS103LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS201LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS301LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS302LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS401LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.CS501LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS106LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS205LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS208LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS306LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS307LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS406LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS503LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS508LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.Station.RS509LBA.RSP.ports = [0.0.0.0:4346,0.0.0.0:4347,0.0.0.0:4348,0.0.0.0:4349] -PIC.Core.T1.phaseCenter = [3826615.56096,460986.585898,5064718.84237] -PIC.Core.T10.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T129.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T13.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T130.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T133.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T134.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T137.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T138.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T14.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T141.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T142.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T145.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T146.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T149.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T150.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T153.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T154.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T157.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T158.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T161.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T162.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T165.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T166.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T169.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T17.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T170.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T173.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T174.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T177.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T178.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T18.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T181.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T182.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T185.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T186.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T189.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T190.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T2.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T21.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T22.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T25.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T26.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T29.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T30.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T33.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T34.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T37.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T38.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T41.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T42.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T45.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T46.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T49.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T5.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T50.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T53.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T54.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T57.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.T58.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T6.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T61.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T62.phaseCenter = [3826815.56096,460986.585898,5064718.84237] -PIC.Core.T9.phaseCenter = [3826967.64713,460904.072585,5064612.8258] -PIC.Core.UK608HBA.clockCorrectionTime = 0 -PIC.Core.UK608HBA.phaseCenter = [4008461.941,-100376.609,4943716.874] -PIC.Core.UK608LBA.clockCorrectionTime = 0 -PIC.Core.UK608LBA.phaseCenter = [4008438.457,-100309.725,4943735.828] -_DPname = LOFAR_ObsSW_TempObs0054 -_parsetPrefix = CorrAppl.CorrProc. -_processName = CorrProc diff --git a/RTCP/Storage/test/tTBB_Writer-verify.py b/RTCP/Storage/test/tTBB_Writer-verify.py deleted file mode 100755 index fe154751e2b518d0503a774346ad547f8a40e4d3..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_Writer-verify.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python - -# Placeholder Python script for a DAL TBB validation tool. - -import sys -import DAL - -def main(): - if len(sys.argv) != 2: - print 'Usage: ', sys.argv[0], 'L12345_xxx_tbb.h5' - return 1 - - filename = sys.argv[0] - - f = DAL.TBB_File(filename) - - - print 'TBB file exists' - return 0 - -if __name__ == '__main__': - sys.exit(main()) - diff --git a/RTCP/Storage/test/tTBB_Writer.sh b/RTCP/Storage/test/tTBB_Writer.sh deleted file mode 100755 index 8b8025588fade4b803f5bdced7b6b0a6dd7040ae..0000000000000000000000000000000000000000 --- a/RTCP/Storage/test/tTBB_Writer.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# Test the TBB_Writer. -# Use named pipes (FIFOs) to test multi-threaded writes (not possible with single stream stdin) -# and to have automatic flow-control (unlike with udp-copy). -# -# The TBB validation tool from DAL does some checks on the HDF5 output file. (for the mo, done by a minimal script) -# - -touch tTBB_Writer.log - -nstreams = 6 # the nr of RSPs in NL stations - -parsetfilename = "tTBB_Writer-transient.parset" # does not belong to the test data, but good enough to test -declare -a rawinfilenames -outfilename = "unk.h5" -declare -a rawoutfilenames -for (( i = 0 ; i < $nstreams ; i++ )) ; -do - ${rawinfilenames[$i]} = "unkin$i.dat" - ${rawoutfilenames[$i]} = "unk$i.raw" - mknod tTBB_Writer_stream$i.pipe p 2>&1 >> tTBB_Writer.log - cat ${rawinfilenames[$i]} > tTBB_Writer_stream$i.pipe & -done - -./runctest.sh TBB_Writer --parsetfile=$parsetfilename --timeout=1 --keeprunning=0 - -# Ideally, we use h5check first to verify that the file is a proper hdf5 file, -# but h5check is a separate util and usually not installed, so check content straight away. - -#can use lofar_tbb_headerinfo.py for a first guess/test -./tTBB_Writer-verify.py $outfilename 2>&1 >> tTBB_Writer.log -STATUS = $? - -rm -f $outh5filename 2>&1 >> tTBB_Writer.log -for (( i = 0 ; i < $nstreams ; i++ )) ; -do - rm -f ${rawoutfilename[$i]} 2>&1 >> tTBB_Writer.log - rm tTBB_Writer_stream$i.pipe 2>&1 >> tTBB_Writer.log -done - -exit $STATUS - diff --git a/SubSystems/CMakeLists.txt b/SubSystems/CMakeLists.txt index 48b77a367a46f59fb5fc087f45ffcd89a7c17d44..717266adc42258acc412ff892fca6d56f7da6d15 100644 --- a/SubSystems/CMakeLists.txt +++ b/SubSystems/CMakeLists.txt @@ -5,7 +5,6 @@ lofar_add_package(LCU_MAC) lofar_add_package(MCU_MAC) lofar_add_package(CN_MAC) lofar_add_package(Online_Cobalt) -lofar_add_package(Online_Storage) lofar_add_package(Online_OutputProc) lofar_add_package(ST_MAC) lofar_add_package(Offline) diff --git a/SubSystems/Online_Cobalt/test/Beamformer/tCoherentStokes_3sec_2st_3sb.parset b/SubSystems/Online_Cobalt/test/Beamformer/tCoherentStokes_3sec_2st_3sb.parset index f05dc09eef43e8bfc96ec46c5f458f1a7bccee90..14bba7309fc758608b434403e31bd575de3d86a4 100644 --- a/SubSystems/Online_Cobalt/test/Beamformer/tCoherentStokes_3sec_2st_3sb.parset +++ b/SubSystems/Online_Cobalt/test/Beamformer/tCoherentStokes_3sec_2st_3sb.parset @@ -29,22 +29,11 @@ CorrAppl._hostname=bgstfen CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_IncoherentStokes.which=I OLAP.Correlator.integrationTime=1 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 -OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.flysEye=false +Cobalt.BeamFormer.coherentDedisperseChannels=false Observation.AnaBeam[0].angle1=5.0690771926813865 Observation.AnaBeam[0].angle2=0.38194688387907605 Observation.AnaBeam[0].directionType=J2000 @@ -52,10 +41,10 @@ Observation.AnaBeam[0].duration=300 Observation.AnaBeam[0].rank=1 Observation.AnaBeam[0].startTime= Observation.AnaBeam[0].target= -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=5.06907719268139 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.381946883879076 -Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=5.06907719268139 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.381946883879076 + + Observation.Beam[0].TiedArrayBeam[0].coherent=true Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0 @@ -208,22 +197,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye=false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -286,7 +275,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_ZERO Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/SubSystems/Online_Cobalt/test/Beamformer/tComplexVoltages_3sec_2st_3sb.parset b/SubSystems/Online_Cobalt/test/Beamformer/tComplexVoltages_3sec_2st_3sb.parset index 51279259937e6a151aab08dd7f0fd55546b01911..801f5ecc9f038193b834d77e95d740b439b844db 100644 --- a/SubSystems/Online_Cobalt/test/Beamformer/tComplexVoltages_3sec_2st_3sb.parset +++ b/SubSystems/Online_Cobalt/test/Beamformer/tComplexVoltages_3sec_2st_3sb.parset @@ -29,22 +29,11 @@ CorrAppl._hostname=bgstfen CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_IncoherentStokes.which=I OLAP.Correlator.integrationTime=1 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 -OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.flysEye=false +Cobalt.BeamFormer.coherentDedisperseChannels=false Observation.AnaBeam[0].angle1=5.0690771926813865 Observation.AnaBeam[0].angle2=0.38194688387907605 Observation.AnaBeam[0].directionType=J2000 @@ -54,10 +43,10 @@ Observation.AnaBeam[0].startTime= Observation.AnaBeam[0].target= # off-center TAB to test whether delays are actually applied -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=5.16907719268139 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.281946883879076 -Observation.Beam[0].TiedArrayBeam[0].angle1=0.1 -Observation.Beam[0].TiedArrayBeam[0].angle2=-0.1 +Observation.Beam[0].TiedArrayBeam[0].angle1=5.16907719268139 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.281946883879076 + + Observation.Beam[0].TiedArrayBeam[0].coherent=true Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 @@ -211,22 +200,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye=false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -289,7 +278,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_ZERO Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/SubSystems/Online_Cobalt/test/Beamformer/tFlysEye_3sec_2st_3sb.parset b/SubSystems/Online_Cobalt/test/Beamformer/tFlysEye_3sec_2st_3sb.parset index 6ff4c1ee2fb77ff6971c9833106366bae3e492f4..50e9c1d63b79aa405b048f30431c4d7b9ec03932 100644 --- a/SubSystems/Online_Cobalt/test/Beamformer/tFlysEye_3sec_2st_3sb.parset +++ b/SubSystems/Online_Cobalt/test/Beamformer/tFlysEye_3sec_2st_3sb.parset @@ -29,22 +29,11 @@ CorrAppl._hostname=bgstfen CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_IncoherentStokes.which=I OLAP.Correlator.integrationTime=1 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 -OLAP.PencilInfo.flysEye=true -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.flysEye=true +Cobalt.BeamFormer.coherentDedisperseChannels=false Observation.AnaBeam[0].angle1=5.0690771926813865 Observation.AnaBeam[0].angle2=0.38194688387907605 Observation.AnaBeam[0].directionType=J2000 @@ -52,10 +41,10 @@ Observation.AnaBeam[0].duration=300 Observation.AnaBeam[0].rank=1 Observation.AnaBeam[0].startTime= Observation.AnaBeam[0].target= -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=5.06907719268139 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.381946883879076 -Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=5.06907719268139 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.381946883879076 + + Observation.Beam[0].TiedArrayBeam[0].coherent=true Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0 @@ -208,22 +197,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye=false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -286,7 +275,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_ZERO Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/SubSystems/Online_Cobalt/test/Beamformer/tIncoherentStokes_3sec_2st_3sb.parset b/SubSystems/Online_Cobalt/test/Beamformer/tIncoherentStokes_3sec_2st_3sb.parset index 9edc231bd9f3d4de8b02cc63110d17de5f400a72..a8cc78f70dc34e1ac4e30d8427913d6000265b4a 100644 --- a/SubSystems/Online_Cobalt/test/Beamformer/tIncoherentStokes_3sec_2st_3sb.parset +++ b/SubSystems/Online_Cobalt/test/Beamformer/tIncoherentStokes_3sec_2st_3sb.parset @@ -29,22 +29,11 @@ CorrAppl._hostname=bgstfen CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -OLAP.CNProc_IncoherentStokes.which=I OLAP.Correlator.integrationTime=1 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 -OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.flysEye=false +Cobalt.BeamFormer.coherentDedisperseChannels=false Observation.AnaBeam[0].angle1=5.0690771926813865 Observation.AnaBeam[0].angle2=0.38194688387907605 Observation.AnaBeam[0].directionType=J2000 @@ -52,10 +41,10 @@ Observation.AnaBeam[0].duration=300 Observation.AnaBeam[0].rank=1 Observation.AnaBeam[0].startTime= Observation.AnaBeam[0].target= -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=5.06907719268139 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.381946883879076 -Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=5.06907719268139 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.381946883879076 + + Observation.Beam[0].TiedArrayBeam[0].coherent=false Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0 @@ -208,22 +197,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=0 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=16 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=0 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=16 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 -Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.flysEye=false +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -286,7 +275,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_ZERO Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=16 +Cobalt.Correlator.nrChannelsPerSubband=16 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_1sec_1st_5sb_noflagging.parset b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_1sec_1st_5sb_noflagging.parset index 1cef0ba047aa11a11c458be38b902f5dd4bb7b02..bdb8dc8b78e2bcc6cb4bab264c099cd4cfbd1198 100644 --- a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_1sec_1st_5sb_noflagging.parset +++ b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_1sec_1st_5sb_noflagging.parset @@ -1,32 +1,22 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 1 -OLAP.PPF = True -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.msWriter = Storage_main -OLAP.Storage.sshIdentityFile = -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.blockSize = 49152 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.IncoherentStokes.which = I +Cobalt.Correlator.nrBlocksPerIntegration = 1 +Cobalt.BeamFormer.flysEye = false +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 -OLAP.nrBitsPerSample = 8 +Observation.nrBitsPerSample = 8 OLAP.nrPsets = 64 -OLAP.realTime = false +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -67,7 +57,6 @@ Observation.Dataslots.DataslotInfo.DataslotList = [] Observation.Dataslots.DataslotInfo.RSPBoardList = [] Observation.Dataslots.RS106HBA.DataslotList = [0..4] Observation.Dataslots.RS106HBA.RSPBoardList = [5*0] -Observation.KSPType = surveys Observation.ObsID = 76966 Observation.ObserverName = unknown Observation.ProjectName = unknown @@ -77,18 +66,13 @@ Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.longBaselines = false Observation.nrAnaBeams = 1 Observation.nrBeamformers = 0 Observation.nrBeams = 1 Observation.nrPolarisations = 2 Observation.nrSlotsInFrame = 122 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 25 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation -Observation.receiverList = [] Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] Observation.rspSlotList = [5*0] @@ -96,17 +80,11 @@ Observation.sampleClock = 200 Observation.samplesPerSecond = 196608 Observation.startTime = '2012-11-21 12:47:01' Observation.stopTime = '2012-11-21 12:47:02' -Observation.strategy = default -Observation.subbandList = [24..28] -Observation.subbandWidth = 195.3125 -Observation.topologyID = PIC.Core.RS106HBA.clockCorrectionTime = 0 PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.position = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.RSP.ports = [file:/localhome/lofar/test_sets/3sec/rs106.udp] _DPname = LOFAR_ObsSW_TempObs0024 -_parsetPrefix = CorrAppl.CorrProc. -_processName = CorrProc Cobalt.Kernels.BeamFormerKernel.dumpOutput = false Cobalt.Kernels.BeamFormerTransposeKernel.dumpOutput = false Cobalt.Kernels.CoherentStokesKernel.dumpOutput = false @@ -114,4 +92,3 @@ Cobalt.Kernels.CorrelatorKernel.dumpOutput = false Cobalt.Kernels.DelayAndBandPassKernel.dumpOutput = false Cobalt.Kernels.FIR_FilterKernel.dumpOutput = false Cobalt.Kernels.IntToFloatKernel.dumpOutput = false -Cobalt.Tuning.finalMetaDataTimeout = 1 diff --git a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_1st_5sb.parset b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_1st_5sb.parset index b155bd9c37c6a42ad5c0355d14d52a848a2bb317..25d06f28a92bd3380847809b4d4cff920d329b9f 100644 --- a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_1st_5sb.parset +++ b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_1st_5sb.parset @@ -1,31 +1,20 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 1 -OLAP.PPF = True -OLAP.PencilInfo.flysEye = false -OLAP.PencilInfo.storageNodeList = [0,1] -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.msWriter = Storage_main -OLAP.Storage.sshIdentityFile = -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = lofarsys -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true -OLAP.dispersionMeasure = 0 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Cobalt.blockSize = 49152 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.IncoherentStokes.which = I +Cobalt.Correlator.nrBlocksPerIntegration = 1 +Cobalt.BeamFormer.flysEye = false +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -65,7 +54,6 @@ Observation.Dataslots.DataslotInfo.DataslotList = [] Observation.Dataslots.DataslotInfo.RSPBoardList = [] Observation.Dataslots.RS106HBA.DataslotList = [0..4] Observation.Dataslots.RS106HBA.RSPBoardList = [5*0] -Observation.KSPType = surveys Observation.ObsID = 76966 Observation.ObserverName = unknown Observation.ProjectName = unknown @@ -74,17 +62,10 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrAnaBeams = 1 -Observation.nrBeamformers = 0 Observation.nrBeams = 1 Observation.nrPolarisations = 2 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 25 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation -Observation.receiverList = [] Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] Observation.rspSlotList = [5*0] @@ -92,10 +73,6 @@ Observation.sampleClock = 200 Observation.samplesPerSecond = 196608 Observation.startTime = '2012-11-21 12:47:00' Observation.stopTime = '2012-11-21 12:47:03' -Observation.strategy = default -Observation.subbandList = [24..28] -Observation.subbandWidth = 195.3125 -Observation.topologyID = PIC.Core.RS106HBA.clockCorrectionTime = 0 PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.position = [3829205.598,469142.533,5062181.002] @@ -110,4 +87,3 @@ Cobalt.Kernels.CorrelatorKernel.dumpOutput = false Cobalt.Kernels.DelayAndBandPassKernel.dumpOutput = false Cobalt.Kernels.FIR_FilterKernel.dumpOutput = false Cobalt.Kernels.IntToFloatKernel.dumpOutput = false -Cobalt.Tuning.finalMetaDataTimeout = 1 diff --git a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_2st_5sb.parset b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_2st_5sb.parset index dd7726638c49dedf1b6e1ef68153b43e87073c6e..a709004eca1b89088e78a2a52eb5e438ada2fe0a 100644 --- a/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_2st_5sb.parset +++ b/SubSystems/Online_Cobalt/test/Correlator/tCorrelate_3sec_2st_5sb.parset @@ -1,30 +1,21 @@ -OLAP.CNProc.integrationSteps = 3072 -OLAP.CNProc_CoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_CoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_CoherentStokes.which = I -OLAP.CNProc_IncoherentStokes.channelsPerSubband = 16 -OLAP.CNProc_IncoherentStokes.subbandsPerFile = 512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor = 16 -OLAP.CNProc_IncoherentStokes.which = I -OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 1 -OLAP.PPF = True -OLAP.PencilInfo.flysEye = false -OLAP.Storage.AntennaFieldsDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.AntennaSetsConf = /data/home/lofarsys/production/lofar/etc/AntennaSets.conf -OLAP.Storage.HBADeltasDir = /data/home/lofarsys/production/lofar/etc/StaticMetaData -OLAP.Storage.msWriter = Storage_main -OLAP.Storage.sshIdentityFile = -OLAP.Storage.targetDirectory = /data -OLAP.Storage.userName = lofarsys -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.blockSize = 49152 +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.CoherentStokes.which = I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband = 16 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile = 512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor = 16 +Cobalt.BeamFormer.IncoherentStokes.which = I +Cobalt.Correlator.nrBlocksPerIntegration = 1 +Cobalt.BeamFormer.flysEye = false +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -68,27 +59,14 @@ Observation.KSPType = surveys Observation.ObsID = 76966 Observation.ObserverName = unknown Observation.ProjectName = unknown -Observation.VirtualInstrument.imageNodeList = [] -Observation.VirtualInstrument.minimalNrStations = 1 -Observation.VirtualInstrument.partitionList = [R00] -Observation.VirtualInstrument.stationSet = -Observation.VirtualInstrument.storageCapacity = 760 -Observation.VirtualInstrument.storageNodeList = [] Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelWidth = 762.939453125 -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrAnaBeams = 1 -Observation.nrBeamformers = 0 Observation.nrBeams = 1 Observation.nrPolarisations = 2 -Observation.nrSlotsInFrame = 122 -Observation.nrTBBSettings = 0 -Observation.preparePeriod = 25 -Observation.processSubtype = 'Beam Observation' -Observation.processType = Observation Observation.referencePhaseCenter = [3826577.066,461022.948,5064892.786] Observation.rspBoardList = [5*0] Observation.rspSlotList = [5*0] @@ -96,17 +74,11 @@ Observation.sampleClock = 200 Observation.samplesPerSecond = 196608 Observation.startTime = '2012-11-21 12:47:00' Observation.stopTime = '2012-11-21 12:47:03' -Observation.strategy = default -Observation.subbandList = [24..28] -Observation.subbandWidth = 195.3125 -Observation.topologyID = PIC.Core.RS106HBA.clockCorrectionTime = 0 PIC.Core.RS106HBA.phaseCenter = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.position = [3829205.598,469142.533,5062181.002] PIC.Core.RS106HBA.RSP.ports = [file:/localhome/lofar/test_sets/3sec/rs106.udp] _DPname = LOFAR_ObsSW_TempObs0024 -_parsetPrefix = CorrAppl.CorrProc. -_processName = CorrProc Observation.VirtualInstrument.stationList = [RS106,RS205] Observation.Dataslots.RS205HBA.DataslotList = [0..4] Observation.Dataslots.RS205HBA.RSPBoardList = [5*0] @@ -121,4 +93,3 @@ Cobalt.Kernels.CorrelatorKernel.dumpOutput = false Cobalt.Kernels.DelayAndBandPassKernel.dumpOutput = false Cobalt.Kernels.FIR_FilterKernel.dumpOutput = false Cobalt.Kernels.IntToFloatKernel.dumpOutput = false -Cobalt.Tuning.finalMetaDataTimeout = 1 diff --git a/SubSystems/Online_Cobalt/test/default.parset b/SubSystems/Online_Cobalt/test/default.parset index 652fc9ac1454fbde96c58e9bf926feff6ac3f4ed..74165f818ceb77b366f83aba606285955e5c69fc 100644 --- a/SubSystems/Online_Cobalt/test/default.parset +++ b/SubSystems/Online_Cobalt/test/default.parset @@ -170,8 +170,8 @@ Observation.Beam[0].tabRingSize=0 # TAB pointing (absolute). The relative pointings still end up in the metadata, # so the directionType must therefor match the directionType of the SAP. Observation.Beam[0].TiedArrayBeam[0].directionType=J2000 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle1=0.0 -Observation.Beam[0].TiedArrayBeam[0].absoluteAngle2=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle1=0.0 +Observation.Beam[0].TiedArrayBeam[0].angle2=0.0 # If >0, dedisperse the data for the given DM Observation.Beam[0].TiedArrayBeam[0].dispersionMeasure=0.0 diff --git a/SubSystems/Online_Cobalt/test/tMACfeedback.in_parset b/SubSystems/Online_Cobalt/test/tMACfeedback.in_parset index e7e56ccb7c3616e6c595a51e6d85bd9717287d3d..eb1ddf093297f77b0bdb1fa8d78a1074dc6ab3da 100644 --- a/SubSystems/Online_Cobalt/test/tMACfeedback.in_parset +++ b/SubSystems/Online_Cobalt/test/tMACfeedback.in_parset @@ -1,13 +1,13 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -45,7 +45,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrAnaBeams = 1 Observation.nrBeamformers = 0 Observation.nrBeams = 1 diff --git a/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_173014.param b/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_173014.param index 1a2e728f2a039b3d48bddb4a7ed30a3deaf5417f..d28af3d5dc1e35dbd9b3d80729cceb853ddfe466 100644 --- a/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_173014.param +++ b/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_173014.param @@ -27,22 +27,22 @@ CorrAppl._hostname=bgstfen CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] CorrAppl.procesOrder=[] CorrAppl.processes=["CorrProc"] -OLAP.CNProc_CoherentStokes.channelsPerSubband=64 -OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -OLAP.CNProc_CoherentStokes.timeIntegrationFactor=1 -OLAP.CNProc_CoherentStokes.which=I -OLAP.CNProc_IncoherentStokes.channelsPerSubband=64 -OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=1 -OLAP.CNProc_IncoherentStokes.which=I +Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=64 +Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=1 +Cobalt.BeamFormer.CoherentStokes.which=I +Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=64 +Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=1 +Cobalt.BeamFormer.IncoherentStokes.which=I OLAP.Correlator.integrationTime=2.01327 OLAP.Correlator.nrBlocksPerIntegration=1 OLAP.Correlator.nrChannelsPerSubband=1 OLAP.PencilInfo.flysEye=false -OLAP.coherentDedisperseChannels=false -OLAP.correctBandPass=true -OLAP.delayCompensation=true -OLAP.realTime=true +Cobalt.BeamFormer.coherentDedisperseChannels=false +Cobalt.correctBandPass=true +Cobalt.delayCompensation=true +Cobalt.realTime=true Observation.AnaBeam[0].angle1=3.714678791505112 Observation.AnaBeam[0].angle2=0.9111103547876606 Observation.AnaBeam[0].directionType=J2000 @@ -315,22 +315,22 @@ Observation.ObservationControl.OnlineControl.CorrAppl._hostname=bgstfen Observation.ObservationControl.OnlineControl.CorrAppl.extraInfo=["OLAP","PIC","Cobalt"] Observation.ObservationControl.OnlineControl.CorrAppl.procesOrder=[] Observation.ObservationControl.OnlineControl.CorrAppl.processes=["CorrProc"] -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.channelsPerSubband=64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.timeIntegrationFactor=1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_CoherentStokes.which=I -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.channelsPerSubband=64 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.subbandsPerFile=512 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.timeIntegrationFactor=1 -Observation.ObservationControl.OnlineControl.OLAP.CNProc_IncoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.nrChannelsPerSubband=64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.timeIntegrationFactor=1 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.CoherentStokes.which=I +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.nrChannelsPerSubband=64 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.subbandsPerFile=512 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.timeIntegrationFactor=1 +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.IncoherentStokes.which=I Observation.ObservationControl.OnlineControl.OLAP.Correlator.integrationTime=2.01327 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrBlocksPerIntegration=1 Observation.ObservationControl.OnlineControl.OLAP.Correlator.nrChannelsPerSubband=1 Observation.ObservationControl.OnlineControl.OLAP.PencilInfo.flysEye=false -Observation.ObservationControl.OnlineControl.OLAP.coherentDedisperseChannels=false -Observation.ObservationControl.OnlineControl.OLAP.correctBandPass=true -Observation.ObservationControl.OnlineControl.OLAP.delayCompensation=true -Observation.ObservationControl.OnlineControl.OLAP.realTime=true +Observation.ObservationControl.OnlineControl.Cobalt.BeamFormer.coherentDedisperseChannels=false +Observation.ObservationControl.OnlineControl.Cobalt.correctBandPass=true +Observation.ObservationControl.OnlineControl.Cobalt.delayCompensation=true +Observation.ObservationControl.OnlineControl.Cobalt.realTime=true Observation.ObservationControl.OnlineControl._hostname=CCU001 Observation.ObservationControl.OnlineControl.applOrder=["CorrAppl"] Observation.ObservationControl.OnlineControl.applications=["CorrAppl"] @@ -393,7 +393,7 @@ Observation.VirtualInstrument.stationSet=Custom Observation.antennaArray=HBA Observation.antennaSet=HBA_DUAL_INNER Observation.bandFilter=HBA_110_190 -Observation.channelsPerSubband=64 +Cobalt.Correlator.nrChannelsPerSubband=64 Observation.claimPeriod=25 Observation.clockMode=<<Clock200 Observation.nrAnaBeams=1 diff --git a/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_196344-CygAf009-225SAPS.cleaned.param b/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_196344-CygAf009-225SAPS.cleaned.param index be1cc2f1e72d83de386d2f4400bc1c0d8c4d8d31..da9ead2d6dd7b91df092ccf61fa6db98a218f716 100644 --- a/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_196344-CygAf009-225SAPS.cleaned.param +++ b/SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_196344-CygAf009-225SAPS.cleaned.param @@ -13,7 +13,7 @@ Observation.nrBitsPerSample = 16 Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 -Observation.channelsPerSubband = 64 +Cobalt.Correlator.nrChannelsPerSubband = 64 Observation.nrAnaBeams = 1 Observation.AnaBeam[0].angle1 = 5.23369 Observation.AnaBeam[0].angle2 = 0.710941 diff --git a/SubSystems/Online_Cobalt/test/tstartBGL.in_parset b/SubSystems/Online_Cobalt/test/tstartBGL.in_parset index 56226b1129ae0a9625b20efd017170b942939e95..7f55ab71d796f6698869f9d07b88f18157130c16 100644 --- a/SubSystems/Online_Cobalt/test/tstartBGL.in_parset +++ b/SubSystems/Online_Cobalt/test/tstartBGL.in_parset @@ -1,13 +1,13 @@ OLAP.CNProc.integrationSteps = 3072 OLAP.Correlator.integrationTime = 1 -OLAP.IONProc.integrationSteps = 8 -OLAP.coherentDedisperseChannels = false -OLAP.correctBandPass = true -OLAP.correctClocks = T -OLAP.delayCompensation = true +Cobalt.Correlator.nrBlocksPerIntegration = 8 +Cobalt.BeamFormer.coherentDedisperseChannels = false +Cobalt.correctBandPass = true +Cobalt.correctClocks = T +Cobalt.delayCompensation = true OLAP.dispersionMeasure = 0 -OLAP.nrBitsPerSample = 8 -OLAP.realTime = false +Observation.nrBitsPerSample = 8 +Cobalt.realTime = false Observation.AnaBeam[0].angle1 = 2.15374 Observation.AnaBeam[0].angle2 = 0.841549 Observation.AnaBeam[0].directionType = J2000 @@ -45,7 +45,7 @@ Observation.antennaArray = HBA Observation.antennaSet = HBA_DUAL Observation.bandFilter = HBA_110_190 Observation.beamList = [5*0] -Observation.channelsPerSubband = 16 +Cobalt.Correlator.nrChannelsPerSubband = 16 Observation.nrAnaBeams = 1 Observation.nrBeamformers = 0 Observation.nrBeams = 1 diff --git a/SubSystems/Online_Storage/CMakeLists.txt b/SubSystems/Online_Storage/CMakeLists.txt deleted file mode 100644 index c32ea05c3f888400ea52b0f32d1445ad41f2d681..0000000000000000000000000000000000000000 --- a/SubSystems/Online_Storage/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# $Id$ - -lofar_package(Online_Storage DEPENDS Storage MetaDataGatherer StaticMetaData) - diff --git a/lofar_config.h.cmake b/lofar_config.h.cmake index df20a130399d110d0185c8537725ebfef251ac21..4d2da086f799a1da69bfa0ebfa18856f34dbc453 100644 --- a/lofar_config.h.cmake +++ b/lofar_config.h.cmake @@ -90,9 +90,6 @@ /* Define if libbfd is available */ #cmakedefine HAVE_BFD 1 -/* Define if BG/L MPICH is installed */ -#cmakedefine HAVE_BGLMPICH 1 - /* Define if Blitz is installed */ #cmakedefine HAVE_BLITZ 1 @@ -141,9 +138,6 @@ /* Define if we have an MPI implementation installed */ #cmakedefine HAVE_MPI 1 -/* Define if MASS is installed */ -#cmakedefine HAVE_MASS 1 - /* Define if MPICH is installed */ #cmakedefine HAVE_MPICH 1