From 4275900a7b99b2e23f13df54ba24159960fc86b5 Mon Sep 17 00:00:00 2001 From: Binh-Minh Ribler Date: Mon, 6 Apr 2015 12:46:54 -0500 Subject: [svn-r26737] Purpose: Fix daily test failure Description: - In DataType::DataType(const PredType& pred_type), using DataType::copy will invoke DataType::close() unnecessarily, which will produce undefined behavior. Changed to call H5Tcopy directly, code reuse is not useful in this case. - Also, fixed CommonFG::childObjVersion to return expected value outside of an if/else block. Platforms tested: Linux/ppc64 (ostrich) Linux/64 (platypus) Linux/32 2.6 (jam) --- c++/src/H5CommonFG.cpp | 6 +++--- c++/src/H5CommonFG.h | 1 + c++/src/H5DataType.cpp | 15 ++++++++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp index 1547a5b..dbe26b4 100644 --- a/c++/src/H5CommonFG.cpp +++ b/c++/src/H5CommonFG.cpp @@ -1130,6 +1130,7 @@ H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_ unsigned CommonFG::childObjVersion(const char* objname) const { H5O_info_t objinfo; + unsigned version = 0; // Use C API to get information of the object herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT); @@ -1140,12 +1141,11 @@ unsigned CommonFG::childObjVersion(const char* objname) const // Return a valid version or throw an exception for invalid value else { - unsigned version = objinfo.hdr.version; + version = objinfo.hdr.version; if (version != H5O_VERSION_1 && version != H5O_VERSION_2) throwException("childObjVersion", "Invalid version for object"); - else - return(version); } + return(version); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h index b726e52..d36d78c 100644 --- a/c++/src/H5CommonFG.h +++ b/c++/src/H5CommonFG.h @@ -21,6 +21,7 @@ namespace H5 { #endif +// Class forwarding class Group; class H5File; class ArrayType; diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index a227843..cdcd1e6 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -106,7 +106,7 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object() // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object() { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference"); } @@ -148,13 +148,18 @@ DataType::DataType(const DataType& original) : H5Object() ///\exception H5::DataTypeIException // Programmer Binh-Minh Ribler - 2000 // Description -// This is so that when a predefined type is passed in, a -// copy of it is made, not just a duplicate of the HDF5 id. +// Copying the type so that when a predefined type is passed in, +// a copy of it is made, not just a duplicate of the HDF5 id. +// Note: calling DataType::copy will invoke DataType::close() +// unnecessarily and will produce undefined behavior. +// -BMR, Apr 2015 //-------------------------------------------------------------------------- DataType::DataType(const PredType& pred_type) : H5Object() { - // use DataType::copy to make a copy of this predefined type - copy(pred_type); + // call C routine to copy the datatype + id = H5Tcopy( pred_type.getId() ); + if (id < 0) + throw DataTypeIException("DataType constructor", "H5Tcopy failed"); } //-------------------------------------------------------------------------- -- cgit v0.12 From 6fa9f61ae5c41fa94f4ad5029a3c241b45463b36 Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Tue, 7 Apr 2015 10:50:40 -0500 Subject: [svn-r26746] install_parallel updates. --- release_docs/INSTALL_parallel | 119 +----------------------------------------- 1 file changed, 1 insertion(+), 118 deletions(-) diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index 2624b3b..c38c3fc 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -107,89 +107,9 @@ This allows for >2GB sized files on Linux systems and is only available with Linux kernels 2.4 and greater. -2.4. Red Storm (Cray XT3) (for v1.8 and later) +2.4. Hopper (Cray XE6) (for v1.8 and later) ------------------------- -Both serial and parallel HDF5 are supported in Red Storm. -2.4.1 Building serial HDF5 for Red Storm ------------------------------------------- -The following steps are for building the serial HDF5 for the Red Storm -compute nodes. They would probably work for other Cray XT3 systems but have -not been verified. - -# Assume you already have a copy of HDF5 source code in directory `hdf5' and -# want to install the binary in directory `/project/hdf5/hdf5'. - -$ cd hdf5 -$ bin/yodconfigure configure -$ env RUNSERIAL="yod -sz 1" \ - CC=cc FC=ftn CXX=CC \ - ./configure --prefix=/project/hdf5/hdf5 -$ make -$ make check - -# if all is well, install the binary. -$ make install - -2.4.2 Building parallel HDF5 for Red Storm ------------------------------------------- -The following steps are for building the Parallel HDF5 for the Red Storm -compute nodes. They would probably work for other Cray XT3 systems but have -not been verified. - -# Assume you already have a copy of HDF5 source code in directory `hdf5' and -# want to install the binary in directory `/project/hdf5/phdf5'. You also -# have done the proper setup to have mpicc and mpif90 as the compiler commands. - -$ cd hdf5 -$ bin/yodconfigure configure -$ env RUNSERIAL="yod -sz 1" RUNPARALLEL="yod -sz 3" \ - CC=cc FC=ftn \ - ./configure --enable-parallel --prefix=/project/hdf5/phdf5 -$ make -$ make check - -# if all is well, install the binary. -$ make install - -2.4.3 Red Storm known problems ------------------------------- -For Red Storm, a Cray XT3 system, the yod command sometimes gives the -message, "yod allocation delayed for node recovery". This interferes with -test suites that do not expect seeing this message. To bypass this problem, -I launch the executables with a command shell script called "myyod" which -consists of the following lines. (You should set $RUNSERIAL and $RUNPARALLEL -to use myyod instead of yod.) -==== myyod ======= -#!/bin/sh -# sleep 2 seconds to allow time for the node recovery else it pops the -# message, -# yod allocation delayed for node recovery -sleep 2 -yod $* -==== end of myyod ======= - -For Red Storm, a Cray XT3 system, the tools/h5ls/testh5ls.sh will fail on -the test "Testing h5ls -w80 -r -g tgroup.h5" fails. This test is -expected to fail and exit with a non-zero code but the yod command does -not propagate the exit code of the executables. Yod always returns 0 if it -can launch the executable. The test suite shell expects a non-zero for -this particular test, therefore it concludes the test has failed when it -receives 0 from yod. To bypass this problem for now, change the following -lines in the tools/h5ls/testh5ls.sh. -======== Original ========= -# The following combination of arguments is expected to return an error message -# and return value 1 -TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 -======== Skip the test ========= -echo SKIP TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5 -======== end of bypass ======== - -2.5. Hopper (Cray XE6) (for v1.8 and later) -------------------------- - -2.5.1 Building HDF5 for Hopper ------------------------------------------- The following steps are for building HDF5 for the Hopper compute nodes. They would probably work for other Cray systems but have not been verified. @@ -226,43 +146,6 @@ The build will be in build-hdf5/hdf5/ (or whatever you specify in --prefix). To compile other HDF5 applications use the wrappers created by the build (build-hdf5/hdf5/bin/h5pcc or h5fc) -2.5.2 Hopper known issues ------------------------------- -Issue 1: -Sometimes when building the library with make, you might get this problem: - -LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | \ -sed -e 's/-L/:/g' -e 's/ -//g'`" \ -./H5make_libsettings > H5lib_settings.c -|| \ -(test $HDF5_Make_Ignore && echo "*** Error ignored") -|| \ -(rm -f H5lib_settings.c ; exit 1) -/bin/sh: line 4: 9644 Segmentation fault -LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | sed -e 's/-L/:/g' -e 's/ -//g'`" ./H5make_libsettings > H5lib_settings.c - -If that happens, you are probable running with make -j . In that -case, you need to cleanup everything and start again as detailed above -but use serial make (do not use -j ). - -Issue 2: -* When building using the Cray compilers on Cray machines, HDF5 - configure mistakenly thinks the compiler is an intel compiler and - sets the -std=c99 flag which breaks configure on Cray. To build HDF5 - properly on a Cray machine, please consult with the instructions in - INSTALL_parallel for building on Hopper. - (MSC - 2013/04/26 - HDFFV-8429) - -Issue 3: -* On hopper, the build failed when RUNSERIAL and RUNPARALLEL are set - to aprun -np X, because the H5lib_settings.c file was not generated - properly. Not setting those environment variables works, because - configure was able to automatically detect that it's a Cray system - and used the proper launch commands when necessary. - (MSC - 2012/04/18) - 3. Detail explanation --------------------- -- cgit v0.12 From 5cc53e3ba2ac96344c3f4471d3a7e93a72056bcf Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Tue, 7 Apr 2015 13:10:21 -0500 Subject: [svn-r26750] HDFFV-8667: h5repack crashes on enumerated 8-bit type nested in compound type. Added the testing to h5repack where it belongs. Undo the tests added to h5dump. Tested: h5committested plus tested in jam by hand. --- MANIFEST | 5 +- tools/h5dump/CMakeTests.cmake | 3 - tools/h5dump/testh5dump.sh.in | 3 - tools/h5repack/h5repack.sh.in | 8 + tools/h5repack/testfiles/README | 5 + .../testfiles/h5repack_nested_8bit_enum.h5 | Bin 0 -> 273992 bytes .../h5repack_nested_8bit_enum_deflated.h5 | Bin 0 -> 120630 bytes tools/testfiles/README | 4 - tools/testfiles/tcompound_enum.ddl | 25749 ------------------- tools/testfiles/tcompound_enum.h5 | Bin 120630 -> 0 bytes 10 files changed, 16 insertions(+), 25761 deletions(-) create mode 100644 tools/h5repack/testfiles/README create mode 100644 tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 create mode 100644 tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 delete mode 100644 tools/testfiles/README delete mode 100644 tools/testfiles/tcompound_enum.ddl delete mode 100644 tools/testfiles/tcompound_enum.h5 diff --git a/MANIFEST b/MANIFEST index 223cf60..f3e3c32 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1469,8 +1469,6 @@ ./tools/testfiles/tcompound.h5 ./tools/testfiles/tcompound2.h5 ./tools/testfiles/tcompound_complex.h5 -./tools/testfiles/tcompound_enum.ddl -./tools/testfiles/tcompound_enum.h5 ./tools/testfiles/tdatareg.h5 ./tools/testfiles/tdatareg.ddl ./tools/testfiles/tdataregR.ddl @@ -2128,6 +2126,7 @@ ./tools/h5diff/testfiles/tmpSingleSiteBethe.output.h5 #test files for h5repack +./tools/h5repack/testfiles/README ./tools/h5repack/testfiles/h5repack_attr.h5 ./tools/h5repack/testfiles/h5repack_attr_refs.h5 ./tools/h5repack/testfiles/h5repack_deflate.h5 @@ -2145,6 +2144,8 @@ ./tools/h5repack/testfiles/h5repack_layout3.h5 ./tools/h5repack/testfiles/h5repack_layout.UD.h5 ./tools/h5repack/testfiles/h5repack_named_dtypes.h5 +./tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 +./tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 ./tools/h5repack/testfiles/h5repack_nbit.h5 ./tools/h5repack/testfiles/h5repack_objs.h5 ./tools/h5repack/testfiles/h5repack_refs.h5 diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake index 3565b0f..00ec760 100644 --- a/tools/h5dump/CMakeTests.cmake +++ b/tools/h5dump/CMakeTests.cmake @@ -66,7 +66,6 @@ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcomp-3.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcomp-4.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompact.ddl - ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_enum.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcontents.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tcontiguos.ddl ${HDF5_TOOLS_SRC_DIR}/testfiles/tdatareg.ddl @@ -216,7 +215,6 @@ ${HDF5_TOOLS_SRC_DIR}/testfiles/tcmpdintsize.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_complex.h5 - ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound_enum.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tdatareg.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tdset.h5 ${HDF5_TOOLS_SRC_DIR}/testfiles/tempty.h5 @@ -1159,7 +1157,6 @@ #test for the nested compound type ADD_H5_TEST (tnestcomp-1 0 --enable-error-stack tnestedcomp.h5) ADD_H5_TEST (tnestedcmpddt 0 --enable-error-stack tnestedcmpddt.h5) - #ADD_H5_TEST (tcompound_enum 0 --enable-error-stack tcompound_enum.h5) # test for options ADD_H5ERR_MASK_TEST (tall-1 0 --enable-error-stack tall.h5) diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 2fc09da..95f8091 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -104,7 +104,6 @@ $SRC_H5DUMP_TESTFILES/tcmpdattrintsize.h5 $SRC_H5DUMP_TESTFILES/tcmpdintsize.h5 $SRC_H5DUMP_TESTFILES/tcompound.h5 $SRC_H5DUMP_TESTFILES/tcompound_complex.h5 -$SRC_H5DUMP_TESTFILES/tcompound_enum.h5 $SRC_H5DUMP_TESTFILES/tdatareg.h5 $SRC_H5DUMP_TESTFILES/tdset.h5 $SRC_H5DUMP_TESTFILES/tempty.h5 @@ -228,7 +227,6 @@ $SRC_H5DUMP_TESTFILES/tcomp-1.ddl $SRC_H5DUMP_TESTFILES/tcomp-2.ddl $SRC_H5DUMP_TESTFILES/tcomp-3.ddl $SRC_H5DUMP_TESTFILES/tcomp-4.ddl -$SRC_H5DUMP_TESTFILES/tcompound_enum.ddl $SRC_H5DUMP_TESTFILES/tcompact.ddl $SRC_H5DUMP_TESTFILES/tcontents.ddl $SRC_H5DUMP_TESTFILES/tcontiguos.ddl @@ -1031,7 +1029,6 @@ TOOLTEST tcomp-4.ddl --enable-error-stack tcompound_complex.h5 #test for the nested compound type TOOLTEST tnestcomp-1.ddl --enable-error-stack tnestedcomp.h5 TOOLTEST tnestedcmpddt.ddl --enable-error-stack tnestedcmpddt.h5 -TOOLTEST ignorecase tcompound_enum.ddl --enable-error-stack tcompound_enum.h5 # test for options TOOLTEST4 tall-1.ddl --enable-error-stack tall.h5 diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in index e3bb939..4a32491 100644 --- a/tools/h5repack/h5repack.sh.in +++ b/tools/h5repack/h5repack.sh.in @@ -93,6 +93,8 @@ $SRC_H5REPACK_TESTFILES/h5repack_layouto.h5 $SRC_H5REPACK_TESTFILES/h5repack_layout2.h5 $SRC_H5REPACK_TESTFILES/h5repack_layout3.h5 $SRC_H5REPACK_TESTFILES/h5repack_named_dtypes.h5 +$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum.h5 +$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum_deflated.h5 $SRC_H5REPACK_TESTFILES/h5repack_nbit.h5 $SRC_H5REPACK_TESTFILES/h5repack_objs.h5 $SRC_H5REPACK_TESTFILES/h5repack_refs.h5 @@ -701,6 +703,12 @@ TOOLTEST hlink h5repack_hlink.h5 TOOLTEST layout h5repack_layout.h5 TOOLTEST early h5repack_early.h5 +# nested 8bit enum in both deflated and non-deflated datafiles +if [ $USE_FILTER_DEFLATE != "yes" ]; then +TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum.h5 +else +TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum_deflated.h5 +fi # use h5repack_layout.h5 to write some filters (this file has no filters) diff --git a/tools/h5repack/testfiles/README b/tools/h5repack/testfiles/README new file mode 100644 index 0000000..4096dee --- /dev/null +++ b/tools/h5repack/testfiles/README @@ -0,0 +1,5 @@ +h5repack_nested_8bit_enum_deflated.h5: +h5repack_nested_8bit_enum.h5: + enuberated 8bit type nested in compount type. Original file provided + by a user (HDFFV-8667) as a test file. Used h5copy to extract only the + Compound type dataset. The non-deflated version is produced by h5repack. diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 new file mode 100644 index 0000000..f1bd8e9 Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 differ diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 new file mode 100644 index 0000000..2e66da2 Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 differ diff --git a/tools/testfiles/README b/tools/testfiles/README deleted file mode 100644 index 65d807f..0000000 --- a/tools/testfiles/README +++ /dev/null @@ -1,4 +0,0 @@ -tcompound_enum.h5 - enuberated 8bit type nested in compount type. Original file provided - by a user (HDFFV-8667) as a test file. Used h5copy to extract only the - Compound type dataset. diff --git a/tools/testfiles/tcompound_enum.ddl b/tools/testfiles/tcompound_enum.ddl deleted file mode 100644 index 2088c33..0000000 --- a/tools/testfiles/tcompound_enum.ddl +++ /dev/null @@ -1,25749 +0,0 @@ -HDF5 "tcompound_enum.h5" { -GROUP "/" { - DATATYPE "#117838" H5T_COMPOUND { - H5T_STD_U32LE "evaluation_number"; - H5T_ARRAY { [12] H5T_IEEE_F64LE } "Xest"; - H5T_IEEE_F64LE "tcpa_sec"; - H5T_IEEE_F64LE "dcpa_m"; - H5T_IEEE_F64LE "range_m"; - H5T_IEEE_F64LE "range_var_m2"; - H5T_IEEE_F64LE "range_dot_mps"; - H5T_IEEE_F64LE "range_dot_var_m2s2"; - H5T_IEEE_F64LE "dt"; - H5T_ARRAY { [3] H5T_IEEE_F64LE } "inertial_ownship_position"; - H5T_ARRAY { [3] H5T_IEEE_F64LE } "inertial_ownship_velocity"; - H5T_ARRAY { [2] H5T_IEEE_F64LE } "bearingAnglesBodyCue"; - H5T_ARRAY { [4] H5T_IEEE_F64LE } "bearingAnglesInertial"; - H5T_ARRAY { [4] H5T_STD_I32LE } "roiEndpoints"; - H5T_ARRAY { [4] H5T_STD_I32LE } "endpoints"; - H5T_ARRAY { [4] H5T_IEEE_F64LE } "ideal_endpoints"; - H5T_ARRAY { [2] H5T_IEEE_F64LE } "delta_angle_tolerance"; - H5T_ARRAY { [2] H5T_STD_I32LE } "cuePixel"; - H5T_ENUM { - 8-bit unsigned integer; - "ok" 0; - "failed_not_found" 1; - "failed_distance_check" 2; - "failed_border_proximity_check" 3; - "failed_large_blob_suppression" 4; - "invalid" 5; - } "silhouette_result_info"; - H5T_STD_U16LE "vision_threshold"; - H5T_STD_U32LE "silhouetteArea"; - 8-bit unsigned integer "sensorId"; - H5T_STD_U16LE "integrity_votes"; - 8-bit unsigned integer "new_track"; - 8-bit unsigned integer "camera_available"; - 8-bit unsigned integer "roi_in_camera"; - 8-bit unsigned integer "roi_overlaps_osd"; - 8-bit unsigned integer "use_camera"; - 8-bit unsigned integer "endpoints_found"; - 8-bit unsigned integer "integrity_pass"; - 8-bit unsigned integer "good_measurement"; - 8-bit unsigned integer "data_association_pass"; - 8-bit unsigned integer "filter_valid"; - 8-bit unsigned integer "filter_flag_initialize"; - 8-bit unsigned integer "filter_flag_update"; - 8-bit unsigned integer "suppress"; - 8-bit unsigned integer "has_silhouette"; - 8-bit unsigned integer "classification"; - } - GROUP "tracks" { - GROUP "1" { - ATTRIBUTE "key" { - DATATYPE H5T_STD_U32LE - DATASPACE SCALAR - DATA { - (0): 1 - } - } - DATASET "trace" { - DATATYPE "/#117838" - DATASPACE SIMPLE { ( 642 ) / ( H5S_UNLIMITED ) } - DATA { - (0): { - 233, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 68249.8, - [ 0, 0, -0 ], - [ 7.6333, 74.5514, -1.93846 ], - [ 0.0163928, 0.00646356 ], - [ inf, inf, inf, inf ], - [ 1001, 779, 1120, 898 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 839 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (1): { - 234, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 0.380573, 0.292033, -0.0966965 ], - [ 7.64372, 74.5441, -1.93269 ], - [ 0.0164014, 0.00645606 ], - [ inf, inf, inf, inf ], - [ 1001, 779, 1120, 898 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 839 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (2): { - 235, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 0.74104, 0.568638, 0.0164649 ], - [ 7.65361, 74.5367, -1.9282 ], - [ 0.0164048, 0.00644608 ], - [ inf, inf, inf, inf ], - [ 1000, 780, 1119, 899 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1060, 840 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (3): { - 236, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 1.07982, 0.828598, 0.351905 ], - [ 7.66292, 74.5292, -1.92505 ], - [ 0.0164132, 0.00644095 ], - [ inf, inf, inf, inf ], - [ 999, 780, 1118, 899 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 840 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (4): { - 237, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 1.51313, 1.1611, 0.561197 ], - [ 7.67612, 74.5198, -1.91584 ], - [ 0.0164162, 0.00643223 ], - [ inf, inf, inf, inf ], - [ 999, 781, 1118, 900 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 841 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (5): { - 238, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 2.18117, 1.67372, 0.457232 ], - [ 7.69896, 74.506, -1.8916 ], - [ 0.0164243, 0.00642145 ], - [ inf, inf, inf, inf ], - [ 998, 781, 1117, 900 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 841 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (6): { - 239, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 2.71105, 2.08032, 0.358723 ], - [ 7.71449, 74.4947, -1.87617 ], - [ 0.0164275, 0.00641002 ], - [ inf, inf, inf, inf ], - [ 997, 782, 1116, 901 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1057, 842 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (7): { - 240, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 3.08828, 2.36979, 0.266261 ], - [ 7.72195, 74.4862, -1.87048 ], - [ 0.0164356, 0.00639804 ], - [ inf, inf, inf, inf ], - [ 996, 782, 1115, 901 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 842 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (8): { - 241, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 3.43623, 2.63679, 0.182006 ], - [ 7.72946, 74.479, -1.86549 ], - [ 0.0164393, 0.00639229 ], - [ inf, inf, inf, inf ], - [ 995, 783, 1114, 902 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 843 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (9): { - 242, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 3.74884, 2.87667, 0.107664 ], - [ 7.73704, 74.4733, -1.86134 ], - [ 0.0164477, 0.0063834 ], - [ inf, inf, inf, inf ], - [ 994, 783, 1113, 902 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 843 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (10): { - 243, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049855, - [ 4.06151, 3.1166, 0.0333097 ], - [ 7.74462, 74.4676, -1.85719 ], - [ 0.0164518, 0.00637682 ], - [ inf, inf, inf, inf ], - [ 994, 784, 1113, 903 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 844 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (11): { - 244, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 4.56167, 3.5004, -0.0876864 ], - [ 7.75663, 74.4585, -1.84763 ], - [ 0.0164592, 0.00635073 ], - [ inf, inf, inf, inf ], - [ 992, 784, 1111, 903 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 844 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (12): { - 245, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 5.00459, 3.84028, -0.194631 ], - [ 7.76723, 74.4509, -1.83947 ], - [ 0.0164699, 0.00633782 ], - [ inf, inf, inf, inf ], - [ 990, 785, 1109, 904 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 845 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (13): { - 246, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 5.3664, 4.11791, -0.281619 ], - [ 7.77584, 74.4451, -1.83334 ], - [ 0.0164747, 0.00632545 ], - [ inf, inf, inf, inf ], - [ 989, 786, 1108, 905 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 846 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (14): { - 247, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049819, - [ 5.74824, 4.41091, -0.37157 ], - [ 7.78391, 74.4388, -1.82674 ], - [ 0.0164839, 0.0063135 ], - [ inf, inf, inf, inf ], - [ 988, 786, 1107, 905 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1048, 846 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (15): { - 248, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 6.16964, 4.73427, -0.467459 ], - [ 7.79096, 74.4317, -1.81925 ], - [ 0.0164947, 0.00630161 ], - [ inf, inf, inf, inf ], - [ 987, 787, 1106, 906 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 847 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (16): { - 249, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 6.57308, 5.04385, -0.560864 ], - [ 7.79928, 74.4246, -1.8127 ], - [ 0.0165066, 0.00628951 ], - [ inf, inf, inf, inf ], - [ 986, 788, 1105, 907 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1046, 848 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (17): { - 250, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 6.95352, 5.33578, -0.651055 ], - [ 7.80919, 74.4174, -1.80733 ], - [ 0.0165117, 0.00627785 ], - [ inf, inf, inf, inf ], - [ 985, 789, 1104, 908 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1045, 849 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (18): { - 251, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049848, - [ 7.3382, 5.63096, -0.740978 ], - [ 7.81721, 74.4101, -1.8005 ], - [ 0.016521, 0.00626622 ], - [ inf, inf, inf, inf ], - [ 984, 790, 1103, 909 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 850 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (19): { - 252, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 7.72817, 5.93021, -0.830505 ], - [ 7.82278, 74.4029, -1.79176 ], - [ 0.0165321, 0.00625484 ], - [ inf, inf, inf, inf ], - [ 983, 790, 1102, 909 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1043, 850 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (20): { - 253, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 8.11804, 6.22937, -0.919652 ], - [ 7.82774, 74.3965, -1.78438 ], - [ 0.016544, 0.00624364 ], - [ inf, inf, inf, inf ], - [ 982, 791, 1101, 910 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1042, 851 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (21): { - 254, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 8.50796, 6.52858, -1.00834 ], - [ 7.8319, 74.3913, -1.7788 ], - [ 0.0165563, 0.00623212 ], - [ inf, inf, inf, inf ], - [ 981, 792, 1100, 911 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1041, 852 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (22): { - 255, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049875, - [ 8.88755, 6.81985, -0.985304 ], - [ 7.83646, 74.3865, -1.77352 ], - [ 0.0165684, 0.00622056 ], - [ inf, inf, inf, inf ], - [ 980, 794, 1099, 913 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1040, 854 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (23): { - 256, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04975, - [ 9.25184, 7.0994, -0.810944 ], - [ 7.84157, 74.3822, -1.76869 ], - [ 0.0165808, 0.00620895 ], - [ inf, inf, inf, inf ], - [ 979, 795, 1098, 914 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1039, 855 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (24): { - 257, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 9.66442, 7.41598, -0.698033 ], - [ 7.84777, 74.3771, -1.7602 ], - [ 0.0165932, 0.00619758 ], - [ inf, inf, inf, inf ], - [ 979, 796, 1098, 915 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1039, 856 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (25): { - 258, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049923, - [ 10.2385, 7.85649, -0.793665 ], - [ 7.85764, 74.3693, -1.73936 ], - [ 0.0166057, 0.00618616 ], - [ inf, inf, inf, inf ], - [ 978, 797, 1097, 916 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1038, 857 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (26): { - 259, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 10.7352, 8.23765, -0.88489 ], - [ 7.86354, 74.3628, -1.72409 ], - [ 0.0166176, 0.00616838 ], - [ inf, inf, inf, inf ], - [ 976, 798, 1095, 917 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1036, 858 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (27): { - 260, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 11.1223, 8.53471, -0.970009 ], - [ 7.86378, 74.3584, -1.71676 ], - [ 0.0166297, 0.00615353 ], - [ inf, inf, inf, inf ], - [ 975, 799, 1094, 918 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1035, 859 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (28): { - 261, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049884, - [ 11.4805, 8.80952, -1.04852 ], - [ 7.86469, 74.3548, -1.71013 ], - [ 0.0166416, 0.00614026 ], - [ inf, inf, inf, inf ], - [ 974, 800, 1093, 919 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1034, 860 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (29): { - 262, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049805, - [ 11.7923, 9.04884, -1.1165 ], - [ 7.86664, 74.3523, -1.70462 ], - [ 0.0166532, 0.00612836 ], - [ inf, inf, inf, inf ], - [ 973, 801, 1092, 920 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 861 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (30): { - 263, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049868, - [ 12.1046, 9.28846, -1.18456 ], - [ 7.86859, 74.3497, -1.69911 ], - [ 0.0166628, 0.00612747 ], - [ inf, inf, inf, inf ], - [ 973, 801, 1092, 920 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 861 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (31): { - 264, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049805, - [ 12.6157, 9.68061, -1.29288 ], - [ 7.86836, 74.3432, -1.69204 ], - [ 0.0166862, 0.00610271 ], - [ inf, inf, inf, inf ], - [ 970, 803, 1089, 922 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 863 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (32): { - 265, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04979, - [ 13.0905, 10.045, -1.39461 ], - [ 7.86705, 74.338, -1.68474 ], - [ 0.0167002, 0.00609124 ], - [ inf, inf, inf, inf ], - [ 969, 804, 1088, 923 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 864 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (33): { - 266, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049925, - [ 13.4712, 10.3371, -1.47843 ], - [ 7.8645, 74.3355, -1.67736 ], - [ 0.0167131, 0.00607948 ], - [ inf, inf, inf, inf ], - [ 968, 806, 1087, 925 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 866 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (34): { - 267, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 13.8586, 10.6344, -1.56181 ], - [ 7.86184, 74.3333, -1.6695 ], - [ 0.0167256, 0.00606786 ], - [ inf, inf, inf, inf ], - [ 968, 807, 1087, 926 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 867 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (35): { - 268, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 14.2579, 10.9408, -1.64477 ], - [ 7.85899, 74.3317, -1.66082 ], - [ 0.0167377, 0.00605624 ], - [ inf, inf, inf, inf ], - [ 967, 808, 1086, 927 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 868 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (36): { - 269, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 14.6535, 11.2443, -1.72741 ], - [ 7.85735, 74.3289, -1.65279 ], - [ 0.01675, 0.00604461 ], - [ inf, inf, inf, inf ], - [ 966, 809, 1085, 928 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1026, 869 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (37): { - 270, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04989, - [ 15.0434, 11.5436, -1.80962 ], - [ 7.8577, 74.3245, -1.64582 ], - [ 0.0167623, 0.00603332 ], - [ inf, inf, inf, inf ], - [ 965, 810, 1084, 929 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 870 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (38): { - 271, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049738, - [ 15.4324, 11.842, -1.89131 ], - [ 7.85626, 74.3213, -1.63746 ], - [ 0.0167747, 0.0060286 ], - [ inf, inf, inf, inf ], - [ 964, 811, 1083, 930 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 871 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (39): { - 272, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049933, - [ 15.823, 12.1418, -1.97287 ], - [ 7.85179, 74.3202, -1.62667 ], - [ 0.0167868, 0.00602027 ], - [ inf, inf, inf, inf ], - [ 964, 812, 1083, 931 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 872 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (40): { - 273, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049808, - [ 16.2127, 12.4408, -2.05392 ], - [ 7.84864, 74.3188, -1.61872 ], - [ 0.016799, 0.00601687 ], - [ inf, inf, inf, inf ], - [ 963, 813, 1082, 932 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 873 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (41): { - 274, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 16.6028, 12.7401, -2.13454 ], - [ 7.84776, 74.3168, -1.61562 ], - [ 0.016818, 0.00600916 ], - [ inf, inf, inf, inf ], - [ 963, 814, 1082, 933 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 874 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (42): { - 275, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 16.9837, 13.0324, -2.19452 ], - [ 7.84629, 74.3144, -1.61114 ], - [ 0.0168338, 0.00600613 ], - [ inf, inf, inf, inf ], - [ 962, 815, 1081, 934 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 875 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (43): { - 276, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 17.349, 13.3127, -2.21818 ], - [ 7.84379, 74.3113, -1.60425 ], - [ 0.0168481, 0.00600501 ], - [ inf, inf, inf, inf ], - [ 962, 816, 1081, 935 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 876 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (44): { - 277, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 17.7234, 13.6, -2.25269 ], - [ 7.8406, 74.3085, -1.59788 ], - [ 0.0168612, 0.00599853 ], - [ inf, inf, inf, inf ], - [ 962, 818, 1081, 937 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 878 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (45): { - 278, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 18.1427, 13.9217, -2.34026 ], - [ 7.83405, 74.3074, -1.59407 ], - [ 0.0168742, 0.00599571 ], - [ inf, inf, inf, inf ], - [ 962, 819, 1081, 938 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 879 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (46): { - 279, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 18.5508, 14.2349, -2.42467 ], - [ 7.82846, 74.3057, -1.59013 ], - [ 0.016887, 0.00599455 ], - [ inf, inf, inf, inf ], - [ 962, 820, 1081, 939 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 880 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (47): { - 280, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049872, - [ 18.9384, 14.5324, -2.50321 ], - [ 7.82467, 74.3027, -1.58594 ], - [ 0.0168996, 0.0059942 ], - [ inf, inf, inf, inf ], - [ 962, 821, 1081, 940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 881 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (48): { - 281, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 19.301, 14.8106, -2.57656 ], - [ 7.82101, 74.3004, -1.5811 ], - [ 0.0169122, 0.00599409 ], - [ inf, inf, inf, inf ], - [ 962, 822, 1081, 941 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 882 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (49): { - 282, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 19.6134, 15.0503, -2.6395 ], - [ 7.81762, 74.2996, -1.5749 ], - [ 0.0169247, 0.00599429 ], - [ inf, inf, inf, inf ], - [ 962, 823, 1081, 942 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 883 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (50): { - 283, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 19.926, 15.2902, -2.70246 ], - [ 7.81422, 74.2987, -1.56871 ], - [ 0.0169351, 0.00599487 ], - [ inf, inf, inf, inf ], - [ 962, 823, 1081, 942 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 883 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (51): { - 284, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 20.4132, 15.664, -2.79984 ], - [ 7.80999, 74.2967, -1.55936 ], - [ 0.0169509, 0.00599393 ], - [ inf, inf, inf, inf ], - [ 962, 825, 1081, 944 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 885 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (52): { - 285, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049854, - [ 20.8922, 16.0316, -2.89538 ], - [ 7.80591, 74.295, -1.55208 ], - [ 0.0169625, 0.00599415 ], - [ inf, inf, inf, inf ], - [ 962, 826, 1081, 945 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 886 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (53): { - 286, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04977, - [ 21.2813, 16.3301, -2.9727 ], - [ 7.80248, 74.2948, -1.55023 ], - [ 0.0169746, 0.0059942 ], - [ inf, inf, inf, inf ], - [ 962, 826, 1081, 945 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 886 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (54): { - 287, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049907, - [ 21.6713, 16.6294, -3.05005 ], - [ 7.79895, 74.2936, -1.54726 ], - [ 0.0169867, 0.00599437 ], - [ inf, inf, inf, inf ], - [ 962, 827, 1081, 946 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 887 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (55): { - 288, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 22.0606, 16.9282, -3.1269 ], - [ 7.79524, 74.2907, -1.54197 ], - [ 0.0169993, 0.00599411 ], - [ inf, inf, inf, inf ], - [ 962, 828, 1081, 947 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 888 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (56): { - 289, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 22.4502, 17.2271, -3.20369 ], - [ 7.79113, 74.2884, -1.53783 ], - [ 0.0170118, 0.00599387 ], - [ inf, inf, inf, inf ], - [ 962, 829, 1081, 948 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 889 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (57): { - 290, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 22.84, 17.5262, -3.2803 ], - [ 7.78619, 74.2874, -1.53615 ], - [ 0.0170243, 0.00599335 ], - [ inf, inf, inf, inf ], - [ 962, 830, 1081, 949 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 890 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (58): { - 291, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 23.2299, 17.8254, -3.35685 ], - [ 7.7815, 74.2861, -1.53454 ], - [ 0.0170369, 0.00599288 ], - [ inf, inf, inf, inf ], - [ 962, 831, 1081, 950 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 891 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (59): { - 292, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 23.6199, 18.1247, -3.43326 ], - [ 7.77739, 74.2842, -1.53309 ], - [ 0.0170498, 0.00599901 ], - [ inf, inf, inf, inf ], - [ 962, 832, 1081, 951 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 892 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (60): { - 293, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 24.0101, 18.4241, -3.50959 ], - [ 7.7733, 74.2823, -1.52988 ], - [ 0.0170556, 0.00600188 ], - [ inf, inf, inf, inf ], - [ 962, 833, 1081, 952 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 893 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (61): { - 294, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049808, - [ 24.3994, 18.7228, -3.5855 ], - [ 7.7693, 74.2805, -1.52267 ], - [ 0.0170653, 0.00600963 ], - [ inf, inf, inf, inf ], - [ 963, 834, 1082, 953 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 894 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (62): { - 295, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049805, - [ 24.7763, 19.012, -3.64804 ], - [ 7.76548, 74.279, -1.51721 ], - [ 0.0170695, 0.00601336 ], - [ inf, inf, inf, inf ], - [ 964, 834, 1083, 953 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 894 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (63): { - 296, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049884, - [ 25.1249, 19.2795, -3.67914 ], - [ 7.76207, 74.2782, -1.51585 ], - [ 0.0170786, 0.00602156 ], - [ inf, inf, inf, inf ], - [ 964, 835, 1083, 954 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 895 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (64): { - 297, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049808, - [ 25.4794, 19.5515, -3.71567 ], - [ 7.75868, 74.277, -1.51392 ], - [ 0.0170822, 0.00602549 ], - [ inf, inf, inf, inf ], - [ 965, 835, 1084, 954 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 895 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (65): { - 298, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 25.8888, 19.8657, -3.79841 ], - [ 7.75531, 74.273, -1.50706 ], - [ 0.0170908, 0.00603389 ], - [ inf, inf, inf, inf ], - [ 965, 835, 1084, 954 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 895 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (66): { - 299, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049872, - [ 26.2947, 20.1771, -3.87881 ], - [ 7.75245, 74.2693, -1.50108 ], - [ 0.0170941, 0.006038 ], - [ inf, inf, inf, inf ], - [ 966, 836, 1085, 955 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1026, 896 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (67): { - 300, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 26.6914, 20.4815, -3.95332 ], - [ 7.75089, 74.2662, -1.49724 ], - [ 0.0171027, 0.00604616 ], - [ inf, inf, inf, inf ], - [ 966, 836, 1085, 955 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1026, 896 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (68): { - 301, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 27.0635, 20.7671, -4.02386 ], - [ 7.74904, 74.2636, -1.49385 ], - [ 0.0171061, 0.00604997 ], - [ inf, inf, inf, inf ], - [ 967, 837, 1086, 956 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 897 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (69): { - 302, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049865, - [ 27.3689, 21.0014, -4.0836 ], - [ 7.74638, 74.2625, -1.49164 ], - [ 0.0171078, 0.00605772 ], - [ inf, inf, inf, inf ], - [ 967, 837, 1086, 956 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 897 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (70): { - 303, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 27.6739, 21.2355, -4.1433 ], - [ 7.74373, 74.2613, -1.48944 ], - [ 0.0171161, 0.00605986 ], - [ inf, inf, inf, inf ], - [ 968, 837, 1087, 956 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 897 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (71): { - 304, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 28.146, 21.5977, -4.23351 ], - [ 7.73978, 74.2592, -1.48817 ], - [ 0.0171184, 0.00606963 ], - [ inf, inf, inf, inf ], - [ 968, 837, 1087, 956 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 897 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (72): { - 305, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 28.6297, 21.9689, -4.32598 ], - [ 7.73612, 74.2567, -1.48642 ], - [ 0.0171202, 0.00607281 ], - [ inf, inf, inf, inf ], - [ 969, 838, 1088, 957 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 898 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (73): { - 306, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 29.0074, 22.2587, -4.39937 ], - [ 7.73429, 74.2538, -1.48262 ], - [ 0.0171212, 0.00608071 ], - [ inf, inf, inf, inf ], - [ 969, 838, 1088, 957 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 898 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (74): { - 307, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 29.3888, 22.5514, -4.473 ], - [ 7.73254, 74.2512, -1.47979 ], - [ 0.0171285, 0.0060838 ], - [ inf, inf, inf, inf ], - [ 970, 838, 1089, 957 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 898 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (75): { - 308, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 29.7814, 22.8527, -4.54734 ], - [ 7.731, 74.2497, -1.47985 ], - [ 0.0171321, 0.00609149 ], - [ inf, inf, inf, inf ], - [ 970, 838, 1089, 957 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 898 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (76): { - 309, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04985, - [ 30.1735, 23.1535, -4.62153 ], - [ 7.72962, 74.2482, -1.479 ], - [ 0.0171335, 0.00609476 ], - [ inf, inf, inf, inf ], - [ 971, 839, 1090, 958 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 899 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (77): { - 310, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 30.5633, 23.4526, -4.69518 ], - [ 7.72866, 74.2468, -1.47551 ], - [ 0.0171346, 0.0061026 ], - [ inf, inf, inf, inf ], - [ 971, 839, 1090, 958 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 899 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (78): { - 311, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 30.9485, 23.7482, -4.76877 ], - [ 7.72803, 74.2451, -1.47262 ], - [ 0.017142, 0.00610596 ], - [ inf, inf, inf, inf ], - [ 972, 839, 1091, 958 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 899 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (79): { - 312, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 31.3198, 24.0331, -4.84217 ], - [ 7.72836, 74.2421, -1.47151 ], - [ 0.0171455, 0.00610717 ], - [ inf, inf, inf, inf ], - [ 972, 839, 1091, 958 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 899 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (80): { - 313, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 31.6957, 24.3215, -4.91553 ], - [ 7.72802, 74.2392, -1.47012 ], - [ 0.0171474, 0.00611431 ], - [ inf, inf, inf, inf ], - [ 972, 840, 1091, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (81): { - 314, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049866, - [ 32.0856, 24.6208, -4.98882 ], - [ 7.72562, 74.2364, -1.46788 ], - [ 0.0171483, 0.006117 ], - [ inf, inf, inf, inf ], - [ 973, 840, 1092, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (82): { - 315, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049765, - [ 32.4668, 24.9133, -5.05872 ], - [ 7.72355, 74.2341, -1.4666 ], - [ 0.0171488, 0.00611815 ], - [ inf, inf, inf, inf ], - [ 973, 840, 1092, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (83): { - 316, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049908, - [ 32.8236, 25.187, -5.11842 ], - [ 7.7225, 74.2336, -1.46834 ], - [ 0.017149, 0.00611815 ], - [ inf, inf, inf, inf ], - [ 973, 840, 1092, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (84): { - 317, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 33.1827, 25.4626, -5.179 ], - [ 7.72156, 74.2328, -1.46989 ], - [ 0.0171564, 0.00611827 ], - [ inf, inf, inf, inf ], - [ 973, 840, 1092, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (85): { - 318, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049866, - [ 33.6033, 25.7854, -5.25977 ], - [ 7.72279, 74.2259, -1.4672 ], - [ 0.0171593, 0.00611743 ], - [ inf, inf, inf, inf ], - [ 973, 840, 1092, 959 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 900 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (86): { - 319, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04981, - [ 34.0157, 26.1018, -5.33854 ], - [ 7.72365, 74.2199, -1.46407 ], - [ 0.0171609, 0.00611684 ], - [ inf, inf, inf, inf ], - [ 973, 841, 1092, 960 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 901 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (87): { - 320, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049865, - [ 34.4026, 26.3987, -5.41087 ], - [ 7.72328, 74.2172, -1.45942 ], - [ 0.0171615, 0.00611619 ], - [ inf, inf, inf, inf ], - [ 973, 841, 1092, 960 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 901 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (88): { - 321, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 34.7726, 26.6826, -5.48025 ], - [ 7.72282, 74.2148, -1.45561 ], - [ 0.0171618, 0.00611555 ], - [ inf, inf, inf, inf ], - [ 972, 841, 1091, 960 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 901 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (89): { - 322, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04982, - [ 35.0776, 26.9166, -5.53829 ], - [ 7.72204, 74.2138, -1.45499 ], - [ 0.0171689, 0.00611491 ], - [ inf, inf, inf, inf ], - [ 972, 841, 1091, 960 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 901 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (90): { - 323, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 35.3826, 27.1507, -5.59636 ], - [ 7.72126, 74.2128, -1.45438 ], - [ 0.0171736, 0.00611532 ], - [ inf, inf, inf, inf ], - [ 972, 842, 1091, 961 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 902 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (91): { - 324, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 35.8415, 27.5028, -5.68201 ], - [ 7.72114, 74.2105, -1.45397 ], - [ 0.0171734, 0.00611359 ], - [ inf, inf, inf, inf ], - [ 972, 842, 1091, 961 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 902 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (92): { - 325, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 36.3348, 27.8813, -5.77397 ], - [ 7.72087, 74.2075, -1.45294 ], - [ 0.0171817, 0.00611361 ], - [ inf, inf, inf, inf ], - [ 972, 842, 1091, 961 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 902 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (93): { - 326, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 36.7153, 28.1733, -5.84625 ], - [ 7.71894, 74.2044, -1.44925 ], - [ 0.0171855, 0.00611349 ], - [ inf, inf, inf, inf ], - [ 972, 843, 1091, 962 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 903 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (94): { - 327, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 37.0977, 28.4667, -5.91851 ], - [ 7.7171, 74.2019, -1.44652 ], - [ 0.0171873, 0.00611353 ], - [ inf, inf, inf, inf ], - [ 972, 843, 1091, 962 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 903 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (95): { - 328, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 37.4876, 28.7659, -5.9907 ], - [ 7.71565, 74.2012, -1.44758 ], - [ 0.0171949, 0.00610694 ], - [ inf, inf, inf, inf ], - [ 972, 843, 1091, 962 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 903 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (96): { - 329, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 37.8754, 29.0636, -6.06285 ], - [ 7.7142, 74.2, -1.44803 ], - [ 0.0171984, 0.00610406 ], - [ inf, inf, inf, inf ], - [ 972, 844, 1091, 963 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 904 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (97): { - 330, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 38.2561, 29.3557, -6.13505 ], - [ 7.71278, 74.1968, -1.446 ], - [ 0.0172073, 0.00610243 ], - [ inf, inf, inf, inf ], - [ 971, 844, 1090, 963 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 904 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (98): { - 331, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 38.6365, 29.6476, -6.20717 ], - [ 7.71132, 74.1938, -1.44418 ], - [ 0.0172114, 0.00610166 ], - [ inf, inf, inf, inf ], - [ 971, 845, 1090, 964 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 905 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (99): { - 332, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049854, - [ 39.0171, 29.9396, -6.27916 ], - [ 7.70971, 74.1922, -1.44328 ], - [ 0.0172205, 0.00610109 ], - [ inf, inf, inf, inf ], - [ 971, 845, 1090, 964 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 905 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - }, - (100): { - 333, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049855, - [ 39.3995, 30.233, -6.35112 ], - [ 7.70823, 74.1904, -1.44215 ], - [ 0.0172243, 0.00609434 ], - [ inf, inf, inf, inf ], - [ 971, 846, 1090, 965 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 906 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (101): { - 334, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 39.7892, 30.5321, -6.42289 ], - [ 7.70729, 74.1885, -1.44001 ], - [ 0.0172334, 0.00609107 ], - [ inf, inf, inf, inf ], - [ 971, 846, 1090, 965 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 906 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (102): { - 335, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 40.1716, 30.8255, -6.4882 ], - [ 7.70643, 74.1866, -1.4377 ], - [ 0.0172376, 0.00608975 ], - [ inf, inf, inf, inf ], - [ 970, 847, 1089, 966 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 907 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (103): { - 336, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 40.5194, 31.0924, -6.52358 ], - [ 7.70596, 74.1852, -1.43459 ], - [ 0.0172467, 0.00608866 ], - [ inf, inf, inf, inf ], - [ 970, 847, 1089, 966 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 907 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (104): { - 337, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 40.8672, 31.3592, -6.55896 ], - [ 7.70548, 74.1838, -1.43147 ], - [ 0.0172577, 0.00608223 ], - [ inf, inf, inf, inf ], - [ 970, 848, 1089, 967 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 908 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (105): { - 338, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 41.2761, 31.6731, -6.63675 ], - [ 7.70025, 74.1812, -1.4303 ], - [ 0.0172629, 0.00607798 ], - [ inf, inf, inf, inf ], - [ 969, 849, 1088, 968 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 909 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (106): { - 339, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049854, - [ 41.6824, 31.9848, -6.714 ], - [ 7.69531, 74.1787, -1.42968 ], - [ 0.0172723, 0.00607682 ], - [ inf, inf, inf, inf ], - [ 969, 849, 1088, 968 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 909 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (107): { - 340, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04977, - [ 42.0686, 32.2811, -6.7846 ], - [ 7.69231, 74.1774, -1.43169 ], - [ 0.0172838, 0.00607626 ], - [ inf, inf, inf, inf ], - [ 969, 850, 1088, 969 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 910 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (108): { - 341, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049949, - [ 42.4443, 32.5694, -6.8535 ], - [ 7.68922, 74.1762, -1.43319 ], - [ 0.0172958, 0.00606937 ], - [ inf, inf, inf, inf ], - [ 969, 851, 1088, 970 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 911 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (109): { - 342, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049797, - [ 42.7494, 32.8035, -6.91063 ], - [ 7.68563, 74.1754, -1.43159 ], - [ 0.0173084, 0.00606618 ], - [ inf, inf, inf, inf ], - [ 969, 852, 1088, 971 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 912 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (110): { - 343, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 43.0547, 33.0378, -6.96781 ], - [ 7.68204, 74.1746, -1.42999 ], - [ 0.0173131, 0.00606589 ], - [ inf, inf, inf, inf ], - [ 969, 853, 1088, 972 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 913 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (111): { - 344, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049789, - [ 43.4914, 33.3729, -7.04945 ], - [ 7.6783, 74.1736, -1.4273 ], - [ 0.0173245, 0.00606361 ], - [ inf, inf, inf, inf ], - [ 968, 854, 1087, 973 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 914 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (112): { - 345, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049938, - [ 43.9835, 33.7505, -7.14137 ], - [ 7.67472, 74.1726, -1.42404 ], - [ 0.0173358, 0.00606354 ], - [ inf, inf, inf, inf ], - [ 968, 855, 1087, 974 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 915 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (113): { - 346, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 44.3636, 34.0422, -7.2121 ], - [ 7.67259, 74.1725, -1.42109 ], - [ 0.017348, 0.00606333 ], - [ inf, inf, inf, inf ], - [ 968, 855, 1087, 974 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 915 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (114): { - 347, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 44.7453, 34.335, -7.28288 ], - [ 7.6704, 74.1721, -1.41828 ], - [ 0.0173604, 0.00606342 ], - [ inf, inf, inf, inf ], - [ 968, 856, 1087, 975 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 916 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (115): { - 348, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049875, - [ 45.1355, 34.6345, -7.3537 ], - [ 7.66777, 74.1698, -1.41639 ], - [ 0.0173732, 0.00606343 ], - [ inf, inf, inf, inf ], - [ 969, 857, 1088, 976 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 917 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (116): { - 349, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049814, - [ 45.524, 34.9326, -7.42441 ], - [ 7.66499, 74.1674, -1.41483 ], - [ 0.017386, 0.00606329 ], - [ inf, inf, inf, inf ], - [ 969, 858, 1088, 977 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 918 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (117): { - 350, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 45.9044, 35.2245, -7.49501 ], - [ 7.66117, 74.1648, -1.41538 ], - [ 0.0173987, 0.00606324 ], - [ inf, inf, inf, inf ], - [ 969, 859, 1088, 978 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 919 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (118): { - 351, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049782, - [ 46.2843, 35.516, -7.56553 ], - [ 7.65709, 74.1627, -1.41592 ], - [ 0.0174113, 0.00606315 ], - [ inf, inf, inf, inf ], - [ 969, 860, 1088, 979 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 920 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (119): { - 352, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049902, - [ 46.6653, 35.8084, -7.63625 ], - [ 7.65121, 74.1634, -1.41648 ], - [ 0.0174242, 0.006063 ], - [ inf, inf, inf, inf ], - [ 969, 861, 1088, 980 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 921 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (120): { - 353, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049862, - [ 47.046, 36.1005, -7.70692 ], - [ 7.64578, 74.1637, -1.41685 ], - [ 0.017437, 0.006063 ], - [ inf, inf, inf, inf ], - [ 969, 862, 1088, 981 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 922 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (121): { - 354, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 47.4265, 36.3924, -7.77747 ], - [ 7.64361, 74.1616, -1.41587 ], - [ 0.0174501, 0.00606276 ], - [ inf, inf, inf, inf ], - [ 969, 863, 1088, 982 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 923 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (122): { - 355, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 47.8035, 36.6818, -7.83861 ], - [ 7.64113, 74.1596, -1.41494 ], - [ 0.0174627, 0.00606258 ], - [ inf, inf, inf, inf ], - [ 969, 864, 1088, 983 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 924 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (123): { - 356, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 48.1512, 36.9485, -7.82746 ], - [ 7.63639, 74.1581, -1.41442 ], - [ 0.0174757, 0.00606854 ], - [ inf, inf, inf, inf ], - [ 969, 865, 1088, 984 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 925 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (124): { - 357, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049788, - [ 48.4984, 37.215, -7.81634 ], - [ 7.63166, 74.1565, -1.4139 ], - [ 0.0174879, 0.00607062 ], - [ inf, inf, inf, inf ], - [ 969, 866, 1088, 985 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 926 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (125): { - 358, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 48.9224, 37.5403, -7.88754 ], - [ 7.62487, 74.1599, -1.42077 ], - [ 0.0175019, 0.00607886 ], - [ inf, inf, inf, inf ], - [ 970, 867, 1089, 986 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 927 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (126): { - 359, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049794, - [ 49.347, 37.8662, -7.96511 ], - [ 7.61832, 74.1633, -1.42747 ], - [ 0.0175147, 0.00608214 ], - [ inf, inf, inf, inf ], - [ 971, 868, 1090, 987 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 928 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (127): { - 360, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049882, - [ 49.7252, 38.1564, -8.0358 ], - [ 7.61543, 74.1626, -1.42706 ], - [ 0.0175278, 0.00609022 ], - [ inf, inf, inf, inf ], - [ 971, 869, 1090, 988 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 929 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (128): { - 361, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 50.0967, 38.4414, -8.10537 ], - [ 7.61253, 74.1618, -1.42675 ], - [ 0.0175336, 0.0060942 ], - [ inf, inf, inf, inf ], - [ 972, 870, 1091, 989 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 930 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (129): { - 362, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049732, - [ 50.3935, 38.6692, -8.1623 ], - [ 7.60959, 74.1593, -1.42744 ], - [ 0.0175433, 0.00610237 ], - [ inf, inf, inf, inf ], - [ 972, 871, 1091, 990 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 931 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (130): { - 363, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049931, - [ 50.6915, 38.8978, -8.21946 ], - [ 7.60664, 74.1568, -1.42814 ], - [ 0.0175532, 0.00610481 ], - [ inf, inf, inf, inf ], - [ 973, 871, 1092, 990 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 931 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (131): { - 364, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049869, - [ 51.1126, 39.2209, -8.29897 ], - [ 7.60084, 74.1561, -1.43161 ], - [ 0.017567, 0.00611497 ], - [ inf, inf, inf, inf ], - [ 973, 872, 1092, 991 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 932 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (132): { - 365, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 51.6126, 39.6046, -8.39277 ], - [ 7.59334, 74.1565, -1.43685 ], - [ 0.0175789, 0.00611808 ], - [ inf, inf, inf, inf ], - [ 974, 873, 1093, 992 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1034, 933 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (133): { - 366, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 51.9939, 39.8972, -8.4646 ], - [ 7.58996, 74.155, -1.43945 ], - [ 0.0175846, 0.00612609 ], - [ inf, inf, inf, inf ], - [ 975, 874, 1094, 993 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1035, 934 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (134): { - 367, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 52.3751, 40.1897, -8.53644 ], - [ 7.58667, 74.1535, -1.44201 ], - [ 0.0175944, 0.00613568 ], - [ inf, inf, inf, inf ], - [ 975, 874, 1094, 993 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1035, 934 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (135): { - 368, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 52.7553, 40.4815, -8.60834 ], - [ 7.58439, 74.1506, -1.44423 ], - [ 0.0176055, 0.00613997 ], - [ inf, inf, inf, inf ], - [ 976, 875, 1095, 994 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1036, 935 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (136): { - 369, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049824, - [ 53.1346, 40.7725, -8.68022 ], - [ 7.58205, 74.1478, -1.44659 ], - [ 0.0176106, 0.00614804 ], - [ inf, inf, inf, inf ], - [ 976, 876, 1095, 995 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1036, 936 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (137): { - 370, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 53.5061, 41.0576, -8.75255 ], - [ 7.57896, 74.1461, -1.45083 ], - [ 0.0176201, 0.00615815 ], - [ inf, inf, inf, inf ], - [ 977, 876, 1096, 995 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1037, 936 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (138): { - 371, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 53.878, 41.3429, -8.82485 ], - [ 7.57587, 74.1445, -1.4547 ], - [ 0.0176243, 0.00616236 ], - [ inf, inf, inf, inf ], - [ 978, 877, 1097, 996 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1038, 937 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (139): { - 372, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 54.2585, 41.6349, -8.89732 ], - [ 7.57287, 74.1447, -1.45333 ], - [ 0.0176334, 0.00617083 ], - [ inf, inf, inf, inf ], - [ 978, 877, 1097, 996 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1038, 937 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (140): { - 373, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04985, - [ 54.639, 41.9269, -8.9698 ], - [ 7.56999, 74.1446, -1.45227 ], - [ 0.0176376, 0.00618082 ], - [ inf, inf, inf, inf ], - [ 979, 878, 1098, 997 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1039, 938 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (141): { - 374, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 55.0194, 42.2188, -9.04242 ], - [ 7.56901, 74.1407, -1.45597 ], - [ 0.0176462, 0.00618534 ], - [ inf, inf, inf, inf ], - [ 980, 878, 1099, 997 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1040, 938 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (142): { - 375, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 55.3978, 42.5091, -9.11025 ], - [ 7.56796, 74.1369, -1.45947 ], - [ 0.0176502, 0.00619337 ], - [ inf, inf, inf, inf ], - [ 980, 879, 1099, 998 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1040, 939 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (143): { - 376, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 55.7374, 42.7697, -9.09386 ], - [ 7.56574, 74.1356, -1.4593 ], - [ 0.017652, 0.00620363 ], - [ inf, inf, inf, inf ], - [ 981, 879, 1100, 998 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1041, 939 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (144): { - 377, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 56.0769, 43.0302, -9.07749 ], - [ 7.56353, 74.1343, -1.45914 ], - [ 0.0176599, 0.00620727 ], - [ inf, inf, inf, inf ], - [ 982, 879, 1101, 998 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1042, 939 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (145): { - 378, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 56.5298, 43.3778, -9.14416 ], - [ 7.56216, 74.1291, -1.45855 ], - [ 0.0176633, 0.00621616 ], - [ inf, inf, inf, inf ], - [ 982, 880, 1101, 999 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1042, 940 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (146): { - 379, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 56.997, 43.7362, -9.22392 ], - [ 7.56093, 74.1235, -1.45792 ], - [ 0.0176654, 0.00622587 ], - [ inf, inf, inf, inf ], - [ 983, 880, 1102, 999 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1043, 940 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (147): { - 380, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 57.3745, 44.0259, -9.29602 ], - [ 7.55978, 74.1214, -1.45802 ], - [ 0.0176729, 0.00623004 ], - [ inf, inf, inf, inf ], - [ 984, 880, 1103, 999 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 940 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (148): { - 381, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 57.7504, 44.3144, -9.36784 ], - [ 7.55866, 74.1193, -1.4582 ], - [ 0.0176767, 0.00623794 ], - [ inf, inf, inf, inf ], - [ 984, 880, 1103, 999 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 940 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (149): { - 382, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049877, - [ 58.0482, 44.5429, -9.4265 ], - [ 7.55882, 74.1171, -1.46212 ], - [ 0.0176782, 0.00624188 ], - [ inf, inf, inf, inf ], - [ 985, 881, 1104, 1000 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1045, 941 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (150): { - 383, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049821, - [ 58.3457, 44.7712, -9.4851 ], - [ 7.55897, 74.1148, -1.46604 ], - [ 0.0176803, 0.00624858 ], - [ inf, inf, inf, inf ], - [ 985, 881, 1104, 1000 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1045, 941 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (151): { - 384, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 58.7537, 45.0842, -9.56444 ], - [ 7.56032, 74.1119, -1.47158 ], - [ 0.0176795, 0.00626034 ], - [ inf, inf, inf, inf ], - [ 986, 881, 1105, 1000 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1046, 941 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (152): { - 385, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049775, - [ 59.2609, 45.4734, -9.66238 ], - [ 7.56274, 74.1083, -1.47845 ], - [ 0.0176874, 0.00626395 ], - [ inf, inf, inf, inf ], - [ 987, 881, 1106, 1000 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 941 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (153): { - 386, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049914, - [ 59.6425, 45.7662, -9.73633 ], - [ 7.56344, 74.1054, -1.47836 ], - [ 0.0176978, 0.00626545 ], - [ inf, inf, inf, inf ], - [ 987, 882, 1106, 1001 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 942 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (154): { - 387, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 60.0233, 46.0584, -9.81015 ], - [ 7.56412, 74.1026, -1.4783 ], - [ 0.0177032, 0.00627221 ], - [ inf, inf, inf, inf ], - [ 987, 882, 1106, 1001 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 942 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (155): { - 388, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 60.3942, 46.343, -9.88383 ], - [ 7.56399, 74.0999, -1.47916 ], - [ 0.0177057, 0.00627518 ], - [ inf, inf, inf, inf ], - [ 988, 883, 1107, 1002 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1048, 943 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (156): { - 389, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049765, - [ 60.7645, 46.6272, -9.95738 ], - [ 7.56386, 74.0973, -1.48004 ], - [ 0.0177076, 0.00628252 ], - [ inf, inf, inf, inf ], - [ 988, 883, 1107, 1002 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1048, 943 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (157): { - 390, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 61.1453, 46.9194, -10.0314 ], - [ 7.56477, 74.0944, -1.48388 ], - [ 0.0177153, 0.00628567 ], - [ inf, inf, inf, inf ], - [ 989, 883, 1108, 1002 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 943 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (158): { - 391, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 61.5257, 47.2113, -10.1054 ], - [ 7.56568, 74.0915, -1.4877 ], - [ 0.0177191, 0.00628679 ], - [ inf, inf, inf, inf ], - [ 989, 884, 1108, 1003 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 944 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (159): { - 392, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049909, - [ 61.9068, 47.5037, -10.1796 ], - [ 7.56741, 74.0876, -1.48647 ], - [ 0.0177211, 0.0062937 ], - [ inf, inf, inf, inf ], - [ 989, 884, 1108, 1003 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 944 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (160): { - 393, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 62.2873, 47.7957, -10.2537 ], - [ 7.56914, 74.0838, -1.48525 ], - [ 0.0177293, 0.00629599 ], - [ inf, inf, inf, inf ], - [ 990, 884, 1109, 1003 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 944 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (161): { - 394, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 62.6587, 48.0807, -10.328 ], - [ 7.57118, 74.0809, -1.4884 ], - [ 0.0177328, 0.00629737 ], - [ inf, inf, inf, inf ], - [ 990, 885, 1109, 1004 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 945 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (162): { - 395, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 63.0299, 48.3655, -10.4021 ], - [ 7.57323, 74.078, -1.49157 ], - [ 0.0177417, 0.00629741 ], - [ inf, inf, inf, inf ], - [ 990, 885, 1109, 1004 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 945 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (163): { - 396, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 63.3785, 48.633, -10.3842 ], - [ 7.57583, 74.0755, -1.49374 ], - [ 0.0177457, 0.00630379 ], - [ inf, inf, inf, inf ], - [ 990, 886, 1109, 1005 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 946 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (164): { - 397, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049894, - [ 63.727, 48.9005, -10.3655 ], - [ 7.57844, 74.073, -1.49591 ], - [ 0.0177549, 0.00630611 ], - [ inf, inf, inf, inf ], - [ 991, 886, 1110, 1005 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 946 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (165): { - 398, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049782, - [ 64.1485, 49.2238, -10.4274 ], - [ 7.58198, 74.0664, -1.49459 ], - [ 0.0177593, 0.00630765 ], - [ inf, inf, inf, inf ], - [ 991, 887, 1110, 1006 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 947 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (166): { - 399, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 64.5887, 49.5616, -10.5094 ], - [ 7.58576, 74.0588, -1.4924 ], - [ 0.0177682, 0.00630721 ], - [ inf, inf, inf, inf ], - [ 991, 887, 1110, 1006 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 947 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (167): { - 400, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 64.9676, 49.8524, -10.5836 ], - [ 7.5846, 74.0552, -1.49442 ], - [ 0.0177729, 0.00631343 ], - [ inf, inf, inf, inf ], - [ 991, 888, 1110, 1007 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 948 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (168): { - 401, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 65.3453, 50.1422, -10.6576 ], - [ 7.58334, 74.0517, -1.49653 ], - [ 0.0177822, 0.00631576 ], - [ inf, inf, inf, inf ], - [ 991, 888, 1110, 1007 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 948 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (169): { - 402, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 65.6537, 50.3788, -10.7183 ], - [ 7.58472, 74.0498, -1.49992 ], - [ 0.0177862, 0.00631701 ], - [ inf, inf, inf, inf ], - [ 992, 889, 1111, 1008 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 949 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (170): { - 403, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049821, - [ 65.9589, 50.613, -10.7784 ], - [ 7.58621, 74.048, -1.50336 ], - [ 0.0177952, 0.00631688 ], - [ inf, inf, inf, inf ], - [ 992, 889, 1111, 1008 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 949 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (171): { - 404, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 66.3529, 50.9154, -10.8572 ], - [ 7.58734, 74.0441, -1.50563 ], - [ 0.0177992, 0.006324 ], - [ inf, inf, inf, inf ], - [ 992, 890, 1111, 1009 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 950 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (172): { - 405, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049786, - [ 66.8509, 51.2975, -10.9579 ], - [ 7.58802, 74.0378, -1.5065 ], - [ 0.0178083, 0.00632651 ], - [ inf, inf, inf, inf ], - [ 992, 890, 1111, 1009 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 950 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (173): { - 406, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049922, - [ 67.2363, 51.5932, -11.0342 ], - [ 7.58989, 74.0335, -1.50867 ], - [ 0.0178126, 0.00632779 ], - [ inf, inf, inf, inf ], - [ 993, 891, 1112, 1010 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1053, 951 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (174): { - 407, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 67.6168, 51.8852, -11.1094 ], - [ 7.5918, 74.0292, -1.51088 ], - [ 0.0178214, 0.00632811 ], - [ inf, inf, inf, inf ], - [ 993, 891, 1112, 1010 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1053, 951 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (175): { - 408, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049822, - [ 67.9966, 52.1766, -11.1847 ], - [ 7.59452, 74.0265, -1.51264 ], - [ 0.017826, 0.00633479 ], - [ inf, inf, inf, inf ], - [ 993, 892, 1112, 1011 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1053, 952 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (176): { - 409, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 68.3766, 52.4682, -11.26 ], - [ 7.59728, 74.0237, -1.51439 ], - [ 0.017835, 0.00633764 ], - [ inf, inf, inf, inf ], - [ 994, 892, 1113, 1011 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 952 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (177): { - 410, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 68.7572, 52.7602, -11.3356 ], - [ 7.59974, 74.0207, -1.51579 ], - [ 0.0178461, 0.00633859 ], - [ inf, inf, inf, inf ], - [ 994, 893, 1113, 1012 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 953 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (178): { - 411, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 69.1378, 53.0523, -11.4111 ], - [ 7.60217, 74.0177, -1.51718 ], - [ 0.017851, 0.00633883 ], - [ inf, inf, inf, inf ], - [ 994, 894, 1113, 1013 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 954 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (179): { - 412, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 69.5183, 53.3443, -11.4868 ], - [ 7.60363, 74.0129, -1.51766 ], - [ 0.0178609, 0.0063452 ], - [ inf, inf, inf, inf ], - [ 994, 894, 1113, 1013 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 954 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (180): { - 413, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049785, - [ 69.8984, 53.6359, -11.5624 ], - [ 7.60502, 74.0079, -1.51809 ], - [ 0.0178724, 0.00634756 ], - [ inf, inf, inf, inf ], - [ 994, 895, 1113, 1014 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 955 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (181): { - 414, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049899, - [ 70.2794, 53.9283, -11.6383 ], - [ 7.60446, 74.006, -1.52235 ], - [ 0.0178779, 0.00634879 ], - [ inf, inf, inf, inf ], - [ 995, 896, 1114, 1015 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 956 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (182): { - 415, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 70.6599, 54.2203, -11.7142 ], - [ 7.60377, 74.0042, -1.52688 ], - [ 0.0178875, 0.00634914 ], - [ inf, inf, inf, inf ], - [ 995, 896, 1114, 1015 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 956 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (183): { - 416, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049782, - [ 71.002, 54.4828, -11.7114 ], - [ 7.60551, 74.0012, -1.52888 ], - [ 0.0178989, 0.00634907 ], - [ inf, inf, inf, inf ], - [ 995, 897, 1114, 1016 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 957 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (184): { - 417, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049903, - [ 71.3421, 54.7438, -11.7027 ], - [ 7.60743, 73.9982, -1.53071 ], - [ 0.0179115, 0.00635486 ], - [ inf, inf, inf, inf ], - [ 995, 898, 1114, 1017 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 958 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (185): { - 418, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 71.756, 55.0613, -11.7624 ], - [ 7.60951, 73.9923, -1.52796 ], - [ 0.0179173, 0.0063574 ], - [ inf, inf, inf, inf ], - [ 995, 899, 1114, 1018 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 959 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (186): { - 419, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 72.1961, 55.399, -11.8464 ], - [ 7.61165, 73.9854, -1.5236 ], - [ 0.0179269, 0.00635834 ], - [ inf, inf, inf, inf ], - [ 996, 900, 1115, 1019 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 960 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (187): { - 420, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 72.5817, 55.6949, -11.9232 ], - [ 7.61373, 73.9815, -1.52563 ], - [ 0.0179383, 0.00635862 ], - [ inf, inf, inf, inf ], - [ 996, 900, 1115, 1019 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 960 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (188): { - 421, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04987, - [ 72.9627, 55.9873, -11.9995 ], - [ 7.61581, 73.9779, -1.52823 ], - [ 0.0179435, 0.00635867 ], - [ inf, inf, inf, inf ], - [ 996, 901, 1115, 1020 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 961 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (189): { - 422, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049757, - [ 73.2721, 56.2247, -12.0616 ], - [ 7.61725, 73.9755, -1.53159 ], - [ 0.0179533, 0.00636462 ], - [ inf, inf, inf, inf ], - [ 996, 902, 1115, 1021 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 962 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (190): { - 423, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 73.5754, 56.4574, -12.1224 ], - [ 7.61864, 73.9732, -1.53504 ], - [ 0.017964, 0.00636687 ], - [ inf, inf, inf, inf ], - [ 996, 902, 1115, 1021 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 962 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (191): { - 424, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 73.9608, 56.7532, -12.1998 ], - [ 7.62013, 73.9692, -1.53759 ], - [ 0.0179771, 0.00636811 ], - [ inf, inf, inf, inf ], - [ 997, 903, 1116, 1022 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1057, 963 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (192): { - 425, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.0499, - [ 74.4721, 57.1455, -12.3026 ], - [ 7.62179, 73.9628, -1.53878 ], - [ 0.0179825, 0.00637481 ], - [ inf, inf, inf, inf ], - [ 997, 904, 1116, 1023 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1057, 964 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (193): { - 426, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049779, - [ 74.862, 57.4447, -12.3812 ], - [ 7.62329, 73.9596, -1.5402 ], - [ 0.0179922, 0.00637804 ], - [ inf, inf, inf, inf ], - [ 998, 905, 1117, 1024 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 965 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (194): { - 427, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049924, - [ 75.2399, 57.7347, -12.4575 ], - [ 7.62477, 73.9567, -1.54165 ], - [ 0.0180035, 0.00637869 ], - [ inf, inf, inf, inf ], - [ 998, 905, 1117, 1024 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 965 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (195): { - 428, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049779, - [ 75.6223, 58.028, -12.5348 ], - [ 7.62504, 73.9535, -1.54489 ], - [ 0.0180158, 0.00637911 ], - [ inf, inf, inf, inf ], - [ 998, 906, 1117, 1025 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 966 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (196): { - 429, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049894, - [ 76.0062, 58.3227, -12.6125 ], - [ 7.62514, 73.9503, -1.54838 ], - [ 0.0180216, 0.00638549 ], - [ inf, inf, inf, inf ], - [ 998, 907, 1117, 1026 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 967 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (197): { - 430, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 76.387, 58.6148, -12.6895 ], - [ 7.62692, 73.9472, -1.54592 ], - [ 0.0180312, 0.00638812 ], - [ inf, inf, inf, inf ], - [ 999, 908, 1118, 1027 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 968 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (198): { - 431, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 76.7674, 58.9067, -12.7665 ], - [ 7.62892, 73.944, -1.54271 ], - [ 0.0180425, 0.00638904 ], - [ inf, inf, inf, inf ], - [ 999, 908, 1118, 1027 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 968 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (199): { - 432, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 77.1479, 59.1987, -12.8434 ], - [ 7.63063, 73.9405, -1.54207 ], - [ 0.0180546, 0.00638914 ], - [ inf, inf, inf, inf ], - [ 999, 909, 1118, 1028 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 969 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (200): { - 433, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 77.5285, 59.4907, -12.9203 ], - [ 7.6323, 73.9369, -1.54177 ], - [ 0.0180674, 0.00639519 ], - [ inf, inf, inf, inf ], - [ 999, 910, 1118, 1029 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 970 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (201): { - 434, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049857, - [ 77.9093, 59.7829, -12.9973 ], - [ 7.63592, 73.9338, -1.54261 ], - [ 0.0180733, 0.00639803 ], - [ inf, inf, inf, inf ], - [ 1000, 911, 1119, 1030 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1060, 971 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (202): { - 435, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 78.2899, 60.075, -13.0742 ], - [ 7.63981, 73.9307, -1.54361 ], - [ 0.0180832, 0.00640505 ], - [ inf, inf, inf, inf ], - [ 1000, 912, 1119, 1031 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1060, 972 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (203): { - 436, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 78.6425, 60.3456, -13.1011 ], - [ 7.64041, 73.9276, -1.54339 ], - [ 0.0180947, 0.00640833 ], - [ inf, inf, inf, inf ], - [ 1001, 912, 1120, 1031 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 972 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (204): { - 437, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 78.9908, 60.6128, -13.1203 ], - [ 7.64052, 73.9246, -1.54299 ], - [ 0.0180995, 0.00640974 ], - [ inf, inf, inf, inf ], - [ 1001, 913, 1120, 1032 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 973 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (205): { - 438, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04985, - [ 79.3802, 60.9116, -13.1837 ], - [ 7.64065, 73.9219, -1.53946 ], - [ 0.0181089, 0.00641009 ], - [ inf, inf, inf, inf ], - [ 1001, 913, 1120, 1032 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 973 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (206): { - 439, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 79.7891, 61.2254, -13.2681 ], - [ 7.64079, 73.9195, -1.53443 ], - [ 0.0181204, 0.00641644 ], - [ inf, inf, inf, inf ], - [ 1001, 914, 1120, 1033 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 974 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (207): { - 440, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049866, - [ 80.1744, 61.5211, -13.3459 ], - [ 7.64146, 73.9167, -1.5344 ], - [ 0.0181256, 0.00641927 ], - [ inf, inf, inf, inf ], - [ 1002, 915, 1121, 1034 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1062, 975 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (208): { - 441, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 80.5555, 61.8135, -13.4224 ], - [ 7.64222, 73.9139, -1.53521 ], - [ 0.0181348, 0.00642007 ], - [ inf, inf, inf, inf ], - [ 1002, 915, 1121, 1034 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1062, 975 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (209): { - 442, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 80.8638, 62.0501, -13.4857 ], - [ 7.64435, 73.9102, -1.53557 ], - [ 0.0181462, 0.00642646 ], - [ inf, inf, inf, inf ], - [ 1002, 916, 1121, 1035 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1062, 976 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (210): { - 443, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 81.1595, 62.2769, -13.5466 ], - [ 7.64671, 73.9064, -1.53586 ], - [ 0.018151, 0.00642897 ], - [ inf, inf, inf, inf ], - [ 1003, 917, 1122, 1036 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1063, 977 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (211): { - 444, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 81.5313, 62.5622, -13.6215 ], - [ 7.64927, 73.9027, -1.53456 ], - [ 0.0181606, 0.0064304 ], - [ inf, inf, inf, inf ], - [ 1003, 917, 1122, 1036 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1063, 977 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (212): { - 445, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 82.0549, 62.964, -13.7243 ], - [ 7.65224, 73.8994, -1.53008 ], - [ 0.0181722, 0.00643682 ], - [ inf, inf, inf, inf ], - [ 1003, 918, 1122, 1037 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1063, 978 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (213): { - 446, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049823, - [ 82.4581, 63.2734, -13.8049 ], - [ 7.6554, 73.8959, -1.52998 ], - [ 0.0181773, 0.00643991 ], - [ inf, inf, inf, inf ], - [ 1004, 919, 1123, 1038 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1064, 979 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (214): { - 447, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 82.8387, 63.5654, -13.8813 ], - [ 7.65858, 73.8923, -1.53071 ], - [ 0.0181867, 0.0064409 ], - [ inf, inf, inf, inf ], - [ 1004, 919, 1123, 1038 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1064, 979 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (215): { - 448, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 83.2193, 63.8575, -13.9578 ], - [ 7.661, 73.888, -1.53183 ], - [ 0.0181984, 0.00644729 ], - [ inf, inf, inf, inf ], - [ 1004, 920, 1123, 1039 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1064, 980 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (216): { - 449, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 83.5998, 64.1495, -14.0343 ], - [ 7.66326, 73.8835, -1.53302 ], - [ 0.0182035, 0.00645001 ], - [ inf, inf, inf, inf ], - [ 1005, 921, 1124, 1040 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1065, 981 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (217): { - 450, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 83.9804, 64.4415, -14.1108 ], - [ 7.664, 73.8797, -1.53304 ], - [ 0.018213, 0.00645111 ], - [ inf, inf, inf, inf ], - [ 1005, 921, 1124, 1040 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1065, 981 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (218): { - 451, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 84.3611, 64.7336, -14.1873 ], - [ 7.66442, 73.8761, -1.53282 ], - [ 0.0182175, 0.00645799 ], - [ inf, inf, inf, inf ], - [ 1005, 922, 1124, 1041 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1065, 982 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (219): { - 452, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049873, - [ 84.742, 65.0258, -14.2639 ], - [ 7.66708, 73.8725, -1.53339 ], - [ 0.0182265, 0.00646085 ], - [ inf, inf, inf, inf ], - [ 1006, 922, 1125, 1041 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1066, 982 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (220): { - 453, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049809, - [ 85.1223, 65.3177, -14.3403 ], - [ 7.67022, 73.869, -1.53412 ], - [ 0.0182376, 0.00646158 ], - [ inf, inf, inf, inf ], - [ 1006, 923, 1125, 1042 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1066, 983 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (221): { - 454, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049867, - [ 85.503, 65.6099, -14.4168 ], - [ 7.67377, 73.8644, -1.5344 ], - [ 0.0182429, 0.00646836 ], - [ inf, inf, inf, inf ], - [ 1006, 924, 1125, 1043 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1066, 984 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (222): { - 455, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 85.8835, 65.9018, -14.4932 ], - [ 7.67741, 73.8597, -1.53458 ], - [ 0.0182523, 0.00647079 ], - [ inf, inf, inf, inf ], - [ 1007, 924, 1126, 1043 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 984 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (223): { - 456, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 86.244, 66.1784, -14.4995 ], - [ 7.68033, 73.8559, -1.53327 ], - [ 0.0182635, 0.00647163 ], - [ inf, inf, inf, inf ], - [ 1007, 925, 1126, 1044 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 985 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (224): { - 457, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04989, - [ 86.6004, 66.4519, -14.4893 ], - [ 7.6831, 73.8525, -1.53162 ], - [ 0.0182691, 0.00647842 ], - [ inf, inf, inf, inf ], - [ 1007, 926, 1126, 1045 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 986 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (225): { - 458, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049831, - [ 86.9832, 66.7456, -14.5369 ], - [ 7.68305, 73.8502, -1.52879 ], - [ 0.0182787, 0.00648109 ], - [ inf, inf, inf, inf ], - [ 1008, 926, 1127, 1045 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1068, 986 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (226): { - 459, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049883, - [ 87.3835, 67.0528, -14.6209 ], - [ 7.68123, 73.8487, -1.52521 ], - [ 0.0182831, 0.00648251 ], - [ inf, inf, inf, inf ], - [ 1008, 927, 1127, 1046 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1068, 987 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (227): { - 460, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04976, - [ 87.7673, 67.3473, -14.6984 ], - [ 7.68548, 73.8448, -1.52453 ], - [ 0.018292, 0.0064826 ], - [ inf, inf, inf, inf ], - [ 1008, 927, 1127, 1046 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1068, 987 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (228): { - 461, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049901, - [ 88.1483, 67.6397, -14.7746 ], - [ 7.69127, 73.8404, -1.52458 ], - [ 0.0183033, 0.00648837 ], - [ inf, inf, inf, inf ], - [ 1008, 928, 1127, 1047 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1068, 988 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (229): { - 462, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049775, - [ 88.4673, 67.8844, -14.8384 ], - [ 7.69373, 73.8362, -1.52468 ], - [ 0.0183084, 0.00649102 ], - [ inf, inf, inf, inf ], - [ 1009, 929, 1128, 1048 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1069, 989 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (230): { - 463, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049917, - [ 88.7709, 68.1174, -14.8991 ], - [ 7.69531, 73.8321, -1.52478 ], - [ 0.0183178, 0.00649185 ], - [ inf, inf, inf, inf ], - [ 1009, 929, 1128, 1048 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1069, 989 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (231): { - 464, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 89.1343, 68.3962, -14.971 ], - [ 7.69666, 73.828, -1.52501 ], - [ 0.0183294, 0.0064983 ], - [ inf, inf, inf, inf ], - [ 1009, 930, 1128, 1049 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1069, 990 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (232): { - 465, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 89.6576, 68.7977, -15.0731 ], - [ 7.69738, 73.8239, -1.52557 ], - [ 0.0183347, 0.00650116 ], - [ inf, inf, inf, inf ], - [ 1010, 931, 1129, 1050 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 991 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (233): { - 466, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 90.0696, 69.1139, -15.155 ], - [ 7.70064, 73.8196, -1.52579 ], - [ 0.0183441, 0.00650212 ], - [ inf, inf, inf, inf ], - [ 1010, 931, 1129, 1050 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 991 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (234): { - 467, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049882, - [ 90.4505, 69.4062, -15.2311 ], - [ 7.70464, 73.8152, -1.52591 ], - [ 0.0183484, 0.00650221 ], - [ inf, inf, inf, inf ], - [ 1010, 932, 1129, 1051 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 992 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (235): { - 468, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049804, - [ 90.8307, 69.6979, -15.3071 ], - [ 7.70796, 73.8111, -1.52572 ], - [ 0.0183573, 0.00650195 ], - [ inf, inf, inf, inf ], - [ 1010, 932, 1129, 1051 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 992 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (236): { - 469, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 91.2111, 69.9898, -15.3832 ], - [ 7.71108, 73.8071, -1.52544 ], - [ 0.0183617, 0.00650798 ], - [ inf, inf, inf, inf ], - [ 1010, 933, 1129, 1052 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 993 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (237): { - 470, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 91.599, 70.2874, -15.4594 ], - [ 7.71464, 73.8039, -1.52545 ], - [ 0.0183707, 0.00651044 ], - [ inf, inf, inf, inf ], - [ 1010, 933, 1129, 1052 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 993 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (238): { - 471, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049861, - [ 91.9894, 70.587, -15.5356 ], - [ 7.71833, 73.8009, -1.52556 ], - [ 0.0183819, 0.00651121 ], - [ inf, inf, inf, inf ], - [ 1011, 934, 1130, 1053 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1071, 994 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (239): { - 472, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 92.3792, 70.8861, -15.6117 ], - [ 7.72334, 73.7979, -1.52455 ], - [ 0.0183872, 0.00651806 ], - [ inf, inf, inf, inf ], - [ 1011, 935, 1130, 1054 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1071, 995 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (240): { - 473, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049883, - [ 92.7694, 71.1855, -15.6878 ], - [ 7.72878, 73.795, -1.52319 ], - [ 0.0183966, 0.00652074 ], - [ inf, inf, inf, inf ], - [ 1011, 935, 1130, 1054 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1071, 995 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (241): { - 474, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049816, - [ 93.1519, 71.479, -15.7637 ], - [ 7.73282, 73.79, -1.52359 ], - [ 0.0184079, 0.00652144 ], - [ inf, inf, inf, inf ], - [ 1012, 936, 1131, 1055 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 996 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (242): { - 475, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049799, - [ 93.532, 71.7707, -15.8394 ], - [ 7.7364, 73.7844, -1.52455 ], - [ 0.018413, 0.00652198 ], - [ inf, inf, inf, inf ], - [ 1012, 937, 1131, 1056 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 997 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (243): { - 476, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049913, - [ 93.8886, 72.0444, -15.8717 ], - [ 7.73862, 73.7806, -1.52336 ], - [ 0.0184225, 0.00652197 ], - [ inf, inf, inf, inf ], - [ 1012, 937, 1131, 1056 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 997 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (244): { - 477, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 94.2366, 72.3114, -15.8891 ], - [ 7.74037, 73.7774, -1.52145 ], - [ 0.018434, 0.00652154 ], - [ inf, inf, inf, inf ], - [ 1012, 938, 1131, 1057 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 998 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (245): { - 478, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 94.613, 72.6002, -15.943 ], - [ 7.74021, 73.7734, -1.51696 ], - [ 0.0184462, 0.00652095 ], - [ inf, inf, inf, inf ], - [ 1012, 939, 1131, 1058 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 999 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (246): { - 479, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049818, - [ 95.0121, 72.9064, -16.026 ], - [ 7.73853, 73.7688, -1.5104 ], - [ 0.0184589, 0.00651988 ], - [ inf, inf, inf, inf ], - [ 1012, 940, 1131, 1059 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1000 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (247): { - 480, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 95.4043, 73.2074, -16.1033 ], - [ 7.74056, 73.7642, -1.50974 ], - [ 0.0184643, 0.00651928 ], - [ inf, inf, inf, inf ], - [ 1012, 941, 1131, 1060 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1001 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (248): { - 481, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04987, - [ 95.7942, 73.5066, -16.1786 ], - [ 7.74392, 73.7596, -1.5112 ], - [ 0.0184742, 0.00651834 ], - [ inf, inf, inf, inf ], - [ 1012, 941, 1131, 1060 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1001 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (249): { - 482, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049821, - [ 96.1262, 73.7613, -16.2427 ], - [ 7.7466, 73.7562, -1.51077 ], - [ 0.0184862, 0.00652369 ], - [ inf, inf, inf, inf ], - [ 1012, 942, 1131, 1061 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1002 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (250): { - 483, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049861, - [ 96.437, 73.9998, -16.3027 ], - [ 7.74903, 73.7531, -1.50962 ], - [ 0.0184916, 0.00652618 ], - [ inf, inf, inf, inf ], - [ 1012, 943, 1131, 1062 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1003 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (251): { - 484, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049809, - [ 96.7896, 74.2703, -16.3713 ], - [ 7.75197, 73.7497, -1.50887 ], - [ 0.0185013, 0.00652681 ], - [ inf, inf, inf, inf ], - [ 1012, 944, 1131, 1063 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1004 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (252): { - 485, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 97.3005, 74.6624, -16.4723 ], - [ 7.75682, 73.7446, -1.50956 ], - [ 0.0185125, 0.00652695 ], - [ inf, inf, inf, inf ], - [ 1013, 944, 1132, 1063 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1004 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (253): { - 486, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 97.7246, 74.9878, -16.5547 ], - [ 7.76157, 73.7401, -1.5083 ], - [ 0.0185245, 0.00652681 ], - [ inf, inf, inf, inf ], - [ 1013, 945, 1132, 1064 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1005 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (254): { - 487, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 98.1142, 75.2867, -16.6298 ], - [ 7.76629, 73.7359, -1.50625 ], - [ 0.0185369, 0.00652653 ], - [ inf, inf, inf, inf ], - [ 1013, 946, 1132, 1065 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1006 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (255): { - 488, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049815, - [ 98.4974, 75.5808, -16.7046 ], - [ 7.76904, 73.7331, -1.50297 ], - [ 0.0185426, 0.00652666 ], - [ inf, inf, inf, inf ], - [ 1013, 947, 1132, 1066 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1007 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (256): { - 489, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 98.8784, 75.8731, -16.7795 ], - [ 7.771, 73.7307, -1.49917 ], - [ 0.0185524, 0.00652629 ], - [ inf, inf, inf, inf ], - [ 1013, 948, 1132, 1067 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1008 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (257): { - 490, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 99.2655, 76.1702, -16.8542 ], - [ 7.77334, 73.7272, -1.49757 ], - [ 0.0185637, 0.00652584 ], - [ inf, inf, inf, inf ], - [ 1013, 948, 1132, 1067 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1008 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (258): { - 491, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04979, - [ 99.6549, 76.4689, -16.9289 ], - [ 7.77585, 73.7232, -1.49688 ], - [ 0.0185763, 0.00653148 ], - [ inf, inf, inf, inf ], - [ 1013, 949, 1132, 1068 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1009 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (259): { - 492, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 100.044, 76.7678, -17.0035 ], - [ 7.77855, 73.7191, -1.49634 ], - [ 0.0185891, 0.00653346 ], - [ inf, inf, inf, inf ], - [ 1013, 950, 1132, 1069 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1010 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (260): { - 493, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04992, - [ 100.435, 77.0672, -17.0782 ], - [ 7.78136, 73.715, -1.49585 ], - [ 0.0185949, 0.00653464 ], - [ inf, inf, inf, inf ], - [ 1014, 951, 1133, 1070 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1011 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (261): { - 494, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049855, - [ 100.825, 77.3666, -17.1529 ], - [ 7.78372, 73.7112, -1.49549 ], - [ 0.0186045, 0.00653511 ], - [ inf, inf, inf, inf ], - [ 1014, 952, 1133, 1071 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1012 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (262): { - 495, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04983, - [ 101.215, 77.666, -17.2276 ], - [ 7.78589, 73.7074, -1.4952 ], - [ 0.0186159, 0.00653505 ], - [ inf, inf, inf, inf ], - [ 1014, 952, 1133, 1071 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1012 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (263): { - 496, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049867, - [ 101.582, 77.9479, -17.2795 ], - [ 7.78935, 73.705, -1.49442 ], - [ 0.018628, 0.00653458 ], - [ inf, inf, inf, inf ], - [ 1014, 953, 1133, 1072 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1013 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (264): { - 497, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04982, - [ 101.939, 78.2213, -17.3209 ], - [ 7.79341, 73.7031, -1.49343 ], - [ 0.0186409, 0.00654027 ], - [ inf, inf, inf, inf ], - [ 1014, 954, 1133, 1073 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1014 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (265): { - 498, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 102.321, 78.5147, -17.3823 ], - [ 7.79602, 73.698, -1.49235 ], - [ 0.0186539, 0.00654234 ], - [ inf, inf, inf, inf ], - [ 1014, 955, 1133, 1074 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1015 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (266): { - 499, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049893, - [ 102.73, 78.8287, -17.4642 ], - [ 7.79716, 73.6894, -1.4912 ], - [ 0.01866, 0.00654976 ], - [ inf, inf, inf, inf ], - [ 1015, 956, 1134, 1075 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1075, 1016 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (267): { - 500, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049796, - [ 103.133, 79.1377, -17.5411 ], - [ 7.79948, 73.684, -1.49164 ], - [ 0.0186697, 0.00655296 ], - [ inf, inf, inf, inf ], - [ 1015, 957, 1134, 1076 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1075, 1017 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (268): { - 501, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 103.533, 79.4448, -17.6158 ], - [ 7.8024, 73.6801, -1.49286 ], - [ 0.0186811, 0.00655409 ], - [ inf, inf, inf, inf ], - [ 1016, 957, 1135, 1076 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1076, 1017 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (269): { - 502, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049797, - [ 103.873, 79.7054, -17.6799 ], - [ 7.80403, 73.6769, -1.49236 ], - [ 0.0186932, 0.00655424 ], - [ inf, inf, inf, inf ], - [ 1016, 958, 1135, 1077 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1076, 1018 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (270): { - 503, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 104.183, 79.9434, -17.739 ], - [ 7.80503, 73.674, -1.491 ], - [ 0.0187051, 0.00655393 ], - [ inf, inf, inf, inf ], - [ 1016, 959, 1135, 1078 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1076, 1019 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (271): { - 504, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049907, - [ 104.525, 80.206, -17.8042 ], - [ 7.80636, 73.6708, -1.48914 ], - [ 0.0187189, 0.0065599 ], - [ inf, inf, inf, inf ], - [ 1016, 960, 1135, 1079 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1076, 1020 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (272): { - 505, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 105.048, 80.6075, -17.9038 ], - [ 7.80961, 73.6659, -1.48444 ], - [ 0.0187316, 0.00656186 ], - [ inf, inf, inf, inf ], - [ 1017, 961, 1136, 1080 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1021 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (273): { - 506, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049781, - [ 105.478, 80.9373, -17.9866 ], - [ 7.81383, 73.6608, -1.48341 ], - [ 0.0187372, 0.0065629 ], - [ inf, inf, inf, inf ], - [ 1017, 962, 1136, 1081 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1022 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (274): { - 507, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 105.859, 81.2296, -18.0607 ], - [ 7.81859, 73.6556, -1.48434 ], - [ 0.0187468, 0.00656268 ], - [ inf, inf, inf, inf ], - [ 1017, 963, 1136, 1082 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1023 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (275): { - 508, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 106.246, 81.5261, -18.1347 ], - [ 7.82074, 73.6526, -1.48458 ], - [ 0.0187581, 0.00656231 ], - [ inf, inf, inf, inf ], - [ 1017, 963, 1136, 1082 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1023 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (276): { - 509, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04991, - [ 106.635, 81.8252, -18.2088 ], - [ 7.82149, 73.6508, -1.48444 ], - [ 0.0187702, 0.00656128 ], - [ inf, inf, inf, inf ], - [ 1017, 964, 1136, 1083 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1024 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (277): { - 510, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049857, - [ 107.031, 82.1289, -18.2829 ], - [ 7.82489, 73.6467, -1.48572 ], - [ 0.0187757, 0.00656079 ], - [ inf, inf, inf, inf ], - [ 1017, 965, 1136, 1084 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1025 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (278): { - 511, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049771, - [ 107.43, 82.4348, -18.3569 ], - [ 7.82978, 73.6414, -1.48777 ], - [ 0.0187852, 0.00656635 ], - [ inf, inf, inf, inf ], - [ 1017, 966, 1136, 1085 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1026 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (279): { - 512, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 107.817, 82.732, -18.4309 ], - [ 7.83246, 73.6371, -1.48681 ], - [ 0.0187963, 0.00656856 ], - [ inf, inf, inf, inf ], - [ 1017, 966, 1136, 1085 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1026 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (280): { - 513, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 108.198, 83.024, -18.505 ], - [ 7.83387, 73.6333, -1.48411 ], - [ 0.0188013, 0.00656963 ], - [ inf, inf, inf, inf ], - [ 1018, 967, 1137, 1086 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1027 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (281): { - 514, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 108.59, 83.3249, -18.579 ], - [ 7.83501, 73.6299, -1.48403 ], - [ 0.0188104, 0.00656975 ], - [ inf, inf, inf, inf ], - [ 1018, 967, 1137, 1086 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1027 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (282): { - 515, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049909, - [ 108.989, 83.6316, -18.653 ], - [ 7.83598, 73.6266, -1.48549 ], - [ 0.0188216, 0.00656934 ], - [ inf, inf, inf, inf ], - [ 1018, 968, 1137, 1087 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1028 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (283): { - 516, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 109.362, 83.9175, -18.7311 ], - [ 7.83825, 73.6236, -1.48324 ], - [ 0.0188268, 0.00657559 ], - [ inf, inf, inf, inf ], - [ 1018, 969, 1137, 1088 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1029 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (284): { - 517, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 109.719, 84.1911, -18.8115 ], - [ 7.84131, 73.6209, -1.47874 ], - [ 0.0188362, 0.00657785 ], - [ inf, inf, inf, inf ], - [ 1018, 969, 1137, 1088 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1029 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (285): { - 518, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 110.102, 84.4856, -18.8925 ], - [ 7.84429, 73.6177, -1.47762 ], - [ 0.0188471, 0.00657869 ], - [ inf, inf, inf, inf ], - [ 1019, 970, 1138, 1089 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1079, 1030 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (286): { - 519, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 110.523, 84.808, -18.9741 ], - [ 7.84719, 73.6138, -1.48097 ], - [ 0.018852, 0.00657906 ], - [ inf, inf, inf, inf ], - [ 1019, 971, 1138, 1090 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1079, 1031 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (287): { - 520, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049854, - [ 110.924, 85.1163, -19.051 ], - [ 7.85028, 73.6106, -1.47984 ], - [ 0.018862, 0.00658525 ], - [ inf, inf, inf, inf ], - [ 1019, 971, 1138, 1090 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1079, 1031 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (288): { - 521, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 111.314, 85.4156, -19.1248 ], - [ 7.8535, 73.6077, -1.47587 ], - [ 0.0188733, 0.00658752 ], - [ inf, inf, inf, inf ], - [ 1019, 972, 1138, 1091 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1079, 1032 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (289): { - 522, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04981, - [ 111.66, 85.681, -19.1893 ], - [ 7.85626, 73.6052, -1.47505 ], - [ 0.0188783, 0.00658865 ], - [ inf, inf, inf, inf ], - [ 1020, 973, 1139, 1092 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1033 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (290): { - 523, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 111.978, 85.9247, -19.2479 ], - [ 7.85873, 73.603, -1.47625 ], - [ 0.0188877, 0.00658862 ], - [ inf, inf, inf, inf ], - [ 1020, 973, 1139, 1092 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1033 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (291): { - 524, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049866, - [ 112.313, 86.1821, -19.31 ], - [ 7.86135, 73.6004, -1.47722 ], - [ 0.018899, 0.0065884 ], - [ inf, inf, inf, inf ], - [ 1020, 974, 1139, 1093 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1034 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (292): { - 525, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 112.837, 86.5839, -19.4089 ], - [ 7.86566, 73.5944, -1.47564 ], - [ 0.0189042, 0.00658814 ], - [ inf, inf, inf, inf ], - [ 1020, 975, 1139, 1094 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1035 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (293): { - 526, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 113.282, 86.9255, -19.4929 ], - [ 7.86887, 73.5895, -1.47515 ], - [ 0.0189136, 0.00658751 ], - [ inf, inf, inf, inf ], - [ 1020, 975, 1139, 1094 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1035 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (294): { - 527, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 113.672, 87.225, -19.5666 ], - [ 7.87133, 73.5855, -1.4754 ], - [ 0.0189253, 0.00659295 ], - [ inf, inf, inf, inf ], - [ 1020, 976, 1139, 1095 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1036 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (295): { - 528, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049878, - [ 114.068, 87.5285, -19.6402 ], - [ 7.87355, 73.5819, -1.47485 ], - [ 0.0189306, 0.00659548 ], - [ inf, inf, inf, inf ], - [ 1020, 977, 1139, 1096 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1037 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (296): { - 529, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049831, - [ 114.467, 87.8343, -19.7136 ], - [ 7.87562, 73.5784, -1.47374 ], - [ 0.0189401, 0.00659599 ], - [ inf, inf, inf, inf ], - [ 1021, 977, 1140, 1096 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1037 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (297): { - 530, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 114.86, 88.136, -19.7869 ], - [ 7.87826, 73.5753, -1.47248 ], - [ 0.0189513, 0.00659568 ], - [ inf, inf, inf, inf ], - [ 1021, 978, 1140, 1097 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1038 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (298): { - 531, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 115.249, 88.4349, -19.8603 ], - [ 7.88133, 73.5722, -1.47111 ], - [ 0.0189561, 0.00659569 ], - [ inf, inf, inf, inf ], - [ 1021, 979, 1140, 1098 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1039 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (299): { - 532, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 115.639, 88.734, -19.9335 ], - [ 7.88436, 73.5685, -1.46781 ], - [ 0.0189656, 0.00659521 ], - [ inf, inf, inf, inf ], - [ 1021, 979, 1140, 1098 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1039 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (300): { - 533, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 116.029, 89.0333, -20.0067 ], - [ 7.88737, 73.5642, -1.46307 ], - [ 0.0189698, 0.00659522 ], - [ inf, inf, inf, inf ], - [ 1021, 980, 1140, 1099 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1040 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (301): { - 534, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049879, - [ 116.419, 89.3325, -20.0798 ], - [ 7.89071, 73.5607, -1.46032 ], - [ 0.0189786, 0.00659467 ], - [ inf, inf, inf, inf ], - [ 1021, 980, 1140, 1099 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1040 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (302): { - 535, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 116.809, 89.6314, -20.1526 ], - [ 7.8943, 73.5577, -1.45907 ], - [ 0.0189897, 0.00659389 ], - [ inf, inf, inf, inf ], - [ 1021, 981, 1140, 1100 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1041 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (303): { - 536, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049819, - [ 117.184, 89.9197, -20.219 ], - [ 7.89708, 73.5539, -1.45893 ], - [ 0.0189945, 0.00659328 ], - [ inf, inf, inf, inf ], - [ 1021, 982, 1140, 1101 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1042 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (304): { - 537, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04987, - [ 117.55, 90.2, -20.2807 ], - [ 7.89922, 73.5495, -1.45968 ], - [ 0.0190037, 0.00659236 ], - [ inf, inf, inf, inf ], - [ 1021, 982, 1140, 1101 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1042 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (305): { - 538, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049814, - [ 117.942, 90.5012, -20.3491 ], - [ 7.90113, 73.5456, -1.45946 ], - [ 0.0190148, 0.00659127 ], - [ inf, inf, inf, inf ], - [ 1021, 983, 1140, 1102 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1043 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (306): { - 539, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 118.383, 90.8392, -20.4294 ], - [ 7.90265, 73.5426, -1.45761 ], - [ 0.01902, 0.00659089 ], - [ inf, inf, inf, inf ], - [ 1020, 984, 1139, 1103 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1044 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (307): { - 540, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 118.795, 91.1559, -20.5054 ], - [ 7.90471, 73.5399, -1.45545 ], - [ 0.0190292, 0.0065903 ], - [ inf, inf, inf, inf ], - [ 1020, 984, 1139, 1103 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1044 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (308): { - 541, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049882, - [ 119.186, 91.4554, -20.5781 ], - [ 7.90723, 73.5373, -1.45303 ], - [ 0.0190411, 0.00659599 ], - [ inf, inf, inf, inf ], - [ 1021, 985, 1140, 1104 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1045 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (309): { - 542, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049751, - [ 119.532, 91.7209, -20.6424 ], - [ 7.90925, 73.5349, -1.45123 ], - [ 0.0190534, 0.00659804 ], - [ inf, inf, inf, inf ], - [ 1021, 986, 1140, 1105 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1046 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (310): { - 543, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 119.842, 91.959, -20.7 ], - [ 7.91088, 73.5325, -1.44993 ], - [ 0.0190589, 0.00659935 ], - [ inf, inf, inf, inf ], - [ 1021, 987, 1140, 1106 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1047 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (311): { - 544, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049899, - [ 120.158, 92.2015, -20.7587 ], - [ 7.91255, 73.53, -1.44869 ], - [ 0.0190688, 0.00659948 ], - [ inf, inf, inf, inf ], - [ 1021, 987, 1140, 1106 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1047 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (312): { - 545, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049774, - [ 120.693, 92.6121, -20.8556 ], - [ 7.91598, 73.5244, -1.44968 ], - [ 0.0190731, 0.00659992 ], - [ inf, inf, inf, inf ], - [ 1022, 988, 1141, 1107 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1048 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (313): { - 546, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049857, - [ 121.157, 92.9681, -20.9397 ], - [ 7.91942, 73.5202, -1.44971 ], - [ 0.0190821, 0.00660006 ], - [ inf, inf, inf, inf ], - [ 1022, 989, 1141, 1108 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1049 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (314): { - 547, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 121.557, 93.2747, -21.0121 ], - [ 7.92287, 73.5174, -1.44887 ], - [ 0.0190933, 0.00659955 ], - [ inf, inf, inf, inf ], - [ 1022, 989, 1141, 1108 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1049 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (315): { - 548, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049905, - [ 121.951, 93.5776, -21.0844 ], - [ 7.92569, 73.5146, -1.44777 ], - [ 0.0191052, 0.00659875 ], - [ inf, inf, inf, inf ], - [ 1022, 990, 1141, 1109 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1050 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (316): { - 549, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049781, - [ 122.34, 93.876, -21.1564 ], - [ 7.92793, 73.5119, -1.44644 ], - [ 0.0191178, 0.00659821 ], - [ inf, inf, inf, inf ], - [ 1022, 991, 1141, 1110 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1051 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (317): { - 550, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 122.735, 94.1787, -21.2285 ], - [ 7.92981, 73.5095, -1.44312 ], - [ 0.0191304, 0.00659734 ], - [ inf, inf, inf, inf ], - [ 1022, 992, 1141, 1111 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1052 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (318): { - 551, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 123.134, 94.4849, -21.3005 ], - [ 7.93135, 73.5073, -1.43794 ], - [ 0.0191362, 0.00659683 ], - [ inf, inf, inf, inf ], - [ 1022, 993, 1141, 1112 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1053 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (319): { - 552, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 123.528, 94.7876, -21.3724 ], - [ 7.9331, 73.5044, -1.43588 ], - [ 0.0191459, 0.00659582 ], - [ inf, inf, inf, inf ], - [ 1022, 994, 1141, 1113 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1054 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (320): { - 553, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049905, - [ 123.919, 95.0872, -21.4443 ], - [ 7.93506, 73.5009, -1.43682 ], - [ 0.0191573, 0.00659466 ], - [ inf, inf, inf, inf ], - [ 1022, 994, 1141, 1113 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1054 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (321): { - 554, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 124.314, 95.39, -21.5161 ], - [ 7.93652, 73.4981, -1.43594 ], - [ 0.0191625, 0.00659412 ], - [ inf, inf, inf, inf ], - [ 1022, 995, 1141, 1114 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1055 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (322): { - 555, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 124.713, 95.6963, -21.5877 ], - [ 7.9375, 73.4962, -1.43329 ], - [ 0.0191718, 0.00659327 ], - [ inf, inf, inf, inf ], - [ 1022, 996, 1141, 1115 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1056 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (323): { - 556, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049777, - [ 125.094, 95.9891, -21.6397 ], - [ 7.93917, 73.4935, -1.432 ], - [ 0.0191828, 0.00659259 ], - [ inf, inf, inf, inf ], - [ 1022, 996, 1141, 1115 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1056 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (324): { - 557, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049909, - [ 125.46, 96.2696, -21.6721 ], - [ 7.94154, 73.4901, -1.43206 ], - [ 0.0191947, 0.00659207 ], - [ inf, inf, inf, inf ], - [ 1022, 997, 1141, 1116 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1057 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (325): { - 558, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 125.835, 96.5576, -21.7185 ], - [ 7.94323, 73.4868, -1.43016 ], - [ 0.0192071, 0.00659127 ], - [ inf, inf, inf, inf ], - [ 1022, 998, 1141, 1117 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1058 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (326): { - 559, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049887, - [ 126.235, 96.8645, -21.7969 ], - [ 7.94342, 73.4837, -1.42383 ], - [ 0.0192125, 0.00659107 ], - [ inf, inf, inf, inf ], - [ 1022, 999, 1141, 1118 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1059 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (327): { - 560, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 126.633, 97.1699, -21.8713 ], - [ 7.94461, 73.4809, -1.41961 ], - [ 0.0192222, 0.00659019 ], - [ inf, inf, inf, inf ], - [ 1022, 1000, 1141, 1119 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1060 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (328): { - 561, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 127.03, 97.4742, -21.9415 ], - [ 7.94685, 73.4783, -1.41761 ], - [ 0.0192339, 0.00659554 ], - [ inf, inf, inf, inf ], - [ 1022, 1000, 1141, 1119 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1060 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (329): { - 562, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04978, - [ 127.39, 97.7506, -22.0053 ], - [ 7.94816, 73.4758, -1.4159 ], - [ 0.019239, 0.00659844 ], - [ inf, inf, inf, inf ], - [ 1022, 1001, 1141, 1120 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1061 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (330): { - 563, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04991, - [ 127.71, 97.9965, -22.062 ], - [ 7.94843, 73.4734, -1.41453 ], - [ 0.0192485, 0.00659947 ], - [ inf, inf, inf, inf ], - [ 1022, 1002, 1141, 1121 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1062 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (331): { - 564, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 128.03, 98.2421, -22.1186 ], - [ 7.9487, 73.4709, -1.41315 ], - [ 0.0192592, 0.00660006 ], - [ inf, inf, inf, inf ], - [ 1023, 1002, 1142, 1121 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1062 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (332): { - 565, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 128.558, 98.6469, -22.2116 ], - [ 7.95115, 73.4679, -1.41054 ], - [ 0.019265, 0.00659959 ], - [ inf, inf, inf, inf ], - [ 1023, 1003, 1142, 1122 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1063 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (333): { - 566, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 129.024, 99.0041, -22.2944 ], - [ 7.95311, 73.4656, -1.40822 ], - [ 0.0192739, 0.0065992 ], - [ inf, inf, inf, inf ], - [ 1023, 1004, 1142, 1123 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1064 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (334): { - 567, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 129.411, 99.3012, -22.3641 ], - [ 7.95442, 73.4641, -1.40631 ], - [ 0.019285, 0.00659851 ], - [ inf, inf, inf, inf ], - [ 1023, 1004, 1142, 1123 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1064 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (335): { - 568, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 129.804, 99.6033, -22.4343 ], - [ 7.95606, 73.4618, -1.40638 ], - [ 0.0192967, 0.00659761 ], - [ inf, inf, inf, inf ], - [ 1023, 1005, 1142, 1124 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1065 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (336): { - 569, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 130.206, 99.9113, -22.505 ], - [ 7.9581, 73.4585, -1.40887 ], - [ 0.0193021, 0.0065973 ], - [ inf, inf, inf, inf ], - [ 1023, 1006, 1142, 1125 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1066 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (337): { - 570, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049875, - [ 130.606, 100.219, -22.5756 ], - [ 7.96002, 73.4549, -1.40915 ], - [ 0.0193117, 0.00659669 ], - [ inf, inf, inf, inf ], - [ 1023, 1006, 1142, 1125 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1066 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (338): { - 571, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 131.006, 100.525, -22.6458 ], - [ 7.9618, 73.4512, -1.40677 ], - [ 0.0193231, 0.00659589 ], - [ inf, inf, inf, inf ], - [ 1023, 1007, 1142, 1126 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1067 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (339): { - 572, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04982, - [ 131.4, 100.828, -22.7159 ], - [ 7.96412, 73.4486, -1.40403 ], - [ 0.0193352, 0.00659477 ], - [ inf, inf, inf, inf ], - [ 1023, 1008, 1142, 1127 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1068 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (340): { - 573, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 131.79, 101.127, -22.7858 ], - [ 7.96711, 73.4474, -1.40083 ], - [ 0.0193479, 0.00659364 ], - [ inf, inf, inf, inf ], - [ 1023, 1009, 1142, 1128 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1069 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (341): { - 574, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 132.184, 101.429, -22.8556 ], - [ 7.96899, 73.4451, -1.39852 ], - [ 0.0193536, 0.006593 ], - [ inf, inf, inf, inf ], - [ 1023, 1010, 1142, 1129 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1070 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (342): { - 575, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 132.583, 101.735, -22.9253 ], - [ 7.96948, 73.4416, -1.39732 ], - [ 0.0193633, 0.0065923 ], - [ inf, inf, inf, inf ], - [ 1022, 1011, 1141, 1130 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1071 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (343): { - 576, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 132.967, 102.03, -22.997 ], - [ 7.96934, 73.439, -1.39592 ], - [ 0.0193747, 0.00659159 ], - [ inf, inf, inf, inf ], - [ 1023, 1011, 1142, 1130 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1071 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (344): { - 577, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049848, - [ 133.333, 102.311, -23.0711 ], - [ 7.96839, 73.4376, -1.39424 ], - [ 0.019387, 0.00659095 ], - [ inf, inf, inf, inf ], - [ 1023, 1012, 1142, 1131 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1072 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (345): { - 578, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 133.706, 102.597, -23.1459 ], - [ 7.96689, 73.4361, -1.39296 ], - [ 0.0193925, 0.00659067 ], - [ inf, inf, inf, inf ], - [ 1023, 1013, 1142, 1132 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1073 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (346): { - 579, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 134.106, 102.904, -23.2227 ], - [ 7.96369, 73.4345, -1.39291 ], - [ 0.0194021, 0.00658979 ], - [ inf, inf, inf, inf ], - [ 1023, 1014, 1142, 1133 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1074 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (347): { - 580, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 134.506, 103.211, -23.2963 ], - [ 7.9623, 73.4325, -1.39312 ], - [ 0.0194131, 0.00658905 ], - [ inf, inf, inf, inf ], - [ 1023, 1014, 1142, 1133 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1074 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (348): { - 581, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 134.904, 103.517, -23.3656 ], - [ 7.96333, 73.4298, -1.39367 ], - [ 0.019425, 0.00658816 ], - [ inf, inf, inf, inf ], - [ 1022, 1015, 1141, 1134 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1075 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (349): { - 582, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049875, - [ 135.266, 103.794, -23.4291 ], - [ 7.96429, 73.4277, -1.39311 ], - [ 0.0194304, 0.00658797 ], - [ inf, inf, inf, inf ], - [ 1023, 1016, 1142, 1135 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1076 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (350): { - 583, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 135.577, 104.033, -23.4844 ], - [ 7.96518, 73.4262, -1.39103 ], - [ 0.0194399, 0.00658774 ], - [ inf, inf, inf, inf ], - [ 1023, 1017, 1142, 1136 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1077 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (351): { - 584, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04977, - [ 135.887, 104.271, -23.5396 ], - [ 7.96606, 73.4248, -1.38895 ], - [ 0.0194505, 0.00658761 ], - [ inf, inf, inf, inf ], - [ 1023, 1017, 1142, 1136 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1077 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (352): { - 585, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.0499, - [ 136.402, 104.666, -23.629 ], - [ 7.9682, 73.4221, -1.38716 ], - [ 0.0194635, 0.00658556 ], - [ inf, inf, inf, inf ], - [ 1022, 1018, 1141, 1137 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1078 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (353): { - 586, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 136.886, 105.037, -23.712 ], - [ 7.97003, 73.4197, -1.38324 ], - [ 0.0194686, 0.00658545 ], - [ inf, inf, inf, inf ], - [ 1023, 1019, 1142, 1138 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1079 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (354): { - 587, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 137.294, 105.35, -23.7809 ], - [ 7.97122, 73.418, -1.37617 ], - [ 0.0194778, 0.00658485 ], - [ inf, inf, inf, inf ], - [ 1023, 1020, 1142, 1139 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1080 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (355): { - 588, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 137.695, 105.658, -23.8494 ], - [ 7.97161, 73.4158, -1.37019 ], - [ 0.0194888, 0.00658416 ], - [ inf, inf, inf, inf ], - [ 1023, 1020, 1142, 1139 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1080 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (356): { - 589, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 138.085, 105.957, -23.9176 ], - [ 7.97084, 73.413, -1.36581 ], - [ 0.0194936, 0.00658399 ], - [ inf, inf, inf, inf ], - [ 1023, 1021, 1142, 1140 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1081 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (357): { - 590, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04986, - [ 138.478, 106.259, -23.9856 ], - [ 7.97003, 73.4107, -1.35875 ], - [ 0.0195025, 0.00658335 ], - [ inf, inf, inf, inf ], - [ 1023, 1021, 1142, 1140 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1081 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (358): { - 591, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049872, - [ 138.878, 106.565, -24.0532 ], - [ 7.96917, 73.4094, -1.34763 ], - [ 0.0195133, 0.00658262 ], - [ inf, inf, inf, inf ], - [ 1023, 1022, 1142, 1141 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1083, 1082 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (359): { - 592, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049799, - [ 139.277, 106.871, -24.1203 ], - [ 7.96831, 73.4085, -1.33759 ], - [ 0.0195179, 0.00658184 ], - [ inf, inf, inf, inf ], - [ 1022, 1023, 1141, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (360): { - 593, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049881, - [ 139.676, 107.178, -24.1868 ], - [ 7.96746, 73.4083, -1.32921 ], - [ 0.0195195, 0.00658143 ], - [ inf, inf, inf, inf ], - [ 1022, 1023, 1141, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (361): { - 594, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049795, - [ 140.071, 107.481, -24.2527 ], - [ 7.96765, 73.4072, -1.31742 ], - [ 0.0195267, 0.00658067 ], - [ inf, inf, inf, inf ], - [ 1022, 1023, 1141, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (362): { - 595, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049871, - [ 140.461, 107.78, -24.318 ], - [ 7.96953, 73.4047, -1.30015 ], - [ 0.0195297, 0.00658009 ], - [ inf, inf, inf, inf ], - [ 1022, 1024, 1141, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (363): { - 596, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 140.842, 108.072, -24.3821 ], - [ 7.9704, 73.4036, -1.284 ], - [ 0.0195377, 0.00657926 ], - [ inf, inf, inf, inf ], - [ 1022, 1024, 1141, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (364): { - 597, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 141.207, 108.352, -24.4444 ], - [ 7.96963, 73.4044, -1.26969 ], - [ 0.019541, 0.00657871 ], - [ inf, inf, inf, inf ], - [ 1022, 1024, 1141, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (365): { - 598, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 141.581, 108.64, -24.5079 ], - [ 7.96884, 73.4049, -1.25575 ], - [ 0.0195418, 0.00657217 ], - [ inf, inf, inf, inf ], - [ 1022, 1025, 1141, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (366): { - 599, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04987, - [ 142.002, 108.962, -24.5767 ], - [ 7.96797, 73.4036, -1.24339 ], - [ 0.0195417, 0.00656917 ], - [ inf, inf, inf, inf ], - [ 1022, 1025, 1141, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1082, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (367): { - 600, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049815, - [ 142.414, 109.279, -24.6426 ], - [ 7.96668, 73.4028, -1.22984 ], - [ 0.0195417, 0.00656773 ], - [ inf, inf, inf, inf ], - [ 1021, 1025, 1140, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (368): { - 601, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049816, - [ 142.813, 109.585, -24.7034 ], - [ 7.96465, 73.4026, -1.21418 ], - [ 0.019541, 0.00656074 ], - [ inf, inf, inf, inf ], - [ 1021, 1025, 1140, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (369): { - 602, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049811, - [ 143.183, 109.868, -24.7592 ], - [ 7.96337, 73.4031, -1.19707 ], - [ 0.0195406, 0.00655734 ], - [ inf, inf, inf, inf ], - [ 1020, 1025, 1139, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (370): { - 603, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049905, - [ 143.501, 110.113, -24.8063 ], - [ 7.96339, 73.4045, -1.17733 ], - [ 0.01954, 0.00654928 ], - [ inf, inf, inf, inf ], - [ 1020, 1025, 1139, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (371): { - 604, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 143.82, 110.357, -24.8534 ], - [ 7.96342, 73.406, -1.15761 ], - [ 0.0195425, 0.00654791 ], - [ inf, inf, inf, inf ], - [ 1020, 1025, 1139, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1080, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (372): { - 605, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 144.31, 110.734, -24.9246 ], - [ 7.96428, 73.4068, -1.12626 ], - [ 0.0195357, 0.00653458 ], - [ inf, inf, inf, inf ], - [ 1018, 1024, 1137, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (373): { - 606, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 144.793, 111.105, -24.9927 ], - [ 7.96507, 73.4075, -1.09436 ], - [ 0.0195355, 0.00652509 ], - [ inf, inf, inf, inf ], - [ 1018, 1024, 1137, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (374): { - 607, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 145.202, 111.418, -25.0464 ], - [ 7.96545, 73.4087, -1.06548 ], - [ 0.019535, 0.00651388 ], - [ inf, inf, inf, inf ], - [ 1017, 1024, 1136, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1077, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (375): { - 608, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049871, - [ 145.604, 111.726, -25.0991 ], - [ 7.9659, 73.4105, -1.03684 ], - [ 0.0195342, 0.00650219 ], - [ inf, inf, inf, inf ], - [ 1016, 1024, 1135, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1076, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (376): { - 609, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04975, - [ 145.993, 112.025, -25.1499 ], - [ 7.96647, 73.4138, -1.00877 ], - [ 0.0195336, 0.00649 ], - [ inf, inf, inf, inf ], - [ 1015, 1024, 1134, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1075, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (377): { - 610, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049935, - [ 146.387, 112.327, -25.1997 ], - [ 7.96824, 73.4167, -0.977853 ], - [ 0.0195334, 0.00648425 ], - [ inf, inf, inf, inf ], - [ 1014, 1024, 1133, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1074, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (378): { - 611, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049856, - [ 146.786, 112.633, -25.2473 ], - [ 7.97238, 73.4189, -0.941537 ], - [ 0.0195261, 0.00647577 ], - [ inf, inf, inf, inf ], - [ 1013, 1024, 1132, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1073, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (379): { - 612, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049817, - [ 147.185, 112.94, -25.2937 ], - [ 7.97513, 73.4218, -0.905121 ], - [ 0.0195227, 0.00646558 ], - [ inf, inf, inf, inf ], - [ 1012, 1024, 1131, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (380): { - 613, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049768, - [ 147.583, 113.245, -25.3375 ], - [ 7.97503, 73.4262, -0.868478 ], - [ 0.019521, 0.00645487 ], - [ inf, inf, inf, inf ], - [ 1011, 1024, 1130, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1071, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (381): { - 614, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 147.982, 113.552, -25.3802 ], - [ 7.97543, 73.4308, -0.830631 ], - [ 0.0195201, 0.00644374 ], - [ inf, inf, inf, inf ], - [ 1010, 1024, 1129, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1070, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (382): { - 615, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049894, - [ 148.382, 113.858, -25.4204 ], - [ 7.97688, 73.4362, -0.790323 ], - [ 0.0195193, 0.0064322 ], - [ inf, inf, inf, inf ], - [ 1009, 1023, 1128, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1069, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (383): { - 616, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049801, - [ 148.77, 114.156, -25.4656 ], - [ 7.97845, 73.4416, -0.751014 ], - [ 0.0195187, 0.00642059 ], - [ inf, inf, inf, inf ], - [ 1008, 1024, 1127, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1068, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (384): { - 617, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049886, - [ 149.136, 114.437, -25.5216 ], - [ 7.98031, 73.4472, -0.713648 ], - [ 0.0195181, 0.00640919 ], - [ inf, inf, inf, inf ], - [ 1007, 1024, 1126, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (385): { - 618, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 149.508, 114.722, -25.5749 ], - [ 7.98216, 73.4528, -0.674951 ], - [ 0.0195105, 0.00639851 ], - [ inf, inf, inf, inf ], - [ 1007, 1023, 1126, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (386): { - 619, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 149.927, 115.044, -25.6097 ], - [ 7.98396, 73.4586, -0.626709 ], - [ 0.0195139, 0.00638671 ], - [ inf, inf, inf, inf ], - [ 1006, 1023, 1125, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1066, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (387): { - 620, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 150.338, 115.359, -25.6422 ], - [ 7.985, 73.4651, -0.57895 ], - [ 0.0195152, 0.00637508 ], - [ inf, inf, inf, inf ], - [ 1004, 1023, 1123, 1142 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1064, 1083 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (388): { - 621, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049854, - [ 150.727, 115.658, -25.6695 ], - [ 7.98426, 73.4734, -0.532255 ], - [ 0.0195155, 0.00636346 ], - [ inf, inf, inf, inf ], - [ 1003, 1024, 1122, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1063, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (389): { - 622, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 151.096, 115.941, -25.694 ], - [ 7.9843, 73.4812, -0.489377 ], - [ 0.0195154, 0.00635189 ], - [ inf, inf, inf, inf ], - [ 1002, 1024, 1121, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1062, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (390): { - 623, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 151.415, 116.185, -25.7122 ], - [ 7.98617, 73.488, -0.455514 ], - [ 0.0195149, 0.00634033 ], - [ inf, inf, inf, inf ], - [ 1001, 1024, 1120, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (391): { - 624, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049814, - [ 151.733, 116.429, -25.7304 ], - [ 7.98803, 73.4949, -0.421673 ], - [ 0.0195171, 0.00633437 ], - [ inf, inf, inf, inf ], - [ 1001, 1024, 1120, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (392): { - 625, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049893, - [ 152.221, 116.804, -25.7535 ], - [ 7.98843, 73.5063, -0.361914 ], - [ 0.0195119, 0.00630819 ], - [ inf, inf, inf, inf ], - [ 999, 1024, 1118, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (393): { - 626, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 152.716, 117.184, -25.7748 ], - [ 7.98791, 73.5181, -0.300997 ], - [ 0.0195119, 0.00629561 ], - [ inf, inf, inf, inf ], - [ 998, 1024, 1117, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (394): { - 627, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049787, - [ 153.115, 117.49, -25.7882 ], - [ 7.98609, 73.5276, -0.255109 ], - [ 0.0195187, 0.00628313 ], - [ inf, inf, inf, inf ], - [ 997, 1024, 1116, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1057, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (395): { - 628, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.0499, - [ 153.515, 117.797, -25.8004 ], - [ 7.98488, 73.5381, -0.208048 ], - [ 0.0195214, 0.00627078 ], - [ inf, inf, inf, inf ], - [ 996, 1024, 1115, 1143 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 1084 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (396): { - 629, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 153.914, 118.103, -25.8091 ], - [ 7.98523, 73.5507, -0.158285 ], - [ 0.0195223, 0.00625861 ], - [ inf, inf, inf, inf ], - [ 994, 1025, 1113, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1054, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (397): { - 630, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049848, - [ 154.314, 118.41, -25.8165 ], - [ 7.98547, 73.5628, -0.109216 ], - [ 0.0195292, 0.00624651 ], - [ inf, inf, inf, inf ], - [ 993, 1025, 1112, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1053, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (398): { - 631, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 154.713, 118.716, -25.8204 ], - [ 7.98541, 73.5736, -0.0620129 ], - [ 0.0195323, 0.00623486 ], - [ inf, inf, inf, inf ], - [ 992, 1025, 1111, 1144 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 1085 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (399): { - 632, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 155.112, 119.022, -25.8229 ], - [ 7.98572, 73.5846, -0.013998 ], - [ 0.0195336, 0.00622371 ], - [ inf, inf, inf, inf ], - [ 992, 1026, 1111, 1145 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 1086 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (400): { - 633, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 155.511, 119.328, -25.8218 ], - [ 7.98699, 73.5963, 0.0362627 ], - [ 0.0195341, 0.00621243 ], - [ inf, inf, inf, inf ], - [ 991, 1026, 1110, 1145 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1051, 1086 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (401): { - 634, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 155.91, 119.634, -25.8194 ], - [ 7.98721, 73.6091, 0.0862602 ], - [ 0.019541, 0.0062006 ], - [ inf, inf, inf, inf ], - [ 990, 1026, 1109, 1145 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 1086 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (402): { - 635, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 156.309, 119.941, -25.8134 ], - [ 7.98446, 73.6248, 0.135539 ], - [ 0.0195438, 0.00618891 ], - [ inf, inf, inf, inf ], - [ 989, 1027, 1108, 1146 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 1087 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (403): { - 636, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 156.697, 120.238, -25.8008 ], - [ 7.98246, 73.6394, 0.183778 ], - [ 0.0195448, 0.00618372 ], - [ inf, inf, inf, inf ], - [ 988, 1027, 1107, 1146 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1048, 1087 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (404): { - 637, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 157.054, 120.512, -25.7692 ], - [ 7.9827, 73.6508, 0.22903 ], - [ 0.0195448, 0.00617518 ], - [ inf, inf, inf, inf ], - [ 987, 1027, 1106, 1146 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 1087 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (405): { - 638, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049848, - [ 157.413, 120.788, -25.7384 ], - [ 7.98261, 73.6628, 0.275046 ], - [ 0.0195517, 0.00616514 ], - [ inf, inf, inf, inf ], - [ 987, 1027, 1106, 1146 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1047, 1087 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (406): { - 639, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049869, - [ 157.823, 121.103, -25.7206 ], - [ 7.97742, 73.6829, 0.332998 ], - [ 0.019554, 0.00615375 ], - [ inf, inf, inf, inf ], - [ 986, 1028, 1105, 1147 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1046, 1088 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (407): { - 640, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049753, - [ 158.23, 121.414, -25.702 ], - [ 7.97269, 73.7021, 0.388662 ], - [ 0.019555, 0.00614906 ], - [ inf, inf, inf, inf ], - [ 985, 1028, 1104, 1147 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1045, 1088 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (408): { - 641, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049923, - [ 158.63, 121.721, -25.6808 ], - [ 7.96932, 73.7189, 0.437742 ], - [ 0.019562, 0.00614002 ], - [ inf, inf, inf, inf ], - [ 984, 1028, 1103, 1147 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 1088 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (409): { - 642, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.0499, - [ 159.01, 122.013, -25.6597 ], - [ 7.96668, 73.7349, 0.484846 ], - [ 0.0195647, 0.00612971 ], - [ inf, inf, inf, inf ], - [ 984, 1029, 1103, 1148 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 1089 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (410): { - 643, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049788, - [ 159.327, 122.257, -25.6389 ], - [ 7.96633, 73.7484, 0.525585 ], - [ 0.019566, 0.00612521 ], - [ inf, inf, inf, inf ], - [ 983, 1029, 1102, 1148 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1043, 1089 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (411): { - 644, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 159.645, 122.5, -25.618 ], - [ 7.96598, 73.7618, 0.566372 ], - [ 0.0195752, 0.00612046 ], - [ inf, inf, inf, inf ], - [ 983, 1029, 1102, 1148 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1043, 1089 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (412): { - 645, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 160.12, 122.864, -25.5819 ], - [ 7.96549, 73.7806, 0.627506 ], - [ 0.019575, 0.00610406 ], - [ inf, inf, inf, inf ], - [ 981, 1029, 1100, 1148 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1041, 1089 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (413): { - 646, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 160.623, 123.251, -25.5411 ], - [ 7.96506, 73.8012, 0.692432 ], - [ 0.0195766, 0.0060942 ], - [ inf, inf, inf, inf ], - [ 981, 1030, 1100, 1149 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1041, 1090 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (414): { - 647, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 161.013, 123.55, -25.5048 ], - [ 7.96509, 73.8205, 0.742657 ], - [ 0.0195769, 0.00608288 ], - [ inf, inf, inf, inf ], - [ 980, 1030, 1099, 1149 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1040, 1090 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (415): { - 648, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 161.405, 123.851, -25.4673 ], - [ 7.96462, 73.8397, 0.79251 ], - [ 0.0195834, 0.00607117 ], - [ inf, inf, inf, inf ], - [ 979, 1030, 1098, 1149 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1039, 1090 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (416): { - 649, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049898, - [ 161.805, 124.157, -25.4259 ], - [ 7.96234, 73.8585, 0.840783 ], - [ 0.019586, 0.00605919 ], - [ inf, inf, inf, inf ], - [ 978, 1031, 1097, 1150 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1038, 1091 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (417): { - 650, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049785, - [ 162.203, 124.463, -25.3836 ], - [ 7.9601, 73.8771, 0.889702 ], - [ 0.0195943, 0.00605347 ], - [ inf, inf, inf, inf ], - [ 977, 1031, 1096, 1150 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1037, 1091 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (418): { - 651, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 162.602, 124.769, -25.3372 ], - [ 7.95804, 73.8949, 0.941487 ], - [ 0.0195976, 0.00604426 ], - [ inf, inf, inf, inf ], - [ 976, 1031, 1095, 1150 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1036, 1091 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (419): { - 652, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 163, 125.074, -25.2897 ], - [ 7.95619, 73.9133, 0.993474 ], - [ 0.0195989, 0.00603387 ], - [ inf, inf, inf, inf ], - [ 976, 1032, 1095, 1151 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1036, 1092 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (420): { - 653, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 163.389, 125.373, -25.2381 ], - [ 7.95514, 73.9337, 1.04617 ], - [ 0.0195989, 0.00602256 ], - [ inf, inf, inf, inf ], - [ 975, 1032, 1094, 1151 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1035, 1092 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (421): { - 654, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 163.783, 125.675, -25.1854 ], - [ 7.95405, 73.9545, 1.09844 ], - [ 0.0195986, 0.00601123 ], - [ inf, inf, inf, inf ], - [ 974, 1032, 1093, 1151 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1034, 1092 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (422): { - 655, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049817, - [ 164.191, 125.988, -25.1287 ], - [ 7.95282, 73.9767, 1.14899 ], - [ 0.0196051, 0.00599925 ], - [ inf, inf, inf, inf ], - [ 973, 1032, 1092, 1151 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1033, 1092 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (423): { - 656, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049916, - [ 164.59, 126.294, -25.0664 ], - [ 7.95166, 73.9982, 1.19896 ], - [ 0.019608, 0.00599397 ], - [ inf, inf, inf, inf ], - [ 972, 1033, 1091, 1152 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 1093 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (424): { - 657, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049814, - [ 164.946, 126.568, -24.9813 ], - [ 7.95084, 74.0168, 1.24598 ], - [ 0.0196088, 0.00598516 ], - [ inf, inf, inf, inf ], - [ 971, 1033, 1090, 1152 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 1093 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (425): { - 658, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04986, - [ 165.302, 126.841, -24.8961 ], - [ 7.95002, 74.0354, 1.29305 ], - [ 0.0196162, 0.00597554 ], - [ inf, inf, inf, inf ], - [ 971, 1033, 1090, 1152 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1031, 1093 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (426): { - 659, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049804, - [ 165.732, 127.171, -24.8223 ], - [ 7.94885, 74.0663, 1.34994 ], - [ 0.0196177, 0.00596223 ], - [ inf, inf, inf, inf ], - [ 970, 1033, 1089, 1152 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 1093 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (427): { - 660, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 166.155, 127.495, -24.7489 ], - [ 7.94735, 74.0958, 1.40605 ], - [ 0.0196186, 0.00595107 ], - [ inf, inf, inf, inf ], - [ 969, 1034, 1088, 1153 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 1094 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (428): { - 661, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049929, - [ 166.545, 127.795, -24.6765 ], - [ 7.9443, 74.119, 1.45851 ], - [ 0.0196191, 0.00594619 ], - [ inf, inf, inf, inf ], - [ 968, 1034, 1087, 1153 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1028, 1094 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (429): { - 662, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049779, - [ 166.922, 128.084, -24.6062 ], - [ 7.94173, 74.1412, 1.50908 ], - [ 0.019619, 0.00593783 ], - [ inf, inf, inf, inf ], - [ 967, 1034, 1086, 1153 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 1094 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (430): { - 663, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049888, - [ 167.241, 128.329, -24.5444 ], - [ 7.94135, 74.1596, 1.55164 ], - [ 0.0196256, 0.00592709 ], - [ inf, inf, inf, inf ], - [ 967, 1034, 1086, 1153 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 1094 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (431): { - 664, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049793, - [ 167.559, 128.572, -24.4827 ], - [ 7.94098, 74.1779, 1.59411 ], - [ 0.0196305, 0.00592594 ], - [ inf, inf, inf, inf ], - [ 967, 1035, 1086, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (432): { - 665, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049844, - [ 168.012, 128.92, -24.3886 ], - [ 7.93934, 74.2064, 1.65447 ], - [ 0.0196281, 0.00591223 ], - [ inf, inf, inf, inf ], - [ 965, 1035, 1084, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (433): { - 666, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 168.515, 129.306, -24.2813 ], - [ 7.93722, 74.2388, 1.72195 ], - [ 0.0196286, 0.00590342 ], - [ inf, inf, inf, inf ], - [ 965, 1035, 1084, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (434): { - 667, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 168.91, 129.61, -24.1938 ], - [ 7.93598, 74.2635, 1.77799 ], - [ 0.0196288, 0.00589954 ], - [ inf, inf, inf, inf ], - [ 964, 1035, 1083, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (435): { - 668, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 169.307, 129.914, -24.1054 ], - [ 7.93483, 74.2883, 1.83369 ], - [ 0.0196355, 0.00589113 ], - [ inf, inf, inf, inf ], - [ 964, 1035, 1083, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (436): { - 669, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04986, - [ 169.709, 130.223, -24.0111 ], - [ 7.93419, 74.3139, 1.88727 ], - [ 0.0196385, 0.00588759 ], - [ inf, inf, inf, inf ], - [ 963, 1035, 1082, 1154 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1095 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (437): { - 670, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 170.109, 130.53, -23.9161 ], - [ 7.93358, 74.3398, 1.94114 ], - [ 0.0196395, 0.00587971 ], - [ inf, inf, inf, inf ], - [ 963, 1036, 1082, 1155 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1096 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (438): { - 671, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 170.499, 130.829, -23.8172 ], - [ 7.93313, 74.3669, 1.99685 ], - [ 0.0196395, 0.00586984 ], - [ inf, inf, inf, inf ], - [ 962, 1036, 1081, 1155 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1096 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (439): { - 672, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 170.89, 131.129, -23.7175 ], - [ 7.93245, 74.394, 2.05196 ], - [ 0.0196396, 0.00586541 ], - [ inf, inf, inf, inf ], - [ 961, 1036, 1080, 1155 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1096 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (440): { - 673, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049816, - [ 171.289, 131.435, -23.6131 ], - [ 7.93041, 74.4214, 2.10342 ], - [ 0.0196461, 0.00585651 ], - [ inf, inf, inf, inf ], - [ 961, 1036, 1080, 1155 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1096 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (441): { - 674, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049918, - [ 171.688, 131.741, -23.5078 ], - [ 7.92856, 74.4491, 2.15487 ], - [ 0.019649, 0.00585267 ], - [ inf, inf, inf, inf ], - [ 960, 1036, 1079, 1155 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1096 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (442): { - 675, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 172.078, 132.04, -23.3982 ], - [ 7.92788, 74.4787, 2.20548 ], - [ 0.01965, 0.00584416 ], - [ inf, inf, inf, inf ], - [ 960, 1037, 1079, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (443): { - 676, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049804, - [ 172.464, 132.336, -23.2931 ], - [ 7.9273, 74.5077, 2.25613 ], - [ 0.0196506, 0.00584071 ], - [ inf, inf, inf, inf ], - [ 959, 1037, 1078, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (444): { - 677, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 172.828, 132.616, -23.2173 ], - [ 7.92745, 74.5327, 2.30742 ], - [ 0.0196504, 0.0058328 ], - [ inf, inf, inf, inf ], - [ 959, 1037, 1078, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (445): { - 678, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049862, - [ 173.193, 132.896, -23.1415 ], - [ 7.92759, 74.5577, 2.35871 ], - [ 0.0196511, 0.00583026 ], - [ inf, inf, inf, inf ], - [ 958, 1037, 1077, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (446): { - 679, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049777, - [ 173.6, 133.208, -23.0135 ], - [ 7.92433, 74.596, 2.40622 ], - [ 0.0196561, 0.00582068 ], - [ inf, inf, inf, inf ], - [ 958, 1037, 1077, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (447): { - 680, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04989, - [ 174.008, 133.521, -22.8824 ], - [ 7.92119, 74.6341, 2.45399 ], - [ 0.0196595, 0.00581751 ], - [ inf, inf, inf, inf ], - [ 957, 1037, 1076, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (448): { - 681, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 174.398, 133.821, -22.7577 ], - [ 7.92081, 74.6641, 2.5048 ], - [ 0.0196609, 0.00581647 ], - [ inf, inf, inf, inf ], - [ 957, 1038, 1076, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (449): { - 682, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049877, - [ 174.78, 134.114, -22.6354 ], - [ 7.92056, 74.6937, 2.55488 ], - [ 0.0196616, 0.00581662 ], - [ inf, inf, inf, inf ], - [ 957, 1038, 1076, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (450): { - 683, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049778, - [ 175.098, 134.357, -22.5322 ], - [ 7.92131, 74.7194, 2.59888 ], - [ 0.0196616, 0.00581707 ], - [ inf, inf, inf, inf ], - [ 957, 1038, 1076, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (451): { - 684, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049799, - [ 175.415, 134.601, -22.4289 ], - [ 7.92205, 74.7451, 2.64289 ], - [ 0.0196638, 0.0058181 ], - [ inf, inf, inf, inf ], - [ 958, 1038, 1077, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (452): { - 685, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 175.862, 134.944, -22.2796 ], - [ 7.9194, 74.7801, 2.69872 ], - [ 0.01966, 0.00581814 ], - [ inf, inf, inf, inf ], - [ 958, 1037, 1077, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (453): { - 686, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049993, - [ 176.385, 135.345, -22.1022 ], - [ 7.91501, 74.8208, 2.76155 ], - [ 0.0196604, 0.00581875 ], - [ inf, inf, inf, inf ], - [ 958, 1037, 1077, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (454): { - 687, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049788, - [ 176.775, 135.644, -21.9623 ], - [ 7.91622, 74.8526, 2.81263 ], - [ 0.0196607, 0.00581948 ], - [ inf, inf, inf, inf ], - [ 958, 1038, 1077, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (455): { - 688, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 177.166, 135.944, -21.8217 ], - [ 7.91744, 74.8845, 2.86354 ], - [ 0.0196611, 0.00582261 ], - [ inf, inf, inf, inf ], - [ 958, 1038, 1077, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (456): { - 689, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049787, - [ 177.564, 136.25, -21.6772 ], - [ 7.9188, 74.9161, 2.91226 ], - [ 0.0196611, 0.00582885 ], - [ inf, inf, inf, inf ], - [ 958, 1038, 1077, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (457): { - 690, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049887, - [ 177.963, 136.556, -21.5319 ], - [ 7.92018, 74.9479, 2.96115 ], - [ 0.019661, 0.00583102 ], - [ inf, inf, inf, inf ], - [ 959, 1037, 1078, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (458): { - 691, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 178.363, 136.863, -21.382 ], - [ 7.92178, 74.9807, 3.01076 ], - [ 0.0196608, 0.00583184 ], - [ inf, inf, inf, inf ], - [ 959, 1037, 1078, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (459): { - 692, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049795, - [ 178.761, 137.168, -21.2319 ], - [ 7.92352, 75.0137, 3.05995 ], - [ 0.0196614, 0.00583909 ], - [ inf, inf, inf, inf ], - [ 959, 1037, 1078, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (460): { - 693, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 179.15, 137.467, -21.0776 ], - [ 7.92687, 75.0477, 3.10504 ], - [ 0.0196616, 0.00584245 ], - [ inf, inf, inf, inf ], - [ 960, 1037, 1079, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (461): { - 694, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 179.541, 137.766, -20.923 ], - [ 7.93028, 75.0815, 3.1502 ], - [ 0.0196622, 0.00584415 ], - [ inf, inf, inf, inf ], - [ 960, 1038, 1079, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (462): { - 695, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 179.94, 138.073, -20.7639 ], - [ 7.93433, 75.1138, 3.19606 ], - [ 0.0196624, 0.00585154 ], - [ inf, inf, inf, inf ], - [ 960, 1037, 1079, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (463): { - 696, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049887, - [ 180.337, 138.377, -20.609 ], - [ 7.93807, 75.1461, 3.24143 ], - [ 0.0196627, 0.00585459 ], - [ inf, inf, inf, inf ], - [ 961, 1038, 1080, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (464): { - 697, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 180.693, 138.651, -20.5129 ], - [ 7.93766, 75.1777, 3.27979 ], - [ 0.0196631, 0.00586259 ], - [ inf, inf, inf, inf ], - [ 961, 1037, 1080, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (465): { - 698, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 181.05, 138.925, -20.4168 ], - [ 7.93725, 75.2093, 3.31813 ], - [ 0.0196643, 0.00586574 ], - [ inf, inf, inf, inf ], - [ 962, 1038, 1081, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (466): { - 699, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 181.45, 139.232, -20.252 ], - [ 7.93892, 75.2415, 3.3583 ], - [ 0.0196631, 0.00586753 ], - [ inf, inf, inf, inf ], - [ 962, 1037, 1081, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (467): { - 700, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 181.857, 139.544, -20.0777 ], - [ 7.94088, 75.2737, 3.39872 ], - [ 0.0196646, 0.00587435 ], - [ inf, inf, inf, inf ], - [ 962, 1038, 1081, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (468): { - 701, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 182.268, 139.859, -19.8969 ], - [ 7.94458, 75.3094, 3.44198 ], - [ 0.0196635, 0.0058774 ], - [ inf, inf, inf, inf ], - [ 963, 1037, 1082, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (469): { - 702, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 182.675, 140.171, -19.7181 ], - [ 7.94835, 75.3448, 3.48489 ], - [ 0.0196639, 0.0058784 ], - [ inf, inf, inf, inf ], - [ 963, 1037, 1082, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (470): { - 703, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 182.993, 140.415, -19.5782 ], - [ 7.95193, 75.3725, 3.51902 ], - [ 0.0196639, 0.00588514 ], - [ inf, inf, inf, inf ], - [ 963, 1037, 1082, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (471): { - 704, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049817, - [ 183.311, 140.659, -19.4385 ], - [ 7.95551, 75.4002, 3.55314 ], - [ 0.0196743, 0.00588762 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (472): { - 705, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 183.745, 140.992, -19.2445 ], - [ 7.96046, 75.4383, 3.59689 ], - [ 0.0196661, 0.00588899 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (473): { - 706, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049835, - [ 184.275, 141.399, -19.0058 ], - [ 7.96661, 75.4849, 3.64831 ], - [ 0.0196658, 0.00588953 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (474): { - 707, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049823, - [ 184.674, 141.706, -18.8223 ], - [ 7.97282, 75.5177, 3.68344 ], - [ 0.019665, 0.00588948 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (475): { - 708, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049863, - [ 185.074, 142.012, -18.6384 ], - [ 7.97895, 75.5506, 3.71848 ], - [ 0.0196652, 0.00588912 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (476): { - 709, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049936, - [ 185.474, 142.319, -18.4514 ], - [ 7.98287, 75.5867, 3.75055 ], - [ 0.0196647, 0.00588901 ], - [ inf, inf, inf, inf ], - [ 964, 1037, 1083, 1156 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1097 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (477): { - 710, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049663, - [ 185.871, 142.623, -18.2653 ], - [ 7.98675, 75.6225, 3.78257 ], - [ 0.0196655, 0.00588864 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (478): { - 711, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04989, - [ 186.261, 142.923, -18.0748 ], - [ 7.99003, 75.658, 3.82027 ], - [ 0.019665, 0.00588861 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (479): { - 712, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049883, - [ 186.651, 143.222, -17.8842 ], - [ 7.99338, 75.6934, 3.85778 ], - [ 0.0196656, 0.00588844 ], - [ inf, inf, inf, inf ], - [ 964, 1038, 1083, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (480): { - 713, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 187.06, 143.536, -17.6905 ], - [ 7.99996, 75.7279, 3.8869 ], - [ 0.0196651, 0.00588793 ], - [ inf, inf, inf, inf ], - [ 963, 1038, 1082, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (481): { - 714, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 187.468, 143.849, -17.4966 ], - [ 8.00654, 75.7624, 3.91604 ], - [ 0.0196727, 0.00588716 ], - [ inf, inf, inf, inf ], - [ 963, 1038, 1082, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (482): { - 715, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 187.858, 144.148, -17.2999 ], - [ 8.01299, 75.798, 3.94687 ], - [ 0.0196757, 0.00588674 ], - [ inf, inf, inf, inf ], - [ 963, 1038, 1082, 1157 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1098 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (483): { - 716, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049757, - [ 188.247, 144.447, -17.1042 ], - [ 8.01942, 75.8335, 3.97764 ], - [ 0.0196781, 0.00588666 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (484): { - 717, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049896, - [ 188.612, 144.727, -16.9979 ], - [ 8.02478, 75.8656, 4.007 ], - [ 0.0196786, 0.0058864 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (485): { - 718, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04981, - [ 188.977, 145.007, -16.8917 ], - [ 8.03014, 75.8977, 4.03631 ], - [ 0.0196798, 0.00588657 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (486): { - 719, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 189.37, 145.309, -16.6901 ], - [ 8.03157, 75.9367, 4.0669 ], - [ 0.0196793, 0.00588595 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (487): { - 720, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049885, - [ 189.77, 145.615, -16.4664 ], - [ 8.03209, 75.9773, 4.0978 ], - [ 0.0196798, 0.00588633 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (488): { - 721, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049824, - [ 190.178, 145.928, -16.2606 ], - [ 8.03454, 76.0142, 4.12758 ], - [ 0.0196788, 0.0058863 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (489): { - 722, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 190.587, 146.242, -16.0549 ], - [ 8.03699, 76.051, 4.15736 ], - [ 0.0196865, 0.00588594 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (490): { - 723, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 190.906, 146.487, -15.888 ], - [ 8.04029, 76.0802, 4.18214 ], - [ 0.0196889, 0.00588574 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (491): { - 724, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049822, - [ 191.224, 146.731, -15.7217 ], - [ 8.0436, 76.1092, 4.20684 ], - [ 0.0196923, 0.00588647 ], - [ inf, inf, inf, inf ], - [ 964, 1040, 1083, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (492): { - 725, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 191.645, 147.054, -15.4997 ], - [ 8.04674, 76.1469, 4.23759 ], - [ 0.01969, 0.00588532 ], - [ inf, inf, inf, inf ], - [ 963, 1039, 1082, 1158 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1099 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (493): { - 726, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 192.181, 147.465, -15.2155 ], - [ 8.04969, 76.1941, 4.27511 ], - [ 0.0196911, 0.00588587 ], - [ inf, inf, inf, inf ], - [ 963, 1040, 1082, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (494): { - 727, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 192.583, 147.774, -14.9994 ], - [ 8.05518, 76.2311, 4.3038 ], - [ 0.019691, 0.00588579 ], - [ inf, inf, inf, inf ], - [ 963, 1040, 1082, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (495): { - 728, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049862, - [ 192.983, 148.081, -14.7848 ], - [ 8.06073, 76.2679, 4.33231 ], - [ 0.0196915, 0.00588622 ], - [ inf, inf, inf, inf ], - [ 964, 1040, 1083, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (496): { - 729, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 193.381, 148.386, -14.568 ], - [ 8.06589, 76.3038, 4.35841 ], - [ 0.0196907, 0.00587938 ], - [ inf, inf, inf, inf ], - [ 963, 1040, 1082, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (497): { - 730, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 193.78, 148.692, -14.3511 ], - [ 8.07104, 76.3397, 4.38446 ], - [ 0.0196979, 0.0058759 ], - [ inf, inf, inf, inf ], - [ 963, 1040, 1082, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (498): { - 731, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 194.188, 149.005, -14.1315 ], - [ 8.07352, 76.3763, 4.41193 ], - [ 0.0197004, 0.00587386 ], - [ inf, inf, inf, inf ], - [ 963, 1040, 1082, 1159 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1023, 1100 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (499): { - 732, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04978, - [ 194.595, 149.318, -13.912 ], - [ 8.07591, 76.4129, 4.43941 ], - [ 0.0197021, 0.00587315 ], - [ inf, inf, inf, inf ], - [ 962, 1041, 1081, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (500): { - 733, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049891, - [ 194.995, 149.625, -13.6892 ], - [ 8.07958, 76.4501, 4.46602 ], - [ 0.0197023, 0.00587237 ], - [ inf, inf, inf, inf ], - [ 962, 1041, 1081, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (501): { - 734, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049886, - [ 195.395, 149.931, -13.4664 ], - [ 8.08331, 76.4874, 4.49258 ], - [ 0.0197033, 0.00587243 ], - [ inf, inf, inf, inf ], - [ 962, 1041, 1081, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (502): { - 735, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 195.803, 150.244, -13.2414 ], - [ 8.08659, 76.5243, 4.51922 ], - [ 0.0197027, 0.00586543 ], - [ inf, inf, inf, inf ], - [ 962, 1041, 1081, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (503): { - 736, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04986, - [ 196.211, 150.557, -13.0161 ], - [ 8.08984, 76.5612, 4.54588 ], - [ 0.0197032, 0.00586248 ], - [ inf, inf, inf, inf ], - [ 962, 1041, 1081, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (504): { - 737, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 196.579, 150.84, -12.8423 ], - [ 8.09148, 76.5957, 4.56682 ], - [ 0.0197099, 0.0058601 ], - [ inf, inf, inf, inf ], - [ 961, 1041, 1080, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (505): { - 738, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 196.945, 151.121, -12.6715 ], - [ 8.09302, 76.63, 4.58743 ], - [ 0.0197134, 0.00585318 ], - [ inf, inf, inf, inf ], - [ 961, 1041, 1080, 1160 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1101 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (506): { - 739, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 197.359, 151.438, -12.4383 ], - [ 8.09938, 76.6691, 4.6136 ], - [ 0.019714, 0.00584953 ], - [ inf, inf, inf, inf ], - [ 961, 1042, 1080, 1161 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1102 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (507): { - 740, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 197.788, 151.767, -12.1851 ], - [ 8.10728, 76.7097, 4.64157 ], - [ 0.019715, 0.00584816 ], - [ inf, inf, inf, inf ], - [ 960, 1042, 1079, 1161 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1102 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (508): { - 741, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 198.198, 152.082, -11.9511 ], - [ 8.11059, 76.7477, 4.66492 ], - [ 0.0197153, 0.00584716 ], - [ inf, inf, inf, inf ], - [ 960, 1042, 1079, 1161 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1102 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (509): { - 742, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049856, - [ 198.607, 152.396, -11.7183 ], - [ 8.11358, 76.7856, 4.68795 ], - [ 0.0197221, 0.00583991 ], - [ inf, inf, inf, inf ], - [ 960, 1042, 1079, 1161 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1020, 1102 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (510): { - 743, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 198.931, 152.645, -11.528 ], - [ 8.11555, 76.8165, 4.70617 ], - [ 0.0197247, 0.00583608 ], - [ inf, inf, inf, inf ], - [ 959, 1042, 1078, 1161 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1102 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (511): { - 744, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049806, - [ 199.249, 152.889, -11.3411 ], - [ 8.11744, 76.8469, 4.72401 ], - [ 0.0197277, 0.0058297 ], - [ inf, inf, inf, inf ], - [ 959, 1043, 1078, 1162 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1103 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (512): { - 745, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049886, - [ 199.662, 153.205, -11.1002 ], - [ 8.1205, 76.8863, 4.74347 ], - [ 0.0197256, 0.00582364 ], - [ inf, inf, inf, inf ], - [ 958, 1043, 1077, 1162 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1103 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (513): { - 746, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049898, - [ 200.209, 153.625, -10.783 ], - [ 8.12523, 76.9384, 4.76518 ], - [ 0.0197338, 0.00582228 ], - [ inf, inf, inf, inf ], - [ 958, 1043, 1077, 1162 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1103 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (514): { - 747, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 200.621, 153.941, -10.5377 ], - [ 8.12573, 76.9785, 4.78246 ], - [ 0.0197368, 0.00581468 ], - [ inf, inf, inf, inf ], - [ 958, 1044, 1077, 1163 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1104 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (515): { - 748, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049804, - [ 201.02, 154.248, -10.2992 ], - [ 8.12584, 77.0175, 4.79932 ], - [ 0.0197411, 0.00580962 ], - [ inf, inf, inf, inf ], - [ 957, 1044, 1076, 1163 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1104 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (516): { - 749, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 201.427, 154.56, -10.0596 ], - [ 8.12697, 77.0558, 4.81474 ], - [ 0.0197477, 0.00580114 ], - [ inf, inf, inf, inf ], - [ 957, 1044, 1076, 1163 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1017, 1104 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (517): { - 750, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049848, - [ 201.835, 154.873, -9.81983 ], - [ 8.12819, 77.094, 4.83001 ], - [ 0.0197508, 0.00579805 ], - [ inf, inf, inf, inf ], - [ 956, 1045, 1075, 1164 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1016, 1105 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (518): { - 751, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049833, - [ 202.244, 155.187, -9.57843 ], - [ 8.1295, 77.1339, 4.84313 ], - [ 0.0197586, 0.00578957 ], - [ inf, inf, inf, inf ], - [ 956, 1045, 1075, 1164 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1016, 1105 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (519): { - 752, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049789, - [ 202.652, 155.5, -9.33706 ], - [ 8.13083, 77.174, 4.85601 ], - [ 0.0197626, 0.00578632 ], - [ inf, inf, inf, inf ], - [ 955, 1046, 1074, 1165 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1015, 1106 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (520): { - 753, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049902, - [ 203.061, 155.814, -9.09417 ], - [ 8.1312, 77.2132, 4.86863 ], - [ 0.0197711, 0.00578374 ], - [ inf, inf, inf, inf ], - [ 955, 1046, 1074, 1165 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1015, 1106 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (521): { - 754, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049878, - [ 203.47, 156.127, -8.85127 ], - [ 8.13145, 77.2523, 4.88122 ], - [ 0.0197749, 0.00577669 ], - [ inf, inf, inf, inf ], - [ 955, 1047, 1074, 1166 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1015, 1107 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (522): { - 755, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04982, - [ 203.87, 156.434, -8.60763 ], - [ 8.1311, 77.2912, 4.89313 ], - [ 0.0197832, 0.00577255 ], - [ inf, inf, inf, inf ], - [ 954, 1047, 1073, 1166 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1014, 1107 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (523): { - 756, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049775, - [ 204.269, 156.74, -8.36407 ], - [ 8.13068, 77.3301, 4.90495 ], - [ 0.0197867, 0.00576476 ], - [ inf, inf, inf, inf ], - [ 954, 1048, 1073, 1167 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1014, 1108 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (524): { - 757, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049941, - [ 204.646, 157.03, -8.14469 ], - [ 8.1295, 77.3667, 4.91314 ], - [ 0.0197881, 0.0057611 ], - [ inf, inf, inf, inf ], - [ 953, 1048, 1072, 1167 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1013, 1108 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (525): { - 758, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049809, - [ 205.019, 157.316, -7.92915 ], - [ 8.12821, 77.4029, 4.92083 ], - [ 0.0197959, 0.00575956 ], - [ inf, inf, inf, inf ], - [ 953, 1048, 1072, 1167 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1013, 1108 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (526): { - 759, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 205.432, 157.633, -7.67498 ], - [ 8.12491, 77.4459, 4.93042 ], - [ 0.0197982, 0.00575181 ], - [ inf, inf, inf, inf ], - [ 953, 1049, 1072, 1168 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1013, 1109 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (527): { - 760, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 205.862, 157.963, -7.40374 ], - [ 8.12071, 77.492, 4.94085 ], - [ 0.0198063, 0.00574801 ], - [ inf, inf, inf, inf ], - [ 952, 1049, 1071, 1168 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1012, 1109 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (528): { - 761, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 206.273, 158.278, -7.15396 ], - [ 8.11665, 77.5318, 4.94211 ], - [ 0.0198091, 0.005746 ], - [ inf, inf, inf, inf ], - [ 952, 1050, 1071, 1169 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1012, 1110 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (529): { - 762, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049809, - [ 206.682, 158.592, -6.90768 ], - [ 8.11262, 77.5707, 4.94204 ], - [ 0.0198106, 0.00573902 ], - [ inf, inf, inf, inf ], - [ 952, 1050, 1071, 1169 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1012, 1110 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (530): { - 763, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 207.012, 158.845, -6.70491 ], - [ 8.1105, 77.6047, 4.94252 ], - [ 0.0198105, 0.00573577 ], - [ inf, inf, inf, inf ], - [ 951, 1050, 1070, 1169 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1011, 1110 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (531): { - 764, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049785, - [ 207.329, 159.089, -6.50895 ], - [ 8.10867, 77.6381, 4.94308 ], - [ 0.019819, 0.00573539 ], - [ inf, inf, inf, inf ], - [ 951, 1050, 1070, 1169 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1011, 1110 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (532): { - 765, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049931, - [ 207.724, 159.391, -6.26531 ], - [ 8.1052, 77.6783, 4.94462 ], - [ 0.0198194, 0.00572613 ], - [ inf, inf, inf, inf ], - [ 951, 1050, 1070, 1169 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1011, 1110 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (533): { - 766, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049815, - [ 208.259, 159.802, -5.93492 ], - [ 8.09873, 77.731, 4.94797 ], - [ 0.0198212, 0.00572342 ], - [ inf, inf, inf, inf ], - [ 950, 1051, 1069, 1170 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1111 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (534): { - 767, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049878, - [ 208.687, 160.13, -5.67607 ], - [ 8.0935, 77.7728, 4.94335 ], - [ 0.0198216, 0.00572203 ], - [ inf, inf, inf, inf ], - [ 950, 1051, 1069, 1170 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1111 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (535): { - 768, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049808, - [ 209.095, 160.444, -5.42981 ], - [ 8.0885, 77.8127, 4.93737 ], - [ 0.0198291, 0.0057213 ], - [ inf, inf, inf, inf ], - [ 950, 1051, 1069, 1170 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1111 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (536): { - 769, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04986, - [ 209.503, 160.757, -5.18389 ], - [ 8.08197, 77.8534, 4.93466 ], - [ 0.0198317, 0.00571434 ], - [ inf, inf, inf, inf ], - [ 950, 1051, 1069, 1170 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1111 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (537): { - 770, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049761, - [ 209.911, 161.069, -4.93857 ], - [ 8.07518, 77.8941, 4.93253 ], - [ 0.0198334, 0.00571163 ], - [ inf, inf, inf, inf ], - [ 950, 1052, 1069, 1171 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1112 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (538): { - 771, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049927, - [ 210.312, 161.377, -4.6924 ], - [ 8.07076, 77.9335, 4.92957 ], - [ 0.0198336, 0.00570987 ], - [ inf, inf, inf, inf ], - [ 949, 1052, 1068, 1171 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1009, 1112 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (539): { - 772, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 210.711, 161.684, -4.44668 ], - [ 8.06681, 77.9725, 4.92646 ], - [ 0.0198338, 0.00570294 ], - [ inf, inf, inf, inf ], - [ 949, 1052, 1068, 1171 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1009, 1112 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (540): { - 773, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 211.111, 161.99, -4.20114 ], - [ 8.06052, 78.0128, 4.92088 ], - [ 0.0198406, 0.005699 ], - [ inf, inf, inf, inf ], - [ 948, 1052, 1067, 1171 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1008, 1112 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (541): { - 774, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 211.51, 162.296, -3.95591 ], - [ 8.05379, 78.0535, 4.91483 ], - [ 0.0198441, 0.00569751 ], - [ inf, inf, inf, inf ], - [ 948, 1053, 1067, 1172 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1008, 1113 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (542): { - 775, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 211.909, 162.602, -3.71132 ], - [ 8.04843, 78.0928, 4.90817 ], - [ 0.019845, 0.00569004 ], - [ inf, inf, inf, inf ], - [ 948, 1053, 1067, 1172 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1008, 1113 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (543): { - 776, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049825, - [ 212.307, 162.908, -3.46693 ], - [ 8.04336, 78.1318, 4.9014 ], - [ 0.0198455, 0.00568024 ], - [ inf, inf, inf, inf ], - [ 947, 1053, 1066, 1172 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1007, 1113 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (544): { - 777, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 212.679, 163.193, -3.26797 ], - [ 8.03766, 78.1689, 4.89356 ], - [ 0.0198453, 0.00567546 ], - [ inf, inf, inf, inf ], - [ 947, 1053, 1066, 1172 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1007, 1113 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (545): { - 778, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 213.044, 163.474, -3.0787 ], - [ 8.03184, 78.2056, 4.8855 ], - [ 0.0198526, 0.00567303 ], - [ inf, inf, inf, inf ], - [ 946, 1053, 1065, 1172 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1006, 1113 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (546): { - 779, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049862, - [ 213.431, 163.77, -2.84005 ], - [ 8.02396, 78.2478, 4.87268 ], - [ 0.0198552, 0.00566496 ], - [ inf, inf, inf, inf ], - [ 946, 1054, 1065, 1173 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1006, 1114 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (547): { - 780, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 213.83, 164.077, -2.57273 ], - [ 8.01488, 78.2931, 4.85709 ], - [ 0.0198569, 0.00566189 ], - [ inf, inf, inf, inf ], - [ 945, 1054, 1064, 1173 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1114 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (548): { - 781, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04981, - [ 214.237, 164.389, -2.32642 ], - [ 8.00694, 78.3331, 4.84589 ], - [ 0.0198643, 0.00565313 ], - [ inf, inf, inf, inf ], - [ 945, 1054, 1064, 1173 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1114 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (549): { - 782, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 214.645, 164.702, -2.08477 ], - [ 7.99926, 78.372, 4.8357 ], - [ 0.019875, 0.00564918 ], - [ inf, inf, inf, inf ], - [ 944, 1055, 1063, 1174 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1115 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (550): { - 783, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 214.981, 164.959, -1.88384 ], - [ 7.99307, 78.405, 4.82598 ], - [ 0.0198799, 0.00564747 ], - [ inf, inf, inf, inf ], - [ 944, 1056, 1063, 1175 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1116 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (551): { - 784, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 215.298, 165.203, -1.69257 ], - [ 7.98724, 78.4365, 4.81637 ], - [ 0.0198903, 0.00564709 ], - [ inf, inf, inf, inf ], - [ 944, 1056, 1063, 1175 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1116 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (552): { - 785, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049839, - [ 215.675, 165.492, -1.464 ], - [ 7.97973, 78.4745, 4.80415 ], - [ 0.0198944, 0.00564597 ], - [ inf, inf, inf, inf ], - [ 944, 1057, 1063, 1176 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1117 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (553): { - 786, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049863, - [ 216.199, 165.895, -1.14261 ], - [ 7.96808, 78.5286, 4.78544 ], - [ 0.0199042, 0.00564603 ], - [ inf, inf, inf, inf ], - [ 944, 1057, 1063, 1176 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1117 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (554): { - 787, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049863, - [ 216.625, 166.221, -0.887575 ], - [ 7.95954, 78.5701, 4.77363 ], - [ 0.019916, 0.00564583 ], - [ inf, inf, inf, inf ], - [ 944, 1058, 1063, 1177 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1118 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (555): { - 788, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049808, - [ 217.024, 166.527, -0.649918 ], - [ 7.95181, 78.6084, 4.76362 ], - [ 0.0199282, 0.00563922 ], - [ inf, inf, inf, inf ], - [ 944, 1059, 1063, 1178 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1119 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (556): { - 789, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049872, - [ 217.423, 166.833, -0.413441 ], - [ 7.94519, 78.6462, 4.74992 ], - [ 0.0199415, 0.00564245 ], - [ inf, inf, inf, inf ], - [ 944, 1060, 1063, 1179 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1004, 1120 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (557): { - 790, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049818, - [ 217.821, 167.139, -0.177614 ], - [ 7.93888, 78.684, 4.73527 ], - [ 0.0199549, 0.00564374 ], - [ inf, inf, inf, inf ], - [ 945, 1061, 1064, 1180 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1121 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (558): { - 791, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 218.22, 167.445, 0.0575502 ], - [ 7.93018, 78.7214, 4.71693 ], - [ 0.0199681, 0.00564407 ], - [ inf, inf, inf, inf ], - [ 945, 1063, 1064, 1182 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1123 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (559): { - 792, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 218.619, 167.751, 0.292497 ], - [ 7.92081, 78.7587, 4.69755 ], - [ 0.0199742, 0.00564464 ], - [ inf, inf, inf, inf ], - [ 945, 1063, 1064, 1182 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1123 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (560): { - 793, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049881, - [ 219.011, 168.052, 0.526246 ], - [ 7.90919, 78.798, 4.68108 ], - [ 0.0199846, 0.00565093 ], - [ inf, inf, inf, inf ], - [ 945, 1064, 1064, 1183 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1005, 1124 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (561): { - 794, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049806, - [ 219.401, 168.351, 0.759241 ], - [ 7.89694, 78.8378, 4.66548 ], - [ 0.0199961, 0.00565358 ], - [ inf, inf, inf, inf ], - [ 946, 1065, 1065, 1184 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1006, 1125 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (562): { - 795, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049872, - [ 219.791, 168.65, 0.99134 ], - [ 7.88824, 78.8759, 4.64903 ], - [ 0.0200087, 0.00566106 ], - [ inf, inf, inf, inf ], - [ 946, 1066, 1065, 1185 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1006, 1126 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (563): { - 796, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049807, - [ 220.181, 168.949, 1.22277 ], - [ 7.88063, 78.9133, 4.63234 ], - [ 0.020021, 0.00566409 ], - [ inf, inf, inf, inf ], - [ 947, 1067, 1066, 1186 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1007, 1127 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (564): { - 797, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04989, - [ 220.545, 169.229, 1.40273 ], - [ 7.87015, 78.9486, 4.61419 ], - [ 0.0200337, 0.00567196 ], - [ inf, inf, inf, inf ], - [ 947, 1068, 1066, 1187 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1007, 1128 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (565): { - 798, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049806, - [ 220.901, 169.502, 1.56627 ], - [ 7.85881, 78.9831, 4.59563 ], - [ 0.0200535, 0.00568163 ], - [ inf, inf, inf, inf ], - [ 948, 1069, 1067, 1188 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1008, 1129 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (566): { - 799, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049874, - [ 221.3, 169.808, 1.77957 ], - [ 7.84791, 79.0211, 4.57323 ], - [ 0.0200624, 0.00568631 ], - [ inf, inf, inf, inf ], - [ 949, 1070, 1068, 1189 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1009, 1130 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (567): { - 800, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049861, - [ 221.731, 170.139, 2.03051 ], - [ 7.83737, 79.0615, 4.54795 ], - [ 0.0200737, 0.00569444 ], - [ inf, inf, inf, inf ], - [ 950, 1071, 1069, 1190 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1010, 1131 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (568): { - 801, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049806, - [ 222.13, 170.445, 2.26202 ], - [ 7.82722, 79.0985, 4.52589 ], - [ 0.0200859, 0.0057045 ], - [ inf, inf, inf, inf ], - [ 951, 1071, 1070, 1190 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1011, 1131 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (569): { - 802, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04984, - [ 222.521, 170.745, 2.48735 ], - [ 7.81721, 79.1344, 4.50487 ], - [ 0.0200992, 0.00571495 ], - [ inf, inf, inf, inf ], - [ 952, 1072, 1071, 1191 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1012, 1132 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (570): { - 803, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 222.851, 170.998, 2.67712 ], - [ 7.80829, 79.1662, 4.48746 ], - [ 0.0201126, 0.00572619 ], - [ inf, inf, inf, inf ], - [ 953, 1073, 1072, 1192 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1013, 1133 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (571): { - 804, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 223.161, 171.236, 2.85483 ], - [ 7.79974, 79.1967, 4.47127 ], - [ 0.0201252, 0.00573525 ], - [ inf, inf, inf, inf ], - [ 953, 1074, 1072, 1193 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1013, 1134 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (572): { - 805, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049876, - [ 223.52, 171.512, 3.05963 ], - [ 7.79052, 79.2308, 4.45251 ], - [ 0.0201399, 0.00575571 ], - [ inf, inf, inf, inf ], - [ 955, 1075, 1074, 1194 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1015, 1135 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (573): { - 806, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049794, - [ 224.043, 171.913, 3.35643 ], - [ 7.77901, 79.277, 4.42498 ], - [ 0.020153, 0.00576913 ], - [ inf, inf, inf, inf ], - [ 956, 1076, 1075, 1195 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1016, 1136 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (574): { - 807, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 224.463, 172.235, 3.59642 ], - [ 7.76956, 79.3156, 4.40087 ], - [ 0.0201662, 0.00578188 ], - [ inf, inf, inf, inf ], - [ 958, 1077, 1077, 1196 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1018, 1137 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (575): { - 808, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 224.844, 172.527, 3.81547 ], - [ 7.76087, 79.3514, 4.37802 ], - [ 0.0201797, 0.00580023 ], - [ inf, inf, inf, inf ], - [ 959, 1078, 1078, 1197 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1019, 1138 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (576): { - 809, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 225.23, 172.824, 4.03253 ], - [ 7.75158, 79.3873, 4.35525 ], - [ 0.0201933, 0.00581504 ], - [ inf, inf, inf, inf ], - [ 961, 1079, 1080, 1198 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1021, 1139 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (577): { - 810, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049847, - [ 225.619, 173.122, 4.24886 ], - [ 7.74206, 79.4233, 4.3325 ], - [ 0.0202068, 0.00583398 ], - [ inf, inf, inf, inf ], - [ 962, 1080, 1081, 1199 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1022, 1140 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (578): { - 811, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049867, - [ 226.009, 173.422, 4.46402 ], - [ 7.73575, 79.4561, 4.30886 ], - [ 0.0202201, 0.00584888 ], - [ inf, inf, inf, inf ], - [ 964, 1081, 1083, 1200 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1024, 1141 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (579): { - 812, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049836, - [ 226.399, 173.721, 4.67857 ], - [ 7.73071, 79.4878, 4.2849 ], - [ 0.020227, 0.00586849 ], - [ inf, inf, inf, inf ], - [ 965, 1082, 1084, 1201 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1025, 1142 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (580): { - 813, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049828, - [ 226.789, 174.02, 4.89147 ], - [ 7.72198, 79.5225, 4.26333 ], - [ 0.0202373, 0.00588349 ], - [ inf, inf, inf, inf ], - [ 967, 1083, 1086, 1202 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1027, 1143 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (581): { - 814, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 227.179, 174.319, 5.10375 ], - [ 7.71175, 79.5586, 4.24272 ], - [ 0.0202426, 0.00590271 ], - [ inf, inf, inf, inf ], - [ 969, 1083, 1088, 1202 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1029, 1143 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (582): { - 815, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049793, - [ 227.555, 174.608, 5.31393 ], - [ 7.70482, 79.5914, 4.21929 ], - [ 0.0202522, 0.00592365 ], - [ inf, inf, inf, inf ], - [ 970, 1084, 1089, 1203 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1030, 1144 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (583): { - 816, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049837, - [ 227.926, 174.892, 5.5235 ], - [ 7.69926, 79.623, 4.19467 ], - [ 0.0202639, 0.00594525 ], - [ inf, inf, inf, inf ], - [ 972, 1084, 1091, 1203 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1032, 1144 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (584): { - 817, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049902, - [ 228.288, 175.17, 5.68892 ], - [ 7.69466, 79.6534, 4.1698 ], - [ 0.0202692, 0.00596172 ], - [ inf, inf, inf, inf ], - [ 974, 1085, 1093, 1204 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1034, 1145 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (585): { - 818, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049791, - [ 228.644, 175.443, 5.83476 ], - [ 7.69049, 79.6832, 4.14489 ], - [ 0.020279, 0.00598108 ], - [ inf, inf, inf, inf ], - [ 975, 1085, 1094, 1204 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1035, 1145 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (586): { - 819, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049857, - [ 229.021, 175.733, 6.0199 ], - [ 7.68557, 79.717, 4.11389 ], - [ 0.020284, 0.0060027 ], - [ inf, inf, inf, inf ], - [ 977, 1086, 1096, 1205 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1037, 1146 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (587): { - 820, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049912, - [ 229.418, 176.037, 6.24338 ], - [ 7.67992, 79.7547, 4.07696 ], - [ 0.0202866, 0.00602532 ], - [ inf, inf, inf, inf ], - [ 979, 1086, 1098, 1205 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1039, 1146 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (588): { - 821, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049763, - [ 229.805, 176.334, 6.45238 ], - [ 7.67621, 79.7875, 4.04877 ], - [ 0.0202952, 0.00604142 ], - [ inf, inf, inf, inf ], - [ 981, 1086, 1100, 1205 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1041, 1146 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (589): { - 822, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 230.188, 176.628, 6.65505 ], - [ 7.67341, 79.8181, 4.0247 ], - [ 0.0202997, 0.00606106 ], - [ inf, inf, inf, inf ], - [ 983, 1087, 1102, 1206 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1043, 1147 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (590): { - 823, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049897, - [ 230.517, 176.88, 6.82758 ], - [ 7.67167, 79.844, 4.00297 ], - [ 0.0203024, 0.0060826 ], - [ inf, inf, inf, inf ], - [ 984, 1087, 1103, 1206 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1044, 1147 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (591): { - 824, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 230.82, 177.113, 6.98583 ], - [ 7.67043, 79.8675, 3.98235 ], - [ 0.0203115, 0.00609547 ], - [ inf, inf, inf, inf ], - [ 986, 1087, 1105, 1206 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1046, 1147 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (592): { - 825, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 231.159, 177.373, 7.16118 ], - [ 7.66911, 79.8935, 3.95895 ], - [ 0.020315, 0.00611872 ], - [ inf, inf, inf, inf ], - [ 988, 1088, 1107, 1207 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1048, 1148 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (593): { - 826, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049841, - [ 231.682, 177.774, 7.42437 ], - [ 7.66744, 79.9316, 3.92126 ], - [ 0.0203175, 0.00613283 ], - [ inf, inf, inf, inf ], - [ 989, 1088, 1108, 1207 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1049, 1148 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (594): { - 827, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 232.11, 178.103, 7.6412 ], - [ 7.66696, 79.963, 3.89005 ], - [ 0.0203261, 0.00615093 ], - [ inf, inf, inf, inf ], - [ 990, 1088, 1109, 1207 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1050, 1148 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (595): { - 828, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049782, - [ 232.491, 178.395, 7.83468 ], - [ 7.66706, 79.9911, 3.86212 ], - [ 0.0203304, 0.0061651 ], - [ inf, inf, inf, inf ], - [ 992, 1088, 1111, 1207 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1052, 1148 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (596): { - 829, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 232.871, 178.687, 8.02593 ], - [ 7.667, 80.0194, 3.83396 ], - [ 0.0203332, 0.00618377 ], - [ inf, inf, inf, inf ], - [ 993, 1089, 1112, 1208 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1053, 1149 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (597): { - 830, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 233.251, 178.978, 8.21605 ], - [ 7.66685, 80.0479, 3.80569 ], - [ 0.0203349, 0.00619864 ], - [ inf, inf, inf, inf ], - [ 995, 1089, 1114, 1208 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1055, 1149 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (598): { - 831, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049907, - [ 233.632, 179.271, 8.40507 ], - [ 7.66769, 80.0762, 3.77698 ], - [ 0.0203437, 0.00621727 ], - [ inf, inf, inf, inf ], - [ 996, 1089, 1115, 1208 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1056, 1149 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (599): { - 832, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049779, - [ 234.013, 179.563, 8.59292 ], - [ 7.66905, 80.1043, 3.74813 ], - [ 0.0203478, 0.00623151 ], - [ inf, inf, inf, inf ], - [ 998, 1090, 1117, 1209 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1058, 1150 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (600): { - 833, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049908, - [ 234.394, 179.855, 8.77892 ], - [ 7.67093, 80.1304, 3.71919 ], - [ 0.0203503, 0.00624384 ], - [ inf, inf, inf, inf ], - [ 999, 1090, 1118, 1209 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1059, 1150 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (601): { - 834, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049834, - [ 234.774, 180.147, 8.96337 ], - [ 7.67308, 80.1552, 3.69028 ], - [ 0.0203588, 0.00625521 ], - [ inf, inf, inf, inf ], - [ 1000, 1090, 1119, 1209 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1060, 1150 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (602): { - 835, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049859, - [ 235.16, 180.443, 9.14625 ], - [ 7.67317, 80.1818, 3.6616 ], - [ 0.0203632, 0.00626662 ], - [ inf, inf, inf, inf ], - [ 1001, 1091, 1120, 1210 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1061, 1151 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (603): { - 836, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049829, - [ 235.55, 180.742, 9.3281 ], - [ 7.67211, 80.2093, 3.63308 ], - [ 0.0203661, 0.0062844 ], - [ inf, inf, inf, inf ], - [ 1002, 1091, 1121, 1210 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1062, 1151 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (604): { - 837, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 235.913, 181.021, 9.46631 ], - [ 7.67398, 80.2344, 3.60587 ], - [ 0.0203744, 0.00629835 ], - [ inf, inf, inf, inf ], - [ 1004, 1091, 1123, 1210 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1064, 1151 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (605): { - 838, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049852, - [ 236.262, 181.288, 9.57954 ], - [ 7.67751, 80.2581, 3.57941 ], - [ 0.0203791, 0.00631799 ], - [ inf, inf, inf, inf ], - [ 1005, 1092, 1124, 1211 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1065, 1152 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (606): { - 839, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 236.632, 181.572, 9.72801 ], - [ 7.68108, 80.2832, 3.54879 ], - [ 0.020382, 0.00634042 ], - [ inf, inf, inf, inf ], - [ 1007, 1092, 1126, 1211 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1067, 1152 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (607): { - 840, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 237.028, 181.876, 9.92055 ], - [ 7.6847, 80.3098, 3.51295 ], - [ 0.0203914, 0.00636452 ], - [ inf, inf, inf, inf ], - [ 1009, 1092, 1128, 1211 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1069, 1152 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (608): { - 841, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049858, - [ 237.422, 182.179, 10.1017 ], - [ 7.69001, 80.3353, 3.48081 ], - [ 0.0203968, 0.00639585 ], - [ inf, inf, inf, inf ], - [ 1012, 1093, 1131, 1212 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1072, 1153 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (609): { - 842, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049784, - [ 237.814, 182.479, 10.2753 ], - [ 7.69636, 80.36, 3.45105 ], - [ 0.0204075, 0.00642332 ], - [ inf, inf, inf, inf ], - [ 1015, 1093, 1134, 1212 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1075, 1153 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (610): { - 843, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049887, - [ 238.151, 182.738, 10.4256 ], - [ 7.70226, 80.3808, 3.42499 ], - [ 0.0204142, 0.00646267 ], - [ inf, inf, inf, inf ], - [ 1018, 1094, 1137, 1213 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1078, 1154 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (611): { - 844, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049846, - [ 238.455, 182.971, 10.5611 ], - [ 7.70788, 80.3991, 3.40128 ], - [ 0.0204261, 0.00649572 ], - [ inf, inf, inf, inf ], - [ 1021, 1094, 1140, 1213 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1081, 1154 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (612): { - 845, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049873, - [ 238.781, 183.221, 10.7059 ], - [ 7.71363, 80.4188, 3.37542 ], - [ 0.0204329, 0.00654561 ], - [ inf, inf, inf, inf ], - [ 1026, 1095, 1145, 1214 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1086, 1155 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (613): { - 846, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049851, - [ 239.291, 183.613, 10.9296 ], - [ 7.72052, 80.4502, 3.33139 ], - [ 0.0204448, 0.00658324 ], - [ inf, inf, inf, inf ], - [ 1029, 1095, 1148, 1214 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1089, 1155 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (614): { - 847, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.0498, - [ 239.728, 183.948, 11.1165 ], - [ 7.72966, 80.4752, 3.29588 ], - [ 0.0204519, 0.0066261 ], - [ inf, inf, inf, inf ], - [ 1033, 1096, 1152, 1215 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1093, 1156 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (615): { - 848, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049849, - [ 240.118, 184.247, 11.2801 ], - [ 7.74026, 80.4962, 3.26578 ], - [ 0.0204639, 0.00667045 ], - [ inf, inf, inf, inf ], - [ 1037, 1096, 1156, 1215 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1097, 1156 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (616): { - 849, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049856, - [ 240.502, 184.542, 11.4417 ], - [ 7.75294, 80.5169, 3.23426 ], - [ 0.0204714, 0.00672208 ], - [ inf, inf, inf, inf ], - [ 1041, 1097, 1160, 1216 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1101, 1157 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (617): { - 850, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049826, - [ 240.882, 184.833, 11.6019 ], - [ 7.76697, 80.5374, 3.20182 ], - [ 0.0204834, 0.00677002 ], - [ inf, inf, inf, inf ], - [ 1046, 1097, 1165, 1216 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1106, 1157 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (618): { - 851, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049861, - [ 241.268, 185.13, 11.7606 ], - [ 7.78131, 80.5571, 3.16956 ], - [ 0.0204978, 0.00682275 ], - [ inf, inf, inf, inf ], - [ 1050, 1098, 1169, 1217 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1110, 1158 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (619): { - 852, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049864, - [ 241.658, 185.429, 11.9181 ], - [ 7.79586, 80.5762, 3.13744 ], - [ 0.0205064, 0.00687777 ], - [ inf, inf, inf, inf ], - [ 1055, 1099, 1174, 1218 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1115, 1159 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (620): { - 853, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049755, - [ 242.048, 185.728, 12.0732 ], - [ 7.8138, 80.5943, 3.10327 ], - [ 0.0205194, 0.00693352 ], - [ inf, inf, inf, inf ], - [ 1060, 1099, 1179, 1218 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1120, 1159 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (621): { - 854, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049924, - [ 242.439, 186.028, 12.2274 ], - [ 7.83417, 80.6116, 3.06751 ], - [ 0.0205274, 0.00698983 ], - [ inf, inf, inf, inf ], - [ 1065, 1100, 1184, 1219 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1125, 1160 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (622): { - 855, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 242.828, 186.327, 12.3793 ], - [ 7.85417, 80.6288, 3.0334 ], - [ 0.0205401, 0.00704585 ], - [ inf, inf, inf, inf ], - [ 1071, 1101, 1190, 1220 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1131, 1161 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (623): { - 856, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049882, - [ 243.218, 186.626, 12.5299 ], - [ 7.87395, 80.6458, 3.00038 ], - [ 0.0205548, 0.0071017 ], - [ inf, inf, inf, inf ], - [ 1076, 1101, 1195, 1220 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1136, 1161 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (624): { - 857, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049821, - [ 243.594, 186.914, 12.6342 ], - [ 7.89557, 80.6612, 2.96722 ], - [ 0.0205707, 0.00715727 ], - [ inf, inf, inf, inf ], - [ 1081, 1102, 1200, 1221 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1141, 1162 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (625): { - 858, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049853, - [ 243.958, 187.194, 12.7051 ], - [ 7.91856, 80.6753, 2.9339 ], - [ 0.0205876, 0.00721857 ], - [ inf, inf, inf, inf ], - [ 1086, 1103, 1205, 1222 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1146, 1163 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (626): { - 859, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 244.339, 187.486, 12.8088 ], - [ 7.94419, 80.6908, 2.89742 ], - [ 0.0205974, 0.00727675 ], - [ inf, inf, inf, inf ], - [ 1092, 1104, 1211, 1223 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1152, 1164 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (627): { - 860, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049822, - [ 244.746, 187.798, 12.9653 ], - [ 7.97404, 80.7086, 2.85584 ], - [ 0.0206119, 0.00733731 ], - [ inf, inf, inf, inf ], - [ 1097, 1105, 1216, 1224 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ 1157, 1165 ], - invalid, - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (628): { - 861, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049865, - [ 245.15, 188.108, 13.1131 ], - [ 8.00584, 80.7235, 2.81819 ], - [ 0.0206257, 0.00739835 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (629): { - 862, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049832, - [ 245.552, 188.417, 13.2536 ], - [ 8.03919, 80.7359, 2.78377 ], - [ 0.0206413, 0.00746085 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (630): { - 863, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049827, - [ 245.907, 188.689, 13.3759 ], - [ 8.0698, 80.7468, 2.75061 ], - [ 0.0206572, 0.00752355 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (631): { - 864, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049843, - [ 246.225, 188.933, 13.4841 ], - [ 8.09828, 80.7565, 2.71843 ], - [ 0.0206721, 0.00757338 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (632): { - 865, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049845, - [ 246.553, 189.185, 13.5953 ], - [ 8.12776, 80.7663, 2.68564 ], - [ 0.0206898, 0.00765036 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (633): { - 866, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049842, - [ 247.101, 189.605, 13.7726 ], - [ 8.1797, 80.778, 2.63939 ], - [ 0.020706, 0.00771621 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (634): { - 867, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.04988, - [ 247.573, 189.967, 13.9234 ], - [ 8.22501, 80.7878, 2.59809 ], - [ 0.0207225, 0.00778219 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (635): { - 868, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049814, - [ 247.981, 190.28, 14.0519 ], - [ 8.26478, 80.7958, 2.56096 ], - [ 0.0207391, 0.0078484 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (636): { - 869, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049838, - [ 248.394, 190.597, 14.1785 ], - [ 8.3085, 80.8035, 2.52308 ], - [ 0.0207559, 0.00791509 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (637): { - 870, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049788, - [ 248.812, 190.918, 14.3033 ], - [ 8.3555, 80.8107, 2.48461 ], - [ 0.0207725, 0.00798108 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (638): { - 871, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049898, - [ 249.23, 191.239, 14.4263 ], - [ 8.40405, 80.8168, 2.44698 ], - [ 0.0207892, 0.00804987 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (639): { - 872, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049871, - [ 249.648, 191.559, 14.5474 ], - [ 8.45383, 80.8217, 2.41017 ], - [ 0.0208059, 0.00811775 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (640): { - 873, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049742, - [ 250.069, 191.883, 14.6661 ], - [ 8.50574, 80.8262, 2.37154 ], - [ 0.0208227, 0.00818595 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - }, - (641): { - 874, - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - 0, - 0, - 0, - 0, - 0, - 0, - 0.049902, - [ 250.497, 192.211, 14.7834 ], - [ 8.55983, 80.8303, 2.33107 ], - [ 0.0208397, 0.00825495 ], - [ inf, inf, inf, inf ], - [ -10059, -10059, -9940, -9940 ], - [ -1, -1, -1, -1 ], - [ -1, -1, -1, -1 ], - [ 0, 0 ], - [ -9999, -9999 ], - invalid, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 2 - } - } - } - } - } -} -} diff --git a/tools/testfiles/tcompound_enum.h5 b/tools/testfiles/tcompound_enum.h5 deleted file mode 100644 index 2e66da2..0000000 Binary files a/tools/testfiles/tcompound_enum.h5 and /dev/null differ -- cgit v0.12 From dd32c639c6ac8b688ae2a3cefdf7f1e42de770cc Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Tue, 7 Apr 2015 13:13:57 -0500 Subject: [svn-r26751] Updated. --- MANIFEST | 1 - 1 file changed, 1 deletion(-) diff --git a/MANIFEST b/MANIFEST index f3e3c32..bad1bfd 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1358,7 +1358,6 @@ ./tools/h5stat/testfiles/h5stat_tsohm.h5 # h5dump test files -./tools/testfiles/README ./tools/testfiles/charsets.h5 ./tools/testfiles/charsets.ddl ./tools/testfiles/family_file00000.h5 -- cgit v0.12 From 4662835250ea71afff2ccffac5e5311a215229b7 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 7 Apr 2015 14:16:25 -0500 Subject: [svn-r26757] Description: Minor typos & code cleanups Tested on: MacOSX/64 10.10.2 (amazon) w/serial & parallel (Too minor to require h5committest) --- src/H5Dbtree.c | 3 +- src/H5Dchunk.c | 102 +++++++++++++++++++++++++------------------------------- src/H5Dio.c | 4 +-- src/H5Dpkg.h | 4 +-- src/H5Olayout.c | 1 + src/H5VM.c | 15 ++++----- test/dsets.c | 14 ++++---- 7 files changed, 64 insertions(+), 79 deletions(-) diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index 35c2afa..75080f7 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -926,8 +926,7 @@ H5D__btree_idx_is_space_alloc(const H5O_storage_chunk_t *storage) /*------------------------------------------------------------------------- * Function: H5D__btree_idx_insert * - * Purpose: Create the chunk it if it doesn't exist, or reallocate the - * chunk if its size changed. + * Purpose: Insert chunk entry into the indexing structure. * * Return: Non-negative on success/Negative on failure * diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 9f2a020..a284cee 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -17,7 +17,7 @@ * Thursday, April 24, 2008 * * Purpose: Abstract indexed (chunked) I/O functions. The logical - * multi-dimensional data space is regularly partitioned into + * multi-dimensional dataspace is regularly partitioned into * same-sized "chunks", the first of which is aligned with the * logical origin. The chunks are indexed by different methods, * that map a chunk index to disk address. Each chunk can be @@ -201,7 +201,6 @@ static herr_t H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *ty H5D_chunk_map_t *fm); static herr_t H5D__chunk_flush(H5D_t *dset, hid_t dxpl_id); static herr_t H5D__chunk_io_term(const H5D_chunk_map_t *fm); -static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); /* "Nonexistent" layout operation callback */ static ssize_t @@ -216,6 +215,7 @@ static void *H5D__chunk_alloc(size_t size, const H5O_pline_t *pline); static void *H5D__chunk_xfree(void *chk, const H5O_pline_t *pline); static void *H5D__chunk_realloc(void *chk, size_t size, const H5O_pline_t *pline); +static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); static herr_t H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *udata); static hbool_t H5D__chunk_cinfo_cache_found(const H5D_chunk_cached_t *last, @@ -329,7 +329,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) - /* Allocate data space and initialize it if it hasn't been. */ + /* Allocate dataspace and initialize it if it hasn't been. */ if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) /* Allocate storage */ if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) @@ -341,10 +341,10 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz /* Calculate the index of this chunk */ if(H5VM_chunk_index((unsigned)space_ndims, offset, - layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) + layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") - /* Find out the file address of the chunk */ + /* Find out the file address of the chunk (if any) */ if(H5D__chunk_lookup(dset, dxpl_id, offset, chunk_idx, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") @@ -381,7 +381,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") - /* Evict the entry from the cache if present, but do not flush + /* Evict the (old) entry from the cache if present, but do not flush * it to disk */ if(UINT_MAX != udata.idx_hint) if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[udata.idx_hint], FALSE) < 0) @@ -601,21 +601,21 @@ H5D__chunk_init(H5F_t *f, hid_t dxpl_id, const H5D_t *dset, hid_t dapl_id) HDassert(dset); if(NULL == (dapl = (H5P_genplist_t *)H5I_object(dapl_id))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for fapl ID"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for fapl ID") /* Use the properties in dapl_id if they have been set, otherwise use the properties from the file */ if(H5P_get(dapl, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, &rdcc->nslots) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache number of slots") if(rdcc->nslots == H5D_CHUNK_CACHE_NSLOTS_DEFAULT) rdcc->nslots = H5F_RDCC_NSLOTS(f); if(H5P_get(dapl, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, &rdcc->nbytes_max) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get data cache byte size") if(rdcc->nbytes_max == H5D_CHUNK_CACHE_NBYTES_DEFAULT) rdcc->nbytes_max = H5F_RDCC_NBYTES(f); if(H5P_get(dapl, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, &rdcc->w0) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks"); + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET,FAIL, "can't get preempt read chunks") if(rdcc->w0 < 0) rdcc->w0 = H5F_RDCC_W0(f); @@ -2244,9 +2244,9 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud /* Stored the information to cache */ HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims); + last->addr = udata->addr; last->nbytes = udata->nbytes; last->filter_mask = udata->filter_mask; - last->addr = udata->addr; /* Indicate that the cached info is valid */ last->valid = TRUE; @@ -2291,9 +2291,9 @@ H5D__chunk_cinfo_cache_found(const H5D_chunk_cached_t *last, H5D_chunk_ud_t *uda HGOTO_DONE(FALSE) /* Retrieve the information from the cache */ + udata->addr = last->addr; udata->nbytes = last->nbytes; udata->filter_mask = last->filter_mask; - udata->addr = last->addr; /* Indicate that the data was found */ HGOTO_DONE(TRUE) @@ -2392,9 +2392,9 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, udata->common.rdcc = &(dset->shared->cache.chunk); /* Reset information about the chunk we are looking for */ + udata->addr = HADDR_UNDEF; udata->nbytes = 0; udata->filter_mask = 0; - udata->addr = HADDR_UNDEF; /* Check for chunk in cache */ if(dset->shared->cache.chunk.nslots > 0) { @@ -2402,8 +2402,7 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, ent = dset->shared->cache.chunk.slot[udata->idx_hint]; if(ent) - for(u = 0, found = TRUE; u < dset->shared->layout.u.chunk.ndims - 1; - u++) + for(u = 0, found = TRUE; u < dset->shared->layout.u.chunk.ndims - 1; u++) if(chunk_offset[u] != ent->offset[u]) { found = FALSE; break; @@ -2590,10 +2589,9 @@ done: * output pipeline failed. Do not free the entry or remove it from the * list. */ - if(ret_value < 0 && point_of_no_return) { + if(ret_value < 0 && point_of_no_return) if(ent->chunk) ent->chunk = (uint8_t *)H5D__chunk_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); - } /* end if */ FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) } /* end H5D__chunk_flush_entry() */ @@ -3264,7 +3262,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, int space_ndims; /* Dataset's space rank */ hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ const uint32_t *chunk_dim = layout->u.chunk.dim; /* Convenience pointer to chunk dimensions */ - int op_dim; /* Current operationg dimension */ + unsigned op_dim; /* Current operating dimension */ H5D_fill_buf_info_t fb_info; /* Dataset's fill buffer info */ hbool_t fb_info_init = FALSE; /* Whether the fill value buffer has been initialized */ herr_t ret_value = SUCCEED; /* Return value */ @@ -3286,7 +3284,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Check if any space dimensions are 0, if so we do not have to do anything */ - for(op_dim=0; op_dimshared->cache.chunk.last); @@ -3393,7 +3391,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, * certain dimension, max_unalloc is updated in order to avoid allocating * those chunks again. */ - for(op_dim=0; op_dimstorage.u.chunk; udata.common.offset = chunk_offset; udata.common.rdcc = NULL; + udata.addr = HADDR_UNDEF; H5_ASSIGN_OVERFLOW(udata.nbytes, chunk_size, size_t, uint32_t); udata.filter_mask = filter_mask; - udata.addr = HADDR_UNDEF; - /* Allocate the chunk with all processes */ + /* Allocate the chunk (with all processes) */ if((ops->insert)(&idx_info, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert record into chunk index") HDassert(H5F_addr_defined(udata.addr)); @@ -3511,11 +3508,9 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* collect all chunk addresses to be written to write collectively at the end */ /* allocate/resize address array if no more space left */ - if(0 == chunk_info.num_io % 1024) { - if(NULL == (chunk_info.addr = (haddr_t *)HDrealloc - (chunk_info.addr, (chunk_info.num_io + 1024) * sizeof(haddr_t)))) - HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed for chunk addresses"); - } /* end if */ + if(0 == chunk_info.num_io % 1024) + if(NULL == (chunk_info.addr = (haddr_t *)HDrealloc(chunk_info.addr, (chunk_info.num_io + 1024) * sizeof(haddr_t)))) + HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed for chunk addresses") /* Store the chunk's address for later */ chunk_info.addr[chunk_info.num_io] = udata.addr; @@ -3526,8 +3521,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, } /* end if */ else { #endif /* H5_HAVE_PARALLEL */ - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, chunk_size, - dxpl_id, fb_info.fill_buf) < 0) + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, chunk_size, dxpl_id, fb_info.fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") #ifdef H5_HAVE_PARALLEL } /* end else */ @@ -3539,7 +3533,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, for(i = ((int)space_ndims - 1); i >= 0; --i) { chunk_offset[i] += chunk_dim[i]; if(chunk_offset[i] > max_unalloc[i]) { - if(i == op_dim) + if((unsigned)i == op_dim) chunk_offset[i] = min_unalloc[i]; else chunk_offset[i] = 0; @@ -3562,10 +3556,9 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, #ifdef H5_HAVE_PARALLEL /* do final collective I/O */ - if(using_mpi && blocks_written) { + if(using_mpi && blocks_written) if(H5D__chunk_collective_fill(dset, dxpl_id, &chunk_info, chunk_size, fb_info.fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") - } /* end if */ #endif /* H5_HAVE_PARALLEL */ /* Reset any cached chunk info for this dataset */ @@ -3577,10 +3570,8 @@ done: HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't release fill buffer info") #ifdef H5_HAVE_PARALLEL - if(using_mpi) { - if(chunk_info.addr) - HDfree(chunk_info.addr); - } /* end if */ + if(using_mpi && chunk_info.addr) + HDfree(chunk_info.addr); #endif FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) @@ -3684,8 +3675,7 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, * should use this if MPI_type_create_hindexed block is working * mpi_code = MPI_Type_create_hindexed_block(blocks, block_len, chunk_disp_array, MPI_BYTE, &file_type); */ - mpi_code = MPI_Type_create_hindexed(blocks, block_lens, chunk_disp_array, - MPI_BYTE, &file_type); + mpi_code = MPI_Type_create_hindexed(blocks, block_lens, chunk_disp_array, MPI_BYTE, &file_type); if(mpi_code != MPI_SUCCESS) HMPI_GOTO_ERROR(FAIL, "MPI_Type_create_hindexed failed", mpi_code) if(MPI_SUCCESS != (mpi_code = MPI_Type_commit(&file_type))) @@ -3718,9 +3708,8 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set transfer mode") } - /* low level write */ - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, (haddr_t)0, (blocks) ? (size_t)1 : (size_t)0, - data_dxpl_id, fill_buf) < 0) + /* low level write (collective) */ + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, (haddr_t)0, (blocks) ? (size_t)1 : (size_t)0, data_dxpl_id, fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") /* Barrier so processes don't race ahead */ @@ -3786,8 +3775,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata) if(H5D__chunk_lookup(dset, io_info->dxpl_id, chunk_offset, io_info->store->chunk.index, &chk_udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") - /* If this chunk does not exist in cache or on disk, no need to do anything - */ + /* If this chunk does not exist in cache or on disk, no need to do anything */ if(!H5F_addr_defined(chk_udata.addr) && UINT_MAX == chk_udata.idx_hint) HGOTO_DONE(SUCCEED) @@ -3804,8 +3792,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata) /* Compute the # of elements to leave with existing value, in each dimension */ for(u = 0; u < rank; u++) { - count[u] = MIN(layout->u.chunk.dim[u], (udata->space_dim[u] - - chunk_offset[u])); + count[u] = MIN(layout->u.chunk.dim[u], (udata->space_dim[u] - chunk_offset[u])); HDassert(count[u] > 0); } /* end for */ @@ -3985,7 +3972,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) H5D_rdcc_ent_t *ent = NULL; /* Cache entry */ int space_ndims; /* Dataset's space rank */ hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Current dataspace dimensions */ - int op_dim; /* Current operationg dimension */ + unsigned op_dim; /* Current operating dimension */ hbool_t shrunk_dim[H5O_LAYOUT_NDIMS]; /* Dimensions which have shrunk */ H5D_chunk_it_ud1_t udata; /* Chunk index iterator user data */ hbool_t udata_init = FALSE; /* Whether the chunk index iterator user data has been initialized */ @@ -4021,7 +4008,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) chunk_offset[space_ndims] = (hsize_t)0; /* Check if any old dimensions are 0, if so we do not have to do anything */ - for(op_dim=0; op_dimshared->cache.chunk.last); @@ -4084,7 +4071,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) */ HDmemset(min_mod_chunk_off, 0, sizeof(min_mod_chunk_off)); HDmemset(max_mod_chunk_off, 0, sizeof(max_mod_chunk_off)); - for(op_dim = 0; op_dim < space_ndims; op_dim++) { + for(op_dim = 0; op_dim < (unsigned)space_ndims; op_dim++) { /* Calculate the largest offset of chunks that might need to be * modified in this dimension */ max_mod_chunk_off[op_dim] = chunk_dim[op_dim] * ((old_dim[op_dim] - 1) @@ -4133,7 +4120,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) } /* end if */ /* Main loop: fill or remove chunks */ - for(op_dim=0; op_dim (hsize_t) max_mod_chunk_off[i]) { /* Left maximum dimensions, "wrap around" and check if this * dimension is no longer outside the fill dimension */ - if(i == op_dim) { + if((unsigned)i == op_dim) { chunk_offset[i] = min_mod_chunk_off[i]; if(dims_outside_fill[i] && fill_dim[i]) { dims_outside_fill[i] = FALSE; @@ -4663,12 +4650,12 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) udata_dst.common.storage = udata->idx_info_dst->storage; udata_dst.common.offset = chunk_rec->offset; udata_dst.common.rdcc = NULL; + udata_dst.addr = HADDR_UNDEF; udata_dst.nbytes = chunk_rec->nbytes; udata_dst.filter_mask = chunk_rec->filter_mask; - udata_dst.addr = HADDR_UNDEF; /* Need to compress variable-length & reference data elements before writing to file */ - if(has_filters && (is_vlen || fix_ref) ) { + if(has_filters && (is_vlen || fix_ref)) { if(H5Z_pipeline(pline, 0, &(udata_dst.filter_mask), H5Z_NO_EDC, cb_struct, &nbytes, &buf_size, &buf) < 0) HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, H5_ITER_ERROR, "output pipeline failed") #if H5_SIZEOF_SIZE_T > 4 @@ -4685,8 +4672,9 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) H5_BEGIN_TAG(udata->idx_info_dst->dxpl_id, H5AC__COPIED_TAG, H5_ITER_ERROR); /* Insert chunk into the destination index */ - if((udata->idx_info_dst->storage->ops->insert)(udata->idx_info_dst, &udata_dst) < 0) - HGOTO_ERROR_TAG(H5E_DATASET, H5E_CANTINSERT, H5_ITER_ERROR, "unable to insert chunk into index") + if(udata->idx_info_dst->storage->ops->insert) + if((udata->idx_info_dst->storage->ops->insert)(udata->idx_info_dst, &udata_dst) < 0) + HGOTO_ERROR_TAG(H5E_DATASET, H5E_CANTINSERT, H5_ITER_ERROR, "unable to insert chunk addr into index") /* Reset metadata tag in dxpl_id */ H5_END_TAG(H5_ITER_ERROR); @@ -4952,7 +4940,7 @@ done: /* Clean up any index information */ if(copy_setup_done) - if((storage_src->ops->copy_shutdown)(storage_src, storage_dst, dxpl_id) < 0) + if(storage_src->ops->copy_shutdown && (storage_src->ops->copy_shutdown)(storage_src, storage_dst, dxpl_id) < 0) HDONE_ERROR(H5E_DATASET, H5E_CANTRELEASE, FAIL, "unable to shut down index copying info") FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5Dio.c b/src/H5Dio.c index 88f75b1..1c77d93 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -305,7 +305,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, int ndims = 0; hsize_t dims[H5O_LAYOUT_NDIMS]; hsize_t internal_offset[H5O_LAYOUT_NDIMS]; - unsigned u; + unsigned u; /* Local index variable */ /* Get the dataset transfer property list */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id))) @@ -327,7 +327,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dims, NULL)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") - for(u = 0; u < ndims; u++) { + for(u = 0; u < (unsigned)ndims; u++) { /* Make sure the offset doesn't exceed the dataset's dimensions */ if(direct_offset[u] > dims[u]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 6128d7e..06cc2c0 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -265,9 +265,9 @@ typedef struct H5D_chunk_ud_t { /* Upward */ unsigned idx_hint; /*index of chunk in cache, if present */ + haddr_t addr; /*file address of chunk */ uint32_t nbytes; /*size of stored data */ unsigned filter_mask; /*excluded filters */ - haddr_t addr; /*file address of chunk */ } H5D_chunk_ud_t; /* Typedef for "generic" chunk callbacks */ @@ -365,9 +365,9 @@ typedef struct H5D_chunk_map_t { typedef struct H5D_chunk_cached_t { hbool_t valid; /*whether cache info is valid*/ hsize_t offset[H5O_LAYOUT_NDIMS]; /*logical offset to start*/ + haddr_t addr; /*file address of chunk */ uint32_t nbytes; /*size of stored data */ unsigned filter_mask; /*excluded filters */ - haddr_t addr; /*file address of chunk */ } H5D_chunk_cached_t; /* The raw data chunk cache */ diff --git a/src/H5Olayout.c b/src/H5Olayout.c index 816242f..d58ad61 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -722,6 +722,7 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, "B-tree address:", mesg->storage.u.chunk.idx_addr); break; + case H5D_CHUNK_IDX_NTYPES: default: HDfprintf(stream, "%*s%-*s %s (%u)\n", indent, "", fwidth, "Index Type:", "Unknown", (unsigned)mesg->storage.u.chunk.idx_type); diff --git a/src/H5VM.c b/src/H5VM.c index a1eafb6..2fa49ba 100644 --- a/src/H5VM.c +++ b/src/H5VM.c @@ -418,8 +418,7 @@ H5VM_hyper_disjointp(unsigned n, HGOTO_DONE(TRUE) for(u = 0; u < n; u++) { - HDassert(size1[u] < HSIZET_MAX); - HDassert(size2[u] < HSIZET_MAX); + HDcompile_assert(sizeof(uint32_t) <= sizeof(hsize_t)); if(0 == size1[u] || 0 == size2[u]) HGOTO_DONE(TRUE) @@ -1264,16 +1263,14 @@ done: * Programmer: Quincey Koziol * Monday, April 21, 2003 * - * Modifications: - * *------------------------------------------------------------------------- */ herr_t H5VM_chunk_index(unsigned ndims, const hsize_t *coord, const uint32_t *chunk, const hsize_t *down_nchunks, hsize_t *chunk_idx) { - hsize_t scaled_coord[H5VM_HYPER_NDIMS]; /* Scaled, coordinates, in terms of chunks */ - unsigned u; /* Local index variable */ + hsize_t scaled_coord[H5VM_HYPER_NDIMS]; /* Scaled, coordinates, in terms of chunks */ + unsigned u; /* Local index variable */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -1284,11 +1281,11 @@ H5VM_chunk_index(unsigned ndims, const hsize_t *coord, const uint32_t *chunk, HDassert(chunk_idx); /* Compute the scaled coordinates for actual coordinates */ - for(u=0; u #include +/* + * This file needs to access private information from the H5Z package. + */ +#define H5Z_PACKAGE + + #include "h5test.h" #include "H5srcdir.h" +#include "H5Zpkg.h" #ifdef H5_HAVE_SZLIB_H # include "szlib.h" #endif -/* - * This file needs to access private datatypes from the H5Z package. - */ -#define H5Z_PACKAGE -#include "H5Zpkg.h" - - const char *FILENAME[] = { "dataset", "compact_dataset", -- cgit v0.12 From 1215ef0370d0164d3d1bdbbc5c1a8d5fe175c727 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 8 Apr 2015 11:06:48 -0500 Subject: [svn-r26767] Added test to address HDFFV-3065: H5Iget_name on datatype that is not named returns no error Tested: h5committest --- test/getname.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/test/getname.c b/test/getname.c index 2d999b9..a73bb78 100644 --- a/test/getname.c +++ b/test/getname.c @@ -103,7 +103,11 @@ test_main(hid_t file_id, hid_t fapl) hid_t space_id; hid_t type_id, type2_id; hsize_t dims[1] = { 5 }; - size_t name_len; /* Name length */ + size_t name_len; /* Name length */ + H5O_info_t oinfo; /* Object info structs */ + hid_t dtype; /* Object identifier for testing */ + hid_t dtype_anon; /* Object identifier for testing anonymous */ + ssize_t size; /* Size returned by H5Iget_name */ /* Initialize the file names */ h5_fixname(FILENAME[1], fapl, filename1, sizeof filename1); @@ -2355,7 +2359,58 @@ test_main(hid_t file_id, hid_t fapl) H5Gclose(group_id); H5Gclose(group2_id); H5Fclose(file1_id); - H5Fclose(file2_id); + + PASSED(); + + /*------------------------------------------------------------------------- + * Test H5Iget_name with anonymous datatypes + *------------------------------------------------------------------------- + */ + + TESTING("H5Iget_name with anonymous datatypes"); + + /* Commit the type anonymously and link it in */ + if((dtype = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR + /* Test H5Iget_name with created datatype, should fail because not committed */ + H5E_BEGIN_TRY { + if((size = H5Iget_name(dtype, NULL, 0)) >= 0) TEST_ERROR + } H5E_END_TRY; + + if(H5Tcommit_anon(file2_id, dtype, H5P_DEFAULT, H5P_DEFAULT)) TEST_ERROR + + /* Test H5Iget_name with anonymously created datatype, should pass because committed */ + if((size = H5Iget_name(dtype, NULL, 0)) != 0) TEST_ERROR + + /* Create a link to the object */ + if( H5Olink(dtype, file2_id, "datatype", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Commit a second datatype with no links to it and commit it */ + if((dtype_anon = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR + if(H5Tcommit_anon(file2_id, dtype_anon, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Test H5Iget_name with anonymously created datatype, should pass because committed */ + if((size = H5Iget_name(dtype_anon, NULL,0)) != 0) TEST_ERROR + + /* Store the address of the datatype for later use */ + if(H5Oget_info(dtype_anon, &oinfo) < 0) TEST_ERROR + + /* Update the reference count to dtype_anon to preserve the datatype */ + if(H5Oincr_refcount(dtype_anon) < 0) TEST_ERROR + + if(H5Tclose(dtype) < 0) TEST_ERROR + if(H5Tclose(dtype_anon) < 0) TEST_ERROR + if(H5Fclose(file2_id) < 0) TEST_ERROR + + /* Re-open the file and check that the anonymous datatypes persist */ + if( (file2_id = H5Fopen(filename2, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) TEST_ERROR + + /* Check the H5Iget_name does not return an error for anon committed datatypes */ + if((dtype_anon = H5Oopen_by_addr(file2_id, oinfo.addr)) < 0) TEST_ERROR + + if((size = H5Iget_name(dtype_anon,NULL,0)) != 0) TEST_ERROR + + if(H5Tclose(dtype_anon) < 0) TEST_ERROR + if(H5Fclose(file2_id) < 0) TEST_ERROR PASSED(); -- cgit v0.12 From 7f06904d28034b9f17b1cfc5f60e1d56fc89d9bd Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Wed, 8 Apr 2015 16:24:22 -0500 Subject: [svn-r26771] - remove unused internal dxpl properties and property lists from the AC layer - fix warnings in H5AC.c tested with h5committest --- src/H5AC.c | 131 +++++++++++++----------------------------------------- src/H5ACprivate.h | 10 ----- 2 files changed, 30 insertions(+), 111 deletions(-) diff --git a/src/H5AC.c b/src/H5AC.c index 8eb0dd9..7ed5047 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -106,11 +106,6 @@ H5FL_DEFINE_STATIC(H5AC_slist_entry_t); /* (Global variable definition, declaration is in H5ACprivate.h also) */ hid_t H5AC_dxpl_id=(-1); -/* Private dataset transfer property list for metadata I/O calls */ -/* (Collective set and "library internal" set) */ -/* (Static variable definition) */ -static hid_t H5AC_noblock_dxpl_id=(-1); - /* Dataset transfer property list for independent metadata I/O calls */ /* (just "library internal" set - i.e. independent transfer mode) */ /* (Global variable definition, declaration is in H5ACprivate.h also) */ @@ -257,9 +252,7 @@ H5AC_init_interface(void) { #ifdef H5_HAVE_PARALLEL H5P_genplist_t *xfer_plist; /* Dataset transfer property list object */ - unsigned block_before_meta_write; /* "block before meta write" property value */ unsigned coll_meta_write; /* "collective metadata write" property value */ - unsigned library_internal = 1; /* "library internal" property value */ #endif /* H5_HAVE_PARALLEL */ herr_t ret_value = SUCCEED; /* Return value */ @@ -269,7 +262,7 @@ H5AC_init_interface(void) /* Sanity check */ HDassert(H5P_CLS_DATASET_XFER_g != NULL); - /* Get an ID for the blocking, collective H5AC dxpl */ + /* Get an ID for the collective H5AC dxpl */ if((H5AC_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") @@ -277,51 +270,13 @@ H5AC_init_interface(void) if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_dxpl_id))) HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - /* Insert 'block before metadata write' property */ - block_before_meta_write=1; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - /* Insert 'collective metadata write' property */ coll_meta_write = 1; if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Get an ID for the non-blocking, collective H5AC dxpl */ - if((H5AC_noblock_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) - HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") - - /* Get the property list object */ - if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_noblock_dxpl_id))) - HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - - /* Insert 'block before metadata write' property */ - block_before_meta_write=0; - if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal, - NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)<0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'collective metadata write' property */ - coll_meta_write = 1; - if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - - /* Get an ID for the non-blocking, independent H5AC dxpl */ + /* Get an ID for the independent H5AC dxpl */ if((H5AC_ind_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list") @@ -329,29 +284,16 @@ H5AC_init_interface(void) if(NULL == (H5AC_ind_dxpl_g = (H5P_genplist_t *)H5I_object(H5AC_ind_dxpl_id))) HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object") - /* Insert 'block before metadata write' property */ - block_before_meta_write=0; - if(H5P_insert(H5AC_ind_dxpl_g, H5AC_BLOCK_BEFORE_META_WRITE_NAME, H5AC_BLOCK_BEFORE_META_WRITE_SIZE, &block_before_meta_write, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - - /* Insert 'library internal' property */ - if(H5P_insert(H5AC_ind_dxpl_g, H5AC_LIBRARY_INTERNAL_NAME, H5AC_LIBRARY_INTERNAL_SIZE, &library_internal, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - /* Insert 'collective metadata write' property */ coll_meta_write = 0; if(H5P_insert(H5AC_ind_dxpl_g, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property") - #else /* H5_HAVE_PARALLEL */ /* Sanity check */ HDassert(H5P_LST_DATASET_XFER_ID_g!=(-1)); H5AC_dxpl_id = H5P_DATASET_XFER_DEFAULT; - H5AC_noblock_dxpl_id = H5P_DATASET_XFER_DEFAULT; H5AC_ind_dxpl_id = H5P_DATASET_XFER_DEFAULT; /* Get the property list objects for the IDs */ @@ -388,19 +330,17 @@ H5AC_term_interface(void) if (H5_interface_initialize_g) { #ifdef H5_HAVE_PARALLEL - if(H5AC_dxpl_id > 0 || H5AC_noblock_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) { + if(H5AC_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) { /* Indicate more work to do */ n = 1; /* H5I */ /* Close H5AC dxpl */ if(H5I_dec_ref(H5AC_dxpl_id) < 0 || - H5I_dec_ref(H5AC_noblock_dxpl_id) < 0 || H5I_dec_ref(H5AC_ind_dxpl_id) < 0) H5E_clear_stack(NULL); /*ignore error*/ else { /* Reset static IDs */ H5AC_dxpl_id = (-1); - H5AC_noblock_dxpl_id = (-1); H5AC_ind_dxpl_id = (-1); /* Reset interface initialization flag */ @@ -411,7 +351,6 @@ H5AC_term_interface(void) #else /* H5_HAVE_PARALLEL */ /* Reset static IDs */ H5AC_dxpl_id=(-1); - H5AC_noblock_dxpl_id=(-1); H5AC_ind_dxpl_id=(-1); #endif /* H5_HAVE_PARALLEL */ /* Reset interface initialization flag */ @@ -689,7 +628,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id) #endif /* H5_HAVE_PARALLEL */ /* Destroy the cache */ - if(H5C_dest(f, dxpl_id, H5AC_noblock_dxpl_id) < 0) + if(H5C_dest(f, dxpl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFREE, FAIL, "can't destroy cache") f->shared->cache = NULL; @@ -702,8 +641,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id) if(aux_ptr->candidate_slist_ptr != NULL) H5SL_close(aux_ptr->candidate_slist_ptr); aux_ptr->magic = 0; - H5FL_FREE(H5AC_aux_t, aux_ptr); - aux_ptr = NULL; + aux_ptr = H5FL_FREE(H5AC_aux_t, aux_ptr); } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -771,7 +709,7 @@ H5AC_expunge_entry(H5F_t *f, result = H5C_expunge_entry(f, dxpl_id, - H5AC_noblock_dxpl_id, + H5AC_dxpl_id, type, addr, flags); @@ -850,7 +788,7 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id) #endif /* H5_HAVE_PARALLEL */ /* Flush the cache */ - if(H5C_flush_cache(f, dxpl_id, H5AC_noblock_dxpl_id, H5AC__NO_FLAGS_SET) < 0) + if(H5C_flush_cache(f, dxpl_id, H5AC_dxpl_id, H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush cache.") done: @@ -992,7 +930,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add #endif /* H5AC__TRACE_FILE_ENABLED */ /* Insert entry into metadata cache */ - if(H5C_insert_entry(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0) + if(H5C_insert_entry(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTINS, FAIL, "H5C_insert_entry() failed") #if H5AC__TRACE_FILE_ENABLED @@ -1013,7 +951,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add /* Check if we should try to flush */ if(aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold) - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ } @@ -1166,7 +1104,7 @@ H5AC_move_entry(H5F_t *f, const H5AC_class_t *type, haddr_t old_addr, haddr_t ne #ifdef H5_HAVE_PARALLEL /* Check if we should try to flush */ if(NULL != aux_ptr && aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -1378,7 +1316,7 @@ H5AC_protect(H5F_t *f, thing = H5C_protect(f, dxpl_id, - H5AC_noblock_dxpl_id, + H5AC_dxpl_id, type, addr, udata, @@ -1696,13 +1634,13 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, } /* end if */ #endif /* H5_HAVE_PARALLEL */ - if(H5C_unprotect(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0) + if(H5C_unprotect(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "H5C_unprotect() failed.") #ifdef H5_HAVE_PARALLEL /* Check if we should try to flush */ if((aux_ptr != NULL) && (aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold)) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ #endif /* H5_HAVE_PARALLEL */ @@ -2925,7 +2863,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) */ if ( aux_ptr->sync_point_done != NULL ) { - addr_buf_ptr = H5MM_malloc((size_t)num_entries * sizeof(haddr_t)); + addr_buf_ptr = (haddr_t *)H5MM_malloc((size_t)num_entries * sizeof(haddr_t)); if ( addr_buf_ptr == NULL ) { @@ -2971,8 +2909,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -2981,7 +2918,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) /* and also remove the matching entry from the dirtied list * if it exists. */ - if((slist_entry_ptr = H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) { + if((slist_entry_ptr = (H5AC_slist_entry_t *)H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) { HDassert( slist_entry_ptr->magic == H5AC__H5AC_SLIST_ENTRY_T_MAGIC ); HDassert( slist_entry_ptr->addr == addr ); @@ -2989,8 +2926,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr) HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3282,8 +3218,7 @@ H5AC_copy_candidate_list_to_buffer(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from candidate entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->candidate_slist_len -= 1; @@ -3450,8 +3385,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3467,8 +3401,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from cleaned entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3577,8 +3510,7 @@ H5AC_log_dirtied_entry(const H5AC_info_t * entry_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.") slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3672,8 +3604,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -3694,8 +3625,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -3925,8 +3855,7 @@ H5AC_log_moved_entry(const H5F_t *f, } slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); - slist_entry_ptr = NULL; + slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -4307,7 +4236,7 @@ H5AC_propagate_flushed_and_still_clean_entries_list(H5F_t * f, HDassert( aux_ptr->c_slist_len == 0 ); } /* end if */ else { - if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_noblock_dxpl_id, cache_ptr) < 0) + if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_dxpl_id, cache_ptr) < 0) HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "Can't receive and/or process clean slist broadcast.") } /* end else */ @@ -4881,7 +4810,7 @@ H5AC_rsp__p0_only__flush(H5F_t *f, } /* end if */ /* Propagate cleaned entries to other ranks. */ - if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_noblock_dxpl_id, cache_ptr) < 0) + if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_dxpl_id, cache_ptr) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't propagate clean entries list.") done: @@ -4988,7 +4917,7 @@ H5AC_rsp__p0_only__flush_to_min_clean(H5F_t *f, */ aux_ptr->write_permitted = TRUE; - result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_noblock_dxpl_id); + result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_dxpl_id); aux_ptr->write_permitted = FALSE; @@ -5232,7 +5161,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.") d_slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr); + d_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr); aux_ptr->d_slist_len -= 1; @@ -5248,7 +5177,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr, HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.") c_slist_entry_ptr->magic = 0; - H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr); + c_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr); aux_ptr->c_slist_len -= 1; @@ -5291,7 +5220,7 @@ H5AC_flush_entries(H5F_t *f) /* Check if we have >1 ranks */ if(f->shared->cache->aux_ptr) { - if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0) + if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.") } /* end if */ diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index 623f502..ccecd83 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -195,20 +195,10 @@ typedef H5C_t H5AC_t; /* Metadata specific properties for FAPL */ /* (Only used for parallel I/O) */ #ifdef H5_HAVE_PARALLEL -/* Definitions for "block before metadata write" property */ -#define H5AC_BLOCK_BEFORE_META_WRITE_NAME "H5AC_block_before_meta_write" -#define H5AC_BLOCK_BEFORE_META_WRITE_SIZE sizeof(unsigned) -#define H5AC_BLOCK_BEFORE_META_WRITE_DEF 0 - /* Definitions for "collective metadata write" property */ #define H5AC_COLLECTIVE_META_WRITE_NAME "H5AC_collective_metadata_write" #define H5AC_COLLECTIVE_META_WRITE_SIZE sizeof(unsigned) #define H5AC_COLLECTIVE_META_WRITE_DEF 0 - -/* Definitions for "library internal" property */ -#define H5AC_LIBRARY_INTERNAL_NAME "H5AC_library_internal" -#define H5AC_LIBRARY_INTERNAL_SIZE sizeof(unsigned) -#define H5AC_LIBRARY_INTERNAL_DEF 0 #endif /* H5_HAVE_PARALLEL */ #define H5AC_METADATA_TAG_NAME "H5AC_metadata_tag" -- cgit v0.12 From 5619a9a119262d0b417a5a5d21fa3268d38f8e8e Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Thu, 9 Apr 2015 10:57:01 -0500 Subject: [svn-r26772] Fixed wrong fapl for H5Fopen when testing H5Iget_name with anonymously created datatype. Tested: jam (using split virtual driver) --- test/getname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/getname.c b/test/getname.c index a73bb78..dc1ddbe 100644 --- a/test/getname.c +++ b/test/getname.c @@ -2402,7 +2402,7 @@ test_main(hid_t file_id, hid_t fapl) if(H5Fclose(file2_id) < 0) TEST_ERROR /* Re-open the file and check that the anonymous datatypes persist */ - if( (file2_id = H5Fopen(filename2, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) TEST_ERROR + if( (file2_id = H5Fopen(filename2, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR /* Check the H5Iget_name does not return an error for anon committed datatypes */ if((dtype_anon = H5Oopen_by_addr(file2_id, oinfo.addr)) < 0) TEST_ERROR -- cgit v0.12 From b452fc97e6bc7c0a4b3d143cfef7ef10bb53b88d Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Fri, 10 Apr 2015 12:45:13 -0500 Subject: [svn-r26776] Add missing quote char. --- config/cmake/HDF518_Examples.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index 27dc7bf..ba3d1d0 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -13,7 +13,7 @@ set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_BUILD_CONFIGURATION "Release") #set(NO_MAC_FORTRAN "true") #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON") -set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON) +set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON") #set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}") ############################################################################################################### -- cgit v0.12 From 3b72762036c65978ef96bb1422a671dce20ba46e Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Fri, 10 Apr 2015 12:47:16 -0500 Subject: [svn-r26777] - Fix usage of the internal AC global dxpls - allocate sieve buffer with calloc instead of malloc tested with h5committest --- src/H5A.c | 8 +- src/H5Aint.c | 10 +- src/H5Apkg.h | 4 +- src/H5D.c | 2 +- src/H5Dcontig.c | 4 +- src/H5Ddbg.c | 2 +- src/H5Ddeprec.c | 2 +- src/H5Dfill.c | 2 +- src/H5G.c | 2 +- src/H5Gdeprec.c | 2 +- src/H5Gtest.c | 80 +++++++------ src/H5O.c | 13 ++- src/H5Ocopy.c | 14 +-- src/H5R.c | 4 +- src/H5Rdeprec.c | 2 +- src/H5T.c | 354 ++++++++++++++++++++++++++++---------------------------- src/H5Tcommit.c | 2 +- src/H5Tdeprec.c | 2 +- 18 files changed, 259 insertions(+), 250 deletions(-) diff --git a/src/H5A.c b/src/H5A.c index 7dae36b..d474234 100644 --- a/src/H5A.c +++ b/src/H5A.c @@ -638,7 +638,7 @@ H5Aread(hid_t attr_id, hid_t dtype_id, void *buf) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer") /* Go write the actual data to the attribute */ - if((ret_value = H5A_read(attr, mem_type, buf, H5AC_dxpl_id)) < 0) + if((ret_value = H5A_read(attr, mem_type, buf, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_READERROR, FAIL, "unable to read attribute") done: @@ -1160,7 +1160,7 @@ H5Arename_by_name(hid_t loc_id, const char *obj_name, const char *old_attr_name, HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") /* Call private attribute rename routine */ - if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id) < 0) + if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute") } /* end if */ @@ -1537,7 +1537,7 @@ H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type, H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; @@ -1668,7 +1668,7 @@ H5Aexists_by_name(hid_t loc_id, const char *obj_name, const char *attr_name, if(TRUE != H5P_isa_class(lapl_id, H5P_LINK_ACCESS)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID") - if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id)) < 0) + if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists") done: diff --git a/src/H5Aint.c b/src/H5Aint.c index 625bfa9..e28c2cc 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -1187,7 +1187,7 @@ H5A_type(const H5A_t *attr) */ htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, - hid_t lapl_id) + hid_t lapl_id, hid_t dxpl_id) { H5G_loc_t obj_loc; /* Location used to open group */ H5G_name_t obj_path; /* Opened object group hier. path */ @@ -1203,12 +1203,12 @@ H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) + if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0) HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; /* Check if the attribute exists */ - if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, H5AC_ind_dxpl_id)) < 0) + if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, dxpl_id)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists") done: @@ -2377,7 +2377,7 @@ done: */ herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name, - const char *new_attr_name, hid_t lapl_id) + const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id) { H5G_loc_t obj_loc; /* Location used to open group */ H5G_name_t obj_path; /* Opened object group hier. path */ @@ -2400,7 +2400,7 @@ H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_nam loc_found = TRUE; /* Call attribute rename routine */ - if(H5O_attr_rename(obj_loc.oloc, H5AC_dxpl_id, old_attr_name, new_attr_name) < 0) + if(H5O_attr_rename(obj_loc.oloc, dxpl_id, old_attr_name, new_attr_name) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute") } /* end if */ diff --git a/src/H5Apkg.h b/src/H5Apkg.h index efa2b74..f587f81 100644 --- a/src/H5Apkg.h +++ b/src/H5Apkg.h @@ -206,9 +206,9 @@ H5_DLL herr_t H5A_close(H5A_t *attr); H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo); H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr); H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name, - const char *new_attr_name, hid_t lapl_id); + const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id); H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, - hid_t lapl_id); + hid_t lapl_id, hid_t dxpl_id); /* Attribute "dense" storage routines */ H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo); diff --git a/src/H5D.c b/src/H5D.c index a81fb8b..f06ec9b 100644 --- a/src/H5D.c +++ b/src/H5D.c @@ -329,7 +329,7 @@ H5Dopen2(hid_t loc_id, const char *name, hid_t dapl_id) H5O_loc_t oloc; /* Dataset object location */ H5O_type_t obj_type; /* Type of object at location */ hbool_t loc_found = FALSE; /* Location at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */ hid_t ret_value; FUNC_ENTER_API(FAIL) diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index 8d4cd02..dc09768 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -675,7 +675,7 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, } /* end if */ else { /* Allocate room for the data sieve buffer */ - if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size))) + if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size))) HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed") /* Determine the new sieve buffer size & location */ @@ -946,7 +946,7 @@ H5D__contig_writevv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, } /* end if */ else { /* Allocate room for the data sieve buffer */ - if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size))) + if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size))) HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed") #ifdef H5_CLEAR_MEMORY diff --git a/src/H5Ddbg.c b/src/H5Ddbg.c index a7c6dc1..4e934f2 100644 --- a/src/H5Ddbg.c +++ b/src/H5Ddbg.c @@ -113,7 +113,7 @@ H5Ddebug(hid_t dset_id) /* Print B-tree information */ if(H5D_CHUNKED == dset->shared->layout.type) - (void)H5D__chunk_dump_index(dset, H5AC_dxpl_id, stdout); + (void)H5D__chunk_dump_index(dset, H5AC_ind_dxpl_id, stdout); else if(H5D_CONTIGUOUS == dset->shared->layout.type) HDfprintf(stdout, " %-10s %a\n", "Address:", dset->shared->layout.storage.u.contig.addr); diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c index 04cf032..0b2fee6 100644 --- a/src/H5Ddeprec.c +++ b/src/H5Ddeprec.c @@ -233,7 +233,7 @@ H5Dopen1(hid_t loc_id, const char *name) H5O_type_t obj_type; /* Type of object at location */ hbool_t loc_found = FALSE; /* Location at 'name' found */ hid_t dapl_id = H5P_DATASET_ACCESS_DEFAULT; /* dapl to use to open dataset */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */ hid_t ret_value; FUNC_ENTER_API(FAIL) diff --git a/src/H5Dfill.c b/src/H5Dfill.c index e682dd6..484c362 100644 --- a/src/H5Dfill.c +++ b/src/H5Dfill.c @@ -133,7 +133,7 @@ H5Dfill(const void *fill, hid_t fill_type_id, void *buf, hid_t buf_type_id, hid_ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a datatype") /* Fill the selection in the memory buffer */ - if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_dxpl_id) < 0) + if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "filling selection failed") done: diff --git a/src/H5G.c b/src/H5G.c index e929eaf..8fd65b8 100644 --- a/src/H5G.c +++ b/src/H5G.c @@ -463,7 +463,7 @@ H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group access property list") /* Open the group */ - if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_dxpl_id)) == NULL) + if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_ind_dxpl_id)) == NULL) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group") /* Register an ID for the group */ diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c index 6433544..ca9e7fd 100644 --- a/src/H5Gdeprec.c +++ b/src/H5Gdeprec.c @@ -322,7 +322,7 @@ H5Gopen1(hid_t loc_id, const char *name) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name") /* Open the group */ - if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_dxpl_id)) == NULL) + if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_ind_dxpl_id)) == NULL) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group") /* Register an atom for the group */ diff --git a/src/H5Gtest.c b/src/H5Gtest.c index 2b5d32a..de37655 100644 --- a/src/H5Gtest.c +++ b/src/H5Gtest.c @@ -97,6 +97,7 @@ H5G__is_empty_test(hid_t gid) H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = FALSE; /* Indicate that a header message is present */ htri_t linfo_exists = FALSE;/* Indicate that the 'link info' message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -108,11 +109,11 @@ H5G__is_empty_test(hid_t gid) /* "New format" checks */ /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { /* Sanity check that new group format shouldn't have old messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -121,19 +122,19 @@ H5G__is_empty_test(hid_t gid) } /* end if */ /* Check for a link info message */ - if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0) + if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(linfo_exists > 0) { H5O_linfo_t linfo; /* Link info message */ /* Sanity check that new group format shouldn't have old messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found") /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -152,7 +153,7 @@ H5G__is_empty_test(hid_t gid) /* "Old format" checks */ /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { H5O_stab_t stab; /* Info about local heap & B-tree */ @@ -161,17 +162,17 @@ H5G__is_empty_test(hid_t gid) /* Sanity check that old group format shouldn't have new messages */ if(linfo_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found") - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and group info messages found") /* Get the B-tree & local heap info */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to read symbol table message") /* Get the count of links in the group */ - if(H5G__stab_count(&(grp->oloc), &nlinks, H5AC_dxpl_id) < 0) + if(H5G__stab_count(&(grp->oloc), &nlinks, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to count links") /* Check for link count */ @@ -208,6 +209,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -217,13 +219,13 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists == 0) HGOTO_DONE(FALSE) /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -233,7 +235,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs) int msg_count; /* Number of messages of a type */ /* Check how many link messages there are */ - if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTCOUNT, FAIL, "unable to count link messages") *nmsgs = (unsigned)msg_count; } /* end if */ @@ -266,6 +268,7 @@ H5G__has_stab_test(hid_t gid) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -275,13 +278,13 @@ H5G__has_stab_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists == 0) HGOTO_DONE(FALSE) /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found") @@ -316,6 +319,7 @@ H5G__is_new_dense_test(hid_t gid) { H5G_t *grp = NULL; /* Pointer to group */ htri_t msg_exists = 0; /* Indicate that a header message is present */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ htri_t ret_value = TRUE; /* Return value */ FUNC_ENTER_PACKAGE @@ -325,25 +329,25 @@ H5G__is_new_dense_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Check if the group has a symbol table message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_DONE(FALSE) /* Check if the group has any link messages */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) HGOTO_DONE(FALSE) /* Check if the group has link info message */ - if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0) + if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") if(msg_exists > 0) { H5O_linfo_t linfo; /* Link info message */ /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -386,6 +390,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) H5B2_t *bt2_corder = NULL; /* v2 B-tree handle for creation order index */ H5O_linfo_t linfo; /* Link info message */ H5G_t *grp = NULL; /* Pointer to group */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -395,10 +400,10 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Set metadata tag in dxpl_id */ - H5_BEGIN_TAG(H5AC_dxpl_id, grp->oloc.addr, FAIL); + H5_BEGIN_TAG(dxpl_id, grp->oloc.addr, FAIL); /* Get the link info */ - if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0) + if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0) HGOTO_ERROR_TAG(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info") /* Check for 'dense' link storage file addresses being defined */ @@ -408,7 +413,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) HGOTO_DONE_TAG(FAIL, FAIL) /* Open the name index v2 B-tree */ - if(NULL == (bt2_name = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.name_bt2_addr, NULL))) + if(NULL == (bt2_name = H5B2_open(grp->oloc.file, dxpl_id, linfo.name_bt2_addr, NULL))) HGOTO_ERROR_TAG(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index") /* Retrieve # of records in name index */ @@ -418,7 +423,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) /* Check if there is a creation order index */ if(H5F_addr_defined(linfo.corder_bt2_addr)) { /* Open the creation order index v2 B-tree */ - if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.corder_bt2_addr, NULL))) + if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, dxpl_id, linfo.corder_bt2_addr, NULL))) HGOTO_ERROR_TAG(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index") /* Retrieve # of records in creation order index */ @@ -433,9 +438,9 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count) done: /* Release resources */ - if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0) + if(bt2_name && H5B2_close(bt2_name, dxpl_id) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index") - if(bt2_corder && H5B2_close(bt2_corder, H5AC_dxpl_id) < 0) + if(bt2_corder && H5B2_close(bt2_corder, dxpl_id) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index") FUNC_LEAVE_NOAPI(ret_value) @@ -465,7 +470,8 @@ herr_t H5G__lheap_size_test(hid_t gid, size_t *lheap_size) { H5G_t *grp = NULL; /* Pointer to group */ - H5O_stab_t stab; /* Symbol table message */ + H5O_stab_t stab; /* Symbol table message */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -475,11 +481,11 @@ H5G__lheap_size_test(hid_t gid, size_t *lheap_size) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Make certain the group has a symbol table message */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read symbol table message") /* Check the size of the local heap for the group */ - if(H5HL_get_size(grp->oloc.file, H5AC_dxpl_id, stab.heap_addr, lheap_size) < 0) + if(H5HL_get_size(grp->oloc.file, dxpl_id, stab.heap_addr, lheap_size) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGETSIZE, FAIL, "can't query local heap size") done: @@ -607,16 +613,17 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent) { H5O_stab_t stab; /* Symbol table */ H5HL_t *heap = NULL; /* Pointer to local heap */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_PACKAGE_TAG(H5AC_ind_dxpl_id, grp_oloc->addr, FAIL) + FUNC_ENTER_PACKAGE_TAG(dxpl_id, grp_oloc->addr, FAIL) /* Verify that stab info is cached in ent */ if(ent->type != H5G_CACHED_STAB) HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, FAIL, "symbol table information is not cached") /* Read the symbol table message from the group */ - if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, H5AC_ind_dxpl_id)) + if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "unable to read symbol table message") /* Verify that the cached symbol table info matches the symbol table message @@ -626,11 +633,11 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent) HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "cached stab info does not match object header") /* Verify that the btree address is valid */ - if(H5B_valid(grp_oloc->file, H5AC_ind_dxpl_id, H5B_SNODE, stab.btree_addr) < 0) + if(H5B_valid(grp_oloc->file, dxpl_id, H5B_SNODE, stab.btree_addr) < 0) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "b-tree address is invalid") /* Verify that the heap address is valid */ - if(NULL == (heap = H5HL_protect(grp_oloc->file, H5AC_ind_dxpl_id, stab.heap_addr, H5AC_READ))) + if(NULL == (heap = H5HL_protect(grp_oloc->file, dxpl_id, stab.heap_addr, H5AC_READ))) HGOTO_ERROR(H5E_HEAP, H5E_NOTFOUND, FAIL, "heap address is invalid") done: @@ -763,6 +770,7 @@ H5G__verify_cached_stabs_test(hid_t gid) H5O_stab_t stab; /* Symbol table message */ H5G_bt_common_t udata = {NULL, NULL}; /* Dummy udata so H5B_iterate doesn't freak out */ haddr_t prev_tag = HADDR_UNDEF; /* Previous metadata tag */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE @@ -775,13 +783,13 @@ H5G__verify_cached_stabs_test(hid_t gid) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group") /* Set up metadata tagging */ - if(H5AC_tag(H5AC_ind_dxpl_id, grp->oloc.addr, &prev_tag) < 0) + if(H5AC_tag(dxpl_id, grp->oloc.addr, &prev_tag) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag") /* Check for group having a symbol table message */ /* Check for the group having a group info message */ if((stab_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, - H5AC_ind_dxpl_id)) < 0) + dxpl_id)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header") /* No need to check anything if the symbol table doesn't exist */ @@ -789,16 +797,16 @@ H5G__verify_cached_stabs_test(hid_t gid) HGOTO_DONE(SUCCEED); /* Read the stab */ - if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_ind_dxpl_id)) + if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id)) HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get symbol table info") /* Iterate over the b-tree, checking validity of cached information */ - if((ret_value = H5B_iterate(grp->oloc.file, H5AC_ind_dxpl_id, H5B_SNODE, + if((ret_value = H5B_iterate(grp->oloc.file, dxpl_id, H5B_SNODE, stab.btree_addr, H5G_verify_cached_stabs_test_cb, &udata)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTNEXT, FAIL, "iteration operator failed"); /* Reset metadata tagging */ - if(H5AC_tag(H5AC_ind_dxpl_id, prev_tag, NULL) < 0) + if(H5AC_tag(dxpl_id, prev_tag, NULL) < 0) HDONE_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag") done: diff --git a/src/H5O.c b/src/H5O.c index 341801b..1fd7225 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -309,12 +309,12 @@ H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type, H5G_loc_reset(&obj_loc); /* Find the object's location, according to the order in the index */ - if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "group not found") loc_found = TRUE; /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: @@ -390,7 +390,7 @@ H5Oopen_by_addr(hid_t loc_id, haddr_t addr) H5G_name_reset(obj_loc.path); /* objects opened through this routine don't have a path name */ /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: @@ -573,7 +573,7 @@ H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID") /* Check if the object exists */ - if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_dxpl_id)) < 0) + if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_ind_dxpl_id)) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to determine if '%s' exists", name) done: @@ -1346,6 +1346,7 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref) H5G_name_t obj_path; /* Opened object group hier. path */ H5O_loc_t obj_oloc; /* Opened object object location */ hbool_t loc_found = FALSE; /* Entry at 'name' found */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */ hid_t ret_value = FAIL; FUNC_ENTER_NOAPI(FAIL) @@ -1360,12 +1361,12 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref) H5G_loc_reset(&obj_loc); /* Find the object's location */ - if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0) + if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found") loc_found = TRUE; /* Open the object */ - if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, app_ref)) < 0) + if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, dxpl_id, app_ref)) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object") done: diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c index fc82407..1471ae5 100644 --- a/src/H5Ocopy.c +++ b/src/H5Ocopy.c @@ -86,7 +86,7 @@ static herr_t H5O_copy_header_real(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_ds static herr_t H5O_copy_header(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst /*out*/, hid_t dxpl_id, hid_t ocpypl_id); static herr_t H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc, - const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id); + const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id); static herr_t H5O_copy_obj_by_ref(H5O_loc_t *src_oloc, hid_t dxpl_id, H5O_loc_t *dst_oloc, H5G_loc_t *dst_root_loc, H5O_copy_t *cpy_info); static herr_t H5O_copy_free_comm_dt_cb(void *item, void *key, void *op_data); @@ -243,7 +243,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, H5G_loc_reset(&tmp_loc); /* Check if object already exists in destination */ - if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_dxpl_id) >= 0) { + if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_ind_dxpl_id) >= 0) { H5G_name_free(&tmp_path); HGOTO_ERROR(H5E_SYM, H5E_EXISTS, FAIL, "destination object already exists") } /* end if */ @@ -255,7 +255,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, H5G_loc_reset(&src_loc); /* Find the source object to copy */ - if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_dxpl_id) < 0) + if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_ind_dxpl_id) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "source object not found") loc_found = TRUE; @@ -281,7 +281,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id, HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not object copy property list") /* Do the actual copying of the object */ - if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id) < 0) + if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to copy object") done: @@ -1151,14 +1151,13 @@ done: */ static herr_t H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc, const char *dst_name, - hid_t ocpypl_id, hid_t lcpl_id) + hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id) { H5G_name_t new_path; /* Copied object group hier. path */ H5O_loc_t new_oloc; /* Copied object object location */ H5G_loc_t new_loc; /* Group location of object copied */ H5F_t *cached_dst_file; /* Cached destination file */ hbool_t entry_inserted = FALSE; /* Flag to indicate that the new entry was inserted into a group */ - hid_t dxpl_id = H5AC_dxpl_id; /* DXPL for operation */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -1656,7 +1655,8 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc, attr_op.u.lib_op = H5O_copy_search_comm_dt_attr_cb; udata->obj_oloc.file = obj_oloc->file; udata->obj_oloc.addr = obj_oloc->addr; - if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, H5_ITER_NATIVE, 0, NULL, &attr_op, udata) < 0) + if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, + H5_ITER_NATIVE, (hsize_t)0, NULL, &attr_op, udata) < 0) HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "error iterating over attributes"); done: diff --git a/src/H5R.c b/src/H5R.c index 9b99914..d96f5e6 100644 --- a/src/H5R.c +++ b/src/H5R.c @@ -603,7 +603,7 @@ H5Rdereference2(hid_t obj_id, hid_t oapl_id, H5R_type_t ref_type, const void *_r file = loc.oloc->file; /* Create reference */ - if((ret_value = H5R_dereference(file, oapl_id, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0) + if((ret_value = H5R_dereference(file, oapl_id, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to dereference object") done: @@ -1026,7 +1026,7 @@ H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name, file = loc.oloc->file; /* Get name */ - if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, _ref, name, size)) < 0) + if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_ind_dxpl_id, id, ref_type, _ref, name, size)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path") done: diff --git a/src/H5Rdeprec.c b/src/H5Rdeprec.c index ea30913..9877f42 100644 --- a/src/H5Rdeprec.c +++ b/src/H5Rdeprec.c @@ -228,7 +228,7 @@ H5Rdereference1(hid_t obj_id, H5R_type_t ref_type, const void *_ref) file = loc.oloc->file; /* Create reference */ - if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0) + if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0) HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable dereference object") done: diff --git a/src/H5T.c b/src/H5T.c index f2329cb..9320d28 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -1045,24 +1045,24 @@ H5T_init_interface(void) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype") status = 0; - status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE); /* * Native conversions should be listed last since we can use hardware to @@ -1073,220 +1073,220 @@ H5T_init_interface(void) */ /* floating point */ - status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_ind_dxpl_id, FALSE); #if H5_SIZEOF_LONG_DOUBLE != 0 - status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_ind_dxpl_id, FALSE); #endif /* H5_SIZEOF_LONG_DOUBLE != 0 */ /* from long long */ - status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_ind_dxpl_id, FALSE); /* From long */ - status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_ind_dxpl_id, FALSE); /* From short */ - status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_ind_dxpl_id, FALSE); /* From int */ - status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_ind_dxpl_id, FALSE); /* From char */ - status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_ind_dxpl_id, FALSE); /* From char to floats */ - status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned char to floats */ - status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_ind_dxpl_id, FALSE); /* From short to floats */ - status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned short to floats */ - status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_ind_dxpl_id, FALSE); /* From int to floats */ - status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned int to floats */ - status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_ind_dxpl_id, FALSE); /* From long to floats */ - status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned long to floats */ - status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From long long to floats */ - status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From unsigned long long to floats */ - status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_ind_dxpl_id, FALSE); /* From floats to char */ - status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned char */ - status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_ind_dxpl_id, FALSE); /* From floats to short */ - status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned short */ - status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_ind_dxpl_id, FALSE); /* From floats to int */ - status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned int */ - status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_ind_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned long */ - status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_ind_dxpl_id, FALSE); /* From floats to long long */ - status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_ind_dxpl_id, FALSE); /* From floats to unsigned long long */ - status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE); - status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_ind_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_ind_dxpl_id, FALSE); /* * The special no-op conversion is the fastest, so we list it last. The * data types we use are not important as long as the source and * destination are equal. */ - status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_dxpl_id, FALSE); + status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_ind_dxpl_id, FALSE); /* Initialize the +/- Infinity values for floating-point types */ status |= H5T_init_inf(); @@ -1401,7 +1401,7 @@ H5T_term_interface(void) H5T__print_stats(path, &nprint/*in,out*/); path->cdata.command = H5T_CONV_FREE; if((path->func)((hid_t)FAIL, (hid_t)FAIL, &(path->cdata), (size_t)0, - (size_t)0, (size_t)0, NULL, NULL,H5AC_dxpl_id) < 0) { + (size_t)0, (size_t)0, NULL, NULL,H5AC_ind_dxpl_id) < 0) { #ifdef H5T_DEBUG if (H5DEBUG(T)) { fprintf(H5DEBUG(T), "H5T: conversion function " @@ -2925,7 +2925,7 @@ H5T_decode(const unsigned char *buf) HGOTO_ERROR(H5E_DATATYPE, H5E_VERSION, NULL, "unknown version of encoded datatype") /* Decode the serialized datatype message */ - if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_dxpl_id, NULL, H5O_DTYPE_ID, buf))) + if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_ind_dxpl_id, NULL, H5O_DTYPE_ID, buf))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode object") /* Mark datatype as being in memory now */ diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c index 7359a56..024cc83 100644 --- a/src/H5Tcommit.c +++ b/src/H5Tcommit.c @@ -558,7 +558,7 @@ H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id) H5O_type_t obj_type; /* Type of object at location */ H5G_loc_t type_loc; /* Group object for datatype */ hbool_t obj_found = FALSE; /* Object at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */ hid_t ret_value = FAIL; /* Return value */ FUNC_ENTER_API(FAIL) diff --git a/src/H5Tdeprec.c b/src/H5Tdeprec.c index a8881fb..f1586bd 100644 --- a/src/H5Tdeprec.c +++ b/src/H5Tdeprec.c @@ -200,7 +200,7 @@ H5Topen1(hid_t loc_id, const char *name) H5O_type_t obj_type; /* Type of object at location */ H5G_loc_t type_loc; /* Group object for datatype */ hbool_t obj_found = FALSE; /* Object at 'name' found */ - hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */ + hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */ hid_t ret_value = FAIL; FUNC_ENTER_API(FAIL) -- cgit v0.12 From 3875cc6960266775e8078c782c8864516865be67 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Fri, 10 Apr 2015 12:51:40 -0500 Subject: [svn-r26778] fix path to config --- config/cmake/HDF518_Examples.cmake.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index ba3d1d0..d767f51 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -23,7 +23,7 @@ if(WIN32) if(STATICLIBRARIES) set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF") endif(STATICLIBRARIES) - set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake/hdf5") + set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake") set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build) set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}") set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") @@ -31,7 +31,7 @@ else(WIN32) if(STATICLIBRARIES) set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") endif(STATICLIBRARIES) - set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake/hdf5") + set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake") set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib") set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build) set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") -- cgit v0.12 From 6c0fcb84a8e968101e0483f033b2cc26b22c83e0 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Sat, 11 Apr 2015 22:45:56 -0500 Subject: [svn-r26782] Remove md5 from METHODS arguments for calling bin/release script from snapshot script. md5 method was removed and md5 checksums are always produced for all compression methods. --- bin/snapshot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/snapshot b/bin/snapshot index b4adf5e..a496edd 100755 --- a/bin/snapshot +++ b/bin/snapshot @@ -67,8 +67,8 @@ ReleaseDir_default=release_dir ZLIB_default= ZLIB=$ZLIB_default -# What compression methods to use? (md5 does checksum). -METHODS="gzip zip bzip2 md5 doc" +# What compression methods to use? +METHODS="gzip zip bzip2 doc" # Use User's MAKE if set. Else use generic make. MAKE=${MAKE:-make} -- cgit v0.12 From 27313306f89a69c92dff3311c503bff21e3fe2b2 Mon Sep 17 00:00:00 2001 From: HDF Tester Date: Sun, 12 Apr 2015 06:05:35 -0500 Subject: [svn-r26785] Snapshot version 1.9 release 216 --- README.txt | 2 +- c++/src/Makefile.in | 2 +- config/lt_vers.am | 2 +- configure | 22 +++++++++++----------- configure.ac | 2 +- fortran/src/Makefile.in | 2 +- hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/Makefile.in | 2 +- release_docs/RELEASE.txt | 2 +- src/H5public.h | 4 ++-- src/Makefile.in | 2 +- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/README.txt b/README.txt index 9f22b0f..09ef509 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.216 currently under development +HDF5 version 1.9.217 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 55c3577..3afedda 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -670,7 +670,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # This is our main target diff --git a/config/lt_vers.am b/config/lt_vers.am index 41d7e81..3cb67a4 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -19,7 +19,7 @@ # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 76c3a91..cc937fa 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.216. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.217. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.216' -PACKAGE_STRING='HDF5 1.9.216' +PACKAGE_VERSION='1.9.217' +PACKAGE_STRING='HDF5 1.9.217' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1472,7 +1472,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.216 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.217 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1542,7 +1542,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.216:";; + short | recursive ) echo "Configuration of HDF5 1.9.217:";; esac cat <<\_ACEOF @@ -1731,7 +1731,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.216 +HDF5 configure 1.9.217 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2668,7 +2668,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.216, which was +It was created by HDF5 $as_me 1.9.217, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3539,7 +3539,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.216' + VERSION='1.9.217' cat >>confdefs.h <<_ACEOF @@ -28562,7 +28562,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.216 +HDF5 config.lt 1.9.217 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -30678,7 +30678,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.216, which was +This file was extended by HDF5 $as_me 1.9.217, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -30744,7 +30744,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.216 +HDF5 config.status 1.9.217 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 27e856a..9fd3817 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.216], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.217], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 345ebe7..f9f4a7b 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -724,7 +724,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 89b71cb..1813a3c 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -662,7 +662,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # This is our main target diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 6f34295..1989c5a 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -680,7 +680,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 8685b9e..9b2dcb9 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -661,7 +661,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 17f9ac1..4bc2667 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.216 currently under development +HDF5 version 1.9.217 currently under development ================================================================================ diff --git a/src/H5public.h b/src/H5public.h index 7bacb3d..c0f2e1a 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -94,10 +94,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 216 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 217 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.216" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.217" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index aa7bed3..8ccc510 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -723,7 +723,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 206 +LT_VERS_REVISION = 207 LT_VERS_AGE = 0 # Our main target, the HDF5 library -- cgit v0.12 From 573365e3a0df0bc084a8a6b1272b04a937d54305 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Mon, 13 Apr 2015 03:25:56 -0500 Subject: [svn-r26786] In libhdf5.settings.in, changed the C++ shared library setting variable from H5_CXX_SHARED (which no longer exists) to enable_static. Tested on: jam (configure only - minor change) --- src/libhdf5.settings.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in index 1b1ae96..1eed645 100644 --- a/src/libhdf5.settings.in +++ b/src/libhdf5.settings.in @@ -51,7 +51,7 @@ Languages: @BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CXXFLAGS@ @BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @H5_CXXFLAGS@ @BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@ -@BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @H5_CXX_SHARED@ +@BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @enable_shared@ @BUILD_CXX_CONDITIONAL_TRUE@ Static C++ Library: @enable_static@ Features: -- cgit v0.12 From 41302a1ea64b45805ff351c6795623f99382f8e9 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Tue, 14 Apr 2015 07:57:30 -0500 Subject: [svn-r26803] Fixed a minor typo in H5R code comment. --- src/H5Rpublic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/H5Rpublic.h b/src/H5Rpublic.h index 997309f..e990661 100644 --- a/src/H5Rpublic.h +++ b/src/H5Rpublic.h @@ -14,7 +14,7 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* - * This file contains public declarations for the H5S module. + * This file contains public declarations for the H5R module. */ #ifndef _H5Rpublic_H #define _H5Rpublic_H -- cgit v0.12 From 1644eda6dee3ee13443d970f291a3d87a830db48 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 15 Apr 2015 08:45:06 -0500 Subject: [svn-r26812] Removed printf debugging statements. Tested: trival. --- fortran/src/H5Zf.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fortran/src/H5Zf.c b/fortran/src/H5Zf.c index 0427c23..169e018 100644 --- a/fortran/src/H5Zf.c +++ b/fortran/src/H5Zf.c @@ -51,9 +51,7 @@ nh5zunregister_c (int_f *filter) * Call H5Zunregister function. */ c_filter = (H5Z_filter_t)*filter; - printf(" filter # %d \n", (int)c_filter); status = H5Zunregister(c_filter); - printf("From C zunregister %d \n", status); if (status < 0) return ret_value; ret_value = 0; return ret_value; -- cgit v0.12 From c04b083b606cf7ed6115a21d8b3344ae8afbb3b4 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Wed, 15 Apr 2015 11:59:11 -0500 Subject: [svn-r26815] Update cmake configuration checks Tested: local linux --- CMakeLists.txt | 2 +- config/cmake/ConfigureChecks.cmake | 39 -------------------------------------- config/cmake/H5pubconf.h.in | 35 ---------------------------------- 3 files changed, 1 insertion(+), 75 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a6994ef..a4135f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -763,7 +763,7 @@ endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT #----------------------------------------------------------------------------- # Dashboard and Testing Settings #----------------------------------------------------------------------------- -option (BUILD_TESTING "Build HDF5 Unit Testing" OFF) +option (BUILD_TESTING "Build HDF5 Unit Testing" ON) if (BUILD_TESTING) set (DART_TESTING_TIMEOUT 1200 CACHE INTEGER diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index b193ff4..e223553 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -92,45 +92,6 @@ endif (WINDOWS) # ---------------------------------------------------------------------- CHECK_FUNCTION_EXISTS (difftime H5_HAVE_DIFFTIME) -#CHECK_FUNCTION_EXISTS (gettimeofday H5_HAVE_GETTIMEOFDAY) -# Since gettimeofday is not defined any where standard, lets look in all the -# usual places. On MSVC we are just going to use ::clock() -if (NOT MSVC) - if ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$") - TRY_COMPILE (HAVE_TIME_GETTIMEOFDAY - ${CMAKE_BINARY_DIR} - ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp - COMPILE_DEFINITIONS -DTRY_TIME_H - OUTPUT_VARIABLE OUTPUT - ) - if (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE") - set (H5_HAVE_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_TIME_GETTIMEOFDAY") - set (H5_HAVE_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_GETTIMEOFDAY") - endif (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE") - endif ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$") - - if ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$") - TRY_COMPILE (HAVE_SYS_TIME_GETTIMEOFDAY - ${CMAKE_BINARY_DIR} - ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp - COMPILE_DEFINITIONS -DTRY_SYS_TIME_H - OUTPUT_VARIABLE OUTPUT - ) - if (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE") - set (H5_HAVE_SYS_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_SYS_TIME_GETTIMEOFDAY") - set (H5_HAVE_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_GETTIMEOFDAY") - endif (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE") - endif ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$") - - if (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY) - message (STATUS "---------------------------------------------------------------") - message (STATUS "Function 'gettimeofday()' was not found. HDF5 will use its") - message (STATUS " own implementation.. This can happen on older versions of") - message (STATUS " MinGW on Windows. Consider upgrading your MinGW installation") - message (STATUS " to a newer version such as MinGW 3.12") - message (STATUS "---------------------------------------------------------------") - endif (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY) -endif (NOT MSVC) # Find the library containing clock_gettime() if (NOT WINDOWS) diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index c47b7c4..fcbdbd5 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -88,10 +88,6 @@ /* Define if Darwin or Mac OS X */ #cmakedefine H5_HAVE_DARWIN @H5_HAVE_DARWIN@ -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#cmakedefine H5_HAVE_DECL_TZNAME @H5_HAVE_DECL_TZNAME@ - /* Define to 1 if you have the `difftime' function. */ #cmakedefine H5_HAVE_DIFFTIME @H5_HAVE_DIFFTIME@ @@ -167,12 +163,6 @@ /* Define to 1 if you have the `gettimeofday' function. */ #cmakedefine H5_HAVE_GETTIMEOFDAY @H5_HAVE_GETTIMEOFDAY@ -/* Define to 1 if you have the `gettimeofday' function declared in time.h . */ -#cmakedefine H5_HAVE_TIME_GETTIMEOFDAY @H5_HAVE_TIME_GETTIMEOFDAY@ - -/* Define to 1 if you have the `gettimeofday' function declared in sys/time.h . */ -#cmakedefine H5_HAVE_SYS_TIME_GETTIMEOFDAY @H5_HAVE_SYS_TIME_GETTIMEOFDAY@ - /* Define to 1 if you have the `get_fpc_csr' function. */ #cmakedefine H5_HAVE_GET_FPC_CSR @H5_HAVE_GET_FPC_CSR@ @@ -201,15 +191,6 @@ /* Define to 1 if you have the `mpe' library (-lmpe). */ #cmakedefine H5_HAVE_LIBMPE @H5_HAVE_LIBMPE@ -/* Define to 1 if you have the `mpi' library (-lmpi). */ -#cmakedefine H5_HAVE_LIBMPI @H5_HAVE_LIBMPI@ - -/* Define to 1 if you have the `mpich' library (-lmpich). */ -#cmakedefine H5_HAVE_LIBMPICH @H5_HAVE_LIBMPICH@ - -/* Define to 1 if you have the `mpio' library (-lmpio). */ -#cmakedefine H5_HAVE_LIBMPIO @H5_HAVE_LIBMPIO@ - /* Define to 1 if you have the `nsl' library (-lnsl). */ #cmakedefine H5_HAVE_LIBNSL @H5_HAVE_LIBNSL@ @@ -279,9 +260,6 @@ /* Define to 1 if you have the `setsysinfo' function. */ #cmakedefine H5_HAVE_SETSYSINFO @H5_HAVE_SETSYSINFO@ -/* Define to 1 if you have the `sigaction' function. */ -#cmakedefine H5_HAVE_SIGACTION @H5_HAVE_SIGACTION@ - /* Define to 1 if you have the `siglongjmp' function. */ #cmakedefine H5_HAVE_SIGLONGJMP @H5_HAVE_SIGLONGJMP@ @@ -363,9 +341,6 @@ /* Define to 1 if you have the header file. */ #cmakedefine H5_HAVE_SYS_TIMEB_H @H5_HAVE_SYS_TIMEB_H@ -/* Define to 1 if you have the header file. */ -#cmakedefine H5_HAVE_TIME_H @H5_HAVE_TIME_H@ - /* Define to 1 if you have the header file. */ #cmakedefine H5_HAVE_SYS_TIME_H @H5_HAVE_SYS_TIME_H@ @@ -396,9 +371,6 @@ /* Define to 1 if you have the header file. */ #cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@ -/* Define to 1 if you have the `asprintf' function. */ -#cmakedefine H5_HAVE_ASPRINTF @H5_HAVE_ASPRINTF@ - /* Define to 1 if you have the `vasprintf' function. */ #cmakedefine H5_HAVE_VASPRINTF @H5_HAVE_VASPRINTF@ @@ -620,9 +592,6 @@ /* Define to 1 if you can safely include both and . */ #cmakedefine H5_TIME_WITH_SYS_TIME @H5_TIME_WITH_SYS_TIME@ -/* Define to 1 if your declares `struct tm'. */ -#cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@ - /* Define using v1.6 public API symbols by default */ #cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@ @@ -681,8 +650,4 @@ /* Define to `long' if does not define. */ #cmakedefine H5_ssize_t -#if defined(__cplusplus) && defined(inline) -#undef inline -#endif - #endif -- cgit v0.12 From c6717e8134be832103cf777d3685d61d225b61c3 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Thu, 16 Apr 2015 08:13:12 -0500 Subject: [svn-r26823] Update instruction that changes in this releaes that " --enable-parallel has to be used explicitly to build parallel HDF5 regardless of the compiler type being used. (MSC - 2015/02/19 HDFFV-9068)" --- release_docs/INSTALL_parallel | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index c38c3fc..e4570b7 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -49,9 +49,8 @@ more detailed explanations. ---------------------------- HDF5 knows several parallel compilers: mpicc, hcc, mpcc, mpcc_r. To build parallel HDF5 with one of the above, just set CC as it and configure. -The "--enable-parallel" is optional in this case. - $ CC=/usr/local/mpi/bin/mpicc ./configure --prefix= + $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel --prefix= $ make # build the library $ make check # verify the correctness # Read the Details section about parallel tests. @@ -79,7 +78,7 @@ is supported. Then do the following steps: - $ ./configure --disable-shared --prefix= + $ ./configure --enable-parallel --disable-shared --prefix= $ make # build the library $ make check # verify the correctness # Read the Details section about parallel tests. @@ -176,8 +175,8 @@ a properly installed parallel compiler (e.g., MPICH's mpicc or IBM's mpcc_r) and supply the compiler name as the value of the CC environment variable. For examples, - $ CC=mpcc_r ./configure - $ CC=/usr/local/mpi/bin/mpicc ./configure + $ CC=mpcc_r ./configure --enable-parallel + $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel If no such a compiler command is available then you must use your normal C compiler along with the location(s) of MPI/MPI-IO files to be used. -- cgit v0.12 From 7bf3a426e8634c851d9c550fd980f07d3e29fc1b Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Fri, 17 Apr 2015 15:49:27 -0500 Subject: [svn-r26837] Description: Separate allocating chunk on disk from inserting the chunk record into the index. This allows a "SWMR-safe" insert/update of chunks (the chunk is always allocated -> written -> inserted/updated in the index). Tested on: Mac OSX/64 10.10.2 (amazon) w/parallel & serial Linux/32 2.6.18 (jam) w/serial & parallel --- src/H5Dbtree.c | 68 ++--- src/H5Dchunk.c | 742 ++++++++++++++++++++++++++++++++++--------------------- src/H5Dmpio.c | 4 +- src/H5Dpkg.h | 8 +- src/H5Fio.c | 3 + src/H5Fprivate.h | 6 + 6 files changed, 490 insertions(+), 341 deletions(-) diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index 75080f7..d05de03 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -74,8 +74,8 @@ * The chunk's file address is part of the B-tree and not part of the key. */ typedef struct H5D_btree_key_t { - uint32_t nbytes; /*size of stored data */ hsize_t offset[H5O_LAYOUT_NDIMS]; /*logical offset to start*/ + uint32_t nbytes; /*size of stored data */ unsigned filter_mask; /*excluded filters */ } H5D_btree_key_t; @@ -255,7 +255,7 @@ H5D__btree_get_shared(const H5F_t UNUSED *f, const void *_udata) *------------------------------------------------------------------------- */ static herr_t -H5D__btree_new_node(H5F_t *f, hid_t dxpl_id, H5B_ins_t op, +H5D__btree_new_node(H5F_t *f, hid_t UNUSED dxpl_id, H5B_ins_t op, void *_lt_key, void *_udata, void *_rt_key, haddr_t *addr_p/*out*/) { @@ -265,7 +265,7 @@ H5D__btree_new_node(H5F_t *f, hid_t dxpl_id, H5B_ins_t op, unsigned u; herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_STATIC + FUNC_ENTER_STATIC_NOERR /* check args */ HDassert(f); @@ -275,18 +275,16 @@ H5D__btree_new_node(H5F_t *f, hid_t dxpl_id, H5B_ins_t op, HDassert(udata->common.layout->ndims > 0 && udata->common.layout->ndims < H5O_LAYOUT_NDIMS); HDassert(addr_p); - /* Allocate new storage */ - HDassert(udata->nbytes > 0); - H5_CHECK_OVERFLOW(udata->nbytes, uint32_t, hsize_t); - if(HADDR_UNDEF == (*addr_p = H5MF_alloc(f, H5FD_MEM_DRAW, dxpl_id, (hsize_t)udata->nbytes))) - HGOTO_ERROR(H5E_IO, H5E_CANTINIT, FAIL, "couldn't allocate new file storage") - udata->addr = *addr_p; + /* Set address */ + HDassert(H5F_addr_defined(udata->chunk_block.offset)); + HDassert(udata->chunk_block.length > 0); + *addr_p = udata->chunk_block.offset; /* * The left key describes the storage of the UDATA chunk being * inserted into the tree. */ - lt_key->nbytes = udata->nbytes; + H5_ASSIGN_OVERFLOW(lt_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); lt_key->filter_mask = udata->filter_mask; for(u = 0; u < udata->common.layout->ndims; u++) lt_key->offset[u] = udata->common.offset[u]; @@ -305,7 +303,6 @@ H5D__btree_new_node(H5F_t *f, hid_t dxpl_id, H5B_ins_t op, } /* end if */ } /* end if */ -done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__btree_new_node() */ @@ -468,8 +465,8 @@ H5D__btree_found(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, haddr_t addr, const void /* Initialize return values */ HDassert(lt_key->nbytes > 0); - udata->addr = addr; - udata->nbytes = lt_key->nbytes; + udata->chunk_block.offset = addr; + udata->chunk_block.length = lt_key->nbytes; udata->filter_mask = lt_key->filter_mask; done: @@ -507,7 +504,7 @@ done: */ /* ARGSUSED */ static H5B_ins_t -H5D__btree_insert(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key, +H5D__btree_insert(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t addr, void *_lt_key, hbool_t *lt_key_changed, void *_md_key, void *_udata, void *_rt_key, hbool_t UNUSED *rt_key_changed, @@ -547,35 +544,17 @@ H5D__btree_insert(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key, * Already exists. If the new size is not the same as the old size * then we should reallocate storage. */ - if(lt_key->nbytes != udata->nbytes) { -/* Currently, the old chunk data is "thrown away" after the space is reallocated, - * so avoid data copy in H5MF_realloc() call by just free'ing the space and - * allocating new space. - * - * This should keep the file smaller also, by freeing the space and then - * allocating new space, instead of vice versa (in H5MF_realloc). - * - * QAK - 11/19/2002 - */ -#ifdef OLD_WAY - if(HADDR_UNDEF == (*new_node_p = H5MF_realloc(f, H5FD_MEM_DRAW, addr, - (hsize_t)lt_key->nbytes, (hsize_t)udata->nbytes))) - HGOTO_ERROR(H5E_STORAGE, H5E_NOSPACE, H5B_INS_ERROR, "unable to reallocate chunk storage") -#else /* OLD_WAY */ - H5_CHECK_OVERFLOW(lt_key->nbytes, uint32_t, hsize_t); - if(H5MF_xfree(f, H5FD_MEM_DRAW, dxpl_id, addr, (hsize_t)lt_key->nbytes) < 0) - HGOTO_ERROR(H5E_STORAGE, H5E_CANTFREE, H5B_INS_ERROR, "unable to free chunk") - H5_CHECK_OVERFLOW(udata->nbytes, uint32_t, hsize_t); - if(HADDR_UNDEF == (*new_node_p = H5MF_alloc(f, H5FD_MEM_DRAW, dxpl_id, (hsize_t)udata->nbytes))) - HGOTO_ERROR(H5E_STORAGE, H5E_NOSPACE, H5B_INS_ERROR, "unable to reallocate chunk") -#endif /* OLD_WAY */ - lt_key->nbytes = udata->nbytes; + if(lt_key->nbytes != udata->chunk_block.length) { + /* Set node's address (already re-allocated by main chunk routines) */ + HDassert(H5F_addr_defined(udata->chunk_block.offset)); + *new_node_p = udata->chunk_block.offset; + H5_ASSIGN_OVERFLOW(lt_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); lt_key->filter_mask = udata->filter_mask; *lt_key_changed = TRUE; - udata->addr = *new_node_p; ret_value = H5B_INS_CHANGE; } else { - udata->addr = addr; + /* Already have address in udata, from main chunk routines */ + HDassert(H5F_addr_defined(udata->chunk_block.offset)); ret_value = H5B_INS_NOOP; } @@ -589,20 +568,15 @@ H5D__btree_insert(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key, * Split this node, inserting the new new node to the right of the * current node. The MD_KEY is where the split occurs. */ - md_key->nbytes = udata->nbytes; + H5_ASSIGN_OVERFLOW(md_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); md_key->filter_mask = udata->filter_mask; for(u = 0; u < udata->common.layout->ndims; u++) { HDassert(0 == udata->common.offset[u] % udata->common.layout->dim[u]); md_key->offset[u] = udata->common.offset[u]; } /* end for */ - /* - * Allocate storage for the new chunk - */ - H5_CHECK_OVERFLOW(udata->nbytes, uint32_t, hsize_t); - if(HADDR_UNDEF == (*new_node_p = H5MF_alloc(f, H5FD_MEM_DRAW, dxpl_id, (hsize_t)udata->nbytes))) - HGOTO_ERROR(H5E_STORAGE, H5E_NOSPACE, H5B_INS_ERROR, "file allocation failed") - udata->addr = *new_node_p; + HDassert(H5F_addr_defined(udata->chunk_block.offset)); + *new_node_p = udata->chunk_block.offset; ret_value = H5B_INS_RIGHT; } else { diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index a284cee..336aaf6 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -59,6 +59,7 @@ #include "H5FLprivate.h" /* Free Lists */ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ +#include "H5MFprivate.h" /* File memory management */ #include "H5VMprivate.h" /* Vector and array functions */ @@ -211,9 +212,9 @@ H5D__nonexistent_readvv(const H5D_io_info_t *io_info, /* Helper routines */ static herr_t H5D__chunk_set_info_real(H5O_layout_chunk_t *layout, unsigned ndims, const hsize_t *curr_dims); -static void *H5D__chunk_alloc(size_t size, const H5O_pline_t *pline); -static void *H5D__chunk_xfree(void *chk, const H5O_pline_t *pline); -static void *H5D__chunk_realloc(void *chk, size_t size, +static void *H5D__chunk_mem_alloc(size_t size, const H5O_pline_t *pline); +static void *H5D__chunk_mem_xfree(void *chk, const H5O_pline_t *pline); +static void *H5D__chunk_mem_realloc(void *chk, size_t size, const H5O_pline_t *pline); static herr_t H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last); static herr_t H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, @@ -237,6 +238,8 @@ static herr_t H5D__chunk_cache_evict(const H5D_t *dset, hid_t dxpl_id, static herr_t H5D__chunk_cache_prune(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t *dxpl_cache, size_t size); static herr_t H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata); +static herr_t H5D__chunk_file_alloc(const H5D_chk_idx_info_t *idx_info, + const H5F_block_t *old_chunk, H5F_block_t *new_chunk, hbool_t *need_insert); #ifdef H5_HAVE_PARALLEL static herr_t H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, H5D_chunk_coll_info_t *chunk_info, size_t chunk_size, const void *fill_buf); @@ -319,18 +322,18 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz { const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ H5D_chunk_ud_t udata; /* User data for querying chunk info */ - hsize_t chunk_idx; - H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ - H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ - const H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ - int space_ndims; /* Dataset's space rank */ + hsize_t chunk_idx; /* Global index of chunk */ + H5F_block_t old_chunk; /* Offset/length of old chunk */ + H5D_chk_idx_info_t idx_info; /* Chunked index info */ + hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ + int space_ndims; /* Dataset's space rank */ hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) /* Allocate dataspace and initialize it if it hasn't been. */ - if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) + if(!(*layout->ops->is_space_alloc)(&layout->storage)) /* Allocate storage */ if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage") @@ -348,49 +351,67 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz if(H5D__chunk_lookup(dset, dxpl_id, offset, chunk_idx, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") - udata.filter_mask = filters; + /* Sanity check */ + HDassert((H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length > 0) || + (!H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length == 0)); - /* Check if the chunk needs to be 'inserted' (could exist already and - * the 'insert' operation could resize it) - */ - { - H5D_chk_idx_info_t idx_info; /* Chunked index info */ + /* Set the file block information for the old chunk */ + /* (Which is only defined when overwriting an existing chunk) */ + old_chunk.offset = udata.chunk_block.offset; + old_chunk.length = udata.chunk_block.length; - /* Compose chunked index info struct */ - idx_info.f = dset->oloc.file; - idx_info.dxpl_id = dxpl_id; - idx_info.pline = &(dset->shared->dcpl_cache.pline); - idx_info.layout = &(dset->shared->layout.u.chunk); - idx_info.storage = &(dset->shared->layout.storage.u.chunk); + /* Check if the chunk needs to be inserted (it also could exist already + * and the chunk allocate operation could resize it) + */ - /* Set up the size of chunk for user data */ - udata.nbytes = data_size; + /* Compose chunked index info struct */ + idx_info.f = dset->oloc.file; + idx_info.dxpl_id = dxpl_id; + idx_info.pline = &(dset->shared->dcpl_cache.pline); + idx_info.layout = &(dset->shared->layout.u.chunk); + idx_info.storage = &(dset->shared->layout.storage.u.chunk); - /* Create the chunk it if it doesn't exist, or reallocate the chunk - * if its size changed. - */ - if((dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk") + /* Set up the size of chunk for user data */ + udata.chunk_block.length = data_size; - /* Make sure the address of the chunk is returned. */ - if(!H5F_addr_defined(udata.addr)) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined") - } /* end if */ + /* Create the chunk it if it doesn't exist, or reallocate the chunk + * if its size changed. + */ + if(H5D__chunk_file_alloc(&idx_info, &old_chunk, &udata.chunk_block, &need_insert) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "unable to allocate chunk") - /* Fill the DXPL cache values for later use */ - if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") + /* Make sure the address of the chunk is returned. */ + if(!H5F_addr_defined(udata.chunk_block.offset)) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined") /* Evict the (old) entry from the cache if present, but do not flush * it to disk */ - if(UINT_MAX != udata.idx_hint) + if(UINT_MAX != udata.idx_hint) { + H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ + H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ + const H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ + + /* Fill the DXPL cache values for later use */ + if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") + if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[udata.idx_hint], FALSE) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") + } /* end if */ /* Write the data to the file */ - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, data_size, dxpl_id, buf) < 0) + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.chunk_block.offset, data_size, dxpl_id, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to write raw data to file") + /* Insert the chunk record into the index */ + if(need_insert && layout->storage.u.chunk.ops->insert) { + /* Set the chunk's filter mask to the new settings */ + udata.filter_mask = filters; + + if((layout->storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert chunk addr into index") + } /* end if */ + done: FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) } /* end H5D__chunk_direct_write() */ @@ -974,7 +995,7 @@ done: /*------------------------------------------------------------------------- - * Function: H5D__chunk_alloc + * Function: H5D__chunk_mem_alloc * * Purpose: Allocate space for a chunk in memory. This routine allocates * memory space for non-filtered chunks from a block free list @@ -988,7 +1009,7 @@ done: *------------------------------------------------------------------------- */ static void * -H5D__chunk_alloc(size_t size, const H5O_pline_t *pline) +H5D__chunk_mem_alloc(size_t size, const H5O_pline_t *pline) { void *ret_value = NULL; /* Return value */ @@ -1003,11 +1024,11 @@ H5D__chunk_alloc(size_t size, const H5O_pline_t *pline) ret_value = H5FL_BLK_MALLOC(chunk, size); FUNC_LEAVE_NOAPI(ret_value) -} /* H5D__chunk_alloc() */ +} /* H5D__chunk_mem_alloc() */ /*------------------------------------------------------------------------- - * Function: H5D__chunk_xfree + * Function: H5D__chunk_mem_xfree * * Purpose: Free space for a chunk in memory. This routine allocates * memory space for non-filtered chunks from a block free list @@ -1021,7 +1042,7 @@ H5D__chunk_alloc(size_t size, const H5O_pline_t *pline) *------------------------------------------------------------------------- */ static void * -H5D__chunk_xfree(void *chk, const H5O_pline_t *pline) +H5D__chunk_mem_xfree(void *chk, const H5O_pline_t *pline) { FUNC_ENTER_STATIC_NOERR @@ -1035,11 +1056,11 @@ H5D__chunk_xfree(void *chk, const H5O_pline_t *pline) } /* end if */ FUNC_LEAVE_NOAPI(NULL) -} /* H5D__chunk_xfree() */ +} /* H5D__chunk_mem_xfree() */ /*------------------------------------------------------------------------- - * Function: H5D__chunk_realloc + * Function: H5D__chunk_mem_realloc * * Purpose: Reallocate space for a chunk in memory. This routine allocates * memory space for non-filtered chunks from a block free list @@ -1053,7 +1074,7 @@ H5D__chunk_xfree(void *chk, const H5O_pline_t *pline) *------------------------------------------------------------------------- */ static void * -H5D__chunk_realloc(void *chk, size_t size, const H5O_pline_t *pline) +H5D__chunk_mem_realloc(void *chk, size_t size, const H5O_pline_t *pline) { void *ret_value = NULL; /* Return value */ @@ -1068,7 +1089,7 @@ H5D__chunk_realloc(void *chk, size_t size, const H5O_pline_t *pline) ret_value = H5FL_BLK_REALLOC(chunk, chk, size); FUNC_LEAVE_NOAPI(ret_value) -} /* H5D__chunk_realloc() */ +} /* H5D__chunk_mem_realloc() */ /*-------------------------------------------------------------------------- @@ -1835,10 +1856,7 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, chunk_node = H5D_CHUNK_GET_FIRST_NODE(fm); while(chunk_node) { H5D_chunk_info_t *chunk_info; /* Chunk information */ - H5D_io_info_t *chk_io_info; /* Pointer to I/O info object for this chunk */ - void *chunk; /* Pointer to locked chunk buffer */ - H5D_chunk_ud_t udata; /* B-tree pass-through */ - htri_t cacheable; /* Whether the chunk is cacheable */ + H5D_chunk_ud_t udata; /* Chunk index pass-through */ /* Get the actual chunk information from the skip list node */ chunk_info = H5D_CHUNK_GET_NODE_INFO(fm, chunk_node); @@ -1847,11 +1865,19 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") + /* Sanity check */ + HDassert((H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length > 0) || + (!H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length == 0)); + /* Check for non-existant chunk & skip it if appropriate */ - if(H5F_addr_defined(udata.addr) || UINT_MAX != udata.idx_hint + if(H5F_addr_defined(udata.chunk_block.offset) || UINT_MAX != udata.idx_hint || !skip_missing_chunks) { + H5D_io_info_t *chk_io_info; /* Pointer to I/O info object for this chunk */ + void *chunk = NULL; /* Pointer to locked chunk buffer */ + htri_t cacheable; /* Whether the chunk is cacheable */ + /* Load the chunk into cache and lock it. */ - if((cacheable = H5D__chunk_cacheable(io_info, udata.addr, FALSE)) < 0) + if((cacheable = H5D__chunk_cacheable(io_info, udata.chunk_block.offset, FALSE)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't tell if chunk is cacheable") if(cacheable) { /* Pass in chunk's coordinates in a union. */ @@ -1872,20 +1898,14 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, /* Point I/O info at contiguous I/O info for this chunk */ chk_io_info = &cpt_io_info; } /* end if */ - else if(H5F_addr_defined(udata.addr)) { + else if(H5F_addr_defined(udata.chunk_block.offset)) { /* Set up the storage address information for this chunk */ - ctg_store.contig.dset_addr = udata.addr; - - /* No chunk cached */ - chunk = NULL; + ctg_store.contig.dset_addr = udata.chunk_block.offset; /* Point I/O info at temporary I/O info for this chunk */ chk_io_info = &ctg_io_info; } /* end else if */ else { - /* No chunk cached */ - chunk = NULL; - /* Point I/O info at "nonexistent" I/O info for this chunk */ chk_io_info = &nonexistent_io_info; } /* end else */ @@ -1963,10 +1983,12 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, chunk_node = H5D_CHUNK_GET_FIRST_NODE(fm); while(chunk_node) { H5D_chunk_info_t *chunk_info; /* Chunk information */ + H5D_chk_idx_info_t idx_info; /* Chunked index info */ H5D_io_info_t *chk_io_info; /* Pointer to I/O info object for this chunk */ void *chunk; /* Pointer to locked chunk buffer */ H5D_chunk_ud_t udata; /* Index pass-through */ htri_t cacheable; /* Whether the chunk is cacheable */ + hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ /* Get the actual chunk information from the skip list node */ chunk_info = H5D_CHUNK_GET_NODE_INFO(fm, chunk_node); @@ -1975,7 +1997,12 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, * simply allocate space instead of load the chunk. */ if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") - if((cacheable = H5D__chunk_cacheable(io_info, udata.addr, TRUE)) < 0) + + /* Sanity check */ + HDassert((H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length > 0) || + (!H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length == 0)); + + if((cacheable = H5D__chunk_cacheable(io_info, udata.chunk_block.offset, TRUE)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't tell if chunk is cacheable") if(cacheable) { hbool_t entire_chunk = TRUE; /* Whether whole chunk is selected */ @@ -2005,9 +2032,7 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, } /* end if */ else { /* If the chunk hasn't been allocated on disk, do so now. */ - if(!H5F_addr_defined(udata.addr)) { - H5D_chk_idx_info_t idx_info; /* Chunked index info */ - + if(!H5F_addr_defined(udata.chunk_block.offset)) { /* Compose chunked index info struct */ idx_info.f = io_info->dset->oloc.file; idx_info.dxpl_id = io_info->dxpl_id; @@ -2016,14 +2041,14 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, idx_info.storage = &(io_info->dset->shared->layout.storage.u.chunk); /* Set up the size of chunk for user data */ - udata.nbytes = io_info->dset->shared->layout.u.chunk.size; + udata.chunk_block.length = io_info->dset->shared->layout.u.chunk.size; - /* Create the chunk */ - if((io_info->dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk") + /* Allocate the chunk */ + if(H5D__chunk_file_alloc(&idx_info, NULL, &udata.chunk_block, &need_insert) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk on chunk level") /* Make sure the address of the chunk is returned. */ - if(!H5F_addr_defined(udata.addr)) + if(!H5F_addr_defined(udata.chunk_block.offset)) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined") /* Cache the new chunk information */ @@ -2031,7 +2056,7 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, } /* end if */ /* Set up the storage address information for this chunk */ - ctg_store.contig.dset_addr = udata.addr; + ctg_store.contig.dset_addr = udata.chunk_block.offset; /* No chunk cached */ chunk = NULL; @@ -2045,9 +2070,16 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, (hsize_t)chunk_info->chunk_points, chunk_info->fspace, chunk_info->mspace) < 0) HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "chunked write failed") - /* Release the cache lock on the chunk. */ - if(chunk && H5D__chunk_unlock(io_info, &udata, TRUE, chunk, dst_accessed_bytes) < 0) - HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "unable to unlock raw data chunk") + /* Release the cache lock on the chunk, or insert chunk into index. */ + if(chunk) { + if(H5D__chunk_unlock(io_info, &udata, TRUE, chunk, dst_accessed_bytes) < 0) + HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "unable to unlock raw data chunk") + } /* end if */ + else { + if(need_insert && io_info->dset->shared->layout.storage.u.chunk.ops->insert) + if((io_info->dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert chunk addr into index") + } /* end else */ /* Advance to next chunk in list */ chunk_node = H5D_CHUNK_GET_NEXT_NODE(fm, chunk_node); @@ -2244,8 +2276,8 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud /* Stored the information to cache */ HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims); - last->addr = udata->addr; - last->nbytes = udata->nbytes; + last->addr = udata->chunk_block.offset; + H5_ASSIGN_OVERFLOW(last->nbytes, udata->chunk_block.length, hsize_t, uint32_t); last->filter_mask = udata->filter_mask; /* Indicate that the cached info is valid */ @@ -2291,8 +2323,8 @@ H5D__chunk_cinfo_cache_found(const H5D_chunk_cached_t *last, H5D_chunk_ud_t *uda HGOTO_DONE(FALSE) /* Retrieve the information from the cache */ - udata->addr = last->addr; - udata->nbytes = last->nbytes; + udata->chunk_block.offset = last->addr; + udata->chunk_block.length = last->nbytes; udata->filter_mask = last->filter_mask; /* Indicate that the data was found */ @@ -2392,8 +2424,8 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, udata->common.rdcc = &(dset->shared->cache.chunk); /* Reset information about the chunk we are looking for */ - udata->addr = HADDR_UNDEF; - udata->nbytes = 0; + udata->chunk_block.offset = HADDR_UNDEF; + udata->chunk_block.length = 0; udata->filter_mask = 0; /* Check for chunk in cache */ @@ -2410,8 +2442,10 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, } /* end if */ /* Find chunk addr */ - if(found) - udata->addr = ent->chunk_addr; + if(found) { + udata->chunk_block.offset = ent->chunk_block.offset; + udata->chunk_block.length = ent->chunk_block.length;; + } /* end if */ else { /* Invalidate idx_hint, to signal that the chunk is not in cache */ udata->idx_hint = UINT_MAX; @@ -2474,21 +2508,23 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t buf = ent->chunk; if(ent->dirty && !ent->deleted) { + H5D_chk_idx_info_t idx_info; /* Chunked index info */ H5D_chunk_ud_t udata; /* pass through B-tree */ - hbool_t must_insert = FALSE; /* Whether the chunk must go through the "insert" method */ + hbool_t must_alloc = FALSE; /* Whether the chunk must be allocated */ + hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ /* Set up user data for index callbacks */ udata.common.layout = &dset->shared->layout.u.chunk; udata.common.storage = &dset->shared->layout.storage.u.chunk; udata.common.offset = ent->offset; udata.common.rdcc = &(dset->shared->cache.chunk); + udata.chunk_block.offset = ent->chunk_block.offset; + udata.chunk_block.length = dset->shared->layout.u.chunk.size; udata.filter_mask = 0; - udata.nbytes = dset->shared->layout.u.chunk.size; - udata.addr = ent->chunk_addr; /* Should the chunk be filtered before writing it to disk? */ if(dset->shared->dcpl_cache.pline.nused) { - size_t alloc = udata.nbytes; /* Bytes allocated for BUF */ + size_t alloc = udata.chunk_block.length; /* Bytes allocated for BUF */ size_t nbytes; /* Chunk size (in bytes) */ if(!reset) { @@ -2497,10 +2533,9 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t * the pipeline because we'll want to save the original buffer * for later. */ - H5_ASSIGN_OVERFLOW(alloc, udata.nbytes, uint32_t, size_t); if(NULL == (buf = H5MM_malloc(alloc))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for pipeline") - HDmemcpy(buf, ent->chunk, udata.nbytes); + HDmemcpy(buf, ent->chunk, alloc); } /* end if */ else { /* @@ -2513,7 +2548,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t point_of_no_return = TRUE; ent->chunk = NULL; } /* end else */ - H5_ASSIGN_OVERFLOW(nbytes, udata.nbytes, uint32_t, size_t); + H5_ASSIGN_OVERFLOW(nbytes, udata.chunk_block.length, uint32_t, size_t); if(H5Z_pipeline(&(dset->shared->dcpl_cache.pline), 0, &(udata.filter_mask), dxpl_cache->err_detect, dxpl_cache->filter_cb, &nbytes, &alloc, &buf) < 0) HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, FAIL, "output pipeline failed") @@ -2522,21 +2557,19 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t if(nbytes > ((size_t)0xffffffff)) HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "chunk too large for 32-bit length") #endif /* H5_SIZEOF_SIZE_T > 4 */ - H5_ASSIGN_OVERFLOW(udata.nbytes, nbytes, size_t, uint32_t); + H5_ASSIGN_OVERFLOW(udata.chunk_block.length, nbytes, size_t, uint32_t); - /* Indicate that the chunk must go through 'insert' method */ - must_insert = TRUE; + /* Indicate that the chunk must be allocated */ + must_alloc = TRUE; } /* end if */ - else if(!H5F_addr_defined(udata.addr)) - /* Indicate that the chunk must go through 'insert' method */ - must_insert = TRUE; + else if(!H5F_addr_defined(udata.chunk_block.offset)) + /* Indicate that the chunk must be allocated */ + must_alloc = TRUE; - /* Check if the chunk needs to be 'inserted' (could exist already and - * the 'insert' operation could resize it) + /* Check if the chunk needs to be allocated (it also could exist already + * and the chunk alloc operation could resize it) */ - if(must_insert) { - H5D_chk_idx_info_t idx_info; /* Chunked index info */ - + if(must_alloc) { /* Compose chunked index info struct */ idx_info.f = dset->oloc.file; idx_info.dxpl_id = dxpl_id; @@ -2547,18 +2580,24 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t /* Create the chunk it if it doesn't exist, or reallocate the chunk * if its size changed. */ - if((dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk") + if(H5D__chunk_file_alloc(&idx_info, &(ent->chunk_block), &udata.chunk_block, &need_insert) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk on chunk level") - /* Update the chunk entry's address, in case it was allocated or relocated */ - ent->chunk_addr = udata.addr; + /* Update the chunk entry's info, in case it was allocated or relocated */ + ent->chunk_block.offset = udata.chunk_block.offset; + ent->chunk_block.length = udata.chunk_block.length; } /* end if */ /* Write the data to the file */ - HDassert(H5F_addr_defined(udata.addr)); - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, udata.nbytes, dxpl_id, buf) < 0) + HDassert(H5F_addr_defined(udata.chunk_block.offset)); + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.chunk_block.offset, udata.chunk_block.length, dxpl_id, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to write raw data to file") + /* Insert the chunk record into the index */ + if(need_insert && dset->shared->layout.storage.u.chunk.ops->insert) + if((dset->shared->layout.storage.u.chunk.ops->insert)(&idx_info, &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert chunk addr into index") + /* Cache the chunk's info, in case it's accessed again shortly */ H5D__chunk_cinfo_cache_update(&dset->shared->cache.chunk.last, &udata); @@ -2575,7 +2614,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t if(buf == ent->chunk) buf = NULL; if(ent->chunk != NULL) - ent->chunk = (uint8_t *)H5D__chunk_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); + ent->chunk = (uint8_t *)H5D__chunk_mem_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); } /* end if */ done: @@ -2591,7 +2630,7 @@ done: */ if(ret_value < 0 && point_of_no_return) if(ent->chunk) - ent->chunk = (uint8_t *)H5D__chunk_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); + ent->chunk = (uint8_t *)H5D__chunk_mem_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) } /* end H5D__chunk_flush_entry() */ @@ -2633,7 +2672,7 @@ H5D__chunk_cache_evict(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t else { /* Don't flush, just free chunk */ if(ent->chunk != NULL) - ent->chunk = (uint8_t *)H5D__chunk_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); + ent->chunk = (uint8_t *)H5D__chunk_mem_xfree(ent->chunk, &(dset->shared->dcpl_cache.pline)); } /* end else */ /* Unlink from list */ @@ -2800,14 +2839,13 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, hbool_t relax) { const H5D_t *dset = io_info->dset; /* Local pointer to the dataset info */ - const H5O_pline_t *pline = &(dset->shared->dcpl_cache.pline); /* I/O pipeline info - always equal to the pline passed to H5D__chunk_alloc */ + const H5O_pline_t *pline = &(dset->shared->dcpl_cache.pline); /* I/O pipeline info - always equal to the pline passed to H5D__chunk_mem_alloc */ const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset layout */ const H5O_fill_t *fill = &(dset->shared->dcpl_cache.fill); /* Fill value info */ H5D_fill_buf_info_t fb_info; /* Dataset's fill buffer info */ hbool_t fb_info_init = FALSE; /* Whether the fill value buffer has been initialized */ H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache*/ - H5D_rdcc_ent_t *ent = NULL; /*cache entry */ - haddr_t chunk_addr = HADDR_UNDEF; /* Address of chunk on disk */ + H5D_rdcc_ent_t *ent; /*cache entry */ size_t chunk_size; /*size of a chunk */ void *chunk = NULL; /*the file chunk */ void *ret_value; /*return value */ @@ -2848,110 +2886,12 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, * Already in the cache. Count a hit. */ rdcc->stats.nhits++; - } /* end if */ - else if(relax) { - /* - * Not in the cache, but we're about to overwrite the whole thing - * anyway, so just allocate a buffer for it but don't initialize that - * buffer with the file contents. Count this as a hit instead of a - * miss because we saved ourselves lots of work. - */ - rdcc->stats.nhits++; - - /* Still save the chunk address so the cache stays consistent */ - chunk_addr = udata->addr; - if(NULL == (chunk = H5D__chunk_alloc(chunk_size, pline))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") - - /* In the case that some dataset functions look through this data, - * clear it to all 0s. */ - HDmemset(chunk, 0, chunk_size); - } /* end if */ - else { /* - * Not in the cache. Count this as a miss if it's in the file - * or an init if it isn't. - */ - - /* Save the chunk address */ - chunk_addr = udata->addr; - - /* Check if the chunk exists on disk */ - if(H5F_addr_defined(chunk_addr)) { - size_t chunk_alloc = 0; /*allocated chunk size */ - - /* Chunk size on disk isn't [likely] the same size as the final chunk - * size in memory, so allocate memory big enough. */ - H5_ASSIGN_OVERFLOW(chunk_alloc, udata->nbytes, uint32_t, size_t); - if(NULL == (chunk = H5D__chunk_alloc(chunk_alloc, pline))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") - if(H5F_block_read(dset->oloc.file, H5FD_MEM_DRAW, chunk_addr, chunk_alloc, io_info->dxpl_id, chunk) < 0) - HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, "unable to read raw data chunk") - - if(pline->nused) { - if(H5Z_pipeline(pline, H5Z_FLAG_REVERSE, &(udata->filter_mask), io_info->dxpl_cache->err_detect, - io_info->dxpl_cache->filter_cb, &chunk_alloc, &chunk_alloc, &chunk) < 0) - HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, NULL, "data pipeline read failed") - H5_ASSIGN_OVERFLOW(udata->nbytes, chunk_alloc, size_t, uint32_t); - } /* end if */ - - /* Increment # of cache misses */ - rdcc->stats.nmisses++; - } /* end if */ - else { - H5D_fill_value_t fill_status; - - /* Sanity check */ - HDassert(fill->alloc_time != H5D_ALLOC_TIME_EARLY); - - /* Chunk size on disk isn't [likely] the same size as the final chunk - * size in memory, so allocate memory big enough. */ - if(NULL == (chunk = H5D__chunk_alloc(chunk_size, pline))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") - - if(H5P_is_fill_value_defined(fill, &fill_status) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't tell if fill value defined") - - if(fill->fill_time == H5D_FILL_TIME_ALLOC || - (fill->fill_time == H5D_FILL_TIME_IFSET && - (fill_status == H5D_FILL_VALUE_USER_DEFINED || - fill_status == H5D_FILL_VALUE_DEFAULT))) { - /* - * The chunk doesn't exist in the file. Replicate the fill - * value throughout the chunk, if the fill value is defined. - */ - - /* Initialize the fill value buffer */ - /* (use the compact dataset storage buffer as the fill value buffer) */ - if(H5D__fill_init(&fb_info, chunk, NULL, NULL, NULL, NULL, - &dset->shared->dcpl_cache.fill, dset->shared->type, - dset->shared->type_id, (size_t)0, chunk_size, io_info->dxpl_id) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL, "can't initialize fill buffer info") - fb_info_init = TRUE; - - /* Check for VL datatype & non-default fill value */ - if(fb_info.has_vlen_fill_type) - /* Fill the buffer with VL datatype fill values */ - if(H5D__fill_refill_vl(&fb_info, fb_info.elmts_per_buf, io_info->dxpl_id) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, NULL, "can't refill fill value buffer") - } /* end if */ - else - HDmemset(chunk, 0, chunk_size); - - /* Increment # of creations */ - rdcc->stats.ninits++; - } /* end else */ - } /* end else */ - HDassert(chunk_size > 0); - - if(ent) { - /* - * The chunk is not at the beginning of the cache; move it backward + * If the chunk is not at the beginning of the cache; move it backward * by one slot. This is how we implement the LRU preemption * algorithm. */ - HDassert(ent); if(ent->next) { if(ent->next->next) ent->next->next->prev = ent; @@ -2967,67 +2907,166 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, ent->prev->next = ent; } /* end if */ } /* end if */ - else if(rdcc->nslots > 0 && chunk_size <= rdcc->nbytes_max) { - /* Calculate the index */ - udata->idx_hint = H5D_CHUNK_HASH(dset->shared, io_info->store->chunk.index); + else { + haddr_t chunk_addr; /* Address of chunk on disk */ + hsize_t chunk_alloc; /* Length of chunk on disk */ + + /* Save the chunk info so the cache stays consistent */ + chunk_addr = udata->chunk_block.offset; + chunk_alloc = udata->chunk_block.length; + + if(relax) { + /* + * Not in the cache, but we're about to overwrite the whole thing + * anyway, so just allocate a buffer for it but don't initialize that + * buffer with the file contents. Count this as a hit instead of a + * miss because we saved ourselves lots of work. + */ + rdcc->stats.nhits++; - /* Add the chunk to the cache only if the slot is not already locked */ - ent = rdcc->slot[udata->idx_hint]; - if(!ent || !ent->locked) { - /* Preempt enough things from the cache to make room */ - if(ent) { - if(H5D__chunk_cache_evict(io_info->dset, io_info->dxpl_id, io_info->dxpl_cache, ent, TRUE) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk from cache") + if(NULL == (chunk = H5D__chunk_mem_alloc(chunk_size, pline))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") + + /* In the case that some dataset functions look through this data, + * clear it to all 0s. */ + HDmemset(chunk, 0, chunk_size); + } /* end if */ + else { + /* + * Not in the cache. Count this as a miss if it's in the file + * or an init if it isn't. + */ + + /* Check if the chunk exists on disk */ + if(H5F_addr_defined(chunk_addr)) { + size_t my_chunk_alloc = chunk_alloc; /* Allocated buffer size */ + size_t buf_alloc = chunk_alloc; /* [Re-]allocated buffer size */ + + /* Chunk size on disk isn't [likely] the same size as the final chunk + * size in memory, so allocate memory big enough. */ + if(NULL == (chunk = H5D__chunk_mem_alloc(my_chunk_alloc, pline))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") + if(H5F_block_read(dset->oloc.file, H5FD_MEM_DRAW, chunk_addr, my_chunk_alloc, io_info->dxpl_id, chunk) < 0) + HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, "unable to read raw data chunk") + + if(pline->nused) + if(H5Z_pipeline(pline, H5Z_FLAG_REVERSE, &(udata->filter_mask), io_info->dxpl_cache->err_detect, + io_info->dxpl_cache->filter_cb, &my_chunk_alloc, &buf_alloc, &chunk) < 0) + HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, NULL, "data pipeline read failed") + + /* Increment # of cache misses */ + rdcc->stats.nmisses++; } /* end if */ - if(H5D__chunk_cache_prune(io_info->dset, io_info->dxpl_id, io_info->dxpl_cache, chunk_size) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk(s) from cache") - - /* Create a new entry */ - if(NULL == (ent = H5FL_CALLOC(H5D_rdcc_ent_t))) - HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate raw data chunk entry") - - /* Initialize the new entry */ - ent->chunk_addr = chunk_addr; - HDmemcpy(ent->offset, io_info->store->chunk.offset, sizeof(hsize_t) * layout->u.chunk.ndims); - H5_ASSIGN_OVERFLOW(ent->rd_count, chunk_size, size_t, uint32_t); - H5_ASSIGN_OVERFLOW(ent->wr_count, chunk_size, size_t, uint32_t); - ent->chunk = (uint8_t *)chunk; - - /* Add it to the cache */ - HDassert(NULL == rdcc->slot[udata->idx_hint]); - rdcc->slot[udata->idx_hint] = ent; - ent->idx = udata->idx_hint; - rdcc->nbytes_used += chunk_size; - rdcc->nused++; - - /* Add it to the linked list */ - if(rdcc->tail) { - rdcc->tail->next = ent; - ent->prev = rdcc->tail; - rdcc->tail = ent; + else { + H5D_fill_value_t fill_status; + + /* Sanity check */ + HDassert(fill->alloc_time != H5D_ALLOC_TIME_EARLY); + + /* Chunk size on disk isn't [likely] the same size as the final chunk + * size in memory, so allocate memory big enough. */ + if(NULL == (chunk = H5D__chunk_mem_alloc(chunk_size, pline))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk") + + if(H5P_is_fill_value_defined(fill, &fill_status) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't tell if fill value defined") + + if(fill->fill_time == H5D_FILL_TIME_ALLOC || + (fill->fill_time == H5D_FILL_TIME_IFSET && + (fill_status == H5D_FILL_VALUE_USER_DEFINED || + fill_status == H5D_FILL_VALUE_DEFAULT))) { + /* + * The chunk doesn't exist in the file. Replicate the fill + * value throughout the chunk, if the fill value is defined. + */ + + /* Initialize the fill value buffer */ + /* (use the compact dataset storage buffer as the fill value buffer) */ + if(H5D__fill_init(&fb_info, chunk, NULL, NULL, NULL, NULL, + &dset->shared->dcpl_cache.fill, dset->shared->type, + dset->shared->type_id, (size_t)0, chunk_size, io_info->dxpl_id) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL, "can't initialize fill buffer info") + fb_info_init = TRUE; + + /* Check for VL datatype & non-default fill value */ + if(fb_info.has_vlen_fill_type) + /* Fill the buffer with VL datatype fill values */ + if(H5D__fill_refill_vl(&fb_info, fb_info.elmts_per_buf, io_info->dxpl_id) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, NULL, "can't refill fill value buffer") + } /* end if */ + else + HDmemset(chunk, 0, chunk_size); + + /* Increment # of creations */ + rdcc->stats.ninits++; + } /* end else */ + } /* end else */ + + /* See if the chunk can be cached */ + if(rdcc->nslots > 0 && chunk_size <= rdcc->nbytes_max) { + /* Calculate the index */ + udata->idx_hint = H5D_CHUNK_HASH(dset->shared, io_info->store->chunk.index); + + /* Add the chunk to the cache only if the slot is not already locked */ + ent = rdcc->slot[udata->idx_hint]; + if(!ent || !ent->locked) { + /* Preempt enough things from the cache to make room */ + if(ent) { + if(H5D__chunk_cache_evict(io_info->dset, io_info->dxpl_id, io_info->dxpl_cache, ent, TRUE) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk from cache") + } /* end if */ + if(H5D__chunk_cache_prune(io_info->dset, io_info->dxpl_id, io_info->dxpl_cache, chunk_size) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk(s) from cache") + + /* Create a new entry */ + if(NULL == (ent = H5FL_CALLOC(H5D_rdcc_ent_t))) + HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate raw data chunk entry") + + /* Initialize the new entry */ + ent->chunk_block.offset = chunk_addr; + ent->chunk_block.length = chunk_alloc; + HDmemcpy(ent->offset, io_info->store->chunk.offset, sizeof(hsize_t) * layout->u.chunk.ndims); + H5_ASSIGN_OVERFLOW(ent->rd_count, chunk_size, size_t, uint32_t); + H5_ASSIGN_OVERFLOW(ent->wr_count, chunk_size, size_t, uint32_t); + ent->chunk = (uint8_t *)chunk; + + /* Add it to the cache */ + HDassert(NULL == rdcc->slot[udata->idx_hint]); + rdcc->slot[udata->idx_hint] = ent; + ent->idx = udata->idx_hint; + rdcc->nbytes_used += chunk_size; + rdcc->nused++; + + /* Add it to the linked list */ + if(rdcc->tail) { + rdcc->tail->next = ent; + ent->prev = rdcc->tail; + rdcc->tail = ent; + } /* end if */ + else + rdcc->head = rdcc->tail = ent; } /* end if */ else - rdcc->head = rdcc->tail = ent; - } /* end if */ - else - /* We did not add the chunk to cache */ + /* We did not add the chunk to cache */ + ent = NULL; + } /* end else */ + else /* No cache set up, or chunk is too large: chunk is uncacheable */ ent = NULL; } /* end else */ - if(!ent) - /* - * The chunk cannot be placed in cache so we don't cache it. This is the - * reason all those arguments have to be repeated for the unlock - * function. - */ - udata->idx_hint = UINT_MAX; - /* Lock the chunk into the cache */ if(ent) { HDassert(!ent->locked); ent->locked = TRUE; chunk = ent->chunk; } /* end if */ + else + /* + * The chunk cannot be placed in cache so we don't cache it. This is the + * reason all those arguments have to be repeated for the unlock + * function. + */ + udata->idx_hint = UINT_MAX; /* Set return value */ ret_value = chunk; @@ -3040,7 +3079,7 @@ done: /* Release the chunk allocated, on error */ if(!ret_value) if(chunk) - chunk = H5D__chunk_xfree(chunk, pline); + chunk = H5D__chunk_mem_xfree(chunk, pline); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__chunk_lock() */ @@ -3095,7 +3134,8 @@ H5D__chunk_unlock(const H5D_io_info_t *io_info, const H5D_chunk_ud_t *udata, fake_ent.dirty = TRUE; HDmemcpy(fake_ent.offset, io_info->store->chunk.offset, layout->u.chunk.ndims * sizeof(fake_ent.offset[0])); HDassert(layout->u.chunk.size > 0); - fake_ent.chunk_addr = udata->addr; + fake_ent.chunk_block.offset = udata->chunk_block.offset; + fake_ent.chunk_block.length = udata->chunk_block.length; fake_ent.chunk = (uint8_t *)chunk; if(H5D__chunk_flush_entry(io_info->dset, io_info->dxpl_id, io_info->dxpl_cache, &fake_ent, TRUE) < 0) @@ -3103,7 +3143,7 @@ H5D__chunk_unlock(const H5D_io_info_t *io_info, const H5D_chunk_ud_t *udata, } /* end if */ else { if(chunk) - chunk = H5D__chunk_xfree(chunk, &(io_info->dset->shared->dcpl_cache.pline)); + chunk = H5D__chunk_mem_xfree(chunk, &(io_info->dset->shared->dcpl_cache.pline)); } /* end else */ } /* end if */ else { @@ -3331,8 +3371,8 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Initialize the fill value buffer */ /* (delay allocating fill buffer for VL datatypes until refilling) */ /* (casting away const OK - QAK) */ - if(H5D__fill_init(&fb_info, NULL, (H5MM_allocate_t)H5D__chunk_alloc, - (void *)pline, (H5MM_free_t)H5D__chunk_xfree, (void *)pline, + if(H5D__fill_init(&fb_info, NULL, (H5MM_allocate_t)H5D__chunk_mem_alloc, + (void *)pline, (H5MM_free_t)H5D__chunk_mem_xfree, (void *)pline, &dset->shared->dcpl_cache.fill, dset->shared->type, dset->shared->type_id, (size_t)0, orig_chunk_size, dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize fill buffer info") @@ -3365,8 +3405,8 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, /* Calculate the minimum and maximum chunk offsets in each dimension. Note * that we assume here that all elements of space_dim are > 0. This is - * checked at the top of this function */ - for(op_dim=0; op_dimstorage.u.chunk; udata.common.offset = chunk_offset; udata.common.rdcc = NULL; - udata.addr = HADDR_UNDEF; - H5_ASSIGN_OVERFLOW(udata.nbytes, chunk_size, size_t, uint32_t); + udata.chunk_block.offset = HADDR_UNDEF; + H5_ASSIGN_OVERFLOW(udata.chunk_block.length, chunk_size, size_t, uint32_t); udata.filter_mask = filter_mask; /* Allocate the chunk (with all processes) */ - if((ops->insert)(&idx_info, &udata) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert record into chunk index") - HDassert(H5F_addr_defined(udata.addr)); + if(H5D__chunk_file_alloc(&idx_info, NULL, &udata.chunk_block, &need_insert) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk on chunk level") + HDassert(H5F_addr_defined(udata.chunk_block.offset)); /* Check if fill values should be written to chunks */ if(should_fill) { /* Sanity check */ HDassert(fb_info_init); - HDassert(udata.nbytes == chunk_size); + HDassert(udata.chunk_block.length == chunk_size); #ifdef H5_HAVE_PARALLEL /* Check if this file is accessed with an MPI-capable file driver */ @@ -3513,7 +3555,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed for chunk addresses") /* Store the chunk's address for later */ - chunk_info.addr[chunk_info.num_io] = udata.addr; + chunk_info.addr[chunk_info.num_io] = udata.chunk_block.offset; chunk_info.num_io++; /* Indicate that blocks will be written */ @@ -3521,14 +3563,22 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, } /* end if */ else { #endif /* H5_HAVE_PARALLEL */ - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, chunk_size, dxpl_id, fb_info.fill_buf) < 0) + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.chunk_block.offset, chunk_size, dxpl_id, fb_info.fill_buf) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file") #ifdef H5_HAVE_PARALLEL } /* end else */ #endif /* H5_HAVE_PARALLEL */ } /* end if */ - /* Increment indices */ + /* Insert the chunk record into the index */ + /* (Note that this isn't safe, from a SWMR perspective, unlike + * serial operation. -QAK + */ + if(need_insert && ops->insert) + if((ops->insert)(&idx_info, &udata) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert chunk addr into index") + + /* Increment indices and adjust the edge chunk state */ carry = TRUE; for(i = ((int)space_ndims - 1); i >= 0; --i) { chunk_offset[i] += chunk_dim[i]; @@ -3776,7 +3826,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") /* If this chunk does not exist in cache or on disk, no need to do anything */ - if(!H5F_addr_defined(chk_udata.addr) && UINT_MAX == chk_udata.idx_hint) + if(!H5F_addr_defined(chk_udata.chunk_block.offset) && UINT_MAX == chk_udata.idx_hint) HGOTO_DONE(SUCCEED) /* Initialize the fill value buffer, if necessary */ @@ -4187,7 +4237,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk") /* Remove the chunk from disk, if present */ - if(H5F_addr_defined(chk_udata.addr)) { + if(H5F_addr_defined(chk_udata.chunk_block.offset)) { /* Update the offset in idx_udata */ idx_udata.offset = chunk_offset; @@ -4528,6 +4578,7 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) H5D_chunk_ud_t udata_dst; /* User data about new destination chunk */ hbool_t is_vlen = FALSE; /* Whether datatype is variable-length */ hbool_t fix_ref = FALSE; /* Whether to fix up references in the dest. file */ + hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ /* General information about chunk copy */ void *bkg = udata->bkg; /* Background buffer for datatype conversion */ @@ -4650,8 +4701,8 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) udata_dst.common.storage = udata->idx_info_dst->storage; udata_dst.common.offset = chunk_rec->offset; udata_dst.common.rdcc = NULL; - udata_dst.addr = HADDR_UNDEF; - udata_dst.nbytes = chunk_rec->nbytes; + udata_dst.chunk_block.offset = HADDR_UNDEF; + udata_dst.chunk_block.length = chunk_rec->nbytes; udata_dst.filter_mask = chunk_rec->filter_mask; /* Need to compress variable-length & reference data elements before writing to file */ @@ -4663,27 +4714,31 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) if(nbytes > ((size_t)0xffffffff)) HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, H5_ITER_ERROR, "chunk too large for 32-bit length") #endif /* H5_SIZEOF_SIZE_T > 4 */ - H5_ASSIGN_OVERFLOW(udata_dst.nbytes, nbytes, size_t, uint32_t); + H5_ASSIGN_OVERFLOW(udata_dst.chunk_block.length, nbytes, size_t, uint32_t); udata->buf = buf; udata->buf_size = buf_size; } /* end if */ + /* Allocate chunk in the file */ + if(H5D__chunk_file_alloc(udata->idx_info_dst, NULL, &udata_dst.chunk_block, &need_insert) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINSERT, FAIL, "unable to insert/resize chunk on chunk level") + + /* Write chunk data to destination file */ + HDassert(H5F_addr_defined(udata_dst.chunk_block.offset)); + if(H5F_block_write(udata->idx_info_dst->f, H5FD_MEM_DRAW, udata_dst.chunk_block.offset, nbytes, udata->idx_info_dst->dxpl_id, buf) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, H5_ITER_ERROR, "unable to write raw data to file") + /* Set metadata tag in dxpl_id */ H5_BEGIN_TAG(udata->idx_info_dst->dxpl_id, H5AC__COPIED_TAG, H5_ITER_ERROR); - /* Insert chunk into the destination index */ - if(udata->idx_info_dst->storage->ops->insert) + /* Insert chunk record into index */ + if(need_insert && udata->idx_info_dst->storage->ops->insert) if((udata->idx_info_dst->storage->ops->insert)(udata->idx_info_dst, &udata_dst) < 0) HGOTO_ERROR_TAG(H5E_DATASET, H5E_CANTINSERT, H5_ITER_ERROR, "unable to insert chunk addr into index") /* Reset metadata tag in dxpl_id */ H5_END_TAG(H5_ITER_ERROR); - /* Write chunk data to destination file */ - HDassert(H5F_addr_defined(udata_dst.addr)); - if(H5F_block_write(udata->idx_info_dst->f, H5FD_MEM_DRAW, udata_dst.addr, nbytes, udata->idx_info_dst->dxpl_id, buf) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, H5_ITER_ERROR, "unable to write raw data to file") - done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__chunk_copy_cb() */ @@ -5325,3 +5380,114 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5D__nonexistent_readvv() */ + +/*------------------------------------------------------------------------- + * Function: H5D__chunk_file_alloc() + * + * Purpose: Chunk allocation: + * Create the chunk if it doesn't exist, or reallocate the + * chunk if its size changed. + * The coding is moved and modified from each index structure. + * + * Return: Non-negative on success/Negative on failure + * + * Programmer: Vailin Choi; June 2014 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5D__chunk_file_alloc(const H5D_chk_idx_info_t *idx_info, const H5F_block_t *old_chunk, + H5F_block_t *new_chunk, hbool_t *need_insert) +{ + hbool_t alloc_chunk = FALSE; /* Whether to allocate chunk */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity check */ + HDassert(idx_info); + HDassert(idx_info->f); + HDassert(idx_info->pline); + HDassert(idx_info->layout); + HDassert(idx_info->storage); + HDassert(H5F_addr_defined(idx_info->storage->idx_addr)); + HDassert(new_chunk); + HDassert(need_insert); + + /* Check for filters on chunks */ + if(idx_info->pline->nused > 0) { + /* Sanity/error checking block */ + { + unsigned allow_chunk_size_len; /* Allowed size of encoded chunk size */ + unsigned new_chunk_size_len; /* Size of encoded chunk size */ + + /* Compute the size required for encoding the size of a chunk, allowing + * for an extra byte, in case the filter makes the chunk larger. + */ + allow_chunk_size_len = 1 + ((H5VM_log2_gen((uint64_t)(idx_info->layout->size)) + 8) / 8); + if(allow_chunk_size_len > 8) + allow_chunk_size_len = 8; + + /* Compute encoded size of chunk */ + new_chunk_size_len = (H5VM_log2_gen((uint64_t)(new_chunk->length)) + 8) / 8; + if(new_chunk_size_len > 8) + HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "encoded chunk size is more than 8 bytes?!?") + + /* Check if the chunk became too large to be encoded */ + if(new_chunk_size_len > allow_chunk_size_len) + HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "chunk size can't be encoded") + } /* end block */ + + if(old_chunk && H5F_addr_defined(old_chunk->offset)) { + /* Sanity check */ + HDassert(!H5F_addr_defined(new_chunk->offset) || H5F_addr_eq(new_chunk->offset, old_chunk->offset)); + + /* Check for chunk being same size */ + if(new_chunk->length != old_chunk->length) { + /* Release previous chunk */ + if(H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, idx_info->dxpl_id, old_chunk->offset, old_chunk->length) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to free chunk") + alloc_chunk = TRUE; + } /* end if */ + else { + /* Don't need to reallocate chunk, but send its address back up */ + if(!H5F_addr_defined(new_chunk->offset)) + new_chunk->offset = old_chunk->offset; + } /* end else */ + } /* end if */ + else { + HDassert(!H5F_addr_defined(new_chunk->offset)); + alloc_chunk = TRUE; + } /* end else */ + } /* end if */ + else { + HDassert(!H5F_addr_defined(new_chunk->offset)); + HDassert(new_chunk->length == idx_info->layout->size); + alloc_chunk = TRUE; + } /* end else */ + + /* Actually allocate space for the chunk in the file */ + if(alloc_chunk) { + switch(idx_info->storage->idx_type) { + case H5D_CHUNK_IDX_BTREE: + HDassert(new_chunk->length > 0); + H5_CHECK_OVERFLOW(new_chunk->length, /*From: */uint32_t, /*To: */hsize_t); + new_chunk->offset = H5MF_alloc(idx_info->f, H5FD_MEM_DRAW, idx_info->dxpl_id, (hsize_t)new_chunk->length); + if(!H5F_addr_defined(new_chunk->offset)) + HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "file allocation failed") + *need_insert = TRUE; + break; + + case H5D_CHUNK_IDX_NTYPES: + default: + HDassert(0 && "This should never be executed!"); + break; + } /* end switch */ + } /* end if */ + + HDassert(H5F_addr_defined(new_chunk->offset)); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* H5D__chunk_file_alloc() */ + diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index 01d2288..bd1531d 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -863,7 +863,7 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk address") - ctg_store.contig.dset_addr = udata.addr; + ctg_store.contig.dset_addr = udata.chunk_block.offset; } /* end else */ /* Set up the base storage address for this chunk */ @@ -1592,7 +1592,7 @@ if(H5DEBUG(D)) if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk info from skipped list") - chunk_addr = udata.addr; + chunk_addr = udata.chunk_block.offset; } /* end if */ else chunk_addr = total_chunk_addr_array[chunk_info->index]; diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 06cc2c0..a3a3985 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -33,6 +33,7 @@ /* Other private headers needed by this file */ #include "H5ACprivate.h" /* Metadata cache */ +#include "H5Fprivate.h" /* File access */ #include "H5Gprivate.h" /* Groups */ #include "H5SLprivate.h" /* Skip lists */ #include "H5Tprivate.h" /* Datatypes */ @@ -238,8 +239,8 @@ typedef struct H5D_chk_idx_info_t { * The chunk's file address, filter mask and size on disk are not key values. */ typedef struct H5D_chunk_rec_t { - uint32_t nbytes; /* Size of stored data */ hsize_t offset[H5O_LAYOUT_NDIMS]; /* Logical offset to start */ + uint32_t nbytes; /* Size of stored data */ unsigned filter_mask; /* Excluded filters */ haddr_t chunk_addr; /* Address of chunk in file */ } H5D_chunk_rec_t; @@ -265,8 +266,7 @@ typedef struct H5D_chunk_ud_t { /* Upward */ unsigned idx_hint; /*index of chunk in cache, if present */ - haddr_t addr; /*file address of chunk */ - uint32_t nbytes; /*size of stored data */ + H5F_block_t chunk_block; /*offset/length of chunk in file */ unsigned filter_mask; /*excluded filters */ } H5D_chunk_ud_t; @@ -496,7 +496,7 @@ typedef struct H5D_rdcc_ent_t { hsize_t offset[H5O_LAYOUT_NDIMS]; /*chunk name */ uint32_t rd_count; /*bytes remaining to be read */ uint32_t wr_count; /*bytes remaining to be written */ - haddr_t chunk_addr; /*address of chunk in file */ + H5F_block_t chunk_block; /*offset/length of chunk in file */ uint8_t *chunk; /*the unfiltered chunk data */ unsigned idx; /*index in hash table */ struct H5D_rdcc_ent_t *next;/*next item in doubly-linked list */ diff --git a/src/H5Fio.c b/src/H5Fio.c index 1d05cd0..763bd69 100644 --- a/src/H5Fio.c +++ b/src/H5Fio.c @@ -100,6 +100,9 @@ H5F_block_read(const H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size, herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) +#ifdef QAK +HDfprintf(stderr, "%s: read from addr = %a, size = %Zu\n", FUNC, addr, size); +#endif /* QAK */ HDassert(f); HDassert(f->shared); diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 4cd8c69..4e57a19 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -573,6 +573,12 @@ typedef struct H5F_io_info_t { const struct H5P_genplist_t *dxpl; /* DXPL object */ } H5F_io_info_t; +/* Concise info about a block of bytes in a file */ +typedef struct H5F_block_t { + haddr_t offset; /* Offset of the block in the file */ + hsize_t length; /* Length of the block in the file */ +} H5F_block_t; + /*****************************/ /* Library-private Variables */ -- cgit v0.12 From cf98752566a33067a5737e8a008dc5daa1f4c59c Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Fri, 17 Apr 2015 17:24:47 -0500 Subject: [svn-r26840] configure configure.ac hl/src/H5LTparse.c hl/src/H5LTparse.h Address HDFFV-9010: configure issue with gcc 4.9.2 "-l ". Change default to disable_shared on CYGWIN. release_docs/INSTALL_Cygwin.txt release_docs/RELEASE.txt Update for changed default and no CYGWIN szip binary. c++/src/cpp_doc_config bin/h5vers AddressHDFFV-9010: Add cpp_doc_config to h5vers Tested with h5committest, on CYGWIN. --- bin/h5vers | 47 ++++++++++++- c++/src/cpp_doc_config | 2 +- configure | 21 ++++++ configure.ac | 21 ++++++ hl/src/H5LTparse.c | 144 ++++++++++++++++++++-------------------- hl/src/H5LTparse.h | 4 +- release_docs/INSTALL_Cygwin.txt | 8 ++- release_docs/RELEASE.txt | 5 ++ 8 files changed, 174 insertions(+), 78 deletions(-) diff --git a/bin/h5vers b/bin/h5vers index cb4b9e0..2aa8023 100755 --- a/bin/h5vers +++ b/bin/h5vers @@ -187,6 +187,10 @@ die "unable to read file: $RELEASE\n" unless -r $file; my $CONFIGURE = $file; $CONFIGURE =~ s/[^\/]*$/..\/configure.ac/; die "unable to read file: $CONFIGURE\n" unless -r $file; +# cpp_doc_config +my $CPP_DOC_CONFIG = $file; +$CPP_DOC_CONFIG =~ s/[^\/]*$/..\/c++\/src\/cpp_doc_config/; +die "unable to read file: $CPP_DOC_CONFIG\n" unless -r $file; # Get the current version number. open FILE, $file or die "unable to open $file: $!\n"; @@ -234,7 +238,8 @@ if ($set) { $README = ""; $RELEASE = ""; $CONFIGURE = ""; - $LT_VERS = ""; + $CPP_DOC_CONFIG = ""; + $LT_VERS = ""; @newver = @curver; } @@ -309,6 +314,46 @@ if ($RELEASE) { close FILE; } +# Update the c++/src/cpp_doc_config file +if ($CPP_DOC_CONFIG) { + my $data = read_file($CPP_DOC_CONFIG); + my $version_string = sprintf("HDF5 version %d.%d.%d%s %s", + @newver[0,1,2], + $newver[3] eq "" ? "" : "-".$newver[3], + "currently under development"); + + $data =~ s/PROJECT_NUMBER\s*=.*/PROJECT_NUMBER = $version_string/; + + write_file($CPP_DOC_CONFIG, $data); +} + +# helper function to read the file for updating c++/src/cpp_doc_config file. +# The version string in that file is not at the top, so the string replacement +# is not for the first line, and reading/writing the entire file as one string +# facilitates the substring replacement. +sub read_file { + my ($filename) = @_; + + open my $in, $filename or die "Could not open '$filename' for reading $!"; + local $/ = undef; + my $all = <$in>; + close $in; + + return $all; +} + +# helper function to write the file for updating c++/src/cpp_doc_config file. +sub write_file { + my ($filename, $content) = @_; + + open my $out, ">$filename" or die "Could not open '$filename' for writing $!";; + print $out $content; + close $out; + + return; +} + + sub gen_configure { my ($name, $conf) = @_; diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config index f2caed2..7ea93f6 100644 --- a/c++/src/cpp_doc_config +++ b/c++/src/cpp_doc_config @@ -38,7 +38,7 @@ PROJECT_NAME = "HDF5 C++ API" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 1.8.13 +PROJECT_NUMBER = HDF5 version 1.9.216 currently under development # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/configure b/configure index cc937fa..adabfc3 100755 --- a/configure +++ b/configure @@ -7684,6 +7684,19 @@ fi ## ---------------------------------------------------------------------- +## Disable shared libraries on CYGWIN. (LK - 04/16/15) +## A number of tests run by "make check" fail on CYGWIN, so for HDF5 v1.8.15 +## we will change the default for shared libraries to disabled. + + +case "`uname`" in + CYGWIN*) + enable_shared="no" + CHECK_WARN="Shared libraries are not currently supported on CYGWIN." + ;; +esac + +## ---------------------------------------------------------------------- ## Fortran libraries are not currently supported on Mac. Disable them. ## (this is overridable with --enable-unsupported). ## @@ -21435,6 +21448,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ## ---------------------------------------------------------------------- ## Check if we should install only statically linked executables. ## This check needs to occur after libtool is initialized because @@ -33129,5 +33144,11 @@ cat >> src/H5config.h <, specifically gfortran or m. +## This sed script corrects "-l " first and then "-l " with no library name. +## If the order is not preserved, all instances of "-l " will be removed. +sed -e '/^postdeps/ s/-l \(a-zA-Z\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool + ## show the configure settings cat src/libhdf5.settings diff --git a/configure.ac b/configure.ac index 9fd3817..5bcd530 100644 --- a/configure.ac +++ b/configure.ac @@ -637,6 +637,19 @@ AC_SUBST([RUNPARALLEL]) AC_SUBST([TESTPARALLEL]) ## ---------------------------------------------------------------------- +## Disable shared libraries on CYGWIN. (LK - 04/16/15) +## A number of tests run by "make check" fail on CYGWIN, so for HDF5 v1.8.15 +## we will change the default for shared libraries to disabled. + + +case "`uname`" in + CYGWIN*) + enable_shared="no" + CHECK_WARN="Shared libraries are not currently supported on CYGWIN." + ;; +esac + +## ---------------------------------------------------------------------- ## Fortran libraries are not currently supported on Mac. Disable them. ## (this is overridable with --enable-unsupported). ## @@ -687,6 +700,8 @@ LT_PREREQ([2.2]) ## win32-dll - This will build clean dlls on win32 platforms. LT_INIT([dlopen,win32-dll]) + + ## ---------------------------------------------------------------------- ## Check if we should install only statically linked executables. ## This check needs to occur after libtool is initialized because @@ -2899,5 +2914,11 @@ cat >> src/H5config.h <, specifically gfortran or m. +## This sed script corrects "-l " first and then "-l " with no library name. +## If the order is not preserved, all instances of "-l " will be removed. +sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool + ## show the configure settings cat src/libhdf5.settings diff --git a/hl/src/H5LTparse.c b/hl/src/H5LTparse.c index 6ca95c54..36591d3 100644 --- a/hl/src/H5LTparse.c +++ b/hl/src/H5LTparse.c @@ -1641,229 +1641,229 @@ yyreduce: switch (yyn) { case 2: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 101 "H5LTparse.y" { memset(arr_stack, 0, STACK_SIZE*sizeof(struct arr_info)); /*initialize here?*/ } break; case 3: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 102 "H5LTparse.y" { return (yyval.hid);} break; case 13: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 116 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I8BE); } break; case 14: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 117 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I8LE); } break; case 15: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 118 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I16BE); } break; case 16: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 119 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I16LE); } break; case 17: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 120 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I32BE); } break; case 18: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 121 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I32LE); } break; case 19: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 122 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I64BE); } break; case 20: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 123 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I64LE); } break; case 21: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 124 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U8BE); } break; case 22: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 125 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U8LE); } break; case 23: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 126 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U16BE); } break; case 24: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 127 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U16LE); } break; case 25: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 128 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U32BE); } break; case 26: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 129 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U32LE); } break; case 27: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 130 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U64BE); } break; case 28: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 131 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U64LE); } break; case 29: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 132 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_CHAR); } break; case 30: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 133 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_SCHAR); } break; case 31: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 134 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_UCHAR); } break; case 32: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 135 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_SHORT); } break; case 33: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 136 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_USHORT); } break; case 34: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 137 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_INT); } break; case 35: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 138 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_UINT); } break; case 36: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 139 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LONG); } break; case 37: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 140 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULONG); } break; case 38: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 141 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LLONG); } break; case 39: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 142 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULLONG); } break; case 40: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 145 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F32BE); } break; case 41: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 146 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F32LE); } break; case 42: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 147 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F64BE); } break; case 43: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 148 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F64LE); } break; case 44: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 149 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_FLOAT); } break; case 45: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 150 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_DOUBLE); } break; case 46: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 151 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LDOUBLE); } break; case 47: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 155 "H5LTparse.y" { csindex++; cmpd_stack[csindex].id = H5Tcreate(H5T_COMPOUND, 1); /*temporarily set size to 1*/ } break; case 48: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 157 "H5LTparse.y" { (yyval.hid) = cmpd_stack[csindex].id; cmpd_stack[csindex].id = 0; @@ -1873,13 +1873,13 @@ yyreduce: break; case 51: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 166 "H5LTparse.y" { cmpd_stack[csindex].is_field = 1; /*notify lexer a compound member is parsed*/ } break; case 52: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 168 "H5LTparse.y" { size_t origin_size, new_size; @@ -1915,7 +1915,7 @@ yyreduce: break; case 53: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 201 "H5LTparse.y" { (yyval.sval) = yylval.sval; @@ -1923,25 +1923,25 @@ yyreduce: break; case 54: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 206 "H5LTparse.y" { (yyval.ival) = 0; } break; case 55: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 208 "H5LTparse.y" { (yyval.ival) = yylval.ival; } break; case 57: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 212 "H5LTparse.y" { asindex++; /*pushd onto the stack*/ } break; case 58: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 214 "H5LTparse.y" { (yyval.hid) = H5Tarray_create2((yyvsp[(5) - (6)].hid), arr_stack[asindex].ndims, arr_stack[asindex].dims); @@ -1952,13 +1952,13 @@ yyreduce: break; case 61: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 224 "H5LTparse.y" { arr_stack[asindex].is_dim = 1; /*notice lexer of dimension size*/ } break; case 62: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 225 "H5LTparse.y" { unsigned ndims = arr_stack[asindex].ndims; arr_stack[asindex].dims[ndims] = (hsize_t)yylval.ival; @@ -1968,19 +1968,19 @@ yyreduce: break; case 65: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 236 "H5LTparse.y" { (yyval.hid) = H5Tvlen_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); } break; case 66: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 241 "H5LTparse.y" { is_opq_size = 1; } break; case 67: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 242 "H5LTparse.y" { size_t size = (size_t)yylval.ival; @@ -1990,13 +1990,13 @@ yyreduce: break; case 68: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 247 "H5LTparse.y" { is_opq_tag = 1; } break; case 69: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 248 "H5LTparse.y" { H5Tset_tag((yyvsp[(7) - (13)].hid), yylval.sval); @@ -2005,19 +2005,19 @@ yyreduce: break; case 70: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 252 "H5LTparse.y" { (yyval.hid) = (yyvsp[(7) - (15)].hid); } break; case 73: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 260 "H5LTparse.y" { is_str_size = 1; } break; case 74: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 261 "H5LTparse.y" { if((yyvsp[(5) - (6)].ival) == H5T_VARIABLE_TOKEN) @@ -2029,7 +2029,7 @@ yyreduce: break; case 75: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 269 "H5LTparse.y" { if((yyvsp[(9) - (10)].ival) == H5T_STR_NULLTERM_TOKEN) @@ -2042,7 +2042,7 @@ yyreduce: break; case 76: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 278 "H5LTparse.y" { if((yyvsp[(13) - (14)].ival) == H5T_CSET_ASCII_TOKEN) @@ -2053,7 +2053,7 @@ yyreduce: break; case 77: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 285 "H5LTparse.y" { if((yyvsp[(17) - (18)].hid) == H5T_C_S1_TOKEN) @@ -2064,7 +2064,7 @@ yyreduce: break; case 78: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 292 "H5LTparse.y" { hid_t str_id = (yyvsp[(19) - (20)].hid); @@ -2085,67 +2085,67 @@ yyreduce: break; case 79: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 309 "H5LTparse.y" {(yyval.ival) = H5T_VARIABLE_TOKEN;} break; case 81: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 312 "H5LTparse.y" {(yyval.ival) = H5T_STR_NULLTERM_TOKEN;} break; case 82: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 313 "H5LTparse.y" {(yyval.ival) = H5T_STR_NULLPAD_TOKEN;} break; case 83: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 314 "H5LTparse.y" {(yyval.ival) = H5T_STR_SPACEPAD_TOKEN;} break; case 84: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 316 "H5LTparse.y" {(yyval.ival) = H5T_CSET_ASCII_TOKEN;} break; case 85: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 317 "H5LTparse.y" {(yyval.ival) = H5T_CSET_UTF8_TOKEN;} break; case 86: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 319 "H5LTparse.y" {(yyval.hid) = H5T_C_S1_TOKEN;} break; case 87: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 320 "H5LTparse.y" {(yyval.hid) = H5T_FORTRAN_S1_TOKEN;} break; case 88: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 324 "H5LTparse.y" { is_enum = 1; enum_id = H5Tenum_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); } break; case 89: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 326 "H5LTparse.y" { is_enum = 0; /*reset*/ (yyval.hid) = enum_id; } break; case 92: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 331 "H5LTparse.y" { is_enum_memb = 1; /*indicate member of enum*/ @@ -2158,7 +2158,7 @@ yyreduce: break; case 93: -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 340 "H5LTparse.y" { char char_val=(char)yylval.ival; @@ -2205,7 +2205,7 @@ yyreduce: break; -/* Line 1807 of yacc.c */ +/* Line 1792 of yacc.c */ #line 2191 "H5LTparse.c" default: break; } diff --git a/hl/src/H5LTparse.h b/hl/src/H5LTparse.h index 621dacd..1461830 100644 --- a/hl/src/H5LTparse.h +++ b/hl/src/H5LTparse.h @@ -109,7 +109,7 @@ extern int H5LTyydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2065 of yacc.c */ +/* Line 2058 of yacc.c */ #line 68 "H5LTparse.y" int ival; /*for integer token*/ @@ -117,7 +117,7 @@ typedef union YYSTYPE hid_t hid; /*for hid_t token*/ -/* Line 2065 of yacc.c */ +/* Line 2058 of yacc.c */ #line 122 "H5LTparse.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 diff --git a/release_docs/INSTALL_Cygwin.txt b/release_docs/INSTALL_Cygwin.txt index 2b72cac..26d3cb9 100644 --- a/release_docs/INSTALL_Cygwin.txt +++ b/release_docs/INSTALL_Cygwin.txt @@ -34,7 +34,7 @@ Preconditions: The following compilers are supported by HDF5 and included in the Cygwin package system: - gcc (4.7.3), which includes: + gcc (4.7.3 and 4.9.2), which includes: gcc4-core : C compiler gcc4-g++ : C++ compiler gcc4-fortran : fortran compiler @@ -72,7 +72,6 @@ Preconditions: The latest supported public release of SZIP is available from ftp://ftp.hdfgroup.org/lib-external/szip/2.1. - 2.3 Additional Utilities @@ -260,6 +259,11 @@ Build, Test and Install HDF5 on Cygwin dt_arith tests may fail due to the use of fork. This is a known issue with cygwin on Windows. + "make check" fails when building shared lib files is enabled. The default + on Cygwin has been changed to disable shared. It can be enabled with + the --enable-shared configure option but is likely to fail "make check" + with GCC compilers. + ----------------------------------------------------------------------- Need Further assistance, email help@hdfgroup.org diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 4bc2667..a7ba365 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1383,6 +1383,11 @@ The following platforms are not supported but have been tested for this release. Known Problems ============== +* "make check" fails on CYGWIN when building shared lib files is enabled. The + default on Cygwin has been changed to disable shared. It can be enabled with + the --enable-shared configure option but is likely to fail "make check" + with GCC compilers. (LK -2015/04/16) + * CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv catches some undefined behavior in the alignment algorithm of the macro DETECT_I in H5detect.c (Issue 8147). Since the algorithm is trying to detect the alignment -- cgit v0.12 From 524bfed32ef710dd28a3ff400965f01893a3f66b Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Sat, 18 Apr 2015 00:02:24 -0500 Subject: [svn-r26841] Description: Minor formatting cleanups and remove unused field from callback struct. Tested on: Mac OSX/64 10.10.2 (amazon) w/serial & parallel (Too minor to require h5committest) --- src/H5AC.c | 2 +- src/H5ACprivate.h | 1 + src/H5Dchunk.c | 8 +++----- src/H5Dpkg.h | 1 - 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/H5AC.c b/src/H5AC.c index 7ed5047..e6bcbb6 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -598,7 +598,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id) #ifdef H5_HAVE_PARALLEL H5AC_aux_t * aux_ptr = NULL; #endif /* H5_HAVE_PARALLEL */ - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index ccecd83..0a958b0 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -42,6 +42,7 @@ #define H5AC__TRACE_FILE_ENABLED 0 #endif /* H5_METADATA_TRACE_FILE */ +/* Global metadata tag values */ #define H5AC__INVALID_TAG (haddr_t)0 #define H5AC__IGNORE_TAG (haddr_t)1 #define H5AC__SUPERBLOCK_TAG (haddr_t)2 diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 336aaf6..a5cf5b6 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -325,7 +325,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz hsize_t chunk_idx; /* Global index of chunk */ H5F_block_t old_chunk; /* Offset/length of old chunk */ H5D_chk_idx_info_t idx_info; /* Chunked index info */ - hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ + hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ int space_ndims; /* Dataset's space rank */ hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ herr_t ret_value = SUCCEED; /* Return value */ @@ -382,7 +382,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz /* Make sure the address of the chunk is returned. */ if(!H5F_addr_defined(udata.chunk_block.offset)) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined") + HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "chunk address isn't defined") /* Evict the (old) entry from the cache if present, but do not flush * it to disk */ @@ -745,10 +745,8 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf /* Set the number of dimensions for the memory dataspace */ H5_ASSIGN_OVERFLOW(fm->m_ndims, sm_ndims, int, unsigned); - /* Get dim number and dimensionality for each dataspace */ + /* Get rank for file dataspace */ fm->f_ndims = f_ndims = dataset->shared->layout.u.chunk.ndims - 1; - if(H5S_get_simple_extent_dims(file_space, fm->f_dims, NULL) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get dimensionality") /* Normalize hyperslab selections by adjusting them by the offset */ /* (It might be worthwhile to normalize both the file and memory dataspaces diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index a3a3985..4ec140f 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -337,7 +337,6 @@ typedef struct H5D_chunk_map_t { const H5S_t *file_space; /* Pointer to the file dataspace */ unsigned f_ndims; /* Number of dimensions for file dataspace */ - hsize_t f_dims[H5O_LAYOUT_NDIMS]; /* File dataspace dimensions */ const H5S_t *mem_space; /* Pointer to the memory dataspace */ H5S_t *mchunk_tmpl; /* Dataspace template for new memory chunks */ -- cgit v0.12 From 1eaaae98214d9042e979209e93e31c490efa4d79 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Sat, 18 Apr 2015 01:39:34 -0500 Subject: [svn-r26842] Description: Cache the dataset's rank & dimension sizes, instead of querying them frequently, to speed up various checks & algorithms. Also, a few minor cleanups. Tested on: MacOSX/64 10.10.2 (amazon) w/serial & parallel Linux/32 2.6.18 (jam) w/serial & parallel --- src/H5Dchunk.c | 79 +++++++++++++++++++------------------------------------- src/H5Dcompact.c | 15 ++++------- src/H5Dcontig.c | 13 +++------- src/H5Ddeprec.c | 27 ++++++++++++------- src/H5Defl.c | 13 +++------- src/H5Dint.c | 75 +++++++++++++++++++++++++++++++++++++++++------------ src/H5Dio.c | 11 +++----- src/H5Dmpio.c | 3 +-- src/H5Dpkg.h | 9 +++++-- src/H5S.c | 9 +++---- 10 files changed, 131 insertions(+), 123 deletions(-) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index a5cf5b6..e99f00f 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -326,8 +326,6 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz H5F_block_t old_chunk; /* Offset/length of old chunk */ H5D_chk_idx_info_t idx_info; /* Chunked index info */ hbool_t need_insert = FALSE; /* Whether the chunk needs to be inserted into the index */ - int space_ndims; /* Dataset's space rank */ - hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC_TAG(dxpl_id, dset->oloc.addr, FAIL) @@ -338,12 +336,8 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage") - /* Retrieve the dataset dimensions */ - if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get simple dataspace info") - /* Calculate the index of this chunk */ - if(H5VM_chunk_index((unsigned)space_ndims, offset, + if(H5VM_chunk_index(dset->shared->ndims, offset, layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") @@ -475,23 +469,15 @@ done: herr_t H5D__chunk_set_info(const H5D_t *dset) { - hsize_t curr_dims[H5O_LAYOUT_NDIMS]; /* Curr. size of dataset dimensions */ - int sndims; /* Rank of dataspace */ - unsigned ndims; /* Rank of dataspace */ - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_PACKAGE /* Sanity checks */ HDassert(dset); - /* Get the dim info for dataset */ - if((sndims = H5S_get_simple_extent_dims(dset->shared->space, curr_dims, NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions") - H5_ASSIGN_OVERFLOW(ndims, sndims, int, unsigned); - /* Set the base layout information */ - if(H5D__chunk_set_info_real(&dset->shared->layout.u.chunk, ndims, curr_dims) < 0) + if(H5D__chunk_set_info_real(&dset->shared->layout.u.chunk, dset->shared->ndims, dset->shared->curr_dims) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set layout's chunk info") /* Call the index's "resize" callback */ @@ -519,10 +505,7 @@ static herr_t H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset) { const H5T_t *type = dset->shared->type; /* Convenience pointer to dataset's datatype */ - hsize_t max_dims[H5O_LAYOUT_NDIMS]; /* Maximum size of data in elements */ - hsize_t dims[H5O_LAYOUT_NDIMS]; /* Dimension size of data in elements */ uint64_t chunk_size; /* Size of chunk in bytes */ - int ndims; /* Rank of dataspace */ unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ @@ -537,9 +520,7 @@ H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset) HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "no chunk information set?") /* Set up layout information */ - if((ndims = H5S_GET_EXTENT_NDIMS(dset->shared->space)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to get rank") - if(dset->shared->layout.u.chunk.ndims != (unsigned)ndims) + if(dset->shared->layout.u.chunk.ndims != dset->shared->ndims) HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "dimensionality of chunks doesn't match the dataspace") /* Increment # of chunk dimensions, to account for datatype size as last element */ @@ -553,10 +534,6 @@ H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset) /* Set the last dimension of the chunk size to the size of the datatype */ dset->shared->layout.u.chunk.dim[dset->shared->layout.u.chunk.ndims - 1] = (uint32_t)H5T_GET_SIZE(type); - /* Get local copy of dataset dimensions (for sanity checking) */ - if(H5S_get_simple_extent_dims(dset->shared->space, dims, max_dims) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to query maximum dimensions") - /* Sanity check dimensions */ for(u = 0; u < dset->shared->layout.u.chunk.ndims - 1; u++) { /* Don't allow zero-sized chunk dimensions */ @@ -568,7 +545,7 @@ H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset) * the maximum dimension size. If any dimension size is zero, there * will be no such restriction. */ - if(dims[u] && max_dims[u] != H5S_UNLIMITED && max_dims[u] < dset->shared->layout.u.chunk.dim[u]) + if(dset->shared->curr_dims[u] && dset->shared->max_dims[u] != H5S_UNLIMITED && dset->shared->max_dims[u] < dset->shared->layout.u.chunk.dim[u]) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "chunk size must be <= maximum dimension size for fixed-sized dimensions") } /* end for */ @@ -3297,8 +3274,8 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, H5D_chunk_coll_info_t chunk_info; /* chunk address information for doing I/O */ #endif /* H5_HAVE_PARALLEL */ hbool_t carry; /* Flag to indicate that chunk increment carrys to higher dimension (sorta) */ - int space_ndims; /* Dataset's space rank */ - hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Dataset's dataspace dimensions */ + unsigned space_ndims; /* Dataset's space rank */ + const hsize_t *space_dim; /* Dataset's dataspace dimensions */ const uint32_t *chunk_dim = layout->u.chunk.dim; /* Convenience pointer to chunk dimensions */ unsigned op_dim; /* Current operating dimension */ H5D_fill_buf_info_t fb_info; /* Dataset's fill buffer info */ @@ -3313,9 +3290,8 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, HDassert(TRUE == H5P_isa_class(dxpl_id, H5P_DATASET_XFER)); /* Retrieve the dataset dimensions */ - if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get simple dataspace info") - space_dim[space_ndims] = layout->u.chunk.dim[space_ndims]; + space_dim = dset->shared->curr_dims; + space_ndims = dset->shared->ndims; /* The last dimension in chunk_offset is always 0 */ chunk_offset[space_ndims] = (hsize_t)0; @@ -3429,7 +3405,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, * certain dimension, max_unalloc is updated in order to avoid allocating * those chunks again. */ - for(op_dim = 0; op_dim < (unsigned)space_ndims; op_dim++) { + for(op_dim = 0; op_dim < space_ndims; op_dim++) { H5D_chunk_ud_t udata; /* User data for querying chunk info */ int i; /* Local index variable */ @@ -3438,7 +3414,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, continue; else { /* Reset the chunk offset indices */ - HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0]))); + HDmemset(chunk_offset, 0, (space_ndims * sizeof(chunk_offset[0]))); chunk_offset[op_dim] = min_unalloc[op_dim]; carry = FALSE; @@ -3456,7 +3432,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, hsize_t chunk_idx; /* Calculate the index of this chunk */ - if(H5VM_chunk_index((unsigned)space_ndims, chunk_offset, + if(H5VM_chunk_index(space_ndims, chunk_offset, layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") @@ -3473,7 +3449,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, unsigned u; /* Local index variable */ hbool_t outside_orig = FALSE; - for(u = 0; u < (unsigned)space_ndims; u++) { + for(u = 0; u < space_ndims; u++) { HDassert(chunk_offset[u] < space_dim[u]); if(chunk_offset[u] >= old_dim[u]) outside_orig = TRUE; @@ -4018,14 +3994,13 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) const H5O_layout_t *layout = &(dset->shared->layout); /* Dataset's layout */ const H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ H5D_rdcc_ent_t *ent = NULL; /* Cache entry */ - int space_ndims; /* Dataset's space rank */ - hsize_t space_dim[H5O_LAYOUT_NDIMS]; /* Current dataspace dimensions */ + unsigned space_ndims; /* Dataset's space rank */ + const hsize_t *space_dim; /* Current dataspace dimensions */ unsigned op_dim; /* Current operating dimension */ hbool_t shrunk_dim[H5O_LAYOUT_NDIMS]; /* Dimensions which have shrunk */ H5D_chunk_it_ud1_t udata; /* Chunk index iterator user data */ hbool_t udata_init = FALSE; /* Whether the chunk index iterator user data has been initialized */ H5D_chunk_common_ud_t idx_udata; /* User data for index removal routine */ - H5D_chunk_ud_t chk_udata; /* User data for getting chunk info */ H5S_t *chunk_space = NULL; /* Dataspace for a chunk */ hsize_t chunk_dim[H5O_LAYOUT_NDIMS]; /* Chunk dimensions */ hsize_t chunk_offset[H5O_LAYOUT_NDIMS]; /* Offset of current chunk */ @@ -4047,10 +4022,8 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") /* Go get the rank & dimensions (including the element size) */ - if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, - NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataset dimensions") - space_dim[space_ndims] = layout->u.chunk.dim[space_ndims]; + space_dim = dset->shared->curr_dims; + space_ndims = dset->shared->ndims; /* The last dimension in chunk_offset is always 0 */ chunk_offset[space_ndims] = (hsize_t)0; @@ -4069,14 +4042,14 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) /* (also copy the chunk dimensions into 'hsize_t' array for creating dataspace) */ /* (also compute the dimensions which have been shrunk) */ elmts_per_chunk = 1; - for(u = 0; u < (unsigned)space_ndims; u++) { + for(u = 0; u < space_ndims; u++) { elmts_per_chunk *= layout->u.chunk.dim[u]; chunk_dim[u] = layout->u.chunk.dim[u]; shrunk_dim[u] = space_dim[u] < old_dim[u]; } /* end for */ /* Create a dataspace for a chunk & set the extent */ - if(NULL == (chunk_space = H5S_create_simple((unsigned)space_ndims, chunk_dim, NULL))) + if(NULL == (chunk_space = H5S_create_simple(space_ndims, chunk_dim, NULL))) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "can't create simple dataspace") /* Reset hyperslab start array */ @@ -4160,7 +4133,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) if(has_fill) for(ent = rdcc->head; ent; ent = ent->next) /* Check for chunk offset outside of new dimensions */ - for(u = 0; u < (unsigned)space_ndims; u++) + for(u = 0; u < space_ndims; u++) if((hsize_t)ent->offset[u] >= space_dim[u]) { /* Mark the entry as "deleted" */ ent->deleted = TRUE; @@ -4176,12 +4149,12 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) HDassert((hsize_t) max_mod_chunk_off[op_dim] >= min_mod_chunk_off[op_dim]); /* Reset the chunk offset indices */ - HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0]))); + HDmemset(chunk_offset, 0, (space_ndims * sizeof(chunk_offset[0]))); chunk_offset[op_dim] = min_mod_chunk_off[op_dim]; /* Initialize "dims_outside_fill" array */ ndims_outside_fill = 0; - for(u = 0; u < (unsigned)space_ndims; u++) + for(u = 0; u < space_ndims; u++) if((hssize_t)chunk_offset[u] > max_fill_chunk_off[u]) { dims_outside_fill[u] = TRUE; ndims_outside_fill++; @@ -4196,7 +4169,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) int i; /* Local index variable */ /* Calculate the index of this chunk */ - if(H5VM_chunk_index((unsigned)space_ndims, chunk_offset, + if(H5VM_chunk_index(space_ndims, chunk_offset, layout->u.chunk.dim, layout->u.chunk.down_chunks, &(chk_io_info.store->chunk.index)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") @@ -4210,12 +4183,14 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to write fill value") } /* end if */ else { + H5D_chunk_ud_t chk_udata; /* User data for getting chunk info */ + #ifndef NDEBUG /* Make sure this chunk is really outside the new dimensions */ { hbool_t outside_dim = FALSE; - for(u = 0; u < (unsigned)space_ndims; u++) + for(u = 0; u < space_ndims; u++) if(chunk_offset[u] >= space_dim[u]) { outside_dim = TRUE; break; @@ -4501,7 +4476,7 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id) HDassert(dset->shared->layout.u.chunk.ndims > 0 && dset->shared->layout.u.chunk.ndims <= H5O_LAYOUT_NDIMS); /* Get the rank */ - rank = dset->shared->layout.u.chunk.ndims-1; + rank = dset->shared->layout.u.chunk.ndims - 1; HDassert(rank > 0); /* 1-D dataset's chunks can't have their index change */ diff --git a/src/H5Dcompact.c b/src/H5Dcompact.c index 789beab..1d8b97c 100644 --- a/src/H5Dcompact.c +++ b/src/H5Dcompact.c @@ -174,11 +174,8 @@ H5D__compact_construct(H5F_t *f, H5D_t *dset) hssize_t stmp_size; /* Temporary holder for raw data size */ hsize_t tmp_size; /* Temporary holder for raw data size */ hsize_t max_comp_data_size; /* Max. allowed size of compact data */ - hsize_t dim[H5O_LAYOUT_NDIMS]; /* Current size of data in elements */ - hsize_t max_dim[H5O_LAYOUT_NDIMS]; /* Maximum size of data in elements */ - int ndims; /* Rank of dataspace */ - int i; /* Local index variable */ - herr_t ret_value = SUCCEED; /* Return value */ + unsigned u; /* Local index variable */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -187,11 +184,9 @@ H5D__compact_construct(H5F_t *f, H5D_t *dset) HDassert(dset); /* Check for invalid dataset dimensions */ - if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dim, max_dim)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions") - for(i = 0; i < ndims; i++) - if(max_dim[i] > dim[i]) - HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "extendible compact dataset") + for(u = 0; u < dset->shared->ndims; u++) + if(dset->shared->max_dims[u] > dset->shared->curr_dims[u]) + HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "extendible compact dataset not allowed") /* * Compact dataset is stored in dataset object header message of diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index dc09768..e913a3f 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -396,10 +396,7 @@ H5D__contig_construct(H5F_t *f, H5D_t *dset) size_t dt_size; /* Size of datatype */ hsize_t tmp_size; /* Temporary holder for raw data size */ size_t tmp_sieve_buf_size; /* Temporary holder for sieve buffer size */ - hsize_t dim[H5O_LAYOUT_NDIMS]; /* Current size of data in elements */ - hsize_t max_dim[H5O_LAYOUT_NDIMS]; /* Maximum size of data in elements */ - int ndims; /* Rank of dataspace */ - int i; /* Local index variable */ + unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -415,11 +412,9 @@ H5D__contig_construct(H5F_t *f, H5D_t *dset) */ /* Check for invalid dataset dimensions */ - if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dim, max_dim)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize contiguous storage") - for(i = 0; i < ndims; i++) - if(max_dim[i] > dim[i]) - HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "extendible contiguous non-external dataset") + for(u = 0; u < dset->shared->ndims; u++) + if(dset->shared->max_dims[u] > dset->shared->curr_dims[u]) + HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "extendible contiguous non-external dataset not allowed") /* Retrieve the number of elements in the dataspace */ if((snelmts = H5S_GET_EXTENT_NPOINTS(dset->shared->space)) < 0) diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c index 0b2fee6..b3dae7b 100644 --- a/src/H5Ddeprec.c +++ b/src/H5Ddeprec.c @@ -341,9 +341,7 @@ static herr_t H5D__extend(H5D_t *dataset, const hsize_t *size, hid_t dxpl_id) { htri_t changed; /* Flag to indicate that the dataspace was successfully extended */ - H5S_t *space; /* Dataset's dataspace */ - int rank; /* Dataspace # of dimensions */ - hsize_t curr_dims[H5O_LAYOUT_NDIMS];/* Current dimension sizes */ + hsize_t old_dims[H5S_MAX_RANK]; /* Current (i.e. old, if changed) dimension sizes */ H5O_fill_t *fill; /* Dataset's fill value */ herr_t ret_value = SUCCEED; /* Return value */ @@ -364,20 +362,30 @@ H5D__extend(H5D_t *dataset, const hsize_t *size, hid_t dxpl_id) */ /* Retrieve the current dimensions */ - space = dataset->shared->space; - if((rank = H5S_get_simple_extent_dims(space, curr_dims, NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataset dimensions") + HDcompile_assert(sizeof(old_dims) == sizeof(dataset->shared->curr_dims)); + HDmemcpy(old_dims, dataset->shared->curr_dims, H5S_MAX_RANK * sizeof(old_dims[0])); /* Increase the size of the data space */ - if((changed = H5S_extend(space, size)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to increase size of data space") + if((changed = H5S_extend(dataset->shared->space, size)) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to increase size of dataspace") /* Updated the dataset's info if the dataspace was successfully extended */ if(changed) { + /* Get the extended dimension sizes */ + /* (Need to retrieve this here, since the 'size' dimensions could + * extend one dimension but be smaller in a different dimension, + * and the dataspace's extent is the larger of the current and + * 'size' dimension values. - QAK) + */ + if(H5S_get_simple_extent_dims(dataset->shared->space, dataset->shared->curr_dims, NULL) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataset dimensions") + /* Update the index values for the cached chunks for this dataset */ if(H5D_CHUNKED == dataset->shared->layout.type) { + /* Update general information for chunks */ if(H5D__chunk_set_info(dataset) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to update # of chunks") + /* Update the chunk cache indices */ if(H5D__chunk_update_cache(dataset, dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to update cached chunk indices") } /* end if */ @@ -385,8 +393,7 @@ H5D__extend(H5D_t *dataset, const hsize_t *size, hid_t dxpl_id) /* Allocate space for the new parts of the dataset, if appropriate */ fill = &dataset->shared->dcpl_cache.fill; if(fill->alloc_time == H5D_ALLOC_TIME_EARLY) - if(H5D__alloc_storage(dataset, dxpl_id, H5D_ALLOC_EXTEND, FALSE, - curr_dims) < 0) + if(H5D__alloc_storage(dataset, dxpl_id, H5D_ALLOC_EXTEND, FALSE, old_dims) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize dataset with fill value") /* Mark the dataspace as dirty, for later writing to the file */ diff --git a/src/H5Defl.c b/src/H5Defl.c index 38c8ccd..355492f 100644 --- a/src/H5Defl.c +++ b/src/H5Defl.c @@ -126,14 +126,11 @@ static herr_t H5D__efl_construct(H5F_t *f, H5D_t *dset) { size_t dt_size; /* Size of datatype */ - hsize_t dim[H5O_LAYOUT_NDIMS]; /* Current size of data in elements */ - hsize_t max_dim[H5O_LAYOUT_NDIMS]; /* Maximum size of data in elements */ hssize_t stmp_size; /* Temporary holder for raw data size */ hsize_t tmp_size; /* Temporary holder for raw data size */ hsize_t max_points; /* Maximum elements */ hsize_t max_storage; /* Maximum storage size */ - int ndims; /* Rank of dataspace */ - int i; /* Local index variable */ + unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -149,11 +146,9 @@ H5D__efl_construct(H5F_t *f, H5D_t *dset) */ /* Check for invalid dataset dimensions */ - if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dim, max_dim)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize contiguous storage") - for(i = 1; i < ndims; i++) - if(max_dim[i] > dim[i]) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "only the first dimension can be extendible") + for(u = 1; u < dset->shared->ndims; u++) + if(dset->shared->max_dims[u] > dset->shared->curr_dims[u]) + HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "only the first dimension can be extendible") /* Retrieve the size of the dataset's datatype */ if(0 == (dt_size = H5T_get_size(dset->shared->type))) diff --git a/src/H5Dint.c b/src/H5Dint.c index 8e1fcec..c626475 100644 --- a/src/H5Dint.c +++ b/src/H5Dint.c @@ -62,6 +62,7 @@ static H5D_shared_t *H5D__new(hid_t dcpl_id, hbool_t creating, hbool_t vl_type); static herr_t H5D__init_type(H5F_t *file, const H5D_t *dset, hid_t type_id, const H5T_t *type); +static herr_t H5D__cache_dataspace_info(const H5D_t *dset); static herr_t H5D__init_space(H5F_t *file, const H5D_t *dset, const H5S_t *space); static herr_t H5D__update_oh_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, hid_t dapl_id); @@ -665,6 +666,41 @@ done: /*------------------------------------------------------------------------- + * Function: H5D__cache_dataspace_info + * + * Purpose: Cache dataspace info for a dataset + * + * Return: Success: SUCCEED + * Failure: FAIL + * + * Programmer: Quincey Koziol + * Wednesday, November 19, 2014 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5D__cache_dataspace_info(const H5D_t *dset) +{ + int sndims; /* Signed number of dimensions of dataspace rank */ + unsigned u; /* Local index value */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_STATIC + + /* Sanity checking */ + HDassert(dset); + + /* Cache info for dataset's dataspace */ + if((sndims = H5S_get_simple_extent_dims(dset->shared->space, dset->shared->curr_dims, dset->shared->max_dims)) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't cache dataspace dimensions") + dset->shared->ndims = (unsigned)sndims; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5D__cache_dataspace_info() */ + + +/*------------------------------------------------------------------------- * Function: H5D__init_space * * Purpose: Copy a dataspace for a dataset's use, performing all the @@ -698,6 +734,10 @@ H5D__init_space(H5F_t *file, const H5D_t *dset, const H5S_t *space) if(NULL == (dset->shared->space = H5S_copy(space, FALSE, TRUE))) HGOTO_ERROR(H5E_DATASET, H5E_CANTCOPY, FAIL, "can't copy dataspace") + /* Cache the dataset's dataspace info */ + if(H5D__cache_dataspace_info(dset) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTCOPY, FAIL, "can't cache dataspace info") + /* Set the latest format, if requested */ if(use_latest_format) if(H5S_set_latest_version(dset->shared->space) < 0) @@ -1251,6 +1291,10 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id) if(NULL == (dataset->shared->space = H5S_read(&(dataset->oloc), dxpl_id))) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to load dataspace info from dataset header") + /* Cache the dataset's dataspace info */ + if(H5D__cache_dataspace_info(dataset) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTCOPY, FAIL, "can't cache dataspace info") + /* Get a datatype ID for the dataset's datatype */ if((dataset->shared->type_id = H5I_register(H5I_DATATYPE, dataset->shared->type, FALSE)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTREGISTER, FAIL, "unable to register type") @@ -2161,9 +2205,7 @@ done: herr_t H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id) { - H5S_t *space; /* Dataset's dataspace */ - int rank; /* Dataspace # of dimensions */ - hsize_t curr_dims[H5O_LAYOUT_NDIMS];/* Current dimension sizes */ + hsize_t curr_dims[H5S_MAX_RANK]; /* Current dimension sizes */ htri_t changed; /* Whether the dataspace changed size */ herr_t ret_value = SUCCEED; /* Return value */ @@ -2187,29 +2229,30 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id) if(H5D__check_filters(dset) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't apply filters") - /* Get the data space */ - space = dset->shared->space; - - /* Check if we are shrinking or expanding any of the dimensions */ - if((rank = H5S_get_simple_extent_dims(space, curr_dims, NULL)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataset dimensions") + /* Keep the current dataspace dimensions for later */ + HDcompile_assert(sizeof(curr_dims) == sizeof(dset->shared->curr_dims)); + HDmemcpy(curr_dims, dset->shared->curr_dims, H5S_MAX_RANK * sizeof(curr_dims[0])); - /* Modify the size of the data space */ - if((changed = H5S_set_extent(space, size)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to modify size of data space") + /* Modify the size of the dataspace */ + if((changed = H5S_set_extent(dset->shared->space, size)) < 0) + HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to modify size of dataspace") /* Don't bother updating things, unless they've changed */ if(changed) { - hbool_t shrink = FALSE; /* Flag to indicate a dimension has shrank */ - hbool_t expand = FALSE; /* Flag to indicate a dimension has grown */ - unsigned u; /* Local index variable */ + hbool_t shrink = FALSE; /* Flag to indicate a dimension has shrank */ + hbool_t expand = FALSE; /* Flag to indicate a dimension has grown */ + unsigned u; /* Local index variable */ /* Determine if we are shrinking and/or expanding any dimensions */ - for(u = 0; u < (unsigned)rank; u++) { + for(u = 0; u < dset->shared->ndims; u++) { + /* Check for various status changes */ if(size[u] < curr_dims[u]) shrink = TRUE; if(size[u] > curr_dims[u]) expand = TRUE; + + /* Update the cached copy of the dataset's dimensions */ + dset->shared->curr_dims[u] = size[u]; } /* end for */ /*------------------------------------------------------------------------- diff --git a/src/H5Dio.c b/src/H5Dio.c index 1c77d93..44080dc 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -302,8 +302,6 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, uint32_t direct_filters; hsize_t *direct_offset; uint32_t direct_datasize; - int ndims = 0; - hsize_t dims[H5O_LAYOUT_NDIMS]; hsize_t internal_offset[H5O_LAYOUT_NDIMS]; unsigned u; /* Local index variable */ @@ -324,12 +322,9 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, /* The library's chunking code requires the offset terminates with a zero. So transfer the * offset array to an internal offset array */ - if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dims, NULL)) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims") - - for(u = 0; u < (unsigned)ndims; u++) { + for(u = 0; u < dset->shared->ndims; u++) { /* Make sure the offset doesn't exceed the dataset's dimensions */ - if(direct_offset[u] > dims[u]) + if(direct_offset[u] > dset->shared->curr_dims[u]) HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset") /* Make sure the offset fall right on a chunk's boundary */ @@ -340,7 +335,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id, } /* end for */ /* Terminate the offset with a zero */ - internal_offset[ndims] = 0; + internal_offset[dset->shared->ndims] = 0; /* write raw data */ if(H5D__chunk_direct_write(dset, dxpl_id, direct_filters, internal_offset, direct_datasize, buf) < 0) diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index bd1531d..db487cd 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -860,8 +860,7 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ mspace = chunk_info->mspace; /* Look up address of chunk */ - if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, - chunk_info->index, &udata) < 0) + if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk address") ctg_store.contig.dset_addr = udata.chunk_block.offset; } /* end else */ diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 4ec140f..fa59412 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -325,9 +325,9 @@ typedef struct H5D_chunk_info_t { uint32_t chunk_points; /* Number of elements selected in chunk */ hsize_t coords[H5O_LAYOUT_NDIMS]; /* Coordinates of chunk in file dataset's dataspace */ H5S_t *fspace; /* Dataspace describing chunk & selection in it */ - unsigned fspace_shared; /* Indicate that the file space for a chunk is shared and shouldn't be freed */ + hbool_t fspace_shared; /* Indicate that the file space for a chunk is shared and shouldn't be freed */ H5S_t *mspace; /* Dataspace describing selection in memory corresponding to this chunk */ - unsigned mspace_shared; /* Indicate that the memory space for a chunk is shared and shouldn't be freed */ + hbool_t mspace_shared; /* Indicate that the memory space for a chunk is shared and shouldn't be freed */ } H5D_chunk_info_t; /* Main structure holding the mapping between file chunks and memory */ @@ -418,6 +418,11 @@ typedef struct H5D_shared_t { H5O_layout_t layout; /* Data layout */ hbool_t checked_filters;/* TRUE if dataset passes can_apply check */ + /* Cached dataspace info */ + unsigned ndims; /* The dataset's dataspace rank */ + hsize_t curr_dims[H5S_MAX_RANK]; /* The curr. size of dataset dimensions */ + hsize_t max_dims[H5S_MAX_RANK]; /* The max. size of dataset dimensions */ + /* Buffered/cached information for types of raw data storage*/ struct { H5D_rdcdc_t contig; /* Information about contiguous data */ diff --git a/src/H5S.c b/src/H5S.c index 4a1783e..dd2bb0a 100644 --- a/src/H5S.c +++ b/src/H5S.c @@ -2144,14 +2144,13 @@ H5S_extend(H5S_t *space, const hsize_t *size) HDassert(size); /* Check through all the dimensions to see if modifying the dataspace is allowed */ - for(u = 0; u < space->extent.rank; u++) { - if(space->extent.size[u]extent.max && H5S_UNLIMITED!=space->extent.max[u] && - space->extent.max[u]extent.rank; u++) + if(space->extent.size[u] < size[u]) { + if(space->extent.max && H5S_UNLIMITED != space->extent.max[u] && + space->extent.max[u] < size[u]) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dimension cannot be increased") ret_value++; } /* end if */ - } /* end for */ /* Update */ if(ret_value) { -- cgit v0.12 From 371a27f01eecd3bdd456d24ee630f5f281fbfb93 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Sat, 18 Apr 2015 21:48:06 -0500 Subject: [svn-r26843] Description: Minor code & warning cleanups. Tested on: MacOSX/64 10.10.2 (amazon) w/serial & parallel Linux/32 2.6.18 (jam) w/serial & parallel --- src/H5Dchunk.c | 7 ++++--- src/H5Dpkg.h | 2 +- src/H5Oprivate.h | 4 ++-- src/H5VMprivate.h | 23 +++++++++++++++++++++++ 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index e99f00f..6c7c5d5 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -2523,7 +2523,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t point_of_no_return = TRUE; ent->chunk = NULL; } /* end else */ - H5_ASSIGN_OVERFLOW(nbytes, udata.chunk_block.length, uint32_t, size_t); + H5_ASSIGN_OVERFLOW(nbytes, udata.chunk_block.length, hsize_t, size_t); if(H5Z_pipeline(&(dset->shared->dcpl_cache.pline), 0, &(udata.filter_mask), dxpl_cache->err_detect, dxpl_cache->filter_cb, &nbytes, &alloc, &buf) < 0) HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, FAIL, "output pipeline failed") @@ -2532,7 +2532,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t if(nbytes > ((size_t)0xffffffff)) HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "chunk too large for 32-bit length") #endif /* H5_SIZEOF_SIZE_T > 4 */ - H5_ASSIGN_OVERFLOW(udata.chunk_block.length, nbytes, size_t, uint32_t); + H5_ASSIGN_OVERFLOW(udata.chunk_block.length, nbytes, size_t, hsize_t); /* Indicate that the chunk must be allocated */ must_alloc = TRUE; @@ -2565,7 +2565,8 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t /* Write the data to the file */ HDassert(H5F_addr_defined(udata.chunk_block.offset)); - if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.chunk_block.offset, udata.chunk_block.length, dxpl_id, buf) < 0) + H5_CHECK_OVERFLOW(udata.chunk_block.length, hsize_t, size_t); + if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.chunk_block.offset, (size_t)udata.chunk_block.length, dxpl_id, buf) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to write raw data to file") /* Insert the chunk record into the index */ diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index fa59412..769fec1 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -83,7 +83,7 @@ typedef struct H5D_type_info_t { /* Computed/derived values */ size_t src_type_size; /* Size of source type */ - size_t dst_type_size; /* Size of destination type*/ + size_t dst_type_size; /* Size of destination type */ size_t max_type_size; /* Size of largest source/destination type */ hbool_t is_conv_noop; /* Whether the type conversion is a NOOP */ hbool_t is_xform_noop; /* Whether the data transform is a NOOP */ diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h index e3a2d33..3707367 100644 --- a/src/H5Oprivate.h +++ b/src/H5Oprivate.h @@ -424,8 +424,8 @@ typedef struct H5O_layout_chunk_t { uint32_t dim[H5O_LAYOUT_NDIMS]; /* Size of chunk in elements */ uint32_t size; /* Size of chunk in bytes */ hsize_t nchunks; /* Number of chunks in dataset */ - hsize_t chunks[H5O_LAYOUT_NDIMS]; /* # of chunks in dataset dimensions */ - hsize_t down_chunks[H5O_LAYOUT_NDIMS]; /* "down" size of number of chunks in each dimension */ + hsize_t chunks[H5O_LAYOUT_NDIMS]; /* # of chunks in each dataset dimension */ + hsize_t down_chunks[H5O_LAYOUT_NDIMS]; /* "down" size of number of chunks in each dimension */ } H5O_layout_chunk_t; typedef struct H5O_layout_t { diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h index 20821b2..dbe39ca 100644 --- a/src/H5VMprivate.h +++ b/src/H5VMprivate.h @@ -410,6 +410,29 @@ H5VM_log2_of2(uint32_t n) /*------------------------------------------------------------------------- + * Function: H5VM_power2up + * + * Purpose: Round up a number to the next power of 2 + * + * Return: Return the number which is a power of 2 + * + * Programmer: Vailin Choi; Nov 2014 + * + *------------------------------------------------------------------------- + */ +static H5_inline hsize_t UNUSED +H5VM_power2up(hsize_t n) +{ + hsize_t ret_value = 1; /* Return value */ + + while(ret_value < n) + ret_value <<= 1; + + return(ret_value); +} /* H5VM_power2up */ + + +/*------------------------------------------------------------------------- * Function: H5VM_limit_enc_size * * Purpose: Determine the # of bytes needed to encode values within a -- cgit v0.12 From 50db0eed22ef60b4a79b10deb0562662892c7891 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Mon, 20 Apr 2015 15:32:32 -0500 Subject: [svn-r26848] Fix warnings in H5T Tested: local linux --- src/H5T.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 115 insertions(+), 31 deletions(-) diff --git a/src/H5T.c b/src/H5T.c index 9320d28..aaf8bc1 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -1,3 +1,4 @@ + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright by The HDF Group. * * Copyright by the Board of Trustees of the University of Illinois. * @@ -67,10 +68,6 @@ * */ -/* Define the code template for types which need no extra initialization for the "GUTS" in the H5T_INIT_TYPE macro */ -#define H5T_INIT_TYPE_NONE_CORE { \ -} - /* Define the code template for bitfields for the "GUTS" in the H5T_INIT_TYPE macro */ #define H5T_INIT_TYPE_BITFIELD_CORE { \ dt->shared->type = H5T_BITFIELD; \ @@ -1986,7 +1983,7 @@ H5T_detect_class(const H5T_t *dt, H5T_class_t cls, hbool_t from_api) case H5T_VLEN: case H5T_ENUM: HGOTO_DONE(H5T_detect_class(dt->shared->parent, cls, from_api)); - + break; case H5T_NO_CLASS: case H5T_INTEGER: case H5T_FLOAT: @@ -3240,12 +3237,12 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) HDassert(tmp != NULL); /* Apply the accumulated size change to the offset of the field */ - new_dt->shared->u.compnd.memb[i].offset += accum_change; + new_dt->shared->u.compnd.memb[i].offset += (size_t) accum_change; if(old_dt->shared->u.compnd.sorted != H5T_SORT_VALUE) { for(old_match = -1, j = 0; j < old_dt->shared->u.compnd.nmembs; j++) { if(!HDstrcmp(new_dt->shared->u.compnd.memb[i].name, old_dt->shared->u.compnd.memb[j].name)) { - old_match = j; + old_match = (int) j; break; } /* end if */ } /* end for */ @@ -3255,19 +3252,20 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCOPY, NULL, "fields in datatype corrupted"); } /* end if */ else - old_match = i; + old_match = (int) i; /* If the field changed size, add that change to the accumulated size change */ if(new_dt->shared->u.compnd.memb[i].type->shared->size != old_dt->shared->u.compnd.memb[old_match].type->shared->size) { /* Adjust the size of the member */ new_dt->shared->u.compnd.memb[i].size = (old_dt->shared->u.compnd.memb[old_match].size*tmp->shared->size)/old_dt->shared->u.compnd.memb[old_match].type->shared->size; - accum_change += (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size); + accum_change += (int) (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size); + HDassert(accum_change >= 0); } /* end if */ } /* end for */ /* Apply the accumulated size change to the size of the compound struct */ - new_dt->shared->size += accum_change; + new_dt->shared->size += (size_t) accum_change; } break; @@ -3313,6 +3311,13 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) new_dt->shared->size=new_dt->shared->u.array.nelem*new_dt->shared->parent->shared->size; break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_NCLASSES: default: break; } /* end switch */ @@ -3530,6 +3535,16 @@ H5T__free(H5T_t *dt) H5MM_xfree(dt->shared->u.opaque.tag); break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_REFERENCE: + case H5T_VLEN: + case H5T_ARRAY: + case H5T_NCLASSES: default: break; } /* end switch */ @@ -3796,11 +3811,14 @@ H5T_set_size(H5T_t *dt, size_t size) case H5T_ARRAY: case H5T_REFERENCE: HDassert("can't happen" && 0); + break; case H5T_NO_CLASS: case H5T_NCLASSES: HDassert("invalid type" && 0); + break; default: HDassert("not implemented yet" && 0); + break; } /* Commit (if we didn't convert this type to a VL string) */ @@ -3875,7 +3893,6 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset) unsigned *idx1 = NULL, *idx2 = NULL; size_t base_size; hbool_t swapped; - int i, j; unsigned u; int tmp; int ret_value = 0; @@ -3930,24 +3947,32 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset) for(u = 0; u < dt1->shared->u.compnd.nmembs; u++) idx1[u] = idx2[u] = u; if(dt1->shared->u.enumer.nmembs > 1) { - for(i = dt1->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) + int i; + + for(i = (int) dt1->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) { + int j; + for(j = 0, swapped=FALSE; j < i; j++) if(HDstrcmp(dt1->shared->u.compnd.memb[idx1[j]].name, dt1->shared->u.compnd.memb[idx1[j + 1]].name) > 0) { - tmp = idx1[j]; + unsigned tmp_idx = idx1[j]; idx1[j] = idx1[j + 1]; - idx1[j + 1] = tmp; + idx1[j + 1] = tmp_idx; swapped = TRUE; } - for(i = dt2->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) + } + for(i = (int) dt2->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) { + int j; + for(j = 0, swapped = FALSE; jshared->u.compnd.memb[idx2[j]].name, dt2->shared->u.compnd.memb[idx2[j + 1]].name) > 0) { - tmp = idx2[j]; + unsigned tmp_idx = idx2[j]; idx2[j] = idx2[j + 1]; - idx2[j + 1] = tmp; + idx2[j + 1] = tmp_idx; swapped = TRUE; } + } } /* end if */ #ifdef H5T_DEBUG @@ -4007,28 +4032,39 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, 0, "memory allocation failed"); for (u=0; ushared->u.enumer.nmembs; u++) idx1[u] = u; - if(dt1->shared->u.enumer.nmembs > 1) - for (i=dt1->shared->u.enumer.nmembs-1, swapped=TRUE; swapped && i>=0; --i) - for (j=0, swapped=FALSE; jshared->u.enumer.nmembs > 1) { + int i; + for (i = (int) dt1->shared->u.enumer.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) { + int j; + + for (j = 0, swapped = FALSE; j < i; j++) if (HDstrcmp(dt1->shared->u.enumer.name[idx1[j]], dt1->shared->u.enumer.name[idx1[j+1]]) > 0) { - tmp = idx1[j]; + unsigned tmp_idx = idx1[j]; idx1[j] = idx1[j+1]; - idx1[j+1] = tmp; + idx1[j+1] = tmp_idx; swapped = TRUE; } + } + } for (u=0; ushared->u.enumer.nmembs; u++) idx2[u] = u; - if(dt2->shared->u.enumer.nmembs > 1) - for (i=dt2->shared->u.enumer.nmembs-1, swapped=TRUE; swapped && i>=0; --i) - for (j=0, swapped=FALSE; jshared->u.enumer.nmembs > 1) { + int i; + + for (i = (int) dt2->shared->u.enumer.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) { + int j; + + for (j = 0, swapped = FALSE; j < i; j++) if (HDstrcmp(dt2->shared->u.enumer.name[idx2[j]], dt2->shared->u.enumer.name[idx2[j+1]]) > 0) { - tmp = idx2[j]; + unsigned tmp_idx = idx2[j]; idx2[j] = idx2[j+1]; - idx2[j+1] = tmp; + idx2[j+1] = tmp_idx; swapped = TRUE; } + } + } #ifdef H5T_DEBUG /* I don't quite trust the code above yet :-) --RPM */ @@ -4148,6 +4184,14 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset) HGOTO_DONE(1); break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_REFERENCE: + case H5T_NCLASSES: default: /* * Atomic datatypes... @@ -4255,13 +4299,23 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset) case H5R_BADTYPE: case H5R_MAXTYPE: HDassert("invalid type" && 0); + break; default: HDassert("not implemented yet" && 0); + break; } break; + case H5T_NO_CLASS: + case H5T_OPAQUE: + case H5T_COMPOUND: + case H5T_ENUM: + case H5T_VLEN: + case H5T_ARRAY: + case H5T_NCLASSES: default: HDassert("not implemented yet" && 0); + break; } break; } /* end switch */ @@ -4535,7 +4589,7 @@ H5T_path_find(const H5T_t *src, const H5T_t *dst, const char *name, } /* end if */ if(cmp > 0) md++; - HDmemmove(H5T_g.path + md + 1, H5T_g.path + md, (H5T_g.npaths - md) * sizeof(H5T_path_t*)); + HDmemmove(H5T_g.path + md + 1, H5T_g.path + md, (size_t) (H5T_g.npaths - md) * sizeof(H5T_path_t*)); H5T_g.npaths++; H5T_g.path[md] = path; table = path; @@ -5000,6 +5054,17 @@ H5T_is_sensible(const H5T_t *dt) ret_value=FALSE; break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_OPAQUE: + case H5T_REFERENCE: + case H5T_VLEN: + case H5T_ARRAY: + case H5T_NCLASSES: default: /* Assume all other datatype are sensible to store on disk */ ret_value=TRUE; @@ -5082,7 +5147,7 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) H5T_t *memb_type; /* Member's datatype pointer */ /* Apply the accumulated size change to the offset of the field */ - dt->shared->u.compnd.memb[i].offset += accum_change; + dt->shared->u.compnd.memb[i].offset += (size_t) accum_change; /* Set the member type pointer (for convenience) */ memb_type=dt->shared->u.compnd.memb[i].type; @@ -5105,13 +5170,14 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) dt->shared->u.compnd.memb[i].size = (dt->shared->u.compnd.memb[i].size*memb_type->shared->size)/old_size; /* Add that change to the accumulated size change */ - accum_change += (memb_type->shared->size - (int)old_size); + accum_change += (int) (memb_type->shared->size - old_size); + HDassert(accum_change >= 0); } /* end if */ } /* end if */ } /* end for */ /* Apply the accumulated size change to the datatype */ - dt->shared->size = (size_t)(dt->shared->size + accum_change); + dt->shared->size = dt->shared->size + (size_t) accum_change; break; case H5T_VLEN: /* Recurse on the VL information if it's VL, compound or array, then free VL sequence */ @@ -5145,6 +5211,15 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) } /* end if */ break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_OPAQUE: + case H5T_ENUM: + case H5T_NCLASSES: default: break; } /* end switch */ @@ -5235,6 +5310,15 @@ H5T_upgrade_version_cb(H5T_t *dt, void *op_value) dt->shared->version = dt->shared->parent->shared->version; break; + case H5T_NO_CLASS: + case H5T_INTEGER: + case H5T_FLOAT: + case H5T_TIME: + case H5T_STRING: + case H5T_BITFIELD: + case H5T_OPAQUE: + case H5T_REFERENCE: + case H5T_NCLASSES: default: break; } /* end switch */ -- cgit v0.12 From 0b0d31e5201e76eae1cb0d219d68934d8c0942b7 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 20 Apr 2015 16:04:33 -0500 Subject: [svn-r26852] Correct component matching --- config/cmake/hdf5-config.cmake.in | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index da5304d..667d3e6 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -105,20 +105,20 @@ endif () list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) set (hdf5_comp2) - if (${comp} MATCHES "C") + if (${comp} STREQUAL "C") set (hdf5_comp "hdf5") - elseif (${comp} MATCHES "CXX") + elseif (${comp} STREQUAL "CXX") set (hdf5_comp "hdf5_cpp") - elseif (${comp} MATCHES "HL") + elseif (${comp} STREQUAL "HL") set (hdf5_comp "hdf5_hl") - elseif (${comp} MATCHES "CXX_HL") + elseif (${comp} STREQUAL "CXX_HL") set (hdf5_comp "hdf5_hl_cpp") - elseif (${comp} MATCHES "Tools") + elseif (${comp} STREQUAL "Tools") set (hdf5_comp "hdf5_tools") - elseif (${comp} MATCHES "Fortran") + elseif (${comp} STREQUAL "Fortran") set (hdf5_comp2 "hdf5_f90cstub") set (hdf5_comp "hdf5_fortran") - elseif (${comp} MATCHES "Fortran_HL") + elseif (${comp} STREQUAL "Fortran_HL") set (hdf5_comp2 "hdf5_hl_f90cstub") set (hdf5_comp "hdf5_hl_fortran") endif () @@ -133,17 +133,15 @@ list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) else () set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) - set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2} ${hdf5_comp}) + set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp2} ${hdf5_comp}) endif () else () set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1) string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY) - set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}) + set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp}) endif () endif () endforeach () check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS) - -set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${COMP_LIBRARY}}) \ No newline at end of file -- cgit v0.12 From 34a1da1731eb1818d5bf374745672cf289522c31 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 20 Apr 2015 19:25:56 -0500 Subject: [svn-r26857] Bugs: The configure summary (libhdf5.settings) was missing from the configure output. Solution: Append the configure summary to the configure logfile if configure succeeds. Tested: hand ran cmakehdf5 in jam and inspected the logfile. --- bin/cmakehdf5 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index 1f0fb7c..4842f45 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -23,6 +23,7 @@ makelog="#${progname}_2build.log" testlog="#${progname}_3test.log" packlog="#${progname}_4pack.log" installlog="#${progname}_5install.log" +config_summary=libhdf5.settings exit_code=0 # This command should be in the source directory's bin/ @@ -212,9 +213,9 @@ if [ $? != 0 ]; then echo $vers failed. Aborted. exit 1 fi -echo Running Cmake for HDF5-${version} ... - +echo Running Cmake for HDF5-${version} ... # 4. Configure the C library, tools and tests with this command: +# If successful, append the configure summary to the configure logfile. STEP "Configure..." "cmake \ -C $cacheinit \ $build_cpp_lib \ @@ -225,7 +226,8 @@ STEP "Configure..." "cmake \ $build_tools \ $with_zlib \ $with_szlib \ - $srcdir" $configlog + $srcdir" $configlog &&\ + cat $config_summary >> $configlog # 5. Build the C library, tools and tests with this command: STEP "Build the library, tools and tests, ..." "cmake --build . --config Release" $makelog -- cgit v0.12 From b32caab787236a72c25dcb1c895c32da8832deab Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 21 Apr 2015 11:21:52 -0500 Subject: [svn-r26864] Change location of lib settings file --- CMakeInstallation.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 0380adc..aa49cdc 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -139,7 +139,7 @@ configure_file ( ) install ( FILES ${HDF5_BINARY_DIR}/libhdf5.settings - DESTINATION ${HDF5_INSTALL_CMAKE_DIR} + DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries ) -- cgit v0.12 From a3a1f374468d6c3d3888ef5f4fb90da744b46da2 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Tue, 21 Apr 2015 12:06:34 -0500 Subject: [svn-r26868] Remove accum_change assert in H5T for now --- src/H5T.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/H5T.c b/src/H5T.c index aaf8bc1..6cef1c6 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -3260,7 +3260,7 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) new_dt->shared->u.compnd.memb[i].size = (old_dt->shared->u.compnd.memb[old_match].size*tmp->shared->size)/old_dt->shared->u.compnd.memb[old_match].type->shared->size; accum_change += (int) (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size); - HDassert(accum_change >= 0); + /* HDassert(accum_change >= 0); */ } /* end if */ } /* end for */ @@ -5171,7 +5171,7 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) /* Add that change to the accumulated size change */ accum_change += (int) (memb_type->shared->size - old_size); - HDassert(accum_change >= 0); + /* HDassert(accum_change >= 0); */ } /* end if */ } /* end if */ } /* end for */ -- cgit v0.12 From 1c2136ee49b26730890154c89d9eebe95e113205 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 23 Apr 2015 10:41:22 -0500 Subject: [svn-r26900] Update CMake doc references --- CMakeLists.txt | 18 ++++ release_docs/INSTALL_CMake.txt | 213 ++++++++++++++++++++++++-------------- release_docs/USING_HDF5_CMake.txt | 4 +- 3 files changed, 156 insertions(+), 79 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4135f4..e9f73ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,24 @@ PROJECT (HDF5 C CXX) # set CMAKE_INSTALL_PREFIX to the required install path. # Make install can be used to install all components for system-wide use. # +if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") + MESSAGE(FATAL_ERROR "\nERROR! ${PROJECT_NAME} DOES NOT SUPPORT IN SOURCE BUILDS!\n" + "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}" + " == CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}\n" + "NEXT STEPS:\n" + "(1) Delete the CMakeCache.txt file and the CMakeFiles/ directory\n" + " under the source directory for ${PROJECT_NAME}, otherwise you\n" + " will not be able to configure ${PROJECT_NAME} correctly!\n" + " * For example, on linux machines do:\n" + " $ rm -r CMakeCache.txt CMakeFiles/\n" + "(2) Create a different directory and configure ${PROJECT_NAME} in that directory.\n" + " * For example, on linux machines do:\n" + " $ mkdir MY_BUILD\n" + " $ cd MY_BUILD\n" + " $ cmake [OPTIONS] ..\n" + ) +endif () + #----------------------------------------------------------------------------- # Instructions for use : Sub-Project Build # diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index dc87d5a..cb5bae5 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -26,7 +26,7 @@ Obtaining HDF5 source code 2. Obtain compressed (*.tar or *.zip) HDF5 source from http://www.hdfgroup.org/ftp/HDF5/current/src/ and put it in "myhdfstuff". - Do not uncompress. + Uncompress the file. CMake version 1. We suggest you obtain the latest CMake from the Kitware web site. @@ -54,10 +54,7 @@ External compression szip and zlib libraries: ZLib.tar.gz Platform configuration files: - HDF518Windows64CMake.cmake - HDF518Windows32CMake.cmake - HDF518LinuxCMake.cmake - HDF518MacCMake.cmake + HDF518config.cmake To build HDF5 with the SZIP and ZLIB external libraries you will need to: @@ -69,14 +66,23 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: 3. Download the CTestScript.cmake file to "myhdfstuff". CTestScript.cmake file should not be modified. - 4. Download a platform configuration file to "myhdfstuff". + 4. Download the platform configuration file to "myhdfstuff". Do not modify the file unless you want to change default build environment. 5. From the "myhdfstuff" directory execute the CTest Script with the following options: - ctest -S -C Release -VV -O hdf5.log + On 32-bit Windows with Visual Studio 2012, execute: + ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf5.log + On 64-bit Windows with Visual Studio 2012, execute: + ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log + On 32-bit Windows with Visual Studio 2013, execute: + ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf5.log + On 64-bit Windows with Visual Studio 2013, execute: + ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log + On Linux and Mac, execute: + ctest -S HDF518config.cmake -C Release -VV -O hdf5.log The command above will configure, build, test, and create an install package in the myhdfstuff/hdf5-1.8/build folder. @@ -94,7 +100,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: 6. To install, "X" is the current release version On Windows, execute: - HDF5-1.8."X"-win32.exe or HDF5-1.8."X"-win64.exe + HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi By default this program will install the hdf5 library into the "C:\Program Files" directory and will create the following directory structure: @@ -180,7 +186,7 @@ Notes: This short set of instructions is written for users who want to 9. To install On Windows, execute: - HDF5-1.8."X"-win32.exe or HDF5-1.8."X"-win64.exe + HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi By default this program will install the hdf5 library into the "C:\Program Files" directory and will create the following directory structure: @@ -376,12 +382,8 @@ These five steps are described in detail below. set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE) set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE) set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE) - set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE) - set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE) set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE) set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE) - set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE) - set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE) set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE) set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE) set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE) @@ -498,7 +500,7 @@ These five steps are described in detail below. 5. Packaging HDF5 (create an install image) - To package the build into a simple installer using the NullSoft installer NSIS + To package the build into a simple installer using WiX toolset or the NullSoft installer NSIS on Windows, or into compressed files (.tar.gz, .sh, .zip), use the CPack tool. To package the build, navigate to your build directory and execute; @@ -506,6 +508,7 @@ These five steps are described in detail below. cpack -C {Debug | Release} CPackConfig.cmake NOTE: See note 8 of this document for NSIS information. + See note 9 of this document for WiX information. Also, if you are using a Visual Studio Express version or do not want to enable the packaging components, set HDF5_NO_PACKAGES to ON (on the command line add -DHDF5_NO_PACKAGES:BOOL=ON) @@ -529,6 +532,9 @@ These five steps are described in detail below. "output directory", which is where the program will be installed. These options are case-sensitive, so be sure to type them in upper case. + 9. WiX Toolset + WiX--the Windows Installer XML toolset--lets developers create installers for + Windows Installer, the Windows installation engine. See http://wixtoolset.org. ======================================================================== @@ -615,37 +621,31 @@ build and test process. VIII. Options for Platform Configuration Files ======================================================================== -Below is the HDF518LinuxCmake.cmake ctest script with extra comments. -The example is for a linux machine, but the same scripts can be used on -a Windows machine by adjusting the CTEST_CMAKE_GENERATOR option in the -platform configuration script. +Below is the HDF518config.cmake ctest script with extra comments. +Execute: + ctest -S HDF518config.cmake -C Release -V -O hdf518.log +The same scripts can be used on Linux, Mac OSX or a Windows machine by +adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script. -############################################################################ -# Product specific script, HDF518LinuxCmake.cmake, that uses the -# CTestScript.cmake file. Usage: -# "ctest -S HDF518LinuxCmake.cmake -C Release -O hdf518shared.log" -############################################################################ -cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) - -# this is the location of the source hardcoded to hdf5-1.8.13 -set(CTEST_SOURCE_NAME hdf5-1.8.13) -# this is the location of the source with ctest parameter hdf5src -# "ctest -S HDF518LinuxCmake.cmake,hdf5src -C Release -O hdf518static.log" -#set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG}) - -# this is the location of the build directory -set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build) +######################################################################### +### For Windows ${CTEST_SCRIPT_ARG} is one of ### +### [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012] ### +### ctest -S HDF518config.cmake,32-VS2012 -C Release -V -O hdf518.log ### +######################################################################### -# this is the directory the script is executed from +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) +set(CTEST_SOURCE_VERSION 1.8.X) +set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) +set(CTEST_BINARY_NAME "build") set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") - -# this is the full path of the source directory -set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") - -# this is the full path of the build directory -set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}") - +if(WIN32) + set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}") + set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") +else() + set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") + set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}") +endif() ################################################################### ### Following Line is one of [Release, RelWithDebInfo, Debug] ##### @@ -654,13 +654,41 @@ set(CTEST_BUILD_CONFIGURATION "Release") ################################################################### ######### Following describes compiler ############ -# this is for linux -set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -# this is for windows 32 bit -#set(CTEST_CMAKE_GENERATOR "Visual Studio 11") -# this is for windows 64 bit -#set(CTEST_CMAKE_GENERATOR "Visual Studio 11 Win64") -# Visual Studio 2013 is 12, Visual Studio 2012 is 11, Visual Studio 2010 is 10 +if(WIN32) + set(SITE_OS_NAME "Windows") + set(SITE_OS_VERSION "WIN7") + if(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2013") + set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64") + set(SITE_OS_BITS "64") + set(SITE_COMPILER_NAME "vs2013") + set(SITE_COMPILER_VERSION "12") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2013") + set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013") + set(SITE_OS_BITS "32") + set(SITE_COMPILER_NAME "vs2013") + set(SITE_COMPILER_VERSION "12") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2012") + set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64") + set(SITE_OS_BITS "64") + set(SITE_COMPILER_NAME "vs2012") + set(SITE_COMPILER_VERSION "11") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2012") + set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012") + set(SITE_OS_BITS "32") + set(SITE_COMPILER_NAME "vs2012") + set(SITE_COMPILER_VERSION "11") + endif() +## Set the following to unique id your computer ## + set(CTEST_SITE "WIN7${CTEST_SCRIPT_ARG}.XXXX") +else() + set(CTEST_CMAKE_GENERATOR "Unix Makefiles") +## Set the following to unique id your computer ## + if(APPLE) + set(CTEST_SITE "MAC.XXXX") + else() + set(CTEST_SITE "LINUX.XXXX") + endif() +endif() ################################################################### ################################################################### @@ -668,25 +696,24 @@ set(CTEST_CMAKE_GENERATOR "Unix Makefiles") ################################################################### set(MODEL "Experimental") ######### Following describes computer ############ -## Set the following to unique id your computer ## -set(CTEST_SITE "LINUX.XXXX") -## following is optional to describe build ## -set(SITE_BUILDNAME_SUFFIX "SHARED") +## following is optional to describe build ## +set(SITE_BUILDNAME_SUFFIX "STATIC") +################################################################### -######### Following controls CDash submission ########## +################################################################### +##### Following controls CDash submission ##### #set(LOCAL_SUBMIT "TRUE") -######### Following controls test process ########## +##### Following controls test process ##### #set(LOCAL_SKIP_TEST "TRUE") #set(LOCAL_MEMCHECK_TEST "TRUE") #set(LOCAL_COVERAGE_TEST "TRUE") -######### Following controls cpack command ########## +##### Following controls cpack command ##### #set(LOCAL_NO_PACKAGE "TRUE") -######### Following controls source update ########## +##### Following controls source update ##### #set(LOCAL_UPDATE "TRUE") -######### Following controls source repository ########## -#set(REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5/branches/hdf5_1_8") -#comment to use a uncompressed source folder -set(CTEST_USE_TAR_SOURCE "hdf5-1.8.13") +set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8") +#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows +#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}") ################################################################### ################################################################### @@ -695,8 +722,8 @@ set(CTEST_USE_TAR_SOURCE "hdf5-1.8.13") ### uncomment/comment and change the following lines for configuration options -### uncomment the following line to build static libraries -#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") +### comment the following line or change OFF to ON in order to build shared libraries +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") #### ext libraries #### ### ext libs from tgz @@ -706,33 +733,65 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING ### ext libs on system #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include") #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include") - +### disable ext libs building +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF") +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF") +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF") #### fortran #### -### disable Fortran 2003 -#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=OFF") -### disable Fortran -#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF") - -### Create install package with external libraries (szip, zlib) -set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") +### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON") +### disable Fortran; change OFF to ON in order to build FORTRAN libraries +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF") +if(APPLE) + ### allow shared builds without fortran on MAC + set(NO_MAC_FORTRAN "TRUE") +endif() ### disable test program builds #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF") ### disable packaging #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON") - -### disable building examples -#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_EXAMPLES:BOOL=OFF") - -### disable building tests -#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF") +### Create install package with external libraries (szip, zlib, jpeg) +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") ### change install prefix #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=install") + ################################################################### -include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) +if(WIN32) + include(${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake) + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() +else() + include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) + if(APPLE) + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + else() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + endif() +endif() ======================================================================== diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt index 347876c..514cced 100644 --- a/release_docs/USING_HDF5_CMake.txt +++ b/release_docs/USING_HDF5_CMake.txt @@ -107,7 +107,7 @@ These steps are described in more detail below. is: * BUILD_TESTING:BOOL=ON - * USE_SHARED_LIBS:BOOL=[ON | OFF] + * BUILD_SHARED_LIBS:BOOL=[ON | OFF] 2. Configure the cache settings @@ -131,7 +131,7 @@ These steps are described in more detail below. 2.2 Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory: - cmake -G "Visual Studio 11" -DBUILD_TESTING:BOOL=ON -DUSE_SHARED_LIBS:BOOL=ON .. + cmake -G "Visual Studio 11" -DBUILD_TESTING:BOOL=ON .. 3. Build HDF5 Applications -- cgit v0.12 From 01377434703d2d60d003e79ec0d8e4784c7fe2cd Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 23 Apr 2015 13:50:49 -0500 Subject: [svn-r26905] Add user scripts to CMake folder --- MANIFEST | 4 + config/cmake/scripts/CTestScript.cmake | 282 ++++++++++++++++++++++++++++++++ config/cmake/scripts/HDF518config.cmake | 160 ++++++++++++++++++ 3 files changed, 446 insertions(+) create mode 100755 config/cmake/scripts/CTestScript.cmake create mode 100755 config/cmake/scripts/HDF518config.cmake diff --git a/MANIFEST b/MANIFEST index bad1bfd..58a0f9e 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2507,3 +2507,7 @@ ./tools/misc/CMakeTests.cmake ./tools/perform/CMakeLists.txt ./tools/perform/CMakeTests.cmake + +# CMake-specific User Scripts +./config/cmake/scripts/CTestScipt.cmake _DO_NOT_DISTRIBUTE_ +./config/cmake/scripts/HDF518config.cmake _DO_NOT_DISTRIBUTE_ diff --git a/config/cmake/scripts/CTestScript.cmake b/config/cmake/scripts/CTestScript.cmake new file mode 100755 index 0000000..0cd686a --- /dev/null +++ b/config/cmake/scripts/CTestScript.cmake @@ -0,0 +1,282 @@ +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) +######################################################## +# This dashboard is maintained by The HDF Group +# For any comments please contact cdashhelp@hdfgroup.org +# +######################################################## +# ----------------------------------------------------------- +# -- Get environment +# ----------------------------------------------------------- +if(NOT SITE_OS_NAME) + ## machine name not provided - attempt to discover with uname + ## -- set hostname + ## -------------------------- + find_program(HOSTNAME_CMD NAMES hostname) + exec_program(${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME) + set(CTEST_SITE "${HOSTNAME}${CTEST_SITE_EXT}") + find_program(UNAME NAMES uname) + macro(getuname name flag) + exec_program("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}") + endmacro(getuname) + + getuname(osname -s) + getuname(osrel -r) + getuname(cpu -m) + message(STATUS "Dashboard script uname output: ${osname}-${osrel}-${cpu}\n") + + set(CTEST_BUILD_NAME "${osname}-${osrel}-${cpu}") + if(USE_AUTOTOOLS) + set(CTEST_BUILD_NAME "AT-${CTEST_BUILD_NAME}") + endif() + if(SITE_BUILDNAME_SUFFIX) + set(CTEST_BUILD_NAME "${CTEST_BUILD_NAME}-${SITE_BUILDNAME_SUFFIX}") + endif() + set(BUILD_OPTIONS "${ADD_BUILD_OPTIONS}") +else(NOT SITE_OS_NAME) + ## machine name provided + ## -------------------------- + if(CMAKE_HOST_UNIX) + set(CTEST_BUILD_NAME "${SITE_OS_NAME}-${SITE_OS_VERSION}-${SITE_OS_BITS}-${SITE_COMPILER_NAME}-${SITE_COMPILER_VERSION}") + else() + set(CTEST_BUILD_NAME "${SITE_OS_NAME}-${SITE_OS_VERSION}-${SITE_COMPILER_NAME}") + endif() + if(SITE_BUILDNAME_SUFFIX) + set(CTEST_BUILD_NAME ${CTEST_BUILD_NAME}-${SITE_BUILDNAME_SUFFIX}) + endif() + set(BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}") +endif(NOT SITE_OS_NAME) + +#----------------------------------------------------------------------------- +# MAC machines need special option +#----------------------------------------------------------------------------- +if(APPLE) + # Compiler choice + execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE) + set(ENV{CC} "${XCODE_CC}") + set(ENV{CXX} "${XCODE_CXX}") + + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF") +endif(APPLE) + +#----------------------------------------------------------------------------- +set(NEED_REPOSITORY_CHECKOUT 0) +set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"") +if(CTEST_USE_TAR_SOURCE) + ## Uncompress source if tar file provided + ## -------------------------- + if(WIN32) + message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} x ${CTEST_USE_TAR_SOURCE}.zip]") + execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv) + else() + message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]") + execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv) + endif() + + if(NOT rv EQUAL 0) + message(STATUS "extracting... [error-(${rv}) clean up]") + file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}") + message(FATAL_ERROR "error: extract of ${CTEST_USE_TAR_SOURCE} failed") + endif() + + file(RENAME ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE} ${CTEST_SOURCE_DIRECTORY}) +else(CTEST_USE_TAR_SOURCE) + if(LOCAL_UPDATE) + if(CTEST_USE_GIT_SOURCE) + find_program(CTEST_GIT_COMMAND NAMES git git.cmd) + set(CTEST_GIT_UPDATE_OPTIONS) + + if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") + set(NEED_REPOSITORY_CHECKOUT 1) + endif() + + if(${NEED_REPOSITORY_CHECKOUT}) + if(REPOSITORY_BRANCH) + set(GITUpdateOptions "clone \"${REPOSITORY_URL}\" --branch \"${REPOSITORY_BRANCH}\" \"${CTEST_SOURCE_DIRECTORY}\" --recurse-submodules") + else() + set(GITUpdateOptions "clone \"${REPOSITORY_URL}\" \"${CTEST_SOURCE_DIRECTORY}\" --recurse-submodules") + endif() + set(CTEST_CHECKOUT_COMMAND "${CTEST_GIT_COMMAND} ${GITUpdateOptions}") + else() + set(GITUpdateOptions "pull") + endif() + set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}") + else(CTEST_USE_GIT_SOURCE) + ## -------------------------- + ## use subversion to get source + #----------------------------------------------------------------------------- + ## cygwin does not handle the find_package() call + ## -------------------------- + set(CTEST_UPDATE_COMMAND "SVNCommand") + if(NOT SITE_CYGWIN}) + find_package (Subversion) + set(CTEST_SVN_COMMAND "${Subversion_SVN_EXECUTABLE}") + set(CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}") + else() + set(CTEST_SVN_COMMAND "/usr/bin/svn") + set(CTEST_UPDATE_COMMAND "/usr/bin/svn") + endif() + + if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") + set(NEED_REPOSITORY_CHECKOUT 1) + endif() + + if(NOT CTEST_REPO_VERSION) + set(CTEST_REPO_VERSION "HEAD") + endif() + if(${NEED_REPOSITORY_CHECKOUT}) + set(CTEST_CHECKOUT_COMMAND + "${CTEST_SVN_COMMAND} co ${REPOSITORY_URL} \"${CTEST_SOURCE_DIRECTORY}\" -r ${CTEST_REPO_VERSION}") + else(${NEED_REPOSITORY_CHECKOUT}) + if(CTEST_REPO_VERSION) + set(CTEST_SVN_UPDATE_OPTIONS "-r ${CTEST_REPO_VERSION}") + endif() + endif(${NEED_REPOSITORY_CHECKOUT}) + endif(CTEST_USE_GIT_SOURCE) + endif(LOCAL_UPDATE) +endif(CTEST_USE_TAR_SOURCE) + +#----------------------------------------------------------------------------- +## Clear the build directory +## -------------------------- +set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE) +if(NOT EXISTS "${CTEST_BINARY_DIRECTORY}") + file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}") +else() + ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) +endif() + +# Use multiple CPU cores to build +include(ProcessorCount) +ProcessorCount(N) +if(NOT N EQUAL 0) + if(NOT WIN32) + set(CTEST_BUILD_FLAGS -j${N}) + endif() + set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N}) +endif() + +#----------------------------------------------------------------------------- +# Send the main script as a note. +list(APPEND CTEST_NOTES_FILES + "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}" + "${CMAKE_CURRENT_LIST_FILE}" + "${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake" +) + +#----------------------------------------------------------------------------- +# Check for required variables. +# -------------------------- +foreach(req + CTEST_CMAKE_GENERATOR + CTEST_SITE + CTEST_BUILD_NAME + ) + if(NOT DEFINED ${req}) + message(FATAL_ERROR "The containing script must set ${req}") + endif() +endforeach(req) + +#----------------------------------------------------------------------------- +# Initialize the CTEST commands +#------------------------------ +if(LOCAL_MEMCHECK_TEST) + find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) + set (CTEST_CONFIGURE_COMMAND + "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/mccacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\"" + ) +else() + if(LOCAL_COVERAGE_TEST) + find_program(CTEST_COVERAGE_COMMAND NAMES gcov) + endif() + set (CTEST_CONFIGURE_COMMAND + "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\"" + ) +endif() + +#----------------------------------------------------------------------------- +## -- set output to english +set($ENV{LC_MESSAGES} "en_EN") + +# Print summary information. +foreach(v + CTEST_SITE + CTEST_BUILD_NAME + CTEST_SOURCE_DIRECTORY + CTEST_BINARY_DIRECTORY + CTEST_CMAKE_GENERATOR + CTEST_BUILD_CONFIGURATION + CTEST_GIT_COMMAND + CTEST_CHECKOUT_COMMAND + CTEST_CONFIGURE_COMMAND + CTEST_SCRIPT_DIRECTORY + CTEST_USE_LAUNCHERS + ) + set(vars "${vars} ${v}=[${${v}}]\n") +endforeach(v) +message(STATUS "Dashboard script configuration:\n${vars}\n") + +#----------------------------------------------------------------------------- +#----------------------------------------------------------------------------- + ## NORMAL process + ## -- LOCAL_UPDATE updates the source folder from svn + ## -- LOCAL_SUBMIT reports to CDash server + ## -- LOCAL_SKIP_TEST skips the test process (only builds) + ## -- LOCAL_MEMCHECK_TEST executes the Valgrind testing + ## -- LOCAL_COVERAGE_TEST executes code coverage process + ## -------------------------- + ctest_start (${MODEL} TRACK ${MODEL}) + if(LOCAL_UPDATE) + ctest_update (SOURCE "${CTEST_SOURCE_DIRECTORY}") + endif() + configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake) + ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}") + ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}") + if(LOCAL_SUBMIT) + ctest_submit (PARTS Update Configure Notes) + endif() + + ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) + if(LOCAL_SUBMIT) + ctest_submit (PARTS Build) + endif() + + if(NOT LOCAL_SKIP_TEST) + if(NOT LOCAL_MEMCHECK_TEST) + ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res) + if(LOCAL_SUBMIT) + ctest_submit (PARTS Test) + endif() + if(res GREATER 0) + message(FATAL_ERROR "Failed tests: ${res}\n") + endif() + else() + ctest_memcheck (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args}) + if(LOCAL_SUBMIT) + ctest_submit (PARTS MemCheck) + endif(LOCAL_SUBMIT) + endif() + if(LOCAL_COVERAGE_TEST) + ctest_coverage (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) + if(LOCAL_SUBMIT) + ctest_submit (PARTS Coverage) + endif() + endif() + endif(NOT LOCAL_SKIP_TEST) + + if(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE) + ##----------------------------------------------- + ## Package the product + ##----------------------------------------------- + execute_process(COMMAND cpack -C ${CTEST_BUILD_CONFIGURATION} -V + WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY} + RESULT_VARIABLE cpackResult + OUTPUT_VARIABLE cpackLog + ERROR_VARIABLE cpackLog.err + ) + file(WRITE ${CTEST_BINARY_DIRECTORY}/cpack.log "${cpackLog.err}" "${cpackLog}") + if(cpackResult GREATER 0) + message (FATAL_ERROR "Failed packaging: ${cpackResult}\n") + endif() + endif(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE) +#----------------------------------------------------------------------------- diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake new file mode 100755 index 0000000..8290c7a --- /dev/null +++ b/config/cmake/scripts/HDF518config.cmake @@ -0,0 +1,160 @@ +######################################################################### +### For Windows ${CTEST_SCRIPT_ARG} is one of ### +### [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012] ### +### ctest -S HDF518config.cmake,32-VS2012 -C Release -V -O hdf518.log ### +######################################################################### + +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) +set(CTEST_SOURCE_VERSION 1.8.15-pre4) +set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) +set(CTEST_BINARY_NAME "build") +set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") +if(WIN32) + set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}") + set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") +else() + set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") + set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}") +endif() + +################################################################### +### Following Line is one of [Release, RelWithDebInfo, Debug] ##### +set(CTEST_BUILD_CONFIGURATION "Release") +################################################################### + +################################################################### +######### Following describes compiler ############ +if(WIN32) + set(SITE_OS_NAME "Windows") + set(SITE_OS_VERSION "WIN7") + if(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2013") + set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64") + set(SITE_OS_BITS "64") + set(SITE_COMPILER_NAME "vs2013") + set(SITE_COMPILER_VERSION "12") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2013") + set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013") + set(SITE_OS_BITS "32") + set(SITE_COMPILER_NAME "vs2013") + set(SITE_COMPILER_VERSION "12") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2012") + set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64") + set(SITE_OS_BITS "64") + set(SITE_COMPILER_NAME "vs2012") + set(SITE_COMPILER_VERSION "11") + elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2012") + set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012") + set(SITE_OS_BITS "32") + set(SITE_COMPILER_NAME "vs2012") + set(SITE_COMPILER_VERSION "11") + endif() +## Set the following to unique id your computer ## + set(CTEST_SITE "WIN7${CTEST_SCRIPT_ARG}.XXXX") +else() + set(CTEST_CMAKE_GENERATOR "Unix Makefiles") +## Set the following to unique id your computer ## + if(APPLE) + set(CTEST_SITE "MAC.XXXX") + else() + set(CTEST_SITE "LINUX.XXXX") + endif() +endif() +################################################################### + +################################################################### +######### Following is for submission to CDash ############ +################################################################### +set(MODEL "Experimental") +######### Following describes computer ############ +## following is optional to describe build ## +set(SITE_BUILDNAME_SUFFIX "STATIC") +################################################################### + +################################################################### +##### Following controls CDash submission ##### +#set(LOCAL_SUBMIT "TRUE") +##### Following controls test process ##### +#set(LOCAL_SKIP_TEST "TRUE") +#set(LOCAL_MEMCHECK_TEST "TRUE") +#set(LOCAL_COVERAGE_TEST "TRUE") +##### Following controls cpack command ##### +#set(LOCAL_NO_PACKAGE "TRUE") +##### Following controls source update ##### +#set(LOCAL_UPDATE "TRUE") +set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8") +#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows +#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}") +################################################################### + +################################################################### +#### Change default configuration of options in config/cmake/cacheinit.cmake file ### +#### format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ") + +### uncomment/comment and change the following lines for configuration options + +### comment the following line or change OFF to ON in order to build shared libraries +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") + +#### ext libraries #### +### ext libs from tgz +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}") +### ext libs from svn +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=SVN") +### ext libs on system +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include") +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include") +### disable ext libs building +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF") +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF") +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF") +#### fortran #### +### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON") +### disable Fortran; change OFF to ON in order to build FORTRAN libraries +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF") + +### disable test program builds +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF") + +### disable packaging +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON") +### Create install package with external libraries (szip, zlib, jpeg) +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") + +### change install prefix +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=install") + +################################################################### + +if(WIN32) + include(${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake) + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() +else() + include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) + if(APPLE) + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + else() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + endif() +endif() -- cgit v0.12 From dcb31a0e000c0071b2846d7a644372b59cbcbc8f Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 23 Apr 2015 14:05:22 -0500 Subject: [svn-r26906] Correct typo --- MANIFEST | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST b/MANIFEST index 58a0f9e..68f95d0 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2509,5 +2509,5 @@ ./tools/perform/CMakeTests.cmake # CMake-specific User Scripts -./config/cmake/scripts/CTestScipt.cmake _DO_NOT_DISTRIBUTE_ +./config/cmake/scripts/CTestScript.cmake _DO_NOT_DISTRIBUTE_ ./config/cmake/scripts/HDF518config.cmake _DO_NOT_DISTRIBUTE_ -- cgit v0.12 From aa2f93cdf6339ff5c4ca88b6d0bdcd5ad97b96ef Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Thu, 23 Apr 2015 14:30:50 -0500 Subject: [svn-r26907] Check range and fix conversion issue of compound members in H5T_copy/H5T_set_loc Tested: local linux --- src/H5T.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/H5T.c b/src/H5T.c index 6cef1c6..2758395 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -3208,7 +3208,7 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) switch(new_dt->shared->type) { case H5T_COMPOUND: { - int accum_change = 0; /* Amount of change in the offset of the fields */ + ssize_t accum_change = 0; /* Amount of change in the offset of the fields */ /* * Copy all member fields to new type, then overwrite the @@ -3236,6 +3236,10 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) new_dt->shared->u.compnd.memb[i].type = tmp; HDassert(tmp != NULL); + /* Range check against compound member's offset */ + if ((accum_change < 0) && ((ssize_t) new_dt->shared->u.compnd.memb[i].offset < accum_change)) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, NULL, "invalid field size in datatype"); + /* Apply the accumulated size change to the offset of the field */ new_dt->shared->u.compnd.memb[i].offset += (size_t) accum_change; @@ -3259,14 +3263,16 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method) /* Adjust the size of the member */ new_dt->shared->u.compnd.memb[i].size = (old_dt->shared->u.compnd.memb[old_match].size*tmp->shared->size)/old_dt->shared->u.compnd.memb[old_match].type->shared->size; - accum_change += (int) (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size); - /* HDassert(accum_change >= 0); */ + accum_change += (ssize_t) (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size); } /* end if */ } /* end for */ + /* Range check against datatype size */ + if ((accum_change < 0) && ((ssize_t) new_dt->shared->size < accum_change)) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, NULL, "invalid field size in datatype"); + /* Apply the accumulated size change to the size of the compound struct */ new_dt->shared->size += (size_t) accum_change; - } break; @@ -5106,7 +5112,6 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) htri_t changed; /* Whether H5T_set_loc changed the type (even if the size didn't change) */ htri_t ret_value = 0; /* Indicate that success, but no location change */ unsigned i; /* Local index variable */ - int accum_change; /* Amount of change in the offset of the fields */ size_t old_size; /* Previous size of a field */ FUNC_ENTER_NOAPI(FAIL) @@ -5140,12 +5145,19 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) break; case H5T_COMPOUND: /* Check each field and recurse on VL, compound and array type */ + { + ssize_t accum_change = 0; /* Amount of change in the offset of the fields */ + /* Sort the fields based on offsets */ H5T__sort_value(dt, NULL); - for (i=0,accum_change=0; ishared->u.compnd.nmembs; i++) { + for (i=0; ishared->u.compnd.nmembs; i++) { H5T_t *memb_type; /* Member's datatype pointer */ + /* Range check against compound member's offset */ + if ((accum_change < 0) && ((ssize_t) dt->shared->u.compnd.memb[i].offset < accum_change)) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, FAIL, "invalid field size in datatype"); + /* Apply the accumulated size change to the offset of the field */ dt->shared->u.compnd.memb[i].offset += (size_t) accum_change; @@ -5170,14 +5182,18 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc) dt->shared->u.compnd.memb[i].size = (dt->shared->u.compnd.memb[i].size*memb_type->shared->size)/old_size; /* Add that change to the accumulated size change */ - accum_change += (int) (memb_type->shared->size - old_size); - /* HDassert(accum_change >= 0); */ + accum_change += (ssize_t) (memb_type->shared->size - old_size); } /* end if */ } /* end if */ } /* end for */ + /* Range check against datatype size */ + if ((accum_change < 0) && ((ssize_t) dt->shared->size < accum_change)) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, FAIL, "invalid field size in datatype"); + /* Apply the accumulated size change to the datatype */ - dt->shared->size = dt->shared->size + (size_t) accum_change; + dt->shared->size += (size_t) accum_change; + } break; case H5T_VLEN: /* Recurse on the VL information if it's VL, compound or array, then free VL sequence */ -- cgit v0.12 From 188936ac03e9122341d2a7a7cae28280cc28504d Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 27 Apr 2015 01:59:32 -0500 Subject: [svn-r26924] Remove old and invalid information: Retired IBM SP system which was old. Removed --enable-parallel=mpich information. The option is invalid now (remove date unknown.) --- release_docs/INSTALL_parallel | 50 ++----------------------------------------- 1 file changed, 2 insertions(+), 48 deletions(-) diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel index e4570b7..e4c540c 100644 --- a/release_docs/INSTALL_parallel +++ b/release_docs/INSTALL_parallel @@ -57,45 +57,7 @@ parallel HDF5 with one of the above, just set CC as it and configure. $ make install -2.2. IBM SP ------------ -During the build stage, the H5detect is compiled and executed to generate -the source file H5Tinit.c which is compiled as part of the HDF5 library. In -parallel mode, make sure your environment variables are set correctly to -execute a single process mpi application. Otherwise, multiple processes -attempt to write to the same H5Tinit.c file, resulting in a scrambled -source file. Unfortunately, the setting varies from machine to machine. -E.g., the following works for the IBM SP machine at LLNL. - - setenv MP_PROCS 1 - setenv MP_NODES 1 - setenv MP_LABELIO no - setenv MP_RMPOOL 0 - setenv LLNL_COMPILE_SINGLE_THREADED TRUE # for LLNL site only - -The shared library configuration is problematic. So, only static library -is supported. - -Then do the following steps: - - $ ./configure --enable-parallel --disable-shared --prefix= - $ make # build the library - $ make check # verify the correctness - # Read the Details section about parallel tests. - $ make install - -We also suggest that you add "-qxlf90=autodealloc" to FCFLAGS when building -parallel with fortran enabled. This can be done by invoking: - - setenv FCFLAGS -qxlf90=autodealloc # 32 bit build -or - setenv FCFLAGS "-q64 -qxlf90=autodealloc" # 64 bit build - -prior to running configure. Recall that the "-q64" is necessary for 64 -bit builds. - - -2.3. Linux 2.4 and greater +2.2. Linux 2.4 and greater -------------------------- Be sure that your installation of MPICH was configured with the following configuration command-line option: @@ -106,7 +68,7 @@ This allows for >2GB sized files on Linux systems and is only available with Linux kernels 2.4 and greater. -2.4. Hopper (Cray XE6) (for v1.8 and later) +2.3. Hopper (Cray XE6) (for v1.8 and later) ------------------------- The following steps are for building HDF5 for the Hopper compute @@ -178,14 +140,6 @@ For examples, $ CC=mpcc_r ./configure --enable-parallel $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel -If no such a compiler command is available then you must use your normal -C compiler along with the location(s) of MPI/MPI-IO files to be used. -For example, - - $ CPPFLAGS=-I/usr/local/mpi/include \ - LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \ - ./configure --enable-parallel=mpich - If a parallel library is being built then configure attempts to determine how to run a parallel application on one processor and on many processors. If the compiler is `mpicc' and the user hasn't specified values for RUNSERIAL and -- cgit v0.12 From 28f355e81e4af8dbb81ef9d979347a0fb6687475 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 27 Apr 2015 02:52:37 -0500 Subject: [svn-r26925] Added method to install the Mac OSX DMG file by line commands. Group all install method into a function call for easier maintenance. Tested: Linux (jam, platypus), Mac (osx1010dev) --- bin/cmakehdf5 | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index 4842f45..876b4c2 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -126,6 +126,40 @@ STEP() } +# Install the generated installation image file. Different platform uses +# different image files. +# Linux: HDF5--Linux.sh file +# Mac OS X: Not implemented yet +# Others: Not implemented yet +INSTALL_HDF5() +{ + myos="`uname -s`" + case "$myos" in + Linux) + install_file=./HDF5-${version}-Linux.sh + $install_file --skip-license $* + ;; + Darwin) # Mac OSX DMG file + install_file=HDF5-${version}-Darwin.dmg + test -d hdf5 || mkdir hdf5 + basename=`basename $install_file .dmg` + # mount the DMG file as /Volumes/$basename + # echo 'Y' as yes for license. + echo Y | hdiutil mount $install_file + # copy the contents to the install location + cp -R "/Volumes/$basename/HDF_Group" hdf5 + # unmount the DMG file + hdiutil umount $install_file + ;; + *) # unknown/unsupported OS. + echo "INSTALL_HDF5: Error--unknown/unsupported OS($myos)" + return 1 + ;; + esac + return 0 +} + + #========== # main #========== @@ -239,7 +273,8 @@ STEP "Test the library and tools..." "ctest . -C Release" $testlog STEP "Create an install image..." "cpack -C Release CPackConfig.cmake" $packlog # 8. Install with this command: -STEP "Install..." "./HDF5-${version}-Linux.sh --skip-license" $installlog +#STEP "Install..." "./HDF5-${version}-Linux.sh --skip-license" $installlog +STEP "Install..." "INSTALL_HDF5" $installlog # save the last exit code exit_code=$? -- cgit v0.12 From ceff4fe58f1c75530d12f8a1751d046e29cab53a Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 27 Apr 2015 03:15:17 -0500 Subject: [svn-r26926] Fixed previous typo in the installation of DMG file. Tested: osx1010dev --- bin/cmakehdf5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index 876b4c2..1e642d3 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -149,7 +149,7 @@ INSTALL_HDF5() # copy the contents to the install location cp -R "/Volumes/$basename/HDF_Group" hdf5 # unmount the DMG file - hdiutil umount $install_file + hdiutil unmount /Volumes/$basename ;; *) # unknown/unsupported OS. echo "INSTALL_HDF5: Error--unknown/unsupported OS($myos)" -- cgit v0.12 From 9fc7e89a090a4be29ca3e08773f3feb8d57f0413 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Mon, 27 Apr 2015 05:10:07 -0500 Subject: [svn-r26929] Added support for shared lib and zlib. Tested: linux (jam), Mac (osx1010dev) --- bin/cmakehdf5 | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index 1e642d3..715d6d7 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -52,6 +52,7 @@ build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON # enable zlib filter default on with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables zlib filter default off +shared_lib=-DBUILD_SHARED_LIBS:BOOL=ON # enables shared lib; default on #============= @@ -81,16 +82,14 @@ Usage: $progname [] enable or disable c++ API. Default is off. --enable-hl | --disable-hl: enable or disable high level API. Default is on. + --enable-shared | --disable-shared: + enable or disable shared lib. Default is on. --enable-tools | --disable-tools: enable or disable building tools. Default is on. --enable-testing | --disable-testing: enable or disable building tests. Default is on. - --with-zlib=INC,LIB | --without-zlib: + --with-zlib | --without-zlib: Use zlib library for external deflate I/O filter. Default is on. - INC and LIB are the include and lib directories. - --with-szlib=INC,LIB| --without-szlib: - Use szip library for external szip library I/O filter. Default is off. - INC and LIB are the include and lib directories. --help: shows details help page EOF } @@ -201,6 +200,12 @@ while [ $# -gt 0 ]; do --disable-hl) build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=OFF ;; + --enable-shared) + shared_lib=-DBUILD_SHARED_LIBS:BOOL=ON + ;; + --disable-shared) + shared_lib=-DBUILD_SHARED_LIBS:BOOL=OFF + ;; --enable-tools) build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON ;; @@ -213,6 +218,12 @@ while [ $# -gt 0 ]; do --disable-testing) build_testing=-DBUILD_TESTING:BOOL=OFF ;; + --with-zlib) + with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON + ;; + --without-zlib) + with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF + ;; --help) # print the detail help page and exit HELP @@ -256,6 +267,7 @@ STEP "Configure..." "cmake \ $build_fortran \ $enable_f2003 \ $build_hl_lib \ + $shared_lib \ $build_testing \ $build_tools \ $with_zlib \ -- cgit v0.12 From 4e50ee009676f8b5a5edc5273002d941f2b6ac17 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 27 Apr 2015 16:20:15 -0500 Subject: [svn-r26936] Incorrect use of HSIZE_T_FORMAT macro, needed to be sub macro H5_PRINTF_LL_WIDTH. Tested: local linux --- tools/h5ls/h5ls.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index d0dd216..96bd8d0 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -1855,17 +1855,17 @@ dataset_list2(hid_t dset, const char UNUSED *name) for (i=0, total=0; i Date: Tue, 28 Apr 2015 11:29:14 -0500 Subject: [svn-r26941] Correct ext lib packing list --- CMakeInstallation.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index aa49cdc..29791a3 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -466,10 +466,14 @@ The HDF5 data model, file format, API, library, and tools are open and distribut if (HDF5_PACKAGE_EXTLIBS) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;ALL;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/") endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) if (SZIP_FOUND AND SZIP_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;ALL;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/") endif (SZIP_FOUND AND SZIP_USE_EXTERNAL) endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") endif (HDF5_PACKAGE_EXTLIBS) -- cgit v0.12 From 4fc9a3885d9aa0f64ccdb3187cd92cb809842563 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 28 Apr 2015 12:53:17 -0500 Subject: [svn-r26944] Match src folder version --- config/cmake/libhdf5.settings.cmake.in | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in index a036ff8..e2124e1 100644 --- a/config/cmake/libhdf5.settings.cmake.in +++ b/config/cmake/libhdf5.settings.cmake.in @@ -23,8 +23,8 @@ Compiling Options: CPPFLAGS: @CPPFLAGS@ H5_CPPFLAGS: @H5_CPPFLAGS@ AM_CPPFLAGS: @AM_CPPFLAGS@ - Shared Libraries: @H5_ENABLE_SHARED_LIB@ - Static Libraries: @H5_ENABLE_STATIC_LIB@ + Shared C Library: @H5_ENABLE_SHARED_LIB@ + Static C Library: @H5_ENABLE_STATIC_LIB@ Statically Linked Executables: @BUILD_STATIC_EXECS@ LDFLAGS: @CMAKE_SHARED_LINKER_FLAGS@ AM_LDFLAGS: @AM_LDFLAGS@ @@ -42,11 +42,16 @@ Languages: @BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran Flags: @CMAKE_Fortran_FLAGS@ @BUILD_FORTRAN_CONDITIONAL_TRUE@ H5 Fortran Flags: @H5_FCFLAGS@ @BUILD_FORTRAN_CONDITIONAL_TRUE@ AM Fortran Flags: @AM_FCFLAGS@ +@BUILD_FORTRAN_CONDITIONAL_TRUE@ Shared Fortran Library: @H5_ENABLE_SHARED_LIB@ +@BUILD_FORTRAN_CONDITIONAL_TRUE@ Static Fortran Library: @H5_ENABLE_STATIC_LIB@ + C++: @HDF5_BUILD_CPP_LIB@ @BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: @CMAKE_CXX_COMPILER@ @BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CMAKE_CXX_FLAGS@ @BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @H5_CXXFLAGS@ @BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@ +@BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @H5_ENABLE_SHARED_LIB@ +@BUILD_CXX_CONDITIONAL_TRUE@ Static C++ Library: @H5_ENABLE_STATIC_LIB@ Features: --------- @@ -56,7 +61,6 @@ Features: Default API Mapping: @DEFAULT_API_VERSION@ With Deprecated Public Symbols: @HDF5_ENABLE_DEPRECATED_SYMBOLS@ I/O filters (external): @EXTERNAL_FILTERS@ - I/O filters (internal): @FILTERS@ MPE: @H5_HAVE_LIBLMPE@ Direct VFD: @H5_HAVE_DIRECT@ dmalloc: @H5_HAVE_LIBDMALLOC@ -- cgit v0.12 From 3939163f496bbe47907adbf01ef314efce119bf1 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 28 Apr 2015 13:58:05 -0500 Subject: [svn-r26949] Correct linux separators --- config/cmake/scripts/HDF518config.cmake | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake index 8290c7a..6307514 100755 --- a/config/cmake/scripts/HDF518config.cmake +++ b/config/cmake/scripts/HDF518config.cmake @@ -5,7 +5,7 @@ ######################################################################### cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) -set(CTEST_SOURCE_VERSION 1.8.15-pre4) +set(CTEST_SOURCE_VERSION 1.8.15) set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) set(CTEST_BINARY_NAME "build") set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") @@ -140,21 +140,21 @@ if(WIN32) else() include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) if(APPLE) - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() else() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() endif() endif() -- cgit v0.12 From 5a8114a2a9f5067cea2b1543ace4f19549b68477 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 28 Apr 2015 14:50:35 -0500 Subject: [svn-r26951] add cygwin --- config/cmake/scripts/HDF518config.cmake | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake index 6307514..70423a3 100755 --- a/config/cmake/scripts/HDF518config.cmake +++ b/config/cmake/scripts/HDF518config.cmake @@ -150,11 +150,20 @@ else() file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() else() - if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") - file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) - endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") - file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(CYGWIN) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + else() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() endif() endif() endif() -- cgit v0.12 From 6709dd28f279f53b75bf9a121eec69aa9577f99e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 28 Apr 2015 16:32:17 -0500 Subject: [svn-r26953] Remove src temporary debug build props. Move TOOLS option up before usage. --- CMakeInstallation.cmake | 40 +++++++++++++++++++---------------- CMakeLists.txt | 20 +++++++++--------- config/cmake/HDF518_Examples.cmake.in | 4 ++-- src/CMakeLists.txt | 12 ++--------- tools/h5repack/CMakeTests.cmake | 4 ++-- 5 files changed, 38 insertions(+), 42 deletions(-) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 29791a3..5f1f8e1 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -596,24 +596,28 @@ The HDF5 data model, file format, API, library, and tools are open and distribut GROUP Applications INSTALL_TYPES Full Developer User ) - CPACK_ADD_COMPONENT (hlcpplibraries - DISPLAY_NAME "HDF5 HL C++ Libraries" - DEPENDS hllibraries - GROUP Runtime - INSTALL_TYPES Full Developer User - ) - CPACK_ADD_COMPONENT (hlcppheaders - DISPLAY_NAME "HDF5 HL C++ Headers" - DEPENDS hlcpplibraries - GROUP Development - INSTALL_TYPES Full Developer - ) - CPACK_ADD_COMPONENT (hlfortlibraries - DISPLAY_NAME "HDF5 HL Fortran Libraries" - DEPENDS fortlibraries - GROUP Runtime - INSTALL_TYPES Full Developer User - ) + if (HDF5_BUILD_CPP_LIB) + CPACK_ADD_COMPONENT (hlcpplibraries + DISPLAY_NAME "HDF5 HL C++ Libraries" + DEPENDS hllibraries + GROUP Runtime + INSTALL_TYPES Full Developer User + ) + CPACK_ADD_COMPONENT (hlcppheaders + DISPLAY_NAME "HDF5 HL C++ Headers" + DEPENDS hlcpplibraries + GROUP Development + INSTALL_TYPES Full Developer + ) + endif (HDF5_BUILD_CPP_LIB) + if (HDF5_BUILD_FORTRAN) + CPACK_ADD_COMPONENT (hlfortlibraries + DISPLAY_NAME "HDF5 HL Fortran Libraries" + DEPENDS fortlibraries + GROUP Runtime + INSTALL_TYPES Full Developer User + ) + endif (HDF5_BUILD_FORTRAN) endif (HDF5_BUILD_HL_LIB) endif (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) diff --git a/CMakeLists.txt b/CMakeLists.txt index e9f73ec..1cacc5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -813,6 +813,16 @@ if (BUILD_TESTING) endif (BUILD_TESTING) #----------------------------------------------------------------------------- +# Option to build HDF5 Tools +#----------------------------------------------------------------------------- +if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") + option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) + if (HDF5_BUILD_TOOLS) + add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools) + endif (HDF5_BUILD_TOOLS) +endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") + +#----------------------------------------------------------------------------- # Option to build examples #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples") @@ -894,16 +904,6 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") #----------------------------------------------------------------------------- -# Option to build HDF5 Tools -#----------------------------------------------------------------------------- -if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") - option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) - if (HDF5_BUILD_TOOLS) - add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools) - endif (HDF5_BUILD_TOOLS) -endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") - -#----------------------------------------------------------------------------- # Check if Fortran's default real is double precision. If it is and HL is # being built then configure should fail due to bug HDFFV-889. #----------------------------------------------------------------------------- diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in index d767f51..febf20a 100644 --- a/config/cmake/HDF518_Examples.cmake.in +++ b/config/cmake/HDF518_Examples.cmake.in @@ -21,7 +21,7 @@ set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON") ############################################################################################################### if(WIN32) if(STATICLIBRARIES) - set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF") + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") endif(STATICLIBRARIES) set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake") set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build) @@ -29,7 +29,7 @@ if(WIN32) set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}") else(WIN32) if(STATICLIBRARIES) - set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") endif(STATICLIBRARIES) set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake") set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 68f7847..e5f7e2f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -770,16 +770,8 @@ set (H5_PRIVATE_HEADERS # Setup the H5Detect utility which generates H5Tinit with platform # specific type checks inside #----------------------------------------------------------------------------- -#add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) -#TARGET_C_PROPERTIES (H5detect STATIC " " " ") -IF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - SET (LOCAL_OPT_FLAG "-O0") -ELSE (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - SET (LOCAL_OPT_FLAG " ") -ENDIF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) -ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c) -TARGET_C_PROPERTIES (H5detect STATIC ${LOCAL_OPT_FLAG} " ") - +add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) +TARGET_C_PROPERTIES (H5detect STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5detect "ws2_32.lib") endif (MSVC OR MINGW) diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake index 3391c3f..efaa6e5 100644 --- a/tools/h5repack/CMakeTests.cmake +++ b/tools/h5repack/CMakeTests.cmake @@ -341,7 +341,7 @@ ENDMACRO (ADD_H5_TEST_META) MACRO (ADD_H5_UD_TEST testname resultcode resultfile) - if (HDF5_BUILD_TOOLS AND NOT HDF5_ENABLE_USING_MEMCHECKER) + if (NOT HDF5_ENABLE_USING_MEMCHECKER) # Remove any output file left over from previous test run add_test ( NAME H5REPACK_UD-${testname}-clearall-objects @@ -382,7 +382,7 @@ -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake" ) set_tests_properties (H5REPACK_UD-h5dump-${testname} PROPERTIES DEPENDS "H5REPACK_UD-${testname}") - endif (HDF5_BUILD_TOOLS AND NOT HDF5_ENABLE_USING_MEMCHECKER) + endif (NOT HDF5_ENABLE_USING_MEMCHECKER) ENDMACRO (ADD_H5_UD_TEST) ############################################################################## -- cgit v0.12 From 65ba755e8a744baa2c657eec6e0f4a1d9b502a08 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 28 Apr 2015 21:07:10 -0500 Subject: [svn-r26961] Description: Clean up H5I code, to eliminate duplicated sections of code. Tested on: Mac OSX/64 10.10.3 (amazon) w/serial & parallel (Too minor to require h5committest) --- src/H5I.c | 65 +++++++++++++++++---------------------------------------------- 1 file changed, 17 insertions(+), 48 deletions(-) diff --git a/src/H5I.c b/src/H5I.c index 54b7ecc..eb34d6e 100644 --- a/src/H5I.c +++ b/src/H5I.c @@ -593,15 +593,9 @@ H5I_clear_type(H5I_type_t type, hbool_t force, hbool_t app_ref) /* Check if we should delete this node or not */ if(delete_node) { - /* Decrement the number of IDs in the type */ - (type_ptr->id_count)--; - - /* Remove the node from the list */ - if(NULL == H5SL_remove(type_ptr->ids, &cur->id)) - HGOTO_ERROR(H5E_ATOM, H5E_CANTDELETE, FAIL, "can't remove ID node from skip list") - - /* Free the node */ - cur = H5FL_FREE(H5I_id_info_t, cur); + /* Remove the node from the type */ + if(NULL == H5I__remove_common(type_ptr, cur->id)) + HGOTO_ERROR(H5E_ATOM, H5E_CANTDELETE, FAIL, "can't remove ID node") } /* end if */ } /* end for */ @@ -1208,8 +1202,6 @@ done: int H5I_dec_ref(hid_t id) { - H5I_type_t type; /*type the object is in*/ - H5I_id_type_t *type_ptr; /*ptr to the type */ H5I_id_info_t *id_ptr; /*ptr to the new ID */ int ret_value; /* Return value */ @@ -1218,17 +1210,9 @@ H5I_dec_ref(hid_t id) /* Sanity check */ HDassert(id >= 0); - /* Check arguments */ - type = H5I_TYPE(id); - if(type <= H5I_BADID || type >= H5I_next_type) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number") - type_ptr = H5I_id_type_list_g[type]; - if(NULL == type_ptr || type_ptr->init_count <= 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number") - /* General lookup of the ID */ - if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id))) - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID") + if(NULL == (id_ptr = H5I__find_id(id))) + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID") /* * If this is the last reference to the object then invoke the type's @@ -1246,6 +1230,11 @@ H5I_dec_ref(hid_t id) * file. We have to close the dataset anyway. (SLU - 2010/9/7) */ if(1 == id_ptr->count) { + H5I_id_type_t *type_ptr; /*ptr to the type */ + + /* Get the ID's type */ + type_ptr = H5I_id_type_list_g[H5I_TYPE(id)]; + /* (Casting away const OK -QAK) */ if(!type_ptr->cls->free_func || (type_ptr->cls->free_func)((void *)id_ptr->obj_ptr) >= 0) { /* Remove the node from the type */ @@ -1409,8 +1398,6 @@ done: int H5I_inc_ref(hid_t id, hbool_t app_ref) { - H5I_type_t type; /*type the object is in*/ - H5I_id_type_t *type_ptr; /*ptr to the type */ H5I_id_info_t *id_ptr; /*ptr to the ID */ int ret_value; /* Return value */ @@ -1419,16 +1406,8 @@ H5I_inc_ref(hid_t id, hbool_t app_ref) /* Sanity check */ HDassert(id >= 0); - /* Check arguments */ - type = H5I_TYPE(id); - if(type <= H5I_BADID || type >= H5I_next_type) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number") - type_ptr = H5I_id_type_list_g[type]; - if(!type_ptr || type_ptr->init_count <= 0) - HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type") - /* General lookup of the ID */ - if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id))) + if(NULL == (id_ptr = H5I__find_id(id))) HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID") /* Adjust reference counts */ @@ -1494,8 +1473,6 @@ done: int H5I_get_ref(hid_t id, hbool_t app_ref) { - H5I_type_t type; /*type the object is in*/ - H5I_id_type_t *type_ptr; /*ptr to the type */ H5I_id_info_t *id_ptr; /*ptr to the ID */ int ret_value; /* Return value */ @@ -1504,16 +1481,8 @@ H5I_get_ref(hid_t id, hbool_t app_ref) /* Sanity check */ HDassert(id >= 0); - /* Check arguments */ - type = H5I_TYPE(id); - if(type <= H5I_BADID || type >= H5I_next_type) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number") - type_ptr = H5I_id_type_list_g[type]; - if(!type_ptr || type_ptr->init_count <= 0) - HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type") - /* General lookup of the ID */ - if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id))) + if(NULL == (id_ptr = H5I__find_id(id))) HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID") /* Set return value */ @@ -2016,20 +1985,20 @@ done: static H5I_id_info_t * H5I__find_id(hid_t id) { - H5I_id_type_t *type_ptr; /*ptr to the type */ H5I_type_t type; /*ID's type */ + H5I_id_type_t *type_ptr; /*ptr to the type */ H5I_id_info_t *ret_value; /*return value */ FUNC_ENTER_STATIC_NOERR /* Check arguments */ type = H5I_TYPE(id); - if (type <= H5I_BADID || type >= H5I_next_type) - HGOTO_DONE(NULL); + if(type <= H5I_BADID || type >= H5I_next_type) + HGOTO_DONE(NULL) type_ptr = H5I_id_type_list_g[type]; - if (!type_ptr || type_ptr->init_count <= 0) - HGOTO_DONE(NULL); + if(!type_ptr || type_ptr->init_count <= 0) + HGOTO_DONE(NULL) /* Locate the ID node for the ID */ ret_value = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id); -- cgit v0.12 From 056ffa6341ab4ea929066ee896a246c064a1d0cd Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Wed, 29 Apr 2015 02:22:43 -0500 Subject: [svn-r26963] HDFFV-9298: make uninstall generated "test: argument expected" lines The error is that $EXAMPLETOPDIR is used without setting a value first. Solution is to set them with the proper values. Tested: jam only to confirm the error no longer exists. --- c++/examples/Makefile.am | 5 +++-- c++/examples/Makefile.in | 5 +++-- fortran/examples/Makefile.am | 1 + fortran/examples/Makefile.in | 1 + hl/c++/examples/Makefile.am | 1 + hl/c++/examples/Makefile.in | 1 + hl/fortran/examples/Makefile.am | 1 + hl/fortran/examples/Makefile.in | 1 + 8 files changed, 12 insertions(+), 4 deletions(-) diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am index 5bb8d59..2408217 100644 --- a/c++/examples/Makefile.am +++ b/c++/examples/Makefile.am @@ -42,8 +42,8 @@ INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \ # Some of the examples depend on files created by running other examples readdata.chkexe_: create.chkexe_ chunks.chkexe_: extend_ds.chkexe_ -h5tutr_rdwt.chkexe_: h5tutrcrtdat.chkexe -h5tutrcrtatt.chkexe_: h5tutrcrtdat.chkexe +h5tutr_rdwt.chkexe_: h5tutr_crtdat.chkexe +h5tutrcrtatt.chkexe_: h5tutr_crtdat.chkexe h5tutr_crtgrpd.chkexe_: h5tutr_crtgrpar.chkexe # Tell conclude.am that these are C++ tests. @@ -52,6 +52,7 @@ CXX_API=yes # Where to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++ +EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples # How to build programs using h5c++ $(EXTRA_PROG): $(H5CPP) diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index c8d6b18..03bd135 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -627,6 +627,7 @@ CXX_API = yes # Where to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++ +EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples # Assume that all tests in this directory are examples, and tell # conclude.am when to build them. @@ -1020,8 +1021,8 @@ help: # Some of the examples depend on files created by running other examples readdata.chkexe_: create.chkexe_ chunks.chkexe_: extend_ds.chkexe_ -h5tutr_rdwt.chkexe_: h5tutrcrtdat.chkexe -h5tutrcrtatt.chkexe_: h5tutrcrtdat.chkexe +h5tutr_rdwt.chkexe_: h5tutr_crtdat.chkexe +h5tutrcrtatt.chkexe_: h5tutr_crtdat.chkexe h5tutr_crtgrpd.chkexe_: h5tutr_crtgrpar.chkexe # How to build programs using h5c++ diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am index feed32c..caaa08c 100644 --- a/fortran/examples/Makefile.am +++ b/fortran/examples/Makefile.am @@ -79,6 +79,7 @@ endif # Tell automake how to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran +EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples # List dependencies for each example. Normally, automake would take # care of this for us, but if we tell automake about the programs it diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index dd2fb46..c894b75 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -639,6 +639,7 @@ FORTRAN_API = yes # Tell automake how to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran +EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples # Assume that all tests in this directory are examples, and tell # conclude.am when to build them. diff --git a/hl/c++/examples/Makefile.am b/hl/c++/examples/Makefile.am index c8f0305..7202a96 100644 --- a/hl/c++/examples/Makefile.am +++ b/hl/c++/examples/Makefile.am @@ -36,6 +36,7 @@ CXX_API=yes # Where to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++ +EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # How to build programs using h5c++ $(EXTRA_PROG): $(H5CPP) diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in index a36886c..5bad31f 100644 --- a/hl/c++/examples/Makefile.in +++ b/hl/c++/examples/Makefile.in @@ -616,6 +616,7 @@ CXX_API = yes # Where to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++ +EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # Assume that all tests in this directory are examples, and tell # conclude.am when to build them. diff --git a/hl/fortran/examples/Makefile.am b/hl/fortran/examples/Makefile.am index 91cb7c5..6a5032b 100644 --- a/hl/fortran/examples/Makefile.am +++ b/hl/fortran/examples/Makefile.am @@ -54,6 +54,7 @@ endif # Tell automake how to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran +EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # List dependencies for each example. Normally, automake would take # care of this for us, but if we tell automake about the programs it diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in index c8878d5..e229f12 100644 --- a/hl/fortran/examples/Makefile.in +++ b/hl/fortran/examples/Makefile.in @@ -623,6 +623,7 @@ FORTRAN_API = yes # Tell automake how to install examples # Note: no '/' after DESTDIR. Explanation in commence.am EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran +EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # Assume that all tests in this directory are examples, and tell # conclude.am when to build them. -- cgit v0.12 From 315c1f9eb00cb5e7e04fd4fa984399df92a7a765 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 30 Apr 2015 09:04:24 -0500 Subject: [svn-r26977] Windows needs different packaging option from linux --- CMakeInstallation.cmake | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 5f1f8e1..74bf85f 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -466,14 +466,22 @@ The HDF5 data model, file format, API, library, and tools are open and distribut if (HDF5_PACKAGE_EXTLIBS) if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/") + if (WIN32) + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;ALL;/") + else (WIN32) + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/") + endif (WIN32) endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) if (SZIP_FOUND AND SZIP_USE_EXTERNAL) - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/") - set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/") + if (WIN32) + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;ALL;/") + else (WIN32) + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/") + set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/") + endif (WIN32) endif (SZIP_FOUND AND SZIP_USE_EXTERNAL) endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") endif (HDF5_PACKAGE_EXTLIBS) -- cgit v0.12 From bfa57861844fec57e445d9b0cbc61f44e0ef1916 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Thu, 30 Apr 2015 14:32:25 -0500 Subject: [svn-r26986] Removed H5F_ACC_DEBUG and H5FD_DEBUG functionality. The H5F_ACC_DEBUG symbol remains but has been defined to zero and has been listed as deprecated. Fixes: HDFFV-1074 Tested on: h5committest 32-bit Linux w/ C++ and Fortran and multi VFD 32-bit Linux w/ C++ and Fortran and multi VFD (no deprec symbols) --- c++/src/H5File.cpp | 31 ++++++++++++++---------------- fortran/src/H5_f.c | 5 +++++ fortran/src/H5f90global.f90 | 3 +++ release_docs/RELEASE.txt | 12 ++++++++++++ src/H5F.c | 10 +++++----- src/H5FDmulti.c | 47 ++------------------------------------------- src/H5Fpublic.h | 6 ++++-- test/links.c | 4 ---- 8 files changed, 45 insertions(+), 73 deletions(-) diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index fc802d0..84e7827 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -73,9 +73,6 @@ H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {} /// exists, and fail, otherwise /// \li \c H5F_ACC_RDWR - Open file for read/write, if it already /// exists, and fail, otherwise -/// \li \c H5F_ACC_DEBUG - print debug information. This flag is -/// used only by HDF5 library developers; it is neither -/// tested nor supported for use in applications. ///\par /// For info on file creation in the case of an already-open file, /// please refer to the \b Special \b case section in the C layer @@ -133,25 +130,25 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro { // These bits only set for creation, so if any of them are set, // create the file. - if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG)) + if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC)) { - hid_t create_plist_id = create_plist.getId(); - hid_t access_plist_id = access_plist.getId(); - id = H5Fcreate( name, flags, create_plist_id, access_plist_id ); - if( id < 0 ) // throw an exception when open/create fail - { - throw FileIException("H5File constructor", "H5Fcreate failed"); - } + hid_t create_plist_id = create_plist.getId(); + hid_t access_plist_id = access_plist.getId(); + id = H5Fcreate( name, flags, create_plist_id, access_plist_id ); + if( id < 0 ) // throw an exception when open/create fail + { + throw FileIException("H5File constructor", "H5Fcreate failed"); + } } // Open the file if none of the bits above are set. else { - hid_t access_plist_id = access_plist.getId(); - id = H5Fopen( name, flags, access_plist_id ); - if( id < 0 ) // throw an exception when open/create fail - { - throw FileIException("H5File constructor", "H5Fopen failed"); - } + hid_t access_plist_id = access_plist.getId(); + id = H5Fopen( name, flags, access_plist_id ); + if( id < 0 ) // throw an exception when open/create fail + { + throw FileIException("H5File constructor", "H5Fopen failed"); + } } } diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index a149109..1641989 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -421,12 +421,17 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, /* * H5F flags + * + * Note that H5F_ACC_DEBUG is deprecated (nonfunctional) but retained + * for backward compatibility since it's in the public API. */ h5f_flags[0] = (int_f)H5F_ACC_RDWR; h5f_flags[1] = (int_f)H5F_ACC_RDONLY; h5f_flags[2] = (int_f)H5F_ACC_TRUNC; h5f_flags[3] = (int_f)H5F_ACC_EXCL; +#ifndef H5_NO_DEPRECATED_SYMBOLS h5f_flags[4] = (int_f)H5F_ACC_DEBUG; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ h5f_flags[5] = (int_f)H5F_SCOPE_LOCAL; h5f_flags[6] = (int_f)H5F_SCOPE_GLOBAL; h5f_flags[7] = (int_f)H5F_CLOSE_DEFAULT; diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90 index ca50e20..0e371f5 100644 --- a/fortran/src/H5f90global.f90 +++ b/fortran/src/H5f90global.f90 @@ -234,6 +234,9 @@ MODULE H5GLOBAL ! ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDED !) ! + ! NOTE: H5F_ACC_DEBUG is deprecated (nonfunctional) but retained for + ! backward compatibility since it's in the public API. + ! ! H5F flags declaration ! INTEGER, PARAMETER :: H5F_FLAGS_LEN = 19 diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index a7ba365..6544486 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -117,6 +117,18 @@ New Features Library: -------- + - H5F_ACC_DEBUG labeled "deprecated" + + The symbol was originally used to emit some extra debugging + informationi in the multi VFD. The underlying functionality + was removed due to disuse in HDF5 1.8.16 though the symbol + remained defined since it was visible in H5Fpublic.h. + + In this release, the symbol has been labeled deprecated and will + not be defined when H5_NO_DEPRECATED_SYMBOLS is defined. + + (DER - 2015-04-30, HDFFV-1074) + - The library can load filter libraries dynamically during runtime. Users can set the search path through environment variable HDF5_PLUGIN_PATH and call H5Pset_filter to enable a dynamic filter. (SLU - 2013/04/08) diff --git a/src/H5F.c b/src/H5F.c index 357897e..672c631 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -484,15 +484,15 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id) /* Check/fix arguments */ if(!filename || !*filename) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name") /* In this routine, we only accept the following flags: - * H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG + * H5F_ACC_EXCL and H5F_ACC_TRUNC */ - if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG)) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags") + if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC)) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags") /* The H5F_ACC_EXCL and H5F_ACC_TRUNC flags are mutually exclusive */ if((flags & H5F_ACC_EXCL) && (flags & H5F_ACC_TRUNC)) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "mutually exclusive flags for file creation") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "mutually exclusive flags for file creation") /* Check file creation property list */ if(H5P_DEFAULT == fcpl_id) diff --git a/src/H5FDmulti.c b/src/H5FDmulti.c index b1f094c..bc61374 100644 --- a/src/H5FDmulti.c +++ b/src/H5FDmulti.c @@ -30,18 +30,11 @@ /* Disable certain warnings in PC-Lint: */ /*lint --emacro( {534, 830}, H5P_DEFAULT, H5P_FILE_ACCESS, H5P_DATASET_XFER) */ -/*lint --emacro( {534, 830}, H5F_ACC_DEBUG, H5F_ACC_RDWR) */ /*lint --emacro( {534, 830}, H5FD_MULTI) */ /*lint -esym( 534, H5Eclear2, H5Epush2) */ #include "hdf5.h" -/* - * Define H5FD_MULTI_DEBUG if you want the ability to print debugging - * messages to the standard error stream. Messages are only printed if the - * file is opened with the H5F_ACC_DEBUG flag. - */ -#define H5FD_MULTI_DEBUG #ifndef FALSE #define FALSE 0 @@ -796,19 +789,6 @@ H5FD_multi_sb_decode(H5FD_t *_file, const char *name, const unsigned char *buf) * files at the end. */ if (map_changed) { -#ifdef H5FD_MULTI_DEBUG - if (file->flags & H5F_ACC_DEBUG) { - fprintf(stderr, "H5FD_MULTI: member map override\n"); - fprintf(stderr, " old value: "); - ALL_MEMBERS(mt) { - fprintf(stderr, "%s%d", mt?", ":"", (int)(file->fa.memb_map[mt])); - } END_MEMBERS; - fprintf(stderr, "\n new value: "); - ALL_MEMBERS(mt) { - fprintf(stderr, "%s%d", mt?", ":"", (int)(map[mt])); - } END_MEMBERS; - } -#endif /* Commit map */ ALL_MEMBERS(mt) { file->fa.memb_map[mt] = map[mt]; @@ -821,11 +801,6 @@ H5FD_multi_sb_decode(H5FD_t *_file, const char *name, const unsigned char *buf) } END_MEMBERS; ALL_MEMBERS(mt) { if (!in_use[mt] && file->memb[mt]) { -#ifdef H5FD_MULTI_DEBUG - if (file->flags & H5F_ACC_DEBUG) { - fprintf(stderr, "H5FD_MULTI: close member %d\n", (int)mt); - } -#endif (void)H5FDclose(file->memb[mt]); file->memb[mt] = NULL; } @@ -1109,20 +1084,10 @@ H5FD_multi_close(H5FD_t *_file) /* Close as many members as possible */ ALL_MEMBERS(mt) { if (file->memb[mt]) { -#ifdef H5FD_MULTI_DEBUG - if (file->flags & H5F_ACC_DEBUG) { - fprintf(stderr, "H5FD_MULTI: closing member %d\n", (int)mt); - } -#endif if (H5FDclose(file->memb[mt])<0) { -#ifdef H5FD_MULTI_DEBUG - if (file->flags & H5F_ACC_DEBUG) { - fprintf(stderr, "H5FD_MULTI: close failed\n"); - } -#endif - nerrors++; + nerrors++; } else { - file->memb[mt] = NULL; + file->memb[mt] = NULL; } } } END_MEMBERS; @@ -1895,18 +1860,10 @@ open_members(H5FD_multi_t *file) */ sprintf(tmp, file->fa.memb_name[mt], file->name); -#ifdef H5FD_MULTI_DEBUG - if(file->flags & H5F_ACC_DEBUG) - fprintf(stderr, "H5FD_MULTI: open member %d \"%s\"\n", (int)mt, tmp); -#endif H5E_BEGIN_TRY { file->memb[mt] = H5FDopen(tmp, file->flags, file->fa.memb_fapl[mt], HADDR_UNDEF); } H5E_END_TRY; if(!file->memb[mt]) { -#ifdef H5FD_MULTI_DEBUG - if(file->flags & H5F_ACC_DEBUG) - fprintf(stderr, "H5FD_MULTI: open failed for member %d\n", (int)mt); -#endif if(!file->fa.relax || (file->flags & H5F_ACC_RDWR)) nerrors++; } diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index f32b3e0..aa6cc2a 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -41,12 +41,14 @@ * We're assuming that these constants are used rather early in the hdf5 * session. * + * Note that H5F_ACC_DEBUG is deprecated (nonfuncational) but retained as a + * symbol for backward compatibility. */ #define H5F_ACC_RDONLY (H5CHECK 0x0000u) /*absence of rdwr => rd-only */ #define H5F_ACC_RDWR (H5CHECK 0x0001u) /*open for read and write */ #define H5F_ACC_TRUNC (H5CHECK 0x0002u) /*overwrite existing files */ #define H5F_ACC_EXCL (H5CHECK 0x0004u) /*fail if file already exists*/ -#define H5F_ACC_DEBUG (H5CHECK 0x0008u) /*print debug info */ +/* NOTE: 0x0008u was H5F_ACC_DEBUG, now deprecated */ #define H5F_ACC_CREAT (H5CHECK 0x0010u) /*create non-existing files */ /* Value passed to H5Pset_elink_acc_flags to cause flags to be taken from the @@ -221,7 +223,7 @@ H5_DLL herr_t H5Fget_mpi_atomicity(hid_t file_id, hbool_t *flag); #ifndef H5_NO_DEPRECATED_SYMBOLS /* Macros */ - +#define H5F_ACC_DEBUG (H5CHECK 0x0000u) /*print debug info (deprecated)*/ /* Typedefs */ diff --git a/test/links.c b/test/links.c index 891b5e4..0846c49 100644 --- a/test/links.c +++ b/test/links.c @@ -4023,10 +4023,6 @@ external_set_elink_acc_flags(hid_t fapl, hbool_t new_format) } H5E_END_TRY; if(ret != FAIL) TEST_ERROR H5E_BEGIN_TRY { - ret = H5Pset_elink_acc_flags(gapl, H5F_ACC_DEBUG); - } H5E_END_TRY; - if(ret != FAIL) TEST_ERROR - H5E_BEGIN_TRY { ret = H5Pset_elink_acc_flags(gapl, H5F_ACC_CREAT); } H5E_END_TRY; if(ret != FAIL) TEST_ERROR -- cgit v0.12 From f77bb92cc1ae7c01349caf5d51f88212c1dabb83 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Fri, 1 May 2015 21:40:29 -0500 Subject: [svn-r26993] Description: Align w/incoming chunk performance changes, including some small performance improvements here, as well as a few minor general code cleanups. Tested on: Mac OSX/64 10.10.3 (amazon) w/serial & parallel (Too minor to require h5committest) --- src/H5Dchunk.c | 51 +++++++++++++--------------------- src/H5Dint.c | 3 +- src/H5Dpkg.h | 2 +- src/H5VM.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++------ src/H5VMprivate.h | 6 ++-- 5 files changed, 100 insertions(+), 45 deletions(-) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 6c7c5d5..033a97c 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -337,9 +337,7 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage") /* Calculate the index of this chunk */ - if(H5VM_chunk_index(dset->shared->ndims, offset, - layout->u.chunk.dim, layout->u.chunk.down_chunks, &chunk_idx) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") + chunk_idx = H5VM_chunk_index(dset->shared->ndims, offset, layout->u.chunk.dim, layout->u.chunk.down_chunks); /* Find out the file address of the chunk (if any) */ if(H5D__chunk_lookup(dset, dxpl_id, offset, chunk_idx, &udata) < 0) @@ -1156,8 +1154,7 @@ H5D__create_chunk_map_single(H5D_chunk_map_t *fm, const H5D_io_info_t chunk_info->coords[fm->f_ndims] = 0; /* Calculate the index of this chunk */ - if(H5VM_chunk_index(fm->f_ndims, chunk_info->coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, &chunk_info->index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + chunk_info->index = H5VM_chunk_index(fm->f_ndims, chunk_info->coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks); /* Copy selection for file's dataspace into chunk dataspace */ if(H5S_select_copy(fm->single_space, fm->file_space, FALSE) < 0) @@ -1215,7 +1212,7 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t hsize_t sel_points; /* Number of elements in file selection */ hsize_t start_coords[H5O_LAYOUT_NDIMS]; /* Starting coordinates of selection */ hsize_t coords[H5O_LAYOUT_NDIMS]; /* Current coordinates of chunk */ - hsize_t end[H5O_LAYOUT_NDIMS]; /* Current coordinates of chunk */ + hsize_t end[H5O_LAYOUT_NDIMS]; /* Final coordinates of chunk */ hsize_t chunk_index; /* Index of chunk */ int curr_dim; /* Current dimension to increment */ unsigned u; /* Local index variable */ @@ -1241,8 +1238,7 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t } /* end for */ /* Calculate the index of this chunk */ - if(H5VM_chunk_index(fm->f_ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, &chunk_index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + chunk_index = H5VM_chunk_index(fm->f_ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks); /* Iterate through each chunk in the dataset */ while(sel_points) { @@ -1358,8 +1354,7 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t } while(coords[curr_dim] > sel_end[curr_dim]); /* Re-calculate the index of this chunk */ - if(H5VM_chunk_index(fm->f_ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, &chunk_index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + chunk_index = H5VM_chunk_index(fm->f_ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks); } /* end if */ } /* end while */ @@ -1501,14 +1496,14 @@ H5D__chunk_file_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, cons H5D_chunk_info_t *chunk_info; /* Chunk information for current chunk */ hsize_t coords_in_chunk[H5O_LAYOUT_NDIMS]; /* Coordinates of element in chunk */ hsize_t chunk_index; /* Chunk index */ + hsize_t scaled[H5S_MAX_RANK]; /* Scaled coordinates for this chunk */ unsigned u; /* Local index variable */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC /* Calculate the index of this chunk */ - if(H5VM_chunk_index(ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, &chunk_index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + chunk_index = H5VM_chunk_index_scaled(ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, scaled); /* Find correct chunk in file & memory skip list */ if(chunk_index==fm->last_index) { @@ -1561,7 +1556,7 @@ H5D__chunk_file_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, cons /* Compute the chunk's coordinates */ for(u = 0; u < fm->f_ndims; u++) { H5_CHECK_OVERFLOW(fm->layout->u.chunk.dim[u], hsize_t, hssize_t); - chunk_info->coords[u] = (coords[u] / (hssize_t)fm->layout->u.chunk.dim[u]) * (hssize_t)fm->layout->u.chunk.dim[u]; + chunk_info->coords[u] = scaled[u] * (hssize_t)fm->layout->u.chunk.dim[u]; } /* end for */ chunk_info->coords[fm->f_ndims] = 0; @@ -1625,8 +1620,7 @@ H5D__chunk_mem_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, const FUNC_ENTER_STATIC /* Calculate the index of this chunk */ - if(H5VM_chunk_index(ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks, &chunk_index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + chunk_index = H5VM_chunk_index(ndims, coords, fm->layout->u.chunk.dim, fm->layout->u.chunk.down_chunks); /* Find correct chunk in file & memory skip list */ if(chunk_index == fm->last_index) { @@ -1968,8 +1962,7 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, /* Get the actual chunk information from the skip list node */ chunk_info = H5D_CHUNK_GET_NODE_INFO(fm, chunk_node); - /* Load the chunk into cache. But if the whole chunk is written, - * simply allocate space instead of load the chunk. */ + /* Look up the chunk */ if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords, chunk_info->index, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") @@ -1977,9 +1970,12 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, HDassert((H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length > 0) || (!H5F_addr_defined(udata.chunk_block.offset) && udata.chunk_block.length == 0)); + /* Determine if we should use the chunk cache */ if((cacheable = H5D__chunk_cacheable(io_info, udata.chunk_block.offset, TRUE)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't tell if chunk is cacheable") if(cacheable) { + /* Load the chunk into cache. But if the whole chunk is written, + * simply allocate space instead of load the chunk. */ hbool_t entire_chunk = TRUE; /* Whether whole chunk is selected */ /* Pass in chunk's coordinates in a union. */ @@ -2409,7 +2405,7 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, ent = dset->shared->cache.chunk.slot[udata->idx_hint]; if(ent) - for(u = 0, found = TRUE; u < dset->shared->layout.u.chunk.ndims - 1; u++) + for(u = 0, found = TRUE; u < dset->shared->ndims; u++) if(chunk_offset[u] != ent->offset[u]) { found = FALSE; break; @@ -3432,12 +3428,8 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, { hsize_t chunk_idx; - /* Calculate the index of this chunk */ - if(H5VM_chunk_index(space_ndims, chunk_offset, - layout->u.chunk.dim, layout->u.chunk.down_chunks, - &chunk_idx) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") - + /* Look up this chunk */ + chunk_idx = H5VM_chunk_index(space_ndims, chunk_offset, layout->u.chunk.dim, layout->u.chunk.down_chunks); if(H5D__chunk_lookup(dset, dxpl_id, chunk_offset, chunk_idx, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "error looking up chunk address") @@ -4170,10 +4162,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) int i; /* Local index variable */ /* Calculate the index of this chunk */ - if(H5VM_chunk_index(space_ndims, chunk_offset, - layout->u.chunk.dim, layout->u.chunk.down_chunks, - &(chk_io_info.store->chunk.index)) < 0) - HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't get chunk index") + chk_io_info.store->chunk.index = H5VM_chunk_index(space_ndims, chunk_offset, layout->u.chunk.dim, layout->u.chunk.down_chunks); if(0 == ndims_outside_fill) { HDassert(fill_dim[op_dim]); @@ -4306,8 +4295,7 @@ H5D__chunk_addrmap_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) FUNC_ENTER_STATIC /* Compute the index for this chunk */ - if(H5VM_chunk_index(rank, chunk_rec->offset, udata->common.layout->dim, udata->common.layout->down_chunks, &chunk_index) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, H5_ITER_ERROR, "can't get chunk index") + chunk_index = H5VM_chunk_index(rank, chunk_rec->offset, udata->common.layout->dim, udata->common.layout->down_chunks); /* Set it in the userdata to return */ udata->chunk_addr[chunk_index] = chunk_rec->chunk_addr; @@ -4497,8 +4485,7 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id) next = ent->next; /* Calculate the index of this chunk */ - if(H5VM_chunk_index(rank, ent->offset, dset->shared->layout.u.chunk.dim, dset->shared->layout.u.chunk.down_chunks, &idx) < 0) - HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") + idx = H5VM_chunk_index(rank, ent->offset, dset->shared->layout.u.chunk.dim, dset->shared->layout.u.chunk.down_chunks); /* Compute the index for the chunk entry */ old_idx = ent->idx; /* Save for later */ diff --git a/src/H5Dint.c b/src/H5Dint.c index c626475..23824e3 100644 --- a/src/H5Dint.c +++ b/src/H5Dint.c @@ -682,7 +682,6 @@ static herr_t H5D__cache_dataspace_info(const H5D_t *dset) { int sndims; /* Signed number of dimensions of dataspace rank */ - unsigned u; /* Local index value */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -2261,7 +2260,7 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id) */ /* Update the index values for the cached chunks for this dataset */ if(H5D_CHUNKED == dset->shared->layout.type) { - /* Update the cached chunk info */ + /* Set the cached chunk info */ if(H5D__chunk_set_info(dset) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to update # of chunks") if(H5D__chunk_update_cache(dset, dxpl_id) < 0) diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 769fec1..53c9780 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -388,7 +388,7 @@ typedef struct H5D_rdcc_t { struct H5D_rdcc_ent_t **slot; /* Chunk slots, each points to a chunk*/ H5SL_t *sel_chunks; /* Skip list containing information for each chunk selected */ H5S_t *single_space; /* Dataspace for single element I/O on chunks */ - H5D_chunk_info_t *single_chunk_info; /* Pointer to single chunk's info */ + H5D_chunk_info_t *single_chunk_info; /* Pointer to single chunk's info */ } H5D_rdcc_t; /* The raw data contiguous data cache */ diff --git a/src/H5VM.c b/src/H5VM.c index 2fa49ba..ffc657d 100644 --- a/src/H5VM.c +++ b/src/H5VM.c @@ -1258,18 +1258,83 @@ done: * The chunk index is placed in the CHUNK_IDX location for return * from this function * - * Return: Non-negative on success/Negative on failure + * Return: Chunk index on success (can't fail) * * Programmer: Quincey Koziol * Monday, April 21, 2003 * *------------------------------------------------------------------------- */ -herr_t +hsize_t H5VM_chunk_index(unsigned ndims, const hsize_t *coord, const uint32_t *chunk, - const hsize_t *down_nchunks, hsize_t *chunk_idx) + const hsize_t *down_nchunks) { hsize_t scaled_coord[H5VM_HYPER_NDIMS]; /* Scaled, coordinates, in terms of chunks */ + hsize_t chunk_idx; /* Chunk index computed */ + + FUNC_ENTER_NOAPI_NOINIT_NOERR + + /* Sanity check */ + HDassert(ndims <= H5VM_HYPER_NDIMS); + HDassert(coord); + HDassert(chunk); + HDassert(down_nchunks); + + /* Defer to H5VM_chunk_index_scaled */ + chunk_idx = H5VM_chunk_index_scaled(ndims, coord, chunk, down_nchunks, scaled_coord); + + FUNC_LEAVE_NOAPI(chunk_idx) +} /* end H5VM_chunk_index() */ + + +/*------------------------------------------------------------------------- + * Function: H5VM_chunk_index_scaled + * + * Purpose: Given a coordinate offset (COORD), the size of each chunk + * (CHUNK), the number of chunks in each dimension (NCHUNKS) + * and the number of dimensions of all of these (NDIMS), calculate + * a "chunk index" for the chunk that the coordinate offset is + * located in. + * + * The chunk index starts at 0 and increases according to the + * fastest changing dimension, then the next fastest, etc. + * + * For example, with a 3x5 chunk size and 6 chunks in the fastest + * changing dimension and 3 chunks in the slowest changing + * dimension, the chunk indices are as follows: + * + * +-----+-----+-----+-----+-----+-----+ + * | | | | | | | + * | 0 | 1 | 2 | 3 | 4 | 5 | + * | | | | | | | + * +-----+-----+-----+-----+-----+-----+ + * | | | | | | | + * | 6 | 7 | 8 | 9 | 10 | 11 | + * | | | | | | | + * +-----+-----+-----+-----+-----+-----+ + * | | | | | | | + * | 12 | 13 | 14 | 15 | 16 | 17 | + * | | | | | | | + * +-----+-----+-----+-----+-----+-----+ + * + * The chunk index is placed in the CHUNK_IDX location for return + * from this function + * + * Note: This routine is identical to H5VM_chunk_index(), except for + * caching the scaled information. Make changes in both places. + * + * Return: Chunk index on success (can't fail) + * + * Programmer: Vailin Choi + * Monday, February 9, 2015 + * + *------------------------------------------------------------------------- + */ +hsize_t +H5VM_chunk_index_scaled(unsigned ndims, const hsize_t *coord, const uint32_t *chunk, + const hsize_t *down_nchunks, hsize_t *scaled) +{ + hsize_t chunk_idx; /* Computed chunk index */ unsigned u; /* Local index variable */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -1278,17 +1343,19 @@ H5VM_chunk_index(unsigned ndims, const hsize_t *coord, const uint32_t *chunk, HDassert(ndims <= H5VM_HYPER_NDIMS); HDassert(coord); HDassert(chunk); - HDassert(chunk_idx); + HDassert(down_nchunks); + HDassert(scaled); /* Compute the scaled coordinates for actual coordinates */ + /* (Note that the 'scaled' array is an 'OUT' parameter) */ for(u = 0; u < ndims; u++) - scaled_coord[u] = coord[u] / chunk[u]; + scaled[u] = coord[u] / chunk[u]; /* Compute the chunk index */ - *chunk_idx = H5VM_array_offset_pre(ndims,down_nchunks,scaled_coord); /*lint !e772 scaled_coord will always be initialized */ + chunk_idx = H5VM_array_offset_pre(ndims, down_nchunks, scaled); /*lint !e772 scaled_coord will always be initialized */ - FUNC_LEAVE_NOAPI(SUCCEED) -} /* end H5VM_chunk_index() */ + FUNC_LEAVE_NOAPI(chunk_idx) +} /* end H5VM_chunk_index_scaled() */ /*------------------------------------------------------------------------- diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h index dbe39ca..8ddb5ee 100644 --- a/src/H5VMprivate.h +++ b/src/H5VMprivate.h @@ -89,8 +89,10 @@ H5_DLL hsize_t H5VM_array_offset(unsigned n, const hsize_t *total_size, const hsize_t *offset); H5_DLL herr_t H5VM_array_calc(hsize_t offset, unsigned n, const hsize_t *total_size, hsize_t *coords); -H5_DLL herr_t H5VM_chunk_index(unsigned ndims, const hsize_t *coord, - const uint32_t *chunk, const hsize_t *down_nchunks, hsize_t *chunk_idx); +H5_DLL hsize_t H5VM_chunk_index(unsigned ndims, const hsize_t *coord, + const uint32_t *chunk, const hsize_t *down_nchunks); +H5_DLL hsize_t H5VM_chunk_index_scaled(unsigned ndims, const hsize_t *coord, + const uint32_t *chunk, const hsize_t *down_nchunks, hsize_t *scaled); H5_DLL ssize_t H5VM_opvv(size_t dst_max_nseq, size_t *dst_curr_seq, size_t dst_len_arr[], hsize_t dst_off_arr[], size_t src_max_nseq, size_t *src_curr_seq, size_t src_len_arr[], -- cgit v0.12 From 5cb629e6dd16673c8872093e30865b566704e578 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Sat, 2 May 2015 01:18:43 -0500 Subject: [svn-r26995] Description: Clean up chunk 'prune by extent' and flush code, and make the rehashing routine 'update cache' hold onto more chunks, instead of evicting them as aggressively. Tested on: MacOSX/64 10.10.3 (amazon) w/serial & parallel (h5committest forthcoming) --- src/H5Dchunk.c | 58 ++++++++++++++++++++++++++++++++-------------------------- src/H5Dpkg.h | 2 +- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 033a97c..29a5f0e 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -2478,7 +2478,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t HDassert(!ent->locked); buf = ent->chunk; - if(ent->dirty && !ent->deleted) { + if(ent->dirty) { H5D_chk_idx_info_t idx_info; /* Chunked index info */ H5D_chunk_ud_t udata; /* pass through B-tree */ hbool_t must_alloc = FALSE; /* Whether the chunk must be allocated */ @@ -2658,8 +2658,12 @@ H5D__chunk_cache_evict(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t rdcc->tail = ent->prev; ent->prev = ent->next = NULL; + /* Only clear hash table slot if chunk was not marked as deleted already */ + if(!ent->deleted) + rdcc->slot[ent->idx] = NULL; + /* Remove from cache */ - rdcc->slot[ent->idx] = NULL; + HDassert(rdcc->slot[ent->idx] != ent); ent->idx = UINT_MAX; rdcc->nbytes_used -= dset->shared->layout.u.chunk.size; --rdcc->nused; @@ -4120,19 +4124,6 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) fill_dim[op_dim] = FALSE; } /* end for */ - /* Check the cache for any entries that are outside the bounds. Mark these - * entries as deleted so they are not flushed to disk accidentally. This is - * only necessary if there are chunks that need to be filled. */ - if(has_fill) - for(ent = rdcc->head; ent; ent = ent->next) - /* Check for chunk offset outside of new dimensions */ - for(u = 0; u < space_ndims; u++) - if((hsize_t)ent->offset[u] >= space_dim[u]) { - /* Mark the entry as "deleted" */ - ent->deleted = TRUE; - break; - } /* end if */ - /* Main loop: fill or remove chunks */ for(op_dim = 0; op_dim < (unsigned)space_ndims; op_dim++) { /* Check if modification along this dimension is really necessary */ @@ -4452,7 +4443,6 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id) { H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); /*raw data chunk cache */ H5D_rdcc_ent_t *ent, *next; /*cache entry */ - H5D_rdcc_ent_t *old_ent; /* Old cache entry */ H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ unsigned rank; /* Current # of dimensions */ @@ -4492,28 +4482,44 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id) ent->idx = H5D_CHUNK_HASH(dset->shared, idx); if(old_idx != ent->idx) { + H5D_rdcc_ent_t *old_ent; /* Old cache entry */ + /* Check if there is already a chunk at this chunk's new location */ old_ent = rdcc->slot[ent->idx]; if(old_ent != NULL) { - HDassert(old_ent->locked == 0); - - /* Check if we are removing the entry we would walk to next */ - if(old_ent == next) - next = old_ent->next; + HDassert(old_ent->locked == FALSE); + HDassert(old_ent->deleted == FALSE); - /* Remove the old entry from the cache */ - if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, old_ent, TRUE) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush one or more raw data chunks") + /* Mark the old entry as deleted, but do not evict (yet). + * Make sure we do not make any calls to the index + * until all chunks have updated indices! */ + old_ent->deleted = TRUE; } /* end if */ /* Insert this chunk into correct location in hash table */ rdcc->slot[ent->idx] = ent; - /* Null out previous location */ - rdcc->slot[old_idx] = NULL; + /* If this chunk was previously marked as deleted and therefore + * not in the hash table, reset the deleted flag. + * Otherwise clear the old hash table slot. */ + if(ent->deleted) + ent->deleted = FALSE; + else + rdcc->slot[old_idx] = NULL; } /* end if */ } /* end for */ + /* Evict chunks that are still marked as deleted */ + for(ent = rdcc->head; ent; ent = next) { + /* Get the pointer to the next cache entry */ + next = ent->next; + + /* Remove the old entry from the cache */ + if(ent->deleted) + if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, ent, TRUE) < 0) + HGOTO_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush one or more raw data chunks") + } /* end for */ + done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__chunk_update_cache() */ diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 53c9780..94f19e4 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -496,7 +496,7 @@ typedef struct { typedef struct H5D_rdcc_ent_t { hbool_t locked; /*entry is locked in cache */ hbool_t dirty; /*needs to be written to disk? */ - hbool_t deleted; /*chunk about to be deleted (do not flush) */ + hbool_t deleted; /*chunk about to be deleted */ hsize_t offset[H5O_LAYOUT_NDIMS]; /*chunk name */ uint32_t rd_count; /*bytes remaining to be read */ uint32_t wr_count; /*bytes remaining to be written */ -- cgit v0.12 From 64466cf83313b2eda4ce3dc1ef7ac87249b2f29b Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Sat, 2 May 2015 01:31:28 -0500 Subject: [svn-r26996] Description: Eliminate unneccessary 'rdcc' field from common chunk info struct. Tested on: MacOSX/64 10.10.3 (amazon) w/serial & parallel (Too minor to require h5commitest) --- src/H5Dchunk.c | 9 +-------- src/H5Dpkg.h | 3 --- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 29a5f0e..b0d935c 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -1845,7 +1845,7 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, void *chunk = NULL; /* Pointer to locked chunk buffer */ htri_t cacheable; /* Whether the chunk is cacheable */ - /* Load the chunk into cache and lock it. */ + /* Determine if we should use the chunk cache */ if((cacheable = H5D__chunk_cacheable(io_info, udata.chunk_block.offset, FALSE)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't tell if chunk is cacheable") if(cacheable) { @@ -2392,7 +2392,6 @@ H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, udata->common.layout = &(dset->shared->layout.u.chunk); udata->common.storage = &(dset->shared->layout.storage.u.chunk); udata->common.offset = chunk_offset; - udata->common.rdcc = &(dset->shared->cache.chunk); /* Reset information about the chunk we are looking for */ udata->chunk_block.offset = HADDR_UNDEF; @@ -2488,7 +2487,6 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t udata.common.layout = &dset->shared->layout.u.chunk; udata.common.storage = &dset->shared->layout.storage.u.chunk; udata.common.offset = ent->offset; - udata.common.rdcc = &(dset->shared->cache.chunk); udata.chunk_block.offset = ent->chunk_block.offset; udata.chunk_block.length = dset->shared->layout.u.chunk.size; udata.filter_mask = 0; @@ -3499,7 +3497,6 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, udata.common.layout = &layout->u.chunk; udata.common.storage = &layout->storage.u.chunk; udata.common.offset = chunk_offset; - udata.common.rdcc = NULL; udata.chunk_block.offset = HADDR_UNDEF; H5_ASSIGN_OVERFLOW(udata.chunk_block.length, chunk_size, size_t, uint32_t); udata.filter_mask = filter_mask; @@ -4070,7 +4067,6 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim) HDmemset(&udata, 0, sizeof udata); udata.common.layout = &layout->u.chunk; udata.common.storage = &layout->storage.u.chunk; - udata.common.rdcc = rdcc; udata.io_info = &chk_io_info; udata.idx_info = &idx_info; udata.space_dim = space_dim; @@ -4327,7 +4323,6 @@ H5D__chunk_addrmap(const H5D_io_info_t *io_info, haddr_t chunk_addr[]) HDmemset(&udata, 0, sizeof(udata)); udata.common.layout = &dset->shared->layout.u.chunk; udata.common.storage = &dset->shared->layout.storage.u.chunk; - udata.common.rdcc = &(dset->shared->cache.chunk); udata.chunk_addr = chunk_addr; /* Compose chunked index info struct */ @@ -4667,7 +4662,6 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) udata_dst.common.layout = udata->idx_info_dst->layout; udata_dst.common.storage = udata->idx_info_dst->storage; udata_dst.common.offset = chunk_rec->offset; - udata_dst.common.rdcc = NULL; udata_dst.chunk_block.offset = HADDR_UNDEF; udata_dst.chunk_block.length = chunk_rec->nbytes; udata_dst.filter_mask = chunk_rec->filter_mask; @@ -4916,7 +4910,6 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, HDmemset(&udata, 0, sizeof udata); udata.common.layout = layout_src; udata.common.storage = storage_src; - udata.common.rdcc = NULL; udata.file_src = f_src; udata.idx_info_dst = &idx_info_dst; udata.buf = buf; diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 94f19e4..12e84b0 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -255,9 +255,6 @@ typedef struct H5D_chunk_common_ud_t { const H5O_layout_chunk_t *layout; /* Chunk layout description */ const H5O_storage_chunk_t *storage; /* Chunk storage description */ const hsize_t *offset; /* Logical offset of chunk */ - const struct H5D_rdcc_t *rdcc; /* Chunk cache. Only necessary if the index may - * be modified, and if any chunks in the dset - * may be cached */ } H5D_chunk_common_ud_t; /* B-tree callback info for various operations */ -- cgit v0.12 From 39e0b31a24a2721d2610c29722c755a012f8f2c1 Mon Sep 17 00:00:00 2001 From: HDF Tester Date: Sun, 3 May 2015 06:06:41 -0500 Subject: [svn-r26997] Snapshot version 1.9 release 217 --- README.txt | 2 +- c++/src/Makefile.in | 2 +- c++/src/cpp_doc_config | 2 +- config/lt_vers.am | 2 +- configure | 22 +++---- configure.ac | 2 +- fortran/src/Makefile.in | 2 +- hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/H5LTparse.c | 144 ++++++++++++++++++++++----------------------- hl/src/H5LTparse.h | 4 +- hl/src/Makefile.in | 2 +- release_docs/RELEASE.txt | 2 +- src/H5public.h | 4 +- src/Makefile.in | 2 +- 15 files changed, 98 insertions(+), 98 deletions(-) diff --git a/README.txt b/README.txt index 09ef509..e17dadf 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.217 currently under development +HDF5 version 1.9.218 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 3afedda..0487f69 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -670,7 +670,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 # This is our main target diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config index 7ea93f6..4072c1b 100644 --- a/c++/src/cpp_doc_config +++ b/c++/src/cpp_doc_config @@ -38,7 +38,7 @@ PROJECT_NAME = "HDF5 C++ API" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = HDF5 version 1.9.216 currently under development +PROJECT_NUMBER = HDF5 version 1.9.218 currently under development # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/config/lt_vers.am b/config/lt_vers.am index 3cb67a4..38a6357 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -19,7 +19,7 @@ # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index adabfc3..5c9e63f 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.217. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.218. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.217' -PACKAGE_STRING='HDF5 1.9.217' +PACKAGE_VERSION='1.9.218' +PACKAGE_STRING='HDF5 1.9.218' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1472,7 +1472,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.217 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.218 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1542,7 +1542,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.217:";; + short | recursive ) echo "Configuration of HDF5 1.9.218:";; esac cat <<\_ACEOF @@ -1731,7 +1731,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.217 +HDF5 configure 1.9.218 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2668,7 +2668,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.217, which was +It was created by HDF5 $as_me 1.9.218, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3539,7 +3539,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.217' + VERSION='1.9.218' cat >>confdefs.h <<_ACEOF @@ -28577,7 +28577,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.217 +HDF5 config.lt 1.9.218 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -30693,7 +30693,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.217, which was +This file was extended by HDF5 $as_me 1.9.218, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -30759,7 +30759,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.217 +HDF5 config.status 1.9.218 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 5bcd530..f86d9b3 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.217], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.218], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index f9f4a7b..f57e7e7 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -724,7 +724,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 AM_FCLIBS = $(LIBHDF5) diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 1813a3c..61cb11c 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -662,7 +662,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 # This is our main target diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 1989c5a..7567dfc 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -680,7 +680,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 # Our main target, the high-level fortran library diff --git a/hl/src/H5LTparse.c b/hl/src/H5LTparse.c index 36591d3..6ca95c54 100644 --- a/hl/src/H5LTparse.c +++ b/hl/src/H5LTparse.c @@ -1641,229 +1641,229 @@ yyreduce: switch (yyn) { case 2: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 101 "H5LTparse.y" { memset(arr_stack, 0, STACK_SIZE*sizeof(struct arr_info)); /*initialize here?*/ } break; case 3: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 102 "H5LTparse.y" { return (yyval.hid);} break; case 13: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 116 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I8BE); } break; case 14: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 117 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I8LE); } break; case 15: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 118 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I16BE); } break; case 16: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 119 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I16LE); } break; case 17: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 120 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I32BE); } break; case 18: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 121 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I32LE); } break; case 19: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 122 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I64BE); } break; case 20: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 123 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_I64LE); } break; case 21: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 124 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U8BE); } break; case 22: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 125 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U8LE); } break; case 23: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 126 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U16BE); } break; case 24: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 127 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U16LE); } break; case 25: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 128 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U32BE); } break; case 26: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 129 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U32LE); } break; case 27: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 130 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U64BE); } break; case 28: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 131 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_STD_U64LE); } break; case 29: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 132 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_CHAR); } break; case 30: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 133 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_SCHAR); } break; case 31: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 134 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_UCHAR); } break; case 32: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 135 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_SHORT); } break; case 33: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 136 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_USHORT); } break; case 34: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 137 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_INT); } break; case 35: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 138 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_UINT); } break; case 36: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 139 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LONG); } break; case 37: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 140 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULONG); } break; case 38: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 141 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LLONG); } break; case 39: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 142 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULLONG); } break; case 40: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 145 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F32BE); } break; case 41: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 146 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F32LE); } break; case 42: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 147 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F64BE); } break; case 43: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 148 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_IEEE_F64LE); } break; case 44: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 149 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_FLOAT); } break; case 45: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 150 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_DOUBLE); } break; case 46: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 151 "H5LTparse.y" { (yyval.hid) = H5Tcopy(H5T_NATIVE_LDOUBLE); } break; case 47: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 155 "H5LTparse.y" { csindex++; cmpd_stack[csindex].id = H5Tcreate(H5T_COMPOUND, 1); /*temporarily set size to 1*/ } break; case 48: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 157 "H5LTparse.y" { (yyval.hid) = cmpd_stack[csindex].id; cmpd_stack[csindex].id = 0; @@ -1873,13 +1873,13 @@ yyreduce: break; case 51: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 166 "H5LTparse.y" { cmpd_stack[csindex].is_field = 1; /*notify lexer a compound member is parsed*/ } break; case 52: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 168 "H5LTparse.y" { size_t origin_size, new_size; @@ -1915,7 +1915,7 @@ yyreduce: break; case 53: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 201 "H5LTparse.y" { (yyval.sval) = yylval.sval; @@ -1923,25 +1923,25 @@ yyreduce: break; case 54: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 206 "H5LTparse.y" { (yyval.ival) = 0; } break; case 55: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 208 "H5LTparse.y" { (yyval.ival) = yylval.ival; } break; case 57: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 212 "H5LTparse.y" { asindex++; /*pushd onto the stack*/ } break; case 58: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 214 "H5LTparse.y" { (yyval.hid) = H5Tarray_create2((yyvsp[(5) - (6)].hid), arr_stack[asindex].ndims, arr_stack[asindex].dims); @@ -1952,13 +1952,13 @@ yyreduce: break; case 61: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 224 "H5LTparse.y" { arr_stack[asindex].is_dim = 1; /*notice lexer of dimension size*/ } break; case 62: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 225 "H5LTparse.y" { unsigned ndims = arr_stack[asindex].ndims; arr_stack[asindex].dims[ndims] = (hsize_t)yylval.ival; @@ -1968,19 +1968,19 @@ yyreduce: break; case 65: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 236 "H5LTparse.y" { (yyval.hid) = H5Tvlen_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); } break; case 66: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 241 "H5LTparse.y" { is_opq_size = 1; } break; case 67: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 242 "H5LTparse.y" { size_t size = (size_t)yylval.ival; @@ -1990,13 +1990,13 @@ yyreduce: break; case 68: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 247 "H5LTparse.y" { is_opq_tag = 1; } break; case 69: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 248 "H5LTparse.y" { H5Tset_tag((yyvsp[(7) - (13)].hid), yylval.sval); @@ -2005,19 +2005,19 @@ yyreduce: break; case 70: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 252 "H5LTparse.y" { (yyval.hid) = (yyvsp[(7) - (15)].hid); } break; case 73: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 260 "H5LTparse.y" { is_str_size = 1; } break; case 74: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 261 "H5LTparse.y" { if((yyvsp[(5) - (6)].ival) == H5T_VARIABLE_TOKEN) @@ -2029,7 +2029,7 @@ yyreduce: break; case 75: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 269 "H5LTparse.y" { if((yyvsp[(9) - (10)].ival) == H5T_STR_NULLTERM_TOKEN) @@ -2042,7 +2042,7 @@ yyreduce: break; case 76: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 278 "H5LTparse.y" { if((yyvsp[(13) - (14)].ival) == H5T_CSET_ASCII_TOKEN) @@ -2053,7 +2053,7 @@ yyreduce: break; case 77: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 285 "H5LTparse.y" { if((yyvsp[(17) - (18)].hid) == H5T_C_S1_TOKEN) @@ -2064,7 +2064,7 @@ yyreduce: break; case 78: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 292 "H5LTparse.y" { hid_t str_id = (yyvsp[(19) - (20)].hid); @@ -2085,67 +2085,67 @@ yyreduce: break; case 79: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 309 "H5LTparse.y" {(yyval.ival) = H5T_VARIABLE_TOKEN;} break; case 81: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 312 "H5LTparse.y" {(yyval.ival) = H5T_STR_NULLTERM_TOKEN;} break; case 82: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 313 "H5LTparse.y" {(yyval.ival) = H5T_STR_NULLPAD_TOKEN;} break; case 83: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 314 "H5LTparse.y" {(yyval.ival) = H5T_STR_SPACEPAD_TOKEN;} break; case 84: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 316 "H5LTparse.y" {(yyval.ival) = H5T_CSET_ASCII_TOKEN;} break; case 85: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 317 "H5LTparse.y" {(yyval.ival) = H5T_CSET_UTF8_TOKEN;} break; case 86: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 319 "H5LTparse.y" {(yyval.hid) = H5T_C_S1_TOKEN;} break; case 87: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 320 "H5LTparse.y" {(yyval.hid) = H5T_FORTRAN_S1_TOKEN;} break; case 88: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 324 "H5LTparse.y" { is_enum = 1; enum_id = H5Tenum_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); } break; case 89: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 326 "H5LTparse.y" { is_enum = 0; /*reset*/ (yyval.hid) = enum_id; } break; case 92: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 331 "H5LTparse.y" { is_enum_memb = 1; /*indicate member of enum*/ @@ -2158,7 +2158,7 @@ yyreduce: break; case 93: -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 340 "H5LTparse.y" { char char_val=(char)yylval.ival; @@ -2205,7 +2205,7 @@ yyreduce: break; -/* Line 1792 of yacc.c */ +/* Line 1807 of yacc.c */ #line 2191 "H5LTparse.c" default: break; } diff --git a/hl/src/H5LTparse.h b/hl/src/H5LTparse.h index 1461830..621dacd 100644 --- a/hl/src/H5LTparse.h +++ b/hl/src/H5LTparse.h @@ -109,7 +109,7 @@ extern int H5LTyydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2058 of yacc.c */ +/* Line 2065 of yacc.c */ #line 68 "H5LTparse.y" int ival; /*for integer token*/ @@ -117,7 +117,7 @@ typedef union YYSTYPE hid_t hid; /*for hid_t token*/ -/* Line 2058 of yacc.c */ +/* Line 2065 of yacc.c */ #line 122 "H5LTparse.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 9b2dcb9..6a719e7 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -661,7 +661,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 6544486..d53ce79 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.217 currently under development +HDF5 version 1.9.218 currently under development ================================================================================ diff --git a/src/H5public.h b/src/H5public.h index c0f2e1a..7b9625b 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -94,10 +94,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 217 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 218 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.217" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.218" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index 8ccc510..0767628 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -723,7 +723,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 207 +LT_VERS_REVISION = 208 LT_VERS_AGE = 0 # Our main target, the HDF5 library -- cgit v0.12 From 6e10ade5ee8d7781e6e91572c8345b0a03612aba Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 4 May 2015 08:59:12 -0500 Subject: [svn-r27000] Updated and debugged script --- config/cmake/scripts/HDF518config.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake index 70423a3..9766b1c 100755 --- a/config/cmake/scripts/HDF518config.cmake +++ b/config/cmake/scripts/HDF518config.cmake @@ -5,7 +5,7 @@ ######################################################################### cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) -set(CTEST_SOURCE_VERSION 1.8.15) +set(CTEST_SOURCE_VERSION 1.8.15-pre7) set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) set(CTEST_BINARY_NAME "build") set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") -- cgit v0.12 From 98bf03bf1d97413b4b2bb5548fbd228b6bf10c99 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 4 May 2015 10:14:37 -0500 Subject: [svn-r27003] Update documentation to match the web instructions --- release_docs/INSTALL_CMake.txt | 99 +++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 41 deletions(-) diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index cb5bae5..7f67eb2 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -26,7 +26,7 @@ Obtaining HDF5 source code 2. Obtain compressed (*.tar or *.zip) HDF5 source from http://www.hdfgroup.org/ftp/HDF5/current/src/ and put it in "myhdfstuff". - Uncompress the file. + Uncompress the file. There should be a hdf5-1.8."X" folder. CMake version 1. We suggest you obtain the latest CMake from the Kitware web site. @@ -38,14 +38,19 @@ CMake version II. Quick Step Building HDF5 Libraries with CMake Script Mode ======================================================================== This short set of instructions is written for users who want to quickly -build the HDF5 C, C++, Fortran, and High-level shared libraries and tools -from the HDF5 source code package using the CMake tools. This procedure -will use the default settings in the config/cmake/cacheinit.cmake file. +build the HDF5 C and C++ static libraries and tools with SZIP and ZLIB +compression included. This procedure will use the default settings in +the config/cmake/cacheinit.cmake file. HDF Group recommends using the ctest script mode to build HDF5. The following files referenced below are available at the HDF web site: http://www.hdfgroup.org/HDF5/release/cmakebuild.html +Single compressed file with all the files needed, including source: + hdf5-1.8.15-CMake.zip or hdf5-1.8.15-CMake.tar.gz + +Individual files +----------------------------------------------- CMake build script: CTestScript.cmake @@ -55,6 +60,7 @@ External compression szip and zlib libraries: Platform configuration files: HDF518config.cmake +----------------------------------------------- To build HDF5 with the SZIP and ZLIB external libraries you will need to: @@ -66,9 +72,9 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: 3. Download the CTestScript.cmake file to "myhdfstuff". CTestScript.cmake file should not be modified. - 4. Download the platform configuration file to "myhdfstuff". - Do not modify the file unless you want to change default build - environment. + 4. Download the platform configuration file, HDF518config.cmake, + to "myhdfstuff". Do not modify the file unless you want to change + default build environment. (See http://www.hdfgroup.org/HDF5/release/chgcmkbuild.html) 5. From the "myhdfstuff" directory execute the CTest Script with the following options: @@ -78,22 +84,28 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: On 64-bit Windows with Visual Studio 2012, execute: ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log On 32-bit Windows with Visual Studio 2013, execute: - ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf5.log + ctest -S HDF518config.cmake,32-VS2013 -C Release -VV -O hdf5.log On 64-bit Windows with Visual Studio 2013, execute: - ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log + ctest -S HDF518config.cmake,64-VS2013 -C Release -VV -O hdf5.log On Linux and Mac, execute: ctest -S HDF518config.cmake -C Release -VV -O hdf5.log The command above will configure, build, test, and create an install - package in the myhdfstuff/hdf5-1.8/build folder. + package in the myhdfstuff folder. It will have the format: + HDF5-1.8.NN-. + On Unix, will be "Linux". A similar .sh file will also be created. + On Windows, will be "win64" or "win32". If you have an + installer on your system, you will also see a similar file that ends + in either .exe (NSIS) or .msi (WiX). + The -S option uses the script version of ctest. The value for the -C option (as shown above, "-C Release") must match the setting for CTEST_BUILD_CONFIGURATION in the platform configuration file. - The -VV option is for verbose; use -V for less verbose. + The -VV option is for most verbose; use -V for less verbose. The "-O hdf5.log" option saves the output to a log file hdf5.log. @@ -114,7 +126,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: On Linux, change to the install destination directory (create it if doesn't exist) and execute: - /myhdfstuff/hdf5-1.8/build/HDF5-1.8."X"-Linux.sh + /myhdfstuff/HDF5-1.8."X"-Linux.sh After accepting the license, the script will prompt: By default the HDF5 will be installed in: "/HDF5-1.8."X"-Linux" @@ -130,7 +142,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: ------lib ------share - On Mac you will find HDF5-1.8."X"-Darwin.dmg in the build folder. Click + On Mac you will find HDF5-1.8."X"-Darwin.dmg in the myhdfstuff folder. Click on the dmg file to proceed with installation. After accepting the license, there will be a folder with the following structure: HDF_Group @@ -142,7 +154,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to: ------share By default the installation will create the bin, include, lib and cmake - folders in the /HDF_Group/HDF5/1.8. + folders in the /HDF_Group/HDF5/1.8."X" ======================================================================== @@ -165,10 +177,10 @@ Notes: This short set of instructions is written for users who want to 5. Configure the C library, tools and tests with one of the following commands: On Windows 32 bit - cmake -G "Visual Studio 11" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X" + cmake -G "Visual Studio 11 2012" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X" On Windows 64 bit - cmake -G "Visual Studio 11 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X" + cmake -G "Visual Studio 11 2012 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X" On Linux and Mac cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.8."X" @@ -273,7 +285,7 @@ IV. Further considerations CTEST_USE_LAUNCHERS:BOOL=ON CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF - 4. Windows developers should install NSIS to create an install image with CPack. + 4. Windows developers should install NSIS or WiX to create an install image with CPack. Visual Studio Express users will not be able to package HDF5 into an install image executable. @@ -281,7 +293,7 @@ IV. Further considerations the settings for the developers' environment. Then the only options needed on the command line are those options that are different. Example using HDF default cache file: - cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11" \ + cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \ -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \ -DCMAKE_BUILD_TYPE:STRING=Release .. @@ -360,12 +372,12 @@ These five steps are described in detail below. * MinGW Makefiles * NMake Makefiles * Unix Makefiles - * Visual Studio 12 - * Visual Studio 12 Win64 - * Visual Studio 11 - * Visual Studio 11 Win64 - * Visual Studio 10 - * Visual Studio 10 Win64 + * Visual Studio 12 2013 + * Visual Studio 12 2013 Win64 + * Visual Studio 11 2012 + * Visual Studio 11 2012 Win64 + * Visual Studio 10 2010 + * Visual Studio 10 2010 Win64 is: * SZIP_INCLUDE_DIR:PATH= @@ -432,7 +444,7 @@ These five steps are described in detail below. 2.2 Preferred command line example on Windows in c:\MyHDFstuff\hdf5\build directory: - cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11" \ + cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \ -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \ -DCMAKE_BUILD_TYPE:STRING=Release .. @@ -635,7 +647,7 @@ adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script. ######################################################################### cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) -set(CTEST_SOURCE_VERSION 1.8.X) +set(CTEST_SOURCE_VERSION 1.8.15-pre7) set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) set(CTEST_BINARY_NAME "build") set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") @@ -742,10 +754,6 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON") ### disable Fortran; change OFF to ON in order to build FORTRAN libraries set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF") -if(APPLE) - ### allow shared builds without fortran on MAC - set(NO_MAC_FORTRAN "TRUE") -endif() ### disable test program builds #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF") @@ -774,21 +782,30 @@ if(WIN32) else() include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) if(APPLE) - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) endif() else() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) - endif() - if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") - file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + if(CYGWIN) + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + else() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() + if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz") + file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION ${CTEST_SCRIPT_DIRECTORY}) + endif() endif() endif() endif() -- cgit v0.12 From 6ba4fd8694451ca6a0917130b59e86a2e3fa6b38 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Mon, 4 May 2015 15:02:23 -0500 Subject: [svn-r27009] Fix mismatching prototypes in H5FD/H5B2 --- src/H5B2pkg.h | 6 +++--- src/H5FD.c | 4 ++-- src/H5FDprivate.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/H5B2pkg.h b/src/H5B2pkg.h index 7a538bd..3ea9534 100644 --- a/src/H5B2pkg.h +++ b/src/H5B2pkg.h @@ -337,7 +337,7 @@ H5_DLL herr_t H5B2_neighbor_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, /* Routines for removing records */ H5_DLL herr_t H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, - H5AC_info_t *parent_cache_info, hbool_t * parent_cache_info_dirtied_ptr, + H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, H5B2_nodepos_t curr_pos, H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, @@ -345,8 +345,8 @@ H5_DLL herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, void *udata, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, - H5AC_info_t *parent_cache_info, hbool_t * parent_cache_info_dirtied_ptr, - H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t idx, + H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, + H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n, H5B2_remove_t op, void *op_data); H5_DLL herr_t H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, diff --git a/src/H5FD.c b/src/H5FD.c index fc6937e..77b7a5b 100644 --- a/src/H5FD.c +++ b/src/H5FD.c @@ -1840,7 +1840,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5FDtruncate(H5FD_t *file, hid_t dxpl_id, unsigned closing) +H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing) { herr_t ret_value = SUCCEED; /* Return value */ @@ -1879,7 +1879,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5FD_truncate(H5FD_t *file, hid_t dxpl_id, unsigned closing) +H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing) { herr_t ret_value = SUCCEED; /* Return value */ diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h index e98f0f4..20e9a79 100644 --- a/src/H5FDprivate.h +++ b/src/H5FDprivate.h @@ -134,7 +134,7 @@ H5_DLL herr_t H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t typ haddr_t addr, size_t size, void *buf/*out*/); H5_DLL herr_t H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf); -H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, hbool_t closing); +H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, unsigned closing); H5_DLL herr_t H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing); H5_DLL herr_t H5FD_get_fileno(const H5FD_t *file, unsigned long *filenum); H5_DLL herr_t H5FD_get_vfd_handle(H5FD_t *file, hid_t fapl, void** file_handle); -- cgit v0.12 From 24ef4efe9a673b18369b1552f81534eb33d0c45a Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Tue, 5 May 2015 11:10:20 -0500 Subject: [svn-r27015] updated with release changes --- config/cmake/scripts/HDF518config.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake index 9766b1c..70423a3 100755 --- a/config/cmake/scripts/HDF518config.cmake +++ b/config/cmake/scripts/HDF518config.cmake @@ -5,7 +5,7 @@ ######################################################################### cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) -set(CTEST_SOURCE_VERSION 1.8.15-pre7) +set(CTEST_SOURCE_VERSION 1.8.15) set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION}) set(CTEST_BINARY_NAME "build") set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") -- cgit v0.12 From 5c8ecdd14a37ad6b1165e53088e9f4a7da2755c0 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Wed, 6 May 2015 18:22:48 -0500 Subject: [svn-r27029] Fix bad comment in H5detect, this was preventing PGCC from compiling correctly. Tested on: bluewaters --- src/H5detect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/H5detect.c b/src/H5detect.c index fc0570c..9947b48 100644 --- a/src/H5detect.c +++ b/src/H5detect.c @@ -73,7 +73,7 @@ static const char *FileHeader = "\n\ #define H5JMP_BUF sigjmp_buf #define H5SETJMP(buf) HDsigsetjmp(buf, 1) #define H5LONGJMP(buf, val) HDsiglongjmp(buf, val) -#define H5HAVE_SIGJMP # sigsetjmp/siglongjmp are supported. +#define H5HAVE_SIGJMP /* sigsetjmp/siglongjmp are supported. */ #elif defined(H5_HAVE_LONGJMP) #define H5JMP_BUF jmp_buf #define H5SETJMP(buf) HDsetjmp(buf) -- cgit v0.12 From 8f82c9b8be875cd28e18402e920f8e162d8f8d38 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Wed, 6 May 2015 18:44:50 -0500 Subject: [svn-r27031] Fix warnings in H5detect and clean up code, use unsigned variables Use H5_GCC_DIAG_ON/OFF to suppress larger-than and float-equal warnings Variables used with sigsetjmp/siglongjmp must be declared as volatile Remove unnecessary use of volatile after r24171 fix and fix prototypes Tested in release mode on: - jam (CentOS 5.11 i386 GCC 4.1.2) - ostrich (RHEL 6.6 ppc64 GCC 4.4.7) - local linux (OpenSuSE 13.2 x86_64 GCC 4.8.3) - local linux (Fedora 21 x86_64 GCC 4.9.2) - local linux (Fedora 21 x86_64 ICC 15.0.2) - local windows (Windows 8.1 x86_64 MSVC 2013 update 4) - lemur (MacOSX 10.10.3 x86_64 clang-602.0.49 Xcode 6.3.1) - ibm p95a07 (Ubuntu 14.10 ppc64le GCC 4.9.1) - ibm p95a07 (Ubuntu 14.10 ppc64le IBM XL C V13.1.1) - bluewaters (Cray PE 2.2.1 x86_64 GCC 4.8.2) - bluewaters (Cray PE 2.2.1 x86_64 Cray C 8.3.3) - bluewaters (Cray PE 2.2.1 x86_64 PGCC 14.2) --- src/H5detect.c | 301 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 152 insertions(+), 149 deletions(-) diff --git a/src/H5detect.c b/src/H5detect.c index 9947b48..15736bd 100644 --- a/src/H5detect.c +++ b/src/H5detect.c @@ -90,41 +90,41 @@ static const char *FileHeader = "\n\ * was detected. */ typedef struct detected_t { - const char *varname; - int size; /*total byte size */ - int precision; /*meaningful bits */ - int offset; /*bit offset to meaningful bits */ - int perm[32]; /*for detection of byte order */ - int is_vax; /*for vax (float & double) only */ - int sign; /*location of sign bit */ - int mpos, msize, imp;/*information about mantissa */ - int epos, esize; /*information about exponent */ - unsigned long bias; /*exponent bias for floating pt.*/ - size_t align; /*required byte alignment */ - size_t comp_align; /*alignment for structure */ + const char *varname; + unsigned int size; /* total byte size */ + unsigned int precision; /* meaningful bits */ + unsigned int offset; /* bit offset to meaningful bits */ + int perm[32]; /* for detection of byte order */ + hbool_t is_vax; /* for vax (float & double) only */ + unsigned int sign; /* location of sign bit */ + unsigned int mpos, msize, imp; /* information about mantissa */ + unsigned int epos, esize; /* information about exponent */ + unsigned long bias; /* exponent bias for floating pt */ + unsigned int align; /* required byte alignment */ + unsigned int comp_align; /* alignment for structure */ } detected_t; /* This structure holds structure alignment for pointers, hvl_t, hobj_ref_t, * hdset_reg_ref_t */ typedef struct malign_t { const char *name; - size_t comp_align; /*alignment for structure */ + unsigned int comp_align; /* alignment for structure */ } malign_t; /* global variables types detection code */ -static detected_t d_g[MAXDETECT]; -static malign_t m_g[MAXDETECT]; -static volatile int nd_g = 0, na_g = 0; +H5_GCC_DIAG_OFF(larger-than=) +static detected_t d_g[MAXDETECT]; +H5_GCC_DIAG_ON(larger-than=) +static malign_t m_g[MAXDETECT]; +static volatile int nd_g = 0, na_g = 0; static void print_results(int nd, detected_t *d, int na, malign_t *m); static void iprint(detected_t *); static int byte_cmp(int, const void *, const void *, const unsigned char *); -static int bit_cmp(int, int *, volatile void *, volatile void *, - const unsigned char *); +static unsigned int bit_cmp(unsigned int, int *, void *, void *, const unsigned char *); static void fix_order(int, int, int *, const char **); -static int imp_bit(int, int *, volatile void *, volatile void *, - const unsigned char *); -static unsigned long find_bias(int, int, int *, volatile void *); +static unsigned int imp_bit(unsigned int, int *, void *, void *, const unsigned char *); +static unsigned int find_bias(unsigned int, unsigned int, int *, void *); static void precision (detected_t*); static void print_header(void); static void detect_C89_integers(void); @@ -136,7 +136,7 @@ static void detect_C99_integers16(void); static void detect_C99_integers32(void); static void detect_C99_integers64(void); static void detect_alignments(void); -static size_t align_g[] = {1, 2, 4, 8, 16}; +static unsigned int align_g[] = {1, 2, 4, 8, 16}; static int align_status_g = 0; /* ALIGNMENT Signal Status */ static int sigbus_handler_called_g = 0; /* how many times called */ static int sigsegv_handler_called_g = 0;/* how many times called */ @@ -167,39 +167,41 @@ static H5JMP_BUF jbuf_g; static void precision (detected_t *d) { - int n; + unsigned int n; - if (0==d->msize) { - /* - * An integer. The permutation can have negative values at the - * beginning or end which represent padding of bytes. We must adjust - * the precision and offset accordingly. - */ - if (d->perm[0] < 0) { - /* - * Lower addresses are padded. - */ - for (n=0; nsize && d->perm[n]<0; n++) /*void*/; - d->precision = 8*(d->size-n); - d->offset = 0; - } else if (d->perm[d->size - 1] < 0) { - /* - * Higher addresses are padded. - */ - for (n=0; nsize && d->perm[d->size-(n+1)]; n++) /*void*/; - d->precision = 8*(d->size-n); - d->offset = 8*n; - } else { - /* - * No padding. - */ - d->precision = 8*d->size; - d->offset = 0; - } + if (0 == d->msize) { + /* + * An integer. The permutation can have negative values at the + * beginning or end which represent padding of bytes. We must adjust + * the precision and offset accordingly. + */ + if (d->perm[0] < 0) { + /* + * Lower addresses are padded. + */ + for (n = 0; n < d->size && d->perm[n] < 0; n++) + /*void*/; + d->precision = 8 * (d->size - n); + d->offset = 0; + } else if (d->perm[d->size - 1] < 0) { + /* + * Higher addresses are padded. + */ + for (n = 0; n < d->size && d->perm[d->size - (n + 1)]; n++) + /*void*/; + d->precision = 8 * (d->size - n); + d->offset = 8 * n; + } else { + /* + * No padding. + */ + d->precision = 8 * d->size; + d->offset = 0; + } } else { - /* A floating point */ - d->offset = MIN3 (d->mpos, d->epos, d->sign); - d->precision = d->msize + d->esize + 1; + /* A floating point */ + d->offset = MIN3(d->mpos, d->epos, d->sign); + d->precision = d->msize + d->esize + 1; } } @@ -251,7 +253,8 @@ precision (detected_t *d) INFO.size = sizeof(TYPE); \ \ for(_i = sizeof(DETECT_TYPE), _v = 0; _i > 0; --_i) \ - _v = (_v << 8) + _i; \ + _v = (DETECT_TYPE) ((DETECT_TYPE) (_v << 8) + (DETECT_TYPE) _i); \ + \ for(_i = 0, _x = (unsigned char *)&_v; _i < (signed)sizeof(DETECT_TYPE); _i++) { \ _j = (*_x++) - 1; \ HDassert(_j < (signed)sizeof(DETECT_TYPE)); \ @@ -290,9 +293,6 @@ precision (detected_t *d) * absence of implicit mantissa bit, and exponent bias and * initializes a detected_t structure with those properties. * - * Note: 'volatile' is used for the variables below to prevent the - * compiler from optimizing them away. - * * Return: void * * Programmer: Robb Matzke @@ -302,12 +302,12 @@ precision (detected_t *d) *------------------------------------------------------------------------- */ #define DETECT_F(TYPE,VAR,INFO) { \ - volatile TYPE _v1, _v2, _v3; \ + TYPE _v1, _v2, _v3; \ unsigned char _buf1[sizeof(TYPE)], _buf3[sizeof(TYPE)]; \ unsigned char _pad_mask[sizeof(TYPE)]; \ unsigned char _byte_mask; \ int _i, _j, _last = (-1); \ - char *_mesg; \ + const char *_mesg; \ \ HDmemset(&INFO, 0, sizeof(INFO)); \ INFO.varname = #VAR; \ @@ -326,11 +326,13 @@ precision (detected_t *d) _v1 = (TYPE)4.0L; \ HDmemcpy(_buf1, (const void *)&_v1, sizeof(TYPE)); \ for(_i = 0; _i < (int)sizeof(TYPE); _i++) \ - for(_byte_mask = (unsigned char)1; _byte_mask; _byte_mask <<= 1) { \ + for(_byte_mask = (unsigned char)1; _byte_mask; _byte_mask = (unsigned char) (_byte_mask << 1)) { \ _buf1[_i] ^= _byte_mask; \ HDmemcpy((void *)&_v2, (const void *)_buf1, sizeof(TYPE)); \ + H5_GCC_DIAG_OFF(float-equal) \ if(_v1 != _v2) \ _pad_mask[_i] |= _byte_mask; \ + H5_GCC_DIAG_ON(float-equal) \ _buf1[_i] ^= _byte_mask; \ } /* end for */ \ \ @@ -368,7 +370,7 @@ precision (detected_t *d) _v1 = (TYPE)1.0L; \ _v2 = (TYPE)1.5L; \ INFO.msize = bit_cmp (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask); \ - INFO.msize += 1 + (INFO.imp?0:1) - INFO.mpos; \ + INFO.msize += 1 + (unsigned int) (INFO.imp ? 0 : 1) - INFO.mpos; \ \ /* Exponent */ \ INFO.epos = INFO.mpos + INFO.msize; \ @@ -415,14 +417,13 @@ precision (detected_t *d) TYPE x; \ } s; \ \ - COMP_ALIGN = (size_t)((char*)(&(s.x)) - (char*)(&s)); \ + COMP_ALIGN = (unsigned int)((char*)(&(s.x)) - (char*)(&s)); \ } #if defined(H5SETJMP) && defined(H5_HAVE_SIGNAL) #define ALIGNMENT(TYPE,INFO) { \ - char *volatile _buf = NULL; \ - volatile TYPE _val = 1; \ - volatile TYPE _val2; \ + char *volatile _buf = NULL; \ + TYPE _val = 1, _val2; \ volatile size_t _ano = 0; \ void (*_handler)(int) = HDsignal(SIGBUS, sigbus_handler); \ void (*_handler2)(int) = HDsignal(SIGSEGV, sigsegv_handler);\ @@ -445,8 +446,10 @@ precision (detected_t *d) else /* Little-Endian */ \ HDmemcpy(_buf+align_g[_ano]+(INFO.offset/8),((char *)&_val)+(INFO.offset/8),(size_t)(INFO.precision/8)); \ _val2 = *((TYPE*)(_buf+align_g[_ano])); \ + H5_GCC_DIAG_OFF(float-equal) \ if(_val!=_val2) \ H5LONGJMP(jbuf_g, 1); \ + H5_GCC_DIAG_ON(float-equal) \ /* End Cray Check */ \ (INFO.align)=align_g[_ano]; \ } else { \ @@ -881,63 +884,69 @@ done:\n\ static void iprint(detected_t *d) { - int i, j, k, pass; + unsigned int pass; - for (pass=(d->size-1)/4; pass>=0; --pass) { - /* - * Print the byte ordering above the bit fields. - */ - printf(" * "); - for (i=MIN(pass*4+3,d->size-1); i>=pass*4; --i) { - printf ("%4d", d->perm[i]); - if (i>pass*4) HDfputs (" ", stdout); - } + for (pass = (d->size - 1) / 4; ; --pass) { + unsigned int i, k; + /* + * Print the byte ordering above the bit fields. + */ + printf(" * "); + for (i = MIN(pass * 4 + 3, d->size - 1); i >= pass * 4; --i) { + printf("%4d", d->perm[i]); + if (i > pass * 4) HDfputs(" ", stdout); + if (!i) break; + } - /* - * Print the bit fields - */ - printf("\n * "); - for (i=MIN(pass*4+3,d->size-1), - k=MIN(pass*32+31,8*d->size-1); - i>=pass*4; --i) { - for (j=7; j>=0; --j) { - if (k==d->sign && d->msize) { - HDputchar('S'); - } else if (k>=d->epos && kepos+d->esize) { - HDputchar('E'); - } else if (k>=d->mpos && kmpos+d->msize) { - HDputchar('M'); - } else if (d->msize) { - HDputchar('?'); /*unknown floating point bit */ - } else if (d->sign) { - HDputchar('I'); - } else { - HDputchar('U'); - } - --k; - } - if (i>pass*4) HDputchar(' '); - } - HDputchar('\n'); + /* + * Print the bit fields + */ + printf("\n * "); + for (i = MIN(pass * 4 + 3, d->size - 1), k = MIN(pass * 32 + 31, + 8 * d->size - 1); i >= pass * 4; --i) { + unsigned int j; + + for (j = 8; j > 0; --j) { + if (k == d->sign && d->msize) { + HDputchar('S'); + } else if (k >= d->epos && k < d->epos + d->esize) { + HDputchar('E'); + } else if (k >= d->mpos && k < d->mpos + d->msize) { + HDputchar('M'); + } else if (d->msize) { + HDputchar('?'); /*unknown floating point bit */ + } else if (d->sign) { + HDputchar('I'); + } else { + HDputchar('U'); + } + --k; + } + if (i > pass * 4) HDputchar(' '); + if (!i) break; + } + HDputchar('\n'); + if (!pass) break; } /* * Is there an implicit bit in the mantissa. */ if (d->msize) { - printf(" * Implicit bit? %s\n", d->imp ? "yes" : "no"); + printf(" * Implicit bit? %s\n", d->imp ? "yes" : "no"); } /* * Alignment */ - if (0==d->align) { - printf(" * Alignment: NOT CALCULATED\n"); - } else if (1==d->align) { - printf(" * Alignment: none\n"); + if (0 == d->align) { + printf(" * Alignment: NOT CALCULATED\n"); + } else if (1 == d->align) { + printf(" * Alignment: none\n"); } else { - printf(" * Alignment: %lu\n", (unsigned long)(d->align)); + printf(" * Alignment: %lu\n", (unsigned long) (d->align)); } + } @@ -985,31 +994,25 @@ byte_cmp(int n, const void *_a, const void *_b, const unsigned char *pad_mask) * actual order to little endian. Ignores differences where * the corresponding bit in pad_mask is set to 0. * - * Return: Success: Index of first differing bit. - * - * Failure: -1 - * - * Programmer: Robb Matzke - * matzke@llnl.gov - * Jun 13, 1996 - * - * Modifications: + * Return: Index of first differing bit. * *------------------------------------------------------------------------- */ -static int -bit_cmp(int nbytes, int *perm, volatile void *_a, volatile void *_b, - const unsigned char *pad_mask) +static unsigned int +bit_cmp(unsigned int nbytes, int *perm, void *_a, void *_b, + const unsigned char *pad_mask) { - int i, j; - volatile unsigned char *a = (volatile unsigned char *) _a; - volatile unsigned char *b = (volatile unsigned char *) _b; - unsigned char aa, bb; + unsigned int i; + unsigned char *a = (unsigned char *) _a; + unsigned char *b = (unsigned char *) _b; + unsigned char aa, bb; for (i = 0; i < nbytes; i++) { - HDassert(perm[i] < nbytes); - if ((aa = a[perm[i]] & pad_mask[perm[i]]) - != (bb = b[perm[i]] & pad_mask[perm[i]])) { + HDassert(perm[i] < (int) nbytes); + if ((aa = (unsigned char) (a[perm[i]] & pad_mask[perm[i]])) + != (bb = (unsigned char) (b[perm[i]] & pad_mask[perm[i]]))) { + unsigned int j; + for (j = 0; j < 8; j++, aa >>= 1, bb >>= 1) { if ((aa & 1) != (bb & 1)) return i * 8 + j; } @@ -1017,7 +1020,9 @@ bit_cmp(int nbytes, int *perm, volatile void *_a, volatile void *_b, HDabort(); } } - return -1; + fprintf(stderr, "INTERNAL ERROR"); + HDabort(); + return 0; } @@ -1123,21 +1128,19 @@ fix_order(int n, int last, int *perm, const char **mesg) * *------------------------------------------------------------------------- */ -static int -imp_bit(int n, int *perm, volatile void *_a, volatile void *_b, - const unsigned char *pad_mask) +static unsigned int +imp_bit(unsigned int n, int *perm, void *_a, void *_b, const unsigned char *pad_mask) { - volatile unsigned char *a = (volatile unsigned char *) _a; - volatile unsigned char *b = (volatile unsigned char *) _b; - int changed, major, minor; - int msmb; /*most significant mantissa bit */ + unsigned char *a = (unsigned char *) _a; + unsigned char *b = (unsigned char *) _b; + unsigned int changed, major, minor; + unsigned int msmb; /* most significant mantissa bit */ /* * Look for the least significant bit that has changed between * A and B. This is the least significant bit of the exponent. */ changed = bit_cmp(n, perm, a, b, pad_mask); - HDassert(changed >= 0); /* * The bit to the right (less significant) of the changed bit should @@ -1174,22 +1177,22 @@ imp_bit(int n, int *perm, volatile void *_a, volatile void *_b, * *------------------------------------------------------------------------- */ -static unsigned long -find_bias(int epos, int esize, int *perm, volatile void *_a) +static unsigned int +find_bias(unsigned int epos, unsigned int esize, int *perm, void *_a) { - unsigned char *a = (unsigned char *) _a; - unsigned char mask; - unsigned long b, shift = 0, nbits, bias = 0; + unsigned char *a = (unsigned char *) _a; + unsigned char mask; + unsigned int b, shift = 0, nbits, bias = 0; while (esize > 0) { - nbits = MIN(esize, (8 - epos % 8)); - mask = (1 << nbits) - 1; - b = (a[perm[epos / 8]] >> (epos % 8)) & mask; - bias |= b << shift; - - shift += nbits; - esize -= nbits; - epos += nbits; + nbits = MIN(esize, (8 - epos % 8)); + mask = (unsigned char) ((1 << nbits) - 1); + b = (unsigned int) (a[perm[epos / 8]] >> (epos % 8)) & mask; + bias |= b << shift; + + shift += nbits; + esize -= nbits; + epos += nbits; } return bias; } @@ -1667,7 +1670,7 @@ detect_alignments(void) static int verify_signal_handlers(int signum, void (*handler)(int)) { void (*save_handler)(int) = HDsignal(signum, handler); - int i, val; + volatile int i, val; int ntries=5; volatile int nfailures=0; volatile int nsuccesses=0; -- cgit v0.12 From 9dc86e2cde33766cf7eea5d0b92e032f283a6a13 Mon Sep 17 00:00:00 2001 From: Jerome Soumagne Date: Thu, 7 May 2015 13:23:09 -0500 Subject: [svn-r27035] Do not pass warnings options to non-gnu compilers when compiling with CMake --- CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cacc5d..a3d537c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -472,7 +472,7 @@ endif (HDF5_DISABLE_COMPILER_WARNINGS) # CDash is configured to only allow 3000 warnings, so # break into groups (from the config/gnu-flags file) #----------------------------------------------------------------------------- -if (NOT MSVC) +if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC) if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline") else (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") @@ -535,7 +535,7 @@ if (NOT MSVC) # Append more extra warning flags that only gcc 4.7+ know about set (H5_CFLAGS5 "${H5_CFLAGS5} -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn") -endif (NOT MSVC) +endif (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC) #----------------------------------------------------------------------------- # Option to allow the user to enable all warnings @@ -548,7 +548,9 @@ if (HDF5_ENABLE_ALL_WARNINGS) string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall") else (MSVC) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ${H5_CFLAGS1} ${H5_CFLAGS2} ${H5_CFLAGS3} ${H5_CFLAGS4}") + if (CMAKE_COMPILER_IS_GNUCC) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ${H5_CFLAGS1} ${H5_CFLAGS2} ${H5_CFLAGS3} ${H5_CFLAGS4}") + endif (CMAKE_COMPILER_IS_GNUCC) endif (MSVC) endif (HDF5_ENABLE_ALL_WARNINGS) @@ -563,7 +565,9 @@ if (HDF5_ENABLE_GROUPZERO_WARNINGS) string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1") else (MSVC) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic") + if (CMAKE_COMPILER_IS_GNUCC) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic") + endif (CMAKE_COMPILER_IS_GNUCC) endif (MSVC) endif (HDF5_ENABLE_GROUPZERO_WARNINGS) -- cgit v0.12 From 674e9f842cea8ab59339dc8cccf040872fe6ece2 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Thu, 7 May 2015 14:46:53 -0500 Subject: [svn-r27037] Added other platforms comment to cmd line and quoted use of directory in option. --- config/cmake/scripts/HDF518config.cmake | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake index 70423a3..f0aceea 100755 --- a/config/cmake/scripts/HDF518config.cmake +++ b/config/cmake/scripts/HDF518config.cmake @@ -1,8 +1,11 @@ -######################################################################### -### For Windows ${CTEST_SCRIPT_ARG} is one of ### -### [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012] ### -### ctest -S HDF518config.cmake,32-VS2012 -C Release -V -O hdf518.log ### -######################################################################### +########################################################################## +### For Windows ${CTEST_SCRIPT_ARG} is one of ### +### [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012] ### +### ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf518.log ### +### ### +### Other platforms do not use ${CTEST_SCRIPT_ARG} ### +### ctest -S HDF518config.cmake -C Release -VV -O hdf518.log ### +########################################################################## cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) set(CTEST_SOURCE_VERSION 1.8.15) @@ -90,14 +93,14 @@ set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8") #### Change default configuration of options in config/cmake/cacheinit.cmake file ### #### format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ") -### uncomment/comment and change the following lines for configuration options +### uncomment/comment or change the following lines for configuration options ### comment the following line or change OFF to ON in order to build shared libraries set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") #### ext libraries #### ### ext libs from tgz -set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}") +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=\"${CTEST_SCRIPT_DIRECTORY}\"") ### ext libs from svn #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=SVN") ### ext libs on system -- cgit v0.12 From 83d37604d35c55971aa03c4acb59826e9a4a3abe Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Fri, 8 May 2015 00:10:26 -0500 Subject: [svn-r27040] Moved '*' in H5PLget_loading_state() so that bin/trace would correctly process it and ran bin/trace. Tested on: h5committest --- src/H5FD.c | 2 +- src/H5PL.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/H5FD.c b/src/H5FD.c index 77b7a5b..0e4d840 100644 --- a/src/H5FD.c +++ b/src/H5FD.c @@ -1845,7 +1845,7 @@ H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing) herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE3("e", "*xiIu", file, dxpl_id, closing); + H5TRACE3("e", "*xib", file, dxpl_id, closing); /* Check args */ if(!file || !file->cls) diff --git a/src/H5PL.c b/src/H5PL.c index 619dd84..f4cd3e7 100644 --- a/src/H5PL.c +++ b/src/H5PL.c @@ -237,10 +237,11 @@ done: *------------------------------------------------------------------------- */ herr_t -H5PLget_loading_state(unsigned int* plugin_type) +H5PLget_loading_state(unsigned int *plugin_type) { herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) + H5TRACE1("e", "*Iu", plugin_type); if(plugin_type) *plugin_type = H5PL_plugin_g; -- cgit v0.12 From 67ba6cb57d84dd34c69930d469ae445697b49731 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Sun, 10 May 2015 17:38:04 -0500 Subject: [svn-r27045] Renamed H5_ASSIGN_OVERFLOW() to H5_CHECKED_ASSIGN() and re-ordered the arguments to be in a more logical order. Tested on: h5committest --- src/H5Adense.c | 2 +- src/H5Aint.c | 14 +++++++++----- src/H5B2hdr.c | 8 ++++---- src/H5B2int.c | 14 +++++++------- src/H5Dbtree.c | 6 +++--- src/H5Dchunk.c | 42 +++++++++++++++++++++--------------------- src/H5Dcompact.c | 2 +- src/H5Dcontig.c | 30 +++++++++++++++++++++--------- src/H5Defl.c | 2 +- src/H5Dio.c | 4 ++-- src/H5Dmpio.c | 8 ++++---- src/H5FAdblock.c | 2 +- src/H5FDcore.c | 4 ++-- src/H5FDdirect.c | 2 +- src/H5FDfamily.c | 4 ++-- src/H5FDlog.c | 2 +- src/H5FDsec2.c | 2 +- src/H5FScache.c | 4 ++-- src/H5Faccum.c | 14 +++++++------- src/H5Fsuper.c | 2 +- src/H5Fsuper_cache.c | 6 +++--- src/H5Gdeprec.c | 2 +- src/H5Glink.c | 2 +- src/H5HFdbg.c | 6 +++--- src/H5HFdblock.c | 4 ++-- src/H5HFdtable.c | 4 ++-- src/H5HFhdr.c | 2 +- src/H5HFhuge.c | 6 +++--- src/H5HLcache.c | 4 +++- src/H5I.c | 6 +++--- src/H5MF.c | 2 +- src/H5O.c | 4 ++-- src/H5Oattr.c | 2 +- src/H5Ocache.c | 2 +- src/H5Ofill.c | 2 +- src/H5Omessage.c | 4 ++-- src/H5Pencdec.c | 4 ++-- src/H5Pgcpl.c | 2 +- src/H5S.c | 2 +- src/H5Shyper.c | 20 ++++++++++---------- src/H5Smpio.c | 6 +++--- src/H5Sselect.c | 4 ++-- src/H5Tarray.c | 2 +- src/H5Tconv.c | 18 +++++++++--------- src/H5Tfloat.c | 2 +- src/H5Tnative.c | 6 +++--- src/H5Zdeflate.c | 6 +++--- src/H5Znbit.c | 2 +- src/H5Zscaleoffset.c | 2 +- src/H5Zszip.c | 12 ++++++------ src/H5private.h | 7 +++++-- 51 files changed, 171 insertions(+), 150 deletions(-) diff --git a/src/H5Adense.c b/src/H5Adense.c index 0b73a20..e0499f5 100644 --- a/src/H5Adense.c +++ b/src/H5Adense.c @@ -538,7 +538,7 @@ H5A_dense_insert(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5A_t *attr) udata.common.shared_fheap = shared_fheap; udata.common.name = attr->shared->name; udata.common.name_hash = H5_checksum_lookup3(attr->shared->name, HDstrlen(attr->shared->name), 0); - H5_ASSIGN_OVERFLOW(udata.common.flags, mesg_flags, unsigned, uint8_t); + H5_CHECKED_ASSIGN(udata.common.flags, uint8_t, mesg_flags, unsigned); udata.common.corder = attr->shared->crt_idx; udata.common.found_op = NULL; udata.common.found_op_data = NULL; diff --git a/src/H5Aint.c b/src/H5Aint.c index e28c2cc..bfc8eaf 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -255,7 +255,7 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type, /* Get # of elements for attribute's dataspace */ if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, NULL, "dataspace is invalid") - H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t); + H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t); HDassert(attr->shared->dt_size > 0); HDassert(attr->shared->ds_size > 0); @@ -508,7 +508,7 @@ H5A_write(H5A_t *attr, const H5T_t *mem_type, const void *buf, hid_t dxpl_id) /* Get # of elements for attribute's dataspace */ if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid") - H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t); + H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t); /* If there's actually data elements for the attribute, make a copy of the data passed in */ if(nelmts > 0) { @@ -621,7 +621,7 @@ H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_t dxpl_id) /* Create buffer for data to store on disk */ if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid") - H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t); + H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t); if(nelmts > 0) { /* Get the memory and file datatype sizes */ @@ -1680,7 +1680,7 @@ H5A_attr_iterate_table(const H5A_attr_table_t *atable, hsize_t skip, *last_attr = skip; /* Iterate over attribute messages */ - H5_ASSIGN_OVERFLOW(/* To: */ u, /* From: */ skip, /* From: */ hsize_t, /* To: */ size_t) + H5_CHECKED_ASSIGN(u, size_t, skip, hsize_t) for(; u < atable->nattrs && !ret_value; u++) { /* Check which type of callback to make */ switch(attr_op->op_type) { @@ -2012,7 +2012,11 @@ H5A_attr_copy_file(const H5A_t *attr_src, H5F_t *file_dst, hbool_t *recompute_si *recompute_size = TRUE; /* Compute the size of the data */ - H5_ASSIGN_OVERFLOW(attr_dst->shared->data_size, H5S_GET_EXTENT_NPOINTS(attr_dst->shared->ds) * H5T_get_size(attr_dst->shared->dt), hssize_t, size_t); + /* NOTE: This raises warnings. If we are going to be serious about + * expecting overflow here, we should implement testing similar to + * that described in CERT bulletins INT30-C and INT32-C. + */ + H5_CHECKED_ASSIGN(attr_dst->shared->data_size, size_t, H5S_GET_EXTENT_NPOINTS(attr_dst->shared->ds) * H5T_get_size(attr_dst->shared->dt), hssize_t); /* Copy (& convert) the data, if necessary */ if(attr_src->shared->data) { diff --git a/src/H5B2hdr.c b/src/H5B2hdr.c index 452a35d..d28c263 100644 --- a/src/H5B2hdr.c +++ b/src/H5B2hdr.c @@ -160,7 +160,7 @@ HDmemset(hdr->page, 0, hdr->node_size); /* Initialize leaf node info */ sz_max_nrec = H5B2_NUM_LEAF_REC(hdr->node_size, hdr->rrec_size); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[0].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned) + H5_CHECKED_ASSIGN(hdr->node_info[0].max_nrec, unsigned, sz_max_nrec, size_t) hdr->node_info[0].split_nrec = (hdr->node_info[0].max_nrec * hdr->split_percent) / 100; hdr->node_info[0].merge_nrec = (hdr->node_info[0].max_nrec * hdr->merge_percent) / 100; hdr->node_info[0].cum_max_nrec = hdr->node_info[0].max_nrec; @@ -182,14 +182,14 @@ HDmemset(hdr->page, 0, hdr->node_size); /* Compute size to store # of records in each node */ /* (uses leaf # of records because its the largest) */ u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[0].max_nrec); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t) + H5_CHECKED_ASSIGN(hdr->max_nrec_size, uint8_t, u_max_nrec_size, unsigned) HDassert(hdr->max_nrec_size <= H5B2_SIZEOF_RECORDS_PER_NODE); /* Initialize internal node info */ if(depth > 0) { for(u = 1; u < (unsigned)(depth + 1); u++) { sz_max_nrec = H5B2_NUM_INT_REC(hdr, u); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[u].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned) + H5_CHECKED_ASSIGN(hdr->node_info[u].max_nrec, unsigned, sz_max_nrec, size_t) HDassert(hdr->node_info[u].max_nrec <= hdr->node_info[u - 1].max_nrec); hdr->node_info[u].split_nrec = (hdr->node_info[u].max_nrec * hdr->split_percent) / 100; @@ -198,7 +198,7 @@ HDmemset(hdr->page, 0, hdr->node_size); hdr->node_info[u].cum_max_nrec = ((hdr->node_info[u].max_nrec + 1) * hdr->node_info[u - 1].cum_max_nrec) + hdr->node_info[u].max_nrec; u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[u].cum_max_nrec); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[u].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t) + H5_CHECKED_ASSIGN(hdr->node_info[u].cum_max_nrec_size, uint8_t, u_max_nrec_size, unsigned) if(NULL == (hdr->node_info[u].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[u].max_nrec))) HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory") diff --git a/src/H5B2int.c b/src/H5B2int.c index ef83e93..310aef1 100644 --- a/src/H5B2int.c +++ b/src/H5B2int.c @@ -382,13 +382,13 @@ H5B2_split_root(H5B2_hdr_t *hdr, hid_t dxpl_id) /* Update node info for new depth of tree */ sz_max_nrec = H5B2_NUM_INT_REC(hdr, hdr->depth); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[hdr->depth].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned) + H5_CHECKED_ASSIGN(hdr->node_info[hdr->depth].max_nrec, unsigned, sz_max_nrec, size_t) hdr->node_info[hdr->depth].split_nrec = (hdr->node_info[hdr->depth].max_nrec * hdr->split_percent) / 100; hdr->node_info[hdr->depth].merge_nrec = (hdr->node_info[hdr->depth].max_nrec * hdr->merge_percent) / 100; hdr->node_info[hdr->depth].cum_max_nrec = ((hdr->node_info[hdr->depth].max_nrec + 1) * hdr->node_info[hdr->depth - 1].cum_max_nrec) + hdr->node_info[hdr->depth].max_nrec; u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[hdr->depth].cum_max_nrec); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[hdr->depth].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t) + H5_CHECKED_ASSIGN(hdr->node_info[hdr->depth].cum_max_nrec_size, uint8_t, u_max_nrec_size, unsigned) if(NULL == (hdr->node_info[hdr->depth].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[hdr->depth].max_nrec))) HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't create node native key block factory") if(NULL == (hdr->node_info[hdr->depth].node_ptr_fac = H5FL_fac_init(sizeof(H5B2_node_ptr_t) * (hdr->node_info[hdr->depth].max_nrec + 1)))) @@ -546,7 +546,7 @@ H5B2_redistribute2(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, /* Count the number of records being moved */ for(u = 0; u < move_nrec; u++) moved_nrec += right_node_ptrs[u].all_nrec; - H5_ASSIGN_OVERFLOW(/* To: */ left_moved_nrec, /* From: */ moved_nrec, /* From: */ hsize_t, /* To: */ hssize_t) + H5_CHECKED_ASSIGN(left_moved_nrec, hssize_t, moved_nrec, hsize_t) right_moved_nrec -= (hssize_t)moved_nrec; /* Copy node pointers from right node to left */ @@ -600,7 +600,7 @@ H5B2_redistribute2(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, for(u = 0; u < move_nrec; u++) moved_nrec += right_node_ptrs[u].all_nrec; left_moved_nrec -= (hssize_t)moved_nrec; - H5_ASSIGN_OVERFLOW(/* To: */ right_moved_nrec, /* From: */ moved_nrec, /* From: */ hsize_t, /* To: */ hssize_t) + H5_CHECKED_ASSIGN(right_moved_nrec, hssize_t, moved_nrec, hsize_t) } /* end if */ /* Update number of records in child nodes */ @@ -1848,7 +1848,7 @@ H5B2_protect_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec, /* Set up user data for callback */ udata.f = hdr->f; udata.hdr = hdr; - H5_ASSIGN_OVERFLOW(/* To: */ udata.nrec, /* From: */ nrec, /* From: */ unsigned, /* To: */ uint16_t) + H5_CHECKED_ASSIGN(udata.nrec, uint16_t, nrec, unsigned) /* Protect the leaf node */ if(NULL == (ret_value = (H5B2_leaf_t *)H5AC_protect(hdr->f, dxpl_id, H5AC_BT2_LEAF, addr, &udata, rw))) @@ -1968,8 +1968,8 @@ H5B2_protect_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, /* Set up user data for callback */ udata.f = hdr->f; udata.hdr = hdr; - H5_ASSIGN_OVERFLOW(/* To: */ udata.nrec, /* From: */ nrec, /* From: */ unsigned, /* To: */ uint16_t) - H5_ASSIGN_OVERFLOW(/* To: */ udata.depth, /* From: */ depth, /* From: */ unsigned, /* To: */ uint16_t) + H5_CHECKED_ASSIGN(udata.nrec, uint16_t, nrec, unsigned) + H5_CHECKED_ASSIGN(udata.depth, uint16_t, depth, unsigned) /* Protect the internal node */ if(NULL == (ret_value = (H5B2_internal_t *)H5AC_protect(hdr->f, dxpl_id, H5AC_BT2_INT, addr, &udata, rw))) diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index d05de03..4f6b988 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -284,7 +284,7 @@ H5D__btree_new_node(H5F_t *f, hid_t UNUSED dxpl_id, H5B_ins_t op, * The left key describes the storage of the UDATA chunk being * inserted into the tree. */ - H5_ASSIGN_OVERFLOW(lt_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); + H5_CHECKED_ASSIGN(lt_key->nbytes, uint32_t, udata->chunk_block.length, hsize_t); lt_key->filter_mask = udata->filter_mask; for(u = 0; u < udata->common.layout->ndims; u++) lt_key->offset[u] = udata->common.offset[u]; @@ -548,7 +548,7 @@ H5D__btree_insert(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t addr, void *_lt_key, /* Set node's address (already re-allocated by main chunk routines) */ HDassert(H5F_addr_defined(udata->chunk_block.offset)); *new_node_p = udata->chunk_block.offset; - H5_ASSIGN_OVERFLOW(lt_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); + H5_CHECKED_ASSIGN(lt_key->nbytes, uint32_t, udata->chunk_block.length, hsize_t); lt_key->filter_mask = udata->filter_mask; *lt_key_changed = TRUE; ret_value = H5B_INS_CHANGE; @@ -568,7 +568,7 @@ H5D__btree_insert(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t addr, void *_lt_key, * Split this node, inserting the new new node to the right of the * current node. The MD_KEY is where the split occurs. */ - H5_ASSIGN_OVERFLOW(md_key->nbytes, udata->chunk_block.length, hsize_t, uint32_t); + H5_CHECKED_ASSIGN(md_key->nbytes, uint32_t, udata->chunk_block.length, hsize_t); md_key->filter_mask = udata->filter_mask; for(u = 0; u < udata->common.layout->ndims; u++) { HDassert(0 == udata->common.offset[u] % udata->common.layout->dim[u]); diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index b0d935c..d990804 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -558,7 +558,7 @@ H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "chunk size must be < 4GB") /* Retain computed chunk size */ - H5_ASSIGN_OVERFLOW(dset->shared->layout.u.chunk.size, chunk_size, uint64_t, uint32_t); + H5_CHECKED_ASSIGN(dset->shared->layout.u.chunk.size, uint32_t, chunk_size, uint64_t); /* Reset address and pointer of the array struct for the chunked storage index */ if(H5D_chunk_idx_reset(&dset->shared->layout.storage.u.chunk, TRUE) < 0) @@ -718,7 +718,7 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf if((sm_ndims = H5S_GET_EXTENT_NDIMS(mem_space)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get dimension number") /* Set the number of dimensions for the memory dataspace */ - H5_ASSIGN_OVERFLOW(fm->m_ndims, sm_ndims, int, unsigned); + H5_CHECKED_ASSIGN(fm->m_ndims, unsigned, sm_ndims, int); /* Get rank for file dataspace */ fm->f_ndims = f_ndims = dataset->shared->layout.u.chunk.ndims - 1; @@ -1317,7 +1317,7 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t /* Get number of elements selected in chunk */ if((schunk_points = H5S_GET_SELECT_NPOINTS(tmp_fchunk)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get file selection # of elements") - H5_ASSIGN_OVERFLOW(new_chunk_info->chunk_points, schunk_points, hssize_t, uint32_t); + H5_CHECKED_ASSIGN(new_chunk_info->chunk_points, uint32_t, schunk_points, hssize_t); /* Decrement # of points left in file selection */ sel_points -= (hsize_t)schunk_points; @@ -1793,7 +1793,7 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, ctg_io_info.layout_ops = *H5D_LOPS_CONTIG; /* Initialize temporary contiguous storage info */ - H5_ASSIGN_OVERFLOW(ctg_store.contig.dset_size, io_info->dset->shared->layout.u.chunk.size, uint32_t, hsize_t); + H5_CHECKED_ASSIGN(ctg_store.contig.dset_size, hsize_t, io_info->dset->shared->layout.u.chunk.size, uint32_t); /* Set up compact I/O info object */ HDmemcpy(&cpt_io_info, io_info, sizeof(cpt_io_info)); @@ -1938,7 +1938,7 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, ctg_io_info.layout_ops = *H5D_LOPS_CONTIG; /* Initialize temporary contiguous storage info */ - H5_ASSIGN_OVERFLOW(ctg_store.contig.dset_size, io_info->dset->shared->layout.u.chunk.size, uint32_t, hsize_t); + H5_CHECKED_ASSIGN(ctg_store.contig.dset_size, hsize_t, io_info->dset->shared->layout.u.chunk.size, uint32_t); /* Set up compact I/O info object */ HDmemcpy(&cpt_io_info, io_info, sizeof(cpt_io_info)); @@ -2248,7 +2248,7 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud /* Stored the information to cache */ HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims); last->addr = udata->chunk_block.offset; - H5_ASSIGN_OVERFLOW(last->nbytes, udata->chunk_block.length, hsize_t, uint32_t); + H5_CHECKED_ASSIGN(last->nbytes, uint32_t, udata->chunk_block.length, hsize_t); last->filter_mask = udata->filter_mask; /* Indicate that the cached info is valid */ @@ -2517,7 +2517,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t point_of_no_return = TRUE; ent->chunk = NULL; } /* end else */ - H5_ASSIGN_OVERFLOW(nbytes, udata.chunk_block.length, hsize_t, size_t); + H5_CHECKED_ASSIGN(nbytes, size_t, udata.chunk_block.length, hsize_t); if(H5Z_pipeline(&(dset->shared->dcpl_cache.pline), 0, &(udata.filter_mask), dxpl_cache->err_detect, dxpl_cache->filter_cb, &nbytes, &alloc, &buf) < 0) HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, FAIL, "output pipeline failed") @@ -2526,7 +2526,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t if(nbytes > ((size_t)0xffffffff)) HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "chunk too large for 32-bit length") #endif /* H5_SIZEOF_SIZE_T > 4 */ - H5_ASSIGN_OVERFLOW(udata.chunk_block.length, nbytes, size_t, hsize_t); + H5_CHECKED_ASSIGN(udata.chunk_block.length, hsize_t, nbytes, size_t); /* Indicate that the chunk must be allocated */ must_alloc = TRUE; @@ -2835,7 +2835,7 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, /* Get the chunk's size */ HDassert(layout->u.chunk.size > 0); - H5_ASSIGN_OVERFLOW(chunk_size, layout->u.chunk.size, uint32_t, size_t); + H5_CHECKED_ASSIGN(chunk_size, size_t, layout->u.chunk.size, uint32_t); /* Check if the chunk is in the cache */ if(UINT_MAX != udata->idx_hint) { @@ -3000,8 +3000,8 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, ent->chunk_block.offset = chunk_addr; ent->chunk_block.length = chunk_alloc; HDmemcpy(ent->offset, io_info->store->chunk.offset, sizeof(hsize_t) * layout->u.chunk.ndims); - H5_ASSIGN_OVERFLOW(ent->rd_count, chunk_size, size_t, uint32_t); - H5_ASSIGN_OVERFLOW(ent->wr_count, chunk_size, size_t, uint32_t); + H5_CHECKED_ASSIGN(ent->rd_count, uint32_t, chunk_size, size_t); + H5_CHECKED_ASSIGN(ent->wr_count, uint32_t, chunk_size, size_t); ent->chunk = (uint8_t *)chunk; /* Add it to the cache */ @@ -3321,7 +3321,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache") /* Get original chunk size */ - H5_ASSIGN_OVERFLOW(orig_chunk_size, layout->u.chunk.size, uint32_t, size_t); + H5_CHECKED_ASSIGN(orig_chunk_size, size_t, layout->u.chunk.size, uint32_t); /* Check the dataset's fill-value status */ if(H5P_is_fill_value_defined(fill, &fill_status) < 0) @@ -3498,7 +3498,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, udata.common.storage = &layout->storage.u.chunk; udata.common.offset = chunk_offset; udata.chunk_block.offset = HADDR_UNDEF; - H5_ASSIGN_OVERFLOW(udata.chunk_block.length, chunk_size, size_t, uint32_t); + H5_CHECKED_ASSIGN(udata.chunk_block.length, uint32_t, chunk_size, size_t); udata.filter_mask = filter_mask; /* Allocate the chunk (with all processes) */ @@ -3656,9 +3656,9 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id, leftover_blocks = chunk_info->num_io % mpi_size; /* Cast values to types needed by MPI */ - H5_ASSIGN_OVERFLOW(blocks, num_blocks, size_t, int); - H5_ASSIGN_OVERFLOW(leftover, leftover_blocks, size_t, int); - H5_ASSIGN_OVERFLOW(block_len, chunk_size, size_t, int); + H5_CHECKED_ASSIGN(blocks, int, num_blocks, size_t); + H5_CHECKED_ASSIGN(leftover, int, leftover_blocks, size_t); + H5_CHECKED_ASSIGN(block_len, int, chunk_size, size_t); /* Allocate buffers */ /* (MSC - should not need block_lens if MPI_type_create_hindexed_block is working) */ @@ -3787,7 +3787,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata) /* Get the chunk's size */ HDassert(layout->u.chunk.size > 0); - H5_ASSIGN_OVERFLOW(chunk_size, layout->u.chunk.size, uint32_t, size_t); + H5_CHECKED_ASSIGN(chunk_size, size_t, layout->u.chunk.size, uint32_t); /* Get the info for the chunk in the file */ if(H5D__chunk_lookup(dset, io_info->dxpl_id, chunk_offset, io_info->store->chunk.index, &chk_udata) < 0) @@ -4558,7 +4558,7 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) FUNC_ENTER_STATIC /* Get 'size_t' local value for number of bytes in chunk */ - H5_ASSIGN_OVERFLOW(nbytes, chunk_rec->nbytes, uint32_t, size_t); + H5_CHECKED_ASSIGN(nbytes, size_t, chunk_rec->nbytes, uint32_t); /* Check parameter for type conversion */ if(udata->do_convert) { @@ -4675,7 +4675,7 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata) if(nbytes > ((size_t)0xffffffff)) HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, H5_ITER_ERROR, "chunk too large for 32-bit length") #endif /* H5_SIZEOF_SIZE_T > 4 */ - H5_ASSIGN_OVERFLOW(udata_dst.chunk_block.length, nbytes, size_t, uint32_t); + H5_CHECKED_ASSIGN(udata_dst.chunk_block.length, uint32_t, nbytes, size_t); udata->buf = buf; udata->buf_size = buf_size; } /* end if */ @@ -4777,7 +4777,7 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, /* Get the dim info for dataset */ if((sndims = H5S_extent_get_dims(ds_extent_src, curr_dims, NULL)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions") - H5_ASSIGN_OVERFLOW(ndims, sndims, int, unsigned); + H5_CHECKED_ASSIGN(ndims, unsigned, sndims, int); /* Set the source layout chunk information */ if(H5D__chunk_set_info_real(layout_src, ndims, curr_dims) < 0) @@ -4885,7 +4885,7 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, do_convert = TRUE; } /* end if */ - H5_ASSIGN_OVERFLOW(buf_size, layout_src->size, uint32_t, size_t); + H5_CHECKED_ASSIGN(buf_size, size_t, layout_src->size, uint32_t); reclaim_buf_size = 0; } /* end else */ diff --git a/src/H5Dcompact.c b/src/H5Dcompact.c index 1d8b97c..af70c07 100644 --- a/src/H5Dcompact.c +++ b/src/H5Dcompact.c @@ -197,7 +197,7 @@ H5D__compact_construct(H5F_t *f, H5D_t *dset) tmp_size = H5T_get_size(dset->shared->type); HDassert(tmp_size > 0); tmp_size = tmp_size * (hsize_t)stmp_size; - H5_ASSIGN_OVERFLOW(dset->shared->layout.storage.u.compact.size, tmp_size, hssize_t, size_t); + H5_CHECKED_ASSIGN(dset->shared->layout.storage.u.compact.size, size_t, tmp_size, hssize_t); /* Verify data size is smaller than maximum header message size * (64KB) minus other layout message fields. diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index e913a3f..898b46d 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -259,7 +259,7 @@ H5D__contig_fill(const H5D_t *dset, hid_t dxpl_id) /* Get the number of elements in the dataset's dataspace */ if((snpoints = H5S_GET_EXTENT_NPOINTS(dset->shared->space)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "dataset has negative number of elements") - H5_ASSIGN_OVERFLOW(npoints, snpoints, hssize_t, size_t); + H5_CHECKED_ASSIGN(npoints, size_t, snpoints, hssize_t); /* Initialize the fill value buffer */ if(H5D__fill_init(&fb_info, NULL, NULL, NULL, NULL, NULL, @@ -644,6 +644,7 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, size_t sieve_size = (size_t)-1; /* Size of sieve buffer */ haddr_t rel_eoa; /* Relative end of file address */ hsize_t max_data; /* Actual maximum size of data to cache */ + hsize_t min; /* temporary minimum value (avoids some ugly macro nesting) */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -684,7 +685,8 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, max_data = store_contig->dset_size - dst_off; /* Compute the size of the sieve buffer */ - H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t); + min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); + H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t); /* Read the new sieve buffer */ if(H5F_block_read(file, H5FD_MEM_DRAW, dset_contig->sieve_loc, dset_contig->sieve_size, udata->dxpl_id, dset_contig->sieve_buf) < 0) @@ -757,9 +759,13 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, /* Only need this when resizing sieve buffer */ max_data = store_contig->dset_size - dst_off; - /* Compute the size of the sieve buffer */ - /* Don't read off the end of the file, don't read past the end of the data element and don't read more than the buffer size */ - H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t); + /* Compute the size of the sieve buffer. + * Don't read off the end of the file, don't read past + * the end of the data element, and don't read more than + * the buffer size. + */ + min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); + H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t); /* Update local copies of sieve information */ sieve_start = dset_contig->sieve_loc; @@ -915,6 +921,7 @@ H5D__contig_writevv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len, size_t sieve_size = (size_t)-1; /* size of sieve buffer */ haddr_t rel_eoa; /* Relative end of file address */ hsize_t max_data; /* Actual maximum size of data to cache */ + hsize_t min; /* temporary minimum value (avoids some ugly macro nesting) */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -960,7 +967,8 @@ if(dset_contig->sieve_size > len) max_data = store_contig->dset_size - dst_off; /* Compute the size of the sieve buffer */ - H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t); + min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); + H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t); /* Check if there is any point in reading the data from the file */ if(dset_contig->sieve_size > len) { @@ -1075,9 +1083,13 @@ if(dset_contig->sieve_size > len) /* Only need this when resizing sieve buffer */ max_data = store_contig->dset_size - dst_off; - /* Compute the size of the sieve buffer */ - /* Don't read off the end of the file, don't read past the end of the data element and don't read more than the buffer size */ - H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t); + /* Compute the size of the sieve buffer. + * Don't read off the end of the file, don't read past + * the end of the data element, and don't read more than + * the buffer size. + */ + min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); + H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t); /* Update local copies of sieve information */ sieve_start = dset_contig->sieve_loc; diff --git a/src/H5Defl.c b/src/H5Defl.c index 355492f..6707568 100644 --- a/src/H5Defl.c +++ b/src/H5Defl.c @@ -170,7 +170,7 @@ H5D__efl_construct(H5F_t *f, H5D_t *dset) stmp_size = H5S_GET_EXTENT_NPOINTS(dset->shared->space); HDassert(stmp_size >= 0); tmp_size = (hsize_t)stmp_size * dt_size; - H5_ASSIGN_OVERFLOW(dset->shared->layout.storage.u.contig.size, tmp_size, hssize_t, hsize_t); + H5_CHECKED_ASSIGN(dset->shared->layout.storage.u.contig.size, hsize_t, tmp_size, hssize_t); /* Get the sieve buffer size for this dataset */ dset->shared->cache.contig.sieve_buf_size = H5F_SIEVE_BUF_SIZE(f); diff --git a/src/H5Dio.c b/src/H5Dio.c index 44080dc..f9e8f37 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -409,7 +409,7 @@ H5D__read(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space, mem_space = file_space; if((snelmts = H5S_GET_SELECT_NPOINTS(mem_space)) < 0) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dst dataspace has invalid selection") - H5_ASSIGN_OVERFLOW(nelmts,snelmts,hssize_t,hsize_t); + H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t); /* Fill the DXPL cache values for later use */ if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0) @@ -679,7 +679,7 @@ H5D__write(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space, if((snelmts = H5S_GET_SELECT_NPOINTS(mem_space)) < 0) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "src dataspace has invalid selection") - H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, hsize_t); + H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t); /* Make certain that the number of elements in each selection is the same */ if(nelmts != (hsize_t)H5S_GET_SELECT_NPOINTS(file_space)) diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c index db487cd..825c562 100644 --- a/src/H5Dmpio.c +++ b/src/H5Dmpio.c @@ -438,7 +438,7 @@ H5D__mpio_get_sum_chunk(const H5D_io_info_t *io_info, const H5D_chunk_map_t *fm, /* Get the number of chunks to perform I/O on */ num_chunkf = 0; ori_num_chunkf = H5SL_count(fm->sel_chunks); - H5_ASSIGN_OVERFLOW(num_chunkf, ori_num_chunkf, size_t, int); + H5_CHECKED_ASSIGN(num_chunkf, int, ori_num_chunkf, size_t); /* Determine the summation of number of chunks for all processes */ if(MPI_SUCCESS != (mpi_code = MPI_Allreduce(&num_chunkf, sum_chunkf, 1, MPI_INT, MPI_SUM, io_info->comm))) @@ -826,7 +826,7 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ } /* end if */ /* Retrieve total # of chunks in dataset */ - H5_ASSIGN_OVERFLOW(total_chunks, fm->layout->u.chunk.nchunks, hsize_t, size_t); + H5_CHECKED_ASSIGN(total_chunks, size_t, fm->layout->u.chunk.nchunks, hsize_t); /* Handle special case when dataspace dimensions only allow one chunk in * the dataset. [This sometimes is used by developers who want the @@ -1148,7 +1148,7 @@ H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *ty #endif /* Retrieve total # of chunks in dataset */ - H5_ASSIGN_OVERFLOW(total_chunk, fm->layout->u.chunk.nchunks, hsize_t, size_t); + H5_CHECKED_ASSIGN(total_chunk, size_t, fm->layout->u.chunk.nchunks, hsize_t); HDassert(total_chunk != 0); /* Allocate memories */ @@ -1699,7 +1699,7 @@ H5D__obtain_mpio_mode(H5D_io_info_t* io_info, H5D_chunk_map_t *fm, HGOTO_ERROR(H5E_IO, H5E_MPI, FAIL, "unable to obtain mpi size") /* Setup parameters */ - H5_ASSIGN_OVERFLOW(total_chunks, fm->layout->u.chunk.nchunks, hsize_t, int); + H5_CHECKED_ASSIGN(total_chunks, int, fm->layout->u.chunk.nchunks, hsize_t); percent_nproc_per_chunk = H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME); /* if ratio is 0, perform collective io */ if(0 == percent_nproc_per_chunk) { diff --git a/src/H5FAdblock.c b/src/H5FAdblock.c index 80e2159..9efc2bc 100644 --- a/src/H5FAdblock.c +++ b/src/H5FAdblock.c @@ -129,7 +129,7 @@ H5FA__dblock_alloc(H5FA_hdr_t *hdr, hsize_t nelmts)) hsize_t npages = ((nelmts + dblock->dblk_page_nelmts) - 1) / dblock->dblk_page_nelmts; /* Safely assign the number of pages */ - H5_ASSIGN_OVERFLOW(/* To: */ dblock->npages, /* From: */ npages, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(dblock->npages, size_t, npages, hsize_t); /* Sanity check that we have at least 1 page */ HDassert(dblock->npages > 0); diff --git a/src/H5FDcore.c b/src/H5FDcore.c index ba4270e..f9bda00 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -1300,7 +1300,7 @@ H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, had size_t new_eof; /* Determine new size of memory buffer */ - H5_ASSIGN_OVERFLOW(new_eof, file->increment * ((addr + size) / file->increment), hsize_t, size_t); + H5_CHECKED_ASSIGN(new_eof, size_t, file->increment * ((addr + size) / file->increment), hsize_t); if((addr + size) % file->increment) new_eof += file->increment; @@ -1469,7 +1469,7 @@ H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing) new_eof = file->eoa; else { /* set eof to smallest multiple of increment that exceeds eoa */ /* Determine new size of memory buffer */ - H5_ASSIGN_OVERFLOW(new_eof, file->increment * (file->eoa / file->increment), hsize_t, size_t); + H5_CHECKED_ASSIGN(new_eof, size_t, file->increment * (file->eoa / file->increment), hsize_t); if(file->eoa % file->increment) new_eof += file->increment; } /* end else */ diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c index 7507a2e..c2b0660 100644 --- a/src/H5FDdirect.c +++ b/src/H5FDdirect.c @@ -515,7 +515,7 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info") file->fd = fd; - H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,h5_stat_size_t,haddr_t); + H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t); file->pos = HADDR_UNDEF; file->op = OP_UNKNOWN; #ifdef H5_HAVE_WIN32_API diff --git a/src/H5FDfamily.c b/src/H5FDfamily.c index ad703ef..e79e1cf 100644 --- a/src/H5FDfamily.c +++ b/src/H5FDfamily.c @@ -1170,7 +1170,7 @@ H5FD_family_read(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, si /* Read from each member */ while(size > 0) { - H5_ASSIGN_OVERFLOW(u,addr /file->memb_size,hsize_t,unsigned); + H5_CHECKED_ASSIGN(u, unsigned, addr / file->memb_size, hsize_t); sub = addr % file->memb_size; @@ -1239,7 +1239,7 @@ H5FD_family_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, s /* Write to each member */ while (size>0) { - H5_ASSIGN_OVERFLOW(u,addr /file->memb_size,hsize_t,unsigned); + H5_CHECKED_ASSIGN(u, unsigned, addr / file->memb_size, hsize_t); sub = addr % file->memb_size; diff --git a/src/H5FDlog.c b/src/H5FDlog.c index a2284dd..cc0caa4 100644 --- a/src/H5FDlog.c +++ b/src/H5FDlog.c @@ -571,7 +571,7 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct") file->fd = fd; - H5_ASSIGN_OVERFLOW(file->eof, sb.st_size, h5_stat_size_t, haddr_t); + H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t); file->pos = HADDR_UNDEF; file->op = OP_UNKNOWN; #ifdef H5_HAVE_WIN32_API diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index 1130789..b938c41 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -358,7 +358,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct") file->fd = fd; - H5_ASSIGN_OVERFLOW(file->eof, sb.st_size, h5_stat_size_t, haddr_t); + H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t); file->pos = HADDR_UNDEF; file->op = OP_UNKNOWN; #ifdef H5_HAVE_WIN32_API diff --git a/src/H5FScache.c b/src/H5FScache.c index e03a0a4..306a3fd 100644 --- a/src/H5FScache.c +++ b/src/H5FScache.c @@ -578,7 +578,7 @@ H5FS_cache_sinfo_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, void *_udata HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Allocate space for the buffer to serialize the sections into */ - H5_ASSIGN_OVERFLOW(/* To: */ old_sect_size, /* From: */ udata->fspace->sect_size, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(old_sect_size, size_t, udata->fspace->sect_size, hsize_t); if(NULL == (buf = H5FL_BLK_MALLOC(sect_block, (size_t)udata->fspace->sect_size))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") @@ -1038,7 +1038,7 @@ H5FS_cache_sinfo_size(const H5F_t UNUSED *f, const H5FS_sinfo_t *sinfo, size_t * HDassert(size_ptr); /* Set size value */ - H5_ASSIGN_OVERFLOW(/* To: */ *size_ptr, /* From: */ sinfo->fspace->alloc_sect_size, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(*size_ptr, size_t, sinfo->fspace->alloc_sect_size, hsize_t); FUNC_LEAVE_NOAPI(SUCCEED) } /* H5FS_cache_sinfo_size() */ diff --git a/src/H5Faccum.c b/src/H5Faccum.c index 7eb75bd..7cd9abb 100644 --- a/src/H5Faccum.c +++ b/src/H5Faccum.c @@ -172,7 +172,7 @@ H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, /* Read the part before the metadata accumulator */ if(addr < accum->loc) { /* Set the amount to read */ - H5_ASSIGN_OVERFLOW(amount_before, (accum->loc - addr), hsize_t, size_t); + H5_CHECKED_ASSIGN(amount_before, size_t, (accum->loc - addr), hsize_t); /* Make room for the metadata to read in */ HDmemmove(accum->buf + amount_before, accum->buf, accum->size); @@ -193,7 +193,7 @@ H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, size_t amount_after; /* Amount to read at a time */ /* Set the amount to read */ - H5_ASSIGN_OVERFLOW(amount_after, ((addr + size) - (accum->loc + accum->size)), hsize_t, size_t); + H5_CHECKED_ASSIGN(amount_after, size_t, ((addr + size) - (accum->loc + accum->size)), hsize_t); /* Dispatch to driver */ if(H5FD_read(fio_info->f->shared->lf, fio_info->dxpl, map_type, (accum->loc + accum->size), amount_after, (accum->buf + accum->size + amount_before)) < 0) @@ -536,14 +536,14 @@ H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, size_t old_offset; /* Offset of old data within the accumulator buffer */ /* Calculate the amount we will need to add to the accumulator size, based on the amount of overlap */ - H5_ASSIGN_OVERFLOW(add_size, (accum->loc - addr), hsize_t, size_t); + H5_CHECKED_ASSIGN(add_size, size_t, (accum->loc - addr), hsize_t); /* Check if we need to adjust accumulator size */ if(H5F__accum_adjust(accum, fio_info, H5F_ACCUM_PREPEND, add_size) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTRESIZE, FAIL, "can't adjust metadata accumulator") /* Calculate the proper offset of the existing metadata */ - H5_ASSIGN_OVERFLOW(old_offset, (addr + size) - accum->loc, hsize_t, size_t); + H5_CHECKED_ASSIGN(old_offset, size_t, (addr + size) - accum->loc, hsize_t); /* Move the existing metadata to the proper location */ HDmemmove(accum->buf + size, accum->buf + old_offset, (accum->size - old_offset)); @@ -576,7 +576,7 @@ H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, size_t dirty_off; /* Offset of dirty region */ /* Calculate the amount we will need to add to the accumulator size, based on the amount of overlap */ - H5_ASSIGN_OVERFLOW(add_size, (addr + size) - (accum->loc + accum->size), hsize_t, size_t); + H5_CHECKED_ASSIGN(add_size, size_t, (addr + size) - (accum->loc + accum->size), hsize_t); /* Check if we need to adjust accumulator size */ if(H5F__accum_adjust(accum, fio_info, H5F_ACCUM_APPEND, add_size) < 0) @@ -885,7 +885,7 @@ H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t UNUSED type, haddr_t a size_t new_accum_size; /* Size of new accumulator buffer */ /* Calculate the size of the overlap with the accumulator, etc. */ - H5_ASSIGN_OVERFLOW(overlap_size, (addr + size) - accum->loc, haddr_t, size_t); + H5_CHECKED_ASSIGN(overlap_size, size_t, (addr + size) - accum->loc, haddr_t); new_accum_size = accum->size - overlap_size; /* Move the accumulator buffer information to eliminate the freed block */ @@ -919,7 +919,7 @@ H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t UNUSED type, haddr_t a haddr_t dirty_start = accum->loc + accum->dirty_off; /* Calculate the size of the overlap with the accumulator */ - H5_ASSIGN_OVERFLOW(overlap_size, (accum->loc + accum->size) - addr, haddr_t, size_t); + H5_CHECKED_ASSIGN(overlap_size, size_t, (accum->loc + accum->size) - addr, haddr_t); /* Check if block to free begins before end of dirty region */ if(accum->dirty && H5F_addr_lt(addr, dirty_end)) { diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c index dd80a46..845ab8c 100644 --- a/src/H5Fsuper.c +++ b/src/H5Fsuper.c @@ -434,7 +434,7 @@ H5F_super_init(H5F_t *f, hid_t dxpl_id) superblock_size = (hsize_t)H5F_SUPERBLOCK_SIZE(super_vers, f); /* Compute the size of the driver information block */ - H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t); + H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t); if(driver_size > 0) { driver_size += H5F_DRVINFOBLOCK_HDR_SIZE; diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c index f3931cb..5737ce4 100644 --- a/src/H5Fsuper_cache.c +++ b/src/H5Fsuper_cache.c @@ -723,7 +723,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr, HGOTO_ERROR(H5E_FILE, H5E_CANTENCODE, FAIL, "can't encode root group symbol table entry") /* Encode the driver information block. */ - H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t); + H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t); /* Checking whether driver block address is defined here is to handle backward * compatibility. If the file was created with v1.6 library or earlier and no @@ -799,7 +799,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr, } /* end else */ /* Retrieve the total size of the superblock info */ - H5_ASSIGN_OVERFLOW(superblock_size, (p - buf), ptrdiff_t, size_t); + H5_CHECKED_ASSIGN(superblock_size, size_t, (p - buf), ptrdiff_t); /* Double check we didn't overrun the block (unlikely) */ HDassert(superblock_size <= sizeof(buf)); @@ -824,7 +824,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr, /* Check for ignoring the driver info for this file */ if(!H5F_HAS_FEATURE(f, H5FD_FEAT_IGNORE_DRVRINFO)) { /* Check for driver info message */ - H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t); + H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t); if(driver_size > 0) { H5O_drvinfo_t drvinfo; /* Driver info */ uint8_t dbuf[H5F_MAX_DRVINFOBLOCK_SIZE]; /* Driver info block encoding buffer */ diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c index ca9e7fd..8f2fe54 100644 --- a/src/H5Gdeprec.c +++ b/src/H5Gdeprec.c @@ -261,7 +261,7 @@ H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info") /* Set the non-default local heap size hint */ - H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t); + H5_CHECKED_ASSIGN(ginfo.lheap_size_hint, uint32_t, size_hint, size_t); if(H5P_set(gc_plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set group info") } /* end if */ diff --git a/src/H5Glink.c b/src/H5Glink.c index f934052..8b258b5 100644 --- a/src/H5Glink.c +++ b/src/H5Glink.c @@ -467,7 +467,7 @@ H5G__link_iterate_table(const H5G_link_table_t *ltable, hsize_t skip, *last_lnk += skip; /* Iterate over link messages */ - H5_ASSIGN_OVERFLOW(/* To: */ u, /* From: */ skip, /* From: */ hsize_t, /* To: */ size_t) + H5_CHECKED_ASSIGN(u, size_t, skip, hsize_t) for(; u < ltable->nlinks && !ret_value; u++) { /* Make the callback */ ret_value = (op)(&(ltable->lnks[u]), op_data); diff --git a/src/H5HFdbg.c b/src/H5HFdbg.c index 7d22ddd..8620f6f 100644 --- a/src/H5HFdbg.c +++ b/src/H5HFdbg.c @@ -387,11 +387,11 @@ H5HF_dblock_debug_cb(H5FS_section_info_t *_sect, void *_udata) if(sect_start < dblock_start) start = 0; else - H5_ASSIGN_OVERFLOW(/* To: */ start, /* From: */ (sect_start - dblock_start), /* From: */ hsize_t, /* To: */ size_t) + H5_CHECKED_ASSIGN(start, size_t, (sect_start - dblock_start), hsize_t) if(sect_end > dblock_end) - H5_ASSIGN_OVERFLOW(/* To: */ end, /* From: */ udata->dblock_size, /* From: */ hsize_t, /* To: */ size_t) + H5_CHECKED_ASSIGN(end, size_t, udata->dblock_size, hsize_t) else - H5_ASSIGN_OVERFLOW(/* To: */ end, /* From: */ ((sect_end - dblock_start) + 1), /* From: */ hsize_t, /* To: */ size_t) + H5_CHECKED_ASSIGN(end, size_t, ((sect_end - dblock_start) + 1), hsize_t) /* Calculate the length */ len = end - start; diff --git a/src/H5HFdblock.c b/src/H5HFdblock.c index c4ae573..9a8da4a 100644 --- a/src/H5HFdblock.c +++ b/src/H5HFdblock.c @@ -131,7 +131,7 @@ H5HF_man_dblock_create(hid_t dxpl_id, H5HF_hdr_t *hdr, H5HF_indirect_t *par_iblo dblock->block_off = par_iblock->block_off; dblock->block_off += hdr->man_dtable.row_block_off[par_row]; dblock->block_off += hdr->man_dtable.row_block_size[par_row] * (par_entry % hdr->man_dtable.cparam.width); - H5_ASSIGN_OVERFLOW(/* To: */ dblock->size, /* From: */ hdr->man_dtable.row_block_size[par_row], /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(dblock->size, size_t, hdr->man_dtable.row_block_size[par_row], hsize_t); } /* end if */ else { /* Must be the root direct block */ @@ -397,7 +397,7 @@ H5HF_man_dblock_new(H5HF_hdr_t *hdr, hid_t dxpl_id, size_t request, if(H5HF_man_iter_curr(&hdr->next_block, &next_row, NULL, &next_entry, &iblock) < 0) HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, FAIL, "unable to retrieve current block iterator location") HDassert(next_row < iblock->nrows); - H5_ASSIGN_OVERFLOW(/* To: */ next_size, /* From: */ hdr->man_dtable.row_block_size[next_row], /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(next_size, size_t, hdr->man_dtable.row_block_size[next_row], hsize_t); /* Check for skipping over blocks */ if(min_dblock_size > next_size) { diff --git a/src/H5HFdtable.c b/src/H5HFdtable.c index 607862a..c523396 100644 --- a/src/H5HFdtable.c +++ b/src/H5HFdtable.c @@ -168,7 +168,7 @@ HDfprintf(stderr, "%s: off = %Hu\n", "H5HF_dtable_lookup", off); /* Check for offset in first row */ if(off < dtable->num_id_first_row) { *row = 0; - H5_ASSIGN_OVERFLOW(/* To: */ *col, /* From: */ (off / dtable->cparam.start_block_size), /* From: */ hsize_t, /* To: */ unsigned); + H5_CHECKED_ASSIGN(*col, unsigned, (off / dtable->cparam.start_block_size), hsize_t); } /* end if */ else { unsigned high_bit = H5VM_log2_gen(off); /* Determine the high bit in the offset */ @@ -178,7 +178,7 @@ HDfprintf(stderr, "%s: off = %Hu\n", "H5HF_dtable_lookup", off); HDfprintf(stderr, "%s: high_bit = %u, off_mask = %Hu\n", "H5HF_dtable_lookup", high_bit, off_mask); #endif /* QAK */ *row = (high_bit - dtable->first_row_bits) + 1; - H5_ASSIGN_OVERFLOW(/* To: */ *col, /* From: */ ((off - off_mask) / dtable->row_block_size[*row]), /* From: */ hsize_t, /* To: */ unsigned); + H5_CHECKED_ASSIGN(*col, unsigned, ((off - off_mask) / dtable->row_block_size[*row]), hsize_t); } /* end else */ FUNC_LEAVE_NOAPI(SUCCEED) diff --git a/src/H5HFhdr.c b/src/H5HFhdr.c index d3c4473..cf8da23 100644 --- a/src/H5HFhdr.c +++ b/src/H5HFhdr.c @@ -262,7 +262,7 @@ H5HF_hdr_finish_init_phase2(H5HF_hdr_t *hdr) if(u < hdr->man_dtable.max_direct_rows) { hdr->man_dtable.row_tot_dblock_free[u] = hdr->man_dtable.row_block_size[u] - H5HF_MAN_ABS_DIRECT_OVERHEAD(hdr); - H5_ASSIGN_OVERFLOW(/* To: */ hdr->man_dtable.row_max_dblock_free[u], /* From: */ hdr->man_dtable.row_tot_dblock_free[u], /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(hdr->man_dtable.row_max_dblock_free[u], size_t, hdr->man_dtable.row_tot_dblock_free[u], hsize_t); } /* end if */ else if(H5HF_hdr_compute_free_space(hdr, u) < 0) diff --git a/src/H5HFhuge.c b/src/H5HFhuge.c index 6f0b48e..7f0da02 100644 --- a/src/H5HFhuge.c +++ b/src/H5HFhuge.c @@ -653,7 +653,7 @@ H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, /* Retrieve the object's address & length */ obj_addr = found_rec.addr; - H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t); filter_mask = found_rec.filter_mask; } /* end if */ else { @@ -669,7 +669,7 @@ H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, /* Retrieve the object's address & length */ obj_addr = found_rec.addr; - H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t); } /* end else */ } /* end else */ @@ -797,7 +797,7 @@ H5HF_huge_write(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, /* Retrieve the object's address & length */ obj_addr = found_rec.addr; - H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t); } /* end else */ /* Write the object's data to the file */ diff --git a/src/H5HLcache.c b/src/H5HLcache.c index a3c43ac..6576284 100644 --- a/src/H5HLcache.c +++ b/src/H5HLcache.c @@ -258,6 +258,7 @@ H5HL_prefix_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) size_t spec_read_size; /* Size of buffer to speculatively read in */ const uint8_t *p; /* Pointer into decoding buffer */ haddr_t eoa; /* Relative end of file address */ + hsize_t min; /* temp min value to avoid macro nesting */ H5HL_prfx_t *ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -276,7 +277,8 @@ H5HL_prefix_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, NULL, "unable to determine file size") /* Compute the size of the speculative local heap prefix buffer */ - H5_ASSIGN_OVERFLOW(spec_read_size, MIN(eoa - addr, H5HL_SPEC_READ_SIZE), /* From: */ hsize_t, /* To: */ size_t); + min = MIN(eoa - addr, H5HL_SPEC_READ_SIZE); + H5_CHECKED_ASSIGN(spec_read_size, size_t, min, hsize_t); HDassert(spec_read_size >= udata->sizeof_prfx); /* Attempt to speculatively read both local heap prefix and heap data */ diff --git a/src/H5I.c b/src/H5I.c index eb34d6e..528be81 100644 --- a/src/H5I.c +++ b/src/H5I.c @@ -433,7 +433,7 @@ H5Inmembers(H5I_type_t type, hsize_t *num_members) if((members = H5I_nmembers(type)) < 0) HGOTO_ERROR(H5E_ATOM, H5E_CANTCOUNT, FAIL, "can't compute number of members") - H5_ASSIGN_OVERFLOW(*num_members, members, int64_t, hsize_t); + H5_CHECKED_ASSIGN(*num_members, hsize_t, members, int64_t); } /* end if */ done: @@ -460,7 +460,7 @@ int64_t H5I_nmembers(H5I_type_t type) { H5I_id_type_t *type_ptr = NULL; - int ret_value; + int64_t ret_value; FUNC_ENTER_NOAPI(FAIL) @@ -470,7 +470,7 @@ H5I_nmembers(H5I_type_t type) HGOTO_DONE(0); /* Set return value */ - H5_ASSIGN_OVERFLOW(ret_value, type_ptr->id_count, uint64_t, int64_t); + H5_CHECKED_ASSIGN(ret_value, int64_t, type_ptr->id_count, uint64_t); done: FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5MF.c b/src/H5MF.c index 29e9ece..eecd724 100644 --- a/src/H5MF.c +++ b/src/H5MF.c @@ -1383,7 +1383,7 @@ H5MF_get_free_sections(H5F_t *f, hid_t dxpl_id, H5FD_mem_t type, size_t nsects, /* Query how many sections of this type */ if(H5FS_sect_stats(f->shared->fs_man[ty], NULL, &hnums) < 0) HGOTO_ERROR(H5E_RESOURCE, H5E_CANTGET, FAIL, "can't query free space stats") - H5_ASSIGN_OVERFLOW(nums, hnums, hsize_t, size_t); + H5_CHECKED_ASSIGN(nums, size_t, hnums, hsize_t); /* Increment total # of sections */ total_sects += nums; diff --git a/src/H5O.c b/src/H5O.c index 1fd7225..6745716 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -2716,8 +2716,8 @@ H5O_get_hdr_info_real(const H5O_t *oh, H5O_hdr_info_t *hdr) hdr->version = oh->version; /* Set the number of messages & chunks */ - H5_ASSIGN_OVERFLOW(hdr->nmesgs, oh->nmesgs, size_t, unsigned); - H5_ASSIGN_OVERFLOW(hdr->nchunks, oh->nchunks, size_t, unsigned); + H5_CHECKED_ASSIGN(hdr->nmesgs, unsigned, oh->nmesgs, size_t); + H5_CHECKED_ASSIGN(hdr->nchunks, unsigned, oh->nchunks, size_t); /* Set the status flags */ hdr->flags = oh->flags; diff --git a/src/H5Oattr.c b/src/H5Oattr.c index 2269bd3..9710f5d 100644 --- a/src/H5Oattr.c +++ b/src/H5Oattr.c @@ -218,7 +218,7 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, unsigned UNUSED mesg_fl p += attr->shared->ds_size; /* Compute the size of the data */ - H5_ASSIGN_OVERFLOW(attr->shared->data_size, H5S_GET_EXTENT_NPOINTS(attr->shared->ds) * H5T_get_size(attr->shared->dt), hsize_t, size_t); + H5_CHECKED_ASSIGN(attr->shared->data_size, size_t, H5S_GET_EXTENT_NPOINTS(attr->shared->ds) * H5T_get_size(attr->shared->dt), hsize_t); /* Go get the data */ if(attr->shared->data_size) { diff --git a/src/H5Ocache.c b/src/H5Ocache.c index b3dea03..b1d94d8 100644 --- a/src/H5Ocache.c +++ b/src/H5Ocache.c @@ -184,7 +184,7 @@ H5O_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata) HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, NULL, "unable to determine file size") /* Compute the size of the speculative object header buffer */ - H5_ASSIGN_OVERFLOW(spec_read_size, MIN(eoa - addr, H5O_SPEC_READ_SIZE), /* From: */ hsize_t, /* To: */ size_t); + H5_CHECKED_ASSIGN(spec_read_size, size_t, MIN(eoa - addr, H5O_SPEC_READ_SIZE), hsize_t); /* Attempt to speculatively read both object header prefix and first chunk */ if(H5F_block_read(f, H5FD_MEM_OHDR, addr, spec_read_size, dxpl_id, read_buf) < 0) diff --git a/src/H5Ofill.c b/src/H5Ofill.c index a0fc42e..33022fc 100644 --- a/src/H5Ofill.c +++ b/src/H5Ofill.c @@ -977,7 +977,7 @@ H5O_fill_convert(H5O_fill_t *fill, H5T_t *dset_type, hbool_t *fill_changed, hid_ } /* end if */ H5T_close(fill->type); fill->type = NULL; - H5_ASSIGN_OVERFLOW(fill->size, H5T_get_size(dset_type), size_t, ssize_t); + H5_CHECKED_ASSIGN(fill->size, ssize_t, H5T_get_size(dset_type), size_t); /* Note that the fill value info has changed */ *fill_changed = TRUE; diff --git a/src/H5Omessage.c b/src/H5Omessage.c index 1369583..f70fa72 100644 --- a/src/H5Omessage.c +++ b/src/H5Omessage.c @@ -807,7 +807,7 @@ H5O_msg_count(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id) /* Count the messages of the correct type */ msg_count = H5O_msg_count_real(oh, type); - H5_ASSIGN_OVERFLOW(ret_value, msg_count, unsigned, int); + H5_CHECKED_ASSIGN(ret_value, int, msg_count, unsigned); done: if(oh && H5O_unprotect(loc, dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0) @@ -2300,7 +2300,7 @@ H5O_msg_get_chunkno(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id) HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "message type not found") /* Set return value */ - H5_ASSIGN_OVERFLOW(ret_value, idx_msg->chunkno, unsigned, int); + H5_CHECKED_ASSIGN(ret_value, int, idx_msg->chunkno, unsigned); done: if(oh && H5O_unprotect(loc, dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0) diff --git a/src/H5Pencdec.c b/src/H5Pencdec.c index 3285ae3..bd0a260 100644 --- a/src/H5Pencdec.c +++ b/src/H5Pencdec.c @@ -509,7 +509,7 @@ H5P__decode_size_t(const void **_pp, void *_value) /* Decode the value */ UINT64DECODE_VAR(*pp, enc_value, enc_size); - H5_ASSIGN_OVERFLOW(*value, enc_value, uint64_t, size_t); + H5_CHECKED_ASSIGN(*value, size_t, enc_value, uint64_t); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5P__decode_size_t() */ @@ -550,7 +550,7 @@ H5P__decode_hsize_t(const void **_pp, void *_value) /* Decode the value */ UINT64DECODE_VAR(*pp, enc_value, enc_size); - H5_ASSIGN_OVERFLOW(*value, enc_value, uint64_t, hsize_t); + H5_CHECKED_ASSIGN(*value, hsize_t, enc_value, uint64_t); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5P__decode_hsize_t() */ diff --git a/src/H5Pgcpl.c b/src/H5Pgcpl.c index b7d5106..1e3a278 100644 --- a/src/H5Pgcpl.c +++ b/src/H5Pgcpl.c @@ -179,7 +179,7 @@ H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info") /* Update field */ - H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t); + H5_CHECKED_ASSIGN(ginfo.lheap_size_hint, uint32_t, size_hint, size_t); /* Set value */ if(H5P_set(plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0) diff --git a/src/H5S.c b/src/H5S.c index dd2bb0a..9b37797 100644 --- a/src/H5S.c +++ b/src/H5S.c @@ -1521,7 +1521,7 @@ H5S_encode(H5S_t *obj, unsigned char *buf, size_t *nalloc) /* Find out the size of buffer needed for selection */ if((sselect_size = H5S_SELECT_SERIAL_SIZE(obj)) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_BADSIZE, FAIL, "can't find dataspace selection size") - H5_ASSIGN_OVERFLOW(select_size, sselect_size, hssize_t, size_t); + H5_CHECKED_ASSIGN(select_size, size_t, sselect_size, hssize_t); /* Verify the size of buffer. If it's not big enough, simply return the * right size without filling the buffer. */ diff --git a/src/H5Shyper.c b/src/H5Shyper.c index 9b1562f..0d5e630 100644 --- a/src/H5Shyper.c +++ b/src/H5Shyper.c @@ -7635,7 +7635,7 @@ H5S_hyper_get_seq_list_gen(const H5S_t *space,H5S_sel_iter_t *iter, /* Finish the span in the fastest changing dimension */ /* Compute the number of bytes to attempt in this span */ - H5_ASSIGN_OVERFLOW(span_size,((curr_span->high-abs_arr[fast_dim])+1)*elem_size,hsize_t,size_t); + H5_CHECKED_ASSIGN(span_size, size_t, ((curr_span->high-abs_arr[fast_dim])+1)*elem_size, hsize_t); /* Check number of bytes against upper bounds allowed */ if(span_size>io_bytes_left) @@ -7778,7 +7778,7 @@ H5S_hyper_get_seq_list_gen(const H5S_t *space,H5S_sel_iter_t *iter, loc_off += curr_span->pstride; /* Compute the number of elements to attempt in this span */ - H5_ASSIGN_OVERFLOW(span_size, curr_span->nelem, hsize_t, size_t); + H5_CHECKED_ASSIGN(span_size, size_t, curr_span->nelem, hsize_t); /* Check number of elements against upper bounds allowed */ if(span_size >= io_bytes_left) { @@ -8108,7 +8108,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter, loc += offset[u] * slab[u]; /* Set the number of elements to write each time */ - H5_ASSIGN_OVERFLOW(actual_elem, tdiminfo[fast_dim].block, hsize_t, size_t); + H5_CHECKED_ASSIGN(actual_elem, size_t, tdiminfo[fast_dim].block, hsize_t); /* Set the number of actual bytes */ actual_bytes = actual_elem * elem_size; @@ -8117,7 +8117,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter, fast_dim_start = tdiminfo[fast_dim].start; fast_dim_stride = tdiminfo[fast_dim].stride; fast_dim_block = tdiminfo[fast_dim].block; - H5_ASSIGN_OVERFLOW(fast_dim_buf_off, slab[fast_dim] * fast_dim_stride, hsize_t, size_t); + H5_CHECKED_ASSIGN(fast_dim_buf_off, size_t, slab[fast_dim] * fast_dim_stride, hsize_t); fast_dim_offset = (hsize_t)((hssize_t)fast_dim_start + sel_off[fast_dim]); /* Compute the number of blocks which would fit into the buffer */ @@ -8138,7 +8138,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter, /* Check if there is a partial row left (with full blocks) */ if(tmp_count[fast_dim] > 0) { /* Get number of blocks in fastest dimension */ - H5_ASSIGN_OVERFLOW(fast_dim_count, tdiminfo[fast_dim].count - tmp_count[fast_dim], hsize_t, size_t); + H5_CHECKED_ASSIGN(fast_dim_count, size_t, tdiminfo[fast_dim].count - tmp_count[fast_dim], hsize_t); /* Make certain this entire row will fit into buffer */ fast_dim_count = MIN(fast_dim_count, tot_blk_count); @@ -8223,7 +8223,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter, curr_rows = total_rows = (size_t)(tot_blk_count / tdiminfo[fast_dim].count); /* Reset copy of number of blocks in fastest dimension */ - H5_ASSIGN_OVERFLOW(fast_dim_count, tdiminfo[fast_dim].count, hsize_t, size_t); + H5_CHECKED_ASSIGN(fast_dim_count, size_t, tdiminfo[fast_dim].count, hsize_t); /* Read in data until an entire sequence can't be written out any longer */ while(curr_rows > 0) { @@ -8528,7 +8528,7 @@ H5S_hyper_get_seq_list_single(const H5S_t *space, H5S_sel_iter_t *iter, tot_blk_count = MIN(tot_blk_count, maxseq); /* Set the number of elements to write each time */ - H5_ASSIGN_OVERFLOW(actual_elem, fast_dim_block, hsize_t, size_t); + H5_CHECKED_ASSIGN(actual_elem, size_t, fast_dim_block, hsize_t); /* Check for blocks to operate on */ if(tot_blk_count > 0) { @@ -8785,10 +8785,10 @@ H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t /* Calculate the number of elements left in the sequence */ if(tdiminfo[fast_dim].count == 1) { - H5_ASSIGN_OVERFLOW(leftover, tdiminfo[fast_dim].block - (iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start), hsize_t, size_t); + H5_CHECKED_ASSIGN(leftover, size_t, tdiminfo[fast_dim].block - (iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start), hsize_t); } /* end if */ else { - H5_ASSIGN_OVERFLOW(leftover, tdiminfo[fast_dim].block - ((iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start) % tdiminfo[fast_dim].stride), hsize_t, size_t); + H5_CHECKED_ASSIGN(leftover, size_t, tdiminfo[fast_dim].block - ((iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start) % tdiminfo[fast_dim].stride), hsize_t); } /* end else */ /* Make certain that we don't write too many */ @@ -8807,7 +8807,7 @@ H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t /* Add a new sequence */ off[0] = loc; - H5_ASSIGN_OVERFLOW(len[0], actual_elem * elem_size, hsize_t, size_t); + H5_CHECKED_ASSIGN(len[0], size_t, actual_elem * elem_size, hsize_t); /* Increment sequence array locations */ off++; diff --git a/src/H5Smpio.c b/src/H5Smpio.c index def7598..c2190b4 100644 --- a/src/H5Smpio.c +++ b/src/H5Smpio.c @@ -94,13 +94,13 @@ H5S_mpio_all_type(const H5S_t *space, size_t elmt_size, /* Just treat the entire extent as a block of bytes */ if((snelmts = (hssize_t)H5S_GET_EXTENT_NPOINTS(space)) < 0) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "src dataspace has invalid selection") - H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, hsize_t); + H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t); total_bytes = (hsize_t)elmt_size * nelmts; /* fill in the return values */ *new_type = MPI_BYTE; - H5_ASSIGN_OVERFLOW(*count, total_bytes, hsize_t, int); + H5_CHECKED_ASSIGN(*count, int, total_bytes, hsize_t); *is_derived_type = FALSE; done: @@ -388,7 +388,7 @@ H5S_mpio_permute_type(const H5S_t *space, size_t elmt_size, hsize_t **permute, sel_iter_init = TRUE; /* Selection iteration info has been initialized */ /* Set the number of elements to iterate over */ - H5_ASSIGN_OVERFLOW(max_elem, num_points, hsize_t, size_t); + H5_CHECKED_ASSIGN(max_elem, size_t, num_points, hsize_t); /* Loop, while elements left in selection */ u = 0; diff --git a/src/H5Sselect.c b/src/H5Sselect.c index a4f13d7..e04ae16 100644 --- a/src/H5Sselect.c +++ b/src/H5Sselect.c @@ -1304,7 +1304,7 @@ H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t space_size[ndims] = elmt_size; /* Compute the maximum number of bytes required */ - H5_ASSIGN_OVERFLOW(max_elem, nelmts, hssize_t, size_t); + H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t); /* Loop, while elements left in selection */ while(max_elem > 0 && user_ret == 0) { @@ -2063,7 +2063,7 @@ H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *_b HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL, "can't get number of elements selected") /* Compute the number of bytes to process */ - H5_ASSIGN_OVERFLOW(max_elem, nelmts, hssize_t, size_t); + H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t); /* Loop, while elements left in selection */ while(max_elem > 0) { diff --git a/src/H5Tarray.c b/src/H5Tarray.c index c73b934..2e9dec0 100644 --- a/src/H5Tarray.c +++ b/src/H5Tarray.c @@ -202,7 +202,7 @@ H5T__array_create(H5T_t *base, unsigned ndims, const hsize_t dim[/* ndims */]) /* Copy the array dimensions & compute the # of elements in the array */ for(u = 0, ret_value->shared->u.array.nelem = 1; u < ndims; u++) { - H5_ASSIGN_OVERFLOW(ret_value->shared->u.array.dim[u], dim[u], hsize_t, size_t); + H5_CHECKED_ASSIGN(ret_value->shared->u.array.dim[u], size_t, dim[u], hsize_t); ret_value->shared->u.array.nelem *= (size_t)dim[u]; } /* end for */ diff --git a/src/H5Tconv.c b/src/H5Tconv.c index df85553..1c51b69 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -1952,7 +1952,7 @@ H5T_conv_struct_init(H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata, hid_t dxpl_id) src2dst[i] = -1; for(j = 0; j < dst_nmembs; j++) { if(!HDstrcmp(src->shared->u.compnd.memb[i].name, dst->shared->u.compnd.memb[j].name)) { - H5_ASSIGN_OVERFLOW(src2dst[i],j,unsigned,int); + H5_CHECKED_ASSIGN(src2dst[i], int, j, unsigned); break; } /* end if */ } /* end for */ @@ -2187,16 +2187,16 @@ H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, * Direction of conversion and striding through background. */ if(buf_stride) { - H5_ASSIGN_OVERFLOW(src_delta, buf_stride, size_t, ssize_t); + H5_CHECKED_ASSIGN(src_delta, ssize_t, buf_stride, size_t); if(!bkg_stride) { - H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t); + H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t); } /* end if */ else - H5_ASSIGN_OVERFLOW(bkg_delta, bkg_stride, size_t, ssize_t); + H5_CHECKED_ASSIGN(bkg_delta, ssize_t, bkg_stride, size_t); } /* end if */ else if(dst->shared->size <= src->shared->size) { - H5_ASSIGN_OVERFLOW(src_delta, src->shared->size, size_t, ssize_t); - H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t); + H5_CHECKED_ASSIGN(src_delta, ssize_t, src->shared->size, size_t); + H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t); } /* end else-if */ else { H5_CHECK_OVERFLOW(src->shared->size, size_t, ssize_t); @@ -2278,7 +2278,7 @@ H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, /* If the bkg_delta was set to -(dst->shared->size), make it positive now */ if(buf_stride == 0 && dst->shared->size > src->shared->size) - H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t); + H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t); /* * Copy the background buffer back into the in-place conversion @@ -2833,8 +2833,8 @@ H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, src_delta = dst_delta = (ssize_t)buf_stride; s = d = buf; } else if(dst->shared->size <= src->shared->size) { - H5_ASSIGN_OVERFLOW(src_delta, src->shared->size, size_t, ssize_t); - H5_ASSIGN_OVERFLOW(dst_delta, dst->shared->size, size_t, ssize_t); + H5_CHECKED_ASSIGN(src_delta, ssize_t, src->shared->size, size_t); + H5_CHECKED_ASSIGN(dst_delta, ssize_t, dst->shared->size, size_t); s = d = buf; } else { H5_CHECK_OVERFLOW(src->shared->size, size_t, ssize_t); diff --git a/src/H5Tfloat.c b/src/H5Tfloat.c index 7d08d62..fff413d 100644 --- a/src/H5Tfloat.c +++ b/src/H5Tfloat.c @@ -203,7 +203,7 @@ H5Tget_ebias(hid_t type_id) HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, 0, "operation not defined for datatype class") /* bias */ - H5_ASSIGN_OVERFLOW(ret_value, dt->shared->u.atomic.u.f.ebias, uint64_t, size_t); + H5_CHECKED_ASSIGN(ret_value, size_t, dt->shared->u.atomic.u.f.ebias, uint64_t); done: FUNC_LEAVE_API(ret_value) diff --git a/src/H5Tnative.c b/src/H5Tnative.c index 960a811..bf6ba08 100644 --- a/src/H5Tnative.c +++ b/src/H5Tnative.c @@ -276,7 +276,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig if((snmemb = H5T_get_nmembers(dtype)) <= 0) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "compound data type doesn't have any member") - H5_ASSIGN_OVERFLOW(nmemb, snmemb, int, unsigned); + H5_CHECKED_ASSIGN(nmemb, unsigned, snmemb, int); if(NULL == (memb_list = (H5T_t **)H5MM_calloc(nmemb * sizeof(H5T_t *)))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot allocate memory") @@ -388,7 +388,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig /* Retrieve member info and insert members into new enum type */ if((snmemb = H5T_get_nmembers(dtype)) <= 0) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "enumerate data type doesn't have any member") - H5_ASSIGN_OVERFLOW(nmemb, snmemb, int, unsigned); + H5_CHECKED_ASSIGN(nmemb, unsigned, snmemb, int); for(u = 0; u < nmemb; u++) { if(NULL == (memb_name = H5T__get_member_name(dtype, u))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member name") @@ -429,7 +429,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig /* Retrieve dimension information for array data type */ if((sarray_rank = H5T__get_array_ndims(dtype)) <= 0) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get dimension rank") - H5_ASSIGN_OVERFLOW(array_rank, sarray_rank, int, unsigned); + H5_CHECKED_ASSIGN(array_rank, unsigned, sarray_rank, int); if(NULL == (dims = (hsize_t*)H5MM_malloc(array_rank * sizeof(hsize_t)))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot allocate memory") if(H5T__get_array_dims(dtype, dims) < 0) diff --git a/src/H5Zdeflate.c b/src/H5Zdeflate.c index 82ad1ba..06d9866 100644 --- a/src/H5Zdeflate.c +++ b/src/H5Zdeflate.c @@ -102,9 +102,9 @@ H5Z_filter_deflate (unsigned flags, size_t cd_nelmts, /* Set the uncompression parameters */ HDmemset(&z_strm, 0, sizeof(z_strm)); z_strm.next_in = (Bytef *)*buf; - H5_ASSIGN_OVERFLOW(z_strm.avail_in,nbytes,size_t,unsigned); + H5_CHECKED_ASSIGN(z_strm.avail_in, unsigned, nbytes, size_t); z_strm.next_out = (Bytef *)outbuf; - H5_ASSIGN_OVERFLOW(z_strm.avail_out,nalloc,size_t,unsigned); + H5_CHECKED_ASSIGN(z_strm.avail_out, unsigned, nalloc, size_t); /* Initialize the uncompression routines */ if (Z_OK!=inflateInit(&z_strm)) @@ -169,7 +169,7 @@ H5Z_filter_deflate (unsigned flags, size_t cd_nelmts, int aggression; /* Compression aggression setting */ /* Set the compression aggression level */ - H5_ASSIGN_OVERFLOW(aggression,cd_values[0],unsigned,int); + H5_CHECKED_ASSIGN(aggression, int, cd_values[0], unsigned); /* Allocate output (compressed) buffer */ if(NULL == (outbuf = H5MM_malloc(z_dst_nbytes))) diff --git a/src/H5Znbit.c b/src/H5Znbit.c index 9506ace..ff3ead2 100644 --- a/src/H5Znbit.c +++ b/src/H5Znbit.c @@ -803,7 +803,7 @@ H5Z_set_local_nbit(hid_t dcpl_id, hid_t type_id, hid_t space_id) cd_values_index = 2; /* Set "local" parameter for number of elements in the chunk */ - H5_ASSIGN_OVERFLOW(cd_values[cd_values_index++], npoints, hssize_t, unsigned); + H5_CHECKED_ASSIGN(cd_values[cd_values_index++], unsigned, npoints, hssize_t); /* Assume no need to compress now, will be changed to FALSE later if not */ need_not_compress = TRUE; diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c index 38e2986..cda0a11 100644 --- a/src/H5Zscaleoffset.c +++ b/src/H5Zscaleoffset.c @@ -901,7 +901,7 @@ H5Z_set_local_scaleoffset(hid_t dcpl_id, hid_t type_id, hid_t space_id) HGOTO_ERROR(H5E_PLINE, H5E_CANTGET, FAIL, "unable to get number of points in the dataspace") /* Set "local" parameter for this dataset's number of elements */ - H5_ASSIGN_OVERFLOW(cd_values[H5Z_SCALEOFFSET_PARM_NELMTS],npoints,hssize_t,unsigned); + H5_CHECKED_ASSIGN(cd_values[H5Z_SCALEOFFSET_PARM_NELMTS], unsigned, npoints, hssize_t); /* Get datatype's class */ if((dtype_class = H5T_get_class(type, TRUE)) == H5T_NO_CLASS) diff --git a/src/H5Zszip.c b/src/H5Zszip.c index 4544ec3..631667b 100644 --- a/src/H5Zszip.c +++ b/src/H5Zszip.c @@ -225,7 +225,7 @@ H5Z_set_local_szip(hid_t dcpl_id, hid_t type_id, hid_t space_id) } /* end else */ /* Assign the final value to the scanline */ - H5_ASSIGN_OVERFLOW(cd_values[H5Z_SZIP_PARM_PPS],scanline,hsize_t,unsigned); + H5_CHECKED_ASSIGN(cd_values[H5Z_SZIP_PARM_PPS], unsigned, scanline, hsize_t); /* Get datatype's endianness order */ if((dtype_order = H5T_get_order(type)) == H5T_ORDER_ERROR) @@ -301,10 +301,10 @@ H5Z_filter_szip (unsigned flags, size_t cd_nelmts, const unsigned cd_values[], HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, 0, "invalid deflate aggression level") /* Copy the filter parameters into the szip parameter block */ - H5_ASSIGN_OVERFLOW(sz_param.options_mask,cd_values[H5Z_SZIP_PARM_MASK],unsigned,int); - H5_ASSIGN_OVERFLOW(sz_param.bits_per_pixel,cd_values[H5Z_SZIP_PARM_BPP],unsigned,int); - H5_ASSIGN_OVERFLOW(sz_param.pixels_per_block,cd_values[H5Z_SZIP_PARM_PPB],unsigned,int); - H5_ASSIGN_OVERFLOW(sz_param.pixels_per_scanline,cd_values[H5Z_SZIP_PARM_PPS],unsigned,int); + H5_CHECKED_ASSIGN(sz_param.options_mask, int, cd_values[H5Z_SZIP_PARM_MASK], unsigned); + H5_CHECKED_ASSIGN(sz_param.bits_per_pixel, int, cd_values[H5Z_SZIP_PARM_BPP], unsigned); + H5_CHECKED_ASSIGN(sz_param.pixels_per_block, int, cd_values[H5Z_SZIP_PARM_PPB], unsigned); + H5_CHECKED_ASSIGN(sz_param.pixels_per_scanline, int, cd_values[H5Z_SZIP_PARM_PPS], unsigned); /* Input; uncompress */ if (flags & H5Z_FLAG_REVERSE) { @@ -314,7 +314,7 @@ H5Z_filter_szip (unsigned flags, size_t cd_nelmts, const unsigned cd_values[], /* Get the size of the uncompressed buffer */ newbuf = *buf; UINT32DECODE(newbuf,stored_nalloc); - H5_ASSIGN_OVERFLOW(nalloc,stored_nalloc,uint32_t,size_t); + H5_CHECKED_ASSIGN(nalloc, size_t, stored_nalloc, uint32_t); /* Allocate space for the uncompressed buffer */ if(NULL==(outbuf = H5MM_malloc(nalloc))) diff --git a/src/H5private.h b/src/H5private.h index d1bbc24..66bf7eb 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -1523,11 +1523,14 @@ extern char *strdup(const char *s); /* Include the generated overflow header file */ #include "H5overflow.h" -#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ +/* Assign a variable to one of a different size (think safer dst = (dsttype)src"). + * The code generated by the macro checks for overflows. + */ +#define H5_CHECKED_ASSIGN(dst, dsttype, src, srctype) \ H5_GLUE4(ASSIGN_,srctype,_TO_,dsttype)(dst,dsttype,src,srctype)\ #else /* NDEBUG */ -#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ +#define H5_CHECKED_ASSIGN(dst, dsttype, src, srctype) \ (dst) = (dsttype)(src); #endif /* NDEBUG */ -- cgit v0.12