From 0db7b873efe7e96497084f5d97e41820230427df Mon Sep 17 00:00:00 2001 From: Dennis Heimbigner Date: Fri, 16 Nov 2018 11:56:32 -0700 Subject: [PATCH 01/38] Remove // style comments from source code. We need to do this periodically because they sneek in. --- include/ncdispatch.h | 4 ---- ncgen/genbin.c | 10 ++++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/ncdispatch.h b/include/ncdispatch.h index dad91f6837..67e3387ef0 100644 --- a/include/ncdispatch.h +++ b/include/ncdispatch.h @@ -107,10 +107,6 @@ typedef struct NC_MPI_INFO { /* Define known dispatch tables and initializers */ -/*Forward*/ -// typedef struct NC_Dispatch NC_Dispatch; - - extern int NCDISPATCH_initialize(void); extern int NCDISPATCH_finalize(void); diff --git a/ncgen/genbin.c b/ncgen/genbin.c index 75d3a57402..82cc6833ff 100644 --- a/ncgen/genbin.c +++ b/ncgen/genbin.c @@ -449,10 +449,12 @@ genbin_writevar(Generator* generator, Symbol* vsym, Bytebuffer* memory, stat = nc_put_vara(vsym->container->nc_id, vsym->nc_id, start, count, data); } check_err(stat,__LINE__,__FILE__); -// /* Reclaim the data */ -// stat = ncaux_reclaim_data(vsym->container->nc_id, vsym->typ.basetype->nc_id, data, nelems); -// check_err(stat,__LINE__,__FILE__); -// bbClear(memory); /* reclaim top-level memory */ +#if 0 + /* Reclaim the data */ + stat = ncaux_reclaim_data(vsym->container->nc_id, vsym->typ.basetype->nc_id, data, nelems); + check_err(stat,__LINE__,__FILE__); + bbClear(memory); /* reclaim top-level memory */ +#endif return stat; } From 4bb92b77db1178f002215f2da02cad6d7b1c7ed7 Mon Sep 17 00:00:00 2001 From: Dennis Heimbigner Date: Fri, 16 Nov 2018 15:31:37 -0700 Subject: [PATCH 02/38] Fix error report coming out of nc4info.c re: issue https://github.com/Unidata/netcdf-c/issues/1207 The NC4_get_provenance is generating a spurious error message. This properly suppresses it. --- include/hdf5internal.h | 29 +++++++++ include/nc4internal.h | 31 ---------- libhdf5/nc4info.c | 134 ++++++++++++++++++++++++----------------- liblib/nc_initialize.c | 1 + 4 files changed, 110 insertions(+), 85 deletions(-) diff --git a/include/hdf5internal.h b/include/hdf5internal.h index 8cd16b7718..6b9de3002b 100644 --- a/include/hdf5internal.h +++ b/include/hdf5internal.h @@ -94,4 +94,33 @@ int nc4_detect_preserve_dimids(NC_GRP_INFO_T *grp, nc_bool_t *bad_coord_orderp); int hdf5_set_log_level(); int nc4_get_fill_value(NC_FILE_INFO_T *h5, NC_VAR_INFO_T *var, void **fillp); +/* Provenance Management (moved from nc4internal.h) */ +/* Initialize the fileinfo global state */ +extern int NC4_provenance_init(); + +/* Finalize the fileinfo global state */ +extern int NC4_provenance_finalize(); + +/* Extract the provenance from a file, using dfalt as default */ +extern int NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NCPROPINFO* dfalt); + +/* Set the provenance for a created file using dfalt as default */ +extern int NC4_set_provenance(NC_FILE_INFO_T* file, const struct NCPROPINFO* dfalt); + +/* Recover memory of an NCPROVENANCE object */ +extern int NC4_free_provenance(struct NCPROVENANCE* prov); + +extern int NC4_hdf5get_libversion(unsigned*,unsigned*,unsigned*);/*libsrc4/nc4hdf.c*/ +extern int NC4_hdf5get_superblock(struct NC_FILE_INFO*, int*);/*libsrc4/nc4hdf.c*/ +extern int NC4_isnetcdf4(struct NC_FILE_INFO*); /*libsrc4/nc4hdf.c*/ + +/* Convert a NCPROPINFO instance to a single string. */ +extern int NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap); + +/* Use HDF5 API to read the _NCProperties attribute */ +extern int NC4_read_ncproperties(NC_FILE_INFO_T*); + +/* Use HDF5 API to write the _NCProperties attribute */ +extern int NC4_write_ncproperties(NC_FILE_INFO_T*); + #endif /* _HDF5INTERNAL_ */ diff --git a/include/nc4internal.h b/include/nc4internal.h index fdde906c83..eb8cdff124 100644 --- a/include/nc4internal.h +++ b/include/nc4internal.h @@ -502,35 +502,4 @@ struct NCPROVENANCE { /* Provenance Initialization */ extern struct NCPROPINFO globalpropinfo; -/* Initialize the fileinfo global state */ -extern int NC4_provenance_init(); - -/* Finalize the fileinfo global state */ -extern int NC4_provenance_finalize(); - -/* Write the properties attribute to file. */ -extern int NC4_put_ncproperties(NC_FILE_INFO_T* file); - -/* Extract the provenance from a file, using dfalt as default */ -extern int NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NCPROPINFO* dfalt); - -/* Set the provenance for a created file using dfalt as default */ -extern int NC4_set_provenance(NC_FILE_INFO_T* file, const struct NCPROPINFO* dfalt); - -/* Recover memory of an NCPROVENANCE object */ -extern int NC4_free_provenance(struct NCPROVENANCE* prov); - -extern int NC4_hdf5get_libversion(unsigned*,unsigned*,unsigned*);/*libsrc4/nc4hdf.c*/ -extern int NC4_hdf5get_superblock(struct NC_FILE_INFO*, int*);/*libsrc4/nc4hdf.c*/ -extern int NC4_isnetcdf4(struct NC_FILE_INFO*); /*libsrc4/nc4hdf.c*/ - -/* Convert a NCPROPINFO instance to a single string. */ -extern int NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap); - -/* Use HDF5 API to read the _NCProperties attribute */ -extern int NC4_read_ncproperties(NC_FILE_INFO_T*); - -/* Use HDF5 API to write the _NCProperties attribute */ -extern int NC4_write_ncproperties(NC_FILE_INFO_T*); - #endif /* _NC4INTERNAL_ */ diff --git a/libhdf5/nc4info.c b/libhdf5/nc4info.c index 92ee18edff..a6a34355ab 100644 --- a/libhdf5/nc4info.c +++ b/libhdf5/nc4info.c @@ -258,10 +258,12 @@ NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap) NCbytes* buffer = NULL; char sversion[64]; + LOG((3, "%s", __func__)); + if(info == NULL || info->version == 0 || propdatap == NULL) {stat = NC_EINVAL; goto done;} - *propdatap = NULL; + *propdatap = NULL; buffer = ncbytesnew(); if(!buffer) {stat = NC_ENOMEM; goto done;} @@ -291,50 +293,6 @@ NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap) return stat; } -#if 0 -/** - * @internal Write the properties attribute to file. - * - * @param h5 Pointer to HDF5 file info struct. - * - * @return ::NC_NOERR No error. - * @author Dennis Heimbigner - */ -int -NC4_put_ncproperties(NC_FILE_INFO_T* file) -{ - int ncstat = NC_NOERR; - char* text = NULL; - - /* Get root group */ - grp = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; - /* See if the NCPROPS attribute exists */ - if(H5Aexists(grp,NCPROPS) <= 0) { /* Does not exist */ - ncstat = NC4_buildpropinfo(&h5->fileinfo->propattr,&text); - if(text == NULL || ncstat != NC_NOERR) { - goto done; - } - /* Create a datatype to refer to. */ - HCHECK((atype = H5Tcopy(H5T_C_S1))); - HCHECK((H5Tset_cset(atype, H5T_CSET_ASCII))); - HCHECK((H5Tset_size(atype, strlen(text)+1))); /*keep nul term */ - HCHECK((aspace = H5Screate(H5S_SCALAR))); - HCHECK((attid = H5Acreate(grp, NCPROPS, atype, aspace, H5P_DEFAULT))); - HCHECK((H5Awrite(attid, atype, text))); - } - done: - if(text != NULL) { - free(text); - text = NULL; - } - - if(attid >= 0) HCHECK((H5Aclose(attid))); - if(aspace >= 0) HCHECK((H5Sclose(aspace))); - if(atype >= 0) HCHECK((H5Tclose(atype))); - return ncstat; -} -#endif - /** * @internal * @@ -357,7 +315,10 @@ NC4_set_provenance(NC_FILE_INFO_T* file, const struct NCPROPINFO* dfalt) struct NCPROVENANCE* provenance = NULL; int superblock = -1; + LOG((3, "%s: ncid 0x%x", __func__, file->root_grp->hdr.id)); + assert(file->provenance == NULL); + provenance = calloc(1,sizeof(struct NCPROVENANCE)); if(provenance == NULL) {ncstat = NC_ENOMEM; goto done;} @@ -420,6 +381,8 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC int v = 0; int superblock = -1; + LOG((3, "%s: ncid 0x%x propstring %s", __func__, file->root_grp->hdr.id, propstring)); + assert(file->provenance == NULL); if((file->provenance = calloc(1,sizeof(struct NCPROVENANCE))) == NULL) {ncstat = NC_ENOMEM; goto done;} @@ -454,7 +417,6 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC provenance->propattr.version = v; } else {ncstat = NC_EINVAL; goto done;} /* bad _NCProperties attribute */ -#if 0 /* Now, rebuild from version 1 to version 2 if necessary */ if(provenance->propattr.version == 1) { int i; @@ -469,10 +431,9 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC else continue; /* ignore */ /* Do any rename */ nclistset(list,i,strdup(newname)); - if(name) free(name); + if(name) {free(name); name = NULL;} } } -#endif } done: if(name != NULL) free(name); @@ -492,6 +453,8 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC int NC4_free_provenance(struct NCPROVENANCE* prov) { + LOG((3, "%s", __func__)); + if(prov == NULL) return NC_NOERR; if(prov->propattr.properties != NULL) nclistfreeall(prov->propattr.properties); @@ -514,6 +477,8 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) H5T_class_t t_class; hsize_t size; + LOG((3, "%s", __func__)); + hdf5grpid = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; if(H5Aexists(hdf5grpid,NCPROPS) <= 0) { /* Does not exist */ @@ -556,9 +521,11 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) if(ntype > 0 && H5Tclose(ntype) < 0) retval = NC_EHDFERR; /* For certain errors, actually fail, else log that attribute was invalid and ignore */ - if(retval != NC_ENOMEM && retval != NC_EHDFERR) { - LOG((0,"Invalid _NCProperties attribute")); - retval = NC_NOERR; + if(retval != NC_NOERR) { + if(retval != NC_ENOMEM && retval != NC_EHDFERR) { + LOG((0,"Invalid _NCProperties attribute: ignored")); + retval = NC_NOERR; + } } return retval; } @@ -574,6 +541,8 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) char* text = NULL; size_t len = 0; + LOG((3, "%s", __func__)); + /* If the file is read-only, return an error. */ if (h5->no_write) {retval = NC_EPERM; goto done;} @@ -594,12 +563,11 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) {retval = NC_EHDFERR; goto done;} if(H5Tset_cset(atype, H5T_CSET_ASCII) < 0) {retval = NC_EHDFERR; goto done;} - - /* Create NCPROPS attribute */ - len = strlen(text); if(H5Tset_size(atype, len) < 0) {retval = NC_EFILEMETA; goto done;} + + /* Create NCPROPS attribute */ if((aspace = H5Screate(H5S_SCALAR)) < 0) {retval = NC_EFILEMETA; goto done;} if ((attid = H5Acreate(hdf5grpid, NCPROPS, atype, aspace, H5P_DEFAULT)) < 0) @@ -607,6 +575,19 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) if (H5Awrite(attid, atype, text) < 0) {retval = NC_EFILEMETA; goto done;} +/* Verify */ +#if 0 +{ + hid_t spacev, typev; + hsize_t dsize, tsize; + typev = H5Aget_type(attid); + spacev = H5Aget_space(attid); + dsize = H5Aget_storage_size(attid); + tsize = H5Tget_size(typev); + fprintf(stderr,"dsize=%lu tsize=%lu\n",(unsigned long)dsize,(unsigned long)tsize); +} +#endif + done: if(text != NULL) free(text); /* Close out the HDF5 objects */ @@ -651,3 +632,48 @@ ncprintprovenance(struct NCPROVENANCE* prov) ncprintpropinfo(&prov->propattr); } +#if 0 +/** + * @internal Write the properties attribute to file. + * + * @param h5 Pointer to HDF5 file info struct. + * + * @return ::NC_NOERR No error. + * @author Dennis Heimbigner + */ +int +NC4_put_ncproperties(NC_FILE_INFO_T* file) +{ + int ncstat = NC_NOERR; + char* text = NULL; + + LOG((3, "%s: ncid 0x%x", __func__, file->root_grp->hdr.id); + + /* Get root group */ + grp = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; + /* See if the NCPROPS attribute exists */ + if(H5Aexists(grp,NCPROPS) <= 0) { /* Does not exist */ + ncstat = NC4_buildpropinfo(&h5->fileinfo->propattr,&text); + if(text == NULL || ncstat != NC_NOERR) { + goto done; + } + /* Create a datatype to refer to. */ + HCHECK((atype = H5Tcopy(H5T_C_S1))); + HCHECK((H5Tset_cset(atype, H5T_CSET_ASCII))); + HCHECK((H5Tset_size(atype, strlen(text)+1))); /*keep nul term */ + HCHECK((aspace = H5Screate(H5S_SCALAR))); + HCHECK((attid = H5Acreate(grp, NCPROPS, atype, aspace, H5P_DEFAULT))); + HCHECK((H5Awrite(attid, atype, text))); + } + done: + if(text != NULL) { + free(text); + text = NULL; + } + + if(attid >= 0) HCHECK((H5Aclose(attid))); + if(aspace >= 0) HCHECK((H5Sclose(aspace))); + if(atype >= 0) HCHECK((H5Tclose(atype))); + return ncstat; +} +#endif diff --git a/liblib/nc_initialize.c b/liblib/nc_initialize.c index 52df730fc1..453fa8e338 100644 --- a/liblib/nc_initialize.c +++ b/liblib/nc_initialize.c @@ -17,6 +17,7 @@ extern int NC3_finalize(void); #ifdef USE_NETCDF4 #include "nc4internal.h" +#include "hdf5internal.h" extern int NC4_initialize(void); extern int NC4_finalize(void); #endif From c824ad9ec968d8201eb4c6a76bb8fabc97ee95c0 Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Wed, 28 Nov 2018 15:48:08 -0700 Subject: [PATCH 03/38] further removal of libhdf5 code from libsrc4 --- Makefile.am | 6 +++- include/nc_provenance.h | 4 +-- libdispatch/dfile.c | 2 +- libhdf5/hdf5cache.c | 9 +++--- libhdf5/nc4hdf.c | 66 ----------------------------------------- libsrc4/nc4internal.c | 9 +++--- libsrc4/nc4var.c | 66 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 82 insertions(+), 80 deletions(-) diff --git a/Makefile.am b/Makefile.am index 190ee19da2..57cdbc0358 100644 --- a/Makefile.am +++ b/Makefile.am @@ -40,8 +40,12 @@ endif # Is the user building netCDF-4? if USE_NETCDF4 -H5_TEST_DIR = h5_test LIBSRC4_DIR = libsrc4 +endif + +# Is the user building with HDF5? +if USE_HDF5 +H5_TEST_DIR = h5_test LIBHDF5 = libhdf5 NC_TEST4 = nc_test4 endif diff --git a/include/nc_provenance.h b/include/nc_provenance.h index ef9825a3dc..18708a6322 100644 --- a/include/nc_provenance.h +++ b/include/nc_provenance.h @@ -1,14 +1,12 @@ /* Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. */ -/** /** * @file * @internal Contains information for creating provenance * info and/or displaying provenance info. * * @author Dennis Heimbigner, Ward Fisher - -/**************************************************/ + */ /** It has come to pass that we can't guarantee that this information is diff --git a/libdispatch/dfile.c b/libdispatch/dfile.c index 0447cc110b..9e16842412 100644 --- a/libdispatch/dfile.c +++ b/libdispatch/dfile.c @@ -2358,7 +2358,7 @@ NC_open(const char *path0, int omode, int basepe, size_t *chunksizehintp, dispatcher = NCP_dispatch_table; break; #endif -#if defined(USE_NETCDF4) +#if defined(USE_HDF5) case NC_FORMATX_NC4: dispatcher = HDF5_dispatch_table; break; diff --git a/libhdf5/hdf5cache.c b/libhdf5/hdf5cache.c index 5ae4a5ccc8..fcefa7456c 100644 --- a/libhdf5/hdf5cache.c +++ b/libhdf5/hdf5cache.c @@ -12,10 +12,11 @@ #include "config.h" #include "hdf5internal.h" -/* These hold the file caching settings for the library. */ -size_t nc4_chunk_cache_size = CHUNK_CACHE_SIZE; /**< Default chunk cache size. */ -size_t nc4_chunk_cache_nelems = CHUNK_CACHE_NELEMS; /**< Default chunk cache number of elements. */ -float nc4_chunk_cache_preemption = CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */ +/* These are the default chunk cache sizes for HDF5 files created or + * opened with netCDF-4. */ +extern size_t nc4_chunk_cache_size; +extern size_t nc4_chunk_cache_nelems; +extern float nc4_chunk_cache_preemption; /** * Set chunk cache size. Only affects files opened/created *after* it diff --git a/libhdf5/nc4hdf.c b/libhdf5/nc4hdf.c index a565e7e4c0..b61b6f8d2a 100644 --- a/libhdf5/nc4hdf.c +++ b/libhdf5/nc4hdf.c @@ -2318,72 +2318,6 @@ nc4_rec_match_dimscales(NC_GRP_INFO_T *grp) return retval; } -/** - * @internal Get the length, in bytes, of one element of a type in - * memory. - * - * @param h5 Pointer to HDF5 file info struct. - * @param xtype NetCDF type ID. - * @param len Pointer that gets length in bytes. - * - * @returns NC_NOERR No error. - * @returns NC_EBADTYPE Type not found. - * @author Ed Hartnett - */ -int -nc4_get_typelen_mem(NC_FILE_INFO_T *h5, nc_type xtype, size_t *len) -{ - NC_TYPE_INFO_T *type; - int retval; - - LOG((4, "%s xtype: %d", __func__, xtype)); - assert(len); - - /* If this is an atomic type, the answer is easy. */ - switch (xtype) - { - case NC_BYTE: - case NC_CHAR: - case NC_UBYTE: - *len = sizeof(char); - return NC_NOERR; - case NC_SHORT: - case NC_USHORT: - *len = sizeof(short); - return NC_NOERR; - case NC_INT: - case NC_UINT: - *len = sizeof(int); - return NC_NOERR; - case NC_FLOAT: - *len = sizeof(float); - return NC_NOERR; - case NC_DOUBLE: - *len = sizeof(double); - return NC_NOERR; - case NC_INT64: - case NC_UINT64: - *len = sizeof(long long); - return NC_NOERR; - case NC_STRING: - *len = sizeof(char *); - return NC_NOERR; - } - - /* See if var is compound type. */ - if ((retval = nc4_find_type(h5, xtype, &type))) - return retval; - - if (!type) - return NC_EBADTYPE; - - *len = type->size; - - LOG((5, "type->size: %d", type->size)); - - return NC_NOERR; -} - /** * @internal Get the class of a type * diff --git a/libsrc4/nc4internal.c b/libsrc4/nc4internal.c index 567af43853..c3e2598380 100644 --- a/libsrc4/nc4internal.c +++ b/libsrc4/nc4internal.c @@ -21,11 +21,10 @@ #include "ncdispatch.h" /* from libdispatch */ #include "ncutf8.h" -/* These are the default chunk cache sizes for HDF5 files created or - * opened with netCDF-4. */ -extern size_t nc4_chunk_cache_size; -extern size_t nc4_chunk_cache_nelems; -extern float nc4_chunk_cache_preemption; +/* These hold the file caching settings for the library. */ +size_t nc4_chunk_cache_size = CHUNK_CACHE_SIZE; /**< Default chunk cache size. */ +size_t nc4_chunk_cache_nelems = CHUNK_CACHE_NELEMS; /**< Default chunk cache number of elements. */ +float nc4_chunk_cache_preemption = CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */ #ifdef LOGGING /* This is the severity level of messages which will be logged. Use diff --git a/libsrc4/nc4var.c b/libsrc4/nc4var.c index 6d242c4443..9a01a0f449 100644 --- a/libsrc4/nc4var.c +++ b/libsrc4/nc4var.c @@ -1395,3 +1395,69 @@ nc4_get_default_fill_value(const NC_TYPE_INFO_T *type_info, void *fill_value) return NC_NOERR; } + +/** + * @internal Get the length, in bytes, of one element of a type in + * memory. + * + * @param h5 Pointer to HDF5 file info struct. + * @param xtype NetCDF type ID. + * @param len Pointer that gets length in bytes. + * + * @returns NC_NOERR No error. + * @returns NC_EBADTYPE Type not found. + * @author Ed Hartnett + */ +int +nc4_get_typelen_mem(NC_FILE_INFO_T *h5, nc_type xtype, size_t *len) +{ + NC_TYPE_INFO_T *type; + int retval; + + LOG((4, "%s xtype: %d", __func__, xtype)); + assert(len); + + /* If this is an atomic type, the answer is easy. */ + switch (xtype) + { + case NC_BYTE: + case NC_CHAR: + case NC_UBYTE: + *len = sizeof(char); + return NC_NOERR; + case NC_SHORT: + case NC_USHORT: + *len = sizeof(short); + return NC_NOERR; + case NC_INT: + case NC_UINT: + *len = sizeof(int); + return NC_NOERR; + case NC_FLOAT: + *len = sizeof(float); + return NC_NOERR; + case NC_DOUBLE: + *len = sizeof(double); + return NC_NOERR; + case NC_INT64: + case NC_UINT64: + *len = sizeof(long long); + return NC_NOERR; + case NC_STRING: + *len = sizeof(char *); + return NC_NOERR; + } + + /* See if var is compound type. */ + if ((retval = nc4_find_type(h5, xtype, &type))) + return retval; + + if (!type) + return NC_EBADTYPE; + + *len = type->size; + + LOG((5, "type->size: %d", type->size)); + + return NC_NOERR; +} From 02469ed3132a320caa2410417307cd8f7dfd2bbb Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Wed, 28 Nov 2018 15:50:38 -0700 Subject: [PATCH 04/38] updated libnetcdf.settings.in and changing makefile.am to adjust to possibility of netcdf-4 build without hdf5 --- liblib/Makefile.am | 4 +--- libnetcdf.settings.in | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/liblib/Makefile.am b/liblib/Makefile.am index 02c0599fea..da3cfe622c 100644 --- a/liblib/Makefile.am +++ b/liblib/Makefile.am @@ -41,7 +41,7 @@ libnetcdf_la_LIBADD += ${top_builddir}/libsrcp/libnetcdfp.la endif # USE_PNETCDF # + hdf5 -if USE_NETCDF4 +if USE_HDF5 AM_CPPFLAGS += -I${top_srcdir}/libhdf5 libnetcdf_la_LIBADD += ${top_builddir}/libhdf5/libnchdf5.la endif # USE_NETCDF4 @@ -66,10 +66,8 @@ endif # ENABLE_DAP4 # NetCDF-4 ... if USE_NETCDF4 - AM_CPPFLAGS += -I${top_srcdir}/libsrc4 libnetcdf_la_LIBADD += ${top_builddir}/libsrc4/libnetcdf4.la - endif #USE_NETCDF4 if ISCYGWIN diff --git a/libnetcdf.settings.in b/libnetcdf.settings.in index 29f734e9bc..56f552d892 100644 --- a/libnetcdf.settings.in +++ b/libnetcdf.settings.in @@ -26,6 +26,7 @@ Extra libraries: @LIBS@ -------- NetCDF-2 API: @HAS_NC2@ HDF4 Support: @HAS_HDF4@ +HDF5 Support: @HAS_HDF5@ NetCDF-4 API: @HAS_NC4@ NC-4 Parallel Support: @HAS_PARALLEL4@ PnetCDF Support: @HAS_PNETCDF@ From 1d7a9caad80044590e5983ad416150897a4e0314 Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Wed, 28 Nov 2018 15:51:25 -0700 Subject: [PATCH 05/38] removed HDF5 finalize from libsrc4 code --- libsrc4/nc4dispatch.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libsrc4/nc4dispatch.c b/libsrc4/nc4dispatch.c index 110b0144ac..95cb1f8867 100644 --- a/libsrc4/nc4dispatch.c +++ b/libsrc4/nc4dispatch.c @@ -78,6 +78,5 @@ NC4_initialize(void) int NC4_finalize(void) { - nc4_hdf5_finalize(); return NC_NOERR; } From 5d60ca1027ae69ee3685cf7744dba0c9ca57511d Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Wed, 28 Nov 2018 18:12:56 -0700 Subject: [PATCH 06/38] trying to fix classic build problem --- configure.ac | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 18e91b82a7..967c4c52c8 100644 --- a/configure.ac +++ b/configure.ac @@ -193,10 +193,6 @@ AC_ARG_ENABLE([netcdf-4], [AS_HELP_STRING([--disable-netcdf-4], [do not build with netcdf-4 (else HDF5 and zlib required)])]) test "x$enable_netcdf_4" = xno || enable_netcdf_4=yes -enable_hdf5=$enable_netcdf_4 -AC_MSG_CHECKING([whether we should build with HDF5]) -AC_MSG_RESULT([$enable_hdf5]) - # Synonym AC_ARG_ENABLE([netcdf4], [AS_HELP_STRING([--disable-netcdf4], [(just a synonym for --disable-netcdf-4)])]) @@ -206,6 +202,11 @@ enable_netcdf_4=no fi AC_MSG_RESULT([$enable_netcdf_4]) +# Does the user want to use HDF5? +enable_hdf5=$enable_netcdf_4 +AC_MSG_CHECKING([whether we should build with HDF5]) +AC_MSG_RESULT([$enable_hdf5]) + # Does the user require dynamic loading? # This is only for those hdf5 installs that support it. AC_MSG_CHECKING([do we require hdf5 dynamic-loading support]) From d51b221c6291243c8d457a4aee2159c1877e83ce Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Thu, 29 Nov 2018 06:10:39 -0700 Subject: [PATCH 07/38] move setting of var chunk cache to libhdf5 --- include/hdf5dispatch.h | 4 ++ include/nc4dispatch.h | 3 -- libhdf5/hdf5dispatch.c | 2 +- libhdf5/hdf5var.c | 86 +++++++++++++++++++++++++++++++++++++++++ libsrc4/nc4var.c | 88 ------------------------------------------ 5 files changed, 91 insertions(+), 92 deletions(-) diff --git a/include/hdf5dispatch.h b/include/hdf5dispatch.h index 4bd41f3a7b..e8a6359de8 100644 --- a/include/hdf5dispatch.h +++ b/include/hdf5dispatch.h @@ -49,6 +49,10 @@ extern "C" { int *no_fill, void *fill_valuep, int *endiannessp, unsigned int *idp, size_t *nparamsp, unsigned int *params); + EXTERNL int + NC4_HDF5_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, + float preemption); + #if defined(__cplusplus) } #endif diff --git a/include/nc4dispatch.h b/include/nc4dispatch.h index 7641360578..7cfeca13c6 100644 --- a/include/nc4dispatch.h +++ b/include/nc4dispatch.h @@ -253,9 +253,6 @@ extern "C" { EXTERNL int NC4_def_var_filter(int, int, unsigned int, size_t, const unsigned int*); - EXTERNL int - NC4_set_var_chunk_cache(int, int, size_t, size_t, float); - EXTERNL int NC4_get_var_chunk_cache(int, int, size_t *, size_t *, float *); diff --git a/libhdf5/hdf5dispatch.c b/libhdf5/hdf5dispatch.c index ec5e6a4b7f..7fcf723f91 100644 --- a/libhdf5/hdf5dispatch.c +++ b/libhdf5/hdf5dispatch.c @@ -98,7 +98,7 @@ NC4_def_var_fletcher32, NC4_def_var_chunking, NC4_def_var_endian, NC4_def_var_filter, -NC4_set_var_chunk_cache, +NC4_HDF5_set_var_chunk_cache, NC4_get_var_chunk_cache, #endif diff --git a/libhdf5/hdf5var.c b/libhdf5/hdf5var.c index c074d9f3b5..9f493be0c3 100644 --- a/libhdf5/hdf5var.c +++ b/libhdf5/hdf5var.c @@ -2084,3 +2084,89 @@ NC4_HDF5_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, contiguousp, chunksizesp, no_fill, fill_valuep, endiannessp, idp, nparamsp, params); } + +/** + * @internal Set chunk cache size for a variable. This is the internal + * function called by nc_set_var_chunk_cache(). + * + * @param ncid File ID. + * @param varid Variable ID. + * @param size Size in bytes to set cache. + * @param nelems Number of elements in cache. + * @param preemption Controls cache swapping. + * + * @returns ::NC_NOERR No error. + * @returns ::NC_EBADID Bad ncid. + * @returns ::NC_ENOTVAR Invalid variable ID. + * @returns ::NC_ESTRICTNC3 Attempting netcdf-4 operation on strict nc3 netcdf-4 file. + * @returns ::NC_EINVAL Invalid input. + * @returns ::NC_EHDFERR HDF5 error. + * @author Ed Hartnett + */ +int +NC4_HDF5_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, + float preemption) +{ + NC_GRP_INFO_T *grp; + NC_FILE_INFO_T *h5; + NC_VAR_INFO_T *var; + int retval; + + /* Check input for validity. */ + if (preemption < 0 || preemption > 1) + return NC_EINVAL; + + /* Find info for this file and group, and set pointer to each. */ + if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &grp, &h5))) + return retval; + assert(grp && h5); + + /* Find the var. */ + if (!(var = (NC_VAR_INFO_T *)ncindexith(grp->vars, varid))) + return NC_ENOTVAR; + assert(var && var->hdr.id == varid); + + /* Set the values. */ + var->chunk_cache_size = size; + var->chunk_cache_nelems = nelems; + var->chunk_cache_preemption = preemption; + + /* Reopen the dataset to bring new settings into effect. */ + if ((retval = nc4_reopen_dataset(grp, var))) + return retval; + return NC_NOERR; +} + +/** + * @internal A wrapper for NC4_set_var_chunk_cache(), we need this + * version for fortran. Negative values leave settings as they are. + * + * @param ncid File ID. + * @param varid Variable ID. + * @param size Size in bytes to set cache. + * @param nelems Number of elements in cache. + * @param preemption Controls cache swapping. + * + * @returns ::NC_NOERR for success + * @author Ed Hartnett + */ +int +nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, + int preemption) +{ + size_t real_size = H5D_CHUNK_CACHE_NBYTES_DEFAULT; + size_t real_nelems = H5D_CHUNK_CACHE_NSLOTS_DEFAULT; + float real_preemption = CHUNK_CACHE_PREEMPTION; + + if (size >= 0) + real_size = ((size_t) size) * MEGABYTE; + + if (nelems >= 0) + real_nelems = nelems; + + if (preemption >= 0) + real_preemption = preemption / 100.; + + return NC4_HDF5_set_var_chunk_cache(ncid, varid, real_size, real_nelems, + real_preemption); +} diff --git a/libsrc4/nc4var.c b/libsrc4/nc4var.c index 9a01a0f449..c314aba237 100644 --- a/libsrc4/nc4var.c +++ b/libsrc4/nc4var.c @@ -16,94 +16,6 @@ #include "hdf5internal.h" #include -/** - * @internal Set chunk cache size for a variable. This is the internal - * function called by nc_set_var_chunk_cache(). - * - * @param ncid File ID. - * @param varid Variable ID. - * @param size Size in bytes to set cache. - * @param nelems Number of elements in cache. - * @param preemption Controls cache swapping. - * - * @returns ::NC_NOERR No error. - * @returns ::NC_EBADID Bad ncid. - * @returns ::NC_ENOTVAR Invalid variable ID. - * @returns ::NC_ESTRICTNC3 Attempting netcdf-4 operation on strict nc3 netcdf-4 file. - * @returns ::NC_EINVAL Invalid input. - * @returns ::NC_EHDFERR HDF5 error. - * @author Ed Hartnett - */ -int -NC4_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, - float preemption) -{ - NC *nc; - NC_GRP_INFO_T *grp; - NC_FILE_INFO_T *h5; - NC_VAR_INFO_T *var; - int retval; - - /* Check input for validity. */ - if (preemption < 0 || preemption > 1) - return NC_EINVAL; - - /* Find info for this file and group, and set pointer to each. */ - if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5))) - return retval; - assert(nc && grp && h5); - - /* Find the var. */ - var = (NC_VAR_INFO_T*)ncindexith(grp->vars,varid); - if(!var) - return NC_ENOTVAR; - assert(var && var->hdr.id == varid); - - /* Set the values. */ - var->chunk_cache_size = size; - var->chunk_cache_nelems = nelems; - var->chunk_cache_preemption = preemption; - - if ((retval = nc4_reopen_dataset(grp, var))) - return retval; - - return NC_NOERR; -} - -/** - * @internal A wrapper for NC4_set_var_chunk_cache(), we need this - * version for fortran. Negative values leave settings as they are. - * - * @param ncid File ID. - * @param varid Variable ID. - * @param size Size in bytes to set cache. - * @param nelems Number of elements in cache. - * @param preemption Controls cache swapping. - * - * @returns ::NC_NOERR for success - * @author Ed Hartnett - */ -int -nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, - int preemption) -{ - size_t real_size = H5D_CHUNK_CACHE_NBYTES_DEFAULT; - size_t real_nelems = H5D_CHUNK_CACHE_NSLOTS_DEFAULT; - float real_preemption = CHUNK_CACHE_PREEMPTION; - - if (size >= 0) - real_size = ((size_t) size) * MEGABYTE; - - if (nelems >= 0) - real_nelems = nelems; - - if (preemption >= 0) - real_preemption = preemption / 100.; - - return NC4_set_var_chunk_cache(ncid, varid, real_size, real_nelems, - real_preemption); -} - /** * @internal This is called by nc_get_var_chunk_cache(). Get chunk * cache size for a variable. From 104b4b50fe692169b95c732183ff98aea7e8240a Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Thu, 29 Nov 2018 06:25:34 -0700 Subject: [PATCH 08/38] clean up --- libhdf5/hdf5var.c | 38 +++++++++++++++++--------------------- libsrc4/nc4attr.c | 1 - 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/libhdf5/hdf5var.c b/libhdf5/hdf5var.c index 9f493be0c3..a9c963cede 100644 --- a/libhdf5/hdf5var.c +++ b/libhdf5/hdf5var.c @@ -106,7 +106,7 @@ check_chunksizes(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, const size_t *chunksize * @returns ::NC_NOERR for success * @returns ::NC_EBADID Bad ncid. * @returns ::NC_ENOTVAR Invalid variable ID. - * @author Ed Hartnett + * @author Ed Hartnett, Dennis Heimbigner */ static int nc4_find_default_chunksizes2(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var) @@ -570,11 +570,9 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, const size_t *chunksizes, int *no_fill, const void *fill_value, int *endianness) { - NC *nc; NC_GRP_INFO_T *grp; NC_FILE_INFO_T *h5; NC_VAR_INFO_T *var; - NC_FILE_INFO_T *nc4_info=NULL; int d; int retval; @@ -585,26 +583,23 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find info for this file and group, and set pointer to each. */ - if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5))) + if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &grp, &h5))) return retval; - assert(nc && grp && h5); + assert(grp && h5); /* Trying to write to a read-only file? No way, Jose! */ if (h5->no_write) return NC_EPERM; /* Find the var. */ - var = (NC_VAR_INFO_T*)ncindexith(grp->vars,varid); - if(!var) + if (!(var = (NC_VAR_INFO_T *)ncindexith(grp->vars, varid))) return NC_ENOTVAR; assert(var && var->hdr.id == varid); /* Can't turn on parallel and deflate/fletcher32/szip/shuffle. */ - nc4_info = NC4_DATA(nc); - if (nc4_info->parallel == NC_TRUE) { + if (h5->parallel == NC_TRUE) if (deflate || fletcher32 || shuffle) return NC_EINVAL; - } /* If the HDF5 dataset has already been created, then it is too * late to set all the extra stuff. */ @@ -734,7 +729,8 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, return retval; /* Create a _FillValue attribute. */ - if ((retval = nc_put_att(ncid, varid, _FillValue, var->type_info->hdr.id, 1, fill_value))) + if ((retval = nc_put_att(ncid, varid, _FillValue, var->type_info->hdr.id, + 1, fill_value))) return retval; } @@ -2112,29 +2108,29 @@ NC4_HDF5_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, NC_VAR_INFO_T *var; int retval; - /* Check input for validity. */ + /* Check input for validity. */ if (preemption < 0 || preemption > 1) return NC_EINVAL; - /* Find info for this file and group, and set pointer to each. */ + /* Find info for this file and group, and set pointer to each. */ if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &grp, &h5))) return retval; assert(grp && h5); - /* Find the var. */ + /* Find the var. */ if (!(var = (NC_VAR_INFO_T *)ncindexith(grp->vars, varid))) return NC_ENOTVAR; assert(var && var->hdr.id == varid); - /* Set the values. */ + /* Set the values. */ var->chunk_cache_size = size; var->chunk_cache_nelems = nelems; var->chunk_cache_preemption = preemption; - /* Reopen the dataset to bring new settings into effect. */ + /* Reopen the dataset to bring new settings into effect. */ if ((retval = nc4_reopen_dataset(grp, var))) return retval; - return NC_NOERR; + return NC_NOERR; } /** @@ -2158,15 +2154,15 @@ nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, size_t real_nelems = H5D_CHUNK_CACHE_NSLOTS_DEFAULT; float real_preemption = CHUNK_CACHE_PREEMPTION; - if (size >= 0) + if (size >= 0) real_size = ((size_t) size) * MEGABYTE; - if (nelems >= 0) + if (nelems >= 0) real_nelems = nelems; - if (preemption >= 0) + if (preemption >= 0) real_preemption = preemption / 100.; - return NC4_HDF5_set_var_chunk_cache(ncid, varid, real_size, real_nelems, + return NC4_HDF5_set_var_chunk_cache(ncid, varid, real_size, real_nelems, real_preemption); } diff --git a/libsrc4/nc4attr.c b/libsrc4/nc4attr.c index 3e86df54eb..72e1f6731b 100644 --- a/libsrc4/nc4attr.c +++ b/libsrc4/nc4attr.c @@ -18,7 +18,6 @@ #include "nc.h" #include "nc4internal.h" -#include "hdf5internal.h" #include "nc4dispatch.h" #include "ncdispatch.h" From e55b9d697e650c9be1b414ebbcc50b7c8982505f Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Thu, 29 Nov 2018 07:02:31 -0700 Subject: [PATCH 09/38] separation of libhdf5 from libsrc4 --- configure.ac | 54 +++++++++++++++++++++---------------------- libsrc4/error4.c | 6 ++++- libsrc4/nc4internal.c | 5 +--- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/configure.ac b/configure.ac index 967c4c52c8..5e72a9df26 100644 --- a/configure.ac +++ b/configure.ac @@ -203,8 +203,14 @@ fi AC_MSG_RESULT([$enable_netcdf_4]) # Does the user want to use HDF5? -enable_hdf5=$enable_netcdf_4 AC_MSG_CHECKING([whether we should build with HDF5]) +enable_hdf5=$enable_netcdf_4 +dnl AC_ARG_ENABLE([hdf5], [AS_HELP_STRING([--disable-hdf5], +dnl [do not build with HDF5])]) +dnl test "x$enable_hdf5" = xno || enable_hdf5=yes +dnl if test "x$enable_netcdf_4" = xno ; then +dnl enable_hdf5=no +dnl fi AC_MSG_RESULT([$enable_hdf5]) # Does the user require dynamic loading? @@ -1007,9 +1013,13 @@ AC_CHECK_LIB([m], [floor], [], [AC_MSG_ERROR([Can't find or link to the math library.])]) if test "x$enable_netcdf_4" = xyes; then + AC_DEFINE([USE_NETCDF4], [1], [if true, build netCDF-4]) +fi + +hdf5_parallel=no +if test "x$enable_hdf5" = xyes; then AC_DEFINE([USE_HDF5], [1], [if true, use HDF5]) - AC_DEFINE([USE_NETCDF4], [1], [if true, build netCDF-4]) AC_DEFINE([H5_USE_16_API], [1], [use HDF5 1.6 API]) # Check for the main hdf5 and hdf5_hl library. @@ -1021,20 +1031,10 @@ if test "x$enable_netcdf_4" = xyes; then AC_CHECK_HEADERS([hdf5.h], [], [AC_MSG_ERROR([Compiling a test with HDF5 failed. Either hdf5.h cannot be found, or config.log should be checked for other reason.])]) AC_CHECK_FUNCS([H5Z_SZIP]) - hdf5_parallel=no # H5Pset_fapl_mpiposix and H5Pget_fapl_mpiposix have been removed since HDF5 1.8.12. # Use H5Pset_fapl_mpio and H5Pget_fapl_mpio, instead. AC_CHECK_FUNCS([H5Pget_fapl_mpio H5Pset_deflate H5Z_SZIP H5free_memory H5Pset_libver_bounds H5Pset_all_coll_metadata_ops]) - # The user may have parallel HDF5 based on MPI POSIX. - # if test "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then - # AC_DEFINE([USE_PARALLEL_POSIX], [1], [if true, compile in parallel netCDF-4 based on MPI/POSIX]) - # fi - - # The user may have parallel HDF5 based on MPI mumble mumble. - # if test "x$ac_cv_func_H5Pget_fapl_mpio" = xyes; then - # AC_DEFINE([USE_PARALLEL_MPIO], [1], [if true, compile in parallel netCDF-4 based on MPI/IO]) - # fi # Check to see if HDF5 library has collective metadata APIs, (HDF5 >= 1.10.0) if test "x$ac_cv_func_H5Pset_all_coll_metadata_ops" = xyes; then @@ -1042,7 +1042,6 @@ if test "x$enable_netcdf_4" = xyes; then fi # If parallel is available in hdf5, enable it in the C code. Also add some stuff to netcdf.h. - hdf5_parallel=no if test "x$ac_cv_func_H5Pget_fapl_mpio" = xyes -o "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then hdf5_parallel=yes fi @@ -1073,21 +1072,22 @@ if test "x$enable_netcdf_4" = xyes; then AC_DEFINE([HDF5_HAS_LIBVER_BOUNDS], [1], [if true, netcdf4 file properties will be set using H5Pset_libver_bounds]) fi - # If the user wants hdf4 built in, check it out. - if test "x$enable_hdf4" = xyes; then - AC_CHECK_LIB([jpeg], [jpeg_CreateCompress], [], - [AC_MSG_ERROR([Jpeg library required for --enable-hdf4 builds.])]) - AC_CHECK_HEADERS([mfhdf.h], [], [nc_mfhdf_h_missing=yes]) - if test "x$nc_mfhdf_h_missing" = xyes; then - AC_MSG_ERROR([Cannot find mfhdf.h, yet --enable-hdf4 was used.]) - fi - AC_CHECK_LIB([df], [Hclose], [], [AC_MSG_ERROR([Can't find or link to the hdf4 df library. See config.log for errors.])]) - AC_CHECK_LIB([mfhdf], [NC_arrayfill], [AC_MSG_ERROR([HDF4 library must be built with --disable-netcdf.])], []) - AC_CHECK_LIB([mfhdf], [SDcreate], [], [AC_MSG_ERROR([Can't find or link to the hdf4 mfhdf library. See config.log for errors.])]) +fi - AC_CHECK_LIB([jpeg], [jpeg_set_quality], [], [AC_MSG_ERROR([Can't find or link to the jpeg library (required by hdf4). See config.log for errors.])]) - AC_DEFINE([USE_HDF4], [1], [if true, use HDF4 too]) +# If the user wants hdf4 built in, check it out. +if test "x$enable_hdf4" = xyes; then + AC_CHECK_LIB([jpeg], [jpeg_CreateCompress], [], + [AC_MSG_ERROR([Jpeg library required for --enable-hdf4 builds.])]) + AC_CHECK_HEADERS([mfhdf.h], [], [nc_mfhdf_h_missing=yes]) + if test "x$nc_mfhdf_h_missing" = xyes; then + AC_MSG_ERROR([Cannot find mfhdf.h, yet --enable-hdf4 was used.]) fi + AC_CHECK_LIB([df], [Hclose], [], [AC_MSG_ERROR([Can't find or link to the hdf4 df library. See config.log for errors.])]) + AC_CHECK_LIB([mfhdf], [NC_arrayfill], [AC_MSG_ERROR([HDF4 library must be built with --disable-netcdf.])], []) + AC_CHECK_LIB([mfhdf], [SDcreate], [], [AC_MSG_ERROR([Can't find or link to the hdf4 mfhdf library. See config.log for errors.])]) + + AC_CHECK_LIB([jpeg], [jpeg_set_quality], [], [AC_MSG_ERROR([Can't find or link to the jpeg library (required by hdf4). See config.log for errors.])]) + AC_DEFINE([USE_HDF4], [1], [if true, use HDF4 too]) fi # There are several cases for parallelism: @@ -1097,7 +1097,7 @@ fi # b. do want to use it for netcdf4 # Should we provide parallel io for netcdf-4? -if test "x$enable_netcdf_4" = xyes ; then +if test "x$enable_hdf5" = xyes ; then AC_ARG_ENABLE([parallel4], [AS_HELP_STRING([--disable-parallel4], [disable parallel I/O for netcdf-4, even if it's enabled in libhdf5])], diff --git a/libsrc4/error4.c b/libsrc4/error4.c index bdd2345a55..9ee7865073 100644 --- a/libsrc4/error4.c +++ b/libsrc4/error4.c @@ -17,7 +17,9 @@ redistribution conditions. */ #include #include #include "assert.h" +#ifdef USE_HDF5 #include +#endif /* USE_HDF5 */ /* This contents of this file get skipped if LOGGING is not defined * during compile. */ @@ -64,10 +66,12 @@ nc_log(int severity, const char *fmt, ...) fflush(stderr); } -void +void nc_log_hdf5(void) { +#ifdef USE_HDF5 H5Eprint(NULL); +#endif /* USE_HDF5 */ } #endif /* ifdef LOGGING */ diff --git a/libsrc4/nc4internal.c b/libsrc4/nc4internal.c index c3e2598380..bb510da6b9 100644 --- a/libsrc4/nc4internal.c +++ b/libsrc4/nc4internal.c @@ -1412,10 +1412,7 @@ int nc_set_log_level(int new_level) { #ifdef LOGGING - if(!nc4_hdf5_initialized) - nc4_hdf5_initialize(); - - /* Now remember the new level. */ + /* Remember the new level. */ nc_log_level = new_level; LOG((4, "log_level changed to %d", nc_log_level)); #endif /*LOGGING */ From 433499771b0e7950157508b963a3593ab3bb638f Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Fri, 30 Nov 2018 07:50:15 -0700 Subject: [PATCH 10/38] moved special att reading function to libhdf5 --- libhdf5/hdf5attr.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++ libsrc4/nc4attr.c | 69 -------------------------------------------- 2 files changed, 72 insertions(+), 69 deletions(-) diff --git a/libhdf5/hdf5attr.c b/libhdf5/hdf5attr.c index b190585123..a04968e34d 100644 --- a/libhdf5/hdf5attr.c +++ b/libhdf5/hdf5attr.c @@ -59,6 +59,77 @@ getattlist(NC_GRP_INFO_T *grp, int varid, NC_VAR_INFO_T **varp, return NC_NOERR; } +/** + * @internal Get one of three special attributes, NCPROPS, + * ISNETCDF4ATT, and SUPERBLOCKATT. These atts are not all really in + * the file, they are constructed on the fly. + * + * @param h5 Pointer to HDF5 file info struct. + * @param name Name of attribute. + * @param filetypep Pointer that gets type of the attribute data in + * file. + * @param mem_type Type of attribute data in memory. + * @param lenp Pointer that gets length of attribute array. + * @param attnump Pointer that gets the attribute number. + * @param data Attribute data. + * + * @return ::NC_NOERR No error. + * @return ::NC_EBADID Bad ncid. + * @return ::NC_ERANGE Data conversion out of range. + * @author Dennis Heimbigner + */ +int +nc4_get_att_special(NC_FILE_INFO_T* h5, const char* name, + nc_type* filetypep, nc_type mem_type, size_t* lenp, + int* attnump, void* data) +{ + /* Fail if asking for att id */ + if(attnump) + return NC_EATTMETA; + + if(strcmp(name,NCPROPS)==0) { + char* propdata = NULL; + int stat = NC_NOERR; + int len; + if(h5->provenance->propattr.version == 0) + return NC_ENOTATT; + if(mem_type == NC_NAT) mem_type = NC_CHAR; + if(mem_type != NC_CHAR) + return NC_ECHAR; + if(filetypep) *filetypep = NC_CHAR; + stat = NC4_buildpropinfo(&h5->provenance->propattr, &propdata); + if(stat != NC_NOERR) return stat; + len = strlen(propdata); + if(lenp) *lenp = len; + if(data) strncpy((char*)data,propdata,len+1); + free(propdata); + } else if(strcmp(name,ISNETCDF4ATT)==0 + || strcmp(name,SUPERBLOCKATT)==0) { + unsigned long long iv = 0; + if(filetypep) *filetypep = NC_INT; + if(lenp) *lenp = 1; + if(strcmp(name,SUPERBLOCKATT)==0) + iv = (unsigned long long)h5->provenance->superblockversion; + else /* strcmp(name,ISNETCDF4ATT)==0 */ + iv = NC4_isnetcdf4(h5); + if(mem_type == NC_NAT) mem_type = NC_INT; + if(data) + switch (mem_type) { + case NC_BYTE: *((char*)data) = (char)iv; break; + case NC_SHORT: *((short*)data) = (short)iv; break; + case NC_INT: *((int*)data) = (int)iv; break; + case NC_UBYTE: *((unsigned char*)data) = (unsigned char)iv; break; + case NC_USHORT: *((unsigned short*)data) = (unsigned short)iv; break; + case NC_UINT: *((unsigned int*)data) = (unsigned int)iv; break; + case NC_INT64: *((long long*)data) = (long long)iv; break; + case NC_UINT64: *((unsigned long long*)data) = (unsigned long long)iv; break; + default: + return NC_ERANGE; + } + } + return NC_NOERR; +} + /** * @internal I think all atts should be named the exact same thing, to * avoid confusion! @@ -835,3 +906,4 @@ NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type mem return nc4_get_att_ptrs(h5, grp, var, name, NULL, memtype, NULL, NULL, value); } + diff --git a/libsrc4/nc4attr.c b/libsrc4/nc4attr.c index 72e1f6731b..5abede0a31 100644 --- a/libsrc4/nc4attr.c +++ b/libsrc4/nc4attr.c @@ -21,75 +21,6 @@ #include "nc4dispatch.h" #include "ncdispatch.h" -/** - * @internal Get special informatation about the attribute. - * - * @param h5 Pointer to HDF5 file info struct. - * @param name Name of attribute. - * @param filetypep Pointer that gets type of the attribute data in - * file. - * @param mem_type Type of attribute data in memory. - * @param lenp Pointer that gets length of attribute array. - * @param attnump Pointer that gets the attribute number. - * @param data Attribute data. - * - * @return ::NC_NOERR No error. - * @return ::NC_EBADID Bad ncid. - * @return ::NC_ERANGE Data conversion out of range. - * @author Dennis Heimbigner - */ -static int -nc4_get_att_special(NC_FILE_INFO_T* h5, const char* name, - nc_type* filetypep, nc_type mem_type, size_t* lenp, - int* attnump, void* data) -{ - /* Fail if asking for att id */ - if(attnump) - return NC_EATTMETA; - - if(strcmp(name,NCPROPS)==0) { - char* propdata = NULL; - int stat = NC_NOERR; - int len; - if(h5->provenance->propattr.version == 0) - return NC_ENOTATT; - if(mem_type == NC_NAT) mem_type = NC_CHAR; - if(mem_type != NC_CHAR) - return NC_ECHAR; - if(filetypep) *filetypep = NC_CHAR; - stat = NC4_buildpropinfo(&h5->provenance->propattr, &propdata); - if(stat != NC_NOERR) return stat; - len = strlen(propdata); - if(lenp) *lenp = len; - if(data) strncpy((char*)data,propdata,len+1); - free(propdata); - } else if(strcmp(name,ISNETCDF4ATT)==0 - || strcmp(name,SUPERBLOCKATT)==0) { - unsigned long long iv = 0; - if(filetypep) *filetypep = NC_INT; - if(lenp) *lenp = 1; - if(strcmp(name,SUPERBLOCKATT)==0) - iv = (unsigned long long)h5->provenance->superblockversion; - else /* strcmp(name,ISNETCDF4ATT)==0 */ - iv = NC4_isnetcdf4(h5); - if(mem_type == NC_NAT) mem_type = NC_INT; - if(data) - switch (mem_type) { - case NC_BYTE: *((char*)data) = (char)iv; break; - case NC_SHORT: *((short*)data) = (short)iv; break; - case NC_INT: *((int*)data) = (int)iv; break; - case NC_UBYTE: *((unsigned char*)data) = (unsigned char)iv; break; - case NC_USHORT: *((unsigned short*)data) = (unsigned short)iv; break; - case NC_UINT: *((unsigned int*)data) = (unsigned int)iv; break; - case NC_INT64: *((long long*)data) = (long long)iv; break; - case NC_UINT64: *((unsigned long long*)data) = (unsigned long long)iv; break; - default: - return NC_ERANGE; - } - } - return NC_NOERR; -} - /** * @internal Get or put attribute metadata from our linked list of * file info. Always locate the attribute by name, never by attnum. From 77d0922d49e282ae3741fcc817bf04e9adc3307e Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Fri, 30 Nov 2018 08:59:58 -0700 Subject: [PATCH 11/38] starting to deal with normalized name in HDF5 attribute code --- include/hdf5internal.h | 2 +- libhdf5/hdf5attr.c | 17 ++++++++++------- libhdf5/hdf5internal.c | 8 +++++++- libhdf5/hdf5var.c | 5 +++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/include/hdf5internal.h b/include/hdf5internal.h index 851138c410..4ed7db828d 100644 --- a/include/hdf5internal.h +++ b/include/hdf5internal.h @@ -142,7 +142,7 @@ int nc4_get_fill_value(NC_FILE_INFO_T *h5, NC_VAR_INFO_T *var, void **fillp); /* Find file, group, var, and att info, doing lazy reads if needed. */ int nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, - int use_name, NC_FILE_INFO_T **h5, + int use_name, char *norm_name, NC_FILE_INFO_T **h5, NC_GRP_INFO_T **grp, NC_VAR_INFO_T **var, NC_ATT_INFO_T **att); diff --git a/libhdf5/hdf5attr.c b/libhdf5/hdf5attr.c index a04968e34d..cb53c9ff77 100644 --- a/libhdf5/hdf5attr.c +++ b/libhdf5/hdf5attr.c @@ -798,14 +798,15 @@ NC4_HDF5_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; return nc4_get_att_ptrs(h5, grp, var, name, xtypep, NC_NAT, lenp, NULL, NULL); @@ -828,14 +829,15 @@ NC4_HDF5_inq_attid(int ncid, int varid, const char *name, int *attnump) NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; return nc4_get_att_ptrs(h5, grp, var, name, NULL, NC_NAT, NULL, attnump, NULL); @@ -864,7 +866,7 @@ NC4_HDF5_inq_attname(int ncid, int varid, int attnum, char *name) /* Find the file, group, and var info, and do lazy att read if * needed. */ if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, NULL, attnum, 0, NULL, - NULL, NULL, &att))) + NULL, NULL, NULL, &att))) return retval; assert(att); @@ -894,14 +896,15 @@ NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type mem NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; return nc4_get_att_ptrs(h5, grp, var, name, NULL, memtype, NULL, NULL, value); diff --git a/libhdf5/hdf5internal.c b/libhdf5/hdf5internal.c index f661c8a958..0d8a9d193b 100644 --- a/libhdf5/hdf5internal.c +++ b/libhdf5/hdf5internal.c @@ -661,6 +661,9 @@ nc4_rec_grp_HDF5_del(NC_GRP_INFO_T *grp) * @param attnum Number of attribute. * @param use_name If true, use the name to get the * attribute. Otherwise use the attnum. + * @param norm_name Pointer to storage of size NC_MAX_NAME + 1, + * which will get the normalized name, if use_name is true. Ignored if + * NULL. * @param h5 Pointer to pointer that gets file info struct. Ignored if * NULL. * @param grp Pointer to pointer that gets group info struct. Ignored @@ -678,7 +681,7 @@ nc4_rec_grp_HDF5_del(NC_GRP_INFO_T *grp) */ int nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, - int use_name, NC_FILE_INFO_T **h5, + int use_name, char *norm_name, NC_FILE_INFO_T **h5, NC_GRP_INFO_T **grp, NC_VAR_INFO_T **var, NC_ATT_INFO_T **att) { @@ -686,6 +689,7 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, NC_GRP_INFO_T *my_grp; NC_VAR_INFO_T *my_var = NULL; NC_ATT_INFO_T *my_att; + char my_norm_name[NC_MAX_NAME + 1] = ""; NCindex *attlist = NULL; int retval; @@ -731,6 +735,8 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, } /* Give the people what they want. */ + if (norm_name) + strncpy(norm_name, my_norm_name, NC_MAX_NAME); if (h5) *h5 = my_h5; if (grp) diff --git a/libhdf5/hdf5var.c b/libhdf5/hdf5var.c index a9c963cede..70c77db9b1 100644 --- a/libhdf5/hdf5var.c +++ b/libhdf5/hdf5var.c @@ -2062,14 +2062,15 @@ NC4_HDF5_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; assert(grp && h5); From d0587c9536708b75450f05712560cc182f2274fa Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Fri, 30 Nov 2018 09:14:53 -0700 Subject: [PATCH 12/38] more name normalization --- libhdf5/hdf5internal.c | 11 ++++++++++- libhdf5/hdf5var.c | 3 +-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libhdf5/hdf5internal.c b/libhdf5/hdf5internal.c index 0d8a9d193b..cb202fb754 100644 --- a/libhdf5/hdf5internal.c +++ b/libhdf5/hdf5internal.c @@ -696,6 +696,10 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, LOG((4, "%s: ncid %d varid %d attnum %d use_name %d", __func__, ncid, varid, attnum, use_name)); + /* Don't need to provide name unless getting att pointer and using + * use_name. */ + assert(!att || ((use_name && name) || !use_name)); + /* Find info for this file, group, and h5 info. */ if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &my_grp, &my_h5))) return retval; @@ -725,10 +729,15 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, } assert(attlist); + /* Normalize the name. */ + if (use_name && name) + if ((retval = nc4_normalize_name(name, my_norm_name))) + return retval; + /* Now find the attribute by name or number. */ if (att) { - my_att = use_name ? (NC_ATT_INFO_T *)ncindexlookup(attlist, name) : + my_att = use_name ? (NC_ATT_INFO_T *)ncindexlookup(attlist, my_norm_name) : (NC_ATT_INFO_T *)ncindexith(attlist, attnum); if (!my_att) return NC_ENOTATT; diff --git a/libhdf5/hdf5var.c b/libhdf5/hdf5var.c index 70c77db9b1..57333739ac 100644 --- a/libhdf5/hdf5var.c +++ b/libhdf5/hdf5var.c @@ -2062,14 +2062,13 @@ NC4_HDF5_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; - char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, NULL, 0, 0, NULL, &h5, &grp, &var, NULL))) return retval; assert(grp && h5); From b5ed407e9f7e27a2eeee2c612f46f12c1b9b23e9 Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Fri, 30 Nov 2018 13:28:18 -0700 Subject: [PATCH 13/38] better handling of normalizing names in HDF5 atts --- libhdf5/hdf5attr.c | 9 ++++++--- libhdf5/hdf5internal.c | 6 +++++- libsrc4/nc4attr.c | 20 ++++++++++---------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/libhdf5/hdf5attr.c b/libhdf5/hdf5attr.c index cb53c9ff77..53aaebf68e 100644 --- a/libhdf5/hdf5attr.c +++ b/libhdf5/hdf5attr.c @@ -809,7 +809,8 @@ NC4_HDF5_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, xtypep, NC_NAT, lenp, NULL, NULL); + return nc4_get_att_ptrs(h5, grp, var, norm_name, xtypep, NC_NAT, + lenp, NULL, NULL); } /** @@ -840,7 +841,8 @@ NC4_HDF5_inq_attid(int ncid, int varid, const char *name, int *attnump) &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, NULL, NC_NAT, NULL, attnump, NULL); + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, NC_NAT, + NULL, attnump, NULL); } /** @@ -907,6 +909,7 @@ NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type mem &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, NULL, memtype, NULL, NULL, value); + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, memtype, + NULL, NULL, value); } diff --git a/libhdf5/hdf5internal.c b/libhdf5/hdf5internal.c index cb202fb754..5752e9ea92 100644 --- a/libhdf5/hdf5internal.c +++ b/libhdf5/hdf5internal.c @@ -729,8 +729,12 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, } assert(attlist); + /* Need a name if use_name is true. */ + if (use_name && !name) + return NC_EBADNAME; + /* Normalize the name. */ - if (use_name && name) + if (use_name) if ((retval = nc4_normalize_name(name, my_norm_name))) return retval; diff --git a/libsrc4/nc4attr.c b/libsrc4/nc4attr.c index 5abede0a31..0ae3a79ce6 100644 --- a/libsrc4/nc4attr.c +++ b/libsrc4/nc4attr.c @@ -28,7 +28,7 @@ * * @param ncid File and group ID. * @param varid Variable ID. - * @param name Name of attribute. + * @param name Name of attribute. Must already be normalized. * @param xtype Pointer that gets (file) type of attribute. Ignored if * NULL. * @param mem_type The type of attribute data in memory. @@ -53,7 +53,6 @@ nc4_get_att_ptrs(NC_FILE_INFO_T *h5, NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, int range_error = NC_NOERR; void *bufr = NULL; size_t type_size; - char norm_name[NC_MAX_NAME + 1]; int varid; int i; int retval; @@ -69,20 +68,16 @@ nc4_get_att_ptrs(NC_FILE_INFO_T *h5, NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, if (name == NULL) BAIL(NC_EBADNAME); - /* Normalize name. */ - if ((retval = nc4_normalize_name(name, norm_name))) - BAIL(retval); - /* If this is one of the reserved atts, use nc_get_att_special. */ if (!var) { - const NC_reservedatt* ra = NC_findreserved(norm_name); + const NC_reservedatt* ra = NC_findreserved(name); if(ra != NULL && (ra->flags & NAMEONLYFLAG)) - return nc4_get_att_special(h5, norm_name, xtype, mem_type, lenp, attnum, data); + return nc4_get_att_special(h5, name, xtype, mem_type, lenp, attnum, data); } /* Find the attribute, if it exists. */ - if ((retval = nc4_find_grp_att(grp, varid, norm_name, my_attnum, &att))) + if ((retval = nc4_find_grp_att(grp, varid, name, my_attnum, &att))) return retval; /* If mem_type is NC_NAT, it means we want to use the attribute's @@ -229,6 +224,7 @@ nc4_get_att(int ncid, int varid, const char *name, nc_type *xtype, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((3, "%s: ncid 0x%x varid %d mem_type %d", __func__, ncid, @@ -251,7 +247,11 @@ nc4_get_att(int ncid, int varid, const char *name, nc_type *xtype, if (!name) return NC_EBADNAME; - return nc4_get_att_ptrs(h5, grp, var, name, xtype, mem_type, lenp, + /* Normalize name. */ + if ((retval = nc4_normalize_name(name, norm_name))) + return retval; + + return nc4_get_att_ptrs(h5, grp, var, norm_name, xtype, mem_type, lenp, attnum, data); } From f6443bce8f18782752db710a0f2784f9b3eb981e Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Fri, 30 Nov 2018 14:05:11 -0700 Subject: [PATCH 14/38] rest of separation of libhdf5 and libsrc4 --- libhdf5/hdf5attr.c | 33 +++++++++++++++++++++++++++++++-- liblib/nc_initialize.c | 2 +- libsrc4/nc4attr.c | 8 -------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/libhdf5/hdf5attr.c b/libhdf5/hdf5attr.c index 53aaebf68e..8c585df5ae 100644 --- a/libhdf5/hdf5attr.c +++ b/libhdf5/hdf5attr.c @@ -809,6 +809,15 @@ NC4_HDF5_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, &h5, &grp, &var, NULL))) return retval; + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, xtypep, NC_NAT, lenp, NULL, + NULL); + } + return nc4_get_att_ptrs(h5, grp, var, norm_name, xtypep, NC_NAT, lenp, NULL, NULL); } @@ -841,6 +850,15 @@ NC4_HDF5_inq_attid(int ncid, int varid, const char *name, int *attnump) &h5, &grp, &var, NULL))) return retval; + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, NULL, NC_NAT, NULL, attnump, + NULL); + } + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, NC_NAT, NULL, attnump, NULL); } @@ -886,14 +904,16 @@ NC4_HDF5_inq_attname(int ncid, int varid, int attnum, char *name) * @param varid Variable ID. * @param name Name of attribute. * @param value Pointer that gets attribute data. - * @param memtype The type the data should be converted to as it is read. + * @param memtype The type the data should be converted to as it is + * read. * * @return ::NC_NOERR No error. * @return ::NC_EBADID Bad ncid. * @author Ed Hartnett */ int -NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type memtype) +NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, + nc_type memtype) { NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; @@ -909,6 +929,15 @@ NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type mem &h5, &grp, &var, NULL))) return retval; + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, NULL, NC_NAT, NULL, NULL, + value); + } + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, memtype, NULL, NULL, value); } diff --git a/liblib/nc_initialize.c b/liblib/nc_initialize.c index 04d336798b..8ca0b079eb 100644 --- a/liblib/nc_initialize.c +++ b/liblib/nc_initialize.c @@ -91,10 +91,10 @@ nc_initialize() #endif #ifdef USE_NETCDF4 if((stat = NC4_initialize())) goto done; - stat = NC4_provenance_init(); #endif /* USE_NETCDF4 */ #ifdef USE_HDF5 if((stat = NC_HDF5_initialize())) goto done; + stat = NC4_provenance_init(); #endif #ifdef USE_HDF4 if((stat = NC_HDF4_initialize())) goto done; diff --git a/libsrc4/nc4attr.c b/libsrc4/nc4attr.c index 0ae3a79ce6..651014d9c7 100644 --- a/libsrc4/nc4attr.c +++ b/libsrc4/nc4attr.c @@ -68,14 +68,6 @@ nc4_get_att_ptrs(NC_FILE_INFO_T *h5, NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, if (name == NULL) BAIL(NC_EBADNAME); - /* If this is one of the reserved atts, use nc_get_att_special. */ - if (!var) - { - const NC_reservedatt* ra = NC_findreserved(name); - if(ra != NULL && (ra->flags & NAMEONLYFLAG)) - return nc4_get_att_special(h5, name, xtype, mem_type, lenp, attnum, data); - } - /* Find the attribute, if it exists. */ if ((retval = nc4_find_grp_att(grp, varid, name, my_attnum, &att))) return retval; From db83d0b4bfe57ca33a19972a33614fa4ae2a5db8 Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Sat, 1 Dec 2018 07:29:58 -0700 Subject: [PATCH 15/38] got disable-hdf5 builds working without utils --- configure.ac | 14 +++++++------- examples/C/Makefile.am | 8 ++++---- libdispatch/nc.c | 2 +- nc_test/Makefile.am | 4 ++-- nc_test/nc_test.c | 2 +- nc_test/tst_default_format.c | 4 ++-- nc_test/tst_formats.c | 4 ++-- nc_test/tst_global_fillval.c | 4 ++-- nc_test/tst_inq_type.c | 4 ++-- nc_test/tst_names.c | 2 +- nc_test/tst_small.c | 2 +- nctest/driver.c | 4 ++-- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/configure.ac b/configure.ac index 5e72a9df26..3a9067127e 100644 --- a/configure.ac +++ b/configure.ac @@ -204,13 +204,13 @@ AC_MSG_RESULT([$enable_netcdf_4]) # Does the user want to use HDF5? AC_MSG_CHECKING([whether we should build with HDF5]) -enable_hdf5=$enable_netcdf_4 -dnl AC_ARG_ENABLE([hdf5], [AS_HELP_STRING([--disable-hdf5], -dnl [do not build with HDF5])]) -dnl test "x$enable_hdf5" = xno || enable_hdf5=yes -dnl if test "x$enable_netcdf_4" = xno ; then -dnl enable_hdf5=no -dnl fi +#enable_hdf5=$enable_netcdf_4 +AC_ARG_ENABLE([hdf5], [AS_HELP_STRING([--disable-hdf5], + [do not build with HDF5])]) +test "x$enable_hdf5" = xno || enable_hdf5=yes +if test "x$enable_netcdf_4" = xno ; then +enable_hdf5=no +fi AC_MSG_RESULT([$enable_hdf5]) # Does the user require dynamic loading? diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am index c4996e5e8e..7400f6a43a 100644 --- a/examples/C/Makefile.am +++ b/examples/C/Makefile.am @@ -20,7 +20,7 @@ sfc_pres_temp_rd pres_temp_4D_wr pres_temp_4D_rd TESTS = run_examples.sh # To build netcdf-4, or not to build netcdf-4, that is the question... -if USE_NETCDF4 +if USE_HDF5 # These are the extra netCDF-4 examples. check_PROGRAMS += simple_nc4_wr simple_nc4_rd simple_xy_nc4_wr \ simple_xy_nc4_rd @@ -31,7 +31,7 @@ check_PROGRAMS += filter_example TESTS += run_filter.sh endif -endif #USE_NETCDF4 +endif #USE_HDF5 if USE_PNETCDF # These are the extra netCDF-4 examples. @@ -42,9 +42,9 @@ endif #USE_PNETCDF AM_CPPFLAGS += -I$(top_builddir)/liblib AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la -if USE_NETCDF4 +if USE_HDF5 TESTS += run_examples4.sh -endif #USE_NETCDF4 +endif #USE_HDF5 # These files are created by the tests. CLEANFILES = *.nc diff --git a/libdispatch/nc.c b/libdispatch/nc.c index 9683c79257..4a16524806 100644 --- a/libdispatch/nc.c +++ b/libdispatch/nc.c @@ -91,7 +91,7 @@ nc_set_default_format(int format, int *old_formatp) if (format == NC_FORMAT_CDF5) return NC_ENOTBUILT; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 if (format != NC_FORMAT_CLASSIC && format != NC_FORMAT_64BIT_OFFSET && format != NC_FORMAT_NETCDF4 && format != NC_FORMAT_NETCDF4_CLASSIC && format != NC_FORMAT_CDF5) diff --git a/nc_test/Makefile.am b/nc_test/Makefile.am index 23e16db048..4ea7b399e6 100644 --- a/nc_test/Makefile.am +++ b/nc_test/Makefile.am @@ -51,7 +51,7 @@ TESTPROGRAMS += testnc3perf testnc3perf_SOURCES = testnc3perf.c endif -if USE_NETCDF4 +if USE_HDF5 TESTPROGRAMS += tst_diskless6 tst_diskless6_SOURCES = tst_diskless6.c endif @@ -62,7 +62,7 @@ check_PROGRAMS = $(TESTPROGRAMS) # Build Diskless test helpers check_PROGRAMS += tst_diskless tst_diskless3 tst_diskless4 \ tst_diskless5 tst_inmemory tst_open_mem -if USE_NETCDF4 +if USE_HDF5 check_PROGRAMS += tst_diskless2 endif diff --git a/nc_test/nc_test.c b/nc_test/nc_test.c index 9e5490e82f..1a5c910884 100644 --- a/nc_test/nc_test.c +++ b/nc_test/nc_test.c @@ -153,7 +153,7 @@ main(int argc, char *argv[]) case NC_FORMAT_NETCDF4_CLASSIC: -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); strcpy(testfile, "nc_test_netcdf4.nc"); fprintf(stderr, "\n\nSwitching to netCDF-4 format (with NC_CLASSIC_MODEL).\n"); diff --git a/nc_test/tst_default_format.c b/nc_test/tst_default_format.c index f1f4e06838..886cc7d191 100644 --- a/nc_test/tst_default_format.c +++ b/nc_test/tst_default_format.c @@ -37,7 +37,7 @@ create_check(char *fname, int cmode, int exp_format) default: break; } -#ifndef USE_NETCDF4 +#ifndef USE_HDF5 if (cmode & NC_NETCDF4) exp_err = NC_ENOTBUILT; #endif @@ -160,7 +160,7 @@ int main(int argc, char *argv[]) nerrs += create_check(fname, cmode, NC_FORMAT_64BIT_OFFSET); #endif -#ifndef USE_NETCDF4 +#ifndef USE_HDF5 err = nc_set_default_format(NC_FORMAT_NETCDF4, NULL); EXP_ERR(NC_ENOTBUILT) err = nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); EXP_ERR(NC_ENOTBUILT) nerrs += create_check(fname, NC_NETCDF4, NC_FORMAT_NETCDF4); diff --git a/nc_test/tst_formats.c b/nc_test/tst_formats.c index 814904a5a6..6033138e98 100644 --- a/nc_test/tst_formats.c +++ b/nc_test/tst_formats.c @@ -36,11 +36,11 @@ determine_test_formats(int *num_formats, int *format) format[ind++] = NC_FORMAT_64BIT_OFFSET; /* Do we have netCDF-4 and netCDF-4 classic? */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num += 2; format[ind++] = NC_FORMAT_NETCDF4; format[ind++] = NC_FORMAT_NETCDF4_CLASSIC; -#endif /* USE_NETCDF4 */ +#endif /* USE_HDF5 */ /* Do we have CDF5? */ #ifdef ENABLE_CDF5 diff --git a/nc_test/tst_global_fillval.c b/nc_test/tst_global_fillval.c index 4812d3f72a..92060bee71 100644 --- a/nc_test/tst_global_fillval.c +++ b/nc_test/tst_global_fillval.c @@ -33,7 +33,7 @@ main(int argc, char **argv) int *formats = NULL; /* Determine how many formats are in use. */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num_formats += 2; #endif @@ -49,7 +49,7 @@ main(int argc, char **argv) #ifdef ENABLE_CDF5 formats[n++] = NC_64BIT_DATA; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 formats[n++] = NC_NETCDF4; formats[n++] = NC_CLASSIC_MODEL | NC_NETCDF4; #endif diff --git a/nc_test/tst_inq_type.c b/nc_test/tst_inq_type.c index 8bd0233013..0164cdc959 100644 --- a/nc_test/tst_inq_type.c +++ b/nc_test/tst_inq_type.c @@ -113,7 +113,7 @@ int main(int argc, char **argv) { SUMMARIZE_ERR; #endif /* ENABLE_CDF5 */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 printf("\n* Testing nc_inq_type with netcdf-4 + Classic Model\n"); { if(nc_create(FILE_NAME,NC_CLOBBER|NC_NETCDF4|NC_CLASSIC_MODEL,&ncid)) ERR; @@ -178,7 +178,7 @@ int main(int argc, char **argv) { } SUMMARIZE_ERR; -#endif // USE_NETCDF4 +#endif // USE_HDF5 printf("* Finished.\n"); diff --git a/nc_test/tst_names.c b/nc_test/tst_names.c index 878ae32d90..d12522c5df 100644 --- a/nc_test/tst_names.c +++ b/nc_test/tst_names.c @@ -229,7 +229,7 @@ main(int argc, char **argv) , NC_FORMAT_CDF5 #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 , NC_FORMAT_NETCDF4 , diff --git a/nc_test/tst_small.c b/nc_test/tst_small.c index 040f7e2164..cca6340fd9 100644 --- a/nc_test/tst_small.c +++ b/nc_test/tst_small.c @@ -533,7 +533,7 @@ main(int argc, char **argv) case NC_FORMAT_CDF5: continue; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 case NC_FORMAT_NETCDF4_CLASSIC: nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); strcpy(testfile, "tst_small_netcdf4_classic.nc"); diff --git a/nctest/driver.c b/nctest/driver.c index 9d0c3c1571..e2b8277688 100644 --- a/nctest/driver.c +++ b/nctest/driver.c @@ -35,11 +35,11 @@ determine_test_formats(int *num_formats, int *format) format[ind++] = NC_FORMAT_64BIT_OFFSET; /* Do we have netCDF-4 and netCDF-4 classic? */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num += 2; format[ind++] = NC_FORMAT_NETCDF4_CLASSIC; format[ind++] = NC_FORMAT_NETCDF4; -#endif /* USE_NETCDF4 */ +#endif /* USE_HDF5 */ /* Do we have CDF5? */ #ifdef ENABLE_CDF5 From bbfbd98f6ec8ccc5eb9e4434271e6e1639d42ad1 Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Sat, 1 Dec 2018 08:24:56 -0700 Subject: [PATCH 16/38] test and util changes to split libsrc4 and libhdf5 --- configure.ac | 3 ++- nc_test/run_diskless.sh | 14 +++++++------- nc_test/run_inmemory.sh | 4 ++-- nc_test/tst_inmemory.c | 10 +++++----- ncdump/Makefile.am | 8 ++++---- ncgen/util.c | 4 ++-- ncgen3/Makefile.am | 4 ++-- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index 3a9067127e..b3de7bc304 100644 --- a/configure.ac +++ b/configure.ac @@ -859,7 +859,8 @@ AC_CHECK_FUNCS([strlcat snprintf \ getrlimit gettimeofday fsync MPI_Comm_f2c MPI_Info_f2c]) # disable dap4 if netcdf-4 is disabled -if test "x$enable_netcdf_4" = "xno" ; then +#if test "x$enable_netcdf_4" = "xno" ; then +if test "x$enable_hdf5" = "xno" ; then AC_MSG_WARN([netcdf-4 not enabled; disabling DAP4]) enable_dap4=no fi diff --git a/nc_test/run_diskless.sh b/nc_test/run_diskless.sh index f7e87fdc35..30d27fa5df 100755 --- a/nc_test/run_diskless.sh +++ b/nc_test/run_diskless.sh @@ -17,18 +17,18 @@ FILE3=tst_diskless3.nc echo "" echo "*** Testing in-memory (diskless) files with and without persistence" -HASNC4=`${top_builddir}/nc-config --has-nc4` +HASHDF5=`${top_builddir}/nc-config --has-hdf5` echo "**** Test diskless netCDF classic file without persistence" ${execdir}/tst_diskless echo "PASS: diskless netCDF classic file without persistence" -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then echo "" echo "**** Test diskless netCDF enhanced file without persistence" ${execdir}/tst_diskless netcdf4 echo "PASS: diskless netCDF enhanced file without persistence" -fi #HASNC4 +fi #HASHDF5 echo "" echo "**** Test diskless netCDF classic file with persistence" @@ -43,7 +43,7 @@ echo "#### $FILE1 not created" echo "FAIL: diskless netCDF classic file with persistence" fi -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then echo "" echo "**** Test diskless netCDF enhanced file with persistence" rm -f $FILE1 @@ -57,10 +57,10 @@ echo "$FILE1 not created" echo "FAIL: diskless netCDF enhanced file with persistence" fi -fi #HASNC4 +fi #HASHDF5 # Do extended netcdf enhanced test -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then ok="" echo "" @@ -90,7 +90,7 @@ else echo "FAIL: extended enhanced diskless netCDF with persistence" fi -fi #HASNC4 +fi #HASHDF5 echo "" echo "**** Testing nc_open in-memory (diskless) files" diff --git a/nc_test/run_inmemory.sh b/nc_test/run_inmemory.sh index b4515c5d1b..e9f90eb6c6 100755 --- a/nc_test/run_inmemory.sh +++ b/nc_test/run_inmemory.sh @@ -22,7 +22,7 @@ OMEMFILE=f03tst_open_mem.nc echo "" echo "*** Testing in-memory operations" -HASNC4=`${top_builddir}/nc-config --has-nc4` +HASHDF5=`${top_builddir}/nc-config --has-hdf5` # Execute the core of the inmemory tests ${execdir}/tst_inmemory @@ -34,7 +34,7 @@ ${NCDUMP} -n "${FILE3}" ${FILE3}.nc > ${FILE3}.cdl ${NCDUMP} -n "${FILE3}" ${CREATE3}.nc > ${CREATE3}.cdl diff -wb ${FILE3}.cdl ${CREATE3}.cdl -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then ${NCDUMP} ${FILE4}.nc > ${FILE4}.cdl ${NCDUMP} ${CREATE4}.nc > ${CREATE4}.cdl diff -wb ${FILE4}.cdl ${CREATE4}.cdl diff --git a/nc_test/tst_inmemory.c b/nc_test/tst_inmemory.c index af3f1b6e10..5aba2f6eaf 100644 --- a/nc_test/tst_inmemory.c +++ b/nc_test/tst_inmemory.c @@ -20,7 +20,7 @@ redistribution conditions. #include "nc_tests.h" #include "err_macros.h" -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 #include extern int H5Eprint1(FILE * stream); #endif @@ -408,7 +408,7 @@ verify_file(int ncid, int modified, int extra) int milesdata_in[MAXDIMLEN]; int expenses_in[MAXDIMLEN]; int dimprod = DIM0_LEN * DIM1_LEN; -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 int tmp; #endif @@ -417,7 +417,7 @@ verify_file(int ncid, int modified, int extra) CHECK(NC_EINVAL); /* Get all the dimids */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 tmp = 0; CHECK((nc_inq_dimids(ncid,&tmp,dimid,1))); if(tmp != NDIMS0+extra) CHECK(NC_EINVAL); @@ -709,7 +709,7 @@ main(int argc, char **argv) int stat = NC_NOERR; NC_memio filedata3; void* original = NULL; -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 NC_memio filedata4; #endif @@ -721,7 +721,7 @@ main(int argc, char **argv) CHECK(test_xfail(FILE3, NC_NETCDF3, &filedata3)); memiofree(&filedata3,&original); -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 fprintf(stderr,"\n*** Testing the inmemory API: netcdf-4.\n"); CHECK(create_reference_file(FILE4,NC_NETCDF4,&filedata4)); CHECK(test_open(FILE4,&filedata4,NC_NETCDF4)); diff --git a/ncdump/Makefile.am b/ncdump/Makefile.am index 0b9e5648b9..3ea5a92ad6 100644 --- a/ncdump/Makefile.am +++ b/ncdump/Makefile.am @@ -30,7 +30,7 @@ nccopy_SOURCES = nccopy.c nciter.c nciter.h chunkspec.h chunkspec.c \ utils.h utils.c dimmap.h dimmap.c list.c list.h # A simple netcdf-4 metadata -> xml printer. Do not install. -if USE_NETCDF4 +if USE_HDF5 noinst_PROGRAMS += nc4print nc4print_SOURCES = nc4print.c endif @@ -70,7 +70,7 @@ if LARGE_FILE_TESTS TESTS += tst_iter.sh endif -if USE_NETCDF4 +if USE_HDF5 # NetCDF-4 has some extra C programs to build. These will be run by # the shell script tests. check_PROGRAMS += tst_fileinfo tst_create_files tst_h_rdc0 \ @@ -91,10 +91,10 @@ tst_ncgen4.sh tst_nccopy4.log: run_ncgen_tests.log tst_output.log tst_ncgen4.log \ tst_fillbug.log tst_netcdf4_4.log tst_h_scalar.log tst_nccopy5.log: tst_nccopy4.log -endif #!USE_NETCDF4 +endif #!USE_HDF5 TESTS += tst_inmemory_nc3.sh -if USE_NETCDF4 +if USE_HDF5 TESTS += tst_inmemory_nc4.sh endif diff --git a/ncgen/util.c b/ncgen/util.c index dde9d35e24..e0ec19064c 100644 --- a/ncgen/util.c +++ b/ncgen/util.c @@ -577,7 +577,7 @@ prefixarraylength(Dimset* dimset, int last) -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 extern int H5Eprint1(FILE * stream); #endif @@ -594,7 +594,7 @@ void check_err2(const int stat, const int cdlline, const int line, const char* f else fprintf(stderr, "ncgen: %s\n", nc_strerror(stat)); fprintf(stderr, "\t(%s:%d)\n", file,line); -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 H5Eprint1(stderr); #endif fflush(stderr); diff --git a/ncgen3/Makefile.am b/ncgen3/Makefile.am index e20f326ecc..39c58576c1 100644 --- a/ncgen3/Makefile.am +++ b/ncgen3/Makefile.am @@ -25,9 +25,9 @@ run_nc4_tests.sh XGetopt.c $(man_MANS) # them for DLL builds. #if !BUILD_DLL TESTS = run_tests.sh -if USE_NETCDF4 +if USE_HDF5 TESTS += run_nc4_tests.sh -endif # USE_NETCDF4 +endif # USE_HDF5 #endif # !BUILD_DLL CLEANFILES = c0.nc c0_64.nc c0_4.nc c0_4c.nc From dccc644f2039ce0009f6a6cdf96a97ccbc8d0c2c Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 4 Dec 2018 15:17:54 -0700 Subject: [PATCH 17/38] Modifying COPYRIGHT to reflect a standardized license, the BSD 3-clause license. --- COPYRIGHT | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index 0994357664..af669df4d9 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,39 +1,11 @@ -The NetCDF Copyright. +Copyright 2018 Unidata -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -2015, 2016 -University Corporation for Atmospheric Research/Unidata. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 817ec9d57457c5e5a1cbba7467c88c7b84167198 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 4 Dec 2018 15:18:46 -0700 Subject: [PATCH 18/38] Updated release notes to reflect the license change. --- RELEASE_NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index bd493bd4d8..61e9a48089 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -7,6 +7,9 @@ This file contains a high-level description of this package's evolution. Release ## 4.6.3 - TBD +* Update the license from the home-brewed NetCDF license to the standard 3-Clause BSD License. This change does not result in any new restrictions; it is merely the adoption of a standard, well-known and well-understood license in place of the historic NetCDF license written at Unidata. This is part of a broader push by Unidata to adopt modern, standardized licensing. + + * [BugFix][Enhancement] Modified `nccopy` so that `_NCProperties` is not copied over verbatim but is instead generated based on the version of `libnetcdf` used when copying the file. Additionally, `_NCProperties` are displayed if/when associated with a netcdf3 file, now. See [GitHub #803](https://github.com/Unidata/netcdf-c/issues/803) for more information. ## 4.6.2 - November 16, 2018 From 991dbabfa68769ff02bc3418f4f6f9b98083e48f Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 4 Dec 2018 15:20:26 -0700 Subject: [PATCH 19/38] Removed old directory in support of https://github.com/Unidata/netcdf-c/issues/1235 --- libdispatch/u/utf8proc.c | 755 --------------------------------------- libdispatch/u/utf8proc.h | 699 ------------------------------------ 2 files changed, 1454 deletions(-) delete mode 100644 libdispatch/u/utf8proc.c delete mode 100644 libdispatch/u/utf8proc.h diff --git a/libdispatch/u/utf8proc.c b/libdispatch/u/utf8proc.c deleted file mode 100644 index c14bbe13fc..0000000000 --- a/libdispatch/u/utf8proc.c +++ /dev/null @@ -1,755 +0,0 @@ -/* -*- mode: c; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*- */ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* - * This library contains derived data from a modified version of the - * Unicode data files. - * - * The original data files are available at - * http://www.unicode.org/Public/UNIDATA/ - * - * Please notice the copyright statement in the file "utf8proc_data.c". - */ - - -/* - * File name: utf8proc.c - * - * Description: - * Implementation of libutf8proc. - */ - - -#include "utf8proc.h" -#include "utf8proc_data.c" - - -UTF8PROC_DLLEXPORT const utf8proc_int8_t utf8proc_utf8class[256] = { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; - -#define UTF8PROC_HANGUL_SBASE 0xAC00 -#define UTF8PROC_HANGUL_LBASE 0x1100 -#define UTF8PROC_HANGUL_VBASE 0x1161 -#define UTF8PROC_HANGUL_TBASE 0x11A7 -#define UTF8PROC_HANGUL_LCOUNT 19 -#define UTF8PROC_HANGUL_VCOUNT 21 -#define UTF8PROC_HANGUL_TCOUNT 28 -#define UTF8PROC_HANGUL_NCOUNT 588 -#define UTF8PROC_HANGUL_SCOUNT 11172 -/* END is exclusive */ -#define UTF8PROC_HANGUL_L_START 0x1100 -#define UTF8PROC_HANGUL_L_END 0x115A -#define UTF8PROC_HANGUL_L_FILLER 0x115F -#define UTF8PROC_HANGUL_V_START 0x1160 -#define UTF8PROC_HANGUL_V_END 0x11A3 -#define UTF8PROC_HANGUL_T_START 0x11A8 -#define UTF8PROC_HANGUL_T_END 0x11FA -#define UTF8PROC_HANGUL_S_START 0xAC00 -#define UTF8PROC_HANGUL_S_END 0xD7A4 - -/* Should follow semantic-versioning rules (semver.org) based on API - compatibility. (Note that the shared-library version number will - be different, being based on ABI compatibility.): */ -#define STRINGIZEx(x) #x -#define STRINGIZE(x) STRINGIZEx(x) -UTF8PROC_DLLEXPORT const char *utf8proc_version(void) { - return STRINGIZE(UTF8PROC_VERSION_MAJOR) "." STRINGIZE(UTF8PROC_VERSION_MINOR) "." STRINGIZE(UTF8PROC_VERSION_PATCH) ""; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode) { - switch (errcode) { - case UTF8PROC_ERROR_NOMEM: - return "Memory for processing UTF-8 data could not be allocated."; - case UTF8PROC_ERROR_OVERFLOW: - return "UTF-8 string is too long to be processed."; - case UTF8PROC_ERROR_INVALIDUTF8: - return "Invalid UTF-8 string"; - case UTF8PROC_ERROR_NOTASSIGNED: - return "Unassigned Unicode code point found in UTF-8 string."; - case UTF8PROC_ERROR_INVALIDOPTS: - return "Invalid options for UTF-8 processing chosen."; - default: - return "An unknown error occurred while processing UTF-8 data."; - } -} - -#define utf_cont(ch) (((ch) & 0xc0) == 0x80) -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *dst -) { - utf8proc_uint32_t uc; - const utf8proc_uint8_t *end; - - *dst = -1; - if (!strlen) return 0; - end = str + ((strlen < 0) ? 4 : strlen); - uc = *str++; - if (uc < 0x80) { - *dst = uc; - return 1; - } - // Must be between 0xc2 and 0xf4 inclusive to be valid - if ((uc - 0xc2) > (0xf4-0xc2)) return UTF8PROC_ERROR_INVALIDUTF8; - if (uc < 0xe0) { // 2-byte sequence - // Must have valid continuation character - if (str >= end || !utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8; - *dst = ((uc & 0x1f)<<6) | (*str & 0x3f); - return 2; - } - if (uc < 0xf0) { // 3-byte sequence - if ((str + 1 >= end) || !utf_cont(*str) || !utf_cont(str[1])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Check for surrogate chars - if (uc == 0xed && *str > 0x9f) - return UTF8PROC_ERROR_INVALIDUTF8; - uc = ((uc & 0xf)<<12) | ((*str & 0x3f)<<6) | (str[1] & 0x3f); - if (uc < 0x800) - return UTF8PROC_ERROR_INVALIDUTF8; - *dst = uc; - return 3; - } - // 4-byte sequence - // Must have 3 valid continuation characters - if ((str + 2 >= end) || !utf_cont(*str) || !utf_cont(str[1]) || !utf_cont(str[2])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Make sure in correct range (0x10000 - 0x10ffff) - if (uc == 0xf0) { - if (*str < 0x90) return UTF8PROC_ERROR_INVALIDUTF8; - } else if (uc == 0xf4) { - if (*str > 0x8f) return UTF8PROC_ERROR_INVALIDUTF8; - } - *dst = ((uc & 7)<<18) | ((*str & 0x3f)<<12) | ((str[1] & 0x3f)<<6) | (str[2] & 0x3f); - return 4; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t uc) { - return (((utf8proc_uint32_t)uc)-0xd800 > 0x07ff) && ((utf8proc_uint32_t)uc < 0x110000); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t) uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - // Note: we allow encoding 0xd800-0xdfff here, so as not to change - // the API, however, these are actually invalid in UTF-8 - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static utf8proc_ssize_t unsafe_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t)uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - } else if (uc == 0xFFFF) { - dst[0] = (utf8proc_uint8_t)0xFF; - return 1; - } else if (uc == 0xFFFE) { - dst[0] = (utf8proc_uint8_t)0xFE; - return 1; - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static const utf8proc_property_t *unsafe_get_property(utf8proc_int32_t uc) { - /* ASSERT: uc >= 0 && uc < 0x110000 */ - return utf8proc_properties + ( - utf8proc_stage2table[ - utf8proc_stage1table[uc >> 8] + (uc & 0xFF) - ] - ); -} - -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t uc) { - return uc < 0 || uc >= 0x110000 ? utf8proc_properties : unsafe_get_property(uc); -} - -/* return whether there is a grapheme break between boundclasses lbc and tbc - (according to the definition of extended grapheme clusters) - - Rule numbering refers to TR29 Version 29 (Unicode 9.0.0): - http://www.unicode.org/reports/tr29/tr29-29.html - - CAVEATS: - Please note that evaluation of GB10 (grapheme breaks between emoji zwj sequences) - and GB 12/13 (regional indicator code points) require knowledge of previous characters - and are thus not handled by this function. This may result in an incorrect break before - an E_Modifier class codepoint and an incorrectly missing break between two - REGIONAL_INDICATOR class code points if such support does not exist in the caller. - - See the special support in grapheme_break_extended, for required bookkeeping by the caller. -*/ -static utf8proc_bool grapheme_break_simple(int lbc, int tbc) { - return - (lbc == UTF8PROC_BOUNDCLASS_START) ? true : // GB1 - (lbc == UTF8PROC_BOUNDCLASS_CR && // GB3 - tbc == UTF8PROC_BOUNDCLASS_LF) ? false : // --- - (lbc >= UTF8PROC_BOUNDCLASS_CR && lbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB4 - (tbc >= UTF8PROC_BOUNDCLASS_CR && tbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB5 - (lbc == UTF8PROC_BOUNDCLASS_L && // GB6 - (tbc == UTF8PROC_BOUNDCLASS_L || // --- - tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_LV || // --- - tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LV || // GB7 - lbc == UTF8PROC_BOUNDCLASS_V) && // --- - (tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_T)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LVT || // GB8 - lbc == UTF8PROC_BOUNDCLASS_T) && // --- - tbc == UTF8PROC_BOUNDCLASS_T) ? false : // --- - (tbc == UTF8PROC_BOUNDCLASS_EXTEND || // GB9 - tbc == UTF8PROC_BOUNDCLASS_ZWJ || // --- - tbc == UTF8PROC_BOUNDCLASS_SPACINGMARK || // GB9a - lbc == UTF8PROC_BOUNDCLASS_PREPEND) ? false : // GB9b - ((lbc == UTF8PROC_BOUNDCLASS_E_BASE || // GB10 (requires additional handling below) - lbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && // ---- - tbc == UTF8PROC_BOUNDCLASS_E_MODIFIER) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_ZWJ && // GB11 - (tbc == UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ || // ---- - tbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ)) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR && // GB12/13 (requires additional handling below) - tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) ? false : // ---- - true; // GB999 -} - -static utf8proc_bool grapheme_break_extended(int lbc, int tbc, utf8proc_int32_t *state) -{ - int lbc_override = lbc; - if (state && *state != UTF8PROC_BOUNDCLASS_START) - lbc_override = *state; - utf8proc_bool break_permitted = grapheme_break_simple(lbc_override, tbc); - if (state) { - // Special support for GB 12/13 made possible by GB999. After two RI - // class codepoints we want to force a break. Do this by resetting the - // second RI's bound class to UTF8PROC_BOUNDCLASS_OTHER, to force a break - // after that character according to GB999 (unless of course such a break is - // forbidden by a different rule such as GB9). - if (*state == tbc && tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) - *state = UTF8PROC_BOUNDCLASS_OTHER; - // Special support for GB10. Fold any EXTEND codepoints into the previous - // boundclass if we're dealing with an emoji base boundclass. - else if ((*state == UTF8PROC_BOUNDCLASS_E_BASE || - *state == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && - tbc == UTF8PROC_BOUNDCLASS_EXTEND) - *state = UTF8PROC_BOUNDCLASS_E_BASE; - else - *state = tbc; - } - return break_permitted; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t c1, utf8proc_int32_t c2, utf8proc_int32_t *state) { - - return grapheme_break_extended(utf8proc_get_property(c1)->boundclass, - utf8proc_get_property(c2)->boundclass, - state); -} - - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t c1, utf8proc_int32_t c2) { - return utf8proc_grapheme_break_stateful(c1, c2, NULL); -} - -static utf8proc_int32_t seqindex_decode_entry(const utf8proc_uint16_t **entry) -{ - utf8proc_int32_t entry_cp = **entry; - if ((entry_cp & 0xF800) == 0xD800) { - *entry = *entry + 1; - entry_cp = ((entry_cp & 0x03FF) << 10) | (**entry & 0x03FF); - entry_cp += 0x10000; - } - return entry_cp; -} - -static utf8proc_int32_t seqindex_decode_index(const utf8proc_uint32_t seqindex) -{ - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex]; - return seqindex_decode_entry(&entry); -} - -static utf8proc_ssize_t seqindex_write_char_decomposed(utf8proc_uint16_t seqindex, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - utf8proc_ssize_t written = 0; - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex & 0x1FFF]; - int len = seqindex >> 13; - if (len >= 7) { - len = *entry; - entry++; - } - for (; len >= 0; entry++, len--) { - utf8proc_int32_t entry_cp = seqindex_decode_entry(&entry); - - written += utf8proc_decompose_char(entry_cp, dst+written, - (bufsize > written) ? (bufsize - written) : 0, options, - last_boundclass); - if (written < 0) return UTF8PROC_ERROR_OVERFLOW; - } - return written; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c) -{ - utf8proc_int32_t cl = utf8proc_get_property(c)->lowercase_seqindex; - return cl != UINT16_MAX ? seqindex_decode_index(cl) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->uppercase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->titlecase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -/* return a character width analogous to wcwidth (except portable and - hopefully less buggy than most system wcwidth functions). */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t c) { - return utf8proc_get_property(c)->charwidth; -} - -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t c) { - return utf8proc_get_property(c)->category; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t c) { - static const char s[][3] = {"Cn","Lu","Ll","Lt","Lm","Lo","Mn","Mc","Me","Nd","Nl","No","Pc","Pd","Ps","Pe","Pi","Pf","Po","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Cs","Co"}; - return s[utf8proc_category(c)]; -} - -#define utf8proc_decompose_lump(replacement_uc) \ - return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ - options & ~UTF8PROC_LUMP, last_boundclass) - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char(utf8proc_int32_t uc, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - const utf8proc_property_t *property; - utf8proc_propval_t category; - utf8proc_int32_t hangul_sindex; - if (uc < 0 || uc >= 0x110000) return UTF8PROC_ERROR_NOTASSIGNED; - property = unsafe_get_property(uc); - category = property->category; - hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { - utf8proc_int32_t hangul_tindex; - if (bufsize >= 1) { - dst[0] = UTF8PROC_HANGUL_LBASE + - hangul_sindex / UTF8PROC_HANGUL_NCOUNT; - if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + - (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; - } - hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; - if (!hangul_tindex) return 2; - if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; - return 3; - } - } - if (options & UTF8PROC_REJECTNA) { - if (!category) return UTF8PROC_ERROR_NOTASSIGNED; - } - if (options & UTF8PROC_IGNORE) { - if (property->ignorable) return 0; - } - if (options & UTF8PROC_LUMP) { - if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); - if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) - utf8proc_decompose_lump(0x0027); - if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) - utf8proc_decompose_lump(0x002D); - if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); - if (uc == 0x2236) utf8proc_decompose_lump(0x003A); - if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) - utf8proc_decompose_lump(0x003C); - if (uc == 0x203A || uc == 0x232A || uc == 0x3009) - utf8proc_decompose_lump(0x003E); - if (uc == 0x2216) utf8proc_decompose_lump(0x005C); - if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) - utf8proc_decompose_lump(0x005E); - if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) - utf8proc_decompose_lump(0x005F); - if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); - if (uc == 0x2223) utf8proc_decompose_lump(0x007C); - if (uc == 0x223C) utf8proc_decompose_lump(0x007E); - if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { - if (category == UTF8PROC_CATEGORY_ZL || - category == UTF8PROC_CATEGORY_ZP) - utf8proc_decompose_lump(0x000A); - } - } - if (options & UTF8PROC_STRIPMARK) { - if (category == UTF8PROC_CATEGORY_MN || - category == UTF8PROC_CATEGORY_MC || - category == UTF8PROC_CATEGORY_ME) return 0; - } - if (options & UTF8PROC_CASEFOLD) { - if (property->casefold_seqindex != UINT16_MAX) { - return seqindex_write_char_decomposed(property->casefold_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (property->decomp_seqindex != UINT16_MAX && - (!property->decomp_type || (options & UTF8PROC_COMPAT))) { - return seqindex_write_char_decomposed(property->decomp_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & UTF8PROC_CHARBOUND) { - utf8proc_bool boundary; - int tbc = property->boundclass; - boundary = grapheme_break_extended(*last_boundclass, tbc, last_boundclass); - if (boundary) { - if (bufsize >= 1) dst[0] = 0xFFFF; - if (bufsize >= 2) dst[1] = uc; - return 2; - } - } - if (bufsize >= 1) *dst = uc; - return 1; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -) { - return utf8proc_decompose_custom(str, strlen, buffer, bufsize, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - /* strlen will be ignored, if UTF8PROC_NULLTERM is set in options */ - utf8proc_ssize_t wpos = 0; - if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - if ((options & UTF8PROC_STRIPMARK) && - !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - { - utf8proc_int32_t uc; - utf8proc_ssize_t rpos = 0; - utf8proc_ssize_t decomp_result; - int boundclass = UTF8PROC_BOUNDCLASS_START; - while (1) { - if (options & UTF8PROC_NULLTERM) { - rpos += utf8proc_iterate(str + rpos, -1, &uc); - /* checking of return value is not necessary, - as 'uc' is < 0 in case of error */ - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; - if (uc == 0) break; - } else { - if (rpos >= strlen) break; - rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - } - if (custom_func != NULL) { - uc = custom_func(uc, custom_data); /* user-specified custom mapping */ - } - decomp_result = utf8proc_decompose_char( - uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, - &boundclass - ); - if (decomp_result < 0) return decomp_result; - wpos += decomp_result; - /* prohibiting integer overflows due to too long strings: */ - if (wpos < 0 || - wpos > (utf8proc_ssize_t)(SSIZE_MAX/sizeof(utf8proc_int32_t)/2)) - return UTF8PROC_ERROR_OVERFLOW; - } - } - if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { - utf8proc_ssize_t pos = 0; - while (pos < wpos-1) { - utf8proc_int32_t uc1, uc2; - const utf8proc_property_t *property1, *property2; - uc1 = buffer[pos]; - uc2 = buffer[pos+1]; - property1 = unsafe_get_property(uc1); - property2 = unsafe_get_property(uc2); - if (property1->combining_class > property2->combining_class && - property2->combining_class > 0) { - buffer[pos] = uc2; - buffer[pos+1] = uc1; - if (pos > 0) pos--; else pos++; - } else { - pos++; - } - } - } - return wpos; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored */ - if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t uc; - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; - if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || - ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { - if (options & UTF8PROC_NLF2LS) { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x000A; - } else { - buffer[wpos++] = 0x2028; - } - } else { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x2029; - } else { - buffer[wpos++] = 0x0020; - } - } - } else if ((options & UTF8PROC_STRIPCC) && - (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { - if (uc == 0x0009) buffer[wpos++] = 0x0020; - } else { - buffer[wpos++] = uc; - } - } - length = wpos; - } - if (options & UTF8PROC_COMPOSE) { - utf8proc_int32_t *starter = NULL; - utf8proc_int32_t current_char; - const utf8proc_property_t *starter_property = NULL, *current_property; - utf8proc_propval_t max_combining_class = -1; - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t composition; - for (rpos = 0; rpos < length; rpos++) { - current_char = buffer[rpos]; - current_property = unsafe_get_property(current_char); - if (starter && current_property->combining_class > max_combining_class) { - /* combination perhaps possible */ - utf8proc_int32_t hangul_lindex; - utf8proc_int32_t hangul_sindex; - hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; - if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { - utf8proc_int32_t hangul_vindex; - hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; - if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { - *starter = UTF8PROC_HANGUL_SBASE + - (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * - UTF8PROC_HANGUL_TCOUNT; - starter_property = NULL; - continue; - } - } - hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && - (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { - utf8proc_int32_t hangul_tindex; - hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; - if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { - *starter += hangul_tindex; - starter_property = NULL; - continue; - } - } - if (!starter_property) { - starter_property = unsafe_get_property(*starter); - } - if (starter_property->comb_index < 0x8000 && - current_property->comb_index != UINT16_MAX && - current_property->comb_index >= 0x8000) { - int sidx = starter_property->comb_index; - int idx = (current_property->comb_index & 0x3FFF) - utf8proc_combinations[sidx]; - if (idx >= 0 && idx <= utf8proc_combinations[sidx + 1] ) { - idx += sidx + 2; - if (current_property->comb_index & 0x4000) { - composition = (utf8proc_combinations[idx] << 16) | utf8proc_combinations[idx+1]; - } else - composition = utf8proc_combinations[idx]; - - if (composition > 0 && (!(options & UTF8PROC_STABLE) || - !(unsafe_get_property(composition)->comp_exclusion))) { - *starter = composition; - starter_property = NULL; - continue; - } - } - } - } - buffer[wpos] = current_char; - if (current_property->combining_class) { - if (current_property->combining_class > max_combining_class) { - max_combining_class = current_property->combining_class; - } - } else { - starter = buffer + wpos; - starter_property = NULL; - max_combining_class = -1; - } - wpos++; - } - length = wpos; - } - return length; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored - ASSERT: 'buffer' has one spare byte of free space at the end! */ - length = utf8proc_normalize_utf32(buffer, length, options); - if (length < 0) return length; - { - utf8proc_ssize_t rpos, wpos = 0; - utf8proc_int32_t uc; - if (options & UTF8PROC_CHARBOUND) { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += unsafe_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } else { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += utf8proc_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } - ((utf8proc_uint8_t *)buffer)[wpos] = 0; - return wpos; - } -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -) { - return utf8proc_map_custom(str, strlen, dstptr, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - utf8proc_int32_t *buffer; - utf8proc_ssize_t result; - *dstptr = NULL; - result = utf8proc_decompose_custom(str, strlen, NULL, 0, options, custom_func, custom_data); - if (result < 0) return result; - buffer = (utf8proc_int32_t *) malloc(result * sizeof(utf8proc_int32_t) + 1); - if (!buffer) return UTF8PROC_ERROR_NOMEM; - result = utf8proc_decompose_custom(str, strlen, buffer, result, options, custom_func, custom_data); - if (result < 0) { - free(buffer); - return result; - } - result = utf8proc_reencode(buffer, result, options); - if (result < 0) { - free(buffer); - return result; - } - { - utf8proc_int32_t *newptr; - newptr = (utf8proc_int32_t *) realloc(buffer, (size_t)result+1); - if (newptr) buffer = newptr; - } - *dstptr = (utf8proc_uint8_t *)buffer; - return result; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE | UTF8PROC_COMPAT); - return retval; -} diff --git a/libdispatch/u/utf8proc.h b/libdispatch/u/utf8proc.h deleted file mode 100644 index 495cd96006..0000000000 --- a/libdispatch/u/utf8proc.h +++ /dev/null @@ -1,699 +0,0 @@ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - - -/** - * @mainpage - * - * utf8proc is a free/open-source (MIT/expat licensed) C library - * providing Unicode normalization, case-folding, and other operations - * for strings in the UTF-8 encoding, supporting Unicode version - * 8.0.0. See the utf8proc home page (http://julialang.org/utf8proc/) - * for downloads and other information, or the source code on github - * (https://github.com/JuliaLang/utf8proc). - * - * For the utf8proc API documentation, see: @ref utf8proc.h - * - * The features of utf8proc include: - * - * - Transformation of strings (@ref utf8proc_map) to: - * - decompose (@ref UTF8PROC_DECOMPOSE) or compose (@ref UTF8PROC_COMPOSE) Unicode combining characters (http://en.wikipedia.org/wiki/Combining_character) - * - canonicalize Unicode compatibility characters (@ref UTF8PROC_COMPAT) - * - strip "ignorable" (@ref UTF8PROC_IGNORE) characters, control characters (@ref UTF8PROC_STRIPCC), or combining characters such as accents (@ref UTF8PROC_STRIPMARK) - * - case-folding (@ref UTF8PROC_CASEFOLD) - * - Unicode normalization: @ref utf8proc_NFD, @ref utf8proc_NFC, @ref utf8proc_NFKD, @ref utf8proc_NFKC - * - Detecting grapheme boundaries (@ref utf8proc_grapheme_break and @ref UTF8PROC_CHARBOUND) - * - Character-width computation: @ref utf8proc_charwidth - * - Classification of characters by Unicode category: @ref utf8proc_category and @ref utf8proc_category_string - * - Encode (@ref utf8proc_encode_char) and decode (@ref utf8proc_iterate) Unicode codepoints to/from UTF-8. - */ - -/** @file */ - -#ifndef UTF8PROC_H -#define UTF8PROC_H - -/** @name API version - * - * The utf8proc API version MAJOR.MINOR.PATCH, following - * semantic-versioning rules (http://semver.org) based on API - * compatibility. - * - * This is also returned at runtime by @ref utf8proc_version; however, the - * runtime version may append a string like "-dev" to the version number - * for prerelease versions. - * - * @note The shared-library version number in the Makefile - * (and CMakeLists.txt, and MANIFEST) may be different, - * being based on ABI compatibility rather than API compatibility. - */ -/** @{ */ -/** The MAJOR version number (increased when backwards API compatibility is broken). */ -#define UTF8PROC_VERSION_MAJOR 2 -/** The MINOR version number (increased when new functionality is added in a backwards-compatible manner). */ -#define UTF8PROC_VERSION_MINOR 1 -/** The PATCH version (increased for fixes that do not change the API). */ -#define UTF8PROC_VERSION_PATCH 0 -/** @} */ - -#include - -#if defined(_MSC_VER) && _MSC_VER < 1800 -// MSVC prior to 2013 lacked stdbool.h and inttypes.h -typedef signed char utf8proc_int8_t; -typedef unsigned char utf8proc_uint8_t; -typedef short utf8proc_int16_t; -typedef unsigned short utf8proc_uint16_t; -typedef int utf8proc_int32_t; -typedef unsigned int utf8proc_uint32_t; -# ifdef _WIN64 -typedef __int64 utf8proc_ssize_t; -typedef unsigned __int64 utf8proc_size_t; -# else -typedef int utf8proc_ssize_t; -typedef unsigned int utf8proc_size_t; -# endif -# ifndef __cplusplus -// emulate C99 bool -typedef unsigned char utf8proc_bool; -# ifndef __bool_true_false_are_defined -# define false 0 -# define true 1 -# define __bool_true_false_are_defined 1 -# endif -# else -typedef bool utf8proc_bool; -# endif -#else -# include -# include -# include -typedef int8_t utf8proc_int8_t; -typedef uint8_t utf8proc_uint8_t; -typedef int16_t utf8proc_int16_t; -typedef uint16_t utf8proc_uint16_t; -typedef int32_t utf8proc_int32_t; -typedef uint32_t utf8proc_uint32_t; -typedef size_t utf8proc_size_t; -typedef ptrdiff_t utf8proc_ssize_t; -typedef bool utf8proc_bool; -#endif -#include - -#ifdef _WIN32 -# ifdef UTF8PROC_EXPORTS -# define UTF8PROC_DLLEXPORT __declspec(dllexport) -# else -# define UTF8PROC_DLLEXPORT __declspec(dllimport) -# endif -#elif __GNUC__ >= 4 -# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) -#else -# define UTF8PROC_DLLEXPORT -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SSIZE_MAX -#define SSIZE_MAX ((size_t)SIZE_MAX/2) -#endif - -#ifndef UINT16_MAX -# define UINT16_MAX 65535U -#endif - -/** - * Option flags used by several functions in the library. - */ -typedef enum { - /** The given UTF-8 input is NULL terminated. */ - UTF8PROC_NULLTERM = (1<<0), - /** Unicode Versioning Stability has to be respected. */ - UTF8PROC_STABLE = (1<<1), - /** Compatibility decomposition (i.e. formatting information is lost). */ - UTF8PROC_COMPAT = (1<<2), - /** Return a result with decomposed characters. */ - UTF8PROC_COMPOSE = (1<<3), - /** Return a result with decomposed characters. */ - UTF8PROC_DECOMPOSE = (1<<4), - /** Strip "default ignorable characters" such as SOFT-HYPHEN or ZERO-WIDTH-SPACE. */ - UTF8PROC_IGNORE = (1<<5), - /** Return an error, if the input contains unassigned codepoints. */ - UTF8PROC_REJECTNA = (1<<6), - /** - * Indicating that NLF-sequences (LF, CRLF, CR, NEL) are representing a - * line break, and should be converted to the codepoint for line - * separation (LS). - */ - UTF8PROC_NLF2LS = (1<<7), - /** - * Indicating that NLF-sequences are representing a paragraph break, and - * should be converted to the codepoint for paragraph separation - * (PS). - */ - UTF8PROC_NLF2PS = (1<<8), - /** Indicating that the meaning of NLF-sequences is unknown. */ - UTF8PROC_NLF2LF = (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS), - /** Strips and/or convers control characters. - * - * NLF-sequences are transformed into space, except if one of the - * NLF2LS/PS/LF options is given. HorizontalTab (HT) and FormFeed (FF) - * are treated as a NLF-sequence in this case. All other control - * characters are simply removed. - */ - UTF8PROC_STRIPCC = (1<<9), - /** - * Performs unicode case folding, to be able to do a case-insensitive - * string comparison. - */ - UTF8PROC_CASEFOLD = (1<<10), - /** - * Inserts 0xFF bytes at the beginning of each sequence which is - * representing a single grapheme cluster (see UAX#29). - */ - UTF8PROC_CHARBOUND = (1<<11), - /** Lumps certain characters together. - * - * E.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-". See lump.md for details. - * - * If NLF2LF is set, this includes a transformation of paragraph and - * line separators to ASCII line-feed (LF). - */ - UTF8PROC_LUMP = (1<<12), - /** Strips all character markings. - * - * This includes non-spacing, spacing and enclosing (i.e. accents). - * @note This option works only with @ref UTF8PROC_COMPOSE or - * @ref UTF8PROC_DECOMPOSE - */ - UTF8PROC_STRIPMARK = (1<<13), -} utf8proc_option_t; - -/** @name Error codes - * Error codes being returned by almost all functions. - */ -/** @{ */ -/** Memory could not be allocated. */ -#define UTF8PROC_ERROR_NOMEM -1 -/** The given string is too long to be processed. */ -#define UTF8PROC_ERROR_OVERFLOW -2 -/** The given string is not a legal UTF-8 string. */ -#define UTF8PROC_ERROR_INVALIDUTF8 -3 -/** The @ref UTF8PROC_REJECTNA flag was set and an unassigned codepoint was found. */ -#define UTF8PROC_ERROR_NOTASSIGNED -4 -/** Invalid options have been used. */ -#define UTF8PROC_ERROR_INVALIDOPTS -5 -/** @} */ - -/* @name Types */ - -/** Holds the value of a property. */ -typedef utf8proc_int16_t utf8proc_propval_t; - -/** Struct containing information about a codepoint. */ -typedef struct utf8proc_property_struct { - /** - * Unicode category. - * @see utf8proc_category_t. - */ - utf8proc_propval_t category; - utf8proc_propval_t combining_class; - /** - * Bidirectional class. - * @see utf8proc_bidi_class_t. - */ - utf8proc_propval_t bidi_class; - /** - * @anchor Decomposition type. - * @see utf8proc_decomp_type_t. - */ - utf8proc_propval_t decomp_type; - utf8proc_uint16_t decomp_seqindex; - utf8proc_uint16_t casefold_seqindex; - utf8proc_uint16_t uppercase_seqindex; - utf8proc_uint16_t lowercase_seqindex; - utf8proc_uint16_t titlecase_seqindex; - utf8proc_uint16_t comb_index; - unsigned bidi_mirrored:1; - unsigned comp_exclusion:1; - /** - * Can this codepoint be ignored? - * - * Used by @ref utf8proc_decompose_char when @ref UTF8PROC_IGNORE is - * passed as an option. - */ - unsigned ignorable:1; - unsigned control_boundary:1; - /** The width of the codepoint. */ - unsigned charwidth:2; - unsigned pad:2; - /** - * Boundclass. - * @see utf8proc_boundclass_t. - */ - unsigned boundclass:8; -} utf8proc_property_t; - -/** Unicode categories. */ -typedef enum { - UTF8PROC_CATEGORY_CN = 0, /**< Other, not assigned */ - UTF8PROC_CATEGORY_LU = 1, /**< Letter, uppercase */ - UTF8PROC_CATEGORY_LL = 2, /**< Letter, lowercase */ - UTF8PROC_CATEGORY_LT = 3, /**< Letter, titlecase */ - UTF8PROC_CATEGORY_LM = 4, /**< Letter, modifier */ - UTF8PROC_CATEGORY_LO = 5, /**< Letter, other */ - UTF8PROC_CATEGORY_MN = 6, /**< Mark, nonspacing */ - UTF8PROC_CATEGORY_MC = 7, /**< Mark, spacing combining */ - UTF8PROC_CATEGORY_ME = 8, /**< Mark, enclosing */ - UTF8PROC_CATEGORY_ND = 9, /**< Number, decimal digit */ - UTF8PROC_CATEGORY_NL = 10, /**< Number, letter */ - UTF8PROC_CATEGORY_NO = 11, /**< Number, other */ - UTF8PROC_CATEGORY_PC = 12, /**< Punctuation, connector */ - UTF8PROC_CATEGORY_PD = 13, /**< Punctuation, dash */ - UTF8PROC_CATEGORY_PS = 14, /**< Punctuation, open */ - UTF8PROC_CATEGORY_PE = 15, /**< Punctuation, close */ - UTF8PROC_CATEGORY_PI = 16, /**< Punctuation, initial quote */ - UTF8PROC_CATEGORY_PF = 17, /**< Punctuation, final quote */ - UTF8PROC_CATEGORY_PO = 18, /**< Punctuation, other */ - UTF8PROC_CATEGORY_SM = 19, /**< Symbol, math */ - UTF8PROC_CATEGORY_SC = 20, /**< Symbol, currency */ - UTF8PROC_CATEGORY_SK = 21, /**< Symbol, modifier */ - UTF8PROC_CATEGORY_SO = 22, /**< Symbol, other */ - UTF8PROC_CATEGORY_ZS = 23, /**< Separator, space */ - UTF8PROC_CATEGORY_ZL = 24, /**< Separator, line */ - UTF8PROC_CATEGORY_ZP = 25, /**< Separator, paragraph */ - UTF8PROC_CATEGORY_CC = 26, /**< Other, control */ - UTF8PROC_CATEGORY_CF = 27, /**< Other, format */ - UTF8PROC_CATEGORY_CS = 28, /**< Other, surrogate */ - UTF8PROC_CATEGORY_CO = 29, /**< Other, private use */ -} utf8proc_category_t; - -/** Bidirectional character classes. */ -typedef enum { - UTF8PROC_BIDI_CLASS_L = 1, /**< Left-to-Right */ - UTF8PROC_BIDI_CLASS_LRE = 2, /**< Left-to-Right Embedding */ - UTF8PROC_BIDI_CLASS_LRO = 3, /**< Left-to-Right Override */ - UTF8PROC_BIDI_CLASS_R = 4, /**< Right-to-Left */ - UTF8PROC_BIDI_CLASS_AL = 5, /**< Right-to-Left Arabic */ - UTF8PROC_BIDI_CLASS_RLE = 6, /**< Right-to-Left Embedding */ - UTF8PROC_BIDI_CLASS_RLO = 7, /**< Right-to-Left Override */ - UTF8PROC_BIDI_CLASS_PDF = 8, /**< Pop Directional Format */ - UTF8PROC_BIDI_CLASS_EN = 9, /**< European Number */ - UTF8PROC_BIDI_CLASS_ES = 10, /**< European Separator */ - UTF8PROC_BIDI_CLASS_ET = 11, /**< European Number Terminator */ - UTF8PROC_BIDI_CLASS_AN = 12, /**< Arabic Number */ - UTF8PROC_BIDI_CLASS_CS = 13, /**< Common Number Separator */ - UTF8PROC_BIDI_CLASS_NSM = 14, /**< Nonspacing Mark */ - UTF8PROC_BIDI_CLASS_BN = 15, /**< Boundary Neutral */ - UTF8PROC_BIDI_CLASS_B = 16, /**< Paragraph Separator */ - UTF8PROC_BIDI_CLASS_S = 17, /**< Segment Separator */ - UTF8PROC_BIDI_CLASS_WS = 18, /**< Whitespace */ - UTF8PROC_BIDI_CLASS_ON = 19, /**< Other Neutrals */ - UTF8PROC_BIDI_CLASS_LRI = 20, /**< Left-to-Right Isolate */ - UTF8PROC_BIDI_CLASS_RLI = 21, /**< Right-to-Left Isolate */ - UTF8PROC_BIDI_CLASS_FSI = 22, /**< First Strong Isolate */ - UTF8PROC_BIDI_CLASS_PDI = 23, /**< Pop Directional Isolate */ -} utf8proc_bidi_class_t; - -/** Decomposition type. */ -typedef enum { - UTF8PROC_DECOMP_TYPE_FONT = 1, /**< Font */ - UTF8PROC_DECOMP_TYPE_NOBREAK = 2, /**< Nobreak */ - UTF8PROC_DECOMP_TYPE_INITIAL = 3, /**< Initial */ - UTF8PROC_DECOMP_TYPE_MEDIAL = 4, /**< Medial */ - UTF8PROC_DECOMP_TYPE_FINAL = 5, /**< Final */ - UTF8PROC_DECOMP_TYPE_ISOLATED = 6, /**< Isolated */ - UTF8PROC_DECOMP_TYPE_CIRCLE = 7, /**< Circle */ - UTF8PROC_DECOMP_TYPE_SUPER = 8, /**< Super */ - UTF8PROC_DECOMP_TYPE_SUB = 9, /**< Sub */ - UTF8PROC_DECOMP_TYPE_VERTICAL = 10, /**< Vertical */ - UTF8PROC_DECOMP_TYPE_WIDE = 11, /**< Wide */ - UTF8PROC_DECOMP_TYPE_NARROW = 12, /**< Narrow */ - UTF8PROC_DECOMP_TYPE_SMALL = 13, /**< Small */ - UTF8PROC_DECOMP_TYPE_SQUARE = 14, /**< Square */ - UTF8PROC_DECOMP_TYPE_FRACTION = 15, /**< Fraction */ - UTF8PROC_DECOMP_TYPE_COMPAT = 16, /**< Compat */ -} utf8proc_decomp_type_t; - -/** Boundclass property. (TR29) */ -typedef enum { - UTF8PROC_BOUNDCLASS_START = 0, /**< Start */ - UTF8PROC_BOUNDCLASS_OTHER = 1, /**< Other */ - UTF8PROC_BOUNDCLASS_CR = 2, /**< Cr */ - UTF8PROC_BOUNDCLASS_LF = 3, /**< Lf */ - UTF8PROC_BOUNDCLASS_CONTROL = 4, /**< Control */ - UTF8PROC_BOUNDCLASS_EXTEND = 5, /**< Extend */ - UTF8PROC_BOUNDCLASS_L = 6, /**< L */ - UTF8PROC_BOUNDCLASS_V = 7, /**< V */ - UTF8PROC_BOUNDCLASS_T = 8, /**< T */ - UTF8PROC_BOUNDCLASS_LV = 9, /**< Lv */ - UTF8PROC_BOUNDCLASS_LVT = 10, /**< Lvt */ - UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR = 11, /**< Regional indicator */ - UTF8PROC_BOUNDCLASS_SPACINGMARK = 12, /**< Spacingmark */ - UTF8PROC_BOUNDCLASS_PREPEND = 13, /**< Prepend */ - UTF8PROC_BOUNDCLASS_ZWJ = 14, /**< Zero Width Joiner */ - UTF8PROC_BOUNDCLASS_E_BASE = 15, /**< Emoji Base */ - UTF8PROC_BOUNDCLASS_E_MODIFIER = 16, /**< Emoji Modifier */ - UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ = 17, /**< Glue_After_ZWJ */ - UTF8PROC_BOUNDCLASS_E_BASE_GAZ = 18, /**< E_BASE + GLUE_AFTER_ZJW */ -} utf8proc_boundclass_t; - -/** - * Function pointer type passed to @ref utf8proc_map_custom and - * @ref utf8proc_decompose_custom, which is used to specify a user-defined - * mapping of codepoints to be applied in conjunction with other mappings. - */ -typedef utf8proc_int32_t (*utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data); - -/** - * Array containing the byte lengths of a UTF-8 encoded codepoint based - * on the first byte. - */ -UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256]; - -/** - * Returns the utf8proc API version as a string MAJOR.MINOR.PATCH - * (http://semver.org format), possibly with a "-dev" suffix for - * development versions. - */ -UTF8PROC_DLLEXPORT const char *utf8proc_version(void); - -/** - * Returns an informative error string for the given utf8proc error code - * (e.g. the error codes returned by @ref utf8proc_map). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode); - -/** - * Reads a single codepoint from the UTF-8 sequence being pointed to by `str`. - * The maximum number of bytes read is `strlen`, unless `strlen` is - * negative (in which case up to 4 bytes are read). - * - * If a valid codepoint could be read, it is stored in the variable - * pointed to by `codepoint_ref`, otherwise that variable will be set to -1. - * In case of success, the number of bytes read is returned; otherwise, a - * negative error code is returned. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref); - -/** - * Check if a codepoint is valid (regardless of whether it has been - * assigned a value by the current Unicode standard). - * - * @return 1 if the given `codepoint` is valid and otherwise return 0. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint); - -/** - * Encodes the codepoint as an UTF-8 string in the byte array pointed - * to by `dst`. This array must be at least 4 bytes long. - * - * In case of success the number of bytes written is returned, and - * otherwise 0 is returned. - * - * This function does not check whether `codepoint` is valid Unicode. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst); - -/** - * Look up the properties for a given codepoint. - * - * @param codepoint The Unicode codepoint. - * - * @returns - * A pointer to a (constant) struct containing information about - * the codepoint. - * @par - * If the codepoint is unassigned or invalid, a pointer to a special struct is - * returned in which `category` is 0 (@ref UTF8PROC_CATEGORY_CN). - */ -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t codepoint); - -/** Decompose a codepoint into an array of codepoints. - * - * @param codepoint the codepoint. - * @param dst the destination buffer. - * @param bufsize the size of the destination buffer. - * @param options one or more of the following flags: - * - @ref UTF8PROC_REJECTNA - return an error `codepoint` is unassigned - * - @ref UTF8PROC_IGNORE - strip "default ignorable" codepoints - * - @ref UTF8PROC_CASEFOLD - apply Unicode casefolding - * - @ref UTF8PROC_COMPAT - replace certain codepoints with their - * compatibility decomposition - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - @ref UTF8PROC_LUMP - lump certain different codepoints together - * - @ref UTF8PROC_STRIPMARK - remove all character marks - * @param last_boundclass - * Pointer to an integer variable containing - * the previous codepoint's boundary class if the @ref UTF8PROC_CHARBOUND - * option is used. Otherwise, this parameter is ignored. - * - * @return - * In case of success, the number of codepoints written is returned; in case - * of an error, a negative error code is returned (@ref utf8proc_errmsg). - * @par - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char( - utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, - utf8proc_option_t options, int *last_boundclass -); - -/** - * The same as @ref utf8proc_decompose_char, but acts on a whole UTF-8 - * string and orders the decomposed sequences correctly. - * - * If the @ref UTF8PROC_NULLTERM flag in `options` is set, processing - * will be stopped, when a NULL byte is encounted, otherwise `strlen` - * bytes are processed. The result (in the form of 32-bit unicode - * codepoints) is written into the buffer being pointed to by - * `buffer` (which must contain at least `bufsize` entries). In case of - * success, the number of codepoints written is returned; in case of an - * error, a negative error code is returned (@ref utf8proc_errmsg). - * See @ref utf8proc_decompose_custom to supply additional transformations. - * - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -); - -/** - * The same as @ref utf8proc_decompose, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. See also @ref utf8proc_map_custom. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** - * Normalizes the sequence of `length` codepoints pointed to by `buffer` - * in-place (i.e., the result is also stored in `buffer`). - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - * @return - * In case of success, the length (in codepoints) of the normalized UTF-32 string is - * returned; otherwise, a negative error code is returned (@ref utf8proc_errmsg). - * - * @warning The entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Reencodes the sequence of `length` codepoints pointed to by `buffer` - * UTF-8 data in-place (i.e., the result is also stored in `buffer`). - * Can optionally normalize the UTF-32 sequence prior to UTF-8 conversion. - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - * @return - * In case of success, the length (in bytes) of the resulting nul-terminated - * UTF-8 string is returned; otherwise, a negative error code is returned - * (@ref utf8proc_errmsg). - * - * @warning The amount of free space pointed to by `buffer` must - * exceed the amount of the input data by one byte, and the - * entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Given a pair of consecutive codepoints, return whether a grapheme break is - * permitted between them (as defined by the extended grapheme clusters in UAX#29). - * - * @param state Beginning with Version 29 (Unicode 9.0.0), this algorithm requires - * state to break graphemes. This state can be passed in as a pointer - * in the `state` argument and should initially be set to 0. If the - * state is not passed in (i.e. a null pointer is passed), UAX#29 rules - * GB10/12/13 which require this state will not be applied, essentially - * matching the rules in Unicode 8.0.0. - * - * @warning If the state parameter is used, `utf8proc_grapheme_break_stateful` must - * be called IN ORDER on ALL potential breaks in a string. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state); - -/** - * Same as @ref utf8proc_grapheme_break_stateful, except without support for the - * Unicode 9 additions to the algorithm. Supported for legacy reasons. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2); - - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * lower-case character, if any; otherwise (if there is no lower-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * upper-case character, if any; otherwise (if there is no upper-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * title-case character, if any; otherwise (if there is no title-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c); - -/** - * Given a codepoint, return a character width analogous to `wcwidth(codepoint)`, - * except that a width of 0 is returned for non-printable codepoints - * instead of -1 as in `wcwidth`. - * - * @note - * If you want to check for particular types of non-printable characters, - * (analogous to `isprint` or `iscntrl`), use @ref utf8proc_category. */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t codepoint); - -/** - * Return the Unicode category for the codepoint (one of the - * @ref utf8proc_category_t constants.) - */ -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint); - -/** - * Return the two-letter (nul-terminated) Unicode category string for - * the codepoint (e.g. `"Lu"` or `"Co"`). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t codepoint); - -/** - * Maps the given UTF-8 string pointed to by `str` to a new UTF-8 - * string, allocated dynamically by `malloc` and returned via `dstptr`. - * - * If the @ref UTF8PROC_NULLTERM flag in the `options` field is set, - * the length is determined by a NULL terminator, otherwise the - * parameter `strlen` is evaluated to determine the string length, but - * in any case the result will be NULL terminated (though it might - * contain NULL characters with the string if `str` contained NULL - * characters). Other flags in the `options` field are passed to the - * functions defined above, and regarded as described. See also - * @ref utfproc_map_custom to supply a custom codepoint transformation. - * - * In case of success the length of the new string is returned, - * otherwise a negative error code is returned. - * - * @note The memory of the new UTF-8 string will have been allocated - * with `malloc`, and should therefore be deallocated with `free`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -); - -/** - * Like @ref utf8proc_map, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** @name Unicode normalization - * - * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC - * normalized version of the null-terminated string `str`. These - * are shortcuts to calling @ref utf8proc_map with @ref UTF8PROC_NULLTERM - * combined with @ref UTF8PROC_STABLE and flags indicating the normalization. - */ -/** @{ */ -/** NFD normalization (@ref UTF8PROC_DECOMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str); -/** NFC normalization (@ref UTF8PROC_COMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str); -/** NFKD normalization (@ref UTF8PROC_DECOMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str); -/** NFKC normalization (@ref UTF8PROC_COMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str); -/** @} */ - -#ifdef __cplusplus -} -#endif - -#endif From 3c59fb860df95dbfe4abff57252c7ad685a60f52 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 4 Dec 2018 15:52:43 -0700 Subject: [PATCH 20/38] Updating files to refer to the top-level COPYRIGHT file. --- dap4_test/CMakeLists.txt | 7 ++++ dap4_test/Makefile.am | 2 +- dap4_test/baseline/CMakeLists.txt | 7 ++++ dap4_test/baselineraw/CMakeLists.txt | 7 ++++ dap4_test/baselineremote/CMakeLists.txt | 7 ++++ dap4_test/cdltestfiles/CMakeLists.txt | 7 ++++ dap4_test/daptestfiles/CMakeLists.txt | 7 ++++ dap4_test/dmrtestfiles/CMakeLists.txt | 7 ++++ dap4_test/misctestfiles/CMakeLists.txt | 7 ++++ dap4_test/nctestfiles/CMakeLists.txt | 7 ++++ docs/CMakeLists.txt | 7 ++++ docs/COPYRIGHT.dox | 37 ---------------- docs/COPYRIGHT.md | 16 +++++++ docs/Doxyfile.in | 2 +- docs/Makefile.am | 8 +++- docs/images/Makefile.am | 7 ++++ docs/user_defined_formats.md | 1 - examples/C/CMakeLists.txt | 7 ++++ examples/C/Makefile.am | 2 +- examples/C/file.c | 23 +++++++--- examples/C/format.c | 25 +++++++---- examples/C/large_files.c | 13 +++++- examples/C/met4D.c | 56 +++++++++++++++---------- examples/C/parallel_vara.c | 1 - examples/C/pres_temp_4D_wr.c | 28 ++++++------- examples/C/quick_large_files.c | 33 ++++++++------- examples/C/quick_small_files.c | 26 ++++++++---- examples/C/run_examples.sh | 6 +++ examples/C/run_examples4.sh | 6 +++ examples/C/run_filter.sh | 8 +++- examples/C/sfc_pres_temp_more.c | 8 ++-- examples/C/sfc_pres_temp_rd.c | 12 +++--- examples/C/sfc_pres_temp_wr.c | 26 ++++++------ examples/C/simple.c | 26 ++++++++---- examples/C/simple_nc4_rd.c | 8 ++-- examples/C/simple_nc4_wr.c | 14 +++---- examples/C/simple_xy_wr.c | 7 +++- include/ceconstraints.h | 15 ++++--- include/netcdf.h | 3 +- 39 files changed, 328 insertions(+), 168 deletions(-) delete mode 100644 docs/COPYRIGHT.dox create mode 100644 docs/COPYRIGHT.md diff --git a/dap4_test/CMakeLists.txt b/dap4_test/CMakeLists.txt index d044b1aba1..a0271057ed 100644 --- a/dap4_test/CMakeLists.txt +++ b/dap4_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) remove_definitions(-DDLL_EXPORT) diff --git a/dap4_test/Makefile.am b/dap4_test/Makefile.am index 676cb49df2..bf1ab308e2 100644 --- a/dap4_test/Makefile.am +++ b/dap4_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2011, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs DAP4 tests. diff --git a/dap4_test/baseline/CMakeLists.txt b/dap4_test/baseline/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baseline/CMakeLists.txt +++ b/dap4_test/baseline/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineraw/CMakeLists.txt b/dap4_test/baselineraw/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baselineraw/CMakeLists.txt +++ b/dap4_test/baselineraw/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineremote/CMakeLists.txt b/dap4_test/baselineremote/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baselineremote/CMakeLists.txt +++ b/dap4_test/baselineremote/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/cdltestfiles/CMakeLists.txt b/dap4_test/cdltestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/cdltestfiles/CMakeLists.txt +++ b/dap4_test/cdltestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/daptestfiles/CMakeLists.txt b/dap4_test/daptestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/daptestfiles/CMakeLists.txt +++ b/dap4_test/daptestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/dmrtestfiles/CMakeLists.txt b/dap4_test/dmrtestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/dmrtestfiles/CMakeLists.txt +++ b/dap4_test/dmrtestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/misctestfiles/CMakeLists.txt b/dap4_test/misctestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/misctestfiles/CMakeLists.txt +++ b/dap4_test/misctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/nctestfiles/CMakeLists.txt b/dap4_test/nctestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/nctestfiles/CMakeLists.txt +++ b/dap4_test/nctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 70a8bf7add..0132cd3b00 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + ##### # Build doxygen documentation, if need be. ##### diff --git a/docs/COPYRIGHT.dox b/docs/COPYRIGHT.dox deleted file mode 100644 index 1062dd5299..0000000000 --- a/docs/COPYRIGHT.dox +++ /dev/null @@ -1,37 +0,0 @@ -/*! \page copyright COPYRIGHT - -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -University Corporation for Atmospheric Research/Unidata. - -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. - -*/ \ No newline at end of file diff --git a/docs/COPYRIGHT.md b/docs/COPYRIGHT.md new file mode 100644 index 0000000000..a1d249f5a1 --- /dev/null +++ b/docs/COPYRIGHT.md @@ -0,0 +1,16 @@ +COPYRIGHT {#copyright} +===================== + +Copyright 2018 Unidata + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 6c5e98a996..5aebe4a52a 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -761,7 +761,7 @@ INPUT = \ @abs_top_srcdir@/docs/all-error-codes.md \ @abs_top_srcdir@/docs/FAQ.md \ @abs_top_srcdir@/docs/known_problems.md \ - @abs_top_srcdir@/docs/COPYRIGHT.dox \ + @abs_top_srcdir@/docs/COPYRIGHT.md \ @abs_top_srcdir@/docs/credits.md \ @abs_top_srcdir@/docs/bestpractices.md \ @abs_top_srcdir@/docs/tutorial.dox \ diff --git a/docs/Makefile.am b/docs/Makefile.am index 3290059a11..b7336c77dd 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,6 +1,10 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005-2011, see the COPYRIGHT file for more information. -# This file builds the netcdf documentation. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # These files will be included with the dist. EXTRA_DIST = netcdf.m4 DoxygenLayout.xml Doxyfile.in footer.html \ diff --git a/docs/images/Makefile.am b/docs/images/Makefile.am index 341f444a03..4bae23eccc 100644 --- a/docs/images/Makefile.am +++ b/docs/images/Makefile.am @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + EXTRA_DIST = aqua.jpg chunking2.png compatibility3.png compression.png \ groups.png nc4-model.png ncatts.png nc-classic-uml.png nccoords.png \ ncfile.png pnetcdf.png terra.jpg netcdf_architecture.png \ diff --git a/docs/user_defined_formats.md b/docs/user_defined_formats.md index 1d874c4027..f8ea7f9adf 100644 --- a/docs/user_defined_formats.md +++ b/docs/user_defined_formats.md @@ -111,4 +111,3 @@ user-defined format. (This is unnecessary if you just want to read HDF4 SD files, since the netCDF C library already includes an HDF4 SD file reader. This user-defined format library uses the same code. It is repackaged as a user-defined library to provide a working sample.) - diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt index 191bc2d741..bea8f4c41d 100644 --- a/examples/C/CMakeLists.txt +++ b/examples/C/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(exam_C_tests simple_xy_wr simple_xy_rd sfc_pres_temp_wr sfc_pres_temp_rd pres_temp_4D_wr pres_temp_4D_rd) SET(exam_C_tests_source "") FOREACH(F ${exam_C_tests}) diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am index c4996e5e8e..116d86e2a4 100644 --- a/examples/C/Makefile.am +++ b/examples/C/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds the C examples. diff --git a/examples/C/file.c b/examples/C/file.c index f1781d2451..836f044df2 100644 --- a/examples/C/file.c +++ b/examples/C/file.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program demonstrates various ways to create a netCDF file, open an existing file, and close a file. @@ -18,7 +30,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return e; \ -} while (0) +} while (0) #define FILENAME "test.nc" #define VARNAME "var1" @@ -31,7 +43,7 @@ int main() { /* These are netCDF IDs for file, dimension, and variable. */ - int ncid, dimid, varid; + int ncid, dimid, varid; /* This array will hold one ID for each dimension in the variable, in this case, one. */ @@ -41,7 +53,7 @@ main() int data_out[] = {0,1,2,3,4,5,6,7,8,9}; int data_in[DIMLEN]; - int i, res; + int i, res; /* Create a classic format netCDF file, overwritting any file of this name that may already exist. */ @@ -99,11 +111,10 @@ main() fprintf(stderr, "Unexpected value!\n"); return ERROR; } - + /* Close the file again. */ if ((res = nc_close(ncid))) BAIL(res); return 0; } - diff --git a/examples/C/format.c b/examples/C/format.c index 79b0f78346..5559512035 100644 --- a/examples/C/format.c +++ b/examples/C/format.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This example shows how to create and deal with files of different netcdf formats (i.e. classic vs. 64-bit-offset). @@ -19,7 +31,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -33,7 +45,7 @@ main() float temp[LAT_LEN][LON_LEN], *fp; char classic_file[] = "classic.nc", offset64_file[] = "offset.nc"; char *file = classic_file; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -59,12 +71,12 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -79,4 +91,3 @@ main() return 0; } - diff --git a/examples/C/large_files.c b/examples/C/large_files.c index 12511aee2d..d4642d7092 100644 --- a/examples/C/large_files.c +++ b/examples/C/large_files.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -135,7 +146,7 @@ main() { /* create rec2Gp.nc */ for(j=0; j function, which can write any array subset of the variable. */ start[0] = rec; /* We want to write *this* record. */ - if ((res = nc_put_vara_float(ncid, temp_varid, start, count, + if ((res = nc_put_vara_float(ncid, temp_varid, start, count, (float *)temp))) BAIL(res); if ((res = nc_put_vara_float(ncid, pres_varid, start, count, (float *)pres))) BAIL(res); /* We're done writing one record. */ - } + } /* Close the file. We're done, so we can go out and see the new Harry Potter movie! */ @@ -278,4 +289,3 @@ main() return 0; } - diff --git a/examples/C/parallel_vara.c b/examples/C/parallel_vara.c index 240d283600..d958f36b37 100644 --- a/examples/C/parallel_vara.c +++ b/examples/C/parallel_vara.c @@ -188,4 +188,3 @@ int main(int argc, char** argv) MPI_Finalize(); return 0; } - diff --git a/examples/C/pres_temp_4D_wr.c b/examples/C/pres_temp_4D_wr.c index 7524c63b27..b2848ce2d0 100644 --- a/examples/C/pres_temp_4D_wr.c +++ b/examples/C/pres_temp_4D_wr.c @@ -6,7 +6,7 @@ temperatures. It is intended to illustrate the use of the netCDF C API. The companion program pres_temp_4D_rd.c shows how to read the netCDF data file created by this program. -Copyright 2006 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -76,7 +76,7 @@ main() /* Loop indexes. */ int lvl, lat, lon, rec, i = 0; - + /* Error handling. */ int retval; @@ -87,7 +87,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lvl = 0; lvl < NLVL; lvl++) for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) @@ -118,18 +118,18 @@ main() since coordinate variables only have one dimension, we can simply provide the address of that dimension ID (&lat_dimid) and similarly for (&lon_dimid). */ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); /* Assign units attributes to coordinate variables. */ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -144,18 +144,18 @@ main() /* Define the netCDF variables for the pressure and temperature * data. */ - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Assign units attributes to the netCDF variables. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(PRES_UNITS), PRES_UNITS))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(TEMP_UNITS), TEMP_UNITS))) ERR(retval); @@ -188,10 +188,10 @@ main() for (rec = 0; rec < NREC; rec++) { start[0] = rec; - if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, + if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, &pres_out[0][0][0]))) ERR(retval); - if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, + if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, &temp_out[0][0][0]))) ERR(retval); } @@ -199,7 +199,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file %s!\n", FILE_NAME); return 0; } diff --git a/examples/C/quick_large_files.c b/examples/C/quick_large_files.c index 4ba7a5b394..f5aaa29898 100644 --- a/examples/C/quick_large_files.c +++ b/examples/C/quick_large_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program (quickly, but not thoroughly) tests the large file features. @@ -19,14 +30,14 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 /* This dim len is the max size for an 8-byte type in 64-bit offset format: (2*32 - 4) / 8, that is, 4 GB minus a bit, on an 8 byte boundary. */ -#define DIM_LEN 536870911 +#define DIM_LEN 536870911 int main() @@ -34,7 +45,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {DIM_LEN-1}; - int i, res; + int i, res; /* Create the netCDF 64-bit offset format file. */ if ((res = nc_create("example.nc", NC_CLOBBER|NC_64BIT_OFFSET, &ncid))) @@ -47,15 +58,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -69,9 +80,3 @@ main() return 0; } - - - - - - diff --git a/examples/C/quick_small_files.c b/examples/C/quick_small_files.c index 9be8dab686..70f281a619 100644 --- a/examples/C/quick_small_files.c +++ b/examples/C/quick_small_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program will create a large file in netCDF classic format. From the netcdf docs: @@ -25,7 +36,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 @@ -40,7 +51,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {1}; - int i, res; + int i, res; /* Create the netCDF classic format file. */ if ((res = nc_create("example.nc", NC_CLOBBER, &ncid))) @@ -53,15 +64,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -75,4 +86,3 @@ main() return 0; } - diff --git a/examples/C/run_examples.sh b/examples/C/run_examples.sh index 655314bfae..e7e08bf2c1 100755 --- a/examples/C/run_examples.sh +++ b/examples/C/run_examples.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples. # Ed Hartnett diff --git a/examples/C/run_examples4.sh b/examples/C/run_examples4.sh index 24691af4e1..5cecfa3a7b 100755 --- a/examples/C/run_examples4.sh +++ b/examples/C/run_examples4.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples for netCDF4. # Ed Hartnett diff --git a/examples/C/run_filter.sh b/examples/C/run_filter.sh index acd2f787f9..64d1a0a541 100755 --- a/examples/C/run_filter.sh +++ b/examples/C/run_filter.sh @@ -1,6 +1,10 @@ #!/bin/sh -# This shell script runs the examples for netCDF4. -# Ed Hartnett +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../../test_common.sh diff --git a/examples/C/sfc_pres_temp_more.c b/examples/C/sfc_pres_temp_more.c index 0dd51b6ef5..d2780a68c9 100644 --- a/examples/C/sfc_pres_temp_more.c +++ b/examples/C/sfc_pres_temp_more.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a simple example which writes and then reads some surface @@ -72,7 +72,7 @@ main() * applies to the entire file, not just to one variable. Don't * forget that sizeof does not include the null terminator, so if * you want it, you need to add one more byte. */ - if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, + if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, sizeof(poem) + 1, poem))) return retval; @@ -118,7 +118,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) return retval; - + /* Open the file and check that everything's OK. */ if ((retval = nc_open(FILE_NAME, 0, &ncid))) return retval; @@ -134,7 +134,7 @@ main() free(att_in); if (error) return -2; - + /* Read the data. */ if ((retval = nc_get_var_float(ncid, pres_varid, pres_in))) return retval; diff --git a/examples/C/sfc_pres_temp_rd.c b/examples/C/sfc_pres_temp_rd.c index 315f1bcbeb..d8ff39383c 100644 --- a/examples/C/sfc_pres_temp_rd.c +++ b/examples/C/sfc_pres_temp_rd.c @@ -5,8 +5,8 @@ This is an example which reads some surface pressure and temperatures. The data file read by this program is produced by the companion program sfc_pres_temp_wr.c. It is intended to illustrate the use of the netCDF C API. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -82,14 +82,14 @@ main() many netCDF variables, dimensions, and global attributes are in the file; also the dimension id of the unlimited dimension, if there is one. */ - if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, + if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, &unlimdimid_in))) ERR(retval); /* In this case we know that there are 2 netCDF dimensions, 4 netCDF variables, no global attributes, and no unlimited dimension. */ - if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || + if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || unlimdimid_in != -1) return 2; /* Get the varids of the latitude and longitude coordinate @@ -139,12 +139,12 @@ main() them and check them. */ if ((retval = nc_get_att_text(ncid, lat_varid, UNITS, lat_units_in))) ERR(retval); - if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) + if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, lon_varid, UNITS, lon_units_in))) ERR(retval); - if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) + if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, pres_varid, UNITS, pres_units_in))) diff --git a/examples/C/sfc_pres_temp_wr.c b/examples/C/sfc_pres_temp_wr.c index 9928368a4d..803baf0a49 100644 --- a/examples/C/sfc_pres_temp_wr.c +++ b/examples/C/sfc_pres_temp_wr.c @@ -5,8 +5,8 @@ This example writes some surface pressure and temperatures. It is intended to illustrate the use of the netCDF C API. The companion program sfc_pres_temp_rd.c shows how to read the netCDF data file created by this program. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -68,7 +68,7 @@ main() /* Loop indexes. */ int lat, lon; - + /* Error handling. */ int retval; @@ -79,7 +79,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) { @@ -100,10 +100,10 @@ main() /* Define coordinate netCDF variables. They will hold the coordinate information, that is, the latitudes and longitudes. A varid is returned for each.*/ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); @@ -114,10 +114,10 @@ main() not use null-terminated strings. In general it is up to the reading C program to ensure that it puts null-terminators on strings where necessary.*/ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -125,18 +125,18 @@ main() the dimids of the dimensions of the variables.*/ dimids[0] = lat_dimid; dimids[1] = lon_dimid; - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Define units attributes for vars. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(pres_units), pres_units))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(temp_units), temp_units))) ERR(retval); @@ -162,7 +162,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file sfc_pres_temp.nc!\n"); return 0; } diff --git a/examples/C/simple.c b/examples/C/simple.c index a2a3db3ab2..6091596740 100644 --- a/examples/C/simple.c +++ b/examples/C/simple.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. How about a short, but meaningful, netCDF program? @@ -18,7 +29,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -31,7 +42,7 @@ main() { int ncid, temp_varid, dimids[NUMDIMS]; float temp[LAT_LEN][LON_LEN], *fp; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -47,14 +58,14 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We'll store the units. */ - if ((res = nc_put_att_text(ncid, temp_varid, "units", + if ((res = nc_put_att_text(ncid, temp_varid, "units", strlen(CELSIUS), CELSIUS))) BAIL(res); @@ -71,4 +82,3 @@ main() return 0; } - diff --git a/examples/C/simple_nc4_rd.c b/examples/C/simple_nc4_rd.c index cf2adc031a..55768cefc8 100644 --- a/examples/C/simple_nc4_rd.c +++ b/examples/C/simple_nc4_rd.c @@ -7,7 +7,7 @@ features of netCDF-4.0. This example reads a simple file created by simple_nc4_wr.c. This is intended to illustrate the use of the netCDF-4 C API. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -41,7 +41,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -61,7 +61,7 @@ main() /* Get the varid of the uint64 data variable, based on its name, in * grp1. */ - if ((retval = nc_inq_varid(grp1id, "data", &varid1))) + if ((retval = nc_inq_varid(grp1id, "data", &varid1))) ERR(retval); /* Read the data. */ @@ -70,7 +70,7 @@ main() /* Get the varid of the compound data variable, based on its name, * in grp2. */ - if ((retval = nc_inq_varid(grp2id, "data", &varid2))) + if ((retval = nc_inq_varid(grp2id, "data", &varid2))) ERR(retval); /* Read the data. */ diff --git a/examples/C/simple_nc4_wr.c b/examples/C/simple_nc4_wr.c index b14b822adc..407db6db7a 100644 --- a/examples/C/simple_nc4_wr.c +++ b/examples/C/simple_nc4_wr.c @@ -6,7 +6,7 @@ some netCDF variables in different subgroups. The variables will include a compound and an enum type, as well as some of the new atomic types, like the unsigned 64-bit integer. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -45,7 +45,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -85,7 +85,7 @@ main() /* Define an unsigned 64bit integer variable in grp1, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, + if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, dimids, &varid1))) ERR(retval); @@ -95,19 +95,19 @@ main() ERR(retval); /* Create a compound type. This will cause nc_reddef to be called. */ - if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", + if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", &typeid)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i1", + if (nc_insert_compound(grp2id, typeid, "i1", offsetof(struct s1, i1), NC_INT)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i2", + if (nc_insert_compound(grp2id, typeid, "i2", offsetof(struct s1, i2), NC_INT)) ERR(retval); /* Define a compound type variable in grp2, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, + if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, dimids, &varid2))) ERR(retval); diff --git a/examples/C/simple_xy_wr.c b/examples/C/simple_xy_wr.c index 5aba7c417c..441aa2e30b 100644 --- a/examples/C/simple_xy_wr.c +++ b/examples/C/simple_xy_wr.c @@ -1,6 +1,11 @@ /*! \file An example program demonstrating a simple 2D write. +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. +See netcdf-c/COPYRIGHT file for more info. */ #include @@ -65,7 +70,7 @@ main() /* Define the variable. The type of the variable in this case is * NC_INT (4-byte integer). */ - if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, + if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, dimids, &varid))) ERR(retval); diff --git a/include/ceconstraints.h b/include/ceconstraints.h index dadd6d4891..ac688955e7 100644 --- a/include/ceconstraints.h +++ b/include/ceconstraints.h @@ -1,7 +1,13 @@ -/********************************************************************* - * Copyright 1993, UCAR/Unidata - * See netcdf/COPYRIGHT file for copying and redistribution conditions. - *********************************************************************/ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* $Header$ */ #ifndef CECONSTRAINTS_H @@ -28,4 +34,3 @@ CES_VALUE=18, CES_SLICE=19 } CEsort; #endif /*CECONSTRAINTS_H*/ - diff --git a/include/netcdf.h b/include/netcdf.h index 96790560b7..1f50d36312 100644 --- a/include/netcdf.h +++ b/include/netcdf.h @@ -3,7 +3,8 @@ Main header file for the C API. Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. From a3eb21c0684b8ea606d9cb4b6dd143c05b2c9cfc Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 4 Dec 2018 16:51:40 -0700 Subject: [PATCH 21/38] Continuing to replace references. --- examples/CDL/CMakeLists.txt | 7 +++ examples/CDL/Makefile.am | 9 +++- examples/CDL/do_comps.sh | 7 +++ examples/CMakeLists.txt | 6 +++ examples/Makefile.am | 12 +++-- h5_test/CMakeLists.txt | 7 +++ h5_test/Makefile.am | 2 +- h5_test/h5_err_macros.h | 2 +- h5_test/run_par_tests.sh | 6 +++ h5_test/tst_h_atts.c | 94 ++++++++++++++++++------------------- h5_test/tst_h_atts3.c | 50 ++++++++++---------- h5_test/tst_h_atts4.c | 36 +++++++------- h5_test/tst_h_compounds.c | 86 ++++++++++++++++----------------- h5_test/tst_h_compounds2.c | 26 +++++----- h5_test/tst_h_dimscales.c | 2 +- 15 files changed, 196 insertions(+), 156 deletions(-) diff --git a/examples/CDL/CMakeLists.txt b/examples/CDL/CMakeLists.txt index 6507bb7d5d..2c06bf14be 100644 --- a/examples/CDL/CMakeLists.txt +++ b/examples/CDL/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(CDL_EXAMPLE_TESTS do_comps) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) diff --git a/examples/CDL/Makefile.am b/examples/CDL/Makefile.am index 0af9bd3aa5..77123a117e 100644 --- a/examples/CDL/Makefile.am +++ b/examples/CDL/Makefile.am @@ -1,6 +1,11 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. -# This file builds CDL examples. + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Ed Hartnett # Note which tests depend on other tests. Necessary for make -j check. diff --git a/examples/CDL/do_comps.sh b/examples/CDL/do_comps.sh index 88f80f91f2..ed6709d550 100755 --- a/examples/CDL/do_comps.sh +++ b/examples/CDL/do_comps.sh @@ -1,4 +1,11 @@ #!/bin/sh + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the cmp test on the example programs. # $Id: do_comps.sh,v 1.1 2006/06/27 17:44:54 ed Exp $ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 5a253c245a..4200674d70 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ADD_SUBDIRECTORY(C) IF(BUILD_UTILITIES) diff --git a/examples/Makefile.am b/examples/Makefile.am index 52b9dd177d..58f1a88be3 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,16 +1,18 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. -# This is the main automake file for netCDF. It builds the different -# netcdf directories. Not all directories are built, depending on the -# options selected during configure. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Build ncgen/ncdump. if BUILD_UTILITIES CDL_DIR = CDL endif -# These are the subdirectories that will be built. +# These are the subdirectories that will be built. SUBDIRS = C $(CDL_DIR) EXTRA_DIST=CMakeLists.txt diff --git a/h5_test/CMakeLists.txt b/h5_test/CMakeLists.txt index 5b51ddfd86..c6838aecbf 100644 --- a/h5_test/CMakeLists.txt +++ b/h5_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(H5TESTS tst_h_files tst_h_files2 tst_h_files4 tst_h_atts tst_h_atts3 tst_h_atts4 tst_h_vars tst_h_vars2 tst_h_vars3 tst_h_grps tst_h_compounds tst_h_compounds2 tst_h_wrt_cmp tst_h_vl tst_h_opaques tst_h_strings tst_h_strings1 tst_h_strings2 tst_h_ints tst_h_dimscales tst_h_dimscales1 tst_h_dimscales2 tst_h_dimscales3 tst_h_enums tst_h_dimscales4) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h5 ${CMAKE_CURRENT_SOURCE_DIR}/*.nc) diff --git a/h5_test/Makefile.am b/h5_test/Makefile.am index f114d7cebd..9518ab6e21 100644 --- a/h5_test/Makefile.am +++ b/h5_test/Makefile.am @@ -1,5 +1,5 @@ # This is part of the netCDF package. -# Copyright 2011 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. # # This entire directory will be skipped, unless the configure script diff --git a/h5_test/h5_err_macros.h b/h5_test/h5_err_macros.h index d2889b39da..81c729ec72 100644 --- a/h5_test/h5_err_macros.h +++ b/h5_test/h5_err_macros.h @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/run_par_tests.sh b/h5_test/run_par_tests.sh index ee0b8c7489..a594a208b7 100755 --- a/h5_test/run_par_tests.sh +++ b/h5_test/run_par_tests.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../test_common.sh diff --git a/h5_test/tst_h_atts.c b/h5_test/tst_h_atts.c index a321093816..ecefb26656 100644 --- a/h5_test/tst_h_atts.c +++ b/h5_test/tst_h_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -52,14 +52,14 @@ main() { float val = 99; - char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", - "Caligula", "Claudius", + char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", + "Caligula", "Claudius", "Ne_r_o", "V.esp.asi.an"}; char obj_name[MAX_LEN + 1]; int e, i; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, EMP_GRP, 0)) < 0) ERR; @@ -69,7 +69,7 @@ main() /* Attach some zero-length float attributes! */ for (e = 0; e < NUM_EMPS; e++) { - if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, + if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -79,15 +79,15 @@ main() if (H5Sclose(spaceid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attributes. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, EMP_GRP)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_EMPS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -104,7 +104,7 @@ main() printf("*** Checking HDF5 attribute deletes..."); { /* Create a file and open the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -112,7 +112,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -121,7 +121,7 @@ main() if (H5Adelete(grpid, ATT1_NAME) < 0) ERR; /* Create and write it again. */ - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -137,7 +137,7 @@ main() printf("*** Checking HDF5 attributes attached to the fileid..."); { /* See if we can write an attribute to the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -145,7 +145,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -158,15 +158,15 @@ main() printf("*** Checking HDF5 attributes in a group..."); { /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a text attribute with some of Hamlet's lines. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -176,7 +176,7 @@ main() H5Fclose(fileid) < 0) ERR; /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -221,19 +221,19 @@ main() float val = 99; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a float attribute with no data. The * hell with Hamlet anyway! */ if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; @@ -242,9 +242,9 @@ main() if (H5Tclose(typeid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -258,7 +258,7 @@ main() if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, 1) < 0) ERR; - if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, + if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Sclose(spaceid) < 0 || @@ -267,9 +267,9 @@ main() H5Tclose(typeid) < 0 || H5Gclose(grpid) < 0 || H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT2_NAME)) < 0) ERR; @@ -322,21 +322,21 @@ main() "So tell him, with th' occurrents, more and less,\n" "Which have solicited- the rest is silence."}; - char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", - "Act_3_Scene_2", + char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", + "Act_3_Scene_2", "Act_5_Scene_2"}; char obj_name[MAX_LEN + 1]; int i; /* Create a file and get its root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; /* Create a dataset. */ dims[0] = DIM1_LEN; if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -347,7 +347,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -364,14 +364,14 @@ main() * attributes). */ /* Open file, group, and dataset. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; if ((datasetid = H5Dopen1(grpid, VAR_NAME)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -387,7 +387,7 @@ main() /* Recreate it and add the attributes again. */ if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -398,7 +398,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -406,7 +406,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -448,7 +448,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -456,15 +456,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -506,7 +506,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -514,15 +514,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -579,10 +579,10 @@ main() if ((dimscaleid = H5Dcreate(grpid, "D1", H5T_IEEE_F32BE, spaceid, H5P_DEFAULT)) < 0) ERR; - + /* Indicate that this is a scale. */ if (H5DSset_scale(dimscaleid, NULL) < 0) ERR; - + /* Add another attribute to the group. Call it "third". */ if ((attid = H5Acreate(grpid , att_name[2], H5T_NATIVE_UCHAR, att_spaceid, H5P_DEFAULT)) < 0) ERR; @@ -610,7 +610,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != 3) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -676,7 +676,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_SIMPLE_ATTS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { diff --git a/h5_test/tst_h_atts3.c b/h5_test/tst_h_atts3.c index 7976821b0f..c65968c805 100644 --- a/h5_test/tst_h_atts3.c +++ b/h5_test/tst_h_atts3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -25,10 +25,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Magna_Carta_VLEN" +#define VLEN_TYPE_NAME "Magna_Carta_VLEN" #define S3_ATT_NAME "King_John" #define S3_TYPE_NAME "barons" -#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" +#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() for (i = 0; i < ATT_LEN; i++) for (j = 0; j < NUM_VL; j++) { - cvc_out[i].data[j].len = i + 1; + cvc_out[i].data[j].len = i + 1; if (!(cvc_out[i].data[j].p = calloc(sizeof(struct s1), cvc_out[i].data[j].len))) ERR; for (k = 0; k < cvc_out[i].data[j].len; k++) { @@ -80,14 +80,14 @@ main() * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; - if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, + if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; @@ -98,9 +98,9 @@ main() /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; @@ -110,13 +110,13 @@ main() /* Create the struct s3 type, which contains the vlen. */ if ((s3_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s3))) < 0) ERR; - if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), + if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), vlen_typeid) < 0) ERR; if (H5Tcommit(grpid, S3_TYPE_NAME, s3_typeid) < 0) ERR; /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, + if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, s3_typeid, cvc_out) < 0) ERR; @@ -127,7 +127,7 @@ main() /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; @@ -156,7 +156,7 @@ main() /* Get the typeid and native typeid. */ if ((file_typeid1[i] = H5Topen2(grpid, obj_name, H5P_DEFAULT)) < 0) ERR; - if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], + if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], H5T_DIR_DEFAULT)) < 0) ERR; } @@ -211,42 +211,42 @@ main() * int. */ for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(int), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) ((int *)vc_out[i].p)[k] = 42; } - + /* Create the HDF5 file with creation order. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create a vlen type. Its a vlen of int. */ if ((vlen_typeid = H5Tvlen_create(H5T_NATIVE_INT)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the type. */ if (H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_atts4.c b/h5_test/tst_h_atts4.c index 6228dd6619..e42cd171ef 100644 --- a/h5_test/tst_h_atts4.c +++ b/h5_test/tst_h_atts4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -26,10 +26,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" +#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" #define ATT_NAME "Poseidon" #define S3_TYPE_NAME "Olympus" -#define VL_NAME "Trident" +#define VL_NAME "Trident" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() if (!(vc_out = calloc(sizeof(hvl_t), ATT_LEN))) ERR; for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(struct s1), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) { @@ -75,50 +75,50 @@ main() ((struct s1 *)vc_out[i].p)[k].y = 2.0; } } - + /* Create the HDF5 file, with cache control, creation order, and * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; - + /* Create a vlen type. Its a vlen of struct s1. */ if ((vlen_typeid = H5Tvlen_create(s1_typeid)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the types. */ if (H5Tclose(s1_typeid) < 0 || H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_compounds.c b/h5_test/tst_h_compounds.c index b14b00b55d..a38d221ad2 100644 --- a/h5_test/tst_h_compounds.c +++ b/h5_test/tst_h_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -42,11 +42,11 @@ main() /* REALLY initialize the data (even the gaps in the structs). This * is only needed to pass valgrind. */ if (!(dummy = calloc(sizeof(struct s2), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); + free(dummy); if (!(dummy = calloc(sizeof(struct s1), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); + free(dummy); for (i=0; i Date: Tue, 4 Dec 2018 17:03:56 -0700 Subject: [PATCH 22/38] Updated copyright date. --- h5_test/tst_h_dimscales1.c | 2 +- h5_test/tst_h_dimscales2.c | 2 +- h5_test/tst_h_dimscales3.c | 2 +- h5_test/tst_h_dimscales4.c | 2 +- h5_test/tst_h_endian_float.c | 2 +- h5_test/tst_h_enums.c | 2 +- h5_test/tst_h_files.c | 2 +- h5_test/tst_h_files2.c | 2 +- h5_test/tst_h_files4.c | 2 +- h5_test/tst_h_grps.c | 2 +- h5_test/tst_h_ints.c | 2 +- h5_test/tst_h_mem.c | 2 +- h5_test/tst_h_opaques.c | 2 +- h5_test/tst_h_par.c | 52 ++++++++++++++++++------------------ h5_test/tst_h_strings.c | 2 +- h5_test/tst_h_strings1.c | 2 +- h5_test/tst_h_strings2.c | 2 +- h5_test/tst_h_vars.c | 2 +- h5_test/tst_h_vars2.c | 2 +- h5_test/tst_h_vars3.c | 2 +- h5_test/tst_h_vl.c | 2 +- h5_test/tst_h_wrt_cmp.c | 2 +- 22 files changed, 47 insertions(+), 47 deletions(-) diff --git a/h5_test/tst_h_dimscales1.c b/h5_test/tst_h_dimscales1.c index 6bc85f2494..e0691310b3 100644 --- a/h5_test/tst_h_dimscales1.c +++ b/h5_test/tst_h_dimscales1.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_dimscales2.c b/h5_test/tst_h_dimscales2.c index 11082d979f..557edbe3fb 100644 --- a/h5_test/tst_h_dimscales2.c +++ b/h5_test/tst_h_dimscales2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_dimscales3.c b/h5_test/tst_h_dimscales3.c index 97867d9570..6c21f467ec 100644 --- a/h5_test/tst_h_dimscales3.c +++ b/h5_test/tst_h_dimscales3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_dimscales4.c b/h5_test/tst_h_dimscales4.c index 028078381e..bbc169caed 100644 --- a/h5_test/tst_h_dimscales4.c +++ b/h5_test/tst_h_dimscales4.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011 University +/* This is part of the netCDF package. Copyright 2018-2011 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_endian_float.c b/h5_test/tst_h_endian_float.c index 2a9d69cdd0..5b023f9303 100644 --- a/h5_test/tst_h_endian_float.c +++ b/h5_test/tst_h_endian_float.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_enums.c b/h5_test/tst_h_enums.c index 08906dfe06..313ec300e1 100644 --- a/h5_test/tst_h_enums.c +++ b/h5_test/tst_h_enums.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_files.c b/h5_test/tst_h_files.c index 0197419ecb..145046fede 100644 --- a/h5_test/tst_h_files.c +++ b/h5_test/tst_h_files.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_files2.c b/h5_test/tst_h_files2.c index 09f1bdb60d..4a811f7869 100644 --- a/h5_test/tst_h_files2.c +++ b/h5_test/tst_h_files2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_files4.c b/h5_test/tst_h_files4.c index eef3e16089..9a457ba99e 100644 --- a/h5_test/tst_h_files4.c +++ b/h5_test/tst_h_files4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_grps.c b/h5_test/tst_h_grps.c index 65760e9648..3a8f9b8e65 100644 --- a/h5_test/tst_h_grps.c +++ b/h5_test/tst_h_grps.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Check out HDF5 groups. diff --git a/h5_test/tst_h_ints.c b/h5_test/tst_h_ints.c index d79deb83eb..9611915f41 100644 --- a/h5_test/tst_h_ints.c +++ b/h5_test/tst_h_ints.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_mem.c b/h5_test/tst_h_mem.c index bc59418459..1dd50e4818 100644 --- a/h5_test/tst_h_mem.c +++ b/h5_test/tst_h_mem.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2007 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_opaques.c b/h5_test/tst_h_opaques.c index 09dbd52c38..9fd06c0b2e 100644 --- a/h5_test/tst_h_opaques.c +++ b/h5_test/tst_h_opaques.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_par.c b/h5_test/tst_h_par.c index a419d552a4..35d365f9ef 100644 --- a/h5_test/tst_h_par.c +++ b/h5_test/tst_h_par.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 20057 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -46,14 +46,14 @@ main(int argc, char **argv) #ifdef USE_MPE MPE_Init_log(); - s_init = MPE_Log_get_event_number(); - e_init = MPE_Log_get_event_number(); - s_define = MPE_Log_get_event_number(); - e_define = MPE_Log_get_event_number(); - s_write = MPE_Log_get_event_number(); - e_write = MPE_Log_get_event_number(); - s_close = MPE_Log_get_event_number(); - e_close = MPE_Log_get_event_number(); + s_init = MPE_Log_get_event_number(); + e_init = MPE_Log_get_event_number(); + s_define = MPE_Log_get_event_number(); + e_define = MPE_Log_get_event_number(); + s_write = MPE_Log_get_event_number(); + e_write = MPE_Log_get_event_number(); + s_close = MPE_Log_get_event_number(); + e_close = MPE_Log_get_event_number(); MPE_Describe_state(s_init, e_init, "Init", "red"); MPE_Describe_state(s_define, e_define, "Define", "yellow"); MPE_Describe_state(s_write, e_write, "Write", "green"); @@ -80,7 +80,7 @@ main(int argc, char **argv) * fill the file. */ for (i = 0; i < SC1; i++) data[i] = rand(); - + #ifdef USE_MPE MPE_Log_event(e_init, 0, "end init"); MPE_Log_event(s_define, 0, "start define file"); @@ -89,7 +89,7 @@ main(int argc, char **argv) /* Create file. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fapl_mpio(fapl_id, MPI_COMM_WORLD, MPI_INFO_NULL) < 0) ERR; - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) ERR; /* Create a space to deal with one slice in memory. */ @@ -101,7 +101,7 @@ main(int argc, char **argv) if ((whole_spaceid = H5Screate_simple(NDIMS, dims, NULL)) < 0) ERR; /* Create dataset. */ - if ((dsid = H5Dcreate1(fileid, VAR_NAME, H5T_NATIVE_INT, + if ((dsid = H5Dcreate1(fileid, VAR_NAME, H5T_NATIVE_INT, whole_spaceid, H5P_DEFAULT)) < 0) ERR; /* Use collective write operations. */ @@ -115,7 +115,7 @@ main(int argc, char **argv) #endif /* USE_MPE */ /* Write the data in num_step steps. */ - ftime = MPI_Wtime(); + ftime = MPI_Wtime(); num_steps = (DIM2_LEN/SC1) / p; for (s = 0; s < num_steps; s++) { @@ -126,10 +126,10 @@ main(int argc, char **argv) /* Select hyperslab for write of one slice. */ start[0] = s * SC1 * p + my_rank * SC1; count[0] = SC1; - if (H5Sselect_hyperslab(whole_spaceid, H5S_SELECT_SET, + if (H5Sselect_hyperslab(whole_spaceid, H5S_SELECT_SET, start, NULL, count, NULL) < 0) ERR; - - if (H5Dwrite(dsid, H5T_NATIVE_INT, slice_spaceid, whole_spaceid, + + if (H5Dwrite(dsid, H5T_NATIVE_INT, slice_spaceid, whole_spaceid, xferid, data) < 0) ERR; #ifdef USE_MPE @@ -140,10 +140,10 @@ main(int argc, char **argv) MPI_Reduce(&write_us, &max_write_us, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); if (!my_rank) { - write_rate = (float)(DIM2_LEN * sizeof(int))/(float)max_write_us; + write_rate = (float)(DIM2_LEN * sizeof(int))/(float)max_write_us; printf("\np=%d, write_rate=%g", p, write_rate); } - + #ifdef USE_MPE MPE_Log_event(s_close, 0, "start close file"); #endif /* USE_MPE */ @@ -177,23 +177,23 @@ main(int argc, char **argv) if ((dsid = H5Dopen(fileid, VAR_NAME)) < 0) ERR; if ((whole_spaceid1 = H5Dget_space(dsid)) < 0) ERR; - ftime = MPI_Wtime(); - + ftime = MPI_Wtime(); + /* Read the data, a slice at a time. */ for (s = 0; s < num_steps; s++) { /* Select hyperslab for read of one slice. */ start[0] = s * SC1 * p + my_rank * SC1; count[0] = SC1; - if (H5Sselect_hyperslab(whole_spaceid1, H5S_SELECT_SET, - start, NULL, count, NULL) < 0) + if (H5Sselect_hyperslab(whole_spaceid1, H5S_SELECT_SET, + start, NULL, count, NULL) < 0) { ERR; return 2; } - if (H5Dread(dsid, H5T_NATIVE_INT, slice_spaceid, whole_spaceid1, - H5P_DEFAULT, data_in) < 0) + if (H5Dread(dsid, H5T_NATIVE_INT, slice_spaceid, whole_spaceid1, + H5P_DEFAULT, data_in) < 0) { ERR; return 2; @@ -211,10 +211,10 @@ main(int argc, char **argv) MPI_Reduce(&read_us, &max_read_us, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); if (!my_rank) { - read_rate = (float)(DIM2_LEN * sizeof(int))/(float)max_read_us; + read_rate = (float)(DIM2_LEN * sizeof(int))/(float)max_read_us; printf(", read_rate=%g\n", read_rate); } - + /* Close down. */ if (H5Dclose(dsid) < 0 || H5Sclose(slice_spaceid) < 0 || diff --git a/h5_test/tst_h_strings.c b/h5_test/tst_h_strings.c index b6dc891a40..6635d9648e 100644 --- a/h5_test/tst_h_strings.c +++ b/h5_test/tst_h_strings.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_strings1.c b/h5_test/tst_h_strings1.c index 428de64854..f725f11867 100644 --- a/h5_test/tst_h_strings1.c +++ b/h5_test/tst_h_strings1.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_strings2.c b/h5_test/tst_h_strings2.c index 070d22dd83..1d03a983c9 100644 --- a/h5_test/tst_h_strings2.c +++ b/h5_test/tst_h_strings2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_vars.c b/h5_test/tst_h_vars.c index ffe0405d98..fcc12ffdca 100644 --- a/h5_test/tst_h_vars.c +++ b/h5_test/tst_h_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/tst_h_vars2.c b/h5_test/tst_h_vars2.c index 49158ba864..dfa1c16c4c 100644 --- a/h5_test/tst_h_vars2.c +++ b/h5_test/tst_h_vars2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2007 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_vars3.c b/h5_test/tst_h_vars3.c index 448eba71d9..b79ae5d729 100644 --- a/h5_test/tst_h_vars3.c +++ b/h5_test/tst_h_vars3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_vl.c b/h5_test/tst_h_vl.c index 0e53691f25..8858b8630c 100644 --- a/h5_test/tst_h_vl.c +++ b/h5_test/tst_h_vl.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/h5_test/tst_h_wrt_cmp.c b/h5_test/tst_h_wrt_cmp.c index a9f139e536..3b79d703c1 100644 --- a/h5_test/tst_h_wrt_cmp.c +++ b/h5_test/tst_h_wrt_cmp.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2007 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 compound types. From 5be0126920d5176a677bb7684a4d2ce1a4324663 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:13:56 -0700 Subject: [PATCH 23/38] More standardizing of the copyright stanza. --- hdf4_test/CMakeLists.txt | 8 +++++++- hdf4_test/Makefile.am | 9 ++++++--- hdf4_test/tst_h4_lendian.c | 8 +++++++- include/CMakeLists.txt | 6 ++++++ include/Makefile.am | 2 +- include/ceconstraints.h | 2 +- include/err_macros.h | 2 +- include/fbits.h | 2 +- include/hdf5dispatch.h | 2 +- include/hdf5internal.h | 2 +- include/nc.h | 2 +- include/nc3dispatch.h | 2 +- include/nc3internal.h | 2 +- include/nc4dispatch.h | 2 +- include/nc4internal.h | 2 +- include/nc_hashmap.h | 11 +++++++++++ include/nc_logging.h | 2 +- include/nc_provenance.h | 2 +- include/nc_tests.h | 2 +- include/ncauth.h | 4 ++-- include/ncbytes.h | 2 +- include/ncconfigure.h | 2 +- include/ncdap.h | 2 +- include/ncdimscale.h | 2 +- include/ncdispatch.h | 2 +- include/ncexternl.h | 2 +- include/ncfilter.h | 2 +- include/nchashmap.h | 2 +- include/ncindex.h | 6 +++--- include/nclist.h | 2 +- include/nclog.h | 2 +- include/ncoffsets.h | 2 +- include/ncrc.h | 4 ++-- include/nctestserver.h | 17 ++++++++++++++--- include/nctime.h | 2 +- include/ncuri.h | 2 +- include/ncutf8.h | 2 +- include/ncwinpath.h | 2 +- include/netcdf.h | 2 +- include/netcdf_aux.h | 2 +- include/netcdf_f.h | 26 +++++++++++++------------- include/netcdf_mem.h | 2 +- include/netcdf_meta.h.in | 4 +++- include/netcdf_par.h | 2 +- include/onstack.h | 2 +- include/rnd.h | 2 +- 46 files changed, 109 insertions(+), 64 deletions(-) diff --git a/hdf4_test/CMakeLists.txt b/hdf4_test/CMakeLists.txt index 0b42eb25f7..b96a5042c8 100644 --- a/hdf4_test/CMakeLists.txt +++ b/hdf4_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + # Copy some test files from current source dir to out-of-tree build dir. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.hdf4) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) @@ -14,4 +21,3 @@ IF(USE_HDF4_FILE_TESTS AND NOT MSVC) add_sh_test(hdf4_test run_get_hdf4_files) add_sh_test(hdf4_test run_formatx_hdf4) ENDIF() - diff --git a/hdf4_test/Makefile.am b/hdf4_test/Makefile.am index b0295db59d..d18db182ef 100644 --- a/hdf4_test/Makefile.am +++ b/hdf4_test/Makefile.am @@ -1,6 +1,9 @@ # This is part of the netCDF package. -# Copyright 2018 University Corporation for Atmospheric Research/Unidata -# See COPYRIGHT file for conditions of use. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. +# See netcdf-c/COPYRIGHT file for more info. # # This directory has tests for the HDF4 code. This directory will be # skipped if HDF4 is not enabled. @@ -19,7 +22,7 @@ TESTS = tst_chunk_hdf4 tst_h4_lendian tst_hdf4_extra # This test script depends on ncdump and tst_interops2.c. if BUILD_UTILITIES -check_PROGRAMS += tst_interops2 +check_PROGRAMS += tst_interops2 TESTS += run_formatx_hdf4.sh endif # BUILD_UTILITIES diff --git a/hdf4_test/tst_h4_lendian.c b/hdf4_test/tst_h4_lendian.c index 2ce412f705..735ec244c9 100644 --- a/hdf4_test/tst_h4_lendian.c +++ b/hdf4_test/tst_h4_lendian.c @@ -1,5 +1,11 @@ /*! Testing for proper read of little-endian variables in an hdf4 file. * + * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 + * University Corporation for Atmospheric Research/Unidata. + * + * See \ref copyright file for more info. * Added to debug issue NCF-332. Based on code submitted by * https://github.com/Unidata/netcdf-c/issues/113. */ @@ -27,7 +33,7 @@ int read_hdf_file(int dtype) if (nc_inq_varid(ncid,SDSNAME,&le_int16_varid)) ERR; if (nc_inq_var_endian(ncid,le_int16_varid,&ed)) ERR; if (nc_close(ncid)) ERR; - + if (ed != NC_ENDIAN_LITTLE) return -1; diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index bc72203fec..9f34b804ea 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ##### # Installation of various netCDF headers. ##### diff --git a/include/Makefile.am b/include/Makefile.am index aadbe1b569..7ce2654c40 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2010, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to build the include # directory. diff --git a/include/ceconstraints.h b/include/ceconstraints.h index ac688955e7..4260dd0ad3 100644 --- a/include/ceconstraints.h +++ b/include/ceconstraints.h @@ -1,6 +1,6 @@ /*! \file -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +Copyright 2018, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 University Corporation for Atmospheric Research/Unidata. diff --git a/include/err_macros.h b/include/err_macros.h index f32e3eb7a1..2a8923542c 100644 --- a/include/err_macros.h +++ b/include/err_macros.h @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Common includes, defines, etc., for test code in the libsrc4 and diff --git a/include/fbits.h b/include/fbits.h index ef61b0cf5e..9b1b250650 100644 --- a/include/fbits.h +++ b/include/fbits.h @@ -1,5 +1,5 @@ /* - * Copyright 1995, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See top level COPYRIGHT file for copying and redistribution conditions. */ /* $Id: fbits.h,v 1.2 1995/05/26 20:46:46 davis Exp $ */ diff --git a/include/hdf5dispatch.h b/include/hdf5dispatch.h index 4bd41f3a7b..774ced7831 100644 --- a/include/hdf5dispatch.h +++ b/include/hdf5dispatch.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/hdf5internal.h b/include/hdf5internal.h index 851138c410..81b4b6a4ce 100644 --- a/include/hdf5internal.h +++ b/include/hdf5internal.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file This header file contains macros, types, and prototypes for diff --git a/include/nc.h b/include/nc.h index 0215e02812..1fd378ec55 100644 --- a/include/nc.h +++ b/include/nc.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ #ifndef _NC_H_ diff --git a/include/nc3dispatch.h b/include/nc3dispatch.h index 53469048e6..1249d43d50 100644 --- a/include/nc3dispatch.h +++ b/include/nc3dispatch.h @@ -1,5 +1,5 @@ /* - * Copyright 1993-1996 University Corporation for Atmospheric Research/Unidata + * Copyright 2018-1996 University Corporation for Atmospheric Research/Unidata * * Portions of this software were developed by the Unidata Program at the * University Corporation for Atmospheric Research. diff --git a/include/nc3internal.h b/include/nc3internal.h index f1e6f5056b..0bbccd6ce9 100644 --- a/include/nc3internal.h +++ b/include/nc3internal.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ #ifndef _NC3INTERNAL_ diff --git a/include/nc4dispatch.h b/include/nc4dispatch.h index 7641360578..61e78ee4cb 100644 --- a/include/nc4dispatch.h +++ b/include/nc4dispatch.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/nc4internal.h b/include/nc4internal.h index 3d6c681b69..b57b48b043 100644 --- a/include/nc4internal.h +++ b/include/nc4internal.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/nc_hashmap.h b/include/nc_hashmap.h index 848cf42102..c92b7ab4e4 100644 --- a/include/nc_hashmap.h +++ b/include/nc_hashmap.h @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef HASHMAP_H_INCLUDED #define HASHMAP_H_INCLUDED #include diff --git a/include/nc_logging.h b/include/nc_logging.h index c4735b71f6..2ed73a43b4 100644 --- a/include/nc_logging.h +++ b/include/nc_logging.h @@ -1,4 +1,4 @@ -/* Copyright 2010, University Corporation for Atmospheric Research. See +/* Copyright 2018, University Corporation for Atmospheric Research. See COPYRIGHT file for copying and redistribution conditions. */ /** * @file @internal This file is part of netcdf-4, a netCDF-like diff --git a/include/nc_provenance.h b/include/nc_provenance.h index ef9825a3dc..0bfb066960 100644 --- a/include/nc_provenance.h +++ b/include/nc_provenance.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** /** diff --git a/include/nc_tests.h b/include/nc_tests.h index bca0ec1290..8d975f66df 100644 --- a/include/nc_tests.h +++ b/include/nc_tests.h @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University * Corporation for Atmospheric Research/Unidata. See \ref copyright * file for conditions of use. */ /** @internal @file diff --git a/include/ncauth.h b/include/ncauth.h index a3087eb8f6..f18bad7201 100644 --- a/include/ncauth.h +++ b/include/ncauth.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/ncbytes.h b/include/ncbytes.h index 824f7c70be..29feaa10e9 100644 --- a/include/ncbytes.h +++ b/include/ncbytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCBYTES_H diff --git a/include/ncconfigure.h b/include/ncconfigure.h index 0e00727bb9..42085dc88b 100644 --- a/include/ncconfigure.h +++ b/include/ncconfigure.h @@ -1,5 +1,5 @@ /* - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/ncdap.h b/include/ncdap.h index 6dac5aa9f9..40894ba612 100644 --- a/include/ncdap.h +++ b/include/ncdap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncdimscale.h b/include/ncdimscale.h index e4e206005d..8853708ef9 100644 --- a/include/ncdimscale.h +++ b/include/ncdimscale.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/ncdispatch.h b/include/ncdispatch.h index ba3593e6aa..5ba5532fc6 100644 --- a/include/ncdispatch.h +++ b/include/ncdispatch.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/ncexternl.h b/include/ncexternl.h index e3e8e52c92..3fa65a7499 100644 --- a/include/ncexternl.h +++ b/include/ncexternl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncfilter.h b/include/ncfilter.h index 17806e7142..3c0078463c 100644 --- a/include/ncfilter.h +++ b/include/ncfilter.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCFILTER_H diff --git a/include/nchashmap.h b/include/nchashmap.h index f89c4b8261..0606d6a2f5 100644 --- a/include/nchashmap.h +++ b/include/nchashmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncindex.h b/include/ncindex.h index 5e83390acc..20e2895b67 100644 --- a/include/ncindex.h +++ b/include/ncindex.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #ifndef NCINDEX_H @@ -100,7 +100,7 @@ static int ncindexsize(NCindex* index) { int i; if(index == NULL) return 0; - i = nclistlength(index->list); + i = nclistlength(index->list); return i; } #else diff --git a/include/nclist.h b/include/nclist.h index a47ba401c1..73d5f225bf 100644 --- a/include/nclist.h +++ b/include/nclist.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCLIST_H #define NCLIST_H 1 diff --git a/include/nclog.h b/include/nclog.h index dd9fe85cea..ce4c84d14c 100644 --- a/include/nclog.h +++ b/include/nclog.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncoffsets.h b/include/ncoffsets.h index 36381432bb..dad9a29dd5 100644 --- a/include/ncoffsets.h +++ b/include/ncoffsets.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncrc.h b/include/ncrc.h index 4998efb494..27db1cb0d1 100644 --- a/include/ncrc.h +++ b/include/ncrc.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/nctestserver.h b/include/nctestserver.h index 175574efab..cbe9c4fec9 100644 --- a/include/nctestserver.h +++ b/include/nctestserver.h @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -26,7 +37,7 @@ parseServers(const char* remotetestservers) char* p; char* svc; char** l; - + list = (char**)malloc(sizeof(char*) * (int)(strlen(remotetestservers)/2)); if(list == NULL) return NULL; rts = strdup(remotetestservers); @@ -71,7 +82,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) return NULL; } for(svc=svclist;*svc;svc++) { - if(strlen(*svc) == 0) + if(strlen(*svc) == 0) goto done; if(path == NULL) path = ""; if(strlen(path) > 0 && path[0] == '/') @@ -87,7 +98,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) } done: /* Free up the envv list of servers */ - if(svclist != NULL) { + if(svclist != NULL) { char** p; for(p=svclist;*p;p++) free(*p); diff --git a/include/nctime.h b/include/nctime.h index d740f9c7bc..bbab97228e 100644 --- a/include/nctime.h +++ b/include/nctime.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.h,v 1.6 2010/03/18 19:24:26 russ Exp $ *********************************************************************/ diff --git a/include/ncuri.h b/include/ncuri.h index a60febf526..bab9cd589b 100644 --- a/include/ncuri.h +++ b/include/ncuri.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncutf8.h b/include/ncutf8.h index fca22ca140..cff2efa221 100644 --- a/include/ncutf8.h +++ b/include/ncutf8.h @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncwinpath.h b/include/ncwinpath.h index e62368d971..e899a27d14 100644 --- a/include/ncwinpath.h +++ b/include/ncwinpath.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ #ifndef _NCWINIO_H_ diff --git a/include/netcdf.h b/include/netcdf.h index 1f50d36312..3570cdde14 100644 --- a/include/netcdf.h +++ b/include/netcdf.h @@ -2,7 +2,7 @@ Main header file for the C API. -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +Copyright 2018, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 University Corporation for Atmospheric Research/Unidata. diff --git a/include/netcdf_aux.h b/include/netcdf_aux.h index ef96cc0377..5ea0c042cf 100644 --- a/include/netcdf_aux.h +++ b/include/netcdf_aux.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id$ * $Header$ diff --git a/include/netcdf_f.h b/include/netcdf_f.h index 9f064cedfb..e7bd2db6b9 100644 --- a/include/netcdf_f.h +++ b/include/netcdf_f.h @@ -1,6 +1,6 @@ /* - * Copyright 1993-2011 University Corporation for Atmospheric Research/Unidata - * + * Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata + * * This header contains prototypes for functions only called by fortran 77. */ #ifndef _NETCDF_F_ @@ -19,11 +19,11 @@ EXTERNL int nc_def_var_chunking_ints(int ncid, int varid, int contiguous, int *chunksizesp); EXTERNL int -nc_open_par_fortran(const char *path, int mode, int comm, +nc_open_par_fortran(const char *path, int mode, int comm, int info, int *ncidp); EXTERNL int -nc_create_par_fortran(const char *path, int cmode, int comm, +nc_create_par_fortran(const char *path, int cmode, int comm, int info, int *ncidp); EXTERNL int @@ -33,27 +33,27 @@ EXTERNL int nc_get_chunk_cache_ints(int *sizep, int *nelemsp, int *preemptionp); EXTERNL int -nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, +nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, int preemption); EXTERNL int -nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, +nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, int *nelemsp, int *preemptionp); /* Prototypes for some extra functions in fort-lib.c. */ -EXTERNL int +EXTERNL int nc_inq_varids_f(int ncid, int *nvars, int *fvarids); -EXTERNL int +EXTERNL int nc_inq_dimids_f(int ncid, int *ndims, int *fdimids, int parent); -EXTERNL int -nc_insert_array_compound_f(int ncid, int typeid1, char *name, +EXTERNL int +nc_insert_array_compound_f(int ncid, int typeid1, char *name, size_t offset, nc_type field_typeid, int ndims, int *dim_sizesp); -EXTERNL int -nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, - size_t *offsetp, nc_type *field_typeidp, int *ndimsp, +EXTERNL int +nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, + size_t *offsetp, nc_type *field_typeidp, int *ndimsp, int *dim_sizesp); #if defined(__cplusplus) diff --git a/include/netcdf_mem.h b/include/netcdf_mem.h index 3024473f4f..8f7769aa9b 100644 --- a/include/netcdf_mem.h +++ b/include/netcdf_mem.h @@ -2,7 +2,7 @@ * * Main header file for in-memory (diskless) functionality. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * See \ref copyright file for more info. diff --git a/include/netcdf_meta.h.in b/include/netcdf_meta.h.in index e3859aef36..f9b9604560 100644 --- a/include/netcdf_meta.h.in +++ b/include/netcdf_meta.h.in @@ -13,8 +13,10 @@ * in conditionals. * * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 * University Corporation for Atmospheric Research/Unidata. + * * See \ref copyright file for more info. */ diff --git a/include/netcdf_par.h b/include/netcdf_par.h index f35365b997..13da607bdc 100644 --- a/include/netcdf_par.h +++ b/include/netcdf_par.h @@ -2,7 +2,7 @@ * * Main header file for the Parallel C API. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/onstack.h b/include/onstack.h index 29d84d8c44..bd3b8e39e9 100644 --- a/include/onstack.h +++ b/include/onstack.h @@ -1,5 +1,5 @@ /* - * Copyright 1997, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: onstack.h,v 2.7 2006/09/15 20:40:39 ed Exp $ */ diff --git a/include/rnd.h b/include/rnd.h index 90da7d2a14..d06b0e0f91 100644 --- a/include/rnd.h +++ b/include/rnd.h @@ -1,4 +1,4 @@ -/* Copyright 1996-2018, University Corporation for Atmospheric +/* Copyright 2018-2018, University Corporation for Atmospheric * Research See netcdf/COPYRIGHT file for copying and redistribution * conditions. * From c70480dc05087a601ff8161212b687944f00ff74 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:21:03 -0700 Subject: [PATCH 24/38] Updated COPYRIGHT stanza in libdap2 --- libdap2/CMakeLists.txt | 6 + libdap2/Makefile.am | 2 +- libdap2/cache.c | 2 +- libdap2/cdf.c | 2 +- libdap2/common.c | 2 +- libdap2/constraints.c | 2 +- libdap2/constraints.h | 2 +- libdap2/dapattr.c | 2 +- libdap2/dapcvt.c | 2 +- libdap2/dapdebug.c | 2 +- libdap2/dapdebug.h | 2 +- libdap2/dapdump.c | 2 +- libdap2/dapdump.h | 2 +- libdap2/dapincludes.h | 2 +- libdap2/dapnc.h | 2 +- libdap2/dapodom.c | 2 +- libdap2/dapodom.h | 2 +- libdap2/daputil.c | 2 +- libdap2/daputil.h | 2 +- libdap2/dce.y | 4 +- libdap2/dceconstraints.c | 2 +- libdap2/dceconstraints.h | 2 +- libdap2/dcelex.c | 2 +- libdap2/dceparse.c | 2 +- libdap2/dceparselex.h | 2 +- libdap2/getvara.c | 2 +- libdap2/getvara.h | 2 +- libdap2/main.c | 2 +- libdap2/nccommon.h | 2 +- libdap2/ncd2dispatch.c | 2 +- libdap2/ncd2dispatch.h | 2 +- libdap2/ncdap.c | 2 +- libdap2/ncdapa.c | 2 +- libdap2/ncdaperr.c | 2 +- libdap2/test_vara.c | 536 ++++++++++++++++++++------------------- 35 files changed, 314 insertions(+), 296 deletions(-) diff --git a/libdap2/CMakeLists.txt b/libdap2/CMakeLists.txt index a5bfb1023e..126385c97b 100644 --- a/libdap2/CMakeLists.txt +++ b/libdap2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap2_SOURCES constraints.c dapcvt.c dapodom.c daputil.c ncdaperr.c cdf.c cache.c dapdump.c dapdebug.c dapattr.c ncd2dispatch.c getvara.c dceconstraints.c dcetab.c dceparse.c dcelex.c) add_library(dap2 OBJECT ${dap2_SOURCES}) diff --git a/libdap2/Makefile.am b/libdap2/Makefile.am index 01bf244c17..765a2f2fcc 100644 --- a/libdap2/Makefile.am +++ b/libdap2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap2/cache.c b/libdap2/cache.c index 61b44f70ab..b058700580 100644 --- a/libdap2/cache.c +++ b/libdap2/cache.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/cdf.c b/libdap2/cdf.c index c213cad529..e22e2c209b 100644 --- a/libdap2/cdf.c +++ b/libdap2/cdf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/common.c b/libdap2/common.c index cf366c1960..1bfb2c4e8d 100644 --- a/libdap2/common.c +++ b/libdap2/common.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.c b/libdap2/constraints.c index 0be99dd07d..52976f6424 100644 --- a/libdap2/constraints.c +++ b/libdap2/constraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT filey for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.h b/libdap2/constraints.h index 2231b432d1..0bb2df32cb 100644 --- a/libdap2/constraints.h +++ b/libdap2/constraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef CONSTRAINTS_H diff --git a/libdap2/dapattr.c b/libdap2/dapattr.c index f491cf9ca9..03a31e9391 100644 --- a/libdap2/dapattr.c +++ b/libdap2/dapattr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapcvt.c b/libdap2/dapcvt.c index 2e4009af0e..c4dc3bc7b4 100644 --- a/libdap2/dapcvt.c +++ b/libdap2/dapcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.c b/libdap2/dapdebug.c index e9b504f151..2c7856d3ef 100644 --- a/libdap2/dapdebug.c +++ b/libdap2/dapdebug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.h b/libdap2/dapdebug.h index dde23e53de..55ff86cad2 100644 --- a/libdap2/dapdebug.h +++ b/libdap2/dapdebug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DEBUG_H diff --git a/libdap2/dapdump.c b/libdap2/dapdump.c index a457862c0d..4f65a2bc17 100644 --- a/libdap2/dapdump.c +++ b/libdap2/dapdump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapdump.h b/libdap2/dapdump.h index c5488a45f8..17d631d7a8 100644 --- a/libdap2/dapdump.h +++ b/libdap2/dapdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DUMP_H diff --git a/libdap2/dapincludes.h b/libdap2/dapincludes.h index c8b02bd9ee..6275b662b9 100644 --- a/libdap2/dapincludes.h +++ b/libdap2/dapincludes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPINCLUDES_H diff --git a/libdap2/dapnc.h b/libdap2/dapnc.h index afac5f09ae..bc99fe8f48 100644 --- a/libdap2/dapnc.h +++ b/libdap2/dapnc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPNC_H diff --git a/libdap2/dapodom.c b/libdap2/dapodom.c index 965f335e21..ce5cc7cb1f 100644 --- a/libdap2/dapodom.c +++ b/libdap2/dapodom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapodom.h b/libdap2/dapodom.h index 8e79c1743a..8093ef09eb 100644 --- a/libdap2/dapodom.h +++ b/libdap2/dapodom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.c b/libdap2/daputil.c index bef69c2029..d2348c0e0e 100644 --- a/libdap2/daputil.c +++ b/libdap2/daputil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.h b/libdap2/daputil.h index 816b063d86..836e064176 100644 --- a/libdap2/daputil.h +++ b/libdap2/daputil.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPUTIL_H diff --git a/libdap2/dce.y b/libdap2/dce.y index e7030a4c53..b0e30c6297 100644 --- a/libdap2/dce.y +++ b/libdap2/dce.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -82,7 +82,7 @@ segment: {$$=segment(parsestate,$1,$2);} ; -rangelist: +rangelist: range {$$=rangelist(parsestate,null,$1);} | rangelist range diff --git a/libdap2/dceconstraints.c b/libdap2/dceconstraints.c index 2e5a851655..754e289f8e 100644 --- a/libdap2/dceconstraints.c +++ b/libdap2/dceconstraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dceconstraints.h b/libdap2/dceconstraints.h index f4fa22a0fd..1b6c2975ba 100644 --- a/libdap2/dceconstraints.h +++ b/libdap2/dceconstraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dcelex.c b/libdap2/dcelex.c index c6153711a0..58f39ad0c6 100644 --- a/libdap2/dcelex.c +++ b/libdap2/dcelex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define URLDECODE diff --git a/libdap2/dceparse.c b/libdap2/dceparse.c index c356a7d286..02239b889b 100644 --- a/libdap2/dceparse.c +++ b/libdap2/dceparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* Parser actions for constraint expressions */ diff --git a/libdap2/dceparselex.h b/libdap2/dceparselex.h index 88bc9ae80e..4b1ff9ad28 100644 --- a/libdap2/dceparselex.h +++ b/libdap2/dceparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DCEPARSELEX_H diff --git a/libdap2/getvara.c b/libdap2/getvara.c index a2c0283c29..b425685671 100644 --- a/libdap2/getvara.c +++ b/libdap2/getvara.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribuution conditions. *********************************************************************/ diff --git a/libdap2/getvara.h b/libdap2/getvara.h index 1b9b1238fc..c22b034870 100644 --- a/libdap2/getvara.h +++ b/libdap2/getvara.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef GETVARA_H diff --git a/libdap2/main.c b/libdap2/main.c index 8111ebad64..cb001f112a 100644 --- a/libdap2/main.c +++ b/libdap2/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/nccommon.h b/libdap2/nccommon.h index e3bbdedd55..4b9b734fe4 100644 --- a/libdap2/nccommon.h +++ b/libdap2/nccommon.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.c b/libdap2/ncd2dispatch.c index d9f2dd2249..6bc51100b3 100644 --- a/libdap2/ncd2dispatch.c +++ b/libdap2/ncd2dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.h b/libdap2/ncd2dispatch.h index fd6731d227..622806dce3 100644 --- a/libdap2/ncd2dispatch.h +++ b/libdap2/ncd2dispatch.h @@ -1,5 +1,5 @@ /* - * Copyright 1993-1996 University Corporation for Atmospheric Research/Unidata + * Copyright 1993-2018 University Corporation for Atmospheric Research/Unidata * * Portions of this software were developed by the Unidata Program at the * University Corporation for Atmospheric Research. diff --git a/libdap2/ncdap.c b/libdap2/ncdap.c index 62aaea4547..d4aeb18a8b 100644 --- a/libdap2/ncdap.c +++ b/libdap2/ncdap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdapa.c b/libdap2/ncdapa.c index 12a912a847..0aa5580fc3 100644 --- a/libdap2/ncdapa.c +++ b/libdap2/ncdapa.c @@ -1,5 +1,5 @@ /********************************************************************* \ - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdaperr.c b/libdap2/ncdaperr.c index 1833280c2b..c616e3891f 100644 --- a/libdap2/ncdaperr.c +++ b/libdap2/ncdaperr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/test_vara.c b/libdap2/test_vara.c index a2c9e87151..d45cc4a53f 100644 --- a/libdap2/test_vara.c +++ b/libdap2/test_vara.c @@ -1,3 +1,15 @@ + +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -7,7 +19,7 @@ #define DTSTEST "/dts/test.06" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -41,7 +53,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -81,7 +93,7 @@ main() size_t count[RANK]; char URL[4096]; const char* svc = NULL; - + /* Find Test Server */ svc = nc_findtestserver("dts",0); if(svc == NULL) { @@ -181,7 +193,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -203,7 +215,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -221,364 +233,364 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } static float target_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; From 72d56fb60169a6616bb03ac5dcda6312af227df2 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:24:28 -0700 Subject: [PATCH 25/38] Updated copyright stanza in libdap4 --- libdap4/CMakeLists.txt | 7 ++++++- libdap4/Makefile.am | 2 +- libdap4/d4bytes.c | 2 +- libdap4/d4bytes.h | 2 +- libdap4/d4chunk.c | 2 +- libdap4/d4chunk.h | 2 +- libdap4/d4curlflags.c | 2 +- libdap4/d4curlfunctions.c | 2 +- libdap4/d4curlfunctions.h | 2 +- libdap4/d4cvt.c | 2 +- libdap4/d4data.c | 2 +- libdap4/d4debug.c | 2 +- libdap4/d4debug.h | 2 +- libdap4/d4dump.c | 5 ++--- libdap4/d4file.c | 2 +- libdap4/d4fix.c | 2 +- libdap4/d4http.c | 2 +- libdap4/d4http.h | 2 +- libdap4/d4includes.h | 2 +- libdap4/d4mem.c | 2 +- libdap4/d4meta.c | 2 +- libdap4/d4odom.c | 2 +- libdap4/d4odom.h | 2 +- libdap4/d4parser.c | 2 +- libdap4/d4printer.c | 2 +- libdap4/d4read.c | 11 +++++++++++ libdap4/d4read.h | 2 +- libdap4/d4swap.c | 2 +- libdap4/d4util.c | 2 +- libdap4/d4util.h | 2 +- libdap4/d4varx.c | 2 +- libdap4/ezxml.c | 38 +++++++++++++++++++------------------- libdap4/ezxml.h | 4 ++-- libdap4/ezxml_extra.c | 2 +- libdap4/ncd4.h | 2 +- libdap4/ncd4dispatch.c | 2 +- libdap4/ncd4dispatch.h | 2 +- libdap4/ncd4types.h | 2 +- 38 files changed, 73 insertions(+), 58 deletions(-) diff --git a/libdap4/CMakeLists.txt b/libdap4/CMakeLists.txt index ce586a498f..0eb4e173cc 100644 --- a/libdap4/CMakeLists.txt +++ b/libdap4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap4_SOURCES d4crc32.c d4curlfunctions.c d4fix.c d4data.c d4file.c d4parser.c d4meta.c d4varx.c d4dump.c d4swap.c d4chunk.c d4printer.c d4read.c d4http.c d4util.c d4odom.c d4cvt.c d4debug.c ncd4dispatch.c ezxml_extra.c ezxml.c) add_library(dap4 OBJECT ${dap4_SOURCES}) @@ -29,4 +35,3 @@ ENDIF(BUILD_PARALLEL) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} dce.y CMakeLists.txt Makefile.am) ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") - diff --git a/libdap4/Makefile.am b/libdap4/Makefile.am index 3dd113090e..8a5690fed9 100644 --- a/libdap4/Makefile.am +++ b/libdap4/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap4/d4bytes.c b/libdap4/d4bytes.c index 8a7ee3f773..149f02eb0e 100644 --- a/libdap4/d4bytes.c +++ b/libdap4/d4bytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdap4/d4bytes.h b/libdap4/d4bytes.h index 2ad1c610ef..302eea2dda 100644 --- a/libdap4/d4bytes.h +++ b/libdap4/d4bytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef D4BYTES_H diff --git a/libdap4/d4chunk.c b/libdap4/d4chunk.c index c85b48b7b2..5c211722b3 100644 --- a/libdap4/d4chunk.c +++ b/libdap4/d4chunk.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4chunk.h b/libdap4/d4chunk.h index eecf500eff..97ae4d4d59 100644 --- a/libdap4/d4chunk.h +++ b/libdap4/d4chunk.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlflags.c b/libdap4/d4curlflags.c index 89e09aa10a..9cf6d4202c 100644 --- a/libdap4/d4curlflags.c +++ b/libdap4/d4curlflags.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.c b/libdap4/d4curlfunctions.c index 7279d7289e..7185880789 100644 --- a/libdap4/d4curlfunctions.c +++ b/libdap4/d4curlfunctions.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.h b/libdap4/d4curlfunctions.h index 52fe1b5d26..3f1d85c9bd 100644 --- a/libdap4/d4curlfunctions.h +++ b/libdap4/d4curlfunctions.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4cvt.c b/libdap4/d4cvt.c index 2b686110de..9e7666ecc4 100644 --- a/libdap4/d4cvt.c +++ b/libdap4/d4cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4data.c b/libdap4/d4data.c index f737836044..51ea6e28b4 100644 --- a/libdap4/d4data.c +++ b/libdap4/d4data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4debug.c b/libdap4/d4debug.c index 8d11c76167..88e99a3e2f 100644 --- a/libdap4/d4debug.c +++ b/libdap4/d4debug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4debug.h b/libdap4/d4debug.h index 4d4ff68d16..cbba56bead 100644 --- a/libdap4/d4debug.h +++ b/libdap4/d4debug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef D4DEBUG_H diff --git a/libdap4/d4dump.c b/libdap4/d4dump.c index 0384fa9ec8..b2e189310d 100644 --- a/libdap4/d4dump.c +++ b/libdap4/d4dump.c @@ -1,5 +1,5 @@ -/* Copyright 2012, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #include "d4includes.h" @@ -107,4 +107,3 @@ NCD4_dumpatomic(NCD4node* var, void* data) union ATOMICS* p = (union ATOMICS*)data; return p; } - diff --git a/libdap4/d4file.c b/libdap4/d4file.c index cbb69b1d4c..8efe4e1417 100644 --- a/libdap4/d4file.c +++ b/libdap4/d4file.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4fix.c b/libdap4/d4fix.c index e28d88b0ba..ac16366cf6 100644 --- a/libdap4/d4fix.c +++ b/libdap4/d4fix.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.c b/libdap4/d4http.c index 891541d4e2..1c1319f047 100644 --- a/libdap4/d4http.c +++ b/libdap4/d4http.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.h b/libdap4/d4http.h index dbd307a6ee..ec47fe9559 100644 --- a/libdap4/d4http.h +++ b/libdap4/d4http.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4includes.h b/libdap4/d4includes.h index 6979e78769..02ab0262fd 100644 --- a/libdap4/d4includes.h +++ b/libdap4/d4includes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4mem.c b/libdap4/d4mem.c index c46b4bcaed..dda02b85e7 100644 --- a/libdap4/d4mem.c +++ b/libdap4/d4mem.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4meta.c b/libdap4/d4meta.c index 57e8ffd3ff..cb45d22391 100644 --- a/libdap4/d4meta.c +++ b/libdap4/d4meta.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.c b/libdap4/d4odom.c index 419bb41f58..40ec4de945 100644 --- a/libdap4/d4odom.c +++ b/libdap4/d4odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.h b/libdap4/d4odom.h index 385ebc90a4..ae37997e19 100644 --- a/libdap4/d4odom.h +++ b/libdap4/d4odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4parser.c b/libdap4/d4parser.c index 7c202f8732..d7cf36f252 100644 --- a/libdap4/d4parser.c +++ b/libdap4/d4parser.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4printer.c b/libdap4/d4printer.c index 778f11c456..88b1392d24 100644 --- a/libdap4/d4printer.c +++ b/libdap4/d4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4read.c b/libdap4/d4read.c index 598c683cb4..b9a39070ed 100644 --- a/libdap4/d4read.c +++ b/libdap4/d4read.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "d4includes.h" #include "d4curlfunctions.h" #ifdef HAVE_FCNTL_H diff --git a/libdap4/d4read.h b/libdap4/d4read.h index a672e4babe..9816172cab 100644 --- a/libdap4/d4read.h +++ b/libdap4/d4read.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4swap.c b/libdap4/d4swap.c index 6a48d8fad5..3fc0aa58f3 100644 --- a/libdap4/d4swap.c +++ b/libdap4/d4swap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.c b/libdap4/d4util.c index be6e2305fe..0f2cf9023e 100644 --- a/libdap4/d4util.c +++ b/libdap4/d4util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.h b/libdap4/d4util.h index 00f39eb03b..cba660eeb2 100644 --- a/libdap4/d4util.h +++ b/libdap4/d4util.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4varx.c b/libdap4/d4varx.c index 4316b66bd4..ee7095ed3f 100644 --- a/libdap4/d4varx.c +++ b/libdap4/d4varx.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ezxml.c b/libdap4/ezxml.c index 59d76b4176..333211c826 100644 --- a/libdap4/ezxml.c +++ b/libdap4/ezxml.c @@ -94,7 +94,7 @@ ezxml_t ezxml_vget(ezxml_t xml, va_list ap) int idx = -1; if (name && *name) { - idx = va_arg(ap, int); + idx = va_arg(ap, int); xml = ezxml_child(xml, name); } return (idx < 0) ? xml : ezxml_vget(ezxml_idx(xml, idx), ap); @@ -136,7 +136,7 @@ ezxml_t ezxml_err(ezxml_root_t root, char *s, const char *err, ...) va_list ap; int line = 1; char *t, fmt[EZXML_ERRL]; - + for (t = root->s; t < s; t++) if (*t == '\n') line++; snprintf(fmt, EZXML_ERRL, "[error near line %d]: %s", line, err); @@ -164,7 +164,7 @@ char *ezxml_decode(char *s, char **ent, char t) if (*s == '\n') memmove(s, (s + 1), strlen(s)); } } - + for (s = r; ; ) { while (*s && *s != '&' && (*s != '%' || t != '%') && !isspace(*s)) s++; @@ -219,7 +219,7 @@ char *ezxml_decode(char *s, char **ent, char t) void ezxml_open_tag(ezxml_root_t root, char *name, char **attr) { ezxml_t xml = root->cur; - + if (xml->name) xml = ezxml_add_child(xml, name, strlen(xml->txt)); else xml->name = name; /* first open tag*/ @@ -318,7 +318,7 @@ short ezxml_internal_dtd(ezxml_root_t root, char *s, size_t len) { char q, *c, *t, *n = NULL, *v, **ent, **pe; int i, j; - + pe = memcpy(malloc(sizeof(EZXML_NIL)), EZXML_NIL, sizeof(EZXML_NIL)); for (s[len] = '\0'; s; ) { @@ -454,7 +454,7 @@ char *ezxml_str2utf8(char **s, size_t *len) void ezxml_free_attr(char **attr) { int i = 0; char *m; - + if (! attr || attr == EZXML_NIL) return; /* nothing to free*/ while (attr[i]) i += 2; /* find end of attribute list*/ m = attr[i + 1]; /* list of which names and values are malloced*/ @@ -477,7 +477,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) if (! len) return ezxml_err(root, NULL, "root tag missing"); root->u = ezxml_str2utf8(&s, &len); /* convert utf-16 to utf-8*/ root->e = (root->s = s) + len; /* record start and end of work area*/ - + e = s[len - 1]; /* save end char*/ s[len - 1] = '\0'; /* turn end char into null terminator*/ @@ -487,14 +487,14 @@ ezxml_t ezxml_parse_str(char *s, size_t len) for (; ; ) { attr = (char **)EZXML_NIL; d = ++s; - + if (isalpha(*s) || *s == '_' || *s == ':' || *s < '\0') { /* new tag*/ if (! root->cur) return ezxml_err(root, d, "markup outside of root element"); s += strcspn(s, EZXML_WS "/>"); while (isspace(*s)) *(s++) = '\0'; /* null terminate tag name*/ - + if (*s && *s != '/' && *s != '>') /* find tag in default attr list*/ for (i = 0; (a = root->attr[i]) && strcmp(a[0], d); i++); @@ -509,7 +509,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) attr[l] = s; /* set attribute name*/ s += strcspn(s, EZXML_WS "=/>"); - if (*s == '=' || isspace(*s)) { + if (*s == '=' || isspace(*s)) { *(s++) = '\0'; /* null terminate tag attribute name*/ q = *(s += strspn(s, EZXML_WS "=")); if (q == '"' || q == '\'') { /* attribute value*/ @@ -547,7 +547,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else { if (l) ezxml_free_attr(attr); - return ezxml_err(root, d, "missing >"); + return ezxml_err(root, d, "missing >"); } } else if (*s == '/') { /* close tag*/ @@ -567,7 +567,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) else return ezxml_err(root, d, "unclosed ') || (l && (*s != ']' || + for (l = 0; *s && ((! l && *s != '>') || (l && (*s != ']' || *(s + strspn(s + 1, EZXML_WS) + 1) != '>'))); l = (*s == '[') ? 1 : l) s += strcspn(s + 1, "[]>") + 1; if (! *s && e != '>') @@ -577,12 +577,12 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else if (*s == '?') { /* processing instructions*/ do { s = strchr(s, '?'); } while (s && *(++s) && *s != '>'); - if (! s || (! *s && e != '>')) + if (! s || (! *s && e != '>')) return ezxml_err(root, d, "unclosed *max) *dst = realloc(*dst, *max += EZXML_BUFSIZE); @@ -687,7 +687,7 @@ char *ezxml_toxml_r(ezxml_t xml, char **s, size_t *len, size_t *max, *s = (xml->child) ? ezxml_toxml_r(xml->child, s, len, max, 0, attr) /*child*/ : ezxml_ampencode(xml->txt, -1, s, len, max, 0); /*data*/ - + while (*len + strlen(xml->name) + 4 > *max) /* reallocate s*/ *s = realloc(*s, *max += EZXML_BUFSIZE); @@ -765,7 +765,7 @@ void ezxml_free(ezxml_t xml) for (j = 1; root->pi[i][j]; j++); free(root->pi[i][j + 1]); free(root->pi[i]); - } + } if (root->pi[0]) free(root->pi); /* free processing instructions*/ if (root->len == -1) free(root->m); /* malloced xml data*/ @@ -793,7 +793,7 @@ ezxml_t ezxml_new(const char *name) { static char *ent[] = { "lt;", "<", "gt;", ">", "quot;", """, "apos;", "'", "amp;", "&", NULL }; - ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), + ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), '\0', sizeof(struct ezxml_root)); root->xml.name = (char *)name; root->cur = &root->xml; @@ -948,7 +948,7 @@ ezxml_t ezxml_cut(ezxml_t xml) while (cur->next && cur->next != xml) cur = cur->next; if (cur->next) cur->next = cur->next->next; /* patch next list*/ - } + } } xml->ordered = xml->sibling = xml->next = NULL; return xml; diff --git a/libdap4/ezxml.h b/libdap4/ezxml.h index f5e235adba..64a32016f6 100644 --- a/libdap4/ezxml.h +++ b/libdap4/ezxml.h @@ -66,7 +66,7 @@ ezxml_t ezxml_parse_fd(int fd); /* a wrapper for ezxml_parse_fd() that accepts a file name*/ ezxml_t ezxml_parse_file(const char *file); - + /* Wrapper for ezxml_parse_str() that accepts a file stream. Reads the entire*/ /* stream into memory and then parses it. For xml files, use ezxml_parse_file()*/ /* or ezxml_parse_fd()*/ @@ -111,7 +111,7 @@ const char **ezxml_pi(ezxml_t xml, const char *target); /* frees the memory allocated for an ezxml structure*/ void ezxml_free(ezxml_t xml); - + /* returns parser error message or empty string if none*/ const char *ezxml_error(ezxml_t xml); diff --git a/libdap4/ezxml_extra.c b/libdap4/ezxml_extra.c index 3e58bd502f..954b189b5b 100644 --- a/libdap4/ezxml_extra.c +++ b/libdap4/ezxml_extra.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/libdap4/ncd4.h b/libdap4/ncd4.h index 5f682d4166..989f6ba171 100644 --- a/libdap4/ncd4.h +++ b/libdap4/ncd4.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.c b/libdap4/ncd4dispatch.c index 97eb2290b3..a860382656 100644 --- a/libdap4/ncd4dispatch.c +++ b/libdap4/ncd4dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.h b/libdap4/ncd4dispatch.h index 449b24eda7..dde3cf4ac0 100644 --- a/libdap4/ncd4dispatch.h +++ b/libdap4/ncd4dispatch.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4types.h b/libdap4/ncd4types.h index 44496234a2..9581ff6623 100644 --- a/libdap4/ncd4types.h +++ b/libdap4/ncd4types.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ From 25417880f7b9480eda39fc8a0589b0f7623bdd5a Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:29:57 -0700 Subject: [PATCH 26/38] Updated libdispatch/ files with copyright notice. --- libdispatch/CMakeLists.txt | 6 ++++ libdispatch/Makefile.am | 2 +- libdispatch/datt.c | 32 +++++++++--------- libdispatch/dattget.c | 2 +- libdispatch/dattinq.c | 40 +++++++++++----------- libdispatch/dattput.c | 2 +- libdispatch/dauth.c | 4 +-- libdispatch/daux.c | 32 +++++++++--------- libdispatch/dcompound.c | 68 +++++++++++++++++--------------------- libdispatch/dcopy.c | 8 ++--- libdispatch/ddim.c | 2 +- libdispatch/ddispatch.c | 6 ++-- libdispatch/denum.c | 2 +- libdispatch/derror.c | 2 +- libdispatch/dfile.c | 2 +- libdispatch/dfilter.c | 2 +- libdispatch/dgroup.c | 2 +- libdispatch/dinternal.c | 2 +- libdispatch/doffsets.c | 2 +- libdispatch/dopaque.c | 2 +- libdispatch/dparallel.c | 2 +- libdispatch/drc.c | 4 +-- libdispatch/dstring.c | 2 +- libdispatch/dtype.c | 2 +- libdispatch/dutf8.c | 2 +- libdispatch/dutil.c | 2 +- libdispatch/dv2i.c | 2 +- libdispatch/dvar.c | 2 +- libdispatch/dvarget.c | 2 +- libdispatch/dvarput.c | 2 +- libdispatch/dvlen.c | 2 +- libdispatch/dwinpath.c | 2 +- libdispatch/json.c | 16 ++++----- libdispatch/nc.c | 2 +- libdispatch/ncbytes.c | 2 +- libdispatch/nchashmap.c | 2 +- libdispatch/nclist.c | 12 +++---- libdispatch/nclistmgr.c | 5 ++- libdispatch/nclog.c | 2 +- libdispatch/nctime.c | 52 ++++++++++++++--------------- libdispatch/ncuri.c | 2 +- libdispatch/netcdf.m4 | 5 ++- libdispatch/stubdef.c | 2 +- libdispatch/test_ncuri.c | 2 +- libdispatch/test_pathcvt.c | 4 +-- 45 files changed, 175 insertions(+), 179 deletions(-) diff --git a/libdispatch/CMakeLists.txt b/libdispatch/CMakeLists.txt index 9d274464c3..133121dc23 100644 --- a/libdispatch/CMakeLists.txt +++ b/libdispatch/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(libdispatch_SOURCES dparallel.c dcopy.c dfile.c ddim.c datt.c dattinq.c dattput.c dattget.c derror.c dvar.c dvarget.c dvarput.c dvarinq.c ddispatch.c nclog.c dstring.c dutf8.c dinternal.c doffsets.c ncuri.c nclist.c ncbytes.c nchashmap.c nctime.c nc.c nclistmgr.c utf8proc.h utf8proc.c dwinpath.c dutil.c drc.c dauth.c dreadonly.c dnotnc4.c dnotnc3.c crc32.c daux.c) IF(USE_NETCDF4) diff --git a/libdispatch/Makefile.am b/libdispatch/Makefile.am index 9633bda48a..613bf27e03 100644 --- a/libdispatch/Makefile.am +++ b/libdispatch/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This Makefile controls the building of the dispatch layer of the # netCDF library. The dispatch layer decides whether to call the diff --git a/libdispatch/datt.c b/libdispatch/datt.c index 9a9df359ac..d9896ed5e2 100644 --- a/libdispatch/datt.c +++ b/libdispatch/datt.c @@ -1,6 +1,6 @@ /** \file -Copyright 2010 University Corporation for Atmospheric -Research/Unidata. See \ref copyright file for more info. +Copyright 2018 University Corporation for Atmospheric +Research/Unidata. See \ref copyright file for more info. These functions read and write attributes. */ @@ -22,7 +22,7 @@ created, while the netCDF dataset is in define mode. Additional attributes may be added later by reentering define mode. A netCDF attribute has a netCDF variable to which it is assigned, a -name, a type, a length, and a sequence of one or more values. +name, a type, a length, and a sequence of one or more values. An attribute is designated by its variable ID and name. When an attribute name is not known, it may be designated by its variable ID @@ -50,7 +50,7 @@ Operations supported on attributes are: - Copy attribute from one netCDF variable to another. - Get name of attribute from its number. - Rename an attribute. -- Delete an attribute. +- Delete an attribute. */ /*! \{*/ /* All these functions are part of the above defgroup... */ @@ -69,16 +69,16 @@ new name is longer than the original name, the netCDF dataset must be in define mode. You cannot rename an attribute to have the same name as another attribute of the same variable. -\param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +\param ncid NetCDF or group ID, from a previous call to nc_open(), +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. -\param newname The new attribute \ref object_name. +\param newname The new attribute \ref object_name.

Example

@@ -90,8 +90,8 @@ dataset named foo.nc: #include ... int status; - int ncid; - int rh_id; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -134,13 +134,13 @@ The function nc_del_att() deletes a netCDF attribute from an open netCDF dataset. The netCDF dataset must be in define mode. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute name. +\param name Attribute name.

Example

@@ -150,9 +150,9 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: \code #include ... - int status; - int ncid; - int rh_id; + int status; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_WRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -160,7 +160,7 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: status = nc_inq_varid (ncid, "rh", &rh_id); if (status != NC_NOERR) handle_error(status); ... - status = nc_redef(ncid); + status = nc_redef(ncid); if (status != NC_NOERR) handle_error(status); status = nc_del_att(ncid, rh_id, "Units"); if (status != NC_NOERR) handle_error(status); diff --git a/libdispatch/dattget.c b/libdispatch/dattget.c index 969c7bd3da..13a9575592 100644 --- a/libdispatch/dattget.c +++ b/libdispatch/dattget.c @@ -3,7 +3,7 @@ Attribute functions These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dattinq.c b/libdispatch/dattinq.c index e5acab0d0b..025d5c8b75 100644 --- a/libdispatch/dattinq.c +++ b/libdispatch/dattinq.c @@ -3,7 +3,7 @@ Attribute inquiry functions These functions find out about attributes. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -20,7 +20,7 @@ Return information about a netCDF attribute. The function nc_inq_att returns the attribute's type and length. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -49,12 +49,12 @@ foo.nc: \code #include ... - int status; - int ncid; - int rh_id; - nc_type vr_type, t_type; - size_t vr_len, t_len; - + int status; + int ncid; + int rh_id; + nc_type vr_type, t_type; + size_t vr_len, t_len; + ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -80,7 +80,7 @@ foo.nc: \author Glenn Davis, Ed Hartnett, Dennis Heimbigner */ int -nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, +nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, size_t *lenp) { NC* ncp; @@ -94,13 +94,13 @@ nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, Find an attribute ID. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param idp Pointer to location for returned attribute number that specifies which attribute this is for this variable (or which global @@ -171,7 +171,7 @@ nc_inq_attid(int ncid, int varid, const char *name, int *idp) Find the name of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -183,7 +183,7 @@ number of attributes for the variable, as returned from a call to nc_inq_varnatts(). \param name Pointer to the location for the returned attribute \ref -object_name. +object_name. \section nc_inq_attname_example Example @@ -263,7 +263,7 @@ nc_inq_attname(int ncid, int varid, int attnum, char *name) Find number of global or group attributes. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param nattsp Pointer where number of global or group attributes will be @@ -271,7 +271,7 @@ written. \ref ignored_if_null. \section nc_inq_natts_example Example -Here is an example from +Here is an example from \code @@ -311,13 +311,13 @@ nc_inq_natts(int ncid, int *nattsp) Find the type of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param xtypep Pointer to location for returned attribute \ref data_type. @@ -368,17 +368,17 @@ nc_inq_atttype(int ncid, int varid, const char *name, nc_type *xtypep) Find the length of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param lenp Pointer to location for returned number of values currently stored in the attribute. Before using the value as a C -string, make sure it is null-terminated. \ref ignored_if_null. +string, make sure it is null-terminated. \ref ignored_if_null. \section nc_inq_attlen_example Example diff --git a/libdispatch/dattput.c b/libdispatch/dattput.c index dcc5f2e6cd..1a43b52321 100644 --- a/libdispatch/dattput.c +++ b/libdispatch/dattput.c @@ -3,7 +3,7 @@ Functions to write attributes. These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dauth.c b/libdispatch/dauth.c index 914ad6ab40..0d1085901d 100644 --- a/libdispatch/dauth.c +++ b/libdispatch/dauth.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ diff --git a/libdispatch/daux.c b/libdispatch/daux.c index 1f7b40ba51..b57d4f6a17 100644 --- a/libdispatch/daux.c +++ b/libdispatch/daux.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -31,7 +31,7 @@ struct NCAUX_FIELD { char* name; nc_type fieldtype; size_t ndims; - int dimsizes[NC_MAX_VAR_DIMS]; + int dimsizes[NC_MAX_VAR_DIMS]; size_t size; size_t offset; size_t alignment; @@ -96,7 +96,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) size_t typesize = 0; size_t i; Position offset; - + if(ncid < 0 || xtype < 0 || (memory == NULL && count > 0) || xtype == NC_NAT) @@ -110,7 +110,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) if((stat=reclaim_datar(ncid,xtype,typesize,&offset))) /* reclaim one instance */ break; } - + done: return stat; } @@ -120,7 +120,7 @@ static int reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) { int stat = NC_NOERR; - + switch (xtype) { case NC_CHAR: case NC_BYTE: case NC_UBYTE: case NC_SHORT: case NC_USHORT: @@ -147,7 +147,7 @@ reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) } return stat; } - + #ifdef USE_NETCDF4 static ptrdiff_t @@ -162,7 +162,7 @@ static int reclaim_usertype(int ncid, int xtype, Position* offset) { int stat = NC_NOERR; - size_t size; + size_t size; nc_type basetype; size_t nfields; int klass; @@ -250,7 +250,7 @@ reclaim_compound(int ncid, int xtype, size_t cmpdsize, size_t nfields, Position* for(i=0;ioffset = saveoffset; @@ -278,13 +278,13 @@ ncaux_begin_compound(int ncid, const char *name, int alignmode, void** tagp) struct NCAUX_CMPD* cmpd = NULL; if(tagp) *tagp = NULL; - + cmpd = (struct NCAUX_CMPD*)calloc(1,sizeof(struct NCAUX_CMPD)); if(cmpd == NULL) {status = NC_ENOMEM; goto fail;} cmpd->ncid = ncid; cmpd->mode = alignmode; cmpd->nfields = 0; - cmpd->name = strdup(name); + cmpd->name = strdup(name); if(cmpd->name == NULL) {status = NC_ENOMEM; goto fail;} if(tagp) { @@ -350,7 +350,7 @@ ncaux_add_field(void* tag, const char *name, nc_type field_type, field = &cmpd->fields[cmpd->nfields+1]; field->name = strdup(name); field->fieldtype = field_type; - if(field->name == NULL) {status = NC_ENOMEM; goto done;} + if(field->name == NULL) {status = NC_ENOMEM; goto done;} field->ndims = (size_t)ndims; memcpy(field->dimsizes,dimsizes,sizeof(int)*field->ndims); cmpd->nfields++; @@ -458,7 +458,7 @@ findfirstfield(int ncid, nc_type xtype) int status = NC_NOERR; nc_type fieldtype = xtype; if(xtype <= NC_MAX_ATOMIC_TYPE) goto done; - + status = nc_inq_compound_fieldtype(ncid, xtype, 0, &fieldtype); if(status != NC_NOERR) goto done; fieldtype = findfirstfield(ncid,fieldtype); @@ -494,7 +494,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) /* Assign the sizes for the fields */ for(i=0;infields;i++) { - struct NCAUX_FIELD* field = &cmpd->fields[i]; + struct NCAUX_FIELD* field = &cmpd->fields[i]; status = nc_inq_type(cmpd->ncid,field->fieldtype,NULL,&field->size); if(status != NC_NOERR) goto done; totaldimsize = dimproduct(field->ndims,field->dimsizes); @@ -513,7 +513,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) break; case NC_ENUM: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); - break; + break; case NC_VLEN: /*fall thru*/ case NC_COMPOUND: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); @@ -535,5 +535,3 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) } #endif /*USE_NETCDF4*/ - - diff --git a/libdispatch/dcompound.c b/libdispatch/dcompound.c index 902f0a9e64..2399cc7418 100644 --- a/libdispatch/dcompound.c +++ b/libdispatch/dcompound.c @@ -1,7 +1,7 @@ /*! \file Functions for Compound Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -21,9 +21,9 @@ nc_insert_compound(). Call nc_insert_compound() once for each field you wish to insert into the compound type. \param ncid \ref ncid -\param size The size, in bytes, of the compound type. +\param size The size, in bytes, of the compound type. \param name \ref object_name of the created type. -\param typeidp The type ID of the new type is copied here. +\param typeidp The type ID of the new type is copied here. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -35,7 +35,7 @@ you wish to insert into the compound type. \returns ::NC_ENOTNC4 This file was created with the strict netcdf-3 flag, therefore netcdf-4 operations are not allowed. (see nc_open). \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. \section nc_def_compound_example Example @@ -46,7 +46,7 @@ int i1; int i2; }; struct s1 data[DIM_LEN], data_in[DIM_LEN]; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid)) ERR; if (nc_def_compound(ncid, sizeof(struct s1), SVC_REC, &typeid)) ERR; if (nc_insert_compound(ncid, typeid, BATTLES_WITH_KLINGONS, @@ -60,7 +60,7 @@ if (nc_close(ncid)) ERR; \endcode */ int -nc_def_compound(int ncid, size_t size, const char *name, +nc_def_compound(int ncid, size_t size, const char *name, nc_type *typeidp) { NC* ncp; @@ -82,7 +82,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -93,10 +93,10 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_compound(int ncid, nc_type xtype, const char *name, +nc_insert_compound(int ncid, nc_type xtype, const char *name, size_t offset, nc_type field_typeid) { NC *ncp; @@ -119,7 +119,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \param ndims Number of dimensions in array. @@ -135,11 +135,11 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_array_compound(int ncid, nc_type xtype, const char *name, - size_t offset, nc_type field_typeid, +nc_insert_array_compound(int ncid, nc_type xtype, const char *name, + size_t offset, nc_type field_typeid, int ndims, const int *dim_sizes) { NC* ncp; @@ -172,7 +172,7 @@ placed here. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound(int ncid, nc_type xtype, char *name, +nc_inq_compound(int ncid, nc_type xtype, char *name, size_t *sizep, size_t *nfieldsp) { int class = 0; @@ -206,7 +206,7 @@ nc_inq_compound_name(int ncid, nc_type xtype, char *name) } /** \ingroup user_types -Learn the size of a compound type. +Learn the size of a compound type. \param ncid \ref ncid @@ -229,7 +229,7 @@ nc_inq_compound_size(int ncid, nc_type xtype, size_t *sizep) } /** \ingroup user_types -Learn the number of fields in a compound type. +Learn the number of fields in a compound type. \param ncid \ref ncid @@ -252,7 +252,7 @@ nc_inq_compound_nfields(int ncid, nc_type xtype, size_t *nfieldsp) } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -284,9 +284,9 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, - char *name, size_t *offsetp, - nc_type *field_typeidp, int *ndimsp, +nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, + char *name, size_t *offsetp, + nc_type *field_typeidp, int *ndimsp, int *dim_sizesp) { NC* ncp; @@ -298,7 +298,7 @@ nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -318,7 +318,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, char *name) { NC* ncp; @@ -330,7 +330,7 @@ nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -350,7 +350,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, size_t *offsetp) { NC* ncp; @@ -360,7 +360,7 @@ nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -380,7 +380,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, nc_type *field_typeidp) { NC* ncp; @@ -390,7 +390,7 @@ nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -410,7 +410,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, int *ndimsp) { NC* ncp; @@ -420,7 +420,7 @@ nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -440,7 +440,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, int *dim_sizesp) { NC *ncp; @@ -472,7 +472,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, +nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, int *fieldidp) { NC* ncp; @@ -481,9 +481,3 @@ nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, return ncp->dispatch->inq_compound_fieldindex(ncid,xtype,name,fieldidp); } /*! \} */ /* End of named group ...*/ - - - - - - diff --git a/libdispatch/dcopy.c b/libdispatch/dcopy.c index 0c73c40bd1..8ef13cb485 100644 --- a/libdispatch/dcopy.c +++ b/libdispatch/dcopy.c @@ -1,6 +1,6 @@ /** * @file - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This file has the var and att copy functions. @@ -13,7 +13,7 @@ #ifdef USE_NETCDF4 /** * @internal Compare two netcdf types for equality. Must have the - * ncids as well, to find user-defined types. + * ncids as well, to find user-defined types. * * @param ncid1 File ID. * @param typeid1 Type ID. @@ -152,7 +152,7 @@ NC_compare_nc_types(int ncid1, int typeid1, int ncid2, int typeid2, /** * @internal Recursively hunt for a netCDF type id. (Code from - * nc4internal.c); Return matching typeid or 0 if not found. + * nc4internal.c); Return matching typeid or 0 if not found. * * @param ncid1 File ID. * @param tid1 Type ID. @@ -226,7 +226,7 @@ NC_rec_find_nc_type(int ncid1, nc_type tid1, int ncid2, nc_type* tid2) /** * @internal Given a type in one file, find its equal (if any) in - * another file. It sounds so simple, but it's a real pain! + * another file. It sounds so simple, but it's a real pain! * * @param ncid1 File ID. * @param xtype1 Type ID. diff --git a/libdispatch/ddim.c b/libdispatch/ddim.c index 93e7364062..4abcc4e382 100644 --- a/libdispatch/ddim.c +++ b/libdispatch/ddim.c @@ -3,7 +3,7 @@ Dimension functions These functions define and inquire about dimensions. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/ddispatch.c b/libdispatch/ddispatch.c index 1da5846ca7..06359bc12a 100644 --- a/libdispatch/ddispatch.c +++ b/libdispatch/ddispatch.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -212,7 +212,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) found = 1; break; } - } + } if(found) { model = protolist->model; /* Substitute the protocol in any case */ @@ -231,7 +231,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) model = NC_FORMATX_DAP2; else if((match=ncurilookup(url,"dap4")) != NULL || strcmp(proto,"dap4") == 0) model = NC_FORMATX_DAP4; - else + else model = 0; /* Still don't know */ } if(model == 0) {/* Last resort: use the mode */ diff --git a/libdispatch/denum.c b/libdispatch/denum.c index dc8a2b057f..5e482bdb2c 100644 --- a/libdispatch/denum.c +++ b/libdispatch/denum.c @@ -1,7 +1,7 @@ /*! \file Functions for Enum Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/derror.c b/libdispatch/derror.c index 6a2b83fc0a..b6d066ec1c 100644 --- a/libdispatch/derror.c +++ b/libdispatch/derror.c @@ -3,7 +3,7 @@ Error messages and library version. These functions return the library version, and error messages. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dfile.c b/libdispatch/dfile.c index 0447cc110b..1db561ff3b 100644 --- a/libdispatch/dfile.c +++ b/libdispatch/dfile.c @@ -6,7 +6,7 @@ * These functions end up calling functions in one of the dispatch * layers (netCDF-4, dap server, etc). * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dfilter.c b/libdispatch/dfilter.c index 8c4360722b..e48eddfcb8 100644 --- a/libdispatch/dfilter.c +++ b/libdispatch/dfilter.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dgroup.c b/libdispatch/dgroup.c index 8b1fe4b443..c6f553680e 100644 --- a/libdispatch/dgroup.c +++ b/libdispatch/dgroup.c @@ -1,7 +1,7 @@ /*! \file Functions for netCDF-4 features. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dinternal.c b/libdispatch/dinternal.c index 4783042dce..c94e2f3ccc 100644 --- a/libdispatch/dinternal.c +++ b/libdispatch/dinternal.c @@ -1,7 +1,7 @@ /*! \internal Public functions from dispatch table. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/doffsets.c b/libdispatch/doffsets.c index 0d438c0c8a..e366a2d442 100644 --- a/libdispatch/doffsets.c +++ b/libdispatch/doffsets.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/offsets.c,v 1.1 2009/09/25 18:22:40 dmh Exp $ *********************************************************************/ diff --git a/libdispatch/dopaque.c b/libdispatch/dopaque.c index b9065afe52..3a77e79423 100644 --- a/libdispatch/dopaque.c +++ b/libdispatch/dopaque.c @@ -1,7 +1,7 @@ /*! \file Functions for Opaque Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dparallel.c b/libdispatch/dparallel.c index 0f3c3a1f4f..a62351435f 100644 --- a/libdispatch/dparallel.c +++ b/libdispatch/dparallel.c @@ -1,4 +1,4 @@ -/* Copyright 2010 University Corporation for Atmospheric +/* Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ /** * @file diff --git a/libdispatch/drc.c b/libdispatch/drc.c index 2f7c5bf25b..2ad784472d 100644 --- a/libdispatch/drc.c +++ b/libdispatch/drc.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "config.h" diff --git a/libdispatch/dstring.c b/libdispatch/dstring.c index 2a3cece0d5..832e4d8c44 100644 --- a/libdispatch/dstring.c +++ b/libdispatch/dstring.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: string.c,v 1.76 2010/05/26 21:43:33 dmh Exp $ */ diff --git a/libdispatch/dtype.c b/libdispatch/dtype.c index 82fafb475d..3de208c1e0 100644 --- a/libdispatch/dtype.c +++ b/libdispatch/dtype.c @@ -1,7 +1,7 @@ /*! \file Functions for User-Defined Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dutf8.c b/libdispatch/dutf8.c index c7550aa238..f8e0d6b9a0 100644 --- a/libdispatch/dutf8.c +++ b/libdispatch/dutf8.c @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dutil.c b/libdispatch/dutil.c index aa52bc7f6a..f79575ef3b 100644 --- a/libdispatch/dutil.c +++ b/libdispatch/dutil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/dv2i.c b/libdispatch/dv2i.c index c7c05a96d2..98b9a6cd69 100644 --- a/libdispatch/dv2i.c +++ b/libdispatch/dv2i.c @@ -1,7 +1,7 @@ /** \file The V2 API Functions. -Copyright 1996, University Corporation for Atmospheric Research +Copyright 2018, University Corporation for Atmospheric Research See \ref copyright file for copying and redistribution conditions. */ diff --git a/libdispatch/dvar.c b/libdispatch/dvar.c index 655667285e..50028ac786 100644 --- a/libdispatch/dvar.c +++ b/libdispatch/dvar.c @@ -1102,7 +1102,7 @@ Warning: this function is only defined if the type of the variable is an atomic integer or float type. This function may only be called after the variable is defined, but -before nc_enddef is called. +before nc_enddef is called. @param[in] ncid NetCDF ID, from a previous call to nc_open or nc_create. diff --git a/libdispatch/dvarget.c b/libdispatch/dvarget.c index 8ccf8909d7..0a18108092 100644 --- a/libdispatch/dvarget.c +++ b/libdispatch/dvarget.c @@ -1,7 +1,7 @@ /*! \file Functions for getting data from variables. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ diff --git a/libdispatch/dvarput.c b/libdispatch/dvarput.c index 86c09e54bc..5d43b59213 100644 --- a/libdispatch/dvarput.c +++ b/libdispatch/dvarput.c @@ -1,7 +1,7 @@ /*! \file dvarput.c Functions for writing data to variables. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dvlen.c b/libdispatch/dvlen.c index d14ad6972e..5236f28cc5 100644 --- a/libdispatch/dvlen.c +++ b/libdispatch/dvlen.c @@ -1,7 +1,7 @@ /*! \file Functions for VLEN Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dwinpath.c b/libdispatch/dwinpath.c index b83ef543ce..3bf010fc67 100644 --- a/libdispatch/dwinpath.c +++ b/libdispatch/dwinpath.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/json.c b/libdispatch/json.c index 4196885d1f..2fe194550e 100644 --- a/libdispatch/json.c +++ b/libdispatch/json.c @@ -1,11 +1,11 @@ -/* Copyright 2016, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #ifndef NCJSON_INC #define NCJSON_INC 1 -#define NCJ_DICT 1 +#define NCJ_DICT 1 #define NCJ_LIST 2 #define NCJ_WORD 3 #define NCJ_NUMBER 4 @@ -77,7 +77,7 @@ NCjsonparse(char* text, NCjson** treep) static int NCJyytext(NCJparser* parser, char* start, ptrdiff_t pdlen) { - size_t len = (size_t)pdlen; + size_t len = (size_t)pdlen; if(parser->yytext == NULL) parser->yytext = (char*)malloc(len+1); else @@ -133,13 +133,13 @@ NCJlex(NCJparser* parser) for(;;) { c = *parser->pos++; if(c == NCJ_QUOTE || c == NCJ_NUL) break; - last++; + last++; } if(c == NCJ_NUL) { parser->errno = NCJ_ESTRING; token = NCJ_ERR; goto done; - } + } if(!NCJyytext(parser,start,(next - start))) goto done; token = NCJ_STRING; } else { /* single char token */ @@ -147,7 +147,7 @@ NCJlex(NCJparser* parser) } done: if(parser->errno) token = NCJ_ERR; - return token; + return token; } /* Simple recursive descent */ @@ -174,7 +174,7 @@ NCJparseR(NCJparser* parser, NCjson** listp) default: parser->errno = NCJ_EBADTOKEN; } - return NULL; + return NULL; } static NCjson* diff --git a/libdispatch/nc.c b/libdispatch/nc.c index 9683c79257..3fc129dc85 100644 --- a/libdispatch/nc.c +++ b/libdispatch/nc.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/ncbytes.c b/libdispatch/ncbytes.c index 7d0aa904c3..f5a731ae5b 100644 --- a/libdispatch/ncbytes.c +++ b/libdispatch/ncbytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdispatch/nchashmap.c b/libdispatch/nchashmap.c index ff45dcfb40..0a6d8a1cec 100644 --- a/libdispatch/nchashmap.c +++ b/libdispatch/nchashmap.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ diff --git a/libdispatch/nclist.c b/libdispatch/nclist.c index 679c1b1746..c901c78f6f 100644 --- a/libdispatch/nclist.c +++ b/libdispatch/nclist.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include @@ -113,7 +113,7 @@ nclistset(NClist* l, size_t index, void* elem) if(l == NULL) return FALSE; if(!nclistsetalloc(l,index+1)) return FALSE; if(index >= l->length) { - if(!nclistsetlength(l,index+1)) return FALSE; + if(!nclistsetlength(l,index+1)) return FALSE; } l->content[index] = elem; return TRUE; @@ -147,7 +147,7 @@ void* nclistpop(NClist* l) { if(l == NULL || l->length == 0) return NULL; - l->length--; + l->length--; return l->content[l->length]; } @@ -168,7 +168,7 @@ nclistremove(NClist* l, size_t i) elem = l->content[i]; for(i+=1;icontent[i-1] = l->content[i]; l->length--; - return elem; + return elem; } /* Duplicate and return the content (null terminate) */ @@ -212,7 +212,7 @@ nclistelemremove(NClist* l, void* elem) } -/* Extends nclist to include a unique operator +/* Extends nclist to include a unique operator which remove duplicate values; NULL values removed return value is always 1. */ @@ -229,7 +229,7 @@ nclistunique(NClist* l) for(j=i+1;jpath,path)==0) { f = nc_filelist[i]; break; - } + } } } return f; @@ -126,4 +126,3 @@ iterate_NCList(int index, NC** ncp) if(ncp) *ncp = nc_filelist[index]; return NC_NOERR; } - diff --git a/libdispatch/nclog.c b/libdispatch/nclog.c index f43d23dff9..4e0adbfd83 100644 --- a/libdispatch/nclog.c +++ b/libdispatch/nclog.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/nctime.c b/libdispatch/nctime.c index 07c9b17087..aed5ac9842 100644 --- a/libdispatch/nctime.c +++ b/libdispatch/nctime.c @@ -1,10 +1,10 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ -/* +/* * This code was extracted with permission from the CDMS time * conversion and arithmetic routines developed by Bob Drach, Lawrence * Livermore National Laboratory as part of the cdtime library. Russ @@ -58,7 +58,7 @@ static void cdError(char *fmt, ...) { va_list args; - + cuErrorOccurred = 1; if(cuErrOpts & CU_VERBOSE){ va_start(args,fmt); @@ -84,11 +84,11 @@ static int days_sum[12] = {0,31,59,90,120,151,181,212,243,273,304,334}; * date->year (long) (year since 0 BC) * date->timeType (CdTimetype) (time type) * date->baseYear base year for relative times - * Output: - * date->month (short) (month in year) + * Output: + * date->month (short) (month in year) * date->day (short) (day in month) * - * + * * Derived from NRL NEONS V3.6. */ @@ -131,14 +131,14 @@ CdMonthDay(int *doy, CdTime *date) } /* Compute day-of-year from year, month and day - * + * * Input: * date->year (long) (year since 0 BC) * date->month (short) (month in year) * date->day (short) (day in month) * date->baseYear base year for relative times * Output: doy (int) (day-of-year) - * + * * Derived from NRL NEONS V3.6 */ @@ -152,7 +152,7 @@ CdDayOfYear(CdTime *date, int *doy) month = date->month; if (month < 1 || month > 12) { cdError( "Day-of-year error; month: %d\n", month); - month = 1; + month = 1; } if(!(date->timeType & CdChronCal)) /* Ignore year for Clim calendar */ @@ -173,14 +173,14 @@ CdDayOfYear(CdTime *date, int *doy) /* Convert epochal time (hours since 00 jan 1, 1970) * to human time (structured) - * - * Input: + * + * Input: * etime = epochal time representation * timeType = time type (e.g., CdChron, CdClim, etc.) as defined in cdms.h * baseYear = base real, used for relative time types only - * + * * Output: htime = human (structured) time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -404,7 +404,7 @@ cdDiffGregorian(cdCompTime ca, cdCompTime cb){ /* Return -1, 0, 1 as ca is less than, equal to, */ /* or greater than cb, respectively. */ -static int +static int cdCompCompare(cdCompTime ca, cdCompTime cb){ int test; @@ -469,7 +469,7 @@ CdDivDelTime(double begEtm, double endEtm, CdDeltaTime delTime, CdTimeType timeT long delMonths, range; CdTime bhtime, ehtime; int hoursInYear; - + extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime); switch(delTime.units){ @@ -610,11 +610,11 @@ cdToOldTimetype(cdCalenType newtype, CdTimeType* oldtype) } /* Convert human time to epochal time (hours since 00 jan 1, 1970) - * + * * Input: htime = human time representation - * + * * Output: etime = epochal time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -628,7 +628,7 @@ Cdh2e(CdTime *htime, double *etime) int daysInYear; /* days in non-leap year */ CdDayOfYear(htime,&doy); - + day_cnt = 0; baseYear = ((htime->timeType) & CdBase1970) ? 1970 : htime->baseYear; @@ -641,7 +641,7 @@ Cdh2e(CdTime *htime, double *etime) daysInLeapYear = ((htime->timeType) & Cd365) ? 366 : 360; daysInYear = ((htime->timeType) & Cd365) ? 365 : 360; } - + if (year > baseYear) { for (ytemp = year - 1; ytemp >= baseYear; ytemp--) { day_cnt += ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; @@ -650,7 +650,7 @@ Cdh2e(CdTime *htime, double *etime) for (ytemp = year; ytemp < baseYear; ytemp++) { day_cnt -= ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; } - } + } *etime = (double) (day_cnt + doy - 1) * 24. + htime->hour; return; } @@ -687,7 +687,7 @@ cdChar2Comp(cdCalenType timetype, char* chartime, cdCompTime* comptime) comptime->month = CD_NULL_MONTH; comptime->day = CD_NULL_DAY; comptime->hour = CD_NULL_HOUR; - + if(timetype & cdStandardCal){ nconv = sscanf(chartime,"%ld-%hd-%hd %d:%d:%lf",&year,&month,&day,&ihr,&imin,&sec); if(nconv==EOF || nconv==0){ @@ -787,7 +787,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re cdUnitTime unit; double base_etm, etm, delta; long ndel, hoursInYear; - + /* Parse the relunits */ if(cdParseRelunits(timetype, relunits, &unit, &base_comptime)) return; @@ -807,7 +807,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re default: break; } } - + /* Convert basetime to epochal */ humantime.year = base_comptime.year; humantime.month = base_comptime.month; @@ -1071,7 +1071,7 @@ cdRel2Comp(cdCalenType timetype, char* relunits, double reltime, cdCompTime* com /* Convert back to human, then comptime. */ else if(baseunits == cdHour){ Cde2h(base_etm+delta, old_timetype, 1970, &humantime); - + } comptime->year = humantime.year; comptime->month = humantime.month; @@ -1091,7 +1091,7 @@ cdComp2Iso(cdCalenType timetype, int separator, cdCompTime comptime, char* time) if(cdValidateTime(timetype,comptime)) return; - + ihr = (int)comptime.hour; dtmp = 60.0 * (comptime.hour - (double)ihr); imin = (int)dtmp; diff --git a/libdispatch/ncuri.c b/libdispatch/ncuri.c index 7e13abdba1..03a7419654 100644 --- a/libdispatch/ncuri.c +++ b/libdispatch/ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/netcdf.m4 b/libdispatch/netcdf.m4 index f57742b084..1a58df0278 100644 --- a/libdispatch/netcdf.m4 +++ b/libdispatch/netcdf.m4 @@ -1,12 +1,12 @@ /* - Copyright 2010 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. This file defines most of the netcdf API in terms of the dispatch functions along with a few functions that are overlays over the dispatch functions. - "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" + "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" */ #include "ncdispatch.h" @@ -588,4 +588,3 @@ NC_PUT_ATT(ulonglong,unsigned long long) #ifdef USE_NETCDF4 /*NC_PUT_ATT(string,char*) defined separately */ #endif /*USE_NETCDF4*/ - diff --git a/libdispatch/stubdef.c b/libdispatch/stubdef.c index 519ec4d70b..7db2c71935 100644 --- a/libdispatch/stubdef.c +++ b/libdispatch/stubdef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_ncuri.c b/libdispatch/test_ncuri.c index 957b41ad0e..7d23af3ed4 100644 --- a/libdispatch/test_ncuri.c +++ b/libdispatch/test_ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_pathcvt.c b/libdispatch/test_pathcvt.c index 7b93074730..1d3f12c5af 100644 --- a/libdispatch/test_pathcvt.c +++ b/libdispatch/test_pathcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -50,7 +50,7 @@ main(int argc, char** argv) } #ifdef VERBOSE fprintf(stderr,"NCpathcvt:: input: |%s| actual=|%s|\n",test->path,cvt); -#endif +#endif free(cvt); } From 87110139f611a89d6e4f22a02c0329c46942f66f Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:34:40 -0700 Subject: [PATCH 27/38] More synchronization of copyright stanzas. --- libhdf5/nc4hdf.c | 3 +- libhdf5/nc4info.c | 13 ++++---- liblib/CMakeLists.txt | 7 ++++- liblib/Makefile.am | 2 +- liblib/nc_initialize.c | 2 +- libsrc/CMakeLists.txt | 2 +- libsrc/Makefile.am | 2 +- libsrc/attr.m4 | 2 +- libsrc/dim.c | 2 +- libsrc/ffio.c | 2 +- libsrc/memio.c | 2 +- libsrc/mmapio.c | 2 +- libsrc/nc3dispatch.c | 2 +- libsrc/nc3internal.c | 2 +- libsrc/ncFile.c | 2 +- libsrc/ncio.c | 2 +- libsrc/ncio.h | 2 +- libsrc/ncstdio.c | 2 +- libsrc/ncstdio.h | 2 +- libsrc/ncx.h | 2 +- libsrc/ncx_cray.c | 2 +- libsrc/posixio.c | 2 +- libsrc/putget.m4 | 2 +- libsrc/t_ncio.c | 2 +- libsrc/t_ncxx.m4 | 68 +++++++++++++++++++++--------------------- libsrc/v1hpg.c | 2 +- libsrc/var.c | 2 +- libsrc/winceio.c | 2 +- 28 files changed, 71 insertions(+), 68 deletions(-) diff --git a/libhdf5/nc4hdf.c b/libhdf5/nc4hdf.c index a565e7e4c0..813b3047e9 100644 --- a/libhdf5/nc4hdf.c +++ b/libhdf5/nc4hdf.c @@ -1,4 +1,4 @@ -/* Copyright 2003, University Corporation for Atmospheric +/* Copyright 2018, University Corporation for Atmospheric * Research. See the COPYRIGHT file for copying and redistribution * conditions. */ /** @@ -2791,4 +2791,3 @@ NC4_walk(hid_t gid, int* countp) } return ncstat; } - diff --git a/libhdf5/nc4info.c b/libhdf5/nc4info.c index 92ee18edff..6f7db7adc6 100644 --- a/libhdf5/nc4info.c +++ b/libhdf5/nc4info.c @@ -2,7 +2,7 @@ * @file * @internal Add provenance info for netcdf-4 files. * - * Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for copying + * Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying * and redistribution conditions. * @author Dennis Heimbigner */ @@ -73,7 +73,7 @@ NC4_provenance_init(void) {stat = NC_ENOMEM; goto done;} nclistpush(globalpropinfo.properties,value); value = NULL; - + /* Insert the HDF5 as underlying storage format library */ if((name = strdup(NCPHDF5LIB2)) == NULL) {stat = NC_ENOMEM; goto done;} @@ -109,7 +109,7 @@ NC4_provenance_init(void) if(name != NULL) free(name); if(value != NULL) free(value); if(other != NULL) - nclistfreeall(other); + nclistfreeall(other); if(stat && globalpropinfo.properties != NULL) { nclistfreeall(globalpropinfo.properties); globalpropinfo.properties = NULL; @@ -192,7 +192,7 @@ properties_parse(const char* text0, NClist* pairs) *q++ = '\0'; next = q; /* split key and value */ - q = locate(p,'='); + q = locate(p,'='); name = p; *q++ = '\0'; value = q; @@ -517,7 +517,7 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) hdf5grpid = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; if(H5Aexists(hdf5grpid,NCPROPS) <= 0) { /* Does not exist */ - /* File did not contain a _NCProperties attribute */ + /* File did not contain a _NCProperties attribute */ retval=NC4_get_provenance(h5,NULL,&globalpropinfo); goto done; } @@ -641,7 +641,7 @@ ncprintpropinfo(struct NCPROPINFO* info) char* name = nclistget(info->properties,i); char* value = nclistget(info->properties,i+1); fprintf(stderr,"\t[%d] name=|%s| value=|%s|\n",i,name,value); - } + } } void @@ -650,4 +650,3 @@ ncprintprovenance(struct NCPROVENANCE* prov) fprintf(stderr,"[%p] superblockversion=%d\n",prov,prov->superblockversion); ncprintpropinfo(&prov->propattr); } - diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt index b8c5f1dbc1..ea9b02949d 100644 --- a/liblib/CMakeLists.txt +++ b/liblib/CMakeLists.txt @@ -1,4 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. +# See netcdf-c/COPYRIGHT file for more info. SET(liblib_LIBS dispatch netcdf3) ##### @@ -8,7 +13,7 @@ SET(liblib_LIBS dispatch netcdf3) IF(USE_HDF5 OR USE_NETCDF4) SET(liblib_LIBS ${liblib_LIBS} netcdf4) SET(liblib_LIBS ${liblib_LIBS} netcdfhdf5) - + ENDIF() IF(USE_PNETCDF) diff --git a/liblib/Makefile.am b/liblib/Makefile.am index 02c0599fea..9b2b7226d4 100644 --- a/liblib/Makefile.am +++ b/liblib/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2010, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This Makefile assembles the correct libnetcdf based on various # configure flags. It is assumed that all the relevant convenience diff --git a/liblib/nc_initialize.c b/liblib/nc_initialize.c index 04d336798b..2ca59f00ea 100644 --- a/liblib/nc_initialize.c +++ b/liblib/nc_initialize.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libsrc/CMakeLists.txt b/libsrc/CMakeLists.txt index e617b17e97..fc4cf0703f 100644 --- a/libsrc/CMakeLists.txt +++ b/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ ## This is a CMake file, part of Unidata's netCDF package. -# Copyright 2012-2013, see the COPYRIGHT file for more information. +# Copyright 2012-2018, see the COPYRIGHT file for more information. # Process these files with m4. SET(m4_SOURCES attr ncx putget t_ncxx) diff --git a/libsrc/Makefile.am b/libsrc/Makefile.am index 498673e40a..fd13299fcd 100644 --- a/libsrc/Makefile.am +++ b/libsrc/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. diff --git a/libsrc/attr.m4 b/libsrc/attr.m4 index 44da9084b6..ae0208b642 100644 --- a/libsrc/attr.m4 +++ b/libsrc/attr.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/dim.c b/libsrc/dim.c index 14114ec06c..227ac5ab5c 100644 --- a/libsrc/dim.c +++ b/libsrc/dim.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: dim.c,v 1.83 2010/05/25 17:54:15 dmh Exp $ */ diff --git a/libsrc/ffio.c b/libsrc/ffio.c index e2ba64f70e..80bc6cb930 100644 --- a/libsrc/ffio.c +++ b/libsrc/ffio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ffio.c,v 1.56 2006/09/15 20:40:30 ed Exp $ */ diff --git a/libsrc/memio.c b/libsrc/memio.c index 09d4b62511..35bcd5738c 100644 --- a/libsrc/memio.c +++ b/libsrc/memio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/mmapio.c b/libsrc/mmapio.c index 98e4dadbbb..a05e3afa9f 100644 --- a/libsrc/mmapio.c +++ b/libsrc/mmapio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/nc3dispatch.c b/libsrc/nc3dispatch.c index 19f1756d00..41cf55346b 100644 --- a/libsrc/nc3dispatch.c +++ b/libsrc/nc3dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for + Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying and redistribution conditions. $Id: nc3dispatch.c,v 2.8 2010/05/26 11:11:26 ed Exp $ diff --git a/libsrc/nc3internal.c b/libsrc/nc3internal.c index 704e739137..dbac0a4b43 100644 --- a/libsrc/nc3internal.c +++ b/libsrc/nc3internal.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, Unuiversity Corporation for Atmospheric Research + * Copyright 2018, Unuiversity Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncFile.c b/libsrc/ncFile.c index 4db35cbd5c..aed7dc16d4 100644 --- a/libsrc/ncFile.c +++ b/libsrc/ncFile.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.c b/libsrc/ncio.c index 20f5546b5c..cc67cddad0 100644 --- a/libsrc/ncio.c +++ b/libsrc/ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.h b/libsrc/ncio.h index 71dc640d39..6e3c17f76d 100644 --- a/libsrc/ncio.h +++ b/libsrc/ncio.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ncio.h,v 1.27 2006/01/03 04:56:28 russ Exp $ */ diff --git a/libsrc/ncstdio.c b/libsrc/ncstdio.c index dd69501f7d..b7107a001e 100644 --- a/libsrc/ncstdio.c +++ b/libsrc/ncstdio.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncstdio.h b/libsrc/ncstdio.h index ba88539106..b50f8c01f7 100644 --- a/libsrc/ncstdio.h +++ b/libsrc/ncstdio.h @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx.h b/libsrc/ncx.h index a9ffcdc633..13e463dd5c 100644 --- a/libsrc/ncx.h +++ b/libsrc/ncx.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx_cray.c b/libsrc/ncx_cray.c index ce56ed9400..4398ca904b 100644 --- a/libsrc/ncx_cray.c +++ b/libsrc/ncx_cray.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * */ diff --git a/libsrc/posixio.c b/libsrc/posixio.c index 06b80050e4..328b13aaf6 100644 --- a/libsrc/posixio.c +++ b/libsrc/posixio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: posixio.c,v 1.89 2010/05/22 21:59:08 dmh Exp $ */ diff --git a/libsrc/putget.m4 b/libsrc/putget.m4 index baf49e3f52..644a7dd8f1 100644 --- a/libsrc/putget.m4 +++ b/libsrc/putget.m4 @@ -9,7 +9,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: putget.m4 2783 2014-10-26 05:19:35Z wkliao $ */ diff --git a/libsrc/t_ncio.c b/libsrc/t_ncio.c index 580548961e..bfce5376f5 100644 --- a/libsrc/t_ncio.c +++ b/libsrc/t_ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1995, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See top level COPYRIGHT file for copying and redistribution conditions. */ /* $Id: t_ncio.c,v 1.10 2010/05/26 11:11:26 ed Exp $ */ diff --git a/libsrc/t_ncxx.m4 b/libsrc/t_ncxx.m4 index 81589c18f0..4aba4b6fb8 100644 --- a/libsrc/t_ncxx.m4 +++ b/libsrc/t_ncxx.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* "$Id: t_ncxx.m4,v 2.17 2005/05/20 14:48:14 russ Exp $" */ @@ -16,13 +16,13 @@ dnl * Unlike t_ncx.c, it only checks self consistency, * not consistency with the xdr library. * - * Link like this: + * Link like this: * cc t_ncxx.c ncx.o -o t_nxc * (The xdr library is not needed.) * * If an assertion fails, there is a problem. * Otherwise, the program is silent and has exit code 0. - */ + */ #if HAVE_CONFIG_H #include @@ -239,10 +239,10 @@ dnl T_PUTN(XType, Type) dnl define(`T_PUTN',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -273,10 +273,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_PUTN_U',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -301,10 +301,10 @@ dnl T_PAD_PUTN(XType, Type) dnl define(`T_PAD_PUTN',dnl `dnl -static void +static void t_pad_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); const char *end = buf + nelems * Xsizeof($1); @@ -337,10 +337,10 @@ dnl T_GETN(XType, Type) dnl define(`T_GETN',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -368,10 +368,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_GETN_U',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -397,10 +397,10 @@ dnl T_PAD_GETN(XType, Type) dnl define(`T_PAD_GETN',dnl `dnl -static void +static void t_pad_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -434,10 +434,10 @@ dnl dnl dnl T_PUTN(schar, schar) dnl T_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(schars); int status = ncx_putn_schar_uchar((void **)&xp, nelems, tp); @@ -454,10 +454,10 @@ T_PUTN(schar, double) T_PAD_PUTN(schar, schar) dnl T_PAD_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_pad_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SCHAR; @@ -485,10 +485,10 @@ T_PUTN(short, double) T_PAD_PUTN(short, schar) dnl T_PAD_PUTN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_putn_short_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SHORT; @@ -545,10 +545,10 @@ T_PUTN(double, double) T_GETN(schar, schar) dnl T_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -574,10 +574,10 @@ T_GETN(schar, double) T_PAD_GETN(schar, schar) dnl T_PAD_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_pad_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -614,10 +614,10 @@ T_GETN(short, double) T_PAD_GETN(short, schar) dnl T_PAD_GETN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_getn_short_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(uchars); @@ -659,10 +659,10 @@ T_GETN_U(float, uchar) T_GETN(float, short) dnl T_GETN(float, int) dnl Exact conversion of int to x_float is limited by external float mantissa -static void +static void t_getn_float_int(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const int *tp = ints; int *lp = (int *)lbuf; size_t nelems = ArraySize(ints); @@ -687,10 +687,10 @@ t_getn_float_int(const char *const buf) dnl T_GETN(float, long) dnl Exact conversion of long to x_float is limited by external float mantissa -static void +static void t_getn_float_long(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const long *tp = longs; long *lp = (long *)lbuf; size_t nelems = ArraySize(longs); @@ -719,10 +719,10 @@ t_getn_float_long(const char *const buf) T_GETN(float, float) dnl T_GETN(float, double) dnl Exact conversion of double to x_float is limited by external float mantissa -static void +static void t_getn_float_double(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const double *tp = doubles; double *lp = (double *)lbuf; size_t nelems = ArraySize(doubles); @@ -754,7 +754,7 @@ t_getn_float_double(const char *const buf) (void) fprintf(stderr, "%.9e != %.9e float_double (diff %.9e)\n", tp[ii], lp[ii], tp[ii] - lp[ii]); - + } } } diff --git a/libsrc/v1hpg.c b/libsrc/v1hpg.c index ee85fe9aa4..0886bb337f 100644 --- a/libsrc/v1hpg.c +++ b/libsrc/v1hpg.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/var.c b/libsrc/var.c index 9254894ed4..6b466821e1 100644 --- a/libsrc/var.c +++ b/libsrc/var.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: var.c,v 1.144 2010/05/30 00:50:35 russ Exp $ */ diff --git a/libsrc/winceio.c b/libsrc/winceio.c index c7a2e14ff5..f30daba420 100644 --- a/libsrc/winceio.c +++ b/libsrc/winceio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: winceio.c,v 1.2 2010/05/04 17:30:04 dmh Exp $ */ From 763750fab5660983c7531c86bd81befe0692d872 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 14:56:42 -0700 Subject: [PATCH 28/38] More copyright stanza updates. --- libsrc4/CMakeLists.txt | 6 ++ libsrc4/Makefile.am | 7 +- libsrc4/error4.c | 15 +-- libsrc4/nc4printer.c | 19 ++-- libsrc4/nc4var.c | 2 +- libsrc4/ncfunc.c | 4 +- libsrc4/ncindex.c | 12 +-- libsrcp/CMakeLists.txt | 7 ++ libsrcp/Makefile.am | 4 +- libsrcp/ncpdispatch.c | 2 +- nc_test/CMakeLists.txt | 7 ++ nc_test/Makefile.am | 2 +- nc_test/error.c | 2 +- nc_test/error.h | 2 +- nc_test/large_files.c | 2 +- nc_test/nc_test.c | 2 +- nc_test/quick_large_files.c | 2 +- nc_test/t_nc.c | 2 +- nc_test/t_nc_p5.c | 44 ++++----- nc_test/testnc3perf.c | 34 +++---- nc_test/tests.h | 2 +- nc_test/tst_addvar.c | 11 +++ nc_test/tst_atts3.c | 2 +- nc_test/tst_big_rvar.c | 2 +- nc_test/tst_big_var.c | 2 +- nc_test/tst_big_var2.c | 2 +- nc_test/tst_big_var6.c | 2 +- nc_test/tst_cdf5_begin.c | 14 ++- nc_test/tst_cdf5format.c | 22 ++--- nc_test/tst_def_var_fill.c | 3 +- nc_test/tst_default_format.c | 11 +++ nc_test/tst_default_format_pnetcdf.c | 11 +++ nc_test/tst_diskless.c | 2 +- nc_test/tst_diskless2.c | 11 +++ nc_test/tst_diskless3.c | 2 +- nc_test/tst_diskless4.c | 2 +- nc_test/tst_diskless5.c | 11 +++ nc_test/tst_diskless6.c | 13 ++- nc_test/tst_err_enddef.c | 11 +++ nc_test/tst_formats.c | 6 +- nc_test/tst_formatx_pnetcdf.c | 4 +- nc_test/tst_global_fillval.c | 2 +- nc_test/tst_inmemory.c | 2 +- nc_test/tst_inq_type.c | 3 +- nc_test/tst_large.c | 2 +- nc_test/tst_large_cdf5.c | 2 +- nc_test/tst_max_var_dims.c | 12 ++- nc_test/tst_meta.c | 2 +- nc_test/tst_misc.c | 10 +- nc_test/tst_names.c | 2 +- nc_test/tst_nofill.c | 2 +- nc_test/tst_nofill2.c | 2 +- nc_test/tst_nofill3.c | 2 +- nc_test/tst_norm.c | 2 +- nc_test/tst_open_cdf5.c | 11 +++ nc_test/tst_open_mem.c | 17 +++- nc_test/tst_parallel2.c | 47 ++++++---- nc_test/tst_pnetcdf.c | 2 +- nc_test/tst_small.c | 2 +- nc_test/tst_utf8_phrases.c | 2 +- nc_test/tst_utf8_validate.c | 132 +++++++++++++-------------- nc_test/util.c | 2 +- 62 files changed, 363 insertions(+), 220 deletions(-) diff --git a/libsrc4/CMakeLists.txt b/libsrc4/CMakeLists.txt index f54d652c3e..59aabbb45a 100644 --- a/libsrc4/CMakeLists.txt +++ b/libsrc4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Process these files with m4. SET(libsrc4_SOURCES nc4dispatch.c nc4attr.c nc4dim.c nc4grp.c nc4type.c nc4var.c ncfunc.c nc4internal.c ncindex.c ) diff --git a/libsrc4/Makefile.am b/libsrc4/Makefile.am index 0c59d6ae8e..1a3d6c842f 100644 --- a/libsrc4/Makefile.am +++ b/libsrc4/Makefile.am @@ -1,4 +1,4 @@ -# This is part of Unidata's netCDF package. Copyright 2005-2011, see +# This is part of Unidata's netCDF package. Copyright 2005-2018, see # the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. @@ -15,8 +15,3 @@ nc4internal.c nc4type.c nc4var.c ncfunc.c error4.c nc4printer.c \ ncindex.c EXTRA_DIST = CMakeLists.txt - - - - - diff --git a/libsrc4/error4.c b/libsrc4/error4.c index bdd2345a55..7db7f4b776 100644 --- a/libsrc4/error4.c +++ b/libsrc4/error4.c @@ -1,4 +1,6 @@ -/* Copyright 2003-2018, University Corporation for Atmospheric +/*! \file + +Copyright 2003-2018, University Corporation for Atmospheric Research. See netcdf-4/docs/COPYRIGHT file for copying and redistribution conditions. */ /** @@ -8,7 +10,7 @@ redistribution conditions. */ * * This file contains functions relating to logging errors. Also it * contains the functions nc_malloc, nc_calloc, and nc_free. - * + * * @author Ed Hartnett */ @@ -28,7 +30,7 @@ extern int nc_log_level; /* This function prints out a message, if the severity of the message is lower than the global nc_log_level. To use it, do something like this: - + nc_log(0, "this computer will explode in %d seconds", i); After the first arg (the severity), use the rest like a normal @@ -36,7 +38,7 @@ extern int nc_log_level; This function is heavily based on the function in section 15.5 of the C FAQ. */ -void +void nc_log(int severity, const char *fmt, ...) { va_list argp; @@ -58,17 +60,16 @@ nc_log(int severity, const char *fmt, ...) va_start(argp, fmt); vfprintf(stderr, fmt, argp); va_end(argp); - + /* Put on a final linefeed. */ fprintf(stderr, "\n"); fflush(stderr); } -void +void nc_log_hdf5(void) { H5Eprint(NULL); } #endif /* ifdef LOGGING */ - diff --git a/libsrc4/nc4printer.c b/libsrc4/nc4printer.c index 0596b0f0b9..641eff92bc 100644 --- a/libsrc4/nc4printer.c +++ b/libsrc4/nc4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -17,7 +17,7 @@ create other tools. #include "ncbytes.h" #include "nclist.h" -#undef DEBUG +#undef DEBUG #define BUFSIZE 4096 @@ -148,7 +148,7 @@ freeNC4Printer(NC4printer* out) { int i; - if(out == NULL) return; + if(out == NULL) return; #ifdef DEBUG fprintf(stderr,"free: |allnodes=%ld\n",nclistlength(out->allnodes)); @@ -206,7 +206,7 @@ printNode(NC4printer* out, NCID* node, int depth) switch (node->sort) { case GROUP: - /* Get group name */ + /* Get group name */ if((ret=nc_inq_grpname(node->id,name))) FAIL; SETNAME(node,name); /* get group counts */ @@ -304,7 +304,7 @@ printNode(NC4printer* out, NCID* node, int depth) printXMLAttributeName(out, "name", node->name); printXMLAttributeSize(out, "size", node->size); CAT("/>"); - break; + break; case NC_ENUM: if((ret=nc_inq_enum(GROUPOF(node),node->id,NULL,NULL,NULL,&count))) FAIL; INDENT(depth); CAT("base = findType(out,base); id->size = count; - printAttribute(out,id,depth); + printAttribute(out,id,depth); CAT("\n"); } depth--; @@ -636,7 +636,7 @@ makeFQN(NCID* id, NCbytes* path) fqnWalk(g,path); ncbytesappend(path,'/'); if(id->sort != GROUP) - ncbytescat(path,id->name); + ncbytescat(path,id->name); ncbytesnull(path); } @@ -646,7 +646,7 @@ fqnWalk(NCID* grp, NCbytes* path) if(grp->id != 0) { NCID* parent = grp->parent; fqnWalk(parent,path); - ncbytesappend(path,'/'); + ncbytesappend(path,'/'); ncbytescat(path,parent->name); } } @@ -738,7 +738,7 @@ printString(NCbytes* out, const char* s, int quotes) if(c == '\\') ncbytescat(out,"\\\\"); else if(c == '"') ncbytescat(out,"\\\""); else ncbytesappend(out,c); - } + } if(quotes) ncbytesappend(out,'"'); ncbytesnull(out); } @@ -783,4 +783,3 @@ readAttributeValues(NCID* attr, void** valuesp) if(valuesp) *valuesp = values; return ret; } - diff --git a/libsrc4/nc4var.c b/libsrc4/nc4var.c index 6d242c4443..d2b8c357c9 100644 --- a/libsrc4/nc4var.c +++ b/libsrc4/nc4var.c @@ -1,4 +1,4 @@ -/* Copyright 2003-2006, University Corporation for Atmospheric +/* Copyright 2003-2018, University Corporation for Atmospheric * Research. See COPYRIGHT file for copying and redistribution * conditions.*/ /** diff --git a/libsrc4/ncfunc.c b/libsrc4/ncfunc.c index 8cd0d58c04..714867d9ce 100644 --- a/libsrc4/ncfunc.c +++ b/libsrc4/ncfunc.c @@ -1,7 +1,7 @@ /** * @internal * - * Copyright 2003, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research. See netcdf-4/docs/COPYRIGHT file for copying and * redistribution conditions. * @@ -82,7 +82,7 @@ NC4_inq_format_extended(int ncid, int *formatp, int *modep) if(modep) *modep = nc->mode|NC_NETCDF4; - if (formatp) + if (formatp) *formatp = NC_FORMATX_NC_HDF5; return NC_NOERR; diff --git a/libsrc4/ncindex.c b/libsrc4/ncindex.c index 54f27be424..e76b005f4a 100644 --- a/libsrc4/ncindex.c +++ b/libsrc4/ncindex.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -176,7 +176,7 @@ also recompute their hashkey. /* Return 1 if ok, 0 otherwise.*/ int ncindexrebuild(NCindex* index) -{ +{ #ifndef NCNOHASH size_t i; size_t size = nclistlength(index->list); @@ -196,7 +196,7 @@ ncindexrebuild(NCindex* index) } #endif if(contents != NULL) free(contents); - return 1; + return 1; } /* Free a list map */ @@ -206,7 +206,7 @@ ncindexfree(NCindex* index) if(index == NULL) return 1; nclistfree(index->list); NC_hashmapfree(index->map); - free(index); + free(index); return 1; } @@ -235,7 +235,7 @@ keystr(NC_hentry* e) { if(e->keysize < sizeof(uintptr_t)) return (const char*)(&e->key); - else + else return (const char*)(e->key); } #endif @@ -253,7 +253,7 @@ ncindexverify(NCindex* lm, int dump) if(lm == NULL) { fprintf(stderr,"index: \n"); return 1; - } + } if(dump) { fprintf(stderr,"-------------------------\n"); #ifndef NCNOHASH diff --git a/libsrcp/CMakeLists.txt b/libsrcp/CMakeLists.txt index 7d8ab9cf37..adf1d34136 100644 --- a/libsrcp/CMakeLists.txt +++ b/libsrcp/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(libsrcp_SOURCES ncpdispatch.c) add_library(netcdfp OBJECT ${libsrcp_SOURCES}) diff --git a/libsrcp/Makefile.am b/libsrcp/Makefile.am index 0747f35e9c..58f3d8e10d 100644 --- a/libsrcp/Makefile.am +++ b/libsrcp/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. @@ -16,4 +16,4 @@ libnetcdfp_la_SOURCES = ncpdispatch.c noinst_LTLIBRARIES = libnetcdfp.la -EXTRA_DIST = CMakeLists.txt +EXTRA_DIST = CMakeLists.txt diff --git a/libsrcp/ncpdispatch.c b/libsrcp/ncpdispatch.c index 0eb490e609..765a628a5f 100644 --- a/libsrcp/ncpdispatch.c +++ b/libsrcp/ncpdispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/nc_test/CMakeLists.txt b/nc_test/CMakeLists.txt index 0e5c94d1c4..4f75ed6030 100644 --- a/nc_test/CMakeLists.txt +++ b/nc_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + message(STATUS "CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}") message(STATUS "CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}") message(STATUS "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/nc_test/Makefile.am b/nc_test/Makefile.am index 23e16db048..cb84766495 100644 --- a/nc_test/Makefile.am +++ b/nc_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nc_test program, which tests the # netCDF-3 API for all formats. diff --git a/nc_test/error.c b/nc_test/error.c index 2d502ca0e5..3111a31f85 100644 --- a/nc_test/error.c +++ b/nc_test/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: error.c,v 1.7 2007/05/15 01:36:57 ed Exp $ *********************************************************************/ diff --git a/nc_test/error.h b/nc_test/error.h index f8ccf3b062..6e6a10edc8 100644 --- a/nc_test/error.h +++ b/nc_test/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nc_test/large_files.c b/nc_test/large_files.c index a723c81c1b..114fa3d2fd 100644 --- a/nc_test/large_files.c +++ b/nc_test/large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/nc_test.c b/nc_test/nc_test.c index 9e5490e82f..c421122b4a 100644 --- a/nc_test/nc_test.c +++ b/nc_test/nc_test.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996-2005, UCAR/Unidata + * Copyright 1996-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * $Id: nc_test.c 2796 2014-10-28 03:40:29Z wkliao $ *********************************************************************/ diff --git a/nc_test/quick_large_files.c b/nc_test/quick_large_files.c index 913916c042..04d7eac240 100644 --- a/nc_test/quick_large_files.c +++ b/nc_test/quick_large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test/t_nc.c b/nc_test/t_nc.c index 2b6a78f9e9..7fdc285208 100644 --- a/nc_test/t_nc.c +++ b/nc_test/t_nc.c @@ -1,4 +1,4 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. diff --git a/nc_test/t_nc_p5.c b/nc_test/t_nc_p5.c index 728783f0b0..82ce46e72e 100644 --- a/nc_test/t_nc_p5.c +++ b/nc_test/t_nc_p5.c @@ -1,14 +1,14 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. Program to create a cdf, exercise all cdf functions. Creates cdf, stuff it full of numbers, closes it. Then reopens it, and checks for consistency. Leaves the file around afterwards. - + Based on a program to test the nasa look-alike program, so not the most appropriate test. See ../nctest for a complete spec test. - + $Id: t_nc.c 2792 2014-10-27 06:02:59Z wkliao $ */ #define REDEF @@ -199,32 +199,32 @@ createtestvars(int id, const struct tcdfvar *testvars, size_t count) { assert(nc_def_var(id, vp->mnem, vp->type, vp->ndims, vp->dims, &varid) - == NC_NOERR ); + == NC_NOERR ); assert( nc_put_att_text(id,ii,reqattr[0],strlen(vp->units), vp->units) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[1],NC_DOUBLE,1, &vp->validmin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[2],NC_DOUBLE,1, &vp->validmax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[3],NC_DOUBLE,1, &vp->scalemin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[4],NC_DOUBLE,1, &vp->scalemax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_text(id,ii,reqattr[5],strlen(vp->fieldnam), vp->fieldnam) - == NC_NOERR); + == NC_NOERR); } } @@ -256,7 +256,7 @@ fill_seq(int id) { size_t *cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; } sizes[0] = NUM_RECS; @@ -277,7 +277,7 @@ check_fill_seq(int id) sizes[0] = NUM_RECS; cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; /* ripple counter */ cc = vindices; @@ -288,7 +288,7 @@ check_fill_seq(int id) { if (mm == &sizes[num_dims - 1]) { - if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) + if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) goto bad_ret; /* val = (float) ii; */ /* if(val != got.fl[0]) */ @@ -366,7 +366,7 @@ main(int argc, char *argv[]) fprintf(stderr,"Error %s in file %s at line %d\n",nc_strerror(ret),__FILE__,__LINE__); exit(ret); } - + assert( nc_put_att_text(id, NC_GLOBAL, "TITLE", 12, "another name") == NC_NOERR); assert( nc_get_att_text(id, NC_GLOBAL, @@ -383,7 +383,7 @@ main(int argc, char *argv[]) createtestdims(id, NUM_DIMS, sizes, dim_names); testdims(id, NUM_DIMS, sizes, dim_names); - createtestvars(id, testvars, NUM_TESTVARS); + createtestvars(id, testvars, NUM_TESTVARS); { int ifill = -1; double dfill = -9999; @@ -395,7 +395,7 @@ main(int argc, char *argv[]) #ifdef REDEF assert( nc__enddef(id, 0, align, 0, 2*align) == NC_NOERR ); - assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) + assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) == NC_NOERR ); fill_seq(id); assert( nc_redef(id) == NC_NOERR ); @@ -473,7 +473,7 @@ main(int argc, char *argv[]) /* (void) printf("reopen id = %d for filename %s\n", */ /* id, fname); */ - /* NC */ + /* NC */ /* (void) printf("NC "); */ assert( nc_inq(id, &(cdesc->num_dims), &(cdesc->num_vars), &(cdesc->num_attrs), &(cdesc->xtendim) ) == NC_NOERR); @@ -481,7 +481,7 @@ main(int argc, char *argv[]) assert(cdesc->num_attrs == 1); assert(cdesc->num_vars == NUM_TESTVARS); /* (void) printf("done\n"); */ - + /* GATTR */ /* (void) printf("GATTR "); */ @@ -498,7 +498,7 @@ main(int argc, char *argv[]) /* (void) printf("VAR "); */ assert( cdesc->num_vars == NUM_TESTVARS ); - for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) + for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) { int jj; assert( nc_inq_var(id, ii, @@ -532,7 +532,7 @@ main(int argc, char *argv[]) /* VATTR */ /* (void) printf("VATTR\n"); */ - for(jj=0; jjnum_attrs; jj++ ) + for(jj=0; jjnum_attrs; jj++ ) { assert( nc_inq_attname(id, ii, jj, adesc->mnem) == NC_NOERR); if( strcmp(adesc->mnem, reqattr[jj]) != 0 ) @@ -547,7 +547,7 @@ main(int argc, char *argv[]) != -1) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->units) ); - assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->units, buf) == 0); } @@ -596,7 +596,7 @@ main(int argc, char *argv[]) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->fieldnam) ); - assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->fieldnam, buf) == 0); } diff --git a/nc_test/testnc3perf.c b/nc_test/testnc3perf.c index 549f6203fa..5a51a50626 100644 --- a/nc_test/testnc3perf.c +++ b/nc_test/testnc3perf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1989, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/nctime.c,v 1.12 1996/04/30 17:56:58 davis Exp $ *********************************************************************/ @@ -66,7 +66,7 @@ static int DEFAULTDIMS[NDIMS] = {10, 20, 30, 40}; /* * Fill typed array element with specified value, that is - * + * * v[ii] = val; */ static void @@ -111,7 +111,7 @@ val_stuff(type, v, ii, val) /* v[ii] = val */ * * (v[ii] != val) * - * returns 0 if equal, 1 if not equal + * returns 0 if equal, 1 if not equal */ static int @@ -170,7 +170,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ clock_t TMus, TMsy; /* user and system time in clock ticks */ \ float TMelapsed; /* elapsed time in seconds */ \ struct tms TMru; - + #define TIMING_START \ TMrepeats = 1; \ do { /* loop enough times for at least 0.1 second elapsed time */ \ @@ -179,7 +179,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ TMus = TMru.tms_utime; \ TMsy = TMru.tms_stime; \ for(TMreps=0;TMreps < TMrepeats;TMreps++) { - + #define TIMING_END \ } \ times(&TMru); \ @@ -231,7 +231,7 @@ test_slabs(ncid, sizes) dims[idim].size = sizes[idim]; dims[idim].name = dnames[idim]; } - + /* back in define mode OK, now add dimensions */ dimids[0] = ncdimdef(ncid, dims[0].name, NC_UNLIMITED); @@ -263,7 +263,7 @@ test_slabs(ncid, sizes) if (ncendef (ncid) == -1) { ncclose(ncid); return; } - + printf("Note: first ncvarput writes fill values for all variables.\n"); for (iv = 0; iv < NVARS; iv++) { /* test each type of variable */ @@ -291,7 +291,7 @@ test_slabs(ncid, sizes) } } } - + for (idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; @@ -319,19 +319,19 @@ test_slabs(ncid, sizes) edge[idim] = 1; point[idim] = corner[idim]; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); - + TIMING_START ; if (ncvarget(ncid, varid[iv], corner, edge, (void *) v) == -1) return; TIMING_END ; - + /* if (v[0] != VF(point)) */ if (val_diff(va[iv].type, v, 0, VF(point))) fprintf(stderr,"ncvarget got wrong value for point"); - + /* get a vector in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=0; jdim < NDIMS; jdim++) { @@ -370,7 +370,7 @@ test_slabs(ncid, sizes) corner[jdim] = 0; edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -393,7 +393,7 @@ test_slabs(ncid, sizes) } } } - + /* get a cube in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=idim+1; jdim < NDIMS; jdim++) { @@ -409,7 +409,7 @@ test_slabs(ncid, sizes) edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; edge[kdim] = dims[kdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -439,13 +439,13 @@ test_slabs(ncid, sizes) } } } - + /* get one 4-D slab of data */ for(idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); diff --git a/nc_test/tests.h b/nc_test/tests.h index 2e24295a5e..0eba3b8e4c 100644 --- a/nc_test/tests.h +++ b/nc_test/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: tests.h 2785 2014-10-26 05:21:20Z wkliao $ *********************************************************************/ diff --git a/nc_test/tst_addvar.c b/nc_test/tst_addvar.c index f05a8af876..d57bb0ba6c 100644 --- a/nc_test/tst_addvar.c +++ b/nc_test/tst_addvar.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This program adds two new variables to an existing netCDF file. * It is used to test if netCDF can correctly calculate the file offsets * for the two new variables, in particular for files that align the diff --git a/nc_test/tst_atts3.c b/nc_test/tst_atts3.c index fcdcc691ae..bcad82c07b 100644 --- a/nc_test/tst_atts3.c +++ b/nc_test/tst_atts3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test/tst_big_rvar.c b/nc_test/tst_big_rvar.c index 8a595474c5..28c27097b8 100644 --- a/nc_test/tst_big_rvar.c +++ b/nc_test/tst_big_rvar.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests a large file bug on 32-bit platforms in versions diff --git a/nc_test/tst_big_var.c b/nc_test/tst_big_var.c index f66080c1b4..b3b5bd9945 100644 --- a/nc_test/tst_big_var.c +++ b/nc_test/tst_big_var.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_big_var2.c b/nc_test/tst_big_var2.c index 4f722ca745..362efa5574 100644 --- a/nc_test/tst_big_var2.c +++ b/nc_test/tst_big_var2.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_big_var6.c b/nc_test/tst_big_var6.c index 5f4fad7e05..04f6e9d7a7 100644 --- a/nc_test/tst_big_var6.c +++ b/nc_test/tst_big_var6.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_cdf5_begin.c b/nc_test/tst_cdf5_begin.c index d704d9aa0a..e468f60462 100644 --- a/nc_test/tst_cdf5_begin.c +++ b/nc_test/tst_cdf5_begin.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -18,7 +29,7 @@ int main(int argc, char *argv[]) int i, err, nerrs=0, ncid, dimid[2], varid[2]; short buf[10]; size_t start, count; - + err = nc_create(FILE_NAME, NC_CLOBBER|NC_64BIT_DATA, &ncid); ERR; err = nc_def_dim(ncid, "dim0", NC_MAX_UINT, &dimid[0]); ERR err = nc_def_dim(ncid, "dim1", 10, &dimid[1]); ERR @@ -53,4 +64,3 @@ int main(int argc, char *argv[]) return (nerrs > 0); } - diff --git a/nc_test/tst_cdf5format.c b/nc_test/tst_cdf5format.c index 4889357249..e5a2008659 100644 --- a/nc_test/tst_cdf5format.c +++ b/nc_test/tst_cdf5format.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -23,7 +23,7 @@ write2(int ncid, int parallel) int dimid[NDIM2]; char str[NC_MAX_NAME + 1]; int varid[NVARS]; - + /* define dimension */ if (nc_def_dim(ncid, "Y", NC_UNLIMITED, &dimid[0])) ERR; if (nc_def_dim(ncid, "X", NX, &dimid[1])) ERR; @@ -42,16 +42,16 @@ write2(int ncid, int parallel) if (nc_def_var(ncid, str, NC_INT, 2, dimid, &varid[i])) ERR; } } - + if (nc_enddef(ncid)) ERR; - + /* write all variables */ for (int i = 0; i < NVARS; i++) { size_t start[NDIM2] = {0, 0}; size_t count[NDIM2]; int buf[NX]; - + /* Initialize some data. */ for (int j = 0; j < NX; j++) buf[j] = i * 10 + j; @@ -80,7 +80,7 @@ extend(int ncid) char str[32]; if (nc_redef(ncid)) ERR; - + /* add attributes to make header grow */ for (i = 0; i < NVARS; i++) { @@ -98,7 +98,7 @@ read2(int ncid) for (int i = 0; i < NVARS; i++) { int buf[NX]; - size_t start[2] = {0, 0}, count[2]; + size_t start[2] = {0, 0}, count[2]; if (i % 2) { @@ -109,7 +109,7 @@ read2(int ncid) count[0] = 1; count[1] = NX; } - if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; + if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; for (int j = 0; j < NX; j++) { if (buf[j] != i * 10 + j) @@ -142,12 +142,12 @@ int main(int argc, char* argv[]) if (nc_create_par(FILENAME, cmode, comm, info, &ncid)) ERR; if (write2(ncid, 1)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with pnetCDF (parallel) and add var attributes. */ if (nc_open_par(FILENAME, NC_WRITE, comm, info, &ncid)) ERR; if (extend(ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open with classic and check. */ if (nc_open(FILENAME, 0, &ncid)) ERR; if (read2(ncid)) ERR; @@ -162,7 +162,7 @@ int main(int argc, char* argv[]) if (nc_create(FILENAME, cmode, &ncid)) ERR; if (write2(ncid, 0)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with CDF5 and add some atts. */ if (nc_open(FILENAME, NC_WRITE, &ncid)) ERR; if (extend(ncid)) ERR; diff --git a/nc_test/tst_def_var_fill.c b/nc_test/tst_def_var_fill.c index affd3156e9..ed3f182fa7 100644 --- a/nc_test/tst_def_var_fill.c +++ b/nc_test/tst_def_var_fill.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - * Copyright 2005 University Corporation for Atmospheric Research/Unidata + * Copyright 2018 University Corporation for Atmospheric Research/Unidata * See COPYRIGHT file for conditions of use. * * Test per-variable fill mode for classic file formats. @@ -143,4 +143,3 @@ int main(int argc, char** argv) { return (nerrs > 0); } - diff --git a/nc_test/tst_default_format.c b/nc_test/tst_default_format.c index f1f4e06838..18de62c61b 100644 --- a/nc_test/tst_default_format.c +++ b/nc_test/tst_default_format.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_default_format_pnetcdf.c b/nc_test/tst_default_format_pnetcdf.c index 2e7a4fc3da..a7fa31c0f8 100644 --- a/nc_test/tst_default_format_pnetcdf.c +++ b/nc_test/tst_default_format_pnetcdf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_diskless.c b/nc_test/tst_diskless.c index 73cec34564..5c48769e38 100644 --- a/nc_test/tst_diskless.c +++ b/nc_test/tst_diskless.c @@ -1,7 +1,7 @@ /** \file \internal Basic diskless API tests. -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test/tst_diskless2.c b/nc_test/tst_diskless2.c index 14125e7729..38f30fedf3 100644 --- a/nc_test/tst_diskless2.c +++ b/nc_test/tst_diskless2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless3.c b/nc_test/tst_diskless3.c index 442e823297..d4b75e12a4 100644 --- a/nc_test/tst_diskless3.c +++ b/nc_test/tst_diskless3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_diskless4.c b/nc_test/tst_diskless4.c index ee0e9f6796..be667fe745 100644 --- a/nc_test/tst_diskless4.c +++ b/nc_test/tst_diskless4.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_diskless5.c b/nc_test/tst_diskless5.c index ae4639656b..2148f5741a 100644 --- a/nc_test/tst_diskless5.c +++ b/nc_test/tst_diskless5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless6.c b/nc_test/tst_diskless6.c index e2c69cf1bb..d968d71b14 100644 --- a/nc_test/tst_diskless6.c +++ b/nc_test/tst_diskless6.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -215,7 +226,7 @@ main() /* Of the above modified files, re-read and modify but do not re-persist */ /* Test open + modify + rdonly; requires NC_DISKLESS*/ #if 0 - /* Fails with hdf5, file must be writeable even if not persisted */ + /* Fails with hdf5, file must be writeable even if not persisted */ changeaccess(RDONLY); /* prevent re-persist */ #endif printf("*** Testopen modify + rdonly\n"); fflush(stdout); diff --git a/nc_test/tst_err_enddef.c b/nc_test/tst_err_enddef.c index 7d0f9f6cd2..e6a7528394 100644 --- a/nc_test/tst_err_enddef.c +++ b/nc_test/tst_err_enddef.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include diff --git a/nc_test/tst_formats.c b/nc_test/tst_formats.c index 814904a5a6..025f10442d 100644 --- a/nc_test/tst_formats.c +++ b/nc_test/tst_formats.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -58,12 +58,12 @@ check_inq_format(int ncid, int expected_format, int expected_extended_format, in int format; int extended_format; int mode; - + if (nc_inq_format(ncid + 66000, NULL) != NC_EBADID) ERR; if (nc_inq_format(ncid, NULL)) ERR; if (nc_inq_format(ncid, &format)) ERR; if (format != expected_format) { - printf("format %d expected_format %d\n", format, expected_format); + printf("format %d expected_format %d\n", format, expected_format); ERR; } if (nc_inq_format_extended(ncid + 66000, &extended_format, &mode) != NC_EBADID) ERR; diff --git a/nc_test/tst_formatx_pnetcdf.c b/nc_test/tst_formatx_pnetcdf.c index 2cfbf5e83e..d8275daf38 100644 --- a/nc_test/tst_formatx_pnetcdf.c +++ b/nc_test/tst_formatx_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -27,7 +27,7 @@ int main(int argc, char* argv[]) int err = 0; int ecode = 0; int ncid; - int cmode, format; + int cmode, format; int nprocs, rank; MPI_Comm comm=MPI_COMM_SELF; MPI_Info info=MPI_INFO_NULL; diff --git a/nc_test/tst_global_fillval.c b/nc_test/tst_global_fillval.c index 4812d3f72a..8db5eb0ce3 100644 --- a/nc_test/tst_global_fillval.c +++ b/nc_test/tst_global_fillval.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_inmemory.c b/nc_test/tst_inmemory.c index af3f1b6e10..c12cb94dc9 100644 --- a/nc_test/tst_inmemory.c +++ b/nc_test/tst_inmemory.c @@ -1,7 +1,7 @@ /** \file \internal Basic NC_INMEMORY API tests both for netcdf-3 and netcdf-4 -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test/tst_inq_type.c b/nc_test/tst_inq_type.c index 8bd0233013..290c14302c 100644 --- a/nc_test/tst_inq_type.c +++ b/nc_test/tst_inq_type.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2016 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. @@ -184,4 +184,3 @@ int main(int argc, char **argv) { FINAL_RESULTS; } - diff --git a/nc_test/tst_large.c b/nc_test/tst_large.c index 92d12ac417..7cc9f15f24 100644 --- a/nc_test/tst_large.c +++ b/nc_test/tst_large.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_large_cdf5.c b/nc_test/tst_large_cdf5.c index ef8681f0b4..106d4f0024 100644 --- a/nc_test/tst_large_cdf5.c +++ b/nc_test/tst_large_cdf5.c @@ -1,5 +1,5 @@ /* - Copyright 2017, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_max_var_dims.c b/nc_test/tst_max_var_dims.c index 3157630c30..aec5c60673 100644 --- a/nc_test/tst_max_var_dims.c +++ b/nc_test/tst_max_var_dims.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include @@ -31,4 +42,3 @@ int main(int argc, char *argv[]) err = nc_close(ncid); ERR return (nerrs > 0); } - diff --git a/nc_test/tst_meta.c b/nc_test/tst_meta.c index 7653953a31..c3c68bb2e1 100644 --- a/nc_test/tst_meta.c +++ b/nc_test/tst_meta.c @@ -1,5 +1,5 @@ /* - Copyright 20014, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_misc.c b/nc_test/tst_misc.c index 536bec9a2e..097d0357cc 100644 --- a/nc_test/tst_misc.c +++ b/nc_test/tst_misc.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. @@ -61,20 +61,20 @@ main(int argc, char **argv) } SUMMARIZE_ERR; -#ifndef USE_NETCDF4 +#ifndef USE_NETCDF4 printf("*** Trying to create netCDF-4 file without netCDF-4..."); { int ncid; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid) != NC_ENOTBUILT) ERR; } SUMMARIZE_ERR; #endif /* USE_NETCDF4 undefined */ - + #ifdef TEST_PNETCDF MPI_Finalize(); #endif - + FINAL_RESULTS; } diff --git a/nc_test/tst_names.c b/nc_test/tst_names.c index 878ae32d90..a7b938c598 100644 --- a/nc_test/tst_names.c +++ b/nc_test/tst_names.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests rejection of bad names for diff --git a/nc_test/tst_nofill.c b/nc_test/tst_nofill.c index 684192e2fb..770821bd38 100644 --- a/nc_test/tst_nofill.c +++ b/nc_test/tst_nofill.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill2.c b/nc_test/tst_nofill2.c index e8187f235e..9d85619012 100644 --- a/nc_test/tst_nofill2.c +++ b/nc_test/tst_nofill2.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill3.c b/nc_test/tst_nofill3.c index d9dbbcfdb3..e81b3e8f15 100644 --- a/nc_test/tst_nofill3.c +++ b/nc_test/tst_nofill3.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_norm.c b/nc_test/tst_norm.c index b7918662a8..f16b0e5eed 100644 --- a/nc_test/tst_norm.c +++ b/nc_test/tst_norm.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests NFC normalization of diff --git a/nc_test/tst_open_cdf5.c b/nc_test/tst_open_cdf5.c index 1d5e9b5f69..be8a977aad 100644 --- a/nc_test/tst_open_cdf5.c +++ b/nc_test/tst_open_cdf5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_open_mem.c b/nc_test/tst_open_mem.c index f25a7003fa..d48106d31e 100644 --- a/nc_test/tst_open_mem.c +++ b/nc_test/tst_open_mem.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -49,19 +60,19 @@ readfile(const char* path, NC_memio* memio) size_t actual; actual = fread(p,1,count,f); if(actual == 0 || ferror(f)) - {status = NC_EIO; goto done;} + {status = NC_EIO; goto done;} count -= actual; p += actual; } if(memio) { memio->size = (size_t)filesize; memio->memory = memory; - } + } done: if(status != NC_NOERR && memory != NULL) free(memory); if(f != NULL) fclose(f); - return status; + return status; } int diff --git a/nc_test/tst_parallel2.c b/nc_test/tst_parallel2.c index cfe7d1ed9d..a9c52f4af8 100644 --- a/nc_test/tst_parallel2.c +++ b/nc_test/tst_parallel2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a benchmarking program for netCDF-4 parallel I/O. */ /* Defining USE_MPE causes the MPE trace library to be used (and you @@ -30,7 +41,7 @@ int main(int argc, char **argv) { /* MPI stuff. */ - int mpi_namelen; + int mpi_namelen; char mpi_name[MPI_MAX_PROCESSOR_NAME]; int mpi_size, mpi_rank; MPI_Comm comm = MPI_COMM_WORLD; @@ -43,7 +54,7 @@ main(int argc, char **argv) size_t count[NDIMS] = {1, DIMSIZE, DIMSIZE}; int data[DIMSIZE * DIMSIZE], data_in[DIMSIZE * DIMSIZE]; int j, i; - + char file_name[NC_MAX_NAME + 1]; int ndims_in, nvars_in, natts_in, unlimdimid_in; @@ -63,23 +74,23 @@ main(int argc, char **argv) /* Must be able to evenly divide my slabs between processors. */ if (NUM_SLABS % mpi_size != 0) { - if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", + if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", NUM_SLABS, mpi_size); ERR; } #ifdef USE_MPE MPE_Init_log(); - s_init = MPE_Log_get_event_number(); - e_init = MPE_Log_get_event_number(); - s_define = MPE_Log_get_event_number(); - e_define = MPE_Log_get_event_number(); - s_write = MPE_Log_get_event_number(); - e_write = MPE_Log_get_event_number(); - s_close = MPE_Log_get_event_number(); - e_close = MPE_Log_get_event_number(); - s_open = MPE_Log_get_event_number(); - e_open = MPE_Log_get_event_number(); + s_init = MPE_Log_get_event_number(); + e_init = MPE_Log_get_event_number(); + s_define = MPE_Log_get_event_number(); + e_define = MPE_Log_get_event_number(); + s_write = MPE_Log_get_event_number(); + e_write = MPE_Log_get_event_number(); + s_close = MPE_Log_get_event_number(); + e_close = MPE_Log_get_event_number(); + s_open = MPE_Log_get_event_number(); + e_open = MPE_Log_get_event_number(); MPE_Describe_state(s_init, e_init, "Init", "red"); MPE_Describe_state(s_define, e_define, "Define", "yellow"); MPE_Describe_state(s_write, e_write, "Write", "green"); @@ -176,7 +187,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ @@ -187,7 +198,7 @@ main(int argc, char **argv) #endif if (nc_open_par(file_name, NC_NOWRITE, comm, info, &ncid)) ERR; if (nc_inq(ncid, &ndims_in, &nvars_in, &natts_in, &unlimdimid_in)) ERR; - if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || + if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || unlimdimid_in != -1) ERR; /* Read all the slabs this process is responsible for. */ @@ -201,10 +212,10 @@ main(int argc, char **argv) /* Read one slab of data. */ if (nc_get_vara_int(ncid, varid, start, count, data_in)) ERR; - + /* Check data. */ for (j = 0; j < DIMSIZE * DIMSIZE; j++) - if (data_in[j] != mpi_rank) + if (data_in[j] != mpi_rank) { ERR; break; @@ -221,7 +232,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ diff --git a/nc_test/tst_pnetcdf.c b/nc_test/tst_pnetcdf.c index a82a2bb949..1766dad011 100644 --- a/nc_test/tst_pnetcdf.c +++ b/nc_test/tst_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, diff --git a/nc_test/tst_small.c b/nc_test/tst_small.c index 040f7e2164..ab97f075c8 100644 --- a/nc_test/tst_small.c +++ b/nc_test/tst_small.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_utf8_phrases.c b/nc_test/tst_utf8_phrases.c index 29ec68cc7e..468bd9138a 100644 --- a/nc_test/tst_utf8_phrases.c +++ b/nc_test/tst_utf8_phrases.c @@ -1,6 +1,6 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/nc_test/tst_utf8_validate.c b/nc_test/tst_utf8_validate.c index 4d7fa7b840..06de615e1f 100644 --- a/nc_test/tst_utf8_validate.c +++ b/nc_test/tst_utf8_validate.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ @@ -99,16 +99,16 @@ static const struct Test utf8boundary[] = { {0,"2.1.2", "2 bytes (U-00000080)", "€"}, {0,"2.1.3", "3 bytes (U-00000800)", "ࠀ"}, {0,"2.1.4", "4 bytes (U-00010000)", "𐀀"}, -{1,"2.1.5", "5 bytes (U-00200000)", ""}, -{1,"2.1.6", "6 bytes (U-04000000)", ""}, +{1,"2.1.5", "5 bytes (U-00200000)", "�����"}, +{1,"2.1.6", "6 bytes (U-04000000)", "������"}, /*2.2 Last possible sequence of a certain length*/ {0,"2.2.1", "1 byte (U-0000007F)", ""}, {0,"2.2.2", "2 bytes (U-000007FF)", "߿"}, {0,"2.2.3", "3 bytes (U-0000FFFF)", "￿"}, /*See 5.3.2 */ -{1,"2.2.4", "4 bytes (U-001FFFFF)", ""}, -{1,"2.2.5", "5 bytes (U-03FFFFFF)", ""}, -{1,"2.2.6", "6 bytes (U-7FFFFFFF)", ""}, +{1,"2.2.4", "4 bytes (U-001FFFFF)", "����"}, +{1,"2.2.5", "5 bytes (U-03FFFFFF)", "�����"}, +{1,"2.2.6", "6 bytes (U-7FFFFFFF)", "������"}, /*2.3 Other boundary conditions*/ @@ -116,7 +116,7 @@ static const struct Test utf8boundary[] = { {0,"2.3.2", "U-0000E000 = ee 80 80", ""}, {0,"2.3.3", "U-0000FFFD = ef bf bd", "�"}, {0,"2.3.4", "U-0010FFFF = f4 8f bf bf", "􏿿"}, -{1,"2.3.5", "U-00110000 = f4 90 80 80", ""}, +{1,"2.3.5", "U-00110000 = f4 90 80 80", "����"}, NULLTEST }; @@ -128,17 +128,17 @@ static const struct Test utf8bad[] = { Each unexpected continuation byte should be separately signalled as a malformed sequence of its own. */ -{1,"3.1.1", "First continuation byte 0x80", ""}, -{1,"3.1.2", "Last continuation byte 0xbf", ""}, - -{1,"3.1.3", "2 continuation bytes", ""}, -{1,"3.1.4", "3 continuation bytes", ""}, -{1,"3.1.5", "4 continuation bytes", ""}, -{1,"3.1.6", "5 continuation bytes", ""}, -{1,"3.1.7", "6 continuation bytes", ""}, -{1,"3.1.8", "7 continuation bytes", ""}, +{1,"3.1.1", "First continuation byte 0x80", "�"}, +{1,"3.1.2", "Last continuation byte 0xbf", "�"}, + +{1,"3.1.3", "2 continuation bytes", "��"}, +{1,"3.1.4", "3 continuation bytes", "���"}, +{1,"3.1.5", "4 continuation bytes", "����"}, +{1,"3.1.6", "5 continuation bytes", "�����"}, +{1,"3.1.7", "6 continuation bytes", "������"}, +{1,"3.1.8", "7 continuation bytes", "�������"}, {1,"3.1.9", "Sequence of all 64 possible continuation bytes (0x80-0xbf)", - "" + "����������������������������������������������������������������" }, /*3.2 Lonely start characters*/ @@ -147,31 +147,31 @@ static const struct Test utf8bad[] = { each followed by a space character*/ {1,"3.2.1", "All 32 first bytes of 2-byte sequences", -" " +"� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � " }, /*3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), each followed by a space character:*/ {1,"3.2.2", "All 16 first bytes of 3-byte sequences", -" " +"� � � � � � � � � � � � � � � � " }, /*3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), each followed by a space character:*/ {1,"3.2.3", "All 8 first bytes of 4-byte sequences", - " " + "� � � � � � � � " }, /*3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), each followed by a space character:*/ {1,"3.2.4", "All 4 first bytes of 5-byte sequences", - " " + "� � � � " }, /*3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), each followed by a space character:*/ {1,"3.2.5", "All 2 first bytes of 6-byte sequences", - " " + "� � " }, /*3.3 Sequences with last continuation byte missing @@ -179,32 +179,32 @@ All bytes of an incomplete sequence should be signalled as a single malformed sequence, i.e., you should see only a single replacement character in each of the next 10 tests. (Characters as in section 2) */ -{1,"3.3.1", "2-byte sequence with last byte missing (U+0000)", ""}, -{1,"3.3.2", "3-byte sequence with last byte missing (U+0000)", ""}, -{1,"3.3.3", "4-byte sequence with last byte missing (U+0000)", ""}, -{1,"3.3.4", "5-byte sequence with last byte missing (U+0000)", ""}, -{1,"3.3.5", "6-byte sequence with last byte missing (U+0000)", ""}, -{1,"3.3.6", "2-byte sequence with last byte missing (U-000007FF)", ""}, -{1,"3.3.7", "3-byte sequence with last byte missing (U-0000FFFF)", ""}, -{1,"3.3.8", "4-byte sequence with last byte missing (U-001FFFFF)", ""}, -{1,"3.3.9", "5-byte sequence with last byte missing (U-03FFFFFF)", ""}, -{1,"3.3.10", "6-byte sequence with last byte missing (U-7FFFFFFF)", ""}, +{1,"3.3.1", "2-byte sequence with last byte missing (U+0000)", "�"}, +{1,"3.3.2", "3-byte sequence with last byte missing (U+0000)", "��"}, +{1,"3.3.3", "4-byte sequence with last byte missing (U+0000)", "���"}, +{1,"3.3.4", "5-byte sequence with last byte missing (U+0000)", "����"}, +{1,"3.3.5", "6-byte sequence with last byte missing (U+0000)", "�����"}, +{1,"3.3.6", "2-byte sequence with last byte missing (U-000007FF)", "�"}, +{1,"3.3.7", "3-byte sequence with last byte missing (U-0000FFFF)", "��"}, +{1,"3.3.8", "4-byte sequence with last byte missing (U-001FFFFF)", "���"}, +{1,"3.3.9", "5-byte sequence with last byte missing (U-03FFFFFF)", "����"}, +{1,"3.3.10", "6-byte sequence with last byte missing (U-7FFFFFFF)", "�����"}, /*3.4 Concatenation of incomplete sequences All the 10 sequences of 3.3 concatenated; you should see 10 malformed sequences being signalled: */ {1, "3.4.1", "All the 10 sequences of 3.3 concatenated", - "" + "������������������������������" }, /*3.5 Impossible bytes The following two bytes cannot appear in a correct UTF-8 string */ -{1,"3.5.1", "fe", ""}, -{1,"3.5.2", "ff", ""}, -{1,"3.5.3", "fe fe ff ff", ""}, +{1,"3.5.1", "fe", "�"}, +{1,"3.5.2", "ff", "�"}, +{1,"3.5.3", "fe fe ff ff", "����"}, /* 4 Overlong sequences @@ -237,11 +237,11 @@ a replacement character. If you see a slash below, you do not have a safe UTF-8 decoder! */ -{1,"4.1.1", "U+002F = c0 af ", ""}, -{1,"4.1.2", "U+002F = e0 80 af ", ""}, -{1,"4.1.3", "U+002F = f0 80 80 af ", ""}, -{1,"4.1.4", "U+002F = f8 80 80 80 af ", ""}, -{1,"4.1.5", "U+002F = fc 80 80 80 80 af ", ""}, +{1,"4.1.1", "U+002F = c0 af ", "��"}, +{1,"4.1.2", "U+002F = e0 80 af ", "���"}, +{1,"4.1.3", "U+002F = f0 80 80 af ", "����"}, +{1,"4.1.4", "U+002F = f8 80 80 80 af ", "�����"}, +{1,"4.1.5", "U+002F = fc 80 80 80 80 af ", "������"}, /*4.2 Maximum overlong sequences @@ -251,11 +251,11 @@ is a boundary test for safe UTF-8 decoders. All five characters should be rejected like malformed UTF-8 sequences. */ -{1,"4.2.1", "U-0000007F = c1 bf ", ""}, -{1,"4.2.2", "U-000007FF = e0 9f bf ", ""}, -{1,"4.2.3", "U-0000FFFF = f0 8f bf bf ", ""}, -{1,"4.2.4", "U-001FFFFF = f8 87 bf bf bf ", ""}, -{1,"4.2.5", "U-03FFFFFF = fc 83 bf bf bf bf ", ""}, +{1,"4.2.1", "U-0000007F = c1 bf ", "��"}, +{1,"4.2.2", "U-000007FF = e0 9f bf ", "���"}, +{1,"4.2.3", "U-0000FFFF = f0 8f bf bf ", "����"}, +{1,"4.2.4", "U-001FFFFF = f8 87 bf bf bf ", "�����"}, +{1,"4.2.5", "U-03FFFFFF = fc 83 bf bf bf bf ", "������"}, /* 4.3 Overlong representation of the NUL character @@ -265,11 +265,11 @@ UTF-8 sequences and should not be treated like the ASCII NUL character. */ -{1,"4.3.1", "U+0000 = c0 80 ", ""}, -{1,"4.3.2", "U+0000 = e0 80 80 ", ""}, -{1,"4.3.3", "U+0000 = f0 80 80 80 ", ""}, -{1,"4.3.4", "U+0000 = f8 80 80 80 80 ", ""}, -{1,"4.3.5", "U+0000 = fc 80 80 80 80 80 ", ""}, +{1,"4.3.1", "U+0000 = c0 80 ", "��"}, +{1,"4.3.2", "U+0000 = e0 80 80 ", "���"}, +{1,"4.3.3", "U+0000 = f0 80 80 80 ", "����"}, +{1,"4.3.4", "U+0000 = f8 80 80 80 80 ", "�����"}, +{1,"4.3.5", "U+0000 = fc 80 80 80 80 80 ", "������"}, /* 5 Illegal code positions @@ -281,24 +281,24 @@ comparable to overlong UTF-8 sequences. */ /*5.1 Single UTF-16 surrogates*/ -{1,"5.1.1", "U+D800 = ed a0 80 ", ""}, -{1,"5.1.2", "U+DB7F = ed ad bf ", ""}, -{1,"5.1.3", "U+DB80 = ed ae 80 ", ""}, -{1,"5.1.4", "U+DBFF = ed af bf ", ""}, -{1,"5.1.5", "U+DC00 = ed b0 80 ", ""}, -{1,"5.1.6", "U+DF80 = ed be 80 ", ""}, -{1,"5.1.7", "U+DFFF = ed bf bf ", ""}, +{1,"5.1.1", "U+D800 = ed a0 80 ", "���"}, +{1,"5.1.2", "U+DB7F = ed ad bf ", "���"}, +{1,"5.1.3", "U+DB80 = ed ae 80 ", "���"}, +{1,"5.1.4", "U+DBFF = ed af bf ", "���"}, +{1,"5.1.5", "U+DC00 = ed b0 80 ", "���"}, +{1,"5.1.6", "U+DF80 = ed be 80 ", "���"}, +{1,"5.1.7", "U+DFFF = ed bf bf ", "���"}, /*5.2 Paired UTF-16 surrogates */ -{1,"5.2.1", "U+D800 U+DC00 = ed a0 80 ed b0 80 ", ""}, -{1,"5.2.2", "U+D800 U+DFFF = ed a0 80 ed bf bf ", ""}, -{1,"5.2.3", "U+DB7F U+DC00 = ed ad bf ed b0 80 ", ""}, -{1,"5.2.4", "U+DB7F U+DFFF = ed ad bf ed bf bf ", ""}, -{1,"5.2.5", "U+DB80 U+DC00 = ed ae 80 ed b0 80 ", ""}, -{1,"5.2.6", "U+DB80 U+DFFF = ed ae 80 ed bf bf ", ""}, -{1,"5.2.7", "U+DBFF U+DC00 = ed af bf ed b0 80 ", ""}, -{1,"5.2.8", "U+DBFF U+DFFF = ed af bf ed bf bf ", ""}, +{1,"5.2.1", "U+D800 U+DC00 = ed a0 80 ed b0 80 ", "������"}, +{1,"5.2.2", "U+D800 U+DFFF = ed a0 80 ed bf bf ", "������"}, +{1,"5.2.3", "U+DB7F U+DC00 = ed ad bf ed b0 80 ", "������"}, +{1,"5.2.4", "U+DB7F U+DFFF = ed ad bf ed bf bf ", "������"}, +{1,"5.2.5", "U+DB80 U+DC00 = ed ae 80 ed b0 80 ", "������"}, +{1,"5.2.6", "U+DB80 U+DFFF = ed ae 80 ed bf bf ", "������"}, +{1,"5.2.7", "U+DBFF U+DC00 = ed af bf ed b0 80 ", "������"}, +{1,"5.2.8", "U+DBFF U+DFFF = ed af bf ed bf bf ", "������"}, NULLTEST }; diff --git a/nc_test/util.c b/nc_test/util.c index d7afd1ead7..be2f678d88 100644 --- a/nc_test/util.c +++ b/nc_test/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: util.c 2792 2014-10-27 06:02:59Z wkliao $ *********************************************************************/ From 462ec939130845d1e339161237bdeeedd2884ffc Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 15:27:32 -0700 Subject: [PATCH 29/38] Whew! Updated copyright stanza in nc_test4. --- nc_test4/CMakeLists.txt | 6 ++++ nc_test4/bigmeta.c | 13 +++++++- nc_test4/bm_chunking.c | 2 +- nc_test4/bm_file.c | 2 +- nc_test4/bm_many_atts.c | 2 +- nc_test4/bm_netcdf4_recs.c | 2 +- nc_test4/bm_radar.c | 2 +- nc_test4/cdm_sea_soundings.c | 2 +- nc_test4/h5testszip.c | 20 +++++++++--- nc_test4/openbigmeta.c | 10 ++++++ nc_test4/ref_bzip2.c | 10 ++++++ nc_test4/renamegroup.c | 2 +- nc_test4/t_type.c | 2 +- nc_test4/test_filter_misc.c | 2 +- nc_test4/test_szip.c | 2 +- nc_test4/tst_ar4.c | 2 +- nc_test4/tst_atts.c | 6 ++-- nc_test4/tst_atts1.c | 2 +- nc_test4/tst_atts2.c | 2 +- nc_test4/tst_atts3.c | 2 +- nc_test4/tst_atts_string_rewrite.c | 2 +- nc_test4/tst_bug324.c | 10 ++++++ nc_test4/tst_camrun.c | 2 +- nc_test4/tst_chunks.c | 2 +- nc_test4/tst_chunks2.c | 2 +- nc_test4/tst_chunks3.c | 44 +++++++++++++-------------- nc_test4/tst_compounds.c | 2 +- nc_test4/tst_compounds2.c | 2 +- nc_test4/tst_compounds3.c | 2 +- nc_test4/tst_converts.c | 2 +- nc_test4/tst_converts2.c | 2 +- nc_test4/tst_coords.c | 2 +- nc_test4/tst_coords2.c | 2 +- nc_test4/tst_coords3.c | 2 +- nc_test4/tst_dims.c | 2 +- nc_test4/tst_dims2.c | 2 +- nc_test4/tst_dims3.c | 2 +- nc_test4/tst_elatefill.c | 2 +- nc_test4/tst_empty_vlen_unlim.c | 2 +- nc_test4/tst_endian_fill.c | 2 +- nc_test4/tst_enums.c | 2 +- nc_test4/tst_files.c | 8 ++--- nc_test4/tst_files4.c | 2 +- nc_test4/tst_files5.c | 2 +- nc_test4/tst_files6.c | 2 +- nc_test4/tst_fill_attr_vanish.c | 2 +- nc_test4/tst_fillbug.c | 2 +- nc_test4/tst_fills.c | 2 +- nc_test4/tst_fills2.c | 2 +- nc_test4/tst_filterparser.c | 2 +- nc_test4/tst_grps.c | 2 +- nc_test4/tst_grps2.c | 2 +- nc_test4/tst_h5_endians.c | 6 ++++ nc_test4/tst_h_converts.c | 2 +- nc_test4/tst_h_many_atts.c | 2 +- nc_test4/tst_h_refs.c | 2 +- nc_test4/tst_h_scalar.c | 2 +- nc_test4/tst_h_strbug.c | 2 +- nc_test4/tst_h_strings3.c | 2 +- nc_test4/tst_h_vl2.c | 2 +- nc_test4/tst_hdf5_file_compat.c | 2 +- nc_test4/tst_interops.c | 2 +- nc_test4/tst_interops4.c | 2 +- nc_test4/tst_interops5.c | 2 +- nc_test4/tst_interops6.c | 2 +- nc_test4/tst_large.c | 2 +- nc_test4/tst_large2.c | 2 +- nc_test4/tst_large3.c | 2 +- nc_test4/tst_large5.c | 2 +- nc_test4/tst_mem.c | 2 +- nc_test4/tst_mode.c | 12 ++++++-- nc_test4/tst_mpi_parallel.c | 11 +++++++ nc_test4/tst_nc4perf.c | 2 +- nc_test4/tst_nc_converts.c | 2 +- nc_test4/tst_opaques.c | 2 +- nc_test4/tst_parallel.c | 2 +- nc_test4/tst_parallel4.c | 2 +- nc_test4/tst_put_vars.c | 9 +++++- nc_test4/tst_put_vars_two_unlim_dim.c | 11 +++++++ nc_test4/tst_rehash.c | 2 +- nc_test4/tst_rename.c | 11 +++++++ nc_test4/tst_rename2.c | 29 ++++++++++++------ nc_test4/tst_simplerw_coll_r.c | 12 ++++---- nc_test4/tst_strings.c | 2 +- nc_test4/tst_strings2.c | 2 +- nc_test4/tst_sync.c | 2 +- nc_test4/tst_types.c | 2 +- nc_test4/tst_udf.c | 16 +++++----- nc_test4/tst_unlim_vars.c | 2 +- nc_test4/tst_utf8.c | 2 +- nc_test4/tst_utils.c | 17 +++++++++-- nc_test4/tst_v2.c | 2 +- nc_test4/tst_varms.c | 2 +- nc_test4/tst_vars.c | 2 +- nc_test4/tst_vars2.c | 2 +- nc_test4/tst_vars3.c | 2 +- nc_test4/tst_vars4.c | 2 +- nc_test4/tst_varsperf.c | 19 +++++++++--- nc_test4/tst_vl.c | 2 +- nc_test4/tst_xplatform.c | 2 +- nc_test4/tst_xplatform2.c | 2 +- 101 files changed, 293 insertions(+), 149 deletions(-) diff --git a/nc_test4/CMakeLists.txt b/nc_test4/CMakeLists.txt index 824e27dd4b..a094417f37 100644 --- a/nc_test4/CMakeLists.txt +++ b/nc_test4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Some extra tests SET(NC4_TESTS tst_dims tst_dims2 tst_dims3 tst_files tst_files4 tst_vars tst_varms tst_unlim_vars tst_converts tst_converts2 diff --git a/nc_test4/bigmeta.c b/nc_test4/bigmeta.c index fb2054eb2c..f49c052477 100644 --- a/nc_test4/bigmeta.c +++ b/nc_test4/bigmeta.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with horrendously large metadata. */ @@ -155,7 +166,7 @@ buildgroup(int parent, int grpindex, int depth) snprintf(name,NC_MAX_NAME,"g%d",grpindex); CHECK(nc_def_grp(parent, name, &grpid)); - + /* Add dimensions and capture ids */ for(i=0;i #include #include diff --git a/nc_test4/renamegroup.c b/nc_test4/renamegroup.c index 695f64d357..42ad08a44f 100644 --- a/nc_test4/renamegroup.c +++ b/nc_test4/renamegroup.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/t_type.c b/nc_test4/t_type.c index 81c75207ba..f1ab378d19 100644 --- a/nc_test4/t_type.c +++ b/nc_test4/t_type.c @@ -1,4 +1,4 @@ -/* Copyright 2010 University Corporation for Atmospheric Research. See +/* Copyright 2018 University Corporation for Atmospheric Research. See COPYRIGHT file for copying and redistribution conditions. This test program is only built if netCDF-4 is disabled. It tests diff --git a/nc_test4/test_filter_misc.c b/nc_test4/test_filter_misc.c index 9de901a9ff..086cebeddf 100644 --- a/nc_test4/test_filter_misc.c +++ b/nc_test4/test_filter_misc.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test4/test_szip.c b/nc_test4/test_szip.c index 1dd78e477b..7504521f28 100644 --- a/nc_test4/test_szip.c +++ b/nc_test4/test_szip.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. */ diff --git a/nc_test4/tst_ar4.c b/nc_test4/tst_ar4.c index 28a44acaf5..0a7b61c096 100644 --- a/nc_test4/tst_ar4.c +++ b/nc_test4/tst_ar4.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 performance with some AR-4 3D data. diff --git a/nc_test4/tst_atts.c b/nc_test4/tst_atts.c index 11475a24e4..0ebb015cf1 100644 --- a/nc_test4/tst_atts.c +++ b/nc_test4/tst_atts.c @@ -314,11 +314,11 @@ main(int argc, char **argv) CONTENTS) != NC_ENAMEINUSE) ERR; } } - + /* Write the attribute at last. */ if (nc_put_att_text(ncid, NC_GLOBAL, OLD_NAME, strlen(CONTENTS), CONTENTS)) ERR; - + /* Write another with different name. */ if (nc_put_att_text(ncid, NC_GLOBAL, OLD_NAME_2, strlen(CONTENTS), CONTENTS)) ERR; @@ -332,7 +332,7 @@ main(int argc, char **argv) if (nc_rename_att(ncid, NC_GLOBAL, OLD_NAME, BAD_NAME) != NC_EBADNAME) ERR; if (nc_rename_att(ncid, NC_GLOBAL, OLD_NAME, too_long_name) != NC_EMAXNAME) ERR; if (nc_rename_att(ncid, NC_GLOBAL, OLD_NAME, OLD_NAME_2) != NC_ENAMEINUSE) ERR; - + /* Rename the att. */ if (nc_rename_att(ncid, NC_GLOBAL, OLD_NAME, NEW_NAME)) ERR; diff --git a/nc_test4/tst_atts1.c b/nc_test4/tst_atts1.c index 1e8176e48c..b35a304a5f 100644 --- a/nc_test4/tst_atts1.c +++ b/nc_test4/tst_atts1.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_atts2.c b/nc_test4/tst_atts2.c index 591aca2356..eb3201511d 100644 --- a/nc_test4/tst_atts2.c +++ b/nc_test4/tst_atts2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2018 University +/* This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_atts3.c b/nc_test4/tst_atts3.c index 24ae3075bf..7abf5f3bb9 100644 --- a/nc_test4/tst_atts3.c +++ b/nc_test4/tst_atts3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/nc_test4/tst_atts_string_rewrite.c b/nc_test4/tst_atts_string_rewrite.c index d55e63634c..926fe1f5ba 100644 --- a/nc_test4/tst_atts_string_rewrite.c +++ b/nc_test4/tst_atts_string_rewrite.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This test was provided by Jeff Whitaker as an example of a bug, diff --git a/nc_test4/tst_bug324.c b/nc_test4/tst_bug324.c index f165d44887..3393ef5fac 100644 --- a/nc_test4/tst_bug324.c +++ b/nc_test4/tst_bug324.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include "err_macros.h" #include diff --git a/nc_test4/tst_camrun.c b/nc_test4/tst_camrun.c index 2ce9cbbb02..5b96bc3f89 100644 --- a/nc_test4/tst_camrun.c +++ b/nc_test4/tst_camrun.c @@ -1,5 +1,5 @@ /* - Copyright 2010, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program writes a data file from the CAM model run. (Thanks to diff --git a/nc_test4/tst_chunks.c b/nc_test4/tst_chunks.c index 9279c6d97b..48ea1eb943 100644 --- a/nc_test4/tst_chunks.c +++ b/nc_test4/tst_chunks.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_chunks2.c b/nc_test4/tst_chunks2.c index b6ac94a7e9..f540faefe3 100644 --- a/nc_test4/tst_chunks2.c +++ b/nc_test4/tst_chunks2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2011 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 chunking. diff --git a/nc_test4/tst_chunks3.c b/nc_test4/tst_chunks3.c index bd952cfede..dc6d8b49f3 100644 --- a/nc_test4/tst_chunks3.c +++ b/nc_test4/tst_chunks3.c @@ -60,7 +60,7 @@ long inb, oub; \ char time_mess[100]; \ float seconds; - + #define TIMING_START \ TMrepeats = 1; \ do { \ @@ -71,7 +71,7 @@ inb = ru.ru_inblock; \ oub = ru.ru_oublock; \ for(TMreps=0; TMreps < TMrepeats; TMreps++) { - + #define TIMING_END(seconds) \ } \ if(getrusage(RUSAGE_SELF, &ru)) { \ @@ -99,7 +99,7 @@ return n; \ void parse_args(int argc, char *argv[], /* from command-line invocation */ - int *deflate_levelp, /* returned: 0 uncompressed, + int *deflate_levelp, /* returned: 0 uncompressed, 1-9 compression level */ int *shufflep, /* returned: 1 if shuffle, otherwise 0 */ size_t *dims, /* returned: dimension sizes */ @@ -128,7 +128,7 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ dims[1] = dims[0]; if(argc > 5) chunks[1] = atol(argv[5]); - else + else chunks[1] = chunks[0]; if(argc > 6) dims[2] = atol(argv[6]); @@ -145,10 +145,10 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ if(argc > 10) *cache_prep = atof(argv[10]); if(argc > 11) { - printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", + printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", argv[0]); exit(1); - } + } return; } @@ -204,11 +204,11 @@ main(int argc, char *argv[]) { /* From args, get parameters for timing, including variable and chunk sizes. Negative deflate level means also use shuffle filter. */ - parse_args(argc, argv, &deflate_level, &shuffle, dims, + parse_args(argc, argv, &deflate_level, &shuffle, dims, chunks, &cache_size, &cache_hash, &cache_pre); /* get cache defaults, then set cache parameters that are not default */ - if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, + if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, &cache_pre_def))) ERR1(stat); if(cache_size == 0) @@ -219,7 +219,7 @@ main(int argc, char *argv[]) { cache_pre = cache_pre_def; if((stat = nc_set_chunk_cache(cache_size, cache_hash, cache_pre))) ERR1(stat); - printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", + printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", cache_size/1.e6, cache_hash, cache_pre); if(deflate_level == 0) { @@ -257,7 +257,7 @@ main(int argc, char *argv[]) { if((stat = nc_create(FILENAME, NC_NETCDF4 | NC_CLASSIC_MODEL, &ncid))) ERR1(stat); - + /* define dimensions */ if((stat = nc_def_dim(ncid, "dim1", dims[0], &dim1id))) ERR1(stat); @@ -265,18 +265,18 @@ main(int argc, char *argv[]) { ERR1(stat); if((stat = nc_def_dim(ncid, "dim3", dims[2], &dim3id))) ERR1(stat); - + /* define variables */ var_dims[0] = dim1id; var_dims[1] = dim2id; var_dims[2] = dim3id; - if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, var_dims, &varid_g))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, var_dims, &varid_k))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, var_dims, &varid_x))) ERR1(stat); @@ -290,7 +290,7 @@ main(int argc, char *argv[]) { ERR1(stat); if (deflate_level != 0) { - if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, + if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, NC_COMPRESSED, deflate_level))) ERR1(stat); } @@ -298,7 +298,7 @@ main(int argc, char *argv[]) { /* leave define mode */ if((stat = nc_enddef (ncid))) ERR1(stat); - + /* write each variable one yz slab at a time */ start[0] = 0; start[1] = 0; @@ -404,7 +404,7 @@ main(int argc, char *argv[]) { else printf(" %5.2g x slower\n", 1.0/ratio); printf("\n"); - + /* write each variable one xy slab at a time */ start[0] = 0; start[1] = 0; @@ -424,7 +424,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked write %3ld %3ld %3d %3ld %3ld %3ld", dims[0], dims[1], 1, chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -477,7 +477,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -493,7 +493,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -530,7 +530,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -546,7 +546,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; diff --git a/nc_test4/tst_compounds.c b/nc_test4/tst_compounds.c index d1601d60de..f91c210021 100644 --- a/nc_test4/tst_compounds.c +++ b/nc_test4/tst_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds2.c b/nc_test4/tst_compounds2.c index c6d8556bb3..7b1af1de96 100644 --- a/nc_test4/tst_compounds2.c +++ b/nc_test4/tst_compounds2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds3.c b/nc_test4/tst_compounds3.c index adda5b546d..c09cb0b448 100644 --- a/nc_test4/tst_compounds3.c +++ b/nc_test4/tst_compounds3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature, even more. diff --git a/nc_test4/tst_converts.c b/nc_test4/tst_converts.c index b6cb74bd30..43507e87ee 100644 --- a/nc_test4/tst_converts.c +++ b/nc_test4/tst_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test data conversions and fill value handling. diff --git a/nc_test4/tst_converts2.c b/nc_test4/tst_converts2.c index 1e870e9815..0f3bd92258 100644 --- a/nc_test4/tst_converts2.c +++ b/nc_test4/tst_converts2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test even more data conversions. diff --git a/nc_test4/tst_coords.c b/nc_test4/tst_coords.c index d5acaf25b6..000b8a632b 100644 --- a/nc_test4/tst_coords.c +++ b/nc_test4/tst_coords.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords2.c b/nc_test4/tst_coords2.c index 952597b585..29f9d713de 100644 --- a/nc_test4/tst_coords2.c +++ b/nc_test4/tst_coords2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords3.c b/nc_test4/tst_coords3.c index f03cc7c46f..8930259ab1 100644 --- a/nc_test4/tst_coords3.c +++ b/nc_test4/tst_coords3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_dims.c b/nc_test4/tst_dims.c index caf278d08f..3bcf814691 100644 --- a/nc_test4/tst_dims.c +++ b/nc_test4/tst_dims.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims2.c b/nc_test4/tst_dims2.c index cebf9e3e9f..db38a9bf37 100644 --- a/nc_test4/tst_dims2.c +++ b/nc_test4/tst_dims2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims3.c b/nc_test4/tst_dims3.c index f9fbba8fad..92978f6086 100644 --- a/nc_test4/tst_dims3.c +++ b/nc_test4/tst_dims3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_elatefill.c b/nc_test4/tst_elatefill.c index 99dece2845..9b24747732 100644 --- a/nc_test4/tst_elatefill.c +++ b/nc_test4/tst_elatefill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_empty_vlen_unlim.c b/nc_test4/tst_empty_vlen_unlim.c index d1d18971df..5123275f02 100644 --- a/nc_test4/tst_empty_vlen_unlim.c +++ b/nc_test4/tst_empty_vlen_unlim.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_endian_fill.c b/nc_test4/tst_endian_fill.c index 38afba139c..22cbfb8ed5 100644 --- a/nc_test4/tst_endian_fill.c +++ b/nc_test4/tst_endian_fill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_enums.c b/nc_test4/tst_enums.c index 977d73cb4b..ba2cf5fe4b 100644 --- a/nc_test4/tst_enums.c +++ b/nc_test4/tst_enums.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_files.c b/nc_test4/tst_files.c index 55ee7a30ca..d8927d8ecb 100644 --- a/nc_test4/tst_files.c +++ b/nc_test4/tst_files.c @@ -431,10 +431,10 @@ test_redef(int format) cache_size_in = 0; if (nc_get_chunk_cache(&cache_size_in, NULL, NULL)) ERR; if (cache_size_in != NEW_CACHE_SIZE) ERR; - cache_nelems_in = 0; + cache_nelems_in = 0; if (nc_get_chunk_cache(NULL, &cache_nelems_in, NULL)) ERR; if (cache_nelems_in != NEW_CACHE_NELEMS) ERR; - cache_preemption_in = 0; + cache_preemption_in = 0; if (nc_get_chunk_cache(NULL, NULL, &cache_preemption_in)) ERR; if (cache_preemption_in != NEW_CACHE_PREEMPTION) ERR; @@ -463,7 +463,7 @@ test_redef(int format) -1) != NC_EINVAL) ERR; if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, 101) != NC_EINVAL) ERR; - + /* Change chunk cache again. */ if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, @@ -472,7 +472,7 @@ test_redef(int format) &cache_preemption_int_in)) ERR; if (cache_size_int_in != NEW_CACHE_SIZE_2 || cache_nelems_int_in != NEW_CACHE_NELEMS_2 || cache_preemption_int_in != (int)(NEW_CACHE_PREEMPTION_2 * 100)) ERR; - + /* This will fail, except for netcdf-4/hdf5, which permits any * name. */ diff --git a/nc_test4/tst_files4.c b/nc_test4/tst_files4.c index a83523a30e..062677b648 100644 --- a/nc_test4/tst_files4.c +++ b/nc_test4/tst_files4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 file from user-reported error. This code based on an diff --git a/nc_test4/tst_files5.c b/nc_test4/tst_files5.c index e6dd57fd4f..922a4ff7e7 100644 --- a/nc_test4/tst_files5.c +++ b/nc_test4/tst_files5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_files6.c b/nc_test4/tst_files6.c index 3e660e4320..49bae17a7d 100644 --- a/nc_test4/tst_files6.c +++ b/nc_test4/tst_files6.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_fill_attr_vanish.c b/nc_test4/tst_fill_attr_vanish.c index 189d20b11f..392b489e4f 100644 --- a/nc_test4/tst_fill_attr_vanish.c +++ b/nc_test4/tst_fill_attr_vanish.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Based on tst_fillbug.c diff --git a/nc_test4/tst_fillbug.c b/nc_test4/tst_fillbug.c index b4a04e22c2..6d4f14da85 100644 --- a/nc_test4/tst_fillbug.c +++ b/nc_test4/tst_fillbug.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test for a bug that Russ found testing fill values. diff --git a/nc_test4/tst_fills.c b/nc_test4/tst_fills.c index 808eb3c105..240f4b4119 100644 --- a/nc_test4/tst_fills.c +++ b/nc_test4/tst_fills.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_fills2.c b/nc_test4/tst_fills2.c index 323e5d0914..d29a6adfe7 100644 --- a/nc_test4/tst_fills2.c +++ b/nc_test4/tst_fills2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_filterparser.c b/nc_test4/tst_filterparser.c index 9e83e987d3..63f88540aa 100644 --- a/nc_test4/tst_filterparser.c +++ b/nc_test4/tst_filterparser.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test4/tst_grps.c b/nc_test4/tst_grps.c index 8959e03538..528f3efbbc 100644 --- a/nc_test4/tst_grps.c +++ b/nc_test4/tst_grps.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code. diff --git a/nc_test4/tst_grps2.c b/nc_test4/tst_grps2.c index 55d10ad0d2..bf6441242f 100644 --- a/nc_test4/tst_grps2.c +++ b/nc_test4/tst_grps2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code some more. diff --git a/nc_test4/tst_h5_endians.c b/nc_test4/tst_h5_endians.c index 081f8782a3..6984bd5a3b 100644 --- a/nc_test4/tst_h5_endians.c +++ b/nc_test4/tst_h5_endians.c @@ -1,4 +1,10 @@ /*! Test for NCF-331. Added May 11, 2015. + * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 + * University Corporation for Atmospheric Research/Unidata. + * + * See \ref copyright file for more info. * See the following links for more information: * * o Issue on GitHub: https://github.com/Unidata/netcdf-c/issues/112 diff --git a/nc_test4/tst_h_converts.c b/nc_test4/tst_h_converts.c index 4a6bb49adb..862ae2a21f 100644 --- a/nc_test4/tst_h_converts.c +++ b/nc_test4/tst_h_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_many_atts.c b/nc_test4/tst_h_many_atts.c index d0ee537b68..f484c43103 100644 --- a/nc_test4/tst_h_many_atts.c +++ b/nc_test4/tst_h_many_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_refs.c b/nc_test4/tst_h_refs.c index 95949be4d7..7610e42f87 100644 --- a/nc_test4/tst_h_refs.c +++ b/nc_test4/tst_h_refs.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_scalar.c b/nc_test4/tst_h_scalar.c index fbd40ca8f2..c21b0ecb45 100644 --- a/nc_test4/tst_h_scalar.c +++ b/nc_test4/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strbug.c b/nc_test4/tst_h_strbug.c index b819604109..eb76e5fa0e 100644 --- a/nc_test4/tst_h_strbug.c +++ b/nc_test4/tst_h_strbug.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strings3.c b/nc_test4/tst_h_strings3.c index 0bf8b2f66b..5c125b2b53 100644 --- a/nc_test4/tst_h_strings3.c +++ b/nc_test4/tst_h_strings3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_vl2.c b/nc_test4/tst_h_vl2.c index 9d4d77e38a..cc4ba27fe2 100644 --- a/nc_test4/tst_h_vl2.c +++ b/nc_test4/tst_h_vl2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_hdf5_file_compat.c b/nc_test4/tst_hdf5_file_compat.c index 4813d9d253..01926702b3 100644 --- a/nc_test4/tst_hdf5_file_compat.c +++ b/nc_test4/tst_hdf5_file_compat.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Tests library ability to open files generated by a netcdf diff --git a/nc_test4/tst_interops.c b/nc_test4/tst_interops.c index 086336e30e..f7662e42b4 100644 --- a/nc_test4/tst_interops.c +++ b/nc_test4/tst_interops.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test that HDF5 and NetCDF-4 can read and write the same file. diff --git a/nc_test4/tst_interops4.c b/nc_test4/tst_interops4.c index d655ab33a4..535a80e4fe 100644 --- a/nc_test4/tst_interops4.c +++ b/nc_test4/tst_interops4.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/*! This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops5.c b/nc_test4/tst_interops5.c index 44c3274e8f..3faf379ade 100644 --- a/nc_test4/tst_interops5.c +++ b/nc_test4/tst_interops5.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/* This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops6.c b/nc_test4/tst_interops6.c index ef9221900e..32086dd867 100644 --- a/nc_test4/tst_interops6.c +++ b/nc_test4/tst_interops6.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_large.c b/nc_test4/tst_large.c index 5afac598b6..4aa9a47dee 100644 --- a/nc_test4/tst_large.c +++ b/nc_test4/tst_large.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 large file fill values. diff --git a/nc_test4/tst_large2.c b/nc_test4/tst_large2.c index 48cbe3ebed..0a61e57ab5 100644 --- a/nc_test4/tst_large2.c +++ b/nc_test4/tst_large2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_large3.c b/nc_test4/tst_large3.c index 4f43a6a4c5..780d4114ad 100644 --- a/nc_test4/tst_large3.c +++ b/nc_test4/tst_large3.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test4/tst_large5.c b/nc_test4/tst_large5.c index 0b5c401a45..2b3eaf8248 100644 --- a/nc_test4/tst_large5.c +++ b/nc_test4/tst_large5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_mem.c b/nc_test4/tst_mem.c index fcfec9e58f..6e03bc12e2 100644 --- a/nc_test4/tst_mem.c +++ b/nc_test4/tst_mem.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_mode.c b/nc_test4/tst_mode.c index 3d6b945ad5..25c5da01bf 100644 --- a/nc_test4/tst_mode.c +++ b/nc_test4/tst_mode.c @@ -1,5 +1,13 @@ -/** - * @file +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + * Test some illegal mode combinations * */ diff --git a/nc_test4/tst_mpi_parallel.c b/nc_test4/tst_mpi_parallel.c index 73233457d6..6bdcb710e3 100644 --- a/nc_test4/tst_mpi_parallel.c +++ b/nc_test4/tst_mpi_parallel.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a quickie tester for netcdf-4. This just excersizes MPI file I/O to make sure everything's working diff --git a/nc_test4/tst_nc4perf.c b/nc_test4/tst_nc4perf.c index 032e768202..af39e20943 100644 --- a/nc_test4/tst_nc4perf.c +++ b/nc_test4/tst_nc4perf.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. These tests are based on the diff --git a/nc_test4/tst_nc_converts.c b/nc_test4/tst_nc_converts.c index 25fcffac69..15ab7efa92 100644 --- a/nc_test4/tst_nc_converts.c +++ b/nc_test4/tst_nc_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test some things about how classic netCDF behaves. diff --git a/nc_test4/tst_opaques.c b/nc_test4/tst_opaques.c index 731f8db692..c5130a3766 100644 --- a/nc_test4/tst_opaques.c +++ b/nc_test4/tst_opaques.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_parallel.c b/nc_test4/tst_parallel.c index 07c53b10b2..1ed128fb05 100644 --- a/nc_test4/tst_parallel.c +++ b/nc_test4/tst_parallel.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. diff --git a/nc_test4/tst_parallel4.c b/nc_test4/tst_parallel4.c index 4f11d5e537..b2e8df2645 100644 --- a/nc_test4/tst_parallel4.c +++ b/nc_test4/tst_parallel4.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. This is part of the netCDF package. diff --git a/nc_test4/tst_put_vars.c b/nc_test4/tst_put_vars.c index 54ad1209b7..a74bee6385 100644 --- a/nc_test4/tst_put_vars.c +++ b/nc_test4/tst_put_vars.c @@ -1,4 +1,11 @@ -/*! Test added as part of JIRA ticket NCF-326. +/*! \file Test added as part of JIRA ticket NCF-326. + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. The test was provided by Ellen Johnson at Mathworks. diff --git a/nc_test4/tst_put_vars_two_unlim_dim.c b/nc_test4/tst_put_vars_two_unlim_dim.c index 785d0d56ba..8cbd2be28c 100644 --- a/nc_test4/tst_put_vars_two_unlim_dim.c +++ b/nc_test4/tst_put_vars_two_unlim_dim.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test contributed in support of netCDF issue * https://github.com/Unidata/netcdf-c/issues/160 diff --git a/nc_test4/tst_rehash.c b/nc_test4/tst_rehash.c index c594bd1ccf..bd21daa01e 100644 --- a/nc_test4/tst_rehash.c +++ b/nc_test4/tst_rehash.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Provided in support of https://github.com/Unidata/netcdf-c/issues/282 diff --git a/nc_test4/tst_rename.c b/nc_test4/tst_rename.c index 4b0184a41a..05eb85979e 100644 --- a/nc_test4/tst_rename.c +++ b/nc_test4/tst_rename.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test renames of vars and dims. It's a surprisingly tricky business. * diff --git a/nc_test4/tst_rename2.c b/nc_test4/tst_rename2.c index 53213ca5ff..5382e78131 100644 --- a/nc_test4/tst_rename2.c +++ b/nc_test4/tst_rename2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test more renames of vars and dims. * @@ -46,7 +57,7 @@ main(int argc, char **argv) { sprintf(filename, "%s_%d_%d.nc", TEST_NAME, formats[format], enddef_setting); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -58,15 +69,15 @@ main(int argc, char **argv) if (nc_enddef(ncid)) ERR; if (nc_redef(ncid)) ERR; } - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -93,7 +104,7 @@ main(int argc, char **argv) if (nc_set_default_format(formats[format], NULL)) ERR; sprintf(filename, "%s_data_%d.nc", TEST_NAME, formats[format]); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -114,15 +125,15 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; if (nc_open(filename, NC_WRITE, &ncid)) ERR; if (nc_redef(ncid)) ERR; - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -134,7 +145,7 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; } SUMMARIZE_ERR; - + } /* next format */ FINAL_RESULTS; } diff --git a/nc_test4/tst_simplerw_coll_r.c b/nc_test4/tst_simplerw_coll_r.c index cd25cbcf18..bf6637df69 100644 --- a/nc_test4/tst_simplerw_coll_r.c +++ b/nc_test4/tst_simplerw_coll_r.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying * and redistribution conditions. * * This is part of the netCDF package. @@ -113,7 +113,7 @@ main(int argc, char **argv) unsigned int uint_fill_value_in; long long int int64_fill_value_in; unsigned long long int uint64_fill_value_in; - + /* Data to write and read. */ signed char byte_data[DIMSIZE * DIMSIZE], byte_data_in[DIMSIZE * DIMSIZE]; unsigned char char_data[DIMSIZE * DIMSIZE], char_data_in[DIMSIZE * DIMSIZE]; @@ -126,7 +126,7 @@ main(int argc, char **argv) unsigned int uint_data[DIMSIZE * DIMSIZE], uint_data_in[DIMSIZE * DIMSIZE]; long long int int64_data[DIMSIZE * DIMSIZE], int64_data_in[DIMSIZE * DIMSIZE]; unsigned long long int uint64_data[DIMSIZE * DIMSIZE], uint64_data_in[DIMSIZE * DIMSIZE]; - + if (!mpi_rank) printf("*** writing a %d x %d x %d file from %d processors for fill value test %d type %d...\n", NUM_SLABS, DIMSIZE, DIMSIZE, mpi_size, fv, test_type[tt]); @@ -234,7 +234,7 @@ main(int argc, char **argv) fill_value_in = &uint64_fill_value_in; break; } - + /* Create a file name. */ sprintf(file_name, "%s_type_%d_fv_%d.nc", TEST_NAME, test_type[tt], fv); @@ -268,7 +268,7 @@ main(int argc, char **argv) if (nc_def_var_fill(ncid, varid, NC_NOFILL, NULL)) ERR; if (nc_inq_var_fill(ncid, varid, &fill_mode_in, NULL)) ERR; if (!fill_mode_in) ERR; /* nofill will be true */ - } + } /* Write metadata to file. */ if (nc_enddef(ncid)) ERR; @@ -406,7 +406,7 @@ main(int argc, char **argv) SUMMARIZE_ERR; } /* next test type */ } /* next fill value test run */ - + /* Shut down MPI. */ MPI_Finalize(); diff --git a/nc_test4/tst_strings.c b/nc_test4/tst_strings.c index 176df80c38..301ca6cd79 100644 --- a/nc_test4/tst_strings.c +++ b/nc_test4/tst_strings.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_strings2.c b/nc_test4/tst_strings2.c index f0b7aa2b1c..2edeadebc4 100644 --- a/nc_test4/tst_strings2.c +++ b/nc_test4/tst_strings2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_sync.c b/nc_test4/tst_sync.c index 3ac8799c3b..30df93fc3c 100644 --- a/nc_test4/tst_sync.c +++ b/nc_test4/tst_sync.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2011 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_types.c b/nc_test4/tst_types.c index 9db571e8bd..ea0b0ffaa9 100644 --- a/nc_test4/tst_types.c +++ b/nc_test4/tst_types.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 types. diff --git a/nc_test4/tst_udf.c b/nc_test4/tst_udf.c index c5fc9d2443..ebe5437808 100644 --- a/nc_test4/tst_udf.c +++ b/nc_test4/tst_udf.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -166,7 +166,7 @@ main(int argc, char **argv) int ncid; NC_Dispatch *disp_in; int i; - + /* Create an empty file to play with. */ if (nc_create(FILE_NAME, 0, &ncid)) ERR; if (nc_close(ncid)) ERR; @@ -180,11 +180,11 @@ main(int argc, char **argv) /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, NULL)) ERR; if (disp_in != &tst_dispatcher) ERR; - + /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing it. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_inq_format(ncid, NULL) != TEST_VAL_42) ERR; @@ -202,7 +202,7 @@ main(int argc, char **argv) char magic_number_in[NC_MAX_MAGIC_NUMBER_LEN]; FILE *FP; int i; - + /* Create a file with magic number at start. */ if (!(FP = fopen(FILE_NAME, "w"))) ERR; if (fwrite(magic_number, sizeof(char), strlen(magic_number), FP) @@ -210,13 +210,13 @@ main(int argc, char **argv) if (fwrite(dummy_data, sizeof(char), strlen(dummy_data), FP) != strlen(dummy_data)) ERR; if (fclose(FP)) ERR; - + /* Test all available user-defined format slots. */ for (i = 0; i < NUM_UDFS; i++) { /* Add our test user defined format. */ if (nc_def_user_format(mode[i], &tst_dispatcher, magic_number)) ERR; - + /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, magic_number_in)) ERR; if (disp_in != &tst_dispatcher) ERR; @@ -225,7 +225,7 @@ main(int argc, char **argv) /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing * it. This time we don't specify a mode, because the magic * number is used to identify the file. */ diff --git a/nc_test4/tst_unlim_vars.c b/nc_test4/tst_unlim_vars.c index 306e53e364..31e559587a 100644 --- a/nc_test4/tst_unlim_vars.c +++ b/nc_test4/tst_unlim_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables with unlimited dimensions. diff --git a/nc_test4/tst_utf8.c b/nc_test4/tst_utf8.c index 13da950e9b..86efd49273 100644 --- a/nc_test4/tst_utf8.c +++ b/nc_test4/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/nc_test4/tst_utils.c b/nc_test4/tst_utils.c index cf8a83885a..96a16294e8 100644 --- a/nc_test4/tst_utils.c +++ b/nc_test4/tst_utils.c @@ -1,6 +1,17 @@ -/** \internal -\file -Utility functions for tests. */ +/*! \file Utility functions for tests. + +\internal +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + +*/ + + #include #include diff --git a/nc_test4/tst_v2.c b/nc_test4/tst_v2.c index 0204ce90e3..c012aa51ce 100644 --- a/nc_test4/tst_v2.c +++ b/nc_test4/tst_v2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_varms.c b/nc_test4/tst_varms.c index 63a3e8e0a4..23990b32fb 100644 --- a/nc_test4/tst_varms.c +++ b/nc_test4/tst_varms.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_vars.c b/nc_test4/tst_vars.c index dfd8502bb5..5ff8b02a73 100644 --- a/nc_test4/tst_vars.c +++ b/nc_test4/tst_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars2.c b/nc_test4/tst_vars2.c index 9531427f49..f94c71d75b 100644 --- a/nc_test4/tst_vars2.c +++ b/nc_test4/tst_vars2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars3.c b/nc_test4/tst_vars3.c index 229ae15dfe..c7be6dedf1 100644 --- a/nc_test4/tst_vars3.c +++ b/nc_test4/tst_vars3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars4.c b/nc_test4/tst_vars4.c index 19610a7b29..bb571ea7f2 100644 --- a/nc_test4/tst_vars4.c +++ b/nc_test4/tst_vars4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_varsperf.c b/nc_test4/tst_varsperf.c index 3aac8bab49..7a276f2429 100644 --- a/nc_test4/tst_varsperf.c +++ b/nc_test4/tst_varsperf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with a large variable for the purpose @@ -47,11 +58,11 @@ buildfile(void) if(nc_def_dim(ncid,DIM0,(size_t)DIMSIZE0,&dimids[0])) ERR; if(nc_def_dim(ncid,DIM1,(size_t)DIMSIZE1,&dimids[1])) ERR; if(nc_def_var(ncid,VAR,NC_INT,NDIMS,dimids,&varid)) ERR; - + if(nc_enddef(ncid)) ERR; for(p=data,index=0;index Date: Thu, 6 Dec 2018 15:36:53 -0700 Subject: [PATCH 30/38] ncdump, other directories updated with copyright stanza. --- ncdap_test/CMakeLists.txt | 8 +- ncdap_test/Makefile.am | 2 +- ncdap_test/expected3/CMakeLists.txt | 6 + ncdap_test/expected3/Makefile.am | 4 +- ncdap_test/expectremote3/CMakeLists.txt | 6 + ncdap_test/expectremote3/Makefile.am | 2 +- ncdap_test/expecttds3/CMakeLists.txt | 6 + ncdap_test/expecttds3/Makefile.am | 2 +- ncdap_test/findtestserver.c.in | 14 +- ncdap_test/nocacheremote3/CMakeLists.txt | 6 + ncdap_test/nocacheremote3/Makefile.am | 2 +- ncdap_test/special3/CMakeLists.txt | 6 + ncdap_test/t_auth.c | 12 +- ncdap_test/t_dap.c | 17 +- ncdap_test/t_dap3a.c | 17 +- ncdap_test/t_dap3b.c | 10 + ncdap_test/t_dap3c.c | 12 +- ncdap_test/t_misc.c | 12 +- ncdap_test/t_ncf330.c | 9 +- ncdap_test/t_srcdir.h | 12 +- ncdap_test/test_cvt.c | 16 +- ncdap_test/test_environment.c | 12 +- ncdap_test/test_nstride_cached.c | 10 + ncdap_test/test_partvar.c | 500 ++-- ncdap_test/test_partvar2.c | 2820 +++++++++++----------- ncdap_test/test_vara.c | 532 ++-- ncdap_test/testdata3/CMakeLists.txt | 8 +- ncdump/CMakeLists.txt | 6 + ncdump/Makefile.am | 2 +- ncdump/bom.c | 2 +- ncdump/cdl.h | 2 +- ncdump/cdl/CMakeLists.txt | 6 + ncdump/cdl/Makefile.am | 4 +- ncdump/chunkspec.c | 26 +- ncdump/chunkspec.h | 2 +- ncdump/dimmap.c | 2 +- ncdump/dimmap.h | 2 +- ncdump/dumplib.c | 2 +- ncdump/dumplib.h | 2 +- ncdump/expected/CMakeLists.txt | 6 + ncdump/expected/Makefile.am | 3 +- ncdump/indent.c | 2 +- ncdump/indent.h | 2 +- ncdump/isnan.h | 2 +- ncdump/list.c | 2 +- ncdump/list.h | 2 +- ncdump/nc4print.c | 2 +- ncdump/nccomps.h | 2 +- ncdump/nccopy.c | 2 +- ncdump/ncdump.c | 4 +- ncdump/ncdump.h | 2 +- ncdump/nciter.c | 2 +- ncdump/nciter.h | 2 +- ncdump/nctime0.c | 2 +- ncdump/nctime0.h | 2 +- ncdump/nctrunc.c | 2 +- ncdump/ocprint.c | 2 +- ncdump/rewrite-scalar.c | 2 +- ncdump/tst_chunking.c | 2 +- ncdump/tst_comp.c | 2 +- ncdump/tst_comp2.c | 2 +- ncdump/tst_compress.c | 2 +- ncdump/tst_create_files.c | 2 +- ncdump/tst_dimsizes.c | 11 + ncdump/tst_enum_data.c | 2 +- ncdump/tst_fileinfo.c | 2 +- ncdump/tst_fillbug.c | 2 +- ncdump/tst_group_data.c | 2 +- ncdump/tst_h_rdc0.c | 2 +- ncdump/tst_h_scalar.c | 2 +- ncdump/tst_nans.c | 2 +- ncdump/tst_opaque_data.c | 2 +- ncdump/tst_special_atts.c | 2 +- ncdump/tst_string_data.c | 2 +- ncdump/tst_unicode.c | 2 +- ncdump/tst_utf8.c | 2 +- ncdump/tst_vlen_data.c | 2 +- ncdump/tst_vlen_demo.c | 11 + ncdump/utils.c | 2 +- ncdump/utils.h | 2 +- ncdump/vardata.c | 2 +- ncdump/vardata.h | 2 +- 82 files changed, 2226 insertions(+), 2006 deletions(-) diff --git a/ncdap_test/CMakeLists.txt b/ncdap_test/CMakeLists.txt index 603409269b..3030f79f3e 100644 --- a/ncdap_test/CMakeLists.txt +++ b/ncdap_test/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. add_definitions(-D"TOPSRCDIR=${CMAKE_SOURCE_DIR}") add_definitions(-D"TOPBINDIR=${CMAKE_BINARY_DIR}") @@ -35,7 +41,7 @@ IF(ENABLE_TESTS) IF(ENABLE_DAP_LONG_TESTS) add_sh_test(ncdap tst_longremote3) ENDIF(ENABLE_DAP_LONG_TESTS) - + ENDIF(BUILD_UTILITIES) IF(ENABLE_DAP_AUTH_TESTS) diff --git a/ncdap_test/Makefile.am b/ncdap_test/Makefile.am index 0c4e5d9d83..1e38959b12 100644 --- a/ncdap_test/Makefile.am +++ b/ncdap_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2011, see the COPYRIGHT file for more information. +# Copyright 2018v, see the COPYRIGHT file for more information. # This file builds and runs DAP tests. diff --git a/ncdap_test/expected3/CMakeLists.txt b/ncdap_test/expected3/CMakeLists.txt index d46021ec04..5df1d4251b 100644 --- a/ncdap_test/expected3/CMakeLists.txt +++ b/ncdap_test/expected3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/expected3/Makefile.am b/ncdap_test/expected3/Makefile.am index 8e5c485f15..1c5077c998 100644 --- a/ncdap_test/expected3/Makefile.am +++ b/ncdap_test/expected3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files @@ -36,5 +36,3 @@ test.vs3.dmp test.vs4.dmp test.vs5.dmp \ text.nc.dmp whoi.dmp \ testData.nc.dmp kwcase.nc.dmp fillmismatch.nc.dmp \ CMakeLists.txt - - diff --git a/ncdap_test/expectremote3/CMakeLists.txt b/ncdap_test/expectremote3/CMakeLists.txt index d46021ec04..5df1d4251b 100644 --- a/ncdap_test/expectremote3/CMakeLists.txt +++ b/ncdap_test/expectremote3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/expectremote3/Makefile.am b/ncdap_test/expectremote3/Makefile.am index 4c562e7ff0..be245138b6 100644 --- a/ncdap_test/expectremote3/Makefile.am +++ b/ncdap_test/expectremote3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files diff --git a/ncdap_test/expecttds3/CMakeLists.txt b/ncdap_test/expecttds3/CMakeLists.txt index d46021ec04..5df1d4251b 100644 --- a/ncdap_test/expecttds3/CMakeLists.txt +++ b/ncdap_test/expecttds3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/expecttds3/Makefile.am b/ncdap_test/expecttds3/Makefile.am index f9a190a6fb..bd7de1c6f7 100644 --- a/ncdap_test/expecttds3/Makefile.am +++ b/ncdap_test/expecttds3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files diff --git a/ncdap_test/findtestserver.c.in b/ncdap_test/findtestserver.c.in index 339301a6a3..1d90a74519 100644 --- a/ncdap_test/findtestserver.c.in +++ b/ncdap_test/findtestserver.c.in @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -42,7 +52,7 @@ main(int argc, char** argv) argc--; argv++; if(argc < 2) - usage(); + usage(); proto = strdup(argv[0]); servlet = strdup(argv[1]); if(argc >= 3) @@ -76,7 +86,7 @@ main(int argc, char** argv) printf("%s",url); fflush(stdout); /* clean up */ - free(serverlist); + free(serverlist); free(url); exit(0); } diff --git a/ncdap_test/nocacheremote3/CMakeLists.txt b/ncdap_test/nocacheremote3/CMakeLists.txt index d46021ec04..5df1d4251b 100644 --- a/ncdap_test/nocacheremote3/CMakeLists.txt +++ b/ncdap_test/nocacheremote3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/nocacheremote3/Makefile.am b/ncdap_test/nocacheremote3/Makefile.am index a9c963bae8..691df5cda6 100644 --- a/ncdap_test/nocacheremote3/Makefile.am +++ b/ncdap_test/nocacheremote3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files diff --git a/ncdap_test/special3/CMakeLists.txt b/ncdap_test/special3/CMakeLists.txt index 2332d8f855..b21e9d53bf 100644 --- a/ncdap_test/special3/CMakeLists.txt +++ b/ncdap_test/special3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/t_auth.c b/ncdap_test/t_auth.c index 92c0fc803d..6009426dcc 100644 --- a/ncdap_test/t_auth.c +++ b/ncdap_test/t_auth.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -148,7 +158,7 @@ testrc(const char* prefix, const char* url) if(rc == NULL) { fprintf(stderr,"Cannot create ./%s\n",RC); exit(1); - } + } fclose(rc); fillrc(rcpath); retval = nc_open(url, 0, &ncid); diff --git a/ncdap_test/t_dap.c b/ncdap_test/t_dap.c index a73bb6b5a0..5c45e69e7f 100644 --- a/ncdap_test/t_dap.c +++ b/ncdap_test/t_dap.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3a.c b/ncdap_test/t_dap3a.c index 535579aced..f043e28857 100644 --- a/ncdap_test/t_dap3a.c +++ b/ncdap_test/t_dap3a.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define NETCDF3ONLY #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3b.c b/ncdap_test/t_dap3b.c index 706f913d3a..36b36abb61 100644 --- a/ncdap_test/t_dap3b.c +++ b/ncdap_test/t_dap3b.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include diff --git a/ncdap_test/t_dap3c.c b/ncdap_test/t_dap3c.c index 313437b87f..299d7491e7 100644 --- a/ncdap_test/t_dap3c.c +++ b/ncdap_test/t_dap3c.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -20,7 +30,7 @@ main() int i32[100]; size_t start[1]; size_t count[1]; - int ok = 1; + int ok = 1; const char* topsrcdir; char url[4096]; diff --git a/ncdap_test/t_misc.c b/ncdap_test/t_misc.c index d613f4e0d2..b158033f58 100644 --- a/ncdap_test/t_misc.c +++ b/ncdap_test/t_misc.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -46,7 +56,7 @@ main() svcurl = nc_findtestserver(servlet,0,serverlist); if(svcurl == NULL) { fprintf(stderr,"not found: %s\n",servlet); - exit(1); + exit(1); } snprintf(url,sizeof(url),FURL,svcurl); diff --git a/ncdap_test/t_ncf330.c b/ncdap_test/t_ncf330.c index d68f8202c1..20fac197a4 100644 --- a/ncdap_test/t_ncf330.c +++ b/ncdap_test/t_ncf330.c @@ -1,5 +1,12 @@ /*! Test program for netcdf issue NCF-330 - * + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + * This test was provided by Ellen Johnson at Mathworks and * illustrates an issue currently only seen on Windows. * diff --git a/ncdap_test/t_srcdir.h b/ncdap_test/t_srcdir.h index 30a5b55720..ca1c43424d 100644 --- a/ncdap_test/t_srcdir.h +++ b/ncdap_test/t_srcdir.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define XSTRINGIFY(s) #s #define STRINGIFY(s) XSTRINGIFY(s) @@ -20,7 +30,7 @@ gettopsrcdir(void) if(topsrcdir == NULL) { fprintf(stderr,"*** FAIL: $abs_top_srcdir not defined\n"); exit(1); - } + } fprintf(stderr,"topsrcdir=%s\n",topsrcdir); return topsrcdir; } diff --git a/ncdap_test/test_cvt.c b/ncdap_test/test_cvt.c index f9bb03f71e..24915c49e8 100644 --- a/ncdap_test/test_cvt.c +++ b/ncdap_test/test_cvt.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -119,7 +129,7 @@ int main() /* location of our target url: use file// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -136,7 +146,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -368,7 +378,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); diff --git a/ncdap_test/test_environment.c b/ncdap_test/test_environment.c index 6c2eeb9f8f..e5dbb4d397 100644 --- a/ncdap_test/test_environment.c +++ b/ncdap_test/test_environment.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -26,7 +36,7 @@ main(int argc, char** argv) int c = *p; if(c >= 'A' && c <= 'Z') c = ((c - 'A') + 'a'); *p = (char)c; - } + } do { #ifdef TOPSRCDIR if(strcmp(arg,"topsrcdir") == 0) { diff --git a/ncdap_test/test_nstride_cached.c b/ncdap_test/test_nstride_cached.c index 985fb30ca2..d2bc42c8c8 100644 --- a/ncdap_test/test_nstride_cached.c +++ b/ncdap_test/test_nstride_cached.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Report from Ansely Manke: I've attached a file with a short c program that diff --git a/ncdap_test/test_partvar.c b/ncdap_test/test_partvar.c index fe2b958086..236afbb3f9 100644 --- a/ncdap_test/test_partvar.c +++ b/ncdap_test/test_partvar.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf ingrid { dimensions: ISTA = 35 ; @@ -40,7 +50,7 @@ netcdf ingrid { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -85,7 +95,7 @@ void dump(float* source, size_t start, size_t count) if((i % 6) == 5) printf("\n"); } printf("\n"); -#endif +#endif } int @@ -136,7 +146,7 @@ main() #ifdef DEBUG dump((float*)targetpart,0,ISTA*IZ); -#endif +#endif /* validate the part var */ if(!check(targetpart,start0,count0)) goto fail; @@ -156,7 +166,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -250,282 +260,282 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[ISTA*IZ] = { - 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, - 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, - 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, - 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, - 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, - 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, - 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, + 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, + 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, + 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, + 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, + 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, + 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, + 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, 0.4168708, - 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, - 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, - 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, - 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, - 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, - 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, - 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, + 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, + 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, + 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, + 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, + 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, + 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, + 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, 0.7578425, 0.764329, - 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, - 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, - 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, - 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, - 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, - 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, + 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, + 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, + 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, + 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, + 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, + 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, 0.9520903, 0.9551008, 0.9580159, 0.960835, 0.9635582, 0.966185, - 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, - 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, - 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, - 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, - 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, - 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, + 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, + 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, + 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, + 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, + 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, + 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, 0.9916648, 0.9903268, 0.9888898, 0.9873539, 0.9857192, 0.983986, - 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, - 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, - 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, - 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, - 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, - 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, + 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, + 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, + 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, + 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, + 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, + 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, 0.8476778, 0.8423305, 0.8368988, 0.8313835, 0.825785, 0.8201039, 0.8143409, - 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, - 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, - 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, - 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, - 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, - 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, - 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, + 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, + 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, + 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, + 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, + 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, + 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, + 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, 0.4982616, 0.4895666, - 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, - 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, - 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, - 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, - 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, - 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, + 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, + 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, + 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, + 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, + 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, + 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, 0.1212933, 0.1113612, 0.101418, 0.09146464, 0.08150215, 0.07153151, - 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, - 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, - -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, - -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, - -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, - -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, - -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, + 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, + 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, + -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, + -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, + -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, + -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, + -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, -0.3319852, -0.3414013, -0.3507832, -0.3601301, - -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, - -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, - -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, - -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, - -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, - -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, - -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, + -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, + -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, + -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, + -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, + -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, + -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, + -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, -0.7162456, -0.7231881, - -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, - -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, - -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, - -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, - -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, - -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, - -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, + -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, + -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, + -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, + -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, + -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, + -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, + -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, -0.9452655, -0.9484812, - -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, - -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, - -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, - -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, - -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, - -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, - -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, + -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, + -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, + -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, + -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, + -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, + -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, + -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, -0.9942155, -0.9930918, - -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, - -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, - -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, - -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, - -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, - -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, - -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, + -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, + -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, + -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, + -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, + -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, + -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, + -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, -0.8537708, -0.8485217, - -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, - -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, - -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, - -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, - -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, - -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, - -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, + -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, + -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, + -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, + -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, + -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, + -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, + -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, -0.5506855, -0.542311, - -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, - -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, - -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, - -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, - -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, - -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, - -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, + -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, + -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, + -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, + -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, + -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, + -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, + -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, -0.1426965, -0.1327919, - -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, - -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, - -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, - 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, - 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, - 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, - 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, + -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, + -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, + -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, + 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, + 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, + 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, + 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, 0.2924757, 0.3020236, - 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, - 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, - 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, - 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, - 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, - 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, - 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, + 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, + 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, + 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, + 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, + 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, + 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, + 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, 0.6793047, - 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, - 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, - 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, - 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, - 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, - 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, - 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, + 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, + 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, + 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, + 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, + 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, + 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, + 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, 0.9271804, - 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, - 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, - 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, - 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, - 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, - 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, - 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, + 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, + 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, + 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, + 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, + 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, + 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, + 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, 0.9984314, - 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, - 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, - 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, - 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, - 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, - 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, + 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, + 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, + 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, + 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, + 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, + 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, 0.9064404, 0.9021719, 0.897813, 0.8933644, 0.8888265, 0.8841997, 0.8794845, - 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, - 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, - 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, - 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, - 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, - 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, + 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, + 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, + 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, + 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, + 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, + 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, 0.6402149, 0.6325011, 0.624724, 0.6168844, 0.6089832, 0.601021, 0.5929987, - 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, - 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, - 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, - 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, - 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, - 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, - 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, + 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, + 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, + 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, + 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, + 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, + 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, + 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, 0.2033498, 0.1935487, - 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, - 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, - 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, - 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, - -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, - -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, - -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, + 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, + 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, + 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, + 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, + -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, + -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, + -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, -0.2135644, -0.2233228, -0.2330589, -0.2427717, - -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, - -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, - -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, - -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, - -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, - -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, - -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, + -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, + -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, + -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, + -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, + -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, + -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, + -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, -0.6250706, -0.6328449, - -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, - -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, - -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, - -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, - -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, - -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, - -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, + -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, + -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, + -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, + -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, + -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, + -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, + -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, -0.8980085, -0.9023633, - -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, - -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, - -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, - -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, - -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, - -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, - -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, + -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, + -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, + -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, + -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, + -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, + -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, + -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, -0.9998787, -0.9999844, - -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, - -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, - -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, - -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, - -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, - -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, - -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, + -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, + -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, + -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, + -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, + -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, + -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, + -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, -0.9112754, -0.9071119, - -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, - -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, - -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, - -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, - -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, - -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, - -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, + -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, + -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, + -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, + -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, + -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, + -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, + -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, -0.6490771, -0.6414375, - -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, - -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, - -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, - -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, - -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, - -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, - -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, + -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, + -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, + -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, + -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, + -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, + -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, + -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, -0.2632318, -0.2535715, - -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, - -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, - -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, - -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, - -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, - 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, - 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, + -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, + -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, + -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, + -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, + -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, + 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, + 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, 0.1530258, 0.1629002, 0.1727583, 0.1825991, - 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, - 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, - 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, - 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, - 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, - 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, - 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, + 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, + 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, + 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, + 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, + 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, + 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, + 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, 0.5758385, 0.5839852, - 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, - 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, - 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, - 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, - 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, - 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, + 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, + 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, + 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, + 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, + 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, + 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, 0.8487566, 0.8540019, 0.8591618, 0.8642358, 0.8692234, 0.8741241, - 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, - 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, - 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, - 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, - 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, - 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, - 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, + 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, + 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, + 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, + 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, + 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, + 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, + 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, 0.9970241, 0.9977452, - 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, - 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, - 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, - 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, - 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, - 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, + 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, + 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, + 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, + 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, + 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, + 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, 0.9514655, 0.9483404, 0.9451205, 0.9418061, 0.9383975, 0.934895, 0.9312991, - 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, - 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, - 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, - 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, - 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, - 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, - 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, + 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, + 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, + 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, + 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, + 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, + 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, + 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, 0.6946716, 0.6874437, - 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, - 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, - 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, - 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, - 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, - 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, - 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, + 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, + 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, + 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, + 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, + 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, + 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, + 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, 0.3221155, 0.3126326 }; diff --git a/ncdap_test/test_partvar2.c b/ncdap_test/test_partvar2.c index 3d22518081..1965507251 100644 --- a/ncdap_test/test_partvar2.c +++ b/ncdap_test/test_partvar2.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: Bands\:PolarGrid = 3 ; @@ -44,7 +54,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -140,7 +150,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -233,1410 +243,1410 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[YDim_UTMGrid*XDim_UTMGrid] = { - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; diff --git a/ncdap_test/test_vara.c b/ncdap_test/test_vara.c index b819a29c5f..aee2d2865f 100644 --- a/ncdap_test/test_vara.c +++ b/ncdap_test/test_vara.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -5,7 +15,7 @@ #include "netcdf.h" #include "t_srcdir.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -37,7 +47,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -165,7 +175,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -187,7 +197,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -205,366 +215,366 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } #ifdef IGNORE static float threeD_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; #endif diff --git a/ncdap_test/testdata3/CMakeLists.txt b/ncdap_test/testdata3/CMakeLists.txt index ce0734596c..5df1d4251b 100644 --- a/ncdap_test/testdata3/CMakeLists.txt +++ b/ncdap_test/testdata3/CMakeLists.txt @@ -1,6 +1,12 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am) -ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") \ No newline at end of file +ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") diff --git a/ncdump/CMakeLists.txt b/ncdump/CMakeLists.txt index 4201ef44a1..0dc02b2d58 100644 --- a/ncdump/CMakeLists.txt +++ b/ncdump/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncdump/Makefile.am b/ncdump/Makefile.am index 0b9e5648b9..fcd2d51006 100644 --- a/ncdump/Makefile.am +++ b/ncdump/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncdump program. # Ed Hartnett, Dennis Heimbigner, Ward Fisher diff --git a/ncdump/bom.c b/ncdump/bom.c index eb2469001b..70192faf25 100644 --- a/ncdump/bom.c +++ b/ncdump/bom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/cdl.h b/ncdump/cdl.h index afa12defac..5272c1cbdf 100644 --- a/ncdump/cdl.h +++ b/ncdump/cdl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/cdl.h,v 1.3 2008/12/22 16:42:36 russ Exp $ *********************************************************************/ diff --git a/ncdump/cdl/CMakeLists.txt b/ncdump/cdl/CMakeLists.txt index 8c089e215e..07ec662c13 100644 --- a/ncdump/cdl/CMakeLists.txt +++ b/ncdump/cdl/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/cdl/Makefile.am b/ncdump/cdl/Makefile.am index 45a399800e..45b76c7713 100644 --- a/ncdump/cdl/Makefile.am +++ b/ncdump/cdl/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files @@ -26,5 +26,3 @@ ref_niltest.cdl ref_tst_h_scalar.cdl ref_tst_econst.cdl \ ref_tst_nul3.cdl ref_tst_nul4.cdl ref_tst_names.cdl \ ref_tst_long_charconst.cdl tst_chararray.cdl ref_keyword.cdl \ CMakeLists.txt - - diff --git a/ncdump/chunkspec.c b/ncdump/chunkspec.c index 3117b2fc40..e48df5f7af 100644 --- a/ncdump/chunkspec.c +++ b/ncdump/chunkspec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ @@ -62,7 +62,7 @@ chunkspec_parse(int igrp, const char *spec) /* * Parse chunkspec string and convert into dimchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * dim1/n1,dim2/n2,...,dimk/nk * specifying chunk size (ni) to be used for dimension named * dimi. Dimension names may be absolute, @@ -72,7 +72,7 @@ chunkspec_parse(int igrp, const char *spec) * not mentioned in the string. However, for unlimited dimensions, * the default is a default size: 4 megabytes or the * existing unlimited size if smaller. - * If the chunkspec string is "/", specifying no dimensions or + * If the chunkspec string is "/", specifying no dimensions or * chunk sizes, it indicates chunking to be turned off on output. * * Returns NC_NOERR if no error, NC_EINVAL if spec has consecutive @@ -126,7 +126,7 @@ dimchunkspec_parse(int igrp, const char *spec) char *dp; int dimid; size_t chunksize; - + for(; pp > np && *pp != '/'; pp--) { /* look backwards for "/" */ continue; } @@ -187,7 +187,7 @@ dimchunkspec_size(int indimid) { for(idim = 0; idim < dimchunkspecs.ndims; idim++) { if(indimid == dimchunkspecs.idimids[idim]) { return dimchunkspecs.chunksizes[idim]; - } + } } return 0; } @@ -211,7 +211,7 @@ dimchunkspec_omit(void) { /* * Parse per-variable chunkspec string and convert into varchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * var:n1,n2,...nk * * specifying chunk size (ni) to be used for ith dimension of @@ -251,7 +251,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Lookup the variable by name */ ret = nc_inq_varid2(igrp, spec, &chunkspec->ivarid, &chunkspec->igrpid); if(ret != NC_NOERR) goto done; - + if(*p == '\0') {/* we have -c var: => do not chunk var */ chunkspec->omit = 1; /* add the chunkspec to our list */ @@ -264,16 +264,16 @@ varchunkspec_parse(int igrp, const char *spec0) while(*p) { unsigned long dimsize; q = strchr(p,','); - if(q == NULL) + if(q == NULL) q = p + strlen(p); /* Fake the endpoint */ else *q++ = '\0'; - + /* Scan as unsigned long */ if(sscanf(p,"%lu",&dimsize) != 1) {ret = NC_EINVAL; goto done;} /* Apparently not a valid dimension size */ if(chunkspec->rank >= NC_MAX_VAR_DIMS) {ret = NC_EINVAL; goto done;} /* to many chunks */ - chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; + chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; chunkspec->rank++; p = q; } @@ -281,7 +281,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Get some info about the var (from input) */ ret = nc_inq_var(chunkspec->igrpid,chunkspec->ivarid,NULL,NULL,&rank,dimids,NULL); if(ret != NC_NOERR) goto done; - + /* 1. check # chunksizes == rank of variable */ if(rank != chunkspec->rank) {ret = NC_EINVAL; goto done;} @@ -292,7 +292,7 @@ varchunkspec_parse(int igrp, const char *spec0) if(ret != NC_NOERR) goto done; if(chunkspec->chunksizes[i] > len) {ret = NC_EBADCHUNK; goto done;} } - + /* add the chunkspec to our list */ listpush(varchunkspecs,chunkspec); chunkspec = NULL; @@ -354,5 +354,3 @@ varchunkspec_rank(int igrpid, int ivarid) } return 0; } - - diff --git a/ncdump/chunkspec.h b/ncdump/chunkspec.h index 5c7d68d189..9b965ae40d 100644 --- a/ncdump/chunkspec.h +++ b/ncdump/chunkspec.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.c b/ncdump/dimmap.c index ef7ae3d6c9..fffff30f31 100644 --- a/ncdump/dimmap.c +++ b/ncdump/dimmap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.h b/ncdump/dimmap.h index a821b37ab6..7850aadb61 100644 --- a/ncdump/dimmap.h +++ b/ncdump/dimmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dumplib.c b/ncdump/dumplib.c index c801f5986c..598bdbabe2 100644 --- a/ncdump/dumplib.c +++ b/ncdump/dumplib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.c,v 1.85 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/dumplib.h b/ncdump/dumplib.h index 2ce26ea06f..438977e22c 100644 --- a/ncdump/dumplib.h +++ b/ncdump/dumplib.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.h,v 1.28 2009/08/13 21:06:13 russ Exp $ *********************************************************************/ diff --git a/ncdump/expected/CMakeLists.txt b/ncdump/expected/CMakeLists.txt index f5e836ea67..0aa7ca4dde 100644 --- a/ncdump/expected/CMakeLists.txt +++ b/ncdump/expected/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/expected/Makefile.am b/ncdump/expected/Makefile.am index 291f46937f..775d635528 100644 --- a/ncdump/expected/Makefile.am +++ b/ncdump/expected/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the test comparison files @@ -25,4 +25,3 @@ CMakeLists.txt # These do not exist because they are not run as usual tests # bigf1.dmp bigf2.dmp bigf3.dmp bigr1.dmp bigr2.dmp bigr3.dmp gfs1.dmp - diff --git a/ncdump/indent.c b/ncdump/indent.c index 79c95a5450..3678db7b22 100644 --- a/ncdump/indent.c +++ b/ncdump/indent.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/indent.c,v 1.6 2009/09/28 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncdump/indent.h b/ncdump/indent.h index 15b8981f0c..9bf502c876 100644 --- a/ncdump/indent.h +++ b/ncdump/indent.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/isnan.h b/ncdump/isnan.h index c62f801fe6..9c51c94f6e 100644 --- a/ncdump/isnan.h +++ b/ncdump/isnan.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/list.c b/ncdump/list.c index 30570a43ce..d5f442d76a 100644 --- a/ncdump/list.c +++ b/ncdump/list.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include diff --git a/ncdump/list.h b/ncdump/list.h index 2206af37dc..86f85cc262 100644 --- a/ncdump/list.h +++ b/ncdump/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncdump/nc4print.c b/ncdump/nc4print.c index 9fda8d792c..0dab9cd9bb 100644 --- a/ncdump/nc4print.c +++ b/ncdump/nc4print.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/nccomps.h b/ncdump/nccomps.h index 926cf9cd6e..64614df633 100644 --- a/ncdump/nccomps.h +++ b/ncdump/nccomps.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research/Unidata. See \ref copyright file for copying and * redistribution conditionsmore information. *********************************************************************/ diff --git a/ncdump/nccopy.c b/ncdump/nccopy.c index 6c5243d500..87babfc086 100644 --- a/ncdump/nccopy.c +++ b/ncdump/nccopy.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Thanks to Philippe Poilbarbe and Antonio S. Cofiño for * compression additions. diff --git a/ncdump/ncdump.c b/ncdump/ncdump.c index abbde44e1f..ba8d43cdce 100644 --- a/ncdump/ncdump.c +++ b/ncdump/ncdump.c @@ -1,6 +1,6 @@ -/* +/*! \file -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "config.h" diff --git a/ncdump/ncdump.h b/ncdump/ncdump.h index 4773441a7a..d5a95ef1be 100644 --- a/ncdump/ncdump.h +++ b/ncdump/ncdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/ncdump.h,v 1.34 2009/12/02 20:03:43 russ Exp $ *********************************************************************/ diff --git a/ncdump/nciter.c b/ncdump/nciter.c index aa9a7f0599..829e3048f6 100644 --- a/ncdump/nciter.c +++ b/ncdump/nciter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.c 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nciter.h b/ncdump/nciter.h index 1da51832f2..37def81e98 100644 --- a/ncdump/nciter.h +++ b/ncdump/nciter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.h 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nctime0.c b/ncdump/nctime0.c index 8af924d978..540c265e10 100644 --- a/ncdump/nctime0.c +++ b/ncdump/nctime0.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/nctime0.h b/ncdump/nctime0.h index c3558e2849..2ffa2ab598 100644 --- a/ncdump/nctime0.h +++ b/ncdump/nctime0.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/nctrunc.c b/ncdump/nctrunc.c index b64c163aba..c9d07fba6d 100644 --- a/ncdump/nctrunc.c +++ b/ncdump/nctrunc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/ocprint.c b/ncdump/ocprint.c index d64bf4373d..4ea454a300 100644 --- a/ncdump/ocprint.c +++ b/ncdump/ocprint.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define VALIDATE diff --git a/ncdump/rewrite-scalar.c b/ncdump/rewrite-scalar.c index a8db86817f..2d147b63b8 100644 --- a/ncdump/rewrite-scalar.c +++ b/ncdump/rewrite-scalar.c @@ -1,6 +1,6 @@ /********************************************************************* * This is part of the Unidata netCDF package. - * Copyright 2006, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * This program is part of the testing of file lengths done by the diff --git a/ncdump/tst_chunking.c b/ncdump/tst_chunking.c index 589f1c683d..95cd92010b 100644 --- a/ncdump/tst_chunking.c +++ b/ncdump/tst_chunking.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp.c b/ncdump/tst_comp.c index 6768f490b3..e230198122 100644 --- a/ncdump/tst_comp.c +++ b/ncdump/tst_comp.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp2.c b/ncdump/tst_comp2.c index 7ed2e9b1e1..b2566f4a61 100644 --- a/ncdump/tst_comp2.c +++ b/ncdump/tst_comp2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_compress.c b/ncdump/tst_compress.c index 7c6b730a36..e226e84a34 100644 --- a/ncdump/tst_compress.c +++ b/ncdump/tst_compress.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_create_files.c b/ncdump/tst_create_files.c index 1937d85fa3..be9d55662b 100644 --- a/ncdump/tst_create_files.c +++ b/ncdump/tst_create_files.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007, University +/* This is part of the netCDF package. Copyright 2018-2007, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_dimsizes.c b/ncdump/tst_dimsizes.c index 28ba66bdf7..bc2ca0d72c 100644 --- a/ncdump/tst_dimsizes.c +++ b/ncdump/tst_dimsizes.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include "err_macros.h" diff --git a/ncdump/tst_enum_data.c b/ncdump/tst_enum_data.c index b5db7f5aa2..181be12821 100644 --- a/ncdump/tst_enum_data.c +++ b/ncdump/tst_enum_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_fileinfo.c b/ncdump/tst_fileinfo.c index 1748b8c1b8..471f97c5d2 100644 --- a/ncdump/tst_fileinfo.c +++ b/ncdump/tst_fileinfo.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_fillbug.c b/ncdump/tst_fillbug.c index 1ae7f5954d..4f9aafd15b 100644 --- a/ncdump/tst_fillbug.c +++ b/ncdump/tst_fillbug.c @@ -1,5 +1,5 @@ /* -This is part of the netCDF package. Copyright 2017 University +This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_group_data.c b/ncdump/tst_group_data.c index 00d5cb7d71..d8f4e29a45 100644 --- a/ncdump/tst_group_data.c +++ b/ncdump/tst_group_data.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2005-2007, University Corporation for Atmospheric + Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. This program creates a test file with groups for ncdump to read. diff --git a/ncdump/tst_h_rdc0.c b/ncdump/tst_h_rdc0.c index 5a3c0606aa..04bc1d0e95 100644 --- a/ncdump/tst_h_rdc0.c +++ b/ncdump/tst_h_rdc0.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Use HDF5 to read c0.nc, a file created by ncdump. This check was diff --git a/ncdump/tst_h_scalar.c b/ncdump/tst_h_scalar.c index 6fd640cdc9..ea3cb0a9fd 100644 --- a/ncdump/tst_h_scalar.c +++ b/ncdump/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_nans.c b/ncdump/tst_nans.c index 36c2100148..0e3efdd488 100644 --- a/ncdump/tst_nans.c +++ b/ncdump/tst_nans.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_opaque_data.c b/ncdump/tst_opaque_data.c index 564c1000e0..8df43ce669 100644 --- a/ncdump/tst_opaque_data.c +++ b/ncdump/tst_opaque_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_special_atts.c b/ncdump/tst_special_atts.c index f4ac1d8ee8..7343bb6674 100644 --- a/ncdump/tst_special_atts.c +++ b/ncdump/tst_special_atts.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_string_data.c b/ncdump/tst_string_data.c index 47b1e00a89..befe1f4b0e 100644 --- a/ncdump/tst_string_data.c +++ b/ncdump/tst_string_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_unicode.c b/ncdump/tst_unicode.c index 83dd839ad6..5711e554ec 100644 --- a/ncdump/tst_unicode.c +++ b/ncdump/tst_unicode.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_utf8.c b/ncdump/tst_utf8.c index 51db4e2370..02844febcf 100644 --- a/ncdump/tst_utf8.c +++ b/ncdump/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_vlen_data.c b/ncdump/tst_vlen_data.c index 3ae539f610..322f8db089 100644 --- a/ncdump/tst_vlen_data.c +++ b/ncdump/tst_vlen_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_vlen_demo.c b/ncdump/tst_vlen_demo.c index 1fe598facd..691d3f5747 100644 --- a/ncdump/tst_vlen_demo.c +++ b/ncdump/tst_vlen_demo.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include "netcdf.h" diff --git a/ncdump/utils.c b/ncdump/utils.c index 0af3c9ebd6..b6d98c6265 100644 --- a/ncdump/utils.c +++ b/ncdump/utils.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Id$ *********************************************************************/ diff --git a/ncdump/utils.h b/ncdump/utils.h index c88981f38b..ef872d0d2b 100644 --- a/ncdump/utils.h +++ b/ncdump/utils.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * * Stuff that's common to both ncdump and nccopy diff --git a/ncdump/vardata.c b/ncdump/vardata.c index 5089829d3e..b7b59d3594 100644 --- a/ncdump/vardata.c +++ b/ncdump/vardata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/vardata.c,v 1.48 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/vardata.h b/ncdump/vardata.h index a705207208..aa2e0d9aaf 100644 --- a/ncdump/vardata.h +++ b/ncdump/vardata.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ From 7fd7696940930e8155b18768886bcb1c6c1f7286 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 15:40:43 -0700 Subject: [PATCH 31/38] ncgen directory updated --- ncgen/CMakeLists.txt | 6 ++++++ ncgen/Makefile.am | 2 +- ncgen/bindata.c | 2 +- ncgen/bytebuffer.c | 2 +- ncgen/bytebuffer.h | 2 +- ncgen/cdata.c | 2 +- ncgen/cdfdata.c | 2 +- ncgen/cmldata.c | 21 ++++++++++++++++----- ncgen/cvt.c | 2 +- ncgen/data.c | 2 +- ncgen/data.h | 2 +- ncgen/debug.c | 4 ++-- ncgen/debug.h | 13 ++++++++++++- ncgen/dump.c | 2 +- ncgen/dump.h | 13 ++++++++++++- ncgen/escapes.c | 2 +- ncgen/f77data.c | 2 +- ncgen/genbin.c | 2 +- ncgen/genc.c | 2 +- ncgen/genchar.c | 2 +- ncgen/gencml.c | 2 +- ncgen/generate.c | 2 +- ncgen/generr.c | 2 +- ncgen/generr.h | 2 +- ncgen/genf77.c | 2 +- ncgen/genj.c | 2 +- ncgen/genjjni.c | 2 +- ncgen/genjstd.c | 2 +- ncgen/genlib.c | 2 +- ncgen/genlib.h | 2 +- ncgen/getfill.c | 2 +- ncgen/jdata.c | 2 +- ncgen/jdatajni.c | 13 ++++++++++++- ncgen/jdatastd.c | 2 +- ncgen/list.c | 2 +- ncgen/list.h | 2 +- ncgen/main.c | 2 +- ncgen/nc_iter.c | 2 +- ncgen/nc_iter.h | 2 +- ncgen/ncgen.h | 2 +- ncgen/ncgen.y | 8 ++++---- ncgen/ncgenl.c | 2 +- ncgen/odom.c | 2 +- ncgen/odom.h | 2 +- ncgen/semantics.c | 2 +- ncgen/util.c | 2 +- ncgen/util.h | 2 +- 47 files changed, 104 insertions(+), 54 deletions(-) diff --git a/ncgen/CMakeLists.txt b/ncgen/CMakeLists.txt index 7314acef50..f17691ca44 100644 --- a/ncgen/CMakeLists.txt +++ b/ncgen/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncgen/Makefile.am b/ncgen/Makefile.am index 9faf13c656..b9a2774e7a 100644 --- a/ncgen/Makefile.am +++ b/ncgen/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. # Put together AM_CPPFLAGS and AM_LDFLAGS. diff --git a/ncgen/bindata.c b/ncgen/bindata.c index 840dfdbb57..e9accc7b5f 100644 --- a/ncgen/bindata.c +++ b/ncgen/bindata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/bytebuffer.c b/ncgen/bytebuffer.c index 533d352697..4acf2d5241 100644 --- a/ncgen/bytebuffer.c +++ b/ncgen/bytebuffer.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/ncgen/bytebuffer.h b/ncgen/bytebuffer.h index 28c25bac7d..6ecbc5b5e7 100644 --- a/ncgen/bytebuffer.h +++ b/ncgen/bytebuffer.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef BYTEBUFFER_H diff --git a/ncgen/cdata.c b/ncgen/cdata.c index 38f8f27c2c..f1a644493a 100644 --- a/ncgen/cdata.c +++ b/ncgen/cdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/cdfdata.c b/ncgen/cdfdata.c index 40e82fbe87..34c76ac318 100644 --- a/ncgen/cdfdata.c +++ b/ncgen/cdfdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cdfdata.c,v 1.4 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/cmldata.c b/ncgen/cmldata.c index 5f6882547c..b9f43a81f2 100644 --- a/ncgen/cmldata.c +++ b/ncgen/cmldata.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #ifdef ENABLE_CML @@ -206,7 +217,7 @@ gencml_primdata(Symbol* tsym, Datasrc* src, Datalist* fillsrc, prim = srcnext(src); if(prim == NULL || prim->nctype == NC_FILLVALUE) { - gencml_fillvalue(tsym,fillsrc,src,databuf); + gencml_fillvalue(tsym,fillsrc,src,databuf); return; } @@ -327,9 +338,9 @@ xconst(Constant* ci) p = ci->value.opaquev.stringv; while(*p) { strcat(bstring,"&#"); - strncat(bstring,p,2); + strncat(bstring,p,2); strcat(bstring,";"); - p += 2; + p += 2; } return bstring; } break; @@ -471,14 +482,14 @@ gencml_stringarray(Symbol* sym, Datasrc* src, Bytebuffer* databuf) Datalist* fill = getfiller(sym); Datasrc* fillsrc = datalist2src(fill); gencml_stringarray(sym,fillsrc,databuf); - } break; + } break; default: semerror(srcline(src), "Encountered non-string constant in attribute: %s", sym->name); return; } - } + } } #endif /*ENABLE_CML*/ diff --git a/ncgen/cvt.c b/ncgen/cvt.c index d2222331eb..ba8a51fc64 100644 --- a/ncgen/cvt.c +++ b/ncgen/cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cvt.c,v 1.2 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.c b/ncgen/data.c index d8cf22679e..414c92883a 100644 --- a/ncgen/data.c +++ b/ncgen/data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: data.c,v 1.7 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.h b/ncgen/data.h index c670974d2e..8bc2ab28d0 100644 --- a/ncgen/data.h +++ b/ncgen/data.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/debug.c b/ncgen/debug.c index 0f7a227993..81f531f3fb 100644 --- a/ncgen/debug.c +++ b/ncgen/debug.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "includes.h" diff --git a/ncgen/debug.h b/ncgen/debug.h index 0a2940236c..794e1c15d2 100644 --- a/ncgen/debug.h +++ b/ncgen/debug.h @@ -1,8 +1,19 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DEBUG_H #define NCGEN_DEBUG_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/debug.h,v 1.2 2010/03/31 18:18:34 dmh Exp $ *********************************************************************/ diff --git a/ncgen/dump.c b/ncgen/dump.c index 03b553ede1..9be716864c 100644 --- a/ncgen/dump.c +++ b/ncgen/dump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: dump.c,v 1.3 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/dump.h b/ncgen/dump.h index 95e7716f4e..b727d57132 100644 --- a/ncgen/dump.h +++ b/ncgen/dump.h @@ -1,10 +1,21 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DUMP_H #define NCGEN_DUMP_H /*#define F*/ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/dump.h,v 1.2 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/escapes.c b/ncgen/escapes.c index 90c29aaa61..94efd0f2f9 100644 --- a/ncgen/escapes.c +++ b/ncgen/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/escapes.c,v 1.5 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/f77data.c b/ncgen/f77data.c index 1f753a000d..965c7ada95 100644 --- a/ncgen/f77data.c +++ b/ncgen/f77data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/genbin.c b/ncgen/genbin.c index 75d3a57402..9ca0796649 100644 --- a/ncgen/genbin.c +++ b/ncgen/genbin.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genbin.c,v 1.4 2010/05/27 21:34:17 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genc.c b/ncgen/genc.c index 5e6ebd5ef4..91293439a2 100644 --- a/ncgen/genc.c +++ b/ncgen/genc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genc.c,v 1.6 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genchar.c b/ncgen/genchar.c index bc5422f84f..f7ed3f7f40 100644 --- a/ncgen/genchar.c +++ b/ncgen/genchar.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/gencml.c b/ncgen/gencml.c index 8462df0661..48ebaf94e5 100644 --- a/ncgen/gencml.c +++ b/ncgen/gencml.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/gencml.c,v 1.5 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generate.c b/ncgen/generate.c index 2fd819085b..e25d532613 100644 --- a/ncgen/generate.c +++ b/ncgen/generate.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/generr.c b/ncgen/generr.c index 16c4b00f97..8da3049cce 100644 --- a/ncgen/generr.c +++ b/ncgen/generr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/generr.c,v 1.1 2009/09/25 18:22:22 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generr.h b/ncgen/generr.h index 86152fb362..0b2e9453c0 100644 --- a/ncgen/generr.h +++ b/ncgen/generr.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: generr.h,v 1.2 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/genf77.c b/ncgen/genf77.c index 1706d1d56c..b2a7fe790f 100644 --- a/ncgen/genf77.c +++ b/ncgen/genf77.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genf77.c,v 1.4 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genj.c b/ncgen/genj.c index 92e4e0fe6f..08dbc1c661 100644 --- a/ncgen/genj.c +++ b/ncgen/genj.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genj.c,v 1.2 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjjni.c b/ncgen/genjjni.c index 670ec8f926..018f13fd9a 100644 --- a/ncgen/genjjni.c +++ b/ncgen/genjjni.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjjni.c,v 1.6 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjstd.c b/ncgen/genjstd.c index 30638c77bd..2e8f49a3a8 100644 --- a/ncgen/genjstd.c +++ b/ncgen/genjstd.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjstd.c,v 1.4 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.c b/ncgen/genlib.c index f68a175786..9a2d652ffc 100644 --- a/ncgen/genlib.c +++ b/ncgen/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.c,v 1.57 2010/04/04 19:39:47 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.h b/ncgen/genlib.h index f7821de708..166f53f817 100644 --- a/ncgen/genlib.h +++ b/ncgen/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.h,v 1.20 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/getfill.c b/ncgen/getfill.c index 24f1f6f8e9..bd1dc3a568 100644 --- a/ncgen/getfill.c +++ b/ncgen/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/getfill.c,v 1.8 2010/04/14 22:04:56 dmh Exp $ *********************************************************************/ diff --git a/ncgen/jdata.c b/ncgen/jdata.c index f9ad0bffca..c87ea9d044 100644 --- a/ncgen/jdata.c +++ b/ncgen/jdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/jdatajni.c b/ncgen/jdatajni.c index c5d1987296..f5edb8d7e0 100644 --- a/ncgen/jdatajni.c +++ b/ncgen/jdatajni.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #include "ncoffsets.h" @@ -447,7 +458,7 @@ jopaquestring(Symbol* tsym, Constant* prim, Constant* target) ASSERT((oplen%2) == 0); opstring = (char*)ecalloc(oplen*(2+4)); - opstring[0]='\0'; + opstring[0]='\0'; p=(unsigned char*)op; for(i=0;i #include diff --git a/ncgen/list.h b/ncgen/list.h index 2206af37dc..86f85cc262 100644 --- a/ncgen/list.h +++ b/ncgen/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncgen/main.c b/ncgen/main.c index 1b28d335e0..4936381daf 100644 --- a/ncgen/main.c +++ b/ncgen/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: main.c,v 1.33 2010/05/26 21:43:36 dmh Exp $ */ diff --git a/ncgen/nc_iter.c b/ncgen/nc_iter.c index c8978fa4ec..433bb7be97 100644 --- a/ncgen/nc_iter.c +++ b/ncgen/nc_iter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/nc_iter.h b/ncgen/nc_iter.h index 8c9f70ae44..95d53b61d4 100644 --- a/ncgen/nc_iter.h +++ b/ncgen/nc_iter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/ncgen.h b/ncgen/ncgen.h index 739cd60db5..f54ed94734 100644 --- a/ncgen/ncgen.h +++ b/ncgen/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/ncgen.h,v 1.18 2010/06/01 15:34:53 ed Exp $ *********************************************************************/ diff --git a/ncgen/ncgen.y b/ncgen/ncgen.y index a72ce8a4c5..c119ce2dc6 100644 --- a/ncgen/ncgen.y +++ b/ncgen/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.42 2010/05/18 21:32:46 dmh Exp $ *********************************************************************/ @@ -957,7 +957,7 @@ makeprimitivetype(nc_type nctype) sym->typ.typecode = nctype; sym->typ.size = ncsize(nctype); sym->typ.nelems = 1; - sym->typ.alignment = ncaux_class_alignment(nctype); + sym->typ.alignment = ncaux_class_alignment(nctype); /* Make the basetype circular so we can always ask for it */ sym->typ.basetype = sym; sym->prefix = listnew(); @@ -1260,7 +1260,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) else if(tag == _NCPROPS_FLAG) { globalspecials._NCProperties = sdata; sdata = NULL; - } + } } else { Specialdata* special; /* Set up special info */ @@ -1337,7 +1337,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) break; case _CHUNKSIZES_FLAG: { int i; - list = (isconst ? const2list(con) : list); + list = (isconst ? const2list(con) : list); special->nchunks = list->length; special->_ChunkSizes = (size_t*)ecalloc(sizeof(size_t)*special->nchunks); for(i=0;inchunks;i++) { diff --git a/ncgen/ncgenl.c b/ncgen/ncgenl.c index 27fbefe8d5..6655d97369 100644 --- a/ncgen/ncgenl.c +++ b/ncgen/ncgenl.c @@ -1382,7 +1382,7 @@ char *yytext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/09/25 18:22:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen/odom.c b/ncgen/odom.c index 1e5a95fbe8..1f96828d65 100644 --- a/ncgen/odom.c +++ b/ncgen/odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: odom.c,v 1.5 2010/05/27 21:34:18 dmh Exp $ */ diff --git a/ncgen/odom.h b/ncgen/odom.h index 8f959ddb7e..9cd9a8d4f6 100644 --- a/ncgen/odom.h +++ b/ncgen/odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/semantics.c b/ncgen/semantics.c index b47886940b..7044df5e64 100644 --- a/ncgen/semantics.c +++ b/ncgen/semantics.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: semantics.c,v 1.4 2010/05/24 19:59:58 dmh Exp $ */ diff --git a/ncgen/util.c b/ncgen/util.c index dde9d35e24..04e45dd3c4 100644 --- a/ncgen/util.c +++ b/ncgen/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.c,v 1.4 2010/04/14 22:04:59 dmh Exp $ *********************************************************************/ diff --git a/ncgen/util.h b/ncgen/util.h index 7960b65131..f38c4510fe 100644 --- a/ncgen/util.h +++ b/ncgen/util.h @@ -1,7 +1,7 @@ #ifndef NCGEN_UTIL_H #define NCGEN_UTIL_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.h,v 1.3 2010/04/04 19:39:57 dmh Exp $ *********************************************************************/ From 7112422d01685ad6f2c87394010b035bbe6e6d6a Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 15:42:41 -0700 Subject: [PATCH 32/38] ncgen3 copyright stanzas updated. --- ncgen3/CMakeLists.txt | 17 +++++++++++------ ncgen3/Makefile.am | 6 +++--- ncgen3/escapes.c | 2 +- ncgen3/generic.h | 2 +- ncgen3/genlib.c | 2 +- ncgen3/genlib.h | 2 +- ncgen3/getfill.c | 2 +- ncgen3/init.c | 2 +- ncgen3/load.c | 2 +- ncgen3/main.c | 2 +- ncgen3/ncgen.h | 2 +- ncgen3/ncgen.l | 11 +++++------ ncgen3/ncgen.y | 10 +++++----- ncgen3/ncgenyy.c | 2 +- 14 files changed, 34 insertions(+), 30 deletions(-) diff --git a/ncgen3/CMakeLists.txt b/ncgen3/CMakeLists.txt index 62ff36050f..73d5c198df 100644 --- a/ncgen3/CMakeLists.txt +++ b/ncgen3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(ncgen3_FILES main.c load.c escapes.c getfill.c init.c genlib.c ncgentab.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) @@ -27,9 +33,9 @@ TARGET_LINK_LIBRARIES(ncgen3 netcdf ${ALL_TLL_LIBS}) # test scripts to work. #### IF(MSVC) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}) SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}) @@ -42,12 +48,12 @@ IF(ENABLE_TESTS) IF(USE_NETCDF4) SET(NCGEN3_TESTS ${NCGEN3_TESTS} run_nc4_tests) ENDIF() - + FOREACH(F ${NCGEN3_TESTS}) add_sh_test(ncgen3 ${F}) ENDFOREACH() ENDIF() -INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) +INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) SET(MAN_FILES ncgen3.1) IF(NOT MSVC) @@ -60,6 +66,5 @@ SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt XGetopt.c Makefile.am ncgen. ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") -SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) +SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEANFILES}") - diff --git a/ncgen3/Makefile.am b/ncgen3/Makefile.am index e20f326ecc..6c71580871 100644 --- a/ncgen3/Makefile.am +++ b/ncgen3/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. #LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose @@ -8,7 +8,7 @@ include $(top_srcdir)/lib_flags.am # Link to the netCDF library. -ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la +ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la # Build ncgen from the listed sources. bin_PROGRAMS = ncgen3 @@ -24,7 +24,7 @@ run_nc4_tests.sh XGetopt.c $(man_MANS) # There is a netcdf classic and netcdf-4 test script, but don't run # them for DLL builds. #if !BUILD_DLL -TESTS = run_tests.sh +TESTS = run_tests.sh if USE_NETCDF4 TESTS += run_nc4_tests.sh endif # USE_NETCDF4 diff --git a/ncgen3/escapes.c b/ncgen3/escapes.c index 0e746bac9e..a6a838f855 100644 --- a/ncgen3/escapes.c +++ b/ncgen3/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/escapes.c,v 1.2 1997/03/19 23:15:09 davis Exp $ *********************************************************************/ diff --git a/ncgen3/generic.h b/ncgen3/generic.h index dad48d7d52..9969425201 100644 --- a/ncgen3/generic.h +++ b/ncgen3/generic.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/generic.h,v 1.3 1997/04/07 17:23:12 russ Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.c b/ncgen3/genlib.c index a54c06646e..1e728502ec 100644 --- a/ncgen3/genlib.c +++ b/ncgen3/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.c,v 1.54 2009/11/14 22:33:31 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.h b/ncgen3/genlib.h index 45f139a68e..b5e54cc598 100644 --- a/ncgen3/genlib.h +++ b/ncgen3/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.h,v 1.15 2009/12/29 18:42:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/getfill.c b/ncgen3/getfill.c index 1fc1197d59..91c6ae6f13 100644 --- a/ncgen3/getfill.c +++ b/ncgen3/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/getfill.c,v 1.5 2009/11/24 22:09:09 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/init.c b/ncgen3/init.c index f2fe21c2f5..068fd0eb77 100644 --- a/ncgen3/init.c +++ b/ncgen3/init.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/init.c,v 1.6 1997/05/23 11:41:14 russ Exp $ *********************************************************************/ diff --git a/ncgen3/load.c b/ncgen3/load.c index 401dd3d2b7..98fa9fbeb1 100644 --- a/ncgen3/load.c +++ b/ncgen3/load.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: load.c,v 1.35 2009/11/17 18:15:08 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/main.c b/ncgen3/main.c index c27f5ed6a5..0d861ad7ac 100644 --- a/ncgen3/main.c +++ b/ncgen3/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/main.c,v 1.20 2010/03/31 18:18:40 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.h b/ncgen3/ncgen.h index 5d5a5c8952..7c4e307bc7 100644 --- a/ncgen3/ncgen.h +++ b/ncgen3/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/ncgen.h,v 1.8 1997/07/07 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.l b/ncgen3/ncgen.l index 6db3afae23..4240d2edd5 100644 --- a/ncgen3/ncgen.l +++ b/ncgen3/ncgen.l @@ -1,6 +1,6 @@ %{ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ @@ -42,7 +42,7 @@ char errstr[100]; /* for short error messages */ #include "ncgentab.h" #define YY_BREAK /* defining as nothing eliminates unreachable - statement warnings from flex output, + statement warnings from flex output, but make sure every action ends with "return" or "break"! */ @@ -105,7 +105,7 @@ escaped \\. nonquotes ([^"\\]|{escaped})* exp ([eE][+-]?[0-9]+) %% -\/\/.* { /* comment */ +\/\/.* { /* comment */ break; } @@ -275,8 +275,8 @@ FloatInf|-?Inff { /* missing value (pre-2.4 backward compatibility) */ return (BYTE_CONST); } -[ \r\t\f]+ { /* whitespace */ - break; +[ \r\t\f]+ { /* whitespace */ + break; } . {/* Note: this next rule will not work for UTF8 characters */ return (yytext[0]) ; @@ -291,4 +291,3 @@ ignore() yyunput(0,NULL); } - diff --git a/ncgen3/ncgen.y b/ncgen3/ncgen.y index 5a0a431dc6..d3197ab7c5 100644 --- a/ncgen3/ncgen.y +++ b/ncgen3/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.34 2010/03/31 18:18:41 dmh Exp $ *********************************************************************/ @@ -164,7 +164,7 @@ dimdecl: dimd '=' INT_CONST } ; dimd: dim - { + { if ($1->is_dim == 1) { derror( "duplicate dimension declaration for %s", $1->name); @@ -551,7 +551,7 @@ const: CHAR_CONST if(valnum + len > var_len) { if (vars[varnum].dims[0] != rec_dim) { - derror("too many values for this variable, %d>%d", + derror("too many values for this variable, %d>%d", valnum+len, var_len); exit (5); } else {/* a record variable so grow it */ @@ -645,7 +645,7 @@ const: CHAR_CONST case NC_DOUBLE: *double_valp++ = short_val; break; - default: break; + default: break; } valnum++; } @@ -850,7 +850,7 @@ YYSTYPE lookup(char *sname) { YYSTYPE sp; deescapify(sname); /* delete escape chars from names, - * e.g. 'ab\:cd\ ef' becomes + * e.g. 'ab\:cd\ ef' becomes * 'ab:cd ef' */ for (sp = symlist; sp != (YYSTYPE) 0; sp = sp -> next) if (STREQ(sp -> name, sname)) { diff --git a/ncgen3/ncgenyy.c b/ncgen3/ncgenyy.c index c65ea5b134..85ecc91989 100644 --- a/ncgen3/ncgenyy.c +++ b/ncgen3/ncgenyy.c @@ -824,7 +824,7 @@ char *ncgtext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ From 921a217621fb39e6f99fc28636d8de894fd4d209 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 15:47:47 -0700 Subject: [PATCH 33/38] nctest, oc2 files updated. --- nctest/CMakeLists.txt | 6 ++++++ nctest/Makefile.am | 6 +++--- nctest/add.c | 2 +- nctest/add.h | 2 +- nctest/atttests.c | 2 +- nctest/cdftests.c | 2 +- nctest/dimtests.c | 2 +- nctest/driver.c | 8 ++++---- nctest/emalloc.c | 2 +- nctest/emalloc.h | 2 +- nctest/error.c | 2 +- nctest/error.h | 2 +- nctest/misctest.c | 2 +- nctest/rec.c | 2 +- nctest/slabs.c | 2 +- nctest/testcdf.h | 2 +- nctest/tests.h | 2 +- nctest/tst_rename.c | 2 +- nctest/val.c | 2 +- nctest/val.h | 2 +- nctest/vardef.c | 2 +- nctest/varget.c | 2 +- nctest/vargetg.c | 2 +- nctest/varput.c | 2 +- nctest/varputg.c | 2 +- nctest/vartests.c | 2 +- nctest/vputget.c | 2 +- nctest/vputgetg.c | 2 +- oc2/CMakeLists.txt | 6 ++++++ oc2/Makefile.am | 4 ++-- oc2/dap.y | 18 +++++++++--------- oc2/daplex.c | 2 +- oc2/dapparse.c | 2 +- oc2/dapparselex.h | 2 +- oc2/oc.c | 2 +- oc2/oc.h | 2 +- oc2/occompile.c | 2 +- oc2/occompile.h | 2 +- oc2/occonstraints.h | 2 +- oc2/occurlflags.c | 2 +- oc2/occurlfunctions.c | 2 +- oc2/occurlfunctions.h | 10 ++++++++++ oc2/ocdata.c | 2 +- oc2/ocdata.h | 2 +- oc2/ocdatatypes.h | 2 +- oc2/ocdebug.c | 2 +- oc2/ocdebug.h | 2 +- oc2/ocdump.c | 2 +- oc2/ocdump.h | 2 +- oc2/ochttp.c | 2 +- oc2/ochttp.h | 2 +- oc2/ocinternal.c | 2 +- oc2/ocinternal.h | 2 +- oc2/ocnode.c | 2 +- oc2/ocnode.h | 2 +- oc2/ocread.c | 2 +- oc2/ocread.h | 2 +- oc2/ocutil.c | 2 +- oc2/ocutil.h | 2 +- oc2/ocx.h | 2 +- oc2/xxdr.c | 2 +- oc2/xxdr.h | 2 +- 62 files changed, 95 insertions(+), 73 deletions(-) diff --git a/nctest/CMakeLists.txt b/nctest/CMakeLists.txt index 230092bb04..d7de84a6cd 100644 --- a/nctest/CMakeLists.txt +++ b/nctest/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(nctest_SRC add.c atttests.c cdftests.c dimtests.c driver.c emalloc.c error.c misctest.c rec.c slabs.c val.c vardef.c varget.c vargetg.c varput.c varputg.c vartests.c vputget.c vputgetg.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh) diff --git a/nctest/Makefile.am b/nctest/Makefile.am index 0ac922b30b..506c5eece4 100644 --- a/nctest/Makefile.am +++ b/nctest/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nctest program, which tests the netCDF # version 2 interface. @@ -7,7 +7,7 @@ # Put together AM_CPPFLAGS and AM_LDFLAGS. include $(top_srcdir)/lib_flags.am -AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la +AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la # Running nctest results in a file testfile.nc, which is then checked # to make sure it matches testfile_nc.sav, which was generated under @@ -31,7 +31,7 @@ TESTS = $(TESTPROGRAMS) compare_test_files.sh TEST_EXTENSIONS = .sh # compare_test_files depends on nctest executing first. -compare_test_files.log: nctest.log +compare_test_files.log: nctest.log # These are the source files for the nctest program. nctest_SOURCES = add.c add.h atttests.c cdftests.c dimtests.c driver.c \ diff --git a/nctest/add.c b/nctest/add.c index 96545dbe7e..5a6ee58d2a 100644 --- a/nctest/add.c +++ b/nctest/add.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.c,v 1.18 2008/06/10 19:38:03 russ Exp $ *********************************************************************/ diff --git a/nctest/add.h b/nctest/add.h index b588e86f35..214559c30f 100644 --- a/nctest/add.h +++ b/nctest/add.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.h,v 1.6 1996/04/30 17:56:54 davis Exp $ *********************************************************************/ diff --git a/nctest/atttests.c b/nctest/atttests.c index de6cf65775..f9d263ffeb 100644 --- a/nctest/atttests.c +++ b/nctest/atttests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctst/atttests.c,v 1.18 2006/10/31 16:21:45 ed Exp $ *********************************************************************/ diff --git a/nctest/cdftests.c b/nctest/cdftests.c index 550860d64a..c4c5165166 100644 --- a/nctest/cdftests.c +++ b/nctest/cdftests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/cdftests.c,v 1.23 2009/02/14 14:11:28 ed Exp $ *********************************************************************/ diff --git a/nctest/dimtests.c b/nctest/dimtests.c index 59e56b3d00..26bce98d2b 100644 --- a/nctest/dimtests.c +++ b/nctest/dimtests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/dimtests.c,v 1.14 2006/10/31 16:21:54 ed Exp $ *********************************************************************/ diff --git a/nctest/driver.c b/nctest/driver.c index 9d0c3c1571..46870e74ff 100644 --- a/nctest/driver.c +++ b/nctest/driver.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993-2006, UCAR/Unidata + * Copyright 1993-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * Test driver for netCDF implementation. This program performs tests @@ -75,10 +75,10 @@ main(int argc, char **argv) /* Skip netCDF-4 - only netCDF-4 classic will work. */ if (format[i] == NC_FORMAT_NETCDF4) continue; - + /* Come up with a test file name. */ sprintf(testfile, "nctest_%s.nc", format_name[i]); - printf("Testing %s with file %s.\n", format_name[i], testfile); + printf("Testing %s with file %s.\n", format_name[i], testfile); /* Set the default format. */ nc_set_default_format(format[i], NULL); @@ -137,7 +137,7 @@ main(int argc, char **argv) } } - + fprintf(stderr, "\nTotal number of failures: %d\n", nerrs); if (nerrs) diff --git a/nctest/emalloc.c b/nctest/emalloc.c index 4f75d1e4f6..05dc1c51c6 100644 --- a/nctest/emalloc.c +++ b/nctest/emalloc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/emalloc.c,v 1.11 2006/10/31 16:21:56 ed Exp $ *********************************************************************/ diff --git a/nctest/emalloc.h b/nctest/emalloc.h index d1130f12f7..accae61fce 100644 --- a/nctest/emalloc.h +++ b/nctest/emalloc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/error.c b/nctest/error.c index 1598d70f7b..50498b2ca4 100644 --- a/nctest/error.c +++ b/nctest/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/error.c,v 1.8 2004/11/16 21:33:07 russ Exp $ *********************************************************************/ diff --git a/nctest/error.h b/nctest/error.h index 0a045a1f4f..e69fe90fe9 100644 --- a/nctest/error.h +++ b/nctest/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/misctest.c b/nctest/misctest.c index fcb199e6e5..bdc91a9944 100644 --- a/nctest/misctest.c +++ b/nctest/misctest.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/misctest.c,v 1.11 2006/10/31 16:21:57 ed Exp $ *********************************************************************/ diff --git a/nctest/rec.c b/nctest/rec.c index 2367aece7f..a56c6aafde 100644 --- a/nctest/rec.c +++ b/nctest/rec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/rec.c,v 1.11 2006/10/31 16:21:58 ed Exp $ *********************************************************************/ diff --git a/nctest/slabs.c b/nctest/slabs.c index cac13d672f..48b4d1de7e 100644 --- a/nctest/slabs.c +++ b/nctest/slabs.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/slabs.c,v 1.13 2009/02/11 16:17:39 ed Exp $ *********************************************************************/ diff --git a/nctest/testcdf.h b/nctest/testcdf.h index 9d569e90b6..84c1c27dba 100644 --- a/nctest/testcdf.h +++ b/nctest/testcdf.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/testcdf.h,v 1.9 2006/10/31 16:23:43 ed Exp $ *********************************************************************/ diff --git a/nctest/tests.h b/nctest/tests.h index 7f6dedfb39..f2212f955f 100644 --- a/nctest/tests.h +++ b/nctest/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993 - 2005, UCAR/Unidata + * Copyright 1993 - 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/tests.h,v 1.8 2006/10/31 16:23:47 ed Exp $ *********************************************************************/ diff --git a/nctest/tst_rename.c b/nctest/tst_rename.c index 0807c89949..21967894f4 100644 --- a/nctest/tst_rename.c +++ b/nctest/tst_rename.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test dim rename that is causing problems with v2 API. diff --git a/nctest/val.c b/nctest/val.c index b7f0f7f622..b7d27820d3 100644 --- a/nctest/val.c +++ b/nctest/val.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.c,v 1.13 2006/10/31 16:22:01 ed Exp $ *********************************************************************/ diff --git a/nctest/val.h b/nctest/val.h index e78ba5acda..b1a01de3fd 100644 --- a/nctest/val.h +++ b/nctest/val.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.h,v 1.7 2006/10/31 16:23:51 ed Exp $ *********************************************************************/ diff --git a/nctest/vardef.c b/nctest/vardef.c index bf1087408d..b02df5dfdc 100644 --- a/nctest/vardef.c +++ b/nctest/vardef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vardef.c,v 1.18 2009/10/28 18:30:50 dmh Exp $ *********************************************************************/ diff --git a/nctest/varget.c b/nctest/varget.c index 4082e1eb3f..1f1ab41adf 100644 --- a/nctest/varget.c +++ b/nctest/varget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varget.c,v 1.14 2006/10/31 16:22:03 ed Exp $ *********************************************************************/ diff --git a/nctest/vargetg.c b/nctest/vargetg.c index 38df98d30e..b02f33b93b 100644 --- a/nctest/vargetg.c +++ b/nctest/vargetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vargetg.c,v 1.10 2006/10/31 16:22:04 ed Exp $ *********************************************************************/ diff --git a/nctest/varput.c b/nctest/varput.c index c3a51d3c65..2dbdf2d61d 100644 --- a/nctest/varput.c +++ b/nctest/varput.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varput.c,v 1.14 2006/10/31 16:22:05 ed Exp $ *********************************************************************/ diff --git a/nctest/varputg.c b/nctest/varputg.c index c95d4a31e2..2ff6edd381 100644 --- a/nctest/varputg.c +++ b/nctest/varputg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: varputg.c,v 1.10 2006/10/31 16:22:06 ed Exp $ *********************************************************************/ diff --git a/nctest/vartests.c b/nctest/vartests.c index fca25947c4..8fe35983c7 100644 --- a/nctest/vartests.c +++ b/nctest/vartests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vartests.c,v 1.19 2006/10/31 16:20:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputget.c b/nctest/vputget.c index 34244fa137..8c2ff2ee93 100644 --- a/nctest/vputget.c +++ b/nctest/vputget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vputget.c,v 1.13 2006/10/31 16:19:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputgetg.c b/nctest/vputgetg.c index 5bf931d4b5..c4b87b5370 100644 --- a/nctest/vputgetg.c +++ b/nctest/vputgetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vputgetg.c,v 1.13 2006/10/31 16:19:40 ed Exp $ *********************************************************************/ diff --git a/oc2/CMakeLists.txt b/oc2/CMakeLists.txt index 92523aa54b..1b4b51f8aa 100644 --- a/oc2/CMakeLists.txt +++ b/oc2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(oc_SOURCES oc.c daplex.c dapparse.c dapy.c occompile.c occurlfunctions.c ocdata.c ocdebug.c ocdump.c ocinternal.c ocnode.c ochttp.c ocread.c ocutil.c xxdr.c) diff --git a/oc2/Makefile.am b/oc2/Makefile.am index b22889b6b8..96184efbed 100644 --- a/oc2/Makefile.am +++ b/oc2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. The # generated makefile is not run unless the user selected to build @@ -31,7 +31,7 @@ xxdr.h EXTRA_DIST = dap.y CMakeLists.txt auth.html.in oc.css noinst_LTLIBRARIES = liboc.la -liboc_la_SOURCES = $(SRC) $(HDRS) +liboc_la_SOURCES = $(SRC) $(HDRS) liboc_la_CPPFLAGS = $(AM_CPPFLAGS) # These rule are used if someone wants to rebuild the grammar files. diff --git a/oc2/dap.y b/oc2/dap.y index 9154c61a89..b08b2a0671 100644 --- a/oc2/dap.y +++ b/oc2/dap.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -17,7 +17,7 @@ int dapdebug = 0; /*DO NOT DELETE THIS LINE*/ -%token SCAN_ALIAS +%token SCAN_ALIAS %token SCAN_ARRAY %token SCAN_ATTR %token SCAN_BYTE @@ -31,14 +31,14 @@ int dapdebug = 0; %token SCAN_GRID %token SCAN_INT16 %token SCAN_INT32 -%token SCAN_MAPS +%token SCAN_MAPS %token SCAN_MESSAGE %token SCAN_SEQUENCE %token SCAN_STRING %token SCAN_STRUCTURE %token SCAN_UINT16 %token SCAN_UINT32 -%token SCAN_URL +%token SCAN_URL /* For errorbody */ %token SCAN_PTYPE %token SCAN_PROG @@ -94,10 +94,10 @@ declaration: | SCAN_GRID '{' SCAN_ARRAY ':' declaration SCAN_MAPS ':' declarations '}' var_name ';' {if(($$=dap_makegrid(parsestate,$10,$5,$8))==null) {YYABORT;}} - | error + | error {dapsemanticerror(parsestate,OC_EBADTYPE,"Unrecognized type"); YYABORT;} ; - + base_type: SCAN_BYTE {$$=(Object)SCAN_BYTE;} @@ -144,7 +144,7 @@ attr_list: ; attribute: - alias ';' {$$=null;} /* ignored */ + alias ';' {$$=null;} /* ignored */ | SCAN_BYTE name bytes ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_BYTE);} | SCAN_INT16 name int16 ';' @@ -164,7 +164,7 @@ attribute: | SCAN_URL name urls ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_URL);} | name '{' attr_list '}' {$$=dap_attrset(parsestate,$1,$3);} - | error + | error {dapsemanticerror(parsestate,OC_EDAS,"Illegal attribute"); YYABORT;} ; @@ -222,7 +222,7 @@ str_or_id: /* Not used float_or_int: WORD_INT {$$=$1;} - | WORD_DOUBLE {$$=$1;} + | WORD_DOUBLE {$$=$1;} ; */ diff --git a/oc2/daplex.c b/oc2/daplex.c index 4c543e5246..bdb4a931ac 100644 --- a/oc2/daplex.c +++ b/oc2/daplex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/dapparse.c b/oc2/dapparse.c index d67ad06eaa..f6c8801dd2 100644 --- a/oc2/dapparse.c +++ b/oc2/dapparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/dapparselex.h b/oc2/dapparselex.h index 0e763f1dc1..4b6197a8ea 100644 --- a/oc2/dapparselex.h +++ b/oc2/dapparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DAPPARSELEX_H diff --git a/oc2/oc.c b/oc2/oc.c index 821093849f..4104aa1f0d 100644 --- a/oc2/oc.c +++ b/oc2/oc.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/oc.h b/oc2/oc.h index 9f6ebc53d7..b5f318cb37 100644 --- a/oc2/oc.h +++ b/oc2/oc.h @@ -1,4 +1,4 @@ -/* Copyright 2014, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/occompile.c b/oc2/occompile.c index 0c74c49ae7..c22c78bb36 100644 --- a/oc2/occompile.c +++ b/oc2/occompile.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occompile.h b/oc2/occompile.h index 0fb5ffa468..75b110adee 100644 --- a/oc2/occompile.h +++ b/oc2/occompile.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCOMPILE_H diff --git a/oc2/occonstraints.h b/oc2/occonstraints.h index 4ea31effd6..a5de5fc9f6 100644 --- a/oc2/occonstraints.h +++ b/oc2/occonstraints.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCONSTRAINTS_H diff --git a/oc2/occurlflags.c b/oc2/occurlflags.c index d530fc4d56..3f491727a8 100644 --- a/oc2/occurlflags.c +++ b/oc2/occurlflags.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.c b/oc2/occurlfunctions.c index 0832f782df..3334ab1d5c 100644 --- a/oc2/occurlfunctions.c +++ b/oc2/occurlfunctions.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.h b/oc2/occurlfunctions.h index 6d2b0a033b..74f1126e56 100644 --- a/oc2/occurlfunctions.h +++ b/oc2/occurlfunctions.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* * occurlfunction.h * diff --git a/oc2/ocdata.c b/oc2/ocdata.c index 6adc607079..26179d273e 100644 --- a/oc2/ocdata.c +++ b/oc2/ocdata.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdata.h b/oc2/ocdata.h index 0711ac3631..36c80a4142 100644 --- a/oc2/ocdata.h +++ b/oc2/ocdata.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATA_H diff --git a/oc2/ocdatatypes.h b/oc2/ocdatatypes.h index d34c508e44..93310d42d3 100644 --- a/oc2/ocdatatypes.h +++ b/oc2/ocdatatypes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATATYPES_H diff --git a/oc2/ocdebug.c b/oc2/ocdebug.c index 986c888381..0be96d8d11 100644 --- a/oc2/ocdebug.c +++ b/oc2/ocdebug.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdebug.h b/oc2/ocdebug.h index ae64f085df..c0ac64315d 100644 --- a/oc2/ocdebug.h +++ b/oc2/ocdebug.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCOCDBG_H diff --git a/oc2/ocdump.c b/oc2/ocdump.c index 839eb9362c..c395a0a648 100644 --- a/oc2/ocdump.c +++ b/oc2/ocdump.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/ocdump.h b/oc2/ocdump.h index c9463155d2..1a6eba5367 100644 --- a/oc2/ocdump.h +++ b/oc2/ocdump.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDUMP_H diff --git a/oc2/ochttp.c b/oc2/ochttp.c index cbb1b76cba..e6ae849c5d 100644 --- a/oc2/ochttp.c +++ b/oc2/ochttp.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ochttp.h b/oc2/ochttp.h index ab720ed39e..284fe87cfb 100644 --- a/oc2/ochttp.h +++ b/oc2/ochttp.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef HTTP_H diff --git a/oc2/ocinternal.c b/oc2/ocinternal.c index 947d17c3cd..9450ce9ea8 100644 --- a/oc2/ocinternal.c +++ b/oc2/ocinternal.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocinternal.h b/oc2/ocinternal.h index f0e4642236..58d51fc0d9 100644 --- a/oc2/ocinternal.h +++ b/oc2/ocinternal.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCINTERNAL_H diff --git a/oc2/ocnode.c b/oc2/ocnode.c index 46604837a0..b394e52ead 100644 --- a/oc2/ocnode.c +++ b/oc2/ocnode.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocnode.h b/oc2/ocnode.h index 23f9967f15..9c59624a19 100644 --- a/oc2/ocnode.h +++ b/oc2/ocnode.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCNODE_H diff --git a/oc2/ocread.c b/oc2/ocread.c index 81485316dc..67cf55aacf 100644 --- a/oc2/ocread.c +++ b/oc2/ocread.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocread.h b/oc2/ocread.h index 0d380ac1a3..f3b0e5490c 100644 --- a/oc2/ocread.h +++ b/oc2/ocread.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef READ_H diff --git a/oc2/ocutil.c b/oc2/ocutil.c index 158608f030..61ba2938c5 100644 --- a/oc2/ocutil.c +++ b/oc2/ocutil.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocutil.h b/oc2/ocutil.h index 453efa5833..56e960b6b4 100644 --- a/oc2/ocutil.h +++ b/oc2/ocutil.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCUTIL_H diff --git a/oc2/ocx.h b/oc2/ocx.h index d00c164783..baa5d09b8a 100644 --- a/oc2/ocx.h +++ b/oc2/ocx.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/xxdr.c b/oc2/xxdr.c index 9ccb65d201..1ac74b0f8f 100644 --- a/oc2/xxdr.c +++ b/oc2/xxdr.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* diff --git a/oc2/xxdr.h b/oc2/xxdr.h index 8139892b26..6929bef749 100644 --- a/oc2/xxdr.h +++ b/oc2/xxdr.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ From 05818ac990eb284f8476cf379d05bdd878696665 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 15:51:35 -0700 Subject: [PATCH 34/38] Misc. files updated with copyright stanza. --- CMakeInstallation.cmake | 10 ++++++++-- CTestConfig.cmake.in | 8 +++++++- CTestCustom.cmake | 6 ++++++ FixBundle.cmake.in | 6 ++++++ cmake_uninstall.cmake.in | 6 ++++++ config.h.cmake.in | 10 ++++++++++ lib_flags.am | 14 +++++--------- plugins/CMakeLists.txt | 6 ++++++ test_common.in | 7 +++++++ test_prog.c | 4 ++-- 10 files changed, 63 insertions(+), 14 deletions(-) diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 4ee9df9920..80714b8b1f 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ##### # Contains variables and settings used # by the CMake build system in order to @@ -72,7 +78,7 @@ IF(NC_DPKG) ENDMACRO(getdpkg_arch) getdpkg_arch(dpkg_arch) - SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") + SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${dpkg_arch}") SET(CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g (>= 1:1.2.3.4), libhdf5-7 (>= 1.8.11), libcurl4-openssl-dev (>= 7.22.0)") ENDIF() @@ -127,4 +133,4 @@ set(CPACK_COMPONENT_DEPENDENCIES_DESCRIPTION set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "The NetCDF-C user documentation.") -INCLUDE(CPack) \ No newline at end of file +INCLUDE(CPack) diff --git a/CTestConfig.cmake.in b/CTestConfig.cmake.in index 6c992f34c7..fd83217684 100644 --- a/CTestConfig.cmake.in +++ b/CTestConfig.cmake.in @@ -1,4 +1,10 @@ -## This file should be placed in the root directory of your project. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. +# This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. ## diff --git a/CTestCustom.cmake b/CTestCustom.cmake index 4909748ece..7483a775f0 100644 --- a/CTestCustom.cmake +++ b/CTestCustom.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ## This file is used to customize CTest. ## See: ## diff --git a/FixBundle.cmake.in b/FixBundle.cmake.in index 02d43428e8..d22728a014 100644 --- a/FixBundle.cmake.in +++ b/FixBundle.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. INCLUDE(BundleUtilities) # Set bundle to the full path name of the executable diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in index ace1e7122d..9dc757d1a4 100644 --- a/cmake_uninstall.cmake.in +++ b/cmake_uninstall.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. CMAKE_POLICY(SET CMP0007 OLD) if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/config.h.cmake.in b/config.h.cmake.in index 912495581e..a806a9b000 100644 --- a/config.h.cmake.in +++ b/config.h.cmake.in @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #ifndef CONFIG_H #define CONFIG_H diff --git a/lib_flags.am b/lib_flags.am index 58accdf60f..72f45e5978 100644 --- a/lib_flags.am +++ b/lib_flags.am @@ -1,20 +1,16 @@ # This is part of the netCDF package. -# Copyright 2005 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. -# +# # Assemble the CPPFLAGS and LDFLAGS that point to all the needed # libraries for netCDF-4. # -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = +AM_CPPFLAGS = -I$(top_srcdir)/include +AM_LDFLAGS = if USE_DAP AM_CPPFLAGS += -I${top_srcdir}/oc2 endif -AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; - - - - +AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index e5ba4e21d7..9b5d30ce44 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(CMAKE_BUILD_TYPE "") SET(libbzip2_SOURCES blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c H5Zbzip2.c) diff --git a/test_common.in b/test_common.in index b8af51855d..67f7cc1c0d 100644 --- a/test_common.in +++ b/test_common.in @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + TOPSRCDIR='@abs_top_srcdir@' TOPBUILDDIR='@abs_top_builddir@' diff --git a/test_prog.c b/test_prog.c index d0c6706a0d..ba9a6fd46c 100644 --- a/test_prog.c +++ b/test_prog.c @@ -1,10 +1,10 @@ -/* This is part of Unidata's netCDF package. Copyright 2009. +/* This is part of Unidata's netCDF package. Copyright 2018. This is a test program for the nc-config utility. */ #include #include int -main() +main() { printf("NetCDF version: %s\n", nc_inq_libvers()); printf("*** SUCCESS!\n"); From e9f617e335d592f4a822bb7b23ea0074e5585a6b Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Thu, 6 Dec 2018 17:46:30 -0700 Subject: [PATCH 35/38] Testing a fix for a failure I observed. --- nc_test/tst_utf8_validate.c | 132 ++++++++++++++++++------------------ 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/nc_test/tst_utf8_validate.c b/nc_test/tst_utf8_validate.c index 06de615e1f..4d7fa7b840 100644 --- a/nc_test/tst_utf8_validate.c +++ b/nc_test/tst_utf8_validate.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ @@ -99,16 +99,16 @@ static const struct Test utf8boundary[] = { {0,"2.1.2", "2 bytes (U-00000080)", "€"}, {0,"2.1.3", "3 bytes (U-00000800)", "ࠀ"}, {0,"2.1.4", "4 bytes (U-00010000)", "𐀀"}, -{1,"2.1.5", "5 bytes (U-00200000)", "�����"}, -{1,"2.1.6", "6 bytes (U-04000000)", "������"}, +{1,"2.1.5", "5 bytes (U-00200000)", ""}, +{1,"2.1.6", "6 bytes (U-04000000)", ""}, /*2.2 Last possible sequence of a certain length*/ {0,"2.2.1", "1 byte (U-0000007F)", ""}, {0,"2.2.2", "2 bytes (U-000007FF)", "߿"}, {0,"2.2.3", "3 bytes (U-0000FFFF)", "￿"}, /*See 5.3.2 */ -{1,"2.2.4", "4 bytes (U-001FFFFF)", "����"}, -{1,"2.2.5", "5 bytes (U-03FFFFFF)", "�����"}, -{1,"2.2.6", "6 bytes (U-7FFFFFFF)", "������"}, +{1,"2.2.4", "4 bytes (U-001FFFFF)", ""}, +{1,"2.2.5", "5 bytes (U-03FFFFFF)", ""}, +{1,"2.2.6", "6 bytes (U-7FFFFFFF)", ""}, /*2.3 Other boundary conditions*/ @@ -116,7 +116,7 @@ static const struct Test utf8boundary[] = { {0,"2.3.2", "U-0000E000 = ee 80 80", ""}, {0,"2.3.3", "U-0000FFFD = ef bf bd", "�"}, {0,"2.3.4", "U-0010FFFF = f4 8f bf bf", "􏿿"}, -{1,"2.3.5", "U-00110000 = f4 90 80 80", "����"}, +{1,"2.3.5", "U-00110000 = f4 90 80 80", ""}, NULLTEST }; @@ -128,17 +128,17 @@ static const struct Test utf8bad[] = { Each unexpected continuation byte should be separately signalled as a malformed sequence of its own. */ -{1,"3.1.1", "First continuation byte 0x80", "�"}, -{1,"3.1.2", "Last continuation byte 0xbf", "�"}, - -{1,"3.1.3", "2 continuation bytes", "��"}, -{1,"3.1.4", "3 continuation bytes", "���"}, -{1,"3.1.5", "4 continuation bytes", "����"}, -{1,"3.1.6", "5 continuation bytes", "�����"}, -{1,"3.1.7", "6 continuation bytes", "������"}, -{1,"3.1.8", "7 continuation bytes", "�������"}, +{1,"3.1.1", "First continuation byte 0x80", ""}, +{1,"3.1.2", "Last continuation byte 0xbf", ""}, + +{1,"3.1.3", "2 continuation bytes", ""}, +{1,"3.1.4", "3 continuation bytes", ""}, +{1,"3.1.5", "4 continuation bytes", ""}, +{1,"3.1.6", "5 continuation bytes", ""}, +{1,"3.1.7", "6 continuation bytes", ""}, +{1,"3.1.8", "7 continuation bytes", ""}, {1,"3.1.9", "Sequence of all 64 possible continuation bytes (0x80-0xbf)", - "����������������������������������������������������������������" + "" }, /*3.2 Lonely start characters*/ @@ -147,31 +147,31 @@ static const struct Test utf8bad[] = { each followed by a space character*/ {1,"3.2.1", "All 32 first bytes of 2-byte sequences", -"� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � " +" " }, /*3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), each followed by a space character:*/ {1,"3.2.2", "All 16 first bytes of 3-byte sequences", -"� � � � � � � � � � � � � � � � " +" " }, /*3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), each followed by a space character:*/ {1,"3.2.3", "All 8 first bytes of 4-byte sequences", - "� � � � � � � � " + " " }, /*3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), each followed by a space character:*/ {1,"3.2.4", "All 4 first bytes of 5-byte sequences", - "� � � � " + " " }, /*3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), each followed by a space character:*/ {1,"3.2.5", "All 2 first bytes of 6-byte sequences", - "� � " + " " }, /*3.3 Sequences with last continuation byte missing @@ -179,32 +179,32 @@ All bytes of an incomplete sequence should be signalled as a single malformed sequence, i.e., you should see only a single replacement character in each of the next 10 tests. (Characters as in section 2) */ -{1,"3.3.1", "2-byte sequence with last byte missing (U+0000)", "�"}, -{1,"3.3.2", "3-byte sequence with last byte missing (U+0000)", "��"}, -{1,"3.3.3", "4-byte sequence with last byte missing (U+0000)", "���"}, -{1,"3.3.4", "5-byte sequence with last byte missing (U+0000)", "����"}, -{1,"3.3.5", "6-byte sequence with last byte missing (U+0000)", "�����"}, -{1,"3.3.6", "2-byte sequence with last byte missing (U-000007FF)", "�"}, -{1,"3.3.7", "3-byte sequence with last byte missing (U-0000FFFF)", "��"}, -{1,"3.3.8", "4-byte sequence with last byte missing (U-001FFFFF)", "���"}, -{1,"3.3.9", "5-byte sequence with last byte missing (U-03FFFFFF)", "����"}, -{1,"3.3.10", "6-byte sequence with last byte missing (U-7FFFFFFF)", "�����"}, +{1,"3.3.1", "2-byte sequence with last byte missing (U+0000)", ""}, +{1,"3.3.2", "3-byte sequence with last byte missing (U+0000)", ""}, +{1,"3.3.3", "4-byte sequence with last byte missing (U+0000)", ""}, +{1,"3.3.4", "5-byte sequence with last byte missing (U+0000)", ""}, +{1,"3.3.5", "6-byte sequence with last byte missing (U+0000)", ""}, +{1,"3.3.6", "2-byte sequence with last byte missing (U-000007FF)", ""}, +{1,"3.3.7", "3-byte sequence with last byte missing (U-0000FFFF)", ""}, +{1,"3.3.8", "4-byte sequence with last byte missing (U-001FFFFF)", ""}, +{1,"3.3.9", "5-byte sequence with last byte missing (U-03FFFFFF)", ""}, +{1,"3.3.10", "6-byte sequence with last byte missing (U-7FFFFFFF)", ""}, /*3.4 Concatenation of incomplete sequences All the 10 sequences of 3.3 concatenated; you should see 10 malformed sequences being signalled: */ {1, "3.4.1", "All the 10 sequences of 3.3 concatenated", - "������������������������������" + "" }, /*3.5 Impossible bytes The following two bytes cannot appear in a correct UTF-8 string */ -{1,"3.5.1", "fe", "�"}, -{1,"3.5.2", "ff", "�"}, -{1,"3.5.3", "fe fe ff ff", "����"}, +{1,"3.5.1", "fe", ""}, +{1,"3.5.2", "ff", ""}, +{1,"3.5.3", "fe fe ff ff", ""}, /* 4 Overlong sequences @@ -237,11 +237,11 @@ a replacement character. If you see a slash below, you do not have a safe UTF-8 decoder! */ -{1,"4.1.1", "U+002F = c0 af ", "��"}, -{1,"4.1.2", "U+002F = e0 80 af ", "���"}, -{1,"4.1.3", "U+002F = f0 80 80 af ", "����"}, -{1,"4.1.4", "U+002F = f8 80 80 80 af ", "�����"}, -{1,"4.1.5", "U+002F = fc 80 80 80 80 af ", "������"}, +{1,"4.1.1", "U+002F = c0 af ", ""}, +{1,"4.1.2", "U+002F = e0 80 af ", ""}, +{1,"4.1.3", "U+002F = f0 80 80 af ", ""}, +{1,"4.1.4", "U+002F = f8 80 80 80 af ", ""}, +{1,"4.1.5", "U+002F = fc 80 80 80 80 af ", ""}, /*4.2 Maximum overlong sequences @@ -251,11 +251,11 @@ is a boundary test for safe UTF-8 decoders. All five characters should be rejected like malformed UTF-8 sequences. */ -{1,"4.2.1", "U-0000007F = c1 bf ", "��"}, -{1,"4.2.2", "U-000007FF = e0 9f bf ", "���"}, -{1,"4.2.3", "U-0000FFFF = f0 8f bf bf ", "����"}, -{1,"4.2.4", "U-001FFFFF = f8 87 bf bf bf ", "�����"}, -{1,"4.2.5", "U-03FFFFFF = fc 83 bf bf bf bf ", "������"}, +{1,"4.2.1", "U-0000007F = c1 bf ", ""}, +{1,"4.2.2", "U-000007FF = e0 9f bf ", ""}, +{1,"4.2.3", "U-0000FFFF = f0 8f bf bf ", ""}, +{1,"4.2.4", "U-001FFFFF = f8 87 bf bf bf ", ""}, +{1,"4.2.5", "U-03FFFFFF = fc 83 bf bf bf bf ", ""}, /* 4.3 Overlong representation of the NUL character @@ -265,11 +265,11 @@ UTF-8 sequences and should not be treated like the ASCII NUL character. */ -{1,"4.3.1", "U+0000 = c0 80 ", "��"}, -{1,"4.3.2", "U+0000 = e0 80 80 ", "���"}, -{1,"4.3.3", "U+0000 = f0 80 80 80 ", "����"}, -{1,"4.3.4", "U+0000 = f8 80 80 80 80 ", "�����"}, -{1,"4.3.5", "U+0000 = fc 80 80 80 80 80 ", "������"}, +{1,"4.3.1", "U+0000 = c0 80 ", ""}, +{1,"4.3.2", "U+0000 = e0 80 80 ", ""}, +{1,"4.3.3", "U+0000 = f0 80 80 80 ", ""}, +{1,"4.3.4", "U+0000 = f8 80 80 80 80 ", ""}, +{1,"4.3.5", "U+0000 = fc 80 80 80 80 80 ", ""}, /* 5 Illegal code positions @@ -281,24 +281,24 @@ comparable to overlong UTF-8 sequences. */ /*5.1 Single UTF-16 surrogates*/ -{1,"5.1.1", "U+D800 = ed a0 80 ", "���"}, -{1,"5.1.2", "U+DB7F = ed ad bf ", "���"}, -{1,"5.1.3", "U+DB80 = ed ae 80 ", "���"}, -{1,"5.1.4", "U+DBFF = ed af bf ", "���"}, -{1,"5.1.5", "U+DC00 = ed b0 80 ", "���"}, -{1,"5.1.6", "U+DF80 = ed be 80 ", "���"}, -{1,"5.1.7", "U+DFFF = ed bf bf ", "���"}, +{1,"5.1.1", "U+D800 = ed a0 80 ", ""}, +{1,"5.1.2", "U+DB7F = ed ad bf ", ""}, +{1,"5.1.3", "U+DB80 = ed ae 80 ", ""}, +{1,"5.1.4", "U+DBFF = ed af bf ", ""}, +{1,"5.1.5", "U+DC00 = ed b0 80 ", ""}, +{1,"5.1.6", "U+DF80 = ed be 80 ", ""}, +{1,"5.1.7", "U+DFFF = ed bf bf ", ""}, /*5.2 Paired UTF-16 surrogates */ -{1,"5.2.1", "U+D800 U+DC00 = ed a0 80 ed b0 80 ", "������"}, -{1,"5.2.2", "U+D800 U+DFFF = ed a0 80 ed bf bf ", "������"}, -{1,"5.2.3", "U+DB7F U+DC00 = ed ad bf ed b0 80 ", "������"}, -{1,"5.2.4", "U+DB7F U+DFFF = ed ad bf ed bf bf ", "������"}, -{1,"5.2.5", "U+DB80 U+DC00 = ed ae 80 ed b0 80 ", "������"}, -{1,"5.2.6", "U+DB80 U+DFFF = ed ae 80 ed bf bf ", "������"}, -{1,"5.2.7", "U+DBFF U+DC00 = ed af bf ed b0 80 ", "������"}, -{1,"5.2.8", "U+DBFF U+DFFF = ed af bf ed bf bf ", "������"}, +{1,"5.2.1", "U+D800 U+DC00 = ed a0 80 ed b0 80 ", ""}, +{1,"5.2.2", "U+D800 U+DFFF = ed a0 80 ed bf bf ", ""}, +{1,"5.2.3", "U+DB7F U+DC00 = ed ad bf ed b0 80 ", ""}, +{1,"5.2.4", "U+DB7F U+DFFF = ed ad bf ed bf bf ", ""}, +{1,"5.2.5", "U+DB80 U+DC00 = ed ae 80 ed b0 80 ", ""}, +{1,"5.2.6", "U+DB80 U+DFFF = ed ae 80 ed bf bf ", ""}, +{1,"5.2.7", "U+DBFF U+DC00 = ed af bf ed b0 80 ", ""}, +{1,"5.2.8", "U+DBFF U+DFFF = ed af bf ed bf bf ", ""}, NULLTEST }; From d135fb4200cffca70bb312effa880e0317b31983 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Fri, 7 Dec 2018 14:44:47 -0700 Subject: [PATCH 36/38] Removed confounding text from a reference file, turned on filter testing by default in Cmake-based builds. --- CMakeLists.txt | 4 ++-- nc_test4/ref_bzip2.c | 10 ---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0374c5c6b9..897d730e9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1150,8 +1150,8 @@ IF (ENABLE_PARALLEL_TESTS AND NOT USE_PARALLEL) ENDIF() # Enable special filter test; experimental when using cmake. -OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" OFF) -IF(NOT ENABLE_NETCDF4) +OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" ON) +IF(ENABLE_FILTER_TESTING AND NOT ENABLE_NETCDF_4) MESSAGE(WARNING "ENABLE_FILTER_TESTING requires netCDF-4. Disabling.") SET(ENABLE_FILTER_TESTING OFF CACHE BOOL "") ENDIF() diff --git a/nc_test4/ref_bzip2.c b/nc_test4/ref_bzip2.c index 058d7314bf..e93f3cac29 100644 --- a/nc_test4/ref_bzip2.c +++ b/nc_test4/ref_bzip2.c @@ -1,13 +1,3 @@ -/*! \file - -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -2015, 2016, 2017, 2018 -University Corporation for Atmospheric Research/Unidata. - -See \ref copyright file for more info. - -*/ #include #include #include From 7af0e32d82be122445b3cc215674665c28424f6d Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Fri, 7 Dec 2018 15:27:40 -0700 Subject: [PATCH 37/38] Fixed issue with make distclean --- docs/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile.am b/docs/Makefile.am index b7336c77dd..2e8ea4704a 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -14,7 +14,7 @@ building-with-cmake.md CMakeLists.txt groups.dox install.md notes.md \ install-fortran.md all-error-codes.md credits.md auth.md \ obsolete/fan_utils.html bestpractices.md filters.md indexing.dox \ inmemory.md DAP2.dox attribute_conventions.md FAQ.md \ -file_format_specifications.md known_problems.md COPYRIGHT.dox \ +file_format_specifications.md known_problems.md COPYRIGHT.md \ user_defined_formats.md inmeminternal.dox DAP4.md DAP4.dox # Turn off parallel builds in this directory. From 221ac43eb635a9631d71eabc0f758034abbc8ccd Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 10 Dec 2018 14:25:34 -0500 Subject: [PATCH 38/38] Turned off filter testing for the moment, in appveyor. --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index e6d010fafa..d617344060 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -36,7 +36,7 @@ build: off build_script: - cmd: mkdir build - cmd: cd build - - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF + - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF -DENABLE_FILTER_TESTING=OFF - cmd: if errorlevel 1 exit 1 - cmd: cmake --build . --config Release -- /maxcpucount:4