Previous Up

Appendix B  All Pads Base Types

This appendix gives the full set of signatures for the read, write, format, and accumulation functions for each base type that is part of the standard Pads distribution. It also describes how read behavior differs with different setting for the read mask, as well as error behavior for each possible error that can occur during reading.

This information is also available in the type-specific include files which can be found under the padsc/include/ptypes directory.

B.1  Counting: Character encodings

/* ================================================================================
 * CHAR COUNTING FUNCTIONS
 *
 * DEFAULT                     ASCII                       EBCDIC
 * ————————–  ————————–  ————————
 * PcountX_read                Pa_countX_read              Pe_countX_read
 * PcountXtoY                  Pa_countXtoY_read           Pe_countXtoY_read
 *
 * countX counts occurrences of char x between the current IO cursor
 * and the first EOR or EOF, while countXtoY counts occurrences of x
 * between the current IO cursor and the first occurrence of char y.
 * x and y are always specified as ASCII chars.  They are converted to
 * EBCDIC if the EBCDIC form is used or if the DEFAULT form is used
 * and pads->disc->def->charset is Pcharset_EBCDIC.
 *
 * If parameter count_max is non-zero, then the count functions also
 * stop counting after scanning count_max characters, in which case an
 * error is returned.  If the IO discipline is not record-based and
 * count_max is zero, an error is returned immediately: you *must*
 * specify a count_max > 0 when using an IO discipline that has no
 * records.
 */
/*
 * For countX, if param eor_required is non-zero, then encountering EOF
 * before EOR produces an error.
 *
 * These functions do not change the IO cursor position.
 *
 * countX outcomes:
 *   1. IO cursor is already at EOF and eor_required is non-zero:
 *     + pd->loc.b/e set to EOF ’location’
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_AT_EOF,
 *         pd->nerr set to 1, and an error is reported
 *     + P_ERR returned   
 *   2. EOF is encountered before EOR and eor_required is non-zero:
 *     + pd->loc.b/e set to current IO cursor location
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_EOF_BEFORE_EOR,
 *         pd->nerr set to 1, and an error is reported
 *     + P_ERR returned
 *   3. count_max is > 0 and count_max limit is reached before x
 *       or EOR or EOF:
 *     + pd->loc.b/e set to current IO cursor location
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_COUNT_MAX_LIMIT,
 *         pd->nerr set to 1, and an error is reported
 *     + P_ERR returned
 *   4. EOR is encountered, or EOF is encounterd and eor_required is zero:
 *     + (*res_out) is set to the number of occurrences of x from the
 *        IO cursor to EOR/EOF
 *     + P_OK returned
 */
/*
 * countXtoY outcomes:
 *   1. IO cursor is already at EOF
 *     + pd->loc.b/e set to EOF ’location’
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_AT_EOF,
 *         pd->nerr set to 1, and an error is reported
 *     + P_ERR returned   
 *   2. y is not found before EOR or EOF is hit
 *     + pd->loc.b/e set to current IO cursor location
 *     + if P_Test_NotIgnore(*m), pd->errCode set to
 *         P_CHAR_LIT_NOT_FOUND, pd->nerr set to 1,
 *         and an error is reported
 *     + P_ERR returned
 *   3. y is not found and count_max > 0 and count_max limit is hit 
 *     + pd->loc.b/e set to current IO cursor location
 *     + if P_Test_NotIgnore(*), pd->errCode set to P_COUNT_MAX_LIMIT,
 *         pd->nerr set to 1, and an error is reported
 *     P_ERR returned
 *   4. Char y is found
 *     + (*res_out) is set to the number of occurrences of x
 *       from the IO cursor to first y
 *     + P_OK returned
 */

Perror_t Pa_countX_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, 
int eor_required, size_t count_max
                    );

Perror_t Pa_countXtoY_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, Puint8 y, size_t count_max
                    );


Perror_t Pe_countX_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, 
int eor_required, size_t count_max
                    );

Perror_t Pe_countXtoY_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, Puint8 y, size_t count_max
                    );


Perror_t PcountX_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, 
int eor_required, size_t count_max
                    );

Perror_t PcountXtoY_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint8 x, Puint8 y, size_t count_max
                    );


ssize_t PcountX_write2io(P_t *pads, Sfio_t *io, Puint8 x, 
int eor_required,
                    size_t count_max, Pbase_pd *pd, Pint32 *val
                    );

ssize_t PcountX_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Puint8 x, 
int eor_required, size_t count_max, Pbase_pd *pd,
                    Pint32 *val
                    );

ssize_t PcountXtoY_write2io(P_t *pads, Sfio_t *io, Puint8 x, Puint8 y,
                    size_t count_max, Pbase_pd *pd, Pint32 *val
                    );

ssize_t PcountXtoY_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Puint8 x, Puint8 y, size_t count_max, Pbase_pd *pd, Pint32 *val
                    );


ssize_t PcountX_write_xml_2io(P_t *pads, Sfio_t *io, Puint8 x, 
int eor_required,
                    size_t count_max, Pbase_pd *pd, Pint32 *val, 
const char *tag,
                    
int indent
                    );

ssize_t PcountX_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Puint8 x, 
int eor_required, size_t count_max, Pbase_pd *pd,
                    Pint32 *val, 
const char *tag, int indent
                    );

ssize_t PcountXtoY_write_xml_2io(P_t *pads, Sfio_t *io, Puint8 x, Puint8 y,
                    size_t count_max, Pbase_pd *pd, Pint32 *val, 
const char *tag,
                    
int indent
                    );

ssize_t PcountXtoY_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Puint8 x, Puint8 y, size_t count_max, Pbase_pd *pd,
                    Pint32 *val, 
const char *tag, int indent
                    );

B.2  Chars: Character encodings

/* ================================================================================
 * READ
 */

/* ================================================================================
 * CHAR READ FUNCTIONS
 * 
 * DEFAULT                   ASCII                     EBCDIC
 * ————————  ————————  —————————-
 * Pchar_read                Pa_char_read              Pe_char_read
 *
 * Cases:
 *  (1) A character is not available:
 *        + pd->loc set to the current IO position
 *        + if P_Test_NotIgnore(*m), pd->errCode is set to
 *            P_WIDTH_NOT_AVAILABLE, pd->nerr is set to 1,
 *            and an error is reported
 *        + the IO cursor is not advanced
 *        + P_ERR is returned
 *  (2) A character is available and P_Test_NotSet(*m)
 *        + the IO cursor is advanced by 1 byte
 *        + P_OK is returned
 *  (3) A character is available and P_Test_Set(*m)
 *        + (*c_out) is set to the ASCII equivalent of the character, where
 *             a conversion fom EBCDIC to ASCII occurs if the EBCDIC form is
 *             used or if the DEFAULT form is used and
 *             pads->disc->def_charset is Pcharset_EBCDIC.
 *        + the IO cursor is advanced by 1 byte
 *        + P_OK is returned
 */

Perror_t Pa_char_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pchar *c_out);


Perror_t Pe_char_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pchar *c_out);


Perror_t Pchar_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pchar *c_out);

/* ================================================================================
 * WRITE
 */

/* ================================================================================
 * CHAR WRITE FUNCTIONS
 * DEFAULT                     ASCII                        EBCDIC
 * ————————–  —————————  ———————–
 * Pchar_write2io              Pa_char_write2io             Pe_char_write2io
 *
 * Pchar_write2buf             Pa_char_write2buf            Pe_char_write2buf
 */

ssize_t Pa_char_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pchar *c);

ssize_t Pa_char_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pchar *c
                    );

ssize_t Pa_char_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pchar *c,
                    
const char *tag, int indent
                    );

ssize_t Pa_char_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pchar *c, const char *tag,
                    
int indent
                    );


ssize_t Pe_char_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pchar *c);

ssize_t Pe_char_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pchar *c
                    );

ssize_t Pe_char_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pchar *c,
                    
const char *tag, int indent
                    );

ssize_t Pe_char_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pchar *c, 
const char *tag, int indent
                    );


ssize_t Pchar_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pchar *c);

ssize_t Pchar_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pchar *c
                    );

ssize_t Pchar_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pchar *c,
                    
const char *tag, int indent
                    );

ssize_t Pchar_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pchar *c, 
const char *tag, int indent
                    );


ssize_t Pa_char_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pa_char_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pa_char_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pchar *rep
                    );


ssize_t Pe_char_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pe_char_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pe_char_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pchar *rep
                    );


ssize_t Pchar_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pchar_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pchar *rep
                    );

ssize_t Pchar_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pchar *rep
                    );

B.3  Strings: Character encodings

/* ================================================================================
 * READ
 */

/* ================================================================================
 * STRING READ FUNCTIONS
 *
 * DEFAULT                      ASCII                          EBCDIC
 * ————————–  —————————–  ——————-
 * Pstring_FW_read             Pa_string_FW_read              Pe_string_FW_read
 * Pstring_read                Pa_string_read                 Pe_string_read
 * Pstring_ME_read             Pa_string_ME_read              Pe_string_ME_read
 * Pstring_CME_read            Pa_string_CME_read             Pe_string_CME_read
 * Pstring_SE_read             Pa_string_SE_read              Pe_string_SE_read
 * Pstring_CSE_read            Pa_string_CSE_read             Pe_string_CSE_read
 *
 * The string read functions each has a different way of specifying
 * the extent of the string:
 *   + all string_FW_read functions specify a fixed width.
 *     N.B.: width zero is allowed: the result is an empty string
 *       (and the IO cursor does not move)
 *   + all string_read functions specify a single stop character.
 *       if 0 (NULL) is used, then this will match a NULL in the data,
 *       and eor/eof will ALSO successfully terminate the string 
 *   + all string_ME_read and string_CME_read functions specify a
 *       Match Expression (string includes all chars that match)
 *   + all string_SE_read and string_CSE_read specify a Stop Expression
 *       (string terminated by encountering ’stop chars’ that match)
 */
/*
 * The ME/SE functions take a string containing a regular expression,
 * while the CME/CSE functions take a compiled form of regular
 * expression (see Pregexp_compile).
 *
 * stop chars and regular expressions are specified using ASCII, but
 * reading/matching occurs using converted EBCDIC forms if an EBCDIC
 * form is used or if a DEFAULT form is used and
 * pads->disc->def_charset is Pcharset_EBCDIC.
 * 
 * For all stop cases, the stop char/chars are not included in the
 * resulting string.  Note that if the IO cursor is already at a stop
 * condition, then a string of length zero results.
 *
 * If an expected stop char/pattern/width is found, P_OK is returned.
 * If P_TestSet(*m) then:

 *   + (*s_out) is set to contain an in-memory string.  If the
 *     original data is ASCII, then s_out will either share the string
 *     or contain a copy of the string, depending on
 *     pads->disc->copy_strings.  If the original data is EBCDIC, s_out
 *     always contains a copy of the string that has been converted to
 *     ASCII.  N.B. : (*s_out) should have been initialized at some
 *     point prior using Pstring_init or one of the initializing
 *     P_STRING macros.  (It can be initialized once and re-used in
 *     string read calls many times.)
 */
/* Cleanup note: If pads->disc->copy_strings is non-zero, the memory
 * allocated in (*s_out) should ultimately be freed using
 * Pstring_cleanup.
 *
 * If an expected stop condition is not encountered, the
 * IO cursor position is unchanged.  Error codes used:
 *     P_WIDTH_NOT_AVAILABLE
 *     P_STOPCHAR_NOT_FOUND
 *     P_STOPREGEXP_NOT_FOUND
 *     P_INVALID_REGEXP
 * 
 * EBCDIC Example: passing ’|’ (vertical bar, which is code 124 in
 * ASCII) to Pe_string_read as the stop char will result in a search
 * for the EBCDIC encoding of vertical bar (code 79 in EBCDIC), and
 * (*s_out) will be a string containing all chars between the IO
 * cursor and the EBCDIC vertical bar, with each EBCDIC char converted
 * to ASCII.
 */

Perror_t Pa_string_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    size_t width
                    );

Perror_t Pa_string_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pchar stopChar
                    );

Perror_t Pa_string_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *matchRegexp
                    );

Perror_t Pa_string_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pa_string_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *stopRegexp
                    );

Perror_t Pa_string_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Pe_string_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    size_t width
                    );

Perror_t Pe_string_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pchar stopChar
                    );

Perror_t Pe_string_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *matchRegexp
                    );

Perror_t Pe_string_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pe_string_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *stopRegexp
                    );

Perror_t Pe_string_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Pstring_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    size_t width
                    );

Perror_t Pstring_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pchar stopChar
                    );

Perror_t Pstring_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *matchRegexp
                    );

Perror_t Pstring_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pstring_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    
const char *stopRegexp
                    );

Perror_t Pstring_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pstring *s_out,
                    Pregexp_t *stopRegexp
                    );

/* ================================================================================
 * WRITE
 */

/* ================================================================================
 * STRING WRITE FUNCTIONS
 * DEFAULT                      ASCII                          EBCDIC
 * ————————-  —————————–  ———————-
 * Pstring_FW_write2io        Pa_string_FW_write2io          Pe_string_FW_write2io
 * Pstring_write2io           Pa_string_write2io             Pe_string_write2io
 * Pstring_ME_write2io        Pa_string_ME_write2io          Pe_string_ME_write2io
 * Pstring_CME_write2io       Pa_string_CME_write2io         Pe_string_CME_write2io
 * Pstring_SE_write2io        Pa_string_SE_write2io          Pe_string_SE_write2io
 * Pstring_CSE_write2io       Pa_string_CSE_write2io         Pe_string_CSE_write2io
 *
 * Pstring_FW_write2buf       Pa_string_FW_write2buf         Pe_string_FW_write2buf
 * Pstring_write2buf          Pa_string_write2buf            Pe_string_write2buf
 * Pstring_ME_write2buf       Pa_string_ME_write2buf         Pe_string_ME_write2buf
 * Pstring_CME_write2buf      Pa_string_CME_write2buf        Pe_string_CME_write2buf
 * Pstring_SE_write2buf       Pa_string_SE_write2buf         Pe_string_SE_write2buf
 * Pstring_CSE_write2buf      Pa_string_CSE_write2buf        Pe_string_CSE_write2buf
 */

ssize_t Pa_string_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    size_t width
                    );

ssize_t Pa_string_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, size_t width
                    );

ssize_t Pa_string_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pchar stopChar
                    );

ssize_t Pa_string_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pchar stopChar
                    );

ssize_t Pa_string_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *matchRegexp
                    );

ssize_t Pa_string_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *matchRegexp
                    );


ssize_t Pa_string_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *stopRegexp
                    );

ssize_t Pa_string_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *stopRegexp
                    );

ssize_t Pa_string_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pa_string_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *stopRegexp
                    );


ssize_t Pa_string_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_string_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_string_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pa_string_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pa_string_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pa_string_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pa_string_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pa_string_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pa_string_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pa_string_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pe_string_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    size_t width
                    );

ssize_t Pe_string_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, size_t width
                    );

ssize_t Pe_string_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pchar stopChar
                    );

ssize_t Pe_string_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pchar stopChar
                    );

ssize_t Pe_string_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *matchRegexp
                    );

ssize_t Pe_string_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *matchRegexp
                    );


ssize_t Pe_string_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *stopRegexp
                    );

ssize_t Pe_string_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *stopRegexp
                    );

ssize_t Pe_string_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pe_string_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *stopRegexp
                    );


ssize_t Pe_string_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_string_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_string_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pe_string_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pe_string_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pe_string_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pe_string_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pe_string_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pe_string_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pe_string_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pstring_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    size_t width
                    );

ssize_t Pstring_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, size_t width
                    );

ssize_t Pstring_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pchar stopChar
                    );

ssize_t Pstring_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pchar stopChar
                    );

ssize_t Pstring_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *matchRegexp
                    );

ssize_t Pstring_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *matchRegexp
                    );


ssize_t Pstring_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pstring_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *matchRegexp
                    );

ssize_t Pstring_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *stopRegexp
                    );

ssize_t Pstring_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *stopRegexp
                    );

ssize_t Pstring_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pstring_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, Pregexp_t *stopRegexp
                    );


ssize_t Pstring_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pstring_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pstring_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pstring_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pstring *s, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pstring_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pstring_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pstring_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pstring_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pstring_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pstring_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pstring_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pstring *s,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pstring_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pstring *s, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pa_string_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, size_t width
                    );

ssize_t Pa_string_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, size_t width
                    );

ssize_t Pa_string_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pa_string_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pa_string_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *matchRegexp
                    );

ssize_t Pa_string_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, 
const char *matchRegexp
                    );


ssize_t Pa_string_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pa_string_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pa_string_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pa_string_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pa_string_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    size_t width
                    );

ssize_t Pa_string_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pchar stopChar
                    );

ssize_t Pa_string_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *matchRegexp
                    );

ssize_t Pa_string_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_string_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *stopRegexp
                    );

ssize_t Pa_string_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pe_string_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, size_t width
                    );

ssize_t Pe_string_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, size_t width
                    );

ssize_t Pe_string_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pe_string_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pe_string_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *matchRegexp
                    );

ssize_t Pe_string_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, 
const char *matchRegexp
                    );


ssize_t Pe_string_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pe_string_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pe_string_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pe_string_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pe_string_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    size_t width
                    );

ssize_t Pe_string_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pchar stopChar
                    );

ssize_t Pe_string_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *matchRegexp
                    );

ssize_t Pe_string_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_string_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *stopRegexp
                    );

ssize_t Pe_string_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pstring_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, size_t width
                    );

ssize_t Pstring_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, size_t width
                    );

ssize_t Pstring_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pstring_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pchar stopChar
                    );

ssize_t Pstring_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *matchRegexp
                    );

ssize_t Pstring_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *matchRegexp
                    );


ssize_t Pstring_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pstring_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pstring_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pstring_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, 
const char *stopRegexp
                    );

ssize_t Pstring_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pstring *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pstring_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pstring *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pstring_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    size_t width
                    );

ssize_t Pstring_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pstring *rep, Pchar stopChar
                    );

ssize_t Pstring_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *matchRegexp
                    );

ssize_t Pstring_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pstring_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    
const char *stopRegexp
                    );

ssize_t Pstring_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pstring *rep,
                    Pregexp_t *stopRegexp
                    );

B.4  IP addresses: Character encodings

/* ================================================================================
 * IP ADDRESS READ FUNCTIONS
 *
 * DEFAULT                        ASCII                          EBCDIC
 * —————————–  —————————–  —————————–
 * Pip_read                       Pa_ip_read                     Pe_ip_read
 *
 * Attempts to read a numeric IP address string, i.e., an IP address
 * form consisting of four numeric parts with values 0-255,
 * separated by ".", with an optional trailing dot.  
 */
/* The result is a single Puint32 value with each part encoded in one
 * of the four bytes.  part1 is stored in the high-order byte, part4
 * in the low-order byte.  You can obtain each part using the macro
 *
 *   P_IP_PART(addr, part)
 *
 * where part must be from 1 to 4.
 *
 * The digit chars and "." char are read as EBCDIC chars if the EBCDIC
 * form is used or if the DEFAULT form is used and
 * pads->disc->def_charset is Pcharset_EBCDIC.  Otherwise the data is
 * read as ASCII chars.
 */
/* If the current IO cursor position points to a valid IP address string:
 *   + Sets (*res_out) to the resulting Puint32
 *   + advances the IO cursor position to just after the last legal
 *      character in the IP address string
 *   + returns P_OK
 * Otherwise:
 *   + pd->loc.b/e set to the IO cursor position
 *   + IO cursor is not advanced
 *   + if P_Test_NotIgnore(*m), pd->errCode set to P_INVALID_IP,
 *         pd->nerr set to 1, and an error is reported
 *   + returns P_ERR
 */

Perror_t Pa_ip_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);


Perror_t Pe_ip_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);


Perror_t Pip_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);

/* The helper macro P_IP_PART(addr, part) takes a Puint32 addr
 * and a part number from 1 to 4, and produces the specified part.
 */
/* ================================================================================
 * IP WRITE FUNCTIONS
 * DEFAULT                        ASCII                          EBCDIC
 * —————————–  —————————–  —————————–
 * Pip_write2io                   Pa_ip_write2io                 Pe_ip_write2io 
 *
 * Pip_write2buf                  Pa_ip_write2buf                Pe_ip_write2buf
 */

ssize_t Pa_ip_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d);

ssize_t Pa_ip_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d
                    );

ssize_t Pa_ip_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent
                    );

ssize_t Pa_ip_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent
                    );


ssize_t Pe_ip_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d);

ssize_t Pe_ip_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d
                    );

ssize_t Pe_ip_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent
                    );

ssize_t Pe_ip_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent
                    );


ssize_t Pip_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d);

ssize_t Pip_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d
                    );

ssize_t Pip_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent
                    );

ssize_t Pip_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent
                    );


ssize_t Pa_ip_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pa_ip_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pa_ip_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );


ssize_t Pe_ip_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pe_ip_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pe_ip_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );


ssize_t Pip_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep);

ssize_t Pip_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pip_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep);


B.5  Timestamp, date, and time types: Character encodings

/* ================================================================================
 * READ FUNCTIONS
 *
 * DEFAULT                      ASCII                          EBCDIC
 * —————————- —————————–  —————————–
 * Ptimestamp_explicit_FW_read  Pa_timestamp_explicit_FW_read  Pe_timestamp_explicit_FW_read
 * Ptimestamp_explicit_read     Pa_timestamp_explicit_read     Pe_timestamp_explicit_read
 * Ptimestamp_explicit_ME_read  Pa_timestamp_explicit_ME_read  Pe_timestamp_explicit_ME_read
 * Ptimestamp_explicit_CME_read Pa_timestamp_explicit_CME_read Pe_timestamp_explicit_CME_read
 * Ptimestamp_explicit_SE_read  Pa_timestamp_explicit_SE_read  Pe_timestamp_explicit_SE_read
 * Ptimestamp_explicit_CSE_read Pa_timestamp_explicit_CSE_read Pe_timestamp_explicit_CSE_read
 *
 * Pdate_explicit_FW_read       Pa_date_explicit_FW_read       Pe_date_explicit_FW_read
 * Pdate_explicit_read          Pa_date_explicit_read          Pe_date_explicit_read
 * Pdate_explicit_ME_read       Pa_date_explicit_ME_read       Pe_date_explicit_ME_read
 * Pdate_explicit_CME_read      Pa_date_explicit_CME_read      Pe_date_explicit_CME_read
 * Pdate_explicit_SE_read       Pa_date_explicit_SE_read       Pe_date_explicit_SE_read
 * Pdate_explicit_CSE_read      Pa_date_explicit_CSE_read      Pe_date_explicit_CSE_read
 *
 * Ptime_explicit_FW_read       Pa_time_explicit_FW_read       Pe_time_explicit_FW_read
 * Ptime_explicit_read          Pa_time_explicit_read          Pe_time_explicit_read
 * Ptime_explicit_ME_read       Pa_time_explicit_ME_read       Pe_time_explicit_ME_read
 * Ptime_explicit_CME_read      Pa_time_explicit_CME_read      Pe_time_explicit_CME_read
 * Ptime_explicit_SE_read       Pa_time_explicit_SE_read       Pe_time_explicit_SE_read
 * Ptime_explicit_CSE_read      Pa_time_explicit_CSE_read      Pe_time_explicit_CSE_read
 */
/*
 * Ptimestamp_FW_read           Pa_timestamp_FW_read           Pe_timestamp_FW_read
 * Ptimestamp_read              Pa_timestamp_read              Pe_timestamp_read
 * Ptimestamp_ME_read           Pa_timestamp_ME_read           Pe_timestamp_ME_read
 * Ptimestamp_CME_read          Pa_timestamp_CME_read          Pe_timestamp_CME_read
 * Ptimestamp_SE_read           Pa_timestamp_SE_read           Pe_timestamp_SE_read
 * Ptimestamp_CSE_read          Pa_timestamp_CSE_read          Pe_timestamp_CSE_read
 *
 * Pdate_FW_read                Pa_date_FW_read                Pe_date_FW_read
 * Pdate_read                   Pa_date_read                   Pe_date_read
 * Pdate_ME_read                Pa_date_ME_read                Pe_date_ME_read
 * Pdate_CME_read               Pa_date_CME_read               Pe_date_CME_read
 * Pdate_SE_read                Pa_date_SE_read                Pe_date_SE_read
 * Pdate_CSE_read               Pa_date_CSE_read               Pe_date_CSE_read
 *
 * Ptime_FW_read                Pa_time_FW_read                Pe_time_FW_read
 * Ptime_read                   Pa_time_read                   Pe_time_read
 * Ptime_ME_read                Pa_time_ME_read                Pe_time_ME_read
 * Ptime_CME_read               Pa_time_CME_read               Pe_time_CME_read
 * Ptime_SE_read                Pa_time_SE_read                Pe_time_SE_read
 * Ptime_CSE_read               Pa_time_CSE_read               Pe_time_CSE_read
 */
/*
 * Ptimestamp_explicit variants: 
 *
 *    Converts ASCII/EBCDIC char date/time description into seconds
 *    since Midnight Jan 1, 1970.  Format-based parsing is based on
 *    libast’s tmdate function.  Input format and input time zone are
 *    specified explicitly.  The format used controls whether input is
 *    date and time, just date, or just time.  Default output format
 *    is set via disc->out_formats.timestamp_explicit
 *
 * Pdate_explicit variants:
 *
 *    Like Ptimestamp_explicit, with explicit format and time zone
 *    argument.  INTENDED to be used for just date, but format
 *    determines which strings are accepted. If treated as a full timestamp
 *    (time in seconds since Midnight Jan 1, 1970), the result has a
 *    ’time of day’ component of 0 hours, 0 minutes, 0 seconds.
 *    Default output format is set via disc->out_formats.date_explicit
 *
 * Ptime_explicit variants:
 *
 *    Like Ptimestamp_explicit, with explicit format and time zone
 *    argument.  INTENDED to be used for just time, but format
 *    determines which strings are accepted.  The resulting
 *    time in seconds is just the contribution of the specified time of day,
 *    thus if treated as a full timestamp, the time would fall on Jan 1, 1970.
 *    Default output format is set via disc->out_formats.time_explicit
 */
/*
 * Ptimestamp variants:
 *
 *    Like Ptimestamp_explicit, but input format and input time zone
 *    are taken from disc->in_formats.timestamp and
 *    disc->in_time_zone.  INTENDED to be used for both a date and
 *    time, but format determines actual use.  Default output format
 *    is set via disc->out_formats.timestamp
 *
 * Pdate variants:
 *
 *    Like Pdate_explicit, but input format and input time zone are
 *    taken from disc->in_formats.date and disc->in_time_zone.
 *    INTENDED to be used for just date, but format determines which
 *    strings are accepted. If treated as a full timestamp (time in seconds
 *    since Midnight Jan 1, 1970), the result has a ’time of day’ component
 *    of 0 hours, 0 minutes, 0 seconds.  Default output format is set
 *    via disc->out_formats.date
 *
 * Ptime variants:
 *
 *    Like Ptime_explicit, but input format and input time zone are
 *    taken from disc->in_formats.time and disc->in_time_zone.
 *    INTENDED to be used for just time, but format determines which
 *    strings are accepted.  The resulting time in seconds is just the
 *    contribution of the specified time of day, thus if treated as a
 *    full timestamp, the time would fall on Jan 1, 1970.
 *    Default output format is set via disc->out_formats.time
 *
 * Each of the types above corresponds to one of the Pstring variants.
 * In each case one specifies the extent of a ’string’ in the input
 * that is to be converted to a Puint32 representing the date in
 * seconds since the epoch.  For the different date formats that are
 * supported, see the discussion of disc->in_formats in pads.h.
 *
 * If the current IO cursor position points to a valid date string:
 *   + Sets (*res_out) to the resulting date in seconds since the epoch
 *   + advances the IO cursor position to just after the last
 *     legal character in the date string
 *   + returns P_OK
 * Otherwise:
 *   + does not advance the IO cursor pos
 *   + returns P_ERR
 */

Perror_t Pa_timestamp_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_timestamp_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_timestamp_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_timestamp_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_timestamp_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_timestamp_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pa_date_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_date_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_date_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_date_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_date_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_date_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pa_time_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_time_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_time_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_time_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_time_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pa_time_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pa_timestamp_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width
                    );

Perror_t Pa_timestamp_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar
                    );

Perror_t Pa_timestamp_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp
                    );

Perror_t Pa_timestamp_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp
                    );

Perror_t Pa_timestamp_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp
                    );

Perror_t Pa_timestamp_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp
                    );


Perror_t Pa_date_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Pa_date_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar
                    );

Perror_t Pa_date_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Pa_date_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pa_date_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Pa_date_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Pa_time_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Pa_time_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar
                    );

Perror_t Pa_time_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Pa_time_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pa_time_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Pa_time_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Pe_timestamp_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_timestamp_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_timestamp_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_timestamp_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_timestamp_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_timestamp_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pe_date_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_date_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_date_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_date_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_date_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_date_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pe_time_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_time_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_time_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_time_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_time_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pe_time_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pe_timestamp_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width
                    );

Perror_t Pe_timestamp_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar
                    );

Perror_t Pe_timestamp_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp
                    );

Perror_t Pe_timestamp_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp
                    );

Perror_t Pe_timestamp_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp
                    );

Perror_t Pe_timestamp_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp
                    );


Perror_t Pe_date_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Pe_date_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar
                    );

Perror_t Pe_date_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Pe_date_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pe_date_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Pe_date_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Pe_time_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Pe_time_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar
                    );

Perror_t Pe_time_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Pe_time_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pe_time_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Pe_time_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Ptimestamp_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptimestamp_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptimestamp_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptimestamp_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptimestamp_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptimestamp_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Pdate_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pdate_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pdate_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pdate_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pdate_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Pdate_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Ptime_explicit_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptime_explicit_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptime_explicit_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptime_explicit_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptime_explicit_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

Perror_t Ptime_explicit_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );


Perror_t Ptimestamp_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width
                    );

Perror_t Ptimestamp_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar
                    );

Perror_t Ptimestamp_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *matchRegexp
                    );

Perror_t Ptimestamp_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *matchRegexp
                    );

Perror_t Ptimestamp_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, 
const char *stopRegexp
                    );

Perror_t Ptimestamp_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, Pregexp_t *stopRegexp
                    );


Perror_t Pdate_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Pdate_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar);

Perror_t Pdate_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Pdate_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Pdate_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Pdate_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


Perror_t Ptime_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Ptime_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pchar stopChar);

Perror_t Ptime_ME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *matchRegexp
                    );

Perror_t Ptime_CME_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *matchRegexp
                    );

Perror_t Ptime_SE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    
const char *stopRegexp
                    );

Perror_t Ptime_CSE_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Pregexp_t *stopRegexp
                    );


/* ================================================================================
 * WRITE FUNCTIONS
 * DEFAULT                     ASCII                        EBCDIC
 * ————————–  —————————  ———————–
 * Pdate_FW_write2io           Pa_date_FW_write2io          Pe_date_FW_write2io
 * Pdate_write2io              Pa_date_write2io             Pe_date_write2io
 * Pdate_ME_write2io           Pa_date_ME_write2io          Pe_date_ME_write2io
 * Pdate_CME_write2io          Pa_date_CME_write2io         Pe_date_CME_write2io
 * Pdate_SE_write2io           Pa_date_SE_write2io          Pe_date_SE_write2io
 * Pdate_CSE_write2io          Pa_date_CSE_write2io         Pe_date_CSE_write2io
 *
 * Pdate_FW_write2buf          Pa_date_FW_write2buf         Pe_date_FW_write2buf
 * Pdate_write2buf             Pa_date_write2buf            Pe_date_write2buf
 * Pdate_ME_write2buf          Pa_date_ME_write2buf         Pe_date_ME_write2buf
 * Pdate_CME_write2buf         Pa_date_CME_write2buf        Pe_date_CME_write2buf
 * Pdate_SE_write2buf          Pa_date_SE_write2buf         Pe_date_SE_write2buf
 * Pdate_CSE_write2buf         Pa_date_CSE_write2buf        Pe_date_CSE_write2buf
 */

/* Ptimestamp_explicit */

ssize_t Pa_timestamp_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf,
                    size_t buf_len, 
int *buf_full, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf,
                    size_t buf_len, 
int *buf_full, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_timestamp_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_timestamp_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf,
                    size_t buf_len, 
int *buf_full, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf,
                    size_t buf_len, 
int *buf_full, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_timestamp_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_timestamp_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *matchRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, Pregexp_t *stopRegexp, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptimestamp_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptimestamp_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


/* Pdate_explicit */

ssize_t Pa_date_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_date_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_date_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_date_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_date_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pdate_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pdate_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


/* Ptime_explicit */

ssize_t Pa_time_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pa_time_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pa_time_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pchar stopChar,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Pe_time_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Pe_time_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, size_t width,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp, const char *format,
                    Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar, 
const char *format,
                    Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp,
                    
const char *format, Tm_zone_t *tzone
                    );


ssize_t Ptime_explicit_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp, 
const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp, const char *format, Tm_zone_t *tzone
                    );

ssize_t Ptime_explicit_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp, 
const char *format, Tm_zone_t *tzone
                    );


/* Ptimestamp */

ssize_t Pa_timestamp_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pa_timestamp_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pa_timestamp_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pa_timestamp_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pa_timestamp_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pa_timestamp_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp
                    );


ssize_t Pa_timestamp_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pa_timestamp_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pa_timestamp_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_timestamp_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_timestamp_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pa_timestamp_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar
                    );

ssize_t Pa_timestamp_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pa_timestamp_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pa_timestamp_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pa_timestamp_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pa_timestamp_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_timestamp_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Pa_timestamp_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_timestamp_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_timestamp_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pa_timestamp_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pa_timestamp_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_timestamp_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pa_timestamp_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pa_timestamp_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar
                    );

ssize_t Pa_timestamp_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pa_timestamp_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_timestamp_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pa_timestamp_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pe_timestamp_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pe_timestamp_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pe_timestamp_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pe_timestamp_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pe_timestamp_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pe_timestamp_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *matchRegexp
                    );


ssize_t Pe_timestamp_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pe_timestamp_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pe_timestamp_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_timestamp_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_timestamp_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pe_timestamp_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar
                    );

ssize_t Pe_timestamp_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pe_timestamp_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pe_timestamp_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pe_timestamp_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Puint32 *d, 
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pe_timestamp_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_timestamp_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Pe_timestamp_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_timestamp_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_timestamp_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pe_timestamp_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pe_timestamp_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_timestamp_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pe_timestamp_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pe_timestamp_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar
                    );

ssize_t Pe_timestamp_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pe_timestamp_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_timestamp_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pe_timestamp_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Ptimestamp_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Ptimestamp_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Ptimestamp_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Ptimestamp_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Ptimestamp_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Ptimestamp_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Ptimestamp_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Ptimestamp_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Ptimestamp_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Ptimestamp_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Ptimestamp_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Ptimestamp_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Ptimestamp_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Ptimestamp_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pchar stopChar
                    );

ssize_t Ptimestamp_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Ptimestamp_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Ptimestamp_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Ptimestamp_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Ptimestamp_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Ptimestamp_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Ptimestamp_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Ptimestamp_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Ptimestamp_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Ptimestamp_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Ptimestamp_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Ptimestamp_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Ptimestamp_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Ptimestamp_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Ptimestamp_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Ptimestamp_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Ptimestamp_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Ptimestamp_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pchar stopChar
                    );

ssize_t Ptimestamp_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Ptimestamp_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Ptimestamp_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Ptimestamp_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


/* Pdate */

ssize_t Pa_date_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pa_date_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pa_date_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pa_date_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pa_date_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pa_date_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Pa_date_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pa_date_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Pa_date_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pa_date_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pa_date_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_date_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_date_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pa_date_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pa_date_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pa_date_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pa_date_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pa_date_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pa_date_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pa_date_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pa_date_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_date_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_date_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_date_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_date_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pa_date_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pa_date_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_date_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_date_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pa_date_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pa_date_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pa_date_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_date_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pa_date_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_date_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pa_date_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pe_date_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pe_date_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pe_date_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pe_date_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pe_date_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pe_date_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Pe_date_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pe_date_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Pe_date_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pe_date_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pe_date_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_date_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_date_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pe_date_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pe_date_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pe_date_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pe_date_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pe_date_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pe_date_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pe_date_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pe_date_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_date_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_date_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_date_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_date_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pe_date_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pe_date_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_date_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_date_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pe_date_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pe_date_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pe_date_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_date_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pe_date_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_date_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pe_date_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pdate_FW_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d,size_t width);

ssize_t Pdate_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pdate_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d,Pchar stopChar);

ssize_t Pdate_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pdate_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pdate_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Pdate_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pdate_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pdate_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pdate_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Pdate_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pdate_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pdate_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pdate_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Pdate_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pdate_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pdate_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pdate_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    
const char *matchRegexp
                    );


ssize_t Pdate_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pdate_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pdate_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pdate_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    
const char *stopRegexp
                    );

ssize_t Pdate_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pdate_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pdate_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pdate_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pdate_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pdate_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pdate_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pdate_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pdate_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pdate_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pdate_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pdate_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pdate_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pdate_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pdate_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Pdate_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pdate_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pdate_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pdate_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pdate_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


/* Ptime */

ssize_t Pa_time_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pa_time_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pa_time_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pa_time_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pa_time_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pa_time_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Pa_time_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pa_time_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Pa_time_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pa_time_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pa_time_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_time_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_time_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pa_time_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pa_time_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pa_time_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pa_time_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pa_time_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pa_time_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pa_time_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pa_time_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_time_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_time_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_time_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_time_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pa_time_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pa_time_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_time_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pa_time_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pa_time_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pa_time_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pa_time_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pa_time_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pa_time_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pa_time_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pa_time_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Pe_time_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    size_t width
                    );

ssize_t Pe_time_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Pe_time_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pchar stopChar
                    );

ssize_t Pe_time_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Pe_time_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Pe_time_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Pe_time_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Pe_time_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Pe_time_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Pe_time_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Pe_time_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_time_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_time_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Pe_time_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Pe_time_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Pe_time_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *matchRegexp
                    );


ssize_t Pe_time_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Pe_time_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, const char *stopRegexp
                    );

ssize_t Pe_time_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Pe_time_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *d, const char *tag,
                    
int indent, Pregexp_t *stopRegexp
                    );


ssize_t Pe_time_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_time_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_time_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_time_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_time_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Pe_time_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Pe_time_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_time_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Pe_time_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Pe_time_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Pe_time_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pe_time_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Pe_time_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *matchRegexp
                    );

ssize_t Pe_time_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Pe_time_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    
const char *stopRegexp
                    );

ssize_t Pe_time_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );


ssize_t Ptime_FW_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d,size_t width);

ssize_t Ptime_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, size_t width
                    );

ssize_t Ptime_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *d,Pchar stopChar);

ssize_t Ptime_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pchar stopChar
                    );

ssize_t Ptime_ME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *matchRegexp
                    );

ssize_t Ptime_ME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *matchRegexp
                    );


ssize_t Ptime_CME_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *matchRegexp
                    );

ssize_t Ptime_CME_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *matchRegexp
                    );

ssize_t Ptime_SE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *stopRegexp
                    );

ssize_t Ptime_SE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *stopRegexp
                    );

ssize_t Ptime_CSE_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    Pregexp_t *stopRegexp
                    );

ssize_t Ptime_CSE_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, Pregexp_t *stopRegexp
                    );


ssize_t Ptime_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Ptime_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Ptime_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pchar stopChar
                    );

ssize_t Ptime_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pchar stopChar
                    );

ssize_t Ptime_ME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *matchRegexp
                    );

ssize_t Ptime_ME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    
const char *matchRegexp
                    );


ssize_t Ptime_CME_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *matchRegexp
                    );

ssize_t Ptime_CME_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pregexp_t *matchRegexp
                    );

ssize_t Ptime_SE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, const char *stopRegexp
                    );

ssize_t Ptime_SE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    
const char *stopRegexp
                    );

ssize_t Ptime_CSE_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *d,
                    
const char *tag, int indent, Pregexp_t *stopRegexp
                    );

ssize_t Ptime_CSE_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *d, 
const char *tag, int indent,
                    Pregexp_t *stopRegexp
                    );


ssize_t Ptime_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Ptime_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Ptime_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Ptime_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pchar stopChar
                    );

ssize_t Ptime_ME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Ptime_ME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *matchRegexp
                    );


ssize_t Ptime_CME_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Ptime_CME_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *matchRegexp
                    );

ssize_t Ptime_SE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Ptime_SE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Ptime_CSE_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );

ssize_t Ptime_CSE_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Pregexp_t *stopRegexp
                    );


ssize_t Ptime_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Ptime_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, Pchar stopChar
                    );

ssize_t Ptime_ME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, 
const char *matchRegexp
                    );

ssize_t Ptime_CME_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *matchRegexp
                    );

ssize_t Ptime_SE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep, 
const char *stopRegexp
                    );

ssize_t Ptime_CSE_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Pregexp_t *stopRegexp
                    );

B.6  Integers: Character encodings

/* ================================================================================
 * ASCII STRING TO INTEGER READ FUNCTIONS
 *
 * An ASCII representation of an integer value (a string of digits in
 * [0-9]) is assumed to be at the current cursor position, where if
 * the target type is a signed type a leading - or + is allowed and if
 * unsigned a leading + is allowed.  If (pads->disc->flags &
 * P_WSPACE_OK), leading white space is skipped, otherwise leading
 * white space causes an error.  Thus, the string to be converted
 * consists of: optional white space, optional +/-, and all
 * consecutive digits (first nondigit marks end).
 *
 * RETURN VALUE: Perror_t
 *
 * Upon success, P_OK returned: 
 *   + the IO cursor is advanced to just beyond the last digit
 *   + if P_Test_NotIngore(*m), the out param is assigned a value
 *
 * P_ERR is returned on error.
 * Cursor advancement/err settings for different error cases:
 */
/* (1) If IO cursor is at EOF
 *     + pd->loc.b/e set to EOF ’location’
 *     + IO cursor remains at EOF
 *     + if P_Test_NotIgnore(*), pd->errCode set to P_AT_EOF,
 *         pd->nerr set to 1, and an error is reported
 * (2a) There is leading white space and
 *        (pads->disc->flags & P_WSPACE_OK) is not set
 * (2b) The target is unsigned and the first char is a -
 * (2c) The first character is not a +, -, or in [0-9]
 * (2d) First character is allowable + or -, following by a char that
 *        is not a digit
 * For the above 4 cases:
 *     + pd->loc.b/e set to the IO cursor position.
 *     + IO cursor is not advanced
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_INVALID_A_NUM,
 *         pd->nerr set to 1, and an error is reported
 * (3) A valid ASCII integer string is found, but it describes
 *     an integer that does not fit in the specified target type
 *     + pd->loc.b/e set to elt/char position of start and
 *        end of the ASCII integer
 *     + IO cursor is advanced just beyond the last digit
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 */

Perror_t Pa_int8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint8 *res_out);

Perror_t Pa_int16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint16 *res_out);

Perror_t Pa_int32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint32 *res_out);

Perror_t Pa_int64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint64 *res_out);

Perror_t Pa_uint8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint8 *res_out);

Perror_t Pa_uint16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint16 *res_out);

Perror_t Pa_uint32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);

Perror_t Pa_uint64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint64 *res_out);

/*
 * Fixed-width ASCII integer read functions:
 *    Like the above, only a fixed width in input characters is
 *    specified, and only those characters are examined.  E.g., input
 *    ’11112222’ could be used to read two fixed-width ASCII integers
 *    of width 4.
 *
 * N.B. The APIs require width > 0.  If width <= 0 is given, an
 * immediate error return occurs, without setting pd’s location or
 * error code.
 */
/* Other differences from the variable-width read functions:
 *
 * 1. It is an error if the entire specified width is not an integer,
 *    e.g., for fixed width 4, input ’111|’ is an error
 *
 * 2. (pads->disc->flags & P_WSPACE_OK) indicates whether leading OR
 *    trailing spaces are OK, e.g., for fixed width 4, input ’ 1 ’ is not
 *    an error is wpace_ok is 1 (trailing white space is not an issue for
 *    variable-width routines)
 *
 * 3. If the specified width is available, it is always consumed, even
 *    if there is an error.  In this case
 *      + pd->loc.b/e is set to the first/last char of the fixed-width field
 *      + if P_Test_NotIgnore(*m), an error code is set,
 *         pd->nerr set to 1, and an error is reported
 *
 *    If the specified width is *not* available (EOR/EOF hit):
 *      + pd->loc.b/e set to elt/char position of start/end of 
 *          the ’too small’ field
 *      + IO cursor is not advanced
 *      + if P_Test_NotIgnore(*m), pd->errCode set to P_WIDTH_NOT_AVAILABLE,
 *         pd->nerr set to 1, and an error is reported
 */

Perror_t Pa_int8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    size_t width
                    );

Perror_t Pa_int16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    size_t width
                    );

Perror_t Pa_int32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    size_t width
                    );

Perror_t Pa_int64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    size_t width
                    );


Perror_t Pa_uint8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    size_t width
                    );

Perror_t Pa_uint16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint16 *res_out, size_t width
                    );

Perror_t Pa_uint32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width
                    );

Perror_t Pa_uint64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint64 *res_out, size_t width
                    );

/* ================================================================================
 * EBCDIC STRING TO INTEGER READ FUNCTIONS
 *
 * These functions are just like their ASCII counterparts; the only
 * difference is the integers are encoding using EBCDIC string data.
 * The error codes used are also the same,
 * except that error code P_INVALID_E_NUM is used rather 
 * than P_INVALID_A_NUM
 */

Perror_t Pe_int8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint8 *res_out);

Perror_t Pe_int16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint16 *res_out);

Perror_t Pe_int32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint32 *res_out);

Perror_t Pe_int64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint64 *res_out);

Perror_t Pe_uint8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint8 *res_out);

Perror_t Pe_uint16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint16 *res_out);

Perror_t Pe_uint32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);

Perror_t Pe_uint64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint64 *res_out);


Perror_t Pe_int8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    size_t width
                    );

Perror_t Pe_int16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    size_t width
                    );

Perror_t Pe_int32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    size_t width
                    );

Perror_t Pe_int64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    size_t width
                    );


Perror_t Pe_uint8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    size_t width
                    );

Perror_t Pe_uint16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint16 *res_out, size_t width
                    );

Perror_t Pe_uint32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint32 *res_out, size_t width
                    );

Perror_t Pe_uint64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Puint64 *res_out, size_t width
                    );

/* ================================================================================
 * DEFAULT STRING TO INTEGER READ FUNCTIONS
 *
 * These functions select the appropriate ASCII or EBCDIC string to integer
 * function based on pads->disc->def_charset.
 *
 * Example: the call 
 *
 *     Pint8_read(pads, &m, &ed, *res)
 *
 * is converted to one of these forms:
 *
 *     Pa_int8_read(pads, &m, &ed, *res)
 *     Pe_int8_read(pads, &m, &ed, *res)
 *     etc.
 */

Perror_t Pint8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint8 *res_out);

Perror_t Pint16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint16 *res_out);

Perror_t Pint32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint32 *res_out);

Perror_t Pint64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint64 *res_out);

Perror_t Puint8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint8 *res_out);

Perror_t Puint16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint16 *res_out);

Perror_t Puint32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);

Perror_t Puint64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint64 *res_out);


Perror_t Pint8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    size_t width
                    );

Perror_t Pint16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    size_t width
                    );

Perror_t Pint32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    size_t width
                    );

Perror_t Pint64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    size_t width
                    );


Perror_t Puint8_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    size_t width
                    );

Perror_t Puint16_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint16 *res_out,
                    size_t width
                    );

Perror_t Puint32_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    size_t width
                    );

Perror_t Puint64_FW_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint64 *res_out,
                    size_t width
                    );

/* ================================================================================
 * WRITE
 */

/* ================================================================================
 * INTEGER/FPOINT WRITE FUNCTIONS
 * 
 * For each integer or fpoint read function there is a corresponding write2io
 * function and a corresponding write2buf function which output the specified
 * value in a format that will allow the corresponding read function to 
 * successfully read the value.
 *
 * For example, if a Pint8 is written using Pe_int8_write2io, the bytes
 * that were output can be read back into a Pint8 using Pe_int8_read.
 *
 * All write functions take an Sfio_t* stream pointer (the stream to write to),
 * a parse descriptor pd, and a pointer to the value to be written.  Some also take
 * additional arguments, such as num_digits.  All return an integer.
 *
 * If pd->errCode is either P_NO_ERR or P_USER_CONSTRAINT_VIOLATIONS then
 * the value is assumed to have been filled in, and it is the value written.
 * For other error codes, the value is assumed to *not* have been filled in,
 * and an error value is written.  See the Default Error Value discussion above
 * for the set of default error values and details on how to override them.
 *
 * If the write succeeds, the return value is the number of bytes written.
 * If it fails, -1 is returned, and no bytes are written to the stream.
 */
ssize_t Pa_int8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint8 *val);

ssize_t Pa_int16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint16 *val);

ssize_t Pa_int32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint32 *val);

ssize_t Pa_int64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint64 *val);


ssize_t Pa_uint8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint8 *val);

ssize_t Pa_uint16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint16 *val);

ssize_t Pa_uint32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *val);

ssize_t Pa_uint64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint64 *val);


ssize_t Pa_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pa_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pe_int8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint8 *val);

ssize_t Pe_int16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint16 *val);

ssize_t Pe_int32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint32 *val);

ssize_t Pe_int64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint64 *val);


ssize_t Pe_uint8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint8 *val);

ssize_t Pe_uint16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint16 *val);

ssize_t Pe_uint32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *val);

ssize_t Pe_uint64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint64 *val);


ssize_t Pe_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pe_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pa_int8_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    size_t width
                    );

ssize_t Pa_int16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    size_t width
                    );

ssize_t Pa_int32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    size_t width
                    );

ssize_t Pa_int64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    size_t width
                    );


ssize_t Pa_uint8_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    size_t width
                    );

ssize_t Pa_uint16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    size_t width
                    );

ssize_t Pa_uint32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    size_t width
                    );

ssize_t Pa_uint64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    size_t width
                    );


ssize_t Pa_int8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_int16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_int32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_int64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Pa_uint8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_uint16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_uint32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pa_uint64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Pe_int8_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    size_t width
                    );

ssize_t Pe_int16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    size_t width
                    );

ssize_t Pe_int32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    size_t width
                    );

ssize_t Pe_int64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    size_t width
                    );


ssize_t Pe_uint8_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    size_t width
                    );

ssize_t Pe_uint16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    size_t width
                    );

ssize_t Pe_uint32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    size_t width
                    );

ssize_t Pe_uint64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    size_t width
                    );


ssize_t Pe_int8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_int16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_int32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_int64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Pe_uint8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_uint16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_uint32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pe_uint64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Pa_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val
                    );

ssize_t Pa_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val
                    );

ssize_t Pa_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val
                    );

ssize_t Pa_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val
                    );


ssize_t Pa_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val
                    );

ssize_t Pa_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val
                    );

ssize_t Pa_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val
                    );

ssize_t Pa_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val
                    );


ssize_t Pa_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent
                    );

ssize_t Pa_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, 
const char *tag, int indent
                    );

ssize_t Pa_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, 
const char *tag, int indent
                    );

ssize_t Pa_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, 
const char *tag, int indent
                    );


ssize_t Pa_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, 
const char *tag, int indent
                    );

ssize_t Pa_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, 
const char *tag, int indent
                    );

ssize_t Pa_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, 
const char *tag, int indent
                    );

ssize_t Pa_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, 
const char *tag, int indent
                    );


ssize_t Pe_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val
                    );

ssize_t Pe_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val
                    );

ssize_t Pe_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val
                    );

ssize_t Pe_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val
                    );


ssize_t Pe_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val
                    );

ssize_t Pe_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val
                    );

ssize_t Pe_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val
                    );

ssize_t Pe_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val
                    );


ssize_t Pe_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent
                    );

ssize_t Pe_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, 
const char *tag, int indent
                    );

ssize_t Pe_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, 
const char *tag, int indent
                    );

ssize_t Pe_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, 
const char *tag, int indent
                    );


ssize_t Pe_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, 
const char *tag, int indent
                    );

ssize_t Pe_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, 
const char *tag, int indent
                    );

ssize_t Pe_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, 
const char *tag, int indent
                    );

ssize_t Pe_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, 
const char *tag, int indent
                    );


ssize_t Pa_int8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, size_t width
                    );

ssize_t Pa_int16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, size_t width
                    );

ssize_t Pa_int32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, size_t width
                    );

ssize_t Pa_int64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, size_t width
                    );


ssize_t Pa_uint8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, size_t width
                    );

ssize_t Pa_uint16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, size_t width
                    );

ssize_t Pa_uint32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, size_t width
                    );

ssize_t Pa_uint64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, size_t width
                    );


ssize_t Pa_int8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint8 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_int16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_int32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_int64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, size_t width
                    );


ssize_t Pa_uint8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_uint16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_uint32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pa_uint64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, size_t width
                    );


ssize_t Pe_int8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, size_t width
                    );

ssize_t Pe_int16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, size_t width
                    );

ssize_t Pe_int32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, size_t width
                    );

ssize_t Pe_int64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, size_t width
                    );


ssize_t Pe_uint8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, size_t width
                    );

ssize_t Pe_uint16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, size_t width
                    );

ssize_t Pe_uint32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, size_t width
                    );

ssize_t Pe_uint64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, size_t width
                    );


ssize_t Pe_int8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint8 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_int16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_int32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_int64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, size_t width
                    );


ssize_t Pe_uint8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_uint16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_uint32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Pe_uint64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, size_t width
                    );


ssize_t Pa_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pa_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pa_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pa_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pa_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pa_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pa_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );

ssize_t Pa_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );


ssize_t Pa_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pa_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pa_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pa_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pa_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pa_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pa_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );

ssize_t Pa_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );


ssize_t Pa_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint8 *rep
                    );

ssize_t Pa_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint16 *rep
                    );

ssize_t Pa_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint32 *rep
                    );

ssize_t Pa_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint64 *rep
                    );

ssize_t Pa_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint8 *rep
                    );

ssize_t Pa_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep
                    );

ssize_t Pa_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );

ssize_t Pa_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep
                    );


ssize_t Pa_int8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pa_int8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pa_int16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, size_t width
                    );

ssize_t Pa_int16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint16 *rep, size_t width
                    );

ssize_t Pa_int32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, size_t width
                    );

ssize_t Pa_int32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint32 *rep, size_t width
                    );

ssize_t Pa_int64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, size_t width
                    );

ssize_t Pa_int64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint64 *rep, size_t width
                    );


ssize_t Pa_uint8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, size_t width
                    );

ssize_t Pa_uint8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint8 *rep, size_t width
                    );

ssize_t Pa_uint16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, size_t width
                    );

ssize_t Pa_uint16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, size_t width
                    );

ssize_t Pa_uint32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pa_uint32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Pa_uint64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, size_t width
                    );

ssize_t Pa_uint64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, size_t width
                    );


ssize_t Pa_int8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    size_t width
                    );

ssize_t Pa_int16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    size_t width
                    );

ssize_t Pa_int32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    size_t width
                    );

ssize_t Pa_int64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    size_t width
                    );

ssize_t Pa_uint8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    size_t width
                    );

ssize_t Pa_uint16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    size_t width
                    );

ssize_t Pa_uint32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pa_uint64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    size_t width
                    );


ssize_t Pe_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pe_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pe_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pe_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pe_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pe_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pe_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );

ssize_t Pe_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );


ssize_t Pe_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pe_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pe_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pe_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pe_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pe_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pe_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );

ssize_t Pe_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );


ssize_t Pe_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint8 *rep
                    );

ssize_t Pe_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint16 *rep
                    );

ssize_t Pe_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint32 *rep
                    );

ssize_t Pe_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint64 *rep
                    );

ssize_t Pe_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint8 *rep
                    );

ssize_t Pe_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep
                    );

ssize_t Pe_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );

ssize_t Pe_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep
                    );


ssize_t Pe_int8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pe_int8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pe_int16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, size_t width
                    );

ssize_t Pe_int16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint16 *rep, size_t width
                    );

ssize_t Pe_int32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, size_t width
                    );

ssize_t Pe_int32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint32 *rep, size_t width
                    );

ssize_t Pe_int64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, size_t width
                    );

ssize_t Pe_int64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Pint64 *rep, size_t width
                    );


ssize_t Pe_uint8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, size_t width
                    );

ssize_t Pe_uint8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint8 *rep, size_t width
                    );

ssize_t Pe_uint16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, size_t width
                    );

ssize_t Pe_uint16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, size_t width
                    );

ssize_t Pe_uint32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Pe_uint32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, size_t width
                    );

ssize_t Pe_uint64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, size_t width
                    );

ssize_t Pe_uint64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, size_t width
                    );


ssize_t Pe_int8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    size_t width
                    );

ssize_t Pe_int16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    size_t width
                    );

ssize_t Pe_int32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    size_t width
                    );

ssize_t Pe_int64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    size_t width
                    );

ssize_t Pe_uint8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    size_t width
                    );

ssize_t Pe_uint16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    size_t width
                    );

ssize_t Pe_uint32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Pe_uint64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    size_t width
                    );


ssize_t Pint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );

ssize_t Pint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );


ssize_t Puint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Puint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Puint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Puint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Puint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Puint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Puint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );

ssize_t Puint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );


ssize_t Pint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint8 *rep
                    );

ssize_t Pint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint16 *rep
                    );

ssize_t Pint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint32 *rep
                    );

ssize_t Pint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint64 *rep
                    );

ssize_t Puint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint8 *rep
                    );

ssize_t Puint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint16 *rep
                    );

ssize_t Puint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );

ssize_t Puint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint64 *rep
                    );


ssize_t Pint8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pint8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, size_t width
                    );

ssize_t Pint16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, size_t width
                    );

ssize_t Pint16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, size_t width
                    );

ssize_t Pint32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, size_t width
                    );

ssize_t Pint32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, size_t width
                    );

ssize_t Pint64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, size_t width
                    );

ssize_t Pint64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, size_t width
                    );


ssize_t Puint8_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, size_t width
                    );

ssize_t Puint8_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, size_t width
                    );

ssize_t Puint16_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, size_t width
                    );

ssize_t Puint16_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, size_t width
                    );

ssize_t Puint32_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Puint32_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, size_t width
                    );

ssize_t Puint64_FW_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, size_t width
                    );

ssize_t Puint64_FW_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, size_t width
                    );


ssize_t Pint8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint8 *rep, size_t width
                    );

ssize_t Pint16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    size_t width
                    );

ssize_t Pint32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    size_t width
                    );

ssize_t Pint64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    size_t width
                    );

ssize_t Puint8_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    size_t width
                    );

ssize_t Puint16_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    size_t width
                    );

ssize_t Puint32_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    size_t width
                    );

ssize_t Puint64_FW_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    size_t width
                    );


ssize_t Pint8_FW_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint8 *val,size_t width);

ssize_t Pint16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    size_t width
                    );

ssize_t Pint32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    size_t width
                    );

ssize_t Pint64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    size_t width
                    );

ssize_t Puint8_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    size_t width
                    );

ssize_t Puint16_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    size_t width
                    );

ssize_t Puint32_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    size_t width
                    );

ssize_t Puint64_FW_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    size_t width
                    );


ssize_t Pint8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, size_t width
                    );

ssize_t Pint16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, size_t width
                    );

ssize_t Pint32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, size_t width
                    );

ssize_t Pint64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, size_t width
                    );


ssize_t Puint8_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, size_t width
                    );

ssize_t Puint16_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, size_t width
                    );

ssize_t Puint32_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, size_t width
                    );

ssize_t Puint64_FW_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, size_t width
                    );


ssize_t Pint8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pint16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pint32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Pint64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Puint8_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Puint16_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Puint32_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, size_t width
                    );

ssize_t Puint64_FW_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, size_t width
                    );


ssize_t Pint8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Pint16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Pint32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Pint64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, 
const char *tag, int indent,
                    size_t width
                    );


ssize_t Puint8_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, 
const char *tag, int indent,
                    size_t width
                    );

ssize_t Puint16_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Puint32_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, size_t width
                    );

ssize_t Puint64_FW_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, size_t width
                    );


ssize_t Pint8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint8 *val);

ssize_t Pint16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint16 *val);

ssize_t Pint32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint32 *val);

ssize_t Pint64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint64 *val);


ssize_t Puint8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint8 *val);

ssize_t Puint16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint16 *val);

ssize_t Puint32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *val);

ssize_t Puint64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint64 *val);


ssize_t Pint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val
                    );

ssize_t Pint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val
                    );

ssize_t Pint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val
                    );

ssize_t Pint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val
                    );


ssize_t Puint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val
                    );

ssize_t Puint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val
                    );

ssize_t Puint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val
                    );

ssize_t Puint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val
                    );


ssize_t Pint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Puint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Puint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Puint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Puint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent
                    );

ssize_t Pint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, 
const char *tag, int indent
                    );

ssize_t Pint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, 
const char *tag, int indent
                    );

ssize_t Pint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, 
const char *tag, int indent
                    );


ssize_t Puint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, 
const char *tag, int indent
                    );

ssize_t Puint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, 
const char *tag, int indent
                    );

ssize_t Puint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, 
const char *tag, int indent
                    );

ssize_t Puint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, 
const char *tag, int indent
                    );

B.7  Integers: Raw binary encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * COMMON WIDTH BINARY INTEGER READ FUNCTIONS
 *
 * These functions parse signed or unsigned binary integers of common
 * bit widths (8, 16, 32, and 64 bit widths).  Whether bytes are
 * reversed is controlled by the endian-ness of the machine
 * (determined automatically) and pads->disc->d_endian. If they
 * differ, byte order is reversed in the in-memory representation,
 * otherwise it is not.
 *
 * A good way to set the d_endian value in a machine-independent way
 * is to use the Pendian annotation with the first multi-byte binary
 * integer field that appears in the data.  For example, this header
 * definition:
 *
 * Pstruct header {
 *    Pendian Pb_uint16 version : version < 10;
 *    ..etc..
 * };
 *
 * indicates the first value is a 2-byte unsigned binary integer,
 * version, whose value should be less than 10.  The Pendian
 * annotation indicates that there should be two attempts at reading
 * the version field: once with the current pads->disc->d_endian
 * setting, and (if the read fails) once with the opposite
 * pads->disc->d_endian setting.  If the second read succeeds, then
 * the new pads->disc->d_endian setting is retained, otherwise the
 * original pads->disc->d_endian setting is retained.
 */
/*
 * 
 * N.B. The Pendian annotatoin is only able to determine the correct
 * endian choice for a field that has an attached constraint, where
 * the wrong choice of endian setting will always cause the constraint
 * to fail.  (In the above example, if a value < 10 is read with the
 * wrong d_endian setting, the result is a value that is much greater
 * than 10.)
 *
 * For all cases, if the specified number of bytes is available, it is
 * always read.  If the width is not available:
 *    + pd->loc.b/e set to elt/char position of start/end of the
 *       ’too small’ field
 *    + IO cursor is not advanced
 *    + If P_Test_NotIgnore(*m), pd->errCode set to
 *       P_WIDTH_NOT_AVAILABLE, pd->nerr set to 1,
 *       and an error is reported
 */

Perror_t Pb_int8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint8 *res_out);

Perror_t Pb_int16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint16 *res_out);

Perror_t Pb_int32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint32 *res_out);

Perror_t Pb_int64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pint64 *res_out);

Perror_t Pb_uint8_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint8 *res_out);

Perror_t Pb_uint16_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint16 *res_out);

Perror_t Pb_uint32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint32 *res_out);

Perror_t Pb_uint64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Puint64 *res_out);

/* ================================================================================
 * WRITE
 */

ssize_t Pb_int8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint8 *val);

ssize_t Pb_int16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint16 *val);

ssize_t Pb_int32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint32 *val);

ssize_t Pb_int64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pint64 *val);

ssize_t Pb_uint8_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint8 *val);

ssize_t Pb_uint16_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint16 *val);

ssize_t Pb_uint32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint32 *val);

ssize_t Pb_uint64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Puint64 *val);

ssize_t Pb_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pb_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent
                    );


ssize_t Pb_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val
                    );

ssize_t Pb_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val
                    );

ssize_t Pb_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val
                    );

ssize_t Pb_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val
                    );

ssize_t Pb_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val
                    );

ssize_t Pb_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val
                    );

ssize_t Pb_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val
                    );

ssize_t Pb_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val
                    );

ssize_t Pb_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent
                    );

ssize_t Pb_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, 
const char *tag, int indent
                    );

ssize_t Pb_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, 
const char *tag, int indent
                    );

ssize_t Pb_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, 
const char *tag, int indent
                    );

ssize_t Pb_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, 
const char *tag, int indent
                    );

ssize_t Pb_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, 
const char *tag, int indent
                    );

ssize_t Pb_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, 
const char *tag, int indent
                    );

ssize_t Pb_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, 
const char *tag, int indent
                    );


ssize_t Pb_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pb_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep
                    );

ssize_t Pb_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pb_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep
                    );

ssize_t Pb_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pb_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep
                    );

ssize_t Pb_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );

ssize_t Pb_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep
                    );


ssize_t Pb_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pb_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep
                    );

ssize_t Pb_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pb_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep
                    );

ssize_t Pb_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pb_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep
                    );

ssize_t Pb_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );

ssize_t Pb_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep
                    );


ssize_t Pb_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint8 *rep
                    );

ssize_t Pb_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint16 *rep
                    );

ssize_t Pb_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint32 *rep
                    );

ssize_t Pb_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pint64 *rep
                    );

ssize_t Pb_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Puint8 *rep
                    );

ssize_t Pb_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep
                    );

ssize_t Pb_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep
                    );

ssize_t Pb_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep
                    );

B.8  Integers: Serialized binary encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * SBL, and SBH ENCODINGS OF INTEGERS (VARIABLE NUMBER OF BYTES)
 *
 * These functions parse signed or unsigned SBL (sbl_) or SBH (sbh_)
 * encoded integers with a specified number of bytes.
 *
 * SBL (Serialized Binary, Low-Order Byte First) INTEGER ENCODING
 *   (Psbl_int_read / Psbl_uint_read):
 *
 *   For a K-byte SBL encoding, the first byte on disk is treated 
 *   as the low order byte of a K byte value.
 *
 * SBH (Serialized Binary, High-Order Byte First) INTEGER ENCODING
 *   (Psbh_int_read / Psbh_uint_read):
 *
 *   For a K-byte SBH encoding, the first byte on disk is treated 
 *   as the high order byte of a K byte value.
 */
/* For SBL and SBH, each byte is moved to the in-memory target integer
 * unchanged.  Whether the result is treated as a signed or unsigned
 * number depends on the target type.
 *
 * Note that SBL and SBH differ from the common width binary (B)
 * types in 3 ways: (1) SBL and SBH support any number of
 * bytes between 1 and 8, while B only supports 1, 2, 4, and 8; (2)
 * with SBL and SBH you specify the target type independently of the
 * num_bytes; (3) SBL and SBH explicitly state the byte ordering,
 * while B uses the pads->disc->d_endian setting to determine the byte
 * ordering of the data.
 *
 * The legal range of values for num_bytes
 * depends on target type:
 *    
 * Type        num_bytes Min/Max values
 * ———– ——— —————————-
 * Pint8       1-1       P_MIN_INT8  / P_MAX_INT8
 * Puint8      1-1       0           / P_MAX_UINT8
 * Pint16      1-2       P_MIN_INT16 / P_MAX_INT16
 * Puint16     1-2       0           / P_MAX_UINT16
 * Pint32      1-4       P_MIN_INT32 / P_MAX_INT32
 * Puint32     1-4       0           / P_MAX_UINT32
 * Pint64      1-8       P_MIN_INT64 / P_MAX_INT64
 * Puint64     1-8       0           / P_MAX_UINT64
 */
/* If the specified number of bytes is NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the ’too small’ field
 *    + IO cursor is not advanced
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_WIDTH_NOT_AVAILABLE,
 *         pd->nerr set to 1, and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_bytes is not a legal choice for the target type and
 * sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified bytes make up an integer that does not fit in the target type,
 * or if the actual value is not in the min/max range, then:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 */
Perror_t Psbl_int8_read(P_t *pads, const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_int16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_int32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_int64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    Puint32 num_bytes
                    );


Perror_t Psbl_uint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_uint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint16 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_uint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbl_uint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint64 *res_out,
                    Puint32 num_bytes
                    );


Perror_t Psbh_int8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_int16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_int32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_int64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    Puint32 num_bytes
                    );


Perror_t Psbh_uint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_uint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint16 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_uint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Puint32 num_bytes
                    );

Perror_t Psbh_uint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint64 *res_out,
                    Puint32 num_bytes
                    );

/* ================================================================================
 * WRITE
 */

ssize_t Psbl_int8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    Puint32 num_bytes
                    );


ssize_t Psbl_uint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    Puint32 num_bytes
                    );


ssize_t Psbl_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );


ssize_t Psbl_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );


ssize_t Psbl_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, Puint32 num_bytes
                    );

ssize_t Psbl_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, Puint32 num_bytes
                    );

ssize_t Psbl_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, Puint32 num_bytes
                    );

ssize_t Psbl_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, Puint32 num_bytes
                    );


ssize_t Psbl_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, Puint32 num_bytes
                    );

ssize_t Psbl_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, Puint32 num_bytes
                    );

ssize_t Psbl_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, Puint32 num_bytes
                    );

ssize_t Psbl_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, Puint32 num_bytes
                    );


ssize_t Psbl_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbl_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbl_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );


ssize_t Psbl_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbl_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );


ssize_t Psbl_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_bytes
                    );


ssize_t Psbl_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_bytes
                    );


ssize_t Psbl_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, Puint32 num_bytes
                    );


ssize_t Psbl_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, Puint32 num_bytes
                    );

ssize_t Psbl_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, Puint32 num_bytes
                    );


ssize_t Psbl_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    Puint32 num_bytes
                    );


ssize_t Psbl_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbl_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    Puint32 num_bytes
                    );


ssize_t Psbh_int8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    Puint32 num_bytes
                    );


ssize_t Psbh_uint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    Puint32 num_bytes
                    );


ssize_t Psbh_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );


ssize_t Psbh_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, Puint32 num_bytes
                    );


ssize_t Psbh_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, Puint32 num_bytes
                    );

ssize_t Psbh_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, Puint32 num_bytes
                    );

ssize_t Psbh_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, Puint32 num_bytes
                    );

ssize_t Psbh_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, Puint32 num_bytes
                    );


ssize_t Psbh_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, Puint32 num_bytes
                    );

ssize_t Psbh_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, Puint32 num_bytes
                    );

ssize_t Psbh_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, Puint32 num_bytes
                    );

ssize_t Psbh_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, Puint32 num_bytes
                    );


ssize_t Psbh_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbh_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbh_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );


ssize_t Psbh_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );

ssize_t Psbh_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes
                    );


ssize_t Psbh_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_bytes
                    );


ssize_t Psbh_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_bytes
                    );


ssize_t Psbh_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, Puint32 num_bytes
                    );


ssize_t Psbh_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, Puint32 num_bytes
                    );

ssize_t Psbh_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, Puint32 num_bytes
                    );


ssize_t Psbh_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    Puint32 num_bytes
                    );


ssize_t Psbh_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Puint32 num_bytes
                    );

ssize_t Psbh_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    Puint32 num_bytes
                    );

B.9  Integers: EBCDIC numeric encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * EBC ENCODING OF INTEGERS (VARIABLE NUMBER OF DIGITS)
 *
 * These functions parse signed or unsigned EBCDIC numeric (ebc_)
 * encoded integers with a specified number of digits.
 *
 * Each byte on disk encodes one digit (in low 4 bits).  For signed
 * values, the final byte encodes the sign (high 4 bits == 0xD for negative).
 * A signed or unsigned 5 digit value is encoded in 5 bytes.
 *
 * The legal range of values for num_digits
 * depends on target type:
 *    
 * Type        num_digits    Min/Max values
 * ———– ———-    —————————-
 * Pint8       1-3           P_MIN_INT8  / P_MAX_INT8
 * Puint8      1-3           0           / P_MAX_UINT8
 * Pint16      1-5           P_MIN_INT16 / P_MAX_INT16
 * Puint16     1-5           0           / P_MAX_UINT16
 * Pint32      1-10          P_MIN_INT32 / P_MAX_INT32
 * Puint32     1-10          0           / P_MAX_UINT32
 * Pint64      1-19          P_MIN_INT64 / P_MAX_INT64
 * Puint64     1-20          0           / P_MAX_UINT64
 * 
 * N.B.: num_digits must be odd if the value on disk can be negative.
 */
/*
 * If the required number of bytes is NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the ’too small’ field
 *    + IO cursor is not advanced
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_WIDTH_NOT_AVAILABLE,
 *         pd->nerr set to 1, and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_bytes is not a legal choice for the target type and
 * sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified digits make up an integer that does not fit in the target type,
 * or if the actual value is not in the min/max range, then:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified bytes are not legal EBC integer bytes, then
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_INVALID_EBC_NUM
 *         pd->nerr set to 1, and an error is reported
 */
Perror_t Pebc_int8_read(P_t *pads, const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_int16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_int32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_int64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_uint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_uint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint16 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_uint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pebc_uint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint64 *res_out,
                    Puint32 num_digits
                    );
/* ================================================================================
 * WRITE
 */

ssize_t Pebc_int8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_int16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_int32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_int64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    Puint32 num_digits
                    );


ssize_t Pebc_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );


ssize_t Pebc_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, Puint32 num_digits
                    );

ssize_t Pebc_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, Puint32 num_digits
                    );

ssize_t Pebc_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, Puint32 num_digits
                    );

ssize_t Pebc_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, Puint32 num_digits
                    );

ssize_t Pebc_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, Puint32 num_digits
                    );

ssize_t Pebc_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, Puint32 num_digits
                    );

ssize_t Pebc_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, Puint32 num_digits
                    );

ssize_t Pebc_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, Puint32 num_digits
                    );


ssize_t Pebc_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent,
                    Puint32 num_digits
                    );

ssize_t Pebc_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pebc_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );


ssize_t Pebc_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_digits
                    );

ssize_t Pebc_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_digits
                    );


ssize_t Pebc_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, Puint32 num_digits
                    );

ssize_t Pebc_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, Puint32 num_digits
                    );


ssize_t Pebc_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Puint32 num_digits
                    );

ssize_t Pebc_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    Puint32 num_digits
                    );

B.10  Integers: BCD numeric encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * BCD ENCODINGS OF INTEGERS (VARIABLE NUMBER OF DIGITS)
 *
 * These functions parse signed or unsigned (bcd_),
 * encoded integers with a specified number of digits.
 *
 * Each byte on disk encodes two digits, 4 bits per digit.  For signed
 * values, a negative number is encoded by having number of digits be
 * odd so that the remaining low 4 bits in the last byte are available
 * for the sign.  (low 4 bits == 0xD for negative).  A signed or
 * unsigned 5 digit value is encoded in 3 bytes, where the unsigned
 * value ignores the final 4 bits and the signed value uses them to
 * get the sign.
 */
/*
 * The legal range of values for num_digits
 * depends on target type:
 *    
 * Type        num_digits    Min/Max values
 * ———– ———-    —————————-
 * Pint8       1-3           P_MIN_INT8  / P_MAX_INT8
 * Puint8      1-3           0           / P_MAX_UINT8
 * Pint16      1-5           P_MIN_INT16 / P_MAX_INT16
 * Puint16     1-5           0           / P_MAX_UINT16
 * Pint32      1-10/11**     P_MIN_INT32 / P_MAX_INT32
 * Puint32     1-10          0           / P_MAX_UINT32
 * Pint64      1-19          P_MIN_INT64 / P_MAX_INT64
 * Puint64     1-20          0           / P_MAX_UINT64
 * 
 * N.B.: num_digits must be odd if the value on disk can be negative.
 *
 * ** For Pbcd_int32_read only, even though the min and max int32 have
 * 10 digits, we allow num_digits == 11 due to the fact that 11 is
 * required for a 10 digit negative value (an actual 11 digit number
 * would cause a range error, so the leading digit must be 0).
 */
/*
 * If the required number of bytes is NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the
 *       ’too small’ field
 *    + IO cursor is not advanced
 *    + if P_Test_NotIgnore(*m), pd->errCode set to
 *       P_WIDTH_NOT_AVAILABLE, pd->nerr set to 1,
 *       and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_digits is not a legal choice for the target type and
 * sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end
 *       of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 */
/*
 * If the specified bytes make up an integer that does not fit in the
 * target type, or if the actual value is not in the min/max range,
 * then:
 *    + pd->loc.b/e set to elt/char position at the start/end
 *      of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified bytes are not legal BCD integer bytes, then
 *    + pd->loc.b/e set to elt/char position at the start/end
 *       of the field
 *    + if P_Test_NotIgnore(*m), pd->errCode set to 
 *       P_INVALID_BCD_NUM, pd->nerr set to 1,
 *       and an error is reported
 */

Perror_t Pbcd_int8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint8 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_int16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint16 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_int32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint32 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_int64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Pint64 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_uint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint8 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_uint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint16 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_uint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint32 *res_out,
                    Puint32 num_digits
                    );

Perror_t Pbcd_uint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd, Puint64 *res_out,
                    Puint32 num_digits
                    );


ssize_t Pbcd_int8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    Puint32 num_digits
                    );


ssize_t Pbcd_int8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint8 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_int16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint16 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_int32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint32 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_int64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pint64 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint8 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint16 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint32 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Puint64 *val,
                    
const char *tag, int indent, Puint32 num_digits
                    );


ssize_t Pbcd_int8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, Puint32 num_digits
                    );

ssize_t Pbcd_int16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint16 *val, Puint32 num_digits
                    );

ssize_t Pbcd_int32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint32 *val, Puint32 num_digits
                    );

ssize_t Pbcd_int64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint64 *val, Puint32 num_digits
                    );

ssize_t Pbcd_uint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint8 *val, Puint32 num_digits
                    );

ssize_t Pbcd_uint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint16 *val, Puint32 num_digits
                    );

ssize_t Pbcd_uint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint32 *val, Puint32 num_digits
                    );

ssize_t Pbcd_uint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Puint64 *val, Puint32 num_digits
                    );


ssize_t Pbcd_int8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pint8 *val, 
const char *tag, int indent,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint16 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_int32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint32 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_int64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pint64 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint8 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint16 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint32 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );

ssize_t Pbcd_uint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Puint64 *val, const char *tag,
                    
int indent, Puint32 num_digits
                    );


ssize_t Pbcd_int8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint8 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint16 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint32 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_int64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pint64 *rep, Puint32 num_digits
                    );


ssize_t Pbcd_uint8_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint8_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint8 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint16_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint16 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint16_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint16 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint32 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint32 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Puint64 *rep, Puint32 num_digits
                    );

ssize_t Pbcd_uint64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, int *requested_out, const char *delims, Pbase_m *m,
                    Pbase_pd *pd, Puint64 *rep, Puint32 num_digits
                    );


ssize_t Pbcd_int8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint8 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint16 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint32 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_int64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pint64 *rep,
                    Puint32 num_digits
                    );


ssize_t Pbcd_uint8_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint8 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint16_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint16 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint32 *rep,
                    Puint32 num_digits
                    );

ssize_t Pbcd_uint64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Puint64 *rep,
                    Puint32 num_digits
                    );

B.11  Fixed Point: EBCDIC numeric encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * FIXED POINT READ FUNCTIONS
 * FOR EBC (ebc_) ENCODING
 *
 * An in-memory fpoint or ufpoint number is a signed or unsigned
 * fixed-point rational number with a numerator and denominator that
 * both have the same size.  For signed fpoint types, the numerator
 * carries the sign, while the denominator is always unsigned.  For
 * example, type Pfpoint16 has a signed Pint16 numerator and an
 * unsigned Puint16 denominator.
 *
 * For the EBC fpoint read functions, num_digits is the
 * number of digits used to encode the numerator (on disk). The number
 * of bytes implied by num_digits is the same as specified for the
 * EBC integer read functions.
 *
 * For all fpoint types, d_exp determines the denominator value,
 * which is implicitly 10^d_exp and is not encoded on disk.
 * The legal range of values for d_exp depends on the type:
 *
 * Type                     d_exp     Max denominator (min is 1)
 * ———————–  ——–  ————————–
 * Pfpoint8  /  ufpoint8  0-2                             100
 * Pfpoint16 / ufpoint16  0-4                          10,000
 * Pfpoint32 / ufpoint32  0-9                   1,000,000,000
 * Pfpoint64 / ufpoint64  0-19     10,000,000,000,000,000,000
 */
/*
 * The legal range of values for num_digits
 * depends on target type, and is the same as specified for the
 * EBC integer read functions.
 *    
 * If the specified number of bytes are NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the ’too small’ field
 *    + IO cursor not advanced
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_WIDTH_NOT_AVAILABLE,
 *         pd->nerr set to 1, and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_digits or d_exp is not in a legal choice for the target type
 * and sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the actual numerator is not in the min/max numerator range, then:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified bytes are not legal EBC integer bytes, then 
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_INVALID_EBC_NUM
 *         pd->nerr set to 1, and an error is reported
 *
 */
Perror_t Pebc_fpoint8_read(P_t *pads, const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint8 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_fpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint16 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_fpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint32 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_fpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint64 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_ufpoint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint8 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_ufpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint16 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_ufpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint32 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pebc_ufpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint64 *res_out, Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pebc_fpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint16 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint32 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint64 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint8 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint16 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint32 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint64 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pebc_fpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    
const char *tag, int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint16 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_fpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint32 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_fpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint64 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_ufpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint8 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_ufpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint16 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_ufpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint32 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pebc_ufpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint64 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );


ssize_t Pebc_fpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint8 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint16 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint32 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint64 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint8 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint16 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint32 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint64 *val, Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pebc_fpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint8 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint16 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint32 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_fpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint64 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint8 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint16 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint32 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pebc_ufpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint64 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

B.12  Fixed Point: BCD numeric encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * FIXED POINT READ FUNCTIONS
 * BCD (bcd_) ENCODINGS
 *
 * An in-memory fpoint or ufpoint number is a signed or unsigned
 * fixed-point rational number with a numerator and denominator that
 * both have the same size.  For signed fpoint types, the numerator
 * carries the sign, while the denominator is always unsigned.  For
 * example, type Pfpoint16 has a signed Pint16 numerator and an
 * unsigned Puint16 denominator.
 *
 * For the BCD fpoint read functions, num_digits is the number of
 * digits used to encode the numerator (on disk). The number of bytes
 * implied by num_digits is the same as specified for the BCD integer
 * read functions.
 *
 * For all fpoint types, d_exp determines the denominator value, which
 * is implicitly 10^d_exp and is not encoded on disk.  The legal range
 * of values for d_exp depends on the type:
 *
 * Type                     d_exp     Max denominator (min is 1)
 * ———————–  ——–  ————————–
 * Pfpoint8  /  ufpoint8  0-2                             100
 * Pfpoint16 / ufpoint16  0-4                          10,000
 * Pfpoint32 / ufpoint32  0-9                   1,000,000,000
 * Pfpoint64 / ufpoint64  0-19     10,000,000,000,000,000,000
 *
 * The legal range of values for num_digits depends on target type,
 * and is the same as specified for the BCD integer read functions.
 */
/*
 * For all cases, if the specified number of bytes are NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the
 *      ’too small’ field
 *    + IO cursor not advanced
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to
 *       P_WIDTH_NOT_AVAILABLE, pd->nerr set to 1,
 *       and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_digits or d_exp is not in a legal choice for the target type
 * and sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end of the
 *      field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the actual numerator is not in the min/max numerator range,
 * then:
 *    + pd->loc.b/e set to elt/char position at the start/end
 *       of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the specified bytes are not legal BCD integer bytes, then 
 *    + pd->loc.b/e set to elt/char position at the start/end
 *       of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to
 *       P_INVALID_BCD_NUM, pd->nerr set to 1,
 *       and an error is reported
 *
 */

Perror_t Pbcd_fpoint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint8 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_fpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint16 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_fpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint32 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_fpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint64 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_ufpoint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint8 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_ufpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint16 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_ufpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint32 *res_out, Puint32 num_digits, Puint32 d_exp
                    );

Perror_t Pbcd_ufpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint64 *res_out, Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pbcd_fpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint16 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint32 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint64 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint8 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint16 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint32 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint64 *val,
                    Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pbcd_fpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    
const char *tag, int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint16 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_fpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint32 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_fpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint64 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint8 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint16 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint32 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint64 *val, 
const char *tag, int indent, Puint32 num_digits,
                    Puint32 d_exp
                    );


ssize_t Pbcd_fpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint8 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint16 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint32 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint64 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint8 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint16 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint32 *val, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint64 *val, Puint32 num_digits, Puint32 d_exp
                    );


ssize_t Pbcd_fpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint8 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint16 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint32 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_fpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint64 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint8 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint16 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint32 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

ssize_t Pbcd_ufpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint64 *val, const char *tag,
                    
int indent, Puint32 num_digits, Puint32 d_exp
                    );

B.13  Fixed Point: Serialized binary numeric encoding

/* ================================================================================
 * READ
 */

/* ================================================================================
 * FIXED POINT READ FUNCTIONS
 * SBL (sbl_), and SBH (sbh_) ENCODINGS
 *
 * An in-memory fpoint or ufpoint number is a signed or unsigned
 * fixed-point rational number with a numerator and denominator that
 * both have the same size.  For signed fpoint types, the numerator
 * carries the sign, while the denominator is always unsigned.  For
 * example, type Pfpoint16 has a signed Pint16 numerator and an
 * unsigned Puint16 denominator.
 *
 * For the SBL and SBH fpoint read functions, num_bytes is the number
 * of bytes on disk used to encode the numerator, the encoding being
 * the same as for the SBL and SBH integer read functions,
 * respectively.
 */
/* For all fpoint types, d_exp determines the denominator value,
 * which is implicitly 10^d_exp and is not encoded on disk.
 * The legal range of values for d_exp depends on the type:
 *
 * Type                     d_exp     Max denominator (min is 1)
 * ———————–  ——–  ————————–
 * Pfpoint8  /  ufpoint8  0-2                             100
 * Pfpoint16 / ufpoint16  0-4                          10,000
 * Pfpoint32 / ufpoint32  0-9                   1,000,000,000
 * Pfpoint64 / ufpoint64  0-19     10,000,000,000,000,000,000
 *
 * The legal range of values for num_bytes
 * depends on target type, and is the same as specified for the
 * SBL/SBH integer read functions.
 */
/* If the specified number of bytes are NOT available:
 *    + pd->loc.b/e set to elt/char position of start/end of the ’too small’ field
 *    + IO cursor not advanced
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_WIDTH_NOT_AVAILABLE,
 *         pd->nerr set to 1, and an error is reported
 *
 * Otherwise, the IO cursor is always advanced.  The error cases that
 * can occur even though the IO cursor advances:
 *
 * If num_bytes or d_exp is not in a legal choice for the target type
 * and sign of the value:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_BAD_PARAM,
 *         pd->nerr set to 1, and an error is reported
 *
 * If the actual numerator is not in the min/max numerator range, then:
 *    + pd->loc.b/e set to elt/char position at the start/end of the field
 *    + if PD_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 */
Perror_t Psbl_fpoint8_read(P_t *pads, const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint8 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_fpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint16 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_fpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint32 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_fpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint64 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );


Perror_t Psbl_ufpoint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint8 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_ufpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint16 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_ufpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint32 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbl_ufpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint64 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_fpoint8_read(P_t *pads, const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint8 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_fpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint16 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_fpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint32 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_fpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pfpoint64 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );


Perror_t Psbh_ufpoint8_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint8 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_ufpoint16_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint16 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_ufpoint32_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint32 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

Perror_t Psbh_ufpoint64_read(P_t *pads, 
const Pbase_m *m, Pbase_pd *pd,
                    Pufpoint64 *res_out, Puint32 num_bytes, Puint32 d_exp
                    );

/* ================================================================================
 * WRITE
 */

ssize_t Psbl_fpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint16 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint32 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint64 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbl_ufpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint8 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint16 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint32 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint64 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbl_fpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint16 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbl_fpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint32 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbl_fpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint64 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );


ssize_t Psbl_ufpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint8 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbl_ufpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint16 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbl_ufpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint32 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbl_ufpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint64 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );


ssize_t Psbl_fpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint8 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint16 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint32 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint64 *val, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbl_ufpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint8 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint16 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint32 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint64 *val, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbl_fpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_fpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbl_ufpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbl_ufpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_fpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint16 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint32 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint64 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_ufpoint8_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint8 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint16_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint16 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint32 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pufpoint64 *val,
                    Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_fpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfpoint8 *val,
                    
const char *tag, int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint16 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbh_fpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint32 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbh_fpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pfpoint64 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );


ssize_t Psbh_ufpoint8_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint8 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbh_ufpoint16_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint16 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbh_ufpoint32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint32 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );

ssize_t Psbh_ufpoint64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd,
                    Pufpoint64 *val, 
const char *tag, int indent, Puint32 num_bytes,
                    Puint32 d_exp
                    );


ssize_t Psbh_fpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint8 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint16 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint32 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfpoint64 *val, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_ufpoint8_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint8 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint16_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint16 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint32 *val, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pufpoint64 *val, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_fpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_fpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfpoint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );


ssize_t Psbh_ufpoint8_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint8 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint16_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint16 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint32 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

ssize_t Psbh_ufpoint64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pufpoint64 *val, const char *tag,
                    
int indent, Puint32 num_bytes, Puint32 d_exp
                    );

B.14  Floats: Character encodings

/* ================================================================================
 * READ
 */

/* ================================================================================
 * CHARACTER-BASED FLOAT READ FUNCTIONS
 * 
 * DEFAULT                        ASCII                          EBCDIC
 * —————————–  —————————–  —————————–
 * Pfloat32_read                  Pa_float32_read                Pe_float32_read
 * Pfloat64_read                  Pa_float64_read                Pe_float64_read
 *
 * These types describe ASCII or EBCDIC character-based encodings of
 * floating point numbers.  The input representation must have this
 * form:
 *
 *   [+|-]DIGITS[.][DIGITS][(e|E)[+|-]DIGITS]
 *
 * Where DIGITS is a sequence of one or more
 * digit characters, (e|E) indicates either a lower- or
 * upper-case letter ’E’, and elements in square brackets are
 * optional.  Note that there must be at least one digit before the
 * decimal point.
 *
 * If the input has a valid sequence of input characters that make up
 * a float, then the float is converted to a Pfloat32 or
 * Pfloat64, according to the type.  For example, if you specify
 * a Pa_float32 then ASCII characters making up a float will be read
 * from the input and converted to an in-memory Pfloat32.
 *
 * RETURN VALUE: Perror_t
 */
/*
 * Upon success, P_OK returned: 
 *   + the IO cursor is advanced to just beyond the last digit
 *   + if P_Test_NotIngore(*m), the out param is assigned a value
 *
 * P_ERR is returned on error.
 * Cursor advancement/err settings for different error cases:
 *
 * (1) If IO cursor is at EOF
 *     + pd->loc.b/e set to EOF ’location’
 *     + IO cursor remains at EOF
 *     + if P_Test_NotIgnore(*), pd->errCode set to P_AT_EOF,
 *         pd->nerr set to 1, and an error is reported
 * (2a) There is leading white space and not (pads->disc->flags & P_WSPACE_OK)
 * (2b) The target is unsigned and the first char is a -
 * (2c) The first character is not a +, -, or in [0-9]
 * (2d) First character is allowable + or -, following by a char that is not a digit
 * For the above 4 cases:
 *     + pd->loc.b/e set to the IO cursor position.
 *     + IO cursor is not advanced
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_INVALID_A_NUM/P_INVALID_E_NUM,
 *         pd->nerr set to 1, and an error is reported
 * (3) A valid ASCII/EBCDIC float is found, but it describes
 *     a float that does not fit in the specified target type
 *     + pd->loc.b/e set to elt/char position of start and end of the float
 *     + IO cursor is advanced just beyond the last digit
 *     + if P_Test_NotIgnore(*m), pd->errCode set to P_RANGE,
 *         pd->nerr set to 1, and an error is reported
 */

#
if P_CONFIG_READ_FUNCTIONS > 0

#
if P_CONFIG_A_FLOAT > 0


Perror_t Pa_float32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat32 *res_out);

Perror_t Pa_float64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat64 *res_out);


Perror_t Pe_float32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat32 *res_out);

Perror_t Pe_float64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat64 *res_out);


Perror_t Pfloat32_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat32 *res_out);

Perror_t Pfloat64_read(P_t *pads,
const Pbase_m *m,Pbase_pd *pd,Pfloat64 *res_out);


ssize_t Pa_float32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat32 *val
                    );

ssize_t Pa_float64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat64 *val
                    );

ssize_t Pa_float32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat32 *val
                    );

ssize_t Pa_float64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat64 *val
                    );

ssize_t Pa_float32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfloat32 *val, const char *tag,
                    
int indent
                    );

ssize_t Pa_float64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfloat64 *val, const char *tag,
                    
int indent
                    );

ssize_t Pa_float32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_float64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat64 *val,
                    
const char *tag, int indent
                    );

ssize_t Pa_float32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );

ssize_t Pa_float32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );


ssize_t Pa_float64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pa_float64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pa_float32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pfloat32 *rep
                    );

ssize_t Pa_float64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pfloat64 *rep
                    );


ssize_t Pe_float32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat32 *val
                    );

ssize_t Pe_float64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat64 *val
                    );

ssize_t Pe_float32_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat32 *val
                    );

ssize_t Pe_float64_write2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat64 *val
                    );

ssize_t Pe_float32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfloat32 *val, const char *tag,
                    
int indent
                    );

ssize_t Pe_float64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len,
                    
int *buf_full, Pbase_pd *pd, Pfloat64 *val, const char *tag,
                    
int indent
                    );

ssize_t Pe_float32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_float64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat64 *val,
                    
const char *tag, int indent
                    );

ssize_t Pe_float32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );

ssize_t Pe_float32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );


ssize_t Pe_float64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pe_float64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pe_float32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pfloat32 *rep
                    );

ssize_t Pe_float64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out,
                    
const char *delims, Pbase_m *m, Pbase_pd *pd, Pfloat64 *rep
                    );


ssize_t Pfloat32_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pfloat32 *val);


ssize_t Pfloat64_write2io(P_t *pads,Sfio_t *io,Pbase_pd *pd,Pfloat64 *val);


ssize_t Pfloat32_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat32 *val
                    );

ssize_t Pfloat64_write2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat64 *val
                    );

ssize_t Pfloat32_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat32 *val,
                    
const char *tag, int indent
                    );

ssize_t Pfloat64_write_xml_2io(P_t *pads, Sfio_t *io, Pbase_pd *pd, Pfloat64 *val,
                    
const char *tag, int indent
                    );

ssize_t Pfloat32_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat32 *val, 
const char *tag, int indent
                    );

ssize_t Pfloat64_write_xml_2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    Pbase_pd *pd, Pfloat64 *val, 
const char *tag, int indent
                    );


ssize_t Pfloat32_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );

ssize_t Pfloat32_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat32 *rep
                    );

ssize_t Pfloat64_fmt2buf(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pfloat64_fmt2buf_final(P_t *pads, Pbyte *buf, size_t buf_len, 
int *buf_full,
                    
int *requested_out, const char *delims, Pbase_m *m, Pbase_pd *pd,
                    Pfloat64 *rep
                    );

ssize_t Pfloat32_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pfloat32 *rep
                    );

ssize_t Pfloat64_fmt2io(P_t *pads, Sfio_t *io, 
int *requested_out, const char *delims,
                    Pbase_m *m, Pbase_pd *pd, Pfloat64 *rep
                    );


Previous Up