Fw: Problems with compiling autogen with GCC8 or newer versions

Bruce Korb bruce.korb@gmail.com
Fri Jan 8 19:38:05 GMT 2021


    $ bash cc.sh
    + wrn+=' -Werror=format-overflow'
    + gcc -DHAVE_CONFIG_H -I. -I.. -I../autoopts
    -Wno-format-contains-nul -Wall -Werror -Wcast-align
    -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes
    -Wwrite-strings -Wstrict-aliasing=3 -Wextra -Wno-cast-qual
    -Werror=format-overflow -fno-strict-aliasing -g -O2 -MT gd.o -MD -MP
    -MF .deps/gd.Tpo -c -o gd.o gd.c
    $ bash cc.sh/(edited to do pre-processing only, to wit:)/
    + gcc -DHAVE_CONFIG_H -I. -I.. -I../autoopts -E -o gd.i gd.c
    $ gcc --version
    gcc (SUSE Linux) 7.5.0
    Copyright (C) 2017 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There
    is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
    PURPOSE.

buildPreamble() starts on line 10230.

This is the code that must be confusing to GCC. "def_str" points to the 
second character in the 520 byte buffer. "def_scan" points to a 
character that we already know we're going to copy into the destination, 
so the "spn" function doesn't look at it:

     {
         char * end = spn_ag_char_map_chars(def_scan + 1, 31);
         size_t len = end - def_scan;
         if (len >= 256)
             goto fail_return;
         memcpy(def_str, def_scan, len);
         def_str += len;
         *def_str = '\0';
         def_scan = end;
     }

"spn_ag_char_map_chars" skips over characters that are in the 31st 
character set. (It's generated.)
If there are too many characters in that set, this code fragment will go 
into failure mode.

*IF* this .i file doesn't generate the error, then Thomas' compiler must 
be yielding something weird in its preprocessing output. It compiles 
just fine with my 7.5.0 compiler.

On 1/8/21 11:01 AM, Jeff Law wrote:
> On 1/8/21 10:39 AM, Bruce Korb via Gcc wrote:
>
> Also, GCC's code analysis is wrong. "name_bf" contains *NO MORE* than
> MAXNAMELEN characters. That is provable.
>
> "def_str" points into a buffer of size ((MAXNAMELEN * 2) + 8) and at
> an offset maximum of MAXNAMELEN+1 (also provable), meaning that at a
> minimum there are MAXNAMELEN+6 bytes left in the buffer.
>
> That objected-to sprintf can add a maximum of MAXNAMELEN + 4 to where
> "def_str" points.
>
> GCC is wrong. It is unable to figure out how far into the buffer
> "def_str" can point.
> Can you get a .i file, command line and file a report.  It'd be appreciated.
>
> jeff
>
-------------- next part --------------
# 1 "gd.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "gd.c"




# 1 "../config.h" 1
# 6 "gd.c" 2
# 1 "../autoopts/ag-char-map.h" 1
# 34 "../autoopts/ag-char-map.h"
# 1 "/usr/include/inttypes.h" 1 3 4
# 25 "/usr/include/inttypes.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 423 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 419 "/usr/include/sys/cdefs.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 420 "/usr/include/sys/cdefs.h" 2 3 4
# 1 "/usr/include/bits/long-double.h" 1 3 4
# 421 "/usr/include/sys/cdefs.h" 2 3 4
# 424 "/usr/include/features.h" 2 3 4
# 447 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 10 "/usr/include/gnu/stubs.h" 3 4
# 1 "/usr/include/gnu/stubs-64.h" 1 3 4
# 11 "/usr/include/gnu/stubs.h" 2 3 4
# 448 "/usr/include/features.h" 2 3 4
# 26 "/usr/include/inttypes.h" 2 3 4

# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdint.h" 1 3 4
# 9 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdint.h" 3 4
# 1 "/usr/include/stdint.h" 1 3 4
# 26 "/usr/include/stdint.h" 3 4
# 1 "/usr/include/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/bits/types.h" 1 3 4
# 27 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 28 "/usr/include/bits/types.h" 2 3 4



# 30 "/usr/include/bits/types.h" 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;







typedef long int __quad_t;
typedef unsigned long int __u_quad_t;







typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 130 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/typesizes.h" 1 3 4
# 131 "/usr/include/bits/types.h" 2 3 4


typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned long int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;

typedef int __daddr_t;
typedef int __key_t;


typedef int __clockid_t;


typedef void * __timer_t;


typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;


typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;


typedef long int __fsword_t;

typedef long int __ssize_t;


typedef long int __syscall_slong_t;

typedef unsigned long int __syscall_ulong_t;



typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;


typedef long int __intptr_t;


typedef unsigned int __socklen_t;




typedef int __sig_atomic_t;
# 28 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/bits/wchar.h" 1 3 4
# 29 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 30 "/usr/include/stdint.h" 2 3 4




# 1 "/usr/include/bits/stdint-intn.h" 1 3 4
# 24 "/usr/include/bits/stdint-intn.h" 3 4
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 35 "/usr/include/stdint.h" 2 3 4


# 1 "/usr/include/bits/stdint-uintn.h" 1 3 4
# 24 "/usr/include/bits/stdint-uintn.h" 3 4
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
# 38 "/usr/include/stdint.h" 2 3 4





typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;

typedef long int int_least64_t;






typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;

typedef unsigned long int uint_least64_t;
# 68 "/usr/include/stdint.h" 3 4
typedef signed char int_fast8_t;

typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 81 "/usr/include/stdint.h" 3 4
typedef unsigned char uint_fast8_t;

typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 97 "/usr/include/stdint.h" 3 4
typedef long int intptr_t;


typedef unsigned long int uintptr_t;
# 111 "/usr/include/stdint.h" 3 4
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
# 10 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdint.h" 2 3 4
# 28 "/usr/include/inttypes.h" 2 3 4






typedef int __gwchar_t;
# 266 "/usr/include/inttypes.h" 3 4





typedef struct
  {
    long int quot;
    long int rem;
  } imaxdiv_t;
# 290 "/usr/include/inttypes.h" 3 4
extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));


extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
      __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));


extern intmax_t strtoimax (const char *__restrict __nptr,
      char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));


extern uintmax_t strtoumax (const char *__restrict __nptr,
       char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));


extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
      __gwchar_t **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__));


extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
       __gwchar_t ** __restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__));
# 432 "/usr/include/inttypes.h" 3 4

# 35 "../autoopts/ag-char-map.h" 2
# 115 "../autoopts/ag-char-map.h"

# 115 "../autoopts/ag-char-map.h"
typedef uint32_t ag_char_map_mask_t;
# 353 "../autoopts/ag-char-map.h"
static ag_char_map_mask_t const ag_char_map_table[128] = {
          0x00000002, 0x00000000, 0x00000000, 0x00000000,
          0x00000000, 0x00000000, 0x00000000, 0x00000000,
          0x00000800, 0x00000400, 0x00000001, 0x00000800,
          0x00000800, 0x00000800, 0x00000000, 0x00000000,
          0x00000000, 0x00000000, 0x00000000, 0x00000000,
          0x00000000, 0x00000000, 0x00000000, 0x00000000,
          0x00000000, 0x00000000, 0x00000000, 0x00000000,
          0x00000000, 0x00000000, 0x00000000, 0x00000000,
          0x00000400, 0x02804000, 0x02005000, 0x02004000,
          0x02804100, 0x02804008, 0x02804000, 0x02005000,
          0x02006000, 0x02006000, 0x02004000, 0x12804080,
          0x02004010, 0x06A0C200, 0x06C04000, 0x03804004,
          0x08814000, 0x00814000, 0x00814000, 0x00814000,
          0x00814000, 0x00814000, 0x00814000, 0x00814000,
          0x00824000, 0x00824000, 0x02804020, 0x02004000,
          0x02004000, 0x02004000, 0x03004000, 0x02004000,
          0x02804000, 0x00944000, 0x00944000, 0x00944000,
          0x00944000, 0x00944000, 0x08944000, 0x00904000,
          0x00904000, 0x00904000, 0x00904000, 0x00904000,
          0x00904000, 0x00904000, 0x08904000, 0x00904000,
          0x00904000, 0x00904000, 0x00904000, 0x00904000,
          0x00904000, 0x00904000, 0x00904000, 0x00904000,
          0x00904000, 0x00904000, 0x00904000, 0x02404000,
          0x02004004, 0x02404000, 0x02A04000, 0x04804040,
          0x02004000, 0x008C4000, 0x008C4000, 0x008C4000,
          0x008C4000, 0x008C4000, 0x088C4000, 0x00884000,
          0x00884000, 0x00884000, 0x00884000, 0x00884000,
          0x00884000, 0x00884000, 0x08884000, 0x00884000,
          0x00884000, 0x00884000, 0x00884000, 0x00884000,
          0x00884000, 0x00884000, 0x00884000, 0x00884000,
          0x00884000, 0x00884000, 0x00884000, 0x02004000,
          0x12804000, 0x02004000, 0x0280C000, 0x00000000
};

# 1 "/usr/include/stdio.h" 1 3 4
# 27 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/bits/libc-header-start.h" 1 3 4
# 28 "/usr/include/stdio.h" 2 3 4





# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 216 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4

# 216 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 34 "/usr/include/stdio.h" 2 3 4


# 1 "/usr/include/bits/types/__FILE.h" 1 3 4



struct _IO_FILE;
typedef struct _IO_FILE __FILE;
# 37 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/bits/types/FILE.h" 1 3 4



struct _IO_FILE;


typedef struct _IO_FILE FILE;
# 38 "/usr/include/stdio.h" 2 3 4



# 1 "/usr/include/libio.h" 1 3 4
# 31 "/usr/include/libio.h" 3 4
# 1 "/usr/include/_G_config.h" 1 3 4
# 15 "/usr/include/_G_config.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 16 "/usr/include/_G_config.h" 2 3 4

# 1 "/usr/include/bits/types/__mbstate_t.h" 1 3 4
# 13 "/usr/include/bits/types/__mbstate_t.h" 3 4
typedef struct
{
  int __count;
  union
  {
    unsigned int __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 18 "/usr/include/_G_config.h" 2 3 4




typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 32 "/usr/include/libio.h" 2 3 4
# 49 "/usr/include/libio.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdarg.h" 1 3 4
# 40 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 50 "/usr/include/libio.h" 2 3 4
# 145 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;




typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 173 "/usr/include/libio.h" 3 4
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 241 "/usr/include/libio.h" 3 4
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;



  int _flags2;

  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 289 "/usr/include/libio.h" 3 4
  __off64_t _offset;







  void *__pad1;
  void *__pad2;
  void *__pad3;
  void *__pad4;

  size_t __pad5;
  int _mode;

  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 333 "/usr/include/libio.h" 3 4
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
     size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);




typedef __io_read_fn cookie_read_function_t;
typedef __io_write_fn cookie_write_function_t;
typedef __io_seek_fn cookie_seek_function_t;
typedef __io_close_fn cookie_close_function_t;


typedef struct
{
  __io_read_fn *read;
  __io_write_fn *write;
  __io_seek_fn *seek;
  __io_close_fn *close;
} _IO_cookie_io_functions_t;
typedef _IO_cookie_io_functions_t cookie_io_functions_t;

struct _IO_cookie_file;


extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
        void *__cookie, _IO_cookie_io_functions_t __fns);







extern int __underflow (_IO_FILE *);
extern int __uflow (_IO_FILE *);
extern int __overflow (_IO_FILE *, int);
# 429 "/usr/include/libio.h" 3 4
extern int _IO_getc (_IO_FILE *__fp);
extern int _IO_putc (int __c, _IO_FILE *__fp);
extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));
extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__));

extern int _IO_peekc_locked (_IO_FILE *__fp);





extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
# 458 "/usr/include/libio.h" 3 4
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
   __gnuc_va_list, int *__restrict);
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
    __gnuc_va_list);
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);

extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__));
# 42 "/usr/include/stdio.h" 2 3 4




typedef __gnuc_va_list va_list;
# 57 "/usr/include/stdio.h" 3 4
typedef __off_t off_t;






typedef __off64_t off64_t;






typedef __ssize_t ssize_t;






typedef _G_fpos_t fpos_t;




typedef _G_fpos64_t fpos64_t;
# 131 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 132 "/usr/include/stdio.h" 2 3 4



extern struct _IO_FILE *stdin;
extern struct _IO_FILE *stdout;
extern struct _IO_FILE *stderr;






extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));

extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));



extern int renameat (int __oldfd, const char *__old, int __newfd,
       const char *__new) __attribute__ ((__nothrow__ , __leaf__));







extern FILE *tmpfile (void) ;
# 169 "/usr/include/stdio.h" 3 4
extern FILE *tmpfile64 (void) ;



extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;




extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
# 190 "/usr/include/stdio.h" 3 4
extern char *tempnam (const char *__dir, const char *__pfx)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;







extern int fclose (FILE *__stream);




extern int fflush (FILE *__stream);
# 213 "/usr/include/stdio.h" 3 4
extern int fflush_unlocked (FILE *__stream);
# 223 "/usr/include/stdio.h" 3 4
extern int fcloseall (void);
# 232 "/usr/include/stdio.h" 3 4
extern FILE *fopen (const char *__restrict __filename,
      const char *__restrict __modes) ;




extern FILE *freopen (const char *__restrict __filename,
        const char *__restrict __modes,
        FILE *__restrict __stream) ;
# 256 "/usr/include/stdio.h" 3 4
extern FILE *fopen64 (const char *__restrict __filename,
        const char *__restrict __modes) ;
extern FILE *freopen64 (const char *__restrict __filename,
   const char *__restrict __modes,
   FILE *__restrict __stream) ;




extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;





extern FILE *fopencookie (void *__restrict __magic_cookie,
     const char *__restrict __modes,
     _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ , __leaf__)) ;




extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
  __attribute__ ((__nothrow__ , __leaf__)) ;




extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;





extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
      int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));




extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
         size_t __size) __attribute__ ((__nothrow__ , __leaf__));


extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));







extern int fprintf (FILE *__restrict __stream,
      const char *__restrict __format, ...);




extern int printf (const char *__restrict __format, ...);

extern int sprintf (char *__restrict __s,
      const char *__restrict __format, ...) __attribute__ ((__nothrow__));





extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
       __gnuc_va_list __arg);




extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);

extern int vsprintf (char *__restrict __s, const char *__restrict __format,
       __gnuc_va_list __arg) __attribute__ ((__nothrow__));



extern int snprintf (char *__restrict __s, size_t __maxlen,
       const char *__restrict __format, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
        const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));





extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
        __gnuc_va_list __arg)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ;
extern int __asprintf (char **__restrict __ptr,
         const char *__restrict __fmt, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
extern int asprintf (char **__restrict __ptr,
       const char *__restrict __fmt, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;




extern int vdprintf (int __fd, const char *__restrict __fmt,
       __gnuc_va_list __arg)
     __attribute__ ((__format__ (__printf__, 2, 0)));
extern int dprintf (int __fd, const char *__restrict __fmt, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));







extern int fscanf (FILE *__restrict __stream,
     const char *__restrict __format, ...) ;




extern int scanf (const char *__restrict __format, ...) ;

extern int sscanf (const char *__restrict __s,
     const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
# 420 "/usr/include/stdio.h" 3 4
extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
      __gnuc_va_list __arg)
     __attribute__ ((__format__ (__scanf__, 2, 0))) ;





extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__format__ (__scanf__, 1, 0))) ;


extern int vsscanf (const char *__restrict __s,
      const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
# 477 "/usr/include/stdio.h" 3 4
extern int fgetc (FILE *__stream);
extern int getc (FILE *__stream);





extern int getchar (void);
# 495 "/usr/include/stdio.h" 3 4
extern int getc_unlocked (FILE *__stream);
extern int getchar_unlocked (void);
# 506 "/usr/include/stdio.h" 3 4
extern int fgetc_unlocked (FILE *__stream);
# 517 "/usr/include/stdio.h" 3 4
extern int fputc (int __c, FILE *__stream);
extern int putc (int __c, FILE *__stream);





extern int putchar (int __c);
# 537 "/usr/include/stdio.h" 3 4
extern int fputc_unlocked (int __c, FILE *__stream);







extern int putc_unlocked (int __c, FILE *__stream);
extern int putchar_unlocked (int __c);






extern int getw (FILE *__stream);


extern int putw (int __w, FILE *__stream);







extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     ;
# 587 "/usr/include/stdio.h" 3 4
extern char *fgets_unlocked (char *__restrict __s, int __n,
        FILE *__restrict __stream) ;
# 603 "/usr/include/stdio.h" 3 4
extern __ssize_t __getdelim (char **__restrict __lineptr,
          size_t *__restrict __n, int __delimiter,
          FILE *__restrict __stream) ;
extern __ssize_t getdelim (char **__restrict __lineptr,
        size_t *__restrict __n, int __delimiter,
        FILE *__restrict __stream) ;







extern __ssize_t getline (char **__restrict __lineptr,
       size_t *__restrict __n,
       FILE *__restrict __stream) ;







extern int fputs (const char *__restrict __s, FILE *__restrict __stream);





extern int puts (const char *__s);






extern int ungetc (int __c, FILE *__stream);






extern size_t fread (void *__restrict __ptr, size_t __size,
       size_t __n, FILE *__restrict __stream) ;




extern size_t fwrite (const void *__restrict __ptr, size_t __size,
        size_t __n, FILE *__restrict __s);
# 662 "/usr/include/stdio.h" 3 4
extern int fputs_unlocked (const char *__restrict __s,
      FILE *__restrict __stream);
# 673 "/usr/include/stdio.h" 3 4
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
         size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
          size_t __n, FILE *__restrict __stream);







extern int fseek (FILE *__stream, long int __off, int __whence);




extern long int ftell (FILE *__stream) ;




extern void rewind (FILE *__stream);
# 707 "/usr/include/stdio.h" 3 4
extern int fseeko (FILE *__stream, __off_t __off, int __whence);




extern __off_t ftello (FILE *__stream) ;
# 731 "/usr/include/stdio.h" 3 4
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);




extern int fsetpos (FILE *__stream, const fpos_t *__pos);
# 750 "/usr/include/stdio.h" 3 4
extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
extern __off64_t ftello64 (FILE *__stream) ;
extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);



extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));

extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;

extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;



extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;







extern void perror (const char *__s);





# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
# 26 "/usr/include/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern const char *const sys_errlist[];


extern int _sys_nerr;
extern const char *const _sys_errlist[];
# 782 "/usr/include/stdio.h" 2 3 4




extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
# 800 "/usr/include/stdio.h" 3 4
extern FILE *popen (const char *__command, const char *__modes) ;





extern int pclose (FILE *__stream);





extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));





extern char *cuserid (char *__s);




struct obstack;


extern int obstack_printf (struct obstack *__restrict __obstack,
      const char *__restrict __format, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
extern int obstack_vprintf (struct obstack *__restrict __obstack,
       const char *__restrict __format,
       __gnuc_va_list __args)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));







extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));



extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;


extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
# 868 "/usr/include/stdio.h" 3 4

# 389 "../autoopts/ag-char-map.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 25 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/bits/libc-header-start.h" 1 3 4
# 26 "/usr/include/stdlib.h" 2 3 4





# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 328 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4
typedef int wchar_t;
# 32 "/usr/include/stdlib.h" 2 3 4







# 1 "/usr/include/bits/waitflags.h" 1 3 4
# 40 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/bits/waitstatus.h" 1 3 4
# 41 "/usr/include/stdlib.h" 2 3 4
# 55 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/bits/floatn.h" 1 3 4
# 56 "/usr/include/stdlib.h" 2 3 4


typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;





__extension__ typedef struct
  {
    long long int quot;
    long long int rem;
  } lldiv_t;
# 97 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;



extern double atof (const char *__nptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern int atoi (const char *__nptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern long int atol (const char *__nptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;



__extension__ extern long long int atoll (const char *__nptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;



extern double strtod (const char *__restrict __nptr,
        char **__restrict __endptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern float strtof (const char *__restrict __nptr,
       char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));

extern long double strtold (const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




extern _Float128 strtof128 (const char *__restrict __nptr,
        char **__restrict __endptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern long int strtol (const char *__restrict __nptr,
   char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));

extern unsigned long int strtoul (const char *__restrict __nptr,
      char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



__extension__
extern long long int strtoq (const char *__restrict __nptr,
        char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));

__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
           char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




__extension__
extern long long int strtoll (const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));

__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
     char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




extern int strfromd (char *__dest, size_t __size, const char *__format,
       double __f)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));

extern int strfromf (char *__dest, size_t __size, const char *__format,
       float __f)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));

extern int strfroml (char *__dest, size_t __size, const char *__format,
       long double __f)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));



extern int strfromf128 (char *__dest, size_t __size, const char * __format,
   _Float128 __f)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));







# 1 "/usr/include/bits/types/locale_t.h" 1 3 4
# 22 "/usr/include/bits/types/locale_t.h" 3 4
# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4
# 28 "/usr/include/bits/types/__locale_t.h" 3 4
struct __locale_struct
{

  struct __locale_data *__locales[13];


  const unsigned short int *__ctype_b;
  const int *__ctype_tolower;
  const int *__ctype_toupper;


  const char *__names[13];
};

typedef struct __locale_struct *__locale_t;
# 23 "/usr/include/bits/types/locale_t.h" 2 3 4

typedef __locale_t locale_t;
# 200 "/usr/include/stdlib.h" 2 3 4

extern long int strtol_l (const char *__restrict __nptr,
     char **__restrict __endptr, int __base,
     locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));

extern unsigned long int strtoul_l (const char *__restrict __nptr,
        char **__restrict __endptr,
        int __base, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));

__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
    char **__restrict __endptr, int __base,
    locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));

__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
       char **__restrict __endptr,
       int __base, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));

extern double strtod_l (const char *__restrict __nptr,
   char **__restrict __endptr, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));

extern float strtof_l (const char *__restrict __nptr,
         char **__restrict __endptr, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));

extern long double strtold_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));


extern _Float128 strtof128_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
# 270 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;


extern long int a64l (const char *__s)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;




# 1 "../autoopts/sys/types.h" 1 3 4
# 20 "../autoopts/sys/types.h" 3 4
       
# 21 "../autoopts/sys/types.h" 3
# 39 "../autoopts/sys/types.h" 3
# 1 "/usr/include/sys/types.h" 1 3 4
# 27 "/usr/include/sys/types.h" 3 4






typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;






typedef __ino64_t ino64_t;




typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;
# 98 "/usr/include/sys/types.h" 3 4
typedef __pid_t pid_t;





typedef __id_t id_t;
# 115 "/usr/include/sys/types.h" 3 4
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;




# 1 "/usr/include/bits/types/clock_t.h" 1 3 4






typedef __clock_t clock_t;
# 128 "/usr/include/sys/types.h" 2 3 4

# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4






typedef __clockid_t clockid_t;
# 130 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/bits/types/time_t.h" 1 3 4






typedef __time_t time_t;
# 131 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/bits/types/timer_t.h" 1 3 4






typedef __timer_t timer_t;
# 132 "/usr/include/sys/types.h" 2 3 4



typedef __useconds_t useconds_t;



typedef __suseconds_t suseconds_t;





# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 146 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 178 "/usr/include/sys/types.h" 3 4
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 194 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 36 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 2 3 4
# 60 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/byteswap.h" 1 3 4
# 28 "/usr/include/bits/byteswap.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/bits/byteswap.h" 2 3 4






# 1 "/usr/include/bits/byteswap-16.h" 1 3 4
# 36 "/usr/include/bits/byteswap.h" 2 3 4
# 44 "/usr/include/bits/byteswap.h" 3 4
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
  return __builtin_bswap32 (__bsx);
}
# 108 "/usr/include/bits/byteswap.h" 3 4
static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{
  return __builtin_bswap64 (__bsx);
}
# 61 "/usr/include/endian.h" 2 3 4
# 1 "/usr/include/bits/uintn-identity.h" 1 3 4
# 32 "/usr/include/bits/uintn-identity.h" 3 4
static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
  return __x;
}

static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
  return __x;
}

static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
  return __x;
}
# 62 "/usr/include/endian.h" 2 3 4
# 195 "/usr/include/sys/types.h" 2 3 4


# 1 "../autoopts/sys/select.h" 1 3 4
# 19 "../autoopts/sys/select.h" 3 4
       
# 20 "../autoopts/sys/select.h" 3
# 77 "../autoopts/sys/select.h" 3
# 1 "../autoopts/sys/types.h" 1 3
# 20 "../autoopts/sys/types.h" 3
       
# 21 "../autoopts/sys/types.h" 3
# 39 "../autoopts/sys/types.h" 3
# 1 "/usr/include/sys/types.h" 1 3 4
# 40 "../autoopts/sys/types.h" 2 3
# 78 "../autoopts/sys/select.h" 2 3
# 100 "../autoopts/sys/select.h" 3
# 1 "/usr/include/sys/select.h" 1 3 4
# 30 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 22 "/usr/include/bits/select.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 23 "/usr/include/bits/select.h" 2 3 4
# 31 "/usr/include/sys/select.h" 2 3 4


# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4



# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4




typedef struct
{
  unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4


typedef __sigset_t sigset_t;
# 34 "/usr/include/sys/select.h" 2 3 4



# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4







struct timeval
{
  __time_t tv_sec;
  __suseconds_t tv_usec;
};
# 38 "/usr/include/sys/select.h" 2 3 4

# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4







struct timespec
{
  __time_t tv_sec;
  __syscall_slong_t tv_nsec;
};
# 40 "/usr/include/sys/select.h" 2 3 4
# 49 "/usr/include/sys/select.h" 3 4
typedef long int __fd_mask;
# 59 "/usr/include/sys/select.h" 3 4
typedef struct
  {



    __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];





  } fd_set;






typedef __fd_mask fd_mask;
# 91 "/usr/include/sys/select.h" 3 4

# 101 "/usr/include/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout);
# 113 "/usr/include/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
      fd_set *__restrict __writefds,
      fd_set *__restrict __exceptfds,
      const struct timespec *__restrict __timeout,
      const __sigset_t *__restrict __sigmask);
# 126 "/usr/include/sys/select.h" 3 4

# 101 "../autoopts/sys/select.h" 2 3
# 198 "/usr/include/sys/types.h" 2 3 4







# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 41 "/usr/include/sys/sysmacros.h" 3 4
# 1 "/usr/include/bits/sysmacros.h" 1 3 4
# 42 "/usr/include/sys/sysmacros.h" 2 3 4
# 71 "/usr/include/sys/sysmacros.h" 3 4


extern unsigned int gnu_dev_major (__dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern unsigned int gnu_dev_minor (__dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 85 "/usr/include/sys/sysmacros.h" 3 4

# 206 "/usr/include/sys/types.h" 2 3 4






typedef __blksize_t blksize_t;






typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 246 "/usr/include/sys/types.h" 3 4
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;





# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4
# 58 "/usr/include/bits/thread-shared-types.h" 3 4
# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4
# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4
# 58 "/usr/include/bits/pthreadtypes-arch.h" 3 4
struct __pthread_rwlock_arch_t
{
  unsigned int __readers;
  unsigned int __writers;
  unsigned int __wrphase_futex;
  unsigned int __writers_futex;
  unsigned int __pad3;
  unsigned int __pad4;

  int __cur_writer;
  int __shared;
  signed char __rwelision;




  unsigned char __pad1[7];


  unsigned long int __pad2;


  unsigned int __flags;
# 92 "/usr/include/bits/pthreadtypes-arch.h" 3 4
};
# 59 "/usr/include/bits/thread-shared-types.h" 2 3 4




typedef struct __pthread_internal_list
{
  struct __pthread_internal_list *__prev;
  struct __pthread_internal_list *__next;
} __pthread_list_t;
# 99 "/usr/include/bits/thread-shared-types.h" 3 4
struct __pthread_mutex_s
{
  int __lock ;
  unsigned int __count;
  int __owner;

  unsigned int __nusers;
# 129 "/usr/include/bits/thread-shared-types.h" 3 4
  int __kind;
 

  short __spins; short __elision;
  __pthread_list_t __list;
# 143 "/usr/include/bits/thread-shared-types.h" 3 4
 
};




struct __pthread_cond_s
{
  __extension__ union
  {
    __extension__ unsigned long long int __wseq;
    struct
    {
      unsigned int __low;
      unsigned int __high;
    } __wseq32;
  };
  __extension__ union
  {
    __extension__ unsigned long long int __g1_start;
    struct
    {
      unsigned int __low;
      unsigned int __high;
    } __g1_start32;
  };
  unsigned int __g_refs[2] ;
  unsigned int __g_size[2];
  unsigned int __g1_orig_size;
  unsigned int __wrefs;
  unsigned int __g_signals[2];
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4



typedef unsigned long int pthread_t;




typedef union
{
  char __size[4];
  int __align;
} pthread_mutexattr_t;




typedef union
{
  char __size[4];
  int __align;
} pthread_condattr_t;



typedef unsigned int pthread_key_t;



typedef int pthread_once_t;


union pthread_attr_t
{
  char __size[56];
  long int __align;
};

typedef union pthread_attr_t pthread_attr_t;




typedef union
{
  struct __pthread_mutex_s __data;
  char __size[40];
  long int __align;
} pthread_mutex_t;


typedef union
{
  struct __pthread_cond_s __data;
  char __size[48];
  __extension__ long long int __align;
} pthread_cond_t;





typedef union
{
  struct __pthread_rwlock_arch_t __data;
  char __size[56];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[8];
  long int __align;
} pthread_rwlockattr_t;





typedef volatile int pthread_spinlock_t;




typedef union
{
  char __size[32];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_barrierattr_t;
# 255 "/usr/include/sys/types.h" 2 3 4



# 40 "../autoopts/sys/types.h" 2 3
# 280 "/usr/include/stdlib.h" 2 3 4






extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));


extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));





extern char *initstate (unsigned int __seed, char *__statebuf,
   size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));



extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
       int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));

extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
   size_t __statelen,
   struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));

extern int setstate_r (char *__restrict __statebuf,
         struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));





extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));

extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));



extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));







extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern long int nrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern long int jrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    __extension__ unsigned long long int __a;

  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern int lrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern int mrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));

extern int seed48_r (unsigned short int __seed16v[3],
       struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));

extern int lcong48_r (unsigned short int __param[7],
        struct drand48_data *__buffer)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;






extern void *realloc (void *__ptr, size_t __size)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));







extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__));



extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));


# 1 "../autoopts/alloca.h" 1 3 4
# 452 "/usr/include/stdlib.h" 2 3 4





extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;




extern void *aligned_alloc (size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;



extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));






extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));





extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));





extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));




extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;




extern char *secure_getenv (const char *__name)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;






extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int setenv (const char *__name, const char *__value, int __replace)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));


extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));






extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
# 557 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 570 "/usr/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 580 "/usr/include/stdlib.h" 3 4
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 592 "/usr/include/stdlib.h" 3 4
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 602 "/usr/include/stdlib.h" 3 4
extern int mkstemps64 (char *__template, int __suffixlen)
     __attribute__ ((__nonnull__ (1))) ;
# 613 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 624 "/usr/include/stdlib.h" 3 4
extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 634 "/usr/include/stdlib.h" 3 4
extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 644 "/usr/include/stdlib.h" 3 4
extern int mkostemps (char *__template, int __suffixlen, int __flags)
     __attribute__ ((__nonnull__ (1))) ;
# 656 "/usr/include/stdlib.h" 3 4
extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
     __attribute__ ((__nonnull__ (1))) ;
# 666 "/usr/include/stdlib.h" 3 4
extern int system (const char *__command) ;





extern char *canonicalize_file_name (const char *__name)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 682 "/usr/include/stdlib.h" 3 4
extern char *realpath (const char *__restrict __name,
         char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;






typedef int (*__compar_fn_t) (const void *, const void *);


typedef __compar_fn_t comparison_fn_t;



typedef int (*__compar_d_fn_t) (const void *, const void *, void *);




extern void *bsearch (const void *__key, const void *__base,
        size_t __nmemb, size_t __size, __compar_fn_t __compar)
     __attribute__ ((__nonnull__ (1, 2, 5))) ;







extern void qsort (void *__base, size_t __nmemb, size_t __size,
     __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));

extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
       __compar_d_fn_t __compar, void *__arg)
  __attribute__ ((__nonnull__ (1, 4)));




extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;


__extension__ extern long long int llabs (long long int __x)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;






extern div_t div (int __numer, int __denom)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;


__extension__ extern lldiv_t lldiv (long long int __numer,
        long long int __denom)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
# 754 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *gcvt (double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;




extern char *qecvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));

extern int qecvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));





extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));


extern int mbtowc (wchar_t *__restrict __pwc,
     const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));


extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
   const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));

extern size_t wcstombs (char *__restrict __s,
   const wchar_t *__restrict __pwcs, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__));







extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 839 "/usr/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
        char *const *__restrict __tokens,
        char **__restrict __valuep)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;





extern void setkey (const char *__key) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







extern int posix_openpt (int __oflag) ;







extern int grantpt (int __fd) __attribute__ ((__nothrow__ , __leaf__));



extern int unlockpt (int __fd) __attribute__ ((__nothrow__ , __leaf__));




extern char *ptsname (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;






extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));


extern int getpt (void);






extern int getloadavg (double __loadavg[], int __nelem)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 901 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/bits/stdlib-float.h" 1 3 4
# 902 "/usr/include/stdlib.h" 2 3 4
# 911 "/usr/include/stdlib.h" 3 4

# 390 "../autoopts/ag-char-map.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 26 "/usr/include/string.h" 3 4
# 1 "/usr/include/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/string.h" 2 3 4






# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4
# 42 "/usr/include/string.h" 3 4
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
       size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern void *memmove (void *__dest, const void *__src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));





extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
        int __c, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int memcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 90 "/usr/include/string.h" 3 4
extern void *memchr (const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 103 "/usr/include/string.h" 3 4
extern void *rawmemchr (const void *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 114 "/usr/include/string.h" 3 4
extern void *memrchr (const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));





extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncpy (char *__restrict __dest,
        const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern char *strcat (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncat (char *__restrict __dest, const char *__restrict __src,
        size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern int strncmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcoll (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern size_t strxfrm (char *__restrict __dest,
         const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));






extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));


extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
    locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));





extern char *strdup (const char *__s)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));






extern char *strndup (const char *__string, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 225 "/usr/include/string.h" 3 4
extern char *strchr (const char *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 252 "/usr/include/string.h" 3 4
extern char *strrchr (const char *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 265 "/usr/include/string.h" 3 4
extern char *strchrnul (const char *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));





extern size_t strcspn (const char *__s, const char *__reject)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern size_t strspn (const char *__s, const char *__accept)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 302 "/usr/include/string.h" 3 4
extern char *strpbrk (const char *__s, const char *__accept)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 329 "/usr/include/string.h" 3 4
extern char *strstr (const char *__haystack, const char *__needle)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));




extern char *strtok (char *__restrict __s, const char *__restrict __delim)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));



extern char *__strtok_r (char *__restrict __s,
    const char *__restrict __delim,
    char **__restrict __save_ptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));

extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
         char **__restrict __save_ptr)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
# 359 "/usr/include/string.h" 3 4
extern char *strcasestr (const char *__haystack, const char *__needle)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));







extern void *memmem (const void *__haystack, size_t __haystacklen,
       const void *__needle, size_t __needlelen)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));



extern void *__mempcpy (void *__restrict __dest,
   const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *mempcpy (void *__restrict __dest,
        const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern size_t strlen (const char *__s)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));




extern size_t strnlen (const char *__string, size_t __maxlen)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));




extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
# 420 "/usr/include/string.h" 3 4
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;





extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));



# 1 "/usr/include/strings.h" 1 3 4
# 23 "/usr/include/strings.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 24 "/usr/include/strings.h" 2 3 4










extern int bcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern void bcopy (const void *__src, void *__dest, size_t __n)
  __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));


extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 68 "/usr/include/strings.h" 3 4
extern char *index (const char *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 96 "/usr/include/strings.h" 3 4
extern char *rindex (const char *__s, int __c)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));






extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));





extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));



extern int strcasecmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));






extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));



extern int strncasecmp_l (const char *__s1, const char *__s2,
     size_t __n, locale_t __loc)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));



# 432 "/usr/include/string.h" 2 3 4



extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern char *strsep (char **__restrict __stringp,
       const char *__restrict __delim)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));


extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern char *__stpncpy (char *__restrict __dest,
   const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
        const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern int strverscmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern char *strfry (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 486 "/usr/include/string.h" 3 4
extern char *basename (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 498 "/usr/include/string.h" 3 4

# 391 "../autoopts/ag-char-map.h" 2






# 396 "../autoopts/ag-char-map.h"
static unsigned char const * ag_char_map_spanners[47];





static ag_char_map_mask_t const ag_char_map_masks[47] = {
    0x00000001,
    0x00000002,
    0x00000004,
    0x00000008,
    0x00000010,
    0x00000020,
    0x00000040,
    0x00000080,
    0x00000100,
    0x00000200,
    0x00000400,
    0x00000800,
    0x00000C01,
    0x00000C00,
    0x00001000,
    0x00002000,
    0x00004000,
    0x00008000,
    0x00010000,
    0x00030000,
    0x00070000,
    0x00080000,
    0x00100000,
    0x00180000,
    0x001B0000,
    0x00180040,
    0x001B0040,
    0x003B0040,
    0x003B0060,
    0x00400000,
    0x007B0460,
    0x005B0040,
    0x00003000,
    0x00800000,
    0x01000C01,
    0x00000C81,
    0x02000000,
    0x041B0000,
    0x041B000C,
    0x08000002,
    0x041B0004,
    0x00000C03,
    0x00000C13,
    0x10000C13,
    0x00038000,
    0x00000101,
    0x00000600,
};


static unsigned char const *
calc_ag_char_map_spanners(unsigned int mask_ix)
{







    {
        int ix = 1;
        ag_char_map_mask_t mask = ag_char_map_masks[mask_ix];
        unsigned char * res = malloc(256 );
        if (res == 
# 467 "../autoopts/ag-char-map.h" 3 4
                  ((void *)0)
# 467 "../autoopts/ag-char-map.h"
                      ) {
            fputs("no memory for char-mapper span map\n", 
# 468 "../autoopts/ag-char-map.h" 3 4
                                                            stderr
# 468 "../autoopts/ag-char-map.h"
                                                                  );
            exit(
# 469 "../autoopts/ag-char-map.h" 3 4
                1
# 469 "../autoopts/ag-char-map.h"
                            );
        }

        memset(res, 0, 256);
        for (; ix < 128; ix++)
            if (ag_char_map_table[ix] & mask)
                res[ix] = 1;
        ag_char_map_spanners[mask_ix] = res;
    }



    return ag_char_map_spanners[mask_ix];
}


static inline int
is_ag_char_map_char(char ch, ag_char_map_mask_t mask)
{
    unsigned int ix = (unsigned char)ch;
    return ((ix < 128) && ((ag_char_map_table[ix] & mask) != 0));
}

static inline char *
spn_ag_char_map_chars(char const * p, unsigned int mask_ix)
{
    unsigned char const * v = ag_char_map_spanners[mask_ix];
    if (v == 
# 496 "../autoopts/ag-char-map.h" 3 4
            ((void *)0)
# 496 "../autoopts/ag-char-map.h"
                )
        v = calc_ag_char_map_spanners(mask_ix);
    while (v[(unsigned char)*p]) p++;
    return (char *)(uintptr_t)p;
}

static inline char *
brk_ag_char_map_chars(char const * p, unsigned int mask_ix)
{
    unsigned char const * v = ag_char_map_spanners[mask_ix];
    if (v == 
# 506 "../autoopts/ag-char-map.h" 3 4
            ((void *)0)
# 506 "../autoopts/ag-char-map.h"
                )
        v = calc_ag_char_map_spanners(mask_ix);
    while ((*p != '\0') && (! v[(unsigned char)*p])) p++;
    return (char *)(uintptr_t)p;
}

static inline char *
spn_ag_char_map_back(char const * s, char const * e, unsigned int mask_ix)
{
    unsigned char const * v = ag_char_map_spanners[mask_ix];
    if (v == 
# 516 "../autoopts/ag-char-map.h" 3 4
            ((void *)0)
# 516 "../autoopts/ag-char-map.h"
                )
        v = calc_ag_char_map_spanners(mask_ix);
    if (s >= e) e = s + strlen(s);
    while ((e > s) && v[(unsigned char)e[-1]]) e--;
    return (char *)(uintptr_t)e;
}

static inline char *
brk_ag_char_map_back(char const * s, char const * e, unsigned int mask_ix)
{
    unsigned char const * v = ag_char_map_spanners[mask_ix];
    if (v == 
# 527 "../autoopts/ag-char-map.h" 3 4
            ((void *)0)
# 527 "../autoopts/ag-char-map.h"
                )
        v = calc_ag_char_map_spanners(mask_ix);
    if (s == e) e += strlen(e);
    while ((e > s) && (! v[(unsigned char)e[-1]])) e--;
    return (char *)(uintptr_t)e;
}
# 7 "gd.c" 2
# 1 "../autoopts/project.h" 1
# 30 "../autoopts/project.h"
# 1 "../compat/compat.h" 1
# 58 "../compat/compat.h"
# 1 "../autoopts/sys/types.h" 1
# 20 "../autoopts/sys/types.h"
       
# 21 "../autoopts/sys/types.h" 3
# 59 "../compat/compat.h" 2

# 1 "/usr/include/sys/mman.h" 1 3 4
# 25 "/usr/include/sys/mman.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 26 "/usr/include/sys/mman.h" 2 3 4
# 41 "/usr/include/sys/mman.h" 3 4
# 1 "/usr/include/bits/mman.h" 1 3 4
# 47 "/usr/include/bits/mman.h" 3 4
# 1 "/usr/include/bits/mman-linux.h" 1 3 4
# 47 "/usr/include/bits/mman.h" 2 3 4
# 42 "/usr/include/sys/mman.h" 2 3 4





# 57 "/usr/include/sys/mman.h" 3 4

# 57 "/usr/include/sys/mman.h" 3 4
extern void *mmap (void *__addr, size_t __len, int __prot,
     int __flags, int __fd, __off_t __offset) __attribute__ ((__nothrow__ , __leaf__));
# 70 "/usr/include/sys/mman.h" 3 4
extern void *mmap64 (void *__addr, size_t __len, int __prot,
       int __flags, int __fd, __off64_t __offset) __attribute__ ((__nothrow__ , __leaf__));




extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));




extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__ , __leaf__));







extern int msync (void *__addr, size_t __len, int __flags);




extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__));



extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__));




extern int mlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));


extern int munlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));




extern int mlockall (int __flags) __attribute__ ((__nothrow__ , __leaf__));



extern int munlockall (void) __attribute__ ((__nothrow__ , __leaf__));







extern int mincore (void *__start, size_t __len, unsigned char *__vec)
     __attribute__ ((__nothrow__ , __leaf__));
# 133 "/usr/include/sys/mman.h" 3 4
extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
       int __flags, ...) __attribute__ ((__nothrow__ , __leaf__));



extern int remap_file_pages (void *__start, size_t __size, int __prot,
        size_t __pgoff, int __flags) __attribute__ ((__nothrow__ , __leaf__));




extern int shm_open (const char *__name, int __oflag, mode_t __mode);


extern int shm_unlink (const char *__name);


# 61 "../compat/compat.h" 2

# 1 "/usr/include/sys/param.h" 1 3 4
# 23 "/usr/include/sys/param.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 24 "/usr/include/sys/param.h" 2 3 4

# 1 "../autoopts/sys/types.h" 1 3 4
# 20 "../autoopts/sys/types.h" 3 4
       
# 21 "../autoopts/sys/types.h" 3
# 26 "/usr/include/sys/param.h" 2 3 4
# 1 "../autoopts/limits.h" 1 3 4
# 20 "../autoopts/limits.h" 3 4
       
# 21 "../autoopts/limits.h" 3
# 41 "../autoopts/limits.h" 3
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 1 3 4
# 34 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/syslimits.h" 1 3 4






# 1 "../autoopts/limits.h" 1 3 4
# 20 "../autoopts/limits.h" 3 4
       
# 21 "../autoopts/limits.h" 3
# 31 "../autoopts/limits.h" 3
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 1 3 4
# 194 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 26 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/limits.h" 2 3 4
# 183 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 160 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 38 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 39 "/usr/include/bits/local_lim.h" 2 3 4
# 161 "/usr/include/bits/posix1_lim.h" 2 3 4
# 184 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 188 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/bits/xopen_lim.h" 1 3 4
# 64 "/usr/include/bits/xopen_lim.h" 3 4
# 1 "/usr/include/bits/uio_lim.h" 1 3 4
# 65 "/usr/include/bits/xopen_lim.h" 2 3 4
# 192 "/usr/include/limits.h" 2 3 4
# 195 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 2 3 4
# 32 "../autoopts/limits.h" 2 3
# 8 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/syslimits.h" 2 3 4
# 35 "/usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/limits.h" 2 3 4
# 42 "../autoopts/limits.h" 2 3
# 27 "/usr/include/sys/param.h" 2 3 4

# 1 "../autoopts/signal.h" 1 3 4
# 20 "../autoopts/signal.h" 3 4
       
# 21 "../autoopts/signal.h" 3
# 49 "../autoopts/signal.h" 3
# 1 "../autoopts/sys/types.h" 1 3
# 20 "../autoopts/sys/types.h" 3
       
# 21 "../autoopts/sys/types.h" 3
# 50 "../autoopts/signal.h" 2 3


# 1 "/usr/include/signal.h" 1 3 4
# 27 "/usr/include/signal.h" 3 4



# 1 "/usr/include/bits/signum.h" 1 3 4
# 26 "/usr/include/bits/signum.h" 3 4
# 1 "/usr/include/bits/signum-generic.h" 1 3 4
# 27 "/usr/include/bits/signum.h" 2 3 4
# 31 "/usr/include/signal.h" 2 3 4

# 1 "/usr/include/bits/types/sig_atomic_t.h" 1 3 4







typedef __sig_atomic_t sig_atomic_t;
# 33 "/usr/include/signal.h" 2 3 4
# 57 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/types/siginfo_t.h" 1 3 4



# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 5 "/usr/include/bits/types/siginfo_t.h" 2 3 4

# 1 "/usr/include/bits/types/sigval_t.h" 1 3 4




union sigval
{
  int sival_int;
  void *sival_ptr;
};

typedef union sigval sigval_t;
# 7 "/usr/include/bits/types/siginfo_t.h" 2 3 4
# 16 "/usr/include/bits/types/siginfo_t.h" 3 4
# 1 "/usr/include/bits/siginfo-arch.h" 1 3 4
# 17 "/usr/include/bits/types/siginfo_t.h" 2 3 4
# 36 "/usr/include/bits/types/siginfo_t.h" 3 4
typedef struct
  {
    int si_signo;

    int si_errno;

    int si_code;





    int __pad0;


    union
      {
 int _pad[((128 / sizeof (int)) - 4)];


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
   } _kill;


 struct
   {
     int si_tid;
     int si_overrun;
     sigval_t si_sigval;
   } _timer;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     sigval_t si_sigval;
   } _rt;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     int si_status;
     __clock_t si_utime;
     __clock_t si_stime;
   } _sigchld;


 struct
   {
     void *si_addr;
    
     short int si_addr_lsb;
     union
       {

  struct
    {
      void *_lower;
      void *_upper;
    } _addr_bnd;

  __uint32_t _pkey;
       } _bounds;
   } _sigfault;


 struct
   {
     long int si_band;
     int si_fd;
   } _sigpoll;



 struct
   {
     void *_call_addr;
     int _syscall;
     unsigned int _arch;
   } _sigsys;

      } _sifields;
  } siginfo_t ;
# 58 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/bits/siginfo-consts.h" 1 3 4
# 35 "/usr/include/bits/siginfo-consts.h" 3 4
enum
{
  SI_ASYNCNL = -60,
  SI_TKILL = -6,
  SI_SIGIO,

  SI_ASYNCIO,
  SI_MESGQ,
  SI_TIMER,





  SI_QUEUE,
  SI_USER,
  SI_KERNEL = 0x80
# 63 "/usr/include/bits/siginfo-consts.h" 3 4
};




enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR,

  BUS_MCEERR_AR,

  BUS_MCEERR_AO

};




enum
{
  TRAP_BRKPT = 1,

  TRAP_TRACE

};




enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};





# 1 "/usr/include/bits/siginfo-consts-arch.h" 1 3 4
# 185 "/usr/include/bits/siginfo-consts.h" 2 3 4
# 59 "/usr/include/signal.h" 2 3 4



# 1 "/usr/include/bits/types/sigevent_t.h" 1 3 4



# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 5 "/usr/include/bits/types/sigevent_t.h" 2 3 4
# 22 "/usr/include/bits/types/sigevent_t.h" 3 4
typedef struct sigevent
  {
    sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
 int _pad[((64 / sizeof (int)) - 4)];



 __pid_t _tid;

 struct
   {
     void (*_function) (sigval_t);
     pthread_attr_t *_attribute;
   } _sigev_thread;
      } _sigev_un;
  } sigevent_t;
# 63 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/bits/sigevent-consts.h" 1 3 4
# 27 "/usr/include/bits/sigevent-consts.h" 3 4
enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD,


  SIGEV_THREAD_ID = 4


};
# 64 "/usr/include/signal.h" 2 3 4




typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));

extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));






extern __sighandler_t signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));
# 108 "/usr/include/signal.h" 3 4
extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));






extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));



extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));
extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));




extern void psignal (int __sig, const char *__s);


extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
# 147 "/usr/include/signal.h" 3 4
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause");
# 166 "/usr/include/signal.h" 3 4
extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));


extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));


extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
# 181 "/usr/include/signal.h" 3 4
typedef __sighandler_t sighandler_t;




typedef __sighandler_t sig_t;





extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigismember (const sigset_t *__set, int __signo)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigandset (sigset_t *__set, const sigset_t *__left,
        const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3)));


extern int sigorset (sigset_t *__set, const sigset_t *__left,
       const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3)));




# 1 "/usr/include/bits/sigaction.h" 1 3 4
# 24 "/usr/include/bits/sigaction.h" 3 4
struct sigaction
  {


    union
      {

 __sighandler_t sa_handler;

 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;







    __sigset_t sa_mask;


    int sa_flags;


    void (*sa_restorer) (void);
  };
# 223 "/usr/include/signal.h" 2 3 4


extern int sigprocmask (int __how, const sigset_t *__restrict __set,
   sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));






extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));


extern int sigaction (int __sig, const struct sigaction *__restrict __act,
        struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));


extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
     __attribute__ ((__nonnull__ (1, 2)));







extern int sigwaitinfo (const sigset_t *__restrict __set,
   siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));






extern int sigtimedwait (const sigset_t *__restrict __set,
    siginfo_t *__restrict __info,
    const struct timespec *__restrict __timeout)
     __attribute__ ((__nonnull__ (1)));



extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
     __attribute__ ((__nothrow__ , __leaf__));
# 282 "/usr/include/signal.h" 3 4
extern const char *const _sys_siglist[(64 + 1)];
extern const char *const sys_siglist[(64 + 1)];



# 1 "/usr/include/bits/sigcontext.h" 1 3 4
# 31 "/usr/include/bits/sigcontext.h" 3 4
struct _fpx_sw_bytes
{
  __uint32_t magic1;
  __uint32_t extended_size;
  __uint64_t xstate_bv;
  __uint32_t xstate_size;
  __uint32_t __glibc_reserved1[7];
};

struct _fpreg
{
  unsigned short significand[4];
  unsigned short exponent;
};

struct _fpxreg
{
  unsigned short significand[4];
  unsigned short exponent;
  unsigned short __glibc_reserved1[3];
};

struct _xmmreg
{
  __uint32_t element[4];
};
# 123 "/usr/include/bits/sigcontext.h" 3 4
struct _fpstate
{

  __uint16_t cwd;
  __uint16_t swd;
  __uint16_t ftw;
  __uint16_t fop;
  __uint64_t rip;
  __uint64_t rdp;
  __uint32_t mxcsr;
  __uint32_t mxcr_mask;
  struct _fpxreg _st[8];
  struct _xmmreg _xmm[16];
  __uint32_t __glibc_reserved1[24];
};

struct sigcontext
{
  __uint64_t r8;
  __uint64_t r9;
  __uint64_t r10;
  __uint64_t r11;
  __uint64_t r12;
  __uint64_t r13;
  __uint64_t r14;
  __uint64_t r15;
  __uint64_t rdi;
  __uint64_t rsi;
  __uint64_t rbp;
  __uint64_t rbx;
  __uint64_t rdx;
  __uint64_t rax;
  __uint64_t rcx;
  __uint64_t rsp;
  __uint64_t rip;
  __uint64_t eflags;
  unsigned short cs;
  unsigned short gs;
  unsigned short fs;
  unsigned short __pad0;
  __uint64_t err;
  __uint64_t trapno;
  __uint64_t oldmask;
  __uint64_t cr2;
  __extension__ union
    {
      struct _fpstate * fpstate;
      __uint64_t __fpstate_word;
    };
  __uint64_t __reserved1 [8];
};



struct _xsave_hdr
{
  __uint64_t xstate_bv;
  __uint64_t __glibc_reserved1[2];
  __uint64_t __glibc_reserved2[5];
};

struct _ymmh_state
{
  __uint32_t ymmh_space[64];
};

struct _xstate
{
  struct _fpstate fpstate;
  struct _xsave_hdr xstate_hdr;
  struct _ymmh_state ymmh;
};
# 288 "/usr/include/signal.h" 2 3 4


extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));






# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 298 "/usr/include/signal.h" 2 3 4

# 1 "/usr/include/bits/types/stack_t.h" 1 3 4
# 23 "/usr/include/bits/types/stack_t.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 24 "/usr/include/bits/types/stack_t.h" 2 3 4


typedef struct
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 300 "/usr/include/signal.h" 2 3 4


# 1 "/usr/include/sys/ucontext.h" 1 3 4
# 37 "/usr/include/sys/ucontext.h" 3 4
__extension__ typedef long long int greg_t;
# 46 "/usr/include/sys/ucontext.h" 3 4
typedef greg_t gregset_t[23];



enum
{
  REG_R8 = 0,

  REG_R9,

  REG_R10,

  REG_R11,

  REG_R12,

  REG_R13,

  REG_R14,

  REG_R15,

  REG_RDI,

  REG_RSI,

  REG_RBP,

  REG_RBX,

  REG_RDX,

  REG_RAX,

  REG_RCX,

  REG_RSP,

  REG_RIP,

  REG_EFL,

  REG_CSGSFS,

  REG_ERR,

  REG_TRAPNO,

  REG_OLDMASK,

  REG_CR2

};


struct _libc_fpxreg
{
  unsigned short int significand[4];
  unsigned short int exponent;
  unsigned short int __glibc_reserved1[3];
};

struct _libc_xmmreg
{
  __uint32_t element[4];
};

struct _libc_fpstate
{

  __uint16_t cwd;
  __uint16_t swd;
  __uint16_t ftw;
  __uint16_t fop;
  __uint64_t rip;
  __uint64_t rdp;
  __uint32_t mxcsr;
  __uint32_t mxcr_mask;
  struct _libc_fpxreg _st[8];
  struct _libc_xmmreg _xmm[16];
  __uint32_t __glibc_reserved1[24];
};


typedef struct _libc_fpstate *fpregset_t;


typedef struct
  {
    gregset_t gregs;

    fpregset_t fpregs;
    __extension__ unsigned long long __reserved1 [8];
} mcontext_t;


typedef struct ucontext_t
  {
    unsigned long int uc_flags;
    struct ucontext_t *uc_link;
    stack_t uc_stack;
    mcontext_t uc_mcontext;
    sigset_t uc_sigmask;
    struct _libc_fpstate __fpregs_mem;
  } ucontext_t;
# 303 "/usr/include/signal.h" 2 3 4







extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__));

# 1 "/usr/include/bits/sigstack.h" 1 3 4
# 313 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/bits/ss_flags.h" 1 3 4
# 27 "/usr/include/bits/ss_flags.h" 3 4
enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 314 "/usr/include/signal.h" 2 3 4



extern int sigaltstack (const stack_t *__restrict __ss,
   stack_t *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));




# 1 "/usr/include/bits/types/struct_sigstack.h" 1 3 4
# 23 "/usr/include/bits/types/struct_sigstack.h" 3 4
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };
# 324 "/usr/include/signal.h" 2 3 4







extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));






extern int sighold (int __sig) __attribute__ ((__nothrow__ , __leaf__));


extern int sigrelse (int __sig) __attribute__ ((__nothrow__ , __leaf__));


extern int sigignore (int __sig) __attribute__ ((__nothrow__ , __leaf__));


extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ , __leaf__));






# 1 "/usr/include/bits/sigthread.h" 1 3 4
# 31 "/usr/include/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
       const __sigset_t *__restrict __newmask,
       __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));


extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));



extern int pthread_sigqueue (pthread_t __threadid, int __signo,
        const union sigval __value) __attribute__ ((__nothrow__ , __leaf__));
# 356 "/usr/include/signal.h" 2 3 4






extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));

extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));





# 53 "../autoopts/signal.h" 2 3
# 29 "/usr/include/sys/param.h" 2 3 4


# 1 "/usr/include/bits/param.h" 1 3 4
# 28 "/usr/include/bits/param.h" 3 4
# 1 "/usr/include/linux/param.h" 1 3 4




# 1 "/usr/include/asm/param.h" 1 3 4
# 1 "/usr/include/asm-generic/param.h" 1 3 4
# 1 "/usr/include/asm/param.h" 2 3 4
# 6 "/usr/include/linux/param.h" 2 3 4
# 29 "/usr/include/bits/param.h" 2 3 4
# 32 "/usr/include/sys/param.h" 2 3 4
# 63 "../compat/compat.h" 2



# 1 "/usr/include/sys/stat.h" 1 3 4
# 99 "/usr/include/sys/stat.h" 3 4


# 1 "/usr/include/bits/stat.h" 1 3 4
# 46 "/usr/include/bits/stat.h" 3 4
struct stat
  {
    __dev_t st_dev;




    __ino_t st_ino;







    __nlink_t st_nlink;
    __mode_t st_mode;

    __uid_t st_uid;
    __gid_t st_gid;

    int __pad0;

    __dev_t st_rdev;




    __off_t st_size;



    __blksize_t st_blksize;

    __blkcnt_t st_blocks;
# 91 "/usr/include/bits/stat.h" 3 4
    struct timespec st_atim;
    struct timespec st_mtim;
    struct timespec st_ctim;
# 106 "/usr/include/bits/stat.h" 3 4
    __syscall_slong_t __glibc_reserved[3];
# 115 "/usr/include/bits/stat.h" 3 4
  };



struct stat64
  {
    __dev_t st_dev;

    __ino64_t st_ino;
    __nlink_t st_nlink;
    __mode_t st_mode;






    __uid_t st_uid;
    __gid_t st_gid;

    int __pad0;
    __dev_t st_rdev;
    __off_t st_size;





    __blksize_t st_blksize;
    __blkcnt64_t st_blocks;







    struct timespec st_atim;
    struct timespec st_mtim;
    struct timespec st_ctim;
# 164 "/usr/include/bits/stat.h" 3 4
    __syscall_slong_t __glibc_reserved[3];



  };
# 102 "/usr/include/sys/stat.h" 2 3 4
# 205 "/usr/include/sys/stat.h" 3 4
extern int stat (const char *__restrict __file,
   struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
# 224 "/usr/include/sys/stat.h" 3 4
extern int stat64 (const char *__restrict __file,
     struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));







extern int fstatat (int __fd, const char *__restrict __file,
      struct stat *__restrict __buf, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
# 249 "/usr/include/sys/stat.h" 3 4
extern int fstatat64 (int __fd, const char *__restrict __file,
        struct stat64 *__restrict __buf, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));







extern int lstat (const char *__restrict __file,
    struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
# 272 "/usr/include/sys/stat.h" 3 4
extern int lstat64 (const char *__restrict __file,
      struct stat64 *__restrict __buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));





extern int chmod (const char *__file, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int lchmod (const char *__file, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));





extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
       int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;






extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));




extern __mode_t getumask (void) __attribute__ ((__nothrow__ , __leaf__));



extern int mkdir (const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));






extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int mknodat (int __fd, const char *__path, __mode_t __mode,
      __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));





extern int mkfifo (const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));





extern int utimensat (int __fd, const char *__path,
        const struct timespec __times[2],
        int __flags)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));




extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
# 395 "/usr/include/sys/stat.h" 3 4
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int __xstat (int __ver, const char *__filename,
      struct stat *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __lxstat (int __ver, const char *__filename,
       struct stat *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __fxstatat (int __ver, int __fildes, const char *__filename,
         struct stat *__stat_buf, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4)));
# 428 "/usr/include/sys/stat.h" 3 4
extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int __xstat64 (int __ver, const char *__filename,
        struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __lxstat64 (int __ver, const char *__filename,
         struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __fxstatat64 (int __ver, int __fildes, const char *__filename,
    struct stat64 *__stat_buf, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4)));

extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
       __dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));

extern int __xmknodat (int __ver, int __fd, const char *__path,
         __mode_t __mode, __dev_t *__dev)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 5)));
# 530 "/usr/include/sys/stat.h" 3 4

# 67 "../compat/compat.h" 2

# 1 "/usr/include/sys/wait.h" 1 3 4
# 27 "/usr/include/sys/wait.h" 3 4

# 36 "/usr/include/sys/wait.h" 3 4
# 1 "../autoopts/signal.h" 1 3 4
# 20 "../autoopts/signal.h" 3 4
       
# 21 "../autoopts/signal.h" 3
# 37 "/usr/include/sys/wait.h" 2 3 4
# 74 "/usr/include/sys/wait.h" 3 4
typedef enum
{
  P_ALL,
  P_PID,
  P_PGID
} idtype_t;
# 88 "/usr/include/sys/wait.h" 3 4
extern __pid_t wait (int *__stat_loc);
# 111 "/usr/include/sys/wait.h" 3 4
extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
# 132 "/usr/include/sys/wait.h" 3 4
extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
     int __options);






struct rusage;






extern __pid_t wait3 (int *__stat_loc, int __options,
        struct rusage * __usage) __attribute__ ((__nothrow__));




extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
        struct rusage *__usage) __attribute__ ((__nothrow__));




# 69 "../compat/compat.h" 2





# 1 "/usr/include/sys/utsname.h" 1 3 4
# 27 "/usr/include/sys/utsname.h" 3 4


# 1 "/usr/include/bits/utsname.h" 1 3 4
# 30 "/usr/include/sys/utsname.h" 2 3 4
# 48 "/usr/include/sys/utsname.h" 3 4
struct utsname
  {

    char sysname[65];


    char nodename[65];


    char release[65];

    char version[65];


    char machine[65];




    char domainname[65];




  };
# 81 "/usr/include/sys/utsname.h" 3 4
extern int uname (struct utsname *__name) __attribute__ ((__nothrow__ , __leaf__));



# 75 "../compat/compat.h" 2
# 113 "../compat/compat.h"
# 1 "/usr/include/assert.h" 1 3 4
# 64 "/usr/include/assert.h" 3 4



extern void __assert_fail (const char *__assertion, const char *__file,
      unsigned int __line, const char *__function)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));


extern void __assert_perror_fail (int __errnum, const char *__file,
      unsigned int __line, const char *__function)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));




extern void __assert (const char *__assertion, const char *__file, int __line)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));



# 114 "../compat/compat.h" 2
# 1 "/usr/include/ctype.h" 1 3 4
# 28 "/usr/include/ctype.h" 3 4

# 46 "/usr/include/ctype.h" 3 4
enum
{
  _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
  _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
  _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
  _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
  _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
  _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
  _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
  _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
  _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
  _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
  _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
  _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 79 "/usr/include/ctype.h" 3 4
extern const unsigned short int **__ctype_b_loc (void)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern const __int32_t **__ctype_tolower_loc (void)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern const __int32_t **__ctype_toupper_loc (void)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 108 "/usr/include/ctype.h" 3 4
extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));



extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));


extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));




extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));




extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__ , __leaf__));






extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));



extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));



extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
# 251 "/usr/include/ctype.h" 3 4
extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));

extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));



extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));


extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
# 327 "/usr/include/ctype.h" 3 4

# 115 "../compat/compat.h" 2
# 128 "../compat/compat.h"
# 1 "/usr/include/dirent.h" 1 3 4
# 27 "/usr/include/dirent.h" 3 4

# 61 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/bits/dirent.h" 1 3 4
# 22 "/usr/include/bits/dirent.h" 3 4
struct dirent
  {

    __ino_t d_ino;
    __off_t d_off;




    unsigned short int d_reclen;
    unsigned char d_type;
    char d_name[256];
  };


struct dirent64
  {
    __ino64_t d_ino;
    __off64_t d_off;
    unsigned short int d_reclen;
    unsigned char d_type;
    char d_name[256];
  };
# 62 "/usr/include/dirent.h" 2 3 4
# 97 "/usr/include/dirent.h" 3 4
enum
  {
    DT_UNKNOWN = 0,

    DT_FIFO = 1,

    DT_CHR = 2,

    DT_DIR = 4,

    DT_BLK = 6,

    DT_REG = 8,

    DT_LNK = 10,

    DT_SOCK = 12,

    DT_WHT = 14

  };
# 127 "/usr/include/dirent.h" 3 4
typedef struct __dirstream DIR;






extern DIR *opendir (const char *__name) __attribute__ ((__nonnull__ (1)));






extern DIR *fdopendir (int __fd);







extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 162 "/usr/include/dirent.h" 3 4
extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 173 "/usr/include/dirent.h" 3 4
extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 183 "/usr/include/dirent.h" 3 4
extern int readdir_r (DIR *__restrict __dirp,
        struct dirent *__restrict __entry,
        struct dirent **__restrict __result)
     __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__deprecated__));
# 201 "/usr/include/dirent.h" 3 4
extern int readdir64_r (DIR *__restrict __dirp,
   struct dirent64 *__restrict __entry,
   struct dirent64 **__restrict __result)
  __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__deprecated__));




extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 245 "/usr/include/dirent.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 246 "/usr/include/dirent.h" 2 3 4
# 255 "/usr/include/dirent.h" 3 4
extern int scandir (const char *__restrict __dir,
      struct dirent ***__restrict __namelist,
      int (*__selector) (const struct dirent *),
      int (*__cmp) (const struct dirent **,
      const struct dirent **))
     __attribute__ ((__nonnull__ (1, 2)));
# 278 "/usr/include/dirent.h" 3 4
extern int scandir64 (const char *__restrict __dir,
        struct dirent64 ***__restrict __namelist,
        int (*__selector) (const struct dirent64 *),
        int (*__cmp) (const struct dirent64 **,
        const struct dirent64 **))
     __attribute__ ((__nonnull__ (1, 2)));
# 293 "/usr/include/dirent.h" 3 4
extern int scandirat (int __dfd, const char *__restrict __dir,
        struct dirent ***__restrict __namelist,
        int (*__selector) (const struct dirent *),
        int (*__cmp) (const struct dirent **,
        const struct dirent **))
     __attribute__ ((__nonnull__ (2, 3)));
# 315 "/usr/include/dirent.h" 3 4
extern int scandirat64 (int __dfd, const char *__restrict __dir,
   struct dirent64 ***__restrict __namelist,
   int (*__selector) (const struct dirent64 *),
   int (*__cmp) (const struct dirent64 **,
          const struct dirent64 **))
     __attribute__ ((__nonnull__ (2, 3)));




extern int alphasort (const struct dirent **__e1,
        const struct dirent **__e2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 340 "/usr/include/dirent.h" 3 4
extern int alphasort64 (const struct dirent64 **__e1,
   const struct dirent64 **__e2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 353 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
    size_t __nbytes,
    __off_t *__restrict __basep)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
# 370 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
      size_t __nbytes,
      __off64_t *__restrict __basep)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));






extern int versionsort (const struct dirent **__e1,
   const struct dirent **__e2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 396 "/usr/include/dirent.h" 3 4
extern int versionsort64 (const struct dirent64 **__e1,
     const struct dirent64 **__e2)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));




# 129 "../compat/compat.h" 2
# 144 "../compat/compat.h"
# 1 "/usr/include/errno.h" 1 3 4
# 28 "/usr/include/errno.h" 3 4
# 1 "/usr/include/bits/errno.h" 1 3 4
# 26 "/usr/include/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/asm/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno.h" 1 3 4




# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
# 6 "/usr/include/asm-generic/errno.h" 2 3 4
# 1 "/usr/include/asm/errno.h" 2 3 4
# 1 "/usr/include/linux/errno.h" 2 3 4
# 27 "/usr/include/bits/errno.h" 2 3 4
# 29 "/usr/include/errno.h" 2 3 4








extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));







extern char *program_invocation_name;
extern char *program_invocation_short_name;





typedef int error_t;





# 145 "../compat/compat.h" 2

# 1 "/usr/include/fcntl.h" 1 3 4
# 28 "/usr/include/fcntl.h" 3 4







# 1 "/usr/include/bits/fcntl.h" 1 3 4
# 35 "/usr/include/bits/fcntl.h" 3 4
struct flock
  {
    short int l_type;
    short int l_whence;

    __off_t l_start;
    __off_t l_len;




    __pid_t l_pid;
  };


struct flock64
  {
    short int l_type;
    short int l_whence;
    __off64_t l_start;
    __off64_t l_len;
    __pid_t l_pid;
  };



# 1 "/usr/include/bits/fcntl-linux.h" 1 3 4
# 38 "/usr/include/bits/fcntl-linux.h" 3 4
# 1 "/usr/include/bits/types/struct_iovec.h" 1 3 4
# 23 "/usr/include/bits/types/struct_iovec.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 24 "/usr/include/bits/types/struct_iovec.h" 2 3 4


struct iovec
  {
    void *iov_base;
    size_t iov_len;
  };
# 39 "/usr/include/bits/fcntl-linux.h" 2 3 4
# 258 "/usr/include/bits/fcntl-linux.h" 3 4
enum __pid_type
  {
    F_OWNER_TID = 0,
    F_OWNER_PID,
    F_OWNER_PGRP,
    F_OWNER_GID = F_OWNER_PGRP
  };


struct f_owner_ex
  {
    enum __pid_type type;
    __pid_t pid;
  };
# 321 "/usr/include/bits/fcntl-linux.h" 3 4
# 1 "/usr/include/linux/falloc.h" 1 3 4
# 322 "/usr/include/bits/fcntl-linux.h" 2 3 4



struct file_handle
{
  unsigned int handle_bytes;
  int handle_type;

  unsigned char f_handle[0];
};










extern __ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
    __attribute__ ((__nothrow__ , __leaf__));






extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count,
       unsigned int __flags);






extern __ssize_t vmsplice (int __fdout, const struct iovec *__iov,
      size_t __count, unsigned int __flags);





extern __ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
    __off64_t *__offout, size_t __len,
    unsigned int __flags);





extern __ssize_t tee (int __fdin, int __fdout, size_t __len,
        unsigned int __flags);






extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
# 392 "/usr/include/bits/fcntl-linux.h" 3 4
extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
   __off64_t __len);




extern int name_to_handle_at (int __dfd, const char *__name,
         struct file_handle *__handle, int *__mnt_id,
         int __flags) __attribute__ ((__nothrow__ , __leaf__));





extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle,
         int __flags);




# 61 "/usr/include/bits/fcntl.h" 2 3 4
# 36 "/usr/include/fcntl.h" 2 3 4
# 78 "/usr/include/fcntl.h" 3 4
# 1 "/usr/include/bits/stat.h" 1 3 4
# 79 "/usr/include/fcntl.h" 2 3 4
# 170 "/usr/include/fcntl.h" 3 4
extern int fcntl (int __fd, int __cmd, ...);
# 180 "/usr/include/fcntl.h" 3 4
extern int open (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 190 "/usr/include/fcntl.h" 3 4
extern int open64 (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 204 "/usr/include/fcntl.h" 3 4
extern int openat (int __fd, const char *__file, int __oflag, ...)
     __attribute__ ((__nonnull__ (2)));
# 215 "/usr/include/fcntl.h" 3 4
extern int openat64 (int __fd, const char *__file, int __oflag, ...)
     __attribute__ ((__nonnull__ (2)));
# 226 "/usr/include/fcntl.h" 3 4
extern int creat (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 236 "/usr/include/fcntl.h" 3 4
extern int creat64 (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 255 "/usr/include/fcntl.h" 3 4
extern int lockf (int __fd, int __cmd, off_t __len);
# 264 "/usr/include/fcntl.h" 3 4
extern int lockf64 (int __fd, int __cmd, off64_t __len);







extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
     int __advise) __attribute__ ((__nothrow__ , __leaf__));
# 284 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise64 (int __fd, off64_t __offset, off64_t __len,
       int __advise) __attribute__ ((__nothrow__ , __leaf__));
# 294 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
# 305 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate64 (int __fd, off64_t __offset, off64_t __len);
# 316 "/usr/include/fcntl.h" 3 4

# 147 "../compat/compat.h" 2
# 157 "../compat/compat.h"
# 1 "../autoopts/limits.h" 1
# 20 "../autoopts/limits.h"
       
# 21 "../autoopts/limits.h" 3
# 158 "../compat/compat.h" 2




# 1 "/usr/include/memory.h" 1 3 4
# 163 "../compat/compat.h" 2
# 1 "/usr/include/setjmp.h" 1 3 4
# 27 "/usr/include/setjmp.h" 3 4


# 1 "/usr/include/bits/setjmp.h" 1 3 4
# 26 "/usr/include/bits/setjmp.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 27 "/usr/include/bits/setjmp.h" 2 3 4




typedef long int __jmp_buf[8];
# 30 "/usr/include/setjmp.h" 2 3 4



struct __jmp_buf_tag
  {




    __jmp_buf __jmpbuf;
    int __mask_was_saved;
    __sigset_t __saved_mask;
  };


typedef struct __jmp_buf_tag jmp_buf[1];



extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));




extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));



extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
# 67 "/usr/include/setjmp.h" 3 4
extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));





extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));







typedef struct __jmp_buf_tag sigjmp_buf[1];
# 93 "/usr/include/setjmp.h" 3 4
extern void siglongjmp (sigjmp_buf __env, int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
# 103 "/usr/include/setjmp.h" 3 4

# 164 "../compat/compat.h" 2
# 1 "../autoopts/signal.h" 1
# 20 "../autoopts/signal.h"
       
# 21 "../autoopts/signal.h" 3
# 165 "../compat/compat.h" 2
# 175 "../compat/compat.h"
# 1 "../autoopts/time.h" 1
# 20 "../autoopts/time.h"
       
# 21 "../autoopts/time.h" 3
# 47 "../autoopts/time.h" 3
# 1 "/usr/include/time.h" 1 3 4
# 29 "/usr/include/time.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 30 "/usr/include/time.h" 2 3 4



# 1 "/usr/include/bits/time.h" 1 3 4
# 73 "/usr/include/bits/time.h" 3 4
# 1 "/usr/include/bits/timex.h" 1 3 4
# 26 "/usr/include/bits/timex.h" 3 4
struct timex
{
  unsigned int modes;
  __syscall_slong_t offset;
  __syscall_slong_t freq;
  __syscall_slong_t maxerror;
  __syscall_slong_t esterror;
  int status;
  __syscall_slong_t constant;
  __syscall_slong_t precision;
  __syscall_slong_t tolerance;
  struct timeval time;
  __syscall_slong_t tick;
  __syscall_slong_t ppsfreq;
  __syscall_slong_t jitter;
  int shift;
  __syscall_slong_t stabil;
  __syscall_slong_t jitcnt;
  __syscall_slong_t calcnt;
  __syscall_slong_t errcnt;
  __syscall_slong_t stbcnt;

  int tai;


  int :32; int :32; int :32; int :32;
  int :32; int :32; int :32; int :32;
  int :32; int :32; int :32;
};
# 74 "/usr/include/bits/time.h" 2 3 4




extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ , __leaf__));


# 34 "/usr/include/time.h" 2 3 4





# 1 "/usr/include/bits/types/struct_tm.h" 1 3 4






struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  const char *tm_zone;




};
# 40 "/usr/include/time.h" 2 3 4
# 48 "/usr/include/time.h" 3 4
# 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4







struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };
# 49 "/usr/include/time.h" 2 3 4
struct sigevent;
# 68 "/usr/include/time.h" 3 4




extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__));


extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));





extern size_t strftime (char *__restrict __s, size_t __maxsize,
   const char *__restrict __format,
   const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));




extern char *strptime (const char *__restrict __s,
         const char *__restrict __fmt, struct tm *__tp)
     __attribute__ ((__nothrow__ , __leaf__));






extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
     const char *__restrict __format,
     const struct tm *__restrict __tp,
     locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));



extern char *strptime_l (const char *__restrict __s,
    const char *__restrict __fmt, struct tm *__tp,
    locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));





extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));



extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));




extern struct tm *gmtime_r (const time_t *__restrict __timer,
       struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));



extern struct tm *localtime_r (const time_t *__restrict __timer,
          struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));




extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));


extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));






extern char *asctime_r (const struct tm *__restrict __tp,
   char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));


extern char *ctime_r (const time_t *__restrict __timer,
        char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__));



extern int daylight;
extern long int timezone;





extern int stime (const time_t *__when) __attribute__ ((__nothrow__ , __leaf__));
# 196 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));


extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));


extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 211 "/usr/include/time.h" 3 4
extern int nanosleep (const struct timespec *__requested_time,
        struct timespec *__remaining);



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__));


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__));


extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
     __attribute__ ((__nothrow__ , __leaf__));






extern int clock_nanosleep (clockid_t __clock_id, int __flags,
       const struct timespec *__req,
       struct timespec *__rem);


extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__));




extern int timer_create (clockid_t __clock_id,
    struct sigevent *__restrict __evp,
    timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__));


extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));


extern int timer_settime (timer_t __timerid, int __flags,
     const struct itimerspec *__restrict __value,
     struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__));


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     __attribute__ ((__nothrow__ , __leaf__));


extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));





extern int timespec_get (struct timespec *__ts, int __base)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 280 "/usr/include/time.h" 3 4
extern int getdate_err;
# 289 "/usr/include/time.h" 3 4
extern struct tm *getdate (const char *__string);
# 303 "/usr/include/time.h" 3 4
extern int getdate_r (const char *__restrict __string,
        struct tm *__restrict __resbufp);



# 48 "../autoopts/time.h" 2 3


# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 149 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 426 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4
typedef struct {
  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
# 437 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 3 4
} max_align_t;
# 51 "../autoopts/time.h" 2 3
# 597 "../autoopts/time.h" 3
struct __time_t_must_be_integral {
  unsigned int __floating_time_t_unsupported : (time_t) 1;
};
# 611 "../autoopts/time.h" 3
extern int rpl_nanosleep (struct timespec const *__rqtp, struct timespec *__rmtp) __attribute__ ((__nonnull__ (1)))

                                        ;
extern int _gl_cxxalias_dummy
                                                                           ;
# 625 "../autoopts/time.h" 3
extern int _gl_cxxalias_dummy;
# 176 "../compat/compat.h" 2


# 1 "/usr/include/utime.h" 1 3 4
# 27 "/usr/include/utime.h" 3 4

# 36 "/usr/include/utime.h" 3 4
struct utimbuf
  {
    __time_t actime;
    __time_t modtime;
  };



extern int utime (const char *__file,
    const struct utimbuf *__file_times)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


# 179 "../compat/compat.h" 2



# 1 "../autoopts/unistd.h" 1
# 21 "../autoopts/unistd.h"
       
# 22 "../autoopts/unistd.h" 3
# 40 "../autoopts/unistd.h" 3
# 1 "/usr/include/unistd.h" 1 3 4
# 27 "/usr/include/unistd.h" 3 4

# 205 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/bits/posix_opt.h" 1 3 4
# 206 "/usr/include/unistd.h" 2 3 4



# 1 "/usr/include/bits/environments.h" 1 3 4
# 22 "/usr/include/bits/environments.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 23 "/usr/include/bits/environments.h" 2 3 4
# 210 "/usr/include/unistd.h" 2 3 4
# 229 "/usr/include/unistd.h" 3 4
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stddef.h" 1 3 4
# 230 "/usr/include/unistd.h" 2 3 4
# 277 "/usr/include/unistd.h" 3 4
typedef __socklen_t socklen_t;
# 290 "/usr/include/unistd.h" 3 4
extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




extern int euidaccess (const char *__name, int __type)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int eaccess (const char *__name, int __type)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));






extern int faccessat (int __fd, const char *__file, int __type, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
# 337 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
# 348 "/usr/include/unistd.h" 3 4
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
     __attribute__ ((__nothrow__ , __leaf__));






extern int close (int __fd);






extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;





extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
# 379 "/usr/include/unistd.h" 3 4
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
        __off_t __offset) ;






extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
         __off_t __offset) ;
# 407 "/usr/include/unistd.h" 3 4
extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
   __off64_t __offset) ;


extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
    __off64_t __offset) ;







extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) ;
# 435 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
# 447 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds);







extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     __attribute__ ((__nothrow__ , __leaf__));






extern int usleep (__useconds_t __useconds);
# 472 "/usr/include/unistd.h" 3 4
extern int pause (void);



extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;






extern int fchownat (int __fd, const char *__file, __uid_t __owner,
       __gid_t __group, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;



extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
# 514 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;





extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ , __leaf__));







extern char *getwd (char *__buf)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;




extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;


extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));




extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ , __leaf__));



extern char **__environ;

extern char **environ;





extern int execve (const char *__path, char *const __argv[],
     char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));




extern int execv (const char *__path, char *const __argv[])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execle (const char *__path, const char *__arg, ...)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execl (const char *__path, const char *__arg, ...)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern int execvp (const char *__file, char *const __argv[])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern int execlp (const char *__file, const char *__arg, ...)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));




extern int execvpe (const char *__file, char *const __argv[],
      char *const __envp[])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));





extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3 4
# 24 "/usr/include/bits/confname.h" 3 4
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX,

    _PC_2_SYMLINKS

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG,


    _SC_LEVEL1_ICACHE_SIZE,

    _SC_LEVEL1_ICACHE_ASSOC,

    _SC_LEVEL1_ICACHE_LINESIZE,

    _SC_LEVEL1_DCACHE_SIZE,

    _SC_LEVEL1_DCACHE_ASSOC,

    _SC_LEVEL1_DCACHE_LINESIZE,

    _SC_LEVEL2_CACHE_SIZE,

    _SC_LEVEL2_CACHE_ASSOC,

    _SC_LEVEL2_CACHE_LINESIZE,

    _SC_LEVEL3_CACHE_SIZE,

    _SC_LEVEL3_CACHE_ASSOC,

    _SC_LEVEL3_CACHE_LINESIZE,

    _SC_LEVEL4_CACHE_SIZE,

    _SC_LEVEL4_CACHE_ASSOC,

    _SC_LEVEL4_CACHE_LINESIZE,



    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,

    _SC_RAW_SOCKETS,


    _SC_V7_ILP32_OFF32,

    _SC_V7_ILP32_OFFBIG,

    _SC_V7_LP64_OFF64,

    _SC_V7_LPBIG_OFFBIG,


    _SC_SS_REPL_MAX,


    _SC_TRACE_EVENT_NAME_MAX,

    _SC_TRACE_NAME_MAX,

    _SC_TRACE_SYS_MAX,

    _SC_TRACE_USER_EVENT_MAX,


    _SC_XOPEN_STREAMS,


    _SC_THREAD_ROBUST_PRIO_INHERIT,

    _SC_THREAD_ROBUST_PRIO_PROTECT

  };


enum
  {
    _CS_PATH,


    _CS_V6_WIDTH_RESTRICTED_ENVS,



    _CS_GNU_LIBC_VERSION,

    _CS_GNU_LIBPTHREAD_VERSION,


    _CS_V5_WIDTH_RESTRICTED_ENVS,



    _CS_V7_WIDTH_RESTRICTED_ENVS,



    _CS_LFS_CFLAGS = 1000,

    _CS_LFS_LDFLAGS,

    _CS_LFS_LIBS,

    _CS_LFS_LINTFLAGS,

    _CS_LFS64_CFLAGS,

    _CS_LFS64_LDFLAGS,

    _CS_LFS64_LIBS,

    _CS_LFS64_LINTFLAGS,


    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,

    _CS_XBS5_ILP32_OFF32_LDFLAGS,

    _CS_XBS5_ILP32_OFF32_LIBS,

    _CS_XBS5_ILP32_OFF32_LINTFLAGS,

    _CS_XBS5_ILP32_OFFBIG_CFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LIBS,

    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,

    _CS_XBS5_LP64_OFF64_CFLAGS,

    _CS_XBS5_LP64_OFF64_LDFLAGS,

    _CS_XBS5_LP64_OFF64_LIBS,

    _CS_XBS5_LP64_OFF64_LINTFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LIBS,

    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LIBS,

    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V6_LP64_OFF64_CFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LIBS,

    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V7_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LIBS,

    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V7_LP64_OFF64_CFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LIBS,

    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,


    _CS_V6_ENV,

    _CS_V7_ENV

  };
# 613 "/usr/include/unistd.h" 2 3 4


extern long int pathconf (const char *__path, int __name)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));


extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));



extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));




extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));


extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));


extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));


extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));

extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));






extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
# 663 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));






extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));



extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));



extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));


extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));


extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));


extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));




extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ;



extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__));






extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;






extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;




extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;





extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
     __attribute__ ((__nothrow__ , __leaf__));



extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
     __attribute__ ((__nothrow__ , __leaf__));



extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
     __attribute__ ((__nothrow__ , __leaf__)) ;



extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
     __attribute__ ((__nothrow__ , __leaf__)) ;






extern __pid_t fork (void) __attribute__ ((__nothrow__));







extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));





extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));



extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;



extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));




extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));




extern int link (const char *__from, const char *__to)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern int linkat (int __fromfd, const char *__from, int __tofd,
     const char *__to, int __flags)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;




extern int symlink (const char *__from, const char *__to)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern ssize_t readlink (const char *__restrict __path,
    char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern int symlinkat (const char *__from, int __tofd,
        const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;


extern ssize_t readlinkat (int __fd, const char *__restrict __path,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ;



extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern int unlinkat (int __fd, const char *__name, int __flag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));



extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));






extern char *getlogin (void);







extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));




extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







# 1 "/usr/include/bits/getopt_posix.h" 1 3 4
# 27 "/usr/include/bits/getopt_posix.h" 3 4
# 1 "/usr/include/bits/getopt_core.h" 1 3 4
# 28 "/usr/include/bits/getopt_core.h" 3 4








extern char *optarg;
# 50 "/usr/include/bits/getopt_core.h" 3 4
extern int optind;




extern int opterr;



extern int optopt;
# 91 "/usr/include/bits/getopt_core.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
       __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));


# 28 "/usr/include/bits/getopt_posix.h" 2 3 4


# 49 "/usr/include/bits/getopt_posix.h" 3 4

# 873 "/usr/include/unistd.h" 2 3 4







extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));






extern int sethostname (const char *__name, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;



extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;





extern int getdomainname (char *__name, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int setdomainname (const char *__name, size_t __len)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;





extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));


extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
     size_t __offset, unsigned int __scale)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));





extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));



extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));





extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;






extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;



extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));







extern int fsync (int __fd);





extern int syncfs (int __fd) __attribute__ ((__nothrow__ , __leaf__));






extern long int gethostid (void);


extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));





extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));




extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
# 994 "/usr/include/unistd.h" 3 4
extern int truncate (const char *__file, __off_t __length)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 1006 "/usr/include/unistd.h" 3 4
extern int truncate64 (const char *__file, __off64_t __length)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 1017 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
# 1027 "/usr/include/unistd.h" 3 4
extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
# 1038 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;





extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
# 1059 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
# 1113 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes);







extern char *crypt (const char *__key, const char *__salt)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));



extern void encrypt (char *__glibc_block, int __edflag)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));






extern void swab (const void *__restrict __from, void *__restrict __to,
    ssize_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
# 1162 "/usr/include/unistd.h" 3 4
int getentropy (void *__buffer, size_t __length) ;








# 41 "../autoopts/unistd.h" 2 3
# 662 "../autoopts/unistd.h" 3

# 2405 "../autoopts/unistd.h" 3

# 183 "../compat/compat.h" 2



# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdbool.h" 1 3 4
# 187 "../compat/compat.h" 2
# 318 "../compat/compat.h"
  
# 318 "../compat/compat.h"
 typedef unsigned int uint_t;
# 366 "../compat/compat.h"
   typedef long t_word;
# 31 "../autoopts/project.h" 2
# 1 "../autoopts/ag-char-map.h" 1
# 32 "../autoopts/project.h" 2
# 54 "../autoopts/project.h"
typedef int tSuccess;
# 8 "gd.c" 2
# 1 "opts.h" 1
# 52 "opts.h"
# 1 "../autoopts/autoopts/options.h" 1
# 41 "../autoopts/autoopts/options.h"
# 1 "../autoopts/sys/types.h" 1
# 20 "../autoopts/sys/types.h"
       
# 21 "../autoopts/sys/types.h" 3
# 42 "../autoopts/autoopts/options.h" 2
# 130 "../autoopts/autoopts/options.h"
typedef enum {
    OPARG_TYPE_NONE = 0,
    OPARG_TYPE_STRING = 1,
    OPARG_TYPE_ENUMERATION = 2,
    OPARG_TYPE_BOOLEAN = 3,
    OPARG_TYPE_MEMBERSHIP = 4,
    OPARG_TYPE_NUMERIC = 5,
    OPARG_TYPE_HIERARCHY = 6,
    OPARG_TYPE_FILE = 7,
    OPARG_TYPE_TIME = 8,
    OPARG_TYPE_FLOAT = 9,
    OPARG_TYPE_DOUBLE = 10,
    OPARG_TYPE_LONG_DOUBLE = 11,
    OPARG_TYPE_LONG_LONG = 12,
    OPARG_TYPE_STATIC = 13
} teOptArgType;




typedef struct optionValue {
    teOptArgType valType;
    char * pzName;
    union {
        char strVal[1];
        unsigned int enumVal;
        unsigned int boolVal;
        unsigned long setVal;
        long longVal;
        void * nestVal;
    } v;
} tOptionValue;




typedef enum {
    FTYPE_MODE_MAY_EXIST = 0x00,
    FTYPE_MODE_MUST_EXIST = 0x01,
    FTYPE_MODE_MUST_NOT_EXIST = 0x02,
    FTYPE_MODE_EXIST_MASK = 0x03,
    FTYPE_MODE_NO_OPEN = 0x00,
    FTYPE_MODE_OPEN_FD = 0x10,
    FTYPE_MODE_FOPEN_FP = 0x20,
    FTYPE_MODE_OPEN_MASK = 0x30
} teOptFileType;




typedef union {
    int file_flags;
    char const * file_mode;
} tuFileMode;
# 194 "../autoopts/autoopts/options.h"
typedef struct {
    int useCt;



    int allocCt;
    char const * apzArgs[6];
} tArgList;







typedef uint32_t opt_state_mask_t;
# 342 "../autoopts/autoopts/options.h"
typedef uint32_t proc_state_mask_t;
# 413 "../autoopts/autoopts/options.h"
typedef enum {
    OP_VAL_EMIT_USAGE = 1,
    OP_VAL_EMIT_SHELL = 2,
    OP_VAL_RETURN_VALNAME = 3,
    OP_VAL_EMIT_LIMIT = 15
} opt_proc_vals_t;
# 437 "../autoopts/autoopts/options.h"
typedef struct opt_desc tOptDesc;

typedef struct options tOptions;





typedef void (tOptProc)(tOptions * pOpts, tOptDesc * pOptDesc);




typedef tOptProc * tpOptProc;






typedef void (tUsageProc)(tOptions * pOpts, int exitCode);




typedef tUsageProc * tpUsageProc;
# 482 "../autoopts/autoopts/options.h"
typedef union {
    char const * argString;
    uintptr_t argEnum;
    uintptr_t argIntptr;
    long argInt;
    unsigned long argUint;
    unsigned int argBool;
    FILE * argFp;
    int argFd;
} opt_arg_union_t;
# 503 "../autoopts/autoopts/options.h"
typedef enum {
    AOUSE_USER_DEFINED = 0,
    AOUSE_RESET_OPTION,
    AOUSE_VERSION,
    AOUSE_HELP,
    AOUSE_MORE_HELP,
    AOUSE_USAGE,
    AOUSE_SAVE_OPTS,
    AOUSE_LOAD_OPTS,
    AOUSE_VENDOR_OPT
} opt_usage_t;





struct opt_desc {

    uint16_t const optIndex;

    uint16_t const optValue;

    uint16_t optActualIndex;

    uint16_t optActualValue;



    uint16_t const optEquivIndex;

    uint16_t const optMinCt;

    uint16_t const optMaxCt;

    uint16_t optOccCt;


    opt_state_mask_t fOptState;

    uint32_t optUsage;

    opt_arg_union_t optArg;



    void * optCookie;



    int const * const pOptMust;



    int const * const pOptCant;


    tpOptProc const pOptProc;


    char const * const pzText;


    char const * const pz_NAME;


    char const * const pz_Name;



    char const * const pz_DisableName;



    char const * const pz_DisablePfx;
};





typedef struct {
    uint16_t const more_help;
    uint16_t const save_opts;
    uint16_t const number_option;


    uint16_t const default_opt;
} option_spec_idx_t;




typedef void (tOptionXlateProc)(void);







struct options {
    int const structVersion;
    unsigned int origArgCt;
    char ** origArgVect;
    proc_state_mask_t fOptSet;
    unsigned int curOptIdx;
    char * pzCurOpt;


    char const * const pzProgPath;

    char const * const pzProgName;

    char const * const pzPROGNAME;

    char const * const pzRcName;

    char const * const pzCopyright;

    char const * const pzCopyNotice;

    char const * const pzFullVersion;

    char const * const * const papzHomeList;

    char const * const pzUsageTitle;

    char const * const pzExplain;


    char const * const pzDetail;

    tOptDesc * const pOptDesc;

    char const * const pzBugAddr;


    void * pExtensions;

    void * pSavedState;




    tpUsageProc pUsageProc;

    tOptionXlateProc * pTransProc;


    option_spec_idx_t specOptIdx;

    int const optCt;



    int const presetOptCt;

    char const * pzFullUsage;

    char const * pzShortUsage;

    opt_arg_union_t const * const originalOptArgArray;

    void * const * const originalOptArgCookie;

    char const * const pzPkgDataDir;

    char const * const pzPackager;
};
# 701 "../autoopts/autoopts/options.h"
typedef struct {
    unsigned long tkn_ct;
    unsigned char * tkn_list[1];
} token_list_t;
# 727 "../autoopts/autoopts/options.h"
typedef struct {
    void * txt_data;
    size_t txt_size;
    size_t txt_full_size;
    int txt_fd;
    int txt_zero_fd;
    int txt_errno;
    int txt_prot;
    int txt_flags;
} tmap_info_t;
# 794 "../autoopts/autoopts/options.h"
extern token_list_t * ao_string_tokenize(char const *);
# 812 "../autoopts/autoopts/options.h"
extern const tOptionValue * configFileLoad(char const *);
# 840 "../autoopts/autoopts/options.h"
extern int optionFileLoad(tOptions *, char const *);
# 857 "../autoopts/autoopts/options.h"
extern const tOptionValue * optionFindNextValue(const tOptDesc *, const tOptionValue *, char const *, char const *);
# 872 "../autoopts/autoopts/options.h"
extern const tOptionValue * optionFindValue(const tOptDesc *, char const *, char const *);
# 883 "../autoopts/autoopts/options.h"
extern void optionFree(tOptions *);
# 901 "../autoopts/autoopts/options.h"
extern const tOptionValue * optionGetValue(const tOptionValue *, char const *);
# 924 "../autoopts/autoopts/options.h"
extern void optionLoadLine(tOptions *, char const *);
# 937 "../autoopts/autoopts/options.h"
extern char * optionMemberList(tOptDesc *);
# 954 "../autoopts/autoopts/options.h"
extern const tOptionValue * optionNextValue(const tOptionValue *, const tOptionValue *);
# 967 "../autoopts/autoopts/options.h"
extern void optionOnlyUsage(tOptions *, int);
# 978 "../autoopts/autoopts/options.h"
extern void optionPrintVersion(tOptions *, tOptDesc *);
# 992 "../autoopts/autoopts/options.h"
extern void optionPrintVersionAndReturn(tOptions *, tOptDesc *);
# 1020 "../autoopts/autoopts/options.h"
extern int optionProcess(tOptions *, int, char **);
# 1035 "../autoopts/autoopts/options.h"
extern void optionRestore(tOptions *);
# 1058 "../autoopts/autoopts/options.h"
extern void optionSaveFile(tOptions *);
# 1078 "../autoopts/autoopts/options.h"
extern void optionSaveState(tOptions *);
# 1090 "../autoopts/autoopts/options.h"
extern void optionUnloadNested(tOptionValue const *);
# 1101 "../autoopts/autoopts/options.h"
extern char const * optionVersion(void);
# 1114 "../autoopts/autoopts/options.h"
extern void option_strequate(char const *);
# 1131 "../autoopts/autoopts/options.h"
extern int option_streqvcmp(char const *, char const *);
# 1157 "../autoopts/autoopts/options.h"
extern void option_streqvmap(char, char, int);
# 1176 "../autoopts/autoopts/options.h"
extern int option_strneqvcmp(char const *, char const *, int);
# 1192 "../autoopts/autoopts/options.h"
extern void option_strtransform(char *, char const *);


tOptProc optionStackArg, optionUnstackArg, optionBooleanVal, optionNumericVal;

extern char * ao_string_cook(char *, int *);

extern unsigned int ao_string_cook_escape_char(char const *, char *, unsigned int);

extern void genshelloptUsage(tOptions *, int);

extern int optionAlias(tOptions *, tOptDesc *, unsigned int);

extern void optionBooleanVal(tOptions *, tOptDesc *);

extern uintptr_t optionEnumerationVal(tOptions *, tOptDesc *, char const * const *, unsigned int);

extern void optionFileCheck(tOptions *, tOptDesc *, teOptFileType, tuFileMode);

extern char const * optionKeywordName(tOptDesc *, unsigned int);

extern void optionLoadOpt(tOptions *, tOptDesc *);

extern 
# 1215 "../autoopts/autoopts/options.h" 3 4
      _Bool 
# 1215 "../autoopts/autoopts/options.h"
           optionMakePath(char *, int, char const *, char const *);

extern void optionNestedVal(tOptions *, tOptDesc *);

extern void optionNumericVal(tOptions *, tOptDesc *);

extern void optionPagedUsage(tOptions *, tOptDesc *);

extern void optionParseShell(tOptions *);

extern void optionPrintParagraphs(char const *, 
# 1225 "../autoopts/autoopts/options.h" 3 4
                                               _Bool
# 1225 "../autoopts/autoopts/options.h"
                                                   , FILE *);

extern void optionPutShell(tOptions *);

extern char const * optionQuoteString(char const *, char const *);

extern void optionResetOpt(tOptions *, tOptDesc *);

extern void optionSetMembers(tOptions *, tOptDesc *, char const * const *, unsigned int);

extern void optionShowRange(tOptions *, tOptDesc *, void *, int);

extern void optionStackArg(tOptions *, tOptDesc *);

extern void optionTimeDate(tOptions *, tOptDesc *);

extern void optionTimeVal(tOptions *, tOptDesc *);

extern void optionUnstackArg(tOptions *, tOptDesc *);

extern void optionUsage(tOptions *, int);

extern void optionVendorOption(tOptions *, tOptDesc *);

extern void optionVersionStderr(tOptions *, tOptDesc *);

extern void * text_mmap(char const *, int, int, tmap_info_t *);

extern int text_munmap(tmap_info_t *);


# 53 "opts.h" 2
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdarg.h" 1 3 4
# 54 "opts.h" 2
# 1 "/usr/lib64/gcc/x86_64-suse-linux/7/include/stdnoreturn.h" 1 3 4
# 55 "opts.h" 2
# 79 "opts.h"
typedef enum {
    INDEX_OPT_DEFS_TO_GET = 1,
    INDEX_OPT_SUBBLOCK = 2,
    INDEX_OPT_LISTATTR = 3,
    INDEX_OPT_ORDERING = 5,
    INDEX_OPT_FIRST_INDEX = 6,
    INDEX_OPT_FILELIST = 8,
    INDEX_OPT_ASSIGN = 9,
    INDEX_OPT_COMMON_ASSIGN = 10,
    INDEX_OPT_COPY = 11,
    INDEX_OPT_SRCFILE = 12,
    INDEX_OPT_LINENUM = 13,
    INDEX_OPT_INPUT = 15,
    INDEX_OPT_OUTPUT = 17,
    INDEX_OPT_AUTOGEN = 18,
    INDEX_OPT_TEMPLATE = 19,
    INDEX_OPT_AGARG = 20,
    INDEX_OPT_BASE_NAME = 21,
    INDEX_OPT_VERSION = 22,
    INDEX_OPT_HELP = 23,
    INDEX_OPT_MORE_HELP = 24,
    INDEX_OPT_SAVE_OPTS = 25,
    INDEX_OPT_LOAD_OPTS = 26
} teOptIndex;
# 149 "opts.h"
typedef enum {
    GETDEFS_EXIT_SUCCESS = 0,
    GETDEFS_EXIT_FAILURE = 1,
    GETDEFS_EXIT_INVALID_INPUT = 2,
    GETDEFS_EXIT_NO_MEM = 3,
    GETDEFS_EXIT_USAGE_ERROR = 64,
    GETDEFS_EXIT_NO_CONFIG_INPUT = 66,
    GETDEFS_EXIT_LIBOPTS_FAILURE = 70
} getdefs_exit_code_t;
# 355 "opts.h"
extern tOptions getdefsOptions;
# 367 "opts.h"

# 367 "opts.h" 3 4
_Noreturn 
# 367 "opts.h"
        extern void
vdie( int exit_code, char const * fmt, va_list);

# 369 "opts.h" 3 4
_Noreturn 
# 369 "opts.h"
        extern void
die( int exit_code, char const * fmt, ...);

# 371 "opts.h" 3 4
_Noreturn 
# 371 "opts.h"
        extern void
fserr(int exit_code, char const * op, char const * fn);
# 381 "opts.h"

# 381 "opts.h" 3 4
_Noreturn 
# 381 "opts.h"
        static inline void nomem_err(size_t sz, char const * what)
{
    char const * fmt = "could not allocate %zu bytes for %s\n";
    die(GETDEFS_EXIT_NO_MEM, fmt, sz, what);
}
# 9 "gd.c" 2
# 1 "opts.c" 1
# 48 "opts.c"
# 1 "../autoopts/sys/types.h" 1
# 20 "../autoopts/sys/types.h"
       
# 21 "../autoopts/sys/types.h" 3
# 49 "opts.c" 2




# 1 "../autoopts/limits.h" 1
# 20 "../autoopts/limits.h"
       
# 21 "../autoopts/limits.h" 3
# 54 "opts.c" 2
# 62 "opts.c"
extern FILE * option_usage_fp;
# 74 "opts.c"
static char const getdefs_opt_strs[2640] =
            "getdefs (GNU AutoGen) 1.5\n"
            "Copyright (C) 1999-2020 Bruce Korb, all rights reserved.\n"
            "This is free software. It is licensed for use, modification and\n"
            "redistribution under the terms of the GNU General Public License,\n"
            "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
            "getdefs is free software: you can redistribute it and/or modify it under\n"
            "the terms of the GNU General Public License as published by the Free\n"
            "Software Foundation, either version 3 of the License, or (at your option)\n"
            "any later version.\n\n"
            "getdefs is distributed in the hope that it will be useful, but WITHOUT ANY\n"
            "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n"
            "FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\n"
            "details.\n\n"
            "You should have received a copy of the GNU General Public License along\n"
            "with this program.  If not, see <http://www.gnu.org/licenses/>.\n\0"
            "Specify which definitions are of interest and what to say about them:\0"
            "Regexp to look for after the \"/*=\"\0"
            "DEFS_TO_GET\0"
            "defs-to-get\0"
            "subblock definition names\0"
            "SUBBLOCK\0"
            "subblock\0"
            "attribute with list of values\0"
            "LISTATTR\0"
            "listattr\0"
            "specify how to number the definitions:\0"
            "Alphabetize or use named file\0"
            "ORDERING\0"
            "no-ordering\0"
            "no\0"
            "The first index to apply to groups\0"
            "FIRST_INDEX\0"
            "first-index\0"
            "Definition insertion options:\0"
            "Insert source file names into defs\0"
            "FILELIST\0"
            "filelist\0"
            "Global assignments\0"
            "ASSIGN\0"
            "assign\0"
            "Assignments common to all blocks\0"
            "COMMON_ASSIGN\0"
            "common-assign\0"
            "File(s) to copy into definitions\0"
            "COPY\0"
            "copy\0"
            "Insert source file name into each def\0"
            "SRCFILE\0"
            "srcfile\0"
            "Insert source line number into each def\0"
            "LINENUM\0"
            "linenum\0"
            "specify which files to search for markers:\0"
            "Input file to search for defs\0"
            "INPUT\0"
            "input\0"
            "Definition output disposition options::\0"
            "Output file to open\0"
            "OUTPUT\0"
            "output\0"
            "Invoke AutoGen with defs\0"
            "AUTOGEN\0"
            "no-autogen\0"
            "Template Name\0"
            "TEMPLATE\0"
            "template\0"
            "AutoGen Argument\0"
            "AGARG\0"
            "agarg\0"
            "Base name for output file(s)\0"
            "BASE_NAME\0"
            "base-name\0"
            "display extended usage information and exit\0"
            "help\0"
            "extended usage information passed thru pager\0"
            "more-help\0"
            "output version information and exit\0"
            "version\0"
            "save the option state to a config file\0"
            "save-opts\0"
            "load options from a config file\0"
            "LOAD_OPTS\0"
            "no-load-opts\0"
            "GETDEFS\0"
            "getdefs (GNU AutoGen) - AutoGen Definition Extraction Tool - Ver. 1.5\n"
            "Usage:  %s [ <option-name>[{=| }<val>] ]...\n\0"
            "/dev/null\0"
            ".getdefsrc\0"
            "autogen-users@lists.sourceforge.net\0"
            "If no 'input' argument is provided or is set to simply \"-\", and if 'stdin'\n"
            "is not a 'tty', then the list of input files will be read from 'stdin'.\n\0"
            "This program extracts AutoGen definitions from a list of source files.\n"
            "Definitions are delimited by '/*=<entry-type> <entry-name>\\n' and '=*/\\n'.\n\0"
            "getdefs (GNU AutoGen) 1.5";
# 421 "opts.c"
static int const aAgargCantList[] = {
    INDEX_OPT_OUTPUT, (0x7fff +1) };
# 438 "opts.c"
static int const aBase_NameCantList[] = {
    INDEX_OPT_OUTPUT, (0x7fff +1) };
# 472 "opts.c"
extern tOptProc
    optionBooleanVal, optionNestedVal, optionNumericVal,
    optionPagedUsage, optionPrintVersion, optionResetOpt,
    optionStackArg, optionTimeDate, optionTimeVal,
    optionUnstackArg, optionVendorOption;
static tOptProc
    doUsageOpt;
# 487 "opts.c"
static tOptDesc optDesc[27] = {
  { 0, 0,
                            0, 0,
                            (0x7fff +1),
                            0, 0, 0,
                            (0x0200000U | 0x0000100U), 0,
                            { 
# 493 "opts.c" 3 4
                             ((void *)0) 
# 493 "opts.c"
                                  },
                            
# 494 "opts.c" 3 4
                           ((void *)0)
# 494 "opts.c"
                               ,
                            
# 495 "opts.c" 3 4
                           ((void *)0)
# 495 "opts.c"
                               , 
# 495 "opts.c" 3 4
                                 ((void *)0)
# 495 "opts.c"
                                     ,
                            
# 496 "opts.c" 3 4
                           ((void *)0)
# 496 "opts.c"
                               ,
                            (getdefs_opt_strs+871), 
# 497 "opts.c" 3 4
                                               ((void *)0)
# 497 "opts.c"
                                                   , 
# 497 "opts.c" 3 4
                                                     ((void *)0)
# 497 "opts.c"
                                                         ,
                            
# 498 "opts.c" 3 4
                           ((void *)0)
# 498 "opts.c"
                               , 
# 498 "opts.c" 3 4
                                 ((void *)0) 
# 498 "opts.c"
                                      },

  { 1, 0x1001,
                            1, 0x1001,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 505 "opts.c" 3 4
                             ((void *)0) 
# 505 "opts.c"
                                  },
                            
# 506 "opts.c" 3 4
                           ((void *)0)
# 506 "opts.c"
                               ,
                            
# 507 "opts.c" 3 4
                           ((void *)0)
# 507 "opts.c"
                               , 
# 507 "opts.c" 3 4
                                 ((void *)0)
# 507 "opts.c"
                                     ,
                            
# 508 "opts.c" 3 4
                           ((void *)0)
# 508 "opts.c"
                               ,
                            (getdefs_opt_strs+941), (getdefs_opt_strs+976), (getdefs_opt_strs+988),
                            
# 510 "opts.c" 3 4
                           ((void *)0)
# 510 "opts.c"
                               , 
# 510 "opts.c" 3 4
                                 ((void *)0) 
# 510 "opts.c"
                                      },

  { 2, 0x1002,
                            2, 0x1002,
                            (0x7fff +1),
                            0, 
# 515 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 515 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 517 "opts.c" 3 4
                             ((void *)0) 
# 517 "opts.c"
                                  },
                            
# 518 "opts.c" 3 4
                           ((void *)0)
# 518 "opts.c"
                               ,
                            
# 519 "opts.c" 3 4
                           ((void *)0)
# 519 "opts.c"
                               , 
# 519 "opts.c" 3 4
                                 ((void *)0)
# 519 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1000), (getdefs_opt_strs+1026), (getdefs_opt_strs+1035),
                            
# 522 "opts.c" 3 4
                           ((void *)0)
# 522 "opts.c"
                               , 
# 522 "opts.c" 3 4
                                 ((void *)0) 
# 522 "opts.c"
                                      },

  { 3, 0x1003,
                            3, 0x1003,
                            (0x7fff +1),
                            0, 
# 527 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 527 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 529 "opts.c" 3 4
                             ((void *)0) 
# 529 "opts.c"
                                  },
                            
# 530 "opts.c" 3 4
                           ((void *)0)
# 530 "opts.c"
                               ,
                            
# 531 "opts.c" 3 4
                           ((void *)0)
# 531 "opts.c"
                               , 
# 531 "opts.c" 3 4
                                 ((void *)0)
# 531 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1044), (getdefs_opt_strs+1074), (getdefs_opt_strs+1083),
                            
# 534 "opts.c" 3 4
                           ((void *)0)
# 534 "opts.c"
                               , 
# 534 "opts.c" 3 4
                                 ((void *)0) 
# 534 "opts.c"
                                      },

  { 0, 0,
                            0, 0,
                            (0x7fff +1),
                            0, 0, 0,
                            (0x0200000U | 0x0000100U), 0,
                            { 
# 541 "opts.c" 3 4
                             ((void *)0) 
# 541 "opts.c"
                                  },
                            
# 542 "opts.c" 3 4
                           ((void *)0)
# 542 "opts.c"
                               ,
                            
# 543 "opts.c" 3 4
                           ((void *)0)
# 543 "opts.c"
                               , 
# 543 "opts.c" 3 4
                                 ((void *)0)
# 543 "opts.c"
                                     ,
                            
# 544 "opts.c" 3 4
                           ((void *)0)
# 544 "opts.c"
                               ,
                            (getdefs_opt_strs+1092), 
# 545 "opts.c" 3 4
                                             ((void *)0)
# 545 "opts.c"
                                                 , 
# 545 "opts.c" 3 4
                                                   ((void *)0)
# 545 "opts.c"
                                                       ,
                            
# 546 "opts.c" 3 4
                           ((void *)0)
# 546 "opts.c"
                               , 
# 546 "opts.c" 3 4
                                 ((void *)0) 
# 546 "opts.c"
                                      },

  { 5, 0x1004,
                            5, 0x1004,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000800U | ((OPARG_TYPE_STRING) << 12) | 0x0010000U), 0,
                            { 
# 553 "opts.c" 3 4
                             ((void *)0) 
# 553 "opts.c"
                                  },
                            
# 554 "opts.c" 3 4
                           ((void *)0)
# 554 "opts.c"
                               ,
                            
# 555 "opts.c" 3 4
                           ((void *)0)
# 555 "opts.c"
                               , 
# 555 "opts.c" 3 4
                                 ((void *)0)
# 555 "opts.c"
                                     ,
                            
# 556 "opts.c" 3 4
                           ((void *)0)
# 556 "opts.c"
                               ,
                            (getdefs_opt_strs+1131), (getdefs_opt_strs+1161), ((getdefs_opt_strs+1170) + 3),
                            (getdefs_opt_strs+1170), (getdefs_opt_strs+1182) },

  { 6, 0x1005,
                            6, 0x1005,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_NUMERIC) << 12)), 0,
                            { ((char const*)0) },
                            
# 566 "opts.c" 3 4
                           ((void *)0)
# 566 "opts.c"
                               ,
                            
# 567 "opts.c" 3 4
                           ((void *)0)
# 567 "opts.c"
                               , 
# 567 "opts.c" 3 4
                                 ((void *)0)
# 567 "opts.c"
                                     ,
                            optionNumericVal,
                            (getdefs_opt_strs+1185), (getdefs_opt_strs+1220), (getdefs_opt_strs+1232),
                            
# 570 "opts.c" 3 4
                           ((void *)0)
# 570 "opts.c"
                               , 
# 570 "opts.c" 3 4
                                 ((void *)0) 
# 570 "opts.c"
                                      },

  { 0, 0,
                            0, 0,
                            (0x7fff +1),
                            0, 0, 0,
                            (0x0200000U | 0x0000100U), 0,
                            { 
# 577 "opts.c" 3 4
                             ((void *)0) 
# 577 "opts.c"
                                  },
                            
# 578 "opts.c" 3 4
                           ((void *)0)
# 578 "opts.c"
                               ,
                            
# 579 "opts.c" 3 4
                           ((void *)0)
# 579 "opts.c"
                               , 
# 579 "opts.c" 3 4
                                 ((void *)0)
# 579 "opts.c"
                                     ,
                            
# 580 "opts.c" 3 4
                           ((void *)0)
# 580 "opts.c"
                               ,
                            (getdefs_opt_strs+1244), 
# 581 "opts.c" 3 4
                                            ((void *)0)
# 581 "opts.c"
                                                , 
# 581 "opts.c" 3 4
                                                  ((void *)0)
# 581 "opts.c"
                                                      ,
                            
# 582 "opts.c" 3 4
                           ((void *)0)
# 582 "opts.c"
                               , 
# 582 "opts.c" 3 4
                                 ((void *)0) 
# 582 "opts.c"
                                      },

  { 8, 0x1006,
                            8, 0x1006,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12) | 0x0010000U), 0,
                            { 
# 589 "opts.c" 3 4
                             ((void *)0) 
# 589 "opts.c"
                                  },
                            
# 590 "opts.c" 3 4
                           ((void *)0)
# 590 "opts.c"
                               ,
                            
# 591 "opts.c" 3 4
                           ((void *)0)
# 591 "opts.c"
                               , 
# 591 "opts.c" 3 4
                                 ((void *)0)
# 591 "opts.c"
                                     ,
                            
# 592 "opts.c" 3 4
                           ((void *)0)
# 592 "opts.c"
                               ,
                            (getdefs_opt_strs+1274), (getdefs_opt_strs+1309), (getdefs_opt_strs+1318),
                            
# 594 "opts.c" 3 4
                           ((void *)0)
# 594 "opts.c"
                               , 
# 594 "opts.c" 3 4
                                 ((void *)0) 
# 594 "opts.c"
                                      },

  { 9, 0x1007,
                            9, 0x1007,
                            (0x7fff +1),
                            0, 
# 599 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 599 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 601 "opts.c" 3 4
                             ((void *)0) 
# 601 "opts.c"
                                  },
                            
# 602 "opts.c" 3 4
                           ((void *)0)
# 602 "opts.c"
                               ,
                            
# 603 "opts.c" 3 4
                           ((void *)0)
# 603 "opts.c"
                               , 
# 603 "opts.c" 3 4
                                 ((void *)0)
# 603 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1327), (getdefs_opt_strs+1346), (getdefs_opt_strs+1353),
                            
# 606 "opts.c" 3 4
                           ((void *)0)
# 606 "opts.c"
                               , 
# 606 "opts.c" 3 4
                                 ((void *)0) 
# 606 "opts.c"
                                      },

  { 10, 0x1008,
                            10, 0x1008,
                            (0x7fff +1),
                            0, 
# 611 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 611 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 613 "opts.c" 3 4
                             ((void *)0) 
# 613 "opts.c"
                                  },
                            
# 614 "opts.c" 3 4
                           ((void *)0)
# 614 "opts.c"
                               ,
                            
# 615 "opts.c" 3 4
                           ((void *)0)
# 615 "opts.c"
                               , 
# 615 "opts.c" 3 4
                                 ((void *)0)
# 615 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1360), (getdefs_opt_strs+1393), (getdefs_opt_strs+1407),
                            
# 618 "opts.c" 3 4
                           ((void *)0)
# 618 "opts.c"
                               , 
# 618 "opts.c" 3 4
                                 ((void *)0) 
# 618 "opts.c"
                                      },

  { 11, 0x1009,
                            11, 0x1009,
                            (0x7fff +1),
                            0, 
# 623 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 623 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 625 "opts.c" 3 4
                             ((void *)0) 
# 625 "opts.c"
                                  },
                            
# 626 "opts.c" 3 4
                           ((void *)0)
# 626 "opts.c"
                               ,
                            
# 627 "opts.c" 3 4
                           ((void *)0)
# 627 "opts.c"
                               , 
# 627 "opts.c" 3 4
                                 ((void *)0)
# 627 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1421), (getdefs_opt_strs+1454), (getdefs_opt_strs+1459),
                            
# 630 "opts.c" 3 4
                           ((void *)0)
# 630 "opts.c"
                               , 
# 630 "opts.c" 3 4
                                 ((void *)0) 
# 630 "opts.c"
                                      },

  { 12, 0x100A,
                            12, 0x100A,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12) | 0x0010000U), 0,
                            { 
# 637 "opts.c" 3 4
                             ((void *)0) 
# 637 "opts.c"
                                  },
                            
# 638 "opts.c" 3 4
                           ((void *)0)
# 638 "opts.c"
                               ,
                            
# 639 "opts.c" 3 4
                           ((void *)0)
# 639 "opts.c"
                               , 
# 639 "opts.c" 3 4
                                 ((void *)0)
# 639 "opts.c"
                                     ,
                            
# 640 "opts.c" 3 4
                           ((void *)0)
# 640 "opts.c"
                               ,
                            (getdefs_opt_strs+1464), (getdefs_opt_strs+1502), (getdefs_opt_strs+1510),
                            
# 642 "opts.c" 3 4
                           ((void *)0)
# 642 "opts.c"
                               , 
# 642 "opts.c" 3 4
                                 ((void *)0) 
# 642 "opts.c"
                                      },

  { 13, 0x100B,
                            13, 0x100B,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12) | 0x0010000U), 0,
                            { 
# 649 "opts.c" 3 4
                             ((void *)0) 
# 649 "opts.c"
                                  },
                            
# 650 "opts.c" 3 4
                           ((void *)0)
# 650 "opts.c"
                               ,
                            
# 651 "opts.c" 3 4
                           ((void *)0)
# 651 "opts.c"
                               , 
# 651 "opts.c" 3 4
                                 ((void *)0)
# 651 "opts.c"
                                     ,
                            
# 652 "opts.c" 3 4
                           ((void *)0)
# 652 "opts.c"
                               ,
                            (getdefs_opt_strs+1518), (getdefs_opt_strs+1558), (getdefs_opt_strs+1566),
                            
# 654 "opts.c" 3 4
                           ((void *)0)
# 654 "opts.c"
                               , 
# 654 "opts.c" 3 4
                                 ((void *)0) 
# 654 "opts.c"
                                      },

  { 0, 0,
                            0, 0,
                            (0x7fff +1),
                            0, 0, 0,
                            (0x0200000U | 0x0000100U), 0,
                            { 
# 661 "opts.c" 3 4
                             ((void *)0) 
# 661 "opts.c"
                                  },
                            
# 662 "opts.c" 3 4
                           ((void *)0)
# 662 "opts.c"
                               ,
                            
# 663 "opts.c" 3 4
                           ((void *)0)
# 663 "opts.c"
                               , 
# 663 "opts.c" 3 4
                                 ((void *)0)
# 663 "opts.c"
                                     ,
                            
# 664 "opts.c" 3 4
                           ((void *)0)
# 664 "opts.c"
                               ,
                            (getdefs_opt_strs+1574), 
# 665 "opts.c" 3 4
                                             ((void *)0)
# 665 "opts.c"
                                                 , 
# 665 "opts.c" 3 4
                                                   ((void *)0)
# 665 "opts.c"
                                                       ,
                            
# 666 "opts.c" 3 4
                           ((void *)0)
# 666 "opts.c"
                               , 
# 666 "opts.c" 3 4
                                 ((void *)0) 
# 666 "opts.c"
                                      },

  { 15, 0x100C,
                            15, 0x100C,
                            (0x7fff +1),
                            0, 
# 671 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 671 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 673 "opts.c" 3 4
                             ((void *)0) 
# 673 "opts.c"
                                  },
                            
# 674 "opts.c" 3 4
                           ((void *)0)
# 674 "opts.c"
                               ,
                            
# 675 "opts.c" 3 4
                           ((void *)0)
# 675 "opts.c"
                               , 
# 675 "opts.c" 3 4
                                 ((void *)0)
# 675 "opts.c"
                                     ,
                            optionStackArg,
                            (getdefs_opt_strs+1617), (getdefs_opt_strs+1647), (getdefs_opt_strs+1653),
                            
# 678 "opts.c" 3 4
                           ((void *)0)
# 678 "opts.c"
                               , 
# 678 "opts.c" 3 4
                                 ((void *)0) 
# 678 "opts.c"
                                      },

  { 0, 0,
                            0, 0,
                            (0x7fff +1),
                            0, 0, 0,
                            (0x0200000U | 0x0000100U), 0,
                            { 
# 685 "opts.c" 3 4
                             ((void *)0) 
# 685 "opts.c"
                                  },
                            
# 686 "opts.c" 3 4
                           ((void *)0)
# 686 "opts.c"
                               ,
                            
# 687 "opts.c" 3 4
                           ((void *)0)
# 687 "opts.c"
                               , 
# 687 "opts.c" 3 4
                                 ((void *)0)
# 687 "opts.c"
                                     ,
                            
# 688 "opts.c" 3 4
                           ((void *)0)
# 688 "opts.c"
                               ,
                            (getdefs_opt_strs+1659), 
# 689 "opts.c" 3 4
                                            ((void *)0)
# 689 "opts.c"
                                                , 
# 689 "opts.c" 3 4
                                                  ((void *)0)
# 689 "opts.c"
                                                      ,
                            
# 690 "opts.c" 3 4
                           ((void *)0)
# 690 "opts.c"
                               , 
# 690 "opts.c" 3 4
                                 ((void *)0) 
# 690 "opts.c"
                                      },

  { 17, 0x100D,
                            
# 693 "opts.c" 3 4
                           (0x7fff * 2 + 1)
# 693 "opts.c"
                                  , 
# 693 "opts.c" 3 4
                                    (0x7fff * 2 + 1)
# 693 "opts.c"
                                           ,
                            INDEX_OPT_AUTOGEN,
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 697 "opts.c" 3 4
                             ((void *)0) 
# 697 "opts.c"
                                  },
                            
# 698 "opts.c" 3 4
                           ((void *)0)
# 698 "opts.c"
                               ,
                            
# 699 "opts.c" 3 4
                           ((void *)0)
# 699 "opts.c"
                               , 
# 699 "opts.c" 3 4
                                 ((void *)0)
# 699 "opts.c"
                                     ,
                            
# 700 "opts.c" 3 4
                           ((void *)0)
# 700 "opts.c"
                               ,
                            (getdefs_opt_strs+1699), (getdefs_opt_strs+1719), (getdefs_opt_strs+1726),
                            
# 702 "opts.c" 3 4
                           ((void *)0)
# 702 "opts.c"
                               , 
# 702 "opts.c" 3 4
                                 ((void *)0) 
# 702 "opts.c"
                                      },

  { 18, 0x100E,
                            (0x7fff +1), 0,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000800U | ((OPARG_TYPE_STRING) << 12) | 0x0010000U), 0,
                            { 
# 709 "opts.c" 3 4
                             ((void *)0) 
# 709 "opts.c"
                                  },
                            
# 710 "opts.c" 3 4
                           ((void *)0)
# 710 "opts.c"
                               ,
                            
# 711 "opts.c" 3 4
                           ((void *)0)
# 711 "opts.c"
                               , 
# 711 "opts.c" 3 4
                                 ((void *)0)
# 711 "opts.c"
                                     ,
                            
# 712 "opts.c" 3 4
                           ((void *)0)
# 712 "opts.c"
                               ,
                            (getdefs_opt_strs+1733), (getdefs_opt_strs+1758), ((getdefs_opt_strs+1766) + 3),
                            (getdefs_opt_strs+1766), (getdefs_opt_strs+1182) },

  { 19, 0x100F,
                            19, 0x100F,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 721 "opts.c" 3 4
                             ((void *)0) 
# 721 "opts.c"
                                  },
                            
# 722 "opts.c" 3 4
                           ((void *)0)
# 722 "opts.c"
                               ,
                            
# 723 "opts.c" 3 4
                           ((void *)0)
# 723 "opts.c"
                               , 
# 723 "opts.c" 3 4
                                 ((void *)0)
# 723 "opts.c"
                                     ,
                            
# 724 "opts.c" 3 4
                           ((void *)0)
# 724 "opts.c"
                               ,
                            (getdefs_opt_strs+1777), (getdefs_opt_strs+1791), (getdefs_opt_strs+1800),
                            
# 726 "opts.c" 3 4
                           ((void *)0)
# 726 "opts.c"
                               , 
# 726 "opts.c" 3 4
                                 ((void *)0) 
# 726 "opts.c"
                                      },

  { 20, 0x1010,
                            20, 0x1010,
                            (0x7fff +1),
                            0, 
# 731 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 731 "opts.c"
                                     , 0,
                            (0x0000020U | 0x0000400U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 733 "opts.c" 3 4
                             ((void *)0) 
# 733 "opts.c"
                                  },
                            
# 734 "opts.c" 3 4
                           ((void *)0)
# 734 "opts.c"
                               ,
                            
# 735 "opts.c" 3 4
                           ((void *)0)
# 735 "opts.c"
                               , aAgargCantList,
                            optionStackArg,
                            (getdefs_opt_strs+1809), (getdefs_opt_strs+1826), (getdefs_opt_strs+1832),
                            
# 738 "opts.c" 3 4
                           ((void *)0)
# 738 "opts.c"
                               , 
# 738 "opts.c" 3 4
                                 ((void *)0) 
# 738 "opts.c"
                                      },

  { 21, 0x1011,
                            21, 0x1011,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0000020U | ((OPARG_TYPE_STRING) << 12)), 0,
                            { 
# 745 "opts.c" 3 4
                             ((void *)0) 
# 745 "opts.c"
                                  },
                            
# 746 "opts.c" 3 4
                           ((void *)0)
# 746 "opts.c"
                               ,
                            
# 747 "opts.c" 3 4
                           ((void *)0)
# 747 "opts.c"
                               , aBase_NameCantList,
                            
# 748 "opts.c" 3 4
                           ((void *)0)
# 748 "opts.c"
                               ,
                            (getdefs_opt_strs+1838), (getdefs_opt_strs+1867), (getdefs_opt_strs+1877),
                            
# 750 "opts.c" 3 4
                           ((void *)0)
# 750 "opts.c"
                               , 
# 750 "opts.c" 3 4
                                 ((void *)0) 
# 750 "opts.c"
                                      },

  { INDEX_OPT_VERSION, 0x1012,
                            (0x7fff +1), 0x1012,
                            (0x7fff +1),
                            0, 1, 0,
                            (((OPARG_TYPE_STATIC) << 12) | 0x0020000U | 0x0000100U), AOUSE_VERSION,
                            { (char const*)"copyright" },
                            
# 758 "opts.c" 3 4
                           ((void *)0)
# 758 "opts.c"
                               ,
                            
# 759 "opts.c" 3 4
                           ((void *)0)
# 759 "opts.c"
                               , 
# 759 "opts.c" 3 4
                                 ((void *)0)
# 759 "opts.c"
                                     ,
                            optionPrintVersion,
                            (getdefs_opt_strs+1991), 
# 761 "opts.c" 3 4
                                     ((void *)0)
# 761 "opts.c"
                                         , (getdefs_opt_strs+2027),
                            
# 762 "opts.c" 3 4
                           ((void *)0)
# 762 "opts.c"
                               , 
# 762 "opts.c" 3 4
                                 ((void *)0) 
# 762 "opts.c"
                                      },



  { INDEX_OPT_HELP, 0x1013,
                            (0x7fff +1), 0x1013,
                            (0x7fff +1),
                            0, 1, 0,
                            0x0020000U | 0x0000100U, AOUSE_HELP,
                            { 
# 771 "opts.c" 3 4
                             ((void *)0) 
# 771 "opts.c"
                                  },
                            
# 772 "opts.c" 3 4
                           ((void *)0)
# 772 "opts.c"
                               ,
                            
# 773 "opts.c" 3 4
                           ((void *)0)
# 773 "opts.c"
                               , 
# 773 "opts.c" 3 4
                                 ((void *)0)
# 773 "opts.c"
                                     ,
                            doUsageOpt,
                            (getdefs_opt_strs+1887), 
# 775 "opts.c" 3 4
                                      ((void *)0)
# 775 "opts.c"
                                          , (getdefs_opt_strs+1931),
                            
# 776 "opts.c" 3 4
                           ((void *)0)
# 776 "opts.c"
                               , 
# 776 "opts.c" 3 4
                                 ((void *)0) 
# 776 "opts.c"
                                      },

  { INDEX_OPT_MORE_HELP, 0x1014,
                            (0x7fff +1), 0x1014,
                            (0x7fff +1),
                            0, 1, 0,
                            (0x0020000U | 0x0000100U), AOUSE_MORE_HELP,
                            { 
# 783 "opts.c" 3 4
                             ((void *)0) 
# 783 "opts.c"
                                  },
                            
# 784 "opts.c" 3 4
                           ((void *)0)
# 784 "opts.c"
                               ,
                            
# 785 "opts.c" 3 4
                           ((void *)0)
# 785 "opts.c"
                               , 
# 785 "opts.c" 3 4
                                  ((void *)0)
# 785 "opts.c"
                                      ,
                            optionPagedUsage,
                            (getdefs_opt_strs+1936), 
# 787 "opts.c" 3 4
                                           ((void *)0)
# 787 "opts.c"
                                               , (getdefs_opt_strs+1981),
                            
# 788 "opts.c" 3 4
                           ((void *)0)
# 788 "opts.c"
                               , 
# 788 "opts.c" 3 4
                                 ((void *)0) 
# 788 "opts.c"
                                      },

  { INDEX_OPT_SAVE_OPTS, 0x1015,
                            (0x7fff +1), 0x1015,
                            (0x7fff +1),
                            0, 1, 0,
                            ((OPARG_TYPE_STRING) << 12)
                       | 0x0010000U | 0x0000100U, AOUSE_SAVE_OPTS,
                            { 
# 796 "opts.c" 3 4
                             ((void *)0) 
# 796 "opts.c"
                                  },
                            
# 797 "opts.c" 3 4
                           ((void *)0)
# 797 "opts.c"
                               ,
                            
# 798 "opts.c" 3 4
                           ((void *)0)
# 798 "opts.c"
                               , 
# 798 "opts.c" 3 4
                                  ((void *)0)
# 798 "opts.c"
                                      ,
                            
# 799 "opts.c" 3 4
                           ((void *)0)
# 799 "opts.c"
                               ,
                            (getdefs_opt_strs+2035), 
# 800 "opts.c" 3 4
                                           ((void *)0)
# 800 "opts.c"
                                               , (getdefs_opt_strs+2074),
                            
# 801 "opts.c" 3 4
                           ((void *)0)
# 801 "opts.c"
                               , 
# 801 "opts.c" 3 4
                                 ((void *)0) 
# 801 "opts.c"
                                      },

  { INDEX_OPT_LOAD_OPTS, 0x1016,
                            (0x7fff +1), 0x1016,
                            (0x7fff +1),
                            0, 
# 806 "opts.c" 3 4
                              (0x7fff * 2 + 1)
# 806 "opts.c"
                                     , 0,
                            ((OPARG_TYPE_STRING) << 12)
     | 0x0040000U, AOUSE_LOAD_OPTS,
                            { 
# 809 "opts.c" 3 4
                             ((void *)0) 
# 809 "opts.c"
                                  },
                            
# 810 "opts.c" 3 4
                           ((void *)0)
# 810 "opts.c"
                               ,
                            
# 811 "opts.c" 3 4
                           ((void *)0)
# 811 "opts.c"
                               , 
# 811 "opts.c" 3 4
                                 ((void *)0)
# 811 "opts.c"
                                     ,
                            optionLoadOpt,
                            (getdefs_opt_strs+2084), (getdefs_opt_strs+2116), ((getdefs_opt_strs+2126) + 3),
                            (getdefs_opt_strs+2126), (getdefs_opt_strs+1182) }
};
# 826 "opts.c"
static char const * const apzHomeList[2] = {
    getdefs_opt_strs+2262,
    
# 828 "opts.c" 3 4
   ((void *)0) 
# 828 "opts.c"
        };
# 857 "opts.c"
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
    int ex_code;
    ex_code = GETDEFS_EXIT_SUCCESS;
    optionUsage(&getdefsOptions, ex_code);

    exit(GETDEFS_EXIT_FAILURE);
    (void)opts;
    (void)od;
}
# 878 "opts.c"

# 878 "opts.c" 3 4
_Noreturn 
# 878 "opts.c"
        extern void
vdie(int exit_code, char const * fmt, va_list ap)
{
    char const * die_leader = "getdefs fatal error:\n";
    fputs(die_leader, 
# 882 "opts.c" 3 4
                     stderr
# 882 "opts.c"
                           );
    vfprintf(
# 883 "opts.c" 3 4
            stderr
# 883 "opts.c"
                  , fmt, ap);
    fflush(
# 884 "opts.c" 3 4
          stderr
# 884 "opts.c"
                );
    exit(exit_code);
}
# 896 "opts.c"

# 896 "opts.c" 3 4
_Noreturn 
# 896 "opts.c"
        extern void
die(int exit_code, char const * fmt, ...)
{
    va_list ap;
    
# 900 "opts.c" 3 4
   __builtin_va_start(
# 900 "opts.c"
   ap
# 900 "opts.c" 3 4
   ,
# 900 "opts.c"
   fmt
# 900 "opts.c" 3 4
   )
# 900 "opts.c"
                    ;
    vdie(exit_code, fmt, ap);
}
# 912 "opts.c"

# 912 "opts.c" 3 4
_Noreturn 
# 912 "opts.c"
        extern void
fserr(int exit_code, char const * op, char const * fname)
{
    char const * fserr_fmt = "fserr %d (%s) performing '%s' on %s\n";
    die(exit_code, fserr_fmt, 
# 916 "opts.c" 3 4
                             (*__errno_location ())
# 916 "opts.c"
                                  , strerror(
# 916 "opts.c" 3 4
                                             (*__errno_location ())
# 916 "opts.c"
                                                  ), op, fname);
}
# 953 "opts.c"
tOptions getdefsOptions = {
    172034,
    0, 
# 955 "opts.c" 3 4
      ((void *)0)
# 955 "opts.c"
          ,
    ( 0x000000U
    + 0x000004U
    + 0x000010U
    + 0x000080U
    + 0x000200U ),
    0, 
# 961 "opts.c" 3 4
      ((void *)0)
# 961 "opts.c"
          ,
    
# 962 "opts.c" 3 4
   ((void *)0)
# 962 "opts.c"
       , 
# 962 "opts.c" 3 4
                 ((void *)0)
# 962 "opts.c"
                     , (getdefs_opt_strs+2139),
    (getdefs_opt_strs+2272), (getdefs_opt_strs+0), (getdefs_opt_strs+268),
    (getdefs_opt_strs+2614), apzHomeList, (getdefs_opt_strs+2147),
    (getdefs_opt_strs+2319), (getdefs_opt_strs+2467), optDesc,
    (getdefs_opt_strs+2283),
    
# 967 "opts.c" 3 4
   ((void *)0)
# 967 "opts.c"
       , 
# 967 "opts.c" 3 4
         ((void *)0)
# 967 "opts.c"
             ,
    optionUsage,
    
# 969 "opts.c" 3 4
   ((void *)0)
# 969 "opts.c"
                           ,



    { INDEX_OPT_MORE_HELP,
      INDEX_OPT_SAVE_OPTS,
      (0x7fff +1),
      15
    },
    27 , 22 ,
    (
# 979 "opts.c" 3 4
   ((void *)0)
# 979 "opts.c"
   ), (
# 979 "opts.c" 3 4
                       ((void *)0)
# 979 "opts.c"
                       ),
    
# 980 "opts.c" 3 4
   ((void *)0)
# 980 "opts.c"
       , 
# 980 "opts.c" 3 4
         ((void *)0)
# 980 "opts.c"
             ,
    "/u/bkorb/tools/autogen-inst/share/autogen", 
# 981 "opts.c" 3 4
               ((void *)0)

# 982 "opts.c"
};
# 10 "gd.c" 2
# 1 "getdefs.h" 1
# 37 "getdefs.h"
# 1 "/usr/include/regex.h" 1 3 4
# 23 "/usr/include/regex.h" 3 4
# 1 "../autoopts/sys/types.h" 1 3 4
# 20 "../autoopts/sys/types.h" 3 4
       
# 21 "../autoopts/sys/types.h" 3
# 24 "/usr/include/regex.h" 2 3 4
# 34 "/usr/include/regex.h" 3 4

# 34 "/usr/include/regex.h" 3 4
typedef long int s_reg_t;
typedef unsigned long int active_reg_t;






typedef unsigned long int reg_syntax_t;
# 181 "/usr/include/regex.h" 3 4
extern reg_syntax_t re_syntax_options;
# 308 "/usr/include/regex.h" 3 4
typedef enum
{

  REG_ENOSYS = -1,


  REG_NOERROR = 0,
  REG_NOMATCH,



  REG_BADPAT,
  REG_ECOLLATE,
  REG_ECTYPE,
  REG_EESCAPE,
  REG_ESUBREG,
  REG_EBRACK,
  REG_EPAREN,
  REG_EBRACE,
  REG_BADBR,
  REG_ERANGE,
  REG_ESPACE,
  REG_BADRPT,


  REG_EEND,
  REG_ESIZE,
  REG_ERPAREN
} reg_errcode_t;
# 357 "/usr/include/regex.h" 3 4
struct re_pattern_buffer
{



  unsigned char *buffer;


  unsigned long int allocated;


  unsigned long int used;


  reg_syntax_t syntax;




  char *fastmap;





  unsigned char * translate;


  size_t re_nsub;





  unsigned can_be_null : 1;
# 402 "/usr/include/regex.h" 3 4
  unsigned regs_allocated : 2;



  unsigned fastmap_accurate : 1;



  unsigned no_sub : 1;



  unsigned not_bol : 1;


  unsigned not_eol : 1;


  unsigned newline_anchor : 1;
};

typedef struct re_pattern_buffer regex_t;


typedef int regoff_t;





struct re_registers
{
  unsigned num_regs;
  regoff_t *start;
  regoff_t *end;
};
# 452 "/usr/include/regex.h" 3 4
typedef struct
{
  regoff_t rm_so;
  regoff_t rm_eo;
} regmatch_t;






extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
# 473 "/usr/include/regex.h" 3 4
extern const char *re_compile_pattern (const char *__pattern, size_t __length,
           struct re_pattern_buffer *__buffer);





extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);







extern int re_search (struct re_pattern_buffer *__buffer, const char *__string,
        int __length, int __start, int __range,
        struct re_registers *__regs);




extern int re_search_2 (struct re_pattern_buffer *__buffer,
   const char *__string1, int __length1,
   const char *__string2, int __length2, int __start,
   int __range, struct re_registers *__regs, int __stop);




extern int re_match (struct re_pattern_buffer *__buffer, const char *__string,
       int __length, int __start, struct re_registers *__regs);



extern int re_match_2 (struct re_pattern_buffer *__buffer,
         const char *__string1, int __length1,
         const char *__string2, int __length2, int __start,
         struct re_registers *__regs, int __stop);
# 526 "/usr/include/regex.h" 3 4
extern void re_set_registers (struct re_pattern_buffer *__buffer,
         struct re_registers *__regs,
         unsigned int __num_regs,
         regoff_t *__starts, regoff_t *__ends);
# 562 "/usr/include/regex.h" 3 4
extern int regcomp (regex_t *__restrict __preg,
      const char *__restrict __pattern,
      int __cflags);

extern int regexec (const regex_t *__restrict __preg,
      const char *__restrict __string, size_t __nmatch,
      regmatch_t __pmatch[__restrict],
      int __eflags);

extern size_t regerror (int __errcode, const regex_t *__restrict __preg,
   char *__restrict __errbuf, size_t __errbuf_size);

extern void regfree (regex_t *__preg);
# 38 "getdefs.h" 2
# 1 "../autoopts/ag-char-map.h" 1
# 39 "getdefs.h" 2
# 49 "getdefs.h"

# 49 "getdefs.h"
char zUserNameCh[ 256 ] = { '\0' };




char * pzIndexText = 
# 54 "getdefs.h" 3 4
                      ((void *)0)
# 54 "getdefs.h"
                          ;
char * pzEndIndex = 
# 55 "getdefs.h" 3 4
                      ((void *)0)
# 55 "getdefs.h"
                          ;
char * pzIndexEOF = 
# 56 "getdefs.h" 3 4
                      ((void *)0)
# 56 "getdefs.h"
                          ;
size_t indexAlloc = 0;




char const * pzAutogen = "autogen";





char const zGlobal[] = "\n/* GLOBALDEFS */\n";
char const zLineId[] = "\n#line %d \"%s\"\n";
char const zMallocErr[] = "Error:  could not allocate %d bytes for %s\n";
char const zAttribRe[] = "\n[^*\n]*\\*[ \t]*([a-z][a-z0-9_-]*):";
char const zNameTag[] = " = {\n    name    = '";
char const zMemberLine[] = "    member  = ";
char const zNoData[] = "error no data for definition in file %s line %d\n";
char const zAgDef[] = "autogen definitions %s;\n";
char const zDne[] = "/*  -*- buffer-read-only: t -*- vi: set ro:\n *\n" " *\n *  DO NOT EDIT THIS FILE   (%s)\n *\n" " *  It has been extracted by getdefs from the following files:\n" " *\n"



                    ;
# 92 "getdefs.h"
regex_t define_re;
regex_t attrib_re;





FILE * evtFp = (FILE *)
# 99 "getdefs.h" 3 4
                            ((void *)0)
# 99 "getdefs.h"
                                ;





time_t modtime = 0;





char ** papzBlocks = (char **)
# 111 "getdefs.h" 3 4
                             ((void *)0)
# 111 "getdefs.h"
                                 ;
size_t blkUseCt = 0;
size_t blkAllocCt = 0;
pid_t agPid = -1;
# 11 "gd.c" 2
# 1 "proto.h" 1
# 13 "proto.h"
static void
compress_def(char * pz);

static char *
list_attrib(char * pzText, char * pzOut);

static char *
emit_quote(char ** ppzText, char * pzOut);

static void
next_def_entry(char ** txt_pp, char const ** def_pp);

static void
emit_attribute(char const ** def_pp, char ** out_pp);

static char *
emit_subblock(char const * pzDefList, char * pzText, char * pzOut);

static char *
subblock_str(char ** ppzText, uint_t sepChar, char * pzOut);




static char *
loadFile(char const * pzFname);
# 12 "gd.c" 2
# 1 "gdemit.c" 1
# 45 "gdemit.c"
static void
compress_def(char * pz)
{
    char * pzStrt = pz;
    char * pzDest = pz;
    char * pzSrc = pz;
    int nlCt = 0;





    nlCt = 0;

 skip_leading_space:
    while (
# 60 "gdemit.c" 3 4
          ((*__ctype_b_loc ())[(int) ((
# 60 "gdemit.c"
          *pzSrc
# 60 "gdemit.c" 3 4
          ))] & (unsigned short int) _ISspace)
# 60 "gdemit.c"
                           ) {
        if (*(pzSrc++) == '\n') {
            nlCt++;
            for (;;) {
                switch (*(pzSrc++)) {
                case '*':
                    while (*pzSrc == '*') pzSrc++;
                    goto skip_leading_space;

                case '\0':
                    *pzStrt = '\0';
                    return;

                case '\n':
                    nlCt++;
                }
            }
        }
    }

    if (*pzSrc == '\0') {
        *pzStrt = '\0';
        return;
    }




    for (;;) {




        if (nlCt > 0) {
            *pzDest++ = '\n';
            nlCt = 0;
        }




        for (;;) {




            switch (*pzDest++ = *pzSrc++) {
            case '\n':
                if (*pzSrc != '\0')
                    goto lineDone;


            case '\0':
                pzDest--;
                goto compressDone;

            default:
                ;
            }
        } lineDone:;




        if ((pzDest[-2] == ' ') || (pzDest[-2] == '\t')) {
            do {
                pzDest--;
            } while ((pzDest[-2] == ' ') || (pzDest[-2] == '\t'));
            pzDest[-1] = '\n';
        }




    foundNewline:
        while (*pzSrc != '*') {
            if (*pzSrc == '\0')
                goto compressDone;
            if (*pzSrc == '\n')
                nlCt++;
            pzSrc++;
        }




        while (*pzSrc == '*') pzSrc++;
        while (
# 147 "gdemit.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 147 "gdemit.c"
              *pzSrc
# 147 "gdemit.c" 3 4
              ))] & (unsigned short int) _ISspace)
# 147 "gdemit.c"
                               ) {




            if (*pzSrc == '\n')
                goto foundNewline;
            pzSrc++;
        }
    } compressDone:;




    while ((pzDest > pzStrt) && 
# 161 "gdemit.c" 3 4
                               ((*__ctype_b_loc ())[(int) ((
# 161 "gdemit.c"
                               pzDest[-1]
# 161 "gdemit.c" 3 4
                               ))] & (unsigned short int) _ISspace)
# 161 "gdemit.c"
                                                    ) pzDest--;
    *pzDest = '\0';
}





static char *
emitDefinition(char * pzDef, char * pzOut)
{
    char sep_char;
    char zEntryName[ 256 ];




    {
        char * p = zEntryName;
        *pzOut++ = ' '; *pzOut++ = ' '; *pzOut++ = ' '; *pzOut++ = ' ';

        while ((zUserNameCh[(unsigned char)(*pzDef)] & 2))
            *p++ = *pzOut++ = *pzDef++;

        if (p >= zEntryName + sizeof(zEntryName))
            die(GETDEFS_EXIT_USAGE_ERROR, "names are constrained to %d bytes\n",
                256);

        *p = '\0';
    }






    compress_def(++pzDef);

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->apzArgs);

        do {
            char const * pz = *ppz++;
            if (strcmp(pz, zEntryName) == 0)
                return emit_subblock(pz, pzDef, pzOut);
        } while (--ct > 0);
    }

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_LISTATTR]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_LISTATTR]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_LISTATTR]).optCookie))->apzArgs);

        do {
            if (strcmp(*ppz++, zEntryName) == 0)
                return list_attrib(pzDef, pzOut);
        } while (--ct > 0);
    }

    if (
# 220 "gdemit.c" 3 4
       ((*__ctype_b_loc ())[(int) ((
# 220 "gdemit.c"
       *pzDef
# 220 "gdemit.c" 3 4
       ))] & (unsigned short int) _ISspace)
# 220 "gdemit.c"
                      )
         sep_char = *pzDef++;
    else sep_char = ' ';

    switch (*pzDef) {
    case '\0':
        *pzOut++ = ';'; *pzOut++ = '\n';
        break;

    case '"':
    case '\'':
    case '{':





        pzOut += sprintf(pzOut, " =%c%s;\n", sep_char, pzDef);
        break;

    default:
        *pzOut++ = ' '; *pzOut++ = '='; *pzOut++ = sep_char;
        *pzOut++ = '\'';

        for (;;) {
            switch (*pzOut++ = *pzDef++) {
            case '\\':
                *pzOut++ = '\\';
                break;

            case '\'':
                pzOut[-1] = '\\';
                *pzOut++ = '\'';
                break;

            case '\0':
                goto unquotedDone;
            }
        } unquotedDone:;
        pzOut[-1] = '\''; *pzOut++ = ';'; *pzOut++ = '\n';
        break;
    }
    return pzOut;
}





static char *
list_attrib(char * pzText, char * pzOut)
{
    static char const zStart[] = " = ";

    uint_t sepChar = ',';
    int FirstAttr = 1;

    strcpy(pzOut, zStart);
    pzOut += sizeof(zStart) - 1;






    if (
# 285 "gdemit.c" 3 4
       ((*__ctype_b_loc ())[(int) ((
# 285 "gdemit.c"
       *pzText
# 285 "gdemit.c" 3 4
       ))] & (unsigned short int) _ISpunct) 
# 285 "gdemit.c"
                        && (*pzText != '"') && (*pzText != '\''))
        sepChar = (uint_t)*(pzText++);
    while (
# 287 "gdemit.c" 3 4
          ((*__ctype_b_loc ())[(int) ((
# 287 "gdemit.c"
          *pzText
# 287 "gdemit.c" 3 4
          ))] & (unsigned short int) _ISspace)
# 287 "gdemit.c"
                          ) pzText++;




    while (*pzText != '\0') {

        if (FirstAttr)
            FirstAttr = 0;
        else
            *(pzOut++) = ',';





        if ((uint_t)*pzText == sepChar) {
            *(pzOut++) = '\''; *(pzOut++) = '\'';
            pzText++;
            continue;
        }





        pzOut = subblock_str(&pzText, sepChar, pzOut);
    }




    if (FirstAttr)
        pzOut -= sizeof(zStart) - 1;

    *(pzOut++) = ';';
    *(pzOut++) = '\n';

    return pzOut;
}






static char *
emit_quote(char ** ppzText, char * pzOut)
{
    char * pzText = *ppzText;
    char svch = (*pzOut++ = *pzText++);

    for (;;) {
        switch (*pzOut++ = *pzText++) {

        case '\\':
            if ((*pzOut++ = *pzText++) != '\0')
                break;


        case '\0':
            pzText--;
            pzOut[-1] = svch;
            svch = '\0';


        case '"':
        case '\'':
            if (pzOut[-1] == svch)
                goto quoteDone;

            break;
        }
    }

quoteDone:
    *ppzText = pzText;
    return pzOut;
}

static void
next_def_entry(char ** txt_pp, char const ** def_pp)
{
    char const * p = *def_pp;
    (*txt_pp)++;
    for (;;) {
        switch (*++p) {
        case ' ': p++;
        case '\0':
            *def_pp = p;
            return;
        }
    }
}

static void
emit_attribute(char const ** def_pp, char ** out_pp)
{
    static char const pfx[] = "\n        ";

    char * out = *out_pp;
    char const * def = *def_pp;

    memcpy(out, pfx, sizeof(pfx) - 1);
    out += sizeof(pfx) - 1;

    for (;;) {
        *out++ = *def++;
        switch (*def) {
        case ' ': def++;
        case '\0':
            goto leave_emit_attribute;
        }
    }

 leave_emit_attribute:

    *out++ = ';';
    *out_pp = out;
    *def_pp = def;
}




static char *
emit_subblock(char const * pzDefList, char * pzText, char * pzOut)
{
    static char const zStart[] = " = {";
    static char const zEnd[] = "\n    };\n";

    uint_t sepChar = ',';
    int FirstAttr = 1;




    pzDefList += strlen(pzDefList) + 1;
    strcpy(pzOut, zStart);
    pzOut += sizeof(zStart) - 1;






    if (
# 433 "gdemit.c" 3 4
       ((*__ctype_b_loc ())[(int) ((
# 433 "gdemit.c"
       *pzText
# 433 "gdemit.c" 3 4
       ))] & (unsigned short int) _ISpunct) 
# 433 "gdemit.c"
                        && (*pzText != '"') && (*pzText != '\''))
        sepChar = (uint_t)*(pzText++);





    do {




        if ((uint_t)*pzText == sepChar) {
            next_def_entry(&pzText, &pzDefList);
            continue;
        }




        while (
# 453 "gdemit.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 453 "gdemit.c"
              *pzText
# 453 "gdemit.c" 3 4
              ))] & (unsigned short int) _ISspace)
# 453 "gdemit.c"
                              ) pzText++;
        if (*pzText == '\0') {



            if (FirstAttr)
                emit_attribute(&pzDefList, &pzOut);

            break;
        }




        emit_attribute(&pzDefList, &pzOut);
        FirstAttr = 0;





        if ((uint_t)*pzText == sepChar) {
            pzText++;
            continue;
        }




        pzOut[-1] = ' '; *pzOut++ = '='; *pzOut++ = ' ';
        pzOut = subblock_str(&pzText, sepChar, pzOut);
        *pzOut++ = ';';

    } while (
# 486 "gdemit.c" 3 4
            ((*__ctype_b_loc ())[(int) ((
# 486 "gdemit.c"
            *pzDefList
# 486 "gdemit.c" 3 4
            ))] & (unsigned short int) _ISalpha)
# 486 "gdemit.c"
                               );

    memcpy(pzOut, zEnd, sizeof(zEnd));
    return pzOut + sizeof(zEnd) - 1;
}






static char *
subblock_str(char ** ppzText, uint_t sepChar, char * pzOut)
{
    char * pzText = *ppzText;
    char * pcComma;
    char * pcEnd;




    while (
# 507 "gdemit.c" 3 4
          ((*__ctype_b_loc ())[(int) ((
# 507 "gdemit.c"
          *pzText
# 507 "gdemit.c" 3 4
          ))] & (unsigned short int) _ISspace)
# 507 "gdemit.c"
                          ) pzText++;





    if ((*pzText == '"') || (*pzText == '\'')) {
        pzOut = emit_quote(&pzText, pzOut);





        while (
# 520 "gdemit.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 520 "gdemit.c"
              *pzText
# 520 "gdemit.c" 3 4
              ))] & (unsigned short int) _ISspace)
# 520 "gdemit.c"
                              ) pzText++;
        if ((uint_t)*pzText == sepChar) {
            pzText++;
            while (
# 523 "gdemit.c" 3 4
                  ((*__ctype_b_loc ())[(int) ((
# 523 "gdemit.c"
                  *pzText
# 523 "gdemit.c" 3 4
                  ))] & (unsigned short int) _ISspace)
# 523 "gdemit.c"
                                  ) pzText++;
        }
        *ppzText = pzText;
        return pzOut;
    }
# 536 "gdemit.c"
    pcComma = strchr(pzText, (int)sepChar);
    if (pcComma == (char *)
# 537 "gdemit.c" 3 4
                          ((void *)0)
# 537 "gdemit.c"
                              ) {
        pcEnd = pzText + strlen(pzText);
        pcComma = pcEnd-1;
    } else {
        pcEnd = pcComma;
    }




    while ((pcEnd > pzText) && 
# 547 "gdemit.c" 3 4
                              ((*__ctype_b_loc ())[(int) ((
# 547 "gdemit.c"
                              pcEnd[-1]
# 547 "gdemit.c" 3 4
                              ))] & (unsigned short int) _ISspace)
# 547 "gdemit.c"
                                                ) pcEnd--;




    *pzOut++ = '\'';
    {
        char svch = *pcEnd;
        *pcEnd = '\0';
        for (;;) {
            char ch = *pzText++;
            switch (ch) {
            case '\'':
                *pzOut++ = '\\';

            default:
                *pzOut++ = ch;
                break;
            case '\0':
                goto copyDone;
            }
        } copyDone: ;

        pzText = pcComma+1;
        *pcEnd = svch;
    }

    *pzOut++ = '\'';
    while (
# 575 "gdemit.c" 3 4
          ((*__ctype_b_loc ())[(int) ((
# 575 "gdemit.c"
          *pzText
# 575 "gdemit.c" 3 4
          ))] & (unsigned short int) _ISspace)
# 575 "gdemit.c"
                          ) pzText++;
    *ppzText = pzText;
    return pzOut;
}
# 13 "gd.c" 2
# 1 "gdinit.c" 1
# 29 "gdinit.c"
static char const zNoList[] = "ERROR:  block attr must have name list:\n\t%s\n";




static char *
compressOptionText(char * pzS, char * pzE)
{
    char * pzR = pzS;
    char * pzD = pzS;

    for (;;) {
        char ch;

        if (pzS >= pzE)
            break;

        ch = (*(pzD++) = *(pzS++));




        if (ch == '\n') {
            while (*pzS != '*') {
                pzS++;
                if (pzS >= pzE)
                    goto compressDone;
            }
        }
    } compressDone:;

    {
        size_t len = (size_t)(pzD - pzR);
        pzD = malloc(len + 1);
        if (pzD == 
# 63 "gdinit.c" 3 4
                  ((void *)0)
# 63 "gdinit.c"
                      )
            nomem_err(len + 1, "new option string");

        memcpy(pzD, pzR, len);
        pzD[ len ] = '\0';
    }




    while (pzS < pzE) *(pzS++) = ' ';
    return pzD;
}





static char *
fixupSubblockString(char const * pzSrc)
{
    char * pzString;
    char * pzDest;
    char * pzCopy;

    pzString = strdup(pzSrc);




    {
        char * p = strchr(pzString, '=');
        if (p == 
# 95 "gdinit.c" 3 4
                ((void *)0)
# 95 "gdinit.c"
                    )
            die(GETDEFS_EXIT_INVALID_INPUT, zNoList, pzString);




        pzDest = p++;
        while ((pzDest > pzString) && is_ag_char_map_char((char)(pzDest[-1]), 0x00000400)) pzDest--;
        *(pzDest++) = '\0';




        while (is_ag_char_map_char((char)(*p), 0x00000C01)) p++;
        if (*p == '\0')
            die(GETDEFS_EXIT_INVALID_INPUT, zNoList, pzString);

        pzCopy = p;
    }

    for (;;) {



        if (! is_ag_char_map_char((char)(*pzCopy), 0x00180000)) {
            fprintf(
# 120 "gdinit.c" 3 4
                   stderr
# 120 "gdinit.c"
                         , "ERROR:  attribute names must start "
                    "with an alphabetic character:\n\t%s\n",
                    pzString);
            (*getdefsOptions.pUsageProc)(&getdefsOptions, 
# 123 "gdinit.c" 3 4
           1
# 123 "gdinit.c"
           );
        }




        while (is_ag_char_map_char((char)(*pzCopy), 0x003B0040))
            *pzDest++ = *pzCopy++;





        while (is_ag_char_map_char((char)(*pzCopy), 0x00000400)) pzCopy++;
        if (*pzCopy == ',')
            pzCopy++;

        while (is_ag_char_map_char((char)(*pzCopy), 0x00000C01)) pzCopy++;
        if (*pzCopy == '\0')
            break;



        *pzDest++ = ' ';
    }

    *pzDest = '\0';

    return pzString;
}
# 167 "gdinit.c"
static void
loadStdin(void)
{
    char z[ 4096 ];
    int ct = 0;
    char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);

    if (isatty(
# 174 "gdinit.c" 3 4
              0
# 174 "gdinit.c"
                          )) {
        fputs("getdefs error:  no inputs were specified and stdin is a tty\n",
              
# 176 "gdinit.c" 3 4
             stderr
# 176 "gdinit.c"
                   );
        (*getdefsOptions.pUsageProc)(&getdefsOptions, 
# 177 "gdinit.c" 3 4
       1
# 177 "gdinit.c"
       );
    }

    while (fgets(z, (int)sizeof(z), 
# 180 "gdinit.c" 3 4
                                   stdin
# 180 "gdinit.c"
                                        ) != 
# 180 "gdinit.c" 3 4
                                             ((void *)0)
# 180 "gdinit.c"
                                                 ) {
        char * pz = z + strlen(z);

        if (pz[-1] != '\n') {
            static char const zErr[] =
                "getdefs error: input line not newline terminated\n";
            fputs(zErr, 
# 186 "gdinit.c" 3 4
                       stderr
# 186 "gdinit.c"
                             );
            exit(
# 187 "gdinit.c" 3 4
                1
# 187 "gdinit.c"
                            );
        }

        while ((pz > z) && 
# 190 "gdinit.c" 3 4
                          ((*__ctype_b_loc ())[(int) ((
# 190 "gdinit.c"
                          pz[-1]
# 190 "gdinit.c" 3 4
                          ))] & (unsigned short int) _ISspace)
# 190 "gdinit.c"
                                         ) pz--;
        *pz = '\0';
        pz = z;
        while (
# 193 "gdinit.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 193 "gdinit.c"
              *pz
# 193 "gdinit.c" 3 4
              ))] & (unsigned short int) _ISspace)
# 193 "gdinit.c"
                          ) pz++;
        if ((*pz == '\0') || (*pz == '#')) continue;
        if (access(pz, 
# 195 "gdinit.c" 3 4
                      4
# 195 "gdinit.c"
                          ) != 0) continue;

        if (ct++ == 0)
            *ppz = strdup(z);
        else
            do { (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optActualIndex = 15; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optActualValue = 0x100C; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).fOptState &= 0xFFFFF00U; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).fOptState |= 0x0000001U; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optArg.argString = (strdup(z)); (*((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).pOptProc))(&getdefsOptions, getdefsOptions.pOptDesc + 15);; } while (
# 200 "gdinit.c" 3 4
           0
# 200 "gdinit.c"
           );
    }
}
# 212 "gdinit.c"
static void
processEmbeddedOptions(char * pzText)
{
    static char const zStStr[] = "/*=--";
    static char const zEndSt[] = "=*/";

    for (;;) {
        char * pzStart = strstr(pzText, zStStr);
        char * pzEnd;
        int sblct = 0;

        if (pzStart == 
# 223 "gdinit.c" 3 4
                      ((void *)0)
# 223 "gdinit.c"
                          )
            return;

        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]))->fOptState & 0x000000FU) == 0)))
            sblct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->useCt);

        pzEnd = strstr(pzStart, zEndSt);
        if (pzEnd == 
# 230 "gdinit.c" 3 4
                    ((void *)0)
# 230 "gdinit.c"
                        )
            return;

        pzStart = compressOptionText(pzStart + sizeof(zStStr)-1, pzEnd);

        optionLoadLine(&getdefsOptions, pzStart);

        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]))->fOptState & 0x000000FU) == 0)) && (sblct != (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->useCt))) {
            char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->apzArgs);
            ppz[ sblct ] = fixupSubblockString(ppz[sblct]);
        }
        pzText = pzEnd + sizeof(zEndSt);
    }
}




static void
set_define_re(void)
{
    static char const default_pat[] =
        "/\\*=(\\*|"
        "([a-z][a-z0-9_]*(\\[[0-9]+\\]){0,1}|\\*)[ \t]+[a-z])";
    static char const pat_wrapper[] = "/\\*=(%s)";

    char const * def_pat;
    
# 257 "gdinit.c" 3 4
   _Bool 
# 257 "gdinit.c"
             free_pat = 
# 257 "gdinit.c" 3 4
                        0
# 257 "gdinit.c"
                             ;





    if ((! (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]))->fOptState & 0x000000FU) == 0))) || (*((getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]).optArg.argString) == '\0')) {
        def_pat = default_pat;

    } else if (strncmp(((getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]).optArg.argString), default_pat, 4) == 0) {
        def_pat = ((getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]).optArg.argString);

    } else {
        char const * pz = ((getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]).optArg.argString);
        size_t len = strlen((char *)pz) + 16;
        char * bf = malloc(len);

        if (bf == 
# 274 "gdinit.c" 3 4
                 ((void *)0)
# 274 "gdinit.c"
                     )
            nomem_err(len, "definition pattern");





        snprintf(bf, len, pat_wrapper, pz);
        def_pat = bf;
        free_pat = 
# 283 "gdinit.c" 3 4
                  1
# 283 "gdinit.c"
                      ;
    }





    {
        char zRER[256];
        static char const regex_err[] =
            "Regex error %d (%s):  Cannot compile reg expr:\n\t%s\n";

        int rerr = regcomp(&define_re, def_pat, 
# 295 "gdinit.c" 3 4
                                               1 
# 295 "gdinit.c"
                                                            | 
# 295 "gdinit.c" 3 4
                                                              (1 << 1)
# 295 "gdinit.c"
                                                                       );
        if (rerr != 0) {
            regerror(rerr, &define_re, zRER, sizeof(zRER));
            die(GETDEFS_EXIT_INVALID_INPUT, regex_err, rerr, zRER, def_pat);
        }

        if (free_pat)
            free(((void *)(uintptr_t)(def_pat)));

        rerr = regcomp(&attrib_re, zAttribRe, 
# 304 "gdinit.c" 3 4
                                             1 
# 304 "gdinit.c"
                                                          | 
# 304 "gdinit.c" 3 4
                                                            (1 << 1)
# 304 "gdinit.c"
                                                                     );
        if (rerr != 0) {
            regerror(rerr, &attrib_re, zRER, sizeof(zRER));
            die(GETDEFS_EXIT_INVALID_INPUT, regex_err, rerr, zRER, zAttribRe);
        }
    }
}






static void
set_modtime(void)
{
    int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->useCt);
    char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);
    struct stat stb;

    if ((ct == 1) && (strcmp(*ppz, "-") == 0)) {



        loadStdin();
        ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->useCt);
        ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);
    }

    do {
        if (stat(*ppz++, &stb) != 0)
            break;

        if (! 
# 337 "gdinit.c" 3 4
             ((((
# 337 "gdinit.c"
             stb.st_mode
# 337 "gdinit.c" 3 4
             )) & 0170000) == (0100000))
# 337 "gdinit.c"
                                 ) {
            
# 338 "gdinit.c" 3 4
           (*__errno_location ()) 
# 338 "gdinit.c"
                 = 
# 338 "gdinit.c" 3 4
                   22
# 338 "gdinit.c"
                         ;
            break;
        }

        if (++(stb.
# 342 "gdinit.c" 3 4
                  st_mtim.tv_sec
# 342 "gdinit.c"
                          ) > modtime)
            modtime = stb.
# 343 "gdinit.c" 3 4
                         st_mtim.tv_sec
# 343 "gdinit.c"
                                 ;
    } while (--ct > 0);

    if (ct > 0)
        fserr(GETDEFS_EXIT_INVALID_INPUT, "stat", ppz[-1]);
}
# 363 "gdinit.c"
static void
validate_opts(void)
{
    set_define_re();




    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_SUBBLOCK]).optCookie))->apzArgs);






        do {
            *ppz = fixupSubblockString(*ppz);
            ppz++;
        } while (--ct > 0);
    }

    if (! (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]))->fOptState & 0x000000FU) == 0)))
        do { (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optActualIndex = 15; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optActualValue = 0x100C; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).fOptState &= 0xFFFFF00U; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).fOptState |= 0x0000001U; (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optArg.argString = ("-"); (*((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).pOptProc))(&getdefsOptions, getdefsOptions.pOptDesc + 15);; } while (
# 387 "gdinit.c" 3 4
       0
# 387 "gdinit.c"
       );

    set_modtime();







    if ( (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]))->fOptState & 0x000000FU) == 0))
       && (((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString) != 
# 398 "gdinit.c" 3 4
                               ((void *)0)
# 398 "gdinit.c"
                                   )) {
        static char const preamble[] =
            "# -*- buffer-read-only: t -*- vi: set ro:\n"
            "#\n# DO NOT EDIT THIS FILE - it is auto-edited by getdefs\n";

        pzIndexText = loadFile(((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString));
        if (pzIndexText == 
# 404 "gdinit.c" 3 4
                          ((void *)0)
# 404 "gdinit.c"
                              ) {
            pzIndexText = pzEndIndex = pzIndexEOF = malloc((size_t)0x4000);
            indexAlloc = 0x4000;
            pzEndIndex += sprintf(pzEndIndex, "%s", preamble);
        } else {
            pzEndIndex = pzIndexEOF = pzIndexText + strlen(pzIndexText);
            indexAlloc = (size_t)(pzEndIndex - pzIndexText) + 1;
        }






        option_strequate("_-^");
    }

    {
        char const * pz = ((getdefsOptions.pOptDesc[INDEX_OPT_SRCFILE]).optArg.argString);
        if ((pz == 
# 423 "gdinit.c" 3 4
                  ((void *)0)
# 423 "gdinit.c"
                      ) || (*pz == '\0'))
            ((getdefsOptions.pOptDesc[INDEX_OPT_SRCFILE]).optArg.argString) = "srcfile";

        pz = ((getdefsOptions.pOptDesc[INDEX_OPT_LINENUM]).optArg.argString);
        if ((pz == 
# 427 "gdinit.c" 3 4
                  ((void *)0)
# 427 "gdinit.c"
                      ) || (*pz == '\0'))
            ((getdefsOptions.pOptDesc[INDEX_OPT_LINENUM]).optArg.argString) = "linenum";
    }

    {
        static char const ag_nm_chars[] =
            "abcdefghijklmnopqrstuvwxyz"
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            "0123456789" "_-^";
        static char const usr_nm_chars[] = ":.$%*!~<>&@";

        char const * p = ag_nm_chars;

        while (*p)
            zUserNameCh[(unsigned char)(*p++)] = 3;

        p = usr_nm_chars;
        while (*p)
            zUserNameCh[(unsigned char)(*p++)] = 1;
    }
}
# 14 "gd.c" 2
# 1 "getdefs.c" 1
# 38 "getdefs.c"
static char const zBogusDef[] = "Bogus definition:\n%s\n";





typedef int (compar_func)(const void *, const void *);
static compar_func compar_text, compar_defname;
# 58 "getdefs.c"
static char *
assignIndex(char * pzOut, char * pzDef)
{
    char * pzMatch;
    size_t len = strlen(pzDef);
    int idx;





    option_strtransform(pzDef, pzDef);





    pzMatch = strstr(pzIndexText, pzDef);
    if (pzMatch != 
# 76 "getdefs.c" 3 4
                  ((void *)0)
# 76 "getdefs.c"
                      ) {
        pzMatch += len;
        while (
# 78 "getdefs.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 78 "getdefs.c"
              *pzMatch
# 78 "getdefs.c" 3 4
              ))] & (unsigned short int) _ISspace)
# 78 "getdefs.c"
                               ) pzMatch++;
        while ((*pzOut++ = *pzMatch++) != ']') ;
        return pzOut;
    }





    if (((size_t)(pzEndIndex - pzIndexText) + len + 64 ) > indexAlloc) {
        char * pz;
        indexAlloc += 0x1FFF;
        indexAlloc &= (unsigned long)~0x0FFFUL;
        pz = (char *)realloc(((void *)(uintptr_t)(pzIndexText)), indexAlloc);
        if (pz == 
# 92 "getdefs.c" 3 4
                 ((void *)0)
# 92 "getdefs.c"
                     ) {
            fputs("Realloc of index text failed\n", 
# 93 "getdefs.c" 3 4
                                                   stderr
# 93 "getdefs.c"
                                                         );
            exit(
# 94 "getdefs.c" 3 4
                1
# 94 "getdefs.c"
                            );
        }





        if (pz != pzIndexText) {
            pzIndexEOF = pz + (pzIndexEOF - pzIndexText);
            pzEndIndex = pz + (pzEndIndex - pzIndexText);
            pzIndexText = pz;
        }
    }





    if (pzEndIndex == pzIndexText)
        idx = (int)((getdefsOptions.pOptDesc[INDEX_OPT_FIRST_INDEX]).optArg.argInt);
    else do {
        char * pz = strrchr(pzDef, ' ');
        *pz = '\0';
        len = strlen(pzDef);




        pzMatch = strstr(pzIndexText, pzDef);
        if (pzMatch == 
# 123 "getdefs.c" 3 4
                      ((void *)0)
# 123 "getdefs.c"
                          ) {



            idx = (int)((getdefsOptions.pOptDesc[INDEX_OPT_FIRST_INDEX]).optArg.argInt);
            *pz = ' ';
            break;
        }

        for (;;) {
            char * pzn = strstr(pzMatch + len, pzDef);
            if (pzn == 
# 134 "getdefs.c" 3 4
                      ((void *)0)
# 134 "getdefs.c"
                          )
                break;
            pzMatch = pzn;
        }





        *pz = ' ';
        pzMatch = strchr(pzMatch + len, '[');
        idx = (int)strtol(pzMatch+1, (char **)
# 145 "getdefs.c" 3 4
                                             ((void *)0)
# 145 "getdefs.c"
                                                 , 0)+1;
    } while (
# 146 "getdefs.c" 3 4
            0
# 146 "getdefs.c"
                 );





    pzEndIndex += sprintf(pzEndIndex, "%-40s  [%d]\n", pzDef, idx);
    pzOut += sprintf(pzOut, "[%d]", idx);

    return pzOut;
}




static int
awaitAutogen(void)
{
    int status;
    waitpid(agPid, &status, 0);
    if (
# 166 "getdefs.c" 3 4
       (((
# 166 "getdefs.c"
       status
# 166 "getdefs.c" 3 4
       ) & 0x7f) == 0)
# 166 "getdefs.c"
                        ) {
        status = 
# 167 "getdefs.c" 3 4
                (((
# 167 "getdefs.c"
                status
# 167 "getdefs.c" 3 4
                ) & 0xff00) >> 8)
# 167 "getdefs.c"
                                   ;
        if (status != 
# 168 "getdefs.c" 3 4
                     0
# 168 "getdefs.c"
                                 ) {
            fprintf(
# 169 "getdefs.c" 3 4
                   stderr
# 169 "getdefs.c"
                         , "ERROR:  %s exited with status %d\n",
                    pzAutogen, status);
        }
        return status;
    }

    if (
# 175 "getdefs.c" 3 4
       (((signed char) (((
# 175 "getdefs.c"
       status
# 175 "getdefs.c" 3 4
       ) & 0x7f) + 1) >> 1) > 0)
# 175 "getdefs.c"
                            ) {
        status = 
# 176 "getdefs.c" 3 4
                ((
# 176 "getdefs.c"
                status
# 176 "getdefs.c" 3 4
                ) & 0x7f)
# 176 "getdefs.c"
                                  ;
        fprintf(
# 177 "getdefs.c" 3 4
               stderr
# 177 "getdefs.c"
                     , "ERROR:  %s exited due to %d signal (%s)\n",
                pzAutogen, status, strsignal(status));
    }
    else
        fprintf(
# 181 "getdefs.c" 3 4
               stderr
# 181 "getdefs.c"
                     , "ERROR:  %s exited due to unknown reason %d\n",
                pzAutogen, status);

    return 
# 184 "getdefs.c" 3 4
          1
# 184 "getdefs.c"
                      ;
}




static tSuccess
buildPreamble(char ** def_scan_p, char ** out_scan_p, char const * fname, int line)
{
    char * def_scan = *def_scan_p;
    char * out_scan = *out_scan_p;

    char def_bf[ 256 * 2 + 8 ];
    char name_bf[ 256 ];
    char * def_str = def_bf;
    char * if_text = 
# 199 "getdefs.c" 3 4
                     ((void *)0)
# 199 "getdefs.c"
                         ;




    *def_str++ = '`';
    if (! is_ag_char_map_char((char)(*def_scan), 0x00180040))
        goto fail_return;

    {
        char * end = spn_ag_char_map_chars(def_scan + 1, 31);
        size_t len = end - def_scan;
        if (len >= 256)
            goto fail_return;
        memcpy(def_str, def_scan, len);
        def_str += len;
        *def_str = '\0';
        def_scan = end;
    }

    def_scan += (int)strspn(def_scan, "* \t");




    if (! is_ag_char_map_char((char)(*def_scan), 0x00180040))
        goto fail_return;
    {
        char * end = spn_ag_char_map_chars(def_scan + 1, 26);
        size_t len = end - def_scan;
        if (len >= 256)
            goto fail_return;
        memcpy(name_bf, def_scan, len);
        name_bf[len] = '\0';
        def_scan = end;
    }

    def_scan = spn_ag_char_map_chars(def_scan, 10);





    if (*def_scan == ',') {
        def_scan++;
        def_scan = spn_ag_char_map_chars(def_scan, 10);
        if ((def_scan[0] == 'i') && (def_scan[1] == 'f'))
            if_text = def_scan;
    }

    def_scan = strchr(def_scan, '\n');
    if (def_scan == 
# 250 "getdefs.c" 3 4
                   ((void *)0)
# 250 "getdefs.c"
                       )
        goto fail_return;

    *def_scan = '\0';






    out_scan += sprintf(out_scan, zLineId, line, fname);
    if (if_text != 
# 261 "getdefs.c" 3 4
                  ((void *)0)
# 261 "getdefs.c"
                      )
        out_scan += sprintf(out_scan, "#%s\n", if_text);
    {
        char * pz = def_bf+1;
        while (*pz != '\0')
            *out_scan++ = *pz++;
    }






    if (pzIndexText != 
# 274 "getdefs.c" 3 4
                      ((void *)0)
# 274 "getdefs.c"
                          ) {
        sprintf(def_str, "  %s'", name_bf);
        out_scan = assignIndex(out_scan, def_bf);
    }





    out_scan += sprintf(out_scan, "%s%s';\n", zNameTag, name_bf);
    *out_scan_p = out_scan;
    *def_scan_p = def_scan;
    *def_scan = '\n';





    return (if_text != 
# 292 "getdefs.c" 3 4
                      ((void *)0)
# 292 "getdefs.c"
                          ) ? ((tSuccess) 1) : ((tSuccess) 0);

 fail_return:
    fprintf(
# 295 "getdefs.c" 3 4
           stderr
# 295 "getdefs.c"
                 , zNoData, fname, line);
    return ((tSuccess)-1);
}




static void
buildDefinition(char * pzDef, char const * pzFile, int line, char * pzOut)
{
    static char const zSrcFile[] = "    %s = '%s';\n";
    static char const zLineNum[] = "    %s = '%d';\n";

    
# 308 "getdefs.c" 3 4
   _Bool 
# 308 "getdefs.c"
           these_are_global_defs;
    tSuccess preamble;
    int re_res;
    char * pzNextDef = 
# 311 "getdefs.c" 3 4
                          ((void *)0)
# 311 "getdefs.c"
                              ;
    regmatch_t match[2];

    if (*pzDef == '*') {
        these_are_global_defs = 
# 315 "getdefs.c" 3 4
                               1
# 315 "getdefs.c"
                                   ;
        strcpy(pzOut, zGlobal);
        pzOut += sizeof(zGlobal)-1;
        pzOut += sprintf(pzOut, zLineId, line, pzFile);

        pzDef = strchr(pzDef, '\n');
        preamble = ((tSuccess) 1);

    } else {
        these_are_global_defs = 
# 324 "getdefs.c" 3 4
                               0
# 324 "getdefs.c"
                                    ;
        preamble = buildPreamble(&pzDef, &pzOut, pzFile, line);
        if (((preamble) < ((tSuccess) 0))) {
            *pzOut = '\0';
            return;
        }
    }




    for (;;) {



        re_res = regexec(&attrib_re, pzDef, (sizeof(match)/sizeof(match[0])), match, 0);
        switch (re_res) {
        case 0:




            pzDef[ match[0].rm_so ] = '\0';
            if (pzNextDef != 
# 347 "getdefs.c" 3 4
                            ((void *)0)
# 347 "getdefs.c"
                                )
                pzOut = emitDefinition(pzNextDef, pzOut);
            pzNextDef = pzDef = pzDef + match[1].rm_so;
            break;

        case REG_NOMATCH:



            if (pzNextDef == 
# 356 "getdefs.c" 3 4
                            ((void *)0)
# 356 "getdefs.c"
                                ) {
                *pzOut++ = '\n'; *pzOut++ = '#';
                sprintf(pzOut, zNoData, pzFile, line);
                fputs(pzOut, 
# 359 "getdefs.c" 3 4
                            stderr
# 359 "getdefs.c"
                                  );
                pzOut += strlen(pzOut);
                return;
            }

            pzOut = emitDefinition(pzNextDef, pzOut);
            goto eachAttrDone;
            break;

        default:
        {
            char zRER[ 256 ];
            static char const zErr[] = "error %d (%s) finding '%s' in\n%s\n\n";
            regerror(re_res, &attrib_re, zRER, sizeof(zRER));
            *pzOut++ = '\n';
            *pzOut++ = '#';
            sprintf(pzOut, zErr, re_res, zRER, zAttribRe, pzDef);
            fprintf(
# 376 "getdefs.c" 3 4
                   stderr
# 376 "getdefs.c"
                         , "getdefs:  %s", zErr);
            return;
        }
        }
    } eachAttrDone:;

    if (these_are_global_defs) {
        *pzOut = '\0';
        return;
    }

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_COMMON_ASSIGN]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COMMON_ASSIGN]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COMMON_ASSIGN]).optCookie))->apzArgs);
        do {
            pzOut += sprintf(pzOut, "    %s;\n", *ppz++);
        } while (--ct > 0);
    }

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_SRCFILE]))->fOptState & 0x000000FU) == 0)))
        pzOut += sprintf(pzOut, zSrcFile, ((getdefsOptions.pOptDesc[INDEX_OPT_SRCFILE]).optArg.argString), pzFile);

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_LINENUM]))->fOptState & 0x000000FU) == 0)))
        pzOut += sprintf(pzOut, zLineNum, ((getdefsOptions.pOptDesc[INDEX_OPT_LINENUM]).optArg.argString), line);





    if (((preamble) > ((tSuccess) 0)))
         strcpy(pzOut, "};\n#endif\n");
    else strcpy(pzOut, "};\n");
}




static int
compar_defname(const void * p1, const void * p2)
{
    char const * pzS1 = *(char const * const *)p1;
    char const * pz1 = strstr(pzS1, zNameTag);
    char const * pzS2 = *(char const * const *)p2;
    char const * pz2 = strstr(pzS2, zNameTag);

    if (pz1 == 
# 421 "getdefs.c" 3 4
              ((void *)0)
# 421 "getdefs.c"
                  ) {
        if (strncmp(*(char const * const *)p1, zGlobal, sizeof(zGlobal)-1) == 0)
            return -1;

        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p1);
    }

    if (pz2 == 
# 428 "getdefs.c" 3 4
              ((void *)0)
# 428 "getdefs.c"
                  ) {
        if (strncmp(*(char const * const *)p2, zGlobal, sizeof(zGlobal)-1) == 0)
            return 1;

        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p2);
    }




    while ((pz1 > pzS1) && (*--pz1 != '\n')) ;
    while ((pz2 > pzS2) && (*--pz2 != '\n')) ;

    return strcmp(pz1, pz2);
}
# 453 "getdefs.c"
static int
compar_text(const void * p1, const void * p2)
{
    char * pz1 = strstr(*(char const * const *)p1, zNameTag);
    char * pe1;
    char * pz2 = strstr(*(char const * const *)p2, zNameTag);
    char * pe2;
    int res;

    if (pz1 == 
# 462 "getdefs.c" 3 4
              ((void *)0)
# 462 "getdefs.c"
                  ) {
        if (strncmp(*(char const * const *)p1, zGlobal, sizeof(zGlobal)-1) == 0)
            return -1;

        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p1);
    }

    if (pz2 == 
# 469 "getdefs.c" 3 4
              ((void *)0)
# 469 "getdefs.c"
                  ) {
        if (strncmp(*(char const * const *)p2, zGlobal, sizeof(zGlobal)-1) == 0)
            return 1;

        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p2);
    }

    pz1 += sizeof(zNameTag)-1;
    pe1 = strchr(pz1, '\'');

    if (pe1 == 
# 479 "getdefs.c" 3 4
              ((void *)0)
# 479 "getdefs.c"
                  )
        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p1);

    pz2 += sizeof(zNameTag)-1;
    pe2 = strchr(pz2, '\'');

    if (pe2 == 
# 485 "getdefs.c" 3 4
              ((void *)0)
# 485 "getdefs.c"
                  )
        die(GETDEFS_EXIT_USAGE_ERROR, zBogusDef, *(char const * const *)p2);

    *pe1 = *pe2 = '\0';
# 497 "getdefs.c"
    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]))->fOptState & 0x000000FU) == 0)))
         res = option_streqvcmp(pz1, pz2);
    else res = strcmp(pz1, pz2);
    *pe1 = *pe2 = '\'';
    return res;
}





static void
doPreamble(FILE * outFp)
{



    fprintf(outFp, zAgDef, ((getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).optArg.argString));

    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_FILELIST]))->fOptState & 0x000000FU) == 0))) {
        static char const zFmt[] = "%-12s = '%s';\n";
        char const * pzName = ((getdefsOptions.pOptDesc[INDEX_OPT_FILELIST]).optArg.argString);

        if ((pzName == 
# 520 "getdefs.c" 3 4
                      ((void *)0)
# 520 "getdefs.c"
                          ) || (*pzName == '\0'))
            pzName = "infile";

        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]))->fOptState & 0x000000FU) == 0))) {
            int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->useCt);
            char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);

            do {
                fprintf(outFp, zFmt, pzName, *ppz++);
            } while (--ct > 0);
        }

        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_COPY]))->fOptState & 0x000000FU) == 0))) {
            int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COPY]).optCookie))->useCt);
            char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COPY]).optCookie))->apzArgs);

            do {
                fprintf(outFp, zFmt, pzName, *ppz++);
            } while (--ct > 0);
        }
        fputc('\n', outFp);
    }





    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_COPY]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COPY]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_COPY]).optCookie))->apzArgs);
        do {
            fprintf(outFp, "#include %s\n", *ppz++);
        } while (--ct > 0);
        fputc('\n', outFp);
    }





    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_ASSIGN]))->fOptState & 0x000000FU) == 0))) {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_ASSIGN]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_ASSIGN]).optCookie))->apzArgs);
        do {
            fprintf(outFp, "%s;\n", *ppz++);
        } while (--ct > 0);
        fputc('\n', outFp);
    }
}





static char *
loadFile(char const * pzFname)
{
    FILE * fp = fopen(pzFname, "r" "b");
    int res;
    char * pzText;
    char * pzRead;
    size_t rdsz;

    if (fp == (FILE *)
# 583 "getdefs.c" 3 4
                     ((void *)0)
# 583 "getdefs.c"
                         )
        return 
# 584 "getdefs.c" 3 4
              ((void *)0)
# 584 "getdefs.c"
                  ;




    {
        struct stat stb;
        res = fstat(fileno(fp), &stb);
        if (res != 0)
            fserr(GETDEFS_EXIT_INVALID_INPUT, "fstat", pzFname);

        if (! 
# 595 "getdefs.c" 3 4
             ((((
# 595 "getdefs.c"
             stb.st_mode
# 595 "getdefs.c" 3 4
             )) & 0170000) == (0100000))
# 595 "getdefs.c"
                                 ) {
            
# 596 "getdefs.c" 3 4
           (*__errno_location ()) 
# 596 "getdefs.c"
                 = 
# 596 "getdefs.c" 3 4
                   22
# 596 "getdefs.c"
                         ;
            fserr(GETDEFS_EXIT_INVALID_INPUT, "fstat", pzFname);
        }

        rdsz = (size_t)stb.st_size;
        if (rdsz < 16)
            die(GETDEFS_EXIT_USAGE_ERROR,
                "Error file %s only contains %d bytes.\n"
                "\tit cannot contain autogen definitions\n",
                pzFname, (int)rdsz);
    }




    pzRead = pzText = (char *)malloc(rdsz + 1);
    if (pzText == 
# 612 "getdefs.c" 3 4
                 ((void *)0)
# 612 "getdefs.c"
                     )
        die(GETDEFS_EXIT_USAGE_ERROR, "Error: could not allocate %d bytes\n",
            (int)rdsz + 1);




    do {
        size_t rdct = fread(((void *)(uintptr_t)(pzRead)), (size_t)1, rdsz, fp);

        if (rdct == 0)
            fserr(GETDEFS_EXIT_INVALID_INPUT, "fread", pzFname);

        pzRead += rdct;
        rdsz -= rdct;
    } while (rdsz > 0);

    *pzRead = '\0';
    fclose(fp);
    return pzText;
}





static void
printEntries(FILE * fp)
{
    size_t ct = blkUseCt;
    char ** ppz = papzBlocks;

    if (ct == 0)
        exit(
# 645 "getdefs.c" 3 4
            1
# 645 "getdefs.c"
                        );

    for (;;) {
        char * pz = *(ppz++);
        fputs(pz, fp);
        free(((void *)(uintptr_t)(pz)));
        if (--ct == 0)
            break;
        fputc('\n', fp);
    }
    free(((void *)(uintptr_t)(papzBlocks)));
}





static void
processFile(char const * fname)
{
    char * pzText = loadFile(fname);
    char * pzScan;
    char * pzNext;
    int lineNo = 1;
    regmatch_t matches[1 +1];

    if (pzText == 
# 671 "getdefs.c" 3 4
                 ((void *)0)
# 671 "getdefs.c"
                     ) {
        
# 672 "getdefs.c" 3 4
       (*__errno_location ()) 
# 672 "getdefs.c"
             = 
# 672 "getdefs.c" 3 4
               12
# 672 "getdefs.c"
                     ;
        fserr(GETDEFS_EXIT_INVALID_INPUT, "open+read", fname);
    }

    processEmbeddedOptions(pzText);
    pzNext = pzText;

    while (pzScan = pzNext,
           regexec(&define_re, pzScan, (sizeof(matches)/sizeof(matches[0])), matches, 0) == 0) {

        static char const zNoEnd[] =
            "Error:  definition in %s at line %d has no end\n";
        static char const zNoSubexp[] =
            "Warning: entry type not found on line %d in %s:\n\t%s\n";

        int linesInDef = 0;
        char * pzDef;
        char * pzDta;
        char * pzOut;




        if (matches[1].rm_so == -1) {
            char * pz = 
# 696 "getdefs.c" 3 4
                       ((void *)0)
# 696 "getdefs.c"
                           ;
            char ch = '\0';

            pzDef = pzScan + matches[0].rm_so;
            if (strlen(pzDef) > 30) {
                pz = pzDef + 30;
                ch = *pz;
                *pz = '\0';
            }

            fprintf(
# 706 "getdefs.c" 3 4
                   stderr
# 706 "getdefs.c"
                         , zNoSubexp, lineNo, fname, pzDef);
            if (pz != 
# 707 "getdefs.c" 3 4
                     ((void *)0)
# 707 "getdefs.c"
                         )
                *pz = ch;
            continue;
        }

        pzDef = pzScan + matches[0].rm_so + sizeof("/*=") - 1;
        pzNext = strstr(pzDef, "=*/");
        if (pzNext == 
# 714 "getdefs.c" 3 4
                     ((void *)0)
# 714 "getdefs.c"
                         )
            die(GETDEFS_EXIT_USAGE_ERROR, zNoEnd, fname, lineNo);

        *pzNext = '\0';
        pzNext += 3;



        for (;;) {
            pzScan = strchr(pzScan, '\n');
            if (pzScan++ == 
# 724 "getdefs.c" 3 4
                           ((void *)0)
# 724 "getdefs.c"
                               )
                break;
            if (pzScan >= pzDef)
                break;
            lineNo++;
        }







        pzOut = pzDta = (char *)malloc(2 * strlen(pzDef) + 8000);





        pzScan = pzDef;
        for (;;) {
            pzScan = strchr(pzScan, '\n');
            if (pzScan++ == 
# 746 "getdefs.c" 3 4
                           ((void *)0)
# 746 "getdefs.c"
                               )
                break;
            linesInDef++;
        }





        buildDefinition(pzDef, fname, lineNo, pzOut);
        pzDta = (char *)realloc(((void *)(uintptr_t)(pzDta)), strlen(pzDta) + 1);
        lineNo += linesInDef;

        if (++blkUseCt > blkAllocCt) {
            blkAllocCt += 32;
            papzBlocks = (char **)realloc(((void *)(uintptr_t)(papzBlocks)),
                                         blkAllocCt * sizeof(char *));
            if (papzBlocks == (char **)
# 763 "getdefs.c" 3 4
                                      ((void *)0)
# 763 "getdefs.c"
                                          )
                die(GETDEFS_EXIT_USAGE_ERROR, "Realloc error for %d pointers\n",
                    (int)blkAllocCt);
        }
        papzBlocks[ blkUseCt-1 ] = pzDta;
    }

    free(((void *)(uintptr_t)(pzText)));
}
# 781 "getdefs.c"
static void
set_first_idx(void)
{
    char zNm[ 128 ] = { '\0' };
    size_t nmLn = 1;
    int ct = (int)blkUseCt;
    char ** ppz = papzBlocks;

    if (ct == 0)
        exit(
# 790 "getdefs.c" 3 4
            1
# 790 "getdefs.c"
                        );

    for (; --ct >= 0; ppz++) {
        char * pzOld = *ppz;
        int changed = (option_strneqvcmp(pzOld, zNm, (int)nmLn) != 0);
        char * pzNew;






        if (! changed) {
            if (
# 803 "getdefs.c" 3 4
               ((*__ctype_b_loc ())[(int) ((
# 803 "getdefs.c"
               pzOld[ nmLn ]
# 803 "getdefs.c" 3 4
               ))] & (unsigned short int) _ISspace) 
# 803 "getdefs.c"
                                      || (pzOld[nmLn] == '['))
                continue;
        }

        pzNew = zNm;
        nmLn = 0;
        while (
# 809 "getdefs.c" 3 4
              ((*__ctype_b_loc ())[(int) ((
# 809 "getdefs.c"
              *pzOld
# 809 "getdefs.c" 3 4
              ))] & (unsigned short int) _ISalnum)
               
# 810 "getdefs.c"
              || (*pzOld == '_') || (*pzOld == '-') || (*pzOld == '^')) {
            nmLn++;
            *(pzNew++) = *(pzOld++);
        }
        *pzNew = '\0';





        if (*pzOld != '[') {
            pzNew = (char *)malloc(strlen(pzOld) + nmLn + 10);
            sprintf(pzNew, "%s[%d]%s", zNm,
                    (int)((getdefsOptions.pOptDesc[INDEX_OPT_FIRST_INDEX]).optArg.argInt), pzOld);
            free(((void *)(uintptr_t)(*ppz)));
            *ppz = pzNew;
        }
    }
}

static FILE *
open_ag_file(char ** pzBase)
{
    switch (((getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]).optActualIndex)) {
    case INDEX_OPT_OUTPUT:
    {
        static char const zFileFmt[] = " *      %s\n";
        FILE * fp;

        if (*pzBase != 
# 839 "getdefs.c" 3 4
                      ((void *)0)
# 839 "getdefs.c"
                          )
            free(*pzBase);

        if (strcmp(((getdefsOptions.pOptDesc[INDEX_OPT_OUTPUT]).optArg.argString), "-") == 0)
            return 
# 843 "getdefs.c" 3 4
                  stdout
# 843 "getdefs.c"
                        ;

        unlink(((getdefsOptions.pOptDesc[INDEX_OPT_OUTPUT]).optArg.argString));
        fp = fopen(((getdefsOptions.pOptDesc[INDEX_OPT_OUTPUT]).optArg.argString), "w" "b");
        fprintf(fp, zDne, ((getdefsOptions.pOptDesc[INDEX_OPT_OUTPUT]).optArg.argString));

        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_INPUT]))->fOptState & 0x000000FU) == 0))) {
            int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->useCt);
            char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);
            do {
                fprintf(fp, zFileFmt, *ppz++);
            } while (--ct > 0);
        }

        fputs(" */\n", fp);
        return fp;
    }

    case INDEX_OPT_AUTOGEN:
        if (! (! ((& (getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]))->fOptState & 0x0000020U))) {
            if (*pzBase != 
# 863 "getdefs.c" 3 4
                          ((void *)0)
# 863 "getdefs.c"
                              )
                free(*pzBase);

            return 
# 866 "getdefs.c" 3 4
                  stdout
# 866 "getdefs.c"
                        ;
        }

        if ( ( ((getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]).optArg.argString) != 
# 869 "getdefs.c" 3 4
                                   ((void *)0)
# 869 "getdefs.c"
                                       )
              && (*((getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]).optArg.argString) != '\0' ))
            pzAutogen = ((getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]).optArg.argString);

        break;
    }

    return 
# 876 "getdefs.c" 3 4
          ((void *)0)
# 876 "getdefs.c"
              ;
}

static FILE *
open_ag_proc_pipe(char ** pzBase)
{
    FILE * agFp;

    int pfd[2];

    if (pipe(pfd) != 0)
        fserr(GETDEFS_EXIT_FAILURE, "pipe", "(2)");

    agPid = fork();

    switch (agPid) {
    case 0:




        close(pfd[1]);
        if (dup2(pfd[0], 
# 898 "getdefs.c" 3 4
                        0
# 898 "getdefs.c"
                                    ) != 0)
            fserr(GETDEFS_EXIT_FAILURE, "dup2", "STDIN_FILENO");
        break;

    case -1:
        fserr(GETDEFS_EXIT_FAILURE, "fork", "(2)");


    default:




        close(pfd[0]);
        agFp = fdopen(pfd[1], "w" "b");
        if (agFp == (FILE *)
# 913 "getdefs.c" 3 4
                           ((void *)0)
# 913 "getdefs.c"
                               )
            fserr(GETDEFS_EXIT_FAILURE, "fdopen", "pipe");
        free(*pzBase);
        return agFp;
    }

    return 
# 919 "getdefs.c" 3 4
          ((void *)0)
# 919 "getdefs.c"
              ;
}

static void
exec_autogen(char ** pzBase)
{
    char const ** paparg;
    char const ** pparg;
    int argCt = 5;







    if (! (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_AGARG]))->fOptState & 0x000000FU) == 0))) {
        paparg = pparg = malloc((size_t)argCt * sizeof(char *));
        *pparg++ = pzAutogen;

    } else {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_AGARG]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_AGARG]).optCookie))->apzArgs);

        argCt += ct;
        paparg = pparg = malloc((size_t)argCt * sizeof(char *));
        *pparg++ = pzAutogen;

        do {
            *pparg++ = *ppz++;
        } while (--ct > 0);
    }

    *pparg++ = *pzBase;
    *pparg++ = "--";
    *pparg++ = "-";
    *pparg++ = 
# 955 "getdefs.c" 3 4
              ((void *)0)
# 955 "getdefs.c"
                  ;
# 970 "getdefs.c"
    execvp(pzAutogen, (char **)((void *)(uintptr_t)(paparg)));
    die(GETDEFS_EXIT_FAILURE, "exec of %s %s %s %s\n",
        paparg[0], paparg[1], paparg[2], paparg[3]);
}




static FILE *
startAutogen(void)
{
    char * pz;
    FILE * agFp;
    char * pzBase = 
# 983 "getdefs.c" 3 4
                   ((void *)0)
# 983 "getdefs.c"
                       ;
# 993 "getdefs.c"
    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_BASE_NAME]))->fOptState & 0x000000FU) == 0))) {
        pzBase = malloc(strlen(((getdefsOptions.pOptDesc[INDEX_OPT_BASE_NAME]).optArg.argString)) + 3);
        strcpy(pzBase, "-b");
        strcpy(pzBase+2, ((getdefsOptions.pOptDesc[INDEX_OPT_BASE_NAME]).optArg.argString));
    }
    else {




        if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]))->fOptState & 0x000000FU) == 0))) {
            char const * pzS = ((getdefsOptions.pOptDesc[INDEX_OPT_DEFS_TO_GET]).optArg.argString);
            pzBase = malloc(strlen(pzS) + 3);
            strcpy(pzBase, "-b");

            pz = pzBase + 2;
            while (
# 1009 "getdefs.c" 3 4
                  ((*__ctype_b_loc ())[(int) ((
# 1009 "getdefs.c"
                  *pzS
# 1009 "getdefs.c" 3 4
                  ))] & (unsigned short int) _ISalnum) 
# 1009 "getdefs.c"
                                || (*pzS == '_'))
                *pz++ = *pzS++;
            if (pz == pzBase + 2) {
                free(pzBase);
                pzBase = 
# 1013 "getdefs.c" 3 4
                        ((void *)0)
# 1013 "getdefs.c"
                            ;
            }
            else
                *pz = '\0';
        }




        if (pzBase == 
# 1022 "getdefs.c" 3 4
                     ((void *)0)
# 1022 "getdefs.c"
                         ) {
            char zSrch[ 
# 1023 "getdefs.c" 3 4
                       4096 
# 1023 "getdefs.c"
                                  ];
            if (getcwd(zSrch, sizeof(zSrch)) == 
# 1024 "getdefs.c" 3 4
                                               ((void *)0)
# 1024 "getdefs.c"
                                                   )
                fserr(GETDEFS_EXIT_FAILURE, "getcwd", ".");

            pz = strrchr(zSrch, '/');
            if (pz == 
# 1028 "getdefs.c" 3 4
                     ((void *)0)
# 1028 "getdefs.c"
                         )
                 pz = zSrch;
            else pz++;
            pzBase = malloc(strlen(pz) + 3);
            strcpy(pzBase, "-b");
            strcpy(pzBase+2, pz);
        }
    }






    if (! (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]))->fOptState & 0x000000FU) == 0)))
        do { (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).optActualIndex = 19; (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).optActualValue = 0x100F; (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).fOptState &= 0xFFFFF00U; (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).fOptState |= 0x0000001U; (getdefsOptions.pOptDesc[INDEX_OPT_TEMPLATE]).optArg.argString = (strdup(pzBase+2)); } while (
# 1043 "getdefs.c" 3 4
       0
# 1043 "getdefs.c"
       );
# 1053 "getdefs.c"
    if ((! (((& (getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]))->fOptState & 0x000000FU) == 0))) {
        agFp = open_ag_file(&pzBase);
        if (agFp != 
# 1055 "getdefs.c" 3 4
                   ((void *)0)
# 1055 "getdefs.c"
                       )
            return agFp;
    }

    agFp = open_ag_proc_pipe(&pzBase);
    if (agFp != 
# 1060 "getdefs.c" 3 4
               ((void *)0)
# 1060 "getdefs.c"
                   )
        return agFp;

    exec_autogen(&pzBase);
    return (FILE *)
# 1064 "getdefs.c" 3 4
                  ((void *)0)
# 1064 "getdefs.c"
                      ;
}





static void
update_db(void)
{
    FILE * fp;

    if (chmod(((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString), 0666) == 0) {
        fp = fopen(((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString), "a" "b");

    } else {
        unlink(((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString));
        fp = fopen(((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString), "w" "b");
        pzIndexEOF = pzIndexText;
    }

    if (fp == (FILE *)
# 1085 "getdefs.c" 3 4
                     ((void *)0)
# 1085 "getdefs.c"
                         )
        fserr(GETDEFS_EXIT_FAILURE, "fopen-w+", ((getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]).optArg.argString));

    fwrite(pzIndexEOF, (size_t)(pzEndIndex - pzIndexEOF), (size_t)1, fp);

    fchmod(fileno(fp), 0444);
    fclose(fp);




}





int
main(int argc, char ** argv)
{
    FILE * outFp;

    optionProcess(&getdefsOptions, argc, argv);
    validate_opts();

    outFp = startAutogen();

    doPreamble(outFp);




    {
        int ct = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->useCt);
        char const ** ppz = (((tArgList*)((getdefsOptions.pOptDesc[INDEX_OPT_INPUT]).optCookie))->apzArgs);

        do {
            processFile(*ppz++);
        } while (--ct > 0);
    }





    if ((pzIndexText == 
# 1130 "getdefs.c" 3 4
                       ((void *)0)
# 1130 "getdefs.c"
                           ) && (! (((& (getdefsOptions.pOptDesc[INDEX_OPT_FIRST_INDEX]))->fOptState & 0x000000FU) == 0))) {
        qsort(((void *)(uintptr_t)(papzBlocks)), blkUseCt, sizeof(char *), compar_defname);
        set_first_idx();
    }

    else if ((! ((& (getdefsOptions.pOptDesc[INDEX_OPT_ORDERING]))->fOptState & 0x0000020U)) && (blkUseCt > 1))
        qsort(((void *)(uintptr_t)(papzBlocks)), blkUseCt, sizeof(char *), &compar_text);

    printEntries(outFp);

    fchmod(fileno(outFp), 
# 1140 "getdefs.c" 3 4
                         0400
# 1140 "getdefs.c"
                                |
# 1140 "getdefs.c" 3 4
                                 (0400 >> 3)
# 1140 "getdefs.c"
                                        |
# 1140 "getdefs.c" 3 4
                                         ((0400 >> 3) >> 3)
# 1140 "getdefs.c"
                                                );

    fclose(outFp);





    if ( (((getdefsOptions.pOptDesc[INDEX_OPT_AUTOGEN]).optActualIndex) == INDEX_OPT_OUTPUT)
       && (outFp != 
# 1149 "getdefs.c" 3 4
                   stdout
# 1149 "getdefs.c"
                         ) ) {
        struct utimbuf tbuf;
        tbuf.actime = time((time_t *)
# 1151 "getdefs.c" 3 4
                                     ((void *)0)
# 1151 "getdefs.c"
                                         );
        tbuf.modtime = modtime + 1;
        utime(((getdefsOptions.pOptDesc[INDEX_OPT_OUTPUT]).optArg.argString), &tbuf);



    }






    if ((pzIndexText != 
# 1164 "getdefs.c" 3 4
                       ((void *)0)
# 1164 "getdefs.c"
                           ) && (pzEndIndex != pzIndexEOF))
        update_db();

    if (agPid != -1)
        return awaitAutogen();

    return 
# 1170 "getdefs.c" 3 4
          0
# 1170 "getdefs.c"
                      ;
}
# 14 "gd.c" 2


More information about the Gcc mailing list